From 35e405de81c31b6bae6c0b6fba14ff55a94bdd4d Mon Sep 17 00:00:00 2001 From: Jonathan Gibbons Date: Sat, 26 Oct 2024 06:57:45 +0000 Subject: [PATCH 001/159] 8305406: Add @spec tags in java.base/java.* (part 2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Daniel Jeliński Co-authored-by: Hannes Wallnöfer Reviewed-by: valeriep --- .../com/sun/crypto/provider/AESKeyWrap.java | 3 ++ .../sun/crypto/provider/AESKeyWrapPadded.java | 3 ++ .../com/sun/crypto/provider/KWUtil.java | 3 ++ .../sun/crypto/provider/KeyWrapCipher.java | 3 ++ .../classes/java/security/DrbgParameters.java | 5 ++- .../share/classes/java/security/Key.java | 7 +++- .../share/classes/java/security/KeyRep.java | 3 +- .../classes/java/security/SecureRandom.java | 5 +++ .../share/classes/java/security/Security.java | 3 ++ .../share/classes/java/security/cert/CRL.java | 4 ++- .../classes/java/security/cert/CRLReason.java | 5 ++- .../security/cert/PKIXRevocationChecker.java | 15 ++++---- .../java/security/cert/TrustAnchor.java | 10 +++++- .../classes/java/security/cert/X509CRL.java | 10 +++++- .../java/security/cert/X509CRLSelector.java | 16 ++++++++- .../java/security/cert/X509CertSelector.java | 23 +++++++++++- .../java/security/cert/X509Certificate.java | 14 ++++++++ .../java/security/cert/package-info.java | 9 ++++- .../java/security/interfaces/EdECKey.java | 4 ++- .../security/interfaces/EdECPrivateKey.java | 2 ++ .../security/interfaces/EdECPublicKey.java | 2 ++ .../java/security/interfaces/RSAKey.java | 4 ++- .../RSAMultiPrimePrivateCrtKey.java | 4 ++- .../security/interfaces/RSAPrivateCrtKey.java | 4 ++- .../classes/java/security/package-info.java | 3 +- .../security/spec/DSAGenParameterSpec.java | 5 ++- .../security/spec/EdDSAParameterSpec.java | 4 ++- .../classes/java/security/spec/EdECPoint.java | 4 ++- .../security/spec/EdECPrivateKeySpec.java | 4 ++- .../java/security/spec/EdECPublicKeySpec.java | 4 ++- .../java/security/spec/MGF1ParameterSpec.java | 4 ++- .../java/security/spec/PSSParameterSpec.java | 6 ++++ .../spec/RSAMultiPrimePrivateCrtKeySpec.java | 4 ++- .../java/security/spec/RSAOtherPrimeInfo.java | 4 ++- .../security/spec/RSAPrivateCrtKeySpec.java | 4 ++- .../share/classes/javax/crypto/Cipher.java | 4 +++ .../javax/crypto/EncryptedPrivateKeyInfo.java | 4 +++ .../classes/javax/crypto/package-info.java | 3 +- .../crypto/spec/ChaCha20ParameterSpec.java | 4 ++- .../javax/crypto/spec/GCMParameterSpec.java | 8 ++++- .../javax/crypto/spec/OAEPParameterSpec.java | 4 ++- .../classes/javax/crypto/spec/PBEKeySpec.java | 4 ++- .../javax/crypto/spec/PBEParameterSpec.java | 4 ++- .../classes/javax/crypto/spec/PSource.java | 5 ++- .../javax/crypto/spec/RC2ParameterSpec.java | 4 ++- .../javax/crypto/spec/RC5ParameterSpec.java | 2 ++ .../javax/crypto/spec/SecretKeySpec.java | 4 +++ .../javax/net/ssl/ExtendedSSLSession.java | 4 ++- .../classes/javax/net/ssl/SNIHostName.java | 35 ++++++++++++++++++- .../classes/javax/net/ssl/SNIServerName.java | 4 ++- .../classes/javax/net/ssl/SSLEngine.java | 8 ++++- .../classes/javax/net/ssl/SSLParameters.java | 6 +++- .../classes/javax/net/ssl/SSLSocket.java | 5 ++- .../javax/net/ssl/SSLSocketFactory.java | 4 ++- .../javax/net/ssl/StandardConstants.java | 4 ++- .../classes/javax/net/ssl/package-info.java | 3 +- .../security/auth/login/package-info.java | 3 +- .../security/auth/x500/X500Principal.java | 16 +++++++++ .../security/auth/x500/package-info.java | 13 ++++++- 59 files changed, 311 insertions(+), 51 deletions(-) diff --git a/src/java.base/share/classes/com/sun/crypto/provider/AESKeyWrap.java b/src/java.base/share/classes/com/sun/crypto/provider/AESKeyWrap.java index 7fad0b84d07..7ba4420f973 100644 --- a/src/java.base/share/classes/com/sun/crypto/provider/AESKeyWrap.java +++ b/src/java.base/share/classes/com/sun/crypto/provider/AESKeyWrap.java @@ -37,6 +37,9 @@ * * "Recommendation for Block Cipher Modes of Operation: Methods for Key Wrapping" * and represents AES cipher in KW mode. + * + * @spec https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38F.pdf + * Recommendation for Block Cipher Modes of Operation: Methods for Key Wrapping */ class AESKeyWrap extends FeedbackCipher { diff --git a/src/java.base/share/classes/com/sun/crypto/provider/AESKeyWrapPadded.java b/src/java.base/share/classes/com/sun/crypto/provider/AESKeyWrapPadded.java index 1e4e7236c8c..4f25849d850 100644 --- a/src/java.base/share/classes/com/sun/crypto/provider/AESKeyWrapPadded.java +++ b/src/java.base/share/classes/com/sun/crypto/provider/AESKeyWrapPadded.java @@ -39,6 +39,9 @@ * * "Recommendation for Block Cipher Modes of Operation: Methods for Key Wrapping" * and represents AES cipher in KWP mode. + * + * @spec https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38F.pdf + * Recommendation for Block Cipher Modes of Operation: Methods for Key Wrapping */ class AESKeyWrapPadded extends FeedbackCipher { diff --git a/src/java.base/share/classes/com/sun/crypto/provider/KWUtil.java b/src/java.base/share/classes/com/sun/crypto/provider/KWUtil.java index e5dc8920326..5dda6379d03 100644 --- a/src/java.base/share/classes/com/sun/crypto/provider/KWUtil.java +++ b/src/java.base/share/classes/com/sun/crypto/provider/KWUtil.java @@ -31,6 +31,9 @@ * This class acts as the base class for AES KeyWrap algorithms as defined * in * "Recommendation for Block Cipher Modes of Operation: Methods for Key Wrapping" + * + * @spec https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38F.pdf + * Recommendation for Block Cipher Modes of Operation: Methods for Key Wrapping */ class KWUtil { diff --git a/src/java.base/share/classes/com/sun/crypto/provider/KeyWrapCipher.java b/src/java.base/share/classes/com/sun/crypto/provider/KeyWrapCipher.java index fb69a27c62d..ba2825fa36c 100644 --- a/src/java.base/share/classes/com/sun/crypto/provider/KeyWrapCipher.java +++ b/src/java.base/share/classes/com/sun/crypto/provider/KeyWrapCipher.java @@ -36,6 +36,9 @@ * This class is the impl class for AES KeyWrap algorithms as defined in * * "Recommendation for Block Cipher Modes of Operation: Methods for Key Wrapping" + * + * @spec https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38F.pdf + * Recommendation for Block Cipher Modes of Operation: Methods for Key Wrapping */ abstract class KeyWrapCipher extends CipherSpi { diff --git a/src/java.base/share/classes/java/security/DrbgParameters.java b/src/java.base/share/classes/java/security/DrbgParameters.java index ecf8d50aab1..d979aba9531 100644 --- a/src/java.base/share/classes/java/security/DrbgParameters.java +++ b/src/java.base/share/classes/java/security/DrbgParameters.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -227,6 +227,9 @@ * Calling {@link SecureRandom#generateSeed(int)} will directly read * from this system default entropy source. * + * @spec https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-90Ar1.pdf + * Recommendation for Random Number Generation Using Deterministic Random Bit Generators + * * @since 9 */ public class DrbgParameters { diff --git a/src/java.base/share/classes/java/security/Key.java b/src/java.base/share/classes/java/security/Key.java index 4ba26bf1034..28c0098c064 100644 --- a/src/java.base/share/classes/java/security/Key.java +++ b/src/java.base/share/classes/java/security/Key.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -86,6 +86,10 @@ * Security Appendix * of the Java Object Serialization Specification for more information. * + * @spec serialization/index.html Java Object Serialization Specification + * @spec https://www.rfc-editor.org/info/rfc5280 + * RFC 5280: Internet X.509 Public Key Infrastructure Certificate + * and Certificate Revocation List (CRL) Profile * @see PublicKey * @see PrivateKey * @see KeyPair @@ -124,6 +128,7 @@ public interface Key extends java.io.Serializable { * Java Security Standard Algorithm Names Specification * for information about standard key algorithm names. * + * @spec security/standard-names.html Java Security Standard Algorithm Names * @return the name of the algorithm associated with this key. */ String getAlgorithm(); diff --git a/src/java.base/share/classes/java/security/KeyRep.java b/src/java.base/share/classes/java/security/KeyRep.java index 0a82bf82ae0..2a887750036 100644 --- a/src/java.base/share/classes/java/security/KeyRep.java +++ b/src/java.base/share/classes/java/security/KeyRep.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,6 +44,7 @@ * Security Appendix * of the Java Object Serialization Specification for more information. * + * @spec serialization/index.html Java Object Serialization Specification * @see Key * @see KeyFactory * @see javax.crypto.spec.SecretKeySpec diff --git a/src/java.base/share/classes/java/security/SecureRandom.java b/src/java.base/share/classes/java/security/SecureRandom.java index fac7f6b9383..734f25e6615 100644 --- a/src/java.base/share/classes/java/security/SecureRandom.java +++ b/src/java.base/share/classes/java/security/SecureRandom.java @@ -140,6 +140,11 @@ *
  • {@link SecureRandomSpi#engineReseed(SecureRandomParameters)} * * + * @spec https://www.rfc-editor.org/info/rfc4086 + * RFC 4086: Randomness Requirements for Security + * @spec https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.140-2.pdf + * Security Requirements for Cryptographic Modules + * * @see java.security.SecureRandomSpi * @see java.util.Random * diff --git a/src/java.base/share/classes/java/security/Security.java b/src/java.base/share/classes/java/security/Security.java index 6628b717eb0..322605ef5ed 100644 --- a/src/java.base/share/classes/java/security/Security.java +++ b/src/java.base/share/classes/java/security/Security.java @@ -423,6 +423,7 @@ private static String getProviderProperty(String key, Provider provider) { * * @return the value of the specified property. * + * @spec security/standard-names.html Java Security Standard Algorithm Names * @deprecated This method used to return the value of a proprietary * property in the master file of the "SUN" Cryptographic Service * Provider in order to determine how to parse algorithm-specific @@ -657,6 +658,7 @@ public static Provider getProvider(String name) { * if the filter is not in the required format * @throws NullPointerException if filter is {@code null} * + * @spec security/standard-names.html Java Security Standard Algorithm Names * @see #getProviders(java.util.Map) * @since 1.3 */ @@ -734,6 +736,7 @@ public static Provider[] getProviders(String filter) { * if the filter is not in the required format * @throws NullPointerException if filter is {@code null} * + * @spec security/standard-names.html Java Security Standard Algorithm Names * @see #getProviders(java.lang.String) * @since 1.3 */ diff --git a/src/java.base/share/classes/java/security/cert/CRL.java b/src/java.base/share/classes/java/security/cert/CRL.java index fec267de051..fee08c3c2ed 100644 --- a/src/java.base/share/classes/java/security/cert/CRL.java +++ b/src/java.base/share/classes/java/security/cert/CRL.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -56,6 +56,8 @@ public abstract class CRL { * "{@docRoot}/../specs/security/standard-names.html"> * Java Security Standard Algorithm Names document * for information about standard CRL types. + * + * @spec security/standard-names.html Java Security Standard Algorithm Names */ protected CRL(String type) { this.type = type; diff --git a/src/java.base/share/classes/java/security/cert/CRLReason.java b/src/java.base/share/classes/java/security/cert/CRLReason.java index 2bc83f3356b..c2b19136c43 100644 --- a/src/java.base/share/classes/java/security/cert/CRLReason.java +++ b/src/java.base/share/classes/java/security/cert/CRLReason.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,6 +31,9 @@ * RFC 5280: Internet X.509 Public Key Infrastructure Certificate and CRL * Profile. * + * @spec https://www.rfc-editor.org/info/rfc5280 + * RFC 5280: Internet X.509 Public Key Infrastructure Certificate + * and Certificate Revocation List (CRL) Profile * @author Sean Mullan * @since 1.7 * @see X509CRLEntry#getRevocationReason diff --git a/src/java.base/share/classes/java/security/cert/PKIXRevocationChecker.java b/src/java.base/share/classes/java/security/cert/PKIXRevocationChecker.java index d36fcafd3e0..387b5ed8185 100644 --- a/src/java.base/share/classes/java/security/cert/PKIXRevocationChecker.java +++ b/src/java.base/share/classes/java/security/cert/PKIXRevocationChecker.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -81,14 +81,13 @@ * necessary locking. Multiple threads each manipulating separate objects * need not synchronize. * + * @spec https://www.rfc-editor.org/info/rfc2560 + * RFC 2560: X.509 Internet Public Key Infrastructure Online Certificate + * Status Protocol - OCSP + * @spec https://www.rfc-editor.org/info/rfc5280 + * RFC 5280: Internet X.509 Public Key Infrastructure Certificate + * and Certificate Revocation List (CRL) Profile * @since 1.8 - * - * @see RFC 2560: X.509 - * Internet Public Key Infrastructure Online Certificate Status Protocol - - * OCSP - * @see RFC 5280: - * Internet X.509 Public Key Infrastructure Certificate and Certificate - * Revocation List (CRL) Profile */ public abstract class PKIXRevocationChecker extends PKIXCertPathChecker { private URI ocspResponder; diff --git a/src/java.base/share/classes/java/security/cert/TrustAnchor.java b/src/java.base/share/classes/java/security/cert/TrustAnchor.java index 2626bcf3c2d..33d1e5fb433 100644 --- a/src/java.base/share/classes/java/security/cert/TrustAnchor.java +++ b/src/java.base/share/classes/java/security/cert/TrustAnchor.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -125,6 +125,10 @@ public class TrustAnchor { * decoded * @throws NullPointerException if the specified * {@code X509Certificate} is {@code null} + * + * @spec https://www.rfc-editor.org/info/rfc5280 + * RFC 5280: Internet X.509 Public Key Infrastructure Certificate + * and Certificate Revocation List (CRL) Profile */ public TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints) { @@ -207,6 +211,10 @@ public TrustAnchor(X500Principal caPrincipal, PublicKey pubKey, * or incorrectly formatted or the name constraints cannot be decoded * @throws NullPointerException if the specified {@code caName} or * {@code pubKey} parameter is {@code null} + * + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names */ public TrustAnchor(String caName, PublicKey pubKey, byte[] nameConstraints) { diff --git a/src/java.base/share/classes/java/security/cert/X509CRL.java b/src/java.base/share/classes/java/security/cert/X509CRL.java index ddb622af1fe..111de1daf0e 100644 --- a/src/java.base/share/classes/java/security/cert/X509CRL.java +++ b/src/java.base/share/classes/java/security/cert/X509CRL.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -95,6 +95,9 @@ * } * } * + * @spec https://www.rfc-editor.org/info/rfc5280 + * RFC 5280: Internet X.509 Public Key Infrastructure Certificate + * and Certificate Revocation List (CRL) Profile * @author Hemma Prafullchandra * @since 1.2 * @@ -457,6 +460,11 @@ public X509CRLEntry getRevokedCertificate(X509Certificate certificate) { * relevant ASN.1 definitions. * * @return the signature algorithm OID string. + * + * @spec https://www.rfc-editor.org/info/rfc3279 + * RFC 3279: Algorithms and Identifiers for the Internet X.509 + * Public Key Infrastructure Certificate and Certificate + * Revocation List (CRL) Profile */ public abstract String getSigAlgOID(); diff --git a/src/java.base/share/classes/java/security/cert/X509CRLSelector.java b/src/java.base/share/classes/java/security/cert/X509CRLSelector.java index 337dcc6342d..5660749884a 100644 --- a/src/java.base/share/classes/java/security/cert/X509CRLSelector.java +++ b/src/java.base/share/classes/java/security/cert/X509CRLSelector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -65,6 +65,9 @@ * provide the necessary locking. Multiple threads each manipulating * separate objects need not synchronize. * + * @spec https://www.rfc-editor.org/info/rfc5280 + * RFC 5280: Internet X.509 Public Key Infrastructure Certificate + * and Certificate Revocation List (CRL) Profile * @see CRLSelector * @see X509CRL * @@ -193,6 +196,10 @@ public void setIssuers(Collection issuers) { * * @param names a {@code Collection} of names (or {@code null}) * @throws IOException if a parsing error occurs + * + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names * @see #getIssuerNames */ public void setIssuerNames(Collection names) throws IOException { @@ -238,6 +245,9 @@ public void addIssuer(X500Principal issuer) { * RFC 2253 form * @throws IOException if a parsing error occurs * + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names * @deprecated Use {@link #addIssuer(X500Principal)} or * {@link #addIssuerName(byte[])} instead. This method should not be * relied on as it can fail to match some CRLs because of a loss of @@ -493,6 +503,10 @@ public Collection getIssuers() { * protect against subsequent modifications. * * @return a {@code Collection} of names (or {@code null}) + * + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names * @see #setIssuerNames */ public Collection getIssuerNames() { diff --git a/src/java.base/share/classes/java/security/cert/X509CertSelector.java b/src/java.base/share/classes/java/security/cert/X509CertSelector.java index 42f036b8518..7860fd528d5 100644 --- a/src/java.base/share/classes/java/security/cert/X509CertSelector.java +++ b/src/java.base/share/classes/java/security/cert/X509CertSelector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -74,6 +74,9 @@ * provide the necessary locking. Multiple threads each manipulating * separate objects need not synchronize. * + * @spec https://www.rfc-editor.org/info/rfc5280 + * RFC 5280: Internet X.509 Public Key Infrastructure Certificate + * and Certificate Revocation List (CRL) Profile * @see CertSelector * @see X509Certificate * @@ -194,6 +197,9 @@ public void setIssuer(X500Principal issuer) { * (or {@code null}) * @throws IOException if a parsing error occurs (incorrect form for DN) * + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names * @deprecated Use {@link #setIssuer(X500Principal)} or * {@link #setIssuer(byte[])} instead. This method should not be relied on * as it can fail to match some certificates because of a loss of encoding @@ -286,6 +292,9 @@ public void setSubject(X500Principal subject) { * (or {@code null}) * @throws IOException if a parsing error occurs (incorrect form for DN) * + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names * @deprecated Use {@link #setSubject(X500Principal)} or * {@link #setSubject(byte[])} instead. This method should not be relied * on as it can fail to match some certificates because of a loss of @@ -728,6 +737,12 @@ public void setSubjectAlternativeNames(Collection> names) * RFC 5280, section 4.2.1.6) * @param name the name in string form (not {@code null}) * @throws IOException if a parsing error occurs + * + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names + * @spec https://www.rfc-editor.org/info/rfc822 + * RFC 822: STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES */ public void addSubjectAlternativeName(int type, String name) throws IOException { @@ -1269,6 +1284,9 @@ public X500Principal getIssuer() { * @return the required issuer distinguished name in RFC 2253 format * (or {@code null}) * + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names * @deprecated Use {@link #getIssuer()} or {@link #getIssuerAsBytes()} * instead. This method should not be relied on as it can fail to match * some certificates because of a loss of encoding information in the @@ -1328,6 +1346,9 @@ public X500Principal getSubject() { * @return the required subject distinguished name in RFC 2253 format * (or {@code null}) * + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names * @deprecated Use {@link #getSubject()} or {@link #getSubjectAsBytes()} * instead. This method should not be relied on as it can fail to match * some certificates because of a loss of encoding information in the diff --git a/src/java.base/share/classes/java/security/cert/X509Certificate.java b/src/java.base/share/classes/java/security/cert/X509Certificate.java index 22f2423145d..79f37a82d47 100644 --- a/src/java.base/share/classes/java/security/cert/X509Certificate.java +++ b/src/java.base/share/classes/java/security/cert/X509Certificate.java @@ -95,6 +95,9 @@ * } * * + * @spec https://www.rfc-editor.org/info/rfc5280 + * RFC 5280: Internet X.509 Public Key Infrastructure Certificate + * and Certificate Revocation List (CRL) Profile * @author Hemma Prafullchandra * @since 1.2 * @@ -386,6 +389,11 @@ public abstract byte[] getTBSCertificate() * relevant ASN.1 definitions. * * @return the signature algorithm OID string. + * + * @spec https://www.rfc-editor.org/info/rfc3279 + * RFC 3279: Algorithms and Identifiers for the Internet X.509 + * Public Key Infrastructure Certificate and Certificate + * Revocation List (CRL) Profile */ public abstract String getSigAlgOID(); @@ -614,6 +622,12 @@ public List getExtendedKeyUsage() throws CertificateParsingException { * @return an immutable {@code Collection} of subject alternative * names (or {@code null}) * @throws CertificateParsingException if the extension cannot be decoded + * + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names + * @spec https://www.rfc-editor.org/info/rfc822 + * RFC 822: STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES * @since 1.4 */ public Collection> getSubjectAlternativeNames() diff --git a/src/java.base/share/classes/java/security/cert/package-info.java b/src/java.base/share/classes/java/security/cert/package-info.java index 0a5f0b7b532..e0c5b76cfd8 100644 --- a/src/java.base/share/classes/java/security/cert/package-info.java +++ b/src/java.base/share/classes/java/security/cert/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -52,6 +52,13 @@ *
  • {@extLink security_guide_pki Java PKI Programmer's Guide} * * + * @spec security/standard-names.html Java Security Standard Algorithm Names + * @spec https://www.rfc-editor.org/info/rfc2560 + * RFC 2560: X.509 Internet Public Key Infrastructure Online Certificate + * Status Protocol - OCSP + * @spec https://www.rfc-editor.org/info/rfc5280 + * RFC 5280: Internet X.509 Public Key Infrastructure Certificate + * and Certificate Revocation List (CRL) Profile * @since 1.2 */ package java.security.cert; diff --git a/src/java.base/share/classes/java/security/interfaces/EdECKey.java b/src/java.base/share/classes/java/security/interfaces/EdECKey.java index bec29eeed8e..ae00dd0678d 100644 --- a/src/java.base/share/classes/java/security/interfaces/EdECKey.java +++ b/src/java.base/share/classes/java/security/interfaces/EdECKey.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -35,6 +35,8 @@ * This interface allows access to the algorithm parameters associated with * the key. * + * @spec https://www.rfc-editor.org/info/rfc8032 + * RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA) * @since 15 */ public interface EdECKey { diff --git a/src/java.base/share/classes/java/security/interfaces/EdECPrivateKey.java b/src/java.base/share/classes/java/security/interfaces/EdECPrivateKey.java index 2a1b194a90a..df193891ce1 100644 --- a/src/java.base/share/classes/java/security/interfaces/EdECPrivateKey.java +++ b/src/java.base/share/classes/java/security/interfaces/EdECPrivateKey.java @@ -40,6 +40,8 @@ * string lengths that are a multiple of 8, and the key is represented using * a byte array. * + * @spec https://www.rfc-editor.org/info/rfc8032 + * RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA) * @since 15 */ public interface EdECPrivateKey extends EdECKey, PrivateKey { diff --git a/src/java.base/share/classes/java/security/interfaces/EdECPublicKey.java b/src/java.base/share/classes/java/security/interfaces/EdECPublicKey.java index f5a0f3c3194..5f3462164ef 100644 --- a/src/java.base/share/classes/java/security/interfaces/EdECPublicKey.java +++ b/src/java.base/share/classes/java/security/interfaces/EdECPublicKey.java @@ -38,6 +38,8 @@ * An Edwards-Curve public key is a point on the curve, which is represented using an * EdECPoint. * + * @spec https://www.rfc-editor.org/info/rfc8032 + * RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA) * @since 15 */ public interface EdECPublicKey extends EdECKey, PublicKey { diff --git a/src/java.base/share/classes/java/security/interfaces/RSAKey.java b/src/java.base/share/classes/java/security/interfaces/RSAKey.java index f28a76869db..1d023e58ebb 100644 --- a/src/java.base/share/classes/java/security/interfaces/RSAKey.java +++ b/src/java.base/share/classes/java/security/interfaces/RSAKey.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,6 +33,8 @@ * PKCS#1 v2.2 standard, * such as those for RSA, or RSASSA-PSS algorithms. * + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @author Jan Luehe * * @see RSAPublicKey diff --git a/src/java.base/share/classes/java/security/interfaces/RSAMultiPrimePrivateCrtKey.java b/src/java.base/share/classes/java/security/interfaces/RSAMultiPrimePrivateCrtKey.java index 079130e5fb5..a523d36ac70 100644 --- a/src/java.base/share/classes/java/security/interfaces/RSAMultiPrimePrivateCrtKey.java +++ b/src/java.base/share/classes/java/security/interfaces/RSAMultiPrimePrivateCrtKey.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,6 +33,8 @@ * PKCS#1 v2.2 standard, * using the Chinese Remainder Theorem (CRT) information values. * + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @author Valerie Peng * * diff --git a/src/java.base/share/classes/java/security/interfaces/RSAPrivateCrtKey.java b/src/java.base/share/classes/java/security/interfaces/RSAPrivateCrtKey.java index 1b2bed7f9c1..7a8bea29e7e 100644 --- a/src/java.base/share/classes/java/security/interfaces/RSAPrivateCrtKey.java +++ b/src/java.base/share/classes/java/security/interfaces/RSAPrivateCrtKey.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -32,6 +32,8 @@ * PKCS#1 v2.2 standard, * using the Chinese Remainder Theorem (CRT) information values. * + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @author Jan Luehe * @since 1.2 * diff --git a/src/java.base/share/classes/java/security/package-info.java b/src/java.base/share/classes/java/security/package-info.java index ecbf629cbd9..349a895922f 100644 --- a/src/java.base/share/classes/java/security/package-info.java +++ b/src/java.base/share/classes/java/security/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -79,6 +79,7 @@ * * * + * @spec security/standard-names.html Java Security Standard Algorithm Names * @since 1.1 */ package java.security; diff --git a/src/java.base/share/classes/java/security/spec/DSAGenParameterSpec.java b/src/java.base/share/classes/java/security/spec/DSAGenParameterSpec.java index b51f1f54904..3292d6b2bf7 100644 --- a/src/java.base/share/classes/java/security/spec/DSAGenParameterSpec.java +++ b/src/java.base/share/classes/java/security/spec/DSAGenParameterSpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -29,6 +29,9 @@ * generating DSA parameters as specified in * FIPS 186-3 Digital Signature Standard (DSS). * + * @spec https://csrc.nist.gov/publications/fips/fips186-3/fips_186-3.pdf + * FIPS 186-3 Digital Signature Standard (DSS) + * * @see AlgorithmParameterSpec * * @since 1.8 diff --git a/src/java.base/share/classes/java/security/spec/EdDSAParameterSpec.java b/src/java.base/share/classes/java/security/spec/EdDSAParameterSpec.java index 673e9377b14..df81d4d94d3 100644 --- a/src/java.base/share/classes/java/security/spec/EdDSAParameterSpec.java +++ b/src/java.base/share/classes/java/security/spec/EdDSAParameterSpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,6 +41,8 @@ *
  • Otherwise, the mode is Ed25519 or Ed448
  • * * + * @spec https://www.rfc-editor.org/info/rfc8032 + * RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA) * @since 15 */ diff --git a/src/java.base/share/classes/java/security/spec/EdECPoint.java b/src/java.base/share/classes/java/security/spec/EdECPoint.java index cb080f8557d..81fd9bc5543 100644 --- a/src/java.base/share/classes/java/security/spec/EdECPoint.java +++ b/src/java.base/share/classes/java/security/spec/EdECPoint.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,6 +42,8 @@ * {@code BigInteger}, and implementations that consume objects of this class * may reject integer values which are not in the range [0, p). * + * @spec https://www.rfc-editor.org/info/rfc8032 + * RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA) * @since 15 */ diff --git a/src/java.base/share/classes/java/security/spec/EdECPrivateKeySpec.java b/src/java.base/share/classes/java/security/spec/EdECPrivateKeySpec.java index 370dfc92e59..74f453aac08 100644 --- a/src/java.base/share/classes/java/security/spec/EdECPrivateKeySpec.java +++ b/src/java.base/share/classes/java/security/spec/EdECPrivateKeySpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -34,6 +34,8 @@ * a byte array. This class only supports bit string lengths that are a * multiple of 8. * + * @spec https://www.rfc-editor.org/info/rfc8032 + * RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA) * @since 15 */ public final class EdECPrivateKeySpec implements KeySpec { diff --git a/src/java.base/share/classes/java/security/spec/EdECPublicKeySpec.java b/src/java.base/share/classes/java/security/spec/EdECPublicKeySpec.java index fc52b3b7968..f884983acf6 100644 --- a/src/java.base/share/classes/java/security/spec/EdECPublicKeySpec.java +++ b/src/java.base/share/classes/java/security/spec/EdECPublicKeySpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,6 +33,8 @@ * algorithm parameters. The public key is a point on the curve, which is * represented using an {@code EdECPoint}. * + * @spec https://www.rfc-editor.org/info/rfc8032 + * RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA) * @since 15 */ public final class EdECPublicKeySpec implements KeySpec { diff --git a/src/java.base/share/classes/java/security/spec/MGF1ParameterSpec.java b/src/java.base/share/classes/java/security/spec/MGF1ParameterSpec.java index 64e88015015..2a26adb7e4e 100644 --- a/src/java.base/share/classes/java/security/spec/MGF1ParameterSpec.java +++ b/src/java.base/share/classes/java/security/spec/MGF1ParameterSpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -55,6 +55,8 @@ * ... -- Allows for future expansion -- * } * + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @see PSSParameterSpec * @see javax.crypto.spec.OAEPParameterSpec * diff --git a/src/java.base/share/classes/java/security/spec/PSSParameterSpec.java b/src/java.base/share/classes/java/security/spec/PSSParameterSpec.java index 5c77089f1ca..a05ce1b4b7a 100644 --- a/src/java.base/share/classes/java/security/spec/PSSParameterSpec.java +++ b/src/java.base/share/classes/java/security/spec/PSSParameterSpec.java @@ -65,6 +65,8 @@ * } * * + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @see MGF1ParameterSpec * @see AlgorithmParameterSpec * @see java.security.Signature @@ -96,6 +98,8 @@ public class PSSParameterSpec implements AlgorithmParameterSpec { /** * The PSS parameter set with all default values. + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @deprecated This field uses the default values defined in the PKCS #1 * standard. Some of these defaults are no longer recommended due * to advances in cryptanalysis -- see the @@ -170,6 +174,8 @@ public PSSParameterSpec(String mdName, String mgfName, * @param saltLen the length of salt in bytes * @throws IllegalArgumentException if {@code saltLen} is * less than 0 + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @deprecated This constructor uses the default values defined in * the PKCS #1 standard except for the salt length. Some of these * defaults are no longer recommended due to advances in diff --git a/src/java.base/share/classes/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.java b/src/java.base/share/classes/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.java index cdb55b97418..a3a08739a9b 100644 --- a/src/java.base/share/classes/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.java +++ b/src/java.base/share/classes/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -34,6 +34,8 @@ * using the Chinese Remainder Theorem (CRT) information values * for efficiency. * + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @author Valerie Peng * * diff --git a/src/java.base/share/classes/java/security/spec/RSAOtherPrimeInfo.java b/src/java.base/share/classes/java/security/spec/RSAOtherPrimeInfo.java index b434075c683..140c44e309e 100644 --- a/src/java.base/share/classes/java/security/spec/RSAOtherPrimeInfo.java +++ b/src/java.base/share/classes/java/security/spec/RSAOtherPrimeInfo.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,6 +42,8 @@ * * * + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @author Valerie Peng * * diff --git a/src/java.base/share/classes/java/security/spec/RSAPrivateCrtKeySpec.java b/src/java.base/share/classes/java/security/spec/RSAPrivateCrtKeySpec.java index c8bed964b0e..70639cf7867 100644 --- a/src/java.base/share/classes/java/security/spec/RSAPrivateCrtKeySpec.java +++ b/src/java.base/share/classes/java/security/spec/RSAPrivateCrtKeySpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -32,6 +32,8 @@ * PKCS#1 v2.2 standard, * using the Chinese Remainder Theorem (CRT) information values for efficiency. * + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @author Jan Luehe * @since 1.2 * diff --git a/src/java.base/share/classes/javax/crypto/Cipher.java b/src/java.base/share/classes/javax/crypto/Cipher.java index 89b0fe7b288..2cfdcf55823 100644 --- a/src/java.base/share/classes/javax/crypto/Cipher.java +++ b/src/java.base/share/classes/javax/crypto/Cipher.java @@ -164,6 +164,10 @@ * Consult the release documentation for your implementation to see if any * other transformations are supported. * + * @spec https://www.rfc-editor.org/info/rfc5116 + * RFC 5116: An Interface and Algorithms for Authenticated Encryption + * @spec https://www.rfc-editor.org/info/rfc7539 + * RFC 7539: ChaCha20 and Poly1305 for IETF Protocols * @author Jan Luehe * @see KeyGenerator * @see SecretKey diff --git a/src/java.base/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java b/src/java.base/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java index e08f9945450..698548d373f 100644 --- a/src/java.base/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java +++ b/src/java.base/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java @@ -137,6 +137,8 @@ public EncryptedPrivateKeyInfo(byte[] encoded) throws IOException { * is empty, i.e. 0-length. * @exception NoSuchAlgorithmException if the specified algName is * not supported. + * + * @spec security/standard-names.html Java Security Standard Algorithm Names */ public EncryptedPrivateKeyInfo(String algName, byte[] encryptedData) throws NoSuchAlgorithmException { @@ -226,6 +228,8 @@ public EncryptedPrivateKeyInfo(AlgorithmParameters algParams, * for information about standard Cipher algorithm names. * * @return the encryption algorithm name. + * + * @spec security/standard-names.html Java Security Standard Algorithm Names */ public String getAlgName() { return algid == null ? params.getAlgorithm() : algid.getName(); diff --git a/src/java.base/share/classes/javax/crypto/package-info.java b/src/java.base/share/classes/javax/crypto/package-info.java index 159823f0fa7..6ab28f9d545 100644 --- a/src/java.base/share/classes/javax/crypto/package-info.java +++ b/src/java.base/share/classes/javax/crypto/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -59,6 +59,7 @@ * How to Implement a Provider in the Java Cryptography Architecture} * * + * @spec security/standard-names.html Java Security Standard Algorithm Names * @since 1.4 */ package javax.crypto; diff --git a/src/java.base/share/classes/javax/crypto/spec/ChaCha20ParameterSpec.java b/src/java.base/share/classes/javax/crypto/spec/ChaCha20ParameterSpec.java index 75c05269460..b1752ef940d 100644 --- a/src/java.base/share/classes/javax/crypto/spec/ChaCha20ParameterSpec.java +++ b/src/java.base/share/classes/javax/crypto/spec/ChaCha20ParameterSpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -39,6 +39,8 @@ *

    This class can be used to initialize a {@code Cipher} object that * implements the ChaCha20 algorithm. * + * @spec https://www.rfc-editor.org/info/rfc7539 + * RFC 7539: ChaCha20 and Poly1305 for IETF Protocols * @since 11 */ public final class ChaCha20ParameterSpec implements AlgorithmParameterSpec { diff --git a/src/java.base/share/classes/javax/crypto/spec/GCMParameterSpec.java b/src/java.base/share/classes/javax/crypto/spec/GCMParameterSpec.java index 879d729c2ca..bb5fe5cdd5c 100644 --- a/src/java.base/share/classes/javax/crypto/spec/GCMParameterSpec.java +++ b/src/java.base/share/classes/javax/crypto/spec/GCMParameterSpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -56,6 +56,12 @@ * applications. Other values can be specified for this class, but not * all CSP implementations will support them. * + * @spec https://www.rfc-editor.org/info/rfc5116 + * RFC 5116: An Interface and Algorithms for Authenticated Encryption + * @spec https://csrc.nist.gov/publications/nistpubs/800-38D/SP-800-38D.pdf + * Recommendation for Block Cipher Modes of Operation: Galois/Counter + * Mode (GCM) and GMAC + * * @see javax.crypto.Cipher * * @since 1.7 diff --git a/src/java.base/share/classes/javax/crypto/spec/OAEPParameterSpec.java b/src/java.base/share/classes/javax/crypto/spec/OAEPParameterSpec.java index efc8f370877..ba46399f044 100644 --- a/src/java.base/share/classes/javax/crypto/spec/OAEPParameterSpec.java +++ b/src/java.base/share/classes/javax/crypto/spec/OAEPParameterSpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -72,6 +72,8 @@ * EncodingParameters ::= OCTET STRING(SIZE(0..MAX)) * * + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @see java.security.spec.MGF1ParameterSpec * @see PSource * diff --git a/src/java.base/share/classes/javax/crypto/spec/PBEKeySpec.java b/src/java.base/share/classes/javax/crypto/spec/PBEKeySpec.java index b21b610e780..e47deab6fbe 100644 --- a/src/java.base/share/classes/javax/crypto/spec/PBEKeySpec.java +++ b/src/java.base/share/classes/javax/crypto/spec/PBEKeySpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -54,6 +54,8 @@ * this class requests the password as a char array, so it can be overwritten * when done. * + * @spec https://www.rfc-editor.org/info/rfc2898 + * RFC 2898: PKCS #5: Password-Based Cryptography Specification Version 2.0 * @author Jan Luehe * @author Valerie Peng * diff --git a/src/java.base/share/classes/javax/crypto/spec/PBEParameterSpec.java b/src/java.base/share/classes/javax/crypto/spec/PBEParameterSpec.java index 84d175dfd9f..a44822bafec 100644 --- a/src/java.base/share/classes/javax/crypto/spec/PBEParameterSpec.java +++ b/src/java.base/share/classes/javax/crypto/spec/PBEParameterSpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,6 +33,8 @@ * PKCS #5 * standard. * + * @spec https://www.rfc-editor.org/info/rfc2898 + * RFC 2898: PKCS #5: Password-Based Cryptography Specification Version 2.0 * @author Jan Luehe * * @since 1.4 diff --git a/src/java.base/share/classes/javax/crypto/spec/PSource.java b/src/java.base/share/classes/javax/crypto/spec/PSource.java index 1cd57c6f03b..19546a630de 100644 --- a/src/java.base/share/classes/javax/crypto/spec/PSource.java +++ b/src/java.base/share/classes/javax/crypto/spec/PSource.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,6 +42,9 @@ * } * EncodingParameters ::= OCTET STRING(SIZE(0..MAX)) * + * + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @author Valerie Peng * * @since 1.5 diff --git a/src/java.base/share/classes/javax/crypto/spec/RC2ParameterSpec.java b/src/java.base/share/classes/javax/crypto/spec/RC2ParameterSpec.java index 6c32ee119c5..3c2e5a57da6 100644 --- a/src/java.base/share/classes/javax/crypto/spec/RC2ParameterSpec.java +++ b/src/java.base/share/classes/javax/crypto/spec/RC2ParameterSpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -39,6 +39,8 @@ *

    This class can be used to initialize a {@code Cipher} object that * implements the RC2 algorithm. * + * @spec https://www.rfc-editor.org/info/rfc2268 + * RFC 2268: A Description of the RC2(r) Encryption Algorithm * @author Jan Luehe * * @since 1.4 diff --git a/src/java.base/share/classes/javax/crypto/spec/RC5ParameterSpec.java b/src/java.base/share/classes/javax/crypto/spec/RC5ParameterSpec.java index 67daf8bb19a..86d128afbf8 100644 --- a/src/java.base/share/classes/javax/crypto/spec/RC5ParameterSpec.java +++ b/src/java.base/share/classes/javax/crypto/spec/RC5ParameterSpec.java @@ -39,6 +39,8 @@ *

    This class can be used to initialize a {@code Cipher} object that * implements the RC5 algorithm. * + * @spec https://www.rfc-editor.org/info/rfc2040 + * RFC 2040: The RC5, RC5-CBC, RC5-CBC-Pad, and RC5-CTS Algorithms * @author Jan Luehe * * @since 1.4 diff --git a/src/java.base/share/classes/javax/crypto/spec/SecretKeySpec.java b/src/java.base/share/classes/javax/crypto/spec/SecretKeySpec.java index 2ad9a7748f2..d36510a21a8 100644 --- a/src/java.base/share/classes/javax/crypto/spec/SecretKeySpec.java +++ b/src/java.base/share/classes/javax/crypto/spec/SecretKeySpec.java @@ -98,6 +98,8 @@ public class SecretKeySpec implements KeySpec, SecretKey { * for information about standard algorithm names. * @exception IllegalArgumentException if algorithm * is null or key is null or empty. + * + * @spec security/standard-names.html Java Security Standard Algorithm Names */ public SecretKeySpec(byte[] key, String algorithm) { String errMsg = doSanityCheck(key, algorithm); @@ -144,6 +146,8 @@ public SecretKeySpec(byte[] key, String algorithm) { * @exception ArrayIndexOutOfBoundsException is thrown if * offset or len index bytes outside the * key. + * + * @spec security/standard-names.html Java Security Standard Algorithm Names */ public SecretKeySpec(byte[] key, int offset, int len, String algorithm) { if (key == null || algorithm == null) { diff --git a/src/java.base/share/classes/javax/net/ssl/ExtendedSSLSession.java b/src/java.base/share/classes/javax/net/ssl/ExtendedSSLSession.java index c1ddf221ab5..2b98f4845cf 100644 --- a/src/java.base/share/classes/javax/net/ssl/ExtendedSSLSession.java +++ b/src/java.base/share/classes/javax/net/ssl/ExtendedSSLSession.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -63,6 +63,7 @@ public ExtendedSSLSession() {} * order of preference. The return value is an empty array if * no signature algorithm is supported. * + * @spec security/standard-names.html Java Security Standard Algorithm Names * @see SSLParameters#getAlgorithmConstraints */ public abstract String[] getLocalSupportedSignatureAlgorithms(); @@ -86,6 +87,7 @@ public ExtendedSSLSession() {} * order of preference. The return value is an empty array if * the peer has not sent the supported signature algorithms. * + * @spec security/standard-names.html Java Security Standard Algorithm Names * @see X509KeyManager * @see X509ExtendedKeyManager */ diff --git a/src/java.base/share/classes/javax/net/ssl/SNIHostName.java b/src/java.base/share/classes/javax/net/ssl/SNIHostName.java index 5abb9df1200..039ee41aab0 100644 --- a/src/java.base/share/classes/javax/net/ssl/SNIHostName.java +++ b/src/java.base/share/classes/javax/net/ssl/SNIHostName.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -53,6 +53,11 @@ *

    * Note that {@code SNIHostName} objects are immutable. * + * @spec https://www.rfc-editor.org/info/rfc5890 + * RFC 5890: Internationalized Domain Names for Applications (IDNA): + * Definitions and Document Framework + * @spec https://www.rfc-editor.org/info/rfc6066 + * RFC 6066: Transport Layer Security (TLS) Extensions: Extension Definitions * @see SNIServerName * @see StandardConstants#SNI_HOST_NAME * @@ -92,6 +97,15 @@ public final class SNIHostName extends SNIServerName { * * @throws NullPointerException if {@code hostname} is {@code null} * @throws IllegalArgumentException if {@code hostname} is illegal + * + * @spec https://www.rfc-editor.org/info/rfc1122 + * RFC 1122: Requirements for Internet Hosts - Communication Layers + * @spec https://www.rfc-editor.org/info/rfc1123 + * RFC 1123: Requirements for Internet Hosts - Application and Support + * @spec https://www.rfc-editor.org/info/rfc3490 + * RFC 3490: Internationalizing Domain Names in Applications (IDNA) + * @spec https://www.rfc-editor.org/info/rfc6066 + * RFC 6066: Transport Layer Security (TLS) Extensions: Extension Definitions */ public SNIHostName(String hostname) { // IllegalArgumentException will be thrown if {@code hostname} is @@ -159,6 +173,17 @@ public SNIHostName(String hostname) { * * @throws NullPointerException if {@code encoded} is {@code null} * @throws IllegalArgumentException if {@code encoded} is illegal + * + * @spec https://www.rfc-editor.org/info/rfc1122 + * RFC 1122: Requirements for Internet Hosts - Communication Layers + * @spec https://www.rfc-editor.org/info/rfc1123 + * RFC 1123: Requirements for Internet Hosts - Application and Support + * @spec https://www.rfc-editor.org/info/rfc3490 + * RFC 3490: Internationalizing Domain Names in Applications (IDNA) + * @spec https://www.rfc-editor.org/info/rfc4366 + * RFC 4366: Transport Layer Security (TLS) Extensions + * @spec https://www.rfc-editor.org/info/rfc6066 + * RFC 6066: Transport Layer Security (TLS) Extensions: Extension Definitions */ public SNIHostName(byte[] encoded) { // NullPointerException will be thrown if {@code encoded} is null @@ -198,6 +223,11 @@ public SNIHostName(byte[] encoded) { * * @return the {@link StandardCharsets#US_ASCII}-compliant hostname * of this {@code SNIHostName} object + * + * @spec https://www.rfc-editor.org/info/rfc5890 + * RFC 5890: Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework + * @spec https://www.rfc-editor.org/info/rfc6066 + * RFC 6066: Transport Layer Security (TLS) Extensions: Extension Definitions */ public String getAsciiName() { return hostname; @@ -215,6 +245,9 @@ public String getAsciiName() { * the other server name object to compare with. * @return true if, and only if, the {@code other} is considered * equal to this instance + * + * @spec https://www.rfc-editor.org/info/rfc6066 + * RFC 6066: Transport Layer Security (TLS) Extensions: Extension Definitions */ @Override public boolean equals(Object other) { diff --git a/src/java.base/share/classes/javax/net/ssl/SNIServerName.java b/src/java.base/share/classes/javax/net/ssl/SNIServerName.java index 142bb33de8e..85eab316664 100644 --- a/src/java.base/share/classes/javax/net/ssl/SNIServerName.java +++ b/src/java.base/share/classes/javax/net/ssl/SNIServerName.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,6 +41,8 @@ * {@code SNIServerName} objects are immutable. Subclasses should not provide * methods that can change the state of an instance once it has been created. * + * @spec https://www.rfc-editor.org/info/rfc6066 + * RFC 6066: Transport Layer Security (TLS) Extensions: Extension Definitions * @see SSLParameters#getServerNames() * @see SSLParameters#setServerNames(List) * diff --git a/src/java.base/share/classes/javax/net/ssl/SSLEngine.java b/src/java.base/share/classes/javax/net/ssl/SSLEngine.java index 9a74c69f9f5..27f3c31e0e9 100644 --- a/src/java.base/share/classes/javax/net/ssl/SSLEngine.java +++ b/src/java.base/share/classes/javax/net/ssl/SSLEngine.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -413,6 +413,8 @@ * because there is no way to guarantee the eventual packet ordering. * * + * @spec https://www.rfc-editor.org/info/rfc2246 + * RFC 2246: The TLS Protocol Version 1.0 * @see SSLContext * @see SSLSocket * @see SSLServerSocket @@ -859,6 +861,8 @@ public abstract SSLEngineResult unwrap(ByteBuffer src, * if this engine has not received the proper SSL/TLS/DTLS close * notification message from the peer. * + * @spec https://www.rfc-editor.org/info/rfc2246 + * RFC 2246: The TLS Protocol Version 1.0 * @see #isInboundDone() * @see #isOutboundDone() */ @@ -1351,6 +1355,8 @@ public void setSSLParameters(SSLParameters params) { * Application-Layer Protocol Negotiation (ALPN), can negotiate * application-level values between peers. * + * @spec https://www.rfc-editor.org/info/rfc7301 + * RFC 7301: Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension * @implSpec * The implementation in this class throws * {@code UnsupportedOperationException} and performs no other action. diff --git a/src/java.base/share/classes/javax/net/ssl/SSLParameters.java b/src/java.base/share/classes/javax/net/ssl/SSLParameters.java index eabf0a13f67..e1f43994064 100644 --- a/src/java.base/share/classes/javax/net/ssl/SSLParameters.java +++ b/src/java.base/share/classes/javax/net/ssl/SSLParameters.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -300,6 +300,7 @@ public String getEndpointIdentificationAlgorithm() { * Java Security Standard Algorithm Names document * for information about standard algorithm names. * + * @spec security/standard-names.html Java Security Standard Algorithm Names * @see X509ExtendedTrustManager * * @since 1.7 @@ -674,6 +675,9 @@ public String[] getApplicationProtocols() { * @throws IllegalArgumentException if protocols is null, or if * any element in a non-empty array is null or an * empty (zero-length) string + * + * @spec https://www.rfc-editor.org/info/rfc7301 + * RFC 7301: Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension * @see #getApplicationProtocols * @since 9 */ diff --git a/src/java.base/share/classes/javax/net/ssl/SSLSocket.java b/src/java.base/share/classes/javax/net/ssl/SSLSocket.java index d0c3c9ac2dd..25d572a5616 100644 --- a/src/java.base/share/classes/javax/net/ssl/SSLSocket.java +++ b/src/java.base/share/classes/javax/net/ssl/SSLSocket.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -770,6 +770,9 @@ public void setSSLParameters(SSLParameters params) { * if a value was successfully negotiated. * @throws UnsupportedOperationException if the underlying provider * does not implement the operation. + * + * @spec https://www.rfc-editor.org/info/rfc7301 + * RFC 7301: Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension * @since 9 */ public String getApplicationProtocol() { diff --git a/src/java.base/share/classes/javax/net/ssl/SSLSocketFactory.java b/src/java.base/share/classes/javax/net/ssl/SSLSocketFactory.java index bd7c3d0157a..cb5e3318052 100644 --- a/src/java.base/share/classes/javax/net/ssl/SSLSocketFactory.java +++ b/src/java.base/share/classes/javax/net/ssl/SSLSocketFactory.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -198,6 +198,8 @@ public abstract Socket createSocket(Socket s, String host, * does not implement the operation * @throws NullPointerException if {@code s} is {@code null} * + * @spec https://www.rfc-editor.org/info/rfc6066 + * RFC 6066: Transport Layer Security (TLS) Extensions: Extension Definitions * @since 1.8 */ public Socket createSocket(Socket s, InputStream consumed, diff --git a/src/java.base/share/classes/javax/net/ssl/StandardConstants.java b/src/java.base/share/classes/javax/net/ssl/StandardConstants.java index 8e1df977b97..ca560390cb1 100644 --- a/src/java.base/share/classes/javax/net/ssl/StandardConstants.java +++ b/src/java.base/share/classes/javax/net/ssl/StandardConstants.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -49,6 +49,8 @@ private StandardConstants() { *

    * The value of this constant is {@value}. * + * @spec https://www.rfc-editor.org/info/rfc6066 + * RFC 6066: Transport Layer Security (TLS) Extensions: Extension Definitions * @see SNIServerName * @see SNIHostName */ diff --git a/src/java.base/share/classes/javax/net/ssl/package-info.java b/src/java.base/share/classes/javax/net/ssl/package-info.java index f41b3b7f19a..cdf3b2246f6 100644 --- a/src/java.base/share/classes/javax/net/ssl/package-info.java +++ b/src/java.base/share/classes/javax/net/ssl/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -36,6 +36,7 @@ * * * + * @spec security/standard-names.html Java Security Standard Algorithm Names * @since 1.4 */ package javax.net.ssl; diff --git a/src/java.base/share/classes/javax/security/auth/login/package-info.java b/src/java.base/share/classes/javax/security/auth/login/package-info.java index 70d25f1acaa..658f219f20b 100644 --- a/src/java.base/share/classes/javax/security/auth/login/package-info.java +++ b/src/java.base/share/classes/javax/security/auth/login/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,6 +33,7 @@ * * * + * @spec security/standard-names.html Java Security Standard Algorithm Names * @since 1.4 */ package javax.security.auth.login; diff --git a/src/java.base/share/classes/javax/security/auth/x500/X500Principal.java b/src/java.base/share/classes/javax/security/auth/x500/X500Principal.java index efc5b7891b8..93e34ad65ef 100644 --- a/src/java.base/share/classes/javax/security/auth/x500/X500Principal.java +++ b/src/java.base/share/classes/javax/security/auth/x500/X500Principal.java @@ -60,6 +60,14 @@ * {@code X509Certificate} return X500Principals representing the * issuer and subject fields of the certificate. * + * @spec https://www.rfc-editor.org/info/rfc1779 + * RFC 1779: A String Representation of Distinguished Names + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names + * @spec https://www.rfc-editor.org/info/rfc5280 + * RFC 5280: Internet X.509 Public Key Infrastructure Certificate + * and Certificate Revocation List (CRL) Profile * @see java.security.cert.X509Certificate * @since 1.4 */ @@ -141,6 +149,10 @@ public X500Principal asX500Principal(X500Name name) { * is {@code null} * @exception IllegalArgumentException if the {@code name} * is improperly specified + * + * @spec https://www.rfc-editor.org/info/rfc4512 + * RFC 4512: Lightweight Directory Access Protocol (LDAP): + * Directory Information Models */ public X500Principal(String name) { this(name, Collections.emptyMap()); @@ -181,6 +193,10 @@ public X500Principal(String name) { * @exception IllegalArgumentException if the {@code name} is * improperly specified or a keyword in the {@code name} maps to an * OID that is not in the correct form + * + * @spec https://www.rfc-editor.org/info/rfc4512 + * RFC 4512: Lightweight Directory Access Protocol (LDAP): + * Directory Information Models * @since 1.6 */ public X500Principal(String name, Map keywordMap) { diff --git a/src/java.base/share/classes/javax/security/auth/x500/package-info.java b/src/java.base/share/classes/javax/security/auth/x500/package-info.java index 45859a79bed..b2afa89d251 100644 --- a/src/java.base/share/classes/javax/security/auth/x500/package-info.java +++ b/src/java.base/share/classes/javax/security/auth/x500/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,6 +44,17 @@ * Directory Information Models * * + * @spec https://www.rfc-editor.org/info/rfc1779 + * RFC 1779: A String Representation of Distinguished Names + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names + * @spec https://www.rfc-editor.org/info/rfc4512 + * RFC 4512: Lightweight Directory Access Protocol (LDAP): + * Directory Information Models + * @spec https://www.rfc-editor.org/info/rfc5280 + * RFC 5280: Internet X.509 Public Key Infrastructure Certificate + * and Certificate Revocation List (CRL) Profile * @since 1.4 */ package javax.security.auth.x500; From 6648524bd718f90ed43bcd70d856d88240e3805f Mon Sep 17 00:00:00 2001 From: Alexey Semenyuk Date: Sat, 26 Oct 2024 14:01:19 +0000 Subject: [PATCH 002/159] 8343102: Remove `--compress` from jlink command lines from jpackage tests Reviewed-by: almatvee --- test/jdk/tools/jpackage/share/RuntimeImageTest.java | 9 ++------- test/jdk/tools/jpackage/share/RuntimePackageTest.java | 3 +-- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/test/jdk/tools/jpackage/share/RuntimeImageTest.java b/test/jdk/tools/jpackage/share/RuntimeImageTest.java index 44088778589..64908b6ac99 100644 --- a/test/jdk/tools/jpackage/share/RuntimeImageTest.java +++ b/test/jdk/tools/jpackage/share/RuntimeImageTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,7 +25,6 @@ import java.nio.file.Path; import jdk.jpackage.test.TKit; import jdk.jpackage.test.Annotations.Test; -import jdk.jpackage.test.Annotations.Parameter; import jdk.jpackage.test.JPackageCommand; import jdk.jpackage.test.JavaTool; import jdk.jpackage.test.Executor; @@ -45,10 +44,7 @@ public class RuntimeImageTest { @Test - @Parameter("0") - @Parameter("1") - @Parameter("2") - public static void test(String compression) throws Exception { + public static void test() throws Exception { final Path workDir = TKit.createTempDirectory("runtime").resolve("data"); final Path jlinkOutputDir = workDir.resolve("temp.runtime"); Files.createDirectories(jlinkOutputDir.getParent()); @@ -58,7 +54,6 @@ public static void test(String compression) throws Exception { .dumpOutput() .addArguments( "--output", jlinkOutputDir.toString(), - "--compress=" + compression, "--add-modules", "ALL-MODULE-PATH", "--strip-debug", "--no-header-files", diff --git a/test/jdk/tools/jpackage/share/RuntimePackageTest.java b/test/jdk/tools/jpackage/share/RuntimePackageTest.java index 12edff1cea5..da58ed3a73c 100644 --- a/test/jdk/tools/jpackage/share/RuntimePackageTest.java +++ b/test/jdk/tools/jpackage/share/RuntimePackageTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -113,7 +113,6 @@ private static PackageTest init(Set types) { .dumpOutput() .addArguments( "--output", runtimeImageDir.toString(), - "--compress=0", "--add-modules", "ALL-MODULE-PATH", "--strip-debug", "--no-header-files", From 0995dd6a3f4eefa02280e10754ceeffc3eb85c69 Mon Sep 17 00:00:00 2001 From: Chen Liang Date: Sat, 26 Oct 2024 14:45:04 +0000 Subject: [PATCH 003/159] 8342865: Use type parameter for Class::getPrimitiveClass Reviewed-by: darcy --- src/java.base/share/classes/java/lang/Boolean.java | 3 +-- src/java.base/share/classes/java/lang/Byte.java | 3 +-- src/java.base/share/classes/java/lang/Character.java | 3 +-- src/java.base/share/classes/java/lang/Class.java | 6 +++--- src/java.base/share/classes/java/lang/Double.java | 3 +-- src/java.base/share/classes/java/lang/Float.java | 3 +-- src/java.base/share/classes/java/lang/Integer.java | 3 +-- src/java.base/share/classes/java/lang/Long.java | 3 +-- src/java.base/share/classes/java/lang/Short.java | 3 +-- src/java.base/share/classes/java/lang/Void.java | 5 ++--- 10 files changed, 13 insertions(+), 22 deletions(-) diff --git a/src/java.base/share/classes/java/lang/Boolean.java b/src/java.base/share/classes/java/lang/Boolean.java index 38b830fc0cf..31507f60e37 100644 --- a/src/java.base/share/classes/java/lang/Boolean.java +++ b/src/java.base/share/classes/java/lang/Boolean.java @@ -78,8 +78,7 @@ public final class Boolean implements java.io.Serializable, * * @since 1.1 */ - @SuppressWarnings("unchecked") - public static final Class TYPE = (Class) Class.getPrimitiveClass("boolean"); + public static final Class TYPE = Class.getPrimitiveClass("boolean"); /** * The value of the Boolean. diff --git a/src/java.base/share/classes/java/lang/Byte.java b/src/java.base/share/classes/java/lang/Byte.java index 35a537a0903..c78e11ae067 100644 --- a/src/java.base/share/classes/java/lang/Byte.java +++ b/src/java.base/share/classes/java/lang/Byte.java @@ -79,8 +79,7 @@ public final class Byte extends Number implements Comparable, Constable { * The {@code Class} instance representing the primitive type * {@code byte}. */ - @SuppressWarnings("unchecked") - public static final Class TYPE = (Class) Class.getPrimitiveClass("byte"); + public static final Class TYPE = Class.getPrimitiveClass("byte"); /** * Returns a new {@code String} object representing the diff --git a/src/java.base/share/classes/java/lang/Character.java b/src/java.base/share/classes/java/lang/Character.java index 5844805c858..101eabcbcc0 100644 --- a/src/java.base/share/classes/java/lang/Character.java +++ b/src/java.base/share/classes/java/lang/Character.java @@ -232,8 +232,7 @@ class Character implements java.io.Serializable, Comparable, Constabl * * @since 1.1 */ - @SuppressWarnings("unchecked") - public static final Class TYPE = (Class) Class.getPrimitiveClass("char"); + public static final Class TYPE = Class.getPrimitiveClass("char"); /* * Normative general types diff --git a/src/java.base/share/classes/java/lang/Class.java b/src/java.base/share/classes/java/lang/Class.java index 79cd57011b0..93a675c83a4 100644 --- a/src/java.base/share/classes/java/lang/Class.java +++ b/src/java.base/share/classes/java/lang/Class.java @@ -3278,10 +3278,10 @@ ProtectionDomain protectionDomain() { private native ProtectionDomain getProtectionDomain0(); /* - * Return the Virtual Machine's Class object for the named - * primitive type. + * Returns the Class object for the named primitive type. Type parameter T + * avoids redundant casts for trusted code. */ - static native Class getPrimitiveClass(String name); + static native Class getPrimitiveClass(String name); /* * Check if client is allowed to access members. If access is denied, diff --git a/src/java.base/share/classes/java/lang/Double.java b/src/java.base/share/classes/java/lang/Double.java index 7216e20d6c3..ed23f7d39c9 100644 --- a/src/java.base/share/classes/java/lang/Double.java +++ b/src/java.base/share/classes/java/lang/Double.java @@ -459,8 +459,7 @@ public final class Double extends Number * * @since 1.1 */ - @SuppressWarnings("unchecked") - public static final Class TYPE = (Class) Class.getPrimitiveClass("double"); + public static final Class TYPE = Class.getPrimitiveClass("double"); /** * Returns a string representation of the {@code double} diff --git a/src/java.base/share/classes/java/lang/Float.java b/src/java.base/share/classes/java/lang/Float.java index af076e9417b..821a05fa00a 100644 --- a/src/java.base/share/classes/java/lang/Float.java +++ b/src/java.base/share/classes/java/lang/Float.java @@ -175,8 +175,7 @@ public final class Float extends Number * * @since 1.1 */ - @SuppressWarnings("unchecked") - public static final Class TYPE = (Class) Class.getPrimitiveClass("float"); + public static final Class TYPE = Class.getPrimitiveClass("float"); /** * Returns a string representation of the {@code float} diff --git a/src/java.base/share/classes/java/lang/Integer.java b/src/java.base/share/classes/java/lang/Integer.java index 5f64c1b8660..84fa5303ac7 100644 --- a/src/java.base/share/classes/java/lang/Integer.java +++ b/src/java.base/share/classes/java/lang/Integer.java @@ -95,8 +95,7 @@ public final class Integer extends Number * * @since 1.1 */ - @SuppressWarnings("unchecked") - public static final Class TYPE = (Class) Class.getPrimitiveClass("int"); + public static final Class TYPE = Class.getPrimitiveClass("int"); /** * All possible chars for representing a number as a String diff --git a/src/java.base/share/classes/java/lang/Long.java b/src/java.base/share/classes/java/lang/Long.java index 5f4c2b15d03..78a2402ba0e 100644 --- a/src/java.base/share/classes/java/lang/Long.java +++ b/src/java.base/share/classes/java/lang/Long.java @@ -95,8 +95,7 @@ public final class Long extends Number * * @since 1.1 */ - @SuppressWarnings("unchecked") - public static final Class TYPE = (Class) Class.getPrimitiveClass("long"); + public static final Class TYPE = Class.getPrimitiveClass("long"); /** * Returns a string representation of the first argument in the diff --git a/src/java.base/share/classes/java/lang/Short.java b/src/java.base/share/classes/java/lang/Short.java index 914d9cc67db..a2d31ee07c3 100644 --- a/src/java.base/share/classes/java/lang/Short.java +++ b/src/java.base/share/classes/java/lang/Short.java @@ -79,8 +79,7 @@ public final class Short extends Number implements Comparable, Constable * The {@code Class} instance representing the primitive type * {@code short}. */ - @SuppressWarnings("unchecked") - public static final Class TYPE = (Class) Class.getPrimitiveClass("short"); + public static final Class TYPE = Class.getPrimitiveClass("short"); /** * Returns a new {@code String} object representing the diff --git a/src/java.base/share/classes/java/lang/Void.java b/src/java.base/share/classes/java/lang/Void.java index 3ea0e79e61c..9a3adafec33 100644 --- a/src/java.base/share/classes/java/lang/Void.java +++ b/src/java.base/share/classes/java/lang/Void.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -39,8 +39,7 @@ class Void { * The {@code Class} object representing the pseudo-type corresponding to * the keyword {@code void}. */ - @SuppressWarnings("unchecked") - public static final Class TYPE = (Class) Class.getPrimitiveClass("void"); + public static final Class TYPE = Class.getPrimitiveClass("void"); /* * The Void class cannot be instantiated. From 719aa58ba626ae51afe508d4994c1b25c030a8a3 Mon Sep 17 00:00:00 2001 From: Chen Liang Date: Sat, 26 Oct 2024 14:45:19 +0000 Subject: [PATCH 004/159] 8335880: More troubleshooting tips around windows space in path Reviewed-by: erikj, ihse --- doc/building.html | 16 ++++++++++++---- doc/building.md | 14 +++++++++++--- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/doc/building.html b/doc/building.html index c91d876246c..63af224584a 100644 --- a/doc/building.html +++ b/doc/building.html @@ -2016,10 +2016,18 @@

    Spaces in Path

    have short paths. You can run fsutil file setshortname in -cmd on certain directories, such as -Microsoft Visual Studio or Windows Kits, to -assign arbitrary short paths so configure can access -them.

    +cmd on directories to assign arbitrary short paths so +configure can access them. If the result says "Access +denied", it may be that there are processes running in that directory; +in this case, you can reboot Windows in safe mode and run the command on +those directories again.

    +

    The only directories required to have short paths are +Microsoft Visual Studio and Windows Kits; the +rest of the "contains space" warnings from configure, such +as IntelliJ IDEA, can be ignored. You can choose any short +name; once it is set, configure's tools like +cygpath can convert the directory with spaces to your +chosen short name and pass it to the build system.

    Getting Help

    If none of the suggestions in this document helps you, or if you find what you believe is a bug in the build system, please contact the Build diff --git a/doc/building.md b/doc/building.md index 47ad9e7c72b..466e8d7edf8 100644 --- a/doc/building.md +++ b/doc/building.md @@ -1800,9 +1800,17 @@ temporarily. On Windows, when configuring, `fixpath.sh` may report that some directory names have spaces. Usually, it assumes those directories have [short paths](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/fsutil-8dot3name). -You can run `fsutil file setshortname` in `cmd` on certain directories, such as -`Microsoft Visual Studio` or `Windows Kits`, to assign arbitrary short paths so -`configure` can access them. +You can run `fsutil file setshortname` in `cmd` on directories to assign +arbitrary short paths so `configure` can access them. If the result says "Access +denied", it may be that there are processes running in that directory; in this +case, you can reboot Windows in safe mode and run the command on those directories +again. + +The only directories required to have short paths are `Microsoft Visual Studio` +and `Windows Kits`; the rest of the "contains space" warnings from `configure`, +such as `IntelliJ IDEA`, can be ignored. You can choose any short name; once it +is set, `configure`'s tools like `cygpath` can convert the directory with spaces +to your chosen short name and pass it to the build system. ### Getting Help From c5ce2174381932f316371237f0d27070a3f00d15 Mon Sep 17 00:00:00 2001 From: Andrey Turbanov Date: Sat, 26 Oct 2024 17:59:15 +0000 Subject: [PATCH 005/159] 8342083: Make a few fields in FileSystemPreferences final Reviewed-by: jpai, bpb --- .../classes/java/util/prefs/FileSystemPreferences.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/java.prefs/unix/classes/java/util/prefs/FileSystemPreferences.java b/src/java.prefs/unix/classes/java/util/prefs/FileSystemPreferences.java index 5f0531c0ff7..756eedade72 100644 --- a/src/java.prefs/unix/classes/java/util/prefs/FileSystemPreferences.java +++ b/src/java.prefs/unix/classes/java/util/prefs/FileSystemPreferences.java @@ -450,7 +450,7 @@ private void replayChanges() { changeLog.get(i).replay(); } - private static Timer syncTimer = new Timer(true); // Daemon Thread + private static final Timer syncTimer = new Timer(true); // Daemon Thread static { addShutdownHook(); @@ -540,7 +540,7 @@ public Void run() { } }); if (newNode) { - // These 2 things guarantee node will get wrtten at next flush/sync + // These 2 things guarantee node will get written at next flush/sync prefsCache = new TreeMap<>(); nodeCreate = new NodeCreate(); changeLog.add(nodeCreate); @@ -1008,12 +1008,12 @@ private void checkLockFile0ErrorCode (int errorCode) * Initial time between lock attempts, in ms. The time is doubled * after each failing attempt (except the first). */ - private static int INIT_SLEEP_TIME = 50; + private static final int INIT_SLEEP_TIME = 50; /** * Maximum number of lock attempts. */ - private static int MAX_ATTEMPTS = 5; + private static final int MAX_ATTEMPTS = 5; /** * Release the appropriate file lock (user or system). From fedcdcfdba1cda41d775c696970bccd125cb2ed3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonathan=20Lamp=C3=A9rth?= Date: Mon, 28 Oct 2024 09:42:03 +0000 Subject: [PATCH 006/159] 8034066: Incorrect alignment in the "Code" section for "-c -XDdetails" options Reviewed-by: jvernee, liach --- .../com/sun/tools/javap/ClassWriter.java | 4 +- .../com/sun/tools/javap/CodeWriter.java | 26 ++-- .../javap/ClassWriterCodeIndentTest.java | 113 ++++++++++++++++++ 3 files changed, 133 insertions(+), 10 deletions(-) create mode 100644 test/langtools/tools/javap/ClassWriterCodeIndentTest.java diff --git a/src/jdk.jdeps/share/classes/com/sun/tools/javap/ClassWriter.java b/src/jdk.jdeps/share/classes/com/sun/tools/javap/ClassWriter.java index 77fbce8839e..92a0c06c1c3 100644 --- a/src/jdk.jdeps/share/classes/com/sun/tools/javap/ClassWriter.java +++ b/src/jdk.jdeps/share/classes/com/sun/tools/javap/ClassWriter.java @@ -576,9 +576,7 @@ protected void writeMethod(MethodModel m) { attrWriter.write(m.attributes()); } else if (code != null) { if (options.showDisassembled) { - println("Code:"); - codeWriter.writeInstrs(code); - codeWriter.writeExceptionTable(code); + codeWriter.writeMinimal(code); } if (options.showLineAndLocalVariableTables) { diff --git a/src/jdk.jdeps/share/classes/com/sun/tools/javap/CodeWriter.java b/src/jdk.jdeps/share/classes/com/sun/tools/javap/CodeWriter.java index 8f6b9b1d2ed..cb401c9f197 100644 --- a/src/jdk.jdeps/share/classes/com/sun/tools/javap/CodeWriter.java +++ b/src/jdk.jdeps/share/classes/com/sun/tools/javap/CodeWriter.java @@ -70,13 +70,11 @@ protected CodeWriter(Context context) { } void write(CodeAttribute attr) { - println("Code:"); - indent(+1); - writeVerboseHeader(attr); - writeInstrs(attr); - writeExceptionTable(attr); - attrWriter.write(attr.attributes(), attr); - indent(-1); + writeInternal(attr, false); + } + + void writeMinimal(CodeAttribute attr) { + writeInternal(attr, true); } public void writeVerboseHeader(CodeAttribute attr) { @@ -259,6 +257,20 @@ private List getDetailWriters(CodeAttribute attr) { return detailWriters; } + private void writeInternal(CodeAttribute attr, boolean minimal) { + println("Code:"); + indent(+1); + if (!minimal) { + writeVerboseHeader(attr); + } + writeInstrs(attr); + writeExceptionTable(attr); + if (!minimal) { + attrWriter.write(attr.attributes(), attr); + } + indent(-1); + } + private AttributeWriter attrWriter; private ClassWriter classWriter; private ConstantWriter constantWriter; diff --git a/test/langtools/tools/javap/ClassWriterCodeIndentTest.java b/test/langtools/tools/javap/ClassWriterCodeIndentTest.java new file mode 100644 index 00000000000..993c0a4364a --- /dev/null +++ b/test/langtools/tools/javap/ClassWriterCodeIndentTest.java @@ -0,0 +1,113 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8034066 + * @summary javap incorrect indentation when CodeWriter called via ClassWriter + * @run main ClassWriterCodeIndentTest + * @modules jdk.jdeps/com.sun.tools.javap + */ + +import java.io.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class ClassWriterCodeIndentTest { + public static void main(String[] args) { + new ClassWriterCodeIndentTest().run(); + } + + public void run() { + /* + * Partial expected output within a larger file. There exists another "Code: " section above, and thus we + * select the second occurrence in `findNthMatchPrecedingSpaces(output, "Code:", 1);` + * ... + * Code: + * 0: iconst_0 + * 1: istore_1 + * StackMap locals: this int + * StackMap stack: + * ... + */ + String output = javap(); + + int codeHeaderIndent = findNthMatchPrecedingSpaces(output, "Code:", 1); + int detailIndent = findNthMatchPrecedingSpaces(output, "StackMap ", 0); + int bytecodeIndent = findNthMatchPrecedingSpaces(output, "0: iconst_0", 0); + + if (detailIndent - codeHeaderIndent != 2) { + error("Details are not indented correctly with respect to code header."); + } + + if (bytecodeIndent - codeHeaderIndent != 5) { + error("Bytecode is not indented correctly with respect to code header."); + } + + if (errors > 0) { + throw new Error(errors + " found."); + } + } + + String javap() { + StringWriter sw = new StringWriter(); + PrintWriter out = new PrintWriter(sw); + int rc = com.sun.tools.javap.Main.run(new String[]{"-c", "-XDdetails:stackMaps", + System.getProperty("test.classes") + "/EmptyLoop.class"}, out); + if (rc != 0) + throw new Error("javap failed. rc=" + rc); + out.close(); + System.out.println(sw.toString()); + return sw.toString(); + } + + public static int findNthMatchPrecedingSpaces(String inputString, String searchString, int occurrence) { + String regex = "^(\\s*)" + Pattern.quote(searchString); + Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE); + Matcher matcher = pattern.matcher(inputString); + + int count = 0; + while (matcher.find()) { + if (count == occurrence) { + return matcher.group(1).length(); + } + count++; + } + + throw new Error("Could not find " + searchString + " in " + inputString); + } + + void error(String msg) { + System.err.println(msg); + errors++; + } + + int errors; +} + +class EmptyLoop { + public void emptyLoop() { + for (int i = 0; i < 10; i++) { + } + } +} \ No newline at end of file From 724c495cb09b4f3a806b1a1e0c1fd1a2a2f2e4ef Mon Sep 17 00:00:00 2001 From: Coleen Phillimore Date: Mon, 28 Oct 2024 13:48:23 +0000 Subject: [PATCH 007/159] 8342561: Metaspace for generated reflection classes is no longer needed Reviewed-by: shade, stuefe --- .../metaspace/test_arenagrowthpolicy.cpp | 4 +-- .../gtest/metaspace/test_metaspacearena.cpp | 35 +++++-------------- .../metaspace/test_metaspacearena_stress.cpp | 2 +- 3 files changed, 11 insertions(+), 30 deletions(-) diff --git a/test/hotspot/gtest/metaspace/test_arenagrowthpolicy.cpp b/test/hotspot/gtest/metaspace/test_arenagrowthpolicy.cpp index a37af058e09..80e6c1d77da 100644 --- a/test/hotspot/gtest/metaspace/test_arenagrowthpolicy.cpp +++ b/test/hotspot/gtest/metaspace/test_arenagrowthpolicy.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2020 SAP SE. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -61,8 +61,6 @@ TEST_VM(metaspace, arena_growth_policy_##spacetype##_##is_class) { \ test_arena_growth_policy(Metaspace::spacetype, is_class); \ } -DEFINE_GROWTH_POLICY_TEST(ReflectionMetaspaceType, true) -DEFINE_GROWTH_POLICY_TEST(ReflectionMetaspaceType, false) DEFINE_GROWTH_POLICY_TEST(ClassMirrorHolderMetaspaceType, true) DEFINE_GROWTH_POLICY_TEST(ClassMirrorHolderMetaspaceType, false) DEFINE_GROWTH_POLICY_TEST(StandardMetaspaceType, true) diff --git a/test/hotspot/gtest/metaspace/test_metaspacearena.cpp b/test/hotspot/gtest/metaspace/test_metaspacearena.cpp index aee53ea32aa..2e5a6d40ce7 100644 --- a/test/hotspot/gtest/metaspace/test_metaspacearena.cpp +++ b/test/hotspot/gtest/metaspace/test_metaspacearena.cpp @@ -218,7 +218,8 @@ class MetaspaceArenaTestHelper { static void test_basics(size_t commit_limit, bool is_micro) { MetaspaceGtestContext context(commit_limit); - MetaspaceArenaTestHelper helper(context, is_micro ? Metaspace::ReflectionMetaspaceType : Metaspace::StandardMetaspaceType, false); + const Metaspace::MetaspaceType type = is_micro ? Metaspace::ClassMirrorHolderMetaspaceType : Metaspace::StandardMetaspaceType; + MetaspaceArenaTestHelper helper(context, type, false); helper.allocate_from_arena_with_tests(1); helper.allocate_from_arena_with_tests(128); @@ -278,11 +279,11 @@ TEST_VM(metaspace, MetaspaceArena_test_enlarge_in_place_standard_nc) { } TEST_VM(metaspace, MetaspaceArena_test_enlarge_in_place_micro_c) { - test_chunk_enlargment_simple(Metaspace::ReflectionMetaspaceType, true); + test_chunk_enlargment_simple(Metaspace::ClassMirrorHolderMetaspaceType, true); } TEST_VM(metaspace, MetaspaceArena_test_enlarge_in_place_micro_nc) { - test_chunk_enlargment_simple(Metaspace::ReflectionMetaspaceType, false); + test_chunk_enlargment_simple(Metaspace::ClassMirrorHolderMetaspaceType, false); } // Test chunk enlargement: @@ -434,8 +435,8 @@ static void test_recover_from_commit_limit_hit() { // The first MetaspaceArena mimicks a micro loader. This will fill the free // chunk list with very small chunks. We allocate from them in an interleaved // way to cause fragmentation. - MetaspaceArenaTestHelper helper1(context, Metaspace::ReflectionMetaspaceType, false); - MetaspaceArenaTestHelper helper2(context, Metaspace::ReflectionMetaspaceType, false); + MetaspaceArenaTestHelper helper1(context, Metaspace::ClassMirrorHolderMetaspaceType, false); + MetaspaceArenaTestHelper helper2(context, Metaspace::ClassMirrorHolderMetaspaceType, false); // This MetaspaceArena should hit the limit. We use BootMetaspaceType here since // it gets a large initial chunk which is committed @@ -495,7 +496,9 @@ static void test_controlled_growth(Metaspace::MetaspaceType type, bool is_class, MetaspaceGtestContext context; MetaspaceArenaTestHelper smhelper(context, type, is_class, "Grower"); - MetaspaceArenaTestHelper smhelper_harrasser(context, Metaspace::ReflectionMetaspaceType, true, "Harasser"); + const Metaspace::MetaspaceType other_type = + (type == Metaspace::StandardMetaspaceType) ? Metaspace::ClassMirrorHolderMetaspaceType : Metaspace::StandardMetaspaceType; + MetaspaceArenaTestHelper smhelper_harrasser(context, other_type, true, "Harasser"); size_t used = 0, committed = 0, capacity = 0; const size_t alloc_words = 16; @@ -617,16 +620,6 @@ static void test_controlled_growth(Metaspace::MetaspaceType type, bool is_class, } // these numbers have to be in sync with arena policy numbers (see memory/metaspace/arenaGrowthPolicy.cpp) -TEST_VM(metaspace, MetaspaceArena_growth_refl_c_inplace) { - test_controlled_growth(Metaspace::ReflectionMetaspaceType, true, - word_size_for_level(CHUNK_LEVEL_1K), true); -} - -TEST_VM(metaspace, MetaspaceArena_growth_refl_c_not_inplace) { - test_controlled_growth(Metaspace::ReflectionMetaspaceType, true, - word_size_for_level(CHUNK_LEVEL_1K), false); -} - TEST_VM(metaspace, MetaspaceArena_growth_anon_c_inplace) { test_controlled_growth(Metaspace::ClassMirrorHolderMetaspaceType, true, word_size_for_level(CHUNK_LEVEL_1K), true); @@ -660,16 +653,6 @@ TEST_VM(metaspace, MetaspaceArena_growth_boot_c_not_inplace) { } */ -TEST_VM(metaspace, MetaspaceArena_growth_refl_nc_inplace) { - test_controlled_growth(Metaspace::ReflectionMetaspaceType, false, - word_size_for_level(CHUNK_LEVEL_2K), true); -} - -TEST_VM(metaspace, MetaspaceArena_growth_refl_nc_not_inplace) { - test_controlled_growth(Metaspace::ReflectionMetaspaceType, false, - word_size_for_level(CHUNK_LEVEL_2K), false); -} - TEST_VM(metaspace, MetaspaceArena_growth_anon_nc_inplace) { test_controlled_growth(Metaspace::ClassMirrorHolderMetaspaceType, false, word_size_for_level(CHUNK_LEVEL_1K), true); diff --git a/test/hotspot/gtest/metaspace/test_metaspacearena_stress.cpp b/test/hotspot/gtest/metaspace/test_metaspacearena_stress.cpp index e94f733e45b..bb536dfd0e2 100644 --- a/test/hotspot/gtest/metaspace/test_metaspacearena_stress.cpp +++ b/test/hotspot/gtest/metaspace/test_metaspacearena_stress.cpp @@ -227,7 +227,7 @@ class MetaspaceArenaTest { void create_random_test_bed_at(int slotindex) { SizeRange allocation_range(1, 100); // randomize too? const ArenaGrowthPolicy* growth_policy = ArenaGrowthPolicy::policy_for_space_type( - (fifty_fifty() ? Metaspace::StandardMetaspaceType : Metaspace::ReflectionMetaspaceType), + (fifty_fifty() ? Metaspace::StandardMetaspaceType : Metaspace::ClassMirrorHolderMetaspaceType), fifty_fifty()); create_new_test_bed_at(slotindex, growth_policy, allocation_range); } From 415320de1ed466f426cd43c1a83db7de7fe0fbe4 Mon Sep 17 00:00:00 2001 From: Matias Saavedra Silva Date: Mon, 28 Oct 2024 14:31:35 +0000 Subject: [PATCH 008/159] 8341371: CDS cannot load archived heap objects with -XX:+UseSerialGC -XX:-UseCompressedOops Reviewed-by: ccheung, iklam --- .../cds/appcds/TestEpsilonGCWithCDS.java | 32 ++++++++++++++++++- .../cds/appcds/TestParallelGCWithCDS.java | 32 +++++++++++++++++++ .../cds/appcds/TestSerialGCWithCDS.java | 24 +++----------- .../cds/appcds/TestShenandoahWithCDS.java | 27 ++++++++++++++++ 4 files changed, 95 insertions(+), 20 deletions(-) diff --git a/test/hotspot/jtreg/runtime/cds/appcds/TestEpsilonGCWithCDS.java b/test/hotspot/jtreg/runtime/cds/appcds/TestEpsilonGCWithCDS.java index fe7c5a4ae31..132f63ba850 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/TestEpsilonGCWithCDS.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/TestEpsilonGCWithCDS.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,16 +37,41 @@ * @run driver TestEpsilonGCWithCDS */ +// Below is exactly the same as above, except: +// - requires vm.bits == "64" +// - extra argument "false" + +/* + * @test Loading CDS archived heap objects into EpsilonGC + * @bug 8234679 8341371 + * @requires vm.cds + * @requires vm.gc.Epsilon + * @requires vm.gc.G1 + * @requires vm.bits == "64" + * + * @comment don't run this test if any -XX::+Use???GC options are specified, since they will + * interfere with the test. + * @requires vm.gc == null + * + * @library /test/lib /test/hotspot/jtreg/runtime/cds/appcds + * @compile test-classes/Hello.java + * @run driver TestEpsilonGCWithCDS false + */ import jdk.test.lib.Platform; import jdk.test.lib.process.OutputAnalyzer; public class TestEpsilonGCWithCDS { public final static String HELLO = "Hello World"; static String helloJar; + static boolean useCompressedOops = true; public static void main(String... args) throws Exception { helloJar = JarBuilder.build("hello", "Hello"); + if (args.length > 0 && args[0].equals("false")) { + useCompressedOops = false; + } + // Check if we can use EpsilonGC during dump time, or run time, or both. test(false, true); test(true, false); @@ -70,6 +95,8 @@ static void test(boolean dumpWithEpsilon, boolean execWithEpsilon, boolean useSm String execGC = execWithEpsilon ? Epsilon : G1; String small1 = useSmallRegions ? "-Xmx256m" : "-showversion"; String small2 = useSmallRegions ? "-XX:ObjectAlignmentInBytes=64" : "-showversion"; + String errMsg = "Cannot use CDS heap data. Selected GC not compatible -XX:-UseCompressedOops"; + String coops = useCompressedOops ? "-XX:+UseCompressedOops" : "-XX:-UseCompressedOops"; OutputAnalyzer out; System.out.println("0. Dump with " + dumpGC); @@ -79,6 +106,7 @@ static void test(boolean dumpWithEpsilon, boolean execWithEpsilon, boolean useSm dumpGC, small1, small2, + coops, "-Xlog:cds"); out.shouldContain("Dumping shared data to file:"); out.shouldHaveExitValue(0); @@ -89,9 +117,11 @@ static void test(boolean dumpWithEpsilon, boolean execWithEpsilon, boolean useSm execGC, small1, small2, + coops, "-Xlog:cds", "Hello"); out.shouldContain(HELLO); + out.shouldNotContain(errMsg); out.shouldHaveExitValue(0); } } diff --git a/test/hotspot/jtreg/runtime/cds/appcds/TestParallelGCWithCDS.java b/test/hotspot/jtreg/runtime/cds/appcds/TestParallelGCWithCDS.java index 691c87fef36..705df07f841 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/TestParallelGCWithCDS.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/TestParallelGCWithCDS.java @@ -37,16 +37,41 @@ * @run driver TestParallelGCWithCDS */ +// Below is exactly the same as above, except: +// - requires vm.bits == "64" +// - extra argument "false" + + /* + * @test Loading CDS archived heap objects into ParallelGC + * @bug 8274788 8341371 + * @requires vm.cds + * @requires vm.gc.Parallel + * @requires vm.gc.G1 + * @requires vm.bits == "64" + * + * @comment don't run this test if any -XX::+Use???GC options are specified, since they will + * interfere with the test. + * @requires vm.gc == null + * + * @library /test/lib /test/hotspot/jtreg/runtime/cds/appcds + * @compile test-classes/Hello.java + * @run driver TestParallelGCWithCDS false + */ import jdk.test.lib.Platform; import jdk.test.lib.process.OutputAnalyzer; public class TestParallelGCWithCDS { public final static String HELLO = "Hello World"; static String helloJar; + static boolean useCompressedOops = true; public static void main(String... args) throws Exception { helloJar = JarBuilder.build("hello", "Hello"); + if (args.length > 0 && args[0].equals("false")) { + useCompressedOops = false; + } + // Check if we can use ParallelGC during dump time, or run time, or both. test(false, true); test(true, false); @@ -69,6 +94,8 @@ static void test(boolean dumpWithParallel, boolean execWithParallel, boolean use String execGC = execWithParallel ? Parallel : G1; String small1 = useSmallRegions ? "-Xmx256m" : "-showversion"; String small2 = useSmallRegions ? "-XX:ObjectAlignmentInBytes=64" : "-showversion"; + String errMsg = "Cannot use CDS heap data. Selected GC not compatible -XX:-UseCompressedOops"; + String coops = useCompressedOops ? "-XX:+UseCompressedOops" : "-XX:-UseCompressedOops"; OutputAnalyzer out; System.out.println("0. Dump with " + dumpGC); @@ -77,6 +104,7 @@ static void test(boolean dumpWithParallel, boolean execWithParallel, boolean use dumpGC, small1, small2, + coops, "-Xlog:cds"); out.shouldContain("Dumping shared data to file:"); out.shouldHaveExitValue(0); @@ -86,9 +114,11 @@ static void test(boolean dumpWithParallel, boolean execWithParallel, boolean use execGC, small1, small2, + coops, "-Xlog:cds", "Hello"); out.shouldContain(HELLO); + out.shouldNotContain(errMsg); out.shouldHaveExitValue(0); int n = 2; @@ -109,10 +139,12 @@ static void test(boolean dumpWithParallel, boolean execWithParallel, boolean use small1, small2, xmx, + coops, "-Xlog:cds", "Hello"); if (out.getExitValue() == 0) { out.shouldContain(HELLO); + out.shouldNotContain(errMsg); } else { String pattern = "((Too small maximum heap)" + "|(GC triggered before VM initialization completed)" + diff --git a/test/hotspot/jtreg/runtime/cds/appcds/TestSerialGCWithCDS.java b/test/hotspot/jtreg/runtime/cds/appcds/TestSerialGCWithCDS.java index 8c8cb4d932a..b191b5f395b 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/TestSerialGCWithCDS.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/TestSerialGCWithCDS.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -98,6 +98,7 @@ static void test(boolean dumpWithSerial, boolean execWithSerial, boolean useSmal String execGC = execWithSerial ? Serial : G1; String small1 = useSmallRegions ? "-Xmx256m" : DUMMY; String small2 = useSmallRegions ? "-XX:ObjectAlignmentInBytes=64" : DUMMY; + String errMsg = "Cannot use CDS heap data. Selected GC not compatible -XX:-UseCompressedOops"; String coops; if (Platform.is64bit()) { coops = useCompressedOops ? "-XX:+UseCompressedOops" : "-XX:-UseCompressedOops"; @@ -125,7 +126,7 @@ static void test(boolean dumpWithSerial, boolean execWithSerial, boolean useSmal coops, "-Xlog:cds", "Hello"); - checkExecOutput(dumpWithSerial, execWithSerial, out); + out.shouldNotContain(errMsg); System.out.println("2. Exec with " + execGC + " and test ArchiveRelocationMode"); out = TestCommon.exec(helloJar, @@ -136,7 +137,7 @@ static void test(boolean dumpWithSerial, boolean execWithSerial, boolean useSmal "-Xlog:cds,cds+heap", "-XX:ArchiveRelocationMode=1", // always relocate shared metadata "Hello"); - checkExecOutput(dumpWithSerial, execWithSerial, out); + out.shouldNotContain(errMsg); int n = 2; if (dumpWithSerial == false && execWithSerial == true) { @@ -160,7 +161,7 @@ static void test(boolean dumpWithSerial, boolean execWithSerial, boolean useSmal "-Xlog:cds", "Hello"); if (out.getExitValue() == 0) { - checkExecOutput(dumpWithSerial, execWithSerial, out); + out.shouldNotContain(errMsg); } else { String output = out.getStdout() + out.getStderr(); String exp1 = "Too small maximum heap"; @@ -173,19 +174,4 @@ static void test(boolean dumpWithSerial, boolean execWithSerial, boolean useSmal } } } - - static void checkExecOutput(boolean dumpWithSerial, boolean execWithSerial, OutputAnalyzer out) { - String errMsg = "Cannot use CDS heap data. UseG1GC is required for -XX:-UseCompressedOops"; - if (Platform.is64bit() && - !Platform.isWindows() && // archive heap not supported on Windows. - !dumpWithSerial && // Dumped with G1, so we have an archived heap - execWithSerial && // Running with serial - !useCompressedOops) { // ArchiveHeapLoader::can_load() always returns false when COOP is disabled - out.shouldContain(errMsg); - } - if (!execWithSerial) { - // We should never see this message with G1 - out.shouldNotContain(errMsg); - } - } } diff --git a/test/hotspot/jtreg/runtime/cds/appcds/TestShenandoahWithCDS.java b/test/hotspot/jtreg/runtime/cds/appcds/TestShenandoahWithCDS.java index 83442c1e159..d8bbfee504b 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/TestShenandoahWithCDS.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/TestShenandoahWithCDS.java @@ -35,16 +35,38 @@ * @run driver TestShenandoahWithCDS */ +// Below is exactly the same as above, except: +// - requires vm.bits == "64" +// - extra argument "false" + +/* + * @test + * @bug 8293650 8341371 + * @requires vm.cds + * @requires vm.bits == 64 + * @requires vm.gc.Shenandoah + * @requires vm.gc.G1 + * @requires vm.gc == null + * @library /test/lib /test/hotspot/jtreg/runtime/cds/appcds + * @compile test-classes/Hello.java + * @run driver TestShenandoahWithCDS false + */ + import jdk.test.lib.Platform; import jdk.test.lib.process.OutputAnalyzer; public class TestShenandoahWithCDS { public final static String HELLO = "Hello World"; static String helloJar; + static boolean useCompressedOops = true; public static void main(String... args) throws Exception { helloJar = JarBuilder.build("hello", "Hello"); + if (args.length > 0 && args[0].equals("false")) { + useCompressedOops = false; + } + // Run with the variety of region sizes, and combinations // of G1/Shenandoah at dump/exec times. "-1" means to use G1. final int[] regionSizes = { -1, 256, 512, 1024, 2048 }; @@ -62,6 +84,8 @@ static void test(int dumpRegionSize, int execRegionSize) throws Exception { String optExecGC = (execRegionSize != -1) ? "-XX:+UseShenandoahGC" : "-XX:+UseG1GC"; String optDumpRegionSize = (dumpRegionSize != -1) ? "-XX:ShenandoahRegionSize=" + dumpRegionSize + "K" : exp; String optExecRegionSize = (execRegionSize != -1) ? "-XX:ShenandoahRegionSize=" + execRegionSize + "K" : exp; + String errMsg = "Cannot use CDS heap data. Selected GC not compatible -XX:-UseCompressedOops"; + String coops = useCompressedOops ? "-XX:+UseCompressedOops" : "-XX:-UseCompressedOops"; OutputAnalyzer out; System.out.println("0. Dump with " + optDumpGC + " and " + optDumpRegionSize); @@ -71,6 +95,7 @@ static void test(int dumpRegionSize, int execRegionSize) throws Exception { "-Xmx1g", optDumpGC, optDumpRegionSize, + coops, "-Xlog:cds"); out.shouldContain("Dumping shared data to file:"); out.shouldHaveExitValue(0); @@ -81,9 +106,11 @@ static void test(int dumpRegionSize, int execRegionSize) throws Exception { "-Xmx1g", optExecGC, optExecRegionSize, + coops, "-Xlog:cds", "Hello"); out.shouldContain(HELLO); + out.shouldNotContain(errMsg); out.shouldHaveExitValue(0); } } From e9de2ce140e63f1fdf22de1c6b38b6580c1ea663 Mon Sep 17 00:00:00 2001 From: Jatin Bhateja Date: Mon, 28 Oct 2024 16:30:29 +0000 Subject: [PATCH 009/159] 8338021: Support new unsigned and saturating vector operators in VectorAPI Reviewed-by: psandoz, epeter, sviswanathan --- .../jdk/internal/vm/vector/VectorSupport.java | 7 + .../jdk/incubator/vector/ByteVector.java | 12 + .../jdk/incubator/vector/IntVector.java | 12 + .../jdk/incubator/vector/LongVector.java | 12 + .../jdk/incubator/vector/ShortVector.java | 12 + .../jdk/incubator/vector/VectorMath.java | 586 ++++++++++++++++++ .../jdk/incubator/vector/VectorOperators.java | 36 +- .../incubator/vector/X-Vector.java.template | 12 + .../vectorapi/VectorCompareWithImmTest.java | 16 +- .../vectorapi/VectorCompareWithZeroTest.java | 6 +- .../incubator/vector/Byte128VectorTests.java | 326 +++++++++- .../incubator/vector/Byte256VectorTests.java | 326 +++++++++- .../incubator/vector/Byte512VectorTests.java | 326 +++++++++- .../incubator/vector/Byte64VectorTests.java | 326 +++++++++- .../incubator/vector/ByteMaxVectorTests.java | 326 +++++++++- .../incubator/vector/Int128VectorTests.java | 326 +++++++++- .../incubator/vector/Int256VectorTests.java | 326 +++++++++- .../incubator/vector/Int512VectorTests.java | 326 +++++++++- .../incubator/vector/Int64VectorTests.java | 326 +++++++++- .../incubator/vector/IntMaxVectorTests.java | 326 +++++++++- .../incubator/vector/Long128VectorTests.java | 326 +++++++++- .../incubator/vector/Long256VectorTests.java | 326 +++++++++- .../incubator/vector/Long512VectorTests.java | 326 +++++++++- .../incubator/vector/Long64VectorTests.java | 326 +++++++++- .../incubator/vector/LongMaxVectorTests.java | 326 +++++++++- .../incubator/vector/Short128VectorTests.java | 326 +++++++++- .../incubator/vector/Short256VectorTests.java | 326 +++++++++- .../incubator/vector/Short512VectorTests.java | 326 +++++++++- .../incubator/vector/Short64VectorTests.java | 326 +++++++++- .../incubator/vector/ShortMaxVectorTests.java | 326 +++++++++- .../jdk/incubator/vector/VectorMathTest.java | 245 ++++++++ test/jdk/jdk/incubator/vector/gen-template.sh | 22 +- ...Kernel-SaturatingBinary-Masked-op.template | 13 + .../Kernel-SaturatingBinary-op.template | 11 + .../Unit-SaturatingBinary-Masked-op.template | 7 + .../Unit-SaturatingBinary-op.template | 10 + .../vector/templates/Unit-header.template | 58 ++ 37 files changed, 7257 insertions(+), 340 deletions(-) create mode 100644 src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorMath.java create mode 100644 test/jdk/jdk/incubator/vector/VectorMathTest.java create mode 100644 test/jdk/jdk/incubator/vector/templates/Kernel-SaturatingBinary-Masked-op.template create mode 100644 test/jdk/jdk/incubator/vector/templates/Kernel-SaturatingBinary-op.template create mode 100644 test/jdk/jdk/incubator/vector/templates/Unit-SaturatingBinary-Masked-op.template create mode 100644 test/jdk/jdk/incubator/vector/templates/Unit-SaturatingBinary-op.template diff --git a/src/java.base/share/classes/jdk/internal/vm/vector/VectorSupport.java b/src/java.base/share/classes/jdk/internal/vm/vector/VectorSupport.java index 63cab418d46..afd6cc62ce5 100644 --- a/src/java.base/share/classes/jdk/internal/vm/vector/VectorSupport.java +++ b/src/java.base/share/classes/jdk/internal/vm/vector/VectorSupport.java @@ -114,6 +114,13 @@ public class VectorSupport { public static final int VECTOR_OP_EXPM1 = 117; public static final int VECTOR_OP_HYPOT = 118; + public static final int VECTOR_OP_SADD = 119; + public static final int VECTOR_OP_SSUB = 120; + public static final int VECTOR_OP_SUADD = 121; + public static final int VECTOR_OP_SUSUB = 122; + public static final int VECTOR_OP_UMIN = 123; + public static final int VECTOR_OP_UMAX = 124; + // See src/hotspot/share/opto/subnode.hpp // struct BoolTest, and enclosed enum mask public static final int BT_eq = 0; // 0000 diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteVector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteVector.java index 11c0fda80a4..f36215ffe12 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteVector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteVector.java @@ -884,6 +884,18 @@ private static BinaryOperation> binaryOperations(in v0.bOp(v1, vm, (i, a, n) -> rotateLeft(a, (int)n)); case VECTOR_OP_RROTATE: return (v0, v1, vm) -> v0.bOp(v1, vm, (i, a, n) -> rotateRight(a, (int)n)); + case VECTOR_OP_UMAX: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (byte)VectorMath.maxUnsigned(a, b)); + case VECTOR_OP_UMIN: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (byte)VectorMath.minUnsigned(a, b)); + case VECTOR_OP_SADD: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (byte)(VectorMath.addSaturating(a, b))); + case VECTOR_OP_SSUB: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (byte)(VectorMath.subSaturating(a, b))); + case VECTOR_OP_SUADD: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (byte)(VectorMath.addSaturatingUnsigned(a, b))); + case VECTOR_OP_SUSUB: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (byte)(VectorMath.subSaturatingUnsigned(a, b))); default: return null; } } diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntVector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntVector.java index b61e2fc991e..6cb81767cdd 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntVector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntVector.java @@ -884,6 +884,18 @@ private static BinaryOperation> binaryOperations( v0.bOp(v1, vm, (i, a, n) -> rotateLeft(a, (int)n)); case VECTOR_OP_RROTATE: return (v0, v1, vm) -> v0.bOp(v1, vm, (i, a, n) -> rotateRight(a, (int)n)); + case VECTOR_OP_UMAX: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (int)VectorMath.maxUnsigned(a, b)); + case VECTOR_OP_UMIN: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (int)VectorMath.minUnsigned(a, b)); + case VECTOR_OP_SADD: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (int)(VectorMath.addSaturating(a, b))); + case VECTOR_OP_SSUB: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (int)(VectorMath.subSaturating(a, b))); + case VECTOR_OP_SUADD: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (int)(VectorMath.addSaturatingUnsigned(a, b))); + case VECTOR_OP_SUSUB: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (int)(VectorMath.subSaturatingUnsigned(a, b))); case VECTOR_OP_COMPRESS_BITS: return (v0, v1, vm) -> v0.bOp(v1, vm, (i, a, n) -> Integer.compress(a, n)); case VECTOR_OP_EXPAND_BITS: return (v0, v1, vm) -> diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongVector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongVector.java index 68166bd9852..a740c9d49cf 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongVector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongVector.java @@ -842,6 +842,18 @@ private static BinaryOperation> binaryOperations(in v0.bOp(v1, vm, (i, a, n) -> rotateLeft(a, (int)n)); case VECTOR_OP_RROTATE: return (v0, v1, vm) -> v0.bOp(v1, vm, (i, a, n) -> rotateRight(a, (int)n)); + case VECTOR_OP_UMAX: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (long)VectorMath.maxUnsigned(a, b)); + case VECTOR_OP_UMIN: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (long)VectorMath.minUnsigned(a, b)); + case VECTOR_OP_SADD: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (long)(VectorMath.addSaturating(a, b))); + case VECTOR_OP_SSUB: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (long)(VectorMath.subSaturating(a, b))); + case VECTOR_OP_SUADD: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (long)(VectorMath.addSaturatingUnsigned(a, b))); + case VECTOR_OP_SUSUB: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (long)(VectorMath.subSaturatingUnsigned(a, b))); case VECTOR_OP_COMPRESS_BITS: return (v0, v1, vm) -> v0.bOp(v1, vm, (i, a, n) -> Long.compress(a, n)); case VECTOR_OP_EXPAND_BITS: return (v0, v1, vm) -> diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortVector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortVector.java index 2f1ea210b90..0e3ff9aaa87 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortVector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortVector.java @@ -884,6 +884,18 @@ private static BinaryOperation> binaryOperations( v0.bOp(v1, vm, (i, a, n) -> rotateLeft(a, (int)n)); case VECTOR_OP_RROTATE: return (v0, v1, vm) -> v0.bOp(v1, vm, (i, a, n) -> rotateRight(a, (int)n)); + case VECTOR_OP_UMAX: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (short)VectorMath.maxUnsigned(a, b)); + case VECTOR_OP_UMIN: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (short)VectorMath.minUnsigned(a, b)); + case VECTOR_OP_SADD: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (short)(VectorMath.addSaturating(a, b))); + case VECTOR_OP_SSUB: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (short)(VectorMath.subSaturating(a, b))); + case VECTOR_OP_SUADD: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (short)(VectorMath.addSaturatingUnsigned(a, b))); + case VECTOR_OP_SUSUB: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (short)(VectorMath.subSaturatingUnsigned(a, b))); default: return null; } } diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorMath.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorMath.java new file mode 100644 index 00000000000..0d590d2d49a --- /dev/null +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorMath.java @@ -0,0 +1,586 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package jdk.incubator.vector; + +/** + * The class {@code VectorMath} contains methods for performing + * scalar numeric operations in support of vector numeric operations. + * @since 24 + */ +public final class VectorMath { + + private VectorMath() { + } + + /** + * Returns the smaller of two {@code long} values numerically treating + * the values as unsigned. That is, the result is the operand closer + * to the value of the expression {@code 0L}. If the operands have the + * same value, the result is that same value. + * + * @param a the first operand. + * @param b the second operand. + * @return the smaller of {@code a} and {@code b}. + * @see VectorOperators#UMIN + */ + public static long minUnsigned(long a, long b) { + return Long.compareUnsigned(a, b) < 0 ? a : b; + } + + /** + * Returns the greater of two {@code long} values numerically treating + * the values as unsigned. That is, the result is the operand closer + * to the value of the expression {@code 0xFFFFFFFF_FFFFFFFFL} numerically + * treating it as unsigned. If the operands have the same value, + * the result is that same value. + * + * @param a the first operand. + * @param b the second operand. + * @return the larger of {@code a} and {@code b}. + * @see VectorOperators#UMAX + */ + public static long maxUnsigned(long a, long b) { + return Long.compareUnsigned(a, b) > 0 ? a : b; + } + + /** + * Adds two {@code long} values using saturation + * arithemetic. The lower and upper (inclusive) bounds are + * {@code Long.MIN_VALUE} and {@code Long.MAX_VALUE}, respectively. + *

    + * If the result of the addition would otherwise overflow from + * a positive value to a negative value then the result is clamped + * to the upper bound {@code Long.MAX_VALUE}. + * If the result of the addition would otherwise underflow from + * a negative value to a positive value then the result is clamped + * to lower bound {@code Long.MIN_VALUE}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating addition of the operands. + * @see VectorOperators#SADD + */ + public static long addSaturating(long a, long b) { + long res = a + b; + // HD 2-12 Overflow iff both arguments have the opposite sign of the result + if (((a ^ res) & (b ^ res)) < 0) { + return res < 0 ? Long.MAX_VALUE : Long.MIN_VALUE; + } else { + return res; + } + } + + /** + * Subtracts two {@code long} values using saturation + * arithemetic. The lower and upper (inclusive) bounds are + * {@code Long.MIN_VALUE} and {@code Long.MAX_VALUE}, respectively. + *

    + * If the result of the subtraction would otherwise overflow from + * a positive value to a negative value then the result is clamped + * to the upper bound {@code Long.MAX_VALUE}. + * If the result of the subtraction would otherwise underflow from + * a negative value to a positive value then the result is clamped + * to lower bound {@code Long.MIN_VALUE}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating difference of the operands. + * @see VectorOperators#SSUB + */ + public static long subSaturating(long a, long b) { + long res = a - b; + // HD 2-12 Overflow iff the arguments have different signs and + // the sign of the result is different from the sign of a + if (((a ^ b) & (a ^ res)) < 0) { + return a < 0 ? Long.MIN_VALUE : Long.MAX_VALUE; + } else { + return res; + } + } + + /** + * Adds two {@code long} values using saturation + * arithemetic and numerically treating the values + * as unsigned. The lower and upper (inclusive) bounds + * are {@code 0L} and {@code 0xFFFFFFFF_FFFFFFFFL}, respectively, + * numerically treating them as unsigned. + *

    + * If the result of the unsigned addition would otherwise overflow + * from the greater of the two operands to a lesser value then the + * result is clamped to the upper bound {@code 0xFFFFFFFF_FFFFFFFFL}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating addition of the operands. + * @see VectorOperators#SUADD + */ + public static long addSaturatingUnsigned(long a, long b) { + long res = a + b; + boolean overflow = Long.compareUnsigned(res, (a | b)) < 0; + if (overflow) { + return -1L; + } else { + return res; + } + } + + /** + * Subtracts two {@code long} values using saturation + * arithemetic and numerically treating the values + * as unsigned. The lower and upper (inclusive) bounds + * are {@code 0L} and {@code 0xFFFFFFFF_FFFFFFFFL}, respectively, + * numerically treating them as unsigned. + *

    + * If the result of the unsigned subtraction would otherwise underflow + * from the lesser of the two operands to a greater value then the + * result is clamped to the lower bound {@code 0L}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating difference of the operands. + * @see VectorOperators#SUSUB + */ + public static long subSaturatingUnsigned(long a, long b) { + if (Long.compareUnsigned(b, a) < 0) { + return a - b; + } else { + return 0; + } + } + + + /** + * Returns the smaller of two {@code int} values numerically treating + * the values as unsigned. That is, the result is the operand closer + * to the value of the expression {@code 0}. If the operands have the + * same value, the result is that same value. + * + * @param a the first operand. + * @param b the second operand. + * @return the smaller of {@code a} and {@code b}. + * @see VectorOperators#UMIN + */ + public static int minUnsigned(int a, int b) { + return Integer.compareUnsigned(a, b) < 0 ? a : b; + } + + /** + * Returns the greater of two {@code int} values numerically treating + * the values as unsigned. That is, the result is the operand closer + * to the value of the expression {@code 0xFFFFFFFF} numerically + * treating it as unsigned. If the operands have the same value, + * the result is that same value. + * + * @param a the first operand. + * @param b the second operand. + * @return the larger of {@code a} and {@code b}. + * @see VectorOperators#UMAX + */ + public static int maxUnsigned(int a, int b) { + return Integer.compareUnsigned(a, b) > 0 ? a : b; + } + + /** + * Adds two {@code int} values using saturation + * arithemetic. The lower and upper (inclusive) bounds are + * {@code Integer.MIN_VALUE} and {@code Integer.MAX_VALUE}, respectively. + *

    + * If the result of the addition would otherwise overflow from + * a positive value to a negative value then the result is clamped + * to the upper bound {@code Integer.MAX_VALUE}. + * If the result of the addition would otherwise underflow from + * a negative value to a positive value then the result is clamped + * to lower bound {@code Integer.MIN_VALUE}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating addition of the operands. + * @see VectorOperators#SADD + */ + public static int addSaturating(int a, int b) { + long res = (long)a + (long)b; + if (res > Integer.MAX_VALUE) { + return Integer.MAX_VALUE; + } else if (res < Integer.MIN_VALUE) { + return Integer.MIN_VALUE; + } else { + return (int)res; + } + } + + /** + * Subtracts two {@code int} values using saturation + * arithemetic. The lower and upper (inclusive) bounds are + * {@code Integer.MIN_VALUE} and {@code Integer.MAX_VALUE}, respectively. + *

    + * If the result of the subtraction would otherwise overflow from + * a positive value to a negative value then the result is clamped + * to the upper bound {@code Integer.MAX_VALUE}. + * If the result of the subtraction would otherwise underflow from + * a negative value to a positive value then the result is clamped + * to lower bound {@code Integer.MIN_VALUE}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating difference of the operands. + * @see VectorOperators#SSUB + */ + public static int subSaturating(int a, int b) { + long res = (long)a - (long)b; + if (res > Integer.MAX_VALUE) { + return Integer.MAX_VALUE; + } else if (res < Integer.MIN_VALUE) { + return Integer.MIN_VALUE; + } else { + return (int)res; + } + } + + /** + * Adds two {@code int} values using saturation + * arithemetic and numerically treating the values + * as unsigned. The lower and upper (inclusive) bounds + * are {@code 0} and {@code 0xFFFFFFFF}, respectively, + * numerically treating them as unsigned. + *

    + * If the result of the unsigned addition would otherwise overflow + * from the greater of the two operands to a lesser value then the + * result is clamped to the upper bound {@code 0xFFFFFFFF}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating addition of the operands. + * @see VectorOperators#SUADD + */ + public static int addSaturatingUnsigned(int a, int b) { + int res = a + b; + boolean overflow = Integer.compareUnsigned(res, (a | b)) < 0; + if (overflow) { + return -1; + } else { + return res; + } + } + + /** + * Subtracts two {@code int} values using saturation + * arithemetic and numerically treating the values + * as unsigned. The lower and upper (inclusive) bounds + * are {@code 0} and {@code -0xFFFFFFFF}, respectively, + * numerically treating them as unsigned. + *

    + * If the result of the unsigned subtraction would otherwise underflow + * from the lesser of the two operands to a greater value then the + * result is clamped to the lower bound {@code 0}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating difference of the operands. + * @see VectorOperators#SUSUB + */ + public static int subSaturatingUnsigned(int a, int b) { + if (Integer.compareUnsigned(b, a) < 0) { + return a - b; + } else { + return 0; + } + } + + + /** + * Returns the smaller of two {@code short} values numerically treating + * the values as unsigned. That is, the result is the operand closer + * to the value of the expression {@code 0}. If the operands have the + * same value, the result is that same value. + * + * @param a the first operand. + * @param b the second operand. + * @return the smaller of {@code a} and {@code b}. + * @see VectorOperators#UMIN + */ + public static short minUnsigned(short a, short b) { + return Short.compareUnsigned(a, b) < 0 ? a : b; + } + + /** + * Returns the greater of two {@code short} values numerically treating + * the values as unsigned. That is, the result is the operand closer + * to the value of the expression {@code 0xFFFF} numerically + * treating it as unsigned. If the operands have the same value, + * the result is that same value. + * + * @param a the first operand. + * @param b the second operand. + * @return the larger of {@code a} and {@code b}. + * @see VectorOperators#UMAX + */ + public static short maxUnsigned(short a, short b) { + return Short.compareUnsigned(a, b) > 0 ? a : b; + } + + /** + * Adds two {@code short} values using saturation + * arithemetic. The lower and upper (inclusive) bounds are + * {@code Short.MIN_VALUE} and {@code Short.MAX_VALUE}, respectively. + *

    + * If the result of the addition would otherwise overflow from + * a positive value to a negative value then the result is clamped + * to the upper bound {@code Short.MAX_VALUE}. + * If the result of the addition would otherwise underflow from + * a negative value to a positive value then the result is clamped + * to lower bound {@code Short.MIN_VALUE}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating addition of the operands. + * @see VectorOperators#SADD + */ + public static short addSaturating(short a, short b) { + int res = a + b; + if (res > Short.MAX_VALUE) { + return Short.MAX_VALUE; + } else if (res < Short.MIN_VALUE) { + return Short.MIN_VALUE; + } else { + return (short)res; + } + } + + /** + * Subtracts two {@code short} values using saturation + * arithemetic. The lower and upper (inclusive) bounds are + * {@code Short.MIN_VALUE} and {@code Short.MAX_VALUE}, respectively. + *

    + * If the result of the subtraction would otherwise overflow from + * a positive value to a negative value then the result is clamped + * to the upper bound {@code Short.MAX_VALUE}. + * If the result of the subtraction would otherwise underflow from + * a negative value to a positive value then the result is clamped + * to lower bound {@code Short.MIN_VALUE}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating difference of the operands. + * @see VectorOperators#SSUB + */ + public static short subSaturating(short a, short b) { + int res = a - b; + if (res > Short.MAX_VALUE) { + return Short.MAX_VALUE; + } else if (res < Short.MIN_VALUE) { + return Short.MIN_VALUE; + } else { + return (short)res; + } + } + + /** + * Adds two {@code short} values using saturation + * arithemetic and numerically treating the values + * as unsigned. The lower and upper (inclusive) bounds + * are {@code 0} and {@code 0xFFFF}, respectively, + * numerically treating them as unsigned. + *

    + * If the result of the unsigned addition would otherwise overflow + * from the greater of the two operands to a lesser value then the + * result is clamped to the upper bound {@code 0xFFFF}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating addition of the operands. + * @see VectorOperators#SUADD + */ + public static short addSaturatingUnsigned(short a, short b) { + short res = (short)(a + b); + boolean overflow = Short.compareUnsigned(res, (short)(a | b)) < 0; + if (overflow) { + return (short)(-1); + } else { + return res; + } + } + + /** + * Subtracts two {@code short} values using saturation + * arithemetic and numerically treating the values + * as unsigned. The lower and upper (inclusive) bounds + * are {@code 0} and {@code 0xFFFF}, respectively, + * numerically treating them as unsigned. + *

    + * If the result of the unsigned subtraction would otherwise underflow + * from the lesser of the two operands to a greater value then the + * result is clamped to the lower bound {@code 0}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating difference of the operands. + * @see VectorOperators#SUSUB + */ + public static short subSaturatingUnsigned(short a, short b) { + if (Short.compareUnsigned(b, a) < 0) { + return (short)(a - b); + } else { + return 0; + } + } + + + /** + * Returns the smaller of two {@code byte} values numerically treating + * the values as unsigned. That is, the result is the operand closer + * to the value of the expression {@code 0}. If the operands have the + * same value, the result is that same value. + * + * @param a the first operand. + * @param b the second operand. + * @return the smaller of {@code a} and {@code b}. + * @see VectorOperators#UMIN + */ + public static byte minUnsigned(byte a, byte b) { + return Byte.compareUnsigned(a, b) < 0 ? a : b; + } + + /** + * Returns the greater of two {@code byte} values numerically treating + * the values as unsigned. That is, the result is the operand closer + * to the value of the expression {@code 0xFF} numerically + * treating it as unsigned. If the operands have the same value, + * the result is that same value. + * + * @param a the first operand. + * @param b the second operand. + * @return the larger of {@code a} and {@code b}. + * @see VectorOperators#UMAX + */ + public static byte maxUnsigned(byte a, byte b) { + return Byte.compareUnsigned(a, b) > 0 ? a : b; + } + + /** + * Adds two {@code byte} values using saturation + * arithemetic. The lower and upper (inclusive) bounds are + * {@code Byte.MIN_VALUE} and {@code Byte.MAX_VALUE}, respectively. + *

    + * If the result of the addition would otherwise overflow from + * a positive value to a negative value then the result is clamped + * to the upper bound {@code Byte.MAX_VALUE}. + * If the result of the addition would otherwise underflow from + * a negative value to a positive value then the result is clamped + * to lower bound {@code Byte.MIN_VALUE}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating addition of the operands. + * @see VectorOperators#SADD + */ + public static byte addSaturating(byte a, byte b) { + int res = a + b; + if (res > Byte.MAX_VALUE) { + return Byte.MAX_VALUE; + } else if (res < Byte.MIN_VALUE) { + return Byte.MIN_VALUE; + } else { + return (byte)res; + } + } + + /** + * Subtracts two {@code byte} values using saturation + * arithemetic. The lower and upper (inclusive) bounds are + * {@code Byte.MIN_VALUE} and {@code Byte.MAX_VALUE}, respectively. + *

    + * If the result of the subtraction would otherwise overflow from + * a positive value to a negative value then the result is clamped + * to the upper bound {@code Byte.MAX_VALUE}. + * If the result of the subtraction would otherwise underflow from + * a negative value to a positive value then the result is clamped + * to lower bound {@code Byte.MIN_VALUE}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating difference of the operands. + * @see VectorOperators#SSUB + */ + public static byte subSaturating(byte a, byte b) { + int res = a - b; + if (res > Byte.MAX_VALUE) { + return Byte.MAX_VALUE; + } else if (res < Byte.MIN_VALUE) { + return Byte.MIN_VALUE; + } else { + return (byte)res; + } + } + + /** + * Adds two {@code byte} values using saturation + * arithemetic and numerically treating the values + * as unsigned. The lower and upper (inclusive) bounds + * are {@code 0} and {@code 0xFF}, respectively, + * numerically treating them as unsigned. + *

    + * If the result of the unsigned addition would otherwise overflow + * from the greater of the two operands to a lesser value then the + * result is clamped to the upper bound {@code 0xFF}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating addition of the operands. + * @see VectorOperators#SUADD + */ + public static byte addSaturatingUnsigned(byte a, byte b) { + byte res = (byte)(a + b); + boolean overflow = Byte.compareUnsigned(res, (byte)(a | b)) < 0; + if (overflow) { + return (byte)(-1); + } else { + return res; + } + } + + /** + * Subtracts two {@code byte} values using saturation + * arithemetic and numerically treating the values + * as unsigned. The lower and upper (inclusive) bounds + * are {@code 0} and {@code 0xFF}, respectively, + * numerically treating them as unsigned. + *

    + * If the result of the unsigned subtraction would otherwise underflow + * from the lesser of the two operands to a greater value then the + * result is clamped to the lower bound {@code 0}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating difference of the operands. + * @see VectorOperators#SUSUB + */ + public static byte subSaturatingUnsigned(byte a, byte b) { + if (Byte.compareUnsigned(b, a) < 0) { + return (byte)(a - b); + } else { + return 0; + } + } +} diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorOperators.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorOperators.java index 38c4b1c94fe..fa70d65c742 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorOperators.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorOperators.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -567,6 +567,32 @@ static boolean opKind(Operator op, int bit) { /** Produce {@code a^b}. Integral only. */ public static final /*bitwise*/ Associative XOR = assoc("XOR", "^", VectorSupport.VECTOR_OP_XOR, VO_NOFP+VO_ASSOC); + /** Produce saturating {@code a+b}. Integral only. + * @see VectorMath#addSaturating(int, int) + */ + public static final Binary SADD = binary("SADD", "+", VectorSupport.VECTOR_OP_SADD, VO_NOFP); + /** Produce saturating unsigned {@code a+b}. Integral only. + * @see VectorMath#addSaturatingUnsigned(int, int) + */ + public static final Binary SUADD = binary("SUADD", "+", VectorSupport.VECTOR_OP_SUADD, VO_NOFP); + /** Produce saturating {@code a-b}. Integral only. + * @see VectorMath#subSaturating(int, int) + */ + public static final Binary SSUB = binary("SSUB", "-", VectorSupport.VECTOR_OP_SSUB, VO_NOFP); + /** Produce saturating unsigned {@code a-b}. Integral only. + * @see VectorMath#subSaturatingUnsigned(int, int) + */ + public static final Binary SUSUB = binary("SUSUB", "-", VectorSupport.VECTOR_OP_SUSUB, VO_NOFP); + /** Produce unsigned {@code min(a,b)}. Integral only. + * @see VectorMath#minUnsigned(int, int) (int, int) + */ + public static final Associative UMIN = assoc("UMIN", "umin", VectorSupport.VECTOR_OP_UMIN, VO_NOFP+VO_ASSOC); + /** Produce unsigned {@code max(a,b)}. Integral only. + * @see VectorMath#maxUnsigned(int, int) (int, int) + */ + public static final Associative UMAX = assoc("UMAX", "umax", VectorSupport.VECTOR_OP_UMAX, VO_NOFP+VO_ASSOC); + + /** Produce {@code a<<(n&(ESIZE*8-1))}. Integral only. */ public static final /*bitwise*/ Binary LSHL = binary("LSHL", "<<", VectorSupport.VECTOR_OP_LSHIFT, VO_SHIFT); /** Produce {@code a>>(n&(ESIZE*8-1))}. Integral only. */ @@ -636,22 +662,22 @@ static boolean opKind(Operator op, int bit) { * @see java.lang.Integer#compareUnsigned * @see java.lang.Long#compareUnsigned */ - public static final Comparison UNSIGNED_LT = compare("UNSIGNED_LT", "<", VectorSupport.BT_ult, VO_NOFP); + public static final Comparison ULT = compare("ULT", "<", VectorSupport.BT_ult, VO_NOFP); /** Unsigned compare {@code a<=b}. Integral only. * @see java.lang.Integer#compareUnsigned * @see java.lang.Long#compareUnsigned */ - public static final Comparison UNSIGNED_LE = compare("UNSIGNED_LE", "<=", VectorSupport.BT_ule, VO_NOFP); + public static final Comparison ULE = compare("ULE", "<=", VectorSupport.BT_ule, VO_NOFP); /** Unsigned compare {@code a>b}. Integral only. * @see java.lang.Integer#compareUnsigned * @see java.lang.Long#compareUnsigned */ - public static final Comparison UNSIGNED_GT = compare("UNSIGNED_GT", ">", VectorSupport.BT_ugt, VO_NOFP); + public static final Comparison UGT = compare("UGT", ">", VectorSupport.BT_ugt, VO_NOFP); /** Unsigned compare {@code a>=b}. Integral only. * @see java.lang.Integer#compareUnsigned * @see java.lang.Long#compareUnsigned */ - public static final Comparison UNSIGNED_GE = compare("UNSIGNED_GE", ">=", VectorSupport.BT_uge, VO_NOFP); + public static final Comparison UGE = compare("UGE", ">=", VectorSupport.BT_uge, VO_NOFP); // Conversion operators diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-Vector.java.template b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-Vector.java.template index b9a48005ccf..b5f3a4b7d87 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-Vector.java.template +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-Vector.java.template @@ -980,6 +980,18 @@ public abstract class $abstractvectortype$ extends AbstractVector<$Boxtype$> { v0.bOp(v1, vm, (i, a, n) -> rotateLeft(a, (int)n)); case VECTOR_OP_RROTATE: return (v0, v1, vm) -> v0.bOp(v1, vm, (i, a, n) -> rotateRight(a, (int)n)); + case VECTOR_OP_UMAX: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> ($type$)VectorMath.maxUnsigned(a, b)); + case VECTOR_OP_UMIN: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> ($type$)VectorMath.minUnsigned(a, b)); + case VECTOR_OP_SADD: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> ($type$)(VectorMath.addSaturating(a, b))); + case VECTOR_OP_SSUB: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> ($type$)(VectorMath.subSaturating(a, b))); + case VECTOR_OP_SUADD: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> ($type$)(VectorMath.addSaturatingUnsigned(a, b))); + case VECTOR_OP_SUSUB: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> ($type$)(VectorMath.subSaturatingUnsigned(a, b))); #if[intOrLong] case VECTOR_OP_COMPRESS_BITS: return (v0, v1, vm) -> v0.bOp(v1, vm, (i, a, n) -> $Boxtype$.compress(a, n)); diff --git a/test/hotspot/jtreg/compiler/vectorapi/VectorCompareWithImmTest.java b/test/hotspot/jtreg/compiler/vectorapi/VectorCompareWithImmTest.java index b7c192778bd..833ef2b614c 100644 --- a/test/hotspot/jtreg/compiler/vectorapi/VectorCompareWithImmTest.java +++ b/test/hotspot/jtreg/compiler/vectorapi/VectorCompareWithImmTest.java @@ -143,7 +143,7 @@ public static void testByteGTInRange_runner() { @IR(counts = { IRNode.VMASK_CMPU_IMM_I_SVE, ">= 1" }) public static void testByteUnsignedGTInRange() { ByteVector av = ByteVector.fromArray(B_SPECIES, ba, 0); - av.compare(VectorOperators.UNSIGNED_GT, 64).intoArray(br, 0); + av.compare(VectorOperators.UGT, 64).intoArray(br, 0); } @Run(test = "testByteUnsignedGTInRange") @@ -163,7 +163,7 @@ public static void testByteGTOutOfRange() { @IR(failOn = { IRNode.VMASK_CMPU_IMM_I_SVE }) public static void testByteUnsignedGTOutOfRange() { ByteVector av = ByteVector.fromArray(B_SPECIES, ba, 0); - av.compare(VectorOperators.UNSIGNED_GT, -91).intoArray(br, 0); + av.compare(VectorOperators.UGT, -91).intoArray(br, 0); } @Test @@ -183,7 +183,7 @@ public static void testShortGEInRange_runner() { @IR(counts = { IRNode.VMASK_CMPU_IMM_I_SVE, ">= 1" }) public static void testShortUnsignedGEInRange() { ShortVector av = ShortVector.fromArray(S_SPECIES, sa, 0); - av.compare(VectorOperators.UNSIGNED_GE, 56).intoArray(sr, 0); + av.compare(VectorOperators.UGE, 56).intoArray(sr, 0); } @Run(test = "testShortUnsignedGEInRange") @@ -203,7 +203,7 @@ public static void testShortGEOutOfRange() { @IR(failOn = { IRNode.VMASK_CMPU_IMM_I_SVE }) public static void testShortUnsignedGEOutOfRange() { ShortVector av = ShortVector.fromArray(S_SPECIES, sa, 0); - av.compare(VectorOperators.UNSIGNED_GE, -85).intoArray(sr, 0); + av.compare(VectorOperators.UGE, -85).intoArray(sr, 0); } @Test @@ -223,7 +223,7 @@ public static void testIntLTInRange_runner() { @IR(counts = { IRNode.VMASK_CMPU_IMM_I_SVE, ">= 1" }) public static void testIntUnsignedLTInRange() { IntVector av = IntVector.fromArray(I_SPECIES, ia, 0); - av.compare(VectorOperators.UNSIGNED_LT, 101).intoArray(ir, 0); + av.compare(VectorOperators.ULT, 101).intoArray(ir, 0); } @Run(test = "testIntUnsignedLTInRange") @@ -243,7 +243,7 @@ public static void testIntLTOutOfRange() { @IR(failOn = { IRNode.VMASK_CMPU_IMM_I_SVE }) public static void testIntUnsignedLTOutOfRange() { IntVector av = IntVector.fromArray(I_SPECIES, ia, 0); - av.compare(VectorOperators.UNSIGNED_LT, -110).intoArray(ir, 0); + av.compare(VectorOperators.ULT, -110).intoArray(ir, 0); } @Test @@ -263,7 +263,7 @@ public static void testLongLEInRange_runner() { @IR(counts = { IRNode.VMASK_CMPU_IMM_L_SVE, ">= 1" }) public static void testLongUnsignedLEInRange() { LongVector av = LongVector.fromArray(L_SPECIES, la, 0); - av.compare(VectorOperators.UNSIGNED_LE, 95).intoArray(lr, 0); + av.compare(VectorOperators.ULE, 95).intoArray(lr, 0); } @Run(test = "testLongUnsignedLEInRange") @@ -283,7 +283,7 @@ public static void testLongLEOutOfRange() { @IR(failOn = { IRNode.VMASK_CMPU_IMM_L_SVE }) public static void testLongUnsignedLEOutOfRange() { LongVector av = LongVector.fromArray(L_SPECIES, la, 0); - av.compare(VectorOperators.UNSIGNED_LE, -99).intoArray(lr, 0); + av.compare(VectorOperators.ULE, -99).intoArray(lr, 0); } @Test diff --git a/test/hotspot/jtreg/compiler/vectorapi/VectorCompareWithZeroTest.java b/test/hotspot/jtreg/compiler/vectorapi/VectorCompareWithZeroTest.java index 21ad4a524d2..26e159fb768 100644 --- a/test/hotspot/jtreg/compiler/vectorapi/VectorCompareWithZeroTest.java +++ b/test/hotspot/jtreg/compiler/vectorapi/VectorCompareWithZeroTest.java @@ -240,14 +240,14 @@ public static void testDoubleVectorLessThanZero_runner() { @IR(failOn = { IRNode.VMASK_CMP_ZERO_I_NEON }) public static void testIntVectorUnsignedCondition() { IntVector av = IntVector.fromArray(I_SPECIES, ia, 0); - av.compare(VectorOperators.UNSIGNED_GT, 0).intoArray(ir, 0); + av.compare(VectorOperators.UGT, 0).intoArray(ir, 0); } @Test @IR(failOn = { IRNode.VMASK_CMP_ZERO_L_NEON }) public static void testLongVectorUnsignedCondition() { LongVector av = LongVector.fromArray(L_SPECIES, la, 0); - av.compare(VectorOperators.UNSIGNED_GE, 0).intoArray(lr, 0); + av.compare(VectorOperators.UGE, 0).intoArray(lr, 0); } public static void main(String[] args) { @@ -257,4 +257,4 @@ public static void main(String[] args) { .addFlags("-XX:UseSVE=0") .start(); } -} \ No newline at end of file +} diff --git a/test/jdk/jdk/incubator/vector/Byte128VectorTests.java b/test/jdk/jdk/incubator/vector/Byte128VectorTests.java index eda803b3f35..36a140c474a 100644 --- a/test/jdk/jdk/incubator/vector/Byte128VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Byte128VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.ByteVector; @@ -962,6 +963,33 @@ static byte bits(byte e) { }) ); + static final List> BYTE_SATURATING_GENERATORS = List.of( + withToString("byte[Byte.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MIN_VALUE)); + }), + withToString("byte[Byte.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MAX_VALUE)); + }), + withToString("byte[Byte.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MAX_VALUE - 100)); + }), + withToString("byte[Byte.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MIN_VALUE + 100)); + }), + withToString("byte[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(-i * 5)); + }), + withToString("byte[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> BYTE_GENERATOR_PAIRS = @@ -969,6 +997,11 @@ static byte bits(byte e) { flatMap(fa -> BYTE_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> BYTE_SATURATING_GENERATOR_PAIRS = + Stream.of(BYTE_GENERATORS.get(0)). + flatMap(fa -> BYTE_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -999,12 +1032,27 @@ public Object[][] byteBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] byteSaturatingBinaryOpProvider() { + return BYTE_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] byteIndexedOpProvider() { return BYTE_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] byteSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> BYTE_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] byteBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2939,6 +2987,252 @@ static void maxByte128VectorTests(IntFunction fa, IntFunction fb assertArraysEquals(r, a, b, Byte128VectorTests::max); } + static byte UMIN(byte a, byte b) { + return (byte)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "byteBinaryOpProvider") + static void UMINByte128VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte128VectorTests::UMIN); + } + + @Test(dataProvider = "byteBinaryOpMaskProvider") + static void UMINByte128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte128VectorTests::UMIN); + } + + static byte UMAX(byte a, byte b) { + return (byte)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "byteBinaryOpProvider") + static void UMAXByte128VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte128VectorTests::UMAX); + } + + @Test(dataProvider = "byteBinaryOpMaskProvider") + static void UMAXByte128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte128VectorTests::UMAX); + } + + static byte SADD(byte a, byte b) { + return (byte)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SADDByte128VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte128VectorTests::SADD); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SADDByte128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte128VectorTests::SADD); + } + + static byte SSUB(byte a, byte b) { + return (byte)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SSUBByte128VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte128VectorTests::SSUB); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SSUBByte128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte128VectorTests::SSUB); + } + + static byte SUADD(byte a, byte b) { + return (byte)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SUADDByte128VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte128VectorTests::SUADD); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SUADDByte128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte128VectorTests::SUADD); + } + + static byte SUSUB(byte a, byte b) { + return (byte)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SUSUBByte128VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte128VectorTests::SUSUB); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SUSUBByte128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte128VectorTests::SUSUB); + } + @Test(dataProvider = "byteBinaryOpProvider") static void MINByte128VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); @@ -4147,7 +4441,7 @@ static void GEByte128VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTByte128VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4155,7 +4449,7 @@ static void UNSIGNED_LTByte128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4166,7 +4460,7 @@ static void UNSIGNED_LTByte128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTByte128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4178,7 +4472,7 @@ static void UNSIGNED_LTByte128VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4189,7 +4483,7 @@ static void UNSIGNED_LTByte128VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_GTByte128VectorTests(IntFunction fa, IntFunction fb) { + static void UGTByte128VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4197,7 +4491,7 @@ static void UNSIGNED_GTByte128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4208,7 +4502,7 @@ static void UNSIGNED_GTByte128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTByte128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4220,7 +4514,7 @@ static void UNSIGNED_GTByte128VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4231,7 +4525,7 @@ static void UNSIGNED_GTByte128VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_LEByte128VectorTests(IntFunction fa, IntFunction fb) { + static void ULEByte128VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4239,7 +4533,7 @@ static void UNSIGNED_LEByte128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4250,7 +4544,7 @@ static void UNSIGNED_LEByte128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULEByte128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4262,7 +4556,7 @@ static void UNSIGNED_LEByte128VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4273,7 +4567,7 @@ static void UNSIGNED_LEByte128VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_GEByte128VectorTests(IntFunction fa, IntFunction fb) { + static void UGEByte128VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4281,7 +4575,7 @@ static void UNSIGNED_GEByte128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4292,7 +4586,7 @@ static void UNSIGNED_GEByte128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGEByte128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4304,7 +4598,7 @@ static void UNSIGNED_GEByte128VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Byte256VectorTests.java b/test/jdk/jdk/incubator/vector/Byte256VectorTests.java index 06cc13c0b12..0ad567b5ee4 100644 --- a/test/jdk/jdk/incubator/vector/Byte256VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Byte256VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.ByteVector; @@ -962,6 +963,33 @@ static byte bits(byte e) { }) ); + static final List> BYTE_SATURATING_GENERATORS = List.of( + withToString("byte[Byte.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MIN_VALUE)); + }), + withToString("byte[Byte.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MAX_VALUE)); + }), + withToString("byte[Byte.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MAX_VALUE - 100)); + }), + withToString("byte[Byte.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MIN_VALUE + 100)); + }), + withToString("byte[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(-i * 5)); + }), + withToString("byte[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> BYTE_GENERATOR_PAIRS = @@ -969,6 +997,11 @@ static byte bits(byte e) { flatMap(fa -> BYTE_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> BYTE_SATURATING_GENERATOR_PAIRS = + Stream.of(BYTE_GENERATORS.get(0)). + flatMap(fa -> BYTE_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -999,12 +1032,27 @@ public Object[][] byteBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] byteSaturatingBinaryOpProvider() { + return BYTE_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] byteIndexedOpProvider() { return BYTE_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] byteSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> BYTE_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] byteBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2939,6 +2987,252 @@ static void maxByte256VectorTests(IntFunction fa, IntFunction fb assertArraysEquals(r, a, b, Byte256VectorTests::max); } + static byte UMIN(byte a, byte b) { + return (byte)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "byteBinaryOpProvider") + static void UMINByte256VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte256VectorTests::UMIN); + } + + @Test(dataProvider = "byteBinaryOpMaskProvider") + static void UMINByte256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte256VectorTests::UMIN); + } + + static byte UMAX(byte a, byte b) { + return (byte)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "byteBinaryOpProvider") + static void UMAXByte256VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte256VectorTests::UMAX); + } + + @Test(dataProvider = "byteBinaryOpMaskProvider") + static void UMAXByte256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte256VectorTests::UMAX); + } + + static byte SADD(byte a, byte b) { + return (byte)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SADDByte256VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte256VectorTests::SADD); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SADDByte256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte256VectorTests::SADD); + } + + static byte SSUB(byte a, byte b) { + return (byte)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SSUBByte256VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte256VectorTests::SSUB); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SSUBByte256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte256VectorTests::SSUB); + } + + static byte SUADD(byte a, byte b) { + return (byte)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SUADDByte256VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte256VectorTests::SUADD); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SUADDByte256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte256VectorTests::SUADD); + } + + static byte SUSUB(byte a, byte b) { + return (byte)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SUSUBByte256VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte256VectorTests::SUSUB); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SUSUBByte256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte256VectorTests::SUSUB); + } + @Test(dataProvider = "byteBinaryOpProvider") static void MINByte256VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); @@ -4147,7 +4441,7 @@ static void GEByte256VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTByte256VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4155,7 +4449,7 @@ static void UNSIGNED_LTByte256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4166,7 +4460,7 @@ static void UNSIGNED_LTByte256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTByte256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4178,7 +4472,7 @@ static void UNSIGNED_LTByte256VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4189,7 +4483,7 @@ static void UNSIGNED_LTByte256VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_GTByte256VectorTests(IntFunction fa, IntFunction fb) { + static void UGTByte256VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4197,7 +4491,7 @@ static void UNSIGNED_GTByte256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4208,7 +4502,7 @@ static void UNSIGNED_GTByte256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTByte256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4220,7 +4514,7 @@ static void UNSIGNED_GTByte256VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4231,7 +4525,7 @@ static void UNSIGNED_GTByte256VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_LEByte256VectorTests(IntFunction fa, IntFunction fb) { + static void ULEByte256VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4239,7 +4533,7 @@ static void UNSIGNED_LEByte256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4250,7 +4544,7 @@ static void UNSIGNED_LEByte256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULEByte256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4262,7 +4556,7 @@ static void UNSIGNED_LEByte256VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4273,7 +4567,7 @@ static void UNSIGNED_LEByte256VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_GEByte256VectorTests(IntFunction fa, IntFunction fb) { + static void UGEByte256VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4281,7 +4575,7 @@ static void UNSIGNED_GEByte256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4292,7 +4586,7 @@ static void UNSIGNED_GEByte256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGEByte256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4304,7 +4598,7 @@ static void UNSIGNED_GEByte256VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Byte512VectorTests.java b/test/jdk/jdk/incubator/vector/Byte512VectorTests.java index a75aa42ef20..0edc66dfccc 100644 --- a/test/jdk/jdk/incubator/vector/Byte512VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Byte512VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.ByteVector; @@ -962,6 +963,33 @@ static byte bits(byte e) { }) ); + static final List> BYTE_SATURATING_GENERATORS = List.of( + withToString("byte[Byte.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MIN_VALUE)); + }), + withToString("byte[Byte.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MAX_VALUE)); + }), + withToString("byte[Byte.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MAX_VALUE - 100)); + }), + withToString("byte[Byte.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MIN_VALUE + 100)); + }), + withToString("byte[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(-i * 5)); + }), + withToString("byte[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> BYTE_GENERATOR_PAIRS = @@ -969,6 +997,11 @@ static byte bits(byte e) { flatMap(fa -> BYTE_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> BYTE_SATURATING_GENERATOR_PAIRS = + Stream.of(BYTE_GENERATORS.get(0)). + flatMap(fa -> BYTE_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -999,12 +1032,27 @@ public Object[][] byteBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] byteSaturatingBinaryOpProvider() { + return BYTE_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] byteIndexedOpProvider() { return BYTE_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] byteSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> BYTE_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] byteBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2939,6 +2987,252 @@ static void maxByte512VectorTests(IntFunction fa, IntFunction fb assertArraysEquals(r, a, b, Byte512VectorTests::max); } + static byte UMIN(byte a, byte b) { + return (byte)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "byteBinaryOpProvider") + static void UMINByte512VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte512VectorTests::UMIN); + } + + @Test(dataProvider = "byteBinaryOpMaskProvider") + static void UMINByte512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte512VectorTests::UMIN); + } + + static byte UMAX(byte a, byte b) { + return (byte)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "byteBinaryOpProvider") + static void UMAXByte512VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte512VectorTests::UMAX); + } + + @Test(dataProvider = "byteBinaryOpMaskProvider") + static void UMAXByte512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte512VectorTests::UMAX); + } + + static byte SADD(byte a, byte b) { + return (byte)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SADDByte512VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte512VectorTests::SADD); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SADDByte512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte512VectorTests::SADD); + } + + static byte SSUB(byte a, byte b) { + return (byte)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SSUBByte512VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte512VectorTests::SSUB); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SSUBByte512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte512VectorTests::SSUB); + } + + static byte SUADD(byte a, byte b) { + return (byte)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SUADDByte512VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte512VectorTests::SUADD); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SUADDByte512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte512VectorTests::SUADD); + } + + static byte SUSUB(byte a, byte b) { + return (byte)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SUSUBByte512VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte512VectorTests::SUSUB); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SUSUBByte512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte512VectorTests::SUSUB); + } + @Test(dataProvider = "byteBinaryOpProvider") static void MINByte512VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); @@ -4147,7 +4441,7 @@ static void GEByte512VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTByte512VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4155,7 +4449,7 @@ static void UNSIGNED_LTByte512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4166,7 +4460,7 @@ static void UNSIGNED_LTByte512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTByte512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4178,7 +4472,7 @@ static void UNSIGNED_LTByte512VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4189,7 +4483,7 @@ static void UNSIGNED_LTByte512VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_GTByte512VectorTests(IntFunction fa, IntFunction fb) { + static void UGTByte512VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4197,7 +4491,7 @@ static void UNSIGNED_GTByte512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4208,7 +4502,7 @@ static void UNSIGNED_GTByte512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTByte512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4220,7 +4514,7 @@ static void UNSIGNED_GTByte512VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4231,7 +4525,7 @@ static void UNSIGNED_GTByte512VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_LEByte512VectorTests(IntFunction fa, IntFunction fb) { + static void ULEByte512VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4239,7 +4533,7 @@ static void UNSIGNED_LEByte512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4250,7 +4544,7 @@ static void UNSIGNED_LEByte512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULEByte512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4262,7 +4556,7 @@ static void UNSIGNED_LEByte512VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4273,7 +4567,7 @@ static void UNSIGNED_LEByte512VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_GEByte512VectorTests(IntFunction fa, IntFunction fb) { + static void UGEByte512VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4281,7 +4575,7 @@ static void UNSIGNED_GEByte512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4292,7 +4586,7 @@ static void UNSIGNED_GEByte512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGEByte512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4304,7 +4598,7 @@ static void UNSIGNED_GEByte512VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Byte64VectorTests.java b/test/jdk/jdk/incubator/vector/Byte64VectorTests.java index b621c28a779..98c8382c526 100644 --- a/test/jdk/jdk/incubator/vector/Byte64VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Byte64VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.ByteVector; @@ -962,6 +963,33 @@ static byte bits(byte e) { }) ); + static final List> BYTE_SATURATING_GENERATORS = List.of( + withToString("byte[Byte.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MIN_VALUE)); + }), + withToString("byte[Byte.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MAX_VALUE)); + }), + withToString("byte[Byte.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MAX_VALUE - 100)); + }), + withToString("byte[Byte.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MIN_VALUE + 100)); + }), + withToString("byte[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(-i * 5)); + }), + withToString("byte[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> BYTE_GENERATOR_PAIRS = @@ -969,6 +997,11 @@ static byte bits(byte e) { flatMap(fa -> BYTE_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> BYTE_SATURATING_GENERATOR_PAIRS = + Stream.of(BYTE_GENERATORS.get(0)). + flatMap(fa -> BYTE_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -999,12 +1032,27 @@ public Object[][] byteBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] byteSaturatingBinaryOpProvider() { + return BYTE_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] byteIndexedOpProvider() { return BYTE_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] byteSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> BYTE_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] byteBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2939,6 +2987,252 @@ static void maxByte64VectorTests(IntFunction fa, IntFunction fb) assertArraysEquals(r, a, b, Byte64VectorTests::max); } + static byte UMIN(byte a, byte b) { + return (byte)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "byteBinaryOpProvider") + static void UMINByte64VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte64VectorTests::UMIN); + } + + @Test(dataProvider = "byteBinaryOpMaskProvider") + static void UMINByte64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte64VectorTests::UMIN); + } + + static byte UMAX(byte a, byte b) { + return (byte)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "byteBinaryOpProvider") + static void UMAXByte64VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte64VectorTests::UMAX); + } + + @Test(dataProvider = "byteBinaryOpMaskProvider") + static void UMAXByte64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte64VectorTests::UMAX); + } + + static byte SADD(byte a, byte b) { + return (byte)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SADDByte64VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte64VectorTests::SADD); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SADDByte64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte64VectorTests::SADD); + } + + static byte SSUB(byte a, byte b) { + return (byte)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SSUBByte64VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte64VectorTests::SSUB); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SSUBByte64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte64VectorTests::SSUB); + } + + static byte SUADD(byte a, byte b) { + return (byte)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SUADDByte64VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte64VectorTests::SUADD); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SUADDByte64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte64VectorTests::SUADD); + } + + static byte SUSUB(byte a, byte b) { + return (byte)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SUSUBByte64VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte64VectorTests::SUSUB); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SUSUBByte64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte64VectorTests::SUSUB); + } + @Test(dataProvider = "byteBinaryOpProvider") static void MINByte64VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); @@ -4147,7 +4441,7 @@ static void GEByte64VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTByte64VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4155,7 +4449,7 @@ static void UNSIGNED_LTByte64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4166,7 +4460,7 @@ static void UNSIGNED_LTByte64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTByte64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4178,7 +4472,7 @@ static void UNSIGNED_LTByte64VectorTestsMasked(IntFunction fa, IntFuncti for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4189,7 +4483,7 @@ static void UNSIGNED_LTByte64VectorTestsMasked(IntFunction fa, IntFuncti } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_GTByte64VectorTests(IntFunction fa, IntFunction fb) { + static void UGTByte64VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4197,7 +4491,7 @@ static void UNSIGNED_GTByte64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4208,7 +4502,7 @@ static void UNSIGNED_GTByte64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTByte64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4220,7 +4514,7 @@ static void UNSIGNED_GTByte64VectorTestsMasked(IntFunction fa, IntFuncti for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4231,7 +4525,7 @@ static void UNSIGNED_GTByte64VectorTestsMasked(IntFunction fa, IntFuncti } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_LEByte64VectorTests(IntFunction fa, IntFunction fb) { + static void ULEByte64VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4239,7 +4533,7 @@ static void UNSIGNED_LEByte64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4250,7 +4544,7 @@ static void UNSIGNED_LEByte64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULEByte64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4262,7 +4556,7 @@ static void UNSIGNED_LEByte64VectorTestsMasked(IntFunction fa, IntFuncti for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4273,7 +4567,7 @@ static void UNSIGNED_LEByte64VectorTestsMasked(IntFunction fa, IntFuncti } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_GEByte64VectorTests(IntFunction fa, IntFunction fb) { + static void UGEByte64VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4281,7 +4575,7 @@ static void UNSIGNED_GEByte64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4292,7 +4586,7 @@ static void UNSIGNED_GEByte64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGEByte64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4304,7 +4598,7 @@ static void UNSIGNED_GEByte64VectorTestsMasked(IntFunction fa, IntFuncti for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java b/test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java index bbd354c958a..2d9d49f32ad 100644 --- a/test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java +++ b/test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.ByteVector; @@ -967,6 +968,33 @@ static byte bits(byte e) { }) ); + static final List> BYTE_SATURATING_GENERATORS = List.of( + withToString("byte[Byte.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MIN_VALUE)); + }), + withToString("byte[Byte.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MAX_VALUE)); + }), + withToString("byte[Byte.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MAX_VALUE - 100)); + }), + withToString("byte[Byte.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MIN_VALUE + 100)); + }), + withToString("byte[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(-i * 5)); + }), + withToString("byte[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> BYTE_GENERATOR_PAIRS = @@ -974,6 +1002,11 @@ static byte bits(byte e) { flatMap(fa -> BYTE_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> BYTE_SATURATING_GENERATOR_PAIRS = + Stream.of(BYTE_GENERATORS.get(0)). + flatMap(fa -> BYTE_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -1004,12 +1037,27 @@ public Object[][] byteBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] byteSaturatingBinaryOpProvider() { + return BYTE_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] byteIndexedOpProvider() { return BYTE_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] byteSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> BYTE_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] byteBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2944,6 +2992,252 @@ static void maxByteMaxVectorTests(IntFunction fa, IntFunction fb assertArraysEquals(r, a, b, ByteMaxVectorTests::max); } + static byte UMIN(byte a, byte b) { + return (byte)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "byteBinaryOpProvider") + static void UMINByteMaxVectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ByteMaxVectorTests::UMIN); + } + + @Test(dataProvider = "byteBinaryOpMaskProvider") + static void UMINByteMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ByteMaxVectorTests::UMIN); + } + + static byte UMAX(byte a, byte b) { + return (byte)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "byteBinaryOpProvider") + static void UMAXByteMaxVectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ByteMaxVectorTests::UMAX); + } + + @Test(dataProvider = "byteBinaryOpMaskProvider") + static void UMAXByteMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ByteMaxVectorTests::UMAX); + } + + static byte SADD(byte a, byte b) { + return (byte)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SADDByteMaxVectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ByteMaxVectorTests::SADD); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SADDByteMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ByteMaxVectorTests::SADD); + } + + static byte SSUB(byte a, byte b) { + return (byte)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SSUBByteMaxVectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ByteMaxVectorTests::SSUB); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SSUBByteMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ByteMaxVectorTests::SSUB); + } + + static byte SUADD(byte a, byte b) { + return (byte)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SUADDByteMaxVectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ByteMaxVectorTests::SUADD); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SUADDByteMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ByteMaxVectorTests::SUADD); + } + + static byte SUSUB(byte a, byte b) { + return (byte)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SUSUBByteMaxVectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ByteMaxVectorTests::SUSUB); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SUSUBByteMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ByteMaxVectorTests::SUSUB); + } + @Test(dataProvider = "byteBinaryOpProvider") static void MINByteMaxVectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); @@ -4152,7 +4446,7 @@ static void GEByteMaxVectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTByteMaxVectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4160,7 +4454,7 @@ static void UNSIGNED_LTByteMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4171,7 +4465,7 @@ static void UNSIGNED_LTByteMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTByteMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4183,7 +4477,7 @@ static void UNSIGNED_LTByteMaxVectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4194,7 +4488,7 @@ static void UNSIGNED_LTByteMaxVectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_GTByteMaxVectorTests(IntFunction fa, IntFunction fb) { + static void UGTByteMaxVectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4202,7 +4496,7 @@ static void UNSIGNED_GTByteMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4213,7 +4507,7 @@ static void UNSIGNED_GTByteMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTByteMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4225,7 +4519,7 @@ static void UNSIGNED_GTByteMaxVectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4236,7 +4530,7 @@ static void UNSIGNED_GTByteMaxVectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_LEByteMaxVectorTests(IntFunction fa, IntFunction fb) { + static void ULEByteMaxVectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4244,7 +4538,7 @@ static void UNSIGNED_LEByteMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4255,7 +4549,7 @@ static void UNSIGNED_LEByteMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULEByteMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4267,7 +4561,7 @@ static void UNSIGNED_LEByteMaxVectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4278,7 +4572,7 @@ static void UNSIGNED_LEByteMaxVectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_GEByteMaxVectorTests(IntFunction fa, IntFunction fb) { + static void UGEByteMaxVectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4286,7 +4580,7 @@ static void UNSIGNED_GEByteMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4297,7 +4591,7 @@ static void UNSIGNED_GEByteMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGEByteMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4309,7 +4603,7 @@ static void UNSIGNED_GEByteMaxVectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Int128VectorTests.java b/test/jdk/jdk/incubator/vector/Int128VectorTests.java index 528d26a952b..028e757e853 100644 --- a/test/jdk/jdk/incubator/vector/Int128VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Int128VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.IntVector; @@ -952,6 +953,33 @@ static int bits(int e) { }) ); + static final List> INT_SATURATING_GENERATORS = List.of( + withToString("int[Integer.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MIN_VALUE)); + }), + withToString("int[Integer.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MAX_VALUE)); + }), + withToString("int[Integer.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MAX_VALUE - 100)); + }), + withToString("int[Integer.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MIN_VALUE + 100)); + }), + withToString("int[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(-i * 5)); + }), + withToString("int[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> INT_GENERATOR_PAIRS = @@ -959,6 +987,11 @@ static int bits(int e) { flatMap(fa -> INT_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> INT_SATURATING_GENERATOR_PAIRS = + Stream.of(INT_GENERATORS.get(0)). + flatMap(fa -> INT_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -989,12 +1022,27 @@ public Object[][] intBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] intSaturatingBinaryOpProvider() { + return INT_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] intIndexedOpProvider() { return INT_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] intSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> INT_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] intBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2983,6 +3031,252 @@ static void maxInt128VectorTests(IntFunction fa, IntFunction fb) { assertArraysEquals(r, a, b, Int128VectorTests::max); } + static int UMIN(int a, int b) { + return (int)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "intBinaryOpProvider") + static void UMINInt128VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int128VectorTests::UMIN); + } + + @Test(dataProvider = "intBinaryOpMaskProvider") + static void UMINInt128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int128VectorTests::UMIN); + } + + static int UMAX(int a, int b) { + return (int)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "intBinaryOpProvider") + static void UMAXInt128VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int128VectorTests::UMAX); + } + + @Test(dataProvider = "intBinaryOpMaskProvider") + static void UMAXInt128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int128VectorTests::UMAX); + } + + static int SADD(int a, int b) { + return (int)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SADDInt128VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int128VectorTests::SADD); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SADDInt128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int128VectorTests::SADD); + } + + static int SSUB(int a, int b) { + return (int)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SSUBInt128VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int128VectorTests::SSUB); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SSUBInt128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int128VectorTests::SSUB); + } + + static int SUADD(int a, int b) { + return (int)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SUADDInt128VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int128VectorTests::SUADD); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SUADDInt128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int128VectorTests::SUADD); + } + + static int SUSUB(int a, int b) { + return (int)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SUSUBInt128VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int128VectorTests::SUSUB); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SUSUBInt128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int128VectorTests::SUSUB); + } + @Test(dataProvider = "intBinaryOpProvider") static void MINInt128VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); @@ -4191,7 +4485,7 @@ static void GEInt128VectorTestsMasked(IntFunction fa, IntFunction } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_LTInt128VectorTests(IntFunction fa, IntFunction fb) { + static void ULTInt128VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4199,7 +4493,7 @@ static void UNSIGNED_LTInt128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4210,7 +4504,7 @@ static void UNSIGNED_LTInt128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTInt128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4222,7 +4516,7 @@ static void UNSIGNED_LTInt128VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4233,7 +4527,7 @@ static void UNSIGNED_LTInt128VectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_GTInt128VectorTests(IntFunction fa, IntFunction fb) { + static void UGTInt128VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4241,7 +4535,7 @@ static void UNSIGNED_GTInt128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4252,7 +4546,7 @@ static void UNSIGNED_GTInt128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTInt128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4264,7 +4558,7 @@ static void UNSIGNED_GTInt128VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4275,7 +4569,7 @@ static void UNSIGNED_GTInt128VectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_LEInt128VectorTests(IntFunction fa, IntFunction fb) { + static void ULEInt128VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4283,7 +4577,7 @@ static void UNSIGNED_LEInt128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4294,7 +4588,7 @@ static void UNSIGNED_LEInt128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULEInt128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4306,7 +4600,7 @@ static void UNSIGNED_LEInt128VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4317,7 +4611,7 @@ static void UNSIGNED_LEInt128VectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_GEInt128VectorTests(IntFunction fa, IntFunction fb) { + static void UGEInt128VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4325,7 +4619,7 @@ static void UNSIGNED_GEInt128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4336,7 +4630,7 @@ static void UNSIGNED_GEInt128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGEInt128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4348,7 +4642,7 @@ static void UNSIGNED_GEInt128VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Int256VectorTests.java b/test/jdk/jdk/incubator/vector/Int256VectorTests.java index 09561e0f3c4..6dab8a39873 100644 --- a/test/jdk/jdk/incubator/vector/Int256VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Int256VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.IntVector; @@ -952,6 +953,33 @@ static int bits(int e) { }) ); + static final List> INT_SATURATING_GENERATORS = List.of( + withToString("int[Integer.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MIN_VALUE)); + }), + withToString("int[Integer.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MAX_VALUE)); + }), + withToString("int[Integer.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MAX_VALUE - 100)); + }), + withToString("int[Integer.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MIN_VALUE + 100)); + }), + withToString("int[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(-i * 5)); + }), + withToString("int[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> INT_GENERATOR_PAIRS = @@ -959,6 +987,11 @@ static int bits(int e) { flatMap(fa -> INT_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> INT_SATURATING_GENERATOR_PAIRS = + Stream.of(INT_GENERATORS.get(0)). + flatMap(fa -> INT_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -989,12 +1022,27 @@ public Object[][] intBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] intSaturatingBinaryOpProvider() { + return INT_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] intIndexedOpProvider() { return INT_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] intSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> INT_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] intBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2983,6 +3031,252 @@ static void maxInt256VectorTests(IntFunction fa, IntFunction fb) { assertArraysEquals(r, a, b, Int256VectorTests::max); } + static int UMIN(int a, int b) { + return (int)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "intBinaryOpProvider") + static void UMINInt256VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int256VectorTests::UMIN); + } + + @Test(dataProvider = "intBinaryOpMaskProvider") + static void UMINInt256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int256VectorTests::UMIN); + } + + static int UMAX(int a, int b) { + return (int)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "intBinaryOpProvider") + static void UMAXInt256VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int256VectorTests::UMAX); + } + + @Test(dataProvider = "intBinaryOpMaskProvider") + static void UMAXInt256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int256VectorTests::UMAX); + } + + static int SADD(int a, int b) { + return (int)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SADDInt256VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int256VectorTests::SADD); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SADDInt256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int256VectorTests::SADD); + } + + static int SSUB(int a, int b) { + return (int)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SSUBInt256VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int256VectorTests::SSUB); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SSUBInt256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int256VectorTests::SSUB); + } + + static int SUADD(int a, int b) { + return (int)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SUADDInt256VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int256VectorTests::SUADD); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SUADDInt256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int256VectorTests::SUADD); + } + + static int SUSUB(int a, int b) { + return (int)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SUSUBInt256VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int256VectorTests::SUSUB); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SUSUBInt256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int256VectorTests::SUSUB); + } + @Test(dataProvider = "intBinaryOpProvider") static void MINInt256VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); @@ -4191,7 +4485,7 @@ static void GEInt256VectorTestsMasked(IntFunction fa, IntFunction } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_LTInt256VectorTests(IntFunction fa, IntFunction fb) { + static void ULTInt256VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4199,7 +4493,7 @@ static void UNSIGNED_LTInt256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4210,7 +4504,7 @@ static void UNSIGNED_LTInt256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTInt256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4222,7 +4516,7 @@ static void UNSIGNED_LTInt256VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4233,7 +4527,7 @@ static void UNSIGNED_LTInt256VectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_GTInt256VectorTests(IntFunction fa, IntFunction fb) { + static void UGTInt256VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4241,7 +4535,7 @@ static void UNSIGNED_GTInt256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4252,7 +4546,7 @@ static void UNSIGNED_GTInt256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTInt256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4264,7 +4558,7 @@ static void UNSIGNED_GTInt256VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4275,7 +4569,7 @@ static void UNSIGNED_GTInt256VectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_LEInt256VectorTests(IntFunction fa, IntFunction fb) { + static void ULEInt256VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4283,7 +4577,7 @@ static void UNSIGNED_LEInt256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4294,7 +4588,7 @@ static void UNSIGNED_LEInt256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULEInt256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4306,7 +4600,7 @@ static void UNSIGNED_LEInt256VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4317,7 +4611,7 @@ static void UNSIGNED_LEInt256VectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_GEInt256VectorTests(IntFunction fa, IntFunction fb) { + static void UGEInt256VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4325,7 +4619,7 @@ static void UNSIGNED_GEInt256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4336,7 +4630,7 @@ static void UNSIGNED_GEInt256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGEInt256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4348,7 +4642,7 @@ static void UNSIGNED_GEInt256VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Int512VectorTests.java b/test/jdk/jdk/incubator/vector/Int512VectorTests.java index e6d1aa68f56..0c86655ff22 100644 --- a/test/jdk/jdk/incubator/vector/Int512VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Int512VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.IntVector; @@ -952,6 +953,33 @@ static int bits(int e) { }) ); + static final List> INT_SATURATING_GENERATORS = List.of( + withToString("int[Integer.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MIN_VALUE)); + }), + withToString("int[Integer.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MAX_VALUE)); + }), + withToString("int[Integer.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MAX_VALUE - 100)); + }), + withToString("int[Integer.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MIN_VALUE + 100)); + }), + withToString("int[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(-i * 5)); + }), + withToString("int[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> INT_GENERATOR_PAIRS = @@ -959,6 +987,11 @@ static int bits(int e) { flatMap(fa -> INT_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> INT_SATURATING_GENERATOR_PAIRS = + Stream.of(INT_GENERATORS.get(0)). + flatMap(fa -> INT_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -989,12 +1022,27 @@ public Object[][] intBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] intSaturatingBinaryOpProvider() { + return INT_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] intIndexedOpProvider() { return INT_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] intSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> INT_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] intBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2983,6 +3031,252 @@ static void maxInt512VectorTests(IntFunction fa, IntFunction fb) { assertArraysEquals(r, a, b, Int512VectorTests::max); } + static int UMIN(int a, int b) { + return (int)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "intBinaryOpProvider") + static void UMINInt512VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int512VectorTests::UMIN); + } + + @Test(dataProvider = "intBinaryOpMaskProvider") + static void UMINInt512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int512VectorTests::UMIN); + } + + static int UMAX(int a, int b) { + return (int)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "intBinaryOpProvider") + static void UMAXInt512VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int512VectorTests::UMAX); + } + + @Test(dataProvider = "intBinaryOpMaskProvider") + static void UMAXInt512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int512VectorTests::UMAX); + } + + static int SADD(int a, int b) { + return (int)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SADDInt512VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int512VectorTests::SADD); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SADDInt512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int512VectorTests::SADD); + } + + static int SSUB(int a, int b) { + return (int)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SSUBInt512VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int512VectorTests::SSUB); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SSUBInt512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int512VectorTests::SSUB); + } + + static int SUADD(int a, int b) { + return (int)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SUADDInt512VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int512VectorTests::SUADD); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SUADDInt512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int512VectorTests::SUADD); + } + + static int SUSUB(int a, int b) { + return (int)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SUSUBInt512VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int512VectorTests::SUSUB); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SUSUBInt512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int512VectorTests::SUSUB); + } + @Test(dataProvider = "intBinaryOpProvider") static void MINInt512VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); @@ -4191,7 +4485,7 @@ static void GEInt512VectorTestsMasked(IntFunction fa, IntFunction } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_LTInt512VectorTests(IntFunction fa, IntFunction fb) { + static void ULTInt512VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4199,7 +4493,7 @@ static void UNSIGNED_LTInt512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4210,7 +4504,7 @@ static void UNSIGNED_LTInt512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTInt512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4222,7 +4516,7 @@ static void UNSIGNED_LTInt512VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4233,7 +4527,7 @@ static void UNSIGNED_LTInt512VectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_GTInt512VectorTests(IntFunction fa, IntFunction fb) { + static void UGTInt512VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4241,7 +4535,7 @@ static void UNSIGNED_GTInt512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4252,7 +4546,7 @@ static void UNSIGNED_GTInt512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTInt512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4264,7 +4558,7 @@ static void UNSIGNED_GTInt512VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4275,7 +4569,7 @@ static void UNSIGNED_GTInt512VectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_LEInt512VectorTests(IntFunction fa, IntFunction fb) { + static void ULEInt512VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4283,7 +4577,7 @@ static void UNSIGNED_LEInt512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4294,7 +4588,7 @@ static void UNSIGNED_LEInt512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULEInt512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4306,7 +4600,7 @@ static void UNSIGNED_LEInt512VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4317,7 +4611,7 @@ static void UNSIGNED_LEInt512VectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_GEInt512VectorTests(IntFunction fa, IntFunction fb) { + static void UGEInt512VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4325,7 +4619,7 @@ static void UNSIGNED_GEInt512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4336,7 +4630,7 @@ static void UNSIGNED_GEInt512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGEInt512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4348,7 +4642,7 @@ static void UNSIGNED_GEInt512VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Int64VectorTests.java b/test/jdk/jdk/incubator/vector/Int64VectorTests.java index 4435d31cd04..b2cb3698f62 100644 --- a/test/jdk/jdk/incubator/vector/Int64VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Int64VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.IntVector; @@ -952,6 +953,33 @@ static int bits(int e) { }) ); + static final List> INT_SATURATING_GENERATORS = List.of( + withToString("int[Integer.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MIN_VALUE)); + }), + withToString("int[Integer.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MAX_VALUE)); + }), + withToString("int[Integer.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MAX_VALUE - 100)); + }), + withToString("int[Integer.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MIN_VALUE + 100)); + }), + withToString("int[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(-i * 5)); + }), + withToString("int[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> INT_GENERATOR_PAIRS = @@ -959,6 +987,11 @@ static int bits(int e) { flatMap(fa -> INT_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> INT_SATURATING_GENERATOR_PAIRS = + Stream.of(INT_GENERATORS.get(0)). + flatMap(fa -> INT_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -989,12 +1022,27 @@ public Object[][] intBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] intSaturatingBinaryOpProvider() { + return INT_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] intIndexedOpProvider() { return INT_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] intSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> INT_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] intBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2983,6 +3031,252 @@ static void maxInt64VectorTests(IntFunction fa, IntFunction fb) { assertArraysEquals(r, a, b, Int64VectorTests::max); } + static int UMIN(int a, int b) { + return (int)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "intBinaryOpProvider") + static void UMINInt64VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int64VectorTests::UMIN); + } + + @Test(dataProvider = "intBinaryOpMaskProvider") + static void UMINInt64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int64VectorTests::UMIN); + } + + static int UMAX(int a, int b) { + return (int)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "intBinaryOpProvider") + static void UMAXInt64VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int64VectorTests::UMAX); + } + + @Test(dataProvider = "intBinaryOpMaskProvider") + static void UMAXInt64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int64VectorTests::UMAX); + } + + static int SADD(int a, int b) { + return (int)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SADDInt64VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int64VectorTests::SADD); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SADDInt64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int64VectorTests::SADD); + } + + static int SSUB(int a, int b) { + return (int)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SSUBInt64VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int64VectorTests::SSUB); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SSUBInt64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int64VectorTests::SSUB); + } + + static int SUADD(int a, int b) { + return (int)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SUADDInt64VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int64VectorTests::SUADD); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SUADDInt64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int64VectorTests::SUADD); + } + + static int SUSUB(int a, int b) { + return (int)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SUSUBInt64VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int64VectorTests::SUSUB); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SUSUBInt64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int64VectorTests::SUSUB); + } + @Test(dataProvider = "intBinaryOpProvider") static void MINInt64VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); @@ -4191,7 +4485,7 @@ static void GEInt64VectorTestsMasked(IntFunction fa, IntFunction f } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_LTInt64VectorTests(IntFunction fa, IntFunction fb) { + static void ULTInt64VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4199,7 +4493,7 @@ static void UNSIGNED_LTInt64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4210,7 +4504,7 @@ static void UNSIGNED_LTInt64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTInt64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4222,7 +4516,7 @@ static void UNSIGNED_LTInt64VectorTestsMasked(IntFunction fa, IntFunction for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4233,7 +4527,7 @@ static void UNSIGNED_LTInt64VectorTestsMasked(IntFunction fa, IntFunction } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_GTInt64VectorTests(IntFunction fa, IntFunction fb) { + static void UGTInt64VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4241,7 +4535,7 @@ static void UNSIGNED_GTInt64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4252,7 +4546,7 @@ static void UNSIGNED_GTInt64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTInt64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4264,7 +4558,7 @@ static void UNSIGNED_GTInt64VectorTestsMasked(IntFunction fa, IntFunction for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4275,7 +4569,7 @@ static void UNSIGNED_GTInt64VectorTestsMasked(IntFunction fa, IntFunction } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_LEInt64VectorTests(IntFunction fa, IntFunction fb) { + static void ULEInt64VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4283,7 +4577,7 @@ static void UNSIGNED_LEInt64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4294,7 +4588,7 @@ static void UNSIGNED_LEInt64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULEInt64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4306,7 +4600,7 @@ static void UNSIGNED_LEInt64VectorTestsMasked(IntFunction fa, IntFunction for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4317,7 +4611,7 @@ static void UNSIGNED_LEInt64VectorTestsMasked(IntFunction fa, IntFunction } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_GEInt64VectorTests(IntFunction fa, IntFunction fb) { + static void UGEInt64VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4325,7 +4619,7 @@ static void UNSIGNED_GEInt64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4336,7 +4630,7 @@ static void UNSIGNED_GEInt64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGEInt64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4348,7 +4642,7 @@ static void UNSIGNED_GEInt64VectorTestsMasked(IntFunction fa, IntFunction for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/IntMaxVectorTests.java b/test/jdk/jdk/incubator/vector/IntMaxVectorTests.java index 94dce66d951..fc0f6c1c139 100644 --- a/test/jdk/jdk/incubator/vector/IntMaxVectorTests.java +++ b/test/jdk/jdk/incubator/vector/IntMaxVectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.IntVector; @@ -957,6 +958,33 @@ static int bits(int e) { }) ); + static final List> INT_SATURATING_GENERATORS = List.of( + withToString("int[Integer.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MIN_VALUE)); + }), + withToString("int[Integer.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MAX_VALUE)); + }), + withToString("int[Integer.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MAX_VALUE - 100)); + }), + withToString("int[Integer.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MIN_VALUE + 100)); + }), + withToString("int[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(-i * 5)); + }), + withToString("int[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> INT_GENERATOR_PAIRS = @@ -964,6 +992,11 @@ static int bits(int e) { flatMap(fa -> INT_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> INT_SATURATING_GENERATOR_PAIRS = + Stream.of(INT_GENERATORS.get(0)). + flatMap(fa -> INT_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -994,12 +1027,27 @@ public Object[][] intBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] intSaturatingBinaryOpProvider() { + return INT_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] intIndexedOpProvider() { return INT_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] intSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> INT_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] intBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2988,6 +3036,252 @@ static void maxIntMaxVectorTests(IntFunction fa, IntFunction fb) { assertArraysEquals(r, a, b, IntMaxVectorTests::max); } + static int UMIN(int a, int b) { + return (int)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "intBinaryOpProvider") + static void UMINIntMaxVectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, IntMaxVectorTests::UMIN); + } + + @Test(dataProvider = "intBinaryOpMaskProvider") + static void UMINIntMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, IntMaxVectorTests::UMIN); + } + + static int UMAX(int a, int b) { + return (int)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "intBinaryOpProvider") + static void UMAXIntMaxVectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, IntMaxVectorTests::UMAX); + } + + @Test(dataProvider = "intBinaryOpMaskProvider") + static void UMAXIntMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, IntMaxVectorTests::UMAX); + } + + static int SADD(int a, int b) { + return (int)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SADDIntMaxVectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, IntMaxVectorTests::SADD); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SADDIntMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, IntMaxVectorTests::SADD); + } + + static int SSUB(int a, int b) { + return (int)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SSUBIntMaxVectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, IntMaxVectorTests::SSUB); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SSUBIntMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, IntMaxVectorTests::SSUB); + } + + static int SUADD(int a, int b) { + return (int)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SUADDIntMaxVectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, IntMaxVectorTests::SUADD); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SUADDIntMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, IntMaxVectorTests::SUADD); + } + + static int SUSUB(int a, int b) { + return (int)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SUSUBIntMaxVectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, IntMaxVectorTests::SUSUB); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SUSUBIntMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, IntMaxVectorTests::SUSUB); + } + @Test(dataProvider = "intBinaryOpProvider") static void MINIntMaxVectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); @@ -4196,7 +4490,7 @@ static void GEIntMaxVectorTestsMasked(IntFunction fa, IntFunction } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_LTIntMaxVectorTests(IntFunction fa, IntFunction fb) { + static void ULTIntMaxVectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4204,7 +4498,7 @@ static void UNSIGNED_LTIntMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4215,7 +4509,7 @@ static void UNSIGNED_LTIntMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTIntMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4227,7 +4521,7 @@ static void UNSIGNED_LTIntMaxVectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4238,7 +4532,7 @@ static void UNSIGNED_LTIntMaxVectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_GTIntMaxVectorTests(IntFunction fa, IntFunction fb) { + static void UGTIntMaxVectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4246,7 +4540,7 @@ static void UNSIGNED_GTIntMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4257,7 +4551,7 @@ static void UNSIGNED_GTIntMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTIntMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4269,7 +4563,7 @@ static void UNSIGNED_GTIntMaxVectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4280,7 +4574,7 @@ static void UNSIGNED_GTIntMaxVectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_LEIntMaxVectorTests(IntFunction fa, IntFunction fb) { + static void ULEIntMaxVectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4288,7 +4582,7 @@ static void UNSIGNED_LEIntMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4299,7 +4593,7 @@ static void UNSIGNED_LEIntMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULEIntMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4311,7 +4605,7 @@ static void UNSIGNED_LEIntMaxVectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4322,7 +4616,7 @@ static void UNSIGNED_LEIntMaxVectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_GEIntMaxVectorTests(IntFunction fa, IntFunction fb) { + static void UGEIntMaxVectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4330,7 +4624,7 @@ static void UNSIGNED_GEIntMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4341,7 +4635,7 @@ static void UNSIGNED_GEIntMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGEIntMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4353,7 +4647,7 @@ static void UNSIGNED_GEIntMaxVectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Long128VectorTests.java b/test/jdk/jdk/incubator/vector/Long128VectorTests.java index 7e6bf6b7b81..3694128877a 100644 --- a/test/jdk/jdk/incubator/vector/Long128VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Long128VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.LongVector; @@ -942,6 +943,33 @@ static long bits(long e) { }) ); + static final List> LONG_SATURATING_GENERATORS = List.of( + withToString("long[Long.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MIN_VALUE)); + }), + withToString("long[Long.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MAX_VALUE)); + }), + withToString("long[Long.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MAX_VALUE - 100)); + }), + withToString("long[Long.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MIN_VALUE + 100)); + }), + withToString("long[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(-i * 5)); + }), + withToString("long[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> LONG_GENERATOR_PAIRS = @@ -949,6 +977,11 @@ static long bits(long e) { flatMap(fa -> LONG_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> LONG_SATURATING_GENERATOR_PAIRS = + Stream.of(LONG_GENERATORS.get(0)). + flatMap(fa -> LONG_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -979,12 +1012,27 @@ public Object[][] longBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] longSaturatingBinaryOpProvider() { + return LONG_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] longIndexedOpProvider() { return LONG_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] longSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> LONG_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] longBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -3005,6 +3053,252 @@ static void maxLong128VectorTests(IntFunction fa, IntFunction fb assertArraysEquals(r, a, b, Long128VectorTests::max); } + static long UMIN(long a, long b) { + return (long)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "longBinaryOpProvider") + static void UMINLong128VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long128VectorTests::UMIN); + } + + @Test(dataProvider = "longBinaryOpMaskProvider") + static void UMINLong128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long128VectorTests::UMIN); + } + + static long UMAX(long a, long b) { + return (long)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "longBinaryOpProvider") + static void UMAXLong128VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long128VectorTests::UMAX); + } + + @Test(dataProvider = "longBinaryOpMaskProvider") + static void UMAXLong128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long128VectorTests::UMAX); + } + + static long SADD(long a, long b) { + return (long)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SADDLong128VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long128VectorTests::SADD); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SADDLong128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long128VectorTests::SADD); + } + + static long SSUB(long a, long b) { + return (long)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SSUBLong128VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long128VectorTests::SSUB); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SSUBLong128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long128VectorTests::SSUB); + } + + static long SUADD(long a, long b) { + return (long)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SUADDLong128VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long128VectorTests::SUADD); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SUADDLong128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long128VectorTests::SUADD); + } + + static long SUSUB(long a, long b) { + return (long)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SUSUBLong128VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long128VectorTests::SUSUB); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SUSUBLong128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long128VectorTests::SUSUB); + } + @Test(dataProvider = "longBinaryOpProvider") static void MINLong128VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); @@ -4213,7 +4507,7 @@ static void GELong128VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTLong128VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4221,7 +4515,7 @@ static void UNSIGNED_LTLong128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4232,7 +4526,7 @@ static void UNSIGNED_LTLong128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTLong128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4244,7 +4538,7 @@ static void UNSIGNED_LTLong128VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4255,7 +4549,7 @@ static void UNSIGNED_LTLong128VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_GTLong128VectorTests(IntFunction fa, IntFunction fb) { + static void UGTLong128VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4263,7 +4557,7 @@ static void UNSIGNED_GTLong128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4274,7 +4568,7 @@ static void UNSIGNED_GTLong128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTLong128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4286,7 +4580,7 @@ static void UNSIGNED_GTLong128VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4297,7 +4591,7 @@ static void UNSIGNED_GTLong128VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_LELong128VectorTests(IntFunction fa, IntFunction fb) { + static void ULELong128VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4305,7 +4599,7 @@ static void UNSIGNED_LELong128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4316,7 +4610,7 @@ static void UNSIGNED_LELong128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULELong128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4328,7 +4622,7 @@ static void UNSIGNED_LELong128VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4339,7 +4633,7 @@ static void UNSIGNED_LELong128VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_GELong128VectorTests(IntFunction fa, IntFunction fb) { + static void UGELong128VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4347,7 +4641,7 @@ static void UNSIGNED_GELong128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4358,7 +4652,7 @@ static void UNSIGNED_GELong128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGELong128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4370,7 +4664,7 @@ static void UNSIGNED_GELong128VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Long256VectorTests.java b/test/jdk/jdk/incubator/vector/Long256VectorTests.java index 299b7007ba5..1fc441680fd 100644 --- a/test/jdk/jdk/incubator/vector/Long256VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Long256VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.LongVector; @@ -942,6 +943,33 @@ static long bits(long e) { }) ); + static final List> LONG_SATURATING_GENERATORS = List.of( + withToString("long[Long.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MIN_VALUE)); + }), + withToString("long[Long.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MAX_VALUE)); + }), + withToString("long[Long.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MAX_VALUE - 100)); + }), + withToString("long[Long.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MIN_VALUE + 100)); + }), + withToString("long[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(-i * 5)); + }), + withToString("long[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> LONG_GENERATOR_PAIRS = @@ -949,6 +977,11 @@ static long bits(long e) { flatMap(fa -> LONG_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> LONG_SATURATING_GENERATOR_PAIRS = + Stream.of(LONG_GENERATORS.get(0)). + flatMap(fa -> LONG_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -979,12 +1012,27 @@ public Object[][] longBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] longSaturatingBinaryOpProvider() { + return LONG_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] longIndexedOpProvider() { return LONG_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] longSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> LONG_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] longBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -3005,6 +3053,252 @@ static void maxLong256VectorTests(IntFunction fa, IntFunction fb assertArraysEquals(r, a, b, Long256VectorTests::max); } + static long UMIN(long a, long b) { + return (long)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "longBinaryOpProvider") + static void UMINLong256VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long256VectorTests::UMIN); + } + + @Test(dataProvider = "longBinaryOpMaskProvider") + static void UMINLong256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long256VectorTests::UMIN); + } + + static long UMAX(long a, long b) { + return (long)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "longBinaryOpProvider") + static void UMAXLong256VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long256VectorTests::UMAX); + } + + @Test(dataProvider = "longBinaryOpMaskProvider") + static void UMAXLong256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long256VectorTests::UMAX); + } + + static long SADD(long a, long b) { + return (long)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SADDLong256VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long256VectorTests::SADD); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SADDLong256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long256VectorTests::SADD); + } + + static long SSUB(long a, long b) { + return (long)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SSUBLong256VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long256VectorTests::SSUB); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SSUBLong256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long256VectorTests::SSUB); + } + + static long SUADD(long a, long b) { + return (long)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SUADDLong256VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long256VectorTests::SUADD); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SUADDLong256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long256VectorTests::SUADD); + } + + static long SUSUB(long a, long b) { + return (long)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SUSUBLong256VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long256VectorTests::SUSUB); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SUSUBLong256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long256VectorTests::SUSUB); + } + @Test(dataProvider = "longBinaryOpProvider") static void MINLong256VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); @@ -4213,7 +4507,7 @@ static void GELong256VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTLong256VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4221,7 +4515,7 @@ static void UNSIGNED_LTLong256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4232,7 +4526,7 @@ static void UNSIGNED_LTLong256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTLong256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4244,7 +4538,7 @@ static void UNSIGNED_LTLong256VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4255,7 +4549,7 @@ static void UNSIGNED_LTLong256VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_GTLong256VectorTests(IntFunction fa, IntFunction fb) { + static void UGTLong256VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4263,7 +4557,7 @@ static void UNSIGNED_GTLong256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4274,7 +4568,7 @@ static void UNSIGNED_GTLong256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTLong256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4286,7 +4580,7 @@ static void UNSIGNED_GTLong256VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4297,7 +4591,7 @@ static void UNSIGNED_GTLong256VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_LELong256VectorTests(IntFunction fa, IntFunction fb) { + static void ULELong256VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4305,7 +4599,7 @@ static void UNSIGNED_LELong256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4316,7 +4610,7 @@ static void UNSIGNED_LELong256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULELong256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4328,7 +4622,7 @@ static void UNSIGNED_LELong256VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4339,7 +4633,7 @@ static void UNSIGNED_LELong256VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_GELong256VectorTests(IntFunction fa, IntFunction fb) { + static void UGELong256VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4347,7 +4641,7 @@ static void UNSIGNED_GELong256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4358,7 +4652,7 @@ static void UNSIGNED_GELong256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGELong256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4370,7 +4664,7 @@ static void UNSIGNED_GELong256VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Long512VectorTests.java b/test/jdk/jdk/incubator/vector/Long512VectorTests.java index e6eafa02ed0..81d538a55c4 100644 --- a/test/jdk/jdk/incubator/vector/Long512VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Long512VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.LongVector; @@ -942,6 +943,33 @@ static long bits(long e) { }) ); + static final List> LONG_SATURATING_GENERATORS = List.of( + withToString("long[Long.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MIN_VALUE)); + }), + withToString("long[Long.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MAX_VALUE)); + }), + withToString("long[Long.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MAX_VALUE - 100)); + }), + withToString("long[Long.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MIN_VALUE + 100)); + }), + withToString("long[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(-i * 5)); + }), + withToString("long[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> LONG_GENERATOR_PAIRS = @@ -949,6 +977,11 @@ static long bits(long e) { flatMap(fa -> LONG_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> LONG_SATURATING_GENERATOR_PAIRS = + Stream.of(LONG_GENERATORS.get(0)). + flatMap(fa -> LONG_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -979,12 +1012,27 @@ public Object[][] longBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] longSaturatingBinaryOpProvider() { + return LONG_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] longIndexedOpProvider() { return LONG_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] longSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> LONG_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] longBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -3005,6 +3053,252 @@ static void maxLong512VectorTests(IntFunction fa, IntFunction fb assertArraysEquals(r, a, b, Long512VectorTests::max); } + static long UMIN(long a, long b) { + return (long)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "longBinaryOpProvider") + static void UMINLong512VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long512VectorTests::UMIN); + } + + @Test(dataProvider = "longBinaryOpMaskProvider") + static void UMINLong512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long512VectorTests::UMIN); + } + + static long UMAX(long a, long b) { + return (long)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "longBinaryOpProvider") + static void UMAXLong512VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long512VectorTests::UMAX); + } + + @Test(dataProvider = "longBinaryOpMaskProvider") + static void UMAXLong512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long512VectorTests::UMAX); + } + + static long SADD(long a, long b) { + return (long)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SADDLong512VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long512VectorTests::SADD); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SADDLong512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long512VectorTests::SADD); + } + + static long SSUB(long a, long b) { + return (long)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SSUBLong512VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long512VectorTests::SSUB); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SSUBLong512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long512VectorTests::SSUB); + } + + static long SUADD(long a, long b) { + return (long)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SUADDLong512VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long512VectorTests::SUADD); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SUADDLong512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long512VectorTests::SUADD); + } + + static long SUSUB(long a, long b) { + return (long)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SUSUBLong512VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long512VectorTests::SUSUB); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SUSUBLong512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long512VectorTests::SUSUB); + } + @Test(dataProvider = "longBinaryOpProvider") static void MINLong512VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); @@ -4213,7 +4507,7 @@ static void GELong512VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTLong512VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4221,7 +4515,7 @@ static void UNSIGNED_LTLong512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4232,7 +4526,7 @@ static void UNSIGNED_LTLong512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTLong512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4244,7 +4538,7 @@ static void UNSIGNED_LTLong512VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4255,7 +4549,7 @@ static void UNSIGNED_LTLong512VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_GTLong512VectorTests(IntFunction fa, IntFunction fb) { + static void UGTLong512VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4263,7 +4557,7 @@ static void UNSIGNED_GTLong512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4274,7 +4568,7 @@ static void UNSIGNED_GTLong512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTLong512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4286,7 +4580,7 @@ static void UNSIGNED_GTLong512VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4297,7 +4591,7 @@ static void UNSIGNED_GTLong512VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_LELong512VectorTests(IntFunction fa, IntFunction fb) { + static void ULELong512VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4305,7 +4599,7 @@ static void UNSIGNED_LELong512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4316,7 +4610,7 @@ static void UNSIGNED_LELong512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULELong512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4328,7 +4622,7 @@ static void UNSIGNED_LELong512VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4339,7 +4633,7 @@ static void UNSIGNED_LELong512VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_GELong512VectorTests(IntFunction fa, IntFunction fb) { + static void UGELong512VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4347,7 +4641,7 @@ static void UNSIGNED_GELong512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4358,7 +4652,7 @@ static void UNSIGNED_GELong512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGELong512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4370,7 +4664,7 @@ static void UNSIGNED_GELong512VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Long64VectorTests.java b/test/jdk/jdk/incubator/vector/Long64VectorTests.java index 035db048eb8..1d85fc510d9 100644 --- a/test/jdk/jdk/incubator/vector/Long64VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Long64VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.LongVector; @@ -942,6 +943,33 @@ static long bits(long e) { }) ); + static final List> LONG_SATURATING_GENERATORS = List.of( + withToString("long[Long.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MIN_VALUE)); + }), + withToString("long[Long.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MAX_VALUE)); + }), + withToString("long[Long.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MAX_VALUE - 100)); + }), + withToString("long[Long.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MIN_VALUE + 100)); + }), + withToString("long[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(-i * 5)); + }), + withToString("long[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> LONG_GENERATOR_PAIRS = @@ -949,6 +977,11 @@ static long bits(long e) { flatMap(fa -> LONG_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> LONG_SATURATING_GENERATOR_PAIRS = + Stream.of(LONG_GENERATORS.get(0)). + flatMap(fa -> LONG_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -979,12 +1012,27 @@ public Object[][] longBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] longSaturatingBinaryOpProvider() { + return LONG_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] longIndexedOpProvider() { return LONG_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] longSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> LONG_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] longBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -3005,6 +3053,252 @@ static void maxLong64VectorTests(IntFunction fa, IntFunction fb) assertArraysEquals(r, a, b, Long64VectorTests::max); } + static long UMIN(long a, long b) { + return (long)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "longBinaryOpProvider") + static void UMINLong64VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long64VectorTests::UMIN); + } + + @Test(dataProvider = "longBinaryOpMaskProvider") + static void UMINLong64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long64VectorTests::UMIN); + } + + static long UMAX(long a, long b) { + return (long)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "longBinaryOpProvider") + static void UMAXLong64VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long64VectorTests::UMAX); + } + + @Test(dataProvider = "longBinaryOpMaskProvider") + static void UMAXLong64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long64VectorTests::UMAX); + } + + static long SADD(long a, long b) { + return (long)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SADDLong64VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long64VectorTests::SADD); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SADDLong64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long64VectorTests::SADD); + } + + static long SSUB(long a, long b) { + return (long)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SSUBLong64VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long64VectorTests::SSUB); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SSUBLong64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long64VectorTests::SSUB); + } + + static long SUADD(long a, long b) { + return (long)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SUADDLong64VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long64VectorTests::SUADD); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SUADDLong64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long64VectorTests::SUADD); + } + + static long SUSUB(long a, long b) { + return (long)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SUSUBLong64VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long64VectorTests::SUSUB); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SUSUBLong64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long64VectorTests::SUSUB); + } + @Test(dataProvider = "longBinaryOpProvider") static void MINLong64VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); @@ -4213,7 +4507,7 @@ static void GELong64VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTLong64VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4221,7 +4515,7 @@ static void UNSIGNED_LTLong64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4232,7 +4526,7 @@ static void UNSIGNED_LTLong64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTLong64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4244,7 +4538,7 @@ static void UNSIGNED_LTLong64VectorTestsMasked(IntFunction fa, IntFuncti for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4255,7 +4549,7 @@ static void UNSIGNED_LTLong64VectorTestsMasked(IntFunction fa, IntFuncti } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_GTLong64VectorTests(IntFunction fa, IntFunction fb) { + static void UGTLong64VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4263,7 +4557,7 @@ static void UNSIGNED_GTLong64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4274,7 +4568,7 @@ static void UNSIGNED_GTLong64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTLong64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4286,7 +4580,7 @@ static void UNSIGNED_GTLong64VectorTestsMasked(IntFunction fa, IntFuncti for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4297,7 +4591,7 @@ static void UNSIGNED_GTLong64VectorTestsMasked(IntFunction fa, IntFuncti } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_LELong64VectorTests(IntFunction fa, IntFunction fb) { + static void ULELong64VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4305,7 +4599,7 @@ static void UNSIGNED_LELong64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4316,7 +4610,7 @@ static void UNSIGNED_LELong64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULELong64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4328,7 +4622,7 @@ static void UNSIGNED_LELong64VectorTestsMasked(IntFunction fa, IntFuncti for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4339,7 +4633,7 @@ static void UNSIGNED_LELong64VectorTestsMasked(IntFunction fa, IntFuncti } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_GELong64VectorTests(IntFunction fa, IntFunction fb) { + static void UGELong64VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4347,7 +4641,7 @@ static void UNSIGNED_GELong64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4358,7 +4652,7 @@ static void UNSIGNED_GELong64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGELong64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4370,7 +4664,7 @@ static void UNSIGNED_GELong64VectorTestsMasked(IntFunction fa, IntFuncti for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/LongMaxVectorTests.java b/test/jdk/jdk/incubator/vector/LongMaxVectorTests.java index 68ea78db4f0..bae5b968d79 100644 --- a/test/jdk/jdk/incubator/vector/LongMaxVectorTests.java +++ b/test/jdk/jdk/incubator/vector/LongMaxVectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.LongVector; @@ -947,6 +948,33 @@ static long bits(long e) { }) ); + static final List> LONG_SATURATING_GENERATORS = List.of( + withToString("long[Long.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MIN_VALUE)); + }), + withToString("long[Long.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MAX_VALUE)); + }), + withToString("long[Long.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MAX_VALUE - 100)); + }), + withToString("long[Long.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MIN_VALUE + 100)); + }), + withToString("long[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(-i * 5)); + }), + withToString("long[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> LONG_GENERATOR_PAIRS = @@ -954,6 +982,11 @@ static long bits(long e) { flatMap(fa -> LONG_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> LONG_SATURATING_GENERATOR_PAIRS = + Stream.of(LONG_GENERATORS.get(0)). + flatMap(fa -> LONG_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -984,12 +1017,27 @@ public Object[][] longBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] longSaturatingBinaryOpProvider() { + return LONG_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] longIndexedOpProvider() { return LONG_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] longSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> LONG_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] longBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -3010,6 +3058,252 @@ static void maxLongMaxVectorTests(IntFunction fa, IntFunction fb assertArraysEquals(r, a, b, LongMaxVectorTests::max); } + static long UMIN(long a, long b) { + return (long)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "longBinaryOpProvider") + static void UMINLongMaxVectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, LongMaxVectorTests::UMIN); + } + + @Test(dataProvider = "longBinaryOpMaskProvider") + static void UMINLongMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, LongMaxVectorTests::UMIN); + } + + static long UMAX(long a, long b) { + return (long)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "longBinaryOpProvider") + static void UMAXLongMaxVectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, LongMaxVectorTests::UMAX); + } + + @Test(dataProvider = "longBinaryOpMaskProvider") + static void UMAXLongMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, LongMaxVectorTests::UMAX); + } + + static long SADD(long a, long b) { + return (long)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SADDLongMaxVectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, LongMaxVectorTests::SADD); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SADDLongMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, LongMaxVectorTests::SADD); + } + + static long SSUB(long a, long b) { + return (long)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SSUBLongMaxVectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, LongMaxVectorTests::SSUB); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SSUBLongMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, LongMaxVectorTests::SSUB); + } + + static long SUADD(long a, long b) { + return (long)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SUADDLongMaxVectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, LongMaxVectorTests::SUADD); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SUADDLongMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, LongMaxVectorTests::SUADD); + } + + static long SUSUB(long a, long b) { + return (long)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SUSUBLongMaxVectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, LongMaxVectorTests::SUSUB); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SUSUBLongMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, LongMaxVectorTests::SUSUB); + } + @Test(dataProvider = "longBinaryOpProvider") static void MINLongMaxVectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); @@ -4218,7 +4512,7 @@ static void GELongMaxVectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTLongMaxVectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4226,7 +4520,7 @@ static void UNSIGNED_LTLongMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4237,7 +4531,7 @@ static void UNSIGNED_LTLongMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTLongMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4249,7 +4543,7 @@ static void UNSIGNED_LTLongMaxVectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4260,7 +4554,7 @@ static void UNSIGNED_LTLongMaxVectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_GTLongMaxVectorTests(IntFunction fa, IntFunction fb) { + static void UGTLongMaxVectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4268,7 +4562,7 @@ static void UNSIGNED_GTLongMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4279,7 +4573,7 @@ static void UNSIGNED_GTLongMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTLongMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4291,7 +4585,7 @@ static void UNSIGNED_GTLongMaxVectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4302,7 +4596,7 @@ static void UNSIGNED_GTLongMaxVectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_LELongMaxVectorTests(IntFunction fa, IntFunction fb) { + static void ULELongMaxVectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4310,7 +4604,7 @@ static void UNSIGNED_LELongMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4321,7 +4615,7 @@ static void UNSIGNED_LELongMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULELongMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4333,7 +4627,7 @@ static void UNSIGNED_LELongMaxVectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4344,7 +4638,7 @@ static void UNSIGNED_LELongMaxVectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_GELongMaxVectorTests(IntFunction fa, IntFunction fb) { + static void UGELongMaxVectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4352,7 +4646,7 @@ static void UNSIGNED_GELongMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4363,7 +4657,7 @@ static void UNSIGNED_GELongMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGELongMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4375,7 +4669,7 @@ static void UNSIGNED_GELongMaxVectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Short128VectorTests.java b/test/jdk/jdk/incubator/vector/Short128VectorTests.java index 2103be0994c..2d6a1fd0a5f 100644 --- a/test/jdk/jdk/incubator/vector/Short128VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Short128VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.ShortVector; @@ -952,6 +953,33 @@ static short bits(short e) { }) ); + static final List> SHORT_SATURATING_GENERATORS = List.of( + withToString("short[Short.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MIN_VALUE)); + }), + withToString("short[Short.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MAX_VALUE)); + }), + withToString("short[Short.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MAX_VALUE - 100)); + }), + withToString("short[Short.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MIN_VALUE + 100)); + }), + withToString("short[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(-i * 5)); + }), + withToString("short[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> SHORT_GENERATOR_PAIRS = @@ -959,6 +987,11 @@ static short bits(short e) { flatMap(fa -> SHORT_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> SHORT_SATURATING_GENERATOR_PAIRS = + Stream.of(SHORT_GENERATORS.get(0)). + flatMap(fa -> SHORT_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -989,12 +1022,27 @@ public Object[][] shortBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] shortSaturatingBinaryOpProvider() { + return SHORT_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] shortIndexedOpProvider() { return SHORT_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] shortSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> SHORT_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] shortBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2930,6 +2978,252 @@ static void maxShort128VectorTests(IntFunction fa, IntFunction assertArraysEquals(r, a, b, Short128VectorTests::max); } + static short UMIN(short a, short b) { + return (short)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "shortBinaryOpProvider") + static void UMINShort128VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short128VectorTests::UMIN); + } + + @Test(dataProvider = "shortBinaryOpMaskProvider") + static void UMINShort128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short128VectorTests::UMIN); + } + + static short UMAX(short a, short b) { + return (short)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "shortBinaryOpProvider") + static void UMAXShort128VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short128VectorTests::UMAX); + } + + @Test(dataProvider = "shortBinaryOpMaskProvider") + static void UMAXShort128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short128VectorTests::UMAX); + } + + static short SADD(short a, short b) { + return (short)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SADDShort128VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short128VectorTests::SADD); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SADDShort128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short128VectorTests::SADD); + } + + static short SSUB(short a, short b) { + return (short)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SSUBShort128VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short128VectorTests::SSUB); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SSUBShort128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short128VectorTests::SSUB); + } + + static short SUADD(short a, short b) { + return (short)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SUADDShort128VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short128VectorTests::SUADD); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SUADDShort128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short128VectorTests::SUADD); + } + + static short SUSUB(short a, short b) { + return (short)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SUSUBShort128VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short128VectorTests::SUSUB); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SUSUBShort128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short128VectorTests::SUSUB); + } + @Test(dataProvider = "shortBinaryOpProvider") static void MINShort128VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); @@ -4138,7 +4432,7 @@ static void GEShort128VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTShort128VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4146,7 +4440,7 @@ static void UNSIGNED_LTShort128VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4157,7 +4451,7 @@ static void UNSIGNED_LTShort128VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_LTShort128VectorTestsMasked(IntFunction fa, IntFunction fb, + static void ULTShort128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4169,7 +4463,7 @@ static void UNSIGNED_LTShort128VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4180,7 +4474,7 @@ static void UNSIGNED_LTShort128VectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_GTShort128VectorTests(IntFunction fa, IntFunction fb) { + static void UGTShort128VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4188,7 +4482,7 @@ static void UNSIGNED_GTShort128VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4199,7 +4493,7 @@ static void UNSIGNED_GTShort128VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_GTShort128VectorTestsMasked(IntFunction fa, IntFunction fb, + static void UGTShort128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4211,7 +4505,7 @@ static void UNSIGNED_GTShort128VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4222,7 +4516,7 @@ static void UNSIGNED_GTShort128VectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_LEShort128VectorTests(IntFunction fa, IntFunction fb) { + static void ULEShort128VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4230,7 +4524,7 @@ static void UNSIGNED_LEShort128VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4241,7 +4535,7 @@ static void UNSIGNED_LEShort128VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_LEShort128VectorTestsMasked(IntFunction fa, IntFunction fb, + static void ULEShort128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4253,7 +4547,7 @@ static void UNSIGNED_LEShort128VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4264,7 +4558,7 @@ static void UNSIGNED_LEShort128VectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_GEShort128VectorTests(IntFunction fa, IntFunction fb) { + static void UGEShort128VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4272,7 +4566,7 @@ static void UNSIGNED_GEShort128VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4283,7 +4577,7 @@ static void UNSIGNED_GEShort128VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_GEShort128VectorTestsMasked(IntFunction fa, IntFunction fb, + static void UGEShort128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4295,7 +4589,7 @@ static void UNSIGNED_GEShort128VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Short256VectorTests.java b/test/jdk/jdk/incubator/vector/Short256VectorTests.java index feed6bbe5f3..fa8ec1f31b6 100644 --- a/test/jdk/jdk/incubator/vector/Short256VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Short256VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.ShortVector; @@ -952,6 +953,33 @@ static short bits(short e) { }) ); + static final List> SHORT_SATURATING_GENERATORS = List.of( + withToString("short[Short.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MIN_VALUE)); + }), + withToString("short[Short.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MAX_VALUE)); + }), + withToString("short[Short.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MAX_VALUE - 100)); + }), + withToString("short[Short.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MIN_VALUE + 100)); + }), + withToString("short[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(-i * 5)); + }), + withToString("short[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> SHORT_GENERATOR_PAIRS = @@ -959,6 +987,11 @@ static short bits(short e) { flatMap(fa -> SHORT_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> SHORT_SATURATING_GENERATOR_PAIRS = + Stream.of(SHORT_GENERATORS.get(0)). + flatMap(fa -> SHORT_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -989,12 +1022,27 @@ public Object[][] shortBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] shortSaturatingBinaryOpProvider() { + return SHORT_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] shortIndexedOpProvider() { return SHORT_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] shortSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> SHORT_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] shortBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2930,6 +2978,252 @@ static void maxShort256VectorTests(IntFunction fa, IntFunction assertArraysEquals(r, a, b, Short256VectorTests::max); } + static short UMIN(short a, short b) { + return (short)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "shortBinaryOpProvider") + static void UMINShort256VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short256VectorTests::UMIN); + } + + @Test(dataProvider = "shortBinaryOpMaskProvider") + static void UMINShort256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short256VectorTests::UMIN); + } + + static short UMAX(short a, short b) { + return (short)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "shortBinaryOpProvider") + static void UMAXShort256VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short256VectorTests::UMAX); + } + + @Test(dataProvider = "shortBinaryOpMaskProvider") + static void UMAXShort256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short256VectorTests::UMAX); + } + + static short SADD(short a, short b) { + return (short)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SADDShort256VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short256VectorTests::SADD); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SADDShort256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short256VectorTests::SADD); + } + + static short SSUB(short a, short b) { + return (short)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SSUBShort256VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short256VectorTests::SSUB); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SSUBShort256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short256VectorTests::SSUB); + } + + static short SUADD(short a, short b) { + return (short)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SUADDShort256VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short256VectorTests::SUADD); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SUADDShort256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short256VectorTests::SUADD); + } + + static short SUSUB(short a, short b) { + return (short)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SUSUBShort256VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short256VectorTests::SUSUB); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SUSUBShort256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short256VectorTests::SUSUB); + } + @Test(dataProvider = "shortBinaryOpProvider") static void MINShort256VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); @@ -4138,7 +4432,7 @@ static void GEShort256VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTShort256VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4146,7 +4440,7 @@ static void UNSIGNED_LTShort256VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4157,7 +4451,7 @@ static void UNSIGNED_LTShort256VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_LTShort256VectorTestsMasked(IntFunction fa, IntFunction fb, + static void ULTShort256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4169,7 +4463,7 @@ static void UNSIGNED_LTShort256VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4180,7 +4474,7 @@ static void UNSIGNED_LTShort256VectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_GTShort256VectorTests(IntFunction fa, IntFunction fb) { + static void UGTShort256VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4188,7 +4482,7 @@ static void UNSIGNED_GTShort256VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4199,7 +4493,7 @@ static void UNSIGNED_GTShort256VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_GTShort256VectorTestsMasked(IntFunction fa, IntFunction fb, + static void UGTShort256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4211,7 +4505,7 @@ static void UNSIGNED_GTShort256VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4222,7 +4516,7 @@ static void UNSIGNED_GTShort256VectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_LEShort256VectorTests(IntFunction fa, IntFunction fb) { + static void ULEShort256VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4230,7 +4524,7 @@ static void UNSIGNED_LEShort256VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4241,7 +4535,7 @@ static void UNSIGNED_LEShort256VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_LEShort256VectorTestsMasked(IntFunction fa, IntFunction fb, + static void ULEShort256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4253,7 +4547,7 @@ static void UNSIGNED_LEShort256VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4264,7 +4558,7 @@ static void UNSIGNED_LEShort256VectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_GEShort256VectorTests(IntFunction fa, IntFunction fb) { + static void UGEShort256VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4272,7 +4566,7 @@ static void UNSIGNED_GEShort256VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4283,7 +4577,7 @@ static void UNSIGNED_GEShort256VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_GEShort256VectorTestsMasked(IntFunction fa, IntFunction fb, + static void UGEShort256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4295,7 +4589,7 @@ static void UNSIGNED_GEShort256VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Short512VectorTests.java b/test/jdk/jdk/incubator/vector/Short512VectorTests.java index a1a1ac6bc37..ba6a7dadebd 100644 --- a/test/jdk/jdk/incubator/vector/Short512VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Short512VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.ShortVector; @@ -952,6 +953,33 @@ static short bits(short e) { }) ); + static final List> SHORT_SATURATING_GENERATORS = List.of( + withToString("short[Short.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MIN_VALUE)); + }), + withToString("short[Short.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MAX_VALUE)); + }), + withToString("short[Short.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MAX_VALUE - 100)); + }), + withToString("short[Short.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MIN_VALUE + 100)); + }), + withToString("short[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(-i * 5)); + }), + withToString("short[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> SHORT_GENERATOR_PAIRS = @@ -959,6 +987,11 @@ static short bits(short e) { flatMap(fa -> SHORT_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> SHORT_SATURATING_GENERATOR_PAIRS = + Stream.of(SHORT_GENERATORS.get(0)). + flatMap(fa -> SHORT_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -989,12 +1022,27 @@ public Object[][] shortBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] shortSaturatingBinaryOpProvider() { + return SHORT_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] shortIndexedOpProvider() { return SHORT_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] shortSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> SHORT_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] shortBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2930,6 +2978,252 @@ static void maxShort512VectorTests(IntFunction fa, IntFunction assertArraysEquals(r, a, b, Short512VectorTests::max); } + static short UMIN(short a, short b) { + return (short)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "shortBinaryOpProvider") + static void UMINShort512VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short512VectorTests::UMIN); + } + + @Test(dataProvider = "shortBinaryOpMaskProvider") + static void UMINShort512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short512VectorTests::UMIN); + } + + static short UMAX(short a, short b) { + return (short)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "shortBinaryOpProvider") + static void UMAXShort512VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short512VectorTests::UMAX); + } + + @Test(dataProvider = "shortBinaryOpMaskProvider") + static void UMAXShort512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short512VectorTests::UMAX); + } + + static short SADD(short a, short b) { + return (short)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SADDShort512VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short512VectorTests::SADD); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SADDShort512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short512VectorTests::SADD); + } + + static short SSUB(short a, short b) { + return (short)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SSUBShort512VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short512VectorTests::SSUB); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SSUBShort512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short512VectorTests::SSUB); + } + + static short SUADD(short a, short b) { + return (short)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SUADDShort512VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short512VectorTests::SUADD); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SUADDShort512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short512VectorTests::SUADD); + } + + static short SUSUB(short a, short b) { + return (short)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SUSUBShort512VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short512VectorTests::SUSUB); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SUSUBShort512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short512VectorTests::SUSUB); + } + @Test(dataProvider = "shortBinaryOpProvider") static void MINShort512VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); @@ -4138,7 +4432,7 @@ static void GEShort512VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTShort512VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4146,7 +4440,7 @@ static void UNSIGNED_LTShort512VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4157,7 +4451,7 @@ static void UNSIGNED_LTShort512VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_LTShort512VectorTestsMasked(IntFunction fa, IntFunction fb, + static void ULTShort512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4169,7 +4463,7 @@ static void UNSIGNED_LTShort512VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4180,7 +4474,7 @@ static void UNSIGNED_LTShort512VectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_GTShort512VectorTests(IntFunction fa, IntFunction fb) { + static void UGTShort512VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4188,7 +4482,7 @@ static void UNSIGNED_GTShort512VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4199,7 +4493,7 @@ static void UNSIGNED_GTShort512VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_GTShort512VectorTestsMasked(IntFunction fa, IntFunction fb, + static void UGTShort512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4211,7 +4505,7 @@ static void UNSIGNED_GTShort512VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4222,7 +4516,7 @@ static void UNSIGNED_GTShort512VectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_LEShort512VectorTests(IntFunction fa, IntFunction fb) { + static void ULEShort512VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4230,7 +4524,7 @@ static void UNSIGNED_LEShort512VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4241,7 +4535,7 @@ static void UNSIGNED_LEShort512VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_LEShort512VectorTestsMasked(IntFunction fa, IntFunction fb, + static void ULEShort512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4253,7 +4547,7 @@ static void UNSIGNED_LEShort512VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4264,7 +4558,7 @@ static void UNSIGNED_LEShort512VectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_GEShort512VectorTests(IntFunction fa, IntFunction fb) { + static void UGEShort512VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4272,7 +4566,7 @@ static void UNSIGNED_GEShort512VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4283,7 +4577,7 @@ static void UNSIGNED_GEShort512VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_GEShort512VectorTestsMasked(IntFunction fa, IntFunction fb, + static void UGEShort512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4295,7 +4589,7 @@ static void UNSIGNED_GEShort512VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Short64VectorTests.java b/test/jdk/jdk/incubator/vector/Short64VectorTests.java index cc14cccd119..939da11d53a 100644 --- a/test/jdk/jdk/incubator/vector/Short64VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Short64VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.ShortVector; @@ -952,6 +953,33 @@ static short bits(short e) { }) ); + static final List> SHORT_SATURATING_GENERATORS = List.of( + withToString("short[Short.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MIN_VALUE)); + }), + withToString("short[Short.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MAX_VALUE)); + }), + withToString("short[Short.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MAX_VALUE - 100)); + }), + withToString("short[Short.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MIN_VALUE + 100)); + }), + withToString("short[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(-i * 5)); + }), + withToString("short[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> SHORT_GENERATOR_PAIRS = @@ -959,6 +987,11 @@ static short bits(short e) { flatMap(fa -> SHORT_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> SHORT_SATURATING_GENERATOR_PAIRS = + Stream.of(SHORT_GENERATORS.get(0)). + flatMap(fa -> SHORT_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -989,12 +1022,27 @@ public Object[][] shortBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] shortSaturatingBinaryOpProvider() { + return SHORT_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] shortIndexedOpProvider() { return SHORT_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] shortSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> SHORT_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] shortBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2930,6 +2978,252 @@ static void maxShort64VectorTests(IntFunction fa, IntFunction assertArraysEquals(r, a, b, Short64VectorTests::max); } + static short UMIN(short a, short b) { + return (short)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "shortBinaryOpProvider") + static void UMINShort64VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short64VectorTests::UMIN); + } + + @Test(dataProvider = "shortBinaryOpMaskProvider") + static void UMINShort64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short64VectorTests::UMIN); + } + + static short UMAX(short a, short b) { + return (short)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "shortBinaryOpProvider") + static void UMAXShort64VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short64VectorTests::UMAX); + } + + @Test(dataProvider = "shortBinaryOpMaskProvider") + static void UMAXShort64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short64VectorTests::UMAX); + } + + static short SADD(short a, short b) { + return (short)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SADDShort64VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short64VectorTests::SADD); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SADDShort64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short64VectorTests::SADD); + } + + static short SSUB(short a, short b) { + return (short)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SSUBShort64VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short64VectorTests::SSUB); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SSUBShort64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short64VectorTests::SSUB); + } + + static short SUADD(short a, short b) { + return (short)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SUADDShort64VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short64VectorTests::SUADD); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SUADDShort64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short64VectorTests::SUADD); + } + + static short SUSUB(short a, short b) { + return (short)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SUSUBShort64VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short64VectorTests::SUSUB); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SUSUBShort64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short64VectorTests::SUSUB); + } + @Test(dataProvider = "shortBinaryOpProvider") static void MINShort64VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); @@ -4138,7 +4432,7 @@ static void GEShort64VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTShort64VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4146,7 +4440,7 @@ static void UNSIGNED_LTShort64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4157,7 +4451,7 @@ static void UNSIGNED_LTShort64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTShort64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4169,7 +4463,7 @@ static void UNSIGNED_LTShort64VectorTestsMasked(IntFunction fa, IntFunc for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4180,7 +4474,7 @@ static void UNSIGNED_LTShort64VectorTestsMasked(IntFunction fa, IntFunc } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_GTShort64VectorTests(IntFunction fa, IntFunction fb) { + static void UGTShort64VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4188,7 +4482,7 @@ static void UNSIGNED_GTShort64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4199,7 +4493,7 @@ static void UNSIGNED_GTShort64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTShort64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4211,7 +4505,7 @@ static void UNSIGNED_GTShort64VectorTestsMasked(IntFunction fa, IntFunc for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4222,7 +4516,7 @@ static void UNSIGNED_GTShort64VectorTestsMasked(IntFunction fa, IntFunc } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_LEShort64VectorTests(IntFunction fa, IntFunction fb) { + static void ULEShort64VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4230,7 +4524,7 @@ static void UNSIGNED_LEShort64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4241,7 +4535,7 @@ static void UNSIGNED_LEShort64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULEShort64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4253,7 +4547,7 @@ static void UNSIGNED_LEShort64VectorTestsMasked(IntFunction fa, IntFunc for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4264,7 +4558,7 @@ static void UNSIGNED_LEShort64VectorTestsMasked(IntFunction fa, IntFunc } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_GEShort64VectorTests(IntFunction fa, IntFunction fb) { + static void UGEShort64VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4272,7 +4566,7 @@ static void UNSIGNED_GEShort64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4283,7 +4577,7 @@ static void UNSIGNED_GEShort64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGEShort64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4295,7 +4589,7 @@ static void UNSIGNED_GEShort64VectorTestsMasked(IntFunction fa, IntFunc for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/ShortMaxVectorTests.java b/test/jdk/jdk/incubator/vector/ShortMaxVectorTests.java index a557494f74c..ade78e1f3f5 100644 --- a/test/jdk/jdk/incubator/vector/ShortMaxVectorTests.java +++ b/test/jdk/jdk/incubator/vector/ShortMaxVectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.ShortVector; @@ -957,6 +958,33 @@ static short bits(short e) { }) ); + static final List> SHORT_SATURATING_GENERATORS = List.of( + withToString("short[Short.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MIN_VALUE)); + }), + withToString("short[Short.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MAX_VALUE)); + }), + withToString("short[Short.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MAX_VALUE - 100)); + }), + withToString("short[Short.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MIN_VALUE + 100)); + }), + withToString("short[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(-i * 5)); + }), + withToString("short[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> SHORT_GENERATOR_PAIRS = @@ -964,6 +992,11 @@ static short bits(short e) { flatMap(fa -> SHORT_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> SHORT_SATURATING_GENERATOR_PAIRS = + Stream.of(SHORT_GENERATORS.get(0)). + flatMap(fa -> SHORT_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -994,12 +1027,27 @@ public Object[][] shortBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] shortSaturatingBinaryOpProvider() { + return SHORT_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] shortIndexedOpProvider() { return SHORT_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] shortSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> SHORT_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] shortBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2935,6 +2983,252 @@ static void maxShortMaxVectorTests(IntFunction fa, IntFunction assertArraysEquals(r, a, b, ShortMaxVectorTests::max); } + static short UMIN(short a, short b) { + return (short)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "shortBinaryOpProvider") + static void UMINShortMaxVectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ShortMaxVectorTests::UMIN); + } + + @Test(dataProvider = "shortBinaryOpMaskProvider") + static void UMINShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ShortMaxVectorTests::UMIN); + } + + static short UMAX(short a, short b) { + return (short)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "shortBinaryOpProvider") + static void UMAXShortMaxVectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ShortMaxVectorTests::UMAX); + } + + @Test(dataProvider = "shortBinaryOpMaskProvider") + static void UMAXShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ShortMaxVectorTests::UMAX); + } + + static short SADD(short a, short b) { + return (short)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SADDShortMaxVectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ShortMaxVectorTests::SADD); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SADDShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ShortMaxVectorTests::SADD); + } + + static short SSUB(short a, short b) { + return (short)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SSUBShortMaxVectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ShortMaxVectorTests::SSUB); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SSUBShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ShortMaxVectorTests::SSUB); + } + + static short SUADD(short a, short b) { + return (short)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SUADDShortMaxVectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ShortMaxVectorTests::SUADD); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SUADDShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ShortMaxVectorTests::SUADD); + } + + static short SUSUB(short a, short b) { + return (short)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SUSUBShortMaxVectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ShortMaxVectorTests::SUSUB); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SUSUBShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ShortMaxVectorTests::SUSUB); + } + @Test(dataProvider = "shortBinaryOpProvider") static void MINShortMaxVectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); @@ -4143,7 +4437,7 @@ static void GEShortMaxVectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTShortMaxVectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4151,7 +4445,7 @@ static void UNSIGNED_LTShortMaxVectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4162,7 +4456,7 @@ static void UNSIGNED_LTShortMaxVectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_LTShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + static void ULTShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4174,7 +4468,7 @@ static void UNSIGNED_LTShortMaxVectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4185,7 +4479,7 @@ static void UNSIGNED_LTShortMaxVectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_GTShortMaxVectorTests(IntFunction fa, IntFunction fb) { + static void UGTShortMaxVectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4193,7 +4487,7 @@ static void UNSIGNED_GTShortMaxVectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4204,7 +4498,7 @@ static void UNSIGNED_GTShortMaxVectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_GTShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + static void UGTShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4216,7 +4510,7 @@ static void UNSIGNED_GTShortMaxVectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4227,7 +4521,7 @@ static void UNSIGNED_GTShortMaxVectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_LEShortMaxVectorTests(IntFunction fa, IntFunction fb) { + static void ULEShortMaxVectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4235,7 +4529,7 @@ static void UNSIGNED_LEShortMaxVectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4246,7 +4540,7 @@ static void UNSIGNED_LEShortMaxVectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_LEShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + static void ULEShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4258,7 +4552,7 @@ static void UNSIGNED_LEShortMaxVectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4269,7 +4563,7 @@ static void UNSIGNED_LEShortMaxVectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_GEShortMaxVectorTests(IntFunction fa, IntFunction fb) { + static void UGEShortMaxVectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4277,7 +4571,7 @@ static void UNSIGNED_GEShortMaxVectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4288,7 +4582,7 @@ static void UNSIGNED_GEShortMaxVectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_GEShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + static void UGEShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4300,7 +4594,7 @@ static void UNSIGNED_GEShortMaxVectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/VectorMathTest.java b/test/jdk/jdk/incubator/vector/VectorMathTest.java new file mode 100644 index 00000000000..366b9acde59 --- /dev/null +++ b/test/jdk/jdk/incubator/vector/VectorMathTest.java @@ -0,0 +1,245 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8338021 + * @summary Test unsigned and saturating scalar operators for use with Vector API + * @modules jdk.incubator.vector + * @run testng VectorMathTest + */ + +import jdk.incubator.vector.VectorMath; +import org.testng.Assert; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; + +import java.lang.reflect.Array; +import java.util.function.BinaryOperator; + +public class VectorMathTest { + // @formatter:off + public static final byte ZERO_B = (byte)0; + public static final short ZERO_S = (short)0; + public static final int ZERO_I = 0; + public static final long ZERO_L = 0L; + + public static final byte TEN_B = (byte)10; + public static final int TEN_S = (short)10; + public static final short TEN_I = 10; + public static final long TEN_L = 10L; + + public static final byte FIFTY_B = (byte)50; + public static final int FIFTY_S = (short)50; + public static final short FIFTY_I = 50; + public static final long FIFTY_L = 50L; + + public static final byte SIXTY_B = (byte)60; + public static final int SIXTY_S = (short)60; + public static final short SIXTY_I = 60; + public static final long SIXTY_L = 60L; + + public static final byte UMAX_B = (byte)-1; + public static final short UMAX_S = (short)-1; + public static final int UMAX_I = -1; + public static final long UMAX_L = -1L; + + public static byte[] INPUT_SB = {Byte.MIN_VALUE, (byte)(Byte.MIN_VALUE + TEN_B), ZERO_B, (byte)(Byte.MAX_VALUE - TEN_B), Byte.MAX_VALUE}; + public static short[] INPUT_SS = {Short.MIN_VALUE, (short)(Short.MIN_VALUE + TEN_S), ZERO_S, (short)(Short.MAX_VALUE - TEN_S), Short.MAX_VALUE}; + public static int[] INPUT_SI = {Integer.MIN_VALUE, (Integer.MIN_VALUE + TEN_I), ZERO_I, Integer.MAX_VALUE - TEN_I, Integer.MAX_VALUE}; + public static long[] INPUT_SL = {Long.MIN_VALUE, Long.MIN_VALUE + TEN_L, ZERO_L, Long.MAX_VALUE - TEN_L, Long.MAX_VALUE}; + + public static int[] INPUT_SADD_I = {-FIFTY_I, -FIFTY_I, -FIFTY_I, FIFTY_I, FIFTY_I}; + public static byte[] EXPECTED_SADD_B = {Byte.MIN_VALUE, Byte.MIN_VALUE, -FIFTY_B, Byte.MAX_VALUE, Byte.MAX_VALUE}; + public static short[] EXPECTED_SADD_S = {Short.MIN_VALUE, Short.MIN_VALUE, -FIFTY_S, Short.MAX_VALUE, Short.MAX_VALUE}; + public static int[] EXPECTED_SADD_I = {Integer.MIN_VALUE, Integer.MIN_VALUE, -FIFTY_I, Integer.MAX_VALUE, Integer.MAX_VALUE}; + public static long[] EXPECTED_SADD_L = {Long.MIN_VALUE, Long.MIN_VALUE, -FIFTY_L, Long.MAX_VALUE, Long.MAX_VALUE}; + + public static int[] INPUT_SSUB_I = {FIFTY_I, FIFTY_I, FIFTY_I, -FIFTY_I, -FIFTY_I}; + public static byte[] EXPECTED_SSUB_B = {Byte.MIN_VALUE, Byte.MIN_VALUE, -FIFTY_B, Byte.MAX_VALUE, Byte.MAX_VALUE}; + public static short[] EXPECTED_SSUB_S = {Short.MIN_VALUE, Short.MIN_VALUE, -FIFTY_S, Short.MAX_VALUE, Short.MAX_VALUE}; + public static int[] EXPECTED_SSUB_I = {Integer.MIN_VALUE, Integer.MIN_VALUE, -FIFTY_I, Integer.MAX_VALUE, Integer.MAX_VALUE}; + public static long[] EXPECTED_SSUB_L = {Long.MIN_VALUE, Long.MIN_VALUE, -FIFTY_L, Long.MAX_VALUE, Long.MAX_VALUE}; + + public static byte[] INPUT_UB = {ZERO_B, (byte)(ZERO_B + TEN_B), (byte)(UMAX_B - TEN_B), UMAX_B}; + public static short[] INPUT_US = {ZERO_S, (short)(ZERO_S + TEN_S), (short)(UMAX_S - TEN_S), UMAX_S}; + public static int[] INPUT_UI = {ZERO_I, ZERO_I + TEN_I, UMAX_I - TEN_I, UMAX_I}; + public static long[] INPUT_UL = {ZERO_L, ZERO_L + TEN_L, UMAX_L - TEN_L, UMAX_L}; + + public static int[] INPUT_SUADD_I = {FIFTY_I, FIFTY_I, FIFTY_I, FIFTY_I}; + public static byte[] EXPECTED_SUADD_B = {FIFTY_B, SIXTY_B, UMAX_B, UMAX_B}; + public static short[] EXPECTED_SUADD_S = {FIFTY_S, SIXTY_S, UMAX_S, UMAX_S}; + public static int[] EXPECTED_SUADD_I = {FIFTY_I, SIXTY_I, UMAX_I, UMAX_I}; + public static long[] EXPECTED_SUADD_L = {FIFTY_L, SIXTY_L, UMAX_L, UMAX_L}; + + public static int[] INPUT_SUSUB_I = {FIFTY_I, FIFTY_I, FIFTY_I, FIFTY_I}; + public static byte[] EXPECTED_SUSUB_B = {ZERO_B, ZERO_B, UMAX_B - SIXTY_B, UMAX_B - FIFTY_B}; + public static short[] EXPECTED_SUSUB_S = {ZERO_S, ZERO_S, UMAX_S - SIXTY_S, UMAX_S - FIFTY_S}; + public static int[] EXPECTED_SUSUB_I = {ZERO_I, ZERO_I, UMAX_I - SIXTY_I, UMAX_I - FIFTY_I}; + public static long[] EXPECTED_SUSUB_L = {ZERO_L, ZERO_L, UMAX_L - SIXTY_L, UMAX_L - FIFTY_L}; + + public static byte[] EXPECTED_UMIN_B = {ZERO_B, TEN_B, ZERO_B, Byte.MAX_VALUE - TEN_B}; + public static short[] EXPECTED_UMIN_S = {ZERO_S, TEN_S, ZERO_S, Short.MAX_VALUE - TEN_S}; + public static int[] EXPECTED_UMIN_I = {ZERO_I, TEN_I, ZERO_I, Integer.MAX_VALUE - TEN_I}; + public static long[] EXPECTED_UMIN_L = {ZERO_L, TEN_L, ZERO_L, Long.MAX_VALUE - TEN_L}; + + public static byte[] EXPECTED_UMAX_B = {Byte.MIN_VALUE, (byte)(Byte.MIN_VALUE + TEN_B), (byte)(UMAX_B - TEN_B), UMAX_B}; + public static short[] EXPECTED_UMAX_S = {Short.MIN_VALUE, (short)(Short.MIN_VALUE + TEN_S), (short)(UMAX_S - TEN_S), UMAX_S}; + public static int[] EXPECTED_UMAX_I = {Integer.MIN_VALUE, Integer.MIN_VALUE + TEN_I, (UMAX_I - TEN_I), UMAX_I}; + public static long[] EXPECTED_UMAX_L = {Long.MIN_VALUE, Long.MIN_VALUE + TEN_L, (UMAX_L - TEN_L), UMAX_L}; + // @formatter:on + + static Object conv(Object a, Class ct) { + Object na = Array.newInstance(ct, Array.getLength(a)); + for (int i = 0; i < Array.getLength(a); i++) { + Number number = (Number) Array.get(a, i); + if (ct == byte.class) { + number = number.byteValue(); + } else if (ct == short.class) { + number = number.shortValue(); + } else if (ct == int.class) { + number = number.intValue(); + } else if (ct == long.class) { + number = number.longValue(); + } else { + assert false : "should not reach here"; + } + Array.set(na, i, number); + } + return na; + } + + static BinaryOperator named(String name, BinaryOperator op) { + return new BinaryOperator() { + @Override + public T apply(T a, T b) { + return op.apply(a, b); + } + + public String toString() { + return name; + } + }; + } + + static final BinaryOperator OP_UMIN = named("minUnsigned", + (a, b) -> switch (a) { + case Byte _ -> VectorMath.minUnsigned((byte) a, (byte) b); + case Short _ -> VectorMath.minUnsigned((short) a, (short) b); + case Integer _ -> VectorMath.minUnsigned((int) a, (int) b); + case Long _ -> VectorMath.minUnsigned((long) a, (long) b); + default -> throw new UnsupportedOperationException("should not reach here"); + }); + + static final BinaryOperator OP_UMAX = named("maxUnsigned", + (a, b) -> switch (a) { + case Byte _ -> VectorMath.maxUnsigned((byte) a, (byte) b); + case Short _ -> VectorMath.maxUnsigned((short) a, (short) b); + case Integer _ -> VectorMath.maxUnsigned((int) a, (int) b); + case Long _ -> VectorMath.maxUnsigned((long) a, (long) b); + default -> throw new UnsupportedOperationException("should not reach here"); + }); + + static final BinaryOperator OP_SADD = named("addSaturating", + (a, b) -> switch (a) { + case Byte _ -> VectorMath.addSaturating((byte) a, (byte) b); + case Short _ -> VectorMath.addSaturating((short) a, (short) b); + case Integer _ -> VectorMath.addSaturating((int) a, (int) b); + case Long _ -> VectorMath.addSaturating((long) a, (long) b); + default -> throw new UnsupportedOperationException("should not reach here"); + }); + + static final BinaryOperator OP_SSUB = named("subSaturating", + (a, b) -> switch (a) { + case Byte _ -> VectorMath.subSaturating((byte) a, (byte) b); + case Short _ -> VectorMath.subSaturating((short) a, (short) b); + case Integer _ -> VectorMath.subSaturating((int) a, (int) b); + case Long _ -> VectorMath.subSaturating((long) a, (long) b); + default -> throw new UnsupportedOperationException("should not reach here"); + }); + + static final BinaryOperator OP_SUADD = named("addSaturatingUnsigned", + (a, b) -> switch (a) { + case Byte _ -> VectorMath.addSaturatingUnsigned((byte) a, (byte) b); + case Short _ -> VectorMath.addSaturatingUnsigned((short) a, (short) b); + case Integer _ -> VectorMath.addSaturatingUnsigned((int) a, (int) b); + case Long _ -> VectorMath.addSaturatingUnsigned((long) a, (long) b); + default -> throw new UnsupportedOperationException("should not reach here"); + }); + + static final BinaryOperator OP_SUSUB = named("subSaturatingUnsigned", + (a, b) -> switch (a) { + case Byte _ -> VectorMath.subSaturatingUnsigned((byte) a, (byte) b); + case Short _ -> VectorMath.subSaturatingUnsigned((short) a, (short) b); + case Integer _ -> VectorMath.subSaturatingUnsigned((int) a, (int) b); + case Long _ -> VectorMath.subSaturatingUnsigned((long) a, (long) b); + default -> throw new UnsupportedOperationException("should not reach here"); + }); + + @DataProvider + public static Object[][] opProvider() { + return new Object[][] { + {OP_UMIN, byte.class, INPUT_UB, INPUT_SB, EXPECTED_UMIN_B, }, + {OP_UMIN, short.class, INPUT_US, INPUT_SS, EXPECTED_UMIN_S, }, + {OP_UMIN, int.class, INPUT_UI, INPUT_SI, EXPECTED_UMIN_I, }, + {OP_UMIN, long.class, INPUT_UL, INPUT_SL, EXPECTED_UMIN_L, }, + + {OP_UMAX, byte.class, INPUT_UB, INPUT_SB, EXPECTED_UMAX_B, }, + {OP_UMAX, short.class, INPUT_US, INPUT_SS, EXPECTED_UMAX_S, }, + {OP_UMAX, int.class, INPUT_UI, INPUT_SI, EXPECTED_UMAX_I, }, + {OP_UMAX, long.class, INPUT_UL, INPUT_SL, EXPECTED_UMAX_L, }, + + {OP_SADD, byte.class, INPUT_SB, conv(INPUT_SADD_I, byte.class), EXPECTED_SADD_B, }, + {OP_SADD, short.class, INPUT_SS, conv(INPUT_SADD_I, short.class), EXPECTED_SADD_S, }, + {OP_SADD, int.class, INPUT_SI, INPUT_SADD_I, EXPECTED_SADD_I, }, + {OP_SADD, long.class, INPUT_SL, conv(INPUT_SADD_I, long.class), EXPECTED_SADD_L, }, + + {OP_SSUB, byte.class, INPUT_SB, conv(INPUT_SSUB_I, byte.class), EXPECTED_SSUB_B, }, + {OP_SSUB, short.class, INPUT_SS, conv(INPUT_SSUB_I, short.class), EXPECTED_SSUB_S, }, + {OP_SSUB, int.class, INPUT_SI, INPUT_SSUB_I, EXPECTED_SSUB_I, }, + {OP_SSUB, long.class, INPUT_SL, conv(INPUT_SSUB_I, long.class), EXPECTED_SSUB_L, }, + + {OP_SUADD, byte.class, INPUT_UB, conv(INPUT_SUADD_I, byte.class), EXPECTED_SUADD_B, }, + {OP_SUADD, short.class, INPUT_US, conv(INPUT_SUADD_I, short.class), EXPECTED_SUADD_S, }, + {OP_SUADD, int.class, INPUT_UI, INPUT_SUADD_I, EXPECTED_SUADD_I, }, + {OP_SUADD, long.class, INPUT_UL, conv(INPUT_SUADD_I, long.class), EXPECTED_SUADD_L, }, + + {OP_SUSUB, byte.class, INPUT_UB, conv(INPUT_SUSUB_I, byte.class), EXPECTED_SUSUB_B, }, + {OP_SUSUB, short.class, INPUT_US, conv(INPUT_SUSUB_I, short.class), EXPECTED_SUSUB_S, }, + {OP_SUSUB, int.class, INPUT_UI, INPUT_SUSUB_I, EXPECTED_SUSUB_I, }, + {OP_SUSUB, long.class, INPUT_UL, conv(INPUT_SUSUB_I, long.class), EXPECTED_SUSUB_L, }, + }; + } + + @Test(dataProvider = "opProvider") + public void test(BinaryOperator op, Class type, Object a, Object b, Object expected) { + assert Array.getLength(a) <= Array.getLength(b) && Array.getLength(a) <= Array.getLength(expected); + + Object actual = Array.newInstance(type, Array.getLength(a)); + for (int i = 0; i < Array.getLength(a); i++) { + Object e = op.apply(Array.get(a, i), Array.get(b, i)); + Array.set(actual, i, e); + } + Assert.assertEquals(actual, expected); + } +} diff --git a/test/jdk/jdk/incubator/vector/gen-template.sh b/test/jdk/jdk/incubator/vector/gen-template.sh index 375287bef2d..232de04ba7c 100644 --- a/test/jdk/jdk/incubator/vector/gen-template.sh +++ b/test/jdk/jdk/incubator/vector/gen-template.sh @@ -42,6 +42,8 @@ ternary_double_broadcast_masked="Ternary-Double-Broadcast-Masked-op" ternary_scalar="Ternary-Scalar-op" binary="Binary-op" binary_masked="Binary-Masked-op" +saturating_binary="SaturatingBinary-op" +saturating_binary_masked="SaturatingBinary-Masked-op" binary_broadcast="Binary-Broadcast-op" binary_broadcast_masked="Binary-Broadcast-Masked-op" binary_broadcast_long="Binary-Broadcast-Long-op" @@ -310,6 +312,12 @@ function gen_binary_op { gen_op_tmpl $binary_masked "$@" } +function gen_saturating_binary_op { + echo "Generating binary op $1 ($2)..." + gen_op_tmpl $saturating_binary "$@" + gen_op_tmpl $saturating_binary_masked "$@" +} + function gen_binary_op_no_masked { echo "Generating binary op $1 ($2)..." # gen_op_tmpl $binary_scalar "$@" @@ -459,6 +467,12 @@ gen_shift_cst_op "ROL" "ROL_scalar(a, CONST_SHIFT)" "BITWISE" # Masked reductions. gen_binary_op_no_masked "MIN+min" "Math.min(a, b)" gen_binary_op_no_masked "MAX+max" "Math.max(a, b)" +gen_binary_op "UMIN" "VectorMath.minUnsigned(a, b)" "BITWISE" +gen_binary_op "UMAX" "VectorMath.maxUnsigned(a, b)" "BITWISE" +gen_saturating_binary_op "SADD" "VectorMath.addSaturating(a, b)" "BITWISE" +gen_saturating_binary_op "SSUB" "VectorMath.subSaturating(a, b)" "BITWISE" +gen_saturating_binary_op "SUADD" "VectorMath.addSaturatingUnsigned(a, b)" "BITWISE" +gen_saturating_binary_op "SUSUB" "VectorMath.subSaturatingUnsigned(a, b)" "BITWISE" gen_binary_bcst_op_no_masked "MIN+min" "Math.min(a, b)" gen_binary_bcst_op_no_masked "MAX+max" "Math.max(a, b)" @@ -494,10 +508,10 @@ gen_compare_op "NE" "neq" gen_compare_op "LE" "le" gen_compare_op "GE" "ge" -gen_compare_op "UNSIGNED_LT" "ult" "BITWISE" -gen_compare_op "UNSIGNED_GT" "ugt" "BITWISE" -gen_compare_op "UNSIGNED_LE" "ule" "BITWISE" -gen_compare_op "UNSIGNED_GE" "uge" "BITWISE" +gen_compare_op "ULT" "ult" "BITWISE" +gen_compare_op "UGT" "ugt" "BITWISE" +gen_compare_op "ULE" "ule" "BITWISE" +gen_compare_op "UGE" "uge" "BITWISE" gen_compare_bcst_op "LT" "<" diff --git a/test/jdk/jdk/incubator/vector/templates/Kernel-SaturatingBinary-Masked-op.template b/test/jdk/jdk/incubator/vector/templates/Kernel-SaturatingBinary-Masked-op.template new file mode 100644 index 00000000000..495b27b967c --- /dev/null +++ b/test/jdk/jdk/incubator/vector/templates/Kernel-SaturatingBinary-Masked-op.template @@ -0,0 +1,13 @@ + $type$[] a = fa.apply(SPECIES.length()); + $type$[] b = fb.apply(SPECIES.length()); + $type$[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask<$Wideboxtype$> vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + $abstractvectortype$ av = $abstractvectortype$.fromArray(SPECIES, a, i); + $abstractvectortype$ bv = $abstractvectortype$.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.[[TEST]], bv, vmask).intoArray(r, i); + } + } diff --git a/test/jdk/jdk/incubator/vector/templates/Kernel-SaturatingBinary-op.template b/test/jdk/jdk/incubator/vector/templates/Kernel-SaturatingBinary-op.template new file mode 100644 index 00000000000..0870991268f --- /dev/null +++ b/test/jdk/jdk/incubator/vector/templates/Kernel-SaturatingBinary-op.template @@ -0,0 +1,11 @@ + $type$[] a = fa.apply(SPECIES.length()); + $type$[] b = fb.apply(SPECIES.length()); + $type$[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + $abstractvectortype$ av = $abstractvectortype$.fromArray(SPECIES, a, i); + $abstractvectortype$ bv = $abstractvectortype$.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.[[TEST]], bv).intoArray(r, i); + } + } diff --git a/test/jdk/jdk/incubator/vector/templates/Unit-SaturatingBinary-Masked-op.template b/test/jdk/jdk/incubator/vector/templates/Unit-SaturatingBinary-Masked-op.template new file mode 100644 index 00000000000..5597d706b05 --- /dev/null +++ b/test/jdk/jdk/incubator/vector/templates/Unit-SaturatingBinary-Masked-op.template @@ -0,0 +1,7 @@ + + @Test(dataProvider = "$type$SaturatingBinaryOpMaskProvider") + static void [[TEST]]$vectorteststype$Masked(IntFunction<$type$[]> fa, IntFunction<$type$[]> fb, + IntFunction fm) { +[[KERNEL]] + assertArraysEquals(r, a, b, mask, $vectorteststype$::[[TEST]]); + } diff --git a/test/jdk/jdk/incubator/vector/templates/Unit-SaturatingBinary-op.template b/test/jdk/jdk/incubator/vector/templates/Unit-SaturatingBinary-op.template new file mode 100644 index 00000000000..69c53fa6913 --- /dev/null +++ b/test/jdk/jdk/incubator/vector/templates/Unit-SaturatingBinary-op.template @@ -0,0 +1,10 @@ + + static $type$ [[TEST]]($type$ a, $type$ b) { + return ($type$)([[TEST_OP]]); + } + + @Test(dataProvider = "$type$SaturatingBinaryOpProvider") + static void [[TEST]]$vectorteststype$(IntFunction<$type$[]> fa, IntFunction<$type$[]> fb) { +[[KERNEL]] + assertArraysEquals(r, a, b, $vectorteststype$::[[TEST]]); + } diff --git a/test/jdk/jdk/incubator/vector/templates/Unit-header.template b/test/jdk/jdk/incubator/vector/templates/Unit-header.template index 2f33ede458a..991f82cc7cf 100644 --- a/test/jdk/jdk/incubator/vector/templates/Unit-header.template +++ b/test/jdk/jdk/incubator/vector/templates/Unit-header.template @@ -38,6 +38,9 @@ import jdk.incubator.vector.VectorShuffle; import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +#if[!FP] +import jdk.incubator.vector.VectorMath; +#end[!FP] #if[Byte] import jdk.incubator.vector.ByteVector; @@ -1221,6 +1224,35 @@ relativeError)); }) ); +#if[!FP] + static final List> $TYPE$_SATURATING_GENERATORS = List.of( + withToString("$type$[$Boxtype$.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> ($type$)($Boxtype$.MIN_VALUE)); + }), + withToString("$type$[$Boxtype$.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> ($type$)($Boxtype$.MAX_VALUE)); + }), + withToString("$type$[$Boxtype$.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> ($type$)($Boxtype$.MAX_VALUE - 100)); + }), + withToString("$type$[$Boxtype$.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> ($type$)($Boxtype$.MIN_VALUE + 100)); + }), + withToString("$type$[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> ($type$)(-i * 5)); + }), + withToString("$type$[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> ($type$)(i * 5)); + }) + ); + +#end[!FP] // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> $TYPE$_GENERATOR_PAIRS = @@ -1228,6 +1260,13 @@ relativeError)); flatMap(fa -> $TYPE$_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); +#if[!FP] + static final List>> $TYPE$_SATURATING_GENERATOR_PAIRS = + Stream.of($TYPE$_GENERATORS.get(0)). + flatMap(fa -> $TYPE$_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + +#end[!FP] @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -1258,12 +1297,31 @@ relativeError)); toArray(Object[][]::new); } +#if[!FP] + @DataProvider + public Object[][] $type$SaturatingBinaryOpProvider() { + return $TYPE$_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + +#end[!FP] @DataProvider public Object[][] $type$IndexedOpProvider() { return $TYPE$_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } +#if[!FP] + @DataProvider + public Object[][] $type$SaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> $TYPE$_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + +#end[!FP] @DataProvider public Object[][] $type$BinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). From 07eb4943d1e7e09e90b6d229bb460e8710c8806a Mon Sep 17 00:00:00 2001 From: Brian Burkhalter Date: Mon, 28 Oct 2024 16:38:36 +0000 Subject: [PATCH 010/159] 8341666: FileInputStream doesn't support readAllBytes() or readNBytes(int) on pseudo devices Reviewed-by: alanb --- .../classes/java/io/FileInputStream.java | 30 ++- .../share/native/libjava/FileInputStream.c | 8 +- .../unix/native/libjava/io_util_md.c | 10 + .../unix/native/libjava/io_util_md.h | 2 + .../windows/native/libjava/io_util_md.c | 8 +- .../windows/native/libjava/io_util_md.h | 4 +- .../java/io/FileInputStream/PseudoDevice.java | 210 ++++++++++++++++++ 7 files changed, 267 insertions(+), 5 deletions(-) create mode 100644 test/jdk/java/io/FileInputStream/PseudoDevice.java diff --git a/src/java.base/share/classes/java/io/FileInputStream.java b/src/java.base/share/classes/java/io/FileInputStream.java index 180b2e416a9..4210a0f56b6 100644 --- a/src/java.base/share/classes/java/io/FileInputStream.java +++ b/src/java.base/share/classes/java/io/FileInputStream.java @@ -29,6 +29,7 @@ import java.util.Arrays; import jdk.internal.util.ArraysSupport; import jdk.internal.event.FileReadEvent; +import jdk.internal.vm.annotation.Stable; import sun.nio.ch.FileChannelImpl; /** @@ -81,6 +82,10 @@ public class FileInputStream extends InputStream private volatile boolean closed; + // This field indicates whether the file is a regular file as some + // operations need the current position which requires seeking + private @Stable Boolean isRegularFile; + /** * Creates a {@code FileInputStream} to read from an existing file * named by the path name {@code name}. @@ -331,6 +336,9 @@ public int read(byte[] b, int off, int len) throws IOException { @Override public byte[] readAllBytes() throws IOException { + if (!isRegularFile()) + return super.readAllBytes(); + long length = length(); long position = position(); long size = length - position; @@ -382,6 +390,9 @@ public byte[] readNBytes(int len) throws IOException { if (len == 0) return new byte[0]; + if (!isRegularFile()) + return super.readNBytes(len); + long length = length(); long position = position(); long size = length - position; @@ -418,7 +429,7 @@ public byte[] readNBytes(int len) throws IOException { @Override public long transferTo(OutputStream out) throws IOException { long transferred = 0L; - if (out instanceof FileOutputStream fos) { + if (out instanceof FileOutputStream fos && isRegularFile()) { FileChannel fc = getChannel(); long pos = fc.position(); transferred = fc.transferTo(pos, Long.MAX_VALUE, fos.getChannel()); @@ -471,7 +482,10 @@ private long position() throws IOException { */ @Override public long skip(long n) throws IOException { - return skip0(n); + if (isRegularFile()) + return skip0(n); + + return super.skip(n); } private native long skip0(long n) throws IOException; @@ -603,6 +617,18 @@ public FileChannel getChannel() { return fc; } + /** + * Determine whether the file is a regular file. + */ + private boolean isRegularFile() { + Boolean isRegularFile = this.isRegularFile; + if (isRegularFile == null) { + this.isRegularFile = isRegularFile = isRegularFile0(fd); + } + return isRegularFile; + } + private native boolean isRegularFile0(FileDescriptor fd); + private static native void initIDs(); static { diff --git a/src/java.base/share/native/libjava/FileInputStream.c b/src/java.base/share/native/libjava/FileInputStream.c index e22499828f5..7db2ec4c208 100644 --- a/src/java.base/share/native/libjava/FileInputStream.c +++ b/src/java.base/share/native/libjava/FileInputStream.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -141,3 +141,9 @@ Java_java_io_FileInputStream_available0(JNIEnv *env, jobject this) { JNU_ThrowIOExceptionWithLastError(env, NULL); return 0; } + +JNIEXPORT jboolean JNICALL +Java_java_io_FileInputStream_isRegularFile0(JNIEnv *env, jobject this, jobject fdo) { + FD fd = getFD(env, this, fis_fd); + return IO_IsRegularFile(env, fd); +} diff --git a/src/java.base/unix/native/libjava/io_util_md.c b/src/java.base/unix/native/libjava/io_util_md.c index 9895ac3b73f..2e81cbd05c2 100644 --- a/src/java.base/unix/native/libjava/io_util_md.c +++ b/src/java.base/unix/native/libjava/io_util_md.c @@ -264,3 +264,13 @@ handleGetLength(FD fd) #endif return sb.st_size; } + +jboolean +handleIsRegularFile(JNIEnv* env, FD fd) +{ + struct stat fbuf; + if (fstat(fd, &fbuf) == -1) + JNU_ThrowIOExceptionWithLastError(env, "fstat failed"); + + return S_ISREG(fbuf.st_mode) ? JNI_TRUE : JNI_FALSE; +} diff --git a/src/java.base/unix/native/libjava/io_util_md.h b/src/java.base/unix/native/libjava/io_util_md.h index 84e97b4ace5..5a8cb8655ef 100644 --- a/src/java.base/unix/native/libjava/io_util_md.h +++ b/src/java.base/unix/native/libjava/io_util_md.h @@ -41,6 +41,7 @@ jint handleAvailable(FD fd, jlong *pbytes); jint handleSetLength(FD fd, jlong length); jlong handleGetLength(FD fd); FD handleOpen(const char *path, int oflag, int mode); +jboolean handleIsRegularFile(JNIEnv* env, FD fd); /* * Functions to get fd from the java.io.FileDescriptor field @@ -66,6 +67,7 @@ FD getFD(JNIEnv *env, jobject cur, jfieldID fid); #define IO_Available handleAvailable #define IO_SetLength handleSetLength #define IO_GetLength handleGetLength +#define IO_IsRegularFile handleIsRegularFile /* * On Solaris, the handle field is unused diff --git a/src/java.base/windows/native/libjava/io_util_md.c b/src/java.base/windows/native/libjava/io_util_md.c index a5f1ced36c5..6a8bd434280 100644 --- a/src/java.base/windows/native/libjava/io_util_md.c +++ b/src/java.base/windows/native/libjava/io_util_md.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -595,3 +595,9 @@ handleGetLength(FD fd) { return -1; } } + +jboolean +handleIsRegularFile(JNIEnv* env, FD fd) +{ + return JNI_TRUE; +} diff --git a/src/java.base/windows/native/libjava/io_util_md.h b/src/java.base/windows/native/libjava/io_util_md.h index d9f239a25c5..82615cc8222 100644 --- a/src/java.base/windows/native/libjava/io_util_md.h +++ b/src/java.base/windows/native/libjava/io_util_md.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -51,6 +51,7 @@ jint handleAppend(FD fd, const void *buf, jint len); void fileDescriptorClose(JNIEnv *env, jobject this); JNIEXPORT jlong JNICALL handleLseek(FD fd, jlong offset, jint whence); +jboolean handleIsRegularFile(JNIEnv* env, FD fd); /* * Returns an opaque handle to file named by "path". If an error occurs, @@ -82,6 +83,7 @@ FD getFD(JNIEnv *env, jobject cur, jfieldID fid); #define IO_Available handleAvailable #define IO_SetLength handleSetLength #define IO_GetLength handleGetLength +#define IO_IsRegularFile handleIsRegularFile /* * Setting the handle field in Java_java_io_FileDescriptor_set for diff --git a/test/jdk/java/io/FileInputStream/PseudoDevice.java b/test/jdk/java/io/FileInputStream/PseudoDevice.java new file mode 100644 index 00000000000..9f581c3ff81 --- /dev/null +++ b/test/jdk/java/io/FileInputStream/PseudoDevice.java @@ -0,0 +1,210 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* @test + * @bug 8341666 + * @summary Test of FileInputStream reading from stdin and a named pipe + * @requires os.family != "windows" + * @library .. /test/lib + * @build jdk.test.lib.Platform + * @run junit/othervm --enable-native-access=ALL-UNNAMED PseudoDevice + */ + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.IOException; +import java.lang.foreign.Arena; +import java.lang.foreign.FunctionDescriptor; +import java.lang.foreign.Linker; +import java.lang.foreign.MemorySegment; +import java.lang.foreign.SymbolLookup; +import java.lang.foreign.ValueLayout; +import java.lang.invoke.MethodHandle; +import jdk.test.lib.Platform; + +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.DisabledOnOs; +import org.junit.jupiter.api.condition.OS; +import static org.junit.jupiter.api.Assertions.*; + +public class PseudoDevice { + + private static final String PIPE = "pipe"; + private static final File PIPE_FILE = new File(PIPE); + private static final String SENTENCE = + "Rien n'est permis mais tout est possible"; + + private static class mkfifo { + public static final FunctionDescriptor DESC = FunctionDescriptor.of( + ValueLayout.JAVA_INT, + ValueLayout.ADDRESS, + ValueLayout.JAVA_SHORT + ); + + public static final MemorySegment ADDR; + static { + Linker linker = Linker.nativeLinker(); + SymbolLookup stdlib = linker.defaultLookup(); + ADDR = stdlib.find("mkfifo").orElseThrow(); + } + + public static final MethodHandle HANDLE = + Linker.nativeLinker().downcallHandle(ADDR, DESC); + } + + public static int mkfifo(MemorySegment x0, short x1) { + var mh$ = mkfifo.HANDLE; + try { + return (int)mh$.invokeExact(x0, x1); + } catch (Throwable ex$) { + throw new AssertionError("should not reach here", ex$); + } + } + + private static Thread createWriteThread() { + Thread t = new Thread( + new Runnable() { + public void run() { + try (FileOutputStream fos = new FileOutputStream(PIPE);) { + fos.write(SENTENCE.getBytes()); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + ); + t.start(); + return t; + } + + @BeforeAll + static void before() throws InterruptedException, IOException { + if (Platform.isWindows()) + return; + + PIPE_FILE.delete(); + try (var newArena = Arena.ofConfined()) { + var addr = newArena.allocateFrom(PIPE); + short mode = 0666; + assertEquals(0, mkfifo(addr, mode)); + } + if (!PIPE_FILE.exists()) + throw new RuntimeException("Failed to create " + PIPE); + } + + @AfterAll + static void after() throws IOException { + if (Platform.isWindows()) + return; + + PIPE_FILE.delete(); + } + + /** + * Tests that new FileInputStream(File).available() does not throw + */ + @Test + @DisabledOnOs(OS.WINDOWS) + void availableStdin() throws IOException { + File stdin = new File("/dev", "stdin"); + if (stdin.exists()) { + try (InputStream s = new FileInputStream(stdin);) { + s.available(); + } + } + } + + /** + * Tests that new FileInputStream(File).skip(0) does not throw + */ + @Test + @DisabledOnOs(OS.WINDOWS) + void skipStdin() throws IOException { + File stdin = new File("/dev", "stdin"); + if (stdin.exists()) { + try (InputStream s = new FileInputStream(stdin);) { + s.skip(0); + } + } + } + + /** + * Tests new FileInputStream(File).readAllBytes(). + */ + @Test + @DisabledOnOs(OS.WINDOWS) + void readAllBytes() throws InterruptedException, IOException { + Thread t = createWriteThread(); + try (InputStream in = new FileInputStream(PIPE)) { + String s = new String(in.readAllBytes()); + System.out.println(s); + assertEquals(SENTENCE, s); + } finally { + t.join(); + } + } + + /** + * Tests new FileInputStream(File).readNBytes(byte[],int,int). + */ + @Test + @DisabledOnOs(OS.WINDOWS) + void readNBytesNoOverride() throws InterruptedException, IOException { + Thread t = createWriteThread(); + try (InputStream in = new FileInputStream(PIPE)) { + final int offset = 11; + final int length = 17; + assert length <= SENTENCE.length(); + byte[] b = new byte[offset + length]; + int n = in.readNBytes(b, offset, length); + String s = new String(b, offset, length); + System.out.println(s); + assertEquals(SENTENCE.substring(0, length), s); + } finally { + t.join(); + } + } + + /** + * Tests new FileInputStream(File).readNBytes(int). + */ + @Test + @DisabledOnOs(OS.WINDOWS) + void readNBytesOverride() throws InterruptedException, IOException { + Thread t = createWriteThread(); + try (InputStream in = new FileInputStream(PIPE)) { + final int length = 17; + assert length <= SENTENCE.length(); + byte[] b = in.readNBytes(length); + String s = new String(b); + System.out.println(s); + assertEquals(SENTENCE.substring(0, length), s); + } finally { + t.join(); + } + } +} From 69263a01ee273c062942c57cbfa34845e36640e1 Mon Sep 17 00:00:00 2001 From: "David M. Lloyd" Date: Mon, 28 Oct 2024 16:58:44 +0000 Subject: [PATCH 011/159] 8343020: (fs) Add support for SecureDirectoryStream on macOS Reviewed-by: bpb, alanb --- .../sun/nio/fs/UnixNativeDispatcher.java | 2 +- .../native/libnio/fs/UnixNativeDispatcher.c | 30 +++++++++---------- .../nio/file/DirectoryStream/SecureDS.java | 9 ++---- 3 files changed, 19 insertions(+), 22 deletions(-) diff --git a/src/java.base/unix/classes/sun/nio/fs/UnixNativeDispatcher.java b/src/java.base/unix/classes/sun/nio/fs/UnixNativeDispatcher.java index a069a9a04ba..ab8975c6d12 100644 --- a/src/java.base/unix/classes/sun/nio/fs/UnixNativeDispatcher.java +++ b/src/java.base/unix/classes/sun/nio/fs/UnixNativeDispatcher.java @@ -569,7 +569,7 @@ static boolean openatSupported() { } /** - * Supports futimes or futimesat + * Supports futimes */ static boolean futimesSupported() { return (capabilities & SUPPORTS_FUTIMES) != 0; diff --git a/src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c b/src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c index 61e9215471a..9a68a12c219 100644 --- a/src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c +++ b/src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c @@ -204,7 +204,7 @@ typedef int openat_func(int, const char *, int, ...); typedef int fstatat_func(int, const char *, struct stat *, int); typedef int unlinkat_func(int, const char*, int); typedef int renameat_func(int, const char*, int, const char*); -typedef int futimesat_func(int, const char *, const struct timeval *); +typedef int futimes_func(int, const struct timeval *); typedef int futimens_func(int, const struct timespec *); typedef int lutimes_func(const char *, const struct timeval *); typedef DIR* fdopendir_func(int); @@ -217,7 +217,7 @@ static openat_func* my_openat_func = NULL; static fstatat_func* my_fstatat_func = NULL; static unlinkat_func* my_unlinkat_func = NULL; static renameat_func* my_renameat_func = NULL; -static futimesat_func* my_futimesat_func = NULL; +static futimes_func* my_futimes_func = NULL; static futimens_func* my_futimens_func = NULL; static lutimes_func* my_lutimes_func = NULL; static fdopendir_func* my_fdopendir_func = NULL; @@ -363,8 +363,8 @@ Java_sun_nio_fs_UnixNativeDispatcher_init(JNIEnv* env, jclass this) /* system calls that might not be available at run time */ #if defined(_ALLBSD_SOURCE) - my_openat_func = (openat_func*)dlsym(RTLD_DEFAULT, "openat"); - my_fstatat_func = (fstatat_func*)dlsym(RTLD_DEFAULT, "fstatat"); + my_openat_func = (openat_func*) openat; + my_fstatat_func = (fstatat_func*) fstatat; #else // Make sure we link to the 64-bit version of the functions my_openat_func = (openat_func*) dlsym(RTLD_DEFAULT, "openat64"); @@ -373,22 +373,22 @@ Java_sun_nio_fs_UnixNativeDispatcher_init(JNIEnv* env, jclass this) my_unlinkat_func = (unlinkat_func*) dlsym(RTLD_DEFAULT, "unlinkat"); my_renameat_func = (renameat_func*) dlsym(RTLD_DEFAULT, "renameat"); #if defined(__linux__) && defined(__arm__) - my_futimesat_func = (futimesat_func*) lookup_time_t_function("futimesat", - "__futimesat64"); + my_futimes_func = (futimes_func*) lookup_time_t_function("futimes", + "__futimes64"); my_lutimes_func = (lutimes_func*) lookup_time_t_function("lutimes", "__lutimes64"); my_futimens_func = (futimens_func*) lookup_time_t_function("futimens", "__futimens64"); #else -#ifndef _ALLBSD_SOURCE - my_futimesat_func = (futimesat_func*) dlsym(RTLD_DEFAULT, "futimesat"); + my_futimes_func = (futimes_func*) dlsym(RTLD_DEFAULT, "futimes"); my_lutimes_func = (lutimes_func*) dlsym(RTLD_DEFAULT, "lutimes"); -#endif my_futimens_func = (futimens_func*) dlsym(RTLD_DEFAULT, "futimens"); #endif #if defined(_AIX) // Make sure we link to the 64-bit version of the function my_fdopendir_func = (fdopendir_func*) dlsym(RTLD_DEFAULT, "fdopendir64"); +#elif defined(_ALLBSD_SOURCE) + my_fdopendir_func = (fdopendir_func*) fdopendir; #else my_fdopendir_func = (fdopendir_func*) dlsym(RTLD_DEFAULT, "fdopendir"); #endif @@ -399,13 +399,13 @@ Java_sun_nio_fs_UnixNativeDispatcher_init(JNIEnv* env, jclass this) my_fstatat_func = (fstatat_func*)&fstatat_wrapper; #endif - /* supports futimes or futimesat, futimens, and/or lutimes */ + /* supports futimes, futimens, and/or lutimes */ #ifdef _ALLBSD_SOURCE capabilities |= sun_nio_fs_UnixNativeDispatcher_SUPPORTS_FUTIMES; capabilities |= sun_nio_fs_UnixNativeDispatcher_SUPPORTS_LUTIMES; #else - if (my_futimesat_func != NULL) + if (my_futimes_func != NULL) capabilities |= sun_nio_fs_UnixNativeDispatcher_SUPPORTS_FUTIMES; if (my_lutimes_func != NULL) capabilities |= sun_nio_fs_UnixNativeDispatcher_SUPPORTS_LUTIMES; @@ -417,7 +417,7 @@ Java_sun_nio_fs_UnixNativeDispatcher_init(JNIEnv* env, jclass this) if (my_openat_func != NULL && my_fstatat_func != NULL && my_unlinkat_func != NULL && my_renameat_func != NULL && - my_futimesat_func != NULL && my_fdopendir_func != NULL) + my_futimes_func != NULL && my_fdopendir_func != NULL) { capabilities |= sun_nio_fs_UnixNativeDispatcher_SUPPORTS_OPENAT; } @@ -914,11 +914,11 @@ Java_sun_nio_fs_UnixNativeDispatcher_futimes0(JNIEnv* env, jclass this, jint fil #ifdef _ALLBSD_SOURCE RESTARTABLE(futimes(filedes, ×[0]), err); #else - if (my_futimesat_func == NULL) { - JNU_ThrowInternalError(env, "my_futimesat_func is NULL"); + if (my_futimes_func == NULL) { + JNU_ThrowInternalError(env, "my_futimes_func is NULL"); return; } - RESTARTABLE((*my_futimesat_func)(filedes, NULL, ×[0]), err); + RESTARTABLE((*my_futimes_func)(filedes, ×[0]), err); #endif if (err == -1) { throwUnixException(env, errno); diff --git a/test/jdk/java/nio/file/DirectoryStream/SecureDS.java b/test/jdk/java/nio/file/DirectoryStream/SecureDS.java index d4f197eb09b..e058d782c52 100644 --- a/test/jdk/java/nio/file/DirectoryStream/SecureDS.java +++ b/test/jdk/java/nio/file/DirectoryStream/SecureDS.java @@ -22,8 +22,9 @@ */ /* @test - * @bug 4313887 6838333 + * @bug 4313887 6838333 8343020 * @summary Unit test for java.nio.file.SecureDirectoryStream + * @requires (os.family == "linux" | os.family == "mac") * @library .. */ @@ -45,11 +46,7 @@ public static void main(String[] args) throws IOException { DirectoryStream stream = newDirectoryStream(dir); stream.close(); if (!(stream instanceof SecureDirectoryStream)) { - if (System.getProperty("os.name").equals("Linux")) - throw new AssertionError( - "SecureDirectoryStream not supported."); - System.out.println("SecureDirectoryStream not supported."); - return; + throw new AssertionError("SecureDirectoryStream not supported."); } supportsSymbolicLinks = TestUtil.supportsSymbolicLinks(dir); From cd2a789342420fb17f78e580ffbef433b46e0070 Mon Sep 17 00:00:00 2001 From: Alexey Semenyuk Date: Mon, 28 Oct 2024 17:22:38 +0000 Subject: [PATCH 012/159] 8343100: Consolidate EmptyFolderTest and EmptyFolderPackageTest jpackage tests into single java file Reviewed-by: almatvee --- .../helpers/jdk/jpackage/test/TKit.java | 32 ++++-- .../jdk/jpackage/test/WindowsHelper.java | 2 +- .../tools/jpackage/share/EmptyFolderBase.java | 72 -------------- .../share/EmptyFolderPackageTest.java | 70 ------------- .../tools/jpackage/share/EmptyFolderTest.java | 99 ++++++++++++++++--- 5 files changed, 108 insertions(+), 167 deletions(-) delete mode 100644 test/jdk/tools/jpackage/share/EmptyFolderBase.java delete mode 100644 test/jdk/tools/jpackage/share/EmptyFolderPackageTest.java diff --git a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java index cd32f32f63d..af892f18f7b 100644 --- a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java +++ b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java @@ -673,26 +673,40 @@ public static void assertPathExists(Path path, boolean exists) { assertTrue(path.toFile().exists(), String.format( "Check [%s] path exists", path)); } else { - assertFalse(path.toFile().exists(), String.format( + assertTrue(!path.toFile().exists(), String.format( "Check [%s] path doesn't exist", path)); } } - public static void assertPathNotEmptyDirectory(Path path) { - if (Files.isDirectory(path)) { + public static void assertDirectoryNotEmpty(Path path) { + assertDirectoryExists(path, Optional.of(false)); + } + + public static void assertDirectoryEmpty(Path path) { + assertDirectoryExists(path, Optional.of(true)); + } + + public static void assertDirectoryExists(Path path, Optional isEmptyCheck) { + assertPathExists(path, true); + boolean isDirectory = Files.isDirectory(path); + if (isEmptyCheck.isEmpty() || !isDirectory) { + assertTrue(isDirectory, String.format("Check [%s] is a directory", path)); + } else { ThrowingRunnable.toRunnable(() -> { try (var files = Files.list(path)) { - TKit.assertFalse(files.findFirst().isEmpty(), String.format - ("Check [%s] is not an empty directory", path)); + boolean actualIsEmpty = files.findFirst().isEmpty(); + if (isEmptyCheck.get()) { + TKit.assertTrue(actualIsEmpty, String.format("Check [%s] is not an empty directory", path)); + } else { + TKit.assertTrue(!actualIsEmpty, String.format("Check [%s] is an empty directory", path)); + } } }).run(); - } + } } public static void assertDirectoryExists(Path path) { - assertPathExists(path, true); - assertTrue(path.toFile().isDirectory(), String.format( - "Check [%s] is a directory", path)); + assertDirectoryExists(path, Optional.empty()); } public static void assertSymbolicLinkExists(Path path) { diff --git a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WindowsHelper.java b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WindowsHelper.java index 1a4dbd22897..b7fd904325d 100644 --- a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WindowsHelper.java +++ b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WindowsHelper.java @@ -322,7 +322,7 @@ private void verifyStartMenuShortcut(Path shortcutsRoot, boolean exists) { Path shortcutPath = shortcutsRoot.resolve(startMenuShortcutPath); verifyShortcut(shortcutPath, exists); if (!exists) { - TKit.assertPathNotEmptyDirectory(shortcutPath.getParent()); + TKit.assertDirectoryNotEmpty(shortcutPath.getParent()); } } diff --git a/test/jdk/tools/jpackage/share/EmptyFolderBase.java b/test/jdk/tools/jpackage/share/EmptyFolderBase.java deleted file mode 100644 index 092996ad039..00000000000 --- a/test/jdk/tools/jpackage/share/EmptyFolderBase.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -import java.io.File; -import java.io.IOException; -import java.nio.file.Path; -import jdk.jpackage.test.TKit; - -public class EmptyFolderBase { - - // Note: To specify file use ".txt" extension. - // Note: createDirStrcture() will call mkdir() or createNewFile() for paths defined - // in dirStruct, so make sure paths are defined in order. - - // folder-empty - // folder-not-empty - // folder-not-empty/folder-empty - // folder-not-empty/another-folder-empty - // folder-not-empty/folder-non-empty2 - // folder-not-empty/folder-non-empty2/file.txt - private static final String [] DIR_STRUCT = { - "folder-empty", - "folder-not-empty", - "folder-not-empty" + File.separator + "folder-empty", - "folder-not-empty" + File.separator + "another-folder-empty", - "folder-not-empty" + File.separator + "folder-non-empty2", - "folder-not-empty" + File.separator + "folder-non-empty2" + File.separator + - "file.txt" - }; - - // See dirStruct - public static void createDirStrcture(Path inputPath) throws IOException { - File input = new File(inputPath.toString()); - input.mkdir(); - - for (String p : DIR_STRUCT) { - File f = new File(input, p); - if (p.endsWith(".txt")) { - f.createNewFile(); - } else { - f.mkdir(); - } - } - } - - public static void validateDirStrcture(Path appDirPath) { - for (String p : DIR_STRUCT) { - Path path = appDirPath.resolve(p); - TKit.assertPathExists(path, true); - } - } -} diff --git a/test/jdk/tools/jpackage/share/EmptyFolderPackageTest.java b/test/jdk/tools/jpackage/share/EmptyFolderPackageTest.java deleted file mode 100644 index c7af050c685..00000000000 --- a/test/jdk/tools/jpackage/share/EmptyFolderPackageTest.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -import java.nio.file.Path; -import jdk.jpackage.internal.ApplicationLayout; -import jdk.jpackage.test.PackageTest; -import jdk.jpackage.test.PackageType; -import jdk.jpackage.test.Annotations.Test; - -/** - * Tests generation of packages with input folder containing empty folders. - */ - -/* - * @test - * @summary jpackage with input containing empty folders - * @library ../helpers - * @library /test/lib - * @key jpackagePlatformPackage - * @build EmptyFolderBase - * @build jdk.jpackage.test.* - * @build EmptyFolderPackageTest - * @modules jdk.jpackage/jdk.jpackage.internal - * @run main/othervm/timeout=720 -Xmx512m jdk.jpackage.test.Main - * --jpt-run=EmptyFolderPackageTest - */ -public class EmptyFolderPackageTest { - - @Test - public static void test() throws Exception { - new PackageTest().configureHelloApp() - .addInitializer(cmd -> { - Path input = cmd.inputDir(); - EmptyFolderBase.createDirStrcture(input); - }) - .addInstallVerifier(cmd -> { - if (cmd.packageType() == PackageType.WIN_MSI) { - if (cmd.isPackageUnpacked("Not running file " - + "structure check for empty folders")) { - return; - } - } - - ApplicationLayout appLayout = cmd.appLayout(); - Path appDir = appLayout.appDirectory(); - EmptyFolderBase.validateDirStrcture(appDir); - }) - .run(); - } -} diff --git a/test/jdk/tools/jpackage/share/EmptyFolderTest.java b/test/jdk/tools/jpackage/share/EmptyFolderTest.java index a41c4a66702..230d8a039ea 100644 --- a/test/jdk/tools/jpackage/share/EmptyFolderTest.java +++ b/test/jdk/tools/jpackage/share/EmptyFolderTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,44 +21,113 @@ * questions. */ +import java.io.IOException; +import java.nio.file.Files; import java.nio.file.Path; -import jdk.jpackage.test.JPackageCommand; +import jdk.jpackage.test.PackageTest; import jdk.jpackage.test.Annotations.Test; -import jdk.jpackage.internal.ApplicationLayout; +import jdk.jpackage.test.JPackageCommand; +import jdk.jpackage.test.PackageType; +import jdk.jpackage.test.TKit; /** - * Tests generation of app image with input folder containing empty folders. + * Tests generation of packages and app image with input folder containing empty folders. + */ + +/* + * @test + * @summary jpackage for package with input containing empty folders + * @library ../helpers + * @library /test/lib + * @key jpackagePlatformPackage + * @build jdk.jpackage.test.* + * @build EmptyFolderTest + * @modules jdk.jpackage/jdk.jpackage.internal + * @run main/othervm/timeout=720 -Xmx512m jdk.jpackage.test.Main + * --jpt-run=EmptyFolderTest.testPackage */ /* * @test - * @summary jpackage with input containing empty folders + * @summary jpackage for app image with input containing empty folders * @library ../helpers * @library /test/lib - * @build EmptyFolderBase * @build jdk.jpackage.test.* * @build EmptyFolderTest * @modules jdk.jpackage/jdk.jpackage.internal * @run main/othervm -Xmx512m jdk.jpackage.test.Main - * --jpt-run=EmptyFolderTest + * --jpt-run=EmptyFolderTest.testAppImage */ + public class EmptyFolderTest { @Test - public static void test() throws Exception { - JPackageCommand cmd = JPackageCommand.helloAppImage(); + public static void testPackage() { + new PackageTest() + .configureHelloApp() + .addInitializer(EmptyFolderTest::createDirTree) + .addInitializer(cmd -> { + cmd.setArgumentValue("--name", "EmptyFolderPackageTest"); + }) + .addInstallVerifier(EmptyFolderTest::validateDirTree) + .run(); + } + + @Test + public static void testAppImage() throws IOException { + var cmd = JPackageCommand.helloAppImage(); // Add more files into input folder - Path input = cmd.inputDir(); - EmptyFolderBase.createDirStrcture(input); + createDirTree(cmd); // Create app image cmd.executeAndAssertHelloAppImageCreated(); - // Verify directory strcture - ApplicationLayout appLayout = cmd.appLayout(); - Path appDir = appLayout.appDirectory(); - EmptyFolderBase.validateDirStrcture(appDir); + // Verify directory structure + validateDirTree(cmd); + } + + private static void createDirTree(JPackageCommand cmd) throws IOException { + var baseDir = cmd.inputDir(); + for (var path : DIR_STRUCT) { + path = baseDir.resolve(path); + if (isFile(path)) { + Files.createDirectories(path.getParent()); + Files.write(path, new byte[0]); + } else { + Files.createDirectories(path); + } + } + } + + private static void validateDirTree(JPackageCommand cmd) { + var outputBaseDir = cmd.appLayout().appDirectory(); + var inputBaseDir = cmd.inputDir(); + for (var path : DIR_STRUCT) { + Path outputPath = outputBaseDir.resolve(path); + if (isFile(outputPath)) { + TKit.assertFileExists(outputPath); + } else if (!PackageType.WINDOWS.contains(cmd.packageType())) { + TKit.assertDirectoryExists(outputPath); + } else if (inputBaseDir.resolve(path).toFile().list().length == 0) { + // MSI packages don't support empty folders + TKit.assertPathExists(outputPath, false); + } else { + TKit.assertDirectoryNotEmpty(outputPath); + } + } + } + + private static boolean isFile(Path path) { + return path.getFileName().toString().endsWith(".txt"); } + // Note: To specify file use ".txt" extension. + private static final Path [] DIR_STRUCT = { + Path.of("folder-empty"), + Path.of("folder-not-empty"), + Path.of("folder-not-empty", "folder-empty"), + Path.of("folder-not-empty", "another-folder-empty"), + Path.of("folder-not-empty", "folder-non-empty2", "file.txt") + }; } From 47bc74d2168b8e5337ff677b785d8a4a89af810d Mon Sep 17 00:00:00 2001 From: Alexey Semenyuk Date: Mon, 28 Oct 2024 17:24:01 +0000 Subject: [PATCH 013/159] 8343101: Rework BasicTest.testTemp test cases Reviewed-by: almatvee --- .../jdk/jpackage/test/TestBuilder.java | 3 + .../share/jdk/jpackage/tests/BasicTest.java | 80 +++++++++++-------- 2 files changed, 50 insertions(+), 33 deletions(-) diff --git a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TestBuilder.java b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TestBuilder.java index 27da5a0a28c..bb699ba3b9c 100644 --- a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TestBuilder.java +++ b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TestBuilder.java @@ -392,6 +392,9 @@ private static Stream toMethodCalls(Object[] ctorArgs, Method method } private static Object fromString(String value, Class toType) { + if (toType.isEnum()) { + return Enum.valueOf(toType, value); + } Function converter = conv.get(toType); if (converter == null) { throw new RuntimeException(String.format( diff --git a/test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java b/test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java index 7603264c437..6b785415e63 100644 --- a/test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java +++ b/test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java @@ -30,7 +30,6 @@ import java.util.ArrayList; import java.util.function.Function; import java.util.function.Predicate; -import java.util.function.Supplier; import java.util.regex.Pattern; import java.util.stream.Stream; import jdk.jpackage.test.TKit; @@ -265,49 +264,64 @@ public void testAddModules(String... addModulesArg) { cmd.executeAndAssertHelloAppImageCreated(); } + public static enum TestTempType { + TEMPDIR_EMPTY, + TEMPDIR_NOT_EMPTY, + TEMPDIR_NOT_EXIST, + } + /** * Test --temp option. Doesn't make much sense for app image as temporary * directory is used only on Windows. Test it in packaging mode. - * @throws IOException */ @Test - @Parameter("true") - @Parameter("false") - public void testTemp(boolean withExistingTempDir) throws IOException { + @Parameter("TEMPDIR_EMPTY") + @Parameter("TEMPDIR_NOT_EMPTY") + @Parameter("TEMPDIR_NOT_EXIST") + public void testTemp(TestTempType type) throws IOException { final Path tempRoot = TKit.createTempDirectory("tmp"); - Supplier createTest = () -> { - return new PackageTest() - .configureHelloApp() - // Force save of package bundle in test work directory. - .addInitializer(JPackageCommand::setDefaultInputOutput) - .addInitializer(cmd -> { - Path tempDir = getTempDirectory(cmd, tempRoot); - if (withExistingTempDir) { - Files.createDirectories(tempDir); - } else { - Files.createDirectories(tempDir.getParent()); + var pkgTest = new PackageTest() + .configureHelloApp() + // Force save of package bundle in test work directory. + .addInitializer(JPackageCommand::setDefaultInputOutput) + .addInitializer(cmd -> { + Path tempDir = getTempDirectory(cmd, tempRoot); + switch (type) { + case TEMPDIR_EMPTY -> Files.createDirectories(tempDir); + case TEMPDIR_NOT_EXIST -> Files.createDirectories(tempDir.getParent()); + case TEMPDIR_NOT_EMPTY -> { + Files.createDirectories(tempDir); + TKit.createTextFile(tempDir.resolve("foo.txt"), List.of( + "Hello Duke!")); + } } cmd.addArguments("--temp", tempDir); + } + ); + + if (TestTempType.TEMPDIR_NOT_EMPTY.equals(type)) { + pkgTest.setExpectedExitCode(1).addBundleVerifier(cmd -> { + // Check jpackage didn't use the supplied directory. + Path tempDir = getTempDirectory(cmd, tempRoot); + String[] tempDirContents = tempDir.toFile().list(); + TKit.assertStringListEquals(List.of("foo.txt"), List.of( + tempDirContents), String.format( + "Check the contents of the supplied temporary directory [%s]", + tempDir)); + TKit.assertStringListEquals(List.of("Hello Duke!"), + Files.readAllLines(tempDir.resolve(tempDirContents[0])), + "Check the contents of the file in the supplied temporary directory"); }); - }; + } else { + pkgTest.addBundleVerifier(cmd -> { + // Check jpackage used the supplied directory. + Path tempDir = getTempDirectory(cmd, tempRoot); + TKit.assertPathNotEmptyDirectory(tempDir); + }); + } - createTest.get() - .addBundleVerifier(cmd -> { - // Check jpackage actually used the supplied directory. - Path tempDir = getTempDirectory(cmd, tempRoot); - TKit.assertNotEquals(0, tempDir.toFile().list().length, - String.format( - "Check jpackage wrote some data in the supplied temporary directory [%s]", - tempDir)); - }) - .run(PackageTest.Action.CREATE); - - createTest.get() - // Temporary directory should not be empty, - // jpackage should exit with error. - .setExpectedExitCode(1) - .run(PackageTest.Action.CREATE); + pkgTest.run(PackageTest.Action.CREATE); } @Test From 50d6f82ba1c2c27371ce49760cffb4f645959ff4 Mon Sep 17 00:00:00 2001 From: Valerie Peng Date: Mon, 28 Oct 2024 18:06:42 +0000 Subject: [PATCH 014/159] 8331958: Update PC/SC Lite for Suse Linux to 2.3.0 Reviewed-by: weijun --- src/java.smartcardio/unix/legal/pcsclite.md | 8 ++++---- .../unix/native/libj2pcsc/MUSCLE/pcsclite.h | 7 ++++--- .../unix/native/libj2pcsc/MUSCLE/winscard.h | 2 +- .../unix/native/libj2pcsc/MUSCLE/wintypes.h | 2 +- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/java.smartcardio/unix/legal/pcsclite.md b/src/java.smartcardio/unix/legal/pcsclite.md index 99a9936a477..66cdf62ee15 100644 --- a/src/java.smartcardio/unix/legal/pcsclite.md +++ b/src/java.smartcardio/unix/legal/pcsclite.md @@ -1,4 +1,4 @@ -## PC/SC Lite v1.9.9 +## PC/SC Lite v2.3.0 ### PC/SC Lite Notice ``` @@ -9,19 +9,19 @@ Only 3 header files are included in this distribution: winscard.h, wintypes.h, p Copyright for winscard.h: * Copyright (C) 1999-2003 * David Corcoran - * Copyright (C) 2002-2009 + * Copyright (C) 2002-2018 * Ludovic Rousseau Copyright for wintypes.h: * Copyright (C) 1999 * David Corcoran - * Copyright (C) 2002-2011 + * Copyright (C) 2002-2018 * Ludovic Rousseau Copyright for pcsclite.h: * Copyright (C) 1999-2004 * David Corcoran - * Copyright (C) 2002-2011 + * Copyright (C) 2002-2024 * Ludovic Rousseau * Copyright (C) 2005 * Martin Paljak diff --git a/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/pcsclite.h b/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/pcsclite.h index e722b13a730..f589868a7ba 100644 --- a/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/pcsclite.h +++ b/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/pcsclite.h @@ -3,7 +3,7 @@ * * Copyright (C) 1999-2004 * David Corcoran - * Copyright (C) 2002-2011 + * Copyright (C) 2002-2024 * Ludovic Rousseau * Copyright (C) 2005 * Martin Paljak @@ -192,7 +192,8 @@ extern const SCARD_IO_REQUEST g_rgSCardT0Pci, g_rgSCardT1Pci, g_rgSCardRawPci; /** @ingroup ErrorCodes */ #define SCARD_E_INVALID_CHV ((LONG)0x8010002A) /**< The supplied PIN is incorrect. */ /** @ingroup ErrorCodes */ -#define SCARD_E_UNKNOWN_RES_MNG ((LONG)0x8010002B) /**< An unrecognized error code was returned from a layered component. */ +#define SCARD_E_UNKNOWN_RES_MSG ((LONG)0x8010002B) /**< An unrecognized error code was returned from a layered component. */ +#define SCARD_E_UNKNOWN_RES_MNG SCARD_E_UNKNOWN_RES_MSG /** @ingroup ErrorCodes */ #define SCARD_E_NO_SUCH_CERTIFICATE ((LONG)0x8010002C) /**< The requested certificate does not exist. */ /** @ingroup ErrorCodes */ @@ -279,7 +280,7 @@ extern const SCARD_IO_REQUEST g_rgSCardT0Pci, g_rgSCardT1Pci, g_rgSCardRawPci; #define INFINITE 0xFFFFFFFF /**< Infinite timeout */ #endif -#define PCSCLITE_VERSION_NUMBER "1.9.9" /**< Current version */ +#define PCSCLITE_VERSION_NUMBER "2.3.0" /**< Current version */ /** Maximum readers context (a slot is count as a reader) */ #define PCSCLITE_MAX_READERS_CONTEXTS 16 diff --git a/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/winscard.h b/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/winscard.h index d2c5a5758b5..f9a4265de85 100644 --- a/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/winscard.h +++ b/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/winscard.h @@ -3,7 +3,7 @@ * * Copyright (C) 1999-2003 * David Corcoran - * Copyright (C) 2002-2009 + * Copyright (C) 2002-2018 * Ludovic Rousseau * Redistribution and use in source and binary forms, with or without diff --git a/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/wintypes.h b/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/wintypes.h index 3770de20909..5e8973a0993 100644 --- a/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/wintypes.h +++ b/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/wintypes.h @@ -3,7 +3,7 @@ * * Copyright (C) 1999 * David Corcoran - * Copyright (C) 2002-2011 + * Copyright (C) 2002-2018 * Ludovic Rousseau * Redistribution and use in source and binary forms, with or without From de403b714fafeb3efbba77b2959774c4a3f9f6ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eirik=20Bj=C3=B8rsn=C3=B8s?= Date: Mon, 28 Oct 2024 18:21:18 +0000 Subject: [PATCH 015/159] 8342040: Further improve entry lookup performance for multi-release JARs Co-authored-by: Claes Redestad Reviewed-by: redestad --- .../share/classes/java/util/jar/JarFile.java | 29 +++----- .../share/classes/java/util/zip/ZipFile.java | 72 +++++++++---------- .../access/JavaUtilZipFileAccess.java | 3 +- .../bench/java/util/jar/JarFileGetEntry.java | 23 +++++- 4 files changed, 64 insertions(+), 63 deletions(-) diff --git a/src/java.base/share/classes/java/util/jar/JarFile.java b/src/java.base/share/classes/java/util/jar/JarFile.java index 3dc3a49dc77..3a1f412e9c7 100644 --- a/src/java.base/share/classes/java/util/jar/JarFile.java +++ b/src/java.base/share/classes/java/util/jar/JarFile.java @@ -40,6 +40,7 @@ import java.lang.ref.SoftReference; import java.security.CodeSigner; import java.security.cert.Certificate; +import java.util.BitSet; import java.util.Enumeration; import java.util.List; import java.util.Objects; @@ -597,26 +598,16 @@ private String getBasename(String name) { } private JarEntry getVersionedEntry(String name, JarEntry defaultEntry) { - if (!name.startsWith(META_INF)) { - int[] versions = JUZFA.getMetaInfVersions(this); - if (BASE_VERSION_FEATURE < versionFeature && versions.length > 0) { - // search for versioned entry - for (int i = versions.length - 1; i >= 0; i--) { - int version = versions[i]; - // skip versions above versionFeature - if (version > versionFeature) { - continue; - } - // skip versions below base version - if (version < BASE_VERSION_FEATURE) { - break; - } - JarFileEntry vje = (JarFileEntry)super.getEntry( - META_INF_VERSIONS + version + "/" + name); - if (vje != null) { - return vje.withBasename(name); - } + if (BASE_VERSION_FEATURE < versionFeature && !name.startsWith(META_INF)) { + BitSet versions = JUZFA.getMetaInfVersions(this, name); + int version = versions.previousSetBit(versionFeature); + while (version >= BASE_VERSION_FEATURE) { + JarFileEntry vje = (JarFileEntry)super.getEntry( + META_INF_VERSIONS + version + "/" + name); + if (vje != null) { + return vje.withBasename(name); } + version = versions.previousSetBit(version - 1); } } return defaultEntry; diff --git a/src/java.base/share/classes/java/util/zip/ZipFile.java b/src/java.base/share/classes/java/util/zip/ZipFile.java index 21b9593c017..792b317a006 100644 --- a/src/java.base/share/classes/java/util/zip/ZipFile.java +++ b/src/java.base/share/classes/java/util/zip/ZipFile.java @@ -37,23 +37,7 @@ import java.nio.file.InvalidPathException; import java.nio.file.attribute.BasicFileAttributes; import java.nio.file.Files; -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Deque; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; -import java.util.Objects; -import java.util.NoSuchElementException; -import java.util.Set; -import java.util.Spliterator; -import java.util.Spliterators; -import java.util.TreeSet; -import java.util.WeakHashMap; +import java.util.*; import java.util.function.Consumer; import java.util.function.IntFunction; import java.util.jar.JarEntry; @@ -64,6 +48,7 @@ import jdk.internal.access.JavaUtilJarAccess; import jdk.internal.access.SharedSecrets; import jdk.internal.util.ArraysSupport; +import jdk.internal.util.DecimalDigits; import jdk.internal.util.OperatingSystem; import jdk.internal.perf.PerfCounter; import jdk.internal.ref.CleanerFactory; @@ -1090,19 +1075,23 @@ private String getManifestName(boolean onlyIfSignatureRelatedFiles) { } /** - * Returns the versions for which there exists a non-directory - * entry that begin with "META-INF/versions/" (case ignored). + * Returns a BitSet where the set bits represents versions found for + * the given entry name. For performance reasons, the name is looked + * up only by hashcode, meaning the result is an over-approximation. * This method is used in JarFile, via SharedSecrets, as an * optimization when looking up potentially versioned entries. - * Returns an empty array if no versioned entries exist. + * Returns an empty BitSet if no versioned entries exist for this + * name. */ - private int[] getMetaInfVersions() { + private BitSet getMetaInfVersions(String name) { synchronized (this) { ensureOpen(); - return res.zsrc.metaVersions; + return res.zsrc.metaVersions.getOrDefault(ZipCoder.hash(name), EMPTY_VERSIONS); } } + private static final BitSet EMPTY_VERSIONS = new BitSet(); + /** * Returns the value of the System property which indicates whether the * Extra ZIP64 validation should be disabled. @@ -1139,8 +1128,8 @@ public String getManifestName(JarFile jar, boolean onlyIfHasSignatureRelatedFile return ((ZipFile)jar).getManifestName(onlyIfHasSignatureRelatedFiles); } @Override - public int[] getMetaInfVersions(JarFile jar) { - return ((ZipFile)jar).getMetaInfVersions(); + public BitSet getMetaInfVersions(JarFile jar, String name) { + return ((ZipFile)jar).getMetaInfVersions(name); } @Override public Enumeration entries(ZipFile zip) { @@ -1175,7 +1164,8 @@ private static class Source { private static final JavaUtilJarAccess JUJA = SharedSecrets.javaUtilJarAccess(); // "META-INF/".length() private static final int META_INF_LEN = 9; - private static final int[] EMPTY_META_VERSIONS = new int[0]; + // "META-INF/versions//".length() + private static final int META_INF_VERSIONS_LEN = 19; // CEN size is limited to the maximum array size in the JDK private static final int MAX_CEN_SIZE = ArraysSupport.SOFT_MAX_ARRAY_LENGTH; @@ -1192,7 +1182,7 @@ private static class Source { private int manifestPos = -1; // position of the META-INF/MANIFEST.MF, if exists private int manifestNum = 0; // number of META-INF/MANIFEST.MF, case insensitive private int[] signatureMetaNames; // positions of signature related entries, if such exist - private int[] metaVersions; // list of unique versions found in META-INF/versions/ + private Map metaVersions; // Versions found in META-INF/versions/, by entry name hash private final boolean startsWithLoc; // true, if ZIP file starts with LOCSIG (usually true) // A Hashmap for all entries. @@ -1574,7 +1564,7 @@ private void close() throws IOException { manifestPos = -1; manifestNum = 0; signatureMetaNames = null; - metaVersions = EMPTY_META_VERSIONS; + metaVersions = null; } private static final int BUF_SIZE = 8192; @@ -1759,8 +1749,6 @@ private void initCEN(int knownTotal) throws IOException { // list for all meta entries ArrayList signatureNames = null; - // Set of all version numbers seen in META-INF/versions/ - Set metaVersionsSet = null; // Iterate through the entries in the central directory int idx = 0; // Index into the entries array @@ -1799,9 +1787,19 @@ private void initCEN(int knownTotal) throws IOException { // performance in multi-release jar files int version = getMetaVersion(entryPos + META_INF_LEN, nlen - META_INF_LEN); if (version > 0) { - if (metaVersionsSet == null) - metaVersionsSet = new TreeSet<>(); - metaVersionsSet.add(version); + try { + // Compute hash code of name from "META-INF/versions/{version)/{name} + int prefixLen = META_INF_VERSIONS_LEN + DecimalDigits.stringSize(version); + int hashCode = zipCoderForPos(pos).checkedHash(cen, + entryPos + prefixLen, + nlen - prefixLen); + // Register version for this hash code + if (metaVersions == null) + metaVersions = new HashMap<>(); + metaVersions.computeIfAbsent(hashCode, _ -> new BitSet()).set(version); + } catch (Exception e) { + throw new IllegalArgumentException(e); + } } } } @@ -1819,14 +1817,8 @@ private void initCEN(int knownTotal) throws IOException { signatureMetaNames[j] = signatureNames.get(j); } } - if (metaVersionsSet != null) { - metaVersions = new int[metaVersionsSet.size()]; - int c = 0; - for (Integer version : metaVersionsSet) { - metaVersions[c++] = version; - } - } else { - metaVersions = EMPTY_META_VERSIONS; + if (metaVersions == null) { + metaVersions = Map.of(); } if (pos != cen.length) { zerror("invalid CEN header (bad header size)"); diff --git a/src/java.base/share/classes/jdk/internal/access/JavaUtilZipFileAccess.java b/src/java.base/share/classes/jdk/internal/access/JavaUtilZipFileAccess.java index 2c9d904005d..9ff0f2e8b92 100644 --- a/src/java.base/share/classes/jdk/internal/access/JavaUtilZipFileAccess.java +++ b/src/java.base/share/classes/jdk/internal/access/JavaUtilZipFileAccess.java @@ -25,6 +25,7 @@ package jdk.internal.access; +import java.util.BitSet; import java.util.Enumeration; import java.util.List; import java.util.jar.JarEntry; @@ -38,7 +39,7 @@ public interface JavaUtilZipFileAccess { public List getManifestAndSignatureRelatedFiles(JarFile zip); public String getManifestName(JarFile zip, boolean onlyIfSignatureRelatedFiles); public int getManifestNum(JarFile zip); - public int[] getMetaInfVersions(JarFile zip); + public BitSet getMetaInfVersions(JarFile zip, String name); public Enumeration entries(ZipFile zip); public Stream stream(ZipFile zip); public Stream entryNameStream(ZipFile zip); diff --git a/test/micro/org/openjdk/bench/java/util/jar/JarFileGetEntry.java b/test/micro/org/openjdk/bench/java/util/jar/JarFileGetEntry.java index bc2182e00b4..a0c3938e8eb 100644 --- a/test/micro/org/openjdk/bench/java/util/jar/JarFileGetEntry.java +++ b/test/micro/org/openjdk/bench/java/util/jar/JarFileGetEntry.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,9 +31,12 @@ import java.nio.file.Files; import java.util.Random; import java.util.concurrent.TimeUnit; +import java.util.jar.Attributes; import java.util.jar.JarFile; import java.util.jar.JarOutputStream; +import java.util.jar.Manifest; import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; /** * Simple benchmark measuring cost of looking up entries in a jar file. @@ -71,6 +74,9 @@ public class JarFileGetEntry { @Param({"512", "1024"}) private int size; + @Param({"false", "true"}) + private boolean mr; + public JarFile jarFile; public String[] entryNames; public String[] missingEntryNames; @@ -91,9 +97,20 @@ public void beforeRun() throws IOException { entryNames = new String[size]; missingEntryNames = new String[size]; + Manifest man = new Manifest(); + man.getMainAttributes().put(Attributes.Name.MANIFEST_VERSION, "1.0"); + if (mr) { + man.getMainAttributes().put(Attributes.Name.MULTI_RELEASE, "true"); + } try (FileOutputStream fos = new FileOutputStream(tempFile); - JarOutputStream jos = new JarOutputStream(fos)) { + JarOutputStream jos = new JarOutputStream(fos, man)) { + if (mr) { + // Add a few versioned entries + jos.putNextEntry(new ZipEntry("META-INF/versions/9/module-info.class")); + jos.putNextEntry(new ZipEntry("META-INF/versions/17/foo/library/Library.class")); + jos.putNextEntry(new ZipEntry("META-INF/versions/21/foo/library/Library.class")); + } Random random = new Random(4711); for (int i = 0; i < size; i++) { String ename = "entry-" + (random.nextInt(90000) + 10000) + "-" + i; @@ -107,7 +124,7 @@ public void beforeRun() throws IOException { } } - jarFile = new JarFile(tempFile); + jarFile = new JarFile(tempFile, true, ZipFile.OPEN_READ, mr ? JarFile.runtimeVersion() : JarFile.baseVersion()); } @Benchmark From 3e6a90e96d9ebe89de2ed725432b0f2f033ac01b Mon Sep 17 00:00:00 2001 From: Claes Redestad Date: Mon, 28 Oct 2024 22:40:25 +0000 Subject: [PATCH 016/159] 8342958: Use jvmArgs consistently in microbenchmarks Reviewed-by: ecaspole, jvernee --- .../bench/java/lang/CallerClassBench.java | 2 +- .../bench/java/lang/ObjectHashCode.java | 12 +++++----- .../openjdk/bench/java/lang/ScopedValues.java | 2 +- .../bench/java/lang/StringHashCode.java | 2 +- .../java/lang/classfile/TypeKindBench.java | 2 +- .../java/lang/classfile/Utf8EntryWriteTo.java | 2 +- .../java/lang/foreign/AllocFromSliceTest.java | 2 +- .../java/lang/foreign/AllocFromTest.java | 2 +- .../bench/java/lang/foreign/AllocTest.java | 2 +- .../lang/foreign/CallOverheadConstant.java | 2 +- .../lang/foreign/CallOverheadVirtual.java | 2 +- .../java/lang/foreign/CriticalCalls.java | 2 +- .../java/lang/foreign/InternalStrLen.java | 2 +- .../bench/java/lang/foreign/LinkUpcall.java | 2 +- .../foreign/LoopOverNonConstantAsType.java | 2 +- .../java/lang/foreign/LoopOverOfAddress.java | 2 +- .../lang/foreign/MemorySegmentCopyUnsafe.java | 2 +- .../lang/foreign/MemorySegmentGetUnsafe.java | 2 +- .../lang/foreign/MemorySegmentZeroUnsafe.java | 2 +- .../java/lang/foreign/PointerInvoke.java | 2 +- .../bench/java/lang/foreign/QSort.java | 2 +- .../java/lang/foreign/SegmentBulkCopy.java | 8 +++---- .../java/lang/foreign/SegmentBulkFill.java | 12 +++++----- .../lang/foreign/SegmentBulkMismatch.java | 8 +++---- .../bench/java/lang/foreign/StrLenTest.java | 2 +- .../java/lang/foreign/ToCStringTest.java | 2 +- .../java/lang/foreign/ToJavaStringTest.java | 2 +- .../java/lang/foreign/UnrolledAccess.java | 2 +- .../bench/java/lang/foreign/Upcalls.java | 2 +- .../lang/foreign/pointers/PointerBench.java | 2 +- .../lang/foreign/points/PointsAccess.java | 2 +- .../java/lang/foreign/points/PointsAlloc.java | 2 +- .../lang/foreign/points/PointsDistance.java | 2 +- .../java/lang/foreign/points/PointsFree.java | 2 +- .../bench/java/lang/foreign/xor/XorTest.java | 2 +- .../java/lang/invoke/LazyStaticColdStart.java | 2 +- .../bench/java/lang/invoke/Wrappers.java | 2 +- .../reflect/proxy/ProxyGeneratorBench.java | 2 +- .../java/net/NetworkInterfaceLookup.java | 2 +- .../net/SocketChannelConnectionSetup.java | 2 +- .../bench/java/net/SocketEventOverhead.java | 16 ++++++------- .../bench/java/net/ThreadLocalParseUtil.java | 2 +- .../security/AlgorithmConstraintsPermits.java | 2 +- .../bench/java/security/CacheBench.java | 2 +- .../bench/java/security/CipherSuiteBench.java | 2 +- .../org/openjdk/bench/java/security/HSS.java | 2 +- .../bench/java/security/MessageDigests.java | 2 +- .../bench/java/security/PKCS12KeyStores.java | 2 +- .../java/security/ProtectionDomainBench.java | 2 +- .../bench/java/security/Signatures.java | 2 +- .../openjdk/bench/java/util/ArraysSort.java | 2 +- .../org/openjdk/bench/java/util/ListArgs.java | 2 +- .../java/util/StringJoinerBenchmark.java | 2 +- .../util/stream/ops/ref/GatherFMRPar.java | 2 +- .../util/stream/ops/ref/GatherFMRSeq.java | 2 +- .../ops/ref/GatherFlatMapInfinitySeq.java | 2 +- .../util/stream/ops/ref/GatherFlatMapSeq.java | 2 +- .../util/stream/ops/ref/GatherMapPar.java | 2 +- .../util/stream/ops/ref/GatherMapSeq.java | 2 +- .../util/stream/ops/ref/GatherMiscPar.java | 2 +- .../util/stream/ops/ref/GatherMiscSeq.java | 2 +- .../util/stream/ops/ref/GatherReducePar.java | 2 +- .../util/stream/ops/ref/GatherReduceSeq.java | 2 +- .../stream/ops/ref/GatherWhileOrdered.java | 2 +- .../org/openjdk/bench/javax/crypto/AES.java | 6 ++--- .../openjdk/bench/javax/crypto/AESReinit.java | 2 +- .../openjdk/bench/javax/crypto/Crypto.java | 2 +- .../bench/javax/crypto/full/CryptoBase.java | 2 +- .../crypto/full/Poly1305DigestBench.java | 2 +- .../crypto/full/PolynomialP256Bench.java | 2 +- .../classfile/AbstractCorpusBenchmark.java | 2 +- .../jdk/classfile/ClassfileBenchmark.java | 2 +- .../jdk/classfile/CodeAttributeTools.java | 2 +- .../ConstantPoolBuildingClassEntry.java | 2 +- .../jdk/classfile/RebuildMethodBodies.java | 2 +- .../jdk/classfile/RepeatedModelTraversal.java | 2 +- .../openjdk/bench/jdk/classfile/Write.java | 2 +- .../vector/ArrayMismatchBenchmark.java | 2 +- .../jdk/incubator/vector/BlackScholes.java | 2 +- .../vector/ColumnFilterBenchmark.java | 2 +- .../vector/EqualsIgnoreCaseBenchmark.java | 2 +- .../vector/GatherOperationsBenchmark.java | 2 +- .../vector/IndexInRangeBenchmark.java | 2 +- .../vector/IndexVectorBenchmark.java | 2 +- .../vector/LoadMaskedIOOBEBenchmark.java | 2 +- .../vector/MaskCastOperationsBenchmark.java | 2 +- .../vector/MaskFromLongBenchmark.java | 2 +- .../vector/MaskQueryOperationsBenchmark.java | 2 +- .../jdk/incubator/vector/MaskedLogicOpts.java | 2 +- .../vector/MemorySegmentVectorAccess.java | 2 +- .../vector/RearrangeBytesBenchmark.java | 2 +- .../jdk/incubator/vector/RotateBenchmark.java | 2 +- .../incubator/vector/SelectFromBenchmark.java | 2 +- .../incubator/vector/StoreMaskTrueCount.java | 2 +- .../vector/StoreMaskedBenchmark.java | 2 +- .../vector/StoreMaskedIOOBEBenchmark.java | 2 +- .../vector/TestLoadSegmentVarious.java | 2 +- .../incubator/vector/TestLoadStoreBytes.java | 2 +- .../incubator/vector/TestLoadStoreShorts.java | 2 +- .../vector/VectorExtractBenchmark.java | 2 +- .../vector/VectorFPtoIntCastOperations.java | 2 +- .../incubator/vector/VectorZeroExtend.java | 2 +- .../bench/jdk/preview/patterns/Exactness.java | 2 +- .../bench/vm/compiler/AllocationMerges.java | 4 ++-- .../bench/vm/compiler/ClearMemory.java | 2 +- .../vm/compiler/ConstructorBarriers.java | 2 +- .../vm/compiler/InterfacePrivateCalls.java | 2 +- .../bench/vm/compiler/MergeStoreBench.java | 2 +- .../bench/vm/compiler/MergeStores.java | 2 +- .../vm/compiler/SecondarySuperCacheHits.java | 2 +- .../SecondarySuperCacheInterContention.java | 2 +- .../SecondarySuperCacheIntraContention.java | 2 +- .../vm/compiler/SubIdealC0Minus_YPlusC1_.java | 2 +- .../vm/compiler/TypeVectorOperations.java | 8 +++---- .../bench/vm/compiler/VectorAlignment.java | 8 +++---- .../bench/vm/compiler/VectorBitCount.java | 4 ++-- .../compiler/VectorLoadToStoreForwarding.java | 4 ++-- .../bench/vm/compiler/VectorReduction.java | 4 ++-- .../bench/vm/compiler/VectorReduction2.java | 4 ++-- .../VectorReductionFloatingMinMax.java | 4 ++-- .../overhead/SimpleRepeatCompilation.java | 24 +++++++++---------- .../bench/vm/compiler/x86/BasicRules.java | 2 +- .../bench/vm/compiler/x86/ConvertF2I.java | 2 +- .../bench/vm/compiler/x86/LeaInstruction.java | 2 +- .../bench/vm/fences/SafePublishing.java | 2 +- .../openjdk/bench/vm/gc/MicroLargePages.java | 2 +- .../bench/vm/gc/RawAllocationRate.java | 4 ++-- .../openjdk/bench/vm/gc/systemgc/AllDead.java | 2 +- .../openjdk/bench/vm/gc/systemgc/AllLive.java | 2 +- .../systemgc/DifferentObjectSizesArray.java | 2 +- .../systemgc/DifferentObjectSizesHashMap.java | 2 +- .../systemgc/DifferentObjectSizesTreeMap.java | 2 +- .../vm/gc/systemgc/HalfDeadFirstPart.java | 2 +- .../vm/gc/systemgc/HalfDeadInterleaved.java | 2 +- .../systemgc/HalfDeadInterleavedChunks.java | 2 +- .../vm/gc/systemgc/HalfDeadSecondPart.java | 2 +- .../vm/gc/systemgc/HalfHashedHalfDead.java | 2 +- .../bench/vm/gc/systemgc/NoObjects.java | 2 +- .../bench/vm/gc/systemgc/OneBigObject.java | 2 +- .../openjdk/bench/vm/lang/TypePollution.java | 16 ++++++------- .../bench/vm/runtime/NMTBenchmark.java | 6 ++--- .../bench/vm/runtime/NMTBenchmark_wb.java | 6 ++--- 142 files changed, 202 insertions(+), 202 deletions(-) diff --git a/test/micro/org/openjdk/bench/java/lang/CallerClassBench.java b/test/micro/org/openjdk/bench/java/lang/CallerClassBench.java index 01399c7c270..742c1c29b7a 100644 --- a/test/micro/org/openjdk/bench/java/lang/CallerClassBench.java +++ b/test/micro/org/openjdk/bench/java/lang/CallerClassBench.java @@ -36,7 +36,7 @@ @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(value = 3, jvmArgsAppend = {"-Xmx1g", "-Xms1g"}) +@Fork(value = 3, jvmArgs = {"-Xmx1g", "-Xms1g"}) @State(Scope.Benchmark) @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.MICROSECONDS) diff --git a/test/micro/org/openjdk/bench/java/lang/ObjectHashCode.java b/test/micro/org/openjdk/bench/java/lang/ObjectHashCode.java index 9b89f6d1b5a..3cc836cd59e 100644 --- a/test/micro/org/openjdk/bench/java/lang/ObjectHashCode.java +++ b/test/micro/org/openjdk/bench/java/lang/ObjectHashCode.java @@ -50,37 +50,37 @@ public int mode_default() { // Experimental hashCode generation schemes. See synchronizer.cpp get_next_hash /* @Benchmark - @Fork(jvmArgsPrepend = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=0"}) + @Fork(jvmArgs = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=0"}) public int mode_0() { return System.identityHashCode(new Object()); } @Benchmark - @Fork(jvmArgsPrepend = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=1"}) + @Fork(jvmArgs = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=1"}) public int mode_1() { return System.identityHashCode(new Object()); } @Benchmark - @Fork(jvmArgsPrepend = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=2"}) + @Fork(jvmArgs = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=2"}) public int mode_2() { return System.identityHashCode(new Object()); } @Benchmark - @Fork(jvmArgsPrepend = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=3"}) + @Fork(jvmArgs = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=3"}) public int mode_3() { return System.identityHashCode(new Object()); } @Benchmark - @Fork(jvmArgsPrepend = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=4"}) + @Fork(jvmArgs = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=4"}) public int mode_4() { return System.identityHashCode(new Object()); } @Benchmark - @Fork(jvmArgsPrepend = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=5"}) + @Fork(jvmArgs = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=5"}) public int mode_5() { return System.identityHashCode(new Object()); } diff --git a/test/micro/org/openjdk/bench/java/lang/ScopedValues.java b/test/micro/org/openjdk/bench/java/lang/ScopedValues.java index f11bc805b7f..70c97d57551 100644 --- a/test/micro/org/openjdk/bench/java/lang/ScopedValues.java +++ b/test/micro/org/openjdk/bench/java/lang/ScopedValues.java @@ -40,7 +40,7 @@ @Measurement(iterations=10, time=1) @Threads(1) @Fork(value = 1, - jvmArgsPrepend = {"-Djmh.executor.class=org.openjdk.bench.java.lang.ScopedValuesExecutorService", + jvmArgs = {"-Djmh.executor.class=org.openjdk.bench.java.lang.ScopedValuesExecutorService", "-Djmh.executor=CUSTOM", "-Djmh.blackhole.mode=COMPILER", "--enable-preview"}) diff --git a/test/micro/org/openjdk/bench/java/lang/StringHashCode.java b/test/micro/org/openjdk/bench/java/lang/StringHashCode.java index 20735a3bf76..5578712f0f9 100644 --- a/test/micro/org/openjdk/bench/java/lang/StringHashCode.java +++ b/test/micro/org/openjdk/bench/java/lang/StringHashCode.java @@ -96,7 +96,7 @@ public int empty() { @State(Scope.Thread) @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) - @Fork(value = 3, jvmArgsAppend = {"--add-exports", "java.base/java.lang=ALL-UNNAMED", "--add-opens", "java.base/java.lang=ALL-UNNAMED"}) + @Fork(value = 3, jvmArgs = {"--add-exports", "java.base/java.lang=ALL-UNNAMED", "--add-opens", "java.base/java.lang=ALL-UNNAMED"}) public static class Algorithm { private final static String alphabet = "abcdefghijklmnopqrstuvwxyz"; diff --git a/test/micro/org/openjdk/bench/java/lang/classfile/TypeKindBench.java b/test/micro/org/openjdk/bench/java/lang/classfile/TypeKindBench.java index c8d9ad85d54..43d94f0385a 100644 --- a/test/micro/org/openjdk/bench/java/lang/classfile/TypeKindBench.java +++ b/test/micro/org/openjdk/bench/java/lang/classfile/TypeKindBench.java @@ -50,7 +50,7 @@ @OutputTimeUnit(TimeUnit.NANOSECONDS) @Warmup(iterations = 3, time = 2) @Measurement(iterations = 6, time = 1) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @State(Scope.Thread) public class TypeKindBench { diff --git a/test/micro/org/openjdk/bench/java/lang/classfile/Utf8EntryWriteTo.java b/test/micro/org/openjdk/bench/java/lang/classfile/Utf8EntryWriteTo.java index a124b079268..db27d318699 100644 --- a/test/micro/org/openjdk/bench/java/lang/classfile/Utf8EntryWriteTo.java +++ b/test/micro/org/openjdk/bench/java/lang/classfile/Utf8EntryWriteTo.java @@ -56,7 +56,7 @@ @OutputTimeUnit(TimeUnit.NANOSECONDS) @Warmup(iterations = 1, time = 2) @Measurement(iterations = 3, time = 1) -@Fork(jvmArgsAppend = "--enable-preview", value = 3) +@Fork(jvmArgs = "--enable-preview", value = 3) @State(Scope.Thread) public class Utf8EntryWriteTo { static final ClassDesc STRING_BUILDER = ClassDesc.ofDescriptor("Ljava/lang/StringBuilder;"); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/AllocFromSliceTest.java b/test/micro/org/openjdk/bench/java/lang/foreign/AllocFromSliceTest.java index 390add8801c..16a915af2ed 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/AllocFromSliceTest.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/AllocFromSliceTest.java @@ -45,7 +45,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED" }) public class AllocFromSliceTest extends CLayouts { @Param({"5", "20", "100", "500", "1000"}) diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/AllocFromTest.java b/test/micro/org/openjdk/bench/java/lang/foreign/AllocFromTest.java index fcd79870ca0..520c1ad5a9b 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/AllocFromTest.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/AllocFromTest.java @@ -48,7 +48,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED" }) public class AllocFromTest extends CLayouts { Arena arena = Arena.ofConfined(); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/AllocTest.java b/test/micro/org/openjdk/bench/java/lang/foreign/AllocTest.java index 4ae2c0364dc..d9b268a1846 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/AllocTest.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/AllocTest.java @@ -50,7 +50,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED" }) public class AllocTest extends CLayouts { Arena arena = Arena.ofConfined(); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/CallOverheadConstant.java b/test/micro/org/openjdk/bench/java/lang/foreign/CallOverheadConstant.java index 7f20d094b8e..8e618da44ad 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/CallOverheadConstant.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/CallOverheadConstant.java @@ -41,7 +41,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class CallOverheadConstant { @Benchmark diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/CallOverheadVirtual.java b/test/micro/org/openjdk/bench/java/lang/foreign/CallOverheadVirtual.java index d6b7028d287..274c11a87cf 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/CallOverheadVirtual.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/CallOverheadVirtual.java @@ -41,7 +41,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class CallOverheadVirtual { @Benchmark diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/CriticalCalls.java b/test/micro/org/openjdk/bench/java/lang/foreign/CriticalCalls.java index 0f384f81685..1b62d2c7264 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/CriticalCalls.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/CriticalCalls.java @@ -51,7 +51,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class CriticalCalls { static final MethodHandle PINNED; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/InternalStrLen.java b/test/micro/org/openjdk/bench/java/lang/foreign/InternalStrLen.java index 81ed675c7d9..2db15bfe265 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/InternalStrLen.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/InternalStrLen.java @@ -50,7 +50,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(Scope.Benchmark) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = {"--add-exports=java.base/jdk.internal.foreign=ALL-UNNAMED", "--enable-native-access=ALL-UNNAMED", "--enable-preview"}) +@Fork(value = 3, jvmArgs = {"--add-exports=java.base/jdk.internal.foreign=ALL-UNNAMED", "--enable-native-access=ALL-UNNAMED", "--enable-preview"}) public class InternalStrLen { private MemorySegment singleByteSegment; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/LinkUpcall.java b/test/micro/org/openjdk/bench/java/lang/foreign/LinkUpcall.java index 57c8bd029ba..bf1d35801d2 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/LinkUpcall.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/LinkUpcall.java @@ -47,7 +47,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(Scope.Benchmark) @OutputTimeUnit(TimeUnit.MICROSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED" }) public class LinkUpcall extends CLayouts { static final Linker LINKER = Linker.nativeLinker(); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/LoopOverNonConstantAsType.java b/test/micro/org/openjdk/bench/java/lang/foreign/LoopOverNonConstantAsType.java index 1fbe431b2f2..834d051cff0 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/LoopOverNonConstantAsType.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/LoopOverNonConstantAsType.java @@ -54,7 +54,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.MILLISECONDS) -@Fork(value = 3, jvmArgsAppend = { "-XX:-TieredCompilation" }) +@Fork(value = 3, jvmArgs = { "-XX:-TieredCompilation" }) public class LoopOverNonConstantAsType extends JavaLayouts { static final Unsafe unsafe = Utils.unsafe; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/LoopOverOfAddress.java b/test/micro/org/openjdk/bench/java/lang/foreign/LoopOverOfAddress.java index 740d8a2c783..91f2c9e4579 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/LoopOverOfAddress.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/LoopOverOfAddress.java @@ -43,7 +43,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.MILLISECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED" }) public class LoopOverOfAddress extends JavaLayouts { static final int ITERATIONS = 1_000_000; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentCopyUnsafe.java b/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentCopyUnsafe.java index 4b6db5f9618..c5cdd26016d 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentCopyUnsafe.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentCopyUnsafe.java @@ -45,7 +45,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = {"--enable-native-access=ALL-UNNAMED"}) +@Fork(value = 3, jvmArgs = {"--enable-native-access=ALL-UNNAMED"}) public class MemorySegmentCopyUnsafe { static final Unsafe UNSAFE = Utils.unsafe; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentGetUnsafe.java b/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentGetUnsafe.java index 233c9672935..31303e51141 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentGetUnsafe.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentGetUnsafe.java @@ -50,7 +50,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = {"--enable-native-access=ALL-UNNAMED"}) +@Fork(value = 3, jvmArgs = {"--enable-native-access=ALL-UNNAMED"}) public class MemorySegmentGetUnsafe { static final Unsafe UNSAFE = Utils.unsafe; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentZeroUnsafe.java b/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentZeroUnsafe.java index ba705e2ecd4..6a52ed3fc5b 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentZeroUnsafe.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentZeroUnsafe.java @@ -44,7 +44,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = {"--enable-native-access=ALL-UNNAMED"}) +@Fork(value = 3, jvmArgs = {"--enable-native-access=ALL-UNNAMED"}) public class MemorySegmentZeroUnsafe { static final Unsafe UNSAFE = Utils.unsafe; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/PointerInvoke.java b/test/micro/org/openjdk/bench/java/lang/foreign/PointerInvoke.java index ab77ae630c1..63975e47c7d 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/PointerInvoke.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/PointerInvoke.java @@ -43,7 +43,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class PointerInvoke extends CLayouts { Arena arena = Arena.ofConfined(); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/QSort.java b/test/micro/org/openjdk/bench/java/lang/foreign/QSort.java index 76298ae0739..b21e812c503 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/QSort.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/QSort.java @@ -46,7 +46,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class QSort extends CLayouts { static final Linker abi = Linker.nativeLinker(); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkCopy.java b/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkCopy.java index 22ef139aac0..ca6f21d20e9 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkCopy.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkCopy.java @@ -84,25 +84,25 @@ public void bufferCopy() { dstBuffer.put(srcBuffer); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.copy=31"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.copy=31"}) @Benchmark public void heapSegmentCopyJava() { MemorySegment.copy(heapSrcSegment, 0, heapDstSegment, 0, ELEM_SIZE); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.copy=0"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.copy=0"}) @Benchmark public void heapSegmentCopyUnsafe() { MemorySegment.copy(heapSrcSegment, 0, heapDstSegment, 0, ELEM_SIZE); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.copy=31"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.copy=31"}) @Benchmark public void nativeSegmentCopyJava() { MemorySegment.copy(nativeSrcSegment, 0, nativeDstSegment, 0, ELEM_SIZE); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.copy=0"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.copy=0"}) @Benchmark public void nativeSegmentCopyUnsafe() { MemorySegment.copy(nativeSrcSegment, 0, nativeDstSegment, 0, ELEM_SIZE); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkFill.java b/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkFill.java index 95ca7228969..eb19fc56ac2 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkFill.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkFill.java @@ -74,37 +74,37 @@ public void arraysFill() { Arrays.fill(array, (byte) 0); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.fill=31"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.fill=31"}) @Benchmark public void heapSegmentFillJava() { heapSegment.fill((byte) 0); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.fill=0"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.fill=0"}) @Benchmark public void heapSegmentFillUnsafe() { heapSegment.fill((byte) 0); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.fill=31"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.fill=31"}) @Benchmark public void nativeSegmentFillJava() { nativeSegment.fill((byte) 0); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.fill=0"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.fill=0"}) @Benchmark public void nativeSegmentFillUnsafe() { nativeSegment.fill((byte) 0); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.fill=31"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.fill=31"}) @Benchmark public void unalignedSegmentFillJava() { unalignedSegment.fill((byte) 0); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.fill=0"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.fill=0"}) @Benchmark public void unalignedSegmentFillUnsafe() { unalignedSegment.fill((byte) 0); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkMismatch.java b/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkMismatch.java index 5656b2f6b9f..61ceb7b956e 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkMismatch.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkMismatch.java @@ -79,25 +79,25 @@ public void setup() { dstHeap = MemorySegment.ofArray(dstArray); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.mismatch=31"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.mismatch=31"}) @Benchmark public long nativeSegmentJava() { return srcNative.mismatch(dstNative); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.mismatch=31"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.mismatch=31"}) @Benchmark public long heapSegmentJava() { return srcHeap.mismatch(dstHeap); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.mismatch=0"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.mismatch=0"}) @Benchmark public long nativeSegmentUnsafe() { return srcNative.mismatch(dstNative); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.mismatch=0"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.mismatch=0"}) @Benchmark public long heapSegmentUnsafe() { return srcHeap.mismatch(dstHeap); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/StrLenTest.java b/test/micro/org/openjdk/bench/java/lang/foreign/StrLenTest.java index 2ad723eadf3..04562e0ec00 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/StrLenTest.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/StrLenTest.java @@ -48,7 +48,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class StrLenTest extends CLayouts { Arena arena = Arena.ofConfined(); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/ToCStringTest.java b/test/micro/org/openjdk/bench/java/lang/foreign/ToCStringTest.java index 7ba9384958e..41d7deb2ebe 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/ToCStringTest.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/ToCStringTest.java @@ -51,7 +51,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class ToCStringTest extends CLayouts { @Param({"5", "20", "100", "200"}) diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/ToJavaStringTest.java b/test/micro/org/openjdk/bench/java/lang/foreign/ToJavaStringTest.java index f6f26f72a6a..02b1a47d03f 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/ToJavaStringTest.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/ToJavaStringTest.java @@ -43,7 +43,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(Scope.Benchmark) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "--enable-preview", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "--enable-preview", "-Djava.library.path=micro/native" }) public class ToJavaStringTest { private MemorySegment strSegment; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/UnrolledAccess.java b/test/micro/org/openjdk/bench/java/lang/foreign/UnrolledAccess.java index 6888f82e529..36c2ba32887 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/UnrolledAccess.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/UnrolledAccess.java @@ -40,7 +40,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.MICROSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED" }) public class UnrolledAccess extends JavaLayouts { static final Unsafe U = Utils.unsafe; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/Upcalls.java b/test/micro/org/openjdk/bench/java/lang/foreign/Upcalls.java index 1b852e6ff9d..9b6ec3fe058 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/Upcalls.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/Upcalls.java @@ -45,7 +45,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class Upcalls extends CLayouts { static final Linker abi = Linker.nativeLinker(); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/pointers/PointerBench.java b/test/micro/org/openjdk/bench/java/lang/foreign/pointers/PointerBench.java index 9eabd7d0e78..b93b613f8c6 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/pointers/PointerBench.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/pointers/PointerBench.java @@ -46,7 +46,7 @@ @Warmup(iterations = 3, time = 500, timeUnit = TimeUnit.MILLISECONDS) @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @OutputTimeUnit(TimeUnit.MILLISECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED" }) @State(Scope.Benchmark) public class PointerBench { diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsAccess.java b/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsAccess.java index e649468fc97..eeedf18c771 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsAccess.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsAccess.java @@ -43,7 +43,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class PointsAccess { BBPoint BBPoint; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsAlloc.java b/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsAlloc.java index f9d254ed975..a210e459c21 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsAlloc.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsAlloc.java @@ -41,7 +41,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class PointsAlloc { @Benchmark diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsDistance.java b/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsDistance.java index fa86137ff02..a42b8ac0947 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsDistance.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsDistance.java @@ -43,7 +43,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class PointsDistance { BBPoint jniP1; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsFree.java b/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsFree.java index 51bd7738eda..bb41de670d8 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsFree.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsFree.java @@ -42,7 +42,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class PointsFree { JNIPoint jniPoint; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/xor/XorTest.java b/test/micro/org/openjdk/bench/java/lang/foreign/xor/XorTest.java index 8ff8a4d1816..40ae114e8fa 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/xor/XorTest.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/xor/XorTest.java @@ -19,7 +19,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.MILLISECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class XorTest { diff --git a/test/micro/org/openjdk/bench/java/lang/invoke/LazyStaticColdStart.java b/test/micro/org/openjdk/bench/java/lang/invoke/LazyStaticColdStart.java index fb73901adf4..49a77d9539e 100644 --- a/test/micro/org/openjdk/bench/java/lang/invoke/LazyStaticColdStart.java +++ b/test/micro/org/openjdk/bench/java/lang/invoke/LazyStaticColdStart.java @@ -52,7 +52,7 @@ @BenchmarkMode(Mode.SingleShotTime) @OutputTimeUnit(TimeUnit.MICROSECONDS) @State(Scope.Thread) -@Fork(value = 10, warmups = 5, jvmArgsAppend = { +@Fork(value = 10, warmups = 5, jvmArgs = { "--enable-preview" }) public class LazyStaticColdStart { diff --git a/test/micro/org/openjdk/bench/java/lang/invoke/Wrappers.java b/test/micro/org/openjdk/bench/java/lang/invoke/Wrappers.java index 61aea6b6dcf..c1725487529 100644 --- a/test/micro/org/openjdk/bench/java/lang/invoke/Wrappers.java +++ b/test/micro/org/openjdk/bench/java/lang/invoke/Wrappers.java @@ -45,7 +45,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @OutputTimeUnit(TimeUnit.NANOSECONDS) @State(Scope.Thread) -@Fork(value = 3, jvmArgsAppend = "--add-exports=java.base/sun.invoke.util=ALL-UNNAMED") +@Fork(value = 3, jvmArgs = "--add-exports=java.base/sun.invoke.util=ALL-UNNAMED") public class Wrappers { public static Class[] PRIM_CLASSES = { diff --git a/test/micro/org/openjdk/bench/java/lang/reflect/proxy/ProxyGeneratorBench.java b/test/micro/org/openjdk/bench/java/lang/reflect/proxy/ProxyGeneratorBench.java index 33934317300..6963a040b65 100644 --- a/test/micro/org/openjdk/bench/java/lang/reflect/proxy/ProxyGeneratorBench.java +++ b/test/micro/org/openjdk/bench/java/lang/reflect/proxy/ProxyGeneratorBench.java @@ -45,7 +45,7 @@ */ @Warmup(iterations = 5, time = 2) @Measurement(iterations = 5, time = 2) -@Fork(value = 1, jvmArgsPrepend = "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED") +@Fork(value = 1, jvmArgs = "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED") @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) @State(Scope.Thread) diff --git a/test/micro/org/openjdk/bench/java/net/NetworkInterfaceLookup.java b/test/micro/org/openjdk/bench/java/net/NetworkInterfaceLookup.java index 2a77e6a16ec..4b1a5bc439a 100644 --- a/test/micro/org/openjdk/bench/java/net/NetworkInterfaceLookup.java +++ b/test/micro/org/openjdk/bench/java/net/NetworkInterfaceLookup.java @@ -45,7 +45,7 @@ @BenchmarkMode(Mode.Throughput) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) -@Fork(value = 2, jvmArgsAppend = "--add-opens=java.base/java.net=ALL-UNNAMED") +@Fork(value = 2, jvmArgs = "--add-opens=java.base/java.net=ALL-UNNAMED") @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) public class NetworkInterfaceLookup { diff --git a/test/micro/org/openjdk/bench/java/net/SocketChannelConnectionSetup.java b/test/micro/org/openjdk/bench/java/net/SocketChannelConnectionSetup.java index c4100568161..704cca94af0 100644 --- a/test/micro/org/openjdk/bench/java/net/SocketChannelConnectionSetup.java +++ b/test/micro/org/openjdk/bench/java/net/SocketChannelConnectionSetup.java @@ -125,7 +125,7 @@ public static void main(String[] args) throws RunnerException { opt = new OptionsBuilder() .include(org.openjdk.bench.java.net.SocketChannelConnectionSetup.class.getSimpleName()) - .jvmArgsPrepend("-Djdk.net.useFastTcpLoopback=true") + .jvmArgs("-Djdk.net.useFastTcpLoopback=true") .warmupForks(1) .forks(2) .build(); diff --git a/test/micro/org/openjdk/bench/java/net/SocketEventOverhead.java b/test/micro/org/openjdk/bench/java/net/SocketEventOverhead.java index a898aff5283..f386fb1620d 100644 --- a/test/micro/org/openjdk/bench/java/net/SocketEventOverhead.java +++ b/test/micro/org/openjdk/bench/java/net/SocketEventOverhead.java @@ -45,7 +45,7 @@ @State(Scope.Thread) public class SocketEventOverhead { - @Fork(value = 1, jvmArgsAppend = { + @Fork(value = 1, jvmArgs = { "--add-exports", "java.base/jdk.internal.event=ALL-UNNAMED" }) @Benchmark @@ -53,7 +53,7 @@ public int socketWriteJFRDisabled(SkeletonFixture fixture) { return fixture.write(); } - @Fork(value = 1, jvmArgsAppend = { + @Fork(value = 1, jvmArgs = { "--add-exports", "java.base/jdk.internal.event=ALL-UNNAMED", "-XX:StartFlightRecording:jdk.SocketWrite#enabled=false"}) @@ -62,7 +62,7 @@ public int socketWriteJFREnabledEventDisabled(SkeletonFixture fixture) { return fixture.write(); } - @Fork(value = 1, jvmArgsAppend = { + @Fork(value = 1, jvmArgs = { "--add-exports", "java.base/jdk.internal.event=ALL-UNNAMED", "-XX:StartFlightRecording:jdk.SocketWrite#enabled=true,jdk.SocketWrite#threshold=1s"}) @@ -71,7 +71,7 @@ public int socketWriteJFREnabledEventNotEmitted(SkeletonFixture fixture) { return fixture.write(); } - @Fork(value = 1, jvmArgsAppend = { + @Fork(value = 1, jvmArgs = { "--add-exports","java.base/jdk.internal.event=ALL-UNNAMED", "-XX:StartFlightRecording:jdk.SocketWrite#enabled=true,jdk.SocketWrite#threshold=0ms,disk=false,jdk.SocketWrite#stackTrace=false"}) @Benchmark @@ -79,7 +79,7 @@ public int socketWriteJFREnabledEventEmitted(SkeletonFixture fixture) { return fixture.write(); } - @Fork(value = 1, jvmArgsAppend = { + @Fork(value = 1, jvmArgs = { "--add-exports", "java.base/jdk.internal.event=ALL-UNNAMED" }) @Benchmark @@ -87,7 +87,7 @@ public int socketReadJFRDisabled(SkeletonFixture fixture) { return fixture.read(); } - @Fork(value = 1, jvmArgsAppend = { + @Fork(value = 1, jvmArgs = { "--add-exports", "java.base/jdk.internal.event=ALL-UNNAMED", "-XX:StartFlightRecording:jdk.SocketRead#enabled=false"}) @@ -96,7 +96,7 @@ public int socketReadJFREnabledEventDisabled(SkeletonFixture fixture) { return fixture.read(); } - @Fork(value = 1, jvmArgsAppend = { + @Fork(value = 1, jvmArgs = { "--add-exports", "java.base/jdk.internal.event=ALL-UNNAMED", "-XX:StartFlightRecording:jdk.SocketRead#enabled=true,jdk.SocketRead#threshold=1s"}) @@ -105,7 +105,7 @@ public int socketReadJFREnabledEventNotEmitted(SkeletonFixture fixture) { return fixture.read(); } - @Fork(value = 1, jvmArgsAppend = { + @Fork(value = 1, jvmArgs = { "--add-exports","java.base/jdk.internal.event=ALL-UNNAMED", "-XX:StartFlightRecording:jdk.SocketRead#enabled=true,jdk.SocketRead#threshold=0ms,disk=false,jdk.SocketRead#stackTrace=false"}) @Benchmark diff --git a/test/micro/org/openjdk/bench/java/net/ThreadLocalParseUtil.java b/test/micro/org/openjdk/bench/java/net/ThreadLocalParseUtil.java index 93af26379a7..180de650ede 100644 --- a/test/micro/org/openjdk/bench/java/net/ThreadLocalParseUtil.java +++ b/test/micro/org/openjdk/bench/java/net/ThreadLocalParseUtil.java @@ -48,7 +48,7 @@ @State(Scope.Thread) @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(value = 1, jvmArgsAppend = "--add-exports=java.base/sun.net.www=ALL-UNNAMED") +@Fork(value = 1, jvmArgs = "--add-exports=java.base/sun.net.www=ALL-UNNAMED") public class ThreadLocalParseUtil { private static final MethodHandle MH_DECODE; diff --git a/test/micro/org/openjdk/bench/java/security/AlgorithmConstraintsPermits.java b/test/micro/org/openjdk/bench/java/security/AlgorithmConstraintsPermits.java index 46e68ea627f..683d069bc7e 100644 --- a/test/micro/org/openjdk/bench/java/security/AlgorithmConstraintsPermits.java +++ b/test/micro/org/openjdk/bench/java/security/AlgorithmConstraintsPermits.java @@ -45,7 +45,7 @@ @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = {"--add-exports", "java.base/sun.security.util=ALL-UNNAMED"}) +@Fork(value = 3, jvmArgs = {"--add-exports", "java.base/sun.security.util=ALL-UNNAMED"}) @State(Scope.Thread) @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) diff --git a/test/micro/org/openjdk/bench/java/security/CacheBench.java b/test/micro/org/openjdk/bench/java/security/CacheBench.java index 9b7c39a3cf2..7366a18c020 100644 --- a/test/micro/org/openjdk/bench/java/security/CacheBench.java +++ b/test/micro/org/openjdk/bench/java/security/CacheBench.java @@ -44,7 +44,7 @@ @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = {"--add-exports", "java.base/sun.security.util=ALL-UNNAMED"}) +@Fork(value = 3, jvmArgs = {"--add-exports", "java.base/sun.security.util=ALL-UNNAMED"}) @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) public class CacheBench { diff --git a/test/micro/org/openjdk/bench/java/security/CipherSuiteBench.java b/test/micro/org/openjdk/bench/java/security/CipherSuiteBench.java index dcda7c252f0..c78fbb5dbb1 100644 --- a/test/micro/org/openjdk/bench/java/security/CipherSuiteBench.java +++ b/test/micro/org/openjdk/bench/java/security/CipherSuiteBench.java @@ -30,7 +30,7 @@ import java.util.concurrent.TimeUnit; -@Fork(value = 3, jvmArgsAppend = {"--add-exports", "java.base/sun.security.ssl=ALL-UNNAMED", "--add-opens", "java.base/sun.security.ssl=ALL-UNNAMED"}) +@Fork(value = 3, jvmArgs = {"--add-exports", "java.base/sun.security.ssl=ALL-UNNAMED", "--add-opens", "java.base/sun.security.ssl=ALL-UNNAMED"}) @State(Scope.Thread) @OutputTimeUnit(TimeUnit.MICROSECONDS) @BenchmarkMode(Mode.Throughput) diff --git a/test/micro/org/openjdk/bench/java/security/HSS.java b/test/micro/org/openjdk/bench/java/security/HSS.java index d89147406dc..c2f746d2449 100644 --- a/test/micro/org/openjdk/bench/java/security/HSS.java +++ b/test/micro/org/openjdk/bench/java/security/HSS.java @@ -55,7 +55,7 @@ @OutputTimeUnit(TimeUnit.MICROSECONDS) @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(value = 3, jvmArgsAppend = {"--add-exports", "java.base/sun.security.util=ALL-UNNAMED"}) +@Fork(value = 3, jvmArgs = {"--add-exports", "java.base/sun.security.util=ALL-UNNAMED"}) // Tests 1-2 are from RFC 8554, Appendix F. diff --git a/test/micro/org/openjdk/bench/java/security/MessageDigests.java b/test/micro/org/openjdk/bench/java/security/MessageDigests.java index a3ab483c39c..2a4e3933d31 100644 --- a/test/micro/org/openjdk/bench/java/security/MessageDigests.java +++ b/test/micro/org/openjdk/bench/java/security/MessageDigests.java @@ -47,7 +47,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(jvmArgsAppend = {"-Xms1024m", "-Xmx1024m", "-Xmn768m", "-XX:+UseParallelGC"}, value = 3) +@Fork(jvmArgs = {"-Xms1024m", "-Xmx1024m", "-Xmn768m", "-XX:+UseParallelGC"}, value = 3) public class MessageDigests { @Param({"64", "16384"}) diff --git a/test/micro/org/openjdk/bench/java/security/PKCS12KeyStores.java b/test/micro/org/openjdk/bench/java/security/PKCS12KeyStores.java index f68b4503ef5..065bd96c4bf 100644 --- a/test/micro/org/openjdk/bench/java/security/PKCS12KeyStores.java +++ b/test/micro/org/openjdk/bench/java/security/PKCS12KeyStores.java @@ -41,7 +41,7 @@ @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) @BenchmarkMode(Mode.AverageTime) -@Fork(jvmArgsAppend = {"-Xms1024m", "-Xmx1024m", "-Xmn768m", "-XX:+UseParallelGC"}, value = 3) +@Fork(jvmArgs = {"-Xms1024m", "-Xmx1024m", "-Xmn768m", "-XX:+UseParallelGC"}, value = 3) public class PKCS12KeyStores { private static final char[] PASS = "changeit".toCharArray(); diff --git a/test/micro/org/openjdk/bench/java/security/ProtectionDomainBench.java b/test/micro/org/openjdk/bench/java/security/ProtectionDomainBench.java index ec85e09634f..cf302d83e9b 100644 --- a/test/micro/org/openjdk/bench/java/security/ProtectionDomainBench.java +++ b/test/micro/org/openjdk/bench/java/security/ProtectionDomainBench.java @@ -123,7 +123,7 @@ void work() throws ClassNotFoundException { } @Benchmark - @Fork(value = 3, jvmArgsPrepend={"-Djava.security.manager=allow"}) + @Fork(value = 3, jvmArgs={"-Djava.security.manager=allow"}) public void withSecurityManager() throws ClassNotFoundException { work(); } diff --git a/test/micro/org/openjdk/bench/java/security/Signatures.java b/test/micro/org/openjdk/bench/java/security/Signatures.java index 7a14cb24b88..1bd72334343 100644 --- a/test/micro/org/openjdk/bench/java/security/Signatures.java +++ b/test/micro/org/openjdk/bench/java/security/Signatures.java @@ -34,7 +34,7 @@ @State(Scope.Thread) @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(jvmArgsAppend = {"-Xms1024m", "-Xmx1024m", "-Xmn768m", "-XX:+UseParallelGC"}, value = 3) +@Fork(jvmArgs = {"-Xms1024m", "-Xmx1024m", "-Xmn768m", "-XX:+UseParallelGC"}, value = 3) public class Signatures { private static Signature signer; diff --git a/test/micro/org/openjdk/bench/java/util/ArraysSort.java b/test/micro/org/openjdk/bench/java/util/ArraysSort.java index 4cd45d79412..d32bfa7fd2d 100644 --- a/test/micro/org/openjdk/bench/java/util/ArraysSort.java +++ b/test/micro/org/openjdk/bench/java/util/ArraysSort.java @@ -47,7 +47,7 @@ /** * Performance test of Arrays.sort() methods */ -@Fork(value=1, jvmArgsAppend={"-XX:CompileThreshold=1", "-XX:-TieredCompilation"}) +@Fork(value=1, jvmArgs={"-XX:CompileThreshold=1", "-XX:-TieredCompilation"}) @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.MICROSECONDS) @State(Scope.Thread) diff --git a/test/micro/org/openjdk/bench/java/util/ListArgs.java b/test/micro/org/openjdk/bench/java/util/ListArgs.java index 073214ce2a1..d44d8b604ef 100644 --- a/test/micro/org/openjdk/bench/java/util/ListArgs.java +++ b/test/micro/org/openjdk/bench/java/util/ListArgs.java @@ -36,7 +36,7 @@ */ @State(Scope.Thread) @OutputTimeUnit(TimeUnit.MILLISECONDS) -@Fork(value = 3, jvmArgsAppend = { "-verbose:gc", "-XX:+UseParallelGC", "-Xms4g", "-Xmx4g", "-Xint" }) +@Fork(value = 3, jvmArgs = { "-verbose:gc", "-XX:+UseParallelGC", "-Xms4g", "-Xmx4g", "-Xint" }) @Warmup(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 5, time = 2, timeUnit = TimeUnit.SECONDS) public class ListArgs { diff --git a/test/micro/org/openjdk/bench/java/util/StringJoinerBenchmark.java b/test/micro/org/openjdk/bench/java/util/StringJoinerBenchmark.java index 6df0045ef32..38b6389db54 100644 --- a/test/micro/org/openjdk/bench/java/util/StringJoinerBenchmark.java +++ b/test/micro/org/openjdk/bench/java/util/StringJoinerBenchmark.java @@ -45,7 +45,7 @@ @OutputTimeUnit(TimeUnit.NANOSECONDS) @Warmup(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) -@Fork(value = 3, jvmArgsAppend = {"-Xms1g", "-Xmx1g"}) +@Fork(value = 3, jvmArgs = {"-Xms1g", "-Xmx1g"}) public class StringJoinerBenchmark { @Benchmark diff --git a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFMRPar.java b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFMRPar.java index 476299df76e..cd83ab86034 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFMRPar.java +++ b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFMRPar.java @@ -49,7 +49,7 @@ @BenchmarkMode(Mode.Throughput) @Warmup(iterations = 4, time = 5, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 7, time = 5, timeUnit = TimeUnit.SECONDS) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) public class GatherFMRPar { diff --git a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFMRSeq.java b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFMRSeq.java index 05e48e16d07..a1973a45831 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFMRSeq.java +++ b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFMRSeq.java @@ -49,7 +49,7 @@ @BenchmarkMode(Mode.Throughput) @Warmup(iterations = 4, time = 5, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 7, time = 5, timeUnit = TimeUnit.SECONDS) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) public class GatherFMRSeq { diff --git a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFlatMapInfinitySeq.java b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFlatMapInfinitySeq.java index 09c38f83484..2b804551dbf 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFlatMapInfinitySeq.java +++ b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFlatMapInfinitySeq.java @@ -48,7 +48,7 @@ @BenchmarkMode(Mode.Throughput) @Warmup(iterations = 4, time = 5, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 7, time = 5, timeUnit = TimeUnit.SECONDS) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) public class GatherFlatMapInfinitySeq { diff --git a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFlatMapSeq.java b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFlatMapSeq.java index a13ee01a851..31c1f047c12 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFlatMapSeq.java +++ b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFlatMapSeq.java @@ -48,7 +48,7 @@ @BenchmarkMode(Mode.Throughput) @Warmup(iterations = 4, time = 5, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 7, time = 5, timeUnit = TimeUnit.SECONDS) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) public class GatherFlatMapSeq { diff --git a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMapPar.java b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMapPar.java index 62c2d03b1b1..b7c60af6cdd 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMapPar.java +++ b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMapPar.java @@ -48,7 +48,7 @@ @BenchmarkMode(Mode.Throughput) @Warmup(iterations = 4, time = 5, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 7, time = 5, timeUnit = TimeUnit.SECONDS) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) public class GatherMapPar { diff --git a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMapSeq.java b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMapSeq.java index 1e842c0c09e..1dbbbd05009 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMapSeq.java +++ b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMapSeq.java @@ -48,7 +48,7 @@ @BenchmarkMode(Mode.Throughput) @Warmup(iterations = 4, time = 5, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 7, time = 5, timeUnit = TimeUnit.SECONDS) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) public class GatherMapSeq { diff --git a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMiscPar.java b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMiscPar.java index 578e470ec5c..12f5c98702b 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMiscPar.java +++ b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMiscPar.java @@ -49,7 +49,7 @@ @BenchmarkMode(Mode.Throughput) @Warmup(iterations = 4, time = 5, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 7, time = 5, timeUnit = TimeUnit.SECONDS) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) public class GatherMiscPar { diff --git a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMiscSeq.java b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMiscSeq.java index 0d7d9bdef9f..a60d02af7b6 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMiscSeq.java +++ b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMiscSeq.java @@ -51,7 +51,7 @@ @BenchmarkMode(Mode.Throughput) @Warmup(iterations = 4, time = 5, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 7, time = 5, timeUnit = TimeUnit.SECONDS) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) public class GatherMiscSeq { diff --git a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherReducePar.java b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherReducePar.java index 2f2d0b06bd7..6742ee98590 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherReducePar.java +++ b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherReducePar.java @@ -49,7 +49,7 @@ @BenchmarkMode(Mode.Throughput) @Warmup(iterations = 4, time = 5, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 7, time = 5, timeUnit = TimeUnit.SECONDS) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) public class GatherReducePar { diff --git a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherReduceSeq.java b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherReduceSeq.java index 7d8540d0ed4..7356fdb979b 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherReduceSeq.java +++ b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherReduceSeq.java @@ -51,7 +51,7 @@ @BenchmarkMode(Mode.Throughput) @Warmup(iterations = 4, time = 5, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 7, time = 5, timeUnit = TimeUnit.SECONDS) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) public class GatherReduceSeq { diff --git a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherWhileOrdered.java b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherWhileOrdered.java index 6e9e5fec1fa..f0b3fef4438 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherWhileOrdered.java +++ b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherWhileOrdered.java @@ -49,7 +49,7 @@ @BenchmarkMode(Mode.Throughput) @Warmup(iterations = 4, time = 5, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 7, time = 5, timeUnit = TimeUnit.SECONDS) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) public class GatherWhileOrdered { diff --git a/test/micro/org/openjdk/bench/javax/crypto/AES.java b/test/micro/org/openjdk/bench/javax/crypto/AES.java index 23ecdb33f94..8bd4a6ff9b3 100644 --- a/test/micro/org/openjdk/bench/javax/crypto/AES.java +++ b/test/micro/org/openjdk/bench/javax/crypto/AES.java @@ -59,19 +59,19 @@ public void setup() throws Exception { } @Benchmark - @Fork(jvmArgsAppend = {"-XX:+UnlockDiagnosticVMOptions", "-XX:-UseAES", "-XX:-UseAESIntrinsics"}) + @Fork(jvmArgs = {"-XX:+UnlockDiagnosticVMOptions", "-XX:-UseAES", "-XX:-UseAESIntrinsics"}) public byte[] testBaseline() throws Exception { return cipher.doFinal(src); } @Benchmark - @Fork(jvmArgsAppend = {"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseAES", "-XX:-UseAESIntrinsics"}) + @Fork(jvmArgs = {"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseAES", "-XX:-UseAESIntrinsics"}) public byte[] testUseAes() throws Exception { return cipher.doFinal(src); } @Benchmark - @Fork(jvmArgsAppend = {"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseAES", "-XX:+UseAESIntrinsics"}) + @Fork(jvmArgs = {"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseAES", "-XX:+UseAESIntrinsics"}) public byte[] testUseAesIntrinsics() throws Exception { return cipher.doFinal(src); } diff --git a/test/micro/org/openjdk/bench/javax/crypto/AESReinit.java b/test/micro/org/openjdk/bench/javax/crypto/AESReinit.java index 16f8b930633..b2378576f2c 100644 --- a/test/micro/org/openjdk/bench/javax/crypto/AESReinit.java +++ b/test/micro/org/openjdk/bench/javax/crypto/AESReinit.java @@ -32,7 +32,7 @@ @Warmup(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS) -@Fork(value = 3, jvmArgsAppend = {"-Xms1g", "-Xmx1g"}) +@Fork(value = 3, jvmArgs = {"-Xms1g", "-Xmx1g"}) @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) @State(Scope.Thread) diff --git a/test/micro/org/openjdk/bench/javax/crypto/Crypto.java b/test/micro/org/openjdk/bench/javax/crypto/Crypto.java index 6a9a49bd84e..38e88d0171e 100644 --- a/test/micro/org/openjdk/bench/javax/crypto/Crypto.java +++ b/test/micro/org/openjdk/bench/javax/crypto/Crypto.java @@ -51,7 +51,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @Warmup(iterations = 5) @Measurement(iterations = 10) -@Fork(jvmArgsAppend = {"-Xms1024m", "-Xmx1024m", "-Xmn768m", "-XX:+UseParallelGC"}, value = 5) +@Fork(jvmArgs = {"-Xms1024m", "-Xmx1024m", "-Xmn768m", "-XX:+UseParallelGC"}, value = 5) public class Crypto { @Param({"64", "1024", "16384"}) diff --git a/test/micro/org/openjdk/bench/javax/crypto/full/CryptoBase.java b/test/micro/org/openjdk/bench/javax/crypto/full/CryptoBase.java index c0fbcdcaa01..b2d08204d7b 100644 --- a/test/micro/org/openjdk/bench/javax/crypto/full/CryptoBase.java +++ b/test/micro/org/openjdk/bench/javax/crypto/full/CryptoBase.java @@ -45,7 +45,7 @@ import java.util.concurrent.TimeUnit; -@Fork(jvmArgsAppend = {"-XX:+AlwaysPreTouch"}, value = 5) +@Fork(jvmArgs = {"-XX:+AlwaysPreTouch"}, value = 5) @Warmup(iterations = 3, time = 3) @Measurement(iterations = 8, time = 2) @OutputTimeUnit(TimeUnit.SECONDS) diff --git a/test/micro/org/openjdk/bench/javax/crypto/full/Poly1305DigestBench.java b/test/micro/org/openjdk/bench/javax/crypto/full/Poly1305DigestBench.java index 529ce9a2b32..bff0918b7a8 100644 --- a/test/micro/org/openjdk/bench/javax/crypto/full/Poly1305DigestBench.java +++ b/test/micro/org/openjdk/bench/javax/crypto/full/Poly1305DigestBench.java @@ -41,7 +41,7 @@ @Measurement(iterations = 3, time = 10) @Warmup(iterations = 3, time = 10) -@Fork(value = 1, jvmArgsAppend = {"--add-opens", "java.base/com.sun.crypto.provider=ALL-UNNAMED"}) +@Fork(value = 1, jvmArgs = {"--add-opens", "java.base/com.sun.crypto.provider=ALL-UNNAMED"}) public class Poly1305DigestBench extends CryptoBase { public static final int SET_SIZE = 128; diff --git a/test/micro/org/openjdk/bench/javax/crypto/full/PolynomialP256Bench.java b/test/micro/org/openjdk/bench/javax/crypto/full/PolynomialP256Bench.java index 94c247c9080..34a6bd761ff 100644 --- a/test/micro/org/openjdk/bench/javax/crypto/full/PolynomialP256Bench.java +++ b/test/micro/org/openjdk/bench/javax/crypto/full/PolynomialP256Bench.java @@ -40,7 +40,7 @@ import sun.security.util.math.MutableIntegerModuloP; import sun.security.util.math.ImmutableIntegerModuloP; -@Fork(jvmArgsAppend = {"-XX:+AlwaysPreTouch", +@Fork(jvmArgs = {"-XX:+AlwaysPreTouch", "--add-exports", "java.base/sun.security.util.math.intpoly=ALL-UNNAMED", "--add-exports", "java.base/sun.security.util.math=ALL-UNNAMED"}, value = 1) @Warmup(iterations = 3, time = 3) diff --git a/test/micro/org/openjdk/bench/jdk/classfile/AbstractCorpusBenchmark.java b/test/micro/org/openjdk/bench/jdk/classfile/AbstractCorpusBenchmark.java index b714f1c5ff9..5f64e114877 100644 --- a/test/micro/org/openjdk/bench/jdk/classfile/AbstractCorpusBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/classfile/AbstractCorpusBenchmark.java @@ -43,7 +43,7 @@ */ @Warmup(iterations = 2) @Measurement(iterations = 4) -@Fork(value = 1, jvmArgsAppend = { +@Fork(value = 1, jvmArgs = { "--add-exports", "java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED", "--add-exports", "java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED", "--enable-preview", diff --git a/test/micro/org/openjdk/bench/jdk/classfile/ClassfileBenchmark.java b/test/micro/org/openjdk/bench/jdk/classfile/ClassfileBenchmark.java index c07eff075c9..ecd671feaac 100644 --- a/test/micro/org/openjdk/bench/jdk/classfile/ClassfileBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/classfile/ClassfileBenchmark.java @@ -50,7 +50,7 @@ */ @Warmup(iterations = 3) @Measurement(iterations = 5) -@Fork(value = 1, jvmArgsAppend = { +@Fork(value = 1, jvmArgs = { "--enable-preview"}) @State(Scope.Benchmark) diff --git a/test/micro/org/openjdk/bench/jdk/classfile/CodeAttributeTools.java b/test/micro/org/openjdk/bench/jdk/classfile/CodeAttributeTools.java index 4239f70504b..877a36e3864 100644 --- a/test/micro/org/openjdk/bench/jdk/classfile/CodeAttributeTools.java +++ b/test/micro/org/openjdk/bench/jdk/classfile/CodeAttributeTools.java @@ -55,7 +55,7 @@ @BenchmarkMode(Mode.Throughput) @State(Scope.Benchmark) -@Fork(value = 1, jvmArgsAppend = { +@Fork(value = 1, jvmArgs = { "--enable-preview", "--add-exports", "java.base/jdk.internal.classfile.impl=ALL-UNNAMED"}) @Warmup(iterations = 2) diff --git a/test/micro/org/openjdk/bench/jdk/classfile/ConstantPoolBuildingClassEntry.java b/test/micro/org/openjdk/bench/jdk/classfile/ConstantPoolBuildingClassEntry.java index 0f8bf0449af..afb586dabe7 100644 --- a/test/micro/org/openjdk/bench/jdk/classfile/ConstantPoolBuildingClassEntry.java +++ b/test/micro/org/openjdk/bench/jdk/classfile/ConstantPoolBuildingClassEntry.java @@ -43,7 +43,7 @@ @Measurement(iterations = 5) @OutputTimeUnit(TimeUnit.MILLISECONDS) @BenchmarkMode(Mode.Throughput) -@Fork(value = 1, jvmArgsAppend = {"--enable-preview"}) +@Fork(value = 1, jvmArgs = {"--enable-preview"}) @State(Scope.Benchmark) public class ConstantPoolBuildingClassEntry { // JDK-8338546 diff --git a/test/micro/org/openjdk/bench/jdk/classfile/RebuildMethodBodies.java b/test/micro/org/openjdk/bench/jdk/classfile/RebuildMethodBodies.java index 07deec0ae48..f6542983e13 100644 --- a/test/micro/org/openjdk/bench/jdk/classfile/RebuildMethodBodies.java +++ b/test/micro/org/openjdk/bench/jdk/classfile/RebuildMethodBodies.java @@ -37,7 +37,7 @@ @BenchmarkMode(Mode.Throughput) @State(Scope.Benchmark) -@Fork(value = 1, jvmArgsAppend = { +@Fork(value = 1, jvmArgs = { "--enable-preview"}) @Warmup(iterations = 2) @Measurement(iterations = 4) diff --git a/test/micro/org/openjdk/bench/jdk/classfile/RepeatedModelTraversal.java b/test/micro/org/openjdk/bench/jdk/classfile/RepeatedModelTraversal.java index 45fcbe0f5a5..b9c9082625c 100644 --- a/test/micro/org/openjdk/bench/jdk/classfile/RepeatedModelTraversal.java +++ b/test/micro/org/openjdk/bench/jdk/classfile/RepeatedModelTraversal.java @@ -36,7 +36,7 @@ @BenchmarkMode(Mode.Throughput) @State(Scope.Benchmark) -@Fork(value = 1, jvmArgsAppend = { +@Fork(value = 1, jvmArgs = { "--enable-preview"}) @Warmup(iterations = 3) @Measurement(iterations = 4) diff --git a/test/micro/org/openjdk/bench/jdk/classfile/Write.java b/test/micro/org/openjdk/bench/jdk/classfile/Write.java index 6e041cf6436..19dfabbdce8 100644 --- a/test/micro/org/openjdk/bench/jdk/classfile/Write.java +++ b/test/micro/org/openjdk/bench/jdk/classfile/Write.java @@ -56,7 +56,7 @@ */ @Warmup(iterations = 3) @Measurement(iterations = 5) -@Fork(value = 1, jvmArgsAppend = { +@Fork(value = 1, jvmArgs = { "--add-exports", "java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED", "--add-exports", "java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED", "--enable-preview", diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/ArrayMismatchBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/ArrayMismatchBenchmark.java index c6c34e890fa..8d0cce89f98 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/ArrayMismatchBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/ArrayMismatchBenchmark.java @@ -47,7 +47,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class ArrayMismatchBenchmark { @Param({"9", "257", "100000"}) diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/BlackScholes.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/BlackScholes.java index f58821b6697..5db2c6b7d07 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/BlackScholes.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/BlackScholes.java @@ -39,7 +39,7 @@ @State(Scope.Thread) @Warmup(iterations = 3, time = 5) @Measurement(iterations = 3, time = 5) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class BlackScholes { @Param("1024") diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/ColumnFilterBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/ColumnFilterBenchmark.java index d41d5404250..e78bd2172a0 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/ColumnFilterBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/ColumnFilterBenchmark.java @@ -32,7 +32,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector", "-XX:UseAVX=2"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector", "-XX:UseAVX=2"}) public class ColumnFilterBenchmark { @Param({"1024", "2047", "4096"}) int size; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/EqualsIgnoreCaseBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/EqualsIgnoreCaseBenchmark.java index 888029f3c11..20d7646586d 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/EqualsIgnoreCaseBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/EqualsIgnoreCaseBenchmark.java @@ -46,7 +46,7 @@ @State(Scope.Benchmark) @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(value = 3, jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(value = 3, jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class EqualsIgnoreCaseBenchmark { static final VectorSpecies SPECIES = ByteVector.SPECIES_PREFERRED; private byte[] a; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/GatherOperationsBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/GatherOperationsBenchmark.java index 7a7578fcf84..09c467cea5b 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/GatherOperationsBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/GatherOperationsBenchmark.java @@ -32,7 +32,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class GatherOperationsBenchmark { @Param({"64", "256", "1024", "4096"}) int SIZE; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/IndexInRangeBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/IndexInRangeBenchmark.java index 66a9b3fc522..1875ea00feb 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/IndexInRangeBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/IndexInRangeBenchmark.java @@ -32,7 +32,7 @@ @State(Scope.Thread) @Warmup(iterations = 3, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(value = 1, jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(value = 1, jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class IndexInRangeBenchmark { @Param({"7", "256", "259", "512"}) private int size; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/IndexVectorBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/IndexVectorBenchmark.java index 120ae94bd06..584e73c4886 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/IndexVectorBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/IndexVectorBenchmark.java @@ -32,7 +32,7 @@ @State(Scope.Thread) @Warmup(iterations = 3, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(value = 1, jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(value = 1, jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class IndexVectorBenchmark { @Param({"1024"}) private int size; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/LoadMaskedIOOBEBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/LoadMaskedIOOBEBenchmark.java index 869c98ef29f..52e64d8e096 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/LoadMaskedIOOBEBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/LoadMaskedIOOBEBenchmark.java @@ -32,7 +32,7 @@ @State(Scope.Thread) @Warmup(iterations = 3, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(value = 1, jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(value = 1, jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class LoadMaskedIOOBEBenchmark { @Param({"1026"}) private int inSize; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskCastOperationsBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskCastOperationsBenchmark.java index 93871392f26..e277fd9114f 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskCastOperationsBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskCastOperationsBenchmark.java @@ -30,7 +30,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class MaskCastOperationsBenchmark { VectorMask bmask64; VectorMask bmask128; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskFromLongBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskFromLongBenchmark.java index a7c73ea6460..ee0fadd6db8 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskFromLongBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskFromLongBenchmark.java @@ -29,7 +29,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class MaskFromLongBenchmark { private static final int ITERATION = 20000; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskQueryOperationsBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskQueryOperationsBenchmark.java index 373bd5017cc..20537fe74f6 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskQueryOperationsBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskQueryOperationsBenchmark.java @@ -31,7 +31,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class MaskQueryOperationsBenchmark { @Param({"128","256","512"}) int bits; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskedLogicOpts.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskedLogicOpts.java index 97922c2f9ee..eb08aa38b8f 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskedLogicOpts.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskedLogicOpts.java @@ -32,7 +32,7 @@ @BenchmarkMode(Mode.Throughput) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class MaskedLogicOpts { @Param({"256","512","1024"}) private int ARRAYLEN; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/MemorySegmentVectorAccess.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/MemorySegmentVectorAccess.java index 55248290f0e..a85ba440dce 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/MemorySegmentVectorAccess.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/MemorySegmentVectorAccess.java @@ -48,7 +48,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 1, jvmArgsAppend = { +@Fork(value = 1, jvmArgs = { "--add-modules=jdk.incubator.vector", "--enable-native-access", "ALL-UNNAMED"}) public class MemorySegmentVectorAccess { diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/RearrangeBytesBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/RearrangeBytesBenchmark.java index daa15d41067..375ae9a0395 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/RearrangeBytesBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/RearrangeBytesBenchmark.java @@ -32,7 +32,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class RearrangeBytesBenchmark { @Param({"256", "512", "1024"}) int size; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/RotateBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/RotateBenchmark.java index 3628479342a..0ebf844e94b 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/RotateBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/RotateBenchmark.java @@ -32,7 +32,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class RotateBenchmark { @Param({"256","512"}) int size; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/SelectFromBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/SelectFromBenchmark.java index 18614617e6c..1a370596c08 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/SelectFromBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/SelectFromBenchmark.java @@ -33,7 +33,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class SelectFromBenchmark { @Param({"1024","2048"}) int size; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskTrueCount.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskTrueCount.java index 372edd0cfb5..db9f7cf1028 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskTrueCount.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskTrueCount.java @@ -30,7 +30,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class StoreMaskTrueCount { private static final VectorSpecies S_SPECIES = ShortVector.SPECIES_PREFERRED; private static final VectorSpecies I_SPECIES = IntVector.SPECIES_PREFERRED; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskedBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskedBenchmark.java index e5c21527e4a..626de9b898c 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskedBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskedBenchmark.java @@ -32,7 +32,7 @@ @State(Scope.Thread) @Warmup(iterations = 3, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(value = 1, jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(value = 1, jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class StoreMaskedBenchmark { @Param({"1024"}) private int size; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskedIOOBEBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskedIOOBEBenchmark.java index 1855338552e..241bd081d3a 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskedIOOBEBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskedIOOBEBenchmark.java @@ -31,7 +31,7 @@ @State(Scope.Thread) @Warmup(iterations = 3, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(value = 1, jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(value = 1, jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class StoreMaskedIOOBEBenchmark { @Param({"1024"}) private int inSize; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadSegmentVarious.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadSegmentVarious.java index 5ec17c26ca5..53564edab2d 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadSegmentVarious.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadSegmentVarious.java @@ -46,7 +46,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 1, jvmArgsAppend = { +@Fork(value = 1, jvmArgs = { "--add-modules=jdk.incubator.vector", "--enable-native-access", "ALL-UNNAMED"}) public class TestLoadSegmentVarious { diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadStoreBytes.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadStoreBytes.java index 3ea1943e703..feac109230a 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadStoreBytes.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadStoreBytes.java @@ -47,7 +47,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 1, jvmArgsAppend = { +@Fork(value = 1, jvmArgs = { "--add-modules=jdk.incubator.vector", "--enable-native-access", "ALL-UNNAMED", "-Djdk.incubator.vector.VECTOR_ACCESS_OOB_CHECK=1"}) diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadStoreShorts.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadStoreShorts.java index d6c6531d3f8..842313357bd 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadStoreShorts.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadStoreShorts.java @@ -50,7 +50,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 1, jvmArgsAppend = { +@Fork(value = 1, jvmArgs = { "--add-modules=jdk.incubator.vector", "--enable-native-access", "ALL-UNNAMED"}) public class TestLoadStoreShorts { diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorExtractBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorExtractBenchmark.java index 4715cdb08ba..6358cb0a5d4 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorExtractBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorExtractBenchmark.java @@ -28,7 +28,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class VectorExtractBenchmark { private int idx = 0; private boolean[] res = new boolean[8]; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorFPtoIntCastOperations.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorFPtoIntCastOperations.java index b66fc9646a0..35069af60f6 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorFPtoIntCastOperations.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorFPtoIntCastOperations.java @@ -31,7 +31,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class VectorFPtoIntCastOperations { @Param({"512", "1024"}) static int SIZE; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorZeroExtend.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorZeroExtend.java index 503d80356da..e250ddd9008 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorZeroExtend.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorZeroExtend.java @@ -32,7 +32,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class VectorZeroExtend { private static final VectorSpecies B_SPECIES = ByteVector.SPECIES_PREFERRED; private static final VectorSpecies S_SPECIES = ShortVector.SPECIES_PREFERRED; diff --git a/test/micro/org/openjdk/bench/jdk/preview/patterns/Exactness.java b/test/micro/org/openjdk/bench/jdk/preview/patterns/Exactness.java index 675f5bda398..34971ccf93a 100644 --- a/test/micro/org/openjdk/bench/jdk/preview/patterns/Exactness.java +++ b/test/micro/org/openjdk/bench/jdk/preview/patterns/Exactness.java @@ -35,7 +35,7 @@ @Measurement(iterations=5, time=1) @Threads(2) @Fork(value = 1, - jvmArgsPrepend = {"-Djmh.blackhole.mode=COMPILER", + jvmArgs = {"-Djmh.blackhole.mode=COMPILER", "--enable-preview"}) @State(Scope.Thread) @SuppressWarnings("preview") diff --git a/test/micro/org/openjdk/bench/vm/compiler/AllocationMerges.java b/test/micro/org/openjdk/bench/vm/compiler/AllocationMerges.java index 84c6c5c6483..b4b833cd95a 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/AllocationMerges.java +++ b/test/micro/org/openjdk/bench/vm/compiler/AllocationMerges.java @@ -1194,7 +1194,7 @@ public void testString_two_caller(Blackhole bh) { // ------------------ Utility for Benchmarking ------------------- // - @Fork(value = 3, jvmArgsPrepend = { + @Fork(value = 3, jvmArgs = { "-XX:+UnlockDiagnosticVMOptions", "-XX:+UseTLAB", "-XX:-ReduceAllocationMerges", @@ -1202,7 +1202,7 @@ public void testString_two_caller(Blackhole bh) { public static class NopRAM extends AllocationMerges { } - @Fork(value = 3, jvmArgsPrepend = { + @Fork(value = 3, jvmArgs = { "-XX:+UnlockDiagnosticVMOptions", "-XX:+ReduceAllocationMerges", }) diff --git a/test/micro/org/openjdk/bench/vm/compiler/ClearMemory.java b/test/micro/org/openjdk/bench/vm/compiler/ClearMemory.java index f70b4aa734a..434805875c1 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/ClearMemory.java +++ b/test/micro/org/openjdk/bench/vm/compiler/ClearMemory.java @@ -38,7 +38,7 @@ import java.util.concurrent.TimeUnit; -@Fork(value = 3, jvmArgsPrepend = {"-XX:-EliminateAllocations", "-XX:-DoEscapeAnalysis"}) +@Fork(value = 3, jvmArgs = {"-XX:-EliminateAllocations", "-XX:-DoEscapeAnalysis"}) @BenchmarkMode(Mode.Throughput) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) diff --git a/test/micro/org/openjdk/bench/vm/compiler/ConstructorBarriers.java b/test/micro/org/openjdk/bench/vm/compiler/ConstructorBarriers.java index 7adbbe0e1a7..83dc38552fa 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/ConstructorBarriers.java +++ b/test/micro/org/openjdk/bench/vm/compiler/ConstructorBarriers.java @@ -41,7 +41,7 @@ @State(Scope.Thread) @Warmup(iterations = 3, time = 1, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 3, time = 1, timeUnit = TimeUnit.SECONDS) -@Fork(value = 3, jvmArgsAppend = {"-Xms512m", "-Xmx512m", "-XX:+AlwaysPreTouch", "-XX:+UseParallelGC"}) +@Fork(value = 3, jvmArgs = {"-Xms512m", "-Xmx512m", "-XX:+AlwaysPreTouch", "-XX:+UseParallelGC"}) public class ConstructorBarriers { // Checks the barrier coalescing/optimization around field initializations. diff --git a/test/micro/org/openjdk/bench/vm/compiler/InterfacePrivateCalls.java b/test/micro/org/openjdk/bench/vm/compiler/InterfacePrivateCalls.java index 7ccc91901de..7e8800a3fbe 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/InterfacePrivateCalls.java +++ b/test/micro/org/openjdk/bench/vm/compiler/InterfacePrivateCalls.java @@ -64,7 +64,7 @@ public void setupTrial() { @Benchmark @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) - @Fork(value=3, jvmArgsAppend={"-XX:TieredStopAtLevel=1"}) + @Fork(value=3, jvmArgs={"-XX:TieredStopAtLevel=1"}) public void invokePrivateInterfaceMethodC1() { for (int i = 0; i < objs.length; ++i) { objs[i].foo(); diff --git a/test/micro/org/openjdk/bench/vm/compiler/MergeStoreBench.java b/test/micro/org/openjdk/bench/vm/compiler/MergeStoreBench.java index 26c8287c4de..870422de256 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/MergeStoreBench.java +++ b/test/micro/org/openjdk/bench/vm/compiler/MergeStoreBench.java @@ -43,7 +43,7 @@ @State(Scope.Thread) @Warmup(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @Measurement(iterations = 5, time = 1000, timeUnit = TimeUnit.MILLISECONDS) -@Fork(value = 3, jvmArgsAppend = {"--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED"}) +@Fork(value = 3, jvmArgs = {"--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED"}) public class MergeStoreBench { private static final Unsafe UNSAFE = Unsafe.getUnsafe(); diff --git a/test/micro/org/openjdk/bench/vm/compiler/MergeStores.java b/test/micro/org/openjdk/bench/vm/compiler/MergeStores.java index 84017573c07..93d98116ecc 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/MergeStores.java +++ b/test/micro/org/openjdk/bench/vm/compiler/MergeStores.java @@ -43,7 +43,7 @@ @OutputTimeUnit(TimeUnit.NANOSECONDS) @Warmup(iterations = 3, time = 3) @Measurement(iterations = 3, time = 3) -@Fork(value = 3, jvmArgsAppend = { +@Fork(value = 3, jvmArgs = { "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED", "--add-exports", "java.base/jdk.internal.util=ALL-UNNAMED"}) @State(Scope.Benchmark) diff --git a/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheHits.java b/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheHits.java index aaaf0edb258..69eaf875363 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheHits.java +++ b/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheHits.java @@ -30,7 +30,7 @@ @Warmup(iterations = 5, time = 300, timeUnit = TimeUnit.MILLISECONDS) @Measurement(iterations = 5, time = 300, timeUnit = TimeUnit.MILLISECONDS) -@Fork(value = 3, jvmArgsAppend = {"-XX:+TieredCompilation", "-XX:TieredStopAtLevel=1"}) +@Fork(value = 3, jvmArgs = {"-XX:+TieredCompilation", "-XX:TieredStopAtLevel=1"}) @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) @Threads(1) diff --git a/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheInterContention.java b/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheInterContention.java index 3cafa582c09..03c6d75607b 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheInterContention.java +++ b/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheInterContention.java @@ -30,7 +30,7 @@ @Warmup(iterations = 5, time = 300, timeUnit = TimeUnit.MILLISECONDS) @Measurement(iterations = 5, time = 300, timeUnit = TimeUnit.MILLISECONDS) -@Fork(value = 3, jvmArgsAppend = {"-XX:+TieredCompilation", "-XX:TieredStopAtLevel=1"}) +@Fork(value = 3, jvmArgs = {"-XX:+TieredCompilation", "-XX:TieredStopAtLevel=1"}) @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) @Threads(Threads.MAX) diff --git a/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheIntraContention.java b/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheIntraContention.java index b97d49e2e60..3c30c69a864 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheIntraContention.java +++ b/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheIntraContention.java @@ -30,7 +30,7 @@ @Warmup(iterations = 5, time = 300, timeUnit = TimeUnit.MILLISECONDS) @Measurement(iterations = 5, time = 300, timeUnit = TimeUnit.MILLISECONDS) -@Fork(value = 3, jvmArgsAppend = {"-XX:+TieredCompilation", "-XX:TieredStopAtLevel=1"}) +@Fork(value = 3, jvmArgs = {"-XX:+TieredCompilation", "-XX:TieredStopAtLevel=1"}) @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) @Threads(Threads.MAX) diff --git a/test/micro/org/openjdk/bench/vm/compiler/SubIdealC0Minus_YPlusC1_.java b/test/micro/org/openjdk/bench/vm/compiler/SubIdealC0Minus_YPlusC1_.java index 17728f6bc25..5ac4e58dce6 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/SubIdealC0Minus_YPlusC1_.java +++ b/test/micro/org/openjdk/bench/vm/compiler/SubIdealC0Minus_YPlusC1_.java @@ -47,7 +47,7 @@ @State(Scope.Thread) @Warmup(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS) -@Fork(value = 3 , jvmArgsAppend = {"-XX:-TieredCompilation", "-Xbatch", "-Xcomp"}) +@Fork(value = 3 , jvmArgs = {"-XX:-TieredCompilation", "-Xbatch", "-Xcomp"}) public class SubIdealC0Minus_YPlusC1_ { private static final int I_C0 = 1234567; diff --git a/test/micro/org/openjdk/bench/vm/compiler/TypeVectorOperations.java b/test/micro/org/openjdk/bench/vm/compiler/TypeVectorOperations.java index a3e4445664c..c39107fdd00 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/TypeVectorOperations.java +++ b/test/micro/org/openjdk/bench/vm/compiler/TypeVectorOperations.java @@ -382,7 +382,7 @@ public void andZ() { } @Benchmark - @Fork(jvmArgsPrepend = {"-XX:+UseCMoveUnconditionally", "-XX:+UseVectorCmov"}) + @Fork(jvmArgs = {"-XX:+UseCMoveUnconditionally", "-XX:+UseVectorCmov"}) public void cmoveD() { for (int i = 0; i < COUNT; i++) { resD[i] = resD[i] < doubles[i] ? resD[i] : doubles[i]; @@ -390,21 +390,21 @@ public void cmoveD() { } @Benchmark - @Fork(jvmArgsPrepend = {"-XX:+UseCMoveUnconditionally", "-XX:+UseVectorCmov"}) + @Fork(jvmArgs = {"-XX:+UseCMoveUnconditionally", "-XX:+UseVectorCmov"}) public void cmoveF() { for (int i = 0; i < COUNT; i++) { resF[i] = resF[i] < floats[i] ? resF[i] : floats[i]; } } - @Fork(value = 2, jvmArgsPrepend = { + @Fork(value = 2, jvmArgs = { "-XX:+UseSuperWord" }) public static class TypeVectorOperationsSuperWord extends TypeVectorOperations { } - @Fork(value = 2, jvmArgsPrepend = { + @Fork(value = 2, jvmArgs = { "-XX:-UseSuperWord" }) public static class TypeVectorOperationsNonSuperWord extends TypeVectorOperations { diff --git a/test/micro/org/openjdk/bench/vm/compiler/VectorAlignment.java b/test/micro/org/openjdk/bench/vm/compiler/VectorAlignment.java index 7fff4952c8e..1d684260d89 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/VectorAlignment.java +++ b/test/micro/org/openjdk/bench/vm/compiler/VectorAlignment.java @@ -293,22 +293,22 @@ public void bench401_hand_unrolled_misaligned() { } } - @Fork(value = 1, jvmArgsPrepend = { + @Fork(value = 1, jvmArgs = { "-XX:+UseSuperWord", "-XX:CompileCommand=Option,*::*,Vectorize" }) public static class VectorAlignmentSuperWordWithVectorize extends VectorAlignment {} - @Fork(value = 1, jvmArgsPrepend = { + @Fork(value = 1, jvmArgs = { "-XX:+UseSuperWord", "-XX:+AlignVector" }) public static class VectorAlignmentSuperWordAlignVector extends VectorAlignment {} - @Fork(value = 1, jvmArgsPrepend = { + @Fork(value = 1, jvmArgs = { "-XX:+UseSuperWord" }) public static class VectorAlignmentSuperWord extends VectorAlignment {} - @Fork(value = 1, jvmArgsPrepend = { + @Fork(value = 1, jvmArgs = { "-XX:-UseSuperWord" }) public static class VectorAlignmentNoSuperWord extends VectorAlignment {} diff --git a/test/micro/org/openjdk/bench/vm/compiler/VectorBitCount.java b/test/micro/org/openjdk/bench/vm/compiler/VectorBitCount.java index 49b644a64f1..cfb37b71caf 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/VectorBitCount.java +++ b/test/micro/org/openjdk/bench/vm/compiler/VectorBitCount.java @@ -72,14 +72,14 @@ public int[] longBitCount() { } - @Fork(value = 2, jvmArgsPrepend = { + @Fork(value = 2, jvmArgs = { "-XX:+UseSuperWord" }) public static class WithSuperword extends VectorBitCount { } - @Fork(value = 2, jvmArgsPrepend = { + @Fork(value = 2, jvmArgs = { "-XX:-UseSuperWord" }) public static class NoSuperword extends VectorBitCount { diff --git a/test/micro/org/openjdk/bench/vm/compiler/VectorLoadToStoreForwarding.java b/test/micro/org/openjdk/bench/vm/compiler/VectorLoadToStoreForwarding.java index efbf99c6ce5..1aed0fc3321 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/VectorLoadToStoreForwarding.java +++ b/test/micro/org/openjdk/bench/vm/compiler/VectorLoadToStoreForwarding.java @@ -200,12 +200,12 @@ public void benchmark_20() { } } - @Fork(value = 1, jvmArgsPrepend = { + @Fork(value = 1, jvmArgs = { "-XX:+UseSuperWord" }) public static class VectorLoadToStoreForwardingSuperWord extends VectorLoadToStoreForwarding {} - @Fork(value = 1, jvmArgsPrepend = { + @Fork(value = 1, jvmArgs = { "-XX:-UseSuperWord" }) public static class VectorLoadToStoreForwardingNoSuperWord extends VectorLoadToStoreForwarding {} diff --git a/test/micro/org/openjdk/bench/vm/compiler/VectorReduction.java b/test/micro/org/openjdk/bench/vm/compiler/VectorReduction.java index 9b293b6b7e5..1507dd211e6 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/VectorReduction.java +++ b/test/micro/org/openjdk/bench/vm/compiler/VectorReduction.java @@ -176,14 +176,14 @@ public void andRedIOnGlobalAccumulator() { } } - @Fork(value = 2, jvmArgsPrepend = { + @Fork(value = 2, jvmArgs = { "-XX:+UseSuperWord" }) public static class WithSuperword extends VectorReduction { } - @Fork(value = 2, jvmArgsPrepend = { + @Fork(value = 2, jvmArgs = { "-XX:-UseSuperWord" }) public static class NoSuperword extends VectorReduction { diff --git a/test/micro/org/openjdk/bench/vm/compiler/VectorReduction2.java b/test/micro/org/openjdk/bench/vm/compiler/VectorReduction2.java index 5ec34a0423f..ec614cb324b 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/VectorReduction2.java +++ b/test/micro/org/openjdk/bench/vm/compiler/VectorReduction2.java @@ -1445,10 +1445,10 @@ public void doubleMaxBig(Blackhole bh) { bh.consume(acc); } - @Fork(value = 1, jvmArgsPrepend = {"-XX:+UseSuperWord"}) + @Fork(value = 1, jvmArgs = {"-XX:+UseSuperWord"}) public static class WithSuperword extends VectorReduction2 {} - @Fork(value = 1, jvmArgsPrepend = {"-XX:-UseSuperWord"}) + @Fork(value = 1, jvmArgs = {"-XX:-UseSuperWord"}) public static class NoSuperword extends VectorReduction2 {} } diff --git a/test/micro/org/openjdk/bench/vm/compiler/VectorReductionFloatingMinMax.java b/test/micro/org/openjdk/bench/vm/compiler/VectorReductionFloatingMinMax.java index d25d22f12b1..870164b8050 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/VectorReductionFloatingMinMax.java +++ b/test/micro/org/openjdk/bench/vm/compiler/VectorReductionFloatingMinMax.java @@ -69,7 +69,7 @@ public void init() { } @Benchmark - @Fork(jvmArgsPrepend = {"-XX:-SuperWordLoopUnrollAnalysis"}) + @Fork(jvmArgs = {"-XX:-SuperWordLoopUnrollAnalysis"}) public void maxRedF(Blackhole bh) { float max = 0.0f; for (int i = 0; i < COUNT_FLOAT; i++) { @@ -79,7 +79,7 @@ public void maxRedF(Blackhole bh) { } @Benchmark - @Fork(jvmArgsPrepend = {"-XX:-SuperWordLoopUnrollAnalysis"}) + @Fork(jvmArgs = {"-XX:-SuperWordLoopUnrollAnalysis"}) public void minRedF(Blackhole bh) { float min = 0.0f; for (int i = 0; i < COUNT_FLOAT; i++) { diff --git a/test/micro/org/openjdk/bench/vm/compiler/overhead/SimpleRepeatCompilation.java b/test/micro/org/openjdk/bench/vm/compiler/overhead/SimpleRepeatCompilation.java index 0605050ed2a..9538e13df2d 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/overhead/SimpleRepeatCompilation.java +++ b/test/micro/org/openjdk/bench/vm/compiler/overhead/SimpleRepeatCompilation.java @@ -52,25 +52,25 @@ public class SimpleRepeatCompilation { = "-XX:CompileCommand=option,org/openjdk/bench/vm/compiler/overhead/SimpleRepeatCompilation.mixHashCode,intx,RepeatCompilation,500"; @Benchmark - @Fork(jvmArgsAppend={"-Xbatch", MIXHASH_METHOD}) + @Fork(jvmArgs={"-Xbatch", MIXHASH_METHOD}) public int mixHashCode_repeat() { return loop_hashCode(); } @Benchmark - @Fork(jvmArgsAppend={"-Xbatch", "-XX:-TieredCompilation", MIXHASH_METHOD}) + @Fork(jvmArgs={"-Xbatch", "-XX:-TieredCompilation", MIXHASH_METHOD}) public int mixHashCode_repeat_c2() { return loop_hashCode(); } @Benchmark - @Fork(jvmArgsAppend={"-Xbatch", "-XX:TieredStopAtLevel=1", MIXHASH_METHOD}) + @Fork(jvmArgs={"-Xbatch", "-XX:TieredStopAtLevel=1", MIXHASH_METHOD}) public int mixHashCode_repeat_c1() { return loop_hashCode(); } @Benchmark - @Fork(jvmArgsAppend={"-Xbatch"}) + @Fork(jvmArgs={"-Xbatch"}) public int mixHashCode_baseline() { return loop_hashCode(); } @@ -95,25 +95,25 @@ public int mixHashCode(String value) { = "-XX:CompileCommand=option,org/openjdk/bench/vm/compiler/overhead/SimpleRepeatCompilation.trivialMath,intx,RepeatCompilation,2000"; @Benchmark - @Fork(jvmArgsAppend={"-Xbatch",TRIVIAL_MATH_METHOD}) + @Fork(jvmArgs={"-Xbatch",TRIVIAL_MATH_METHOD}) public int trivialMath_repeat() { return loop_trivialMath(); } @Benchmark - @Fork(jvmArgsAppend={"-Xbatch", "-XX:-TieredCompilation", TRIVIAL_MATH_METHOD}) + @Fork(jvmArgs={"-Xbatch", "-XX:-TieredCompilation", TRIVIAL_MATH_METHOD}) public int trivialMath_repeat_c2() { return loop_trivialMath(); } @Benchmark - @Fork(jvmArgsAppend={"-Xbatch", "-XX:TieredStopAtLevel=1", TRIVIAL_MATH_METHOD}) + @Fork(jvmArgs={"-Xbatch", "-XX:TieredStopAtLevel=1", TRIVIAL_MATH_METHOD}) public int trivialMath_repeat_c1() { return loop_trivialMath(); } @Benchmark - @Fork(jvmArgsAppend={"-Xbatch"}) + @Fork(jvmArgs={"-Xbatch"}) public int trivialMath_baseline() { return loop_trivialMath(); } @@ -135,25 +135,25 @@ public int trivialMath(int a, int b) { = "-XX:CompileCommand=option,org/openjdk/bench/vm/compiler/overhead/SimpleRepeatCompilation.largeMethod,intx,RepeatCompilation,100"; @Benchmark - @Fork(jvmArgsAppend={"-Xbatch",LARGE_METHOD}) + @Fork(jvmArgs={"-Xbatch",LARGE_METHOD}) public int largeMethod_repeat() { return loop_largeMethod(); } @Benchmark - @Fork(jvmArgsAppend={"-Xbatch", "-XX:-TieredCompilation", LARGE_METHOD}) + @Fork(jvmArgs={"-Xbatch", "-XX:-TieredCompilation", LARGE_METHOD}) public int largeMethod_repeat_c2() { return loop_largeMethod(); } @Benchmark - @Fork(jvmArgsAppend={"-Xbatch", "-XX:TieredStopAtLevel=1", LARGE_METHOD}) + @Fork(jvmArgs={"-Xbatch", "-XX:TieredStopAtLevel=1", LARGE_METHOD}) public int largeMethod_repeat_c1() { return loop_largeMethod(); } @Benchmark - @Fork(jvmArgsAppend={"-Xbatch"}) + @Fork(jvmArgs={"-Xbatch"}) public int largeMethod_baseline() { return loop_largeMethod(); } diff --git a/test/micro/org/openjdk/bench/vm/compiler/x86/BasicRules.java b/test/micro/org/openjdk/bench/vm/compiler/x86/BasicRules.java index 4b04e168f16..fa13fae42cc 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/x86/BasicRules.java +++ b/test/micro/org/openjdk/bench/vm/compiler/x86/BasicRules.java @@ -31,7 +31,7 @@ @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) @State(Scope.Thread) -@Fork(value = 3, jvmArgsAppend = "-XX:-UseSuperWord") +@Fork(value = 3, jvmArgs = "-XX:-UseSuperWord") @Warmup(time = 1, timeUnit = TimeUnit.SECONDS) @Measurement(time = 1, timeUnit = TimeUnit.SECONDS) public class BasicRules { diff --git a/test/micro/org/openjdk/bench/vm/compiler/x86/ConvertF2I.java b/test/micro/org/openjdk/bench/vm/compiler/x86/ConvertF2I.java index 406da5f65e5..dd807532e72 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/x86/ConvertF2I.java +++ b/test/micro/org/openjdk/bench/vm/compiler/x86/ConvertF2I.java @@ -31,7 +31,7 @@ @State(Scope.Thread) @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(value = 1, jvmArgsAppend = {"-XX:-UseSuperWord"}) +@Fork(value = 1, jvmArgs = {"-XX:-UseSuperWord"}) public class ConvertF2I { static final int LENGTH = 1000; int[] intArray = new int[LENGTH]; diff --git a/test/micro/org/openjdk/bench/vm/compiler/x86/LeaInstruction.java b/test/micro/org/openjdk/bench/vm/compiler/x86/LeaInstruction.java index f4cd27a5dd4..fb4be3ec454 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/x86/LeaInstruction.java +++ b/test/micro/org/openjdk/bench/vm/compiler/x86/LeaInstruction.java @@ -29,7 +29,7 @@ @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 2, jvmArgsAppend = {"-XX:LoopUnrollLimit=1"}) +@Fork(value = 2, jvmArgs = {"-XX:LoopUnrollLimit=1"}) @Warmup(iterations = 4, time = 2, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 4, time = 2, timeUnit = TimeUnit.SECONDS) @State(Scope.Thread) diff --git a/test/micro/org/openjdk/bench/vm/fences/SafePublishing.java b/test/micro/org/openjdk/bench/vm/fences/SafePublishing.java index e18564c4c3a..d5b1ae24872 100644 --- a/test/micro/org/openjdk/bench/vm/fences/SafePublishing.java +++ b/test/micro/org/openjdk/bench/vm/fences/SafePublishing.java @@ -30,7 +30,7 @@ @Warmup(iterations = 3, time = 1, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 3, time = 1, timeUnit = TimeUnit.SECONDS) -@Fork(value = 3, jvmArgsAppend = {"-XX:+UseParallelGC", "-Xmx128m"}) +@Fork(value = 3, jvmArgs = {"-XX:+UseParallelGC", "-Xmx128m"}) @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) @State(Scope.Thread) diff --git a/test/micro/org/openjdk/bench/vm/gc/MicroLargePages.java b/test/micro/org/openjdk/bench/vm/gc/MicroLargePages.java index 67702cfe607..66044f8249d 100644 --- a/test/micro/org/openjdk/bench/vm/gc/MicroLargePages.java +++ b/test/micro/org/openjdk/bench/vm/gc/MicroLargePages.java @@ -29,7 +29,7 @@ @OutputTimeUnit(TimeUnit.MINUTES) @State(Scope.Thread) -@Fork(jvmArgsAppend = {"-Xmx256m", "-XX:+UseLargePages", "-XX:LargePageSizeInBytes=1g", "-Xlog:pagesize"}, value = 5) +@Fork(jvmArgs = {"-Xmx256m", "-XX:+UseLargePages", "-XX:LargePageSizeInBytes=1g", "-Xlog:pagesize"}, value = 5) public class MicroLargePages { diff --git a/test/micro/org/openjdk/bench/vm/gc/RawAllocationRate.java b/test/micro/org/openjdk/bench/vm/gc/RawAllocationRate.java index 4faf3e19535..a0987ddd8d8 100644 --- a/test/micro/org/openjdk/bench/vm/gc/RawAllocationRate.java +++ b/test/micro/org/openjdk/bench/vm/gc/RawAllocationRate.java @@ -80,7 +80,7 @@ public Object[] arrayTest() { } @Benchmark - @Fork(jvmArgsAppend={"-XX:TieredStopAtLevel=1"}) + @Fork(jvmArgs={"-XX:TieredStopAtLevel=1"}) public Object[] arrayTest_C1() { return arrayTest(); } @@ -106,7 +106,7 @@ public Object[] instanceTest() { } @Benchmark - @Fork(jvmArgsAppend={"-XX:TieredStopAtLevel=1"}) + @Fork(jvmArgs={"-XX:TieredStopAtLevel=1"}) public Object[] instanceTest_C1() { return instanceTest(); } diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/AllDead.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/AllDead.java index 12e1ff25454..6e41ec0610e 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/AllDead.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/AllDead.java @@ -36,7 +36,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class AllDead { diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/AllLive.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/AllLive.java index ddd9f56cf60..2a2bf060833 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/AllLive.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/AllLive.java @@ -36,7 +36,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class AllLive { diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesArray.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesArray.java index a4dcfdaaeb5..4de7c4a8f84 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesArray.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesArray.java @@ -35,7 +35,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class DifferentObjectSizesArray { diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesHashMap.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesHashMap.java index 83914725161..960223f5035 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesHashMap.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesHashMap.java @@ -36,7 +36,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class DifferentObjectSizesHashMap { diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesTreeMap.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesTreeMap.java index 66aaffff693..d1fea505ac0 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesTreeMap.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesTreeMap.java @@ -36,7 +36,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class DifferentObjectSizesTreeMap { diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadFirstPart.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadFirstPart.java index 80cefbfe10f..339e31d7032 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadFirstPart.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadFirstPart.java @@ -36,7 +36,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class HalfDeadFirstPart { diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadInterleaved.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadInterleaved.java index bda9ccfa213..07eda82f2c9 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadInterleaved.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadInterleaved.java @@ -36,7 +36,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class HalfDeadInterleaved { diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadInterleavedChunks.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadInterleavedChunks.java index 06955381f5c..a5d6dce91a9 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadInterleavedChunks.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadInterleavedChunks.java @@ -36,7 +36,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class HalfDeadInterleavedChunks { diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadSecondPart.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadSecondPart.java index 89606f5a07a..838aeb4820b 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadSecondPart.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadSecondPart.java @@ -36,7 +36,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class HalfDeadSecondPart { diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfHashedHalfDead.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfHashedHalfDead.java index 6692e02a135..eaba46e04e9 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfHashedHalfDead.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfHashedHalfDead.java @@ -36,7 +36,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class HalfHashedHalfDead { diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/NoObjects.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/NoObjects.java index a2e35e55061..96461c8106c 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/NoObjects.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/NoObjects.java @@ -31,7 +31,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) public class NoObjects { diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/OneBigObject.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/OneBigObject.java index 5601abdcb70..ef2c436efd7 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/OneBigObject.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/OneBigObject.java @@ -35,7 +35,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class OneBigObject { diff --git a/test/micro/org/openjdk/bench/vm/lang/TypePollution.java b/test/micro/org/openjdk/bench/vm/lang/TypePollution.java index aa1a0207587..4994bcf9c2d 100644 --- a/test/micro/org/openjdk/bench/vm/lang/TypePollution.java +++ b/test/micro/org/openjdk/bench/vm/lang/TypePollution.java @@ -105,28 +105,28 @@ public void setup() { int probe = 99; @Benchmark - @Fork(jvmArgsAppend={"-XX:+UnlockDiagnosticVMOptions", "-XX:-UseSecondarySupersTable", "-XX:-UseSecondarySupersCache"}) + @Fork(jvmArgs={"-XX:+UnlockDiagnosticVMOptions", "-XX:-UseSecondarySupersTable", "-XX:-UseSecondarySupersCache"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) public long parallelInstanceOfInterfaceSwitchLinearNoSCC() { return parallelInstanceOfInterfaceSwitch(); } @Benchmark - @Fork(jvmArgsAppend={"-XX:+UnlockDiagnosticVMOptions", "-XX:-UseSecondarySupersTable", "-XX:+UseSecondarySupersCache"}) + @Fork(jvmArgs={"-XX:+UnlockDiagnosticVMOptions", "-XX:-UseSecondarySupersTable", "-XX:+UseSecondarySupersCache"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) public long parallelInstanceOfInterfaceSwitchLinearSCC() { return parallelInstanceOfInterfaceSwitch(); } @Benchmark - @Fork(jvmArgsAppend={"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseSecondarySupersTable", "-XX:-UseSecondarySupersCache"}) + @Fork(jvmArgs={"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseSecondarySupersTable", "-XX:-UseSecondarySupersCache"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) public long parallelInstanceOfInterfaceSwitchTableNoSCC() { return parallelInstanceOfInterfaceSwitch(); } @Benchmark - @Fork(jvmArgsAppend={"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseSecondarySupersTable", "-XX:+UseSecondarySupersCache"}) + @Fork(jvmArgs={"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseSecondarySupersTable", "-XX:+UseSecondarySupersCache"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) public long parallelInstanceOfInterfaceSwitchTableSCC() { return parallelInstanceOfInterfaceSwitch(); @@ -149,25 +149,25 @@ long parallelInstanceOfInterfaceSwitch() { } @Benchmark - @Fork(jvmArgsAppend={"-XX:+UnlockDiagnosticVMOptions", "-XX:-UseSecondarySupersTable", "-XX:-UseSecondarySupersCache"}) + @Fork(jvmArgs={"-XX:+UnlockDiagnosticVMOptions", "-XX:-UseSecondarySupersTable", "-XX:-UseSecondarySupersCache"}) public int instanceOfInterfaceSwitchLinearNoSCC() { return instanceOfInterfaceSwitch(); } @Benchmark - @Fork(jvmArgsAppend={"-XX:+UnlockDiagnosticVMOptions", "-XX:-UseSecondarySupersTable", "-XX:+UseSecondarySupersCache"}) + @Fork(jvmArgs={"-XX:+UnlockDiagnosticVMOptions", "-XX:-UseSecondarySupersTable", "-XX:+UseSecondarySupersCache"}) public int instanceOfInterfaceSwitchLinearSCC() { return instanceOfInterfaceSwitch(); } @Benchmark - @Fork(jvmArgsAppend={"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseSecondarySupersTable", "-XX:-UseSecondarySupersCache"}) + @Fork(jvmArgs={"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseSecondarySupersTable", "-XX:-UseSecondarySupersCache"}) public int instanceOfInterfaceSwitchTableNoSCC() { return instanceOfInterfaceSwitch(); } @Benchmark - @Fork(jvmArgsAppend={"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseSecondarySupersTable", "-XX:+UseSecondarySupersCache"}) + @Fork(jvmArgs={"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseSecondarySupersTable", "-XX:+UseSecondarySupersCache"}) public int instanceOfInterfaceSwitchTableSCC() { return instanceOfInterfaceSwitch(); } diff --git a/test/micro/org/openjdk/bench/vm/runtime/NMTBenchmark.java b/test/micro/org/openjdk/bench/vm/runtime/NMTBenchmark.java index 8d05d37792c..d88c66bd15f 100644 --- a/test/micro/org/openjdk/bench/vm/runtime/NMTBenchmark.java +++ b/test/micro/org/openjdk/bench/vm/runtime/NMTBenchmark.java @@ -243,12 +243,12 @@ public void mixAllocateReallocateMemory() throws InterruptedException { public static final String ADD_EXPORTS = "--add-exports"; public static final String MISC_PACKAGE = "java.base/jdk.internal.misc=ALL-UNNAMED"; // used for Unsafe API - @Fork(value = 2, jvmArgsPrepend = { "-XX:NativeMemoryTracking=off", ADD_EXPORTS, MISC_PACKAGE}) + @Fork(value = 2, jvmArgs = { "-XX:NativeMemoryTracking=off", ADD_EXPORTS, MISC_PACKAGE}) public static class NMTOff extends NMTBenchmark { } - @Fork(value = 2, jvmArgsPrepend = { "-XX:NativeMemoryTracking=summary", ADD_EXPORTS, MISC_PACKAGE}) + @Fork(value = 2, jvmArgs = { "-XX:NativeMemoryTracking=summary", ADD_EXPORTS, MISC_PACKAGE}) public static class NMTSummary extends NMTBenchmark { } - @Fork(value = 2, jvmArgsPrepend = { "-XX:NativeMemoryTracking=detail", ADD_EXPORTS, MISC_PACKAGE}) + @Fork(value = 2, jvmArgs = { "-XX:NativeMemoryTracking=detail", ADD_EXPORTS, MISC_PACKAGE}) public static class NMTDetail extends NMTBenchmark { } } diff --git a/test/micro/org/openjdk/bench/vm/runtime/NMTBenchmark_wb.java b/test/micro/org/openjdk/bench/vm/runtime/NMTBenchmark_wb.java index 12e7a1140c8..059fff9f2ee 100644 --- a/test/micro/org/openjdk/bench/vm/runtime/NMTBenchmark_wb.java +++ b/test/micro/org/openjdk/bench/vm/runtime/NMTBenchmark_wb.java @@ -137,13 +137,13 @@ public void virtualMemoryTests() { public static final String WB_JAR_APPEND = "-Xbootclasspath/a:lib-test/wb.jar"; - @Fork(value = 2, jvmArgsPrepend = { WB_JAR_APPEND, WB_UNLOCK_OPTION, WB_API, ADD_EXPORTS, MISC_PACKAGE, "-XX:NativeMemoryTracking=off"}) + @Fork(value = 2, jvmArgs = { WB_JAR_APPEND, WB_UNLOCK_OPTION, WB_API, ADD_EXPORTS, MISC_PACKAGE, "-XX:NativeMemoryTracking=off"}) public static class NMTOff extends NMTBenchmark_wb { } - @Fork(value = 2, jvmArgsPrepend = { WB_JAR_APPEND, WB_UNLOCK_OPTION, WB_API, ADD_EXPORTS, MISC_PACKAGE, "-XX:NativeMemoryTracking=summary"}) + @Fork(value = 2, jvmArgs = { WB_JAR_APPEND, WB_UNLOCK_OPTION, WB_API, ADD_EXPORTS, MISC_PACKAGE, "-XX:NativeMemoryTracking=summary"}) public static class NMTSummary extends NMTBenchmark_wb { } - // @Fork(value = 2, jvmArgsPrepend = { WB_JAR_APPEND, WB_UNLOCK_OPTION, WB_API, ADD_EXPORTS, MISC_PACKAGE, "-XX:NativeMemoryTracking=detail"}) + // @Fork(value = 2, jvmArgs = { WB_JAR_APPEND, WB_UNLOCK_OPTION, WB_API, ADD_EXPORTS, MISC_PACKAGE, "-XX:NativeMemoryTracking=detail"}) // public static class NMTDetail extends NMTBenchmark_wb { } } \ No newline at end of file From 5a9ba8dfac5c69133eb2269ffdf6e9625553c2c8 Mon Sep 17 00:00:00 2001 From: SendaoYan Date: Tue, 29 Oct 2024 06:05:56 +0000 Subject: [PATCH 017/159] 8343178: Test BasicTest.java javac compile fails cannot find symbol Reviewed-by: jpai, asemenyuk --- .../tools/jpackage/share/jdk/jpackage/tests/BasicTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java b/test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java index 6b785415e63..72550fd365b 100644 --- a/test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java +++ b/test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -317,7 +317,7 @@ public void testTemp(TestTempType type) throws IOException { pkgTest.addBundleVerifier(cmd -> { // Check jpackage used the supplied directory. Path tempDir = getTempDirectory(cmd, tempRoot); - TKit.assertPathNotEmptyDirectory(tempDir); + TKit.assertDirectoryNotEmpty(tempDir); }); } From 798a273ded8cae76781d45fcf5195e1431fc81f2 Mon Sep 17 00:00:00 2001 From: Aleksey Shipilev Date: Tue, 29 Oct 2024 06:43:56 +0000 Subject: [PATCH 018/159] 8342988: GHA: Build JTReg in single step Reviewed-by: ihse --- .github/actions/build-jtreg/action.yml | 68 ++++++++++++++++++++++++ .github/actions/get-jtreg/action.yml | 34 ++---------- .github/workflows/main.yml | 71 +++++++++++++++----------- 3 files changed, 114 insertions(+), 59 deletions(-) create mode 100644 .github/actions/build-jtreg/action.yml diff --git a/.github/actions/build-jtreg/action.yml b/.github/actions/build-jtreg/action.yml new file mode 100644 index 00000000000..3abfa260c17 --- /dev/null +++ b/.github/actions/build-jtreg/action.yml @@ -0,0 +1,68 @@ +# +# Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +name: 'Build JTReg' +description: 'Build JTReg' + +runs: + using: composite + steps: + - name: 'Get JTReg version configuration' + id: version + uses: ./.github/actions/config + with: + var: JTREG_VERSION + + - name: 'Check cache for already built JTReg' + id: get-cached + uses: actions/cache@v4 + with: + path: jtreg/installed + key: jtreg-${{ steps.version.outputs.value }} + + - name: 'Checkout the JTReg source' + uses: actions/checkout@v4 + with: + repository: openjdk/jtreg + ref: jtreg-${{ steps.version.outputs.value }} + path: jtreg/src + if: (steps.get-cached.outputs.cache-hit != 'true') + + - name: 'Build JTReg' + run: | + # Build JTReg and move files to the proper locations + bash make/build.sh --jdk "$JAVA_HOME_17_X64" + mkdir ../installed + mv build/images/jtreg/* ../installed + working-directory: jtreg/src + shell: bash + if: (steps.get-cached.outputs.cache-hit != 'true') + + - name: 'Upload JTReg artifact' + uses: actions/upload-artifact@v4 + with: + name: bundles-jtreg-${{ steps.version.outputs.value }} + path: jtreg/installed + retention-days: 1 diff --git a/.github/actions/get-jtreg/action.yml b/.github/actions/get-jtreg/action.yml index faedcc18807..78a3a4c9edd 100644 --- a/.github/actions/get-jtreg/action.yml +++ b/.github/actions/get-jtreg/action.yml @@ -24,7 +24,7 @@ # name: 'Get JTReg' -description: 'Download JTReg from cache or source location' +description: 'Get JTReg' outputs: path: description: 'Path to the installed JTReg' @@ -39,36 +39,12 @@ runs: with: var: JTREG_VERSION - - name: 'Check cache for JTReg' - id: get-cached-jtreg - uses: actions/cache@v4 + - name: 'Download JTReg artifact' + id: download-jtreg + uses: actions/download-artifact@v4 with: + name: bundles-jtreg-${{ steps.version.outputs.value }} path: jtreg/installed - key: jtreg-${{ steps.version.outputs.value }} - - - name: 'Checkout the JTReg source' - uses: actions/checkout@v4 - with: - repository: openjdk/jtreg - ref: jtreg-${{ steps.version.outputs.value }} - path: jtreg/src - if: steps.get-cached-jtreg.outputs.cache-hit != 'true' - - - name: 'Build JTReg' - run: | - # If runner architecture is x64 set JAVA_HOME_17_X64 otherwise set to JAVA_HOME_17_arm64 - if [[ '${{ runner.arch }}' == 'X64' ]]; then - JDK="$JAVA_HOME_17_X64" - else - JDK="$JAVA_HOME_17_arm64" - fi - # Build JTReg and move files to the proper locations - bash make/build.sh --jdk "$JDK" - mkdir ../installed - mv build/images/jtreg/* ../installed - working-directory: jtreg/src - shell: bash - if: steps.get-cached-jtreg.outputs.cache-hit != 'true' - name: 'Export path to where JTReg is installed' id: path-name diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d5958853701..e3451e5d89a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -54,8 +54,8 @@ jobs: ### Determine platforms to include ### - select: - name: 'Select platforms' + prepare: + name: 'Prepare the run' runs-on: ubuntu-22.04 env: # List of platforms to exclude by default @@ -73,7 +73,19 @@ jobs: docs: ${{ steps.include.outputs.docs }} steps: - # This function must be inlined in main.yml, or we'd be forced to checkout the repo + - name: 'Checkout the scripts' + uses: actions/checkout@v4 + with: + sparse-checkout: | + .github + make/conf/github-actions.conf + + - name: 'Build JTReg' + id: jtreg + uses: ./.github/actions/build-jtreg + + # TODO: Now that we are checking out the repo scripts, we can put the following code + # into a separate file - name: 'Check what jobs to run' id: include run: | @@ -149,18 +161,18 @@ jobs: build-linux-x64: name: linux-x64 - needs: select + needs: prepare uses: ./.github/workflows/build-linux.yml with: platform: linux-x64 gcc-major-version: '10' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.linux-x64 == 'true' + if: needs.prepare.outputs.linux-x64 == 'true' build-linux-x86-hs: name: linux-x86-hs - needs: select + needs: prepare uses: ./.github/workflows/build-linux.yml with: platform: linux-x86 @@ -174,11 +186,11 @@ jobs: extra-conf-options: '--with-target-bits=32 --enable-fallback-linker --enable-libffi-bundling' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.linux-x86-hs == 'true' + if: needs.prepare.outputs.linux-x86-hs == 'true' build-linux-x64-hs-nopch: name: linux-x64-hs-nopch - needs: select + needs: prepare uses: ./.github/workflows/build-linux.yml with: platform: linux-x64 @@ -188,11 +200,11 @@ jobs: extra-conf-options: '--disable-precompiled-headers' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.linux-x64-variants == 'true' + if: needs.prepare.outputs.linux-x64-variants == 'true' build-linux-x64-hs-zero: name: linux-x64-hs-zero - needs: select + needs: prepare uses: ./.github/workflows/build-linux.yml with: platform: linux-x64 @@ -202,11 +214,11 @@ jobs: extra-conf-options: '--with-jvm-variants=zero --disable-precompiled-headers' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.linux-x64-variants == 'true' + if: needs.prepare.outputs.linux-x64-variants == 'true' build-linux-x64-hs-minimal: name: linux-x64-hs-minimal - needs: select + needs: prepare uses: ./.github/workflows/build-linux.yml with: platform: linux-x64 @@ -216,11 +228,11 @@ jobs: extra-conf-options: '--with-jvm-variants=minimal --disable-precompiled-headers' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.linux-x64-variants == 'true' + if: needs.prepare.outputs.linux-x64-variants == 'true' build-linux-x64-hs-optimized: name: linux-x64-hs-optimized - needs: select + needs: prepare uses: ./.github/workflows/build-linux.yml with: platform: linux-x64 @@ -231,32 +243,31 @@ jobs: extra-conf-options: '--with-debug-level=optimized --disable-precompiled-headers' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.linux-x64-variants == 'true' + if: needs.prepare.outputs.linux-x64-variants == 'true' build-linux-cross-compile: name: linux-cross-compile - needs: - - select + needs: prepare uses: ./.github/workflows/build-cross-compile.yml with: gcc-major-version: '10' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.linux-cross-compile == 'true' + if: needs.prepare.outputs.linux-cross-compile == 'true' build-alpine-linux-x64: name: alpine-linux-x64 - needs: select + needs: prepare uses: ./.github/workflows/build-alpine-linux.yml with: platform: alpine-linux-x64 configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.alpine-linux-x64 == 'true' + if: needs.prepare.outputs.alpine-linux-x64 == 'true' build-macos-x64: name: macos-x64 - needs: select + needs: prepare uses: ./.github/workflows/build-macos.yml with: platform: macos-x64 @@ -264,11 +275,11 @@ jobs: xcode-toolset-version: '14.3.1' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.macos-x64 == 'true' + if: needs.prepare.outputs.macos-x64 == 'true' build-macos-aarch64: name: macos-aarch64 - needs: select + needs: prepare uses: ./.github/workflows/build-macos.yml with: platform: macos-aarch64 @@ -276,11 +287,11 @@ jobs: xcode-toolset-version: '14.3.1' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.macos-aarch64 == 'true' + if: needs.prepare.outputs.macos-aarch64 == 'true' build-windows-x64: name: windows-x64 - needs: select + needs: prepare uses: ./.github/workflows/build-windows.yml with: platform: windows-x64 @@ -288,11 +299,11 @@ jobs: msvc-toolset-architecture: 'x86.x64' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.windows-x64 == 'true' + if: needs.prepare.outputs.windows-x64 == 'true' build-windows-aarch64: name: windows-aarch64 - needs: select + needs: prepare uses: ./.github/workflows/build-windows.yml with: platform: windows-aarch64 @@ -302,11 +313,11 @@ jobs: extra-conf-options: '--openjdk-target=aarch64-unknown-cygwin' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.windows-aarch64 == 'true' + if: needs.prepare.outputs.windows-aarch64 == 'true' build-docs: name: docs - needs: select + needs: prepare uses: ./.github/workflows/build-linux.yml with: platform: linux-x64 @@ -318,7 +329,7 @@ jobs: gcc-major-version: '10' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.docs == 'true' + if: needs.prepare.outputs.docs == 'true' ### ### Test jobs From e5fabcd92f53f969f809709d786b24d7247dda23 Mon Sep 17 00:00:00 2001 From: Christian Hagedorn Date: Tue, 29 Oct 2024 08:07:22 +0000 Subject: [PATCH 019/159] 8343137: C2: VerifyLoopOptimizations fails with "Was reachable in only one" Reviewed-by: thartmann, kvn --- ...tAssertionPredicateDoesntConstantFold.java | 0 .../TestMissingSetCtrlForTrueConstant.java | 58 +++++++++++++++++++ ...tTemplateAssertionPredicateNotRemoved.java | 10 ++-- ...TemplateAssertionPredicateWithTwoUCTs.java | 6 +- 4 files changed, 66 insertions(+), 8 deletions(-) rename test/hotspot/jtreg/compiler/predicates/{ => assertion}/TestAssertionPredicateDoesntConstantFold.java (100%) create mode 100644 test/hotspot/jtreg/compiler/predicates/assertion/TestMissingSetCtrlForTrueConstant.java rename test/hotspot/jtreg/compiler/predicates/{ => assertion}/TestTemplateAssertionPredicateNotRemoved.java (88%) rename test/hotspot/jtreg/compiler/predicates/{ => assertion}/TestTemplateAssertionPredicateWithTwoUCTs.java (90%) diff --git a/test/hotspot/jtreg/compiler/predicates/TestAssertionPredicateDoesntConstantFold.java b/test/hotspot/jtreg/compiler/predicates/assertion/TestAssertionPredicateDoesntConstantFold.java similarity index 100% rename from test/hotspot/jtreg/compiler/predicates/TestAssertionPredicateDoesntConstantFold.java rename to test/hotspot/jtreg/compiler/predicates/assertion/TestAssertionPredicateDoesntConstantFold.java diff --git a/test/hotspot/jtreg/compiler/predicates/assertion/TestMissingSetCtrlForTrueConstant.java b/test/hotspot/jtreg/compiler/predicates/assertion/TestMissingSetCtrlForTrueConstant.java new file mode 100644 index 00000000000..565069ac75c --- /dev/null +++ b/test/hotspot/jtreg/compiler/predicates/assertion/TestMissingSetCtrlForTrueConstant.java @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +/* + * @test + * @bug 8343137 + * @requires vm.debug == true & vm.compiler2.enabled + * @summary Test that set_ctrl() is properly set for true constant when folding useless Template Assertion Predicate. + * @run main/othervm -Xcomp -XX:+VerifyLoopOptimizations + * -XX:CompileCommand=compileonly,compiler.predicates.assertion.TestMissingSetCtrlForTrueConstant::test + * compiler.predicates.assertion.TestMissingSetCtrlForTrueConstant + */ + +package compiler.predicates.assertion; + +public class TestMissingSetCtrlForTrueConstant { + static long iFld; + static int[] iArrFld = new int[100]; + static double[] dArrFld = new double[100]; + + public static void main(String[] strArr) { + test(); + } + + static void test() { + long l = 34; + for (int i = 78; i > 8; --i) { + switch (i) { + case 24: + l += iFld - 34; + case 25: + iFld = iArrFld[i] += i; + } + dArrFld[i + 1] += i; + } + } +} diff --git a/test/hotspot/jtreg/compiler/predicates/TestTemplateAssertionPredicateNotRemoved.java b/test/hotspot/jtreg/compiler/predicates/assertion/TestTemplateAssertionPredicateNotRemoved.java similarity index 88% rename from test/hotspot/jtreg/compiler/predicates/TestTemplateAssertionPredicateNotRemoved.java rename to test/hotspot/jtreg/compiler/predicates/assertion/TestTemplateAssertionPredicateNotRemoved.java index 557d9d461bf..6d8588213b5 100644 --- a/test/hotspot/jtreg/compiler/predicates/TestTemplateAssertionPredicateNotRemoved.java +++ b/test/hotspot/jtreg/compiler/predicates/assertion/TestTemplateAssertionPredicateNotRemoved.java @@ -29,14 +29,14 @@ * completely with JDK-8288981 and 8314116 just mitigates the problem. * @requires vm.compiler2.enabled * @run main/othervm -Xbatch -XX:-TieredCompilation - * -XX:CompileCommand=compileonly,compiler.predicates.TestTemplateAssertionPredicateNotRemoved::* - * compiler.predicates.TestTemplateAssertionPredicateNotRemoved + * -XX:CompileCommand=compileonly,compiler.predicates.assertion.TestTemplateAssertionPredicateNotRemoved::* + * compiler.predicates.assertion.TestTemplateAssertionPredicateNotRemoved * @run main/othervm -Xbatch -XX:-TieredCompilation -XX:LoopMaxUnroll=0 - * -XX:CompileCommand=compileonly,compiler.predicates.TestTemplateAssertionPredicateNotRemoved::* - * compiler.predicates.TestTemplateAssertionPredicateNotRemoved + * -XX:CompileCommand=compileonly,compiler.predicates.assertion.TestTemplateAssertionPredicateNotRemoved::* + * compiler.predicates.assertion.TestTemplateAssertionPredicateNotRemoved */ -package compiler.predicates; +package compiler.predicates.assertion; public class TestTemplateAssertionPredicateNotRemoved { static int[] iArrFld = new int[10]; diff --git a/test/hotspot/jtreg/compiler/predicates/TestTemplateAssertionPredicateWithTwoUCTs.java b/test/hotspot/jtreg/compiler/predicates/assertion/TestTemplateAssertionPredicateWithTwoUCTs.java similarity index 90% rename from test/hotspot/jtreg/compiler/predicates/TestTemplateAssertionPredicateWithTwoUCTs.java rename to test/hotspot/jtreg/compiler/predicates/assertion/TestTemplateAssertionPredicateWithTwoUCTs.java index aadaf75869f..7d21f6b5f2d 100644 --- a/test/hotspot/jtreg/compiler/predicates/TestTemplateAssertionPredicateWithTwoUCTs.java +++ b/test/hotspot/jtreg/compiler/predicates/assertion/TestTemplateAssertionPredicateWithTwoUCTs.java @@ -27,11 +27,11 @@ * @bug 8342287 * @summary Test that a fail path projection of a Template Assertion Predicate is not treated as success path projection. * @run main/othervm -XX:-TieredCompilation -Xbatch - * -XX:CompileCommand=compileonly,compiler.predicates.TestTemplateAssertionPredicateWithTwoUCTs::test - * compiler.predicates.TestTemplateAssertionPredicateWithTwoUCTs + * -XX:CompileCommand=compileonly,compiler.predicates.assertion.TestTemplateAssertionPredicateWithTwoUCTs::test + * compiler.predicates.assertion.TestTemplateAssertionPredicateWithTwoUCTs */ -package compiler.predicates; +package compiler.predicates.assertion; public class TestTemplateAssertionPredicateWithTwoUCTs { static int iFld; From 3f0a6a6546e9f366a98fd6590d9d13c1db411d6d Mon Sep 17 00:00:00 2001 From: Amit Kumar Date: Tue, 29 Oct 2024 10:48:47 +0000 Subject: [PATCH 020/159] 8343183: [s390x]: Problemlist runtime/Monitor/SyncOnValueBasedClassTest.java Failure Reviewed-by: dholmes --- test/hotspot/jtreg/ProblemList.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/test/hotspot/jtreg/ProblemList.txt b/test/hotspot/jtreg/ProblemList.txt index 3ff450dc3ad..43ec66bade5 100644 --- a/test/hotspot/jtreg/ProblemList.txt +++ b/test/hotspot/jtreg/ProblemList.txt @@ -105,6 +105,7 @@ gc/stress/gclocker/TestExcessGCLockerCollections.java 8229120 generic-all runtime/jni/terminatedThread/TestTerminatedThread.java 8317789 aix-ppc64 runtime/handshake/HandshakeSuspendExitTest.java 8294313 generic-all +runtime/Monitor/SyncOnValueBasedClassTest.java 8340995 linux-s390x runtime/os/TestTracePageSizes.java#no-options 8267460 linux-aarch64 runtime/os/TestTracePageSizes.java#explicit-large-page-size 8267460 linux-aarch64 runtime/os/TestTracePageSizes.java#compiler-options 8267460 linux-aarch64 From 32dadd332b9b9dcb0aa81d68b65fe6a44a332e8e Mon Sep 17 00:00:00 2001 From: Erik Gahlin Date: Tue, 29 Oct 2024 14:23:07 +0000 Subject: [PATCH 021/159] 8343026: JFR: Index into fields in the topFrame Reviewed-by: mgronlun --- .../share/classes/jdk/jfr/internal/Type.java | 10 +- .../jdk/jfr/internal/query/FieldBuilder.java | 157 +++++++++--------- .../classes/jdk/jfr/internal/query/view.ini | 4 +- .../classes/jdk/jfr/internal/util/Utils.java | 10 ++ 4 files changed, 94 insertions(+), 87 deletions(-) diff --git a/src/jdk.jfr/share/classes/jdk/jfr/internal/Type.java b/src/jdk.jfr/share/classes/jdk/jfr/internal/Type.java index 0306541b4f7..7ede3de9d15 100644 --- a/src/jdk.jfr/share/classes/jdk/jfr/internal/Type.java +++ b/src/jdk.jfr/share/classes/jdk/jfr/internal/Type.java @@ -38,6 +38,7 @@ import jdk.jfr.Event; import jdk.jfr.SettingControl; import jdk.jfr.ValueDescriptor; +import jdk.jfr.internal.util.Utils; /** * Internal data structure that describes a type, @@ -185,14 +186,9 @@ public ValueDescriptor getField(String name) { Type type = PrivateAccess.getInstance().getType(subField); return type.getField(post); } - } else { - for (ValueDescriptor v : getFields()) { - if (name.equals(v.getName())) { - return v; - } - } + return null; } - return null; + return Utils.findField(getFields(), name); } public List getFields() { diff --git a/src/jdk.jfr/share/classes/jdk/jfr/internal/query/FieldBuilder.java b/src/jdk.jfr/share/classes/jdk/jfr/internal/query/FieldBuilder.java index d91fa62b368..c6916bc52ef 100644 --- a/src/jdk.jfr/share/classes/jdk/jfr/internal/query/FieldBuilder.java +++ b/src/jdk.jfr/share/classes/jdk/jfr/internal/query/FieldBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -49,6 +49,9 @@ import jdk.jfr.consumer.RecordedEvent; import jdk.jfr.consumer.RecordedFrame; import jdk.jfr.consumer.RecordedStackTrace; +import jdk.jfr.internal.PrivateAccess; +import jdk.jfr.internal.Type; +import jdk.jfr.internal.util.Utils; /** * This is a helper class to QueryResolver. It handles the creation of fields @@ -60,9 +63,9 @@ final class FieldBuilder { private static final Set KNOWN_TYPES = createKnownTypes(); private final List eventTypes; - private final ValueDescriptor descriptor; private final Field field; private final String fieldName; + private ValueDescriptor descriptor; public FieldBuilder(List eventTypes, FilteredType type, String fieldName) { this.eventTypes = eventTypes; @@ -77,12 +80,15 @@ public List build() { return List.of(field); } + configureAliases(); if (descriptor != null) { field.fixedWidth = !descriptor.getTypeName().equals("java.lang.String"); field.dataType = descriptor.getTypeName(); field.label = makeLabel(descriptor, hasDuration()); field.alignLeft = true; - field.valueGetter = valueGetter(field.name); + if (field.valueGetter == null) { + field.valueGetter = valueGetter(field.name); + } configureNumericTypes(); configureTime(); @@ -113,22 +119,6 @@ private boolean hasDuration() { } private boolean configureSyntheticFields() { - if (fieldName.equals("stackTrace.topApplicationFrame")) { - configureTopApplicationFrameField(); - return true; - } - if (fieldName.equals("stackTrace.notInit")) { - configureNotInitFrameField(); - return true; - } - if (fieldName.equals("stackTrace.topFrame.class")) { - configureTopFrameClassField(); - return true; - } - if (fieldName.equals("stackTrace.topFrame")) { - configureTopFrameField(); - return true; - } if (fieldName.equals("id") && field.type.getName().equals("jdk.ActiveSetting")) { configureEventTypeIdField(); return true; @@ -144,6 +134,73 @@ private boolean configureSyntheticFields() { return false; } + private void configureAliases() { + configureFrame("topFrame", FieldBuilder::topFrame); + configureFrame("topApplicationFrame", FieldBuilder::topApplicationFrame); + configureFrame("topNotInitFrame", FieldBuilder::topNotInitFrame); + } + + private void configureFrame(String frameName, Function getter) { + String name = "stackTrace." + frameName; + if (!fieldName.startsWith(name)) { + return; + } + ValueDescriptor stackTrace = Utils.findField(field.type.getFields(), "stackTrace"); + if (stackTrace == null) { + return; + } + ValueDescriptor frames = Utils.findField(stackTrace.getFields(), "frames"); + if (frames == null) { + return; + } + int length = name.length(); + if (fieldName.length() == length) { + descriptor = frames; // Use array descriptor for now + field.valueGetter = getter; + return; + } + String subName = fieldName.substring(length + 1); + Type type = PrivateAccess.getInstance().getType(frames); + ValueDescriptor subField = type.getField(subName); + if (subField != null) { + descriptor = subField; + field.valueGetter = e -> { + if (getter.apply(e) instanceof RecordedFrame frame) { + return frame.getValue(subName); + } + return null; + }; + } + } + + private static RecordedFrame topFrame(RecordedEvent event) { + return findJavaFrame(event, x -> true); + } + + private static RecordedFrame topApplicationFrame(RecordedEvent event) { + return findJavaFrame(event, frame -> { + RecordedClass cl = frame.getMethod().getType(); + RecordedClassLoader classLoader = cl.getClassLoader(); + return classLoader != null && !"bootstrap".equals(classLoader.getName()); + }); + } + + private static Object topNotInitFrame(RecordedEvent event) { + return findJavaFrame(event, frame -> !frame.getMethod().getName().equals("")); + } + + private static RecordedFrame findJavaFrame(RecordedEvent event, Predicate condition) { + RecordedStackTrace st = event.getStackTrace(); + if (st != null) { + for (RecordedFrame frame : st.getFrames()) { + if (frame.isJavaFrame() && condition.test(frame)) { + return frame; + } + } + } + return null; + } + private void configureEventTypeIdField() { Map eventTypes = createEventTypeLookup(); field.alignLeft = true; @@ -166,65 +223,6 @@ private Map createEventTypeLookup() { return map; } - private void configureTopFrameField() { - field.alignLeft = true; - field.label = "Method"; - field.dataType = "jdk.types.Method"; - field.valueGetter = e -> { - RecordedStackTrace t = e.getStackTrace(); - return t != null ? t.getFrames().getFirst() : null; - }; - field.lexicalSort = true; - } - - private void configureTopFrameClassField() { - field.alignLeft = true; - field.label = "Class"; - field.dataType = "java.lang.Class"; - field.valueGetter = e -> { - RecordedStackTrace t = e.getStackTrace(); - if (t == null) { - return null; - } - return t.getFrames().getFirst().getMethod().getType(); - }; - field.lexicalSort = true; - } - - private void configureCustomFrame(Predicate condition) { - field.alignLeft = true; - field.dataType = "jdk.types.Frame"; - field.label = "Method"; - field.lexicalSort = true; - field.valueGetter = e -> { - RecordedStackTrace t = e.getStackTrace(); - if (t != null) { - for (RecordedFrame f : t.getFrames()) { - if (f.isJavaFrame()) { - if (condition.test(f)) { - return f; - } - } - } - } - return null; - }; - } - - private void configureNotInitFrameField() { - configureCustomFrame(frame -> { - return !frame.getMethod().getName().equals(""); - }); - } - - private void configureTopApplicationFrameField() { - configureCustomFrame(frame -> { - RecordedClass cl = frame.getMethod().getType(); - RecordedClassLoader classLoader = cl.getClassLoader(); - return classLoader != null && !"bootstrap".equals(classLoader.getName()); - }); - } - private void configureEventType(Function retriever) { field.alignLeft = true; field.dataType = String.class.getName(); @@ -234,6 +232,9 @@ private void configureEventType(Function retriever) { } private static String makeLabel(ValueDescriptor v, boolean hasDuration) { + if (v.getTypeName().equals("jdk.types.StackFrame")) { + return "Method"; + } String label = v.getLabel(); if (label == null) { return v.getName(); diff --git a/src/jdk.jfr/share/classes/jdk/jfr/internal/query/view.ini b/src/jdk.jfr/share/classes/jdk/jfr/internal/query/view.ini index 8db19fdc239..b21b99e2dad 100644 --- a/src/jdk.jfr/share/classes/jdk/jfr/internal/query/view.ini +++ b/src/jdk.jfr/share/classes/jdk/jfr/internal/query/view.ini @@ -186,7 +186,7 @@ table = "COLUMN 'Monitor Address', 'Class', 'Threads', 'Max Duration' label = "Deprecated Methods for Removal" table = "COLUMN 'Deprecated Method', 'Called from Class' FORMAT truncate-beginning, cell-height:10000;truncate-beginning - SELECT method AS m, SET(stackTrace.topFrame.class) + SELECT method AS m, SET(stackTrace.topFrame.method.type) FROM DeprecatedInvocation WHERE forRemoval = 'true' GROUP BY m @@ -266,7 +266,7 @@ table = "COLUMN 'Message', 'Count' [application.exception-by-site] label ="Exceptions by Site" table = "COLUMN 'Method', 'Count' - SELECT stackTrace.notInit AS S, COUNT(startTime) AS C + SELECT stackTrace.topNotInitFrame AS S, COUNT(startTime) AS C FROM JavaErrorThrow, JavaExceptionThrow GROUP BY S ORDER BY C DESC" [application.file-reads-by-path] diff --git a/src/jdk.jfr/share/classes/jdk/jfr/internal/util/Utils.java b/src/jdk.jfr/share/classes/jdk/jfr/internal/util/Utils.java index b5ae906c71c..c15e87709c5 100644 --- a/src/jdk.jfr/share/classes/jdk/jfr/internal/util/Utils.java +++ b/src/jdk.jfr/share/classes/jdk/jfr/internal/util/Utils.java @@ -48,6 +48,7 @@ import jdk.jfr.Event; import jdk.jfr.EventType; import jdk.jfr.RecordingState; +import jdk.jfr.ValueDescriptor; import jdk.jfr.internal.LogLevel; import jdk.jfr.internal.LogTag; import jdk.jfr.internal.Logger; @@ -438,4 +439,13 @@ public static long multiplyOverflow(long a, long b, long defaultValue) { return defaultValue; } } + + public static ValueDescriptor findField(List fields, String name) { + for (ValueDescriptor v : fields) { + if (v.getName().equals(name)) { + return v; + } + } + return null; + } } From 5a8709e245bc2f7777338eaa55cb7f9ba5e47cc2 Mon Sep 17 00:00:00 2001 From: Aleksey Shipilev Date: Tue, 29 Oct 2024 14:57:14 +0000 Subject: [PATCH 022/159] 8343190: GHA: Try building JTReg several times Reviewed-by: erikj, ihse --- .github/actions/build-jtreg/action.yml | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/.github/actions/build-jtreg/action.yml b/.github/actions/build-jtreg/action.yml index 3abfa260c17..3e5ced8a7f8 100644 --- a/.github/actions/build-jtreg/action.yml +++ b/.github/actions/build-jtreg/action.yml @@ -52,8 +52,24 @@ runs: - name: 'Build JTReg' run: | - # Build JTReg and move files to the proper locations - bash make/build.sh --jdk "$JAVA_HOME_17_X64" + # Try building JTReg several times, backing off exponentially on failure. + # ~500 seconds in total should be enough to capture most of the transient + # failures. + for I in `seq 0 8`; do + rm -rf build/images/jtreg + bash make/build.sh --jdk "$JAVA_HOME_17_X64" && break + S=$(( 2 ** $I )) + echo "Failure. Waiting $S seconds before retrying" + sleep $S + done + + # Check if build was successful + if [ ! -d build/images/jtreg ]; then + echo "Build failed" + exit 1; + fi + + # Move files to the proper locations mkdir ../installed mv build/images/jtreg/* ../installed working-directory: jtreg/src From ed748439a25fd4d5e2cdc81769d6843e6ff3ab5c Mon Sep 17 00:00:00 2001 From: Ferenc Rakoczi Date: Tue, 29 Oct 2024 15:18:24 +0000 Subject: [PATCH 023/159] 8341527: AVX-512 intrinsic for SHA3 Reviewed-by: sviswanathan --- src/java.base/share/classes/sun/security/provider/SHA3.java | 2 ++ .../testlibrary/sha/predicate/IntrinsicPredicates.java | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/java.base/share/classes/sun/security/provider/SHA3.java b/src/java.base/share/classes/sun/security/provider/SHA3.java index 75430c63916..5f974bc6ea6 100644 --- a/src/java.base/share/classes/sun/security/provider/SHA3.java +++ b/src/java.base/share/classes/sun/security/provider/SHA3.java @@ -32,6 +32,7 @@ import java.util.Arrays; import java.util.Objects; +import jdk.internal.util.Preconditions; import jdk.internal.vm.annotation.IntrinsicCandidate; import static java.lang.Math.min; @@ -99,6 +100,7 @@ private SHA3(String name, int digestLength, byte suffix, int c) { private void implCompressCheck(byte[] b, int ofs) { Objects.requireNonNull(b); + Preconditions.checkIndex(ofs + blockSize - 1, b.length, Preconditions.AIOOBE_FORMATTER); } /** diff --git a/test/hotspot/jtreg/compiler/testlibrary/sha/predicate/IntrinsicPredicates.java b/test/hotspot/jtreg/compiler/testlibrary/sha/predicate/IntrinsicPredicates.java index 27fe9989247..19257f81614 100644 --- a/test/hotspot/jtreg/compiler/testlibrary/sha/predicate/IntrinsicPredicates.java +++ b/test/hotspot/jtreg/compiler/testlibrary/sha/predicate/IntrinsicPredicates.java @@ -104,8 +104,10 @@ public class IntrinsicPredicates { new CPUSpecificPredicate("x86_64", new String[] { "avx2", "bmi2" }, null)))))))))); public static final BooleanSupplier SHA3_INSTRUCTION_AVAILABLE - // sha3 is only implemented on aarch64 for now - = new CPUSpecificPredicate("aarch64.*", new String[] {"sha3" }, null); + // sha3 is only implemented on aarch64 and avx512 for now + = new OrPredicate(new CPUSpecificPredicate("aarch64.*", new String[] {"sha3" }, null), + new OrPredicate(new CPUSpecificPredicate("amd64.*", new String[] {"avx512f", "avx512bw"}, null), + new CPUSpecificPredicate("x86_64", new String[] {"avx512f", "avx512bw"}, null))); public static final BooleanSupplier ANY_SHA_INSTRUCTION_AVAILABLE = new OrPredicate(IntrinsicPredicates.SHA1_INSTRUCTION_AVAILABLE, From 9f6f0c68d87391cb5ed3c63e1dfc80e61a70b84d Mon Sep 17 00:00:00 2001 From: JinhangZhang Date: Tue, 29 Oct 2024 14:12:47 -0400 Subject: [PATCH 024/159] Update the platform flags --- .../jdk/ProblemList-FIPS140_3_OpenJcePlus.txt | 1870 ++++++++--------- 1 file changed, 935 insertions(+), 935 deletions(-) diff --git a/test/jdk/ProblemList-FIPS140_3_OpenJcePlus.txt b/test/jdk/ProblemList-FIPS140_3_OpenJcePlus.txt index af187260b18..a60b4f23309 100644 --- a/test/jdk/ProblemList-FIPS140_3_OpenJcePlus.txt +++ b/test/jdk/ProblemList-FIPS140_3_OpenJcePlus.txt @@ -20,693 +20,693 @@ # # Exclude tests list from sanity.openjdk # -com/sun/crypto/provider/AlgorithmParameters/OAEPOrder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/CICO/CICODESFuncTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/CICO/CICOSkipTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/CICO/PBEFunc/CICOPBEFuncTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AEAD/Encrypt.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AEAD/GCMLargeDataKAT.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AEAD/GCMParameterSpecTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AEAD/KeyWrapper.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AEAD/ReadWriteSkip.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AEAD/SameBuffer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AEAD/SealedObjectTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AEAD/WrongAAD.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/CICO.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/CTR.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/Padding.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/Test4511676.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/Test4512524.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/Test4512704.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/Test4513830.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/Test4517355.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/Test4626070.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/TestAESCipher.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithDefaultProvider.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithProviderChange.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithRemoveAddProvider.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/TestCICOWithGCM.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/TestCICOWithGCMAndAAD.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/TestCopySafe.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/TestGCMKeyAndIvCheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/TestISO10126Padding.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/TestKATForECB_IV.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/TestKATForECB_VK.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/TestKATForECB_VT.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/TestKATForGCM.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/TestNoPaddingModes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/TestNonexpanding.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/TestSameBuffer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/AES/TestShortBuffer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/Blowfish/BlowfishTestVector.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/Blowfish/TestCipherBlowfish.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/CTR/CounterMode.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/CTS/CTSMode.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/ChaCha20/ChaCha20KAT.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/ChaCha20/ChaCha20KeyGeneratorTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/ChaCha20/ChaCha20NoReuse.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/ChaCha20/ChaCha20Poly1305ParamTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/ChaCha20/OutputSizeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/ChaCha20/unittest/ChaCha20CipherUnitTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/ChaCha20/unittest/ChaCha20Poly1305ParametersUnitTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/DES/DESKeyCleanupTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/DES/DESSecretKeySpec.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/DES/DesAPITest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/DES/DoFinalReturnLen.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/DES/FlushBug.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/DES/KeyWrapping.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/DES/PaddingTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/DES/Sealtest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/DES/TestCipherDES.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/DES/TestCipherDESede.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/DES/TextPKCS5PaddingTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/JCE/Bugs/4686632/Empty.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/KeyWrap/NISTWrapKAT.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/KeyWrap/TestCipherKeyWrapperTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/KeyWrap/TestGeneral.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/KeyWrap/TestKeySizeCheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/KeyWrap/XMLEncKAT.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/PBE/CheckPBEKeySize.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/PBE/DecryptWithoutParameters.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/PBE/NegativeLength.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/PBE/PBEInvalidParamsTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/PBE/PBEKeyCleanupTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/PBE/PBEKeyTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/PBE/PBEKeysAlgorithmNames.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/PBE/PBEParametersTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/PBE/PBES2Test.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/PBE/PBESameBuffer/PBESameBuffer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/PBE/PBESealedObject.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/PBE/PBKDF2Translate.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/PBE/PBMacBuffer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/PBE/PBMacDoFinalVsUpdate.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/PBE/PKCS12Cipher.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/PBE/PKCS12CipherKAT.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/PBE/PKCS12Oid.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/PBE/TestCipherKeyWrapperPBEKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/PBE/TestCipherPBE.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/PBE/TestCipherPBECons.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/RC2ArcFour/CipherKAT.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/RSA/TestOAEP.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/RSA/TestOAEPPadding.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/RSA/TestOAEPParameterSpec.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/RSA/TestOAEPWithParams.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/RSA/TestOAEP_KAT.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/RSA/TestRSA.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/TextLength/SameBufferOverwrite.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/TextLength/TestCipherTextLength.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/UTIL/StrongOrUnlimited.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Cipher/UTIL/SunJCEGetInstance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/DHKEM/Compliance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/KeyAgreement/DHGenSharedSecret.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/KeyAgreement/DHKeyAgreement2.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/KeyAgreement/DHKeyAgreement3.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/KeyAgreement/DHKeyAgreementPadding.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/KeyAgreement/DHKeyFactory.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/KeyAgreement/DHKeyGenSpeed.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/KeyAgreement/SameDHKeyStressTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/KeyAgreement/SupportedDHKeys.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/KeyAgreement/SupportedDHParamGens.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/KeyAgreement/SupportedDHParamGensLongKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/KeyAgreement/TestExponentSize.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/KeyAgreement/UnsupportedDHKeys.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/KeyFactory/PBKDF2HmacSHA1FactoryTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/KeyFactory/TestProviderLeak.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/KeyGenerator/Test4628062.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/KeyGenerator/Test6227536.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/KeyGenerator/TestExplicitKeyLength.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Mac/DigestCloneabilityTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Mac/EmptyByteBufferTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Mac/HmacMD5.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Mac/HmacPBESHA1.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Mac/HmacSHA512.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Mac/HmacSaltLengths.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Mac/LargeByteBufferTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Mac/MacClone.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Mac/MacKAT.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Mac/MacSameTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/Mac/NullByteBufferTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/NSASuiteB/TestAESOids.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/NSASuiteB/TestAESWrapOids.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/NSASuiteB/TestHmacSHAOids.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/TLS/TestKeyMaterial.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/TLS/TestLeadingZeroes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/TLS/TestMasterSecret.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/TLS/TestPRF.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/TLS/TestPRF12.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/crypto/provider/TLS/TestPremaster.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/org/apache/xml/internal/security/ShortECDSA.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/org/apache/xml/internal/security/SignatureKeyInfo.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/org/apache/xml/internal/security/TruncateHMAC.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/lang/Class/GetPackageBootLoaderChildLayer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/lang/ClassLoader/forNameLeak/ClassForNameLeak.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/lang/ProcessBuilder/JspawnhelperWarnings.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/lang/SecurityManager/CheckSecurityProvider.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all +com/sun/crypto/provider/AlgorithmParameters/OAEPOrder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/CICO/CICODESFuncTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/CICO/CICOSkipTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/CICO/PBEFunc/CICOPBEFuncTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AEAD/Encrypt.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AEAD/GCMLargeDataKAT.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AEAD/GCMParameterSpecTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AEAD/KeyWrapper.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AEAD/ReadWriteSkip.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AEAD/SameBuffer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AEAD/SealedObjectTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AEAD/WrongAAD.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/CICO.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/CTR.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/Padding.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/Test4511676.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/Test4512524.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/Test4512704.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/Test4513830.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/Test4517355.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/Test4626070.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/TestAESCipher.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithDefaultProvider.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithProviderChange.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithRemoveAddProvider.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/TestCICOWithGCM.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/TestCICOWithGCMAndAAD.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/TestCopySafe.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/TestGCMKeyAndIvCheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/TestISO10126Padding.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/TestKATForECB_IV.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/TestKATForECB_VK.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/TestKATForECB_VT.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/TestKATForGCM.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/TestNoPaddingModes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/TestNonexpanding.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/TestSameBuffer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/AES/TestShortBuffer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/Blowfish/BlowfishTestVector.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/Blowfish/TestCipherBlowfish.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/CTR/CounterMode.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/CTS/CTSMode.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/ChaCha20/ChaCha20KAT.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/ChaCha20/ChaCha20KeyGeneratorTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/ChaCha20/ChaCha20NoReuse.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/ChaCha20/ChaCha20Poly1305ParamTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/ChaCha20/OutputSizeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/ChaCha20/unittest/ChaCha20CipherUnitTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/ChaCha20/unittest/ChaCha20Poly1305ParametersUnitTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/DES/DESKeyCleanupTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/DES/DESSecretKeySpec.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/DES/DesAPITest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/DES/DoFinalReturnLen.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/DES/FlushBug.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/DES/KeyWrapping.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/DES/PaddingTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/DES/Sealtest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/DES/TestCipherDES.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/DES/TestCipherDESede.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/DES/TextPKCS5PaddingTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/JCE/Bugs/4686632/Empty.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/KeyWrap/NISTWrapKAT.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/KeyWrap/TestCipherKeyWrapperTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/KeyWrap/TestGeneral.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/KeyWrap/TestKeySizeCheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/KeyWrap/XMLEncKAT.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/PBE/CheckPBEKeySize.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/PBE/DecryptWithoutParameters.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/PBE/NegativeLength.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/PBE/PBEInvalidParamsTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/PBE/PBEKeyCleanupTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/PBE/PBEKeyTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/PBE/PBEKeysAlgorithmNames.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/PBE/PBEParametersTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/PBE/PBES2Test.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/PBE/PBESameBuffer/PBESameBuffer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/PBE/PBESealedObject.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/PBE/PBKDF2Translate.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/PBE/PBMacBuffer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/PBE/PBMacDoFinalVsUpdate.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/PBE/PKCS12Cipher.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/PBE/PKCS12CipherKAT.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/PBE/PKCS12Oid.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/PBE/TestCipherKeyWrapperPBEKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/PBE/TestCipherPBE.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/PBE/TestCipherPBECons.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/RC2ArcFour/CipherKAT.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/RSA/TestOAEP.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/RSA/TestOAEPPadding.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/RSA/TestOAEPParameterSpec.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/RSA/TestOAEPWithParams.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/RSA/TestOAEP_KAT.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/RSA/TestRSA.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/TextLength/SameBufferOverwrite.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/TextLength/TestCipherTextLength.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/UTIL/StrongOrUnlimited.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Cipher/UTIL/SunJCEGetInstance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/DHKEM/Compliance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/KeyAgreement/DHGenSharedSecret.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/KeyAgreement/DHKeyAgreement2.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/KeyAgreement/DHKeyAgreement3.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/KeyAgreement/DHKeyAgreementPadding.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/KeyAgreement/DHKeyFactory.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/KeyAgreement/DHKeyGenSpeed.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/KeyAgreement/SameDHKeyStressTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/KeyAgreement/SupportedDHKeys.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/KeyAgreement/SupportedDHParamGens.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/KeyAgreement/SupportedDHParamGensLongKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/KeyAgreement/TestExponentSize.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/KeyAgreement/UnsupportedDHKeys.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/KeyFactory/PBKDF2HmacSHA1FactoryTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/KeyFactory/TestProviderLeak.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/KeyGenerator/Test4628062.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/KeyGenerator/Test6227536.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/KeyGenerator/TestExplicitKeyLength.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Mac/DigestCloneabilityTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Mac/EmptyByteBufferTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Mac/HmacMD5.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Mac/HmacPBESHA1.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Mac/HmacSHA512.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Mac/HmacSaltLengths.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Mac/LargeByteBufferTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Mac/MacClone.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Mac/MacKAT.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Mac/MacSameTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/Mac/NullByteBufferTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/NSASuiteB/TestAESOids.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/NSASuiteB/TestAESWrapOids.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/NSASuiteB/TestHmacSHAOids.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/TLS/TestKeyMaterial.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/TLS/TestLeadingZeroes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/TLS/TestMasterSecret.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/TLS/TestPRF.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/TLS/TestPRF12.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/crypto/provider/TLS/TestPremaster.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/org/apache/xml/internal/security/ShortECDSA.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/org/apache/xml/internal/security/SignatureKeyInfo.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/org/apache/xml/internal/security/TruncateHMAC.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/lang/Class/GetPackageBootLoaderChildLayer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/lang/ClassLoader/forNameLeak/ClassForNameLeak.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/lang/ProcessBuilder/JspawnhelperWarnings.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/lang/SecurityManager/CheckSecurityProvider.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all java/lang/String/CompactString/NegativeSize.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,windows-all -java/lang/reflect/records/IsRecordTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/lang/reflect/records/RecordPermissionsTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/lang/reflect/records/RecordReflectionTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/lang/runtime/ObjectMethodsTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyAgreement/KeyAgreementTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyAgreement/KeySizeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyAgreement/KeySpecTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyAgreement/MultiThreadTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyAgreement/NegativeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyFactory/Failover.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyFactory/GenerateRSAPrivateCrtKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyFactory/KeyFactoryGetKeySpecForInvalidSpec.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyPairGenerator/Failover.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyPairGenerator/GenerateKeypair.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyPairGenerator/GenerateRSAKeyPair.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyRep/Serial.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyRep/SerialDSAPubKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyRep/SerialOld.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyStore/CheckInputStream.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyStore/EntryMethods.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyStore/KeyStoreBuilder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyStore/OneProbeOneNot.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyStore/PBETest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyStore/PKCS12/CheckNullDefault.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyStore/PKCS12/ConvertP12Test.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyStore/PKCS12/EntryProtectionTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyStore/PKCS12/MetadataEmptyTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyStore/PKCS12/MetadataStoreLoadTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyStore/PKCS12/ReadP12Test.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyStore/PKCS12/StoreTrustedCertAPITest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyStore/PKCS12/StoreTrustedCertKeytool.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyStore/PKCS12/UnmodifiableAttributes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyStore/PKCS12/WriteP12Test.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyStore/ProbeKeystores.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyStore/TestKeyStoreBasic.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/KeyStore/TestKeyStoreEntry.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/MessageDigest/ByteBuffers.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/MessageDigest/TestCloneable.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/MessageDigest/TestDigestIOStream.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Policy/GetInstance/GetInstance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Policy/SignedJar/SignedJarTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Provider/CaseSensitiveServices.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Provider/ChangeProviders.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Provider/DefaultProviderList.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Provider/GetInstance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Provider/GetServiceRace.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Provider/SecurityProviderModularTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Provider/SupportsParameter.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Provider/Turkish.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/SecureClassLoader/DefineClass.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/SecureRandom/ApiTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/SecureRandom/DefaultAlgo.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/SecureRandom/DefaultProvider.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/SecureRandom/EnoughSeedTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/SecureRandom/GetAlgorithm.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/SecureRandom/GetInstanceTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/SecureRandom/MultiThreadTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/SecureRandom/NextBytesNull.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/SecureRandom/NoSync.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/SecureRandom/Serialize.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/SecureRandom/SerializedSeedTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/SecureRandom/ThreadSafe.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Security/CaseInsensitiveAlgNames.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Security/ClassLoaderDeadlock/Deadlock.sh https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Security/ConfigFileTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Security/ProviderFiltering.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Security/removing/RemoveProviderByIdentity.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Security/signedfirst/DynStatic.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Signature/ByteBuffers.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Signature/NONEwithRSA.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Signature/Offsets.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Signature/ResetAfterException.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Signature/SignWithOutputBuffer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Signature/SignatureGetAlgorithm.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Signature/SignatureGetInstance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Signature/SignatureLength.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Signature/TestCloneable.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Signature/TestInitSignWithMyOwnRandom.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/Signature/VerifyRangeCheckOverflow.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/SignedObject/Chain.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/SignedObject/Copy.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/SignedObject/Correctness.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/cert/CertPathBuilder/GetInstance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/cert/CertPathBuilder/selfIssued/DisableRevocation.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/cert/CertPathBuilder/selfIssued/KeyUsageMatters.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/cert/CertPathBuilder/selfIssued/StatusLoopDependency.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/cert/CertPathBuilder/targetConstraints/BuildEEBasicConstraints.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/cert/CertPathBuilder/zeroLengthPath/ZeroLengthPath.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/cert/CertPathValidator/OCSP/AIACheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/cert/CertPathValidator/OCSP/FailoverToCRL.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/cert/CertPathValidator/OCSP/GetAndPostTests.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/cert/CertPathValidator/OCSP/OCSPTimeout.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/cert/CertPathValidator/indirectCRL/CircularCRLOneLevel.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/cert/CertPathValidator/indirectCRL/CircularCRLOneLevelRevoked.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/cert/CertPathValidator/indirectCRL/CircularCRLTwoLevel.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/cert/CertPathValidator/indirectCRL/CircularCRLTwoLevelRevoked.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/cert/CertPathValidator/nameConstraintsRFC822/ValidateCertPath.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/cert/GetInstance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/cert/PKIXRevocationChecker/OcspUnauthorized.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/cert/PKIXRevocationChecker/UnitTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/cert/PolicyNode/GetPolicyQualifiers.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/cert/X509CRL/VerifyDefault.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/cert/X509CRLSelector/CRLNumberMissing.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/cert/X509Certificate/GetSigAlgParams.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/cert/pkix/policyChanges/TestPolicy.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/misc/TestDefaultRandom.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/spec/IsAssignableFromOrder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/security/spec/PKCS8EncodedKeySpec/Algorithm.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/util/concurrent/tck/JSR166TestCase.java#others https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/util/jar/JarFile/IgnoreUnrelatedSignatureFiles.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/util/jar/JarFile/ScanSignedJar.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/util/jar/JarFile/SignedJarFileGetInputStream.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/util/jar/JarFile/SignedJarPendingBlock.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/util/jar/JarFile/TurkCert.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/util/jar/JarFile/VerifySignedJar.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/util/jar/JarFile/mrjar/MultiReleaseJarAPI.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/util/jar/JarFile/mrjar/MultiReleaseJarSecurity.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/util/jar/JarInputStream/ExtraFileInMetaInf.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/util/jar/JarInputStream/ScanSignedJar.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/util/jar/JarInputStream/TestIndexedJarWithBadSignature.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/util/stream/GathererShortCircuitTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/Cipher/ByteBuffers.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/Cipher/CipherInputStreamExceptions.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/Cipher/GetMaxAllowed.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/Cipher/InOutBuffers.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/Cipher/TestCipherMode.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/Cipher/TestGetInstance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/Cipher/Turkish.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/CipherSpi/DirectBBRemaining.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all +java/lang/reflect/records/IsRecordTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/lang/reflect/records/RecordPermissionsTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/lang/reflect/records/RecordReflectionTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/lang/runtime/ObjectMethodsTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyAgreement/KeyAgreementTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyAgreement/KeySizeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyAgreement/KeySpecTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyAgreement/MultiThreadTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyAgreement/NegativeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyFactory/Failover.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyFactory/GenerateRSAPrivateCrtKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyFactory/KeyFactoryGetKeySpecForInvalidSpec.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyPairGenerator/Failover.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyPairGenerator/GenerateKeypair.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyPairGenerator/GenerateRSAKeyPair.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyRep/Serial.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyRep/SerialDSAPubKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyRep/SerialOld.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyStore/CheckInputStream.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyStore/EntryMethods.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyStore/KeyStoreBuilder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyStore/OneProbeOneNot.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyStore/PBETest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyStore/PKCS12/CheckNullDefault.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyStore/PKCS12/ConvertP12Test.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyStore/PKCS12/EntryProtectionTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyStore/PKCS12/MetadataEmptyTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyStore/PKCS12/MetadataStoreLoadTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyStore/PKCS12/ReadP12Test.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyStore/PKCS12/StoreTrustedCertAPITest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyStore/PKCS12/StoreTrustedCertKeytool.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyStore/PKCS12/UnmodifiableAttributes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyStore/PKCS12/WriteP12Test.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyStore/ProbeKeystores.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyStore/TestKeyStoreBasic.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/KeyStore/TestKeyStoreEntry.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/MessageDigest/ByteBuffers.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/MessageDigest/TestCloneable.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/MessageDigest/TestDigestIOStream.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Policy/GetInstance/GetInstance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Policy/SignedJar/SignedJarTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Provider/CaseSensitiveServices.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Provider/ChangeProviders.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Provider/DefaultProviderList.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Provider/GetInstance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Provider/GetServiceRace.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Provider/SecurityProviderModularTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Provider/SupportsParameter.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Provider/Turkish.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/SecureClassLoader/DefineClass.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/SecureRandom/ApiTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/SecureRandom/DefaultAlgo.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/SecureRandom/DefaultProvider.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/SecureRandom/EnoughSeedTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/SecureRandom/GetAlgorithm.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/SecureRandom/GetInstanceTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/SecureRandom/MultiThreadTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/SecureRandom/NextBytesNull.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/SecureRandom/NoSync.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/SecureRandom/Serialize.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/SecureRandom/SerializedSeedTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/SecureRandom/ThreadSafe.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Security/CaseInsensitiveAlgNames.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Security/ClassLoaderDeadlock/Deadlock.sh https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Security/ConfigFileTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Security/ProviderFiltering.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Security/removing/RemoveProviderByIdentity.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Security/signedfirst/DynStatic.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Signature/ByteBuffers.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Signature/NONEwithRSA.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Signature/Offsets.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Signature/ResetAfterException.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Signature/SignWithOutputBuffer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Signature/SignatureGetAlgorithm.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Signature/SignatureGetInstance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Signature/SignatureLength.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Signature/TestCloneable.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Signature/TestInitSignWithMyOwnRandom.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/Signature/VerifyRangeCheckOverflow.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/SignedObject/Chain.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/SignedObject/Copy.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/SignedObject/Correctness.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/cert/CertPathBuilder/GetInstance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/cert/CertPathBuilder/selfIssued/DisableRevocation.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/cert/CertPathBuilder/selfIssued/KeyUsageMatters.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/cert/CertPathBuilder/selfIssued/StatusLoopDependency.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/cert/CertPathBuilder/targetConstraints/BuildEEBasicConstraints.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/cert/CertPathBuilder/zeroLengthPath/ZeroLengthPath.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/cert/CertPathValidator/OCSP/AIACheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/cert/CertPathValidator/OCSP/FailoverToCRL.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/cert/CertPathValidator/OCSP/GetAndPostTests.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/cert/CertPathValidator/OCSP/OCSPTimeout.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/cert/CertPathValidator/indirectCRL/CircularCRLOneLevel.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/cert/CertPathValidator/indirectCRL/CircularCRLOneLevelRevoked.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/cert/CertPathValidator/indirectCRL/CircularCRLTwoLevel.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/cert/CertPathValidator/indirectCRL/CircularCRLTwoLevelRevoked.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/cert/CertPathValidator/nameConstraintsRFC822/ValidateCertPath.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/cert/GetInstance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/cert/PKIXRevocationChecker/OcspUnauthorized.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/cert/PKIXRevocationChecker/UnitTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/cert/PolicyNode/GetPolicyQualifiers.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/cert/X509CRL/VerifyDefault.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/cert/X509CRLSelector/CRLNumberMissing.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/cert/X509Certificate/GetSigAlgParams.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/cert/pkix/policyChanges/TestPolicy.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/misc/TestDefaultRandom.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/spec/IsAssignableFromOrder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/security/spec/PKCS8EncodedKeySpec/Algorithm.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/util/concurrent/tck/JSR166TestCase.java#others https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/util/jar/JarFile/IgnoreUnrelatedSignatureFiles.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/util/jar/JarFile/ScanSignedJar.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/util/jar/JarFile/SignedJarFileGetInputStream.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/util/jar/JarFile/SignedJarPendingBlock.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/util/jar/JarFile/TurkCert.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/util/jar/JarFile/VerifySignedJar.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/util/jar/JarFile/mrjar/MultiReleaseJarAPI.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/util/jar/JarFile/mrjar/MultiReleaseJarSecurity.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/util/jar/JarInputStream/ExtraFileInMetaInf.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/util/jar/JarInputStream/ScanSignedJar.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/util/jar/JarInputStream/TestIndexedJarWithBadSignature.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/util/stream/GathererShortCircuitTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/Cipher/ByteBuffers.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/Cipher/CipherInputStreamExceptions.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/Cipher/GetMaxAllowed.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/Cipher/InOutBuffers.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/Cipher/TestCipherMode.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/Cipher/TestGetInstance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/Cipher/Turkish.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/CipherSpi/DirectBBRemaining.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all javax/crypto/CipherSpi/ResetByteBuffer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 linux-s390x,windows-all -javax/crypto/CryptoPermission/AllPermCheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/CryptoPermission/LowercasePermCheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/CryptoPermission/RC2PermCheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/CryptoPermission/RC4AliasPermCheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/CryptoPermission/RSANoLimit.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/EncryptedPrivateKeyInfo/GetAlgName.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/EncryptedPrivateKeyInfo/GetEncoded.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/EncryptedPrivateKeyInfo/GetKeySpec.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException2.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecInvalidEncoding.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/JceSecurity/SunJCE_BC_LoadOrdering.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/JceSecurity/VerificationResults.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/KEM/GenLargeNumberOfKeys.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/KEM/KemTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/KEM/RSA_KEM.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/KeyGenerator/CompareKeys.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/KeyGenerator/TestGetInstance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/Mac/ByteBuffers.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/Mac/TestGetInstance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/SealedObject/NullKeySealedObject.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/SecretKeyFactory/PBKDF2TranslateTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/SecretKeyFactory/SecKFTranslateTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/SecretKeyFactory/SecKeyFacSunJCEPrf.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/SecretKeyFactory/TestFailOver.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/spec/DESKeySpec/CheckParity.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/crypto/spec/RC2ParameterSpec/RC2AlgorithmParameters.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/security/auth/kerberos/StandardNames.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/xml/crypto/dsig/BadXPointer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/xml/crypto/dsig/Basic.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/xml/crypto/dsig/ErrorHandlerPermissions.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/xml/crypto/dsig/FileSocketPermissions.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/xml/crypto/dsig/GenerationTests.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/xml/crypto/dsig/GetInstanceTests.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/xml/crypto/dsig/HereFunction.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/xml/crypto/dsig/PSSSpec.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/xml/crypto/dsig/SecureValidation.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/xml/crypto/dsig/SecureValidationSystemProperty.java#id0 https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/xml/crypto/dsig/SecureValidationSystemProperty.java#id1 https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/xml/crypto/dsig/SecurityManager/XMLDSigWithSecMgr.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/xml/crypto/dsig/TransformService/NullParent.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/xml/crypto/dsig/ValidationTests.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/xml/crypto/dsig/keyinfo/KeyInfo/Marshal.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -jdk/internal/util/ReferencedKeyTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/reflect/ReflectionFactory/ReflectionFactoryTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/jgss/GssMemoryIssues.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/jgss/spnego/MSOID.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/jgss/spnego/NotPreferredMech.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/KrbCredSubKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/RFC396xTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/ServiceCredsCombination.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/AcceptPermissions.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/AcceptorSubKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/Addresses.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/AddressesAndNameType.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/AlwaysEncPaReq.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/Basic.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/BasicKrb5Test.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/BasicProc.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/BogusKDC.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/CleanState.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all +javax/crypto/CryptoPermission/AllPermCheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/CryptoPermission/LowercasePermCheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/CryptoPermission/RC2PermCheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/CryptoPermission/RC4AliasPermCheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/CryptoPermission/RSANoLimit.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/EncryptedPrivateKeyInfo/GetAlgName.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/EncryptedPrivateKeyInfo/GetEncoded.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/EncryptedPrivateKeyInfo/GetKeySpec.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException2.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecInvalidEncoding.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/JceSecurity/SunJCE_BC_LoadOrdering.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/JceSecurity/VerificationResults.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/KEM/GenLargeNumberOfKeys.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/KEM/KemTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/KEM/RSA_KEM.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/KeyGenerator/CompareKeys.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/KeyGenerator/TestGetInstance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/Mac/ByteBuffers.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/Mac/TestGetInstance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/SealedObject/NullKeySealedObject.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/SecretKeyFactory/PBKDF2TranslateTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/SecretKeyFactory/SecKFTranslateTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/SecretKeyFactory/SecKeyFacSunJCEPrf.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/SecretKeyFactory/TestFailOver.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/spec/DESKeySpec/CheckParity.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/crypto/spec/RC2ParameterSpec/RC2AlgorithmParameters.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/security/auth/kerberos/StandardNames.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/xml/crypto/dsig/BadXPointer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/xml/crypto/dsig/Basic.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/xml/crypto/dsig/ErrorHandlerPermissions.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/xml/crypto/dsig/FileSocketPermissions.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/xml/crypto/dsig/GenerationTests.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/xml/crypto/dsig/GetInstanceTests.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/xml/crypto/dsig/HereFunction.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/xml/crypto/dsig/PSSSpec.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/xml/crypto/dsig/SecureValidation.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/xml/crypto/dsig/SecureValidationSystemProperty.java#id0 https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/xml/crypto/dsig/SecureValidationSystemProperty.java#id1 https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/xml/crypto/dsig/SecurityManager/XMLDSigWithSecMgr.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/xml/crypto/dsig/TransformService/NullParent.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/xml/crypto/dsig/ValidationTests.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/xml/crypto/dsig/keyinfo/KeyInfo/Marshal.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +jdk/internal/util/ReferencedKeyTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/reflect/ReflectionFactory/ReflectionFactoryTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/jgss/GssMemoryIssues.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/jgss/spnego/MSOID.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/jgss/spnego/NotPreferredMech.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/KrbCredSubKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/RFC396xTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/ServiceCredsCombination.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/AcceptPermissions.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/AcceptorSubKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/Addresses.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/AddressesAndNameType.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/AlwaysEncPaReq.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/Basic.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/BasicKrb5Test.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/BasicProc.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/BogusKDC.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/CleanState.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all sun/security/krb5/auto/Cleaners.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/CrossRealm.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/DiffNameSameKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/DiffSaltParams.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/DupEtypes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/DynamicKeytab.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/EmptyPassword.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/FileKeyTab.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/ForwardableCheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/Forwarded.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/GSS.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/GSSUnbound.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/HttpNegotiateServer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/HttpsCB.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/IgnoreChannelBinding.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/KPEquals.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/KdcPolicy.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/KeyPermissions.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/KeyTabCompat.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/KrbTicket.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/KvnoNA.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/LifeTimeInSeconds.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/LoginModuleOptions.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/LoginNoPass.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/LongLife.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/MSOID2.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/ModuleName.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/MoreKvno.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/NewInquireTypes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/NewSalt.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/NoAddresses.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/NoInitNoKeytab.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/NonAscii.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/NonMutualSpnego.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/NoneReplayCacheTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/NullRenewUntil.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/OkAsDelegate.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/OkAsDelegateXRealm.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/OnlyDesLogin.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/PrincipalNameEquals.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/RRC.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/ReferralsTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/RefreshKrb5Config.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/Renew.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/Renewal.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/ReplayCacheTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/ReplayCacheTestProc.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/ReplayCacheTestProcWithMD5.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/S4U2proxy.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/S4U2proxyGSS.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/S4U2self.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/S4U2selfAsServer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/S4U2selfAsServerGSS.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/S4U2selfGSS.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/S4U2selfNotF.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/SPNEGO.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/SaslBasic.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/SaslMutual.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/SaslUnbound.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/SpnegoLifeTime.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/SpnegoReqFlags.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/Test5653.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/TicketSName.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/TwoOrThree.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/TwoPrinces.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/TwoTab.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/Unavailable.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/UnboundService.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/UseCacheAndStoreKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/W83.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/auto/principalProperty/PrincipalSystemPropTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/etype/KerberosAesSha2.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/etype/WeakCrypto.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/ktab/BufferBoundary.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/ktab/FileKeyTab.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/ktab/KeyTabIndex.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/krb5/runNameEquals.sh https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all +sun/security/krb5/auto/CrossRealm.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/DiffNameSameKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/DiffSaltParams.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/DupEtypes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/DynamicKeytab.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/EmptyPassword.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/FileKeyTab.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/ForwardableCheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/Forwarded.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/GSS.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/GSSUnbound.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/HttpNegotiateServer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/HttpsCB.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/IgnoreChannelBinding.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/KPEquals.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/KdcPolicy.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/KeyPermissions.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/KeyTabCompat.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/KrbTicket.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/KvnoNA.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/LifeTimeInSeconds.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/LoginModuleOptions.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/LoginNoPass.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/LongLife.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/MSOID2.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/ModuleName.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/MoreKvno.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/NewInquireTypes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/NewSalt.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/NoAddresses.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/NoInitNoKeytab.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/NonAscii.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/NonMutualSpnego.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/NoneReplayCacheTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/NullRenewUntil.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/OkAsDelegate.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/OkAsDelegateXRealm.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/OnlyDesLogin.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/PrincipalNameEquals.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/RRC.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/ReferralsTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/RefreshKrb5Config.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/Renew.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/Renewal.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/ReplayCacheTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/ReplayCacheTestProc.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/ReplayCacheTestProcWithMD5.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/S4U2proxy.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/S4U2proxyGSS.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/S4U2self.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/S4U2selfAsServer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/S4U2selfAsServerGSS.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/S4U2selfGSS.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/S4U2selfNotF.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/SPNEGO.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/SaslBasic.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/SaslMutual.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/SaslUnbound.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/SpnegoLifeTime.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/SpnegoReqFlags.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/Test5653.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/TicketSName.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/TwoOrThree.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/TwoPrinces.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/TwoTab.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/Unavailable.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/UnboundService.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/UseCacheAndStoreKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/W83.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/auto/principalProperty/PrincipalSystemPropTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/etype/KerberosAesSha2.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/etype/WeakCrypto.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/ktab/BufferBoundary.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/ktab/FileKeyTab.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/ktab/KeyTabIndex.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/krb5/runNameEquals.sh https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all # # Exclude tests list from extended.openjdk # -com/sun/jdi/JdwpAttachTest.java.JdwpAttachTest https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/jndi/dns/ConfigTests/PortUnreachable.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/jndi/ldap/LdapCBPropertiesTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/jndi/ldap/LdapSSLHandshakeFailureTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/security/auth/module/KeyStoreLoginModule/OptionTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/security/auth/module/KeyStoreLoginModule/ReadOnly.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/security/sasl/Cram.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/security/sasl/digest/AuthNoUtf8.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/security/sasl/digest/AuthOnly.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/security/sasl/digest/AuthRealmChoices.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/security/sasl/digest/AuthRealms.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/security/sasl/digest/CheckNegotiatedQOPs.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/security/sasl/digest/HasInitialResponse.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/security/sasl/digest/Integrity.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/security/sasl/digest/NoQuoteParams.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/security/sasl/digest/Privacy.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/security/sasl/digest/PrivacyRc4.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/security/sasl/digest/Unbound.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/security/sasl/ntlm/Conformance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -com/sun/security/sasl/ntlm/NTLMTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/io/ByteArrayOutputStream/WriteToReleasesCarrier.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/io/File/createTempFile/SecurityTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/io/Serializable/records/AbsentStreamValuesTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/io/Serializable/records/BasicRecordSer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/io/Serializable/records/ConstructorAccessTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/io/Serializable/records/ConstructorPermissionTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/io/Serializable/records/CycleTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/io/Serializable/records/DifferentStreamFieldsTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/io/Serializable/records/ReadResolveTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/io/Serializable/records/RecordClassTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/io/Serializable/records/SerialVersionUIDTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/io/Serializable/records/ThrowingConstructorTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/io/Serializable/records/WriteReplaceTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/io/Serializable/serialFilter/FilterWithSecurityManagerTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/io/Serializable/serialFilter/GlobalFilterTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/io/Serializable/serialFilter/SerialFilterFactoryTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all +com/sun/jdi/JdwpAttachTest.java.JdwpAttachTest https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/jndi/dns/ConfigTests/PortUnreachable.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/jndi/ldap/LdapCBPropertiesTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/jndi/ldap/LdapSSLHandshakeFailureTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/security/auth/module/KeyStoreLoginModule/OptionTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/security/auth/module/KeyStoreLoginModule/ReadOnly.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/security/sasl/Cram.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/security/sasl/digest/AuthNoUtf8.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/security/sasl/digest/AuthOnly.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/security/sasl/digest/AuthRealmChoices.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/security/sasl/digest/AuthRealms.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/security/sasl/digest/CheckNegotiatedQOPs.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/security/sasl/digest/HasInitialResponse.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/security/sasl/digest/Integrity.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/security/sasl/digest/NoQuoteParams.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/security/sasl/digest/Privacy.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/security/sasl/digest/PrivacyRc4.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/security/sasl/digest/Unbound.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/security/sasl/ntlm/Conformance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +com/sun/security/sasl/ntlm/NTLMTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/io/ByteArrayOutputStream/WriteToReleasesCarrier.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/io/File/createTempFile/SecurityTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/io/Serializable/records/AbsentStreamValuesTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/io/Serializable/records/BasicRecordSer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/io/Serializable/records/ConstructorAccessTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/io/Serializable/records/ConstructorPermissionTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/io/Serializable/records/CycleTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/io/Serializable/records/DifferentStreamFieldsTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/io/Serializable/records/ReadResolveTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/io/Serializable/records/RecordClassTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/io/Serializable/records/SerialVersionUIDTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/io/Serializable/records/ThrowingConstructorTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/io/Serializable/records/WriteReplaceTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/io/Serializable/serialFilter/FilterWithSecurityManagerTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/io/Serializable/serialFilter/GlobalFilterTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/io/Serializable/serialFilter/SerialFilterFactoryTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all java/nio/channels/DatagramChannel/AdaptorMulticasting.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 linux-x64,windows-all -java/nio/channels/Selector/SelectWithConsumer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all +java/nio/channels/Selector/SelectWithConsumer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all java/nio/channels/etc/OpenAndConnect.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 linux-x64,windows-all java/nio/channels/etc/ProtocolFamilies.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 linux-x64,windows-all -java/nio/channels/unixdomain/IOExchanges.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/nio/channels/unixdomain/Security.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/nio/file/Files/CopyToNonDefaultFS.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/nio/file/spi/SetDefaultProvider.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/rmi/dgc/VMID/CheckVMID.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/rmi/dgc/dgcImplInsulation/DGCImplInsulation.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/rmi/registry/altSecurityManager/AltSecurityManager.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/rmi/registry/classPathCodebase/ClassPathCodebase.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/rmi/registry/readTest/CodebaseTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/rmi/server/RMIClassLoader/downloadArrayClass/DownloadArrayClass.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/rmi/server/RMIClassLoader/loadProxyClasses/LoadProxyClasses.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/rmi/server/RMIClassLoader/useCodebaseOnly/UseCodebaseOnly.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/rmi/server/RMISocketFactory/useSocketFactory/registry/UseCustomSocketFactory.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/rmi/server/RMISocketFactory/useSocketFactory/unicast/UseCustomSocketFactory.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/rmi/server/clientStackTrace/ClientStackTrace.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/rmi/server/useCustomRef/UseCustomRef.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -java/rmi/transport/dgcDeadLock/DGCDeadLock.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/imageio/CachePremissionsTest/CachePermissionsTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/ALPN/SSLEngineAlpnTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/ALPN/SSLServerSocketAlpnTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/ALPN/SSLSocketAlpnTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/CipherSuite.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/ClientAuth.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/DTLSBufferOverflowUnderflowTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/DTLSDataExchangeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/DTLSEnginesClosureTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/DTLSHandshakeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/DTLSHandshakeWithReplicatedPacketsTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/DTLSIncorrectAppDataTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/DTLSMFLNTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/DTLSNamedGroups.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/DTLSNotEnabledRC4Test.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/DTLSOverDatagram.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/DTLSRehandshakeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/DTLSRehandshakeWithCipherChangeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/DTLSRehandshakeWithDataExTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/DTLSSequenceNumberTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/DTLSSignatureSchemes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/DTLSUnsupportedCiphersTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/DTLSWontNegotiateV10.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/InvalidCookie.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/InvalidRecords.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/NoMacInitialClientHello.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/PacketLossRetransmission.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/Reordered.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/RespondToRetransmit.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/Retransmission.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLS/WeakCipherSuite.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLSv10/DTLSv10BufferOverflowUnderflowTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLSv10/DTLSv10DataExchangeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLSv10/DTLSv10EnginesClosureTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLSv10/DTLSv10HandshakeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLSv10/DTLSv10HandshakeWithReplicatedPacketsTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLSv10/DTLSv10IncorrectAppDataTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLSv10/DTLSv10MFLNTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLSv10/DTLSv10NotEnabledRC4Test.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLSv10/DTLSv10RehandshakeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLSv10/DTLSv10RehandshakeWithCipherChangeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLSv10/DTLSv10RehandshakeWithDataExTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLSv10/DTLSv10SequenceNumberTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/DTLSv10/DTLSv10UnsupportedCiphersTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/FixingJavadocs/ImplicitHandshake.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/FixingJavadocs/KMTMGetNothing.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/FixingJavadocs/SSLSessionNulls.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/FixingJavadocs/SSLSocketInherit.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/HttpsURLConnection/CriticalSubjectAltName.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/HttpsURLConnection/DummyCacheResponse.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/HttpsURLConnection/Equals.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/HttpsURLConnection/GetResponseCode.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/HttpsURLConnection/HttpsSession.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLEngine/ArgCheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLEngine/Arrays.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLEngine/Basics.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLEngine/CheckTlsEngineResults.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLEngine/ConnectionTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLEngine/EngineCloseOnAlert.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLEngine/ExtendedKeyEngine.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLEngine/ExtendedKeySocket.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLEngine/FinishedPresent.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLEngine/HandshakeWithInvalidRecordVersion.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLEngine/LargeBufs.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLEngine/NoAuthClientAuth.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLEngine/TestAllSuites.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLParameters/NamedGroups.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLParameters/SignatureSchemes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLParameters/UseCipherSuitesOrder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLSession/CheckSessionContext.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLSession/HttpsURLConnectionLocalCertificateChain.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLSession/JSSERenegotiate.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLSession/RenegotiateTLS13.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLSession/ResumeTLS13withSNI.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLSession/SSLCtxAccessToSessCtx.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLSession/SessionCacheSizeTests.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLSession/SessionTimeOutTests.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLSession/TestEnabledProtocols.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLSocket/ClientExcOnAlert.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLSocket/InputStreamClosure.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLSocket/OutputStreamClosure.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/SSLSocket/Tls13PacketSize.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/ServerName/BestEffortOnLazyConnected.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/ServerName/EndingDotHostname.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/ServerName/SSLEngineExplorer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/ServerName/SSLEngineExplorerMatchedSNI.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/ServerName/SSLEngineExplorerUnmatchedSNI.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/ServerName/SSLSocketConsistentSNI.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/ServerName/SSLSocketExplorer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/ServerName/SSLSocketExplorerFailure.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/ServerName/SSLSocketExplorerMatchedSNI.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/ServerName/SSLSocketExplorerUnmatchedSNI.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/ServerName/SSLSocketExplorerWithCliSNI.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/ServerName/SSLSocketExplorerWithSrvSNI.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/ServerName/SSLSocketInconsistentSNI.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/ServerName/SSLSocketSNISensitive.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/Stapling/HttpsUrlConnClient.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/Stapling/SSLEngineWithStapling.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/Stapling/SSLSocketWithStapling.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/Stapling/StapleEnableProps.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLS/TLSDataExchangeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLS/TLSEnginesClosureTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLS/TLSHandshakeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLS/TLSMFLNTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLS/TLSNotEnabledRC4Test.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLS/TLSRehandshakeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLS/TLSRehandshakeWithCipherChangeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLS/TLSRehandshakeWithDataExTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLS/TLSUnsupportedCiphersTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLS/TestJSSEClientDefaultProtocol.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLS/TestJSSEClientProtocol.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLS/TestJSSENoCommonProtocols.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLS/TestJSSEServerProtocol.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSCommon/ConcurrentClientAccessTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSCommon/TLSTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSCommon/TLSWithEdDSA.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSCommon/TestSessionLocalPrincipal.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv1/TLSDataExchangeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv1/TLSEnginesClosureTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv1/TLSHandshakeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv1/TLSMFLNTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv1/TLSNotEnabledRC4Test.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv1/TLSRehandshakeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv1/TLSRehandshakeWithCipherChangeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv1/TLSRehandshakeWithDataExTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv1/TLSUnsupportedCiphersTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv11/EmptyCertificateAuthorities.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv11/ExportableBlockCipher.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv11/ExportableStreamCipher.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv11/GenericBlockCipher.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv11/GenericStreamCipher.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv11/TLSDataExchangeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all +java/nio/channels/unixdomain/IOExchanges.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/nio/channels/unixdomain/Security.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/nio/file/Files/CopyToNonDefaultFS.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/nio/file/spi/SetDefaultProvider.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/rmi/dgc/VMID/CheckVMID.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/rmi/dgc/dgcImplInsulation/DGCImplInsulation.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/rmi/registry/altSecurityManager/AltSecurityManager.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/rmi/registry/classPathCodebase/ClassPathCodebase.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/rmi/registry/readTest/CodebaseTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/rmi/server/RMIClassLoader/downloadArrayClass/DownloadArrayClass.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/rmi/server/RMIClassLoader/loadProxyClasses/LoadProxyClasses.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/rmi/server/RMIClassLoader/useCodebaseOnly/UseCodebaseOnly.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/rmi/server/RMISocketFactory/useSocketFactory/registry/UseCustomSocketFactory.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/rmi/server/RMISocketFactory/useSocketFactory/unicast/UseCustomSocketFactory.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/rmi/server/clientStackTrace/ClientStackTrace.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/rmi/server/useCustomRef/UseCustomRef.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +java/rmi/transport/dgcDeadLock/DGCDeadLock.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/imageio/CachePremissionsTest/CachePermissionsTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/ALPN/SSLEngineAlpnTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/ALPN/SSLServerSocketAlpnTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/ALPN/SSLSocketAlpnTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/CipherSuite.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/ClientAuth.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/DTLSBufferOverflowUnderflowTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/DTLSDataExchangeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/DTLSEnginesClosureTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/DTLSHandshakeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/DTLSHandshakeWithReplicatedPacketsTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/DTLSIncorrectAppDataTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/DTLSMFLNTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/DTLSNamedGroups.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/DTLSNotEnabledRC4Test.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/DTLSOverDatagram.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/DTLSRehandshakeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/DTLSRehandshakeWithCipherChangeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/DTLSRehandshakeWithDataExTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/DTLSSequenceNumberTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/DTLSSignatureSchemes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/DTLSUnsupportedCiphersTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/DTLSWontNegotiateV10.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/InvalidCookie.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/InvalidRecords.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/NoMacInitialClientHello.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/PacketLossRetransmission.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/Reordered.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/RespondToRetransmit.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/Retransmission.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLS/WeakCipherSuite.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLSv10/DTLSv10BufferOverflowUnderflowTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLSv10/DTLSv10DataExchangeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLSv10/DTLSv10EnginesClosureTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLSv10/DTLSv10HandshakeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLSv10/DTLSv10HandshakeWithReplicatedPacketsTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLSv10/DTLSv10IncorrectAppDataTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLSv10/DTLSv10MFLNTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLSv10/DTLSv10NotEnabledRC4Test.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLSv10/DTLSv10RehandshakeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLSv10/DTLSv10RehandshakeWithCipherChangeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLSv10/DTLSv10RehandshakeWithDataExTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLSv10/DTLSv10SequenceNumberTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/DTLSv10/DTLSv10UnsupportedCiphersTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/FixingJavadocs/ImplicitHandshake.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/FixingJavadocs/KMTMGetNothing.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/FixingJavadocs/SSLSessionNulls.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/FixingJavadocs/SSLSocketInherit.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/HttpsURLConnection/CriticalSubjectAltName.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/HttpsURLConnection/DummyCacheResponse.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/HttpsURLConnection/Equals.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/HttpsURLConnection/GetResponseCode.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/HttpsURLConnection/HttpsSession.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLEngine/ArgCheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLEngine/Arrays.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLEngine/Basics.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLEngine/CheckTlsEngineResults.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLEngine/ConnectionTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLEngine/EngineCloseOnAlert.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLEngine/ExtendedKeyEngine.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLEngine/ExtendedKeySocket.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLEngine/FinishedPresent.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLEngine/HandshakeWithInvalidRecordVersion.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLEngine/LargeBufs.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLEngine/NoAuthClientAuth.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLEngine/TestAllSuites.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLParameters/NamedGroups.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLParameters/SignatureSchemes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLParameters/UseCipherSuitesOrder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLSession/CheckSessionContext.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLSession/HttpsURLConnectionLocalCertificateChain.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLSession/JSSERenegotiate.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLSession/RenegotiateTLS13.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLSession/ResumeTLS13withSNI.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLSession/SSLCtxAccessToSessCtx.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLSession/SessionCacheSizeTests.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLSession/SessionTimeOutTests.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLSession/TestEnabledProtocols.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLSocket/ClientExcOnAlert.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLSocket/InputStreamClosure.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLSocket/OutputStreamClosure.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/SSLSocket/Tls13PacketSize.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/ServerName/BestEffortOnLazyConnected.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/ServerName/EndingDotHostname.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/ServerName/SSLEngineExplorer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/ServerName/SSLEngineExplorerMatchedSNI.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/ServerName/SSLEngineExplorerUnmatchedSNI.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/ServerName/SSLSocketConsistentSNI.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/ServerName/SSLSocketExplorer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/ServerName/SSLSocketExplorerFailure.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/ServerName/SSLSocketExplorerMatchedSNI.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/ServerName/SSLSocketExplorerUnmatchedSNI.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/ServerName/SSLSocketExplorerWithCliSNI.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/ServerName/SSLSocketExplorerWithSrvSNI.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/ServerName/SSLSocketInconsistentSNI.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/ServerName/SSLSocketSNISensitive.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/Stapling/HttpsUrlConnClient.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/Stapling/SSLEngineWithStapling.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/Stapling/SSLSocketWithStapling.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/Stapling/StapleEnableProps.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLS/TLSDataExchangeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLS/TLSEnginesClosureTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLS/TLSHandshakeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLS/TLSMFLNTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLS/TLSNotEnabledRC4Test.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLS/TLSRehandshakeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLS/TLSRehandshakeWithCipherChangeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLS/TLSRehandshakeWithDataExTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLS/TLSUnsupportedCiphersTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLS/TestJSSEClientDefaultProtocol.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLS/TestJSSEClientProtocol.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLS/TestJSSENoCommonProtocols.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLS/TestJSSEServerProtocol.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSCommon/ConcurrentClientAccessTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSCommon/TLSTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSCommon/TLSWithEdDSA.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSCommon/TestSessionLocalPrincipal.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv1/TLSDataExchangeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv1/TLSEnginesClosureTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv1/TLSHandshakeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv1/TLSMFLNTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv1/TLSNotEnabledRC4Test.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv1/TLSRehandshakeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv1/TLSRehandshakeWithCipherChangeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv1/TLSRehandshakeWithDataExTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv1/TLSUnsupportedCiphersTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv11/EmptyCertificateAuthorities.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv11/ExportableBlockCipher.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv11/ExportableStreamCipher.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv11/GenericBlockCipher.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv11/GenericStreamCipher.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv11/TLSDataExchangeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all javax/net/ssl/TLSv11/TLSEnginesClosureTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv11/TLSHandshakeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv11/TLSMFLNTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv11/TLSNotEnabledRC4Test.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv11/TLSRehandshakeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv11/TLSRehandshakeWithCipherChangeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv11/TLSRehandshakeWithDataExTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv11/TLSUnsupportedCiphersTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv12/DisabledShortDSAKeys.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv12/DisabledShortRSAKeys.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv12/ProtocolFilter.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv12/ShortRSAKey512.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv12/ShortRSAKeyGCM.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv12/SignatureAlgorithms.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv12/TLSEnginesClosureTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv13/ClientHelloKeyShares.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv13/EngineOutOfSeqCCS.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/TLSv13/HRRKeyShares.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/ciphersuites/DisabledAlgorithms.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/ciphersuites/ECCurvesconstraints.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/ciphersuites/TLSWontNegotiateDisabledCipherAlgos.java#Client https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/ciphersuites/TLSWontNegotiateDisabledCipherAlgos.java#Server https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/compatibility/ClientHelloProcessing.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/finalize/SSLSessionFinalizeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/interop/ClientHelloBufferUnderflowException.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/interop/ClientHelloChromeInterOp.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/sanity/ciphersuites/CheckCipherSuites.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/sanity/ciphersuites/SystemPropCipherSuitesOrder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/sanity/ciphersuites/TLSCipherSuitesOrder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/sanity/interop/ClientJSSEServerJSSE.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/sanity/pluggability/CheckSSLContextExport.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/templates/SSLEngineTemplate.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/net/ssl/templates/SSLSocketTemplate.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/security/auth/Destroyable/KeyDestructionTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/security/auth/PrivateCredentialPermission/MoreThenOnePrincipals.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/security/auth/login/Configuration/GetInstance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/security/sasl/Sasl/ClientServerTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/security/sasl/Sasl/DisabledMechanisms.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -javax/smartcardio/TerminalFactorySpiTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -jdk/dynalink/BeanLinkerTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -jdk/dynalink/TrustedDynamicLinkerFactoryTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -jdk/dynalink/UntrustedDynamicLinkerFactoryTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -jdk/nio/zipfs/DirectoryStreamTests.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -jdk/nio/zipfs/InvalidZipHeaderTests.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -jdk/nio/zipfs/NewFileSystemTests.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -jdk/nio/zipfs/PropertyPermissionTests.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -jdk/nio/zipfs/TestPosix.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -jdk/nio/zipfs/ZFSTests.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -jdk/nio/zipfs/ZipFSPermissionsTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all +javax/net/ssl/TLSv11/TLSHandshakeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv11/TLSMFLNTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv11/TLSNotEnabledRC4Test.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv11/TLSRehandshakeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv11/TLSRehandshakeWithCipherChangeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv11/TLSRehandshakeWithDataExTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv11/TLSUnsupportedCiphersTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv12/DisabledShortDSAKeys.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv12/DisabledShortRSAKeys.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv12/ProtocolFilter.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv12/ShortRSAKey512.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv12/ShortRSAKeyGCM.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv12/SignatureAlgorithms.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv12/TLSEnginesClosureTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv13/ClientHelloKeyShares.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv13/EngineOutOfSeqCCS.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/TLSv13/HRRKeyShares.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/ciphersuites/DisabledAlgorithms.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/ciphersuites/ECCurvesconstraints.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/ciphersuites/TLSWontNegotiateDisabledCipherAlgos.java#Client https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/ciphersuites/TLSWontNegotiateDisabledCipherAlgos.java#Server https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/compatibility/ClientHelloProcessing.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/finalize/SSLSessionFinalizeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/interop/ClientHelloBufferUnderflowException.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/interop/ClientHelloChromeInterOp.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/sanity/ciphersuites/CheckCipherSuites.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/sanity/ciphersuites/SystemPropCipherSuitesOrder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/sanity/ciphersuites/TLSCipherSuitesOrder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/sanity/interop/ClientJSSEServerJSSE.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/sanity/pluggability/CheckSSLContextExport.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/templates/SSLEngineTemplate.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/net/ssl/templates/SSLSocketTemplate.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/security/auth/Destroyable/KeyDestructionTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/security/auth/PrivateCredentialPermission/MoreThenOnePrincipals.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/security/auth/login/Configuration/GetInstance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/security/sasl/Sasl/ClientServerTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/security/sasl/Sasl/DisabledMechanisms.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +javax/smartcardio/TerminalFactorySpiTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +jdk/dynalink/BeanLinkerTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +jdk/dynalink/TrustedDynamicLinkerFactoryTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +jdk/dynalink/UntrustedDynamicLinkerFactoryTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +jdk/nio/zipfs/DirectoryStreamTests.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +jdk/nio/zipfs/InvalidZipHeaderTests.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +jdk/nio/zipfs/NewFileSystemTests.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +jdk/nio/zipfs/PropertyPermissionTests.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +jdk/nio/zipfs/TestPosix.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +jdk/nio/zipfs/ZFSTests.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +jdk/nio/zipfs/ZipFSPermissionsTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all jdk/nio/zipfs/ZipFSTester.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,windows-all -jdk/security/jarsigner/Function.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -jdk/security/jarsigner/JarWithOneNonDisabledDigestAlg.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -jdk/security/jarsigner/Properties.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -jdk/security/jarsigner/Spec.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -jdk/security/logging/RecursiveEventHelper.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -jdk/security/logging/TestSecurityPropertyModificationLog.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -jdk/security/logging/TestTLSHandshakeLog.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/rmi/server/MarshalOutputStream/marshalForeignStub/MarshalForeignStub.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/rmi/transport/tcp/disableMultiplexing/DisableMultiplexing.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ec/ECDHKeyAgreementParamValidation.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ec/ECDSAPrvGreaterThanOrder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ec/InvalidCurve.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ec/NSASuiteB/TestSHAwithECDSASignatureOids.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ec/OidInstance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ec/SignatureDigestTruncate.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ec/SignatureKAT.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ec/SignatureParameters.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ec/SignedObjectChain.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all +jdk/security/jarsigner/Function.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +jdk/security/jarsigner/JarWithOneNonDisabledDigestAlg.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +jdk/security/jarsigner/Properties.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +jdk/security/jarsigner/Spec.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +jdk/security/logging/RecursiveEventHelper.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +jdk/security/logging/TestSecurityPropertyModificationLog.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +jdk/security/logging/TestTLSHandshakeLog.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/rmi/server/MarshalOutputStream/marshalForeignStub/MarshalForeignStub.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/rmi/transport/tcp/disableMultiplexing/DisableMultiplexing.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ec/ECDHKeyAgreementParamValidation.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ec/ECDSAPrvGreaterThanOrder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ec/InvalidCurve.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ec/NSASuiteB/TestSHAwithECDSASignatureOids.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ec/OidInstance.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ec/SignatureDigestTruncate.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ec/SignatureKAT.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ec/SignatureParameters.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ec/SignedObjectChain.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all sun/security/ec/TestEC.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ec/ed/EdCRLSign.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ec/ed/EdDSAKeyCompatibility.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ec/ed/EdDSAKeySize.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ec/ed/EdDSANegativeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ec/ed/EdDSAParamSpec.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ec/ed/EdDSAReuseTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ec/ed/EdDSATest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ec/ed/EdECKeyFormat.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ec/ed/EmptyMessage.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ec/ed/TestEdDSA.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ec/ed/TestEdOps.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ec/xec/TestXDH.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ec/xec/XECKeyFormat.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/jca/PreferredProviderNegativeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/jca/PreferredProviderTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all +sun/security/ec/ed/EdCRLSign.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ec/ed/EdDSAKeyCompatibility.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ec/ed/EdDSAKeySize.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ec/ed/EdDSANegativeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ec/ed/EdDSAParamSpec.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ec/ed/EdDSAReuseTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ec/ed/EdDSATest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ec/ed/EdECKeyFormat.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ec/ed/EmptyMessage.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ec/ed/TestEdDSA.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ec/ed/TestEdOps.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ec/xec/TestXDH.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ec/xec/XECKeyFormat.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/jca/PreferredProviderNegativeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/jca/PreferredProviderTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all sun/security/mscapi/AccessKeyStore.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 windows-all sun/security/mscapi/AllTypes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 windows-all sun/security/mscapi/DupAlias.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 windows-all @@ -718,268 +718,268 @@ sun/security/mscapi/KeytoolChangeAlias.java https://github.com/ibmruntimes/openj sun/security/mscapi/NullKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 windows-all sun/security/mscapi/PrngSerialize.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 windows-all sun/security/mscapi/PrngSlow.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 windows-all -sun/security/pkcs/pkcs10/PKCS10AttrEncoding.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/pkcs/pkcs7/PKCS7VerifyTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/pkcs/pkcs7/SignerOrder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/pkcs/pkcs8/PKCS8Test.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/pkcs/pkcs8/TestLeadingZeros.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/pkcs11/KeyStore/ClientAuth.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/pkcs11/Provider/Absolute.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/pkcs11/SecretKeyFactory/TestPBKD.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all +sun/security/pkcs/pkcs10/PKCS10AttrEncoding.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/pkcs/pkcs7/PKCS7VerifyTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/pkcs/pkcs7/SignerOrder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/pkcs/pkcs8/PKCS8Test.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/pkcs/pkcs8/TestLeadingZeros.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/pkcs11/KeyStore/ClientAuth.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/pkcs11/Provider/Absolute.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/pkcs11/SecretKeyFactory/TestPBKD.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-s390x,linux-x64,windows-all -sun/security/pkcs12/Bug6415637.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/pkcs12/EmptyPassword.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/pkcs12/GetAttributes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/pkcs12/KeytoolOpensslInteropTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/pkcs12/P12SecretKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/pkcs12/PBES2Encoding.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/pkcs12/PKCS12SameKeyId.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/pkcs12/ProbeBER.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/pkcs12/ProbeLargeKeystore.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/pkcs12/SameDN.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/pkcs12/SecretKeyAlgorithms.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/pkcs12/StorePasswordTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/pkcs12/StoreSecretKeyTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/pkcs12/StoreTrustedCertTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/pkcs12/WrongPBES2.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/DSA/SecureRandomReset.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/DSA/SupportedDSAParamGen.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/DSA/SupportedDSAParamGenLongKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/DSA/TestAlgParameterGenerator.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/DSA/TestDSA.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/DSA/TestDSA2.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/DSA/TestKeyPairGenerator.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/DSA/TestLegacyDSAKeyPairGenerator.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/DSA/TestMaxLengthDER.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/KeyStore/CaseSensitiveAliases.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/KeyStore/DksWithEmptyKeystore.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/KeyStore/TestJKSWithSecretKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/KeyStore/WrongPassword.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/KeyStore/WrongStoreType.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/MessageDigest/DigestKAT.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/MessageDigest/Offsets.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/MessageDigest/TestSHAClone.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/NSASuiteB/TestDSAGenParameterSpec.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/NSASuiteB/TestDSAGenParameterSpecLongKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/NSASuiteB/TestSHAOids.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/NSASuiteB/TestSHAwithDSASignatureOids.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/PolicyFile/Alias.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/PolicyFile/AliasExpansion.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/PolicyFile/TokenStore.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/PolicyFile/TrustedCert.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/SecureRandom/AbstractDrbg/SpecTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/SecureRandom/AutoReseed.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/SecureRandom/CommonSeeder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/SecureRandom/DRBGAlg.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/SecureRandom/SHA1PRNGReseed.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/SecureRandom/StrongSecureRandom.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/SecureRandom/StrongSeedReader.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/SeedGenerator/SeedGeneratorChoice.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/X509Factory/BadPem.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/X509Factory/BigCRL.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/all/Deterministic.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/certpath/DisabledAlgorithms/CPBuilder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/certpath/DisabledAlgorithms/CPBuilderWithMD5.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/certpath/DisabledAlgorithms/CPValidatorEndEntity.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/certpath/DisabledAlgorithms/CPValidatorIntermediate.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/certpath/DisabledAlgorithms/CPValidatorTrustAnchor.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/certpath/OCSP/OCSPNoContentLength.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/provider/hss/TestHSS.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/BrokenRSAPrivateCrtKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/KeySizeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/PrivateKeyEqualityTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/SignatureTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/SignedObjectChain.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/SpecTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/TestCACerts.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/TestKeyFactory.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/TestKeyPairGenerator.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/TestKeyPairGeneratorExponent.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/TestKeyPairGeneratorInit.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/TestKeyPairGeneratorLength.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/TestRSAOidSupport.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/TestSigGen15.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/TestSignatures.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/WithoutNULL.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/pss/InitAgain.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/pss/PSSKeyCompatibility.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/pss/PSSParametersTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/pss/SerializedPSSKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/pss/SignatureTest2.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/pss/SignatureTestPSS.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/pss/TestPSSKeySupport.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/rsa/pss/TestSigGenPSS.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/ALPN/AlpnGreaseTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/AppInputStream/ReadBlocksClose.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/AppInputStream/ReadHandshake.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/AppInputStream/ReadZeroBytes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/AppInputStream/RemoveMarkReset.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/AppOutputStream/NoExceptionOnClose.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/CertPathRestrictions/TLSRestrictions.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all +sun/security/pkcs12/Bug6415637.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/pkcs12/EmptyPassword.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/pkcs12/GetAttributes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/pkcs12/KeytoolOpensslInteropTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/pkcs12/P12SecretKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/pkcs12/PBES2Encoding.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/pkcs12/PKCS12SameKeyId.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/pkcs12/ProbeBER.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/pkcs12/ProbeLargeKeystore.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/pkcs12/SameDN.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/pkcs12/SecretKeyAlgorithms.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/pkcs12/StorePasswordTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/pkcs12/StoreSecretKeyTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/pkcs12/StoreTrustedCertTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/pkcs12/WrongPBES2.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/DSA/SecureRandomReset.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/DSA/SupportedDSAParamGen.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/DSA/SupportedDSAParamGenLongKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/DSA/TestAlgParameterGenerator.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/DSA/TestDSA.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/DSA/TestDSA2.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/DSA/TestKeyPairGenerator.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/DSA/TestLegacyDSAKeyPairGenerator.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/DSA/TestMaxLengthDER.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/KeyStore/CaseSensitiveAliases.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/KeyStore/DksWithEmptyKeystore.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/KeyStore/TestJKSWithSecretKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/KeyStore/WrongPassword.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/KeyStore/WrongStoreType.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/MessageDigest/DigestKAT.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/MessageDigest/Offsets.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/MessageDigest/TestSHAClone.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/NSASuiteB/TestDSAGenParameterSpec.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/NSASuiteB/TestDSAGenParameterSpecLongKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/NSASuiteB/TestSHAOids.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/NSASuiteB/TestSHAwithDSASignatureOids.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/PolicyFile/Alias.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/PolicyFile/AliasExpansion.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/PolicyFile/TokenStore.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/PolicyFile/TrustedCert.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/SecureRandom/AbstractDrbg/SpecTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/SecureRandom/AutoReseed.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/SecureRandom/CommonSeeder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/SecureRandom/DRBGAlg.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/SecureRandom/SHA1PRNGReseed.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/SecureRandom/StrongSecureRandom.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/SecureRandom/StrongSeedReader.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/SeedGenerator/SeedGeneratorChoice.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/X509Factory/BadPem.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/X509Factory/BigCRL.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/all/Deterministic.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/certpath/DisabledAlgorithms/CPBuilder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/certpath/DisabledAlgorithms/CPBuilderWithMD5.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/certpath/DisabledAlgorithms/CPValidatorEndEntity.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/certpath/DisabledAlgorithms/CPValidatorIntermediate.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/certpath/DisabledAlgorithms/CPValidatorTrustAnchor.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/certpath/OCSP/OCSPNoContentLength.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/provider/hss/TestHSS.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/BrokenRSAPrivateCrtKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/KeySizeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/PrivateKeyEqualityTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/SignatureTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/SignedObjectChain.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/SpecTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/TestCACerts.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/TestKeyFactory.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/TestKeyPairGenerator.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/TestKeyPairGeneratorExponent.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/TestKeyPairGeneratorInit.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/TestKeyPairGeneratorLength.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/TestRSAOidSupport.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/TestSigGen15.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/TestSignatures.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/WithoutNULL.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/pss/InitAgain.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/pss/PSSKeyCompatibility.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/pss/PSSParametersTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/pss/SerializedPSSKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/pss/SignatureTest2.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/pss/SignatureTestPSS.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/pss/TestPSSKeySupport.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/rsa/pss/TestSigGenPSS.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/ALPN/AlpnGreaseTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/AppInputStream/ReadBlocksClose.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/AppInputStream/ReadHandshake.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/AppInputStream/ReadZeroBytes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/AppInputStream/RemoveMarkReset.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/AppOutputStream/NoExceptionOnClose.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/CertPathRestrictions/TLSRestrictions.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all sun/security/ssl/CipherSuite/DisabledCurve.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/CipherSuite/LegacyConstraints.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all +sun/security/ssl/CipherSuite/LegacyConstraints.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all sun/security/ssl/CipherSuite/NamedGroupsWithCipherSuite.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/CipherSuite/RestrictNamedGroup.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/CipherSuite/RestrictSignatureScheme.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all +sun/security/ssl/CipherSuite/RestrictNamedGroup.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/CipherSuite/RestrictSignatureScheme.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all sun/security/ssl/CipherSuite/SupportedGroups.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/ClientHandshaker/CipherSuiteOrder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/ClientHandshaker/LengthCheckTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/ClientHandshaker/RSAExport.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/DHKeyExchange/DHEKeySizing.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/DHKeyExchange/LegacyDHEKeyExchange.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/DHKeyExchange/UseStrongDHSizes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/EngineArgs/DebugReportsOneExtraByte.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/GenSSLConfigs/main.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/HandshakeHash/HandshakeHashCloneExhaustion.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/HandshakeOutStream/NullCerts.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/InputRecord/ClientHelloRead.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/InputRecord/SSLSocketTimeoutNulls.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/ProtocolVersion/HttpsProtocols.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLCipher/ReadOnlyEngine.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLContextImpl/CustomizedCipherSuites.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLContextImpl/CustomizedDTLSDefaultProtocols.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLContextImpl/CustomizedDTLSServerDefaultProtocols.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLContextImpl/CustomizedDefaultProtocols.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLContextImpl/CustomizedServerDefaultProtocols.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLContextImpl/DefaultDTLSEnabledProtocols.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLContextImpl/DefaultEnabledProtocols.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLContextImpl/GoodProvider.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLContextImpl/IllegalProtocolProperty.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLContextImpl/MD2InTrustAnchor.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLContextImpl/MultipleChooseAlias.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLContextImpl/NoOldVersionContext.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLContextImpl/SSLContextDefault.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLContextImpl/SSLContextVersion.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLContextImpl/TrustTrustedCert.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLEngineImpl/CloseEngineException.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLEngineImpl/CloseStart.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLEngineImpl/DelegatedTaskWrongException.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLEngineImpl/EmptyExtensionData.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLEngineImpl/EngineEnforceUseClientMode.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLEngineImpl/RehandshakeFinished.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLEngineImpl/SSLEngineBadBufferArrayAccess.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLEngineImpl/SSLEngineDeadlock.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLEngineImpl/SSLEngineEmptyFragments.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLEngineImpl/SSLEngineFailedALPN.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLEngineImpl/SSLEngineKeyLimit.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLEngineImpl/TLS13BeginHandshake.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLEngineImpl/TestBadDNForPeerCA.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLEngineImpl/TestBadDNForPeerCA12.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLLogger/LoggingFormatConsistency.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSessionImpl/HashCodeMissing.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSessionImpl/InvalidateSession.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSessionImpl/NoInvalidateSocketException.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSessionImpl/ResumeChecksClient.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSessionImpl/ResumeChecksClientStateless.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSessionImpl/ResumeChecksServer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSessionImpl/ResumeChecksServerStateless.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSessionImpl/ResumptionUpdateBoundValues.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/AsyncSSLSocketClose.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/BlockedAsyncClose.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/ClientModeClientAuth.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/ClientSocketCloseHang.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/ClientTimeout.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/CloseSocket.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/CloseSocketException.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/DisableExtensions.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/IgnorableExceptionMessages.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/LargePacketAfterHandshakeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/NewSocketMethods.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/NoImpactServerRenego.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/NotifyHandshakeTest.sh https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/RejectClientRenego.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/ReuseAddr.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/ReverseNameLookup.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/SSLSocketBruteForceClose.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/SSLSocketClose.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/SSLSocketCloseHang.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/SSLSocketEmptyFragments.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/SSLSocketKeyLimit.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/SSLSocketSSLEngineCloseInbound.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/SSLSocketShouldThrowSocketException.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/ServerRenegoWithTwoVersions.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/ServerTimeout.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/SetSoTimeout.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/SocketExceptionForSocketIssues.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SSLSocketImpl/UnconnectedSocketWrongExceptions.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/ServerHandshaker/AnonCipherWithWantClientAuth.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/ServerHandshaker/GetPeerHost.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/ServerHandshaker/HelloExtensionsTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SignatureScheme/CustomizedClientSchemes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SignatureScheme/CustomizedServerSchemes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SignatureScheme/SigAlgosExtTestWithTLS12.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SignatureScheme/SigAlgosExtTestWithTLS13.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SignatureScheme/SigSchemePropOrdering.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SignatureScheme/Tls13NamedGroups.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/SocketCreation/SocketCreation.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/Stapling/StatusResponseManager.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/X509KeyManager/CertificateAuthorities.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/X509KeyManager/NoGoodKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/X509KeyManager/PreferredKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/X509KeyManager/SelectOneKeyOutOfMany.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/X509TrustManagerImpl/BasicConstraints.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/X509TrustManagerImpl/BasicConstraints12.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/X509TrustManagerImpl/CertRequestOverflow.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/X509TrustManagerImpl/CheckNullEntity.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/X509TrustManagerImpl/ComodoHacker.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/X509TrustManagerImpl/PKIXExtendedTM.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/X509TrustManagerImpl/SelfIssuedCert.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/X509TrustManagerImpl/SunX509ExtendedTM.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/X509TrustManagerImpl/TooManyCAs.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/X509TrustManagerImpl/X509ExtendedTMEnabled.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/internal/TestRun.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/ssl/spi/ProviderInit.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/jarsigner/DefaultSigalg.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/jarsigner/EntriesOrder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/jarsigner/JarSigningNonAscii.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/jarsigner/LargeJarEntry.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/jarsigner/LineBrokenMultiByteCharacter.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all +sun/security/ssl/ClientHandshaker/CipherSuiteOrder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/ClientHandshaker/LengthCheckTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/ClientHandshaker/RSAExport.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/DHKeyExchange/DHEKeySizing.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/DHKeyExchange/LegacyDHEKeyExchange.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/DHKeyExchange/UseStrongDHSizes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/EngineArgs/DebugReportsOneExtraByte.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/GenSSLConfigs/main.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/HandshakeHash/HandshakeHashCloneExhaustion.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/HandshakeOutStream/NullCerts.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/InputRecord/ClientHelloRead.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/InputRecord/SSLSocketTimeoutNulls.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/ProtocolVersion/HttpsProtocols.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLCipher/ReadOnlyEngine.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLContextImpl/CustomizedCipherSuites.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLContextImpl/CustomizedDTLSDefaultProtocols.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLContextImpl/CustomizedDTLSServerDefaultProtocols.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLContextImpl/CustomizedDefaultProtocols.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLContextImpl/CustomizedServerDefaultProtocols.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLContextImpl/DefaultDTLSEnabledProtocols.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLContextImpl/DefaultEnabledProtocols.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLContextImpl/GoodProvider.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLContextImpl/IllegalProtocolProperty.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLContextImpl/MD2InTrustAnchor.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLContextImpl/MultipleChooseAlias.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLContextImpl/NoOldVersionContext.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLContextImpl/SSLContextDefault.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLContextImpl/SSLContextVersion.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLContextImpl/TrustTrustedCert.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLEngineImpl/CloseEngineException.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLEngineImpl/CloseStart.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLEngineImpl/DelegatedTaskWrongException.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLEngineImpl/EmptyExtensionData.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLEngineImpl/EngineEnforceUseClientMode.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLEngineImpl/RehandshakeFinished.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLEngineImpl/SSLEngineBadBufferArrayAccess.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLEngineImpl/SSLEngineDeadlock.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLEngineImpl/SSLEngineEmptyFragments.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLEngineImpl/SSLEngineFailedALPN.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLEngineImpl/SSLEngineKeyLimit.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLEngineImpl/TLS13BeginHandshake.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLEngineImpl/TestBadDNForPeerCA.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLEngineImpl/TestBadDNForPeerCA12.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLLogger/LoggingFormatConsistency.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSessionImpl/HashCodeMissing.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSessionImpl/InvalidateSession.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSessionImpl/NoInvalidateSocketException.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSessionImpl/ResumeChecksClient.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSessionImpl/ResumeChecksClientStateless.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSessionImpl/ResumeChecksServer.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSessionImpl/ResumeChecksServerStateless.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSessionImpl/ResumptionUpdateBoundValues.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/AsyncSSLSocketClose.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/BlockedAsyncClose.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/ClientModeClientAuth.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/ClientSocketCloseHang.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/ClientTimeout.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/CloseSocket.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/CloseSocketException.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/DisableExtensions.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/IgnorableExceptionMessages.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/LargePacketAfterHandshakeTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/NewSocketMethods.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/NoImpactServerRenego.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/NotifyHandshakeTest.sh https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/RejectClientRenego.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/ReuseAddr.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/ReverseNameLookup.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/SSLSocketBruteForceClose.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/SSLSocketClose.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/SSLSocketCloseHang.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/SSLSocketEmptyFragments.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/SSLSocketKeyLimit.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/SSLSocketSSLEngineCloseInbound.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/SSLSocketShouldThrowSocketException.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/ServerRenegoWithTwoVersions.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/ServerTimeout.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/SetSoTimeout.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/SocketExceptionForSocketIssues.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SSLSocketImpl/UnconnectedSocketWrongExceptions.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/ServerHandshaker/AnonCipherWithWantClientAuth.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/ServerHandshaker/GetPeerHost.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/ServerHandshaker/HelloExtensionsTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SignatureScheme/CustomizedClientSchemes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SignatureScheme/CustomizedServerSchemes.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SignatureScheme/SigAlgosExtTestWithTLS12.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SignatureScheme/SigAlgosExtTestWithTLS13.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SignatureScheme/SigSchemePropOrdering.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SignatureScheme/Tls13NamedGroups.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/SocketCreation/SocketCreation.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/Stapling/StatusResponseManager.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/X509KeyManager/CertificateAuthorities.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/X509KeyManager/NoGoodKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/X509KeyManager/PreferredKey.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/X509KeyManager/SelectOneKeyOutOfMany.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/X509TrustManagerImpl/BasicConstraints.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/X509TrustManagerImpl/BasicConstraints12.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/X509TrustManagerImpl/CertRequestOverflow.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/X509TrustManagerImpl/CheckNullEntity.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/X509TrustManagerImpl/ComodoHacker.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/X509TrustManagerImpl/PKIXExtendedTM.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/X509TrustManagerImpl/SelfIssuedCert.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/X509TrustManagerImpl/SunX509ExtendedTM.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/X509TrustManagerImpl/TooManyCAs.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/X509TrustManagerImpl/X509ExtendedTMEnabled.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/internal/TestRun.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/ssl/spi/ProviderInit.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/jarsigner/DefaultSigalg.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/jarsigner/EntriesOrder.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/jarsigner/JarSigningNonAscii.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/jarsigner/LargeJarEntry.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/jarsigner/LineBrokenMultiByteCharacter.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all sun/security/tools/jarsigner/PreserveRawManifestEntryAndDigest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/jarsigner/Test4431684.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/jarsigner/TimestampCheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/jarsigner/TsacertOptionTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/jarsigner/multiRelease/MVJarSigningTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/jarsigner/warnings/NoTimestampTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/CheckCertAKID.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/CloneKeyAskPassword.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/CloseFile.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/DupImport.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/EmptyField.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/GenKeyPairSigner.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/GenerateAll.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/GroupName.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/HasSrcStoretypeOption.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/ImportPrompt.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/JKStoPKCS12.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/KeyToolTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/NewSize7.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/PKCS12Passwd.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/PrintSSL.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/Serial64.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/StartDateTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/StorePasswords.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/UnknownAndUnparseable.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/WeakAlg.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/fakecacerts/TrustedCRL.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/fakecacerts/TrustedCert.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/fakegen/DefaultSignatureAlgorithm.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/tools/keytool/fakegen/PSS.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/util/Debug/DebugOptions.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/util/HostnameChecker/NullHostnameCheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/util/InternalPrivateKey/Correctness.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/validator/EndEntityExtensionCheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/validator/certreplace.sh https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/validator/samedn.sh https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/x509/AlgorithmId/ExtensibleAlgorithmId.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/x509/AlgorithmId/NonStandardNames.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/x509/AlgorithmId/OmitAlgIdParam.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/x509/AlgorithmId/PBES2.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/x509/AlgorithmId/Uppercase.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/x509/OtherName/Parse.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/x509/URICertStore/CRLReadTimeout.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/x509/URICertStore/ExtensionsWithLDAP.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/x509/X509CRLImpl/OrderAndDup.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/x509/X509CRLImpl/Verify.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/x509/X509CertImpl/V3Certificate.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all -sun/security/x509/X509CertImpl/Verify.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 aix-all,linux-ppc64le,linux-s390x,linux-x64,windows-all +sun/security/tools/jarsigner/Test4431684.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/jarsigner/TimestampCheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/jarsigner/TsacertOptionTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/jarsigner/multiRelease/MVJarSigningTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/jarsigner/warnings/NoTimestampTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/CheckCertAKID.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/CloneKeyAskPassword.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/CloseFile.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/DupImport.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/EmptyField.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/GenKeyPairSigner.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/GenerateAll.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/GroupName.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/HasSrcStoretypeOption.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/ImportPrompt.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/JKStoPKCS12.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/KeyToolTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/NewSize7.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/PKCS12Passwd.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/PrintSSL.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/Serial64.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/StartDateTest.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/StorePasswords.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/UnknownAndUnparseable.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/WeakAlg.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/fakecacerts/TrustedCRL.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/fakecacerts/TrustedCert.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/fakegen/DefaultSignatureAlgorithm.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/tools/keytool/fakegen/PSS.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/util/Debug/DebugOptions.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/util/HostnameChecker/NullHostnameCheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/util/InternalPrivateKey/Correctness.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/validator/EndEntityExtensionCheck.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/validator/certreplace.sh https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/validator/samedn.sh https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/x509/AlgorithmId/ExtensibleAlgorithmId.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/x509/AlgorithmId/NonStandardNames.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/x509/AlgorithmId/OmitAlgIdParam.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/x509/AlgorithmId/PBES2.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/x509/AlgorithmId/Uppercase.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/x509/OtherName/Parse.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/x509/URICertStore/CRLReadTimeout.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/x509/URICertStore/ExtensionsWithLDAP.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/x509/X509CRLImpl/OrderAndDup.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/x509/X509CRLImpl/Verify.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/x509/X509CertImpl/V3Certificate.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all +sun/security/x509/X509CertImpl/Verify.java https://github.com/ibmruntimes/openj9-openjdk-jdk/issues/820 generic-all From d388c98fabb07ab5ccc3b56072ff776ea8952fd0 Mon Sep 17 00:00:00 2001 From: Serguei Spitsyn Date: Tue, 29 Oct 2024 19:59:43 +0000 Subject: [PATCH 025/159] 8341273: JVMTI is not properly hiding some continuation related methods Reviewed-by: alanb, amenkov --- .../classes/java/lang/VirtualThread.java | 32 +++-- .../classes/jdk/internal/vm/Continuation.java | 5 + .../vm/annotation/JvmtiHideEvents.java | 40 ++++++ .../vm/annotation/JvmtiMountTransition.java | 7 +- .../GetFrameCount/framecnt01/framecnt01.java | 2 +- .../CheckHiddenFrames/CheckHiddenFrames.java | 56 ++++++++ .../libCheckHiddenFrames.cpp | 123 ++++++++++++++++++ 7 files changed, 245 insertions(+), 20 deletions(-) create mode 100644 src/java.base/share/classes/jdk/internal/vm/annotation/JvmtiHideEvents.java create mode 100644 test/hotspot/jtreg/serviceability/jvmti/vthread/CheckHiddenFrames/CheckHiddenFrames.java create mode 100644 test/hotspot/jtreg/serviceability/jvmti/vthread/CheckHiddenFrames/libCheckHiddenFrames.cpp diff --git a/src/java.base/share/classes/java/lang/VirtualThread.java b/src/java.base/share/classes/java/lang/VirtualThread.java index 6eb20fa9e2e..8f389906f2a 100644 --- a/src/java.base/share/classes/java/lang/VirtualThread.java +++ b/src/java.base/share/classes/java/lang/VirtualThread.java @@ -56,6 +56,7 @@ import jdk.internal.vm.annotation.ChangesCurrentThread; import jdk.internal.vm.annotation.Hidden; import jdk.internal.vm.annotation.IntrinsicCandidate; +import jdk.internal.vm.annotation.JvmtiHideEvents; import jdk.internal.vm.annotation.JvmtiMountTransition; import jdk.internal.vm.annotation.ReservedStackAccess; import sun.nio.ch.Interruptible; @@ -213,8 +214,14 @@ protected void onPinned(Continuation.Pinned reason) { private static Runnable wrap(VirtualThread vthread, Runnable task) { return new Runnable() { @Hidden + @JvmtiHideEvents public void run() { - vthread.run(task); + vthread.notifyJvmtiStart(); // notify JVMTI + try { + vthread.run(task); + } finally { + vthread.notifyJvmtiEnd(); // notify JVMTI + } } }; } @@ -389,9 +396,6 @@ private void submitFailed(RejectedExecutionException ree) { private void run(Runnable task) { assert Thread.currentThread() == this && state == RUNNING; - // notify JVMTI, may post VirtualThreadStart event - notifyJvmtiStart(); - // emit JFR event if enabled if (VirtualThreadStartEvent.isTurnedOn()) { var event = new VirtualThreadStartEvent(); @@ -405,20 +409,14 @@ private void run(Runnable task) { } catch (Throwable exc) { dispatchUncaughtException(exc); } finally { - try { - // pop any remaining scopes from the stack, this may block - StackableScope.popAll(); - - // emit JFR event if enabled - if (VirtualThreadEndEvent.isTurnedOn()) { - var event = new VirtualThreadEndEvent(); - event.javaThreadId = threadId(); - event.commit(); - } + // pop any remaining scopes from the stack, this may block + StackableScope.popAll(); - } finally { - // notify JVMTI, may post VirtualThreadEnd event - notifyJvmtiEnd(); + // emit JFR event if enabled + if (VirtualThreadEndEvent.isTurnedOn()) { + var event = new VirtualThreadEndEvent(); + event.javaThreadId = threadId(); + event.commit(); } } } diff --git a/src/java.base/share/classes/jdk/internal/vm/Continuation.java b/src/java.base/share/classes/jdk/internal/vm/Continuation.java index 99d0c62aaec..b863def8e6a 100644 --- a/src/java.base/share/classes/jdk/internal/vm/Continuation.java +++ b/src/java.base/share/classes/jdk/internal/vm/Continuation.java @@ -36,6 +36,7 @@ import jdk.internal.access.JavaLangAccess; import jdk.internal.access.SharedSecrets; import jdk.internal.vm.annotation.Hidden; +import jdk.internal.vm.annotation.JvmtiHideEvents; /** * A one-shot delimited continuation. @@ -305,6 +306,7 @@ private void finish() { @Hidden @DontInline @IntrinsicCandidate + @JvmtiHideEvents private static void enter(Continuation c, boolean isContinue) { // This method runs in the "entry frame". // A yield jumps to this method's caller as if returning from this method. @@ -316,6 +318,7 @@ private static void enter(Continuation c, boolean isContinue) { } @Hidden + @JvmtiHideEvents private void enter0() { target.run(); } @@ -340,6 +343,7 @@ private boolean isEmpty() { * @throws IllegalStateException if not currently in the given {@code scope}, */ @Hidden + @JvmtiHideEvents public static boolean yield(ContinuationScope scope) { Continuation cont = JLA.getContinuation(currentCarrierThread()); Continuation c; @@ -352,6 +356,7 @@ public static boolean yield(ContinuationScope scope) { } @Hidden + @JvmtiHideEvents private boolean yield0(ContinuationScope scope, Continuation child) { preempted = false; diff --git a/src/java.base/share/classes/jdk/internal/vm/annotation/JvmtiHideEvents.java b/src/java.base/share/classes/jdk/internal/vm/annotation/JvmtiHideEvents.java new file mode 100644 index 00000000000..06572e64546 --- /dev/null +++ b/src/java.base/share/classes/jdk/internal/vm/annotation/JvmtiHideEvents.java @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package jdk.internal.vm.annotation; + +import java.lang.annotation.*; + +/** + * A method may be annotated with JvmtiHideEvents to hint that JVMTI events + * should not be generated in context of the annotated method. + * + * @implNote + * This annotation is only used for some VirtualThread and Continuation methods. + */ +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface JvmtiHideEvents { +} diff --git a/src/java.base/share/classes/jdk/internal/vm/annotation/JvmtiMountTransition.java b/src/java.base/share/classes/jdk/internal/vm/annotation/JvmtiMountTransition.java index df0545e46b1..ff9f5d8bbbf 100644 --- a/src/java.base/share/classes/jdk/internal/vm/annotation/JvmtiMountTransition.java +++ b/src/java.base/share/classes/jdk/internal/vm/annotation/JvmtiMountTransition.java @@ -28,8 +28,11 @@ import java.lang.annotation.*; /** - * A method is annotated as "jvmti mount transition" if it starts - * or ends virtual thread mount state transition (VTMS transition). + * A method may be annotated with JvmtiMountTransition to hint + * it is desirable to omit it from JVMTI stack traces. + * Normally, a method is annotated with @JvmtiMountTransition if it starts + * or ends Virtual Thread Mount State (VTMS) transition, so the thread + * identity is undefined or different at method entry and exit. * * @implNote * This annotation is only used for VirtualThread methods. diff --git a/test/hotspot/jtreg/serviceability/jvmti/thread/GetFrameCount/framecnt01/framecnt01.java b/test/hotspot/jtreg/serviceability/jvmti/thread/GetFrameCount/framecnt01/framecnt01.java index 8a7177ec25d..221363f5621 100644 --- a/test/hotspot/jtreg/serviceability/jvmti/thread/GetFrameCount/framecnt01/framecnt01.java +++ b/test/hotspot/jtreg/serviceability/jvmti/thread/GetFrameCount/framecnt01/framecnt01.java @@ -79,7 +79,7 @@ public static void main(String args[]) throws Exception { } // this is too fragile, implementation can change at any time. - checkFrames(vThread1, false, 13); + checkFrames(vThread1, false, 11); LockSupport.unpark(vThread1); vThread1.join(); diff --git a/test/hotspot/jtreg/serviceability/jvmti/vthread/CheckHiddenFrames/CheckHiddenFrames.java b/test/hotspot/jtreg/serviceability/jvmti/vthread/CheckHiddenFrames/CheckHiddenFrames.java new file mode 100644 index 00000000000..1b6d409e30b --- /dev/null +++ b/test/hotspot/jtreg/serviceability/jvmti/vthread/CheckHiddenFrames/CheckHiddenFrames.java @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8341273 + * @summary Verifies JVMTI properly hides frames which are in VTMS transition + * @run main/othervm/native -agentlib:CheckHiddenFrames CheckHiddenFrames + */ + +public class CheckHiddenFrames { + static native boolean checkHidden(Thread t); + + static void sleep(long millis) { + try { + Thread.sleep(millis); + } catch (InterruptedException e) { + } + } + + public static void main(String[] args) throws Exception { + Thread thread = Thread.startVirtualThread(CheckHiddenFrames::test); + System.out.println("Started virtual thread: " + thread); + + if (!checkHidden(thread)) { + thread.interrupt(); + throw new RuntimeException("CheckHiddenFrames failed!"); + } + thread.interrupt(); + thread.join(); + } + + static void test() { + sleep(1000000); + } +} diff --git a/test/hotspot/jtreg/serviceability/jvmti/vthread/CheckHiddenFrames/libCheckHiddenFrames.cpp b/test/hotspot/jtreg/serviceability/jvmti/vthread/CheckHiddenFrames/libCheckHiddenFrames.cpp new file mode 100644 index 00000000000..50f930b5731 --- /dev/null +++ b/test/hotspot/jtreg/serviceability/jvmti/vthread/CheckHiddenFrames/libCheckHiddenFrames.cpp @@ -0,0 +1,123 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +#include +#include "jvmti.h" +#include "jvmti_common.hpp" + +extern "C" { + +const int MAX_COUNT = 50; +static jvmtiEnv *jvmti = nullptr; + +static char* +get_frame_method_name(jvmtiEnv *jvmti, JNIEnv* jni, jthread thread, jint depth) { + jmethodID method = nullptr; + jlocation location = 0; + + jvmtiError err = jvmti->GetFrameLocation(thread, 0, &method, &location); + check_jvmti_status(jni, err, "get_method_name_at_depth: error in JVMTI GetFrameLocation"); + + return get_method_name(jvmti, jni, method); +} + +static bool +method_must_be_hidden(char* mname) { + return strcmp(mname, "yield") == 0 || + strcmp(mname, "yield0") == 0; +} + +static jboolean +check_top_frames_location(jvmtiEnv *jvmti, JNIEnv* jni, jthread thread) { + jboolean status = JNI_TRUE; + + for (int depth = 0; depth < 2; depth++) { + char* mname = get_frame_method_name(jvmti, jni, thread, depth); + + if (method_must_be_hidden(mname)) { + LOG("Failed: GetFrameLocation returned info for frame expected to be hidden: frame[%d]=%s\n", depth, mname); + status = JNI_FALSE; + } + deallocate(jvmti, jni, mname); + } + return status; +} + +static jboolean +check_top_frames_in_stack_trace(jvmtiEnv *jvmti, JNIEnv* jni, jthread thread) { + jboolean status = JNI_TRUE; + jvmtiFrameInfo frameInfo[MAX_COUNT]; + jint count1 = 0; + jint count2 = 0; + + jvmtiError err = jvmti->GetStackTrace(thread, 0, MAX_COUNT, frameInfo, &count1); + check_jvmti_status(jni, err, "check_top_frames_in_stack_trace: error in JVMTI GetStackTrace"); + + for (int depth = 0; depth < 2; depth++) { + char* mname = get_method_name(jvmti, jni, frameInfo[depth].method); + + if (method_must_be_hidden(mname)) { + LOG("Failed: GetStackTrace returned info for frame expected to be hidden: frame[%d]=%s\n", depth, mname); + status = JNI_FALSE; + } + deallocate(jvmti, jni, mname); + } + + err = jvmti->GetFrameCount(thread, &count2); + check_jvmti_status(jni, err, "check_top_frames_in_stack_trace: error in JVMTI GetFrameCount"); + + if (count1 != count2) { + LOG("Failed: frame counts returned by GetStackTrace and GetFrameCount do not match: %d!=%d\n", count1, count2); + status = JNI_FALSE; + } + return status; +} + +JNIEXPORT jboolean JNICALL +Java_CheckHiddenFrames_checkHidden(JNIEnv *jni, jclass clazz, jthread thread) { + jboolean status = JNI_TRUE; + + wait_for_state(jvmti, jni, thread, JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT); + print_stack_trace(jvmti, jni, thread); + + + if (!check_top_frames_location(jvmti, jni, thread)) { + status = JNI_FALSE; + } + if (!check_top_frames_in_stack_trace(jvmti, jni, thread)) { + status = JNI_FALSE; + } + return status; +} + +extern JNIEXPORT jint JNICALL +Agent_OnLoad(JavaVM *jvm, char *options, void *reserved) { + LOG("Agent_OnLoad started\n"); + if (jvm->GetEnv((void **)(&jvmti), JVMTI_VERSION) != JNI_OK) { + return JNI_ERR; + } + LOG("Agent_OnLoad finished\n"); + return JNI_OK; +} + +} // extern "C" From dc89e02bd073c163978b5d317b9ad9cbd2ef9888 Mon Sep 17 00:00:00 2001 From: SendaoYan Date: Tue, 29 Oct 2024 23:17:52 +0000 Subject: [PATCH 026/159] 8343211: Compile error: redefinition of 'Assembler::evmovdquw(XMMRegister,KRegister,XMMRegister,bool,int)' Reviewed-by: vpaprotski, sviswanathan, thartmann, shade --- .../compiler/testlibrary/sha/predicate/IntrinsicPredicates.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/hotspot/jtreg/compiler/testlibrary/sha/predicate/IntrinsicPredicates.java b/test/hotspot/jtreg/compiler/testlibrary/sha/predicate/IntrinsicPredicates.java index 19257f81614..0c53c36af1d 100644 --- a/test/hotspot/jtreg/compiler/testlibrary/sha/predicate/IntrinsicPredicates.java +++ b/test/hotspot/jtreg/compiler/testlibrary/sha/predicate/IntrinsicPredicates.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it From e6e70b75e3d6a8efdd4ae8df6fef9bdcaf7adbca Mon Sep 17 00:00:00 2001 From: Alexey Semenyuk Date: Wed, 30 Oct 2024 02:41:45 +0000 Subject: [PATCH 027/159] 8342576: [macos] AppContentTest still fails after JDK-8341443 for same reason on older macOS versions Co-authored-by: Alexander Matveev Reviewed-by: almatvee --- .../helpers/jdk/jpackage/test/TKit.java | 4 +- .../tools/jpackage/share/AppContentTest.java | 115 +++++++++++++----- 2 files changed, 90 insertions(+), 29 deletions(-) diff --git a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java index af892f18f7b..1466714f8dd 100644 --- a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java +++ b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java @@ -296,7 +296,9 @@ private static Path createUniqueFileName(String defaultName) { if (!path.toFile().exists()) { return path; } - nameComponents[0] = String.format("%s.%d", baseName, i); + // Don't use period (.) as a separator. OSX codesign fails to sign folders + // with subfolders with names like "input.0". + nameComponents[0] = String.format("%s-%d", baseName, i); } throw new IllegalStateException(String.format( "Failed to create unique file name from [%s] basename after %d attempts", diff --git a/test/jdk/tools/jpackage/share/AppContentTest.java b/test/jdk/tools/jpackage/share/AppContentTest.java index a343e20d8a7..94362530751 100644 --- a/test/jdk/tools/jpackage/share/AppContentTest.java +++ b/test/jdk/tools/jpackage/share/AppContentTest.java @@ -21,23 +21,25 @@ * questions. */ -import java.nio.file.Path; +import java.io.IOException; import java.nio.file.Files; -import jdk.jpackage.internal.ApplicationLayout; +import java.nio.file.Path; import jdk.jpackage.test.PackageTest; -import jdk.jpackage.test.PackageType; import jdk.jpackage.test.TKit; import jdk.jpackage.test.Annotations.Test; -import jdk.jpackage.test.Annotations.Parameter; import jdk.jpackage.test.Annotations.Parameters; import java.util.Arrays; import java.util.Collection; import java.util.List; +import static java.util.stream.Collectors.joining; +import java.util.stream.Stream; +import jdk.jpackage.internal.IOUtils; +import jdk.jpackage.test.Functional.ThrowingFunction; +import jdk.jpackage.test.JPackageCommand; -import jdk.internal.util.OSVersion; /** - * Tests generation of packages with input folder containing empty folders. + * Tests generation of packages with additional content in app image. */ /* @@ -55,14 +57,18 @@ */ public class AppContentTest { - private static final String TEST_JAVA = TKit.TEST_SRC_ROOT.resolve( - "apps/PrintEnv.java").toString(); - private static final String TEST_DUKE = TKit.TEST_SRC_ROOT.resolve( - "apps/dukeplug.png").toString(); - private static final String TEST_DIR = TKit.TEST_SRC_ROOT.resolve( - "apps").toString(); - private static final String TEST_BAD = TKit.TEST_SRC_ROOT.resolve( - "non-existant").toString(); + private static final String TEST_JAVA = "apps/PrintEnv.java"; + private static final String TEST_DUKE = "apps/dukeplug.png"; + private static final String TEST_DIR = "apps"; + private static final String TEST_BAD = "non-existant"; + + // On OSX `--app-content` paths will be copied into the "Contents" folder + // of the output app image. + // "codesign" imposes restrictions on the directory structure of "Contents" folder. + // In particular, random files should be placed in "Contents/Resources" folder + // otherwise "codesign" will fail to sign. + // Need to prepare arguments for `--app-content` accordingly. + private final static boolean copyInResources = TKit.isOSX(); private final List testPathArgs; @@ -82,37 +88,90 @@ public AppContentTest(String... testPathArgs) { @Test public void test() throws Exception { - - // On macOS signing may or may not work for modified app bundles. - // It works on macOS 15 and up, but fails on macOS below 15. final int expectedJPackageExitCode; - final boolean isMacOS15 = (OSVersion.current().compareTo( - new OSVersion(15, 0, 0)) > 0); - if (testPathArgs.contains(TEST_BAD) || (TKit.isOSX() && !isMacOS15)) { + if (testPathArgs.contains(TEST_BAD)) { expectedJPackageExitCode = 1; } else { expectedJPackageExitCode = 0; } + var appContentInitializer = new AppContentInitializer(testPathArgs); + new PackageTest().configureHelloApp() - .addInitializer(cmd -> { - for (String arg : testPathArgs) { - cmd.addArguments("--app-content", arg); - } - }) + .addRunOnceInitializer(appContentInitializer::initAppContent) + .addInitializer(appContentInitializer::applyTo) .addInstallVerifier(cmd -> { - ApplicationLayout appLayout = cmd.appLayout(); - Path contentDir = appLayout.contentDirectory(); + Path baseDir = getAppContentRoot(cmd); for (String arg : testPathArgs) { List paths = Arrays.asList(arg.split(",")); for (String p : paths) { Path name = Path.of(p).getFileName(); - TKit.assertPathExists(contentDir.resolve(name), true); + TKit.assertPathExists(baseDir.resolve(name), true); } } }) .setExpectedExitCode(expectedJPackageExitCode) .run(); + } + + private static Path getAppContentRoot(JPackageCommand cmd) { + Path contentDir = cmd.appLayout().contentDirectory(); + if (copyInResources) { + return contentDir.resolve("Resources"); + } else { + return contentDir; } + } + + private static final class AppContentInitializer { + AppContentInitializer(List appContentArgs) { + appContentPathGroups = appContentArgs.stream().map(arg -> { + return Stream.of(arg.split(",")).map(Path::of).toList(); + }).toList(); + } + + void initAppContent() { + jpackageArgs = appContentPathGroups.stream() + .map(AppContentInitializer::initAppContentPaths) + .mapMulti((appContentPaths, consumer) -> { + consumer.accept("--app-content"); + consumer.accept( + appContentPaths.stream().map(Path::toString).collect( + joining(","))); + }).toList(); + } + + void applyTo(JPackageCommand cmd) { + cmd.addArguments(jpackageArgs); + } + + private static Path copyAppContentPath(Path appContentPath) throws IOException { + var appContentArg = TKit.createTempDirectory("app-content").resolve("Resources"); + var srcPath = TKit.TEST_SRC_ROOT.resolve(appContentPath); + var dstPath = appContentArg.resolve(srcPath.getFileName()); + Files.createDirectories(dstPath.getParent()); + IOUtils.copyRecursive(srcPath, dstPath); + return appContentArg; + } + + private static List initAppContentPaths(List appContentPaths) { + if (copyInResources) { + return appContentPaths.stream().map(appContentPath -> { + if (appContentPath.endsWith(TEST_BAD)) { + return appContentPath; + } else { + return ThrowingFunction.toFunction( + AppContentInitializer::copyAppContentPath).apply( + appContentPath); + } + }).toList(); + } else { + return appContentPaths.stream().map(TKit.TEST_SRC_ROOT::resolve).toList(); + } + } + + private List jpackageArgs; + private final List> appContentPathGroups; + } } From 0d744cd504024cf5ac3f4d39c91afed075068c1d Mon Sep 17 00:00:00 2001 From: Prasanta Sadhukhan Date: Wed, 30 Oct 2024 02:52:54 +0000 Subject: [PATCH 028/159] 8343037: Missing @since tag on JColorChooser.showDialog overload Reviewed-by: prr --- src/java.desktop/share/classes/javax/swing/JColorChooser.java | 2 ++ .../javax/swing/colorchooser/AbstractColorChooserPanel.java | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/java.desktop/share/classes/javax/swing/JColorChooser.java b/src/java.desktop/share/classes/javax/swing/JColorChooser.java index 945c6f60697..62c4fe8b083 100644 --- a/src/java.desktop/share/classes/javax/swing/JColorChooser.java +++ b/src/java.desktop/share/classes/javax/swing/JColorChooser.java @@ -175,7 +175,9 @@ public static Color showDialog(Component component, * @return the selected color or null if the user opted out * @throws HeadlessException if GraphicsEnvironment.isHeadless() * returns true. + * * @see java.awt.GraphicsEnvironment#isHeadless + * @since 9 */ @SuppressWarnings("deprecation") public static Color showDialog(Component component, String title, diff --git a/src/java.desktop/share/classes/javax/swing/colorchooser/AbstractColorChooserPanel.java b/src/java.desktop/share/classes/javax/swing/colorchooser/AbstractColorChooserPanel.java index 9a428492512..5664051cf6b 100644 --- a/src/java.desktop/share/classes/javax/swing/colorchooser/AbstractColorChooserPanel.java +++ b/src/java.desktop/share/classes/javax/swing/colorchooser/AbstractColorChooserPanel.java @@ -229,6 +229,7 @@ void setSelectedColor(Color color) { * * @param b true if the transparency of a color can be selected * @see #isColorTransparencySelectionEnabled() + * @since 9 */ @BeanProperty(description = "Sets the transparency of a color selection on or off.") @@ -241,6 +242,7 @@ public void setColorTransparencySelectionEnabled(boolean b){ * * @return true if the transparency of a color can be selected * @see #setColorTransparencySelectionEnabled(boolean) + * @since 9 */ public boolean isColorTransparencySelectionEnabled(){ return true; From a3f25bf6c61e7931367f0c21fabc01c0087dd0dc Mon Sep 17 00:00:00 2001 From: Amit Kumar Date: Wed, 30 Oct 2024 03:09:47 +0000 Subject: [PATCH 029/159] 8342489: compiler/c2/irTests/TestVectorizationMismatchedAccess.java fails on big-endian platforms Reviewed-by: epeter, mbaesken --- .../TestVectorizationMismatchedAccess.java | 51 ++++++++++--------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/test/hotspot/jtreg/compiler/c2/irTests/TestVectorizationMismatchedAccess.java b/test/hotspot/jtreg/compiler/c2/irTests/TestVectorizationMismatchedAccess.java index 2fdbb0816ad..2d17753ba94 100644 --- a/test/hotspot/jtreg/compiler/c2/irTests/TestVectorizationMismatchedAccess.java +++ b/test/hotspot/jtreg/compiler/c2/irTests/TestVectorizationMismatchedAccess.java @@ -50,9 +50,6 @@ public class TestVectorizationMismatchedAccess { private final static WhiteBox wb = WhiteBox.getWhiteBox(); public static void main(String[] args) { - if (ByteOrder.nativeOrder() != ByteOrder.LITTLE_ENDIAN) { - throw new RuntimeException("fix test that was written for a little endian platform"); - } TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED"); } @@ -77,6 +74,14 @@ public static void main(String[] args) { } } + // Method to adjust the value for the native byte order + static private long handleByteOrder(long value) { + if (ByteOrder.nativeOrder() != ByteOrder.LITTLE_ENDIAN) { + value = Long.reverseBytes(value); + } + return value; + } + static private void runAndVerify(Runnable test, int offset) { System.arraycopy(verifyLongArray, 0, longArray, 0, longArray.length); Arrays.fill(byteArray, (byte)0); @@ -154,7 +159,7 @@ static private void runAndVerify3(Runnable test, int offset) { // might get fixed with JDK-8325155. public static void testByteLong1a(byte[] dest, long[] src) { for (int i = 0; i < src.length; i++) { - UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8 * i, src[i]); + UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8 * i, handleByteOrder(src[i])); } } @@ -165,7 +170,7 @@ public static void testByteLong1a(byte[] dest, long[] src) { // 32-bit: address has ConvL2I for cast of long to address, not supported. public static void testByteLong1b(byte[] dest, long[] src) { for (int i = 0; i < src.length; i++) { - UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8L * i, src[i]); + UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8L * i, handleByteOrder(src[i])); } } @@ -175,7 +180,7 @@ public static void testByteLong1b(byte[] dest, long[] src) { public static void testByteLong1c(byte[] dest, long[] src) { long base = 64; // make sure it is big enough and 8 byte aligned (required for 32-bit) for (int i = 0; i < src.length - 8; i++) { - UNSAFE.putLongUnaligned(dest, base + 8 * i, src[i]); + UNSAFE.putLongUnaligned(dest, base + 8 * i, handleByteOrder(src[i])); } } @@ -187,7 +192,7 @@ public static void testByteLong1c(byte[] dest, long[] src) { public static void testByteLong1d(byte[] dest, long[] src) { long base = 64; // make sure it is big enough and 8 byte aligned (required for 32-bit) for (int i = 0; i < src.length - 8; i++) { - UNSAFE.putLongUnaligned(dest, base + 8L * i, src[i]); + UNSAFE.putLongUnaligned(dest, base + 8L * i, handleByteOrder(src[i])); } } @@ -207,7 +212,7 @@ public static void testByteLong1_runner() { // might get fixed with JDK-8325155. public static void testByteLong2a(byte[] dest, long[] src) { for (int i = 1; i < src.length; i++) { - UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8 * (i - 1), src[i]); + UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8 * (i - 1), handleByteOrder(src[i])); } } @@ -218,7 +223,7 @@ public static void testByteLong2a(byte[] dest, long[] src) { // 32-bit: address has ConvL2I for cast of long to address, not supported. public static void testByteLong2b(byte[] dest, long[] src) { for (int i = 1; i < src.length; i++) { - UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8L * (i - 1), src[i]); + UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8L * (i - 1), handleByteOrder(src[i])); } } @@ -236,7 +241,7 @@ public static void testByteLong2_runner() { // might get fixed with JDK-8325155. public static void testByteLong3a(byte[] dest, long[] src) { for (int i = 0; i < src.length - 1; i++) { - UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8 * (i + 1), src[i]); + UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8 * (i + 1), handleByteOrder(src[i])); } } @@ -247,7 +252,7 @@ public static void testByteLong3a(byte[] dest, long[] src) { // 32-bit: address has ConvL2I for cast of long to address, not supported. public static void testByteLong3b(byte[] dest, long[] src) { for (int i = 0; i < src.length - 1; i++) { - UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8L * (i + 1), src[i]); + UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8L * (i + 1), handleByteOrder(src[i])); } } @@ -267,7 +272,7 @@ public static void testByteLong3_runner() { // AlignVector cannot guarantee that invar is aligned. public static void testByteLong4a(byte[] dest, long[] src, int start, int stop) { for (int i = start; i < stop; i++) { - UNSAFE.putLongUnaligned(dest, 8 * i + baseOffset, src[i]); + UNSAFE.putLongUnaligned(dest, 8 * i + baseOffset, handleByteOrder(src[i])); } } @@ -280,7 +285,7 @@ public static void testByteLong4a(byte[] dest, long[] src, int start, int stop) // AlignVector cannot guarantee that invar is aligned. public static void testByteLong4b(byte[] dest, long[] src, int start, int stop) { for (int i = start; i < stop; i++) { - UNSAFE.putLongUnaligned(dest, 8L * i + baseOffset, src[i]); + UNSAFE.putLongUnaligned(dest, 8L * i + baseOffset, handleByteOrder(src[i])); } } @@ -299,7 +304,7 @@ public static void testByteLong4_runner() { // might get fixed with JDK-8325155. public static void testByteLong5a(byte[] dest, long[] src, int start, int stop) { for (int i = start; i < stop; i++) { - UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8 * (i + baseOffset), src[i]); + UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8 * (i + baseOffset), handleByteOrder(src[i])); } } @@ -310,7 +315,7 @@ public static void testByteLong5a(byte[] dest, long[] src, int start, int stop) // 32-bit: address has ConvL2I for cast of long to address, not supported. public static void testByteLong5b(byte[] dest, long[] src, int start, int stop) { for (int i = start; i < stop; i++) { - UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8L * (i + baseOffset), src[i]); + UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8L * (i + baseOffset), handleByteOrder(src[i])); } } @@ -454,7 +459,7 @@ public static void testByteByte5_runner() { // See: JDK-8331576 public static void testOffHeapLong1a(long dest, long[] src) { for (int i = 0; i < src.length; i++) { - UNSAFE.putLongUnaligned(null, dest + 8 * i, src[i]); + UNSAFE.putLongUnaligned(null, dest + 8 * i, handleByteOrder(src[i])); } } @@ -465,7 +470,7 @@ public static void testOffHeapLong1a(long dest, long[] src) { // See: JDK-8331576 public static void testOffHeapLong1b(long dest, long[] src) { for (int i = 0; i < src.length; i++) { - UNSAFE.putLongUnaligned(null, dest + 8L * i, src[i]); + UNSAFE.putLongUnaligned(null, dest + 8L * i, handleByteOrder(src[i])); } } @@ -482,7 +487,7 @@ public static void testOffHeapLong1_runner() { // See: JDK-8331576 public static void testOffHeapLong2a(long dest, long[] src) { for (int i = 1; i < src.length; i++) { - UNSAFE.putLongUnaligned(null, dest + 8 * (i - 1), src[i]); + UNSAFE.putLongUnaligned(null, dest + 8 * (i - 1), handleByteOrder(src[i])); } } @@ -493,7 +498,7 @@ public static void testOffHeapLong2a(long dest, long[] src) { // See: JDK-8331576 public static void testOffHeapLong2b(long dest, long[] src) { for (int i = 1; i < src.length; i++) { - UNSAFE.putLongUnaligned(null, dest + 8L * (i - 1), src[i]); + UNSAFE.putLongUnaligned(null, dest + 8L * (i - 1), handleByteOrder(src[i])); } } @@ -510,7 +515,7 @@ public static void testOffHeapLong2_runner() { // See: JDK-8331576 public static void testOffHeapLong3a(long dest, long[] src) { for (int i = 0; i < src.length - 1; i++) { - UNSAFE.putLongUnaligned(null, dest + 8 * (i + 1), src[i]); + UNSAFE.putLongUnaligned(null, dest + 8 * (i + 1), handleByteOrder(src[i])); } } @@ -521,7 +526,7 @@ public static void testOffHeapLong3a(long dest, long[] src) { // See: JDK-8331576 public static void testOffHeapLong3b(long dest, long[] src) { for (int i = 0; i < src.length - 1; i++) { - UNSAFE.putLongUnaligned(null, dest + 8L * (i + 1), src[i]); + UNSAFE.putLongUnaligned(null, dest + 8L * (i + 1), handleByteOrder(src[i])); } } @@ -540,7 +545,7 @@ public static void testOffHeapLong3_runner() { // AlignVector cannot guarantee that invar is aligned. public static void testOffHeapLong4a(long dest, long[] src, int start, int stop) { for (int i = start; i < stop; i++) { - UNSAFE.putLongUnaligned(null, dest + 8 * i + baseOffset, src[i]); + UNSAFE.putLongUnaligned(null, dest + 8 * i + baseOffset, handleByteOrder(src[i])); } } @@ -553,7 +558,7 @@ public static void testOffHeapLong4a(long dest, long[] src, int start, int stop) // AlignVector cannot guarantee that invar is aligned. public static void testOffHeapLong4b(long dest, long[] src, int start, int stop) { for (int i = start; i < stop; i++) { - UNSAFE.putLongUnaligned(null, dest + 8L * i + baseOffset, src[i]); + UNSAFE.putLongUnaligned(null, dest + 8L * i + baseOffset, handleByteOrder(src[i])); } } From a08e3084eb44b675f1b76f9e82d32c6f5b81b1b2 Mon Sep 17 00:00:00 2001 From: Chen Liang Date: Wed, 30 Oct 2024 05:58:22 +0000 Subject: [PATCH 030/159] 8250659: Clarify in ParameterizedType.getRawType() doc that only Class is returned Reviewed-by: darcy --- .../java/lang/reflect/ParameterizedType.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/java.base/share/classes/java/lang/reflect/ParameterizedType.java b/src/java.base/share/classes/java/lang/reflect/ParameterizedType.java index 99016623a3e..c78af9ef2ec 100644 --- a/src/java.base/share/classes/java/lang/reflect/ParameterizedType.java +++ b/src/java.base/share/classes/java/lang/reflect/ParameterizedType.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -66,11 +66,15 @@ public interface ParameterizedType extends Type { Type[] getActualTypeArguments(); /** - * Returns the {@code Type} object representing the class or interface - * that declared this type. + * {@return the {@code Type} object representing the class or interface + * that declared this type} + * + * @apiNote + * All {@code ParameterizedType} objects from core reflection return a + * {@link Class}. The static {@code Type} return type allows other + * implementations to represent classes and interfaces not in the current + * runtime. * - * @return the {@code Type} object representing the class or interface - * that declared this type * @since 1.5 */ Type getRawType(); From fbbd46503073666e6eb6f3ee60ef2b2ac342b6fb Mon Sep 17 00:00:00 2001 From: Matthias Baesken Date: Wed, 30 Oct 2024 08:06:54 +0000 Subject: [PATCH 031/159] 8343186: hsdis build libopcodes and libbfd are not found Reviewed-by: erikj, ihse, shade, jwaters --- make/autoconf/lib-hsdis.m4 | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/make/autoconf/lib-hsdis.m4 b/make/autoconf/lib-hsdis.m4 index bd78768d03e..a4d2c5f81f3 100644 --- a/make/autoconf/lib-hsdis.m4 +++ b/make/autoconf/lib-hsdis.m4 @@ -266,8 +266,10 @@ AC_DEFUN([LIB_SETUP_HSDIS_BINUTILS], HSDIS_CFLAGS="-DLIBARCH_$OPENJDK_TARGET_CPU_LEGACY_LIB" elif test "x$BINUTILS_INSTALL_DIR" != x; then disasm_header="\"$BINUTILS_INSTALL_DIR/include/dis-asm.h\"" - if test -e $BINUTILS_INSTALL_DIR/lib/libbfd.a && \ - test -e $BINUTILS_INSTALL_DIR/lib/libopcodes.a && \ + if (test -e $BINUTILS_INSTALL_DIR/lib/libbfd.a || \ + test -e $BINUTILS_INSTALL_DIR/lib64/libbfd.a) && \ + (test -e $BINUTILS_INSTALL_DIR/lib/libopcodes.a || \ + test -e $BINUTILS_INSTALL_DIR/lib64/libopcodes.a) && \ (test -e $BINUTILS_INSTALL_DIR/lib/libiberty.a || \ test -e $BINUTILS_INSTALL_DIR/lib64/libiberty.a || \ test -e $BINUTILS_INSTALL_DIR/lib32/libiberty.a); then @@ -275,7 +277,19 @@ AC_DEFUN([LIB_SETUP_HSDIS_BINUTILS], # libiberty ignores --libdir and may be installed in $BINUTILS_INSTALL_DIR/lib, $BINUTILS_INSTALL_DIR/lib32 # or $BINUTILS_INSTALL_DIR/lib64, depending on system setup + LIBOPCODES_LIB="" + LIBBFD_LIB="" LIBIBERTY_LIB="" + if test -e $BINUTILS_INSTALL_DIR/lib/libbfd.a; then + LIBBFD_LIB="$BINUTILS_INSTALL_DIR/lib/libbfd.a" + else + LIBBFD_LIB="$BINUTILS_INSTALL_DIR/lib64/libbfd.a" + fi + if test -e $BINUTILS_INSTALL_DIR/lib/libopcodes.a; then + LIBOPCODES_LIB="$BINUTILS_INSTALL_DIR/lib/libopcodes.a" + else + LIBOPCODES_LIB="$BINUTILS_INSTALL_DIR/lib64/libopcodes.a" + fi if test -e $BINUTILS_INSTALL_DIR/lib/libiberty.a; then LIBIBERTY_LIB="$BINUTILS_INSTALL_DIR/lib/libiberty.a" elif test -e $BINUTILS_INSTALL_DIR/lib32/libiberty.a; then @@ -283,7 +297,7 @@ AC_DEFUN([LIB_SETUP_HSDIS_BINUTILS], else LIBIBERTY_LIB="$BINUTILS_INSTALL_DIR/lib64/libiberty.a" fi - HSDIS_LIBS="$BINUTILS_INSTALL_DIR/lib/libbfd.a $BINUTILS_INSTALL_DIR/lib/libopcodes.a $LIBIBERTY_LIB" + HSDIS_LIBS="$LIBBFD_LIB $LIBOPCODES_LIB $LIBIBERTY_LIB" # If we have libsframe add it. if test -e $BINUTILS_INSTALL_DIR/lib/libsframe.a; then HSDIS_LIBS="$HSDIS_LIBS $BINUTILS_INSTALL_DIR/lib/libsframe.a" From ca8368689fb0674f154d004d23deb60a2dcb675e Mon Sep 17 00:00:00 2001 From: Jaikiran Pai Date: Wed, 30 Oct 2024 10:39:05 +0000 Subject: [PATCH 032/159] 8343040: Clean up references to JRE in the launcher code Reviewed-by: alanb, darcy --- .../macosx/native/libjli/java_md_macosx.m | 58 +++++----- src/java.base/share/native/libjli/emessages.h | 41 ++----- src/java.base/share/native/libjli/java.c | 8 +- src/java.base/share/native/libjli/java.h | 8 +- src/java.base/unix/native/libjli/java_md.c | 64 +++++------ src/java.base/unix/native/libjli/java_md.h | 4 +- .../unix/native/libjli/java_md_common.c | 10 +- src/java.base/windows/native/libjli/java_md.c | 101 +++++++++--------- 8 files changed, 134 insertions(+), 160 deletions(-) diff --git a/src/java.base/macosx/native/libjli/java_md_macosx.m b/src/java.base/macosx/native/libjli/java_md_macosx.m index 7aeb32be859..354efc69769 100644 --- a/src/java.base/macosx/native/libjli/java_md_macosx.m +++ b/src/java.base/macosx/native/libjli/java_md_macosx.m @@ -149,7 +149,7 @@ /* * Exports the JNI interface from libjli * - * This allows client code to link against the .jre/.jdk bundles, + * This allows client code to link against the JDK bundles, * and not worry about trying to pick a HotSpot to link against. * * Switching architectures is unsupported, since client code has @@ -162,10 +162,10 @@ static InvocationFunctions *GetExportedJNIFunctions() { if (sExportedJNIFunctions != NULL) return sExportedJNIFunctions; - char jrePath[PATH_MAX]; - jboolean gotJREPath = GetJREPath(jrePath, sizeof(jrePath), JNI_FALSE); - if (!gotJREPath) { - JLI_ReportErrorMessage("Failed to GetJREPath()"); + char jdkRoot[PATH_MAX]; + jboolean got = GetJDKInstallRoot(jdkRoot, sizeof(jdkRoot), JNI_FALSE); + if (!got) { + JLI_ReportErrorMessage("Failed to determine JDK installation root"); return NULL; } @@ -183,7 +183,7 @@ } char jvmPath[PATH_MAX]; - jboolean gotJVMPath = GetJVMPath(jrePath, preferredJVM, jvmPath, sizeof(jvmPath)); + jboolean gotJVMPath = GetJVMPath(jdkRoot, preferredJVM, jvmPath, sizeof(jvmPath)); if (!gotJVMPath) { JLI_ReportErrorMessage("Failed to GetJVMPath()"); return NULL; @@ -326,9 +326,9 @@ static void MacOSXStartup(int argc, char *argv[]) { void CreateExecutionEnvironment(int *pargc, char ***pargv, - char jrepath[], jint so_jrepath, + char jdkroot[], jint so_jdkroot, char jvmpath[], jint so_jvmpath, - char jvmcfg[], jint so_jvmcfg) { + char jvmcfg[], jint so_jvmcfg) { /* Compute/set the name of the executable */ SetExecname(*pargv); @@ -336,13 +336,13 @@ static void MacOSXStartup(int argc, char *argv[]) { int argc = *pargc; char **argv = *pargv; - /* Find out where the JRE is that we will be using. */ - if (!GetJREPath(jrepath, so_jrepath, JNI_FALSE) ) { - JLI_ReportErrorMessage(JRE_ERROR1); + /* Find out where the JDK is that we will be using. */ + if (!GetJDKInstallRoot(jdkroot, so_jdkroot, JNI_FALSE) ) { + JLI_ReportErrorMessage(LAUNCHER_ERROR1); exit(2); } JLI_Snprintf(jvmcfg, so_jvmcfg, "%s%slib%sjvm.cfg", - jrepath, FILESEP, FILESEP); + jdkroot, FILESEP, FILESEP); /* Find the specified JVM type */ if (ReadKnownVMs(jvmcfg, JNI_FALSE) < 1) { JLI_ReportErrorMessage(CFG_ERROR7); @@ -356,7 +356,7 @@ static void MacOSXStartup(int argc, char *argv[]) { exit(4); } - if (!GetJVMPath(jrepath, jvmtype, jvmpath, so_jvmpath)) { + if (!GetJVMPath(jdkroot, jvmtype, jvmpath, so_jvmpath)) { JLI_ReportErrorMessage(CFG_ERROR8, jvmtype, jvmpath); exit(4); } @@ -378,7 +378,7 @@ static void MacOSXStartup(int argc, char *argv[]) { * VM choosing is done by the launcher (java.c). */ static jboolean -GetJVMPath(const char *jrepath, const char *jvmtype, +GetJVMPath(const char *jdkroot, const char *jvmtype, char *jvmpath, jint jvmpathsize) { struct stat s; @@ -390,7 +390,7 @@ static void MacOSXStartup(int argc, char *argv[]) { * macosx client library is built thin, i386 only. * 64 bit client requests must load server library */ - JLI_Snprintf(jvmpath, jvmpathsize, "%s/lib/%s/" JVM_DLL, jrepath, jvmtype); + JLI_Snprintf(jvmpath, jvmpathsize, "%s/lib/%s/" JVM_DLL, jdkroot, jvmtype); } JLI_TraceLauncher("Does `%s' exist ... ", jvmpath); @@ -408,15 +408,15 @@ static void MacOSXStartup(int argc, char *argv[]) { } /* - * Find path to JRE based on .exe's location or registry settings. + * Find path to the JDK installation root */ static jboolean -GetJREPath(char *path, jint pathsize, jboolean speculative) +GetJDKInstallRoot(char *path, jint pathsize, jboolean speculative) { char libjava[MAXPATHLEN]; if (GetApplicationHome(path, pathsize)) { - /* Is JRE co-located with the application? */ + /* Is the JDK co-located with the application? */ if (JLI_IsStaticallyLinked()) { char jvm_cfg[MAXPATHLEN]; JLI_Snprintf(jvm_cfg, sizeof(jvm_cfg), "%s/lib/jvm.cfg", path); @@ -445,7 +445,7 @@ static void MacOSXStartup(int argc, char *argv[]) { /* try to find ourselves instead */ Dl_info selfInfo; - dladdr(&GetJREPath, &selfInfo); + dladdr(&GetJDKInstallRoot, &selfInfo); if (JLI_IsStaticallyLinked()) { char jvm_cfg[MAXPATHLEN]; @@ -488,8 +488,8 @@ static void MacOSXStartup(int argc, char *argv[]) { return JNI_TRUE; } - // If libjli.dylib is loaded from a macos bundle MacOS dir, find the JRE dir - // in ../Home. + // If libjli.dylib is loaded from a macos bundle MacOS dir, find the JDK + // install root at ../Home. const char altLastPathComponent[] = "/MacOS/libjli.dylib"; size_t sizeOfAltLastPathComponent = sizeof(altLastPathComponent) - 1; if (pathLen < sizeOfLastPathComponent) { @@ -505,7 +505,7 @@ static void MacOSXStartup(int argc, char *argv[]) { } if (!speculative) - JLI_ReportErrorMessage(JRE_ERROR8 JAVA_DLL); + JLI_ReportErrorMessage(LAUNCHER_ERROR2 JAVA_DLL); return JNI_FALSE; } @@ -642,27 +642,27 @@ static void MacOSXStartup(int argc, char *argv[]) { void* SplashProcAddress(const char* name) { if (!hSplashLib) { - char jrePath[PATH_MAX]; - if (!GetJREPath(jrePath, sizeof(jrePath), JNI_FALSE)) { - JLI_ReportErrorMessage(JRE_ERROR1); + char jdkRoot[PATH_MAX]; + if (!GetJDKInstallRoot(jdkRoot, sizeof(jdkRoot), JNI_FALSE)) { + JLI_ReportErrorMessage(LAUNCHER_ERROR1); return NULL; } char splashPath[PATH_MAX]; const int ret = JLI_Snprintf(splashPath, sizeof(splashPath), - "%s/lib/%s", jrePath, SPLASHSCREEN_SO); + "%s/lib/%s", jdkRoot, SPLASHSCREEN_SO); if (ret >= (int)sizeof(splashPath)) { - JLI_ReportErrorMessage(JRE_ERROR11); + JLI_ReportErrorMessage(LAUNCHER_ERROR3); return NULL; } if (ret < 0) { - JLI_ReportErrorMessage(JRE_ERROR13); + JLI_ReportErrorMessage(LAUNCHER_ERROR5); return NULL; } hSplashLib = dlopen(splashPath, RTLD_LAZY | RTLD_GLOBAL); // It's OK if dlopen() fails. The splash screen library binary file - // might have been stripped out from the JRE image to reduce its size + // might have been stripped out from the JDK image to reduce its size // (e.g. on embedded platforms). if (hSplashLib) { diff --git a/src/java.base/share/native/libjli/emessages.h b/src/java.base/share/native/libjli/emessages.h index 342b116bfc7..6fb7cf4ce90 100644 --- a/src/java.base/share/native/libjli/emessages.h +++ b/src/java.base/share/native/libjli/emessages.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -62,60 +62,33 @@ #define JVM_ERROR1 "Error: Could not create the Java Virtual Machine.\n" GEN_ERROR #define JVM_ERROR2 "Error: Could not detach main thread.\n" JNI_ERROR -#define JAR_ERROR1 "Error: Failed to load Main-Class manifest attribute from\n%s\n%s" #define JAR_ERROR2 "Error: Unable to access jarfile %s" #define JAR_ERROR3 "Error: Invalid or corrupt jarfile %s" -#define CLS_ERROR1 "Error: Could not find the main class %s.\n" JNI_ERROR -#define CLS_ERROR2 "Error: Failed to load Main Class: %s\n%s" -#define CLS_ERROR3 "Error: No main method found in specified class.\n" GEN_ERROR -#define CLS_ERROR4 "Error: Main method not public\n" GEN_ERROR -#define CLS_ERROR5 "Error: main-class: attribute exceeds system limits of %d bytes\n" GEN_ERROR - #define CFG_WARN1 "Warning: %s VM not supported; %s VM will be used" #define CFG_WARN2 "Warning: No leading - on line %d of `%s'" #define CFG_WARN3 "Warning: Missing VM type on line %d of `%s'" -#define CFG_WARN4 "Warning: Missing server class VM on line %d of `%s'" #define CFG_WARN5 "Warning: Unknown VM type on line %d of `%s'" #define CFG_ERROR1 "Error: Corrupt jvm.cfg file; cycle in alias list." #define CFG_ERROR2 "Error: Unable to resolve VM alias %s" #define CFG_ERROR3 "Error: %s VM not supported" -#define CFG_ERROR4 "Error: Unable to locate JRE meeting specification \"%s\"" #define CFG_ERROR5 "Error: Could not determine application home." #define CFG_ERROR6 "Error: could not open `%s'" #define CFG_ERROR7 "Error: no known VMs. (check for corrupt jvm.cfg file)" -#define CFG_ERROR8 "Error: missing `%s' JVM at `%s'.\nPlease install or use the JRE or JDK that contains these missing components." +#define CFG_ERROR8 "Error: missing `%s' JVM at `%s'.\nPlease install a JDK that contains these missing components." #define CFG_ERROR9 "Error: could not determine JVM type." #define CFG_ERROR10 "Error: Argument file size should not be larger than %lu." -#define JRE_ERROR1 "Error: Could not find Java SE Runtime Environment." -#define JRE_ERROR2 "Error: This Java instance does not support a %d-bit JVM.\nPlease install the desired version." -#define JRE_ERROR3 "Error: Improper value at line %d." -#define JRE_ERROR4 "Error: trying to exec %s.\nCheck if file exists and permissions are set correctly." -#define JRE_ERROR5 "Error: Failed to start a %d-bit JVM process from a %d-bit JVM." -#define JRE_ERROR6 "Error: Verify all necessary Java SE components have been installed." -#define JRE_ERROR7 "Error: Either 64-bit processes are not supported by this platform\nor the 64-bit components have not been installed." -#define JRE_ERROR8 "Error: could not find " -#define JRE_ERROR9 "Error: Unable to resolve %s" -#define JRE_ERROR10 "Error: Unable to resolve current executable" -#define JRE_ERROR11 "Error: Path length exceeds maximum length (PATH_MAX)" -#define JRE_ERROR12 "Error: Exec of %s failed" -#define JRE_ERROR13 "Error: String processing operation failed" +#define LAUNCHER_ERROR1 "Error: Could not find Java SE Runtime Environment." +#define LAUNCHER_ERROR2 "Error: could not find " +#define LAUNCHER_ERROR3 "Error: Path length exceeds maximum length (PATH_MAX)" +#define LAUNCHER_ERROR4 "Error: trying to exec %s.\nCheck if file exists and permissions are set correctly." +#define LAUNCHER_ERROR5 "Error: String processing operation failed" #define DLL_ERROR1 "Error: dl failure on line %d" #define DLL_ERROR2 "Error: failed %s, because %s" #define DLL_ERROR3 "Error: could not find executable %s" #define DLL_ERROR4 "Error: Failed to load %s" -#define REG_ERROR1 "Error: opening registry key '%s'" -#define REG_ERROR2 "Error: Failed reading value of registry key:\n\t%s\\CurrentVersion" -#define REG_ERROR3 "Error: Registry key '%s'\\CurrentVersion'\nhas value '%s', but '%s' is required." -#define REG_ERROR4 "Failed reading value of registry key:\n\t%s\\%s\\JavaHome" - -#define SYS_ERROR1 "Error: CreateProcess(%s, ...) failed:" -#define SYS_ERROR2 "Error: WaitForSingleObject() failed." - - - #endif /* _EMESSAGES_H */ diff --git a/src/java.base/share/native/libjli/java.c b/src/java.base/share/native/libjli/java.c index 355ac4b9e28..0bb1daed28a 100644 --- a/src/java.base/share/native/libjli/java.c +++ b/src/java.base/share/native/libjli/java.c @@ -236,7 +236,7 @@ JLI_Launch(int argc, char ** argv, /* main argc, argv */ InvocationFunctions ifn; jlong start = 0, end = 0; char jvmpath[MAXPATHLEN]; - char jrepath[MAXPATHLEN]; + char jdkroot[MAXPATHLEN]; char jvmcfg[MAXPATHLEN]; _fVersion = fullversion; @@ -265,9 +265,9 @@ JLI_Launch(int argc, char ** argv, /* main argc, argv */ } CreateExecutionEnvironment(&argc, &argv, - jrepath, sizeof(jrepath), + jdkroot, sizeof(jdkroot), jvmpath, sizeof(jvmpath), - jvmcfg, sizeof(jvmcfg)); + jvmcfg, sizeof(jvmcfg)); ifn.CreateJavaVM = 0; ifn.GetDefaultJavaVMInitArgs = 0; @@ -2023,7 +2023,7 @@ PrintUsage(JNIEnv* env, jboolean doXUsage) * JVM on the command line. * * The intent of the jvm.cfg file is to allow several JVM libraries to - * be installed in different subdirectories of a single JRE installation, + * be installed in different subdirectories of a single JDK installation, * for space-savings and convenience in testing. * The intent is explicitly not to provide a full aliasing or predicate * mechanism. diff --git a/src/java.base/share/native/libjli/java.h b/src/java.base/share/native/libjli/java.h index 19493fedaae..f39e923cab8 100644 --- a/src/java.base/share/native/libjli/java.h +++ b/src/java.base/share/native/libjli/java.h @@ -111,15 +111,15 @@ GetApplicationHomeFromDll(char *buf, jint bufsize); * Different platforms will implement this, here * pargc is a pointer to the original argc, * pargv is a pointer to the original argv, - * jrepath is an accessible path to the jre as determined by the call - * so_jrepath is the length of the buffer jrepath + * jdkroot is an accessible path to the JDK installation root as determined by the call + * so_jdkroot is the length of the buffer jdkroot * jvmpath is an accessible path to the jvm as determined by the call * so_jvmpath is the length of the buffer jvmpath */ void CreateExecutionEnvironment(int *argc, char ***argv, - char *jrepath, jint so_jrepath, + char *jdkroot, jint so_jdkroot, char *jvmpath, jint so_jvmpath, - char *jvmcfg, jint so_jvmcfg); + char *jvmcfg, jint so_jvmcfg); /* Reports an error message to stderr or a window as appropriate. */ JNIEXPORT void JNICALL diff --git a/src/java.base/unix/native/libjli/java_md.c b/src/java.base/unix/native/libjli/java_md.c index 7f2f5638a6b..c2d2ac93f36 100644 --- a/src/java.base/unix/native/libjli/java_md.c +++ b/src/java.base/unix/native/libjli/java_md.c @@ -253,8 +253,8 @@ RequiresSetenv(const char *jvmpath) { /* * Prevent recursions. Since LD_LIBRARY_PATH is the one which will be set by - * previous versions of the JRE, thus it is the only path that matters here. - * So we check to see if the desired JRE is set. + * previous versions of the JDK, thus it is the only path that matters here. + * So we check to see if the desired JDK is set. */ JLI_StrNCpy(jpath, jvmpath, PATH_MAX); p = JLI_StrRChr(jpath, '/'); @@ -273,7 +273,7 @@ RequiresSetenv(const char *jvmpath) { void CreateExecutionEnvironment(int *pargc, char ***pargv, - char jrepath[], jint so_jrepath, + char jdkroot[], jint so_jdkroot, char jvmpath[], jint so_jvmpath, char jvmcfg[], jint so_jvmcfg) { @@ -294,13 +294,13 @@ CreateExecutionEnvironment(int *pargc, char ***pargv, SetExecname(*pargv); /* Check to see if the jvmpath exists */ - /* Find out where the JRE is that we will be using. */ - if (!GetJREPath(jrepath, so_jrepath, JNI_FALSE)) { - JLI_ReportErrorMessage(JRE_ERROR1); + /* Find out where the JDK is that we will be using. */ + if (!GetJDKInstallRoot(jdkroot, so_jdkroot, JNI_FALSE)) { + JLI_ReportErrorMessage(LAUNCHER_ERROR1); exit(2); } JLI_Snprintf(jvmcfg, so_jvmcfg, "%s%slib%sjvm.cfg", - jrepath, FILESEP, FILESEP); + jdkroot, FILESEP, FILESEP); /* Find the specified JVM type */ if (ReadKnownVMs(jvmcfg, JNI_FALSE) < 1) { JLI_ReportErrorMessage(CFG_ERROR7); @@ -314,7 +314,7 @@ CreateExecutionEnvironment(int *pargc, char ***pargv, exit(4); } - if (!GetJVMPath(jrepath, jvmtype, jvmpath, so_jvmpath)) { + if (!GetJVMPath(jdkroot, jvmtype, jvmpath, so_jvmpath)) { JLI_ReportErrorMessage(CFG_ERROR8, jvmtype, jvmpath); exit(4); } @@ -339,8 +339,8 @@ CreateExecutionEnvironment(int *pargc, char ***pargv, * We will set the LD_LIBRARY_PATH as follows: * * o $JVMPATH (directory portion only) - * o $JRE/lib - * o $JRE/../lib + * o $JDK/lib + * o $JDK/../lib * * followed by the user's previous effective LD_LIBRARY_PATH, if * any. @@ -352,7 +352,7 @@ CreateExecutionEnvironment(int *pargc, char ***pargv, { /* New scope to declare local variable */ char *new_jvmpath = JLI_StringDup(jvmpath); new_runpath_size = ((runpath != NULL) ? JLI_StrLen(runpath) : 0) + - 2 * JLI_StrLen(jrepath) + + 2 * JLI_StrLen(jdkroot) + JLI_StrLen(new_jvmpath) + 52; new_runpath = JLI_MemAlloc(new_runpath_size); newpath = new_runpath + JLI_StrLen(LD_LIBRARY_PATH "="); @@ -372,8 +372,8 @@ CreateExecutionEnvironment(int *pargc, char ***pargv, "%s/lib:" "%s/../lib", new_jvmpath, - jrepath, - jrepath + jdkroot, + jdkroot ); JLI_MemFree(new_jvmpath); @@ -402,7 +402,7 @@ CreateExecutionEnvironment(int *pargc, char ***pargv, if (runpath != 0) { /* ensure storage for runpath + colon + NULL */ if ((JLI_StrLen(runpath) + 1 + 1) > new_runpath_size) { - JLI_ReportErrorMessageSys(JRE_ERROR11); + JLI_ReportErrorMessageSys(LAUNCHER_ERROR3); exit(1); } JLI_StrCat(new_runpath, ":"); @@ -437,14 +437,14 @@ CreateExecutionEnvironment(int *pargc, char ***pargv, #else /* !SETENV_REQUIRED */ execv(newexec, argv); #endif /* SETENV_REQUIRED */ - JLI_ReportErrorMessageSys(JRE_ERROR4, newexec); + JLI_ReportErrorMessageSys(LAUNCHER_ERROR4, newexec); } exit(1); } static jboolean -GetJVMPath(const char *jrepath, const char *jvmtype, +GetJVMPath(const char *jdkroot, const char *jvmtype, char *jvmpath, jint jvmpathsize) { struct stat s; @@ -452,7 +452,7 @@ GetJVMPath(const char *jrepath, const char *jvmtype, if (JLI_StrChr(jvmtype, '/')) { JLI_Snprintf(jvmpath, jvmpathsize, "%s/" JVM_DLL, jvmtype); } else { - JLI_Snprintf(jvmpath, jvmpathsize, "%s/lib/%s/" JVM_DLL, jrepath, jvmtype); + JLI_Snprintf(jvmpath, jvmpathsize, "%s/lib/%s/" JVM_DLL, jdkroot, jvmtype); } JLI_TraceLauncher("Does `%s' exist ... ", jvmpath); @@ -467,31 +467,31 @@ GetJVMPath(const char *jrepath, const char *jvmtype, } /* - * Find path to JRE based on .exe's location or registry settings. + * Find path to the JDK installation root */ static jboolean -GetJREPath(char *path, jint pathsize, jboolean speculative) +GetJDKInstallRoot(char *path, jint pathsize, jboolean speculative) { char libjava[MAXPATHLEN]; struct stat s; - JLI_TraceLauncher("Attempt to get JRE path from launcher executable path\n"); + JLI_TraceLauncher("Attempt to get JDK installation root from launcher executable path\n"); if (GetApplicationHome(path, pathsize)) { - /* Is JRE co-located with the application? */ + /* Is JDK co-located with the application? */ JLI_Snprintf(libjava, sizeof(libjava), "%s/lib/" JAVA_DLL, path); if (access(libjava, F_OK) == 0) { - JLI_TraceLauncher("JRE path is %s\n", path); + JLI_TraceLauncher("JDK installation root path is %s\n", path); return JNI_TRUE; } } - JLI_TraceLauncher("Attempt to get JRE path from shared lib of the image\n"); + JLI_TraceLauncher("Attempt to get JDK installation root path from shared lib of the image\n"); if (GetApplicationHomeFromDll(path, pathsize)) { JLI_Snprintf(libjava, sizeof(libjava), "%s/lib/" JAVA_DLL, path); if (stat(libjava, &s) == 0) { - JLI_TraceLauncher("JRE path is %s\n", path); + JLI_TraceLauncher("JDK installation root path is %s\n", path); return JNI_TRUE; } } @@ -501,14 +501,14 @@ GetJREPath(char *path, jint pathsize, jboolean speculative) if (GetApplicationHomeFromLibpath(path, pathsize)) { JLI_Snprintf(libjava, sizeof(libjava), "%s/lib/" JAVA_DLL, path); if (stat(libjava, &s) == 0) { - JLI_TraceLauncher("JRE path is %s\n", path); + JLI_TraceLauncher("JDK installation root path is %s\n", path); return JNI_TRUE; } } #endif if (!speculative) - JLI_ReportErrorMessage(JRE_ERROR8 JAVA_DLL); + JLI_ReportErrorMessage(LAUNCHER_ERROR2 JAVA_DLL); return JNI_FALSE; } @@ -597,22 +597,22 @@ static void* hSplashLib = NULL; void* SplashProcAddress(const char* name) { if (!hSplashLib) { int ret; - char jrePath[MAXPATHLEN]; + char jdkRoot[MAXPATHLEN]; char splashPath[MAXPATHLEN]; - if (!GetJREPath(jrePath, sizeof(jrePath), JNI_FALSE)) { - JLI_ReportErrorMessage(JRE_ERROR1); + if (!GetJDKInstallRoot(jdkRoot, sizeof(jdkRoot), JNI_FALSE)) { + JLI_ReportErrorMessage(LAUNCHER_ERROR1); return NULL; } ret = JLI_Snprintf(splashPath, sizeof(splashPath), "%s/lib/%s", - jrePath, SPLASHSCREEN_SO); + jdkRoot, SPLASHSCREEN_SO); if (ret >= (int) sizeof(splashPath)) { - JLI_ReportErrorMessage(JRE_ERROR11); + JLI_ReportErrorMessage(LAUNCHER_ERROR3); return NULL; } if (ret < 0) { - JLI_ReportErrorMessage(JRE_ERROR13); + JLI_ReportErrorMessage(LAUNCHER_ERROR5); return NULL; } hSplashLib = dlopen(splashPath, RTLD_LAZY | RTLD_GLOBAL); diff --git a/src/java.base/unix/native/libjli/java_md.h b/src/java.base/unix/native/libjli/java_md.h index acc75ab091d..ef0740b18f0 100644 --- a/src/java.base/unix/native/libjli/java_md.h +++ b/src/java.base/unix/native/libjli/java_md.h @@ -55,9 +55,9 @@ int UnsetEnv(char *name); char *FindExecName(char *program); const char *SetExecname(char **argv); const char *GetExecName(); -static jboolean GetJVMPath(const char *jrepath, const char *jvmtype, +static jboolean GetJVMPath(const char *jdkroot, const char *jvmtype, char *jvmpath, jint jvmpathsize); -static jboolean GetJREPath(char *path, jint pathsize, jboolean speculative); +static jboolean GetJDKInstallRoot(char *path, jint pathsize, jboolean speculative); #if defined(_AIX) jboolean GetApplicationHomeFromLibpath(char *buf, jint bufsize); diff --git a/src/java.base/unix/native/libjli/java_md_common.c b/src/java.base/unix/native/libjli/java_md_common.c index 453d605f710..f67a50304d0 100644 --- a/src/java.base/unix/native/libjli/java_md_common.c +++ b/src/java.base/unix/native/libjli/java_md_common.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -76,7 +76,7 @@ TruncatePath(char *buf, jboolean pathisdll) } /* - * Retrieves the path to the JRE home by locating the executable file + * Retrieves the path to the JDK home by locating the executable file * of the current process and then truncating the path to the executable */ jboolean @@ -93,7 +93,7 @@ GetApplicationHome(char *buf, jint bufsize) } /* - * Retrieves the path to the JRE home by locating the + * Retrieves the path to the JDK home by locating the * shared library and then truncating the path to it. */ jboolean @@ -124,7 +124,7 @@ LibjavaExists(const char *path) } /* - * Retrieves the path to the JRE home by locating libjava.so in + * Retrieves the path to the JDK home by locating libjava.so in * LIBPATH and then truncating the path to it. */ jboolean @@ -262,7 +262,7 @@ JLI_ReportExceptionDescription(JNIEnv * env) { /* * Since using the file system as a registry is a bit risky, perform * additional sanity checks on the identified directory to validate - * it as a valid jre/sdk. + * it as a valid JDK. * * Return 0 if the tests fail; otherwise return non-zero (true). * diff --git a/src/java.base/windows/native/libjli/java_md.c b/src/java.base/windows/native/libjli/java_md.c index 6ff155bcb9b..a1012bcc4f9 100644 --- a/src/java.base/windows/native/libjli/java_md.c +++ b/src/java.base/windows/native/libjli/java_md.c @@ -45,9 +45,9 @@ /* * Prototypes. */ -static jboolean GetJVMPath(const char *jrepath, const char *jvmtype, +static jboolean GetJVMPath(const char *jdkroot, const char *jvmtype, char *jvmpath, jint jvmpathsize); -static jboolean GetJREPath(char *path, jint pathsize); +static jboolean GetJDKInstallRoot(char *path, jint pathsize); /* We supports warmup for UI stack that is performed in parallel * to VM initialization. @@ -152,7 +152,7 @@ IsJavaw() */ void CreateExecutionEnvironment(int *pargc, char ***pargv, - char *jrepath, jint so_jrepath, + char *jdkroot, jint so_jdkroot, char *jvmpath, jint so_jvmpath, char *jvmcfg, jint so_jvmcfg) { @@ -160,14 +160,14 @@ CreateExecutionEnvironment(int *pargc, char ***pargv, int i = 0; char** argv = *pargv; - /* Find out where the JRE is that we will be using. */ - if (!GetJREPath(jrepath, so_jrepath)) { - JLI_ReportErrorMessage(JRE_ERROR1); + /* Find out where the JDK is that we will be using. */ + if (!GetJDKInstallRoot(jdkroot, so_jdkroot)) { + JLI_ReportErrorMessage(LAUNCHER_ERROR1); exit(2); } JLI_Snprintf(jvmcfg, so_jvmcfg, "%s%slib%sjvm.cfg", - jrepath, FILESEP, FILESEP); + jdkroot, FILESEP, FILESEP); /* Find the specified JVM type */ if (ReadKnownVMs(jvmcfg, JNI_FALSE) < 1) { @@ -182,7 +182,7 @@ CreateExecutionEnvironment(int *pargc, char ***pargv, } jvmpath[0] = '\0'; - if (!GetJVMPath(jrepath, jvmtype, jvmpath, so_jvmpath)) { + if (!GetJVMPath(jdkroot, jvmtype, jvmpath, so_jvmpath)) { JLI_ReportErrorMessage(CFG_ERROR8, jvmtype, jvmpath); exit(4); } @@ -223,18 +223,18 @@ LoadMSVCRT() if (!loaded) { /* - * The Microsoft C Runtime Library needs to be loaded first. A copy is - * assumed to be present in the "JRE path" directory. If it is not found - * there (or "JRE path" fails to resolve), skip the explicit load and let - * nature take its course, which is likely to be a failure to execute. - * The makefiles will provide the correct lib contained in quotes in the - * macro MSVCR_DLL_NAME. + * The Microsoft C Runtime Library needs to be loaded first. A copy is + * assumed to be present in the "bin" directory of the JDK installation root. + * If it is not found there (or the JDK installation root fails to resolve), + * skip the explicit load and let nature take its course, which is likely to + * be a failure to execute. The makefiles will provide the correct lib contained + * in quotes in the macro MSVCR_DLL_NAME. */ #ifdef MSVCR_DLL_NAME - if (GetJREPath(crtpath, MAXPATHLEN)) { + if (GetJDKInstallRoot(crtpath, MAXPATHLEN)) { if (JLI_StrLen(crtpath) + JLI_StrLen("\\bin\\") + JLI_StrLen(MSVCR_DLL_NAME) >= MAXPATHLEN) { - JLI_ReportErrorMessage(JRE_ERROR11); + JLI_ReportErrorMessage(LAUNCHER_ERROR3); return JNI_FALSE; } (void)JLI_StrCat(crtpath, "\\bin\\" MSVCR_DLL_NAME); /* Add crt dll */ @@ -248,10 +248,10 @@ LoadMSVCRT() } #endif /* MSVCR_DLL_NAME */ #ifdef VCRUNTIME_1_DLL_NAME - if (GetJREPath(crtpath, MAXPATHLEN)) { + if (GetJDKInstallRoot(crtpath, MAXPATHLEN)) { if (JLI_StrLen(crtpath) + JLI_StrLen("\\bin\\") + JLI_StrLen(VCRUNTIME_1_DLL_NAME) >= MAXPATHLEN) { - JLI_ReportErrorMessage(JRE_ERROR11); + JLI_ReportErrorMessage(LAUNCHER_ERROR3); return JNI_FALSE; } (void)JLI_StrCat(crtpath, "\\bin\\" VCRUNTIME_1_DLL_NAME); /* Add crt dll */ @@ -265,10 +265,10 @@ LoadMSVCRT() } #endif /* VCRUNTIME_1_DLL_NAME */ #ifdef MSVCP_DLL_NAME - if (GetJREPath(crtpath, MAXPATHLEN)) { + if (GetJDKInstallRoot(crtpath, MAXPATHLEN)) { if (JLI_StrLen(crtpath) + JLI_StrLen("\\bin\\") + JLI_StrLen(MSVCP_DLL_NAME) >= MAXPATHLEN) { - JLI_ReportErrorMessage(JRE_ERROR11); + JLI_ReportErrorMessage(LAUNCHER_ERROR3); return JNI_FALSE; } (void)JLI_StrCat(crtpath, "\\bin\\" MSVCP_DLL_NAME); /* Add prt dll */ @@ -288,47 +288,47 @@ LoadMSVCRT() /* - * Find path to JRE based on .exe's location or registry settings. + * Find path to JDK installation root based on .exe's location */ jboolean -GetJREPath(char *path, jint pathsize) +GetJDKInstallRoot(char *path, jint pathsize) { char javadll[MAXPATHLEN]; struct stat s; - JLI_TraceLauncher("Attempt to get JRE path from launcher executable path\n"); + JLI_TraceLauncher("Attempt to get JDK installation root path from launcher executable path\n"); if (GetApplicationHome(path, pathsize)) { - /* Is JRE co-located with the application? */ + /* Is the JDK co-located with the application? */ JLI_Snprintf(javadll, sizeof(javadll), "%s\\bin\\" JAVA_DLL, path); if (stat(javadll, &s) == 0) { - JLI_TraceLauncher("JRE path is %s\n", path); + JLI_TraceLauncher("JDK installation root path is %s\n", path); return JNI_TRUE; } } - JLI_TraceLauncher("Attempt to get JRE path from shared lib of the image\n"); + JLI_TraceLauncher("Attempt to get JDK installation root path from shared lib of the image\n"); - /* Try getting path to JRE from path to JLI.DLL */ + /* Try getting path to JDK from path to JLI.DLL */ if (GetApplicationHomeFromDll(path, pathsize)) { JLI_Snprintf(javadll, sizeof(javadll), "%s\\bin\\" JAVA_DLL, path); if (stat(javadll, &s) == 0) { - JLI_TraceLauncher("JRE path is %s\n", path); + JLI_TraceLauncher("JDK installation root path is %s\n", path); return JNI_TRUE; } } - JLI_ReportErrorMessage(JRE_ERROR8 JAVA_DLL); + JLI_ReportErrorMessage(LAUNCHER_ERROR2 JAVA_DLL); return JNI_FALSE; } /* - * Given a JRE location and a JVM type, construct what the name the + * Given a JDK installation location and a JVM type, construct what the name the * JVM shared library will be. Return true, if such a library * exists, false otherwise. */ static jboolean -GetJVMPath(const char *jrepath, const char *jvmtype, +GetJVMPath(const char *jdkroot, const char *jvmtype, char *jvmpath, jint jvmpathsize) { struct stat s; @@ -336,7 +336,7 @@ GetJVMPath(const char *jrepath, const char *jvmtype, JLI_Snprintf(jvmpath, jvmpathsize, "%s\\" JVM_DLL, jvmtype); } else { JLI_Snprintf(jvmpath, jvmpathsize, "%s\\bin\\%s\\" JVM_DLL, - jrepath, jvmtype); + jdkroot, jvmtype); } if (stat(jvmpath, &s) == 0) { return JNI_TRUE; @@ -356,10 +356,11 @@ LoadJavaVM(const char *jvmpath, InvocationFunctions *ifn) JLI_TraceLauncher("JVM path is %s\n", jvmpath); /* - * The Microsoft C Runtime Library needs to be loaded first. A copy is - * assumed to be present in the "JRE path" directory. If it is not found - * there (or "JRE path" fails to resolve), skip the explicit load and let - * nature take its course, which is likely to be a failure to execute. + * The Microsoft C Runtime Library needs to be loaded first. A copy is + * assumed to be present within the JDK. If it is not found there + * (or the JDK installation root fails to resolve), skip the explicit + * load and let nature take its course, which is likely to be a failure + * to execute. * */ LoadMSVCRT(); @@ -403,7 +404,7 @@ TruncatePath(char *buf) } /* - * Retrieves the path to the JRE home by locating the executable file + * Retrieves the path to the JDK home by locating the executable file * of the current process and then truncating the path to the executable */ jboolean @@ -414,7 +415,7 @@ GetApplicationHome(char *buf, jint bufsize) } /* - * Retrieves the path to the JRE home by locating JLI.DLL and + * Retrieves the path to the JDK home by locating JLI.DLL and * then truncating the path to JLI.DLL */ jboolean @@ -424,7 +425,7 @@ GetApplicationHomeFromDll(char *buf, jint bufsize) DWORD flags = GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT; - if (GetModuleHandleEx(flags, (LPCSTR)&GetJREPath, &module) != 0) { + if (GetModuleHandleEx(flags, (LPCSTR)&GetJDKInstallRoot, &module) != 0) { if (GetModuleFileName(module, buf, bufsize) != 0) { return TruncatePath(buf); } @@ -659,7 +660,7 @@ static HMODULE hSplashLib = NULL; void* SplashProcAddress(const char* name) { char libraryPath[MAXPATHLEN]; /* some extra space for JLI_StrCat'ing SPLASHSCREEN_SO */ - if (!GetJREPath(libraryPath, MAXPATHLEN)) { + if (!GetJDKInstallRoot(libraryPath, MAXPATHLEN)) { return NULL; } if (JLI_StrLen(libraryPath)+JLI_StrLen(SPLASHSCREEN_SO) >= MAXPATHLEN) { @@ -830,7 +831,7 @@ int AWTPreload(const char *funcName) if (hPreloadAwt == NULL) { /* awt.dll is not loaded yet */ char libraryPath[MAXPATHLEN]; - size_t jrePathLen = 0; + size_t jdkRootPathLen = 0; HMODULE hJava = NULL; HMODULE hVerify = NULL; @@ -839,18 +840,18 @@ int AWTPreload(const char *funcName) * jvm.dll is already loaded, so we need only java.dll; * java.dll depends on MSVCRT lib & verify.dll. */ - if (!GetJREPath(libraryPath, MAXPATHLEN)) { + if (!GetJDKInstallRoot(libraryPath, MAXPATHLEN)) { break; } /* save path length */ - jrePathLen = JLI_StrLen(libraryPath); + jdkRootPathLen = JLI_StrLen(libraryPath); - if (jrePathLen + JLI_StrLen("\\bin\\verify.dll") >= MAXPATHLEN) { - /* jre path is too long, the library path will not fit there; + if (jdkRootPathLen + JLI_StrLen("\\bin\\verify.dll") >= MAXPATHLEN) { + /* path is too long, the library path will not fit there; * report and abort preloading */ - JLI_ReportErrorMessage(JRE_ERROR11); + JLI_ReportErrorMessage(LAUNCHER_ERROR3); break; } @@ -864,8 +865,8 @@ int AWTPreload(const char *funcName) break; } - /* restore jrePath */ - libraryPath[jrePathLen] = 0; + /* restore libraryPath */ + libraryPath[jdkRootPathLen] = 0; /* load java.dll */ JLI_StrCat(libraryPath, "\\bin\\" JAVA_DLL); hJava = LoadLibrary(libraryPath); @@ -873,8 +874,8 @@ int AWTPreload(const char *funcName) break; } - /* restore jrePath */ - libraryPath[jrePathLen] = 0; + /* restore libraryPath */ + libraryPath[jdkRootPathLen] = 0; /* load awt.dll */ JLI_StrCat(libraryPath, "\\bin\\awt.dll"); hPreloadAwt = LoadLibrary(libraryPath); From dcbcaf52839715f7b2c840bc40df9e3c7f27d535 Mon Sep 17 00:00:00 2001 From: Axel Boldt-Christmas Date: Wed, 30 Oct 2024 11:05:07 +0000 Subject: [PATCH 033/159] 8341692: Implement JEP 490: ZGC: Remove the Non-Generational Mode Reviewed-by: ihse, eosterlund, stefank, prr, cjplummer, dholmes --- make/RunTests.gmk | 6 +- make/hotspot/gensrc/GensrcAdlc.gmk | 2 - make/hotspot/lib/JvmFeatures.gmk | 1 - test/hotspot/gtest/gc/x/test_xAddress.cpp | 135 ----------- test/hotspot/gtest/gc/x/test_xArray.cpp | 83 ------- test/hotspot/gtest/gc/x/test_xBitField.cpp | 79 ------- test/hotspot/gtest/gc/x/test_xBitMap.cpp | 108 --------- test/hotspot/gtest/gc/x/test_xForwarding.cpp | 205 ---------------- test/hotspot/gtest/gc/x/test_xList.cpp | 155 ------------ test/hotspot/gtest/gc/x/test_xLiveMap.cpp | 55 ----- .../gtest/gc/x/test_xPhysicalMemory.cpp | 174 -------------- .../gtest/gc/x/test_xVirtualMemory.cpp | 45 ---- .../jtreg/ProblemList-generational-zgc.txt | 118 ---------- test/hotspot/jtreg/ProblemList-zgc.txt | 102 ++++++-- test/hotspot/jtreg/ProblemList.txt | 6 +- test/hotspot/jtreg/TEST.ROOT | 2 - ...TestArrayCopyWithLargeObjectAlignment.java | 4 +- .../gcbarriers/TestZGCBarrierElision.java | 6 +- .../compiler/gcbarriers/TestZGCUnrolling.java | 5 +- .../gcbarriers/UnsafeIntrinsicsTest.java | 44 +--- .../TestRangeCheckPredicatesControl.java | 19 +- .../TestNoWarningLoopStripMiningIterSet.java | 34 +-- .../compiler/uncommontrap/TestDeoptOOM.java | 19 +- .../vectorapi/VectorRebracket128Test.java | 16 +- .../jtreg/gc/TestAlwaysPreTouchBehavior.java | 18 +- ...ferenceClearDuringReferenceProcessing.java | 18 +- test/hotspot/jtreg/gc/TestSystemGC.java | 15 +- test/hotspot/jtreg/gc/TestVerifySubSet.java | 6 +- .../jtreg/gc/cslocker/TestCSLocker.java | 10 +- .../gc/stress/gcbasher/TestGCBasherWithZ.java | 32 +-- .../jtreg/gc/stress/gcold/TestGCOldWithZ.java | 17 +- .../TestStringDeduplicationAgeThreshold.java | 19 +- .../TestStringDeduplicationFullGC.java | 19 +- .../TestStringDeduplicationInterned.java | 19 +- .../TestStringDeduplicationPrintOptions.java | 19 +- .../TestStringDeduplicationTableResize.java | 19 +- .../TestStringDeduplicationTools.java | 15 +- .../TestStringDeduplicationYoungGC.java | 19 +- .../jtreg/gc/x/TestAllocateHeapAt.java | 57 ----- .../jtreg/gc/x/TestAlwaysPreTouch.java | 41 ---- test/hotspot/jtreg/gc/x/TestDeprecated.java | 50 ---- .../gc/x/TestGarbageCollectorMXBean.java | 221 ------------------ test/hotspot/jtreg/gc/x/TestHighUsage.java | 101 -------- test/hotspot/jtreg/gc/x/TestMemoryMXBean.java | 65 ------ .../jtreg/gc/x/TestMemoryManagerMXBean.java | 92 -------- test/hotspot/jtreg/gc/x/TestNoUncommit.java | 63 ----- .../jtreg/gc/x/TestPageCacheFlush.java | 83 ------- .../jtreg/gc/x/TestRelocateInPlace.java | 74 ------ test/hotspot/jtreg/gc/x/TestSmallHeap.java | 68 ------ test/hotspot/jtreg/gc/x/TestUncommit.java | 136 ----------- .../jtreg/gc/z/TestAllocateHeapAt.java | 3 +- .../gc/z/TestAllocateHeapAtWithHugeTLBFS.java | 3 +- .../jtreg/gc/z/TestAlwaysPreTouch.java | 12 +- test/hotspot/jtreg/gc/z/TestDefault.java | 51 ---- .../gc/z/TestGarbageCollectorMXBean.java | 6 +- test/hotspot/jtreg/gc/z/TestMemoryMXBean.java | 6 +- .../jtreg/gc/z/TestMemoryManagerMXBean.java | 4 +- test/hotspot/jtreg/gc/z/TestNoUncommit.java | 6 +- .../jtreg/gc/z/TestPageCacheFlush.java | 3 +- ...tRegistersPushPopAtZGCLoadBarrierStub.java | 3 +- .../jtreg/gc/z/TestRelocateInPlace.java | 4 +- test/hotspot/jtreg/gc/z/TestSmallHeap.java | 3 +- test/hotspot/jtreg/gc/z/TestUncommit.java | 4 +- ...stZForceDiscontiguousHeapReservations.java | 3 +- test/hotspot/jtreg/gc/z/TestZNMT.java | 5 +- .../CommandLine/VMDeprecatedOptions.java | 1 - .../runtime/cds/appcds/TestZGCWithCDS.java | 23 +- .../DynamicLoaderConstraintsTest.java | 30 +-- .../dcmd/gc/HeapDumpCompressedTest.java | 18 +- .../examples/GCBarrierIRExample.java | 4 +- test/jdk/ProblemList-generational-zgc.txt | 40 ---- test/jdk/ProblemList-zgc.txt | 13 +- test/jdk/TEST.ROOT | 2 - .../awt/Graphics2D/LargeWindowPaintTest.java | 19 +- .../awt/print/PrinterJob/AlphaPrintTest.java | 16 +- .../foreign/stackwalk/TestAsyncStackWalk.java | 24 +- .../java/foreign/stackwalk/TestStackWalk.java | 24 +- .../ObjectStreamClassCaching.java | 6 +- .../java/lang/ProcessBuilder/CloseRace.java | 10 +- .../lang/Thread/virtual/stress/Skynet.java | 16 +- .../management/MemoryMXBean/MemoryTest.java | 18 +- .../TypeConverterFactoryMemoryLeakTest.java | 14 +- .../TypeConverterFactoryRetentionTests.java | 14 +- .../vector/VectorMaxConversionTests.java | 18 +- .../TestGarbageCollectionEventWithZMajor.java | 4 +- .../TestGarbageCollectionEventWithZMinor.java | 4 +- .../TestZOldGarbageCollectionEvent.java | 4 +- .../TestZYoungGarbageCollectionEvent.java | 4 +- .../gc/detailed/TestGCPhaseConcurrent.java | 14 +- .../detailed/TestZAllocationStallEvent.java | 14 +- .../gc/detailed/TestZPageAllocationEvent.java | 14 +- .../gc/detailed/TestZRelocationSetEvent.java | 14 +- .../TestZRelocationSetGroupEvent.java | 14 +- .../event/gc/detailed/TestZUncommitEvent.java | 14 +- .../event/gc/detailed/TestZUnmapEvent.java | 14 +- test/jdk/jdk/jfr/event/oldobject/TestZ.java | 16 +- test/jdk/sun/tools/jmap/BasicJMapTest.java | 19 +- test/jtreg-ext/requires/VMProps.java | 12 - 98 files changed, 289 insertions(+), 3017 deletions(-) delete mode 100644 test/hotspot/gtest/gc/x/test_xAddress.cpp delete mode 100644 test/hotspot/gtest/gc/x/test_xArray.cpp delete mode 100644 test/hotspot/gtest/gc/x/test_xBitField.cpp delete mode 100644 test/hotspot/gtest/gc/x/test_xBitMap.cpp delete mode 100644 test/hotspot/gtest/gc/x/test_xForwarding.cpp delete mode 100644 test/hotspot/gtest/gc/x/test_xList.cpp delete mode 100644 test/hotspot/gtest/gc/x/test_xLiveMap.cpp delete mode 100644 test/hotspot/gtest/gc/x/test_xPhysicalMemory.cpp delete mode 100644 test/hotspot/gtest/gc/x/test_xVirtualMemory.cpp delete mode 100644 test/hotspot/jtreg/ProblemList-generational-zgc.txt delete mode 100644 test/hotspot/jtreg/gc/x/TestAllocateHeapAt.java delete mode 100644 test/hotspot/jtreg/gc/x/TestAlwaysPreTouch.java delete mode 100644 test/hotspot/jtreg/gc/x/TestDeprecated.java delete mode 100644 test/hotspot/jtreg/gc/x/TestGarbageCollectorMXBean.java delete mode 100644 test/hotspot/jtreg/gc/x/TestHighUsage.java delete mode 100644 test/hotspot/jtreg/gc/x/TestMemoryMXBean.java delete mode 100644 test/hotspot/jtreg/gc/x/TestMemoryManagerMXBean.java delete mode 100644 test/hotspot/jtreg/gc/x/TestNoUncommit.java delete mode 100644 test/hotspot/jtreg/gc/x/TestPageCacheFlush.java delete mode 100644 test/hotspot/jtreg/gc/x/TestRelocateInPlace.java delete mode 100644 test/hotspot/jtreg/gc/x/TestSmallHeap.java delete mode 100644 test/hotspot/jtreg/gc/x/TestUncommit.java delete mode 100644 test/hotspot/jtreg/gc/z/TestDefault.java delete mode 100644 test/jdk/ProblemList-generational-zgc.txt diff --git a/make/RunTests.gmk b/make/RunTests.gmk index 45494b859b7..bfd55394b2f 100644 --- a/make/RunTests.gmk +++ b/make/RunTests.gmk @@ -853,11 +853,7 @@ define SetupRunJtregTestBody endif ifneq ($$(findstring -XX:+UseZGC, $$(JTREG_ALL_OPTIONS)), ) - ifneq ($$(findstring -XX:-ZGenerational, $$(JTREG_ALL_OPTIONS)), ) - JTREG_AUTO_PROBLEM_LISTS += ProblemList-zgc.txt - else - JTREG_AUTO_PROBLEM_LISTS += ProblemList-generational-zgc.txt - endif + JTREG_AUTO_PROBLEM_LISTS += ProblemList-zgc.txt endif ifneq ($$(JTREG_EXTRA_PROBLEM_LISTS), ) diff --git a/make/hotspot/gensrc/GensrcAdlc.gmk b/make/hotspot/gensrc/GensrcAdlc.gmk index ddb2c3e33e5..ce3f2684026 100644 --- a/make/hotspot/gensrc/GensrcAdlc.gmk +++ b/make/hotspot/gensrc/GensrcAdlc.gmk @@ -193,8 +193,6 @@ ifeq ($(call check-jvm-feature, compiler2), true) ifeq ($(call check-jvm-feature, zgc), true) AD_SRC_FILES += $(call uniq, $(wildcard $(foreach d, $(AD_SRC_ROOTS), \ - $d/cpu/$(HOTSPOT_TARGET_CPU_ARCH)/gc/x/x_$(HOTSPOT_TARGET_CPU).ad \ - $d/cpu/$(HOTSPOT_TARGET_CPU_ARCH)/gc/x/x_$(HOTSPOT_TARGET_CPU_ARCH).ad \ $d/cpu/$(HOTSPOT_TARGET_CPU_ARCH)/gc/z/z_$(HOTSPOT_TARGET_CPU).ad \ $d/cpu/$(HOTSPOT_TARGET_CPU_ARCH)/gc/z/z_$(HOTSPOT_TARGET_CPU_ARCH).ad \ ))) diff --git a/make/hotspot/lib/JvmFeatures.gmk b/make/hotspot/lib/JvmFeatures.gmk index c4c030810fc..b94031515f7 100644 --- a/make/hotspot/lib/JvmFeatures.gmk +++ b/make/hotspot/lib/JvmFeatures.gmk @@ -150,7 +150,6 @@ endif ifneq ($(call check-jvm-feature, zgc), true) JVM_CFLAGS_FEATURES += -DINCLUDE_ZGC=0 JVM_EXCLUDE_PATTERNS += gc/z - JVM_EXCLUDE_PATTERNS += gc/x endif ifneq ($(call check-jvm-feature, shenandoahgc), true) diff --git a/test/hotspot/gtest/gc/x/test_xAddress.cpp b/test/hotspot/gtest/gc/x/test_xAddress.cpp deleted file mode 100644 index 3f769dc7eea..00000000000 --- a/test/hotspot/gtest/gc/x/test_xAddress.cpp +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xAddress.inline.hpp" -#include "gc/x/xGlobals.hpp" -#include "unittest.hpp" - -class XAddressTest : public ::testing::Test { -protected: - static void is_good_bit(uintptr_t bit_mask) { - // Setup - XAddress::initialize(); - XAddress::set_good_mask(bit_mask); - - // Test that a pointer with only the given bit is considered good. - EXPECT_EQ(XAddress::is_good(XAddressMetadataMarked0), (bit_mask == XAddressMetadataMarked0)); - EXPECT_EQ(XAddress::is_good(XAddressMetadataMarked1), (bit_mask == XAddressMetadataMarked1)); - EXPECT_EQ(XAddress::is_good(XAddressMetadataRemapped), (bit_mask == XAddressMetadataRemapped)); - - // Test that a pointer with the given bit and some extra bits is considered good. - EXPECT_EQ(XAddress::is_good(XAddressMetadataMarked0 | 0x8),(bit_mask == XAddressMetadataMarked0)); - EXPECT_EQ(XAddress::is_good(XAddressMetadataMarked1 | 0x8), (bit_mask == XAddressMetadataMarked1)); - EXPECT_EQ(XAddress::is_good(XAddressMetadataRemapped | 0x8), (bit_mask == XAddressMetadataRemapped)); - - // Test that null is not considered good. - EXPECT_FALSE(XAddress::is_good(0)); - } - - static void is_good_or_null_bit(uintptr_t bit_mask) { - // Setup - XAddress::initialize(); - XAddress::set_good_mask(bit_mask); - - // Test that a pointer with only the given bit is considered good. - EXPECT_EQ(XAddress::is_good_or_null(XAddressMetadataMarked0), (bit_mask == XAddressMetadataMarked0)); - EXPECT_EQ(XAddress::is_good_or_null(XAddressMetadataMarked1), (bit_mask == XAddressMetadataMarked1)); - EXPECT_EQ(XAddress::is_good_or_null(XAddressMetadataRemapped), (bit_mask == XAddressMetadataRemapped)); - - // Test that a pointer with the given bit and some extra bits is considered good. - EXPECT_EQ(XAddress::is_good_or_null(XAddressMetadataMarked0 | 0x8), (bit_mask == XAddressMetadataMarked0)); - EXPECT_EQ(XAddress::is_good_or_null(XAddressMetadataMarked1 | 0x8), (bit_mask == XAddressMetadataMarked1)); - EXPECT_EQ(XAddress::is_good_or_null(XAddressMetadataRemapped | 0x8), (bit_mask == XAddressMetadataRemapped)); - - // Test that null is considered good_or_null. - EXPECT_TRUE(XAddress::is_good_or_null(0)); - } - - static void finalizable() { - // Setup - XAddress::initialize(); - XAddress::flip_to_marked(); - - // Test that a normal good pointer is good and weak good, but not finalizable - const uintptr_t addr1 = XAddress::good(1); - EXPECT_FALSE(XAddress::is_finalizable(addr1)); - EXPECT_TRUE(XAddress::is_marked(addr1)); - EXPECT_FALSE(XAddress::is_remapped(addr1)); - EXPECT_TRUE(XAddress::is_weak_good(addr1)); - EXPECT_TRUE(XAddress::is_weak_good_or_null(addr1)); - EXPECT_TRUE(XAddress::is_good(addr1)); - EXPECT_TRUE(XAddress::is_good_or_null(addr1)); - - // Test that a finalizable good pointer is finalizable and weak good, but not good - const uintptr_t addr2 = XAddress::finalizable_good(1); - EXPECT_TRUE(XAddress::is_finalizable(addr2)); - EXPECT_TRUE(XAddress::is_marked(addr2)); - EXPECT_FALSE(XAddress::is_remapped(addr2)); - EXPECT_TRUE(XAddress::is_weak_good(addr2)); - EXPECT_TRUE(XAddress::is_weak_good_or_null(addr2)); - EXPECT_FALSE(XAddress::is_good(addr2)); - EXPECT_FALSE(XAddress::is_good_or_null(addr2)); - - // Flip to remapped and test that it's no longer weak good - XAddress::flip_to_remapped(); - EXPECT_TRUE(XAddress::is_finalizable(addr2)); - EXPECT_TRUE(XAddress::is_marked(addr2)); - EXPECT_FALSE(XAddress::is_remapped(addr2)); - EXPECT_FALSE(XAddress::is_weak_good(addr2)); - EXPECT_FALSE(XAddress::is_weak_good_or_null(addr2)); - EXPECT_FALSE(XAddress::is_good(addr2)); - EXPECT_FALSE(XAddress::is_good_or_null(addr2)); - } -}; - -TEST_F(XAddressTest, is_good) { - is_good_bit(XAddressMetadataMarked0); - is_good_bit(XAddressMetadataMarked1); - is_good_bit(XAddressMetadataRemapped); -} - -TEST_F(XAddressTest, is_good_or_null) { - is_good_or_null_bit(XAddressMetadataMarked0); - is_good_or_null_bit(XAddressMetadataMarked1); - is_good_or_null_bit(XAddressMetadataRemapped); -} - -TEST_F(XAddressTest, is_weak_good_or_null) { -#define check_is_weak_good_or_null(value) \ - EXPECT_EQ(XAddress::is_weak_good_or_null(value), \ - (XAddress::is_good_or_null(value) || XAddress::is_remapped(value))) \ - << "is_good_or_null: " << XAddress::is_good_or_null(value) \ - << " is_remaped: " << XAddress::is_remapped(value) \ - << " is_good_or_null_or_remapped: " << XAddress::is_weak_good_or_null(value) - - check_is_weak_good_or_null((uintptr_t)nullptr); - check_is_weak_good_or_null(XAddressMetadataMarked0); - check_is_weak_good_or_null(XAddressMetadataMarked1); - check_is_weak_good_or_null(XAddressMetadataRemapped); - check_is_weak_good_or_null((uintptr_t)0x123); -} - -TEST_F(XAddressTest, finalizable) { - finalizable(); -} diff --git a/test/hotspot/gtest/gc/x/test_xArray.cpp b/test/hotspot/gtest/gc/x/test_xArray.cpp deleted file mode 100644 index 36c0b73ad6f..00000000000 --- a/test/hotspot/gtest/gc/x/test_xArray.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xArray.inline.hpp" -#include "unittest.hpp" - -TEST(XArray, sanity) { - XArray a; - - // Add elements - for (int i = 0; i < 10; i++) { - a.append(i); - } - - XArray b; - - b.swap(&a); - - // Check size - ASSERT_EQ(a.length(), 0); - ASSERT_EQ(a.capacity(), 0); - ASSERT_EQ(a.is_empty(), true); - - ASSERT_EQ(b.length(), 10); - ASSERT_GE(b.capacity(), 10); - ASSERT_EQ(b.is_empty(), false); - - // Clear elements - a.clear(); - - // Check that b is unaffected - ASSERT_EQ(b.length(), 10); - ASSERT_GE(b.capacity(), 10); - ASSERT_EQ(b.is_empty(), false); - - a.append(1); - - // Check that b is unaffected - ASSERT_EQ(b.length(), 10); - ASSERT_GE(b.capacity(), 10); - ASSERT_EQ(b.is_empty(), false); -} - -TEST(XArray, iterator) { - XArray a; - - // Add elements - for (int i = 0; i < 10; i++) { - a.append(i); - } - - // Iterate - int count = 0; - XArrayIterator iter(&a); - for (int value; iter.next(&value);) { - ASSERT_EQ(a.at(count), count); - count++; - } - - // Check count - ASSERT_EQ(count, 10); -} diff --git a/test/hotspot/gtest/gc/x/test_xBitField.cpp b/test/hotspot/gtest/gc/x/test_xBitField.cpp deleted file mode 100644 index 248322b2a07..00000000000 --- a/test/hotspot/gtest/gc/x/test_xBitField.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xBitField.hpp" -#include "unittest.hpp" - -TEST(XBitFieldTest, test) { - typedef XBitField field_bool; - typedef XBitField field_uint8; - typedef XBitField field_uint16; - typedef XBitField field_uint32; - typedef XBitField field_uint64; - typedef XBitField field_pointer; - - uint64_t entry; - - { - const bool value = false; - entry = field_bool::encode(value); - EXPECT_EQ(field_bool::decode(entry), value) << "Should be equal"; - } - - { - const bool value = true; - entry = field_bool::encode(value); - EXPECT_EQ(field_bool::decode(entry), value) << "Should be equal"; - } - - { - const uint8_t value = ~(uint8_t)0; - entry = field_uint8::encode(value); - EXPECT_EQ(field_uint8::decode(entry), value) << "Should be equal"; - } - - { - const uint16_t value = ~(uint16_t)0; - entry = field_uint16::encode(value); - EXPECT_EQ(field_uint16::decode(entry), value) << "Should be equal"; - } - - { - const uint32_t value = ~(uint32_t)0; - entry = field_uint32::encode(value); - EXPECT_EQ(field_uint32::decode(entry), value) << "Should be equal"; - } - - { - const uint64_t value = ~(uint64_t)0 >> 1; - entry = field_uint64::encode(value); - EXPECT_EQ(field_uint64::decode(entry), value) << "Should be equal"; - } - - { - void* const value = (void*)(~(uintptr_t)0 << 3); - entry = field_pointer::encode(value); - EXPECT_EQ(field_pointer::decode(entry), value) << "Should be equal"; - } -} diff --git a/test/hotspot/gtest/gc/x/test_xBitMap.cpp b/test/hotspot/gtest/gc/x/test_xBitMap.cpp deleted file mode 100644 index 2d3cb09c7ed..00000000000 --- a/test/hotspot/gtest/gc/x/test_xBitMap.cpp +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xBitMap.inline.hpp" -#include "unittest.hpp" - -class XBitMapTest : public ::testing::Test { -protected: - static void test_set_pair_unset(size_t size, bool finalizable) { - XBitMap bitmap(size); - - for (BitMap::idx_t i = 0; i < size - 1; i++) { - if ((i + 1) % BitsPerWord == 0) { - // Can't set pairs of bits in different words. - continue; - } - - // XBitMaps are not cleared when constructed. - bitmap.clear(); - - bool inc_live = false; - - bool ret = bitmap.par_set_bit_pair(i, finalizable, inc_live); - EXPECT_TRUE(ret) << "Failed to set bit"; - EXPECT_TRUE(inc_live) << "Should have set inc_live"; - - // First bit should always be set - EXPECT_TRUE(bitmap.at(i)) << "Should be set"; - - // Second bit should only be set when marking strong - EXPECT_NE(bitmap.at(i + 1), finalizable); - } - } - - static void test_set_pair_set(size_t size, bool finalizable) { - XBitMap bitmap(size); - - for (BitMap::idx_t i = 0; i < size - 1; i++) { - if ((i + 1) % BitsPerWord == 0) { - // Can't set pairs of bits in different words. - continue; - } - - // Fill the bitmap with ones. - bitmap.set_range(0, size); - - bool inc_live = false; - - bool ret = bitmap.par_set_bit_pair(i, finalizable, inc_live); - EXPECT_FALSE(ret) << "Should not succeed setting bit"; - EXPECT_FALSE(inc_live) << "Should not have set inc_live"; - - // Both bits were pre-set. - EXPECT_TRUE(bitmap.at(i)) << "Should be set"; - EXPECT_TRUE(bitmap.at(i + 1)) << "Should be set"; - } - } - - static void test_set_pair_set(bool finalizable) { - test_set_pair_set(2, finalizable); - test_set_pair_set(62, finalizable); - test_set_pair_set(64, finalizable); - test_set_pair_set(66, finalizable); - test_set_pair_set(126, finalizable); - test_set_pair_set(128, finalizable); - } - - static void test_set_pair_unset(bool finalizable) { - test_set_pair_unset(2, finalizable); - test_set_pair_unset(62, finalizable); - test_set_pair_unset(64, finalizable); - test_set_pair_unset(66, finalizable); - test_set_pair_unset(126, finalizable); - test_set_pair_unset(128, finalizable); - } - -}; - -TEST_F(XBitMapTest, test_set_pair_set) { - test_set_pair_set(false); - test_set_pair_set(true); -} - -TEST_F(XBitMapTest, test_set_pair_unset) { - test_set_pair_unset(false); - test_set_pair_unset(true); -} diff --git a/test/hotspot/gtest/gc/x/test_xForwarding.cpp b/test/hotspot/gtest/gc/x/test_xForwarding.cpp deleted file mode 100644 index de850304ebb..00000000000 --- a/test/hotspot/gtest/gc/x/test_xForwarding.cpp +++ /dev/null @@ -1,205 +0,0 @@ -/* - * Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xAddress.inline.hpp" -#include "gc/x/xForwarding.inline.hpp" -#include "gc/x/xForwardingAllocator.inline.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xPage.inline.hpp" -#include "unittest.hpp" - -using namespace testing; - -#define CAPTURE_DELIM "\n" -#define CAPTURE1(expression) #expression << " evaluates to " << expression -#define CAPTURE2(e0, e1) CAPTURE1(e0) << CAPTURE_DELIM << CAPTURE1(e1) - -#define CAPTURE(expression) CAPTURE1(expression) - -class XForwardingTest : public Test { -public: - // Helper functions - - class SequenceToFromIndex : AllStatic { - public: - static uintptr_t even(size_t sequence_number) { - return sequence_number * 2; - } - static uintptr_t odd(size_t sequence_number) { - return even(sequence_number) + 1; - } - static uintptr_t one_to_one(size_t sequence_number) { - return sequence_number; - } - }; - - // Test functions - - static void setup(XForwarding* forwarding) { - EXPECT_PRED1(is_power_of_2, forwarding->_entries.length()) << CAPTURE(forwarding->_entries.length()); - } - - static void find_empty(XForwarding* forwarding) { - size_t size = forwarding->_entries.length(); - size_t entries_to_check = size * 2; - - for (size_t i = 0; i < entries_to_check; i++) { - uintptr_t from_index = SequenceToFromIndex::one_to_one(i); - - XForwardingCursor cursor; - XForwardingEntry entry = forwarding->find(from_index, &cursor); - EXPECT_FALSE(entry.populated()) << CAPTURE2(from_index, size); - } - } - - static void find_full(XForwarding* forwarding) { - size_t size = forwarding->_entries.length(); - size_t entries_to_populate = size; - - // Populate - for (size_t i = 0; i < entries_to_populate; i++) { - uintptr_t from_index = SequenceToFromIndex::one_to_one(i); - - XForwardingCursor cursor; - XForwardingEntry entry = forwarding->find(from_index, &cursor); - ASSERT_FALSE(entry.populated()) << CAPTURE2(from_index, size); - - forwarding->insert(from_index, from_index, &cursor); - } - - // Verify - for (size_t i = 0; i < entries_to_populate; i++) { - uintptr_t from_index = SequenceToFromIndex::one_to_one(i); - - XForwardingCursor cursor; - XForwardingEntry entry = forwarding->find(from_index, &cursor); - ASSERT_TRUE(entry.populated()) << CAPTURE2(from_index, size); - - ASSERT_EQ(entry.from_index(), from_index) << CAPTURE(size); - ASSERT_EQ(entry.to_offset(), from_index) << CAPTURE(size); - } - } - - static void find_every_other(XForwarding* forwarding) { - size_t size = forwarding->_entries.length(); - size_t entries_to_populate = size / 2; - - // Populate even from indices - for (size_t i = 0; i < entries_to_populate; i++) { - uintptr_t from_index = SequenceToFromIndex::even(i); - - XForwardingCursor cursor; - XForwardingEntry entry = forwarding->find(from_index, &cursor); - ASSERT_FALSE(entry.populated()) << CAPTURE2(from_index, size); - - forwarding->insert(from_index, from_index, &cursor); - } - - // Verify populated even indices - for (size_t i = 0; i < entries_to_populate; i++) { - uintptr_t from_index = SequenceToFromIndex::even(i); - - XForwardingCursor cursor; - XForwardingEntry entry = forwarding->find(from_index, &cursor); - ASSERT_TRUE(entry.populated()) << CAPTURE2(from_index, size); - - ASSERT_EQ(entry.from_index(), from_index) << CAPTURE(size); - ASSERT_EQ(entry.to_offset(), from_index) << CAPTURE(size); - } - - // Verify empty odd indices - // - // This check could be done on a larger range of sequence numbers, - // but currently entries_to_populate is used. - for (size_t i = 0; i < entries_to_populate; i++) { - uintptr_t from_index = SequenceToFromIndex::odd(i); - - XForwardingCursor cursor; - XForwardingEntry entry = forwarding->find(from_index, &cursor); - - ASSERT_FALSE(entry.populated()) << CAPTURE2(from_index, size); - } - } - - static void test(void (*function)(XForwarding*), uint32_t size) { - // Create page - const XVirtualMemory vmem(0, XPageSizeSmall); - const XPhysicalMemory pmem(XPhysicalMemorySegment(0, XPageSizeSmall, true)); - XPage page(XPageTypeSmall, vmem, pmem); - - page.reset(); - - const size_t object_size = 16; - const uintptr_t object = page.alloc_object(object_size); - - XGlobalSeqNum++; - - bool dummy = false; - page.mark_object(XAddress::marked(object), dummy, dummy); - - const uint32_t live_objects = size; - const size_t live_bytes = live_objects * object_size; - page.inc_live(live_objects, live_bytes); - - // Setup allocator - XForwardingAllocator allocator; - const uint32_t nentries = XForwarding::nentries(&page); - allocator.reset((sizeof(XForwarding)) + (nentries * sizeof(XForwardingEntry))); - - // Setup forwarding - XForwarding* const forwarding = XForwarding::alloc(&allocator, &page); - - // Actual test function - (*function)(forwarding); - } - - // Run the given function with a few different input values. - static void test(void (*function)(XForwarding*)) { - test(function, 1); - test(function, 2); - test(function, 3); - test(function, 4); - test(function, 7); - test(function, 8); - test(function, 1023); - test(function, 1024); - test(function, 1025); - } -}; - -TEST_F(XForwardingTest, setup) { - test(&XForwardingTest::setup); -} - -TEST_F(XForwardingTest, find_empty) { - test(&XForwardingTest::find_empty); -} - -TEST_F(XForwardingTest, find_full) { - test(&XForwardingTest::find_full); -} - -TEST_F(XForwardingTest, find_every_other) { - test(&XForwardingTest::find_every_other); -} diff --git a/test/hotspot/gtest/gc/x/test_xList.cpp b/test/hotspot/gtest/gc/x/test_xList.cpp deleted file mode 100644 index f4766ce99e2..00000000000 --- a/test/hotspot/gtest/gc/x/test_xList.cpp +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xList.inline.hpp" -#include "unittest.hpp" - -#ifndef PRODUCT - -class XTestEntry { - friend class XList; - -private: - const int _id; - XListNode _node; - -public: - XTestEntry(int id) : - _id(id), - _node() {} - - int id() const { - return _id; - } -}; - -class XListTest : public ::testing::Test { -protected: - static void assert_sorted(XList* list) { - // Iterate forward - { - int count = list->first()->id(); - XListIterator iter(list); - for (XTestEntry* entry; iter.next(&entry);) { - ASSERT_EQ(entry->id(), count); - count++; - } - } - - // Iterate backward - { - int count = list->last()->id(); - XListReverseIterator iter(list); - for (XTestEntry* entry; iter.next(&entry);) { - EXPECT_EQ(entry->id(), count); - count--; - } - } - } -}; - -TEST_F(XListTest, test_insert) { - XList list; - XTestEntry e0(0); - XTestEntry e1(1); - XTestEntry e2(2); - XTestEntry e3(3); - XTestEntry e4(4); - XTestEntry e5(5); - - list.insert_first(&e2); - list.insert_before(&e2, &e1); - list.insert_after(&e2, &e3); - list.insert_last(&e4); - list.insert_first(&e0); - list.insert_last(&e5); - - EXPECT_EQ(list.size(), 6u); - assert_sorted(&list); - - for (int i = 0; i < 6; i++) { - XTestEntry* e = list.remove_first(); - EXPECT_EQ(e->id(), i); - } - - EXPECT_EQ(list.size(), 0u); -} - -TEST_F(XListTest, test_remove) { - // Remove first - { - XList list; - XTestEntry e0(0); - XTestEntry e1(1); - XTestEntry e2(2); - XTestEntry e3(3); - XTestEntry e4(4); - XTestEntry e5(5); - - list.insert_last(&e0); - list.insert_last(&e1); - list.insert_last(&e2); - list.insert_last(&e3); - list.insert_last(&e4); - list.insert_last(&e5); - - EXPECT_EQ(list.size(), 6u); - - for (int i = 0; i < 6; i++) { - XTestEntry* e = list.remove_first(); - EXPECT_EQ(e->id(), i); - } - - EXPECT_EQ(list.size(), 0u); - } - - // Remove last - { - XList list; - XTestEntry e0(0); - XTestEntry e1(1); - XTestEntry e2(2); - XTestEntry e3(3); - XTestEntry e4(4); - XTestEntry e5(5); - - list.insert_last(&e0); - list.insert_last(&e1); - list.insert_last(&e2); - list.insert_last(&e3); - list.insert_last(&e4); - list.insert_last(&e5); - - EXPECT_EQ(list.size(), 6u); - - for (int i = 5; i >= 0; i--) { - XTestEntry* e = list.remove_last(); - EXPECT_EQ(e->id(), i); - } - - EXPECT_EQ(list.size(), 0u); - } -} - -#endif // PRODUCT diff --git a/test/hotspot/gtest/gc/x/test_xLiveMap.cpp b/test/hotspot/gtest/gc/x/test_xLiveMap.cpp deleted file mode 100644 index d57790e9dab..00000000000 --- a/test/hotspot/gtest/gc/x/test_xLiveMap.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xLiveMap.inline.hpp" -#include "unittest.hpp" - -class XLiveMapTest : public ::testing::Test { -protected: - static void strongly_live_for_large_xpage() { - // Large XPages only have room for one object. - XLiveMap livemap(1); - - bool inc_live; - uintptr_t object = 0u; - - // Mark the object strong. - livemap.set(object, false /* finalizable */, inc_live); - - // Check that both bits are in the same segment. - ASSERT_EQ(livemap.index_to_segment(0), livemap.index_to_segment(1)); - - // Check that the object was marked. - ASSERT_TRUE(livemap.get(0)); - - // Check that the object was strongly marked. - ASSERT_TRUE(livemap.get(1)); - - ASSERT_TRUE(inc_live); - } -}; - -TEST_F(XLiveMapTest, strongly_live_for_large_xpage) { - strongly_live_for_large_xpage(); -} diff --git a/test/hotspot/gtest/gc/x/test_xPhysicalMemory.cpp b/test/hotspot/gtest/gc/x/test_xPhysicalMemory.cpp deleted file mode 100644 index f22032632e9..00000000000 --- a/test/hotspot/gtest/gc/x/test_xPhysicalMemory.cpp +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xPhysicalMemory.inline.hpp" -#include "unittest.hpp" - -TEST(XPhysicalMemoryTest, copy) { - const XPhysicalMemorySegment seg0(0, 100, true); - const XPhysicalMemorySegment seg1(200, 100, true); - - XPhysicalMemory pmem0; - pmem0.add_segment(seg0); - EXPECT_EQ(pmem0.nsegments(), 1); - EXPECT_EQ(pmem0.segment(0).size(), 100u); - - XPhysicalMemory pmem1; - pmem1.add_segment(seg0); - pmem1.add_segment(seg1); - EXPECT_EQ(pmem1.nsegments(), 2); - EXPECT_EQ(pmem1.segment(0).size(), 100u); - EXPECT_EQ(pmem1.segment(1).size(), 100u); - - XPhysicalMemory pmem2(pmem0); - EXPECT_EQ(pmem2.nsegments(), 1); - EXPECT_EQ(pmem2.segment(0).size(), 100u); - - pmem2 = pmem1; - EXPECT_EQ(pmem2.nsegments(), 2); - EXPECT_EQ(pmem2.segment(0).size(), 100u); - EXPECT_EQ(pmem2.segment(1).size(), 100u); -} - -TEST(XPhysicalMemoryTest, add) { - const XPhysicalMemorySegment seg0(0, 1, true); - const XPhysicalMemorySegment seg1(1, 1, true); - const XPhysicalMemorySegment seg2(2, 1, true); - const XPhysicalMemorySegment seg3(3, 1, true); - const XPhysicalMemorySegment seg4(4, 1, true); - const XPhysicalMemorySegment seg5(5, 1, true); - const XPhysicalMemorySegment seg6(6, 1, true); - - XPhysicalMemory pmem0; - EXPECT_EQ(pmem0.nsegments(), 0); - EXPECT_EQ(pmem0.is_null(), true); - - XPhysicalMemory pmem1; - pmem1.add_segment(seg0); - pmem1.add_segment(seg1); - pmem1.add_segment(seg2); - pmem1.add_segment(seg3); - pmem1.add_segment(seg4); - pmem1.add_segment(seg5); - pmem1.add_segment(seg6); - EXPECT_EQ(pmem1.nsegments(), 1); - EXPECT_EQ(pmem1.segment(0).size(), 7u); - EXPECT_EQ(pmem1.is_null(), false); - - XPhysicalMemory pmem2; - pmem2.add_segment(seg0); - pmem2.add_segment(seg1); - pmem2.add_segment(seg2); - pmem2.add_segment(seg4); - pmem2.add_segment(seg5); - pmem2.add_segment(seg6); - EXPECT_EQ(pmem2.nsegments(), 2); - EXPECT_EQ(pmem2.segment(0).size(), 3u); - EXPECT_EQ(pmem2.segment(1).size(), 3u); - EXPECT_EQ(pmem2.is_null(), false); - - XPhysicalMemory pmem3; - pmem3.add_segment(seg0); - pmem3.add_segment(seg2); - pmem3.add_segment(seg3); - pmem3.add_segment(seg4); - pmem3.add_segment(seg6); - EXPECT_EQ(pmem3.nsegments(), 3); - EXPECT_EQ(pmem3.segment(0).size(), 1u); - EXPECT_EQ(pmem3.segment(1).size(), 3u); - EXPECT_EQ(pmem3.segment(2).size(), 1u); - EXPECT_EQ(pmem3.is_null(), false); - - XPhysicalMemory pmem4; - pmem4.add_segment(seg0); - pmem4.add_segment(seg2); - pmem4.add_segment(seg4); - pmem4.add_segment(seg6); - EXPECT_EQ(pmem4.nsegments(), 4); - EXPECT_EQ(pmem4.segment(0).size(), 1u); - EXPECT_EQ(pmem4.segment(1).size(), 1u); - EXPECT_EQ(pmem4.segment(2).size(), 1u); - EXPECT_EQ(pmem4.segment(3).size(), 1u); - EXPECT_EQ(pmem4.is_null(), false); -} - -TEST(XPhysicalMemoryTest, remove) { - XPhysicalMemory pmem; - - pmem.add_segment(XPhysicalMemorySegment(10, 10, true)); - pmem.add_segment(XPhysicalMemorySegment(30, 10, true)); - pmem.add_segment(XPhysicalMemorySegment(50, 10, true)); - EXPECT_EQ(pmem.nsegments(), 3); - EXPECT_EQ(pmem.size(), 30u); - EXPECT_FALSE(pmem.is_null()); - - pmem.remove_segments(); - EXPECT_EQ(pmem.nsegments(), 0); - EXPECT_EQ(pmem.size(), 0u); - EXPECT_TRUE(pmem.is_null()); -} - -TEST(XPhysicalMemoryTest, split) { - XPhysicalMemory pmem; - - pmem.add_segment(XPhysicalMemorySegment(0, 10, true)); - pmem.add_segment(XPhysicalMemorySegment(10, 10, true)); - pmem.add_segment(XPhysicalMemorySegment(30, 10, true)); - EXPECT_EQ(pmem.nsegments(), 2); - EXPECT_EQ(pmem.size(), 30u); - - XPhysicalMemory pmem0 = pmem.split(1); - EXPECT_EQ(pmem0.nsegments(), 1); - EXPECT_EQ(pmem0.size(), 1u); - EXPECT_EQ(pmem.nsegments(), 2); - EXPECT_EQ(pmem.size(), 29u); - - XPhysicalMemory pmem1 = pmem.split(25); - EXPECT_EQ(pmem1.nsegments(), 2); - EXPECT_EQ(pmem1.size(), 25u); - EXPECT_EQ(pmem.nsegments(), 1); - EXPECT_EQ(pmem.size(), 4u); - - XPhysicalMemory pmem2 = pmem.split(4); - EXPECT_EQ(pmem2.nsegments(), 1); - EXPECT_EQ(pmem2.size(), 4u); - EXPECT_EQ(pmem.nsegments(), 0); - EXPECT_EQ(pmem.size(), 0u); -} - -TEST(XPhysicalMemoryTest, split_committed) { - XPhysicalMemory pmem0; - pmem0.add_segment(XPhysicalMemorySegment(0, 10, true)); - pmem0.add_segment(XPhysicalMemorySegment(10, 10, false)); - pmem0.add_segment(XPhysicalMemorySegment(20, 10, true)); - pmem0.add_segment(XPhysicalMemorySegment(30, 10, false)); - EXPECT_EQ(pmem0.nsegments(), 4); - EXPECT_EQ(pmem0.size(), 40u); - - XPhysicalMemory pmem1 = pmem0.split_committed(); - EXPECT_EQ(pmem0.nsegments(), 2); - EXPECT_EQ(pmem0.size(), 20u); - EXPECT_EQ(pmem1.nsegments(), 2); - EXPECT_EQ(pmem1.size(), 20u); -} diff --git a/test/hotspot/gtest/gc/x/test_xVirtualMemory.cpp b/test/hotspot/gtest/gc/x/test_xVirtualMemory.cpp deleted file mode 100644 index 6698ccfa045..00000000000 --- a/test/hotspot/gtest/gc/x/test_xVirtualMemory.cpp +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xVirtualMemory.inline.hpp" -#include "unittest.hpp" - -TEST(XVirtualMemory, split) { - XVirtualMemory vmem(0, 10); - - XVirtualMemory vmem0 = vmem.split(0); - EXPECT_EQ(vmem0.size(), 0u); - EXPECT_EQ(vmem.size(), 10u); - - XVirtualMemory vmem1 = vmem.split(5); - EXPECT_EQ(vmem1.size(), 5u); - EXPECT_EQ(vmem.size(), 5u); - - XVirtualMemory vmem2 = vmem.split(5); - EXPECT_EQ(vmem2.size(), 5u); - EXPECT_EQ(vmem.size(), 0u); - - XVirtualMemory vmem3 = vmem.split(0); - EXPECT_EQ(vmem3.size(), 0u); -} diff --git a/test/hotspot/jtreg/ProblemList-generational-zgc.txt b/test/hotspot/jtreg/ProblemList-generational-zgc.txt deleted file mode 100644 index 801328ec4ae..00000000000 --- a/test/hotspot/jtreg/ProblemList-generational-zgc.txt +++ /dev/null @@ -1,118 +0,0 @@ -# -# Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# This code is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 only, as -# published by the Free Software Foundation. -# -# This code is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# version 2 for more details (a copy is included in the LICENSE file that -# accompanied this code). -# -# You should have received a copy of the GNU General Public License version -# 2 along with this work; if not, write to the Free Software Foundation, -# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -# or visit www.oracle.com if you need additional information or have any -# questions. -# - -############################################################################# -# -# List of quarantined tests for testing with Generational ZGC. -# -############################################################################# - -# Quiet all SA tests - -resourcehogs/serviceability/sa/TestHeapDumpForLargeArray.java 8307393 generic-all -serviceability/sa/CDSJMapClstats.java 8307393 generic-all -serviceability/sa/ClhsdbAttach.java 8307393 generic-all -serviceability/sa/ClhsdbAttachDifferentJVMs.java 8307393 generic-all -serviceability/sa/ClhsdbCDSCore.java 8307393 generic-all -serviceability/sa/ClhsdbCDSJstackPrintAll.java 8307393 generic-all -serviceability/sa/ClhsdbClasses.java 8307393 generic-all -serviceability/sa/ClhsdbDumpclass.java 8307393 generic-all -serviceability/sa/ClhsdbDumpheap.java 8307393 generic-all -serviceability/sa/ClhsdbField.java 8307393 generic-all -serviceability/sa/ClhsdbFindPC.java#apa 8307393 generic-all -serviceability/sa/ClhsdbFindPC.java#no-xcomp-core 8307393 generic-all -serviceability/sa/ClhsdbFindPC.java#no-xcomp-process 8307393 generic-all -serviceability/sa/ClhsdbFindPC.java#xcomp-core 8307393 generic-all -serviceability/sa/ClhsdbFindPC.java#xcomp-process 8307393 generic-all -serviceability/sa/ClhsdbFlags.java 8307393 generic-all -serviceability/sa/ClhsdbHistory.java 8307393 generic-all -serviceability/sa/ClhsdbInspect.java 8307393 generic-all -serviceability/sa/ClhsdbJdis.java 8307393 generic-all -serviceability/sa/ClhsdbJhisto.java 8307393 generic-all -serviceability/sa/ClhsdbJstack.java#id0 8307393 generic-all -serviceability/sa/ClhsdbJstack.java#id1 8307393 generic-all -serviceability/sa/ClhsdbJstackWithConcurrentLock.java 8307393 generic-all -serviceability/sa/ClhsdbJstackXcompStress.java 8307393 generic-all -serviceability/sa/ClhsdbLauncher.java 8307393 generic-all -serviceability/sa/ClhsdbLongConstant.java 8307393 generic-all -serviceability/sa/ClhsdbPmap.java 8307393 generic-all -serviceability/sa/ClhsdbPmap.java#core 8307393 generic-all -serviceability/sa/ClhsdbPmap.java#process 8307393 generic-all -serviceability/sa/ClhsdbPrintAll.java 8307393 generic-all -serviceability/sa/ClhsdbPrintAs.java 8307393 generic-all -serviceability/sa/ClhsdbPrintStatics.java 8307393 generic-all -serviceability/sa/ClhsdbPstack.java#core 8307393 generic-all -serviceability/sa/ClhsdbPstack.java#process 8307393 generic-all -serviceability/sa/ClhsdbScanOops.java 8307393 generic-all -serviceability/sa/ClhsdbSource.java 8307393 generic-all -serviceability/sa/ClhsdbSymbol.java 8307393 generic-all -serviceability/sa/ClhsdbThread.java 8307393 generic-all -serviceability/sa/ClhsdbThreadContext.java 8307393 generic-all -serviceability/sa/ClhsdbVmStructsDump.java 8307393 generic-all -serviceability/sa/ClhsdbWhere.java 8307393 generic-all -serviceability/sa/DeadlockDetectionTest.java 8307393 generic-all -serviceability/sa/JhsdbThreadInfoTest.java 8307393 generic-all -serviceability/sa/LingeredAppSysProps.java 8307393 generic-all -serviceability/sa/LingeredAppWithDefaultMethods.java 8307393 generic-all -serviceability/sa/LingeredAppWithEnum.java 8307393 generic-all -serviceability/sa/LingeredAppWithInterface.java 8307393 generic-all -serviceability/sa/LingeredAppWithInvokeDynamic.java 8307393 generic-all -serviceability/sa/LingeredAppWithLock.java 8307393 generic-all -serviceability/sa/LingeredAppWithNativeMethod.java 8307393 generic-all -serviceability/sa/LingeredAppWithRecComputation.java 8307393 generic-all -serviceability/sa/TestClassDump.java 8307393 generic-all -serviceability/sa/TestClhsdbJstackLock.java 8307393 generic-all -serviceability/sa/TestCpoolForInvokeDynamic.java 8307393 generic-all -serviceability/sa/TestDefaultMethods.java 8307393 generic-all -serviceability/sa/TestG1HeapRegion.java 8307393 generic-all -serviceability/sa/TestHeapDumpForInvokeDynamic.java 8307393 generic-all -serviceability/sa/TestInstanceKlassSize.java 8307393 generic-all -serviceability/sa/TestInstanceKlassSizeForInterface.java 8307393 generic-all -serviceability/sa/TestIntConstant.java 8307393 generic-all -serviceability/sa/TestJhsdbJstackLineNumbers.java 8307393 generic-all -serviceability/sa/TestJhsdbJstackLock.java 8307393 generic-all -serviceability/sa/TestJhsdbJstackMixed.java 8307393 generic-all -serviceability/sa/TestJhsdbJstackUpcall.java 8307393 generic-all -serviceability/sa/TestJmapCore.java 8307393 generic-all -serviceability/sa/TestJmapCoreMetaspace.java 8307393 generic-all -serviceability/sa/TestObjectAlignment.java 8307393 generic-all -serviceability/sa/TestObjectMonitorIterate.java 8307393 generic-all -serviceability/sa/TestPrintMdo.java 8307393 generic-all -serviceability/sa/TestRevPtrsForInvokeDynamic.java 8307393 generic-all -serviceability/sa/TestSysProps.java 8307393 generic-all -serviceability/sa/TestType.java 8307393 generic-all -serviceability/sa/TestUniverse.java 8307393 generic-all -serviceability/sa/UniqueVtableTest.java 8307393 generic-all -serviceability/sa/jmap-hprof/JMapHProfLargeHeapProc.java 8307393 generic-all -serviceability/sa/jmap-hprof/JMapHProfLargeHeapTest.java 8307393 generic-all -serviceability/sa/sadebugd/ClhsdbAttachToDebugServer.java 8307393 generic-all -serviceability/sa/sadebugd/ClhsdbTestConnectArgument.java 8307393 generic-all -serviceability/sa/ClhsdbTestAllocationMerge.java 8307393 generic-all -serviceability/sa/sadebugd/DebugdConnectTest.java 8307393 generic-all -serviceability/sa/sadebugd/DebugdUtils.java 8307393 generic-all -serviceability/sa/sadebugd/DisableRegistryTest.java 8307393 generic-all -serviceability/sa/sadebugd/PmapOnDebugdTest.java 8307393 generic-all -serviceability/sa/sadebugd/RunCommandOnServerTest.java 8307393 generic-all -serviceability/sa/sadebugd/SADebugDTest.java 8307393 generic-all - -vmTestbase/gc/gctests/MemoryEaterMT/MemoryEaterMT.java 8289582 windows-x64 diff --git a/test/hotspot/jtreg/ProblemList-zgc.txt b/test/hotspot/jtreg/ProblemList-zgc.txt index 1afe56c99f8..7b2978ba491 100644 --- a/test/hotspot/jtreg/ProblemList-zgc.txt +++ b/test/hotspot/jtreg/ProblemList-zgc.txt @@ -27,22 +27,92 @@ # ############################################################################# -resourcehogs/serviceability/sa/TestHeapDumpForLargeArray.java 8276539 generic-all -serviceability/sa/CDSJMapClstats.java 8276539 generic-all -serviceability/sa/ClhsdbJhisto.java 8276539 generic-all -serviceability/sa/ClhsdbJstackWithConcurrentLock.java 8276539 generic-all -serviceability/sa/jmap-hprof/JMapHProfLargeHeapTest.java 8276539 generic-all +# Quiet all SA tests -serviceability/sa/ClhsdbFindPC.java#xcomp-core 8284045 generic-all -serviceability/sa/TestJmapCore.java 8268283,8270202 generic-all -serviceability/sa/TestJmapCoreMetaspace.java 8268636 generic-all - -serviceability/sa/TestJhsdbJstackMixed.java 8248912 generic-all -serviceability/sa/ClhsdbPstack.java#process 8248912 generic-all -serviceability/sa/ClhsdbPstack.java#core 8248912 generic-all - -serviceability/sa/TestSysProps.java 8302055 generic-all - -serviceability/sa/TestHeapDumpForInvokeDynamic.java 8315646 generic-all +resourcehogs/serviceability/sa/TestHeapDumpForLargeArray.java 8307393 generic-all +serviceability/sa/CDSJMapClstats.java 8307393 generic-all +serviceability/sa/ClhsdbAttach.java 8307393 generic-all +serviceability/sa/ClhsdbAttachDifferentJVMs.java 8307393 generic-all +serviceability/sa/ClhsdbCDSCore.java 8307393 generic-all +serviceability/sa/ClhsdbCDSJstackPrintAll.java 8307393 generic-all +serviceability/sa/ClhsdbClasses.java 8307393 generic-all +serviceability/sa/ClhsdbDumpclass.java 8307393 generic-all +serviceability/sa/ClhsdbDumpheap.java 8307393 generic-all +serviceability/sa/ClhsdbField.java 8307393 generic-all +serviceability/sa/ClhsdbFindPC.java#apa 8307393 generic-all +serviceability/sa/ClhsdbFindPC.java#no-xcomp-core 8307393 generic-all +serviceability/sa/ClhsdbFindPC.java#no-xcomp-process 8307393 generic-all +serviceability/sa/ClhsdbFindPC.java#xcomp-core 8307393 generic-all +serviceability/sa/ClhsdbFindPC.java#xcomp-process 8307393 generic-all +serviceability/sa/ClhsdbFlags.java 8307393 generic-all +serviceability/sa/ClhsdbHistory.java 8307393 generic-all +serviceability/sa/ClhsdbInspect.java 8307393 generic-all +serviceability/sa/ClhsdbJdis.java 8307393 generic-all +serviceability/sa/ClhsdbJhisto.java 8307393 generic-all +serviceability/sa/ClhsdbJstack.java#id0 8307393 generic-all +serviceability/sa/ClhsdbJstack.java#id1 8307393 generic-all +serviceability/sa/ClhsdbJstackWithConcurrentLock.java 8307393 generic-all +serviceability/sa/ClhsdbJstackXcompStress.java 8307393 generic-all +serviceability/sa/ClhsdbLauncher.java 8307393 generic-all +serviceability/sa/ClhsdbLongConstant.java 8307393 generic-all +serviceability/sa/ClhsdbPmap.java 8307393 generic-all +serviceability/sa/ClhsdbPmap.java#core 8307393 generic-all +serviceability/sa/ClhsdbPmap.java#process 8307393 generic-all +serviceability/sa/ClhsdbPrintAll.java 8307393 generic-all +serviceability/sa/ClhsdbPrintAs.java 8307393 generic-all +serviceability/sa/ClhsdbPrintStatics.java 8307393 generic-all +serviceability/sa/ClhsdbPstack.java#core 8307393 generic-all +serviceability/sa/ClhsdbPstack.java#process 8307393 generic-all +serviceability/sa/ClhsdbScanOops.java 8307393 generic-all +serviceability/sa/ClhsdbSource.java 8307393 generic-all +serviceability/sa/ClhsdbSymbol.java 8307393 generic-all +serviceability/sa/ClhsdbThread.java 8307393 generic-all +serviceability/sa/ClhsdbThreadContext.java 8307393 generic-all +serviceability/sa/ClhsdbVmStructsDump.java 8307393 generic-all +serviceability/sa/ClhsdbWhere.java 8307393 generic-all +serviceability/sa/DeadlockDetectionTest.java 8307393 generic-all +serviceability/sa/JhsdbThreadInfoTest.java 8307393 generic-all +serviceability/sa/LingeredAppSysProps.java 8307393 generic-all +serviceability/sa/LingeredAppWithDefaultMethods.java 8307393 generic-all +serviceability/sa/LingeredAppWithEnum.java 8307393 generic-all +serviceability/sa/LingeredAppWithInterface.java 8307393 generic-all +serviceability/sa/LingeredAppWithInvokeDynamic.java 8307393 generic-all +serviceability/sa/LingeredAppWithLock.java 8307393 generic-all +serviceability/sa/LingeredAppWithNativeMethod.java 8307393 generic-all +serviceability/sa/LingeredAppWithRecComputation.java 8307393 generic-all +serviceability/sa/TestClassDump.java 8307393 generic-all +serviceability/sa/TestClhsdbJstackLock.java 8307393 generic-all +serviceability/sa/TestCpoolForInvokeDynamic.java 8307393 generic-all +serviceability/sa/TestDefaultMethods.java 8307393 generic-all +serviceability/sa/TestG1HeapRegion.java 8307393 generic-all +serviceability/sa/TestHeapDumpForInvokeDynamic.java 8307393 generic-all +serviceability/sa/TestInstanceKlassSize.java 8307393 generic-all +serviceability/sa/TestInstanceKlassSizeForInterface.java 8307393 generic-all +serviceability/sa/TestIntConstant.java 8307393 generic-all +serviceability/sa/TestJhsdbJstackLineNumbers.java 8307393 generic-all +serviceability/sa/TestJhsdbJstackLock.java 8307393 generic-all +serviceability/sa/TestJhsdbJstackMixed.java 8307393 generic-all +serviceability/sa/TestJhsdbJstackUpcall.java 8307393 generic-all +serviceability/sa/TestJmapCore.java 8307393 generic-all +serviceability/sa/TestJmapCoreMetaspace.java 8307393 generic-all +serviceability/sa/TestObjectAlignment.java 8307393 generic-all +serviceability/sa/TestObjectMonitorIterate.java 8307393 generic-all +serviceability/sa/TestPrintMdo.java 8307393 generic-all +serviceability/sa/TestRevPtrsForInvokeDynamic.java 8307393 generic-all +serviceability/sa/TestSysProps.java 8307393 generic-all +serviceability/sa/TestType.java 8307393 generic-all +serviceability/sa/TestUniverse.java 8307393 generic-all +serviceability/sa/UniqueVtableTest.java 8307393 generic-all +serviceability/sa/jmap-hprof/JMapHProfLargeHeapProc.java 8307393 generic-all +serviceability/sa/jmap-hprof/JMapHProfLargeHeapTest.java 8307393 generic-all +serviceability/sa/sadebugd/ClhsdbAttachToDebugServer.java 8307393 generic-all +serviceability/sa/sadebugd/ClhsdbTestConnectArgument.java 8307393 generic-all +serviceability/sa/ClhsdbTestAllocationMerge.java 8307393 generic-all +serviceability/sa/sadebugd/DebugdConnectTest.java 8307393 generic-all +serviceability/sa/sadebugd/DebugdUtils.java 8307393 generic-all +serviceability/sa/sadebugd/DisableRegistryTest.java 8307393 generic-all +serviceability/sa/sadebugd/PmapOnDebugdTest.java 8307393 generic-all +serviceability/sa/sadebugd/RunCommandOnServerTest.java 8307393 generic-all +serviceability/sa/sadebugd/SADebugDTest.java 8307393 generic-all vmTestbase/gc/gctests/MemoryEaterMT/MemoryEaterMT.java 8289582 windows-x64 diff --git a/test/hotspot/jtreg/ProblemList.txt b/test/hotspot/jtreg/ProblemList.txt index 43ec66bade5..ce9e97e1715 100644 --- a/test/hotspot/jtreg/ProblemList.txt +++ b/test/hotspot/jtreg/ProblemList.txt @@ -59,8 +59,7 @@ compiler/codecache/CheckLargePages.java 8332654 linux-x64 compiler/vectorapi/reshape/TestVectorReinterpret.java 8320897 aix-ppc64,linux-ppc64le compiler/vectorapi/VectorLogicalOpIdentityTest.java 8302459 linux-x64,windows-x64 -compiler/vectorapi/VectorRebracket128Test.java#ZSinglegen 8330538 generic-all -compiler/vectorapi/VectorRebracket128Test.java#ZGenerational 8330538 generic-all +compiler/vectorapi/VectorRebracket128Test.java#Z 8330538 generic-all compiler/jvmci/TestUncaughtErrorInCompileMethod.java 8309073 generic-all compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/DataPatchTest.java 8331704 linux-riscv64 @@ -94,8 +93,7 @@ gc/TestAlwaysPreTouchBehavior.java#ParallelCollector 8334513 generic-all gc/TestAlwaysPreTouchBehavior.java#SerialCollector 8334513 generic-all gc/TestAlwaysPreTouchBehavior.java#Shenandoah 8334513 generic-all gc/TestAlwaysPreTouchBehavior.java#G1 8334513 generic-all -gc/TestAlwaysPreTouchBehavior.java#ZGenerational 8334513 generic-all -gc/TestAlwaysPreTouchBehavior.java#ZSinglegen 8334513 generic-all +gc/TestAlwaysPreTouchBehavior.java#Z 8334513 generic-all gc/TestAlwaysPreTouchBehavior.java#Epsilon 8334513 generic-all gc/stress/gclocker/TestExcessGCLockerCollections.java 8229120 generic-all diff --git a/test/hotspot/jtreg/TEST.ROOT b/test/hotspot/jtreg/TEST.ROOT index 962fc36838c..21c5aebaa71 100644 --- a/test/hotspot/jtreg/TEST.ROOT +++ b/test/hotspot/jtreg/TEST.ROOT @@ -61,8 +61,6 @@ requires.properties= \ vm.gc.Shenandoah \ vm.gc.Epsilon \ vm.gc.Z \ - vm.gc.ZGenerational \ - vm.gc.ZSinglegen \ vm.jvmci \ vm.jvmci.enabled \ vm.emulatedClient \ diff --git a/test/hotspot/jtreg/compiler/gcbarriers/TestArrayCopyWithLargeObjectAlignment.java b/test/hotspot/jtreg/compiler/gcbarriers/TestArrayCopyWithLargeObjectAlignment.java index dd2d485fb76..494c571450d 100644 --- a/test/hotspot/jtreg/compiler/gcbarriers/TestArrayCopyWithLargeObjectAlignment.java +++ b/test/hotspot/jtreg/compiler/gcbarriers/TestArrayCopyWithLargeObjectAlignment.java @@ -30,11 +30,11 @@ * @summary Test that, when using a larger object alignment, ZGC arraycopy * barriers are only applied to actual OOPs, and not to object * alignment padding words. - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @run main/othervm -Xbatch -XX:-TieredCompilation * -XX:CompileOnly=compiler.gcbarriers.TestArrayCopyWithLargeObjectAlignment::* * -XX:ObjectAlignmentInBytes=16 - * -XX:+UseZGC -XX:+ZGenerational + * -XX:+UseZGC * compiler.gcbarriers.TestArrayCopyWithLargeObjectAlignment */ diff --git a/test/hotspot/jtreg/compiler/gcbarriers/TestZGCBarrierElision.java b/test/hotspot/jtreg/compiler/gcbarriers/TestZGCBarrierElision.java index af047dd5457..6f39ba7a8a1 100644 --- a/test/hotspot/jtreg/compiler/gcbarriers/TestZGCBarrierElision.java +++ b/test/hotspot/jtreg/compiler/gcbarriers/TestZGCBarrierElision.java @@ -34,7 +34,7 @@ * necessary barriers. The tests use volatile memory accesses and * blackholes to prevent C2 from simply optimizing them away. * @library /test/lib / - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @run driver compiler.gcbarriers.TestZGCBarrierElision test-correctness */ @@ -43,7 +43,7 @@ * @summary Test that the ZGC barrier elision optimization elides unnecessary * barriers following simple allocation and domination rules. * @library /test/lib / - * @requires vm.gc.ZGenerational & (vm.simpleArch == "x64" | vm.simpleArch == "aarch64") + * @requires vm.gc.Z & (vm.simpleArch == "x64" | vm.simpleArch == "aarch64") * @run driver compiler.gcbarriers.TestZGCBarrierElision test-effectiveness */ @@ -99,7 +99,7 @@ public static void main(String[] args) { } String commonName = Common.class.getName(); TestFramework test = new TestFramework(testClass); - test.addFlags("-XX:+UseZGC", "-XX:+ZGenerational", "-XX:+UnlockExperimentalVMOptions", + test.addFlags("-XX:+UseZGC", "-XX:+UnlockExperimentalVMOptions", "-XX:CompileCommand=blackhole," + commonName + "::blackhole", "-XX:CompileCommand=dontinline," + commonName + "::nonInlinedMethod", "-XX:LoopMaxUnroll=0"); diff --git a/test/hotspot/jtreg/compiler/gcbarriers/TestZGCUnrolling.java b/test/hotspot/jtreg/compiler/gcbarriers/TestZGCUnrolling.java index 618b03e4cfb..0c30531285e 100644 --- a/test/hotspot/jtreg/compiler/gcbarriers/TestZGCUnrolling.java +++ b/test/hotspot/jtreg/compiler/gcbarriers/TestZGCUnrolling.java @@ -34,7 +34,7 @@ * The tests use volatile memory accesses to prevent C2 from simply * optimizing them away. * @library /test/lib / - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @run driver compiler.gcbarriers.TestZGCUnrolling */ @@ -55,8 +55,7 @@ static class Outer { } public static void main(String[] args) { - TestFramework.runWithFlags("-XX:+UseZGC", "-XX:+ZGenerational", - "-XX:LoopUnrollLimit=24"); + TestFramework.runWithFlags("-XX:+UseZGC", "-XX:LoopUnrollLimit=24"); } @Test diff --git a/test/hotspot/jtreg/compiler/gcbarriers/UnsafeIntrinsicsTest.java b/test/hotspot/jtreg/compiler/gcbarriers/UnsafeIntrinsicsTest.java index 6a511fd60d9..65901f5e656 100644 --- a/test/hotspot/jtreg/compiler/gcbarriers/UnsafeIntrinsicsTest.java +++ b/test/hotspot/jtreg/compiler/gcbarriers/UnsafeIntrinsicsTest.java @@ -22,14 +22,14 @@ */ /* - * @test id=ZSinglegenDebug + * @test id=ZDebug * @key randomness * @bug 8059022 8271855 * @modules java.base/jdk.internal.misc:+open * @summary Validate barriers after Unsafe getReference, CAS and swap (GetAndSet) - * @requires vm.gc.ZSinglegen & vm.debug + * @requires vm.gc.Z & vm.debug * @library /test/lib - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational + * @run main/othervm -XX:+UseZGC * -XX:+UnlockDiagnosticVMOptions * -XX:+ZVerifyOops -XX:ZCollectionInterval=1 * -XX:-CreateCoredumpOnCrash @@ -38,46 +38,14 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @key randomness * @bug 8059022 8271855 * @modules java.base/jdk.internal.misc:+open * @summary Validate barriers after Unsafe getReference, CAS and swap (GetAndSet) - * @requires vm.gc.ZSinglegen & !vm.debug + * @requires vm.gc.Z & !vm.debug * @library /test/lib - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational - * -XX:+UnlockDiagnosticVMOptions - * -XX:ZCollectionInterval=1 - * -XX:-CreateCoredumpOnCrash - * -XX:CompileCommand=dontinline,*::mergeImpl* - * compiler.gcbarriers.UnsafeIntrinsicsTest - */ - -/* - * @test id=ZGenerationalDebug - * @key randomness - * @bug 8059022 8271855 - * @modules java.base/jdk.internal.misc:+open - * @summary Validate barriers after Unsafe getReference, CAS and swap (GetAndSet) - * @requires vm.gc.ZGenerational & vm.debug - * @library /test/lib - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational - * -XX:+UnlockDiagnosticVMOptions - * -XX:+ZVerifyOops -XX:ZCollectionInterval=1 - * -XX:-CreateCoredumpOnCrash - * -XX:CompileCommand=dontinline,*::mergeImpl* - * compiler.gcbarriers.UnsafeIntrinsicsTest - */ - -/* - * @test id=ZGenerational - * @key randomness - * @bug 8059022 8271855 - * @modules java.base/jdk.internal.misc:+open - * @summary Validate barriers after Unsafe getReference, CAS and swap (GetAndSet) - * @requires vm.gc.ZGenerational & !vm.debug - * @library /test/lib - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational + * @run main/othervm -XX:+UseZGC * -XX:+UnlockDiagnosticVMOptions * -XX:ZCollectionInterval=1 * -XX:-CreateCoredumpOnCrash diff --git a/test/hotspot/jtreg/compiler/loopopts/TestRangeCheckPredicatesControl.java b/test/hotspot/jtreg/compiler/loopopts/TestRangeCheckPredicatesControl.java index a46de67de05..1f64ed28d8a 100644 --- a/test/hotspot/jtreg/compiler/loopopts/TestRangeCheckPredicatesControl.java +++ b/test/hotspot/jtreg/compiler/loopopts/TestRangeCheckPredicatesControl.java @@ -22,25 +22,14 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @key stress randomness - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @bug 8237859 * @summary A LoadP node has a wrong control input (too early) which results in an out-of-bounds read of an object array with ZGC. * - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational compiler.loopopts.TestRangeCheckPredicatesControl - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -XX:+UnlockDiagnosticVMOptions -XX:+IgnoreUnrecognizedVMOptions -XX:+StressGCM compiler.loopopts.TestRangeCheckPredicatesControl - */ - -/* - * @test id=ZGenerational - * @key stress randomness - * @requires vm.gc.ZGenerational - * @bug 8237859 - * @summary A LoadP node has a wrong control input (too early) which results in an out-of-bounds read of an object array with ZGC. - * - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational compiler.loopopts.TestRangeCheckPredicatesControl - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -XX:+UnlockDiagnosticVMOptions -XX:+IgnoreUnrecognizedVMOptions -XX:+StressGCM compiler.loopopts.TestRangeCheckPredicatesControl + * @run main/othervm -XX:+UseZGC compiler.loopopts.TestRangeCheckPredicatesControl + * @run main/othervm -XX:+UseZGC -XX:+UnlockDiagnosticVMOptions -XX:+IgnoreUnrecognizedVMOptions -XX:+StressGCM compiler.loopopts.TestRangeCheckPredicatesControl */ package compiler.loopopts; diff --git a/test/hotspot/jtreg/compiler/loopstripmining/TestNoWarningLoopStripMiningIterSet.java b/test/hotspot/jtreg/compiler/loopstripmining/TestNoWarningLoopStripMiningIterSet.java index c356e4495c2..c7fedf8982e 100644 --- a/test/hotspot/jtreg/compiler/loopstripmining/TestNoWarningLoopStripMiningIterSet.java +++ b/test/hotspot/jtreg/compiler/loopstripmining/TestNoWarningLoopStripMiningIterSet.java @@ -44,25 +44,14 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @bug 8241486 * @summary G1/Z give warning when using LoopStripMiningIter and turn off LoopStripMiningIter (0) * @requires vm.flagless * @requires vm.flavor == "server" & !vm.graal.enabled - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @library /test/lib - * @run driver TestNoWarningLoopStripMiningIterSet Z -XX:-ZGenerational - */ - -/* - * @test id=ZGenerational - * @bug 8241486 - * @summary G1/Z give warning when using LoopStripMiningIter and turn off LoopStripMiningIter (0) - * @requires vm.flagless - * @requires vm.flavor == "server" & !vm.graal.enabled - * @requires vm.gc.ZGenerational - * @library /test/lib - * @run driver TestNoWarningLoopStripMiningIterSet Z -XX:+ZGenerational + * @run driver TestNoWarningLoopStripMiningIterSet Z */ /* @@ -106,18 +95,9 @@ public static void testWith(Consumer check, String msg, boolean public static void main(String[] args) throws Exception { String gc = "-XX:+Use" + args[0] + "GC"; - if (args.length > 1) { - String extraVMArg = args[1]; - testWith(output -> output.shouldNotContain(CLSOffLSMGreaterZero), "should have CLS and LSM enabled", true, 100, "-XX:LoopStripMiningIter=100", gc, extraVMArg); - testWith(output -> output.shouldContain(CLSOffLSMGreaterZero), "should have CLS and LSM disabled", false, 0, "-XX:-UseCountedLoopSafepoints", "-XX:LoopStripMiningIter=100", gc, extraVMArg); - testWith(output -> output.shouldContain(CLSOnLSMEqualZero), "should have CLS and LSM enabled", true, 1, "-XX:LoopStripMiningIter=0", gc, extraVMArg); - testWith(output -> output.shouldNotContain(CLSOnLSMEqualZero), "should have CLS and LSM disabled", false, 0, "-XX:-UseCountedLoopSafepoints", "-XX:LoopStripMiningIter=0", gc, extraVMArg); - } else { - testWith(output -> output.shouldNotContain(CLSOffLSMGreaterZero), "should have CLS and LSM enabled", true, 100, "-XX:LoopStripMiningIter=100", gc); - testWith(output -> output.shouldContain(CLSOffLSMGreaterZero), "should have CLS and LSM disabled", false, 0, "-XX:-UseCountedLoopSafepoints", "-XX:LoopStripMiningIter=100", gc); - testWith(output -> output.shouldContain(CLSOnLSMEqualZero), "should have CLS and LSM enabled", true, 1, "-XX:LoopStripMiningIter=0", gc); - testWith(output -> output.shouldNotContain(CLSOnLSMEqualZero), "should have CLS and LSM disabled", false, 0, "-XX:-UseCountedLoopSafepoints", "-XX:LoopStripMiningIter=0", gc); - - } + testWith(output -> output.shouldNotContain(CLSOffLSMGreaterZero), "should have CLS and LSM enabled", true, 100, "-XX:LoopStripMiningIter=100", gc); + testWith(output -> output.shouldContain(CLSOffLSMGreaterZero), "should have CLS and LSM disabled", false, 0, "-XX:-UseCountedLoopSafepoints", "-XX:LoopStripMiningIter=100", gc); + testWith(output -> output.shouldContain(CLSOnLSMEqualZero), "should have CLS and LSM enabled", true, 1, "-XX:LoopStripMiningIter=0", gc); + testWith(output -> output.shouldNotContain(CLSOnLSMEqualZero), "should have CLS and LSM disabled", false, 0, "-XX:-UseCountedLoopSafepoints", "-XX:LoopStripMiningIter=0", gc); } } diff --git a/test/hotspot/jtreg/compiler/uncommontrap/TestDeoptOOM.java b/test/hotspot/jtreg/compiler/uncommontrap/TestDeoptOOM.java index 6f1f4138435..a0a2aacde3f 100644 --- a/test/hotspot/jtreg/compiler/uncommontrap/TestDeoptOOM.java +++ b/test/hotspot/jtreg/compiler/uncommontrap/TestDeoptOOM.java @@ -34,28 +34,15 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @bug 8273456 * @summary Test that ttyLock is ranked above StackWatermark_lock - * @requires !vm.graal.enabled & vm.gc.ZSinglegen + * @requires !vm.graal.enabled & vm.gc.Z * @run main/othervm -XX:-BackgroundCompilation -Xmx128M -XX:+IgnoreUnrecognizedVMOptions -XX:+VerifyStack * -XX:CompileCommand=exclude,compiler.uncommontrap.TestDeoptOOM::main * -XX:CompileCommand=exclude,compiler.uncommontrap.TestDeoptOOM::m9_1 * -XX:+UnlockDiagnosticVMOptions - * -XX:+UseZGC -XX:-ZGenerational -XX:+LogCompilation -XX:+PrintDeoptimizationDetails -XX:+TraceDeoptimization -XX:+Verbose - * compiler.uncommontrap.TestDeoptOOM - */ - -/* - * @test id=ZGenerational - * @bug 8273456 - * @summary Test that ttyLock is ranked above StackWatermark_lock - * @requires !vm.graal.enabled & vm.gc.ZGenerational - * @run main/othervm -XX:-BackgroundCompilation -Xmx128M -XX:+IgnoreUnrecognizedVMOptions -XX:+VerifyStack - * -XX:CompileCommand=exclude,compiler.uncommontrap.TestDeoptOOM::main - * -XX:CompileCommand=exclude,compiler.uncommontrap.TestDeoptOOM::m9_1 - * -XX:+UnlockDiagnosticVMOptions - * -XX:+UseZGC -XX:+ZGenerational -XX:+LogCompilation -XX:+PrintDeoptimizationDetails -XX:+TraceDeoptimization -XX:+Verbose + * -XX:+UseZGC -XX:+LogCompilation -XX:+PrintDeoptimizationDetails -XX:+TraceDeoptimization -XX:+Verbose * compiler.uncommontrap.TestDeoptOOM */ diff --git a/test/hotspot/jtreg/compiler/vectorapi/VectorRebracket128Test.java b/test/hotspot/jtreg/compiler/vectorapi/VectorRebracket128Test.java index 239f5256405..4f7f03590dd 100644 --- a/test/hotspot/jtreg/compiler/vectorapi/VectorRebracket128Test.java +++ b/test/hotspot/jtreg/compiler/vectorapi/VectorRebracket128Test.java @@ -35,23 +35,13 @@ import jdk.internal.vm.annotation.ForceInline; /* - * @test id=ZSinglegen + * @test id=Z * @bug 8260473 - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @modules jdk.incubator.vector * @modules java.base/jdk.internal.vm.annotation * @run testng/othervm -XX:CompileCommand=compileonly,jdk/incubator/vector/ByteVector.fromMemorySegment - * -XX:-TieredCompilation -XX:CICompilerCount=1 -XX:+UseZGC -XX:-ZGenerational -Xbatch -Xmx256m VectorRebracket128Test - */ - -/* - * @test id=ZGenerational - * @bug 8260473 - * @requires vm.gc.ZGenerational - * @modules jdk.incubator.vector - * @modules java.base/jdk.internal.vm.annotation - * @run testng/othervm -XX:CompileCommand=compileonly,jdk/incubator/vector/ByteVector.fromMemorySegment - * -XX:-TieredCompilation -XX:CICompilerCount=1 -XX:+UseZGC -XX:+ZGenerational -Xbatch -Xmx256m VectorRebracket128Test + * -XX:-TieredCompilation -XX:CICompilerCount=1 -XX:+UseZGC -Xbatch -Xmx256m VectorRebracket128Test */ @Test diff --git a/test/hotspot/jtreg/gc/TestAlwaysPreTouchBehavior.java b/test/hotspot/jtreg/gc/TestAlwaysPreTouchBehavior.java index c282c2876ea..9f6c915d1c0 100644 --- a/test/hotspot/jtreg/gc/TestAlwaysPreTouchBehavior.java +++ b/test/hotspot/jtreg/gc/TestAlwaysPreTouchBehavior.java @@ -73,27 +73,15 @@ */ /** - * @test id=ZGenerational + * @test id=Z * @summary tests AlwaysPreTouch - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @requires os.maxMemory > 2G * @requires os.family != "aix" * @library /test/lib * @build jdk.test.whitebox.WhiteBox * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox - * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UseZGC -XX:+ZGenerational -Xmx512m -Xms512m -XX:+AlwaysPreTouch gc.TestAlwaysPreTouchBehavior - */ - -/** - * @test id=ZSinglegen - * @summary tests AlwaysPreTouch - * @requires vm.gc.ZSinglegen - * @requires os.maxMemory > 2G - * @requires os.family != "aix" - * @library /test/lib - * @build jdk.test.whitebox.WhiteBox - * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox - * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UseZGC -XX:-ZGenerational -Xmx512m -Xms512m -XX:+AlwaysPreTouch gc.TestAlwaysPreTouchBehavior + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UseZGC -Xmx512m -Xms512m -XX:+AlwaysPreTouch gc.TestAlwaysPreTouchBehavior */ /** diff --git a/test/hotspot/jtreg/gc/TestReferenceClearDuringReferenceProcessing.java b/test/hotspot/jtreg/gc/TestReferenceClearDuringReferenceProcessing.java index f66387b4cd7..3be7ba241e7 100644 --- a/test/hotspot/jtreg/gc/TestReferenceClearDuringReferenceProcessing.java +++ b/test/hotspot/jtreg/gc/TestReferenceClearDuringReferenceProcessing.java @@ -36,27 +36,15 @@ * gc.TestReferenceClearDuringReferenceProcessing */ -/* @test id=ZSinglegen +/* @test id=Z * @bug 8256517 - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @library /test/lib * @build jdk.test.whitebox.WhiteBox * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox * @run main/othervm * -Xbootclasspath/a:. - * -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UseZGC -XX:-ZGenerational - * gc.TestReferenceClearDuringReferenceProcessing - */ - -/* @test id=ZGenerational - * @bug 8256517 - * @requires vm.gc.ZGenerational - * @library /test/lib - * @build jdk.test.whitebox.WhiteBox - * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox - * @run main/othervm - * -Xbootclasspath/a:. - * -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UseZGC -XX:+ZGenerational + * -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UseZGC * gc.TestReferenceClearDuringReferenceProcessing */ diff --git a/test/hotspot/jtreg/gc/TestSystemGC.java b/test/hotspot/jtreg/gc/TestSystemGC.java index c81b98a562f..6d37dc3d44b 100644 --- a/test/hotspot/jtreg/gc/TestSystemGC.java +++ b/test/hotspot/jtreg/gc/TestSystemGC.java @@ -58,21 +58,12 @@ */ /* - * @test id=ZSinglegen - * @requires vm.gc.ZSinglegen + * @test id=Z + * @requires vm.gc.Z * @comment ZGC will not start when LargePages cannot be allocated, therefore * we do not run such configuration. * @summary Runs System.gc() with different flags. - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational gc.TestSystemGC - */ - -/* - * @test id=ZGenerational - * @requires vm.gc.ZGenerational - * @comment ZGC will not start when LargePages cannot be allocated, therefore - * we do not run such configuration. - * @summary Runs System.gc() with different flags. - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational gc.TestSystemGC + * @run main/othervm -XX:+UseZGC gc.TestSystemGC */ public class TestSystemGC { diff --git a/test/hotspot/jtreg/gc/TestVerifySubSet.java b/test/hotspot/jtreg/gc/TestVerifySubSet.java index 08cddc74a00..3dc28549b56 100644 --- a/test/hotspot/jtreg/gc/TestVerifySubSet.java +++ b/test/hotspot/jtreg/gc/TestVerifySubSet.java @@ -26,9 +26,9 @@ /* @test TestVerifySubSet.java * @bug 8072725 * @summary Test VerifySubSet option - * @comment Generational ZGC can't use the generic Universe::verify - * because there's no guarantee that we will ever have - * a stable snapshot where all roots can be verified. + * @comment ZGC can't use the generic Universe::verify because + * there's no guarantee that we will ever have a stable + * snapshot where all roots can be verified. * @requires vm.gc != "Z" * @library /test/lib * @modules java.base/jdk.internal.misc diff --git a/test/hotspot/jtreg/gc/cslocker/TestCSLocker.java b/test/hotspot/jtreg/gc/cslocker/TestCSLocker.java index 2a6e3a1bfd0..bd5b6e28aa8 100644 --- a/test/hotspot/jtreg/gc/cslocker/TestCSLocker.java +++ b/test/hotspot/jtreg/gc/cslocker/TestCSLocker.java @@ -33,11 +33,11 @@ * @summary completely in JNI CS, while other is trying to allocate memory * @summary provoking GC. OOM means FAIL, deadlock means PASS. * - * @comment This test assumes that no allocation happens during the sleep loop, \ - * which is something that we can't guarantee. With Generational ZGC we \ - * see test timeouts because the main thread allocates and waits for the \ - * GC, which waits for the CSLocker, which waits for the main thread. \ - * @requires !vm.opt.final.ZGenerational + * @comment This test assumes that no allocation happens during the sleep loop, + * which is something that we can't guarantee. With ZGC we see test + * timeouts because the main thread allocates and waits for the GC, + * which waits for the CSLocker, which waits for the main thread. + * @requires vm.gc != "Z" * * @run main/native/othervm -Xmx256m gc.cslocker.TestCSLocker */ diff --git a/test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithZ.java b/test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithZ.java index dd54556697d..fb58d5784d4 100644 --- a/test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithZ.java +++ b/test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithZ.java @@ -27,47 +27,27 @@ import java.io.IOException; /* - * @test TestGCBasherWithZGenerational + * @test TestGCBasherWithZ * @key stress * @library / - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @requires vm.flavor == "server" & !vm.emulatedClient * @summary Stress ZGC - * @run main/othervm/timeout=200 -Xlog:gc*=info -Xmx384m -server -XX:+UseZGC -XX:+ZGenerational gc.stress.gcbasher.TestGCBasherWithZ 120000 - */ -/* - * @test TestGCBasherWithZSinglegen - * @key stress - * @library / - * @requires vm.gc.ZSinglegen - * @requires vm.flavor == "server" & !vm.emulatedClient - * @summary Stress ZGC - * @run main/othervm/timeout=200 -Xlog:gc*=info -Xmx384m -server -XX:+UseZGC -XX:-ZGenerational gc.stress.gcbasher.TestGCBasherWithZ 120000 + * @run main/othervm/timeout=200 -Xlog:gc*=info -Xmx384m -server -XX:+UseZGC gc.stress.gcbasher.TestGCBasherWithZ 120000 */ /* - * @test TestGCBasherDeoptWithZGenerational + * @test TestGCBasherDeoptWithZ * @key stress * @library / - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @requires vm.flavor == "server" & !vm.emulatedClient & vm.opt.ClassUnloading != false * @summary Stress ZGC with nmethod barrier forced deoptimization enabled. - * @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx384m -server -XX:+UseZGC -XX:+ZGenerational + * @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx384m -server -XX:+UseZGC * -XX:+UnlockDiagnosticVMOptions -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline * gc.stress.gcbasher.TestGCBasherWithZ 120000 */ -/* - * @test TestGCBasherDeoptWithZSinglegen - * @key stress - * @library / - * @requires vm.gc.ZSinglegen - * @requires vm.flavor == "server" & !vm.emulatedClient & vm.opt.ClassUnloading != false - * @summary Stress ZGC with nmethod barrier forced deoptimization enabled. - * @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx384m -server -XX:+UseZGC -XX:-ZGenerational - * -XX:+UnlockDiagnosticVMOptions -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline - * gc.stress.gcbasher.TestGCBasherWithZ 120000 - */ public class TestGCBasherWithZ { public static void main(String[] args) throws IOException { TestGCBasher.main(args); diff --git a/test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithZ.java b/test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithZ.java index 0f77a6c286a..0741cf1fba3 100644 --- a/test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithZ.java +++ b/test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithZ.java @@ -25,24 +25,15 @@ package gc.stress.gcold; /* - * @test TestGCOldWithZGenerational + * @test TestGCOldWithZ * @key randomness * @library / /test/lib - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @summary Stress the Z - * @run main/othervm -Xmx384M -XX:+UseZGC -XX:+ZGenerational gc.stress.gcold.TestGCOldWithZ 50 1 20 10 10000 - * @run main/othervm -Xmx256m -XX:+UseZGC -XX:+ZGenerational gc.stress.gcold.TestGCOldWithZ 50 5 20 1 5000 + * @run main/othervm -Xmx384M -XX:+UseZGC gc.stress.gcold.TestGCOldWithZ 50 1 20 10 10000 + * @run main/othervm -Xmx256m -XX:+UseZGC gc.stress.gcold.TestGCOldWithZ 50 5 20 1 5000 */ -/* - * @test TestGCOldWithZSinglegen - * @key randomness - * @library / /test/lib - * @requires vm.gc.ZSinglegen - * @summary Stress the Z - * @run main/othervm -Xmx384M -XX:+UseZGC -XX:-ZGenerational gc.stress.gcold.TestGCOldWithZ 50 1 20 10 10000 - * @run main/othervm -Xmx256m -XX:+UseZGC -XX:-ZGenerational gc.stress.gcold.TestGCOldWithZ 50 5 20 1 5000 - */ public class TestGCOldWithZ { public static void main(String[] args) { TestGCOld.main(args); diff --git a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationAgeThreshold.java b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationAgeThreshold.java index e70d63cf397..090a49aa80b 100644 --- a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationAgeThreshold.java +++ b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationAgeThreshold.java @@ -76,29 +76,16 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @summary Test string deduplication age threshold * @bug 8029075 - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @library /test/lib * @library / * @modules java.base/jdk.internal.misc:open * @modules java.base/java.lang:open * java.management - * @run driver gc.stringdedup.TestStringDeduplicationAgeThreshold Z -XX:-ZGenerational - */ - -/* - * @test id=ZGenerational - * @summary Test string deduplication age threshold - * @bug 8029075 - * @requires vm.gc.ZGenerational - * @library /test/lib - * @library / - * @modules java.base/jdk.internal.misc:open - * @modules java.base/java.lang:open - * java.management - * @run driver gc.stringdedup.TestStringDeduplicationAgeThreshold Z -XX:+ZGenerational + * @run driver gc.stringdedup.TestStringDeduplicationAgeThreshold Z */ public class TestStringDeduplicationAgeThreshold { diff --git a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationFullGC.java b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationFullGC.java index 03793f03b1b..7105be7d478 100644 --- a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationFullGC.java +++ b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationFullGC.java @@ -76,29 +76,16 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @summary Test string deduplication during full GC * @bug 8029075 - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @library /test/lib * @library / * @modules java.base/jdk.internal.misc:open * @modules java.base/java.lang:open * java.management - * @run driver gc.stringdedup.TestStringDeduplicationFullGC Z -XX:-ZGenerational - */ - -/* - * @test id=ZGenerational - * @summary Test string deduplication during full GC - * @bug 8029075 - * @requires vm.gc.ZGenerational - * @library /test/lib - * @library / - * @modules java.base/jdk.internal.misc:open - * @modules java.base/java.lang:open - * java.management - * @run driver gc.stringdedup.TestStringDeduplicationFullGC Z -XX:+ZGenerational + * @run driver gc.stringdedup.TestStringDeduplicationFullGC Z */ public class TestStringDeduplicationFullGC { diff --git a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationInterned.java b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationInterned.java index 0981be49aec..124bf9d5cf9 100644 --- a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationInterned.java +++ b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationInterned.java @@ -76,29 +76,16 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @summary Test string deduplication of interned strings * @bug 8029075 - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @library /test/lib * @library / * @modules java.base/jdk.internal.misc:open * @modules java.base/java.lang:open * java.management - * @run driver gc.stringdedup.TestStringDeduplicationInterned Z -XX:-ZGenerational - */ - -/* - * @test id=ZGenerational - * @summary Test string deduplication of interned strings - * @bug 8029075 - * @requires vm.gc.ZGenerational - * @library /test/lib - * @library / - * @modules java.base/jdk.internal.misc:open - * @modules java.base/java.lang:open - * java.management - * @run driver gc.stringdedup.TestStringDeduplicationInterned Z -XX:+ZGenerational + * @run driver gc.stringdedup.TestStringDeduplicationInterned Z */ public class TestStringDeduplicationInterned { diff --git a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationPrintOptions.java b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationPrintOptions.java index 265cb1b9dd3..0659bc5aea3 100644 --- a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationPrintOptions.java +++ b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationPrintOptions.java @@ -76,29 +76,16 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @summary Test string deduplication print options * @bug 8029075 - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @library /test/lib * @library / * @modules java.base/jdk.internal.misc:open * @modules java.base/java.lang:open * java.management - * @run driver gc.stringdedup.TestStringDeduplicationPrintOptions Z -XX:-ZGenerational - */ - -/* - * @test id=ZGenerational - * @summary Test string deduplication print options - * @bug 8029075 - * @requires vm.gc.ZGenerational - * @library /test/lib - * @library / - * @modules java.base/jdk.internal.misc:open - * @modules java.base/java.lang:open - * java.management - * @run driver gc.stringdedup.TestStringDeduplicationPrintOptions Z -XX:+ZGenerational + * @run driver gc.stringdedup.TestStringDeduplicationPrintOptions Z */ public class TestStringDeduplicationPrintOptions { diff --git a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationTableResize.java b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationTableResize.java index 2c16e9c4c4a..d82244ef07a 100644 --- a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationTableResize.java +++ b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationTableResize.java @@ -76,29 +76,16 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @summary Test string deduplication table resize * @bug 8029075 - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @library /test/lib * @library / * @modules java.base/jdk.internal.misc:open * @modules java.base/java.lang:open * java.management - * @run driver gc.stringdedup.TestStringDeduplicationTableResize Z -XX:-ZGenerational - */ - -/* - * @test id=ZGenerational - * @summary Test string deduplication table resize - * @bug 8029075 - * @requires vm.gc.ZGenerational - * @library /test/lib - * @library / - * @modules java.base/jdk.internal.misc:open - * @modules java.base/java.lang:open - * java.management - * @run driver gc.stringdedup.TestStringDeduplicationTableResize Z -XX:+ZGenerational + * @run driver gc.stringdedup.TestStringDeduplicationTableResize Z */ public class TestStringDeduplicationTableResize { diff --git a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationTools.java b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationTools.java index 2a6652eb06e..3dbedd61d12 100644 --- a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationTools.java +++ b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationTools.java @@ -57,7 +57,6 @@ class TestStringDeduplicationTools { private static byte[] dummy; private static String selectedGC = null; - private static String selectedGCMode = null; static { try { @@ -74,9 +73,6 @@ class TestStringDeduplicationTools { public static void selectGC(String[] args) { selectedGC = args[0]; - if (args.length > 1) { - selectedGCMode = args[1]; - } } private static Object getValue(String string) { @@ -137,16 +133,10 @@ public void handleNotification(Notification n, Object o) { gcCount++; } } else if (info.getGcName().startsWith("ZGC")) { - // Generational ZGC only triggers string deduplications from major collections + // ZGC only triggers string deduplications from major collections if (info.getGcName().startsWith("ZGC Major") && "end of GC cycle".equals(info.getGcAction())) { gcCount++; } - - // Single-gen ZGC - if (!info.getGcName().startsWith("ZGC Major") && !info.getGcName().startsWith("ZGC Minor") && - "end of GC cycle".equals(info.getGcAction())) { - gcCount++; - } } else if (info.getGcName().startsWith("G1")) { if ("end of minor GC".equals(info.getGcAction())) { gcCount++; @@ -325,9 +315,6 @@ private static OutputAnalyzer runTest(String... extraArgs) throws Exception { ArrayList args = new ArrayList(); args.add("-XX:+Use" + selectedGC + "GC"); - if (selectedGCMode != null) { - args.add(selectedGCMode); - } args.addAll(Arrays.asList(defaultArgs)); args.addAll(Arrays.asList(extraArgs)); diff --git a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationYoungGC.java b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationYoungGC.java index d8787cc70ba..053dc0a2862 100644 --- a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationYoungGC.java +++ b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationYoungGC.java @@ -76,29 +76,16 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @summary Test string deduplication during young GC * @bug 8029075 - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @library /test/lib * @library / * @modules java.base/jdk.internal.misc:open * @modules java.base/java.lang:open * java.management - * @run driver gc.stringdedup.TestStringDeduplicationYoungGC Z -XX:-ZGenerational - */ - -/* - * @test id=ZGenerational - * @summary Test string deduplication during young GC - * @bug 8029075 - * @requires vm.gc.ZGenerational - * @library /test/lib - * @library / - * @modules java.base/jdk.internal.misc:open - * @modules java.base/java.lang:open - * java.management - * @run driver gc.stringdedup.TestStringDeduplicationYoungGC Z -XX:+ZGenerational + * @run driver gc.stringdedup.TestStringDeduplicationYoungGC Z */ public class TestStringDeduplicationYoungGC { diff --git a/test/hotspot/jtreg/gc/x/TestAllocateHeapAt.java b/test/hotspot/jtreg/gc/x/TestAllocateHeapAt.java deleted file mode 100644 index 6a9768de7e6..00000000000 --- a/test/hotspot/jtreg/gc/x/TestAllocateHeapAt.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.x; - -/* - * @test TestAllocateHeapAt - * @requires vm.gc.ZSinglegen & os.family == "linux" - * @requires !vm.opt.final.UseLargePages - * @summary Test ZGC with -XX:AllocateHeapAt - * @library /test/lib - * @run main/othervm gc.x.TestAllocateHeapAt . true - * @run main/othervm gc.x.TestAllocateHeapAt non-existing-directory false - */ - -import jdk.test.lib.process.ProcessTools; - -public class TestAllocateHeapAt { - public static void main(String[] args) throws Exception { - final String directory = args[0]; - final boolean exists = Boolean.parseBoolean(args[1]); - final String heapBackingFile = "Heap Backing File: " + directory; - final String failedToCreateFile = "Failed to create file " + directory; - - ProcessTools.executeTestJava( - "-XX:+UseZGC", - "-XX:-ZGenerational", - "-Xlog:gc*", - "-Xms32M", - "-Xmx32M", - "-XX:AllocateHeapAt=" + directory, - "-version") - .shouldContain(exists ? heapBackingFile : failedToCreateFile) - .shouldNotContain(exists ? failedToCreateFile : heapBackingFile) - .shouldHaveExitValue(exists ? 0 : 1); - } -} diff --git a/test/hotspot/jtreg/gc/x/TestAlwaysPreTouch.java b/test/hotspot/jtreg/gc/x/TestAlwaysPreTouch.java deleted file mode 100644 index b6ba6bf7a05..00000000000 --- a/test/hotspot/jtreg/gc/x/TestAlwaysPreTouch.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.x; - -/* - * @test TestAlwaysPreTouch - * @requires vm.gc.ZSinglegen - * @summary Test ZGC parallel pre-touch - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xlog:gc* -XX:-AlwaysPreTouch -Xms128M -Xmx128M gc.x.TestAlwaysPreTouch - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=1 -Xms2M -Xmx128M gc.x.TestAlwaysPreTouch - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=8 -Xms2M -Xmx128M gc.x.TestAlwaysPreTouch - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=1 -Xms128M -Xmx128M gc.x.TestAlwaysPreTouch - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=8 -Xms128M -Xmx128M gc.x.TestAlwaysPreTouch - */ - -public class TestAlwaysPreTouch { - public static void main(String[] args) throws Exception { - System.out.println("Success"); - } -} diff --git a/test/hotspot/jtreg/gc/x/TestDeprecated.java b/test/hotspot/jtreg/gc/x/TestDeprecated.java deleted file mode 100644 index 39b0318d52b..00000000000 --- a/test/hotspot/jtreg/gc/x/TestDeprecated.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.x; - -/* - * @test TestDeprecated - * @requires vm.gc.ZSinglegen - * @summary Test ZGenerational Deprecated - * @library /test/lib - * @run driver gc.x.TestDeprecated - */ - -import java.util.LinkedList; -import jdk.test.lib.process.ProcessTools; - -public class TestDeprecated { - static class Test { - public static void main(String[] args) throws Exception {} - } - public static void main(String[] args) throws Exception { - ProcessTools.executeLimitedTestJava("-XX:+UseZGC", - "-XX:-ZGenerational", - "-Xlog:gc+init", - Test.class.getName()) - .shouldContain("Option ZGenerational was deprecated") - .shouldContain("Using deprecated non-generational mode") - .shouldHaveExitValue(0); - } -} diff --git a/test/hotspot/jtreg/gc/x/TestGarbageCollectorMXBean.java b/test/hotspot/jtreg/gc/x/TestGarbageCollectorMXBean.java deleted file mode 100644 index 193b93ee2d0..00000000000 --- a/test/hotspot/jtreg/gc/x/TestGarbageCollectorMXBean.java +++ /dev/null @@ -1,221 +0,0 @@ -/* - * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.x; - -/** - * @test TestGarbageCollectorMXBean - * @requires vm.gc.ZSinglegen - * @summary Test ZGC garbage collector MXBean - * @modules java.management - * @requires vm.compMode != "Xcomp" - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xms256M -Xmx512M -Xlog:gc gc.x.TestGarbageCollectorMXBean 256 512 - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xms512M -Xmx512M -Xlog:gc gc.x.TestGarbageCollectorMXBean 512 512 - */ - -import java.lang.management.ManagementFactory; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicLong; -import javax.management.Notification; -import javax.management.NotificationEmitter; -import javax.management.NotificationListener; -import javax.management.openmbean.CompositeData; - -import com.sun.management.GarbageCollectionNotificationInfo; - -public class TestGarbageCollectorMXBean { - private static final long startTime = System.nanoTime(); - - private static void log(String msg) { - final String elapsedSeconds = String.format("%.3fs", (System.nanoTime() - startTime) / 1_000_000_000.0); - System.out.println("[" + elapsedSeconds + "] (" + Thread.currentThread().getName() + ") " + msg); - } - - public static void main(String[] args) throws Exception { - final long M = 1024 * 1024; - final long initialCapacity = Long.parseLong(args[0]) * M; - final long maxCapacity = Long.parseLong(args[1]) * M; - final AtomicInteger cycles = new AtomicInteger(); - final AtomicInteger pauses = new AtomicInteger(); - final AtomicInteger errors = new AtomicInteger(); - - final NotificationListener listener = (Notification notification, Object ignored) -> { - final var type = notification.getType(); - if (!type.equals(GarbageCollectionNotificationInfo.GARBAGE_COLLECTION_NOTIFICATION)) { - // Ignore - return; - } - - final var data = (CompositeData)notification.getUserData(); - final var info = GarbageCollectionNotificationInfo.from(data); - final var name = info.getGcName(); - final var id = info.getGcInfo().getId(); - final var action = info.getGcAction(); - final var cause = info.getGcCause(); - final var startTime = info.getGcInfo().getStartTime(); - final var endTime = info.getGcInfo().getEndTime(); - final var duration = info.getGcInfo().getDuration(); - final var memoryUsageBeforeGC = info.getGcInfo().getMemoryUsageBeforeGc().get("ZHeap"); - final var memoryUsageAfterGC = info.getGcInfo().getMemoryUsageAfterGc().get("ZHeap"); - - log(name + " (" + type + ")"); - log(" Id: " + id); - log(" Action: " + action); - log(" Cause: " + cause); - log(" StartTime: " + startTime); - log(" EndTime: " + endTime); - log(" Duration: " + duration); - log(" MemoryUsageBeforeGC: " + memoryUsageBeforeGC); - log(" MemoryUsageAfterGC: " + memoryUsageAfterGC); - log(""); - - if (name.equals("ZGC Cycles")) { - cycles.incrementAndGet(); - - if (!action.equals("end of GC cycle")) { - log("ERROR: Action"); - errors.incrementAndGet(); - } - - if (memoryUsageBeforeGC.getInit() != initialCapacity) { - log("ERROR: MemoryUsageBeforeGC.init"); - errors.incrementAndGet(); - } - - if (memoryUsageBeforeGC.getUsed() > initialCapacity) { - log("ERROR: MemoryUsageBeforeGC.used"); - errors.incrementAndGet(); - } - - if (memoryUsageBeforeGC.getCommitted() != initialCapacity) { - log("ERROR: MemoryUsageBeforeGC.committed"); - errors.incrementAndGet(); - } - - if (memoryUsageBeforeGC.getMax() != maxCapacity) { - log("ERROR: MemoryUsageBeforeGC.max"); - errors.incrementAndGet(); - } - } else if (name.equals("ZGC Pauses")) { - pauses.incrementAndGet(); - - if (!action.equals("end of GC pause")) { - log("ERROR: Action"); - errors.incrementAndGet(); - } - - if (memoryUsageBeforeGC.getInit() != 0) { - log("ERROR: MemoryUsageBeforeGC.init"); - errors.incrementAndGet(); - } - - if (memoryUsageBeforeGC.getUsed() != 0) { - log("ERROR: MemoryUsageBeforeGC.used"); - errors.incrementAndGet(); - } - - if (memoryUsageBeforeGC.getCommitted() != 0) { - log("ERROR: MemoryUsageBeforeGC.committed"); - errors.incrementAndGet(); - } - - if (memoryUsageBeforeGC.getMax() != 0) { - log("ERROR: MemoryUsageBeforeGC.max"); - errors.incrementAndGet(); - } - } else { - log("ERROR: Name"); - errors.incrementAndGet(); - } - - if (!cause.equals("System.gc()")) { - log("ERROR: Cause"); - errors.incrementAndGet(); - } - - if (startTime > endTime) { - log("ERROR: StartTime"); - errors.incrementAndGet(); - } - - if (endTime - startTime != duration) { - log("ERROR: Duration"); - errors.incrementAndGet(); - } - }; - - // Collect garbage created at startup - System.gc(); - - // Register GC event listener - for (final var collector : ManagementFactory.getGarbageCollectorMXBeans()) { - final NotificationEmitter emitter = (NotificationEmitter)collector; - emitter.addNotificationListener(listener, null, null); - } - - final int minCycles = 5; - final int minPauses = minCycles * 3; - - // Run GCs - for (int i = 0; i < minCycles; i++) { - log("Starting GC " + i); - System.gc(); - } - - // Wait at most 90 seconds - for (int i = 0; i < 90; i++) { - log("Waiting..."); - Thread.sleep(1000); - - if (cycles.get() >= minCycles) { - log("All events received!"); - break; - } - } - - final int actualCycles = cycles.get(); - final int actualPauses = pauses.get(); - final int actualErrors = errors.get(); - - log(" minCycles: " + minCycles); - log(" minPauses: " + minPauses); - log("actualCycles: " + actualCycles); - log("actualPauses: " + actualPauses); - log("actualErrors: " + actualErrors); - - // Verify number of cycle events - if (actualCycles < minCycles) { - throw new Exception("Unexpected cycles"); - } - - // Verify number of pause events - if (actualPauses < minPauses) { - throw new Exception("Unexpected pauses"); - } - - // Verify number of errors - if (actualErrors != 0) { - throw new Exception("Unexpected errors"); - } - } -} diff --git a/test/hotspot/jtreg/gc/x/TestHighUsage.java b/test/hotspot/jtreg/gc/x/TestHighUsage.java deleted file mode 100644 index 32b0af19e4b..00000000000 --- a/test/hotspot/jtreg/gc/x/TestHighUsage.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.x; - -/* - * @test TestHighUsage - * @requires vm.gc.ZSinglegen - * @summary Test ZGC "High Usage" rule - * @library /test/lib - * @run main/othervm gc.x.TestHighUsage - */ - -import java.util.LinkedList; -import jdk.test.lib.process.ProcessTools; - -public class TestHighUsage { - static class Test { - private static final int K = 1024; - private static final int M = K * K; - private static final long maxCapacity = Runtime.getRuntime().maxMemory(); - private static final long slowAllocationThreshold = 16 * M; - private static final long highUsageThreshold = maxCapacity / 20; // 5% - private static volatile LinkedList keepAlive; - private static volatile Object dummy; - - public static void main(String[] args) throws Exception { - System.out.println("Max capacity: " + (maxCapacity / M) + "M"); - System.out.println("High usage threshold: " + (highUsageThreshold / M) + "M"); - System.out.println("Allocating live-set"); - - // Allocate live-set - keepAlive = new LinkedList<>(); - while (Runtime.getRuntime().freeMemory() > slowAllocationThreshold) { - while (Runtime.getRuntime().freeMemory() > slowAllocationThreshold) { - keepAlive.add(new byte[128 * K]); - } - - // Compact live-set and let allocation rate settle down - System.gc(); - Thread.sleep(2000); - } - - System.out.println("Allocating garbage slowly"); - - // Allocate garbage slowly, so that the sampled allocation rate on average - // becomes zero MB/s for the last 1 second windows. Once we reach the high - // usage threshold we idle to allow for a "High Usage" GC cycle to happen. - // We need to allocate slowly to avoid an "Allocation Rate" GC cycle. - for (int i = 0; i < 300; i++) { - if (Runtime.getRuntime().freeMemory() > highUsageThreshold) { - // Allocate - dummy = new byte[128 * K]; - System.out.println("Free: " + (Runtime.getRuntime().freeMemory() / M) + "M (Allocating)"); - } else { - // Idle - System.out.println("Free: " + (Runtime.getRuntime().freeMemory() / M) + "M (Idling)"); - } - - Thread.sleep(250); - } - - System.out.println("Done"); - } - } - - public static void main(String[] args) throws Exception { - ProcessTools.executeTestJava("-XX:+UseZGC", - "-XX:-ZGenerational", - "-XX:-ZProactive", - "-Xms128M", - "-Xmx128M", - "-XX:ParallelGCThreads=1", - "-XX:ConcGCThreads=1", - "-Xlog:gc,gc+start", - Test.class.getName()) - .shouldNotContain("Allocation Stall") - .shouldContain("High Usage") - .shouldHaveExitValue(0); - } -} diff --git a/test/hotspot/jtreg/gc/x/TestMemoryMXBean.java b/test/hotspot/jtreg/gc/x/TestMemoryMXBean.java deleted file mode 100644 index fad1febe158..00000000000 --- a/test/hotspot/jtreg/gc/x/TestMemoryMXBean.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.x; - -/** - * @test TestMemoryMXBean - * @requires vm.gc.ZSinglegen - * @summary Test ZGC heap memory MXBean - * @modules java.management - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xms128M -Xmx256M -Xlog:gc* gc.x.TestMemoryMXBean 128 256 - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xms256M -Xmx256M -Xlog:gc* gc.x.TestMemoryMXBean 256 256 - */ - -import java.lang.management.ManagementFactory; - -public class TestMemoryMXBean { - public static void main(String[] args) throws Exception { - final long M = 1024 * 1024; - final long expectedInitialCapacity = Long.parseLong(args[0]) * M; - final long expectedMaxCapacity = Long.parseLong(args[1]) * M; - final var memoryUsage = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage(); - final long initialCapacity = memoryUsage.getInit(); - final long capacity = memoryUsage.getCommitted(); - final long maxCapacity = memoryUsage.getMax(); - - System.out.println("expectedInitialCapacity: " + expectedInitialCapacity); - System.out.println(" expectedMaxCapacity: " + expectedMaxCapacity); - System.out.println(" initialCapacity: " + initialCapacity); - System.out.println(" capacity: " + capacity); - System.out.println(" maxCapacity: " + maxCapacity); - - if (initialCapacity != expectedInitialCapacity) { - throw new Exception("Unexpected initial capacity"); - } - - if (maxCapacity != expectedMaxCapacity) { - throw new Exception("Unexpected max capacity"); - } - - if (capacity < initialCapacity || capacity > maxCapacity) { - throw new Exception("Unexpected capacity"); - } - } -} diff --git a/test/hotspot/jtreg/gc/x/TestMemoryManagerMXBean.java b/test/hotspot/jtreg/gc/x/TestMemoryManagerMXBean.java deleted file mode 100644 index 70ce6c23b2e..00000000000 --- a/test/hotspot/jtreg/gc/x/TestMemoryManagerMXBean.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.x; - -/** - * @test TestMemoryManagerMXBean - * @requires vm.gc.ZSinglegen - * @summary Test ZGC memory manager MXBean - * @modules java.management - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xmx128M gc.x.TestMemoryManagerMXBean - */ - -import java.lang.management.ManagementFactory; - -public class TestMemoryManagerMXBean { - private static void checkName(String name) throws Exception { - if (name == null || name.length() == 0) { - throw new Exception("Invalid name"); - } - } - - public static void main(String[] args) throws Exception { - int zgcCyclesMemoryManagers = 0; - int zgcPausesMemoryManagers = 0; - int zgcCyclesMemoryPools = 0; - int zgcPausesMemoryPools = 0; - - for (final var memoryManager : ManagementFactory.getMemoryManagerMXBeans()) { - final var memoryManagerName = memoryManager.getName(); - checkName(memoryManagerName); - - System.out.println("MemoryManager: " + memoryManagerName); - - if (memoryManagerName.equals("ZGC Cycles")) { - zgcCyclesMemoryManagers++; - } else if (memoryManagerName.equals("ZGC Pauses")) { - zgcPausesMemoryManagers++; - } - - for (final var memoryPoolName : memoryManager.getMemoryPoolNames()) { - checkName(memoryPoolName); - - System.out.println(" MemoryPool: " + memoryPoolName); - - if (memoryPoolName.equals("ZHeap")) { - if (memoryManagerName.equals("ZGC Cycles")) { - zgcCyclesMemoryPools++; - } else if (memoryManagerName.equals("ZGC Pauses")) { - zgcPausesMemoryPools++; - } - } - } - } - - if (zgcCyclesMemoryManagers != 1) { - throw new Exception("Unexpected number of cycle MemoryManagers"); - } - - if (zgcPausesMemoryManagers != 1) { - throw new Exception("Unexpected number of pause MemoryManagers"); - } - - if (zgcCyclesMemoryPools != 1) { - throw new Exception("Unexpected number of cycle MemoryPools"); - } - - if (zgcPausesMemoryPools != 1) { - throw new Exception("Unexpected number of pause MemoryPools"); - } - } -} diff --git a/test/hotspot/jtreg/gc/x/TestNoUncommit.java b/test/hotspot/jtreg/gc/x/TestNoUncommit.java deleted file mode 100644 index be5aa950509..00000000000 --- a/test/hotspot/jtreg/gc/x/TestNoUncommit.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.x; - -/* - * @test TestNoUncommit - * @requires vm.gc.ZSinglegen & !vm.graal.enabled - * @summary Test ZGC uncommit unused memory disabled - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xlog:gc*,gc+heap=debug,gc+stats=off -Xms512M -Xmx512M -XX:ZUncommitDelay=1 gc.x.TestNoUncommit - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xlog:gc*,gc+heap=debug,gc+stats=off -Xms128M -Xmx512M -XX:ZUncommitDelay=1 -XX:-ZUncommit gc.x.TestNoUncommit - */ - -public class TestNoUncommit { - private static final int allocSize = 200 * 1024 * 1024; // 200M - private static volatile Object keepAlive = null; - - private static long capacity() { - return Runtime.getRuntime().totalMemory(); - } - - public static void main(String[] args) throws Exception { - System.out.println("Allocating"); - keepAlive = new byte[allocSize]; - final var afterAlloc = capacity(); - - System.out.println("Reclaiming"); - keepAlive = null; - System.gc(); - - // Wait longer than the uncommit delay (which is 1 second) - Thread.sleep(5 * 1000); - - final var afterDelay = capacity(); - - // Verify - if (afterAlloc > afterDelay) { - throw new Exception("Should not uncommit"); - } - - System.out.println("Success"); - } -} diff --git a/test/hotspot/jtreg/gc/x/TestPageCacheFlush.java b/test/hotspot/jtreg/gc/x/TestPageCacheFlush.java deleted file mode 100644 index a48b6f77e17..00000000000 --- a/test/hotspot/jtreg/gc/x/TestPageCacheFlush.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.x; - -/* - * @test TestPageCacheFlush - * @requires vm.gc.ZSinglegen - * @summary Test ZGC page cache flushing - * @library /test/lib - * @run driver gc.x.TestPageCacheFlush - */ - -import java.util.LinkedList; -import jdk.test.lib.process.ProcessTools; - -public class TestPageCacheFlush { - static class Test { - private static final int K = 1024; - private static final int M = K * K; - private static volatile LinkedList keepAlive; - - public static void fillPageCache(int size) { - System.out.println("Begin allocate (" + size + ")"); - - keepAlive = new LinkedList<>(); - - try { - for (;;) { - keepAlive.add(new byte[size]); - } - } catch (OutOfMemoryError e) { - keepAlive = null; - System.gc(); - } - - System.out.println("End allocate (" + size + ")"); - } - - public static void main(String[] args) throws Exception { - // Allocate small objects to fill the page cache with small pages - fillPageCache(10 * K); - - // Allocate large objects to provoke page cache flushing to rebuild - // cached small pages into large pages - fillPageCache(10 * M); - } - } - - public static void main(String[] args) throws Exception { - ProcessTools.executeTestJava( - "-XX:+UseZGC", - "-XX:-ZGenerational", - "-Xms128M", - "-Xmx128M", - "-Xlog:gc,gc+init,gc+heap=debug", - Test.class.getName()) - .outputTo(System.out) - .errorTo(System.out) - .shouldContain("Page Cache Flushed:") - .shouldHaveExitValue(0); - } -} diff --git a/test/hotspot/jtreg/gc/x/TestRelocateInPlace.java b/test/hotspot/jtreg/gc/x/TestRelocateInPlace.java deleted file mode 100644 index dba08b23a5d..00000000000 --- a/test/hotspot/jtreg/gc/x/TestRelocateInPlace.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.x; - -/* - * @test TestRelocateInPlace - * @requires vm.gc.ZSinglegen - * @summary Test ZGC in-place relocateion - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xlog:gc*,gc+stats=off -Xmx256M -XX:+UnlockDiagnosticVMOptions -XX:+ZStressRelocateInPlace gc.x.TestRelocateInPlace - */ - -import java.util.ArrayList; - -public class TestRelocateInPlace { - private static final int allocSize = 100 * 1024 * 1024; // 100M - private static final int smallObjectSize = 4 * 1024; // 4K - private static final int mediumObjectSize = 2 * 1024 * 1024; // 2M - - private static volatile ArrayList keepAlive; - - private static void allocate(int objectSize) { - keepAlive = new ArrayList<>(); - for (int i = 0; i < allocSize; i+= objectSize) { - keepAlive.add(new byte[objectSize]); - } - } - - private static void fragment() { - // Release every other reference to cause lots of fragmentation - for (int i = 0; i < keepAlive.size(); i += 2) { - keepAlive.set(i, null); - } - } - - private static void test(int objectSize) throws Exception { - System.out.println("Allocating"); - allocate(objectSize); - - System.out.println("Fragmenting"); - fragment(); - - System.out.println("Reclaiming"); - System.gc(); - } - - public static void main(String[] args) throws Exception { - for (int i = 0; i < 10; i++) { - System.out.println("Iteration " + i); - test(smallObjectSize); - test(mediumObjectSize); - } - } -} diff --git a/test/hotspot/jtreg/gc/x/TestSmallHeap.java b/test/hotspot/jtreg/gc/x/TestSmallHeap.java deleted file mode 100644 index a7e8042f924..00000000000 --- a/test/hotspot/jtreg/gc/x/TestSmallHeap.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.x; - -/* - * @test TestSmallHeap - * @requires vm.gc.ZSinglegen - * @summary Test ZGC with small heaps - * @library / /test/lib - * @run driver gc.x.TestSmallHeap 8M 16M 32M 64M 128M 256M 512M 1024M - */ - -import jdk.test.lib.process.ProcessTools; -import static gc.testlibrary.Allocation.blackHole; - -public class TestSmallHeap { - public static class Test { - public static void main(String[] args) throws Exception { - final long maxCapacity = Runtime.getRuntime().maxMemory(); - System.out.println("Max Capacity " + maxCapacity + " bytes"); - - // Allocate byte arrays of increasing length, so that - // all allocation paths (small/medium/large) are tested. - for (int length = 16; length <= maxCapacity / 16; length *= 2) { - System.out.println("Allocating " + length + " bytes"); - blackHole(new byte[length]); - } - - System.out.println("Success"); - } - } - - public static void main(String[] args) throws Exception { - for (var maxCapacity: args) { - ProcessTools.executeTestJava( - "-XX:+UseZGC", - "-XX:-ZGenerational", - "-Xlog:gc,gc+init,gc+reloc,gc+heap", - "-Xmx" + maxCapacity, - Test.class.getName()) - .outputTo(System.out) - .errorTo(System.out) - .shouldContain("Success") - .shouldHaveExitValue(0); - } - } -} diff --git a/test/hotspot/jtreg/gc/x/TestUncommit.java b/test/hotspot/jtreg/gc/x/TestUncommit.java deleted file mode 100644 index febd6b99588..00000000000 --- a/test/hotspot/jtreg/gc/x/TestUncommit.java +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.x; - -/* - * @test TestUncommit - * @requires vm.gc.ZSinglegen - * @summary Test ZGC uncommit unused memory - * @library /test/lib - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xlog:gc*,gc+heap=debug,gc+stats=off -Xms128M -Xmx512M -XX:ZUncommitDelay=10 gc.x.TestUncommit - */ - -import java.util.ArrayList; -import jdk.test.lib.Utils; - -public class TestUncommit { - private static final int delay = 10 * 1000; // milliseconds - private static final int allocSize = 200 * 1024 * 1024; // 200M - private static final int smallObjectSize = 4 * 1024; // 4K - private static final int mediumObjectSize = 2 * 1024 * 1024; // 2M - private static final int largeObjectSize = allocSize; - - private static volatile ArrayList keepAlive; - - private static final long startTime = System.nanoTime(); - - private static void log(String msg) { - final String elapsedSeconds = String.format("%.3fs", (System.nanoTime() - startTime) / 1_000_000_000.0); - System.out.println("[" + elapsedSeconds + "] (" + Thread.currentThread().getName() + ") " + msg); - } - - private static long capacity() { - return Runtime.getRuntime().totalMemory(); - } - - private static void allocate(int objectSize) { - keepAlive = new ArrayList<>(); - for (int i = 0; i < allocSize; i+= objectSize) { - keepAlive.add(new byte[objectSize]); - } - } - - private static void reclaim() { - keepAlive = null; - System.gc(); - } - - private static void test(int objectSize) throws Exception { - final var beforeAlloc = capacity(); - final var timeBeforeAlloc = System.nanoTime(); - - // Allocate memory - log("Allocating"); - allocate(objectSize); - - final var afterAlloc = capacity(); - - // Reclaim memory - log("Reclaiming"); - reclaim(); - - log("Waiting for uncommit to start"); - while (capacity() >= afterAlloc) { - Thread.sleep(1000); - } - - log("Uncommit started"); - final var timeUncommitStart = System.nanoTime(); - final var actualDelay = (timeUncommitStart - timeBeforeAlloc) / 1_000_000; - - log("Waiting for uncommit to complete"); - while (capacity() > beforeAlloc) { - Thread.sleep(1000); - } - - log("Uncommit completed"); - final var afterUncommit = capacity(); - - log(" Uncommit Delay: " + delay); - log(" Object Size: " + objectSize); - log(" Alloc Size: " + allocSize); - log(" Before Alloc: " + beforeAlloc); - log(" After Alloc: " + afterAlloc); - log(" After Uncommit: " + afterUncommit); - log(" Actual Uncommit Delay: " + actualDelay); - - // Verify - if (actualDelay < delay) { - throw new Exception("Uncommitted too fast"); - } - - if (actualDelay > delay * 2 * Utils.TIMEOUT_FACTOR) { - throw new Exception("Uncommitted too slow"); - } - - if (afterUncommit < beforeAlloc) { - throw new Exception("Uncommitted too much"); - } - - if (afterUncommit > beforeAlloc) { - throw new Exception("Uncommitted too little"); - } - - log("Success"); - } - - public static void main(String[] args) throws Exception { - for (int i = 0; i < 2; i++) { - log("Iteration " + i); - test(smallObjectSize); - test(mediumObjectSize); - test(largeObjectSize); - } - } -} diff --git a/test/hotspot/jtreg/gc/z/TestAllocateHeapAt.java b/test/hotspot/jtreg/gc/z/TestAllocateHeapAt.java index 2fb040840b4..dbcca704fab 100644 --- a/test/hotspot/jtreg/gc/z/TestAllocateHeapAt.java +++ b/test/hotspot/jtreg/gc/z/TestAllocateHeapAt.java @@ -25,7 +25,7 @@ /* * @test TestAllocateHeapAt - * @requires vm.gc.ZGenerational & os.family == "linux" + * @requires vm.gc.Z & os.family == "linux" * @requires !vm.opt.final.UseLargePages * @summary Test ZGC with -XX:AllocateHeapAt * @library /test/lib @@ -44,7 +44,6 @@ public static void main(String[] args) throws Exception { ProcessTools.executeTestJava( "-XX:+UseZGC", - "-XX:+ZGenerational", "-Xlog:gc*", "-Xms32M", "-Xmx32M", diff --git a/test/hotspot/jtreg/gc/z/TestAllocateHeapAtWithHugeTLBFS.java b/test/hotspot/jtreg/gc/z/TestAllocateHeapAtWithHugeTLBFS.java index ac647bbd013..4134ce838d4 100644 --- a/test/hotspot/jtreg/gc/z/TestAllocateHeapAtWithHugeTLBFS.java +++ b/test/hotspot/jtreg/gc/z/TestAllocateHeapAtWithHugeTLBFS.java @@ -25,7 +25,7 @@ /* * @test TestAllocateHeapAtWithHugeTLBFS - * @requires vm.gc.ZGenerational & os.family == "linux" + * @requires vm.gc.Z & os.family == "linux" * @summary Test ZGC with -XX:AllocateHeapAt and -XX:+UseLargePages * @library /test/lib * @run driver gc.z.TestAllocateHeapAtWithHugeTLBFS true @@ -77,7 +77,6 @@ public static void main(String[] args) throws Exception { ProcessTools.executeTestJava( "-XX:+UseZGC", - "-XX:+ZGenerational", "-Xlog:gc*", "-Xms32M", "-Xmx32M", diff --git a/test/hotspot/jtreg/gc/z/TestAlwaysPreTouch.java b/test/hotspot/jtreg/gc/z/TestAlwaysPreTouch.java index 8020c82c4fd..db0471431d1 100644 --- a/test/hotspot/jtreg/gc/z/TestAlwaysPreTouch.java +++ b/test/hotspot/jtreg/gc/z/TestAlwaysPreTouch.java @@ -25,13 +25,13 @@ /* * @test TestAlwaysPreTouch - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @summary Test ZGC parallel pre-touch - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xlog:gc* -XX:-AlwaysPreTouch -Xms128M -Xmx128M gc.z.TestAlwaysPreTouch - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=1 -Xms2M -Xmx128M gc.z.TestAlwaysPreTouch - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=8 -Xms2M -Xmx128M gc.z.TestAlwaysPreTouch - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=1 -Xms128M -Xmx128M gc.z.TestAlwaysPreTouch - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=8 -Xms128M -Xmx128M gc.z.TestAlwaysPreTouch + * @run main/othervm -XX:+UseZGC -Xlog:gc* -XX:-AlwaysPreTouch -Xms128M -Xmx128M gc.z.TestAlwaysPreTouch + * @run main/othervm -XX:+UseZGC -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=1 -Xms2M -Xmx128M gc.z.TestAlwaysPreTouch + * @run main/othervm -XX:+UseZGC -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=8 -Xms2M -Xmx128M gc.z.TestAlwaysPreTouch + * @run main/othervm -XX:+UseZGC -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=1 -Xms128M -Xmx128M gc.z.TestAlwaysPreTouch + * @run main/othervm -XX:+UseZGC -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=8 -Xms128M -Xmx128M gc.z.TestAlwaysPreTouch */ public class TestAlwaysPreTouch { diff --git a/test/hotspot/jtreg/gc/z/TestDefault.java b/test/hotspot/jtreg/gc/z/TestDefault.java deleted file mode 100644 index 1f1b7d49408..00000000000 --- a/test/hotspot/jtreg/gc/z/TestDefault.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.z; - -/* - * @test TestDefault - * @requires vm.gc.ZGenerational - * @summary Test that ZGC Generational Mode is Default - * @library /test/lib - * @run driver gc.z.TestDefault - */ - -import java.util.LinkedList; -import jdk.test.lib.process.ProcessTools; - -public class TestDefault { - static class Test { - public static void main(String[] args) throws Exception {} - } - public static void main(String[] args) throws Exception { - ProcessTools.executeLimitedTestJava("-XX:+UseZGC", - "-Xlog:gc+init", - Test.class.getName()) - .shouldNotContain("Option ZGenerational was deprecated") - .shouldNotContain("Using deprecated non-generational mode") - .shouldContain("GC Workers for Old Generation") - .shouldContain("GC Workers for Young Generation") - .shouldHaveExitValue(0); - } -} diff --git a/test/hotspot/jtreg/gc/z/TestGarbageCollectorMXBean.java b/test/hotspot/jtreg/gc/z/TestGarbageCollectorMXBean.java index b3ecc28ff65..d3cf46d51e8 100644 --- a/test/hotspot/jtreg/gc/z/TestGarbageCollectorMXBean.java +++ b/test/hotspot/jtreg/gc/z/TestGarbageCollectorMXBean.java @@ -25,12 +25,12 @@ /** * @test TestGarbageCollectorMXBean - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @summary Test ZGC garbage collector MXBean * @modules java.management * @requires vm.compMode != "Xcomp" - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xms256M -Xmx512M -Xlog:gc gc.z.TestGarbageCollectorMXBean 256 512 - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xms512M -Xmx512M -Xlog:gc gc.z.TestGarbageCollectorMXBean 512 512 + * @run main/othervm -XX:+UseZGC -Xms256M -Xmx512M -Xlog:gc gc.z.TestGarbageCollectorMXBean 256 512 + * @run main/othervm -XX:+UseZGC -Xms512M -Xmx512M -Xlog:gc gc.z.TestGarbageCollectorMXBean 512 512 */ import java.lang.management.ManagementFactory; diff --git a/test/hotspot/jtreg/gc/z/TestMemoryMXBean.java b/test/hotspot/jtreg/gc/z/TestMemoryMXBean.java index 6f4505a64bf..ec1daaa00fb 100644 --- a/test/hotspot/jtreg/gc/z/TestMemoryMXBean.java +++ b/test/hotspot/jtreg/gc/z/TestMemoryMXBean.java @@ -25,11 +25,11 @@ /** * @test TestMemoryMXBean - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @summary Test ZGC heap memory MXBean * @modules java.management - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xms128M -Xmx256M -Xlog:gc* gc.z.TestMemoryMXBean 128 256 - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xms256M -Xmx256M -Xlog:gc* gc.z.TestMemoryMXBean 256 256 + * @run main/othervm -XX:+UseZGC -Xms128M -Xmx256M -Xlog:gc* gc.z.TestMemoryMXBean 128 256 + * @run main/othervm -XX:+UseZGC -Xms256M -Xmx256M -Xlog:gc* gc.z.TestMemoryMXBean 256 256 */ import java.lang.management.ManagementFactory; diff --git a/test/hotspot/jtreg/gc/z/TestMemoryManagerMXBean.java b/test/hotspot/jtreg/gc/z/TestMemoryManagerMXBean.java index 5a0c481a42f..6540d67e855 100644 --- a/test/hotspot/jtreg/gc/z/TestMemoryManagerMXBean.java +++ b/test/hotspot/jtreg/gc/z/TestMemoryManagerMXBean.java @@ -25,10 +25,10 @@ /** * @test TestMemoryManagerMXBean - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @summary Test ZGC memory manager MXBean * @modules java.management - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xmx128M gc.z.TestMemoryManagerMXBean + * @run main/othervm -XX:+UseZGC -Xmx128M gc.z.TestMemoryManagerMXBean */ import java.lang.management.ManagementFactory; diff --git a/test/hotspot/jtreg/gc/z/TestNoUncommit.java b/test/hotspot/jtreg/gc/z/TestNoUncommit.java index 6115681552e..cd5833f308f 100644 --- a/test/hotspot/jtreg/gc/z/TestNoUncommit.java +++ b/test/hotspot/jtreg/gc/z/TestNoUncommit.java @@ -25,10 +25,10 @@ /* * @test TestNoUncommit - * @requires vm.gc.ZGenerational & !vm.graal.enabled + * @requires vm.gc.Z & !vm.graal.enabled * @summary Test ZGC uncommit unused memory disabled - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xlog:gc*,gc+heap=debug,gc+stats=off -Xms512M -Xmx512M -XX:ZUncommitDelay=1 gc.z.TestNoUncommit - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xlog:gc*,gc+heap=debug,gc+stats=off -Xms128M -Xmx512M -XX:ZUncommitDelay=1 -XX:-ZUncommit gc.z.TestNoUncommit + * @run main/othervm -XX:+UseZGC -Xlog:gc*,gc+heap=debug,gc+stats=off -Xms512M -Xmx512M -XX:ZUncommitDelay=1 gc.z.TestNoUncommit + * @run main/othervm -XX:+UseZGC -Xlog:gc*,gc+heap=debug,gc+stats=off -Xms128M -Xmx512M -XX:ZUncommitDelay=1 -XX:-ZUncommit gc.z.TestNoUncommit */ public class TestNoUncommit { diff --git a/test/hotspot/jtreg/gc/z/TestPageCacheFlush.java b/test/hotspot/jtreg/gc/z/TestPageCacheFlush.java index 3b666ddc2c8..847c7b2d117 100644 --- a/test/hotspot/jtreg/gc/z/TestPageCacheFlush.java +++ b/test/hotspot/jtreg/gc/z/TestPageCacheFlush.java @@ -25,7 +25,7 @@ /* * @test TestPageCacheFlush - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @summary Test ZGC page cache flushing * @library /test/lib * @run driver gc.z.TestPageCacheFlush @@ -70,7 +70,6 @@ public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception { ProcessTools.executeTestJava( "-XX:+UseZGC", - "-XX:+ZGenerational", "-Xms128M", "-Xmx128M", "-Xlog:gc,gc+init,gc+heap=debug", diff --git a/test/hotspot/jtreg/gc/z/TestRegistersPushPopAtZGCLoadBarrierStub.java b/test/hotspot/jtreg/gc/z/TestRegistersPushPopAtZGCLoadBarrierStub.java index 71aa634c761..9730fdaafd8 100644 --- a/test/hotspot/jtreg/gc/z/TestRegistersPushPopAtZGCLoadBarrierStub.java +++ b/test/hotspot/jtreg/gc/z/TestRegistersPushPopAtZGCLoadBarrierStub.java @@ -31,7 +31,7 @@ * @library /test/lib / * @modules jdk.incubator.vector * - * @requires vm.gc.ZGenerational & vm.debug + * @requires vm.gc.Z & vm.debug * @requires os.arch=="aarch64" * * @run driver gc.z.TestRegistersPushPopAtZGCLoadBarrierStub @@ -316,7 +316,6 @@ static String launchJavaTestProcess(String test_name) throws Exception { command.add("-XX:-UseOnStackReplacement"); command.add("-XX:-TieredCompilation"); command.add("-XX:+UseZGC"); - command.add("-XX:+ZGenerational"); command.add("--add-modules=jdk.incubator.vector"); command.add("-XX:CompileCommand=print," + Launcher.class.getName() + "::" + test_name); command.add(Launcher.class.getName()); diff --git a/test/hotspot/jtreg/gc/z/TestRelocateInPlace.java b/test/hotspot/jtreg/gc/z/TestRelocateInPlace.java index 5115fe3c965..723a6504c6a 100644 --- a/test/hotspot/jtreg/gc/z/TestRelocateInPlace.java +++ b/test/hotspot/jtreg/gc/z/TestRelocateInPlace.java @@ -25,9 +25,9 @@ /* * @test TestRelocateInPlace - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @summary Test ZGC in-place relocateion - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xlog:gc*,gc+stats=off -Xmx256M -XX:+UnlockDiagnosticVMOptions -XX:+ZStressRelocateInPlace gc.z.TestRelocateInPlace + * @run main/othervm -XX:+UseZGC -Xlog:gc*,gc+stats=off -Xmx256M -XX:+UnlockDiagnosticVMOptions -XX:+ZStressRelocateInPlace gc.z.TestRelocateInPlace */ import java.util.ArrayList; diff --git a/test/hotspot/jtreg/gc/z/TestSmallHeap.java b/test/hotspot/jtreg/gc/z/TestSmallHeap.java index 67d9d33d281..9ac65d05108 100644 --- a/test/hotspot/jtreg/gc/z/TestSmallHeap.java +++ b/test/hotspot/jtreg/gc/z/TestSmallHeap.java @@ -25,7 +25,7 @@ /* * @test TestSmallHeap - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @summary Test ZGC with small heaps * @library / /test/lib * @run driver gc.z.TestSmallHeap 16M 32M 64M 128M 256M 512M 1024M @@ -55,7 +55,6 @@ public static void main(String[] args) throws Exception { for (var maxCapacity: args) { ProcessTools.executeTestJava( "-XX:+UseZGC", - "-XX:+ZGenerational", "-Xlog:gc,gc+init,gc+reloc,gc+heap", "-Xmx" + maxCapacity, Test.class.getName()) diff --git a/test/hotspot/jtreg/gc/z/TestUncommit.java b/test/hotspot/jtreg/gc/z/TestUncommit.java index fea0721cce3..e02773e868f 100644 --- a/test/hotspot/jtreg/gc/z/TestUncommit.java +++ b/test/hotspot/jtreg/gc/z/TestUncommit.java @@ -25,10 +25,10 @@ /* * @test TestUncommit - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @summary Test ZGC uncommit unused memory * @library /test/lib - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xlog:gc*,gc+heap=debug,gc+stats=off -Xms128M -Xmx512M -XX:ZUncommitDelay=10 gc.z.TestUncommit + * @run main/othervm -XX:+UseZGC -Xlog:gc*,gc+heap=debug,gc+stats=off -Xms128M -Xmx512M -XX:ZUncommitDelay=10 gc.z.TestUncommit */ import java.util.ArrayList; diff --git a/test/hotspot/jtreg/gc/z/TestZForceDiscontiguousHeapReservations.java b/test/hotspot/jtreg/gc/z/TestZForceDiscontiguousHeapReservations.java index f1a14f0cf90..fa2485073dd 100644 --- a/test/hotspot/jtreg/gc/z/TestZForceDiscontiguousHeapReservations.java +++ b/test/hotspot/jtreg/gc/z/TestZForceDiscontiguousHeapReservations.java @@ -25,7 +25,7 @@ /** * @test TestZForceDiscontiguousHeapReservations - * @requires vm.gc.ZGenerational & vm.debug + * @requires vm.gc.Z & vm.debug * @summary Test the ZForceDiscontiguousHeapReservations development flag * @library /test/lib * @run driver gc.z.TestZForceDiscontiguousHeapReservations @@ -47,7 +47,6 @@ private static void testValue(int n) throws Exception { final int XmsInM = Math.min(16 * XmxInM / (n + 1), XmxInM); OutputAnalyzer oa = ProcessTools.executeTestJava( "-XX:+UseZGC", - "-XX:+ZGenerational", "-Xms" + XmsInM + "M", "-Xmx" + XmxInM + "M", "-Xlog:gc,gc+init", diff --git a/test/hotspot/jtreg/gc/z/TestZNMT.java b/test/hotspot/jtreg/gc/z/TestZNMT.java index 889cc77b0e4..b536f3eab8e 100644 --- a/test/hotspot/jtreg/gc/z/TestZNMT.java +++ b/test/hotspot/jtreg/gc/z/TestZNMT.java @@ -26,8 +26,8 @@ /** * @test TestZNMT * @bug 8310743 - * @requires vm.gc.ZGenerational & vm.debug - * @summary Test NMT and ZGenerational heap reservation / commits interactions. + * @requires vm.gc.Z & vm.debug + * @summary Test NMT and ZGC heap reservation / commits interactions. * @library / /test/lib * @run driver gc.z.TestZNMT */ @@ -70,7 +70,6 @@ private static void testValue(int zForceDiscontiguousHeapReservations) throws Ex final int XmsInM = Math.min(16 * XmxInM / (zForceDiscontiguousHeapReservations + 1), XmxInM); OutputAnalyzer oa = ProcessTools.executeTestJava( "-XX:+UseZGC", - "-XX:+ZGenerational", "-Xms" + XmsInM + "M", "-Xmx" + XmxInM + "M", "-Xlog:gc,gc+init", diff --git a/test/hotspot/jtreg/runtime/CommandLine/VMDeprecatedOptions.java b/test/hotspot/jtreg/runtime/CommandLine/VMDeprecatedOptions.java index 96bc22dfb1d..0ecfbe2c8db 100644 --- a/test/hotspot/jtreg/runtime/CommandLine/VMDeprecatedOptions.java +++ b/test/hotspot/jtreg/runtime/CommandLine/VMDeprecatedOptions.java @@ -57,7 +57,6 @@ public class VMDeprecatedOptions { Arrays.asList(new String[][] { // deprecated non-alias flags: {"AllowRedefinitionToAddDeleteMethods", "true"}, - {"ZGenerational", "false"}, {"LockingMode", "1"}, // deprecated alias flags (see also aliased_jvm_flags): diff --git a/test/hotspot/jtreg/runtime/cds/appcds/TestZGCWithCDS.java b/test/hotspot/jtreg/runtime/cds/appcds/TestZGCWithCDS.java index ea51b198f59..89fc346ffbb 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/TestZGCWithCDS.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/TestZGCWithCDS.java @@ -22,29 +22,16 @@ */ /* - * @test id=ZSinglegen + * @test * @bug 8232069 * @requires vm.cds * @requires vm.bits == 64 - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @requires vm.gc.Serial * @requires vm.gc == null * @library /test/lib /test/hotspot/jtreg/runtime/cds/appcds * @compile test-classes/Hello.java - * @run driver TestZGCWithCDS -XX:-ZGenerational - */ - -/* - * @test id=ZGenerational - * @bug 8232069 - * @requires vm.cds - * @requires vm.bits == 64 - * @requires vm.gc.ZGenerational - * @requires vm.gc.Serial - * @requires vm.gc == null - * @library /test/lib /test/hotspot/jtreg/runtime/cds/appcds - * @compile test-classes/Hello.java - * @run driver TestZGCWithCDS -XX:+ZGenerational + * @run driver TestZGCWithCDS */ import jdk.test.lib.Platform; @@ -55,14 +42,12 @@ public class TestZGCWithCDS { public final static String UNABLE_TO_USE_ARCHIVE = "Unable to use shared archive."; public final static String ERR_MSG = "The saved state of UseCompressedOops and UseCompressedClassPointers is different from runtime, CDS will be disabled."; public static void main(String... args) throws Exception { - String zGenerational = args[0]; String helloJar = JarBuilder.build("hello", "Hello"); System.out.println("0. Dump with ZGC"); OutputAnalyzer out = TestCommon .dump(helloJar, new String[] {"Hello"}, "-XX:+UseZGC", - zGenerational, "-Xlog:cds"); out.shouldContain("Dumping shared data to file:"); out.shouldHaveExitValue(0); @@ -71,7 +56,6 @@ public static void main(String... args) throws Exception { out = TestCommon .exec(helloJar, "-XX:+UseZGC", - zGenerational, "-Xlog:cds", "Hello"); out.shouldContain(HELLO); @@ -151,7 +135,6 @@ public static void main(String... args) throws Exception { out = TestCommon .exec(helloJar, "-XX:+UseZGC", - zGenerational, "-Xlog:cds", "Hello"); out.shouldContain(HELLO); diff --git a/test/hotspot/jtreg/runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java b/test/hotspot/jtreg/runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java index 6de08da4673..004cc7bb5db 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java @@ -53,9 +53,9 @@ */ /** - * @test id=custom-cl-zgc-singlegen + * @test id=custom-cl-zgc * @requires vm.cds.custom.loaders - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @summary Test dumptime_table entries are removed with zgc eager class unloading * @bug 8274935 * @library /test/lib @@ -69,23 +69,6 @@ * @run main/othervm/timeout=180 -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:. DynamicLoaderConstraintsTest custom-zgc */ -/** - * @test id=custom-cl-zgc-generational - * @requires vm.cds.custom.loaders - * @requires vm.gc.ZGenerational - * @summary Test dumptime_table entries are removed with zgc eager class unloading - * @bug 8274935 - * @library /test/lib - * /test/hotspot/jtreg/runtime/cds/appcds - * /test/hotspot/jtreg/runtime/cds/appcds/test-classes - * /test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive - * @modules java.base/jdk.internal.misc - * jdk.httpserver - * @build jdk.test.whitebox.WhiteBox - * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox - * @run main/othervm/timeout=180 -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:. DynamicLoaderConstraintsTest custom-zgc-generational - */ - import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import jdk.test.lib.Asserts; @@ -118,12 +101,10 @@ public class DynamicLoaderConstraintsTest extends DynamicArchiveTestBase { */ static boolean useCustomLoader; static boolean useZGC; - static boolean useZGenerational; public static void main(String[] args) throws Exception { useCustomLoader = (args.length != 0); - useZGenerational = (args.length != 0 && args[0].equals("custom-zgc-generational")); - useZGC = useZGenerational || (args.length != 0 && args[0].equals("custom-zgc")); + useZGC = (args.length != 0 && args[0].equals("custom-zgc")); runTest(DynamicLoaderConstraintsTest::doTest); } @@ -150,7 +131,7 @@ static void doTest(boolean errorInDump) throws Exception { for (int i = 1; i <= 3; i++) { System.out.println("========================================"); System.out.println("errorInDump: " + errorInDump + ", useCustomLoader: " + useCustomLoader + - ", useZGC: " + useZGC + ", ZGenerational: " + useZGenerational + ", case: " + i); + ", useZGC: " + useZGC + ", case: " + i); System.out.println("========================================"); String topArchiveName = getNewArchiveName(); String testCase = Integer.toString(i); @@ -164,10 +145,9 @@ static void doTest(boolean errorInDump) throws Exception { if (useCustomLoader) { if (useZGC) { - String zGenerational = "-XX:" + (useZGenerational ? "+" : "-") + "ZGenerational"; // Add options to force eager class unloading. cmdLine = TestCommon.concat(cmdLine, "-cp", loaderJar, - "-XX:+UseZGC", zGenerational, "-XX:ZCollectionInterval=0.01", + "-XX:+UseZGC", "-XX:ZCollectionInterval=0.01", loaderMainClass, appJar); setBaseArchiveOptions("-XX:+UseZGC", "-Xlog:cds"); } else { diff --git a/test/hotspot/jtreg/serviceability/dcmd/gc/HeapDumpCompressedTest.java b/test/hotspot/jtreg/serviceability/dcmd/gc/HeapDumpCompressedTest.java index 1e6d99a5048..3a960cc8c7d 100644 --- a/test/hotspot/jtreg/serviceability/dcmd/gc/HeapDumpCompressedTest.java +++ b/test/hotspot/jtreg/serviceability/dcmd/gc/HeapDumpCompressedTest.java @@ -71,27 +71,15 @@ */ /* - * @test id=ZSinglegen - * @requires vm.gc.ZSinglegen + * @test id=Z + * @requires vm.gc.Z * @summary Test of diagnostic command GC.heap_dump with gzipped output (Z GC) * @library /test/lib * @modules java.base/jdk.internal.misc * java.compiler * java.management * jdk.internal.jvmstat/sun.jvmstat.monitor - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational HeapDumpCompressedTest - */ - -/* - * @test id=ZGenerational - * @requires vm.gc.ZGenerational - * @summary Test of diagnostic command GC.heap_dump with gzipped output (Z GC) - * @library /test/lib - * @modules java.base/jdk.internal.misc - * java.compiler - * java.management - * jdk.internal.jvmstat/sun.jvmstat.monitor - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational HeapDumpCompressedTest + * @run main/othervm -XX:+UseZGC HeapDumpCompressedTest */ /* diff --git a/test/hotspot/jtreg/testlibrary_tests/ir_framework/examples/GCBarrierIRExample.java b/test/hotspot/jtreg/testlibrary_tests/ir_framework/examples/GCBarrierIRExample.java index e0287fc39fe..11db83a1b31 100644 --- a/test/hotspot/jtreg/testlibrary_tests/ir_framework/examples/GCBarrierIRExample.java +++ b/test/hotspot/jtreg/testlibrary_tests/ir_framework/examples/GCBarrierIRExample.java @@ -33,7 +33,7 @@ * @summary Example test that illustrates the use of the IR test framework for * verification of late-expanded GC barriers. * @library /test/lib / - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @run driver ir_framework.examples.GCBarrierIRExample */ @@ -61,7 +61,7 @@ public static void main(String[] args) { // emission, such as ZGC. Because the collector selection flags are not // whitelisted (see IR framework's README.md file), the user (as opposed // to jtreg) needs to set these flags here. - TestFramework.runWithFlags("-XX:+UseZGC", "-XX:+ZGenerational"); + TestFramework.runWithFlags("-XX:+UseZGC"); } @Test diff --git a/test/jdk/ProblemList-generational-zgc.txt b/test/jdk/ProblemList-generational-zgc.txt deleted file mode 100644 index 9fa9874d20c..00000000000 --- a/test/jdk/ProblemList-generational-zgc.txt +++ /dev/null @@ -1,40 +0,0 @@ -# -# Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# This code is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 only, as -# published by the Free Software Foundation. -# -# This code is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# version 2 for more details (a copy is included in the LICENSE file that -# accompanied this code). -# -# You should have received a copy of the GNU General Public License version -# 2 along with this work; if not, write to the Free Software Foundation, -# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -# or visit www.oracle.com if you need additional information or have any -# questions. -# - -############################################################################# -# -# List of quarantined tests for testing with Generational ZGC. -# -############################################################################# - -# Quiet all SA tests - -sun/tools/jhsdb/HeapDumpTest.java 8307393 generic-all -sun/tools/jhsdb/BasicLauncherTest.java 8307393 generic-all -sun/tools/jhsdb/JStackStressTest.java 8307393 generic-all -sun/tools/jhsdb/JShellHeapDumpTest.java 8307393 generic-all -sun/tools/jhsdb/SAGetoptTest.java 8307393 generic-all -sun/tools/jhsdb/heapconfig/JMapHeapConfigTest.java 8307393 generic-all -sun/tools/jhsdb/HeapDumpTestWithActiveProcess.java 8307393 generic-all - -com/sun/jdi/ThreadMemoryLeakTest.java 8307402 generic-all diff --git a/test/jdk/ProblemList-zgc.txt b/test/jdk/ProblemList-zgc.txt index 9fae070e25d..e81ac813747 100644 --- a/test/jdk/ProblemList-zgc.txt +++ b/test/jdk/ProblemList-zgc.txt @@ -27,5 +27,14 @@ # ############################################################################# -sun/tools/jhsdb/JShellHeapDumpTest.java 8276539 generic-all -sun/tools/jhsdb/HeapDumpTestWithActiveProcess.java 8276539 generic-all +# Quiet all SA tests + +sun/tools/jhsdb/HeapDumpTest.java 8307393 generic-all +sun/tools/jhsdb/BasicLauncherTest.java 8307393 generic-all +sun/tools/jhsdb/JStackStressTest.java 8307393 generic-all +sun/tools/jhsdb/JShellHeapDumpTest.java 8307393 generic-all +sun/tools/jhsdb/SAGetoptTest.java 8307393 generic-all +sun/tools/jhsdb/heapconfig/JMapHeapConfigTest.java 8307393 generic-all +sun/tools/jhsdb/HeapDumpTestWithActiveProcess.java 8307393 generic-all + +com/sun/jdi/ThreadMemoryLeakTest.java 8307402 generic-all diff --git a/test/jdk/TEST.ROOT b/test/jdk/TEST.ROOT index c8db6b89a71..6276932afbd 100644 --- a/test/jdk/TEST.ROOT +++ b/test/jdk/TEST.ROOT @@ -84,8 +84,6 @@ requires.properties= \ vm.gc.Shenandoah \ vm.gc.Epsilon \ vm.gc.Z \ - vm.gc.ZGenerational \ - vm.gc.ZSinglegen \ vm.graal.enabled \ vm.compiler1.enabled \ vm.compiler2.enabled \ diff --git a/test/jdk/java/awt/Graphics2D/LargeWindowPaintTest.java b/test/jdk/java/awt/Graphics2D/LargeWindowPaintTest.java index 991c22938b8..2c61a29aacb 100644 --- a/test/jdk/java/awt/Graphics2D/LargeWindowPaintTest.java +++ b/test/jdk/java/awt/Graphics2D/LargeWindowPaintTest.java @@ -33,25 +33,14 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @bug 8240654 * @summary Test painting a large window works * @key headful * @requires (os.family == "windows") - * @requires vm.gc.ZSinglegen - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Dsun.java2d.uiScale=1 LargeWindowPaintTest - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Dsun.java2d.uiScale=1 -Dsun.java2d.d3d=false LargeWindowPaintTest - */ - -/* - * @test id=ZGenerational - * @bug 8240654 - * @summary Test painting a large window works - * @key headful - * @requires (os.family == "windows") - * @requires vm.gc.ZGenerational - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Dsun.java2d.uiScale=1 LargeWindowPaintTest - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Dsun.java2d.uiScale=1 -Dsun.java2d.d3d=false LargeWindowPaintTest + * @requires vm.gc.Z + * @run main/othervm -XX:+UseZGC -Dsun.java2d.uiScale=1 LargeWindowPaintTest + * @run main/othervm -XX:+UseZGC -Dsun.java2d.uiScale=1 -Dsun.java2d.d3d=false LargeWindowPaintTest */ import java.awt.Color; diff --git a/test/jdk/java/awt/print/PrinterJob/AlphaPrintTest.java b/test/jdk/java/awt/print/PrinterJob/AlphaPrintTest.java index 5214ab11ec5..9a1ff616ee9 100644 --- a/test/jdk/java/awt/print/PrinterJob/AlphaPrintTest.java +++ b/test/jdk/java/awt/print/PrinterJob/AlphaPrintTest.java @@ -22,23 +22,13 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @bug 8240654 * @summary Test printing alpha colors - banded printing works with ZGC. * @key headful printer * @requires (os.family == "windows") - * @requires vm.gc.ZSinglegen - * @run main/manual/othervm -XX:+UseZGC -XX:-ZGenerational -Dsun.java2d.d3d=false AlphaPrintTest - */ - -/* - * @test id=ZGenerational - * @bug 8240654 - * @summary Test printing alpha colors - banded printing works with ZGC. - * @key headful printer - * @requires (os.family == "windows") - * @requires vm.gc.ZGenerational - * @run main/manual/othervm -XX:+UseZGC -XX:+ZGenerational -Dsun.java2d.d3d=false AlphaPrintTest + * @requires vm.gc.Z + * @run main/manual/othervm -XX:+UseZGC -Dsun.java2d.d3d=false AlphaPrintTest */ import java.awt.Color; diff --git a/test/jdk/java/foreign/stackwalk/TestAsyncStackWalk.java b/test/jdk/java/foreign/stackwalk/TestAsyncStackWalk.java index c21225575f9..1c234a9c3c6 100644 --- a/test/jdk/java/foreign/stackwalk/TestAsyncStackWalk.java +++ b/test/jdk/java/foreign/stackwalk/TestAsyncStackWalk.java @@ -39,8 +39,8 @@ */ /* - * @test id=ZSinglegen - * @requires vm.gc.ZSinglegen + * @test id=Z + * @requires vm.gc.Z * @library /test/lib * @library ../ * @build jdk.test.whitebox.WhiteBox @@ -52,25 +52,7 @@ * -XX:+WhiteBoxAPI * --enable-native-access=ALL-UNNAMED * -Xbatch - * -XX:+UseZGC -XX:-ZGenerational - * TestAsyncStackWalk - */ - -/* - * @test id=ZGenerational - * @requires vm.gc.ZGenerational - * @library /test/lib - * @library ../ - * @build jdk.test.whitebox.WhiteBox - * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox - * - * @run main/othervm - * -Xbootclasspath/a:. - * -XX:+UnlockDiagnosticVMOptions - * -XX:+WhiteBoxAPI - * --enable-native-access=ALL-UNNAMED - * -Xbatch - * -XX:+UseZGC -XX:+ZGenerational + * -XX:+UseZGC * TestAsyncStackWalk */ diff --git a/test/jdk/java/foreign/stackwalk/TestStackWalk.java b/test/jdk/java/foreign/stackwalk/TestStackWalk.java index 5218792658f..193a71affdd 100644 --- a/test/jdk/java/foreign/stackwalk/TestStackWalk.java +++ b/test/jdk/java/foreign/stackwalk/TestStackWalk.java @@ -39,8 +39,8 @@ */ /* - * @test id=ZSinglegen - * @requires vm.gc.ZSinglegen + * @test id=Z + * @requires vm.gc.Z * @library /test/lib * @library ../ * @build jdk.test.whitebox.WhiteBox @@ -52,25 +52,7 @@ * -XX:+WhiteBoxAPI * --enable-native-access=ALL-UNNAMED * -Xbatch - * -XX:+UseZGC -XX:-ZGenerational - * TestStackWalk - */ - -/* - * @test id=ZGenerational - * @requires vm.gc.ZGenerational - * @library /test/lib - * @library ../ - * @build jdk.test.whitebox.WhiteBox - * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox - * - * @run main/othervm - * -Xbootclasspath/a:. - * -XX:+UnlockDiagnosticVMOptions - * -XX:+WhiteBoxAPI - * --enable-native-access=ALL-UNNAMED - * -Xbatch - * -XX:+UseZGC -XX:+ZGenerational + * -XX:+UseZGC * TestStackWalk */ diff --git a/test/jdk/java/io/ObjectStreamClass/ObjectStreamClassCaching.java b/test/jdk/java/io/ObjectStreamClass/ObjectStreamClassCaching.java index 115481243f7..4004cbcf859 100644 --- a/test/jdk/java/io/ObjectStreamClass/ObjectStreamClassCaching.java +++ b/test/jdk/java/io/ObjectStreamClass/ObjectStreamClassCaching.java @@ -49,12 +49,12 @@ */ /* - * @test id=ZGenerational - * @requires vm.gc.ZGenerational + * @test id=Z + * @requires vm.gc.Z * @bug 8277072 8327180 * @library /test/lib/ * @summary ObjectStreamClass caches keep ClassLoaders alive (ZGC) - * @run testng/othervm -Xmx64m -XX:+UseZGC -XX:+ZGenerational ObjectStreamClassCaching + * @run testng/othervm -Xmx64m -XX:+UseZGC ObjectStreamClassCaching */ /* diff --git a/test/jdk/java/lang/ProcessBuilder/CloseRace.java b/test/jdk/java/lang/ProcessBuilder/CloseRace.java index e7eab128d60..b0ca352b8ac 100644 --- a/test/jdk/java/lang/ProcessBuilder/CloseRace.java +++ b/test/jdk/java/lang/ProcessBuilder/CloseRace.java @@ -22,24 +22,24 @@ */ /** - * @test + * @test id=Default * @bug 8024521 8315721 * @summary Closing ProcessPipeInputStream at the time the process exits is racy * and leads to data corruption. Run this test manually (as * an ordinary java program) with -Xmx8M to repro bug 8024521. - * @requires !vm.opt.final.ZGenerational + * @requires vm.gc != "Z" * @comment Don't allow -Xcomp, it disturbs the timing * @requires (vm.compMode != "Xcomp") * @run main/othervm -Xmx8M -Dtest.duration=2 CloseRace */ /** - * @test + * @test id=Z * @comment Turn up heap size to lower amount of GCs - * @requires vm.gc.Z & vm.opt.final.ZGenerational + * @requires vm.gc.Z * @comment Don't allow -Xcomp, it disturbs the timing * @requires (vm.compMode != "Xcomp") - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xmx32M -Dtest.duration=2 CloseRace + * @run main/othervm -XX:+UseZGC -Xmx32M -Dtest.duration=2 CloseRace */ import java.io.*; diff --git a/test/jdk/java/lang/Thread/virtual/stress/Skynet.java b/test/jdk/java/lang/Thread/virtual/stress/Skynet.java index 5b63fe84b1d..562a8dbd5e1 100644 --- a/test/jdk/java/lang/Thread/virtual/stress/Skynet.java +++ b/test/jdk/java/lang/Thread/virtual/stress/Skynet.java @@ -28,22 +28,12 @@ * @requires !vm.debug | vm.gc != "Z" * @run main/othervm/timeout=300 -Xmx1500m Skynet */ - -/* - * @test id=ZSinglegen - * @requires vm.debug == true & vm.continuations - * @requires vm.gc.ZSinglegen - * @run main/othervm/timeout=300 -XX:+UnlockDiagnosticVMOptions - * -XX:+UseZGC -XX:-ZGenerational - * -XX:+ZVerifyOops -XX:ZCollectionInterval=0.01 -Xmx1500m Skynet - */ - /* - * @test id=ZGenerational + * @test id=Z * @requires vm.debug == true & vm.continuations - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @run main/othervm/timeout=300 -XX:+UnlockDiagnosticVMOptions - * -XX:+UseZGC -XX:+ZGenerational + * -XX:+UseZGC * -XX:+ZVerifyOops -XX:ZCollectionInterval=0.01 -Xmx1500m Skynet */ diff --git a/test/jdk/java/lang/management/MemoryMXBean/MemoryTest.java b/test/jdk/java/lang/management/MemoryMXBean/MemoryTest.java index 68a6671e77a..f8abba43983 100644 --- a/test/jdk/java/lang/management/MemoryMXBean/MemoryTest.java +++ b/test/jdk/java/lang/management/MemoryMXBean/MemoryTest.java @@ -34,27 +34,15 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @bug 4530538 * @summary Basic unit test of MemoryMXBean.getMemoryPools() and * MemoryMXBean.getMemoryManager(). - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @author Mandy Chung * * @modules jdk.management - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational MemoryTest 2 1 - */ - -/* - * @test id=ZGenerational - * @bug 4530538 - * @summary Basic unit test of MemoryMXBean.getMemoryPools() and - * MemoryMXBean.getMemoryManager(). - * @requires vm.gc.ZGenerational - * @author Mandy Chung - * - * @modules jdk.management - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational MemoryTest 4 2 + * @run main/othervm -XX:+UseZGC MemoryTest 4 2 */ /* diff --git a/test/jdk/jdk/dynalink/TypeConverterFactoryMemoryLeakTest.java b/test/jdk/jdk/dynalink/TypeConverterFactoryMemoryLeakTest.java index 7e907781e9d..4735bb4a08f 100644 --- a/test/jdk/jdk/dynalink/TypeConverterFactoryMemoryLeakTest.java +++ b/test/jdk/jdk/dynalink/TypeConverterFactoryMemoryLeakTest.java @@ -46,19 +46,11 @@ */ /* - * @test id=with_ZGC_Singlegen - * @requires vm.gc.ZSinglegen + * @test id=with_ZGC + * @requires vm.gc.Z * @bug 8198540 * @summary Test TypeConverterFactory is not leaking method handles (Z GC) - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational TypeConverterFactoryMemoryLeakTest - */ - -/* - * @test id=with_ZGC_Generational - * @requires vm.gc.ZGenerational - * @bug 8198540 - * @summary Test TypeConverterFactory is not leaking method handles (Z GC) - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational TypeConverterFactoryMemoryLeakTest + * @run main/othervm -XX:+UseZGC TypeConverterFactoryMemoryLeakTest */ /* diff --git a/test/jdk/jdk/dynalink/TypeConverterFactoryRetentionTests.java b/test/jdk/jdk/dynalink/TypeConverterFactoryRetentionTests.java index bdfd33eff48..8ad972d4502 100644 --- a/test/jdk/jdk/dynalink/TypeConverterFactoryRetentionTests.java +++ b/test/jdk/jdk/dynalink/TypeConverterFactoryRetentionTests.java @@ -46,19 +46,11 @@ */ /* - * @test id=with_ZGC_Singlegen - * @requires vm.gc.ZSinglegen + * @test id=with_ZGC + * @requires vm.gc.Z * @bug 8198540 * @summary Test TypeConverterFactory is not leaking class loaders (Z GC) - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational TypeConverterFactoryRetentionTests - */ - -/* - * @test id=with_ZGC_Generational - * @requires vm.gc.ZGenerational - * @bug 8198540 - * @summary Test TypeConverterFactory is not leaking class loaders (Z GC) - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational TypeConverterFactoryRetentionTests + * @run main/othervm -XX:+UseZGC TypeConverterFactoryRetentionTests */ /* diff --git a/test/jdk/jdk/incubator/vector/VectorMaxConversionTests.java b/test/jdk/jdk/incubator/vector/VectorMaxConversionTests.java index 28c5348100a..a8f89f9d705 100644 --- a/test/jdk/jdk/incubator/vector/VectorMaxConversionTests.java +++ b/test/jdk/jdk/incubator/vector/VectorMaxConversionTests.java @@ -41,26 +41,14 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @bug 8281544 * @summary Test that ZGC and vectorapi with KNL work together. - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @modules jdk.incubator.vector * @modules java.base/jdk.internal.vm.annotation * @run testng/othervm -XX:-TieredCompilation --add-opens jdk.incubator.vector/jdk.incubator.vector=ALL-UNNAMED - * -XX:+UnlockDiagnosticVMOptions -XX:+UseKNLSetting -XX:+UseZGC -XX:-ZGenerational -XX:+IgnoreUnrecognizedVMOptions - * VectorMaxConversionTests - */ - -/* - * @test id=ZGenerational - * @bug 8281544 - * @summary Test that ZGC and vectorapi with KNL work together. - * @requires vm.gc.ZGenerational - * @modules jdk.incubator.vector - * @modules java.base/jdk.internal.vm.annotation - * @run testng/othervm -XX:-TieredCompilation --add-opens jdk.incubator.vector/jdk.incubator.vector=ALL-UNNAMED - * -XX:+UnlockDiagnosticVMOptions -XX:+UseKNLSetting -XX:+UseZGC -XX:+ZGenerational -XX:+IgnoreUnrecognizedVMOptions + * -XX:+UnlockDiagnosticVMOptions -XX:+UseKNLSetting -XX:+UseZGC -XX:+IgnoreUnrecognizedVMOptions * VectorMaxConversionTests */ diff --git a/test/jdk/jdk/jfr/event/gc/collection/TestGarbageCollectionEventWithZMajor.java b/test/jdk/jdk/jfr/event/gc/collection/TestGarbageCollectionEventWithZMajor.java index 81e18439b57..3766d9d0d32 100644 --- a/test/jdk/jdk/jfr/event/gc/collection/TestGarbageCollectionEventWithZMajor.java +++ b/test/jdk/jdk/jfr/event/gc/collection/TestGarbageCollectionEventWithZMajor.java @@ -35,10 +35,10 @@ /** * @test - * @requires vm.hasJFR & vm.gc.ZGenerational + * @requires vm.hasJFR & vm.gc.Z * @key jfr * @library /test/lib /test/jdk - * @run main/othervm -Xmx50m -XX:+UseZGC -XX:+ZGenerational -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc* jdk.jfr.event.gc.collection.TestGarbageCollectionEventWithZMajor + * @run main/othervm -Xmx50m -XX:+UseZGC -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc* jdk.jfr.event.gc.collection.TestGarbageCollectionEventWithZMajor */ public class TestGarbageCollectionEventWithZMajor { diff --git a/test/jdk/jdk/jfr/event/gc/collection/TestGarbageCollectionEventWithZMinor.java b/test/jdk/jdk/jfr/event/gc/collection/TestGarbageCollectionEventWithZMinor.java index e7e94cf9ff0..c8d681594dd 100644 --- a/test/jdk/jdk/jfr/event/gc/collection/TestGarbageCollectionEventWithZMinor.java +++ b/test/jdk/jdk/jfr/event/gc/collection/TestGarbageCollectionEventWithZMinor.java @@ -40,12 +40,12 @@ /** * @test * @key jfr - * @requires vm.hasJFR & vm.gc.ZGenerational + * @requires vm.hasJFR & vm.gc.Z * @key jfr * @library /test/lib /test/jdk * @build jdk.test.whitebox.WhiteBox * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox - * @run main/othervm -Xbootclasspath/a:. -XX:+UseZGC -XX:+ZGenerational -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc* jdk.jfr.event.gc.collection.TestGarbageCollectionEventWithZMinor + * @run main/othervm -Xbootclasspath/a:. -XX:+UseZGC -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc* jdk.jfr.event.gc.collection.TestGarbageCollectionEventWithZMinor */ public class TestGarbageCollectionEventWithZMinor { diff --git a/test/jdk/jdk/jfr/event/gc/collection/TestZOldGarbageCollectionEvent.java b/test/jdk/jdk/jfr/event/gc/collection/TestZOldGarbageCollectionEvent.java index 0f807f4f6e4..50177ffd16b 100644 --- a/test/jdk/jdk/jfr/event/gc/collection/TestZOldGarbageCollectionEvent.java +++ b/test/jdk/jdk/jfr/event/gc/collection/TestZOldGarbageCollectionEvent.java @@ -35,10 +35,10 @@ /** * @test - * @requires vm.hasJFR & vm.gc.ZGenerational + * @requires vm.hasJFR & vm.gc.Z * @key jfr * @library /test/lib /test/jdk - * @run main/othervm -Xmx50m -XX:+UseZGC -XX:+ZGenerational -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc* jdk.jfr.event.gc.collection.TestZOldGarbageCollectionEvent + * @run main/othervm -Xmx50m -XX:+UseZGC -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc* jdk.jfr.event.gc.collection.TestZOldGarbageCollectionEvent */ public class TestZOldGarbageCollectionEvent { diff --git a/test/jdk/jdk/jfr/event/gc/collection/TestZYoungGarbageCollectionEvent.java b/test/jdk/jdk/jfr/event/gc/collection/TestZYoungGarbageCollectionEvent.java index c16bdaa5d64..f8e4e8b344b 100644 --- a/test/jdk/jdk/jfr/event/gc/collection/TestZYoungGarbageCollectionEvent.java +++ b/test/jdk/jdk/jfr/event/gc/collection/TestZYoungGarbageCollectionEvent.java @@ -35,10 +35,10 @@ /** * @test - * @requires vm.hasJFR & vm.gc.ZGenerational + * @requires vm.hasJFR & vm.gc.Z * @key jfr * @library /test/lib /test/jdk - * @run main/othervm -Xmx50m -XX:+UseZGC -XX:+ZGenerational -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc* jdk.jfr.event.gc.collection.TestZYoungGarbageCollectionEvent + * @run main/othervm -Xmx50m -XX:+UseZGC -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc* jdk.jfr.event.gc.collection.TestZYoungGarbageCollectionEvent */ public class TestZYoungGarbageCollectionEvent { diff --git a/test/jdk/jdk/jfr/event/gc/detailed/TestGCPhaseConcurrent.java b/test/jdk/jdk/jfr/event/gc/detailed/TestGCPhaseConcurrent.java index fb048ee6bd7..48e188346f8 100644 --- a/test/jdk/jdk/jfr/event/gc/detailed/TestGCPhaseConcurrent.java +++ b/test/jdk/jdk/jfr/event/gc/detailed/TestGCPhaseConcurrent.java @@ -31,19 +31,11 @@ import jdk.test.lib.jfr.Events; /** - * @test id=ZGenerational + * @test id=Z * @key jfr * @library /test/lib /test/jdk /test/hotspot/jtreg - * @requires vm.hasJFR & vm.gc.ZGenerational - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xmx32M jdk.jfr.event.gc.detailed.TestGCPhaseConcurrent Z - */ - -/** - * @test id=ZSinglegen - * @key jfr - * @library /test/lib /test/jdk /test/hotspot/jtreg - * @requires vm.hasJFR & vm.gc.ZSinglegen - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xmx32M jdk.jfr.event.gc.detailed.TestGCPhaseConcurrent X + * @requires vm.hasJFR & vm.gc.Z + * @run main/othervm -XX:+UseZGC -Xmx32M jdk.jfr.event.gc.detailed.TestGCPhaseConcurrent Z */ /** diff --git a/test/jdk/jdk/jfr/event/gc/detailed/TestZAllocationStallEvent.java b/test/jdk/jdk/jfr/event/gc/detailed/TestZAllocationStallEvent.java index 8977a574a62..1b4ce259784 100644 --- a/test/jdk/jdk/jfr/event/gc/detailed/TestZAllocationStallEvent.java +++ b/test/jdk/jdk/jfr/event/gc/detailed/TestZAllocationStallEvent.java @@ -32,19 +32,11 @@ import jdk.test.lib.jfr.Events; /** - * @test id=ZSinglegen - * @requires vm.hasJFR & vm.gc.ZSinglegen + * @test + * @requires vm.hasJFR & vm.gc.Z * @key jfr * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xmx32M -Xlog:gc*:gc.log::filecount=0 jdk.jfr.event.gc.detailed.TestZAllocationStallEvent - */ - -/** - * @test id=ZGenerational - * @requires vm.hasJFR & vm.gc.ZGenerational - * @key jfr - * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xmx32M -Xlog:gc*:gc.log::filecount=0 jdk.jfr.event.gc.detailed.TestZAllocationStallEvent + * @run main/othervm -XX:+UseZGC -Xmx32M -Xlog:gc*:gc.log::filecount=0 jdk.jfr.event.gc.detailed.TestZAllocationStallEvent */ public class TestZAllocationStallEvent { diff --git a/test/jdk/jdk/jfr/event/gc/detailed/TestZPageAllocationEvent.java b/test/jdk/jdk/jfr/event/gc/detailed/TestZPageAllocationEvent.java index 182f7b3d509..d672a2654b8 100644 --- a/test/jdk/jdk/jfr/event/gc/detailed/TestZPageAllocationEvent.java +++ b/test/jdk/jdk/jfr/event/gc/detailed/TestZPageAllocationEvent.java @@ -32,19 +32,11 @@ import jdk.test.lib.jfr.Events; /** - * @test id=ZSinglegen - * @requires vm.hasJFR & vm.gc.ZSinglegen + * @test + * @requires vm.hasJFR & vm.gc.Z * @key jfr * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xmx32M jdk.jfr.event.gc.detailed.TestZPageAllocationEvent - */ - -/** - * @test id=ZGenerational - * @requires vm.hasJFR & vm.gc.ZGenerational - * @key jfr - * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xmx32M jdk.jfr.event.gc.detailed.TestZPageAllocationEvent + * @run main/othervm -XX:+UseZGC -Xmx32M jdk.jfr.event.gc.detailed.TestZPageAllocationEvent */ public class TestZPageAllocationEvent { diff --git a/test/jdk/jdk/jfr/event/gc/detailed/TestZRelocationSetEvent.java b/test/jdk/jdk/jfr/event/gc/detailed/TestZRelocationSetEvent.java index 8f07abeaaef..f14eec97548 100644 --- a/test/jdk/jdk/jfr/event/gc/detailed/TestZRelocationSetEvent.java +++ b/test/jdk/jdk/jfr/event/gc/detailed/TestZRelocationSetEvent.java @@ -32,19 +32,11 @@ import jdk.test.lib.jfr.Events; /** - * @test id=ZSinglegen - * @requires vm.hasJFR & vm.gc.ZSinglegen + * @test + * @requires vm.hasJFR & vm.gc.Z * @key jfr * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xmx32M jdk.jfr.event.gc.detailed.TestZRelocationSetEvent - */ - -/** - * @test id=ZGenerational - * @requires vm.hasJFR & vm.gc.ZGenerational - * @key jfr - * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xmx32M jdk.jfr.event.gc.detailed.TestZRelocationSetEvent + * @run main/othervm -XX:+UseZGC -Xmx32M jdk.jfr.event.gc.detailed.TestZRelocationSetEvent */ public class TestZRelocationSetEvent { diff --git a/test/jdk/jdk/jfr/event/gc/detailed/TestZRelocationSetGroupEvent.java b/test/jdk/jdk/jfr/event/gc/detailed/TestZRelocationSetGroupEvent.java index b997d173ffb..f00655cf942 100644 --- a/test/jdk/jdk/jfr/event/gc/detailed/TestZRelocationSetGroupEvent.java +++ b/test/jdk/jdk/jfr/event/gc/detailed/TestZRelocationSetGroupEvent.java @@ -32,19 +32,11 @@ import jdk.test.lib.jfr.Events; /** - * @test id=ZSinglegen - * @requires vm.hasJFR & vm.gc.ZSinglegen + * @test + * @requires vm.hasJFR & vm.gc.Z * @key jfr * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xmx32M jdk.jfr.event.gc.detailed.TestZRelocationSetGroupEvent - */ - -/** - * @test id=ZGenerational - * @requires vm.hasJFR & vm.gc.ZGenerational - * @key jfr - * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xmx32M jdk.jfr.event.gc.detailed.TestZRelocationSetGroupEvent + * @run main/othervm -XX:+UseZGC -Xmx32M jdk.jfr.event.gc.detailed.TestZRelocationSetGroupEvent */ public class TestZRelocationSetGroupEvent { diff --git a/test/jdk/jdk/jfr/event/gc/detailed/TestZUncommitEvent.java b/test/jdk/jdk/jfr/event/gc/detailed/TestZUncommitEvent.java index 06fd9b5a1b8..e7a37e2de55 100644 --- a/test/jdk/jdk/jfr/event/gc/detailed/TestZUncommitEvent.java +++ b/test/jdk/jdk/jfr/event/gc/detailed/TestZUncommitEvent.java @@ -34,19 +34,11 @@ import jdk.test.lib.jfr.Events; /** - * @test id=ZSinglegen - * @requires vm.hasJFR & vm.gc.ZSinglegen + * @test id=Z + * @requires vm.hasJFR & vm.gc.Z * @key jfr * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xms32M -Xmx128M -Xlog:gc,gc+heap -XX:+ZUncommit -XX:ZUncommitDelay=1 jdk.jfr.event.gc.detailed.TestZUncommitEvent - */ - -/** - * @test id=ZGenerational - * @requires vm.hasJFR & vm.gc.ZGenerational - * @key jfr - * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xms32M -Xmx128M -Xlog:gc,gc+heap -XX:+ZUncommit -XX:ZUncommitDelay=1 jdk.jfr.event.gc.detailed.TestZUncommitEvent + * @run main/othervm -XX:+UseZGC -Xms32M -Xmx128M -Xlog:gc,gc+heap -XX:+ZUncommit -XX:ZUncommitDelay=1 jdk.jfr.event.gc.detailed.TestZUncommitEvent */ public class TestZUncommitEvent { diff --git a/test/jdk/jdk/jfr/event/gc/detailed/TestZUnmapEvent.java b/test/jdk/jdk/jfr/event/gc/detailed/TestZUnmapEvent.java index 94460f8f278..a19e89771c0 100644 --- a/test/jdk/jdk/jfr/event/gc/detailed/TestZUnmapEvent.java +++ b/test/jdk/jdk/jfr/event/gc/detailed/TestZUnmapEvent.java @@ -32,19 +32,11 @@ import jdk.test.lib.jfr.Events; /** - * @test id=ZSinglegen - * @requires vm.hasJFR & vm.gc.ZSinglegen + * @test id=Z + * @requires vm.hasJFR & vm.gc.Z * @key jfr * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xmx32M jdk.jfr.event.gc.detailed.TestZUnmapEvent - */ - -/** - * @test id=ZGenerational - * @requires vm.hasJFR & vm.gc.ZGenerational - * @key jfr - * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xmx32M jdk.jfr.event.gc.detailed.TestZUnmapEvent + * @run main/othervm -XX:+UseZGC -Xmx32M jdk.jfr.event.gc.detailed.TestZUnmapEvent */ public class TestZUnmapEvent { diff --git a/test/jdk/jdk/jfr/event/oldobject/TestZ.java b/test/jdk/jdk/jfr/event/oldobject/TestZ.java index 224a1237324..99605846382 100644 --- a/test/jdk/jdk/jfr/event/oldobject/TestZ.java +++ b/test/jdk/jdk/jfr/event/oldobject/TestZ.java @@ -33,23 +33,13 @@ import jdk.test.lib.jfr.Events; /** - * @test id=ZSinglegen - * @requires vm.hasJFR & vm.gc.ZSinglegen + * @test + * @requires vm.hasJFR & vm.gc.Z * @key jfr * @summary Test leak profiler with ZGC * @library /test/lib /test/jdk * @modules jdk.jfr/jdk.jfr.internal.test - * @run main/othervm -XX:TLABSize=2k -XX:+UseZGC -XX:-ZGenerational jdk.jfr.event.oldobject.TestZ - */ - -/** - * @test id=ZGenerational - * @requires vm.hasJFR & vm.gc.ZGenerational - * @key jfr - * @summary Test leak profiler with ZGC - * @library /test/lib /test/jdk - * @modules jdk.jfr/jdk.jfr.internal.test - * @run main/othervm -XX:TLABSize=2k -XX:+UseZGC -XX:+ZGenerational jdk.jfr.event.oldobject.TestZ + * @run main/othervm -XX:TLABSize=2k -XX:+UseZGC jdk.jfr.event.oldobject.TestZ */ public class TestZ { diff --git a/test/jdk/sun/tools/jmap/BasicJMapTest.java b/test/jdk/sun/tools/jmap/BasicJMapTest.java index d8a24ef05fa..991648b96c2 100644 --- a/test/jdk/sun/tools/jmap/BasicJMapTest.java +++ b/test/jdk/sun/tools/jmap/BasicJMapTest.java @@ -87,8 +87,8 @@ */ /* - * @test id=ZSinglegen - * @requires vm.gc.ZSinglegen + * @test id=Z + * @requires vm.gc.Z * @summary Unit test for jmap utility (Z GC) * @key intermittent * @library /test/lib @@ -96,20 +96,7 @@ * @build jdk.test.lib.hprof.model.* * @build jdk.test.lib.hprof.parser.* * @build jdk.test.lib.hprof.util.* - * @run main/othervm/timeout=240 -XX:+UseZGC -XX:-ZGenerational BasicJMapTest - */ - -/* - * @test id=ZGenerational - * @requires vm.gc.ZGenerational - * @summary Unit test for jmap utility (Z GC) - * @key intermittent - * @library /test/lib - * @build jdk.test.lib.hprof.* - * @build jdk.test.lib.hprof.model.* - * @build jdk.test.lib.hprof.parser.* - * @build jdk.test.lib.hprof.util.* - * @run main/othervm/timeout=240 -XX:+UseZGC -XX:+ZGenerational BasicJMapTest + * @run main/othervm/timeout=240 -XX:+UseZGC BasicJMapTest */ public class BasicJMapTest { diff --git a/test/jtreg-ext/requires/VMProps.java b/test/jtreg-ext/requires/VMProps.java index 465c641d442..4f00846116c 100644 --- a/test/jtreg-ext/requires/VMProps.java +++ b/test/jtreg-ext/requires/VMProps.java @@ -323,17 +323,6 @@ protected void vmGC(SafeMap map) { for (GC gc: GC.values()) { map.put("vm.gc." + gc.name(), () -> "" + vmGCProperty.test(gc)); } - - // Special handling for ZGC modes - var vmGCZ = vmGCProperty.test(GC.Z); - var genZ = WB.getBooleanVMFlag("ZGenerational"); - var genZIsDefault = WB.isDefaultVMFlag("ZGenerational"); - // vm.gc.ZGenerational=true means: - // vm.gc.Z is true and ZGenerational is either explicitly true, or default - map.put("vm.gc.ZGenerational", () -> "" + (vmGCZ && (genZ || genZIsDefault))); - // vm.gc.ZSinglegen=true means: - // vm.gc.Z is true and ZGenerational is either explicitly false, or default - map.put("vm.gc.ZSinglegen", () -> "" + (vmGCZ && (!genZ || genZIsDefault))); } /** @@ -388,7 +377,6 @@ protected void vmOptFinalFlags(SafeMap map) { vmOptFinalFlag(map, "UseCompressedOops"); vmOptFinalFlag(map, "UseLargePages"); vmOptFinalFlag(map, "UseVectorizedMismatchIntrinsic"); - vmOptFinalFlag(map, "ZGenerational"); } /** From 63328eef84fec463624a1ebcaa96eb7a105dfe59 Mon Sep 17 00:00:00 2001 From: Ramkumar Sunderbabu Date: Wed, 30 Oct 2024 15:45:03 +0000 Subject: [PATCH 034/159] 8202100: Merge vm/share/InMemoryJavaCompiler w/ jdk/test/lib/compiler/InMemoryJavaCompiler Reviewed-by: lmesnik --- .../LambdaProxyCallerIsHidden.java | 5 +- .../RedefineCallerClassTest.java | 5 +- .../dynamicArchive/RegularHiddenClass.java | 5 +- .../redefineClass/RedefineBasicTest.java | 5 +- .../RedefineRunningMethods_Shared.java | 5 +- .../bytecode/BytecodeGeneratorFactory.java | 8 +- .../staticReferences/StaticReferences.java | 6 +- .../stressDictionary/StressDictionary.java | 8 +- .../GenerateHierarchyHelper.java | 4 +- .../jvmti/RedefineClasses/StressRedefine.java | 9 +- .../vm/share/InMemoryJavaCompiler.java | 125 -------------- .../lib/compiler/InMemoryJavaCompiler.java | 155 +++++++++++++----- 12 files changed, 142 insertions(+), 198 deletions(-) delete mode 100644 test/hotspot/jtreg/vmTestbase/vm/share/InMemoryJavaCompiler.java diff --git a/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaProxyCallerIsHidden.java b/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaProxyCallerIsHidden.java index 583f6cf55e2..0c8cad0b3a6 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaProxyCallerIsHidden.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaProxyCallerIsHidden.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,7 +37,8 @@ * jdk/test/lib/compiler/InMemoryJavaCompiler * jdk/test/lib/compiler/InMemoryJavaCompiler$FileManagerWrapper$1 * jdk/test/lib/compiler/InMemoryJavaCompiler$FileManagerWrapper - * jdk/test/lib/compiler/InMemoryJavaCompiler$MemoryJavaFileObject + * jdk/test/lib/compiler/InMemoryJavaCompiler$SourceFile + * jdk/test/lib/compiler/InMemoryJavaCompiler$ClassFile * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox * @run main/othervm -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:. LambdaProxyCallerIsHidden */ diff --git a/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RedefineCallerClassTest.java b/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RedefineCallerClassTest.java index 3d681347969..90d403bc380 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RedefineCallerClassTest.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RedefineCallerClassTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -52,7 +52,8 @@ public class RedefineCallerClassTest extends DynamicArchiveTestBase { "jdk/test/lib/compiler/InMemoryJavaCompiler", "jdk/test/lib/compiler/InMemoryJavaCompiler$FileManagerWrapper", "jdk/test/lib/compiler/InMemoryJavaCompiler$FileManagerWrapper$1", - "jdk/test/lib/compiler/InMemoryJavaCompiler$MemoryJavaFileObject" + "jdk/test/lib/compiler/InMemoryJavaCompiler$SourceFile", + "jdk/test/lib/compiler/InMemoryJavaCompiler$ClassFile" }; public static void main(String[] args) throws Exception { diff --git a/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RegularHiddenClass.java b/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RegularHiddenClass.java index 3ceec349f5d..957e4cb6479 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RegularHiddenClass.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RegularHiddenClass.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -35,7 +35,8 @@ * jdk/test/lib/compiler/InMemoryJavaCompiler * jdk/test/lib/compiler/InMemoryJavaCompiler$FileManagerWrapper$1 * jdk/test/lib/compiler/InMemoryJavaCompiler$FileManagerWrapper - * jdk/test/lib/compiler/InMemoryJavaCompiler$MemoryJavaFileObject + * jdk/test/lib/compiler/InMemoryJavaCompiler$SourceFile + * jdk/test/lib/compiler/InMemoryJavaCompiler$ClassFile * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox * @run main/othervm -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:. RegularHiddenClass */ diff --git a/test/hotspot/jtreg/runtime/cds/appcds/redefineClass/RedefineBasicTest.java b/test/hotspot/jtreg/runtime/cds/appcds/redefineClass/RedefineBasicTest.java index 81d6e20321e..acbd0c948be 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/redefineClass/RedefineBasicTest.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/redefineClass/RedefineBasicTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,7 +47,8 @@ public class RedefineBasicTest { "jdk/test/lib/compiler/InMemoryJavaCompiler", "jdk/test/lib/compiler/InMemoryJavaCompiler$FileManagerWrapper", "jdk/test/lib/compiler/InMemoryJavaCompiler$FileManagerWrapper$1", - "jdk/test/lib/compiler/InMemoryJavaCompiler$MemoryJavaFileObject" + "jdk/test/lib/compiler/InMemoryJavaCompiler$SourceFile", + "jdk/test/lib/compiler/InMemoryJavaCompiler$ClassFile" }; public static void main(String[] args) throws Exception { diff --git a/test/hotspot/jtreg/runtime/cds/appcds/redefineClass/RedefineRunningMethods_Shared.java b/test/hotspot/jtreg/runtime/cds/appcds/redefineClass/RedefineRunningMethods_Shared.java index d8459359604..039aaef11cd 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/redefineClass/RedefineRunningMethods_Shared.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/redefineClass/RedefineRunningMethods_Shared.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -48,7 +48,8 @@ public class RedefineRunningMethods_Shared { "jdk/test/lib/compiler/InMemoryJavaCompiler", "jdk/test/lib/compiler/InMemoryJavaCompiler$FileManagerWrapper", "jdk/test/lib/compiler/InMemoryJavaCompiler$FileManagerWrapper$1", - "jdk/test/lib/compiler/InMemoryJavaCompiler$MemoryJavaFileObject" + "jdk/test/lib/compiler/InMemoryJavaCompiler$SourceFile", + "jdk/test/lib/compiler/InMemoryJavaCompiler$ClassFile" }; public static void main(String[] args) throws Exception { diff --git a/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/bytecode/BytecodeGeneratorFactory.java b/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/bytecode/BytecodeGeneratorFactory.java index cad856f553e..73f74794394 100644 --- a/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/bytecode/BytecodeGeneratorFactory.java +++ b/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/bytecode/BytecodeGeneratorFactory.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,7 +26,7 @@ import java.util.Map; import java.util.Random; -import vm.share.InMemoryJavaCompiler; +import jdk.test.lib.compiler.InMemoryJavaCompiler; /** * BytecodeFactory that employs in memory compilation. @@ -44,12 +44,10 @@ public BytecodeGeneratorFactory(long seed) { @Override public Bytecode createBytecode(String className) { - Map sources = new HashMap(); - sources.put(className, sourceGenerator.generateSource(className, + byte[] bytecode = InMemoryJavaCompiler.compile(className, sourceGenerator.generateSource(className, "public static void main() { System.out.println(\"From main method in in-mem-compiled code " + random.nextGaussian() + " + str_bytesToReplace0 str_bytesToReplace1\"); }\n " + "public static int methodForCompilation(Object object) { int i = object.hashCode(); i = i * 2000 / 1994 + 153; return i; }\n")); - byte[] bytecode = InMemoryJavaCompiler.compile(sources).values().iterator().next(); return new Bytecode(className, bytecode); } diff --git a/test/hotspot/jtreg/vmTestbase/metaspace/staticReferences/StaticReferences.java b/test/hotspot/jtreg/vmTestbase/metaspace/staticReferences/StaticReferences.java index ce0dd65c7ee..7ea901abe06 100644 --- a/test/hotspot/jtreg/vmTestbase/metaspace/staticReferences/StaticReferences.java +++ b/test/hotspot/jtreg/vmTestbase/metaspace/staticReferences/StaticReferences.java @@ -60,7 +60,7 @@ import nsk.share.test.Stresser; import nsk.share.test.TestBase; import nsk.share.test.Tests; -import vm.share.InMemoryJavaCompiler; +import jdk.test.lib.compiler.InMemoryJavaCompiler; /** * Test checks that static fields will be initialized in new loaded class. Test performs in loop the following routine: @@ -210,9 +210,7 @@ private void checkStaticFields(Class clazz) { } private byte[] generateAndCompile(int[] fieldQuantities) { - Map sources = new HashMap(); - sources.put("A", generateSource(fieldQuantities)); - return InMemoryJavaCompiler.compile(sources).values().iterator().next(); + return InMemoryJavaCompiler.compile("A", generateSource(fieldQuantities)); } private StringBuffer generateSource(int[] fieldQuantities) { diff --git a/test/hotspot/jtreg/vmTestbase/metaspace/stressDictionary/StressDictionary.java b/test/hotspot/jtreg/vmTestbase/metaspace/stressDictionary/StressDictionary.java index b4c44a9a059..0db2d24fa8f 100644 --- a/test/hotspot/jtreg/vmTestbase/metaspace/stressDictionary/StressDictionary.java +++ b/test/hotspot/jtreg/vmTestbase/metaspace/stressDictionary/StressDictionary.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,7 +43,7 @@ import nsk.share.gc.GCTestBase; import nsk.share.test.*; -import vm.share.InMemoryJavaCompiler; +import jdk.test.lib.compiler.InMemoryJavaCompiler; /** * There is a data structure named "dictionary" in class BlockFreelist. It stores @@ -178,10 +178,8 @@ public void run() { } private byte[] generateAndCompile() { - Map sources = new HashMap(); String className = "MyClass" + classesCounter.incrementAndGet(); - sources.put(className, generateSource(className)); - return InMemoryJavaCompiler.compile(sources).values().iterator().next(); + return InMemoryJavaCompiler.compile(className, generateSource(className)); } private CharSequence generateSource(String className) { diff --git a/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/common/generateHierarchy/GenerateHierarchyHelper.java b/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/common/generateHierarchy/GenerateHierarchyHelper.java index daccf644393..be6f1ebe85f 100644 --- a/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/common/generateHierarchy/GenerateHierarchyHelper.java +++ b/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/common/generateHierarchy/GenerateHierarchyHelper.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,7 +24,7 @@ import java.util.*; -import vm.share.InMemoryJavaCompiler; +import jdk.test.lib.compiler.InMemoryJavaCompiler; import jdk.test.lib.Utils; public class GenerateHierarchyHelper { diff --git a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine.java b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine.java index 1192de03f88..d581cd5693b 100644 --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine.java +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,7 +21,6 @@ * questions. */ -//package nsk.jvmti.RedefineClasses.StressRedefine; package nsk.jvmti.RedefineClasses; @@ -41,7 +40,7 @@ import nsk.share.test.Stresser; import nsk.share.test.Tests; -import vm.share.InMemoryJavaCompiler; +import jdk.test.lib.compiler.InMemoryJavaCompiler; /** * There is a data structure named "dictionary" in class BlockFreelist. It stores @@ -203,9 +202,7 @@ private static ThreadFactory virtualThreadFactory() { } private static byte[] generateAndCompile() { - Map sources = new HashMap(); - sources.put(GenerateSourceHelper.CLASS_NAME, GenerateSourceHelper.generateSource()); - return InMemoryJavaCompiler.compile(sources).values().iterator().next(); + return InMemoryJavaCompiler.compile(GenerateSourceHelper.CLASS_NAME, GenerateSourceHelper.generateSource()); } // Auxiliary classloader. Used only once at the beginning. diff --git a/test/hotspot/jtreg/vmTestbase/vm/share/InMemoryJavaCompiler.java b/test/hotspot/jtreg/vmTestbase/vm/share/InMemoryJavaCompiler.java deleted file mode 100644 index 6f5f1c0cbcd..00000000000 --- a/test/hotspot/jtreg/vmTestbase/vm/share/InMemoryJavaCompiler.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ -package vm.share; - -import javax.tools.FileObject; -import javax.tools.ForwardingJavaFileManager; -import javax.tools.JavaCompiler; -import javax.tools.JavaFileManager; -import javax.tools.JavaFileObject; -import javax.tools.SimpleJavaFileObject; -import javax.tools.ToolProvider; -import java.io.ByteArrayOutputStream; -import java.io.StringWriter; -import java.io.Writer; -import java.net.URI; -import java.util.Collection; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.Map; -import java.util.Map.Entry; - - -public class InMemoryJavaCompiler { - - public static Map compile(Map inputMap) { - Collection sourceFiles = new LinkedList(); - for (Entry entry : inputMap.entrySet()) { - sourceFiles.add(new SourceFile(entry.getKey(), entry.getValue())); - } - - JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); - FileManager fileManager = new FileManager(compiler.getStandardFileManager(null, null, null)); - - Writer writer = new StringWriter(); - Boolean exitCode = compiler.getTask(writer, fileManager, null, null, null, sourceFiles).call(); - if (!exitCode) { - System.out.println("*********** javac output begin ***********"); - System.out.println(writer.toString()); - System.out.println("*********** javac output end ***********"); - if (writer.toString().contains("java.lang.OutOfMemoryError")) { - System.out.println("Got OOME while performing in memory compilation. It happens on weak hosts and there is nothing we can do. "); - throw new OutOfMemoryError("Got OOME while performing in memory compilation."); - } - throw new RuntimeException("Test bug: in memory compilation failed."); - } - return fileManager.getByteCode(); - } - - // Wraper for class file - static class ClassFile extends SimpleJavaFileObject { - - private final ByteArrayOutputStream baos = new ByteArrayOutputStream(); - - protected ClassFile(String name) { - super(URI.create("memo:///" + name.replace('.', '/') + Kind.CLASS.extension), Kind.CLASS); - } - - @Override - public ByteArrayOutputStream openOutputStream() { return this.baos; } - - byte[] toByteArray() { return baos.toByteArray(); } - } - - // File manager which spawns ClassFile instances by demand - static class FileManager extends ForwardingJavaFileManager { - - private Map classesMap = new HashMap(); - - protected FileManager(JavaFileManager fileManager) { - super(fileManager); - } - - @Override - public ClassFile getJavaFileForOutput(Location location, String name, JavaFileObject.Kind kind, FileObject source) { - ClassFile classFile = new ClassFile(name); - classesMap.put(name, classFile); - return classFile; - } - - public Map getByteCode() { - Map result = new HashMap(); - for (Entry entry : classesMap.entrySet()) { - result.put(entry.getKey(), entry.getValue().toByteArray()); - } - return result; - } - } - - // Wrapper for source file - static class SourceFile extends SimpleJavaFileObject { - - private CharSequence sourceCode; - - public SourceFile(String name, CharSequence sourceCode) { - super(URI.create("memo:///" + name.replace('.', '/') + Kind.SOURCE.extension), Kind.SOURCE); - this.sourceCode = sourceCode; - } - - @Override - public CharSequence getCharContent(boolean ignore) { - return this.sourceCode; - } - } - -} diff --git a/test/lib/jdk/test/lib/compiler/InMemoryJavaCompiler.java b/test/lib/jdk/test/lib/compiler/InMemoryJavaCompiler.java index 6016e48bf4e..4722ef3b67a 100644 --- a/test/lib/jdk/test/lib/compiler/InMemoryJavaCompiler.java +++ b/test/lib/jdk/test/lib/compiler/InMemoryJavaCompiler.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,11 +26,18 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; +import java.io.StringWriter; +import java.io.Writer; import java.net.URI; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; +import java.util.HashMap; +import java.util.LinkedList; import java.util.List; +import java.util.Map; +import java.util.Map.Entry; import javax.tools.FileObject; import javax.tools.ForwardingJavaFileManager; @@ -76,36 +83,6 @@ * */ public class InMemoryJavaCompiler { - private static class MemoryJavaFileObject extends SimpleJavaFileObject { - private final String className; - private final CharSequence sourceCode; - private final ByteArrayOutputStream byteCode; - - public MemoryJavaFileObject(String className, CharSequence sourceCode) { - super(URI.create("string:///" + className.replace('.','/') + Kind.SOURCE.extension), Kind.SOURCE); - this.className = className; - this.sourceCode = sourceCode; - this.byteCode = new ByteArrayOutputStream(); - } - - @Override - public CharSequence getCharContent(boolean ignoreEncodingErrors) { - return sourceCode; - } - - @Override - public OutputStream openOutputStream() throws IOException { - return byteCode; - } - - public byte[] getByteCode() { - return byteCode.toByteArray(); - } - - public String getClassName() { - return className; - } - } private static class FileManagerWrapper extends ForwardingJavaFileManager { private static final Location PATCH_LOCATION = new Location() { @@ -119,12 +96,13 @@ public boolean isOutputLocation() { return false; } }; - private final MemoryJavaFileObject file; + private final SourceFile srcFile; + private ClassFile clsFile; private final String moduleOverride; - public FileManagerWrapper(MemoryJavaFileObject file, String moduleOverride) { + public FileManagerWrapper(SourceFile file, String moduleOverride) { super(getCompiler().getStandardFileManager(null, null, null)); - this.file = file; + this.srcFile = file; this.moduleOverride = moduleOverride; } @@ -132,16 +110,17 @@ public FileManagerWrapper(MemoryJavaFileObject file, String moduleOverride) { public JavaFileObject getJavaFileForOutput(Location location, String className, Kind kind, FileObject sibling) throws IOException { - if (!file.getClassName().equals(className)) { - throw new IOException("Expected class with name " + file.getClassName() + + if (!srcFile.getClassName().equals(className)) { + throw new IOException("Expected class with name " + srcFile.getClassName() + ", but got " + className); } - return file; + clsFile = new ClassFile(className); + return clsFile; } @Override public Location getLocationForModule(Location location, JavaFileObject fo) throws IOException { - if (fo == file && moduleOverride != null) { + if (fo == srcFile && moduleOverride != null) { return PATCH_LOCATION; } return super.getLocationForModule(location, fo); @@ -160,6 +139,100 @@ public boolean hasLocation(Location location) { return super.hasLocation(location) || location == StandardLocation.PATCH_MODULE_PATH; } + public byte[] getByteCode() { + return clsFile.toByteArray(); + } + + } + + // Wraper for class file + static class ClassFile extends SimpleJavaFileObject { + + private final ByteArrayOutputStream baos = new ByteArrayOutputStream(); + + protected ClassFile(String name) { + super(URI.create("memo:///" + name.replace('.', '/') + Kind.CLASS.extension), Kind.CLASS); + } + + @Override + public ByteArrayOutputStream openOutputStream() { return this.baos; } + + byte[] toByteArray() { return baos.toByteArray(); } + } + + // File manager which spawns ClassFile instances by demand + static class FileManager extends ForwardingJavaFileManager { + + private Map classesMap = new HashMap(); + + protected FileManager(JavaFileManager fileManager) { + super(fileManager); + } + + @Override + public ClassFile getJavaFileForOutput(Location location, String name, JavaFileObject.Kind kind, FileObject source) { + ClassFile classFile = new ClassFile(name); + classesMap.put(name, classFile); + return classFile; + } + + public Map getByteCode() { + Map result = new HashMap(); + for (Entry entry : classesMap.entrySet()) { + result.put(entry.getKey(), entry.getValue().toByteArray()); + } + return result; + } + } + + // Wrapper for source file + static class SourceFile extends SimpleJavaFileObject { + + private CharSequence sourceCode; + private String className; + + public SourceFile(String name, CharSequence sourceCode) { + super(URI.create("memo:///" + name.replace('.', '/') + Kind.SOURCE.extension), Kind.SOURCE); + this.sourceCode = sourceCode; + this.className = name; + } + + @Override + public CharSequence getCharContent(boolean ignore) { + return this.sourceCode; + } + + public String getClassName() { + return this.className; + } + } + + /** + * Compiles the list of classes with the given map of name and source code. + * This overloaded version of compile is useful for batch compile use cases. + * + * @param inputMap The map containing the name of the class and corresponding source code + * @throws RuntimeException if the compilation did not succeed + * @return The resulting byte code from the compilation + */ + public static Map compile(Map inputMap) { + Collection sourceFiles = new LinkedList(); + for (Entry entry : inputMap.entrySet()) { + sourceFiles.add(new SourceFile(entry.getKey(), entry.getValue())); + } + + JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); + FileManager fileManager = new FileManager(compiler.getStandardFileManager(null, null, null)); + + Writer writer = new StringWriter(); + Boolean exitCode = compiler.getTask(writer, fileManager, null, null, null, sourceFiles).call(); + if (!exitCode) { + System.out.println("*********** javac output begin ***********"); + System.out.println(writer.toString()); + System.out.println("*********** javac output end ***********"); + throw new RuntimeException("Test bug: in memory compilation failed."); + } + return fileManager.getByteCode(); } /** @@ -173,7 +246,7 @@ public boolean hasLocation(Location location) { * @return The resulting byte code from the compilation */ public static byte[] compile(String className, CharSequence sourceCode, String... options) { - MemoryJavaFileObject file = new MemoryJavaFileObject(className, sourceCode); + SourceFile file = new SourceFile(className, sourceCode); List opts = new ArrayList<>(); String moduleOverride = null; for (String opt : options) { @@ -183,13 +256,13 @@ public static byte[] compile(String className, CharSequence sourceCode, String.. opts.add(opt); } } - try (JavaFileManager fileManager = new FileManagerWrapper(file, moduleOverride)) { + try (FileManagerWrapper fileManager = new FileManagerWrapper(file, moduleOverride)) { CompilationTask task = getCompiler().getTask(null, fileManager, null, opts, null, Arrays.asList(file)); if (!task.call()) { throw new RuntimeException("Could not compile " + className + " with source code " + sourceCode); } - return file.getByteCode(); + return fileManager.getByteCode(); } catch (IOException ioe) { throw new RuntimeException(ioe); } From 59fe06ba3a8ac0f43707f59d287b323d308d24b5 Mon Sep 17 00:00:00 2001 From: Alex Menkov Date: Wed, 30 Oct 2024 18:02:55 +0000 Subject: [PATCH 035/159] 8343103: Enable debug logging for vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/TestDescription.java Reviewed-by: cjplummer --- .../scenarios/sampling/SP05/sp05t003/TestDescription.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/TestDescription.java b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/TestDescription.java index ecb2cfc59e5..1c8ca451c8e 100644 --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/TestDescription.java +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/TestDescription.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,7 +50,7 @@ * @library /vmTestbase * /test/lib * @run main/othervm/native - * -agentlib:sp05t003=-waittime=5 + * -agentlib:sp05t003=-waittime=5,-verbose * nsk.jvmti.scenarios.sampling.SP05.sp05t003 */ From acb37af885c135a39eb3362440ecc45886550513 Mon Sep 17 00:00:00 2001 From: Matthew Donovan Date: Wed, 30 Oct 2024 18:51:02 +0000 Subject: [PATCH 036/159] 8341927: Replace hardcoded security providers with new test.provider.name system property Reviewed-by: mullan, ascarpino, rhalade --- doc/testing.html | 15 ++ doc/testing.md | 9 + .../crypto/provider/CICO/CICODESFuncTest.java | 5 +- .../crypto/provider/CICO/CICOSkipTest.java | 7 +- .../provider/CICO/PBEFunc/AESPBEWrapper.java | 7 +- .../CICO/PBEFunc/DefaultPBEWrapper.java | 7 +- .../provider/CICO/PBEFunc/PBKDF2Wrapper.java | 7 +- .../crypto/provider/Cipher/AEAD/Encrypt.java | 5 +- .../provider/Cipher/AEAD/GCMLargeDataKAT.java | 8 +- .../Cipher/AEAD/GCMParameterSpecTest.java | 8 +- .../provider/Cipher/AEAD/KeyWrapper.java | 4 +- .../provider/Cipher/AEAD/ReadWriteSkip.java | 4 +- .../provider/Cipher/AEAD/SameBuffer.java | 4 +- .../Cipher/AEAD/SealedObjectTest.java | 4 +- .../crypto/provider/Cipher/AEAD/WrongAAD.java | 4 +- .../sun/crypto/provider/Cipher/AES/CICO.java | 4 +- .../sun/crypto/provider/Cipher/AES/CTR.java | 5 +- .../crypto/provider/Cipher/AES/Padding.java | 5 +- .../provider/Cipher/AES/Test4511676.java | 8 +- .../provider/Cipher/AES/Test4512524.java | 8 +- .../provider/Cipher/AES/Test4512704.java | 8 +- .../provider/Cipher/AES/Test4513830.java | 8 +- .../provider/Cipher/AES/Test4517355.java | 8 +- .../provider/Cipher/AES/Test4626070.java | 8 +- .../provider/Cipher/AES/TestAESCipher.java | 4 +- .../Cipher/AES/TestAESCiphers/Dynamic.java | 6 +- .../TestAESWithProviderChange.java | 2 +- .../TestAESWithRemoveAddProvider.java | 4 +- .../Cipher/AES/TestAESCiphers/testAES.policy | 5 +- .../provider/Cipher/AES/TestCICOWithGCM.java | 11 +- .../Cipher/AES/TestCICOWithGCMAndAAD.java | 11 +- .../provider/Cipher/AES/TestCopySafe.java | 5 +- .../Cipher/AES/TestGCMKeyAndIvCheck.java | 5 +- .../Cipher/AES/TestISO10126Padding.java | 14 +- .../provider/Cipher/AES/TestKATForECB_IV.java | 5 +- .../provider/Cipher/AES/TestKATForECB_VK.java | 5 +- .../provider/Cipher/AES/TestKATForECB_VT.java | 5 +- .../provider/Cipher/AES/TestKATForGCM.java | 8 +- .../Cipher/AES/TestNoPaddingModes.java | 8 +- .../provider/Cipher/AES/TestNonexpanding.java | 5 +- .../provider/Cipher/AES/TestSameBuffer.java | 5 +- .../provider/Cipher/AES/TestShortBuffer.java | 4 +- .../provider/Cipher/CTR/CounterMode.java | 5 +- .../crypto/provider/Cipher/CTS/CTSMode.java | 13 +- .../provider/Cipher/DES/KeyWrapping.java | 5 +- .../provider/Cipher/KeyWrap/NISTWrapKAT.java | 20 +- .../KeyWrap/TestCipherKeyWrapperTest.java | 9 +- .../provider/Cipher/KeyWrap/TestGeneral.java | 8 +- .../Cipher/KeyWrap/TestKeySizeCheck.java | 5 +- .../provider/Cipher/KeyWrap/XMLEncKAT.java | 5 +- .../Cipher/PBE/DecryptWithoutParameters.java | 8 +- .../provider/Cipher/PBE/NegativeLength.java | 6 +- .../Cipher/PBE/PBEInvalidParamsTest.java | 5 +- .../Cipher/PBE/PBEKeyCleanupTest.java | 9 +- .../Cipher/PBE/PBEKeysAlgorithmNames.java | 5 +- .../Cipher/PBE/PBEParametersTest.java | 5 +- .../PBE/PBESameBuffer/PBESameBuffer.java | 4 +- .../provider/Cipher/PBE/PBESealedObject.java | 9 +- .../provider/Cipher/PBE/PKCS12Cipher.java | 5 +- .../provider/Cipher/PBE/PKCS12CipherKAT.java | 5 +- .../PBE/TestCipherKeyWrapperPBEKey.java | 5 +- .../Cipher/PBE/TestCipherPBECons.java | 5 +- .../crypto/provider/Cipher/RSA/TestOAEP.java | 7 +- .../provider/Cipher/RSA/TestOAEPPadding.java | 8 +- .../Cipher/RSA/TestOAEPParameterSpec.java | 5 +- .../Cipher/RSA/TestOAEPWithParams.java | 8 +- .../provider/Cipher/RSA/TestOAEP_KAT.java | 8 +- .../crypto/provider/Cipher/RSA/TestRSA.java | 3 +- .../crypto/provider/Cipher/TestCipher.java | 8 +- .../TextLength/SameBufferOverwrite.java | 8 +- .../Cipher/UTIL/StrongOrUnlimited.java | 5 +- .../Cipher/UTIL/SunJCEGetInstance.java | 7 +- .../provider/KeyAgreement/DHKeyFactory.java | 8 +- .../provider/KeyAgreement/DHKeyGenSpeed.java | 5 +- .../KeyAgreement/SameDHKeyStressTest.java | 11 +- .../KeyAgreement/SupportedDHKeys.java | 5 +- .../KeyAgreement/SupportedDHParamGens.java | 8 +- .../KeyAgreement/TestExponentSize.java | 5 +- .../KeyAgreement/UnsupportedDHKeys.java | 5 +- .../KeyFactory/PBKDF2HmacSHA1FactoryTest.java | 5 +- .../provider/KeyFactory/TestProviderLeak.java | 5 +- .../provider/KeyGenerator/Test4628062.java | 5 +- .../provider/KeyGenerator/Test6227536.java | 5 +- .../KeyGenerator/TestExplicitKeyLength.java | 5 +- .../provider/Mac/DigestCloneabilityTest.java | 8 +- .../provider/Mac/EmptyByteBufferTest.java | 5 +- .../sun/crypto/provider/Mac/HmacPBESHA1.java | 5 +- .../crypto/provider/Mac/HmacSaltLengths.java | 5 +- .../provider/Mac/LargeByteBufferTest.java | 5 +- .../com/sun/crypto/provider/Mac/MacClone.java | 8 +- .../com/sun/crypto/provider/Mac/MacKAT.java | 5 +- .../sun/crypto/provider/Mac/MacSameTest.java | 5 +- .../provider/Mac/NullByteBufferTest.java | 5 +- .../provider/NSASuiteB/TestAESOids.java | 5 +- .../provider/NSASuiteB/TestAESWrapOids.java | 5 +- .../provider/NSASuiteB/TestHmacSHAOids.java | 5 +- .../crypto/provider/TLS/TestKeyMaterial.java | 5 +- .../provider/TLS/TestLeadingZeroes.java | 7 +- .../crypto/provider/TLS/TestMasterSecret.java | 3 +- .../com/sun/crypto/provider/TLS/TestPRF.java | 5 +- .../sun/crypto/provider/TLS/TestPRF12.java | 5 +- .../crypto/provider/TLS/TestPremaster.java | 5 +- test/jdk/com/sun/jdi/ClassesByName2Test.java | 5 +- .../KeyAgreement/KeyAgreementTest.java | 4 +- .../security/KeyAgreement/KeySizeTest.java | 4 +- .../security/KeyAgreement/KeySpecTest.java | 4 +- .../KeyAgreement/MultiThreadTest.java | 4 +- .../security/KeyAgreement/NegativeTest.java | 4 +- .../KeyFactory/GenerateRSAPrivateCrtKey.java | 5 +- .../KeyFactoryGetKeySpecForInvalidSpec.java | 3 +- .../KeyPairGenerator/GenerateRSAKeyPair.java | 5 +- test/jdk/java/security/KeyRep/Serial.java | 8 +- test/jdk/java/security/KeyRep/Serial.policy | 1 + .../security/MessageDigest/ByteBuffers.java | 4 +- .../security/MessageDigest/TestCloneable.java | 14 +- .../security/SecureRandom/DefaultAlgo.java | 7 +- .../SecureRandom/DefaultProvider.java | 8 +- .../SecureRandom/GetInstanceTest.java | 19 +- .../Security/CaseInsensitiveAlgNames.java | 28 ++- .../java/security/Signature/ByteBuffers.java | 5 +- .../java/security/Signature/NONEwithRSA.java | 10 +- .../Signature/SignatureGetInstance.java | 7 +- .../security/Signature/TestCloneable.java | 34 +-- .../TestInitSignWithMyOwnRandom.java | 5 +- .../jdk/java/security/SignedObject/Chain.java | 15 +- test/jdk/java/security/SignedObject/Copy.java | 4 +- .../misc/GetInstanceNullsEmpties.java | 197 +++++++++--------- test/jdk/javax/crypto/Cipher/ByteBuffers.java | 5 +- .../Cipher/CipherInputStreamExceptions.java | 14 +- .../javax/crypto/Cipher/GetMaxAllowed.java | 5 +- .../javax/crypto/Cipher/TestCipherMode.java | 6 +- .../javax/crypto/Cipher/TestGetInstance.java | 26 ++- .../crypto/CipherSpi/DirectBBRemaining.java | 5 +- .../crypto/CryptoPermission/AllPermCheck.java | 4 +- .../CryptoPermission/LowercasePermCheck.java | 4 +- .../crypto/CryptoPermission/RSANoLimit.java | 4 +- .../EncryptedPrivateKeyInfo/GetAlgName.java | 8 +- .../EncryptedPrivateKeyInfo/GetKeySpec.java | 6 +- .../GetKeySpecException.java | 17 +- .../GetKeySpecException2.java | 5 +- .../GetKeySpecInvalidEncoding.java | 6 +- .../crypto/KeyGenerator/TestGetInstance.java | 16 +- .../crypto/KeyGenerator/TestKGParity.java | 8 +- test/jdk/javax/crypto/Mac/ByteBuffers.java | 4 +- .../jdk/javax/crypto/Mac/TestGetInstance.java | 13 +- .../SecretKeyFactory/SecKFTranslateTest.java | 9 +- .../SecretKeyFactory/SecKeyFacSunJCEPrf.java | 5 +- .../com/evilprovider/EvilHmacSHA1.java | 5 +- .../auth/login/Configuration/GetInstance.java | 22 +- .../GetInstanceSecurity.grantedPolicy | 1 + .../Configuration/GetInstanceSecurity.java | 15 +- .../Configuration/GetInstanceSecurity.policy | 2 +- test/jdk/sun/security/ec/ECDSAPrimitive.java | 3 +- .../security/ec/ECDSAPrvGreaterThanOrder.java | 12 +- test/jdk/sun/security/ec/InvalidCurve.java | 3 +- .../TestSHAwithECDSASignatureOids.java | 4 +- test/jdk/sun/security/ec/OidInstance.java | 8 +- .../security/ec/SignatureDigestTruncate.java | 11 +- test/jdk/sun/security/ec/SignatureKAT.java | 11 +- .../sun/security/ec/SignedObjectChain.java | 4 +- test/jdk/sun/security/ec/TestEC.java | 4 +- test/jdk/sun/security/ec/ed/EdCRLSign.java | 4 +- .../security/ec/ed/EdDSAKeyCompatibility.java | 4 +- test/jdk/sun/security/ec/ed/EdDSAKeySize.java | 4 +- .../sun/security/ec/ed/EdDSANegativeTest.java | 4 +- .../sun/security/ec/ed/EdDSAParamSpec.java | 4 +- .../sun/security/ec/ed/EdDSAReuseTest.java | 4 +- test/jdk/sun/security/ec/ed/EdDSATest.java | 4 +- test/jdk/sun/security/ec/ed/TestEdDSA.java | 14 +- .../jca/PreferredProviderNegativeTest.java | 4 +- .../mscapi/InteropWithSunRsaSign.java | 8 +- .../security/pkcs/pkcs8/TestLeadingZeros.java | 5 +- .../pkcs11/Cipher/EncryptionPadding.java | 7 +- .../pkcs11/Cipher/KeyWrap/NISTWrapKAT.java | 20 +- .../pkcs11/Cipher/KeyWrap/TestGeneral.java | 5 +- .../sun/security/pkcs11/Cipher/PBECipher.java | 3 +- .../pkcs11/Cipher/TestPKCS5PaddingError.java | 4 +- .../security/pkcs11/Cipher/TestRSACipher.java | 5 +- .../pkcs11/Cipher/TestRSACipherWrap.java | 5 +- .../pkcs11/Cipher/TestRawRSACipher.java | 5 +- .../pkcs11/Cipher/TestSymmCiphers.java | 2 +- .../pkcs11/Cipher/TestSymmCiphersNoPad.java | 2 +- .../security/pkcs11/KeyAgreement/TestDH.java | 8 +- .../pkcs11/KeyAgreement/TestInterop.java | 5 +- .../sun/security/pkcs11/KeyStore/Basic.java | 5 +- test/jdk/sun/security/pkcs11/Mac/PBAMac.java | 3 +- .../pkcs11/MessageDigest/ReinitDigest.java | 5 +- .../pkcs11/Signature/SigInteropPSS.java | 5 +- .../pkcs11/Signature/SigInteropPSS2.java | 5 +- .../pkcs11/Signature/TestDSAKeyLength.java | 3 +- test/jdk/sun/security/pkcs11/policy | 3 +- .../sun/security/pkcs11/rsa/GenKeyStore.java | 5 +- .../sun/security/pkcs11/rsa/rsakeys.ks.policy | 3 +- .../provider/DSA/SupportedDSAParamGen.java | 5 +- .../DSA/TestAlgParameterGenerator.java | 5 +- .../sun/security/provider/DSA/TestDSA.java | 4 +- .../sun/security/provider/DSA/TestDSA2.java | 5 +- .../provider/DSA/TestKeyPairGenerator.java | 8 +- .../provider/MessageDigest/DigestKAT.java | 4 +- .../provider/MessageDigest/Offsets.java | 5 +- .../provider/MessageDigest/TestSHAClone.java | 5 +- .../NSASuiteB/TestDSAGenParameterSpec.java | 5 +- .../provider/NSASuiteB/TestSHAOids.java | 5 +- .../TestSHAwithDSASignatureOids.java | 4 +- .../security/rsa/BrokenRSAPrivateCrtKey.java | 10 +- test/jdk/sun/security/rsa/GenKeyStore.java | 5 +- test/jdk/sun/security/rsa/KeySizeTest.java | 5 +- .../security/rsa/PrivateKeyEqualityTest.java | 5 +- test/jdk/sun/security/rsa/SignatureTest.java | 5 +- test/jdk/sun/security/rsa/SpecTest.java | 5 +- test/jdk/sun/security/rsa/TestCACerts.java | 5 +- test/jdk/sun/security/rsa/TestKeyFactory.java | 5 +- .../security/rsa/TestKeyPairGenerator.java | 5 +- .../rsa/TestKeyPairGeneratorExponent.java | 5 +- .../rsa/TestKeyPairGeneratorInit.java | 5 +- .../rsa/TestKeyPairGeneratorLength.java | 5 +- .../sun/security/rsa/TestRSAOidSupport.java | 8 +- test/jdk/sun/security/rsa/TestSigGen15.java | 5 +- test/jdk/sun/security/rsa/TestSignatures.java | 5 +- test/jdk/sun/security/rsa/WithoutNULL.java | 5 +- .../security/rsa/pss/PSSKeyCompatibility.java | 5 +- .../security/rsa/pss/PSSParametersTest.java | 5 +- .../security/rsa/pss/SerializedPSSKey.java | 5 +- .../sun/security/rsa/pss/SignatureTest2.java | 5 +- .../security/rsa/pss/SignatureTestPSS.java | 5 +- .../security/rsa/pss/TestPSSKeySupport.java | 8 +- .../sun/security/rsa/pss/TestSigGenPSS.java | 5 +- .../ssl/HandshakeHash/DigestBase.java | 6 +- .../sun/security/x509/X509CRLImpl/Verify.java | 12 +- .../security/x509/X509CertImpl/Verify.java | 14 +- 230 files changed, 1007 insertions(+), 700 deletions(-) diff --git a/doc/testing.html b/doc/testing.html index b74661b3924..6285fab1682 100644 --- a/doc/testing.html +++ b/doc/testing.html @@ -72,6 +72,9 @@

    Testing the JDK

  • Non-US locale
  • PKCS11 Tests
  • +
  • Testing with +alternative security providers
  • Client UI Tests
  • @@ -586,6 +589,18 @@

    PKCS11 Tests

    JTREG="JAVA_OPTIONS=-Djdk.test.lib.artifacts.nsslib-linux_aarch64=/path/to/NSS-libs"

    For more notes about the PKCS11 tests, please refer to test/jdk/sun/security/pkcs11/README.

    +

    Testing with +alternative security providers

    +

    Some security tests use a hardcoded provider for +KeyFactory, Cipher, +KeyPairGenerator, KeyGenerator, +AlgorithmParameterGenerator, KeyAgreement, +Mac, MessageDigest, SecureRandom, +Signature, AlgorithmParameters, +Configuration, Policy, or +SecretKeyFactory objects. Specify the +-Dtest.provider.name=NAME property to use a different +provider for the service(s).

    Client UI Tests

    System key shortcuts

    Some Client UI tests use key sequences which may be reserved by the diff --git a/doc/testing.md b/doc/testing.md index cdc9bbd2182..351690c5e60 100644 --- a/doc/testing.md +++ b/doc/testing.md @@ -603,6 +603,15 @@ $ make test TEST="jtreg:sun/security/pkcs11/Secmod/AddTrustedCert.java" \ For more notes about the PKCS11 tests, please refer to test/jdk/sun/security/pkcs11/README. +### Testing with alternative security providers + +Some security tests use a hardcoded provider for `KeyFactory`, `Cipher`, +`KeyPairGenerator`, `KeyGenerator`, `AlgorithmParameterGenerator`, +`KeyAgreement`, `Mac`, `MessageDigest`, `SecureRandom`, `Signature`, +`AlgorithmParameters`, `Configuration`, `Policy`, or `SecretKeyFactory` objects. +Specify the `-Dtest.provider.name=NAME` property to use a different provider for +the service(s). + ### Client UI Tests #### System key shortcuts diff --git a/test/jdk/com/sun/crypto/provider/CICO/CICODESFuncTest.java b/test/jdk/com/sun/crypto/provider/CICO/CICODESFuncTest.java index 3164294ecca..440914826bc 100644 --- a/test/jdk/com/sun/crypto/provider/CICO/CICODESFuncTest.java +++ b/test/jdk/com/sun/crypto/provider/CICO/CICODESFuncTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -66,7 +66,8 @@ public class CICODESFuncTest { private static final int IV_LENGTH = 8; public static void main(String[] args) throws Exception { - Provider provider = Security.getProvider("SunJCE"); + Provider provider = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); if (provider == null) { throw new RuntimeException("SunJCE provider does not exist."); } diff --git a/test/jdk/com/sun/crypto/provider/CICO/CICOSkipTest.java b/test/jdk/com/sun/crypto/provider/CICO/CICOSkipTest.java index 0641845d7f9..6ccf4c1eedf 100644 --- a/test/jdk/com/sun/crypto/provider/CICO/CICOSkipTest.java +++ b/test/jdk/com/sun/crypto/provider/CICO/CICOSkipTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -204,9 +204,10 @@ private void initCiphers(String algo, SecretKey key, AlgorithmParameterSpec aps) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException { - Provider provider = Security.getProvider("SunJCE"); + String providerName = System.getProperty("test.provider.name", "SunJCE"); + Provider provider = Security.getProvider(providerName); if (provider == null) { - throw new RuntimeException("SunJCE provider does not exist."); + throw new RuntimeException(providerName + " provider does not exist."); } Cipher ci1 = Cipher.getInstance(algo, provider); ci1.init(Cipher.ENCRYPT_MODE, key, aps); diff --git a/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/AESPBEWrapper.java b/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/AESPBEWrapper.java index e6e5c2faa01..3dd15d50058 100644 --- a/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/AESPBEWrapper.java +++ b/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/AESPBEWrapper.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -69,9 +69,10 @@ public AESPBEWrapper(PBEAlgorithm algo, String passwd) */ @Override protected Cipher initCipher(int mode) throws GeneralSecurityException { - Provider provider = Security.getProvider("SunJCE"); + String providerName = System.getProperty("test.provider.name", "SunJCE"); + Provider provider = Security.getProvider(providerName); if (provider == null) { - throw new RuntimeException("SunJCE provider does not exist."); + throw new RuntimeException(providerName + ": provider does not exist."); } // get Cipher instance Cipher ci = Cipher.getInstance(transformation, provider); diff --git a/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/DefaultPBEWrapper.java b/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/DefaultPBEWrapper.java index f68fd85146b..cde094e1f90 100644 --- a/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/DefaultPBEWrapper.java +++ b/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/DefaultPBEWrapper.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -58,9 +58,10 @@ public DefaultPBEWrapper(PBEAlgorithm algo, String passwd) { */ @Override protected Cipher initCipher(int mode) throws GeneralSecurityException { - Provider provider = Security.getProvider("SunJCE"); + String providerName = System.getProperty("test.provider.name", "SunJCE"); + Provider provider = Security.getProvider(providerName); if (provider == null) { - throw new RuntimeException("SunJCE provider does not exist."); + throw new RuntimeException(providerName + ": provider does not exist."); } SecretKey key = SecretKeyFactory.getInstance(baseAlgo) .generateSecret(new PBEKeySpec(password.toCharArray())); diff --git a/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/PBKDF2Wrapper.java b/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/PBKDF2Wrapper.java index fb2d0ac901f..ac7580990f0 100644 --- a/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/PBKDF2Wrapper.java +++ b/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/PBKDF2Wrapper.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -89,9 +89,10 @@ public PBKDF2Wrapper(PBEAlgorithm algo, String passwd) */ @Override protected Cipher initCipher(int mode) throws GeneralSecurityException { - Provider provider = Security.getProvider("SunJCE"); + String providerName = System.getProperty("test.provider.name", "SunJCE"); + Provider provider = Security.getProvider(providerName); if (provider == null) { - throw new RuntimeException("SunJCE provider does not exist."); + throw new RuntimeException(providerName + ": provider does not exist."); } // Generate secret key PBEKeySpec pbeKeySpec = new PBEKeySpec(password.toCharArray(), diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/Encrypt.java b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/Encrypt.java index 58267c2ffba..78b69c2ea95 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/Encrypt.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/Encrypt.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -122,7 +122,8 @@ public Encrypt(Provider provider, String algorithm, String mode, } public static void main(String[] args) throws Exception { - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); for (String alg : ALGORITHMS) { for (int keyStrength : KEY_STRENGTHS) { if (keyStrength > Cipher.getMaxAllowedKeyLength(alg)) { diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMLargeDataKAT.java b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMLargeDataKAT.java index 11efb2d0611..885b5998aa4 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMLargeDataKAT.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMLargeDataKAT.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -102,7 +102,8 @@ public class GCMLargeDataKAT { byte[] encrypt(int inLen) { try { - cipher = Cipher.getInstance("AES/GCM/NoPadding", "SunJCE"); + cipher = Cipher.getInstance("AES/GCM/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); cipher.init(Cipher.ENCRYPT_MODE, key, spec); return cipher.doFinal(plaintext, 0, inLen); } catch (Exception e) { @@ -125,7 +126,8 @@ boolean decrypt(byte[] data) { return false; } try { - cipher = Cipher.getInstance("AES/GCM/NoPadding", "SunJCE"); + cipher = Cipher.getInstance("AES/GCM/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); cipher.init(Cipher.DECRYPT_MODE, key, spec); result = cipher.doFinal(data); } catch (Exception e) { diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMParameterSpecTest.java b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMParameterSpecTest.java index 7250c4d7f0f..f65a8eed2b9 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMParameterSpecTest.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMParameterSpecTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -87,7 +87,8 @@ public GCMParameterSpecTest(int keyLength, int tagLength, int IVlength, AAD = Helper.generateBytes(AADLength); // init a secret key - KeyGenerator kg = KeyGenerator.getInstance("AES", "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance("AES", + System.getProperty("test.provider.name", "SunJCE")); kg.init(keyLength); key = kg.generateKey(); } @@ -211,7 +212,8 @@ private byte[] recoverCipherText(byte[] cipherText, GCMParameterSpec spec) private Cipher createCipher(int mode, GCMParameterSpec spec) throws Exception { - Cipher cipher = Cipher.getInstance(TRANSFORMATION, "SunJCE"); + Cipher cipher = Cipher.getInstance(TRANSFORMATION, + System.getProperty("test.provider.name", "SunJCE")); cipher.init(mode, key, spec); return cipher; } diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/KeyWrapper.java b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/KeyWrapper.java index 21f1deec45b..c1a0ae2dfd0 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/KeyWrapper.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/KeyWrapper.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,7 +37,7 @@ public class KeyWrapper { static final String AES = "AES"; static final String TRANSFORMATION = "AES/GCM/NoPadding"; - static final String PROVIDER = "SunJCE"; + static final String PROVIDER = System.getProperty("test.provider.name", "SunJCE"); static final int KEY_LENGTH = 128; public static void main(String argv[]) throws Exception { diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/ReadWriteSkip.java b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/ReadWriteSkip.java index f6bd3805ae4..fd7df41c91a 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/ReadWriteSkip.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/ReadWriteSkip.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,7 +50,7 @@ static enum BufferType { static final int BLOCK = 50; static final int SAVE = 45; static final int DISCARD = BLOCK - SAVE; - static final String PROVIDER = "SunJCE"; + static final String PROVIDER = System.getProperty("test.provider.name", "SunJCE"); static final String AES = "AES"; static final String GCM = "GCM"; static final String PADDING = "NoPadding"; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/SameBuffer.java b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/SameBuffer.java index 756fd624223..3e3fa3d77b1 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/SameBuffer.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/SameBuffer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,7 +41,7 @@ */ public class SameBuffer { - private static final String PROVIDER = "SunJCE"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunJCE"); private static final String AES = "AES"; private static final String GCM = "GCM"; private static final String PADDING = "NoPadding"; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/SealedObjectTest.java b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/SealedObjectTest.java index 6f5e8200e10..accf38f98b5 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/SealedObjectTest.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/SealedObjectTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,7 +37,7 @@ public class SealedObjectTest { private static final String AES = "AES"; private static final String TRANSFORMATION = "AES/GCM/NoPadding"; - private static final String PROVIDER = "SunJCE"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunJCE"); private static final int KEY_LENGTH = 128; public static void main(String[] args) throws Exception { diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/WrongAAD.java b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/WrongAAD.java index 157a8bb329d..6a35b3f2ce8 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/WrongAAD.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/WrongAAD.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,7 +44,7 @@ */ public class WrongAAD { - private static final String PROVIDER = "SunJCE"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunJCE"); private static final String TRANSFORMATION = "AES/GCM/NoPadding"; private static final int TEXT_SIZE = 800; private static final int KEY_SIZE = 128; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/CICO.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/CICO.java index 1bb9f0d061f..5d6da523f2a 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/CICO.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/CICO.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -52,7 +52,7 @@ public class CICO { "cFB24", "cFB32", "Cfb40", "CFB72", "OfB", "OfB20", "OfB48", "OfB56", "OFB64", "OFB112", "CFB112", "pCbC" }; private static final String[] PADDING = { "noPadding", "pkcs5padding" }; - private static final String PROVIDER = "SunJCE"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunJCE"); private static final int NREADS = 3; private static final int KEY_LENGTH = 128; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/CTR.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/CTR.java index d569965bca1..e610e98a27b 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/CTR.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/CTR.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,7 +50,8 @@ public class CTR { private static final String ALGORITHM = "AES"; - private static final String PROVIDER = "SunJCE"; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunJCE"); private static final String[] MODES = {"CTR","CFB24","OFB32","GCM"}; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/Padding.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/Padding.java index 9598e1743c2..a494d230381 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/Padding.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/Padding.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,7 +47,8 @@ public class Padding { private static final String ALGORITHM = "AES"; - private static final String PROVIDER = "SunJCE"; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunJCE"); private static final String[] MODES_PKCS5PAD = { "ECb", "CbC", "PCBC", "OFB", "OFB150", "cFB", "CFB7", "cFB8", "cFB16", "cFB24", "cFB32", diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4511676.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4511676.java index ef538f63f90..e8b8c3edf30 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4511676.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4511676.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,10 +41,12 @@ public class Test4511676 { public boolean execute() throws Exception { - Cipher ci = Cipher.getInstance(ALGO, "SunJCE"); + Cipher ci = Cipher.getInstance(ALGO, + System.getProperty("test.provider.name", "SunJCE")); // TEST FIX 4511676 - KeyGenerator kg = KeyGenerator.getInstance(ALGO, "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance(ALGO, + System.getProperty("test.provider.name", "SunJCE")); kg.init(KEYSIZE*8); SecretKey key = kg.generateKey(); try { diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4512524.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4512524.java index b743d6bcefd..c1428fdc033 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4512524.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4512524.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -45,10 +45,12 @@ public class Test4512524 { public void execute(String mode) throws Exception { String transformation = ALGO+"/"+mode+"/"+PADDING; - Cipher ci = Cipher.getInstance(transformation, "SunJCE"); + Cipher ci = Cipher.getInstance(transformation, + System.getProperty("test.provider.name", "SunJCE")); // TEST FIX 4512524 - KeyGenerator kg = KeyGenerator.getInstance(ALGO, "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance(ALGO, + System.getProperty("test.provider.name", "SunJCE")); kg.init(KEYSIZE*8); SecretKey key = kg.generateKey(); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4512704.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4512704.java index bf004314392..a33727075d7 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4512704.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4512704.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -45,9 +45,11 @@ public void execute(String mode) throws Exception { AlgorithmParameterSpec aps = null; String transformation = ALGO + "/" + mode + "/"+PADDING; - Cipher ci = Cipher.getInstance(transformation, "SunJCE"); + Cipher ci = Cipher.getInstance(transformation, + System.getProperty("test.provider.name", "SunJCE")); - KeyGenerator kg = KeyGenerator.getInstance(ALGO, "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance(ALGO, + System.getProperty("test.provider.name", "SunJCE")); kg.init(KEYSIZE*8); SecretKey key = kg.generateKey(); // TEST FIX 4512704 diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4513830.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4513830.java index 856c55a6fbe..80d58dc19c5 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4513830.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4513830.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -52,10 +52,12 @@ public boolean execute() throws Exception { byte[] plainText=new byte[125]; rdm.nextBytes(plainText); - Cipher ci = Cipher.getInstance(ALGO+"/"+MODE+"/"+PADDING, "SunJCE"); + Cipher ci = Cipher.getInstance(ALGO+"/"+MODE+"/"+PADDING, + System.getProperty("test.provider.name", "SunJCE")); // TEST FIX 4513830 - KeyGenerator kg = KeyGenerator.getInstance(ALGO, "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance(ALGO, + System.getProperty("test.provider.name", "SunJCE")); kg.init(KEYSIZE*8); SecretKey key = kg.generateKey(); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4517355.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4517355.java index ccab72bf69a..1eed3831f53 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4517355.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4517355.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -48,8 +48,10 @@ public class Test4517355 { public void execute(String mode, String padding) throws Exception { String transformation = ALGO + "/" + mode + "/" + padding; - Cipher ci = Cipher.getInstance(transformation, "SunJCE"); - KeyGenerator kg = KeyGenerator.getInstance(ALGO, "SunJCE"); + Cipher ci = Cipher.getInstance(transformation, + System.getProperty("test.provider.name", "SunJCE")); + KeyGenerator kg = KeyGenerator.getInstance(ALGO, + System.getProperty("test.provider.name", "SunJCE")); kg.init(KEYSIZE*8); SecretKey key = kg.generateKey(); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4626070.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4626070.java index 86409d3e4cd..e49ef86b384 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4626070.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4626070.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,8 +38,10 @@ public class Test4626070 { public void execute(String mode, String padding) throws Exception { String transformation = ALGO + "/" + mode + "/" + padding; - Cipher ci = Cipher.getInstance(transformation, "SunJCE"); - KeyGenerator kg = KeyGenerator.getInstance(ALGO, "SunJCE"); + Cipher ci = Cipher.getInstance(transformation, + System.getProperty("test.provider.name", "SunJCE")); + KeyGenerator kg = KeyGenerator.getInstance(ALGO, + System.getProperty("test.provider.name", "SunJCE")); kg.init(KEYSIZE*8); SecretKey key = kg.generateKey(); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCipher.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCipher.java index dd0d97101c1..9e2342c7be6 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCipher.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCipher.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -48,7 +48,7 @@ public class TestAESCipher { private static final String ALGORITHM = "AES"; - private static final String PROVIDER = "SunJCE"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunJCE"); private static final String[] MODES = { "ECb", "CbC", "CTR", "PCBC", "OFB", "OFB150", "cFB", "CFB7", "cFB8", "cFB16", "cFB24", "cFB32", "Cfb40", "cfB48", "cfB56", "cfB64", "cfB72", "cfB80", "cfB88", diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/Dynamic.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/Dynamic.java index 91d7426b7f1..65b34507835 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/Dynamic.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/Dynamic.java @@ -46,7 +46,7 @@ public class Dynamic { static final String[] PADDING = { "NoPadding", "PKCS5Padding", "ISO10126Padding" }; - static final String SUNJCE = "SunJCE"; + static final String PROVIDER = System.getProperty("test.provider.name", "SunJCE"); Cipher ci = null; byte[] iv = null; @@ -128,8 +128,8 @@ protected boolean runTest(String algo, String mo, String pad) new Random().nextBytes(plainText); String transformation = algo + "/" + mo + "/" + pad; - ci = Cipher.getInstance(transformation, SUNJCE); - KeyGenerator kg = KeyGenerator.getInstance(algo, SUNJCE); + ci = Cipher.getInstance(transformation, PROVIDER); + KeyGenerator kg = KeyGenerator.getInstance(algo, PROVIDER); if (keyStrength > Cipher.getMaxAllowedKeyLength(transformation)) { // skip if this key length is larger than what's // configured in the jce jurisdiction policy files diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithProviderChange.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithProviderChange.java index d29a0aa0904..bb9538c70a1 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithProviderChange.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithProviderChange.java @@ -33,7 +33,7 @@ public class TestAESWithProviderChange extends Dynamic { public static void main(String argv[]) throws Exception { - Security.removeProvider(SUNJCE); + Security.removeProvider(PROVIDER); Security.addProvider(new com.sun.crypto.provider.SunJCE()); new TestAESWithProviderChange().run(argv); } diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithRemoveAddProvider.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithRemoveAddProvider.java index 81761a7ea4b..677f9aa913a 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithRemoveAddProvider.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithRemoveAddProvider.java @@ -34,8 +34,8 @@ public class TestAESWithRemoveAddProvider extends Dynamic { public static void main(String argv[]) throws Exception { - Provider pJCE = Security.getProvider(SUNJCE); - Security.removeProvider(SUNJCE); + Provider pJCE = Security.getProvider(PROVIDER); + Security.removeProvider(PROVIDER); Security.addProvider(pJCE); new TestAESWithRemoveAddProvider().run(argv); } diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/testAES.policy b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/testAES.policy index 175e9cb86e5..5c6a06beb02 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/testAES.policy +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/testAES.policy @@ -1,6 +1,7 @@ grant codeBase "file:${test.classes}/*" { - permission java.security.SecurityPermission "removeProvider.SunJCE"; - permission java.security.SecurityPermission "insertProvider.SunJCE"; + permission java.security.SecurityPermission "removeProvider.*"; + permission java.security.SecurityPermission "insertProvider.*"; permission java.lang.RuntimePermission "accessClassInPackage.com.sun.crypto.provider"; + permission java.util.PropertyPermission "test.provider.name", "read"; }; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCICOWithGCM.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCICOWithGCM.java index c6c7a66c5e4..87d08b2c4a7 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCICOWithGCM.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCICOWithGCM.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,7 +43,8 @@ public class TestCICOWithGCM { public static void main(String[] args) throws Exception { //init Secret Key - KeyGenerator kg = KeyGenerator.getInstance("AES", "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance("AES", + System.getProperty("test.provider.name", "SunJCE")); kg.init(128); SecretKey key = kg.generateKey(); @@ -53,9 +54,11 @@ public static void main(String[] args) throws Exception { rdm.nextBytes(plainText); //init ciphers - Cipher encCipher = Cipher.getInstance("AES/GCM/NoPadding", "SunJCE"); + Cipher encCipher = Cipher.getInstance("AES/GCM/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); encCipher.init(Cipher.ENCRYPT_MODE, key); - Cipher decCipher = Cipher.getInstance("AES/GCM/NoPadding", "SunJCE"); + Cipher decCipher = Cipher.getInstance("AES/GCM/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); decCipher.init(Cipher.DECRYPT_MODE, key, encCipher.getParameters()); //init cipher streams diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCICOWithGCMAndAAD.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCICOWithGCMAndAAD.java index 80732762297..960dd66567a 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCICOWithGCMAndAAD.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCICOWithGCMAndAAD.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -39,7 +39,8 @@ public class TestCICOWithGCMAndAAD { public static void main(String[] args) throws Exception { //init Secret Key - KeyGenerator kg = KeyGenerator.getInstance("AES", "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance("AES", + System.getProperty("test.provider.name", "SunJCE")); kg.init(128); SecretKey key = kg.generateKey(); @@ -53,10 +54,12 @@ public static void main(String[] args) throws Exception { byte[] aad2 = aad.clone(); aad2[50]++; - Cipher encCipher = Cipher.getInstance("AES/GCM/NoPadding", "SunJCE"); + Cipher encCipher = Cipher.getInstance("AES/GCM/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); encCipher.init(Cipher.ENCRYPT_MODE, key); encCipher.updateAAD(aad); - Cipher decCipher = Cipher.getInstance("AES/GCM/NoPadding", "SunJCE"); + Cipher decCipher = Cipher.getInstance("AES/GCM/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); decCipher.init(Cipher.DECRYPT_MODE, key, encCipher.getParameters()); decCipher.updateAAD(aad); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCopySafe.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCopySafe.java index 697da6750ad..70a9dd5998f 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCopySafe.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCopySafe.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -57,7 +57,8 @@ public class TestCopySafe { public static void main(String[] argv) throws Exception { - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); AlgorithmParameterSpec params = null; boolean result = true; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestGCMKeyAndIvCheck.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestGCMKeyAndIvCheck.java index 0777508b36f..d94753e941e 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestGCMKeyAndIvCheck.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestGCMKeyAndIvCheck.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -68,7 +68,8 @@ private static void checkISE(Cipher c) throws Exception { } public void test() throws Exception { - Cipher c = Cipher.getInstance("AES/GCM/NoPadding", "SunJCE"); + Cipher c = Cipher.getInstance("AES/GCM/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); SecretKey key = new SecretKeySpec(new byte[16], "AES"); // First try parameter-less init. diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestISO10126Padding.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestISO10126Padding.java index 9b91e612c35..26b160eaae1 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestISO10126Padding.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestISO10126Padding.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -45,7 +45,8 @@ public class TestISO10126Padding { private TestISO10126Padding() throws Exception { // setup - KeyGenerator kg = KeyGenerator.getInstance(ALGO, "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance(ALGO, + System.getProperty("test.provider.name", "SunJCE")); kg.init(KEYSIZE*8); key = kg.generateKey(); } @@ -59,7 +60,8 @@ private void runTest(int dataLength) throws Exception { // TEST#1 -- // generate the cipher text using manually-supplied // XML Encryption padding - Cipher ci = Cipher.getInstance(TRANS + "/NoPadding", "SunJCE"); + Cipher ci = Cipher.getInstance(TRANS + "/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); ci.init(Cipher.ENCRYPT_MODE, key); byte[] paddedData = new byte[ci.getBlockSize()]; System.arraycopy(data, 0, paddedData, 0, data.length); @@ -68,7 +70,8 @@ private void runTest(int dataLength) throws Exception { byte[] cipherText = ci.doFinal(paddedData); // decrypt using ISO10126Padding - ci = Cipher.getInstance(TRANS + "/ISO10126Padding", "SunJCE"); + ci = Cipher.getInstance(TRANS + "/ISO10126Padding", + System.getProperty("test.provider.name", "SunJCE")); ci.init(Cipher.DECRYPT_MODE, key); byte[] recovered = ci.doFinal(cipherText); if (!Arrays.equals(data, recovered)) { @@ -76,7 +79,8 @@ private void runTest(int dataLength) throws Exception { } // TEST#2 -- // generate the cipher text using ISO10126Padding - ci = Cipher.getInstance(TRANS + "/ISO10126Padding", "SunJCE"); + ci = Cipher.getInstance(TRANS + "/ISO10126Padding", + System.getProperty("test.provider.name", "SunJCE")); ci.init(Cipher.ENCRYPT_MODE, key); cipherText = ci.doFinal(data); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_IV.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_IV.java index a9576e7f3eb..71f07d61b13 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_IV.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_IV.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -83,7 +83,8 @@ private static byte[] constructByteArray(String s) { public boolean execute() throws Exception { String transformation = ALGO+"/"+MODE+"/"+PADDING; - Cipher c = Cipher.getInstance(transformation, "SunJCE"); + Cipher c = Cipher.getInstance(transformation, + System.getProperty("test.provider.name", "SunJCE")); for (int i=0; i diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_VK.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_VK.java index 098232b8c4c..623f5f5d281 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_VK.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_VK.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -707,7 +707,8 @@ private static byte[] constructByteArray(String s) { public boolean execute() throws Exception { String transformation = ALGO+"/"+MODE+"/"+PADDING; - Cipher c = Cipher.getInstance(transformation, "SunJCE"); + Cipher c = Cipher.getInstance(transformation, + System.getProperty("test.provider.name", "SunJCE")); for (int i=0; i diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_VT.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_VT.java index b8f83bd7b05..6265ca10281 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_VT.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_VT.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -513,7 +513,8 @@ private static byte[] constructByteArray(String s) { public boolean execute() throws Exception { String transformation = ALGO+"/"+MODE+"/"+PADDING; - Cipher c = Cipher.getInstance(transformation, "SunJCE"); + Cipher c = Cipher.getInstance(transformation, + System.getProperty("test.provider.name", "SunJCE")); for (int i=0; i diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForGCM.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForGCM.java index bdcf465f854..70db7b166e8 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForGCM.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForGCM.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -278,7 +278,8 @@ public String toString() { }; void executeArray(TestVector tv) throws Exception { - Cipher c = Cipher.getInstance("AES/GCM/NoPadding", "SunJCE"); + Cipher c = Cipher.getInstance("AES/GCM/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); try { System.out.println("Test #" + tv.id + ": byte[]."); @@ -320,7 +321,8 @@ void executeArray(TestVector tv) throws Exception { } void executeByteBuffer(TestVector tv, boolean direct, int offset) throws Exception { - Cipher c = Cipher.getInstance("AES/GCM/NoPadding", "SunJCE"); + Cipher c = Cipher.getInstance("AES/GCM/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); ByteBuffer src; ByteBuffer ctdst; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestNoPaddingModes.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestNoPaddingModes.java index 9747f3bced2..a32f787a72a 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestNoPaddingModes.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestNoPaddingModes.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,7 +42,8 @@ public class TestNoPaddingModes { }; public static void main(String[] args) throws Exception { - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); String transformation; for (String mode : MODES) { for (String padding : PADDINGS) { @@ -50,7 +51,8 @@ public static void main(String[] args) throws Exception { System.out.println("Test using " + transformation); try { - Cipher c = Cipher.getInstance(transformation, "SunJCE"); + Cipher c = Cipher.getInstance(transformation, + System.getProperty("test.provider.name", "SunJCE")); throw new RuntimeException("=> Fail, no exception thrown"); } catch (NoSuchAlgorithmException | NoSuchPaddingException ex) { System.out.println("=> Expected ex: " + ex); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestNonexpanding.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestNonexpanding.java index 3ed865f5a98..140f24d51d1 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestNonexpanding.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestNonexpanding.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -45,7 +45,8 @@ public class TestNonexpanding { private static final String ALGORITHM = "AES"; - private static final String PROVIDER = "SunJCE"; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunJCE"); private static final String[] MODES = { "ECb", "CbC", "OFB", "OFB150", "cFB", "CFB7", "cFB8", "cFB16", "cFB24", "cFB32", "Cfb40", "cfB48", "cfB56", "cfB64", "cfB72", "cfB80", "cfB88", "cfB96", "cfb104", diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestSameBuffer.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestSameBuffer.java index e158bc54652..cc8c050396e 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestSameBuffer.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestSameBuffer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,7 +47,8 @@ public class TestSameBuffer { private static final String ALGORITHM = "AES"; - private static final String PROVIDER = "SunJCE"; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunJCE"); private static final String[] MODES = { "ECb", "CbC", "OFB", "CFB150", "cFB", "CFB7", " cFB8", "cFB16", "cFB24", "cFB32", "Cfb40", "cfB48", " cfB56", "cfB64", "cfB72", "cfB80", "cfB88", "cfB96", diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestShortBuffer.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestShortBuffer.java index 52d6c43bdb1..fe1f76c0a04 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestShortBuffer.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestShortBuffer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -71,7 +71,7 @@ private static void runTest() throws Exception { for (int i = 0; i < MODES.length; i++) { System.out.println("===== TESTING MODE " + MODES[i] + " ====="); Cipher ci = Cipher.getInstance(ALGO+"/"+MODES[i]+"/PKCS5Padding", - "SunJCE"); + System.getProperty("test.provider.name", "SunJCE")); TestShortBuffer test = null; int stored = 0; AlgorithmParameters params = null; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/CTR/CounterMode.java b/test/jdk/com/sun/crypto/provider/Cipher/CTR/CounterMode.java index 6d985312b6b..1073985c18c 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/CTR/CounterMode.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/CTR/CounterMode.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -162,7 +162,8 @@ public static void main(String[] args) throws Exception { continue; } System.out.println("Running test " + i + " (" + alg + ")"); - Cipher cipher = Cipher.getInstance(alg + "/CTR/NoPadding", "SunJCE"); + Cipher cipher = Cipher.getInstance(alg + "/CTR/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); SecretKeySpec key = new SecretKeySpec(KEYS[i], alg); IvParameterSpec iv = new IvParameterSpec(IVS[i]); byte[] plainText = PLAIN[i]; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/CTS/CTSMode.java b/test/jdk/com/sun/crypto/provider/Cipher/CTS/CTSMode.java index 6dba280899f..6d34fd3d50b 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/CTS/CTSMode.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/CTS/CTSMode.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -156,7 +156,7 @@ private static void test1() throws Exception { } System.out.println("Running test1_" + i + " (" + algo + ")"); Cipher cipher = Cipher.getInstance(algo+ "/CTS/NoPadding", - "SunJCE"); + System.getProperty("test.provider.name", "SunJCE")); byte[] plainText = PLAIN1[i]; byte[] cipherText = CIPHER1[i]; cipher.init(Cipher.ENCRYPT_MODE, KEY1, IV1); @@ -194,7 +194,8 @@ private static void test2() throws Exception { continue; } Cipher cipher = - Cipher.getInstance(algo+"/CTS/NoPadding", "SunJCE"); + Cipher.getInstance(algo+"/CTS/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); int blockSize = cipher.getBlockSize(); SecretKeySpec key = new SecretKeySpec(new byte[keySize], algo); // Make sure encryption works for inputs with valid length @@ -226,7 +227,8 @@ private static void test2() throws Exception { IvParameterSpec iv2 = new IvParameterSpec(IV2_SRC, 0, blockSize); cipher.init(Cipher.ENCRYPT_MODE, key, iv2); Cipher cipher2 = - Cipher.getInstance(algo+"/CBC/NoPadding", "SunJCE"); + Cipher.getInstance(algo+"/CBC/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); cipher2.init(Cipher.ENCRYPT_MODE, key, iv2); byte[] eout = cipher.doFinal(IV2_SRC, 0, blockSize); @@ -294,7 +296,8 @@ private static void test3() throws Exception { continue; } Cipher cipher = - Cipher.getInstance(algo+ "/CTS/NoPadding", "SunJCE"); + Cipher.getInstance(algo+ "/CTS/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); byte[] plainText = PLAIN1[i]; byte[] cipherText = CIPHER1[i]; byte[] enc = new byte[plainText.length]; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/DES/KeyWrapping.java b/test/jdk/com/sun/crypto/provider/Cipher/DES/KeyWrapping.java index c1447eb3e51..6939dd27974 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/DES/KeyWrapping.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/DES/KeyWrapping.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,7 +33,8 @@ public class KeyWrapping { public static void main(String[] args) throws Exception { - Cipher c1 = Cipher.getInstance("DES", "SunJCE"); + Cipher c1 = Cipher.getInstance("DES", + System.getProperty("test.provider.name", "SunJCE")); Cipher c2 = Cipher.getInstance("DES"); KeyGenerator keyGen = KeyGenerator.getInstance("DES"); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/NISTWrapKAT.java b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/NISTWrapKAT.java index 3da7c7072f0..a79f48196d1 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/NISTWrapKAT.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/NISTWrapKAT.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -259,9 +259,12 @@ public void testKeyWrap(String algo, String key, int keyLen, System.out.println("=> skip, exceeds max allowed size " + allowed); return; } - Cipher c1 = Cipher.getInstance(algo, "SunJCE"); - Cipher c2 = Cipher.getInstance(algo, "SunJCE"); - Cipher c3 = Cipher.getInstance(algo, "SunJCE"); + Cipher c1 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); + Cipher c2 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); + Cipher c3 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); byte[] keyVal = toBytes(key, keyLen << 1); byte[] dataVal = toBytes(data, dataLen << 1); @@ -318,9 +321,12 @@ public void testEnc(String algo, String key, int keyLen, String data, int dataLe System.out.println("=> skip, exceeds max allowed size " + allowed); return; } - Cipher c1 = Cipher.getInstance(algo, "SunJCE"); - Cipher c2 = Cipher.getInstance(algo, "SunJCE"); - Cipher c3 = Cipher.getInstance(algo, "SunJCE"); + Cipher c1 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); + Cipher c2 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); + Cipher c3 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); byte[] keyVal = toBytes(key, keyLen << 1); byte[] dataVal = toBytes(data, dataLen << 1); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestCipherKeyWrapperTest.java b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestCipherKeyWrapperTest.java index 6a3708bff9e..01659f56826 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestCipherKeyWrapperTest.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestCipherKeyWrapperTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -58,7 +58,8 @@ */ public class TestCipherKeyWrapperTest { - private static final String SUN_JCE = "SunJCE"; + private static final String PROVIDER_NAME = + System.getProperty("test.provider.name", "SunJCE"); // Blowfish Variable key length: 32 bits to 448 bits private static final int BLOWFISH_MIN_KEYSIZE = 32; private static final int BLOWFISH_MAX_KEYSIZE = 448; @@ -157,9 +158,9 @@ public static void main(String[] args) throws Exception { // PBE and public wrapper test. String[] publicPrivateAlgos = new String[] { "DiffieHellman", "DSA", "RSA" }; - Provider provider = Security.getProvider(SUN_JCE); + Provider provider = Security.getProvider(PROVIDER_NAME); if (provider == null) { - throw new RuntimeException("SUN_JCE provider not exist"); + throw new RuntimeException(PROVIDER_NAME + " provider not exist"); } test.wrapperPBEKeyTest(provider); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestGeneral.java b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestGeneral.java index bdc36b9a35e..66bc6d7f7fa 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestGeneral.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestGeneral.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -220,7 +220,8 @@ public static void main(String[] argv) throws Exception { SecretKey aes256 = new SecretKeySpec(DATA_32, "AES"); SecretKey any256 = new SecretKeySpec(DATA_32, "ANY"); PrivateKey priv = KeyPairGenerator.getInstance - ("RSA", "SunRsaSign").generateKeyPair().getPrivate(); + ("RSA", System.getProperty("test.provider.name", "SunRsaSign")) + .generateKeyPair().getPrivate(); String[] algos = { "AES/KW/PKCS5Padding", "AES/KW/NoPadding", "AES/KWP/NoPadding" @@ -228,7 +229,8 @@ public static void main(String[] argv) throws Exception { for (String a : algos) { System.out.println("Testing " + a); - Cipher c = Cipher.getInstance(a, "SunJCE"); + Cipher c = Cipher.getInstance(a, + System.getProperty("test.provider.name", "SunJCE")); int blkSize = c.getBlockSize(); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestKeySizeCheck.java b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestKeySizeCheck.java index 4732836d6d9..ea8ac397ebb 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestKeySizeCheck.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestKeySizeCheck.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -61,7 +61,8 @@ public static void test(String algo, int[] invalidKeySizes) throws Exception { System.out.println("Testing " + algo); - Cipher c = Cipher.getInstance(algo, "SunJCE"); + Cipher c = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); int[] modes = { Cipher.ENCRYPT_MODE, Cipher.WRAP_MODE }; for (int ks : invalidKeySizes) { diff --git a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/XMLEncKAT.java b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/XMLEncKAT.java index 90cfacf36fd..e9d9038ada9 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/XMLEncKAT.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/XMLEncKAT.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -111,7 +111,8 @@ public static void testKeyWrap(String cAlg, byte[] cKeyVal, String cKeyAlg, String[] base64Wrapped) throws Exception { System.out.println("Testing " + cAlg + " Cipher with " + 8*cKeyVal.length + "-bit key"); - Cipher c = Cipher.getInstance(cAlg, "SunJCE"); + Cipher c = Cipher.getInstance(cAlg, + System.getProperty("test.provider.name", "SunJCE")); SecretKey cKey = new SecretKeySpec(cKeyVal, cKeyAlg); c.init(Cipher.UNWRAP_MODE, cKey); Key[] key = new SecretKey[base64Wrapped.length]; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/DecryptWithoutParameters.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/DecryptWithoutParameters.java index 35cb5184441..f8af47d6e6d 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/DecryptWithoutParameters.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/DecryptWithoutParameters.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -113,7 +113,8 @@ public static void main(String argv[]) throws Exception { boolean status = true; for (String algo : PBES1ALGOS) { - Cipher cipher = Cipher.getInstance(algo, "SunJCE"); + Cipher cipher = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); SecretKey key = new SecretKeySpec(new byte[5], algo); status = status && test(cipher, key, null); } @@ -122,7 +123,8 @@ public static void main(String argv[]) throws Exception { int iterCount = 123456; PBEParameterSpec spec = new PBEParameterSpec(salt, iterCount); for (String algo : PBES2ALGOS) { - Cipher cipher = Cipher.getInstance(algo, "SunJCE"); + Cipher cipher = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); SecretKey key = new SecretKeySpec(new byte[5], algo); PBEKey key2 = new MyPBEKey(algo, new PBEKeySpec("phrase".toCharArray(), salt, iterCount)); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/NegativeLength.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/NegativeLength.java index 9c4cc3663c1..736e0a9fe64 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/NegativeLength.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/NegativeLength.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,7 +38,9 @@ public class NegativeLength { public static void main(String[] args) throws Exception { SecretKeyFactory skf = SecretKeyFactory.getInstance( - "PBKDF2WithHmacSHA1", "SunJCE"); + "PBKDF2WithHmacSHA1", + System.getProperty("test.provider.name", "SunJCE")); + // Create a valid PBEKeySpec PBEKeySpec pbeks = new PBEKeySpec( diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEInvalidParamsTest.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEInvalidParamsTest.java index bb327b24743..cc15ac6dbc7 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEInvalidParamsTest.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEInvalidParamsTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -67,7 +67,8 @@ public static void main(String[] args) throws Exception { System.out.println("=>testing " + algo); SecretKeyFactory skf = SecretKeyFactory.getInstance(algo); SecretKey key = skf.generateSecret(ks); - Cipher c = Cipher.getInstance(algo, "SunJCE"); + Cipher c = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); try { c.init(Cipher.ENCRYPT_MODE, key, INVALID_PARAMS); throw new Exception("Test Failed: expected IAPE is " + diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEKeyCleanupTest.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEKeyCleanupTest.java index 03da1d9c9a9..5bdc8f0fc3c 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEKeyCleanupTest.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEKeyCleanupTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -45,7 +45,8 @@ */ public class PBEKeyCleanupTest { - private final static String SunJCEProvider = "SunJCE"; + private final static String PROVIDER_NAME = + System.getProperty("test.provider.name", "SunJCE"); private static final String PASS_PHRASE = "some hidden string"; private static final int ITERATION_COUNT = 1000; @@ -60,7 +61,7 @@ private static void testPBESecret(String algorithm) throws Exception { char[] password = new char[] {'f', 'o', 'o'}; PBEKeySpec pbeKeySpec = new PBEKeySpec(password); SecretKeyFactory keyFac = - SecretKeyFactory.getInstance(algorithm, SunJCEProvider); + SecretKeyFactory.getInstance(algorithm, PROVIDER_NAME); testCleanupSecret(algorithm, keyFac.generateSecret(pbeKeySpec)); } @@ -72,7 +73,7 @@ private static void testPBKSecret(String algorithm) throws Exception { PBEKeySpec pbeKeySpec = new PBEKeySpec(PASS_PHRASE.toCharArray(), salt, ITERATION_COUNT, KEY_SIZE); SecretKeyFactory keyFac = - SecretKeyFactory.getInstance(algorithm, SunJCEProvider); + SecretKeyFactory.getInstance(algorithm, PROVIDER_NAME); testCleanupSecret(algorithm, keyFac.generateSecret(pbeKeySpec)); } diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEKeysAlgorithmNames.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEKeysAlgorithmNames.java index 9e2debc40f1..2a5a83e45b9 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEKeysAlgorithmNames.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEKeysAlgorithmNames.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -59,7 +59,8 @@ public static void main(String[] argv) throws Exception { for (String s : algs) { System.out.println("Testing " + s); - SecretKeyFactory skf = SecretKeyFactory.getInstance(s, "SunJCE"); + SecretKeyFactory skf = SecretKeyFactory.getInstance(s, + System.getProperty("test.provider.name", "SunJCE")); System.out.println(" Checking skf.getAlgorithm()"); if (!skf.getAlgorithm().equalsIgnoreCase(s)) { diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEParametersTest.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEParametersTest.java index 757a7663d27..f380ad58111 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEParametersTest.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEParametersTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -61,7 +61,8 @@ public static void main(String[] args) throws Exception { String algo = PBE_ALGOS[i]; SecretKeyFactory skf = SecretKeyFactory.getInstance(algo); SecretKey key = skf.generateSecret(ks); - Cipher c = Cipher.getInstance(algo, "SunJCE"); + Cipher c = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); c.init(Cipher.ENCRYPT_MODE, key); c.doFinal(new byte[10]); // force the generation of parameters AlgorithmParameters params = c.getParameters(); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBESameBuffer/PBESameBuffer.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBESameBuffer/PBESameBuffer.java index 4fe20f8cbac..cba73f325c6 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBESameBuffer/PBESameBuffer.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBESameBuffer/PBESameBuffer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -81,7 +81,7 @@ public static void main(String[] args) { public boolean test(String[] args, PrintStream out) { boolean result = true; - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); for (int loop : OFFSETS) { OUTPUT_OFFSET = loop; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBESealedObject.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBESealedObject.java index f7b80ea8ecc..fdf06edda1b 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBESealedObject.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBESealedObject.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -80,9 +80,12 @@ public class PBESealedObject { "PBEWithHmacSHA512/256AndAES_256", }; + private static final String PROVIDER_NAME = + System.getProperty("test.provider.name", "SunJCE"); + public static void main(String[] args) { PBESealedObject test = new PBESealedObject(); - Provider sunjce = Security.getProvider("SunJCE"); + Provider sunjce = Security.getProvider(PROVIDER_NAME); if (!test.runAll(sunjce, System.out)) { throw new RuntimeException("One or more tests have failed...."); @@ -163,7 +166,7 @@ public boolean runTest(Provider p, String algo, PrintStream out) return false; } - unsealedKey = (SecretKey) so.getObject(key, "SunJCE"); + unsealedKey = (SecretKey) so.getObject(key, PROVIDER_NAME); return Arrays.equals(unsealedKey.getEncoded(), key.getEncoded()); } catch (InvalidKeyException ex) { if (keyAlgo.endsWith("TRIPLEDES") || keyAlgo.endsWith("AES_256")) { diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PKCS12Cipher.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PKCS12Cipher.java index 9f80b0ae152..d19da00b638 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PKCS12Cipher.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PKCS12Cipher.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -84,7 +84,8 @@ public static void main(String[] argv) throws Exception { new SecureRandom().nextBytes(input); char[] PASSWD = { 'p','a','s','s','w','o','r','d' }; long start = System.currentTimeMillis(); - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + p.getName() + "..."); runTest("PBEWithSHA1AndDESede", input, PASSWD, p); runTest("PBEWithSHA1AndRC2_40", input, PASSWD, p); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PKCS12CipherKAT.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PKCS12CipherKAT.java index 7943e8d228f..a5911a91ebf 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PKCS12CipherKAT.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PKCS12CipherKAT.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -179,7 +179,8 @@ private static Test t(String alg, String plaintext, char[] password, static void runTests(Test[] tests) throws Exception { long start = System.currentTimeMillis(); - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + p.getName() + "..."); Cipher.getInstance("PBEWithSHA1AndRC2_40", p); Cipher.getInstance("PBEWithSHA1AndDESede", p); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/TestCipherKeyWrapperPBEKey.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/TestCipherKeyWrapperPBEKey.java index 2f1419a9303..f9e6ca78df0 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/TestCipherKeyWrapperPBEKey.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/TestCipherKeyWrapperPBEKey.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -83,7 +83,8 @@ public class TestCipherKeyWrapperPBEKey { public static void main(String[] args) { TestCipherKeyWrapperPBEKey test = new TestCipherKeyWrapperPBEKey(); - Provider sunjce = Security.getProvider("SunJCE"); + Provider sunjce = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); if (!test.runAll(sunjce, System.out)) { throw new RuntimeException("One or more tests have failed...."); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/TestCipherPBECons.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/TestCipherPBECons.java index e3167068029..788f27bcb47 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/TestCipherPBECons.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/TestCipherPBECons.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,7 +47,8 @@ public class TestCipherPBECons { public static void main(String[] args) { TestCipherPBECons test = new TestCipherPBECons(); - Provider sunjce = Security.getProvider("SunJCE"); + Provider sunjce = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); if (!test.runAll(sunjce, System.out)) { throw new RuntimeException("One or more tests have failed...."); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEP.java b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEP.java index 28d22e22f75..0775336ca26 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEP.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEP.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,9 +47,10 @@ public class TestOAEP { public static void main(String[] args) throws Exception { long start = System.currentTimeMillis(); - cp = Security.getProvider("SunJCE"); + cp = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + cp.getName() + "..."); - Provider kfp = Security.getProvider("SunRsaSign"); + Provider kfp = Security.getProvider( + System.getProperty("test.provider.name", "SunRsaSign")); KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", kfp); kpg.initialize(768); KeyPair kp = kpg.generateKeyPair(); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPPadding.java b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPPadding.java index fe1ca35fcc4..08d317d1400 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPPadding.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPPadding.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -52,9 +52,11 @@ public class TestOAEPPadding { static boolean failed = false; public static void main(String args[]) throws Exception { - cp = Security.getProvider("SunJCE"); + cp = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + cp.getName() + "..."); - Provider kfp = Security.getProvider("SunRsaSign"); + Provider kfp = Security.getProvider( + System.getProperty("test.providername", "SunRsaSign")); KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", kfp); kpg.initialize(2048); KeyPair kp = kpg.generateKeyPair(); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPParameterSpec.java b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPParameterSpec.java index 9f17da2a711..8578930dbc1 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPParameterSpec.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPParameterSpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,7 +44,8 @@ private static boolean runTest(String mdName, MGF1ParameterSpec mgfSpec, byte[] p) throws Exception { OAEPParameterSpec spec = new OAEPParameterSpec(mdName, "MGF1", mgfSpec, new PSource.PSpecified(p)); - cp = Security.getProvider("SunJCE"); + cp = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + cp.getName() + "..."); AlgorithmParameters ap = AlgorithmParameters.getInstance("OAEP", cp); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPWithParams.java b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPWithParams.java index 308171d766e..85a8a70ea83 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPWithParams.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPWithParams.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -54,9 +54,11 @@ public class TestOAEPWithParams { }; public static void main(String[] args) throws Exception { long start = System.currentTimeMillis(); - cp = Security.getProvider("SunJCE"); + cp = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + cp.getName() + "..."); - Provider kfp = Security.getProvider("SunRsaSign"); + Provider kfp = Security.getProvider( + System.getProperty("test.provider.name", "SunRsaSign")); KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", kfp); kpg.initialize(768); KeyPair kp = kpg.generateKeyPair(); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEP_KAT.java b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEP_KAT.java index 6d43ce1a715..3cbbfc3ba3f 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEP_KAT.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEP_KAT.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -57,8 +57,10 @@ public class TestOAEP_KAT { public static void main(String[] args) throws Exception { long start = System.currentTimeMillis(); - Provider provider = Security.getProvider("SunJCE"); - Provider kfProvider = Security.getProvider("SunRsaSign"); + Provider provider = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); + Provider kfProvider = Security.getProvider( + System.getProperty("test.provider.name", "SunRsaSign")); System.out.println("Testing provider " + provider.getName() + "..."); Cipher c = Cipher.getInstance("RSA/ECB/OAEPwithSHA1andMGF1Padding", provider); KeyFactory kf = KeyFactory.getInstance("RSA", kfProvider); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestRSA.java b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestRSA.java index 1e4c6ed10b1..576fc5fcd60 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestRSA.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestRSA.java @@ -168,7 +168,8 @@ public static void testKat(String alg, int mode, Key key, String in, String out, public static void main(String[] args) throws Exception { long start = System.currentTimeMillis(); - p = Security.getProvider("SunJCE"); + p = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + p.getName() + "..."); KeyFactory kf; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/TestCipher.java b/test/jdk/com/sun/crypto/provider/Cipher/TestCipher.java index b5e50c842a0..dd3568f2e19 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/TestCipher.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/TestCipher.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,7 +44,7 @@ */ public abstract class TestCipher { - private final String SUNJCE = "SunJCE"; + private final String PROVIDER_NAME = System.getProperty("test.provider.name", "SunJCE"); private final String ALGORITHM; private final String[] MODES; private final String[] PADDINGS; @@ -138,8 +138,8 @@ private void runTest(String mo, String pad, int keySize) out.println("Testing: " + TRANSFORMATION); // Initialization - Cipher ci = Cipher.getInstance(TRANSFORMATION, SUNJCE); - KeyGenerator kg = KeyGenerator.getInstance(ALGORITHM, SUNJCE); + Cipher ci = Cipher.getInstance(TRANSFORMATION, PROVIDER_NAME); + KeyGenerator kg = KeyGenerator.getInstance(ALGORITHM, PROVIDER_NAME); if (keySize != 0) { kg.init(keySize); } diff --git a/test/jdk/com/sun/crypto/provider/Cipher/TextLength/SameBufferOverwrite.java b/test/jdk/com/sun/crypto/provider/Cipher/TextLength/SameBufferOverwrite.java index d110c05a339..22da35e7e6b 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/TextLength/SameBufferOverwrite.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/TextLength/SameBufferOverwrite.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,9 +44,11 @@ public class SameBufferOverwrite { SameBufferOverwrite(String algo, String transformation) throws Exception { - KeyGenerator kg = KeyGenerator.getInstance(algo, "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); skey = kg.generateKey(); - c = Cipher.getInstance(transformation, "SunJCE"); + c = Cipher.getInstance(transformation, + System.getProperty("test.provider.name", "SunJCE")); } /* diff --git a/test/jdk/com/sun/crypto/provider/Cipher/UTIL/StrongOrUnlimited.java b/test/jdk/com/sun/crypto/provider/Cipher/UTIL/StrongOrUnlimited.java index 70908a23746..5c806df25bd 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/UTIL/StrongOrUnlimited.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/UTIL/StrongOrUnlimited.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,7 +38,8 @@ public static void main(String[] args) throws Exception { // decide if the installed jurisdiction policy file is the // unlimited version boolean isUnlimited = true; - Cipher c = Cipher.getInstance("AES", "SunJCE"); + Cipher c = Cipher.getInstance("AES", + System.getProperty("test.provider.name", "SunJCE")); try { c.init(Cipher.ENCRYPT_MODE, diff --git a/test/jdk/com/sun/crypto/provider/Cipher/UTIL/SunJCEGetInstance.java b/test/jdk/com/sun/crypto/provider/Cipher/UTIL/SunJCEGetInstance.java index d9bf59b63f0..6ba7f9a0d69 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/UTIL/SunJCEGetInstance.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/UTIL/SunJCEGetInstance.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -40,9 +40,10 @@ public static void main(String[] args) throws Exception { Cipher jce; try{ + String providerName = System.getProperty("test.provider.name", "SunJCE"); // Remove SunJCE from Provider list - Provider prov = Security.getProvider("SunJCE"); - Security.removeProvider("SunJCE"); + Provider prov = Security.getProvider(providerName); + Security.removeProvider(providerName); // Create our own instance of SunJCE provider. Purposefully not // using SunJCE.getInstance() so we can have our own instance // for the test. diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyFactory.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyFactory.java index e12f3871ec2..753e7e1e197 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyFactory.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyFactory.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -62,7 +62,8 @@ private void run() throws Exception { dhSkipParamSpec = new DHParameterSpec(skip1024Modulus, skip1024Base); - KeyPairGenerator kpgen = KeyPairGenerator.getInstance("DH", "SunJCE"); + KeyPairGenerator kpgen = KeyPairGenerator.getInstance("DH", + System.getProperty("test.provider.name", "SunJCE")); kpgen.initialize(dhSkipParamSpec); KeyPair kp = kpgen.generateKeyPair(); @@ -72,7 +73,8 @@ private void run() throws Exception { // get the private key encoding byte[] privKeyEnc = kp.getPrivate().getEncoded(); - KeyFactory kfac = KeyFactory.getInstance("DH", "SunJCE"); + KeyFactory kfac = KeyFactory.getInstance("DH", + System.getProperty("test.provider.name", "SunJCE")); X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(pubKeyEnc); PublicKey pubKey = kfac.generatePublic(x509KeySpec); diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyGenSpeed.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyGenSpeed.java index b24f0a66fb9..c74161e20e3 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyGenSpeed.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyGenSpeed.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -87,7 +87,8 @@ public void run() throws Exception { // generate keyPairs using parameters KeyPairGenerator keyGen = - KeyPairGenerator.getInstance("DH", "SunJCE"); + KeyPairGenerator.getInstance("DH", + System.getProperty("test.provider.name", "SunJCE")); start = System.currentTimeMillis(); keyGen.initialize(spec); KeyPair keys = keyGen.generateKeyPair(); diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/SameDHKeyStressTest.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/SameDHKeyStressTest.java index 910104b98c5..9b7eec95d6d 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/SameDHKeyStressTest.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/SameDHKeyStressTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -78,7 +78,8 @@ public static boolean runTest(String algo, int numParties, String secretAlgo) { Key[] keyArchives = new Key[numParties]; try { // generate AlogirhtmParameterSpec - AlgorithmParameterGenerator apg = AlgorithmParameterGenerator.getInstance("DH","SunJCE"); + AlgorithmParameterGenerator apg = AlgorithmParameterGenerator.getInstance("DH", + System.getProperty("test.provider.name", "SunJCE")); AlgorithmParameterSpec aps = new DHGenParameterSpec(512, 64); apg.init(aps); DHParameterSpec spec = apg.generateParameters(). @@ -139,8 +140,10 @@ class KAParticipant { public KAParticipant(String pName, String algo) throws NoSuchAlgorithmException, NoSuchProviderException { name = pName; algorithm = algo; - keyGen = KeyPairGenerator.getInstance(algo,"SunJCE"); - ka = KeyAgreement.getInstance(algo,"SunJCE"); + keyGen = KeyPairGenerator.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); + ka = KeyAgreement.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); } public void initialize(AlgorithmParameterSpec spec) throws InvalidAlgorithmParameterException, InvalidKeyException { diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHKeys.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHKeys.java index 1faaa6783b4..71f383079e0 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHKeys.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHKeys.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -55,7 +55,8 @@ private enum SupportedKeySize { public static void main(String[] args) throws Exception { for (SupportedKeySize keySize : SupportedKeySize.values()) { System.out.println("Checking " + keySize.primeSize + " ..."); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("DH", "SunJCE"); + KeyPairGenerator kpg = KeyPairGenerator.getInstance("DH", + System.getProperty("test.provider.name", "SunJCE")); kpg.initialize(keySize.primeSize); KeyPair kp = kpg.generateKeyPair(); checkKeyPair(kp, keySize.primeSize); diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHParamGens.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHParamGens.java index 27f010dd141..96a5754cfa6 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHParamGens.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHParamGens.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -49,12 +49,14 @@ public static void main(String[] args) throws Exception { System.out.println("Checking " + primeSize + " ..."); AlgorithmParameterGenerator apg = - AlgorithmParameterGenerator.getInstance("DH", "SunJCE"); + AlgorithmParameterGenerator.getInstance("DH", + System.getProperty("test.provider.name", "SunJCE")); apg.init(primeSize); AlgorithmParameters ap = apg.generateParameters(); DHParameterSpec spec = ap.getParameterSpec(DHParameterSpec.class); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("DH", "SunJCE"); + KeyPairGenerator kpg = KeyPairGenerator.getInstance("DH", + System.getProperty("test.provider.name", "SunJCE")); kpg.initialize(spec); KeyPair kp = kpg.generateKeyPair(); checkKeyPair(kp, primeSize); diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/TestExponentSize.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/TestExponentSize.java index 2367c361d57..ade1d1fb6e9 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/TestExponentSize.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/TestExponentSize.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -81,7 +81,8 @@ BigInteger getBigIntValue() { public static void main(String[] args) throws Exception { KeyPair kp; - KeyPairGenerator kpg = KeyPairGenerator.getInstance("DH", "SunJCE"); + KeyPairGenerator kpg = KeyPairGenerator.getInstance("DH", + System.getProperty("test.provider.name", "SunJCE")); // Sun's default uses a default psize of 3072 and // lsize of (pSize / 2) but at least 384 bits diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/UnsupportedDHKeys.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/UnsupportedDHKeys.java index d2ef5fab807..dff10c3d21a 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/UnsupportedDHKeys.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/UnsupportedDHKeys.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -61,7 +61,8 @@ public static void main(String[] args) throws Exception { try { System.out.println("Checking " + keySize.primeSize + " ..."); KeyPairGenerator kpg = - KeyPairGenerator.getInstance("DH", "SunJCE"); + KeyPairGenerator.getInstance("DH", + System.getProperty("test.provider.name", "SunJCE")); kpg.initialize(keySize.primeSize); throw new Exception("Should not support " + keySize.primeSize); diff --git a/test/jdk/com/sun/crypto/provider/KeyFactory/PBKDF2HmacSHA1FactoryTest.java b/test/jdk/com/sun/crypto/provider/KeyFactory/PBKDF2HmacSHA1FactoryTest.java index 1f2fa128db8..e5c8bb63aa7 100644 --- a/test/jdk/com/sun/crypto/provider/KeyFactory/PBKDF2HmacSHA1FactoryTest.java +++ b/test/jdk/com/sun/crypto/provider/KeyFactory/PBKDF2HmacSHA1FactoryTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -69,7 +69,8 @@ public class PBKDF2HmacSHA1FactoryTest { }; private static void test() throws Exception { - SecretKeyFactory skf = SecretKeyFactory.getInstance(ALGO, "SunJCE"); + SecretKeyFactory skf = SecretKeyFactory.getInstance(ALGO, + System.getProperty("test.provider.name", "SunJCE")); for (int i = 0; i < TEST_VECTORS.length; i++) { System.out.println("=>Testing vector#" + (i+1)); diff --git a/test/jdk/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java b/test/jdk/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java index 650e743baa9..29707bae52c 100644 --- a/test/jdk/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java +++ b/test/jdk/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -106,7 +106,8 @@ private static void dumpMemoryStats(String s) throws Exception { public static void main(String [] args) throws Exception { // Prepare the test final SecretKeyFactory skf = - SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1", "SunJCE"); + SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1", + System.getProperty("test.provider.name", "SunJCE")); final PBEKeySpec pbeKS = new PBEKeySpec( "passPhrase".toCharArray(), new byte [] { 0 }, 5, 512); diff --git a/test/jdk/com/sun/crypto/provider/KeyGenerator/Test4628062.java b/test/jdk/com/sun/crypto/provider/KeyGenerator/Test4628062.java index 04ca4944aff..f8502ce2bf1 100644 --- a/test/jdk/com/sun/crypto/provider/KeyGenerator/Test4628062.java +++ b/test/jdk/com/sun/crypto/provider/KeyGenerator/Test4628062.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,7 +44,8 @@ public class Test4628062 { private static final int[] HMACSHA512_256_SIZES = { 32 }; public boolean execute(String algo, int[] keySizes) throws Exception { - KeyGenerator kg = KeyGenerator.getInstance(algo, "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); // TEST FIX 4628062 Key keyWithDefaultSize = kg.generateKey(); diff --git a/test/jdk/com/sun/crypto/provider/KeyGenerator/Test6227536.java b/test/jdk/com/sun/crypto/provider/KeyGenerator/Test6227536.java index 43de6ead59a..db8f78af835 100644 --- a/test/jdk/com/sun/crypto/provider/KeyGenerator/Test6227536.java +++ b/test/jdk/com/sun/crypto/provider/KeyGenerator/Test6227536.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,7 +38,8 @@ public class Test6227536 { String[] keyGensToTest = new String[]{"HmacSHA1", "HmacMD5"}; public boolean execute(String algo) throws Exception { - KeyGenerator kg = KeyGenerator.getInstance(algo, "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); Utils.runAndCheckException(() -> kg.init(0), IllegalArgumentException.class); diff --git a/test/jdk/com/sun/crypto/provider/KeyGenerator/TestExplicitKeyLength.java b/test/jdk/com/sun/crypto/provider/KeyGenerator/TestExplicitKeyLength.java index fd53497a4b4..6a0c2419fcc 100644 --- a/test/jdk/com/sun/crypto/provider/KeyGenerator/TestExplicitKeyLength.java +++ b/test/jdk/com/sun/crypto/provider/KeyGenerator/TestExplicitKeyLength.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,7 +41,8 @@ public class TestExplicitKeyLength { { 64, 80 }; // in bits public static void runTest(String algo, int keysize) throws Exception { - KeyGenerator kg = KeyGenerator.getInstance(algo, "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); kg.init(keysize); Key generatedKey = kg.generateKey(); int actualSizeInBits = generatedKey.getEncoded().length*8; diff --git a/test/jdk/com/sun/crypto/provider/Mac/DigestCloneabilityTest.java b/test/jdk/com/sun/crypto/provider/Mac/DigestCloneabilityTest.java index 2c54237fac5..5fac9ffc72d 100644 --- a/test/jdk/com/sun/crypto/provider/Mac/DigestCloneabilityTest.java +++ b/test/jdk/com/sun/crypto/provider/Mac/DigestCloneabilityTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -40,7 +40,8 @@ public static void main(String[] args) throws Exception { // make SampleProvider the most preferred, so its digest impl is picked int status = Security.insertProviderAt(p, 1); try { - Mac mac = Mac.getInstance(ALGO, "SunJCE"); + Mac mac = Mac.getInstance(ALGO, + System.getProperty("test.provider.name", "SunJCE")); // do a complete mac generation and check if the supplied // digest is used mac.init(new SecretKeySpec(new byte[512>>3], ALGO)); @@ -72,7 +73,8 @@ public static class CloneableDigest extends MessageDigestSpi public CloneableDigest() throws NoSuchAlgorithmException { try { - md = MessageDigest.getInstance("SHA-512", "SUN"); + md = MessageDigest.getInstance("SHA-512", + System.getProperty("test.provider.name", "SUN")); } catch (NoSuchProviderException nspe) { // should never happen } diff --git a/test/jdk/com/sun/crypto/provider/Mac/EmptyByteBufferTest.java b/test/jdk/com/sun/crypto/provider/Mac/EmptyByteBufferTest.java index 9b1dd1cb373..dafc6023a79 100644 --- a/test/jdk/com/sun/crypto/provider/Mac/EmptyByteBufferTest.java +++ b/test/jdk/com/sun/crypto/provider/Mac/EmptyByteBufferTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -51,7 +51,8 @@ public void doTest(String alg) throws NoSuchAlgorithmException, SecretKey key = Utils.getSecretKeySpec(); // instantiate Mac object and init it with a SecretKey - Mac mac = Mac.getInstance(alg, "SunJCE"); + Mac mac = Mac.getInstance(alg, + System.getProperty("test.provider.name", "SunJCE")); mac.init(key); // prepare buffer diff --git a/test/jdk/com/sun/crypto/provider/Mac/HmacPBESHA1.java b/test/jdk/com/sun/crypto/provider/Mac/HmacPBESHA1.java index 8f72f5b6aae..1222736f6f9 100644 --- a/test/jdk/com/sun/crypto/provider/Mac/HmacPBESHA1.java +++ b/test/jdk/com/sun/crypto/provider/Mac/HmacPBESHA1.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -49,7 +49,8 @@ public class HmacPBESHA1 { }; private static final int[] MAC_LENGTHS = { 20, 20, 28, 32, 48, 64, 28, 32 }; private static final String KEY_ALGO = "PBE"; - private static final String PROVIDER = "SunJCE"; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunJCE"); private static SecretKey key = null; diff --git a/test/jdk/com/sun/crypto/provider/Mac/HmacSaltLengths.java b/test/jdk/com/sun/crypto/provider/Mac/HmacSaltLengths.java index a7a5a8e0ee9..aa2ef2ae7de 100644 --- a/test/jdk/com/sun/crypto/provider/Mac/HmacSaltLengths.java +++ b/test/jdk/com/sun/crypto/provider/Mac/HmacSaltLengths.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -91,7 +91,8 @@ public static void main(String[] argv) throws Exception { new SecureRandom().nextBytes(input); char[] PASSWD = { 'p','a','s','s','w','o','r','d' }; long start = System.currentTimeMillis(); - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + p.getName() + "..."); for (String algo : ALGOS) { runTest(algo, input, PASSWD, p); diff --git a/test/jdk/com/sun/crypto/provider/Mac/LargeByteBufferTest.java b/test/jdk/com/sun/crypto/provider/Mac/LargeByteBufferTest.java index f294b67743b..4b2f8d8abc7 100644 --- a/test/jdk/com/sun/crypto/provider/Mac/LargeByteBufferTest.java +++ b/test/jdk/com/sun/crypto/provider/Mac/LargeByteBufferTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -53,7 +53,8 @@ public void doTest(String alg) throws NoSuchAlgorithmException, SecretKey key = Utils.getSecretKeySpec(); // instantiate Mac object and init it with a SecretKey - Mac mac = Mac.getInstance(alg, "SunJCE"); + Mac mac = Mac.getInstance(alg, + System.getProperty("test.provider.name", "SunJCE")); mac.init(key); // prepare buffer diff --git a/test/jdk/com/sun/crypto/provider/Mac/MacClone.java b/test/jdk/com/sun/crypto/provider/Mac/MacClone.java index 46e797a189a..e66b71ec1a3 100644 --- a/test/jdk/com/sun/crypto/provider/Mac/MacClone.java +++ b/test/jdk/com/sun/crypto/provider/Mac/MacClone.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -64,7 +64,8 @@ private static void doTest(String algo, SecretKey skey, // // Clone an uninitialized Mac object // - Mac mac = Mac.getInstance(algo, "SunJCE"); + Mac mac = Mac.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); Mac macClone = (Mac)mac.clone(); System.out.println(macClone.getProvider().toString()); System.out.println(macClone.getAlgorithm()); @@ -81,7 +82,8 @@ private static void doTest(String algo, SecretKey skey, // // Clone an initialized Mac object // - mac = Mac.getInstance(algo, "SunJCE"); + mac = Mac.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); mac.init(skey, params); macClone = (Mac)mac.clone(); System.out.println(macClone.getProvider().toString()); diff --git a/test/jdk/com/sun/crypto/provider/Mac/MacKAT.java b/test/jdk/com/sun/crypto/provider/Mac/MacKAT.java index b75359e2ddf..9721668ea91 100644 --- a/test/jdk/com/sun/crypto/provider/Mac/MacKAT.java +++ b/test/jdk/com/sun/crypto/provider/Mac/MacKAT.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -333,7 +333,8 @@ private static Test t(String alg, byte[] input, String macvalue, byte[] key) { static void runTests(Test[] tests) throws Exception { long start = System.currentTimeMillis(); - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + p.getName() + "..."); for (int i = 0; i < tests.length; i++) { Test test = tests[i]; diff --git a/test/jdk/com/sun/crypto/provider/Mac/MacSameTest.java b/test/jdk/com/sun/crypto/provider/Mac/MacSameTest.java index 598ea6a910c..e8b8351c974 100644 --- a/test/jdk/com/sun/crypto/provider/Mac/MacSameTest.java +++ b/test/jdk/com/sun/crypto/provider/Mac/MacSameTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -63,7 +63,8 @@ public void doTest(String algo) throws NoSuchAlgorithmException, NoSuchProviderException, InvalidKeyException { Mac mac; try { - mac = Mac.getInstance(algo, "SunJCE"); + mac = Mac.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); } catch (NoSuchAlgorithmException nsae) { // depending on Solaris configuration, // it can support HMAC or not with Mac diff --git a/test/jdk/com/sun/crypto/provider/Mac/NullByteBufferTest.java b/test/jdk/com/sun/crypto/provider/Mac/NullByteBufferTest.java index d71d4f96317..a4f3e441cb3 100644 --- a/test/jdk/com/sun/crypto/provider/Mac/NullByteBufferTest.java +++ b/test/jdk/com/sun/crypto/provider/Mac/NullByteBufferTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -51,7 +51,8 @@ public void doTest(String alg) throws NoSuchAlgorithmException, SecretKey key = Utils.getSecretKeySpec(); // instantiate Mac object and init it with a SecretKey - Mac mac = Mac.getInstance(alg, "SunJCE"); + Mac mac = Mac.getInstance(alg, + System.getProperty("test.provider.name", "SunJCE")); mac.init(key); try { diff --git a/test/jdk/com/sun/crypto/provider/NSASuiteB/TestAESOids.java b/test/jdk/com/sun/crypto/provider/NSASuiteB/TestAESOids.java index 062c34ceda3..445ccf8c739 100644 --- a/test/jdk/com/sun/crypto/provider/NSASuiteB/TestAESOids.java +++ b/test/jdk/com/sun/crypto/provider/NSASuiteB/TestAESOids.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -51,7 +51,8 @@ */ public class TestAESOids { - private static final String PROVIDER_NAME = "SunJCE"; + private static final String PROVIDER_NAME = + System.getProperty("test.provider.name", "SunJCE"); private static final byte[] INPUT = "1234567890123456".getBytes(); private static final List DATA = Arrays.asList( diff --git a/test/jdk/com/sun/crypto/provider/NSASuiteB/TestAESWrapOids.java b/test/jdk/com/sun/crypto/provider/NSASuiteB/TestAESWrapOids.java index a75694be832..9b99ece8bda 100644 --- a/test/jdk/com/sun/crypto/provider/NSASuiteB/TestAESWrapOids.java +++ b/test/jdk/com/sun/crypto/provider/NSASuiteB/TestAESWrapOids.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -46,7 +46,8 @@ */ public class TestAESWrapOids { - private static final String PROVIDER_NAME = "SunJCE"; + private static final String PROVIDER_NAME = + System.getProperty("test.provider.name", "SunJCE"); private static final List DATA = Arrays.asList( new DataTuple("2.16.840.1.101.3.4.1.5", "AESWrap_128"), diff --git a/test/jdk/com/sun/crypto/provider/NSASuiteB/TestHmacSHAOids.java b/test/jdk/com/sun/crypto/provider/NSASuiteB/TestHmacSHAOids.java index 3ac097fe0ea..30989b94050 100644 --- a/test/jdk/com/sun/crypto/provider/NSASuiteB/TestHmacSHAOids.java +++ b/test/jdk/com/sun/crypto/provider/NSASuiteB/TestHmacSHAOids.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,7 +41,8 @@ */ public class TestHmacSHAOids { - private static final String PROVIDER_NAME = "SunJCE"; + private static final String PROVIDER_NAME = + System.getProperty("test.provider.name", "SunJCE"); private static final byte[] INPUT = "1234567890".getBytes(); private static final List DATA = Arrays.asList( diff --git a/test/jdk/com/sun/crypto/provider/TLS/TestKeyMaterial.java b/test/jdk/com/sun/crypto/provider/TLS/TestKeyMaterial.java index 983e8acb4c3..b23390f0e50 100644 --- a/test/jdk/com/sun/crypto/provider/TLS/TestKeyMaterial.java +++ b/test/jdk/com/sun/crypto/provider/TLS/TestKeyMaterial.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,7 +47,8 @@ public class TestKeyMaterial extends Utils { private static int PREFIX_LENGTH = "km-master: ".length(); public static void main(String[] args) throws Exception { - Provider provider = Security.getProvider("SunJCE"); + Provider provider = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); InputStream in = new FileInputStream(new File(BASE, "keymatdata.txt")); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); diff --git a/test/jdk/com/sun/crypto/provider/TLS/TestLeadingZeroes.java b/test/jdk/com/sun/crypto/provider/TLS/TestLeadingZeroes.java index bf47477b135..fec6d24c0ef 100644 --- a/test/jdk/com/sun/crypto/provider/TLS/TestLeadingZeroes.java +++ b/test/jdk/com/sun/crypto/provider/TLS/TestLeadingZeroes.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,7 +47,8 @@ public class TestLeadingZeroes { - private static final String SUNJCE = "SunJCE"; + private static final String PROVIDER_NAME = + System.getProperty("test.provider.name", "SunJCE"); // Hex formatter to upper case with ":" delimiter private static final HexFormat HEX_FORMATTER = HexFormat.ofDelimiter(":").withUpperCase(); @@ -73,7 +74,7 @@ private void run() throws Exception { kfac.generatePrivate(new PKCS8EncodedKeySpec(bobPrivKeyEnc)); // generate normal shared secret - KeyAgreement aliceKeyAgree = KeyAgreement.getInstance("DH", SUNJCE); + KeyAgreement aliceKeyAgree = KeyAgreement.getInstance("DH", PROVIDER_NAME); aliceKeyAgree.init(alicePrivKey); aliceKeyAgree.doPhase(bobPubKey, true); byte[] sharedSecret = aliceKeyAgree.generateSecret(); diff --git a/test/jdk/com/sun/crypto/provider/TLS/TestMasterSecret.java b/test/jdk/com/sun/crypto/provider/TLS/TestMasterSecret.java index 10f6ddc4019..f34bdff2ef7 100644 --- a/test/jdk/com/sun/crypto/provider/TLS/TestMasterSecret.java +++ b/test/jdk/com/sun/crypto/provider/TLS/TestMasterSecret.java @@ -49,7 +49,8 @@ public class TestMasterSecret extends Utils { private static int PREFIX_LENGTH = "m-premaster: ".length(); public static void main(String[] args) throws Exception { - Provider provider = Security.getProvider("SunJCE"); + Provider provider = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); InputStream in = new FileInputStream(new File(BASE, "masterdata.txt")); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); diff --git a/test/jdk/com/sun/crypto/provider/TLS/TestPRF.java b/test/jdk/com/sun/crypto/provider/TLS/TestPRF.java index 577927ea883..d35232431bf 100644 --- a/test/jdk/com/sun/crypto/provider/TLS/TestPRF.java +++ b/test/jdk/com/sun/crypto/provider/TLS/TestPRF.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,7 +47,8 @@ public class TestPRF extends Utils { private static int PREFIX_LENGTH = "prf-output: ".length(); public static void main(String[] args) throws Exception { - Provider provider = Security.getProvider("SunJCE"); + Provider provider = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); InputStream in = new FileInputStream(new File(BASE, "prfdata.txt")); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); diff --git a/test/jdk/com/sun/crypto/provider/TLS/TestPRF12.java b/test/jdk/com/sun/crypto/provider/TLS/TestPRF12.java index dffda070e47..692fc630f9b 100644 --- a/test/jdk/com/sun/crypto/provider/TLS/TestPRF12.java +++ b/test/jdk/com/sun/crypto/provider/TLS/TestPRF12.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,7 +50,8 @@ public class TestPRF12 extends Utils { private static int PREFIX_LENGTH = "prf-output: ".length(); public static void main(String[] args) throws Exception { - Provider provider = Security.getProvider("SunJCE"); + Provider provider = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); InputStream in = new FileInputStream(new File(BASE, "prf12data.txt")); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); diff --git a/test/jdk/com/sun/crypto/provider/TLS/TestPremaster.java b/test/jdk/com/sun/crypto/provider/TLS/TestPremaster.java index b95b0855dd0..096af76cfe4 100644 --- a/test/jdk/com/sun/crypto/provider/TLS/TestPremaster.java +++ b/test/jdk/com/sun/crypto/provider/TLS/TestPremaster.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,7 +41,8 @@ public class TestPremaster { public static void main(String[] args) throws Exception { - Provider provider = Security.getProvider("SunJCE"); + Provider provider = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); KeyGenerator kg; diff --git a/test/jdk/com/sun/jdi/ClassesByName2Test.java b/test/jdk/com/sun/jdi/ClassesByName2Test.java index acc186e7225..b8f517d0448 100644 --- a/test/jdk/com/sun/jdi/ClassesByName2Test.java +++ b/test/jdk/com/sun/jdi/ClassesByName2Test.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -58,7 +58,8 @@ public static void main(String[] args){ Thread one = DebuggeeWrapper.newThread (() -> { try { java.security.KeyPairGenerator keyGen = - java.security.KeyPairGenerator.getInstance("DSA", "SUN"); + java.security.KeyPairGenerator.getInstance("DSA", + System.getProperty("test.provider.name", "SUN")); } catch (Exception e) { e.printStackTrace(); } diff --git a/test/jdk/java/security/KeyAgreement/KeyAgreementTest.java b/test/jdk/java/security/KeyAgreement/KeyAgreementTest.java index 1e16c157fed..1e5eb968030 100644 --- a/test/jdk/java/security/KeyAgreement/KeyAgreementTest.java +++ b/test/jdk/java/security/KeyAgreement/KeyAgreementTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -51,7 +51,7 @@ public static void main(String[] args) throws Exception { String kaAlgo = args[0]; String kpgAlgo = args[1]; - String provider = args[2]; + String provider = System.getProperty("test.provider.name", args[2]); System.out.println("Testing " + kaAlgo); AlgoSpec aSpec = AlgoSpec.valueOf(AlgoSpec.class, kaAlgo); List specs = aSpec.getAlgorithmParameterSpecs(); diff --git a/test/jdk/java/security/KeyAgreement/KeySizeTest.java b/test/jdk/java/security/KeyAgreement/KeySizeTest.java index 5dfb2dc7315..6ac36a5ee86 100644 --- a/test/jdk/java/security/KeyAgreement/KeySizeTest.java +++ b/test/jdk/java/security/KeyAgreement/KeySizeTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -64,7 +64,7 @@ public class KeySizeTest { public static void main(String[] args) throws Exception { String kaAlgo = args[0]; - String provider = args[1]; + String provider = System.getProperty("test.provider.name", args[1]); String kpgAlgo = args[2]; int keySize = Integer.parseInt(args[3]); testKeyAgreement(provider, kaAlgo, kpgAlgo, keySize); diff --git a/test/jdk/java/security/KeyAgreement/KeySpecTest.java b/test/jdk/java/security/KeyAgreement/KeySpecTest.java index 1e8742dd796..3554ba5073d 100644 --- a/test/jdk/java/security/KeyAgreement/KeySpecTest.java +++ b/test/jdk/java/security/KeyAgreement/KeySpecTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -61,7 +61,7 @@ public class KeySpecTest { public static void main(String[] args) throws Exception { String kaAlgo = args[0]; - String provider = args[1]; + String provider = System.getProperty("test.provider.name", args[1]); String kpgAlgo = args[2]; KeyPair kp = genKeyPair(provider, kpgAlgo, (args.length > 3) ? args[3] : kpgAlgo); diff --git a/test/jdk/java/security/KeyAgreement/MultiThreadTest.java b/test/jdk/java/security/KeyAgreement/MultiThreadTest.java index f53572a10b5..0b01f4821ab 100644 --- a/test/jdk/java/security/KeyAgreement/MultiThreadTest.java +++ b/test/jdk/java/security/KeyAgreement/MultiThreadTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -52,7 +52,7 @@ public class MultiThreadTest { public static void main(String[] args) throws Exception { String kaAlgo = args[0]; - String provider = args[1]; + String provider = System.getProperty("test.provider.name", args[1]); String kpgAlgo = args[2]; KeyPairGenerator kpg = genKeyGenerator(provider, kpgAlgo, (args.length > 3) ? args[3] : kpgAlgo); diff --git a/test/jdk/java/security/KeyAgreement/NegativeTest.java b/test/jdk/java/security/KeyAgreement/NegativeTest.java index 864bf09aeeb..2ec52b12a40 100644 --- a/test/jdk/java/security/KeyAgreement/NegativeTest.java +++ b/test/jdk/java/security/KeyAgreement/NegativeTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -65,7 +65,7 @@ public class NegativeTest { public static void main(String[] args) throws Exception { String kaAlgo = args[0]; - String provider = args[1]; + String provider = System.getProperty("test.provider.name", args[1]); String kpgAlgo = args[2]; int keySize = Integer.parseInt(args[3]); String kpgInit = (args.length > 4) ? args[4] : args[2]; diff --git a/test/jdk/java/security/KeyFactory/GenerateRSAPrivateCrtKey.java b/test/jdk/java/security/KeyFactory/GenerateRSAPrivateCrtKey.java index de37778b844..1c7cdba2598 100644 --- a/test/jdk/java/security/KeyFactory/GenerateRSAPrivateCrtKey.java +++ b/test/jdk/java/security/KeyFactory/GenerateRSAPrivateCrtKey.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -51,7 +51,8 @@ public static void main(String[] args) throws Exception { new BigInteger(1, coeff)); // Create an RSA private key from the CRT specification - KeyFactory kf = KeyFactory.getInstance("RSA", "SunRsaSign"); + KeyFactory kf = KeyFactory.getInstance("RSA", + System.getProperty("test.provider.name", "SunRsaSign")); RSAPrivateCrtKey rsaPriKey = (RSAPrivateCrtKey) kf.generatePrivate(rsaCrtSpec); diff --git a/test/jdk/java/security/KeyFactory/KeyFactoryGetKeySpecForInvalidSpec.java b/test/jdk/java/security/KeyFactory/KeyFactoryGetKeySpecForInvalidSpec.java index e72d5c8decc..71b05b0c225 100644 --- a/test/jdk/java/security/KeyFactory/KeyFactoryGetKeySpecForInvalidSpec.java +++ b/test/jdk/java/security/KeyFactory/KeyFactoryGetKeySpecForInvalidSpec.java @@ -69,7 +69,8 @@ public BigInteger getModulus() { } public static void main(String[] args) throws Exception { - KeyPairGenerator kg = KeyPairGenerator.getInstance("RSA", "SunRsaSign"); + KeyPairGenerator kg = KeyPairGenerator.getInstance("RSA", + System.getProperty("test.provider.name", "SunRsaSign")); kg.initialize(2048); KeyPair pair = kg.generateKeyPair(); diff --git a/test/jdk/java/security/KeyPairGenerator/GenerateRSAKeyPair.java b/test/jdk/java/security/KeyPairGenerator/GenerateRSAKeyPair.java index eafd06ee3ec..c995bb17bed 100644 --- a/test/jdk/java/security/KeyPairGenerator/GenerateRSAKeyPair.java +++ b/test/jdk/java/security/KeyPairGenerator/GenerateRSAKeyPair.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,7 +38,8 @@ public static void main(String[] args) throws Exception { RSAKeyGenParameterSpec rsaSpec = new RSAKeyGenParameterSpec (1024, RSAKeyGenParameterSpec.F4); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", "SunRsaSign"); + KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", + System.getProperty("test.provider.name", "SunRsaSign")); kpg.initialize(rsaSpec); // test generateKeyPair diff --git a/test/jdk/java/security/KeyRep/Serial.java b/test/jdk/java/security/KeyRep/Serial.java index 413aa10661a..e61de5c2be6 100644 --- a/test/jdk/java/security/KeyRep/Serial.java +++ b/test/jdk/java/security/KeyRep/Serial.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,9 +38,9 @@ public class Serial { // providers - private static final String SUN = "SUN"; - private static final String RSA = "SunRsaSign"; - private static final String JCE = "SunJCE"; + private static final String SUN = System.getProperty("test.provider.name", "SUN"); + private static final String RSA = System.getProperty("test.provider.name", "SunRsaSign"); + private static final String JCE = System.getProperty("test.provider.name", "SunJCE"); public static void main(String[] args) throws Exception { diff --git a/test/jdk/java/security/KeyRep/Serial.policy b/test/jdk/java/security/KeyRep/Serial.policy index 0c2c1d0868d..3c529c87a13 100644 --- a/test/jdk/java/security/KeyRep/Serial.policy +++ b/test/jdk/java/security/KeyRep/Serial.policy @@ -1,3 +1,4 @@ grant { + permission java.util.PropertyPermission "test.provider.name", "read"; // XXX note package access is *not* granted to the 'sun' package }; diff --git a/test/jdk/java/security/MessageDigest/ByteBuffers.java b/test/jdk/java/security/MessageDigest/ByteBuffers.java index dd3467d0e67..f21a51e1c10 100644 --- a/test/jdk/java/security/MessageDigest/ByteBuffers.java +++ b/test/jdk/java/security/MessageDigest/ByteBuffers.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,7 +37,7 @@ public class ByteBuffers { public static void main(String[] args) throws Exception { - Provider p = Security.getProvider("SUN"); + Provider p = Security.getProvider(System.getProperty("test.provider.name", "SUN")); Random random = new Random(); int n = 10 * 1024; byte[] t = new byte[n]; diff --git a/test/jdk/java/security/MessageDigest/TestCloneable.java b/test/jdk/java/security/MessageDigest/TestCloneable.java index 3a4feb82ff6..48236dbd447 100644 --- a/test/jdk/java/security/MessageDigest/TestCloneable.java +++ b/test/jdk/java/security/MessageDigest/TestCloneable.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,14 +43,16 @@ public class TestCloneable { private static final Class CNSE = CloneNotSupportedException.class; + private static String providerName = System.getProperty("test.provider.name", "SUN"); + @DataProvider public Object[][] testData() { return new Object[][] { - { "MD2", "SUN" }, { "MD5", "SUN" }, { "SHA-1", "SUN" }, - { "SHA-224", "SUN" }, { "SHA-256", "SUN" }, - { "SHA-384", "SUN" }, { "SHA-512", "SUN" }, - { "SHA3-224", "SUN" }, { "SHA3-256", "SUN" }, - { "SHA3-384", "SUN" }, { "SHA3-512", "SUN" } + { "MD2", providerName }, { "MD5", providerName }, { "SHA-1", providerName }, + { "SHA-224", providerName }, { "SHA-256", providerName }, + { "SHA-384", providerName }, { "SHA-512", providerName }, + { "SHA3-224", providerName }, { "SHA3-256", providerName }, + { "SHA3-384", providerName }, { "SHA3-512", providerName } }; } diff --git a/test/jdk/java/security/SecureRandom/DefaultAlgo.java b/test/jdk/java/security/SecureRandom/DefaultAlgo.java index 06027f7162e..8f9e776f246 100644 --- a/test/jdk/java/security/SecureRandom/DefaultAlgo.java +++ b/test/jdk/java/security/SecureRandom/DefaultAlgo.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -87,8 +87,9 @@ private static void checkDefault(Provider p, String ... algos) { p.remove("SecureRandom." + s); out.println("removed " + s); } - validate(new SecureRandom(), "SUN", - SunEntries.DEF_SECURE_RANDOM_ALGO); + validate(new SecureRandom(), System.getProperty("test.provider.name", "SUN"), + System.getProperty("test.default.secure.random.algorithm.name", + SunEntries.DEF_SECURE_RANDOM_ALGO)); } else { validate(new SecureRandom(), pName, algos[0]); } diff --git a/test/jdk/java/security/SecureRandom/DefaultProvider.java b/test/jdk/java/security/SecureRandom/DefaultProvider.java index c80700b78c9..b9a393bd346 100644 --- a/test/jdk/java/security/SecureRandom/DefaultProvider.java +++ b/test/jdk/java/security/SecureRandom/DefaultProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,7 +42,7 @@ public static void main(String[] args) throws NoSuchAlgorithmException { out.println("TEST: Default provider with constructor"); SecureRandom secureRandom = new SecureRandom(); String provider = secureRandom.getProvider().getName(); - if (!provider.equals("SUN")) { + if (!provider.equals(System.getProperty("test.provider.name", "SUN"))) { throw new RuntimeException("Unexpected provider name: " + provider); } @@ -51,7 +51,7 @@ public static void main(String[] args) throws NoSuchAlgorithmException { /* Test default provider with getInstance(String algorithm) */ out.println("TEST: SHA1PRNG supported on all platforms by SUN provider"); String algorithm = "SHA1PRNG"; - provider = "SUN"; + provider = System.getProperty("test.provider.name", "SUN"); SecureRandom instance = SecureRandom.getInstance(algorithm); assertInstance(instance, algorithm, provider); @@ -61,7 +61,7 @@ public static void main(String[] args) throws NoSuchAlgorithmException { out.println("TEST: NativePRNG supported on all platforms" + "(except Windows), by SUN provider"); algorithm = "NativePRNG"; - provider = "SUN"; + provider = System.getProperty("test.provider.name", "SUN"); } else { out.println( "TEST: Windows-PRNG supported on windows by SunMSCAPI provider"); diff --git a/test/jdk/java/security/SecureRandom/GetInstanceTest.java b/test/jdk/java/security/SecureRandom/GetInstanceTest.java index c1fdf133305..e95557a7bcb 100644 --- a/test/jdk/java/security/SecureRandom/GetInstanceTest.java +++ b/test/jdk/java/security/SecureRandom/GetInstanceTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -75,7 +75,8 @@ public static void main(String[] args) throws Exception { + "'securerandom.strongAlgorithms'."); } try { - Security.setProperty(STRONG_ALG_SEC_PROP, "DRBG:SUN"); + Security.setProperty(STRONG_ALG_SEC_PROP, "DRBG:" + + System.getProperty("test.provider.name", SUN_PROVIDER)); sr = matchExc(() -> SecureRandom.getInstanceStrong(), PASS, NoSuchAlgorithmException.class, "PASS - Undefined security Property " @@ -123,7 +124,8 @@ private static void verifyInstance(String mech) throws Exception { // Test for getInstance(algorithm, provider) method. checkAttributes( matchExc(() -> SecureRandom.getInstance(srAlgo, - Security.getProvider(SUN_PROVIDER)), + Security.getProvider( + System.getProperty("test.provider.name", SUN_PROVIDER))), !(nsa(mech)), NoSuchAlgorithmException.class, String.format("PASS - It is expected to fail for" @@ -132,7 +134,8 @@ private static void verifyInstance(String mech) throws Exception { mech); // Test for getInstance(algorithm, providerName) method. checkAttributes( - matchExc(() -> SecureRandom.getInstance(srAlgo, SUN_PROVIDER), + matchExc(() -> SecureRandom.getInstance(srAlgo, + System.getProperty("test.provider.name", SUN_PROVIDER)), !(nsa(mech)), NoSuchAlgorithmException.class, String.format("PASS - It is expected to fail for " + "getInstance(algorithm, providerName) when " @@ -175,7 +178,8 @@ private static void verifyInstance(String mech) throws Exception { // Test for getInstance(algorithm, params, provider) method. checkAttributes( matchExc(() -> SecureRandom.getInstance(srAlgo, param, - Security.getProvider(SUN_PROVIDER)), + Security.getProvider(System.getProperty( + "test.provider.name", SUN_PROVIDER))), (isDRBG(mech)) && (isValidDRBGParam(param)), getExcType(mech, param), String.format("PASS - It is expected to fail " @@ -186,7 +190,7 @@ private static void verifyInstance(String mech) throws Exception { // Test for getInstance(algorithm, params, providerName) method. checkAttributes( matchExc(() -> SecureRandom.getInstance(srAlgo, param, - SUN_PROVIDER), + System.getProperty("test.provider.name", SUN_PROVIDER)), (isDRBG(mech)) && (isValidDRBGParam(param)), getExcType(mech, param), String.format("PASS - It is expected to fail " @@ -306,7 +310,8 @@ private static void checkAttributes(SecureRandom sr, String mech) { return; } Asserts.assertEquals(sr.getAlgorithm(), (isDRBG(mech) ? "DRBG" : mech)); - Asserts.assertEquals(sr.getProvider().getName(), SUN_PROVIDER); + String expectedProviderName = System.getProperty("test.provider.name", SUN_PROVIDER); + Asserts.assertEquals(sr.getProvider().getName(), expectedProviderName); } } diff --git a/test/jdk/java/security/Security/CaseInsensitiveAlgNames.java b/test/jdk/java/security/Security/CaseInsensitiveAlgNames.java index 2267c461e55..f29d368d6d1 100644 --- a/test/jdk/java/security/Security/CaseInsensitiveAlgNames.java +++ b/test/jdk/java/security/Security/CaseInsensitiveAlgNames.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,10 +41,14 @@ public static void main(String[] args) md = MessageDigest.getInstance("shA1"); // MessageDigest with provider - md = MessageDigest.getInstance("SHA", "SUN"); - md = MessageDigest.getInstance("sha", "SUN"); - md = MessageDigest.getInstance("Sha-1", "SUN"); - md = MessageDigest.getInstance("shA1", "SUN"); + md = MessageDigest.getInstance("SHA", + System.getProperty("test.provider.name", "SUN")); + md = MessageDigest.getInstance("sha", + System.getProperty("test.provider.name", "SUN")); + md = MessageDigest.getInstance("Sha-1", + System.getProperty("test.provider.name", "SUN")); + md = MessageDigest.getInstance("shA1", + System.getProperty("test.provider.name", "SUN")); // KeyPairGenerator without provider KeyPairGenerator kGen = KeyPairGenerator.getInstance("DSA"); @@ -54,11 +58,15 @@ public static void main(String[] args) kGen = KeyPairGenerator.getInstance("1.2.840.10040.4.1"); // KeyPairGenerator with provider - kGen = KeyPairGenerator.getInstance("DSA", "SUN"); - kGen = KeyPairGenerator.getInstance("dsa", "SUN"); - kGen = KeyPairGenerator.getInstance("dSA", "SUN"); + kGen = KeyPairGenerator.getInstance("DSA", + System.getProperty("test.provider.name", "SUN")); + kGen = KeyPairGenerator.getInstance("dsa", + System.getProperty("test.provider.name", "SUN")); + kGen = KeyPairGenerator.getInstance("dSA", + System.getProperty("test.provider.name", "SUN")); kGen = KeyPairGenerator.getInstance("OId.1.2.840.10040.4.1", - "SUN"); - kGen = KeyPairGenerator.getInstance("1.2.840.10040.4.1", "SUN"); + System.getProperty("test.provider.name", "SUN")); + kGen = KeyPairGenerator.getInstance("1.2.840.10040.4.1", + System.getProperty("test.provider.name", "SUN")); } } diff --git a/test/jdk/java/security/Signature/ByteBuffers.java b/test/jdk/java/security/Signature/ByteBuffers.java index 937c9842c3b..d9866204244 100644 --- a/test/jdk/java/security/Signature/ByteBuffers.java +++ b/test/jdk/java/security/Signature/ByteBuffers.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,7 +37,8 @@ public class ByteBuffers { public static void main(String[] args) throws Exception { - Provider p = Security.getProvider("SUN"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SUN")); Random random = new Random(); int n = 10 * 1024; byte[] t = new byte[n]; diff --git a/test/jdk/java/security/Signature/NONEwithRSA.java b/test/jdk/java/security/Signature/NONEwithRSA.java index 6d18c7ac96f..ff3645058d6 100644 --- a/test/jdk/java/security/Signature/NONEwithRSA.java +++ b/test/jdk/java/security/Signature/NONEwithRSA.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,7 +38,7 @@ public class NONEwithRSA { public static void main(String[] args) throws Exception { -// showProvider(Security.getProvider("SUN")); +// showProvider(Security.getProvider(System.getProperty("test.provider.name", "SUN"))); Random random = new Random(); byte[] b = new byte[16]; random.nextBytes(b); @@ -66,9 +66,11 @@ public static void main(String[] args) throws Exception { throw new Exception("decryption failed"); } - sig = Signature.getInstance("NONEwithRSA", "SunJCE"); + sig = Signature.getInstance("NONEwithRSA", + System.getProperty("test.provider.name", "SunJCE")); sig.initSign(kp.getPrivate()); - sig = Signature.getInstance("NONEwithRSA", Security.getProvider("SunJCE")); + sig = Signature.getInstance("NONEwithRSA", Security.getProvider( + System.getProperty("test.provider.name", "SunJCE"))); sig.initSign(kp.getPrivate()); try { diff --git a/test/jdk/java/security/Signature/SignatureGetInstance.java b/test/jdk/java/security/Signature/SignatureGetInstance.java index c246773f83a..e36d253dbc8 100644 --- a/test/jdk/java/security/Signature/SignatureGetInstance.java +++ b/test/jdk/java/security/Signature/SignatureGetInstance.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,7 +50,8 @@ public static void main(String[] args) throws Exception { MyPubKey testPub = new MyPubKey(); testDblInit(testPriv, testPub, true, "TestProvider"); - testDblInit(kp.getPrivate(), kp.getPublic(), true, "SunRsaSign"); + testDblInit(kp.getPrivate(), kp.getPublic(), true, + System.getProperty("test.provider.name", "SunRsaSign")); testDblInit(testPriv, kp.getPublic(), false, null); testDblInit(kp.getPrivate(), testPub, false, null); @@ -59,7 +60,7 @@ public static void main(String[] args) throws Exception { testSetAndInit(null, kp.getPrivate(), true); testSetAndInit(null, kp.getPublic(), true); - String provName = "SunRsaSign"; + String provName = System.getProperty("test.provider.name", "SunRsaSign"); testSetAndInit(provName, testPriv, false); testSetAndInit(provName, testPub, false); testSetAndInit(provName, kp.getPrivate(), true); diff --git a/test/jdk/java/security/Signature/TestCloneable.java b/test/jdk/java/security/Signature/TestCloneable.java index 33e2383cfa4..97f69a8725b 100644 --- a/test/jdk/java/security/Signature/TestCloneable.java +++ b/test/jdk/java/security/Signature/TestCloneable.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,21 +42,25 @@ public class TestCloneable { @DataProvider public Object[][] testData() { + String dsaProviderName = System.getProperty("test.provider.name", "SUN"); + String ecProviderName = System.getProperty("test.provider.name", "SunEC"); + String rsaProviderName = System.getProperty("test.provider.name", "SunRsaSign"); + return new Object[][] { - { "SHA1withDSA", "SUN" }, { "NONEwithDSA", "SUN" }, - { "SHA224withDSA", "SUN" }, { "SHA256withDSA", "SUN" }, - { "EdDSA", "SunEC" }, { "Ed25519", "SunEC" }, { "Ed448", "SunEC" }, - { "SHA1withECDSA", "SunEC" }, { "SHA224withECDSA", "SunEC" }, - { "SHA256withECDSA", "SunEC" }, { "SHA384withECDSA", "SunEC" }, - { "SHA512withECDSA", "SunEC" }, { "NONEwithECDSA", "SunEC" }, - { "MD2withRSA", "SunRsaSign" }, { "MD5withRSA", "SunRsaSign" }, - { "SHA1withRSA", "SunRsaSign" }, { "SHA224withRSA", "SunRsaSign" }, - { "SHA256withRSA", "SunRsaSign" }, - { "SHA384withRSA", "SunRsaSign" }, - { "SHA512withRSA", "SunRsaSign" }, - { "SHA512/224withRSA", "SunRsaSign" }, - { "SHA512/256withRSA", "SunRsaSign" }, - { "RSASSA-PSS", "SunRsaSign" }, + { "SHA1withDSA", dsaProviderName }, { "NONEwithDSA", dsaProviderName }, + { "SHA224withDSA", dsaProviderName }, { "SHA256withDSA", dsaProviderName }, + { "EdDSA", ecProviderName }, { "Ed25519", ecProviderName }, { "Ed448", ecProviderName }, + { "SHA1withECDSA", ecProviderName }, { "SHA224withECDSA", ecProviderName }, + { "SHA256withECDSA", ecProviderName }, { "SHA384withECDSA", ecProviderName }, + { "SHA512withECDSA", ecProviderName }, { "NONEwithECDSA", ecProviderName }, + { "MD2withRSA", rsaProviderName }, { "MD5withRSA", rsaProviderName }, + { "SHA1withRSA", rsaProviderName }, { "SHA224withRSA", rsaProviderName }, + { "SHA256withRSA", rsaProviderName }, + { "SHA384withRSA", rsaProviderName }, + { "SHA512withRSA", rsaProviderName }, + { "SHA512/224withRSA", rsaProviderName }, + { "SHA512/256withRSA", rsaProviderName }, + { "RSASSA-PSS", rsaProviderName }, { "NONEwithRSA", "SunMSCAPI" }, { "SHA1withRSA", "SunMSCAPI" }, { "SHA256withRSA", "SunMSCAPI" }, { "SHA384withRSA", "SunMSCAPI" }, { "SHA512withRSA", "SunMSCAPI" }, diff --git a/test/jdk/java/security/Signature/TestInitSignWithMyOwnRandom.java b/test/jdk/java/security/Signature/TestInitSignWithMyOwnRandom.java index 0d2d7fd35a4..a59ea9a9355 100644 --- a/test/jdk/java/security/Signature/TestInitSignWithMyOwnRandom.java +++ b/test/jdk/java/security/Signature/TestInitSignWithMyOwnRandom.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -34,7 +34,8 @@ public class TestInitSignWithMyOwnRandom { public static void main(String[] argv) throws Exception { // any signature implementation will do as long as // it needs a random source - Provider p = Security.getProvider("SUN"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SUN")); KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA", p); kpg.initialize(512); KeyPair kp = kpg.generateKeyPair(); diff --git a/test/jdk/java/security/SignedObject/Chain.java b/test/jdk/java/security/SignedObject/Chain.java index b4a5ea794e6..0fb5cf3c53f 100644 --- a/test/jdk/java/security/SignedObject/Chain.java +++ b/test/jdk/java/security/SignedObject/Chain.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -55,7 +55,10 @@ static enum Provider { Sun("SUN"), SunEC("SunEC"), SunJSSE("SunJSSE"), - SunMSCAPI("SunMSCAPI"); + SunMSCAPI("SunMSCAPI"), + TestProvider_or_SunRsaSign(System.getProperty("test.provider.name", "SunRsaSign")), + TestProvider_or_Sun(System.getProperty("test.provider.name", "SUN")), + TestProvider_or_SunEC(System.getProperty("test.provider.name", "SunEC")); final String name; @@ -166,9 +169,9 @@ public String toString() { new Test(SigAlg.SHA3_256withRSA, KeyAlg.RSA, Provider.Default), new Test(SigAlg.SHA3_384withRSA, KeyAlg.RSA, Provider.Default), new Test(SigAlg.SHA3_512withRSA, KeyAlg.RSA, Provider.Default), - new Test(SigAlg.SHA1withDSA, KeyAlg.DSA, Provider.Sun, 1024), - new Test(SigAlg.SHA224withDSA, KeyAlg.DSA, Provider.Sun, 2048), - new Test(SigAlg.SHA256withDSA, KeyAlg.DSA, Provider.Sun, 2048), + new Test(SigAlg.SHA1withDSA, KeyAlg.DSA, Provider.TestProvider_or_Sun, 1024), + new Test(SigAlg.SHA224withDSA, KeyAlg.DSA, Provider.TestProvider_or_Sun, 2048), + new Test(SigAlg.SHA256withDSA, KeyAlg.DSA, Provider.TestProvider_or_Sun, 2048), }; private static final String str = "to-be-signed"; @@ -190,7 +193,7 @@ private static boolean runTestPSS(int keysize) { Iterator mdAlgs = SigTestUtil.getDigestAlgorithms (SignatureType.RSASSA_PSS, keysize).iterator(); while (mdAlgs.hasNext()) { - result &= runTest(new Test(pss, KeyAlg.RSA, Provider.SunRsaSign, + result &= runTest(new Test(pss, KeyAlg.RSA, Provider.TestProvider_or_SunRsaSign, keysize, SigTestUtil.generateDefaultParameter (SignatureType.RSASSA_PSS, mdAlgs.next()))); } diff --git a/test/jdk/java/security/SignedObject/Copy.java b/test/jdk/java/security/SignedObject/Copy.java index b6edfc031fc..16267ee534d 100644 --- a/test/jdk/java/security/SignedObject/Copy.java +++ b/test/jdk/java/security/SignedObject/Copy.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -49,7 +49,7 @@ public static void main(String args[]) throws Exception { signature); System.out.println("Signature algorithm: " + so.getAlgorithm()); - signature = Signature.getInstance(DSA, "SUN"); + signature = Signature.getInstance(DSA, System.getProperty("test.provider.name", "SUN")); if (!so.verify(kp.getPublic(), signature)) { throw new RuntimeException("Verification failed"); } diff --git a/test/jdk/java/security/misc/GetInstanceNullsEmpties.java b/test/jdk/java/security/misc/GetInstanceNullsEmpties.java index 75089208fa8..9fb1d43e6ed 100644 --- a/test/jdk/java/security/misc/GetInstanceNullsEmpties.java +++ b/test/jdk/java/security/misc/GetInstanceNullsEmpties.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,7 +44,8 @@ */ public class GetInstanceNullsEmpties { - private static final Provider SUN = Security.getProvider("SUN"); + private static final String providerName = System.getProperty("test.provider.name", "SUN"); + private static final Provider provider = Security.getProvider(providerName); /* * See if there are more than "expected" number of getInstance() methods, @@ -168,14 +169,14 @@ private static void testAlgorithmParameterGenerator() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -190,14 +191,14 @@ private static void testAlgorithmParameters() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -212,14 +213,14 @@ private static void testCertPathBuilder() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -234,14 +235,14 @@ private static void testCertPathValidator() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -257,14 +258,14 @@ private static void testCertStore() throws Exception { run(m, NoSuchAlgorithmException.class, "", csp); m = getInstance(clazz, STRING, CertStoreParameters.class, STRING); - run(m, NullPointerException.class, null, csp, "SUN"); - run(m, NoSuchAlgorithmException.class, "", csp, "SUN"); + run(m, NullPointerException.class, null, csp, providerName); + run(m, NoSuchAlgorithmException.class, "", csp, providerName); run(m, IllegalArgumentException.class, "FOO", csp, null); run(m, IllegalArgumentException.class, "FOO", csp, ""); m = getInstance(clazz, STRING, CertStoreParameters.class, PROVIDER); - run(m, NullPointerException.class, null, csp, SUN); - run(m, NoSuchAlgorithmException.class, "", csp, SUN); + run(m, NullPointerException.class, null, csp, provider); + run(m, NoSuchAlgorithmException.class, "", csp, provider); run(m, IllegalArgumentException.class, "FOO", csp, null); } @@ -279,14 +280,14 @@ private static void testCertificateFactory() throws Exception { run(m, CertificateException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, CertificateException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, CertificateException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, CertificateException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, CertificateException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -305,14 +306,14 @@ private static void testCipher() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NoSuchAlgorithmException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NoSuchAlgorithmException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NoSuchAlgorithmException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NoSuchAlgorithmException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -329,15 +330,15 @@ private static void testConfiguration() throws Exception { run(m, NoSuchAlgorithmException.class, "", cp); m = getInstance(clazz, STRING, Configuration.Parameters.class, STRING); - run(m, NullPointerException.class, null, cp, "SUN"); - run(m, NoSuchAlgorithmException.class, "", cp, "SUN"); + run(m, NullPointerException.class, null, cp, providerName); + run(m, NoSuchAlgorithmException.class, "", cp, providerName); run(m, IllegalArgumentException.class, "FOO", cp, null); run(m, IllegalArgumentException.class, "FOO", cp, ""); m = getInstance(clazz, STRING, Configuration.Parameters.class, PROVIDER); - run(m, NullPointerException.class, null, cp, SUN); - run(m, NoSuchAlgorithmException.class, "", cp, SUN); + run(m, NullPointerException.class, null, cp, provider); + run(m, NoSuchAlgorithmException.class, "", cp, provider); run(m, IllegalArgumentException.class, "FOO", cp, null); } @@ -352,14 +353,14 @@ private static void testExemptionMechanism() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -374,14 +375,14 @@ private static void testKeyAgreement() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -396,14 +397,14 @@ private static void testKeyFactory() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -418,14 +419,14 @@ private static void testKeyGenerator() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -440,14 +441,14 @@ private static void testKeyManagerFactory() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -462,14 +463,14 @@ private static void testKeyPairGenerator() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -488,14 +489,14 @@ private static void testKeyStore() throws Exception { run(m, KeyStoreException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, KeyStoreException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, KeyStoreException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, KeyStoreException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, KeyStoreException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -510,14 +511,14 @@ private static void testMac() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -532,14 +533,14 @@ private static void testMessageDigest() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -556,14 +557,14 @@ private static void testPolicy() throws Exception { run(m, NoSuchAlgorithmException.class, "", pp); m = getInstance(clazz, STRING, Policy.Parameters.class, STRING); - run(m, NullPointerException.class, null, pp, "SUN"); - run(m, NoSuchAlgorithmException.class, "", pp, "SUN"); + run(m, NullPointerException.class, null, pp, providerName); + run(m, NoSuchAlgorithmException.class, "", pp, providerName); run(m, IllegalArgumentException.class, "FOO", pp, null); run(m, IllegalArgumentException.class, "FOO", pp, ""); m = getInstance(clazz, STRING, Policy.Parameters.class, PROVIDER); - run(m, NullPointerException.class, null, pp, SUN); - run(m, NoSuchAlgorithmException.class, "", pp, SUN); + run(m, NullPointerException.class, null, pp, provider); + run(m, NoSuchAlgorithmException.class, "", pp, provider); run(m, IllegalArgumentException.class, "FOO", pp, null); } @@ -578,14 +579,14 @@ private static void testSSLContext() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -600,14 +601,14 @@ private static void testSecretKeyFactory() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -624,14 +625,14 @@ private static void testSecureRandom() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); m = getInstance(clazz, STRING, SecureRandomParameters.class); @@ -639,14 +640,14 @@ private static void testSecureRandom() throws Exception { run(m, NoSuchAlgorithmException.class, "", srp); m = getInstance(clazz, STRING, SecureRandomParameters.class, STRING); - run(m, NullPointerException.class, null, srp, "SUN"); - run(m, NoSuchAlgorithmException.class, "", srp, "SUN"); + run(m, NullPointerException.class, null, srp, providerName); + run(m, NoSuchAlgorithmException.class, "", srp, providerName); run(m, IllegalArgumentException.class, "FOO", srp, null); run(m, IllegalArgumentException.class, "FOO", srp, ""); m = getInstance(clazz, STRING, SecureRandomParameters.class, PROVIDER); - run(m, NullPointerException.class, null, srp, SUN); - run(m, NoSuchAlgorithmException.class, "", srp, SUN); + run(m, NullPointerException.class, null, srp, provider); + run(m, NoSuchAlgorithmException.class, "", srp, provider); run(m, IllegalArgumentException.class, "FOO", srp, null); } @@ -661,14 +662,14 @@ private static void testSignature() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -683,14 +684,14 @@ private static void testTrustManagerFactory() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } } diff --git a/test/jdk/javax/crypto/Cipher/ByteBuffers.java b/test/jdk/javax/crypto/Cipher/ByteBuffers.java index 233e62fb83a..141f1c10781 100644 --- a/test/jdk/javax/crypto/Cipher/ByteBuffers.java +++ b/test/jdk/javax/crypto/Cipher/ByteBuffers.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -40,7 +40,8 @@ public class ByteBuffers { public static void main(String[] args) throws Exception { - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); Random random = new Random(); int n = 10 * 1024; byte[] t = new byte[n]; diff --git a/test/jdk/javax/crypto/Cipher/CipherInputStreamExceptions.java b/test/jdk/javax/crypto/Cipher/CipherInputStreamExceptions.java index 15cacec707f..8ffbb6f6a26 100644 --- a/test/jdk/javax/crypto/Cipher/CipherInputStreamExceptions.java +++ b/test/jdk/javax/crypto/Cipher/CipherInputStreamExceptions.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -357,10 +357,12 @@ static byte[] encryptedText(String mode, int length) throws Exception{ static byte[] encryptedText(String mode, byte[] pt) throws Exception{ Cipher c; if (mode.compareTo("GCM") == 0) { - c = Cipher.getInstance("AES/GCM/NoPadding", "SunJCE"); + c = Cipher.getInstance("AES/GCM/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); c.init(Cipher.ENCRYPT_MODE, key, gcmspec); } else if (mode.compareTo("CBC") == 0) { - c = Cipher.getInstance("AES/CBC/PKCS5Padding", "SunJCE"); + c = Cipher.getInstance("AES/CBC/PKCS5Padding", + System.getProperty("test.provider.name", "SunJCE")); c.init(Cipher.ENCRYPT_MODE, key, iv); } else { return null; @@ -380,10 +382,12 @@ static CipherInputStream getStream(String mode, byte[] ct, int length) Cipher c; if (mode.compareTo("GCM") == 0) { - c = Cipher.getInstance("AES/GCM/NoPadding", "SunJCE"); + c = Cipher.getInstance("AES/GCM/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); c.init(Cipher.DECRYPT_MODE, key, gcmspec); } else if (mode.compareTo("CBC") == 0) { - c = Cipher.getInstance("AES/CBC/PKCS5Padding", "SunJCE"); + c = Cipher.getInstance("AES/CBC/PKCS5Padding", + System.getProperty("test.provider.name", "SunJCE")); c.init(Cipher.DECRYPT_MODE, key, iv); } else { return null; diff --git a/test/jdk/javax/crypto/Cipher/GetMaxAllowed.java b/test/jdk/javax/crypto/Cipher/GetMaxAllowed.java index 7ef6f439aac..ee0b9c487a6 100644 --- a/test/jdk/javax/crypto/Cipher/GetMaxAllowed.java +++ b/test/jdk/javax/crypto/Cipher/GetMaxAllowed.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -96,7 +96,8 @@ public static void main(String[] args) throws Exception { // decide if the installed jurisdiction policy file is the // unlimited version boolean isUnlimited = true; - Cipher c = Cipher.getInstance("AES", "SunJCE"); + Cipher c = Cipher.getInstance("AES", + System.getProperty("test.provider.name", "SunJCE")); try { c.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(new byte[24], "AES")); } catch (InvalidKeyException ike) { diff --git a/test/jdk/javax/crypto/Cipher/TestCipherMode.java b/test/jdk/javax/crypto/Cipher/TestCipherMode.java index 19e854bca34..83ea6340871 100644 --- a/test/jdk/javax/crypto/Cipher/TestCipherMode.java +++ b/test/jdk/javax/crypto/Cipher/TestCipherMode.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -103,7 +103,9 @@ private static Key getKey(String t, CipherMode m) public static void main(String[] argv) throws Exception { - TestCipherMode test = new TestCipherMode("SunJCE", TRANSFORMATIONS); + TestCipherMode test = new TestCipherMode( + System.getProperty("test.provider.name", "SunJCE"), + TRANSFORMATIONS); System.out.println("All Tests Passed"); } diff --git a/test/jdk/javax/crypto/Cipher/TestGetInstance.java b/test/jdk/javax/crypto/Cipher/TestGetInstance.java index 01d60f63a84..07ad131c736 100644 --- a/test/jdk/javax/crypto/Cipher/TestGetInstance.java +++ b/test/jdk/javax/crypto/Cipher/TestGetInstance.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,16 +42,19 @@ private static void same(Provider p1, Provider p2) throws Exception { } public static void main(String[] args) throws Exception { - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); Cipher c; c = Cipher.getInstance("PBEWithMD5AndTripleDES"); same(p, c.getProvider()); - c = Cipher.getInstance("des", "SunJCE"); + c = Cipher.getInstance("des", + System.getProperty("test.provider.name", "SunJCE")); same(p, c.getProvider()); - c = Cipher.getInstance("des/cbc/pkcs5padding", "SunJCE"); + c = Cipher.getInstance("des/cbc/pkcs5padding", + System.getProperty("test.provider.name", "SunJCE")); same(p, c.getProvider()); c = Cipher.getInstance("des", p); @@ -66,7 +69,8 @@ public static void main(String[] args) throws Exception { System.out.println(e); } try { - c = Cipher.getInstance("DES/XYZ/PKCS5Padding", "SunJCE"); + c = Cipher.getInstance("DES/XYZ/PKCS5Padding", + System.getProperty("test.provider.name", "SunJCE")); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); @@ -85,7 +89,8 @@ public static void main(String[] args) throws Exception { System.out.println(e); } try { - c = Cipher.getInstance("DES/CBC/XYZPadding", "SunJCE"); + c = Cipher.getInstance("DES/CBC/XYZPadding", + System.getProperty("test.provider.name", "SunJCE")); throw new AssertionError(); } catch (NoSuchPaddingException e) { System.out.println(e); @@ -104,7 +109,8 @@ public static void main(String[] args) throws Exception { System.out.println(e); } try { - c = Cipher.getInstance("foo", "SunJCE"); + c = Cipher.getInstance("foo", + System.getProperty("test.provider.name", "SunJCE")); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); @@ -117,13 +123,15 @@ public static void main(String[] args) throws Exception { } try { - c = Cipher.getInstance("foo", "SUN"); + c = Cipher.getInstance("foo", + System.getProperty("test.provider.name", "SUN")); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); } try { - c = Cipher.getInstance("foo", Security.getProvider("SUN")); + c = Cipher.getInstance("foo", Security.getProvider( + System.getProperty("test.provider.name", "SUN"))); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); diff --git a/test/jdk/javax/crypto/CipherSpi/DirectBBRemaining.java b/test/jdk/javax/crypto/CipherSpi/DirectBBRemaining.java index 9e03c908660..5a383ded6dc 100644 --- a/test/jdk/javax/crypto/CipherSpi/DirectBBRemaining.java +++ b/test/jdk/javax/crypto/CipherSpi/DirectBBRemaining.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -57,7 +57,8 @@ public static void main(String args[]) throws Exception { random.nextBytes(keyBytes); SecretKey key = new SecretKeySpec(keyBytes, "DES"); - Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding", "SunJCE"); + Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding", + System.getProperty("test.provider.name", "SunJCE")); cipher.init(Cipher.ENCRYPT_MODE, key); /* diff --git a/test/jdk/javax/crypto/CryptoPermission/AllPermCheck.java b/test/jdk/javax/crypto/CryptoPermission/AllPermCheck.java index d7a1ad40e39..ea0ae4ab925 100644 --- a/test/jdk/javax/crypto/CryptoPermission/AllPermCheck.java +++ b/test/jdk/javax/crypto/CryptoPermission/AllPermCheck.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -84,7 +84,7 @@ public static void runTest(Cipher c, Key key) throws Exception { } public static void main(String[] args) throws Exception { - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + p.getName() + "..."); if (Cipher.getMaxAllowedKeyLength("DES") == Integer.MAX_VALUE) { // skip this test for unlimited jurisdiction policy files diff --git a/test/jdk/javax/crypto/CryptoPermission/LowercasePermCheck.java b/test/jdk/javax/crypto/CryptoPermission/LowercasePermCheck.java index c358cb10844..a8eca5f6830 100644 --- a/test/jdk/javax/crypto/CryptoPermission/LowercasePermCheck.java +++ b/test/jdk/javax/crypto/CryptoPermission/LowercasePermCheck.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -46,7 +46,7 @@ public class LowercasePermCheck { }; public static void main(String[] args) throws Exception { - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + p.getName() + "..."); if (Cipher.getMaxAllowedKeyLength("DES") == Integer.MAX_VALUE) { // skip this test for unlimited jurisdiction policy files diff --git a/test/jdk/javax/crypto/CryptoPermission/RSANoLimit.java b/test/jdk/javax/crypto/CryptoPermission/RSANoLimit.java index 4f54ff8ce3e..54ba18b98e1 100644 --- a/test/jdk/javax/crypto/CryptoPermission/RSANoLimit.java +++ b/test/jdk/javax/crypto/CryptoPermission/RSANoLimit.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -135,7 +135,7 @@ public class RSANoLimit { }; public static void main(String[] args) throws Exception { boolean result = true; - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + p.getName() + "..."); // Test#1: make sure Cipher.getMaxAllowedKeyLength returns the // correct value diff --git a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetAlgName.java b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetAlgName.java index 33b624e4a28..3b89257323b 100644 --- a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetAlgName.java +++ b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetAlgName.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,9 +47,11 @@ public static void main(String[] argv) throws Exception { String algo = ALGOS[i]; // generate AlgorithmParameters object SecretKeyFactory skf = - SecretKeyFactory.getInstance(algo, "SunJCE"); + SecretKeyFactory.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); SecretKey key = skf.generateSecret(ks); - Cipher c = Cipher.getInstance(algo, "SunJCE"); + Cipher c = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); c.init(Cipher.ENCRYPT_MODE, key); c.doFinal(BYTES); // force the parameter generation if not already diff --git a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpec.java b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpec.java index 314742cbf8d..6be4ef9bbdf 100644 --- a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpec.java +++ b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -46,7 +46,7 @@ public class GetKeySpec { PBEParameterSpec goodParamSpec = new PBEParameterSpec(new byte[8], 1024); GOOD_PARAMS = AlgorithmParameters.getInstance - (cipherAlg, "SunJCE"); + (cipherAlg, System.getProperty("test.provider.name", "SunJCE")); GOOD_PARAMS.init(goodParamSpec); } catch (Exception ex) { // should never happen @@ -102,7 +102,7 @@ public static void main(String[] argv) throws Exception { byte[] encryptedData = parse(encryptedPKCS8); boolean result = true; - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); // generate encrypted data and EncryptedPrivateKeyInfo object EncryptedPrivateKeyInfo epki = diff --git a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException.java b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException.java index e3ecb33d91c..7be1023aafe 100644 --- a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException.java +++ b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,7 +50,7 @@ public class GetKeySpecException { static { try { - sunjce = Security.getProvider("SunJCE"); + sunjce = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); PBEParameterSpec badParamSpec = new PBEParameterSpec(new byte[10], 10); BAD_PARAMS = AlgorithmParameters.getInstance(cipherAlg, sunjce); @@ -61,7 +61,7 @@ public class GetKeySpecException { GOOD_PARAMS.init(goodParamSpec); PBEKeySpec keySpec = new PBEKeySpec(passwd); SecretKeyFactory skf = - SecretKeyFactory.getInstance(cipherAlg, "SunJCE"); + SecretKeyFactory.getInstance(cipherAlg, System.getProperty("test.provider.name", "SunJCE")); cipherKey = skf.generateSecret(keySpec); } catch (Exception ex) { // should never happen @@ -164,7 +164,7 @@ public static void main0(String[] args) throws Exception { // TEST#3: getKeySpec(Key, String) System.out.println("Testing getKeySpec(Key, String)..."); try { - pkcs8Spec = epki.getKeySpec(null, "SunJCE"); + pkcs8Spec = epki.getKeySpec(null, System.getProperty("test.provider.name", "SunJCE")); throwException("Should throw NPE for null Key!"); } catch (NullPointerException npe) { System.out.println("Expected NPE thrown"); @@ -176,13 +176,13 @@ public static void main0(String[] args) throws Exception { System.out.println("Expected NPE thrown"); } try { - pkcs8Spec = epki.getKeySpec(INVALID_KEY, "SunJCE"); + pkcs8Spec = epki.getKeySpec(INVALID_KEY, System.getProperty("test.provider.name", "SunJCE")); throwException("Should throw IKE for invalid Key!"); } catch (InvalidKeyException ikse) { System.out.println("Expected IKE thrown"); } try { - pkcs8Spec = epkiBad.getKeySpec(cipherKey, "SunJCE"); + pkcs8Spec = epkiBad.getKeySpec(cipherKey, System.getProperty("test.provider.name", "SunJCE")); throwException("Should throw IKE for corrupted epki!"); } catch (InvalidKeyException ike) { System.out.println("Expected IKE thrown"); @@ -195,8 +195,9 @@ public static void main0(String[] args) throws Exception { System.out.println("Expected NSAE thrown"); } try { - Security.removeProvider("SunJCE"); - pkcs8Spec = epki.getKeySpec(cipherKey, "SunJCE"); + Security.removeProvider(System.getProperty("test.provider.name", "SunJCE")); + pkcs8Spec = epki.getKeySpec(cipherKey, + System.getProperty("test.provider.name", "SunJCE")); throwException("Should throw NSPE for unconfigured provider!"); } catch (NoSuchProviderException nspe) { System.out.println("Expected NSPE thrown"); diff --git a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException2.java b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException2.java index a3f983d0ea4..ef2d6acdef7 100644 --- a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException2.java +++ b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException2.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -54,7 +54,8 @@ public static void main(String[] argv) throws Exception { // TEST#1: getKeySpec(Cipher) with Cipher in an illegal state, // i.e. WRAP_MODE, UNWRAP_MODE. System.out.println("Testing getKeySpec(Cipher) with WRAP_MODE..."); - Cipher c = Cipher.getInstance(cipherAlg, "SunJCE"); + Cipher c = Cipher.getInstance(cipherAlg, + System.getProperty("test.provider.name", "SunJCE")); MyPBEKey key = new MyPBEKey(passwd); c.init(Cipher.WRAP_MODE, key); try { diff --git a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecInvalidEncoding.java b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecInvalidEncoding.java index fcc51332488..a6aa3c86222 100644 --- a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecInvalidEncoding.java +++ b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecInvalidEncoding.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -48,7 +48,7 @@ public class GetKeySpecInvalidEncoding { PBEParameterSpec goodParamSpec = new PBEParameterSpec(new byte[8], 6); GOOD_PARAMS = AlgorithmParameters.getInstance - (cipherAlg, "SunJCE"); + (cipherAlg, System.getProperty("test.provider.name", "SunJCE")); GOOD_PARAMS.init(goodParamSpec); } catch (Exception ex) { // should never happen @@ -101,7 +101,7 @@ public static void main(String[] argv) throws Exception { } byte[] encryptedData = parse(encryptedPKCS8); - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); // generate encrypted data and EncryptedPrivateKeyInfo object EncryptedPrivateKeyInfo epki = diff --git a/test/jdk/javax/crypto/KeyGenerator/TestGetInstance.java b/test/jdk/javax/crypto/KeyGenerator/TestGetInstance.java index 53c766874ed..3863fc98154 100644 --- a/test/jdk/javax/crypto/KeyGenerator/TestGetInstance.java +++ b/test/jdk/javax/crypto/KeyGenerator/TestGetInstance.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,13 +43,14 @@ private static void same(Object o1, Object o2) throws Exception { public static void main(String[] args) throws Exception { long start = System.currentTimeMillis(); - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); KeyGenerator kg; kg = KeyGenerator.getInstance("des"); System.out.println("Default: " + kg.getProvider().getName()); - kg = KeyGenerator.getInstance("des", "SunJCE"); + kg = KeyGenerator.getInstance("des", + System.getProperty("test.provider.name", "SunJCE")); same(p, kg.getProvider()); kg = KeyGenerator.getInstance("des", p); same(p, kg.getProvider()); @@ -61,7 +62,8 @@ public static void main(String[] args) throws Exception { System.out.println(e); } try { - kg = KeyGenerator.getInstance("foo", "SunJCE"); + kg = KeyGenerator.getInstance("foo", + System.getProperty("test.provider.name", "SunJCE")); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); @@ -74,13 +76,15 @@ public static void main(String[] args) throws Exception { } try { - kg = KeyGenerator.getInstance("foo", "SUN"); + kg = KeyGenerator.getInstance("foo", + System.getProperty("test.provider.name", "SUN")); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); } try { - kg = KeyGenerator.getInstance("foo", Security.getProvider("SUN")); + kg = KeyGenerator.getInstance("foo", + Security.getProvider(System.getProperty("test.provider.name", "SUN"))); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); diff --git a/test/jdk/javax/crypto/KeyGenerator/TestKGParity.java b/test/jdk/javax/crypto/KeyGenerator/TestKGParity.java index efaefb06199..65e9b062de7 100644 --- a/test/jdk/javax/crypto/KeyGenerator/TestKGParity.java +++ b/test/jdk/javax/crypto/KeyGenerator/TestKGParity.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -54,8 +54,10 @@ private void run() throws Exception { Provider[] providers = Security.getProviders(); for (Provider p : providers) { String prvName = p.getName(); - if (prvName.startsWith("SunJCE") - || prvName.startsWith("SunPKCS11-")) { + if ((System.getProperty("test.provider.name") != null && + prvName.equals(System.getProperty("test.provider.name"))) || + (System.getProperty("test.provider.name") == null && + (prvName.startsWith("SunJCE") || prvName.startsWith("SunPKCS11-")))) { for (String algorithm : ALGORITHM_ARR) { if (!runTest(p, algorithm)) { throw new RuntimeException( diff --git a/test/jdk/javax/crypto/Mac/ByteBuffers.java b/test/jdk/javax/crypto/Mac/ByteBuffers.java index a00e5a43cd6..39efee91798 100644 --- a/test/jdk/javax/crypto/Mac/ByteBuffers.java +++ b/test/jdk/javax/crypto/Mac/ByteBuffers.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -40,7 +40,7 @@ public class ByteBuffers { public static void main(String[] args) throws Exception { - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); Random random = new Random(); int n = 10 * 1024; byte[] t = new byte[n]; diff --git a/test/jdk/javax/crypto/Mac/TestGetInstance.java b/test/jdk/javax/crypto/Mac/TestGetInstance.java index 30d055423db..0361bc0b8d0 100644 --- a/test/jdk/javax/crypto/Mac/TestGetInstance.java +++ b/test/jdk/javax/crypto/Mac/TestGetInstance.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,13 +43,13 @@ private static void same(Object o1, Object o2) throws Exception { public static void main(String[] args) throws Exception { long start = System.currentTimeMillis(); - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); Mac mac; mac = Mac.getInstance("hmacmd5"); System.out.println("Default: " + mac.getProvider().getName()); - mac = Mac.getInstance("hmacmd5", "SunJCE"); + mac = Mac.getInstance("hmacmd5", System.getProperty("test.provider.name", "SunJCE")); same(p, mac.getProvider()); mac = Mac.getInstance("hmacmd5", p); same(p, mac.getProvider()); @@ -61,7 +61,7 @@ public static void main(String[] args) throws Exception { System.out.println(e); } try { - mac = Mac.getInstance("foo", "SunJCE"); + mac = Mac.getInstance("foo", System.getProperty("test.provider.name", "SunJCE")); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); @@ -74,13 +74,14 @@ public static void main(String[] args) throws Exception { } try { - mac = Mac.getInstance("foo", "SUN"); + mac = Mac.getInstance("foo", System.getProperty("test.provider.name", "SUN")); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); } try { - mac = Mac.getInstance("foo", Security.getProvider("SUN")); + mac = Mac.getInstance("foo", Security.getProvider( + System.getProperty("test.provider.name", "SUN"))); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); diff --git a/test/jdk/javax/crypto/SecretKeyFactory/SecKFTranslateTest.java b/test/jdk/javax/crypto/SecretKeyFactory/SecKFTranslateTest.java index f1b5c825798..398cf12a97e 100644 --- a/test/jdk/javax/crypto/SecretKeyFactory/SecKFTranslateTest.java +++ b/test/jdk/javax/crypto/SecretKeyFactory/SecKFTranslateTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,7 +50,8 @@ */ public class SecKFTranslateTest { - private static final String SUN_JCE = "SunJCE"; + private static final String PROVIDER_NAME = + System.getProperty("test.provider.name", "SunJCE"); public static void main(String[] args) throws Exception { @@ -77,10 +78,10 @@ private void runTest(Algorithm algo) throws NoSuchAlgorithmException, Random random = new Random(); // Initialization SecretKeyFactory skf = SecretKeyFactory.getInstance(algo.toString(), - SUN_JCE); + PROVIDER_NAME); random.nextBytes(plainText); - Cipher ci = Cipher.getInstance(algo.toString(), SUN_JCE); + Cipher ci = Cipher.getInstance(algo.toString(), PROVIDER_NAME); // Encryption ci.init(Cipher.ENCRYPT_MODE, key1, aps[0]); byte[] cipherText = new byte[ci.getOutputSize(plainText.length)]; diff --git a/test/jdk/javax/crypto/SecretKeyFactory/SecKeyFacSunJCEPrf.java b/test/jdk/javax/crypto/SecretKeyFactory/SecKeyFacSunJCEPrf.java index c5080ba33c5..a8819b04457 100644 --- a/test/jdk/javax/crypto/SecretKeyFactory/SecKeyFacSunJCEPrf.java +++ b/test/jdk/javax/crypto/SecretKeyFactory/SecKeyFacSunJCEPrf.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -56,7 +56,8 @@ public static void main(String[] args) throws Exception { Security.insertProviderAt(evilProv, 1); SecretKeyFactory pbkdf2 = - SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1", "SunJCE"); + SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1", + System.getProperty("test.provider.name", "SunJCE")); PBEKeySpec pbks = new PBEKeySpec(PASS, SALT, ITER, 160); SecretKey secKey1 = pbkdf2.generateSecret(pbks); diff --git a/test/jdk/javax/crypto/SecretKeyFactory/evilprov/com/evilprovider/EvilHmacSHA1.java b/test/jdk/javax/crypto/SecretKeyFactory/evilprov/com/evilprovider/EvilHmacSHA1.java index 2617928ff16..06310056274 100644 --- a/test/jdk/javax/crypto/SecretKeyFactory/evilprov/com/evilprovider/EvilHmacSHA1.java +++ b/test/jdk/javax/crypto/SecretKeyFactory/evilprov/com/evilprovider/EvilHmacSHA1.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,7 +33,8 @@ public final class EvilHmacSHA1 extends MacSpi { private final Mac internalMac; public EvilHmacSHA1() throws GeneralSecurityException { - internalMac = Mac.getInstance("HmacSHA1", "SunJCE"); + internalMac = Mac.getInstance("HmacSHA1", + System.getProperty("test.provider.name", "SunJCE")); } @Override diff --git a/test/jdk/javax/security/auth/login/Configuration/GetInstance.java b/test/jdk/javax/security/auth/login/Configuration/GetInstance.java index 4be056bd26c..41820c90743 100644 --- a/test/jdk/javax/security/auth/login/Configuration/GetInstance.java +++ b/test/jdk/javax/security/auth/login/Configuration/GetInstance.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -84,12 +84,14 @@ private int testDefault(int testnum) throws Exception { private int testStringProvider(int testnum) throws Exception { // get an instance of JavaLoginConfig from SUN - Configuration c = Configuration.getInstance(JAVA_CONFIG, null, "SUN"); + Configuration c = Configuration.getInstance(JAVA_CONFIG, null, + System.getProperty("test.provider.name", "SUN")); doTest(c, testnum++); // get an instance of JavaLoginConfig from SunRsaSign try { - c = Configuration.getInstance(JAVA_CONFIG, null, "SunRsaSign"); + c = Configuration.getInstance(JAVA_CONFIG, null, + System.getProperty("test.provider.name", "SunRsaSign")); throw new SecurityException("test " + testnum++ + " failed"); } catch (NoSuchAlgorithmException nsae) { // good @@ -112,14 +114,16 @@ private int testProvider(int testnum) throws Exception { // get an instance of JavaLoginConfig from SUN Configuration c = Configuration.getInstance(JAVA_CONFIG, null, - Security.getProvider("SUN")); + Security.getProvider( + System.getProperty("test.provider.name", "SUN"))); doTest(c, testnum++); // get an instance of JavaLoginConfig from SunRsaSign try { c = Configuration.getInstance(JAVA_CONFIG, null, - Security.getProvider("SunRsaSign")); + Security.getProvider( + System.getProperty("test.provider.name","SunRsaSign"))); throw new SecurityException("test " + testnum++ + " failed"); } catch (NoSuchAlgorithmException nsae) { // good @@ -186,7 +190,7 @@ private int testException(int testnum) throws Exception { try { Configuration c = Configuration.getInstance(JAVA_CONFIG, new BadParam(), - "SUN"); + System.getProperty("test.provider.name","SUN")); throw new SecurityException("test " + testnum++ + " failed"); } catch (IllegalArgumentException iae) { // good @@ -196,7 +200,7 @@ private int testException(int testnum) throws Exception { try { Configuration c = Configuration.getInstance(JAVA_CONFIG, new BadParam(), - Security.getProvider("SUN")); + Security.getProvider(System.getProperty("test.provider.name","SUN"))); throw new SecurityException("test " + testnum++ + " failed"); } catch (IllegalArgumentException iae) { // good @@ -285,7 +289,7 @@ private void doTest(Configuration c, int testnum) throws Exception { testnum = doCommon(c, testnum); // test getProvider - if ("SUN".equals(c.getProvider().getName())) { + if (System.getProperty("test.provider.name","SUN").equals(c.getProvider().getName())) { System.out.println("test " + testnum + " (getProvider) passed"); } else { throw new SecurityException("test " + testnum + @@ -325,7 +329,7 @@ private void doTestURI(Configuration c, } // test getProvider - if ("SUN".equals(c.getProvider().getName())) { + if (System.getProperty("test.provider.name","SUN").equals(c.getProvider().getName())) { System.out.println("test " + testnum + " (getProvider) passed"); } else { throw new SecurityException("test " + testnum + diff --git a/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.grantedPolicy b/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.grantedPolicy index bcb47b245a7..f92b9fa63ad 100644 --- a/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.grantedPolicy +++ b/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.grantedPolicy @@ -1,4 +1,5 @@ grant { + permission java.util.PropertyPermission "test.provider.name", "read"; permission java.util.PropertyPermission "test.src", "read"; permission java.io.FilePermission "${test.src}${/}*", "read"; diff --git a/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.java b/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.java index fc2bec08221..68417a34bd9 100644 --- a/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.java +++ b/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -51,7 +51,7 @@ public static void main(String[] args) throws Exception { try { Configuration c = Configuration.getInstance - (JAVA_CONFIG, null, "SUN"); + (JAVA_CONFIG, null, System.getProperty("test.provider.name","SUN")); throw new RuntimeException("did not catch security exception"); } catch (SecurityException se) { // good @@ -59,7 +59,8 @@ public static void main(String[] args) throws Exception { try { Configuration c = Configuration.getInstance - (JAVA_CONFIG, null, Security.getProvider("SUN")); + (JAVA_CONFIG, null, Security.getProvider( + System.getProperty("test.provider.name","SUN"))); throw new RuntimeException("did not catch security exception"); } catch (SecurityException se) { // good @@ -71,7 +72,8 @@ public static void main(String[] args) throws Exception { "GetInstanceSecurity.grantedPolicy"); URI uri = file.toURI(); URIParameter param = new URIParameter(uri); - Policy p = Policy.getInstance("JavaPolicy", param, "SUN"); + Policy p = Policy.getInstance("JavaPolicy", param, + System.getProperty("test.provider.name","SUN")); Policy.setPolicy(p); // retry operations @@ -88,7 +90,7 @@ public static void main(String[] args) throws Exception { try { Configuration c = Configuration.getInstance - (JAVA_CONFIG, uriParam, "SUN"); + (JAVA_CONFIG, uriParam, System.getProperty("test.provider.name","SUN")); // good } catch (SecurityException se) { throw new RuntimeException("unexpected SecurityException"); @@ -96,7 +98,8 @@ public static void main(String[] args) throws Exception { try { Configuration c = Configuration.getInstance - (JAVA_CONFIG, uriParam, Security.getProvider("SUN")); + (JAVA_CONFIG, uriParam, Security.getProvider( + System.getProperty("test.provider.name","SUN"))); // good } catch (SecurityException se) { throw new RuntimeException("unexpected SecurityException"); diff --git a/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.policy b/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.policy index 4c0f7acfc88..162168a3ffd 100644 --- a/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.policy +++ b/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.policy @@ -1,6 +1,6 @@ grant { - + permission java.util.PropertyPermission "test.provider.name", "read"; permission java.util.PropertyPermission "test.src", "read"; permission java.lang.RuntimePermission "accessClassInPackage.sun.net.www"; permission java.io.FilePermission diff --git a/test/jdk/sun/security/ec/ECDSAPrimitive.java b/test/jdk/sun/security/ec/ECDSAPrimitive.java index ba9ed0dec80..71e2e30044b 100644 --- a/test/jdk/sun/security/ec/ECDSAPrimitive.java +++ b/test/jdk/sun/security/ec/ECDSAPrimitive.java @@ -93,7 +93,8 @@ public static void main(String[] args) throws Exception { digestAlg = null; } else { AlgorithmParameters params = - AlgorithmParameters.getInstance("EC", "SunEC"); + AlgorithmParameters.getInstance("EC", + System.getProperty("test.provider.name", "SunEC")); params.init(new ECGenParameterSpec(curveName)); ecParams = params.getParameterSpec( ECParameterSpec.class); diff --git a/test/jdk/sun/security/ec/ECDSAPrvGreaterThanOrder.java b/test/jdk/sun/security/ec/ECDSAPrvGreaterThanOrder.java index 40f52d534a7..f5a02971dbf 100644 --- a/test/jdk/sun/security/ec/ECDSAPrvGreaterThanOrder.java +++ b/test/jdk/sun/security/ec/ECDSAPrvGreaterThanOrder.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -52,7 +52,7 @@ public static void main(String[] args) throws Exception { KeyAgreement ka = null; try { sig = Signature.getInstance("SHA256withECDSA", - "SunEC"); + System.getProperty("test.provider.name", "SunEC")); sig.initSign(ecPrivKey); throw new RuntimeException("Expected exception for " + "ECDSA/" + sig.getAlgorithm() + "/" + curveName + @@ -66,7 +66,8 @@ public static void main(String[] args) throws Exception { // Next, try starting a ECDH operation try { - ka = KeyAgreement.getInstance("ECDH", "SunEC"); + ka = KeyAgreement.getInstance("ECDH", + System.getProperty("test.provider.name", "SunEC")); ka.init(ecPrivKey); throw new RuntimeException("Expected exception for ECDH/" + curveName + " not thrown."); @@ -83,7 +84,7 @@ private static ECPrivateKey makePrivateKey(String curveName) { System.out.println("Creating private key for curve " + curveName); AlgorithmParameters params = AlgorithmParameters.getInstance( - "EC", "SunEC"); + "EC", System.getProperty("test.provider.name", "SunEC")); params.init(new ECGenParameterSpec(curveName)); ECParameterSpec ecParameters = params.getParameterSpec( ECParameterSpec.class); @@ -96,7 +97,8 @@ private static ECPrivateKey makePrivateKey(String curveName) { System.out.println("Modified d Value is: " + dVal); // Create the private key - KeyFactory kf = KeyFactory.getInstance("EC", "SunEC"); + KeyFactory kf = KeyFactory.getInstance("EC", + System.getProperty("test.provider.name", "SunEC")); return (ECPrivateKey)kf.generatePrivate( new ECPrivateKeySpec(dVal, ecParameters)); } catch (GeneralSecurityException gse) { diff --git a/test/jdk/sun/security/ec/InvalidCurve.java b/test/jdk/sun/security/ec/InvalidCurve.java index 4c696970b84..76d3b6b79e6 100644 --- a/test/jdk/sun/security/ec/InvalidCurve.java +++ b/test/jdk/sun/security/ec/InvalidCurve.java @@ -38,7 +38,8 @@ public static void main(String[] args) { KeyPairGenerator keyGen; try { - keyGen = KeyPairGenerator.getInstance("EC", "SunEC"); + keyGen = KeyPairGenerator.getInstance("EC", + System.getProperty("test.provider.name", "SunEC")); ECGenParameterSpec brainpoolSpec = new ECGenParameterSpec("brainpoolP160r1"); keyGen.initialize(brainpoolSpec); diff --git a/test/jdk/sun/security/ec/NSASuiteB/TestSHAwithECDSASignatureOids.java b/test/jdk/sun/security/ec/NSASuiteB/TestSHAwithECDSASignatureOids.java index cca4e77befb..ba209d7e429 100644 --- a/test/jdk/sun/security/ec/NSASuiteB/TestSHAwithECDSASignatureOids.java +++ b/test/jdk/sun/security/ec/NSASuiteB/TestSHAwithECDSASignatureOids.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -45,7 +45,7 @@ public class TestSHAwithECDSASignatureOids { public static void main(String[] args) throws Exception { TestSignatureOidHelper helper = new TestSignatureOidHelper("EC", - "SunEC", 256, DATA); + System.getProperty("test.provider.name", "SunEC"), 256, DATA); helper.execute(); } } diff --git a/test/jdk/sun/security/ec/OidInstance.java b/test/jdk/sun/security/ec/OidInstance.java index 972c8e1026a..590ddce305e 100644 --- a/test/jdk/sun/security/ec/OidInstance.java +++ b/test/jdk/sun/security/ec/OidInstance.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,8 +38,8 @@ public class OidInstance { public static void main(String[] args) throws Exception { String oid = KnownOIDs.EC.value(); - KeyFactory.getInstance(oid, "SunEC"); - KeyPairGenerator.getInstance(oid, "SunEC"); - AlgorithmParameters.getInstance(oid, "SunEC"); + KeyFactory.getInstance(oid, System.getProperty("test.provider.name", "SunEC")); + KeyPairGenerator.getInstance(oid, System.getProperty("test.provider.name", "SunEC")); + AlgorithmParameters.getInstance(oid, System.getProperty("test.provider.name", "SunEC")); } } diff --git a/test/jdk/sun/security/ec/SignatureDigestTruncate.java b/test/jdk/sun/security/ec/SignatureDigestTruncate.java index 47f0123a491..99048f85137 100644 --- a/test/jdk/sun/security/ec/SignatureDigestTruncate.java +++ b/test/jdk/sun/security/ec/SignatureDigestTruncate.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -96,17 +96,20 @@ private static void runTest(String alg, String curveName, byte[] expectedSig = hex.parseHex(sigStr); AlgorithmParameters params = - AlgorithmParameters.getInstance("EC", "SunEC"); + AlgorithmParameters.getInstance("EC", + System.getProperty("test.provider.name", "SunEC")); params.init(new ECGenParameterSpec(curveName)); ECParameterSpec ecParams = params.getParameterSpec(ECParameterSpec.class); - KeyFactory kf = KeyFactory.getInstance("EC", "SunEC"); + KeyFactory kf = KeyFactory.getInstance("EC", + System.getProperty("test.provider.name", "SunEC")); BigInteger s = new BigInteger(1, privateKey); ECPrivateKeySpec privKeySpec = new ECPrivateKeySpec(s, ecParams); PrivateKey privKey = kf.generatePrivate(privKeySpec); - Signature sig = Signature.getInstance(alg, "SunEC"); + Signature sig = Signature.getInstance(alg, + System.getProperty("test.provider.name", "SunEC")); sig.initSign(privKey, new FixedRandom(k)); sig.update(msg); byte[] computedSig = sig.sign(); diff --git a/test/jdk/sun/security/ec/SignatureKAT.java b/test/jdk/sun/security/ec/SignatureKAT.java index 542d90d6ca5..802c74f3b69 100644 --- a/test/jdk/sun/security/ec/SignatureKAT.java +++ b/test/jdk/sun/security/ec/SignatureKAT.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -132,16 +132,19 @@ private static void runTest(TestData td) throws Exception { System.out.println("Testing " + td.sigName + " with " + td.cd.name); AlgorithmParameters params = - AlgorithmParameters.getInstance("EC", "SunEC"); + AlgorithmParameters.getInstance("EC", + System.getProperty("test.provider.name", "SunEC")); params.init(new ECGenParameterSpec(td.cd.name)); ECParameterSpec ecParams = params.getParameterSpec(ECParameterSpec.class); - KeyFactory kf = KeyFactory.getInstance("EC", "SunEC"); + KeyFactory kf = KeyFactory.getInstance("EC", + System.getProperty("test.provider.name", "SunEC")); PrivateKey privKey = kf.generatePrivate (new ECPrivateKeySpec(td.cd.priv, ecParams)); - Signature sig = Signature.getInstance(td.sigName, "SunEC"); + Signature sig = Signature.getInstance(td.sigName, + System.getProperty("test.provider.name", "SunEC")); sig.initSign(privKey); sig.update(td.cd.msgBytes); // NOTE: there is no way to set the nonce value into current SunEC diff --git a/test/jdk/sun/security/ec/SignedObjectChain.java b/test/jdk/sun/security/ec/SignedObjectChain.java index cfeff8c1ad5..e245a6caa2d 100644 --- a/test/jdk/sun/security/ec/SignedObjectChain.java +++ b/test/jdk/sun/security/ec/SignedObjectChain.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -35,7 +35,7 @@ public class SignedObjectChain { private static class Test extends Chain.Test { public Test(Chain.SigAlg sigAlg) { - super(sigAlg, Chain.KeyAlg.EC, Chain.Provider.SunEC); + super(sigAlg, Chain.KeyAlg.EC, Chain.Provider.TestProvider_or_SunEC); } } diff --git a/test/jdk/sun/security/ec/TestEC.java b/test/jdk/sun/security/ec/TestEC.java index de4f47ca5ed..dacb67ce892 100644 --- a/test/jdk/sun/security/ec/TestEC.java +++ b/test/jdk/sun/security/ec/TestEC.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -85,7 +85,7 @@ public static void main(String[] args) throws Exception { } public static void main0(String[] args) throws Exception { - Provider p = Security.getProvider("SunEC"); + Provider p = Security.getProvider(System.getProperty("test.provider.name", "SunEC")); if (p == null) { throw new NoSuchProviderException("Can't get SunEC provider"); diff --git a/test/jdk/sun/security/ec/ed/EdCRLSign.java b/test/jdk/sun/security/ec/ed/EdCRLSign.java index 4ed512b8f20..10a801f4f5f 100644 --- a/test/jdk/sun/security/ec/ed/EdCRLSign.java +++ b/test/jdk/sun/security/ec/ed/EdCRLSign.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,7 +44,7 @@ public class EdCRLSign { private static final String OID25519 = "OID.1.3.101.112"; private static final String OIDN448 = "1.3.101.113"; private static final String OID448 = "OID.1.3.101.113"; - private static final String PROVIDER = "SunEC"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunEC"); private static final SecureRandom S_RND = new SecureRandom(new byte[]{0x1}); public static void main(String[] args) throws Exception { diff --git a/test/jdk/sun/security/ec/ed/EdDSAKeyCompatibility.java b/test/jdk/sun/security/ec/ed/EdDSAKeyCompatibility.java index 4240ec53477..f3796073b71 100644 --- a/test/jdk/sun/security/ec/ed/EdDSAKeyCompatibility.java +++ b/test/jdk/sun/security/ec/ed/EdDSAKeyCompatibility.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -54,7 +54,7 @@ public class EdDSAKeyCompatibility { private static final String EDDSA = "EdDSA"; private static final String ED25519 = "Ed25519"; private static final String ED448 = "Ed448"; - private static final String PROVIDER = "SunEC"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunEC"); public static void main(String[] args) throws Exception { diff --git a/test/jdk/sun/security/ec/ed/EdDSAKeySize.java b/test/jdk/sun/security/ec/ed/EdDSAKeySize.java index d5a6bec6f5a..8cb207c8fe2 100644 --- a/test/jdk/sun/security/ec/ed/EdDSAKeySize.java +++ b/test/jdk/sun/security/ec/ed/EdDSAKeySize.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -60,7 +60,7 @@ public class EdDSAKeySize { private static final String OID25519 = "OID.1.3.101.112"; private static final String OIDN448 = "1.3.101.113"; private static final String OID448 = "OID.1.3.101.113"; - private static final String PROVIDER = "SunEC"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunEC"); private static final SecureRandom RND = new SecureRandom(new byte[]{0x1}); public static void main(String[] args) throws Exception { diff --git a/test/jdk/sun/security/ec/ed/EdDSANegativeTest.java b/test/jdk/sun/security/ec/ed/EdDSANegativeTest.java index c03249e8553..ba45be67575 100644 --- a/test/jdk/sun/security/ec/ed/EdDSANegativeTest.java +++ b/test/jdk/sun/security/ec/ed/EdDSANegativeTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -48,7 +48,7 @@ public class EdDSANegativeTest { private static final String EDDSA = "EdDSA"; private static final String ED25519 = "Ed25519"; private static final String ED448 = "Ed448"; - private static final String PROVIDER = "SunEC"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunEC"); private static final String OTHER = "other"; private static final byte[] MSG = "TEST".getBytes(); diff --git a/test/jdk/sun/security/ec/ed/EdDSAParamSpec.java b/test/jdk/sun/security/ec/ed/EdDSAParamSpec.java index 046134f220d..b13f51a74a7 100644 --- a/test/jdk/sun/security/ec/ed/EdDSAParamSpec.java +++ b/test/jdk/sun/security/ec/ed/EdDSAParamSpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,7 +43,7 @@ public class EdDSAParamSpec { private static final String EDDSA = "EdDSA"; private static final String ED25519 = "Ed25519"; private static final String ED448 = "Ed448"; - private static final String PROVIDER = "SunEC"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunEC"); private static final byte[] MSG = "TEST".getBytes(); private static final SecureRandom RND = new SecureRandom(new byte[]{0x1}); diff --git a/test/jdk/sun/security/ec/ed/EdDSAReuseTest.java b/test/jdk/sun/security/ec/ed/EdDSAReuseTest.java index bebabb8539f..9e40b572513 100644 --- a/test/jdk/sun/security/ec/ed/EdDSAReuseTest.java +++ b/test/jdk/sun/security/ec/ed/EdDSAReuseTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,7 +42,7 @@ public class EdDSAReuseTest { private static final String EDDSA = "EdDSA"; private static final String ED25519 = "Ed25519"; private static final String ED448 = "Ed448"; - private static final String PROVIDER = "SunEC"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunEC"); private static final String MSG = "TEST"; private static final int REUSE = 20; private static final int ONCE = 1; diff --git a/test/jdk/sun/security/ec/ed/EdDSATest.java b/test/jdk/sun/security/ec/ed/EdDSATest.java index 5ba06b8970a..c154bca4252 100644 --- a/test/jdk/sun/security/ec/ed/EdDSATest.java +++ b/test/jdk/sun/security/ec/ed/EdDSATest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -68,7 +68,7 @@ public class EdDSATest { private static final String OID25519 = "OID.1.3.101.112"; private static final String OIDN448 = "1.3.101.113"; private static final String OID448 = "OID.1.3.101.113"; - private static final String PROVIDER = "SunEC"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunEC"); private static final byte[] MSG = "TEST".getBytes(); private static final SecureRandom S_RND = new SecureRandom(new byte[]{0x1}); diff --git a/test/jdk/sun/security/ec/ed/TestEdDSA.java b/test/jdk/sun/security/ec/ed/TestEdDSA.java index 511d92ab997..1990638496f 100644 --- a/test/jdk/sun/security/ec/ed/TestEdDSA.java +++ b/test/jdk/sun/security/ec/ed/TestEdDSA.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -462,10 +462,14 @@ private static void runBasicTest(String name, Object param) * when the algorithm ID for a specific curve is specified. */ private static void runCurveMixTest() throws Exception { - runCurveMixTest("SunEC", "Ed25519", 448); - runCurveMixTest("SunEC", "Ed25519", "Ed448"); - runCurveMixTest("SunEC", "Ed448", 255); - runCurveMixTest("SunEC", "Ed448", "Ed25519"); + runCurveMixTest(System.getProperty("test.provider.name", "SunEC"), + "Ed25519", 448); + runCurveMixTest(System.getProperty("test.provider.name", "SunEC"), + "Ed25519", "Ed448"); + runCurveMixTest(System.getProperty("test.provider.name", "SunEC"), + "Ed448", 255); + runCurveMixTest(System.getProperty("test.provider.name", "SunEC"), + "Ed448", "Ed25519"); } private static void runCurveMixTest(String providerName, String name, diff --git a/test/jdk/sun/security/jca/PreferredProviderNegativeTest.java b/test/jdk/sun/security/jca/PreferredProviderNegativeTest.java index 58bcbe91153..cd74b5164d3 100644 --- a/test/jdk/sun/security/jca/PreferredProviderNegativeTest.java +++ b/test/jdk/sun/security/jca/PreferredProviderNegativeTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -107,7 +107,7 @@ public static void main(String[] args) String expected; String value = args[1]; - expected = "SunJCE"; + expected = System.getProperty("test.provider.name", "SunJCE"); if (args.length >= 2) { switch (args[0]) { diff --git a/test/jdk/sun/security/mscapi/InteropWithSunRsaSign.java b/test/jdk/sun/security/mscapi/InteropWithSunRsaSign.java index cc01caca17c..1494c175c7a 100644 --- a/test/jdk/sun/security/mscapi/InteropWithSunRsaSign.java +++ b/test/jdk/sun/security/mscapi/InteropWithSunRsaSign.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -103,11 +103,13 @@ static void matrix(PSSParameterSpec pss) throws Exception { "-------", "----------------", "------", "--------", "------"); // KeyPairGenerator chooses SPI when getInstance() is called. - String[] provsForKPG = {"SunRsaSign", "SunMSCAPI"}; + String[] provsForKPG = {System.getProperty("test.provider.name", "SunRsaSign"), + "SunMSCAPI"}; // "-" means no preferred provider. In this case, SPI is chosen // when initSign/initVerify is called. Worth testing. - String[] provsForSignature = {"SunRsaSign", "SunMSCAPI", "-"}; + String[] provsForSignature = {System.getProperty("test.provider.name", "SunRsaSign"), + "SunMSCAPI", "-"}; int pos = 0; for (String pg : provsForKPG) { diff --git a/test/jdk/sun/security/pkcs/pkcs8/TestLeadingZeros.java b/test/jdk/sun/security/pkcs/pkcs8/TestLeadingZeros.java index 92a20450157..4291f4e25c1 100644 --- a/test/jdk/sun/security/pkcs/pkcs8/TestLeadingZeros.java +++ b/test/jdk/sun/security/pkcs/pkcs8/TestLeadingZeros.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,7 +50,8 @@ public class TestLeadingZeros { }; public static void main(String[] argv) throws Exception { - KeyFactory factory = KeyFactory.getInstance("DSA", "SUN"); + KeyFactory factory = KeyFactory.getInstance("DSA", + System.getProperty("test.provider.name", "SUN")); for (String encodings : PKCS8_ENCODINGS) { byte[] encodingBytes = hexToBytes(encodings); diff --git a/test/jdk/sun/security/pkcs11/Cipher/EncryptionPadding.java b/test/jdk/sun/security/pkcs11/Cipher/EncryptionPadding.java index 8757c0bab7a..7e1f0561f6c 100644 --- a/test/jdk/sun/security/pkcs11/Cipher/EncryptionPadding.java +++ b/test/jdk/sun/security/pkcs11/Cipher/EncryptionPadding.java @@ -93,9 +93,10 @@ private static void testWithInputSize(Provider p, int inputSize, sunPKCS11cipher.doFinal(ByteBuffer.allocate(0), cipherText); } - Cipher sunJCECipher = Cipher.getInstance(transformation, "SunJCE"); - sunJCECipher.init(Cipher.DECRYPT_MODE, key); - byte[] sunJCEPlain = sunJCECipher.doFinal(cipherText.array()); + Cipher providerCipher = Cipher.getInstance(transformation, + System.getProperty("test.provider.name", "SunJCE")); + providerCipher.init(Cipher.DECRYPT_MODE, key); + byte[] sunJCEPlain = providerCipher.doFinal(cipherText.array()); if (!Arrays.equals(plainText, sunJCEPlain)) { throw new Exception("Cross-provider cipher test failed."); diff --git a/test/jdk/sun/security/pkcs11/Cipher/KeyWrap/NISTWrapKAT.java b/test/jdk/sun/security/pkcs11/Cipher/KeyWrap/NISTWrapKAT.java index e6724d38321..e1f32ea8076 100644 --- a/test/jdk/sun/security/pkcs11/Cipher/KeyWrap/NISTWrapKAT.java +++ b/test/jdk/sun/security/pkcs11/Cipher/KeyWrap/NISTWrapKAT.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -259,9 +259,12 @@ public void testKeyWrap(String algo, String key, int keyLen, System.out.println("=> skip, exceeds max allowed size " + allowed); return; } - Cipher c1 = Cipher.getInstance(algo, "SunJCE"); - Cipher c2 = Cipher.getInstance(algo, "SunJCE"); - Cipher c3 = Cipher.getInstance(algo, "SunJCE"); + Cipher c1 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); + Cipher c2 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); + Cipher c3 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); byte[] keyVal = toBytes(key, keyLen << 1); byte[] dataVal = toBytes(data, dataLen << 1); @@ -319,9 +322,12 @@ public void testEnc(String algo, String key, int keyLen, String data, System.out.println("=> skip, exceeds max allowed size " + allowed); return; } - Cipher c1 = Cipher.getInstance(algo, "SunJCE"); - Cipher c2 = Cipher.getInstance(algo, "SunJCE"); - Cipher c3 = Cipher.getInstance(algo, "SunJCE"); + Cipher c1 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); + Cipher c2 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); + Cipher c3 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); byte[] keyVal = toBytes(key, keyLen << 1); byte[] dataVal = toBytes(data, dataLen << 1); diff --git a/test/jdk/sun/security/pkcs11/Cipher/KeyWrap/TestGeneral.java b/test/jdk/sun/security/pkcs11/Cipher/KeyWrap/TestGeneral.java index 7ff5ec6563b..0cfb4557572 100644 --- a/test/jdk/sun/security/pkcs11/Cipher/KeyWrap/TestGeneral.java +++ b/test/jdk/sun/security/pkcs11/Cipher/KeyWrap/TestGeneral.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -245,7 +245,8 @@ public void main(Provider p) throws Exception { SecretKey aes256 = new SecretKeySpec(DATA_32, "AES"); SecretKey any256 = new SecretKeySpec(DATA_32, "ANY"); PrivateKey priv = KeyPairGenerator.getInstance - ("RSA", "SunRsaSign").generateKeyPair().getPrivate(); + ("RSA", System.getProperty("test.provider.name","SunRsaSign")) + .generateKeyPair().getPrivate(); String[] algos = { "AES/KW/PKCS5Padding", "AES/KW/NoPadding", "AES/KWP/NoPadding" diff --git a/test/jdk/sun/security/pkcs11/Cipher/PBECipher.java b/test/jdk/sun/security/pkcs11/Cipher/PBECipher.java index 04e9adf9663..242d09f6e9b 100644 --- a/test/jdk/sun/security/pkcs11/Cipher/PBECipher.java +++ b/test/jdk/sun/security/pkcs11/Cipher/PBECipher.java @@ -75,7 +75,8 @@ private enum Configuration { AnonymousPBEKey, } - private static Provider sunJCE = Security.getProvider("SunJCE"); + private static Provider sunJCE = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); private record AssertionData(String pbeCipherAlgo, String cipherAlgo, BigInteger expectedCiphertext) {} diff --git a/test/jdk/sun/security/pkcs11/Cipher/TestPKCS5PaddingError.java b/test/jdk/sun/security/pkcs11/Cipher/TestPKCS5PaddingError.java index d192526bf4b..cf8e000fce7 100644 --- a/test/jdk/sun/security/pkcs11/Cipher/TestPKCS5PaddingError.java +++ b/test/jdk/sun/security/pkcs11/Cipher/TestPKCS5PaddingError.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -78,7 +78,7 @@ public void main(Provider p) throws Exception { KeyGenerator.getInstance(currTest.keyAlgo, p); SecretKey key = kg.generateKey(); Cipher c1 = Cipher.getInstance(currTest.transformation, - "SunJCE"); + System.getProperty("test.provider.name", "SunJCE")); c1.init(Cipher.ENCRYPT_MODE, key); byte[] cipherText = c1.doFinal(plainText); AlgorithmParameters params = c1.getParameters(); diff --git a/test/jdk/sun/security/pkcs11/Cipher/TestRSACipher.java b/test/jdk/sun/security/pkcs11/Cipher/TestRSACipher.java index 233cb4e623e..8156decacc8 100644 --- a/test/jdk/sun/security/pkcs11/Cipher/TestRSACipher.java +++ b/test/jdk/sun/security/pkcs11/Cipher/TestRSACipher.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -70,7 +70,8 @@ public void main(Provider p) throws Exception { for (String rsaAlgo: RSA_ALGOS) { Cipher c1 = Cipher.getInstance(rsaAlgo, p); - Cipher c2 = Cipher.getInstance(rsaAlgo, "SunJCE"); + Cipher c2 = Cipher.getInstance(rsaAlgo, + System.getProperty("test.provider.name", "SunJCE")); c1.init(Cipher.ENCRYPT_MODE, publicKey); e = c1.doFinal(b); diff --git a/test/jdk/sun/security/pkcs11/Cipher/TestRSACipherWrap.java b/test/jdk/sun/security/pkcs11/Cipher/TestRSACipherWrap.java index 7191d5baac5..632f5f48e66 100644 --- a/test/jdk/sun/security/pkcs11/Cipher/TestRSACipherWrap.java +++ b/test/jdk/sun/security/pkcs11/Cipher/TestRSACipherWrap.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2008, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -63,7 +63,8 @@ public void main(Provider p) throws Exception { for (String rsaAlgo: RSA_ALGOS) { Cipher cipherPKCS11 = Cipher.getInstance(rsaAlgo, p); - Cipher cipherJce = Cipher.getInstance(rsaAlgo, "SunJCE"); + Cipher cipherJce = Cipher.getInstance(rsaAlgo, + System.getProperty("test.provider.name", "SunJCE")); String algos[] = {"AES", "RC2", "Blowfish"}; int keySizes[] = {128, 256}; diff --git a/test/jdk/sun/security/pkcs11/Cipher/TestRawRSACipher.java b/test/jdk/sun/security/pkcs11/Cipher/TestRawRSACipher.java index 9eceea3a394..32319f9f3cf 100644 --- a/test/jdk/sun/security/pkcs11/Cipher/TestRawRSACipher.java +++ b/test/jdk/sun/security/pkcs11/Cipher/TestRawRSACipher.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -64,7 +64,8 @@ public void main(Provider p) throws Exception { plainText[0] = 0; // to ensure that it's less than modulus Cipher c1 = Cipher.getInstance("RSA/ECB/NoPadding", p); - Cipher c2 = Cipher.getInstance("RSA/ECB/NoPadding", "SunJCE"); + Cipher c2 = Cipher.getInstance("RSA/ECB/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); c1.init(Cipher.ENCRYPT_MODE, kp.getPublic()); c2.init(Cipher.DECRYPT_MODE, kp.getPrivate()); diff --git a/test/jdk/sun/security/pkcs11/Cipher/TestSymmCiphers.java b/test/jdk/sun/security/pkcs11/Cipher/TestSymmCiphers.java index e0a7d53e1c1..2395b329dd6 100644 --- a/test/jdk/sun/security/pkcs11/Cipher/TestSymmCiphers.java +++ b/test/jdk/sun/security/pkcs11/Cipher/TestSymmCiphers.java @@ -103,7 +103,7 @@ public void main(Provider p) throws Exception { SecretKey key = kg.generateKey(); Cipher c1 = Cipher.getInstance(currTest.transformation, p); Cipher c2 = Cipher.getInstance(currTest.transformation, - "SunJCE"); + System.getProperty("test.provider.name", "SunJCE")); byte[] plainTxt = new byte[currTest.dataSize]; random.nextBytes(plainTxt); diff --git a/test/jdk/sun/security/pkcs11/Cipher/TestSymmCiphersNoPad.java b/test/jdk/sun/security/pkcs11/Cipher/TestSymmCiphersNoPad.java index 2288a5699fb..7505c21a1ab 100644 --- a/test/jdk/sun/security/pkcs11/Cipher/TestSymmCiphersNoPad.java +++ b/test/jdk/sun/security/pkcs11/Cipher/TestSymmCiphersNoPad.java @@ -89,7 +89,7 @@ public void main(Provider p) throws Exception { SecretKey key = kg.generateKey(); Cipher c1 = Cipher.getInstance(currTest.transformation, p); Cipher c2 = Cipher.getInstance(currTest.transformation, - "SunJCE"); + System.getProperty("test.provider.name", "SunJCE")); byte[] plainTxt = new byte[currTest.dataSize]; random.nextBytes(plainTxt); diff --git a/test/jdk/sun/security/pkcs11/KeyAgreement/TestDH.java b/test/jdk/sun/security/pkcs11/KeyAgreement/TestDH.java index d5569f0f3cd..dc25754c717 100644 --- a/test/jdk/sun/security/pkcs11/KeyAgreement/TestDH.java +++ b/test/jdk/sun/security/pkcs11/KeyAgreement/TestDH.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -68,7 +68,8 @@ public void main(Provider p) throws Exception { throw new Exception("Secrets (1,2) do not match"); } - ka2 = KeyAgreement.getInstance("DH", "SunJCE"); + ka2 = KeyAgreement.getInstance("DH", + System.getProperty("test.provider.name", "SunJCE")); ka2.init(kp1.getPrivate()); ka2.doPhase(kp2.getPublic(), true); System.out.println("Derive 3..."); @@ -101,7 +102,8 @@ private static void testAlgorithm(KeyAgreement ka1, KeyPair kp1, ka1.init(kp1.getPrivate()); ka1.doPhase(kp2.getPublic(), true); - System.out.println("Derive " + algorithm + " using SunJCE..."); + System.out.println("Derive " + algorithm + " using " + + System.getProperty("test.provider.name", "SunJCE") + "..."); key1 = ka1.generateSecret(algorithm); ka2.init(kp1.getPrivate()); diff --git a/test/jdk/sun/security/pkcs11/KeyAgreement/TestInterop.java b/test/jdk/sun/security/pkcs11/KeyAgreement/TestInterop.java index 146a6505423..9172b2a4941 100644 --- a/test/jdk/sun/security/pkcs11/KeyAgreement/TestInterop.java +++ b/test/jdk/sun/security/pkcs11/KeyAgreement/TestInterop.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -90,7 +90,8 @@ public void main(Provider prov) throws Exception { DHPrivateKeySpec privateSpec; KeyFactory kf = KeyFactory.getInstance("DH"); KeyAgreement ka = KeyAgreement.getInstance("DH", prov); - KeyAgreement kbSunJCE = KeyAgreement.getInstance("DH", "SunJCE"); + KeyAgreement kbSunJCE = KeyAgreement.getInstance("DH", + System.getProperty("test.provider.name", "SunJCE")); DHPrivateKeySpec privSpecA = new DHPrivateKeySpec(xa, p, g); DHPublicKeySpec pubSpecA = new DHPublicKeySpec(ya, p, g); PrivateKey privA = kf.generatePrivate(privSpecA); diff --git a/test/jdk/sun/security/pkcs11/KeyStore/Basic.java b/test/jdk/sun/security/pkcs11/KeyStore/Basic.java index 0ac7f37d59c..b6c7af91b57 100644 --- a/test/jdk/sun/security/pkcs11/KeyStore/Basic.java +++ b/test/jdk/sun/security/pkcs11/KeyStore/Basic.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -142,7 +142,8 @@ public void main(Provider p) throws Exception { // get private keys KeyFactory kf = KeyFactory.getInstance("RSA"); - KeyFactory dsaKf = KeyFactory.getInstance("DSA", "SUN"); + KeyFactory dsaKf = KeyFactory.getInstance("DSA", + System.getProperty("test.provider.name", "SUN")); ObjectInputStream ois1 = new ObjectInputStream (new FileInputStream(new File(DIR, "pk1.key"))); diff --git a/test/jdk/sun/security/pkcs11/Mac/PBAMac.java b/test/jdk/sun/security/pkcs11/Mac/PBAMac.java index d0b3312c52b..c9b5e2c3e7b 100644 --- a/test/jdk/sun/security/pkcs11/Mac/PBAMac.java +++ b/test/jdk/sun/security/pkcs11/Mac/PBAMac.java @@ -66,7 +66,8 @@ private enum Configuration { AnonymousPBEKey, } - private static Provider sunJCE = Security.getProvider("SunJCE"); + private static Provider sunJCE = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); private record AssertionData(String pbeHmacAlgo, String hmacAlgo, BigInteger expectedMac) {} diff --git a/test/jdk/sun/security/pkcs11/MessageDigest/ReinitDigest.java b/test/jdk/sun/security/pkcs11/MessageDigest/ReinitDigest.java index 132ba84f679..90ed49b42f5 100644 --- a/test/jdk/sun/security/pkcs11/MessageDigest/ReinitDigest.java +++ b/test/jdk/sun/security/pkcs11/MessageDigest/ReinitDigest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -73,7 +73,8 @@ public void main(Provider p) throws Exception { private void doTest(String alg, Provider p, byte[] data1, byte[] data2) throws Exception { System.out.println("Testing " + alg); - MessageDigest md1 = MessageDigest.getInstance(alg, "SUN"); + MessageDigest md1 = MessageDigest.getInstance(alg, + System.getProperty("test.provider.name", "SUN")); byte[] d1 = md1.digest(data1); MessageDigest md2 = MessageDigest.getInstance(alg, p); checkInstances(md1, md2); diff --git a/test/jdk/sun/security/pkcs11/Signature/SigInteropPSS.java b/test/jdk/sun/security/pkcs11/Signature/SigInteropPSS.java index 11147022771..d5b22400bff 100644 --- a/test/jdk/sun/security/pkcs11/Signature/SigInteropPSS.java +++ b/test/jdk/sun/security/pkcs11/Signature/SigInteropPSS.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -59,7 +59,8 @@ public void main(Provider p) throws Exception { } Signature sigSunRsaSign = - Signature.getInstance("RSASSA-PSS", "SunRsaSign"); + Signature.getInstance("RSASSA-PSS", + System.getProperty("test.provider.name", "SunRsaSign")); KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", p); kpg.initialize(3072); diff --git a/test/jdk/sun/security/pkcs11/Signature/SigInteropPSS2.java b/test/jdk/sun/security/pkcs11/Signature/SigInteropPSS2.java index c15f10aab3e..dfe56167848 100644 --- a/test/jdk/sun/security/pkcs11/Signature/SigInteropPSS2.java +++ b/test/jdk/sun/security/pkcs11/Signature/SigInteropPSS2.java @@ -51,8 +51,9 @@ public static void main(String[] args) throws Exception { @Override public void main(Provider p) throws Exception { - Provider sunRsaSign = Security.getProvider("SunRsaSign"); - Security.removeProvider("SunRsaSign"); + String providerName = System.getProperty("test.provider.name", "SunRsaSign"); + Provider sunRsaSign = Security.getProvider(providerName); + Security.removeProvider(providerName); Signature sigPkcs11; Signature sigSunRsaSign = diff --git a/test/jdk/sun/security/pkcs11/Signature/TestDSAKeyLength.java b/test/jdk/sun/security/pkcs11/Signature/TestDSAKeyLength.java index b2ab96c90c6..d2515fa0f5a 100644 --- a/test/jdk/sun/security/pkcs11/Signature/TestDSAKeyLength.java +++ b/test/jdk/sun/security/pkcs11/Signature/TestDSAKeyLength.java @@ -62,7 +62,8 @@ protected boolean skipTest(Provider provider) { @Override public void main(Provider provider) throws Exception { - KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA", "SUN"); + KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA", + System.getProperty("test.provider.name", "SUN")); kpg.initialize(2048, new SecureRandom()); KeyPair pair = kpg.generateKeyPair(); diff --git a/test/jdk/sun/security/pkcs11/policy b/test/jdk/sun/security/pkcs11/policy index 54281a78179..d5a78b6ba82 100644 --- a/test/jdk/sun/security/pkcs11/policy +++ b/test/jdk/sun/security/pkcs11/policy @@ -1,3 +1,4 @@ grant { permission java.lang.RuntimePermission "setSecurityManager"; -}; \ No newline at end of file + permission java.util.PropertyPermission "test.provider.name", "read"; +}; diff --git a/test/jdk/sun/security/pkcs11/rsa/GenKeyStore.java b/test/jdk/sun/security/pkcs11/rsa/GenKeyStore.java index 629a504a040..26178e9a576 100644 --- a/test/jdk/sun/security/pkcs11/rsa/GenKeyStore.java +++ b/test/jdk/sun/security/pkcs11/rsa/GenKeyStore.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -74,7 +74,8 @@ private static void addToKeyStore(KeyStore ks, KeyPair kp, String name) throws E private static void generateKeyPair(KeyStore ks, int keyLength, String alias) throws Exception { System.out.println("Generating " + keyLength + " keypair " + alias + "..."); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", "SunRsaSign"); + KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", + System.getProperty("test.provider.name", "SunRsaSign")); kpg.initialize(keyLength); KeyPair kp = kpg.generateKeyPair(); addToKeyStore(ks, kp, alias); diff --git a/test/jdk/sun/security/pkcs11/rsa/rsakeys.ks.policy b/test/jdk/sun/security/pkcs11/rsa/rsakeys.ks.policy index 4a0b0d2c46d..6cc9a8f0248 100644 --- a/test/jdk/sun/security/pkcs11/rsa/rsakeys.ks.policy +++ b/test/jdk/sun/security/pkcs11/rsa/rsakeys.ks.policy @@ -1,4 +1,5 @@ grant { permission java.lang.RuntimePermission "setSecurityManager"; permission java.io.FilePermission "${test.src}/rsakeys.ks", "read"; -}; \ No newline at end of file + permission java.util.PropertyPermission "test.provider.name", "read"; +}; diff --git a/test/jdk/sun/security/provider/DSA/SupportedDSAParamGen.java b/test/jdk/sun/security/provider/DSA/SupportedDSAParamGen.java index 52a97b34a3e..5dcd86e2474 100644 --- a/test/jdk/sun/security/provider/DSA/SupportedDSAParamGen.java +++ b/test/jdk/sun/security/provider/DSA/SupportedDSAParamGen.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -40,7 +40,8 @@ public class SupportedDSAParamGen { public static void main(String[] args) throws Exception { AlgorithmParameterGenerator apg = - AlgorithmParameterGenerator.getInstance("DSA", "SUN"); + AlgorithmParameterGenerator.getInstance("DSA", + System.getProperty("test.provider.name", "SUN")); DSAGenParameterSpec spec = new DSAGenParameterSpec( Integer.valueOf(args[0]).intValue(), diff --git a/test/jdk/sun/security/provider/DSA/TestAlgParameterGenerator.java b/test/jdk/sun/security/provider/DSA/TestAlgParameterGenerator.java index cf39a5bab5e..2eac80d91bb 100644 --- a/test/jdk/sun/security/provider/DSA/TestAlgParameterGenerator.java +++ b/test/jdk/sun/security/provider/DSA/TestAlgParameterGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -73,7 +73,8 @@ private static void checkParamStrength(AlgorithmParameters param, public static void main(String[] args) throws Exception { AlgorithmParameterGenerator apg - = AlgorithmParameterGenerator.getInstance("DSA", "SUN"); + = AlgorithmParameterGenerator.getInstance("DSA", + System.getProperty("test.provider.name", "SUN")); long start, stop; // make sure no-init still works diff --git a/test/jdk/sun/security/provider/DSA/TestDSA.java b/test/jdk/sun/security/provider/DSA/TestDSA.java index 5d3228949f5..918f18ed081 100644 --- a/test/jdk/sun/security/provider/DSA/TestDSA.java +++ b/test/jdk/sun/security/provider/DSA/TestDSA.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -108,7 +108,7 @@ private static void verify(Provider provider, String alg, PublicKey key, byte[] public static void main(String[] args) throws Exception { long start = System.currentTimeMillis(); - Provider provider = Security.getProvider("SUN"); + Provider provider = Security.getProvider(System.getProperty("test.provider.name", "SUN")); System.out.println("Testing provider " + provider + "..."); KeyFactory kf = KeyFactory.getInstance("DSA", provider); diff --git a/test/jdk/sun/security/provider/DSA/TestDSA2.java b/test/jdk/sun/security/provider/DSA/TestDSA2.java index 320acce4880..ed3111695f1 100644 --- a/test/jdk/sun/security/provider/DSA/TestDSA2.java +++ b/test/jdk/sun/security/provider/DSA/TestDSA2.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -39,7 +39,8 @@ public class TestDSA2 { // NOTE: need to explictly specify provider since the more // preferred provider SunPKCS11 provider only supports up // 1024 bits. - private static final String PROV = "SUN"; + private static final String PROV = + System.getProperty("test.provider.name", "SUN"); private static final String[] SIG_ALGOS = { "NONEwithDSA", diff --git a/test/jdk/sun/security/provider/DSA/TestKeyPairGenerator.java b/test/jdk/sun/security/provider/DSA/TestKeyPairGenerator.java index 105c50015da..f2ddcec9d8d 100644 --- a/test/jdk/sun/security/provider/DSA/TestKeyPairGenerator.java +++ b/test/jdk/sun/security/provider/DSA/TestKeyPairGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -57,10 +57,12 @@ public static void main(String[] args) throws Exception { // problem was when not calling initialize() // do that twice to artifically inflate the time // on JDKs that do not have the fix - kpg = KeyPairGenerator.getInstance("DSA", "SUN"); + kpg = KeyPairGenerator.getInstance("DSA", + System.getProperty("test.provider.name", "SUN")); kp = kpg.generateKeyPair(); - kpg = KeyPairGenerator.getInstance("DSA", "SUN"); + kpg = KeyPairGenerator.getInstance("DSA", + System.getProperty("test.provider.name", "SUN")); kp = kpg.generateKeyPair(); // some other basic tests diff --git a/test/jdk/sun/security/provider/MessageDigest/DigestKAT.java b/test/jdk/sun/security/provider/MessageDigest/DigestKAT.java index 1f797330c48..ce3c9b3c7a9 100644 --- a/test/jdk/sun/security/provider/MessageDigest/DigestKAT.java +++ b/test/jdk/sun/security/provider/MessageDigest/DigestKAT.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -177,7 +177,7 @@ private static Test t(String alg, byte[] data, String digest) { static void runTests(Test[] tests) throws Exception { long start = System.currentTimeMillis(); - Provider p = Security.getProvider("SUN"); + Provider p = Security.getProvider(System.getProperty("test.provider.name","SUN")); System.out.println("Testing provider " + p.getName() + "..."); for (int i = 0; i < tests.length; i++) { Test test = tests[i]; diff --git a/test/jdk/sun/security/provider/MessageDigest/Offsets.java b/test/jdk/sun/security/provider/MessageDigest/Offsets.java index 44850c2970d..2c800fcb854 100644 --- a/test/jdk/sun/security/provider/MessageDigest/Offsets.java +++ b/test/jdk/sun/security/provider/MessageDigest/Offsets.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,7 +47,8 @@ private static void outOfBounds(MessageDigest md, int arrayLen, int ofs, int len private static void test(String algorithm, int minOfs, int maxOfs, int minLen, int maxLen) throws Exception { Random random = new Random(); - MessageDigest md = MessageDigest.getInstance(algorithm, "SUN"); + MessageDigest md = MessageDigest.getInstance(algorithm, + System.getProperty("test.provider.name", "SUN")); System.out.println("Testing " + algorithm + "..."); outOfBounds(md, 16, 0, 32); outOfBounds(md, 16, -8, 16); diff --git a/test/jdk/sun/security/provider/MessageDigest/TestSHAClone.java b/test/jdk/sun/security/provider/MessageDigest/TestSHAClone.java index ac809153b39..28c2dd6fb77 100644 --- a/test/jdk/sun/security/provider/MessageDigest/TestSHAClone.java +++ b/test/jdk/sun/security/provider/MessageDigest/TestSHAClone.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -75,7 +75,8 @@ private void run() throws Exception { public static void main(String[] argv) throws Exception { - Provider p = Security.getProvider("SUN"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SUN")); for (int i=0; i DATA = Arrays.asList( diff --git a/test/jdk/sun/security/provider/NSASuiteB/TestSHAwithDSASignatureOids.java b/test/jdk/sun/security/provider/NSASuiteB/TestSHAwithDSASignatureOids.java index dad84ccfd7e..e76ca9a1386 100644 --- a/test/jdk/sun/security/provider/NSASuiteB/TestSHAwithDSASignatureOids.java +++ b/test/jdk/sun/security/provider/NSASuiteB/TestSHAwithDSASignatureOids.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,7 +41,7 @@ public class TestSHAwithDSASignatureOids { public static void main(String[] args) throws Exception { TestSignatureOidHelper helper = new TestSignatureOidHelper("DSA", - "SUN", 1024, DATA); + System.getProperty("test.provider.name", "SUN"), 1024, DATA); helper.execute(); } } diff --git a/test/jdk/sun/security/rsa/BrokenRSAPrivateCrtKey.java b/test/jdk/sun/security/rsa/BrokenRSAPrivateCrtKey.java index 0f03cdde6fc..787011782fa 100644 --- a/test/jdk/sun/security/rsa/BrokenRSAPrivateCrtKey.java +++ b/test/jdk/sun/security/rsa/BrokenRSAPrivateCrtKey.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -39,8 +39,9 @@ public class BrokenRSAPrivateCrtKey { public static void main(String[] args) throws Exception { KeyPairGenerator generator = - KeyPairGenerator.getInstance("RSA", "SunRsaSign"); - generator.initialize(512); + KeyPairGenerator.getInstance("RSA", + System.getProperty("test.provider.name", "SunRsaSign")); + generator.initialize(2048); KeyPair pair = generator.generateKeyPair(); @@ -55,7 +56,8 @@ public static void main(String[] args) throws Exception { privatekey.getPrimeExponentQ(), privatekey.getCrtCoefficient()); - KeyFactory factory = KeyFactory.getInstance("RSA", "SunRsaSign"); + KeyFactory factory = KeyFactory.getInstance("RSA", + System.getProperty("test.provider.name", "SunRsaSign")); PrivateKey privatekey2 = factory.generatePrivate(spec); diff --git a/test/jdk/sun/security/rsa/GenKeyStore.java b/test/jdk/sun/security/rsa/GenKeyStore.java index 629a504a040..26178e9a576 100644 --- a/test/jdk/sun/security/rsa/GenKeyStore.java +++ b/test/jdk/sun/security/rsa/GenKeyStore.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -74,7 +74,8 @@ private static void addToKeyStore(KeyStore ks, KeyPair kp, String name) throws E private static void generateKeyPair(KeyStore ks, int keyLength, String alias) throws Exception { System.out.println("Generating " + keyLength + " keypair " + alias + "..."); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", "SunRsaSign"); + KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", + System.getProperty("test.provider.name", "SunRsaSign")); kpg.initialize(keyLength); KeyPair kp = kpg.generateKeyPair(); addToKeyStore(ks, kp, alias); diff --git a/test/jdk/sun/security/rsa/KeySizeTest.java b/test/jdk/sun/security/rsa/KeySizeTest.java index 35f9902b8c3..129a3539b51 100644 --- a/test/jdk/sun/security/rsa/KeySizeTest.java +++ b/test/jdk/sun/security/rsa/KeySizeTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -53,7 +53,8 @@ public class KeySizeTest { /** * JDK default RSA Provider. */ - private static final String PROVIDER_NAME = "SunRsaSign"; + private static final String PROVIDER_NAME = + System.getProperty("test.provider.name", "SunRsaSign"); public static void main(String[] args) throws Exception { int iKeyPairSize = Integer.parseInt(args[0]); diff --git a/test/jdk/sun/security/rsa/PrivateKeyEqualityTest.java b/test/jdk/sun/security/rsa/PrivateKeyEqualityTest.java index 1a3a6df756a..3ed4aae37b0 100644 --- a/test/jdk/sun/security/rsa/PrivateKeyEqualityTest.java +++ b/test/jdk/sun/security/rsa/PrivateKeyEqualityTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -46,7 +46,8 @@ public class PrivateKeyEqualityTest { /** * JDK default RSA Provider. */ - private static final String PROVIDER_NAME = "SunRsaSign"; + private static final String PROVIDER_NAME = + System.getProperty("test.provider.name", "SunRsaSign"); public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchProviderException, InvalidKeySpecException { diff --git a/test/jdk/sun/security/rsa/SignatureTest.java b/test/jdk/sun/security/rsa/SignatureTest.java index 15df96354b3..d48d7ca481b 100644 --- a/test/jdk/sun/security/rsa/SignatureTest.java +++ b/test/jdk/sun/security/rsa/SignatureTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -61,7 +61,8 @@ public class SignatureTest { /** * JDK default RSA Provider. */ - private static final String PROVIDER = "SunRsaSign"; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunRsaSign"); /** * How much times signature updated. diff --git a/test/jdk/sun/security/rsa/SpecTest.java b/test/jdk/sun/security/rsa/SpecTest.java index 43ccf3ca718..8cc0bca9898 100644 --- a/test/jdk/sun/security/rsa/SpecTest.java +++ b/test/jdk/sun/security/rsa/SpecTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -53,7 +53,8 @@ public class SpecTest { /** * JDK default RSA Provider. */ - private static final String PROVIDER = "SunRsaSign"; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunRsaSign"); /** * diff --git a/test/jdk/sun/security/rsa/TestCACerts.java b/test/jdk/sun/security/rsa/TestCACerts.java index 14ed4229472..2d8a1246e5e 100644 --- a/test/jdk/sun/security/rsa/TestCACerts.java +++ b/test/jdk/sun/security/rsa/TestCACerts.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,7 +38,8 @@ public class TestCACerts { - private final static String PROVIDER = "SunRsaSign"; + private final static String PROVIDER = + System.getProperty("test.provider.name", "SunRsaSign"); private final static char SEP = File.separatorChar; diff --git a/test/jdk/sun/security/rsa/TestKeyFactory.java b/test/jdk/sun/security/rsa/TestKeyFactory.java index 8a4f4b7f47f..8be2037a833 100644 --- a/test/jdk/sun/security/rsa/TestKeyFactory.java +++ b/test/jdk/sun/security/rsa/TestKeyFactory.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -228,7 +228,8 @@ private static void test(KeyFactory kf, Key key) throws Exception { public static void main(String[] args) throws Exception { long start = System.currentTimeMillis(); KeyStore ks = getKeyStore(); - KeyFactory kf = KeyFactory.getInstance("RSA", "SunRsaSign"); + KeyFactory kf = KeyFactory.getInstance("RSA", + System.getProperty("test.provider.name", "SunRsaSign")); for (Enumeration e = ks.aliases(); e.hasMoreElements(); ) { String alias = (String)e.nextElement(); Key key = null; diff --git a/test/jdk/sun/security/rsa/TestKeyPairGenerator.java b/test/jdk/sun/security/rsa/TestKeyPairGenerator.java index 72ab7e73acf..ff142c712fe 100644 --- a/test/jdk/sun/security/rsa/TestKeyPairGenerator.java +++ b/test/jdk/sun/security/rsa/TestKeyPairGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -111,7 +111,8 @@ private static void testInvalidSignature(KeyPair kp1, KeyPair kp2) throws Except public static void main(String[] args) throws Exception { long start = System.currentTimeMillis(); - provider = Security.getProvider("SunRsaSign"); + provider = Security.getProvider( + System.getProperty("test.provider.name", "SunRsaSign")); data = new byte[2048]; // keypair generation is very slow, test only a few short keys int[] keyLengths = {512, 512, 1024}; diff --git a/test/jdk/sun/security/rsa/TestKeyPairGeneratorExponent.java b/test/jdk/sun/security/rsa/TestKeyPairGeneratorExponent.java index 7f17ed7bc48..6d77683e04e 100644 --- a/test/jdk/sun/security/rsa/TestKeyPairGeneratorExponent.java +++ b/test/jdk/sun/security/rsa/TestKeyPairGeneratorExponent.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -81,7 +81,8 @@ public static void testInvalidExponents(KeyPairGenerator kpg, public static void main(String[] args) throws Exception { KeyPairGenerator kpg = - KeyPairGenerator.getInstance("RSA", "SunRsaSign"); + KeyPairGenerator.getInstance("RSA", + System.getProperty("test.provider.name", "SunRsaSign")); for(BigInteger validExponent : validExponents) { testValidExponents(kpg, validExponent); diff --git a/test/jdk/sun/security/rsa/TestKeyPairGeneratorInit.java b/test/jdk/sun/security/rsa/TestKeyPairGeneratorInit.java index e87d5a5b6a4..e72474fda24 100644 --- a/test/jdk/sun/security/rsa/TestKeyPairGeneratorInit.java +++ b/test/jdk/sun/security/rsa/TestKeyPairGeneratorInit.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -46,7 +46,8 @@ public void nextBytes(byte[] bytes) { public static void main(String[] args) throws Exception { KeyPairGenerator kpg = - KeyPairGenerator.getInstance("RSA", "SunRsaSign"); + KeyPairGenerator.getInstance("RSA", + System.getProperty("test.provider.name", "SunRsaSign")); MySecureRandom rnd = new MySecureRandom(); kpg.initialize(2048, rnd); System.out.println("Generate keypair then check"); diff --git a/test/jdk/sun/security/rsa/TestKeyPairGeneratorLength.java b/test/jdk/sun/security/rsa/TestKeyPairGeneratorLength.java index 8959ede5f30..5b05af007f2 100644 --- a/test/jdk/sun/security/rsa/TestKeyPairGeneratorLength.java +++ b/test/jdk/sun/security/rsa/TestKeyPairGeneratorLength.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -40,7 +40,8 @@ public static void main(String[] args) throws Exception { } private static void test(int len) throws Exception { - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", "SunRsaSign"); + KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", + System.getProperty("test.provider.name", "SunRsaSign")); kpg.initialize(len); for (int i = 0; i < 6; i++) { System.out.println("Generating keypair " + len + " bit keypair " + (i + 1) + "..."); diff --git a/test/jdk/sun/security/rsa/TestRSAOidSupport.java b/test/jdk/sun/security/rsa/TestRSAOidSupport.java index 2cd06258609..551fa33cd8a 100644 --- a/test/jdk/sun/security/rsa/TestRSAOidSupport.java +++ b/test/jdk/sun/security/rsa/TestRSAOidSupport.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -59,14 +59,16 @@ public static void main(String[] args) throws Exception { X509EncodedKeySpec x509Spec = new X509EncodedKeySpec (toByteArray(DER_BYTES)); String keyAlgo = "RSA"; - KeyFactory kf = KeyFactory.getInstance(keyAlgo, "SunRsaSign"); + KeyFactory kf = KeyFactory.getInstance(keyAlgo, + System.getProperty("test.provider.name", "SunRsaSign")); RSAPublicKey rsaKey = (RSAPublicKey) kf.generatePublic(x509Spec); if (rsaKey.getAlgorithm() != keyAlgo) { throw new RuntimeException("Key algo should be " + keyAlgo + ", but got " + rsaKey.getAlgorithm()); } - kf = KeyFactory.getInstance("RSASSA-PSS", "SunRsaSign"); + kf = KeyFactory.getInstance("RSASSA-PSS", + System.getProperty("test.provider.name", "SunRsaSign")); try { kf.generatePublic(x509Spec); throw new RuntimeException("Should throw IKSE"); diff --git a/test/jdk/sun/security/rsa/TestSigGen15.java b/test/jdk/sun/security/rsa/TestSigGen15.java index 12cc028b072..480ed8d878c 100644 --- a/test/jdk/sun/security/rsa/TestSigGen15.java +++ b/test/jdk/sun/security/rsa/TestSigGen15.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -71,7 +71,8 @@ public static void main(String[] args) throws Exception { static boolean runTest(List records) throws Exception { boolean success = true; //for (Provider provider : Security.getProviders()) { - Provider p = Security.getProvider("SunRsaSign"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name","SunRsaSign")); KeyFactory kf = KeyFactory.getInstance("RSA", p); for (SigRecord sr : records) { System.out.println("==Testing Record : " + sr + "=="); diff --git a/test/jdk/sun/security/rsa/TestSignatures.java b/test/jdk/sun/security/rsa/TestSignatures.java index 3a6a086b7db..0296ac21d64 100644 --- a/test/jdk/sun/security/rsa/TestSignatures.java +++ b/test/jdk/sun/security/rsa/TestSignatures.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -111,7 +111,8 @@ private static void test(PrivateKey privateKey, PublicKey publicKey) public static void main(String[] args) throws Exception { long start = System.currentTimeMillis(); - provider = Security.getProvider("SunRsaSign"); + provider = Security.getProvider( + System.getProperty("test.provider.name", "SunRsaSign")); data = new byte[2048]; new Random().nextBytes(data); KeyStore ks = getKeyStore(); diff --git a/test/jdk/sun/security/rsa/WithoutNULL.java b/test/jdk/sun/security/rsa/WithoutNULL.java index 64cf831099d..39daca6d304 100644 --- a/test/jdk/sun/security/rsa/WithoutNULL.java +++ b/test/jdk/sun/security/rsa/WithoutNULL.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -48,7 +48,8 @@ public static void main(String[] args) throws Exception { b8oaWkxk069jDTM1RhllPJZkAjeQRbw4gkg4N6wKZz9B/jdSRMNJg/b9QdRYZOHOBxsEHMbUREPV DoCOLaxB8eIXX0EWkiE="""); - Signature s = Signature.getInstance("SHA1withRSA", "SunRsaSign"); + Signature s = Signature.getInstance("SHA1withRSA", + System.getProperty("test.provider.name", "SunRsaSign")); s.initVerify(KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(key))); if (!s.verify(sig)) { throw new RuntimeException("Does not verify"); diff --git a/test/jdk/sun/security/rsa/pss/PSSKeyCompatibility.java b/test/jdk/sun/security/rsa/pss/PSSKeyCompatibility.java index 4961a2a2ad8..5515e770c26 100644 --- a/test/jdk/sun/security/rsa/pss/PSSKeyCompatibility.java +++ b/test/jdk/sun/security/rsa/pss/PSSKeyCompatibility.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -51,7 +51,8 @@ public class PSSKeyCompatibility { private static final String ALGO = "RSASSA-PSS"; private static final String OID = "1.2.840.113549.1.1.10"; - private static final String PROVIDER = "SunRsaSign"; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunRsaSign"); public static void main(String[] args) { diff --git a/test/jdk/sun/security/rsa/pss/PSSParametersTest.java b/test/jdk/sun/security/rsa/pss/PSSParametersTest.java index c71e5bb34a4..a489b3273ad 100644 --- a/test/jdk/sun/security/rsa/pss/PSSParametersTest.java +++ b/test/jdk/sun/security/rsa/pss/PSSParametersTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -39,7 +39,8 @@ public class PSSParametersTest { /** * JDK default RSA Provider. */ - private static final String PROVIDER = "SunRsaSign"; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunRsaSign"); private static final String PSS_ALGO = "RSASSA-PSS"; private static final String PSS_OID = "1.2.840.113549.1.1.10"; diff --git a/test/jdk/sun/security/rsa/pss/SerializedPSSKey.java b/test/jdk/sun/security/rsa/pss/SerializedPSSKey.java index eb0bd1dde7a..0c4578653c5 100644 --- a/test/jdk/sun/security/rsa/pss/SerializedPSSKey.java +++ b/test/jdk/sun/security/rsa/pss/SerializedPSSKey.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -60,7 +60,8 @@ public class SerializedPSSKey { private static final String ALGO = "RSASSA-PSS"; private static final String OID = "1.2.840.113549.1.1.10"; - private static final String PROVIDER = "SunRsaSign"; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunRsaSign"); private static final int KEY_SIZE = 2048; private static final byte[] DATA = "Test".getBytes(); /** diff --git a/test/jdk/sun/security/rsa/pss/SignatureTest2.java b/test/jdk/sun/security/rsa/pss/SignatureTest2.java index ea548d04dad..7d3d76ef0ae 100644 --- a/test/jdk/sun/security/rsa/pss/SignatureTest2.java +++ b/test/jdk/sun/security/rsa/pss/SignatureTest2.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -51,7 +51,8 @@ public class SignatureTest2 { /** * JDK default RSA Provider. */ - private static final String PROVIDER = "SunRsaSign"; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunRsaSign"); /** * How much times signature updated. diff --git a/test/jdk/sun/security/rsa/pss/SignatureTestPSS.java b/test/jdk/sun/security/rsa/pss/SignatureTestPSS.java index daa0fc51d8a..82580b0c354 100644 --- a/test/jdk/sun/security/rsa/pss/SignatureTestPSS.java +++ b/test/jdk/sun/security/rsa/pss/SignatureTestPSS.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -57,7 +57,8 @@ public class SignatureTestPSS { /** * JDK default RSA Provider. */ - private static final String PROVIDER = "SunRsaSign"; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunRsaSign"); /** * How much times signature updated. diff --git a/test/jdk/sun/security/rsa/pss/TestPSSKeySupport.java b/test/jdk/sun/security/rsa/pss/TestPSSKeySupport.java index 5e8c48a178a..6b117a4b5fe 100644 --- a/test/jdk/sun/security/rsa/pss/TestPSSKeySupport.java +++ b/test/jdk/sun/security/rsa/pss/TestPSSKeySupport.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -131,7 +131,8 @@ private static void checkKeyPair(KeyPair kp) throws Exception { public static void main(String[] args) throws Exception { KeyPairGenerator kpg = - KeyPairGenerator.getInstance(ALGO, "SunRsaSign"); + KeyPairGenerator.getInstance(ALGO, + System.getProperty("test.provider.name", "SunRsaSign")); // Algorithm-Independent Initialization kpg.initialize(2048); @@ -152,7 +153,8 @@ public static void main(String[] args) throws Exception { KeyPair kp3 = kpg.generateKeyPair(); checkKeyPair(kp3); - KeyFactory kf = KeyFactory.getInstance(ALGO, "SunRsaSign"); + KeyFactory kf = KeyFactory.getInstance(ALGO, + System.getProperty("test.provider.name", "SunRsaSign")); test(kf, kp.getPublic()); test(kf, kp.getPrivate()); test(kf, kp2.getPublic()); diff --git a/test/jdk/sun/security/rsa/pss/TestSigGenPSS.java b/test/jdk/sun/security/rsa/pss/TestSigGenPSS.java index dfadef03f04..cbda2b1df93 100644 --- a/test/jdk/sun/security/rsa/pss/TestSigGenPSS.java +++ b/test/jdk/sun/security/rsa/pss/TestSigGenPSS.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -62,7 +62,8 @@ public void nextBytes(byte[] bytes) { public static void main(String[] args) throws Exception { //for (Provider provider : Security.getProviders()) { - Provider p = Security.getProvider("SunRsaSign"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SunRsaSign")); Signature sig; try { sig = Signature.getInstance("RSASSA-PSS", p); diff --git a/test/jdk/sun/security/ssl/HandshakeHash/DigestBase.java b/test/jdk/sun/security/ssl/HandshakeHash/DigestBase.java index a92de6fff6e..437973049a8 100644 --- a/test/jdk/sun/security/ssl/HandshakeHash/DigestBase.java +++ b/test/jdk/sun/security/ssl/HandshakeHash/DigestBase.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -59,13 +59,13 @@ public MD5() throws Exception { public static final class SHA extends DigestBase { public SHA() throws Exception { - super("SHA", "SUN"); + super("SHA", System.getProperty("test.provider.name", "SUN")); } } public static final class SHA256 extends DigestBase { public SHA256() throws Exception { - super("SHA-256", "SUN"); + super("SHA-256", System.getProperty("test.provider.name", "SUN")); } } } diff --git a/test/jdk/sun/security/x509/X509CRLImpl/Verify.java b/test/jdk/sun/security/x509/X509CRLImpl/Verify.java index ed92b6548ec..6a77224fab4 100644 --- a/test/jdk/sun/security/x509/X509CRLImpl/Verify.java +++ b/test/jdk/sun/security/x509/X509CRLImpl/Verify.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -87,7 +87,8 @@ public static void main(String[] args) throws Exception { * Verify CRL with its own public key. * Should pass. */ - verifyCRL(crlIssuerCertPubKey, "SunRsaSign"); + verifyCRL(crlIssuerCertPubKey, + System.getProperty("test.provider.name", "SunRsaSign")); /* * Try to verify CRL with a provider that does not have a Signature @@ -107,7 +108,8 @@ public static void main(String[] args) throws Exception { * Should fail with NoSuchAlgorithmException. */ try { - verifyCRL(crlIssuerCertPubKey, "SUN"); + verifyCRL(crlIssuerCertPubKey, + System.getProperty("test.provider.name", "SUN")); throw new RuntimeException("Didn't catch the exception properly"); } catch (NoSuchAlgorithmException e) { System.out.println("Caught the correct exception."); @@ -118,7 +120,8 @@ public static void main(String[] args) throws Exception { * Should fail with SignatureException. */ try { - verifyCRL(selfSignedCertPubKey, "SunRsaSign"); + verifyCRL(selfSignedCertPubKey, + System.getProperty("test.provider.name","SunRsaSign")); throw new RuntimeException("Didn't catch the exception properly"); } catch (SignatureException e) { System.out.println("Caught the correct exception."); @@ -148,6 +151,7 @@ private static void verifyCRL(PublicKey key, String providerName) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, SignatureException { Provider provider = Security.getProvider(providerName); + System.out.println("Provider = " + provider.getName()); if (provider == null) { throw new RuntimeException("Provider " + providerName + " not found."); diff --git a/test/jdk/sun/security/x509/X509CertImpl/Verify.java b/test/jdk/sun/security/x509/X509CertImpl/Verify.java index cffee273e6f..0fc94bc2802 100644 --- a/test/jdk/sun/security/x509/X509CertImpl/Verify.java +++ b/test/jdk/sun/security/x509/X509CertImpl/Verify.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -78,7 +78,8 @@ public static void main(String[] args) throws Exception { * Verify certificate with its own public key. * Should pass. */ - verifyCert(selfSignedCertPubKey,"SunRsaSign"); + verifyCert(selfSignedCertPubKey, + System.getProperty("test.provider.name", "SunRsaSign")); /* * Try to verify certificate with a provider that does not have a @@ -86,7 +87,8 @@ public static void main(String[] args) throws Exception { * Should fail with NoSuchAlgorithmException. */ try { - verifyCert(selfSignedCertPubKey, "SunJCE"); + verifyCert(selfSignedCertPubKey, + System.getProperty("test.provider.name", "SunJCE")); throw new RuntimeException("Didn't catch the exception properly"); } catch (NoSuchAlgorithmException e) { System.out.println("Caught the correct exception."); @@ -98,7 +100,8 @@ public static void main(String[] args) throws Exception { * Should fail with NoSuchAlgorithmException. */ try { - verifyCert(selfSignedCertPubKey, "SUN"); + verifyCert(selfSignedCertPubKey, + System.getProperty("test.provider.name", "SUN")); throw new RuntimeException("Didn't catch the exception properly"); } catch (NoSuchAlgorithmException e) { System.out.println("Caught the correct exception."); @@ -109,7 +112,8 @@ public static void main(String[] args) throws Exception { * Should fail with SignatureException. */ try { - verifyCert(crlIssuerCertPubKey, "SunRsaSign"); + verifyCert(crlIssuerCertPubKey, + System.getProperty("test.provider.name", "SunRsaSign")); throw new RuntimeException("Didn't catch the exception properly"); } catch (SignatureException e) { System.out.println("Caught the correct exception."); From 39de175d20f25ef45e789014f9601d60a544038f Mon Sep 17 00:00:00 2001 From: Harshitha Onkar Date: Wed, 30 Oct 2024 21:53:12 +0000 Subject: [PATCH 037/159] 8342635: javax/swing/JFileChooser/FileSystemView/WindowsDefaultIconSizeTest.java creates tmp file in src dir 8342634: javax/imageio/plugins/wbmp/WBMPStreamTruncateTest.java creates temp file in src dir Reviewed-by: erikj, serb --- .../imageio/plugins/wbmp/WBMPStreamTruncateTest.java | 7 ++----- .../FileSystemView/WindowsDefaultIconSizeTest.java | 8 +++----- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/test/jdk/javax/imageio/plugins/wbmp/WBMPStreamTruncateTest.java b/test/jdk/javax/imageio/plugins/wbmp/WBMPStreamTruncateTest.java index 36b8d4a72e0..0d38869634e 100644 --- a/test/jdk/javax/imageio/plugins/wbmp/WBMPStreamTruncateTest.java +++ b/test/jdk/javax/imageio/plugins/wbmp/WBMPStreamTruncateTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -46,9 +46,6 @@ public class WBMPStreamTruncateTest static final int height = 100; public static void main(String[] args) throws IOException { - String sep = System.getProperty("file.separator"); - String dir = System.getProperty("test.src", "."); - String filePath = dir+sep; BufferedImage srcImage = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_BINARY); Graphics2D g = (Graphics2D) srcImage.getGraphics(); @@ -57,7 +54,7 @@ public static void main(String[] args) throws IOException g.dispose(); // create WBMP image File imageFile = File. - createTempFile("test", ".wbmp", new File(filePath)); + createTempFile("test", ".wbmp", new File("./")); imageFile.deleteOnExit(); ImageIO.write(srcImage, "wbmp", imageFile); BufferedImage testImg = diff --git a/test/jdk/javax/swing/JFileChooser/FileSystemView/WindowsDefaultIconSizeTest.java b/test/jdk/javax/swing/JFileChooser/FileSystemView/WindowsDefaultIconSizeTest.java index 081277ca2d4..dcdc7ca7b96 100644 --- a/test/jdk/javax/swing/JFileChooser/FileSystemView/WindowsDefaultIconSizeTest.java +++ b/test/jdk/javax/swing/JFileChooser/FileSystemView/WindowsDefaultIconSizeTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,18 +44,16 @@ public static void main(String[] args) { } public void test() { - String sep = System.getProperty("file.separator"); - String dir = System.getProperty("test.src", "."); String filename = "test.not"; - File testFile = new File(dir + sep + filename); + File testFile = new File(filename); try { if (!testFile.exists()) { testFile.createNewFile(); testFile.deleteOnExit(); } FileSystemView fsv = FileSystemView.getFileSystemView(); - Icon icon = fsv.getSystemIcon(new File(dir + sep + filename)); + Icon icon = fsv.getSystemIcon(new File(filename)); if (icon instanceof ImageIcon) { Image image = ((ImageIcon) icon).getImage(); if (image instanceof MultiResolutionImage) { From 7e927911c188d734b475a02a8acbaf1d7d5a111c Mon Sep 17 00:00:00 2001 From: Kevin Walls Date: Wed, 30 Oct 2024 21:54:43 +0000 Subject: [PATCH 038/159] 8337276: jcmd man page update for PID in output filenames Reviewed-by: cjplummer, szaldana --- src/jdk.jcmd/share/man/jcmd.1 | 64 +++++++++++++++-------------------- 1 file changed, 28 insertions(+), 36 deletions(-) diff --git a/src/jdk.jcmd/share/man/jcmd.1 b/src/jdk.jcmd/share/man/jcmd.1 index a639dab16e1..495b629089d 100644 --- a/src/jdk.jcmd/share/man/jcmd.1 +++ b/src/jdk.jcmd/share/man/jcmd.1 @@ -65,13 +65,6 @@ selected JVM. The list of available commands for \f[V]jcmd\f[R] is obtained by running the \f[V]help\f[R] command (\f[V]jcmd\f[R] \f[I]pid\f[R] \f[V]help\f[R]) where \f[I]pid\f[R] is the process ID for the running Java process. -If the \f[I]pid\f[R] is \f[V]0\f[R], commands will be sent to all Java -processes. -The main class argument will be used to match, either partially or -fully, the class used to start Java. -If no options are given, it lists the running Java process identifiers -with the main class and command-line arguments that were used to launch -the process (the same as using \f[V]-l\f[R]). .TP \f[V]Perfcounter.print\f[R] Prints the performance counters exposed by the specified Java process. @@ -102,9 +95,10 @@ to the JVM. It must be used on the same machine on which the JVM is running, and have the same effective user and group identifiers that were used to launch the JVM. -Each diagnostic command has its own set of arguments. -To display the description, syntax, and a list of available arguments -for a diagnostic command, use the name of the command as the argument. +Each diagnostic command has its own set of options and arguments. +To display the description, syntax, and a list of available options and +arguments for a diagnostic command, use the name of the command as the +argument. For example: .RS .PP @@ -143,6 +137,11 @@ that are not in separate docker processes along with the main class and command-line arguments that were used to launch the process (the same as using \f[V]-l\f[R]). .PP +\f[V]jcmd\f[R] \f[I]commands\f[R] may take options and arguments. +\f[I]Options\f[R] are specified using either \f[I]key\f[R] or +\f[I]key\f[R]\f[V]=\f[R]\f[I]value\f[R] syntax. +\f[I]Arguments\f[R] are given as just a value, never name=value. +.PP The following commands are available: .TP \f[V]help\f[R] [\f[I]options\f[R]] [\f[I]arguments\f[R]] @@ -254,13 +253,9 @@ Impact: Low .PP \f[I]arguments\f[R]: .IP \[bu] 2 -\f[I]filename\f[R]: (Optional) The name of the map file (STRING, -/tmp/perf-.map) -.PP -If \f[V]filename\f[R] is not specified, a default file name is chosen -using the pid of the target JVM process. -For example, if the pid is \f[V]12345\f[R], then the default -\f[V]filename\f[R] will be \f[V]/tmp/perf-12345.map\f[R]. +\f[I]filename\f[R]: (Optional) The name of the map file. +If %p is specified in the filename, it is expanded to the JVM\[aq]s PID. +(FILE, \[dq]/tmp/perf-%p.map\[dq]) .RE .TP \f[V]Compiler.queue\f[R] @@ -302,7 +297,7 @@ Provides information about the Java finalization queue. Impact: Medium .RE .TP -\f[V]GC.heap_dump\f[R] [\f[I]options\f[R]] [\f[I]arguments\f[R]] +\f[V]GC.heap_dump\f[R] [\f[I]options\f[R]] \f[I]filename\f[R] Generates a HPROF format dump of the Java heap. .RS .PP @@ -335,7 +330,9 @@ fewer. .PP \f[I]arguments\f[R]: .IP \[bu] 2 -\f[I]filename\f[R]: The name of the dump file (STRING, no default value) +\f[I]filename\f[R]: The name of the dump file. +If %p is specified in the filename, it is expanded to the JVM\[aq]s PID. +(FILE, no default value) .RE .TP \f[V]GC.heap_info\f[R] @@ -511,7 +508,7 @@ The filename may also be a directory in which case, the filename is generated from the PID and the current date in the specified directory. If %p and/or %t is specified in the filename, it expands to the JVM\[aq]s PID and the current timestamp, respectively. -(STRING, no default value) +(FILE, no default value) .IP \[bu] 2 \f[V]maxage\f[R]: (Optional) Length of time for dumping the flight recording data to a file. @@ -581,7 +578,7 @@ The filename may also be a directory in which case, the filename is generated from the PID and the current date in the specified directory. If %p and/or %t is specified in the filename, it expands to the JVM\[aq]s PID and the current timestamp, respectively. -(STRING, no default value) +(FILE, no default value) .IP \[bu] 2 \f[V]maxage\f[R]: (Optional) Maximum time to keep the recorded data on disk. @@ -675,7 +672,7 @@ is written when the recording is stopped. If %p and/or %t is specified in the filename, it expands to the JVM\[aq]s PID and the current timestamp, respectively. If no path is provided, the data from the recording is discarded. -(STRING, no default value) +(FILE, no default value) .IP \[bu] 2 \f[V]name\f[R]: (Optional) Name of the recording (STRING, no default value) @@ -877,8 +874,9 @@ The following \f[I]options\f[R] must be specified using either .IP \[bu] 2 \f[V]-H\f[R]: (Optional) Human readable format (BOOLEAN, false) .IP \[bu] 2 -\f[V]-F\f[R]: (Optional) File path (STRING, -\[dq]vm_memory_map_.txt\[dq]) +\f[V]-F\f[R]: (Optional) File path. +If %p is specified in the filename, it is expanded to the JVM\[aq]s PID. +(FILE, \[dq]vm_memory_map_%p.txt\[dq]) .RE .TP \f[V]System.map\f[R] [\f[I]options\f[R]] (Linux only) @@ -934,8 +932,9 @@ false) .PP \f[I]arguments\f[R]: .IP \[bu] 2 -\f[I]filepath\f[R]: The file path to the output file (STRING, no default -value) +\f[I]filepath\f[R]: The file path to the output file. +If %p is specified in the filename, it is expanded to the JVM\[aq]s PID. +(FILE, no default value) .RE .TP \f[V]Thread.print\f[R] [\f[I]options\f[R]] @@ -970,16 +969,9 @@ Impact: Medium --- pause time depends on number of loaded classes \f[I]subcmd\f[R]: must be either \f[V]static_dump\f[R] or \f[V]dynamic_dump\f[R] (STRING, no default value) .IP \[bu] 2 -\f[I]filename\f[R]: (Optional) Name of the shared archive to be dumped -(STRING, java_pid_.jsa) -.PP -If \f[V]filename\f[R] is not specified, a default file name is chosen -using the pid of the target JVM process. -For example, java_pid1234_static.jsa, java_pid5678_dynamic.jsa, etc. -.PP -If \f[V]filename\f[R] is not specified as an absolute path, the archive -file is created in a directory relative to the current directory of the -target JVM process. +\f[I]filename\f[R]: (Optional) Name of the shared archive to be dumped. +If %p is specified in the filename, it is expanded to the JVM\[aq]s PID. +(FILE, \[dq]java_pid%p_.jsa\[dq]) .PP If \f[V]dynamic_dump\f[R] is specified, the target JVM must be started with the JVM option \f[V]-XX:+RecordDynamicDumpInfo\f[R]. From 5133fc2780d2562f561fdf30138a606df0dd8afc Mon Sep 17 00:00:00 2001 From: Fernando Guallini Date: Wed, 30 Oct 2024 22:14:54 +0000 Subject: [PATCH 039/159] 8342181: Update tests to use stronger Key and Salt size Reviewed-by: rhalade, ascarpino --- .../provider/Cipher/DES/KeyWrapping.java | 7 +++- .../crypto/provider/Cipher/DES/Sealtest.java | 9 ++-- .../KeyWrap/TestCipherKeyWrapperTest.java | 4 +- .../Cipher/PBE/PBEKeyCleanupTest.java | 4 +- .../provider/Cipher/RSA/TestOAEPPadding.java | 8 ++-- .../Cipher/RSA/TestOAEPWithParams.java | 7 +++- .../KeyAgreement/DHKeyAgreementPadding.java | 19 +++++---- .../provider/KeyFactory/TestProviderLeak.java | 4 +- .../internal/security/SignatureKeyInfo.java | 5 ++- .../security/KeyAgreement/KeySpecTest.java | 4 +- .../KeyAgreement/MultiThreadTest.java | 4 +- .../security/KeyAgreement/NegativeTest.java | 5 ++- .../java/security/KeyFactory/Failover.java | 10 +++-- .../KeyPairGenerator/GenerateKeypair.java | 9 ++-- .../KeyPairGenerator/GenerateRSAKeyPair.java | 8 +++- .../security/Provider/SupportsParameter.java | 9 ++-- .../java/security/Signature/NONEwithRSA.java | 7 +++- .../Signature/ResetAfterException.java | 11 +++-- .../Signature/VerifyRangeCheckOverflow.java | 9 ++-- .../cert/X509Certificate/GetSigAlgParams.java | 6 ++- .../SecretKeyFactory/SecKeyFacSunJCEPrf.java | 4 +- .../auth/Destroyable/KeyDestructionTest.java | 7 +++- test/jdk/jdk/security/jarsigner/Spec.java | 13 +++--- .../security/pkcs11/Cipher/TestRSACipher.java | 10 +++-- .../pkcs11/Cipher/TestRSACipherWrap.java | 6 ++- .../pkcs11/Cipher/TestRawRSACipher.java | 6 ++- .../security/pkcs11/KeyAgreement/TestDH.java | 6 ++- .../KeyStore/CaseSensitiveAliases.java | 9 ++-- .../TestSHAwithDSASignatureOids.java | 8 +++- .../security/rsa/BrokenRSAPrivateCrtKey.java | 7 +++- .../security/rsa/TestKeyPairGenerator.java | 8 ++-- .../rsa/TestKeyPairGeneratorExponent.java | 13 +++--- .../rsa/TestKeyPairGeneratorInit.java | 7 +++- .../rsa/TestKeyPairGeneratorLength.java | 10 +++-- .../security/rsa/pss/DefaultParamSpec.java | 6 ++- test/jdk/sun/security/rsa/pss/InitAgain.java | 9 ++-- .../security/rsa/pss/SerializedPSSKey.java | 4 +- .../security/rsa/pss/TestPSSKeySupport.java | 9 ++-- .../x509/AlgorithmId/NonStandardNames.java | 9 ++-- .../jdk/test/lib/security/SecurityUtils.java | 42 ++++++++++++++++++- 40 files changed, 240 insertions(+), 102 deletions(-) diff --git a/test/jdk/com/sun/crypto/provider/Cipher/DES/KeyWrapping.java b/test/jdk/com/sun/crypto/provider/Cipher/DES/KeyWrapping.java index 6939dd27974..a71390b504e 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/DES/KeyWrapping.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/DES/KeyWrapping.java @@ -24,11 +24,13 @@ /* * @test * @bug 0000000 + * @library /test/lib * @summary KeyWrapping * @author Jan Luehe */ import javax.crypto.*; import java.security.*; +import jdk.test.lib.security.SecurityUtils; public class KeyWrapping { @@ -71,8 +73,9 @@ public static void main(String[] args) throws Exception { if (!msg.equals(new String(clearText))) throw new Exception("The unwrapped session key is corrupted."); - KeyPairGenerator kpairGen = KeyPairGenerator.getInstance("DSA"); - kpairGen.initialize(1024); + String kpgAlgorithm = "DSA"; + KeyPairGenerator kpairGen = KeyPairGenerator.getInstance(kpgAlgorithm); + kpairGen.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair kpair = kpairGen.genKeyPair(); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/DES/Sealtest.java b/test/jdk/com/sun/crypto/provider/Cipher/DES/Sealtest.java index abc536f14e2..d4b2173358c 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/DES/Sealtest.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/DES/Sealtest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,20 +24,23 @@ /* * @test * @bug 0000000 7055362 + * @library /test/lib * @summary Sealtest * @author Jan Luehe */ import java.io.*; import java.security.*; import javax.crypto.*; +import jdk.test.lib.security.SecurityUtils; public class Sealtest { public static void main(String[] args) throws Exception { // create DSA keypair - KeyPairGenerator kpgen = KeyPairGenerator.getInstance("DSA"); - kpgen.initialize(512); + String kpgAlgorithm = "DSA"; + KeyPairGenerator kpgen = KeyPairGenerator.getInstance(kpgAlgorithm); + kpgen.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair kp = kpgen.generateKeyPair(); // create DES key diff --git a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestCipherKeyWrapperTest.java b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestCipherKeyWrapperTest.java index 01659f56826..82794de2582 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestCipherKeyWrapperTest.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestCipherKeyWrapperTest.java @@ -50,10 +50,12 @@ import javax.crypto.SecretKeyFactory; import javax.crypto.spec.PBEKeySpec; import javax.crypto.spec.PBEParameterSpec; +import jdk.test.lib.security.SecurityUtils; /* * @test * @bug 8048599 8248268 8288050 + * @library /test/lib * @summary Tests for key wrap and unwrap operations */ @@ -270,7 +272,7 @@ private void wrapperPublicPriviteKeyTest(Provider p, String[] algorithms) System.out.println("Generate key pair (algorithm: " + algo + ", provider: " + p.getName() + ")"); KeyPairGenerator kpg = KeyPairGenerator.getInstance(algo); - kpg.initialize(512); + kpg.initialize(SecurityUtils.getTestKeySize(algo)); KeyPair kp = kpg.genKeyPair(); // key generated String algoWrap = "DES"; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEKeyCleanupTest.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEKeyCleanupTest.java index 5bdc8f0fc3c..77cf745fb3b 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEKeyCleanupTest.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEKeyCleanupTest.java @@ -23,6 +23,7 @@ /* * @test + * @library /test/lib * @modules java.base/com.sun.crypto.provider:+open * @run main/othervm PBEKeyCleanupTest * @summary Verify that key storage is cleared @@ -38,6 +39,7 @@ import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.PBEKeySpec; +import jdk.test.lib.security.SecurityUtils; /** * Test that the array holding the key bytes is cleared when it is @@ -67,7 +69,7 @@ private static void testPBESecret(String algorithm) throws Exception { } private static void testPBKSecret(String algorithm) throws Exception { - byte[] salt = new byte[8]; + byte[] salt = new byte[SecurityUtils.getTestSaltSize()]; new Random().nextBytes(salt); char[] password = new char[] {'f', 'o', 'o'}; PBEKeySpec pbeKeySpec = new PBEKeySpec(PASS_PHRASE.toCharArray(), salt, diff --git a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPPadding.java b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPPadding.java index 08d317d1400..2a82f2214d4 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPPadding.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPPadding.java @@ -24,6 +24,7 @@ /* * @test * @bug 8020081 8022669 + * @library /test/lib * @summary encryption/decryption test for using OAEPPadding with * OAEPParameterSpec specified and not specified during a Cipher.init(). * @author Anthony Scarpino @@ -43,7 +44,7 @@ import javax.crypto.spec.OAEPParameterSpec; import javax.crypto.IllegalBlockSizeException; import javax.crypto.spec.PSource; - +import jdk.test.lib.security.SecurityUtils; public class TestOAEPPadding { private static RSAPrivateKey privateKey; @@ -57,8 +58,9 @@ public static void main(String args[]) throws Exception { System.out.println("Testing provider " + cp.getName() + "..."); Provider kfp = Security.getProvider( System.getProperty("test.providername", "SunRsaSign")); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", kfp); - kpg.initialize(2048); + String kpgAlgorithm = "RSA"; + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm, kfp); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair kp = kpg.generateKeyPair(); privateKey = (RSAPrivateKey)kp.getPrivate(); publicKey = (RSAPublicKey)kp.getPublic(); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPWithParams.java b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPWithParams.java index 85a8a70ea83..6cf66178da7 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPWithParams.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPWithParams.java @@ -24,6 +24,7 @@ /* * @test * @bug 4923484 8146293 + * @library /test/lib * @summary encryption/decryption test for using OAEPParameterSpec. * @author Valerie Peng */ @@ -35,6 +36,7 @@ import javax.crypto.*; import javax.crypto.spec.PSource; import javax.crypto.spec.OAEPParameterSpec; +import jdk.test.lib.security.SecurityUtils; public class TestOAEPWithParams { @@ -59,8 +61,9 @@ public static void main(String[] args) throws Exception { System.out.println("Testing provider " + cp.getName() + "..."); Provider kfp = Security.getProvider( System.getProperty("test.provider.name", "SunRsaSign")); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", kfp); - kpg.initialize(768); + String kpgAlgorithm = "RSA"; + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm, kfp); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair kp = kpg.generateKeyPair(); privateKey = kp.getPrivate(); publicKey = kp.getPublic(); diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreementPadding.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreementPadding.java index dc963bf6267..c863da6b4b4 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreementPadding.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreementPadding.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -34,21 +34,22 @@ import java.security.KeyPairGenerator; import java.util.Arrays; import java.util.HexFormat; +import jdk.test.lib.security.SecurityUtils; public class DHKeyAgreementPadding { public static void main(String[] args) throws Exception { - - byte[] aliceSecret = new byte[80]; - byte[] bobSecret = new byte[80]; - - KeyAgreement alice = KeyAgreement.getInstance("DiffieHellman"); - KeyAgreement bob = KeyAgreement.getInstance("DiffieHellman"); + String kpgAlgorithm = "DiffieHellman"; + KeyAgreement alice = KeyAgreement.getInstance(kpgAlgorithm); + KeyAgreement bob = KeyAgreement.getInstance(kpgAlgorithm); + int keySizeBits = SecurityUtils.getTestKeySize(kpgAlgorithm); + byte[] aliceSecret = new byte[keySizeBits / 8]; + byte[] bobSecret = new byte[keySizeBits / 8]; // The probability of an error is 0.2% or 1/500. Try more times. for (int i = 0; i < 5000; i++) { - KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("DiffieHellman"); - keyPairGen.initialize(512); + KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance(kpgAlgorithm); + keyPairGen.initialize(keySizeBits); KeyPair aliceKeyPair = keyPairGen.generateKeyPair(); KeyPair bobKeyPair = keyPairGen.generateKeyPair(); diff --git a/test/jdk/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java b/test/jdk/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java index 29707bae52c..b2122d5691b 100644 --- a/test/jdk/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java +++ b/test/jdk/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java @@ -24,6 +24,7 @@ /* * @test * @bug 6578538 8027624 + * @library /test/lib * @summary com.sun.crypto.provider.SunJCE instance leak using KRB5 and * LoginContext * @author Brad Wetmore @@ -45,6 +46,7 @@ import java.util.*; import java.util.concurrent.*; +import jdk.test.lib.security.SecurityUtils; public class TestProviderLeak { private static final int MB = 1024 * 1024; @@ -109,7 +111,7 @@ public static void main(String [] args) throws Exception { SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1", System.getProperty("test.provider.name", "SunJCE")); final PBEKeySpec pbeKS = new PBEKeySpec( - "passPhrase".toCharArray(), new byte [] { 0 }, 5, 512); + "passPhrase".toCharArray(), new byte [SecurityUtils.getTestSaltSize()], 1000, 512); ExecutorService executor = Executors.newSingleThreadExecutor(); Callable task = new Callable() { diff --git a/test/jdk/com/sun/org/apache/xml/internal/security/SignatureKeyInfo.java b/test/jdk/com/sun/org/apache/xml/internal/security/SignatureKeyInfo.java index d1de2030c24..793232654b6 100644 --- a/test/jdk/com/sun/org/apache/xml/internal/security/SignatureKeyInfo.java +++ b/test/jdk/com/sun/org/apache/xml/internal/security/SignatureKeyInfo.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -62,6 +62,7 @@ import java.io.File; import java.math.BigInteger; import java.security.*; +import jdk.test.lib.security.SecurityUtils; import static jdk.test.lib.Asserts.assertEquals; @@ -160,7 +161,7 @@ private static void addKeyInfoData(KeyInfo keyInfo, String algorithm) throws Exc private static KeyPair getKeyPair(String algorithm) throws NoSuchAlgorithmException { KeyPairGenerator keyGen = KeyPairGenerator.getInstance(algorithm); - keyGen.initialize(2048); + keyGen.initialize(SecurityUtils.getTestKeySize(algorithm)); return keyGen.genKeyPair(); } diff --git a/test/jdk/java/security/KeyAgreement/KeySpecTest.java b/test/jdk/java/security/KeyAgreement/KeySpecTest.java index 3554ba5073d..f5974738a12 100644 --- a/test/jdk/java/security/KeyAgreement/KeySpecTest.java +++ b/test/jdk/java/security/KeyAgreement/KeySpecTest.java @@ -24,6 +24,7 @@ /* * @test * @bug 8184359 + * @library /test/lib * @summary Standard tests on KeySpec, KeyFactory, KeyPairs and Keys. * Arguments order * @run main KeySpecTest DiffieHellman SunJCE DiffieHellman @@ -55,6 +56,7 @@ import javax.crypto.KeyAgreement; import javax.crypto.spec.DHPrivateKeySpec; import javax.crypto.spec.DHPublicKeySpec; +import jdk.test.lib.security.SecurityUtils; public class KeySpecTest { @@ -78,7 +80,7 @@ private static KeyPair genKeyPair(String provider, String kpgAlgo, KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgo, provider); switch (kpgInit) { case "DiffieHellman": - kpg.initialize(512); + kpg.initialize(SecurityUtils.getTestKeySize(kpgInit)); break; case "EC": kpg.initialize(256); diff --git a/test/jdk/java/security/KeyAgreement/MultiThreadTest.java b/test/jdk/java/security/KeyAgreement/MultiThreadTest.java index 0b01f4821ab..743e874a7de 100644 --- a/test/jdk/java/security/KeyAgreement/MultiThreadTest.java +++ b/test/jdk/java/security/KeyAgreement/MultiThreadTest.java @@ -24,6 +24,7 @@ /* * @test * @bug 8184359 + * @library /test/lib * @summary KeyPairGenerator Test with multiple threads. * Arguments order * @run main MultiThreadTest DiffieHellman SunJCE DiffieHellman @@ -39,6 +40,7 @@ import java.util.concurrent.Executors; import java.util.concurrent.ThreadFactory; import javax.crypto.KeyAgreement; +import jdk.test.lib.security.SecurityUtils; /** * This test targets KeyPairGenerator API related issue in a multi threaded @@ -68,7 +70,7 @@ private static KeyPairGenerator genKeyGenerator(String provider, KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgo, provider); switch (kpgInit) { case "DiffieHellman": - kpg.initialize(512); + kpg.initialize(SecurityUtils.getTestKeySize(kpgInit)); break; case "EC": kpg.initialize(256); diff --git a/test/jdk/java/security/KeyAgreement/NegativeTest.java b/test/jdk/java/security/KeyAgreement/NegativeTest.java index 2ec52b12a40..3ccb614ffc3 100644 --- a/test/jdk/java/security/KeyAgreement/NegativeTest.java +++ b/test/jdk/java/security/KeyAgreement/NegativeTest.java @@ -35,7 +35,7 @@ * Arguments order * * @library /test/lib - * @run main NegativeTest DiffieHellman SunJCE DiffieHellman 1024 + * @run main NegativeTest DiffieHellman SunJCE DiffieHellman 2048 * @run main NegativeTest ECDH SunEC EC 256 * @run main NegativeTest XDH SunEC XDH 255 X25519 * @run main NegativeTest XDH SunEC XDH 448 X448 @@ -59,6 +59,7 @@ import java.util.Arrays; import java.util.HexFormat; import javax.crypto.KeyAgreement; +import jdk.test.lib.security.SecurityUtils; public class NegativeTest { @@ -93,7 +94,7 @@ private static KeyPair genKeyPair(String provider, String kpgAlgo, Security.getProvider(provider)); switch (kpgInit) { case "DiffieHellman": - kpg.initialize(512); + kpg.initialize(SecurityUtils.getTestKeySize(kpgInit)); break; case "EC": kpg.initialize(256); diff --git a/test/jdk/java/security/KeyFactory/Failover.java b/test/jdk/java/security/KeyFactory/Failover.java index 6242758a9cf..7107ef1ad02 100644 --- a/test/jdk/java/security/KeyFactory/Failover.java +++ b/test/jdk/java/security/KeyFactory/Failover.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,7 +24,7 @@ /** * @test * @bug 4894125 7054918 8130181 - * @library ../testlibrary + * @library ../testlibrary /test/lib * @summary test that failover for KeyFactory works * @author Andreas Sterbenz */ @@ -34,6 +34,7 @@ import java.security.*; import java.security.interfaces.*; import java.security.spec.*; +import jdk.test.lib.security.SecurityUtils; public class Failover { @@ -72,8 +73,9 @@ public static void main0(String[] args) throws Exception { // somewhat more real tests using DSA System.out.println("DSA tests..."); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA"); - kpg.initialize(512); + String kpgAlgorithm = "DSA"; + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair kp = kpg.generateKeyPair(); kf = KeyFactory.getInstance("DSA"); diff --git a/test/jdk/java/security/KeyPairGenerator/GenerateKeypair.java b/test/jdk/java/security/KeyPairGenerator/GenerateKeypair.java index 2c68e5954fa..b2c87b1c38a 100644 --- a/test/jdk/java/security/KeyPairGenerator/GenerateKeypair.java +++ b/test/jdk/java/security/KeyPairGenerator/GenerateKeypair.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,18 +24,21 @@ /* * @test * @bug 4221800 + * @library /test/lib * @summary Test restored generateKeyPair method */ import java.security.KeyPairGenerator; import java.security.KeyPair; +import jdk.test.lib.security.SecurityUtils; public class GenerateKeypair { public static void main(String[] args) throws Exception { - KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA"); - kpg.initialize(512); + String kpgAlgorithm = "DSA"; + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); // test generateKeyPair KeyPair kpair = kpg.generateKeyPair(); diff --git a/test/jdk/java/security/KeyPairGenerator/GenerateRSAKeyPair.java b/test/jdk/java/security/KeyPairGenerator/GenerateRSAKeyPair.java index c995bb17bed..1b9ace546dc 100644 --- a/test/jdk/java/security/KeyPairGenerator/GenerateRSAKeyPair.java +++ b/test/jdk/java/security/KeyPairGenerator/GenerateRSAKeyPair.java @@ -24,6 +24,7 @@ /* * @test * @bug 4297026 + * @library /test/lib * @summary Make sure that RSA Keypair generation using * java.security.spec.RSAKeyGenParameterSpec passes */ @@ -31,14 +32,17 @@ import java.security.KeyPairGenerator; import java.security.KeyPair; import java.security.spec.RSAKeyGenParameterSpec; +import jdk.test.lib.security.SecurityUtils; public class GenerateRSAKeyPair { public static void main(String[] args) throws Exception { + String kpgAlgorithm = "RSA"; RSAKeyGenParameterSpec rsaSpec = - new RSAKeyGenParameterSpec (1024, RSAKeyGenParameterSpec.F4); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", + new RSAKeyGenParameterSpec (SecurityUtils.getTestKeySize(kpgAlgorithm), + RSAKeyGenParameterSpec.F4); + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm, System.getProperty("test.provider.name", "SunRsaSign")); kpg.initialize(rsaSpec); diff --git a/test/jdk/java/security/Provider/SupportsParameter.java b/test/jdk/java/security/Provider/SupportsParameter.java index bc3cb031791..039fb3d0797 100644 --- a/test/jdk/java/security/Provider/SupportsParameter.java +++ b/test/jdk/java/security/Provider/SupportsParameter.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ /** * @test * @bug 4911081 8130181 + * @library /test/lib * @summary verify that Provider.Service.supportsParameter() works * @author Andreas Sterbenz */ @@ -33,12 +34,14 @@ import javax.crypto.*; import javax.crypto.spec.SecretKeySpec; +import jdk.test.lib.security.SecurityUtils; public class SupportsParameter { public static void main(String[] args) throws Exception { - KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA"); - kpg.initialize(512); + String kpgAlgorithm = "DSA"; + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair kp = kpg.generateKeyPair(); PublicKey dsaPublicKey = kp.getPublic(); PrivateKey dsaPrivateKey = kp.getPrivate(); diff --git a/test/jdk/java/security/Signature/NONEwithRSA.java b/test/jdk/java/security/Signature/NONEwithRSA.java index ff3645058d6..c7b08528e7e 100644 --- a/test/jdk/java/security/Signature/NONEwithRSA.java +++ b/test/jdk/java/security/Signature/NONEwithRSA.java @@ -24,6 +24,7 @@ /** * @test * @bug 4955844 + * @library /test/lib * @summary ensure that the NONEwithRSA adapter works correctly * @author Andreas Sterbenz * @key randomness @@ -34,6 +35,7 @@ import java.security.*; import javax.crypto.*; +import jdk.test.lib.security.SecurityUtils; public class NONEwithRSA { @@ -43,8 +45,9 @@ public static void main(String[] args) throws Exception { byte[] b = new byte[16]; random.nextBytes(b); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); - kpg.initialize(512); + String kpgAlgorithm = "RSA"; + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair kp = kpg.generateKeyPair(); Signature sig = Signature.getInstance("NONEwithRSA"); diff --git a/test/jdk/java/security/Signature/ResetAfterException.java b/test/jdk/java/security/Signature/ResetAfterException.java index 62d5c190bec..39c766ac63d 100644 --- a/test/jdk/java/security/Signature/ResetAfterException.java +++ b/test/jdk/java/security/Signature/ResetAfterException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,10 +24,12 @@ /** * @test * @bug 8149802 + * @library /test/lib * @summary Ensure that Signature objects are reset after verification errored out. */ import java.util.Arrays; import java.security.*; +import jdk.test.lib.security.SecurityUtils; public class ResetAfterException { @@ -51,18 +53,19 @@ public static void main(String[] args) throws Exception { boolean res = true; System.out.println("Testing Provider: " + p.getName()); KeyPairGenerator keyGen = null; + String kpgAlgorithm = "RSA"; try { // It's possible that some provider, e.g. SunMSCAPI, // doesn't work well with keys from other providers // so we use the same provider to generate key first - keyGen = KeyPairGenerator.getInstance("RSA", p); + keyGen = KeyPairGenerator.getInstance(kpgAlgorithm, p); } catch (NoSuchAlgorithmException nsae) { - keyGen = KeyPairGenerator.getInstance("RSA"); + keyGen = KeyPairGenerator.getInstance(kpgAlgorithm); } if (keyGen == null) { throw new RuntimeException("Error: No support for RSA KeyPairGenerator"); } - keyGen.initialize(1024); + keyGen.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair keyPair = keyGen.generateKeyPair(); sig.initSign(keyPair.getPrivate()); diff --git a/test/jdk/java/security/Signature/VerifyRangeCheckOverflow.java b/test/jdk/java/security/Signature/VerifyRangeCheckOverflow.java index b68d8ca9be7..5cf939d05db 100644 --- a/test/jdk/java/security/Signature/VerifyRangeCheckOverflow.java +++ b/test/jdk/java/security/Signature/VerifyRangeCheckOverflow.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -27,6 +27,7 @@ /* @test * @bug 7172149 + * @library /test/lib * @summary AIOOBE from Signature.verify after integer overflow * @author Jonathan Lu */ @@ -35,12 +36,14 @@ import java.security.KeyPairGenerator; import java.security.PublicKey; import java.security.Signature; +import jdk.test.lib.security.SecurityUtils; public class VerifyRangeCheckOverflow { public static void main(String[] args) throws Exception { - KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("DSA"); - keyPairGenerator.initialize(1024); + String kpgAlgorithm = "DSA"; + KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(kpgAlgorithm); + keyPairGenerator.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair keys = keyPairGenerator.generateKeyPair(); PublicKey publicKey = keys.getPublic(); byte[] sigBytes = new byte[100]; diff --git a/test/jdk/java/security/cert/X509Certificate/GetSigAlgParams.java b/test/jdk/java/security/cert/X509Certificate/GetSigAlgParams.java index 6d7a8345617..4867058c4c2 100644 --- a/test/jdk/java/security/cert/X509Certificate/GetSigAlgParams.java +++ b/test/jdk/java/security/cert/X509Certificate/GetSigAlgParams.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,12 +24,14 @@ /* * @test * @bug 8259428 + * @library /test/lib * @summary Verify X509Certificate.getSigAlgParams() returns new array each * time it is called * @modules java.base/sun.security.tools.keytool java.base/sun.security.x509 */ import java.security.cert.X509Certificate; +import jdk.test.lib.security.SecurityUtils; import sun.security.tools.keytool.CertAndKeyGen; import sun.security.x509.X500Name; @@ -38,7 +40,7 @@ public class GetSigAlgParams { public static void main(String[] args) throws Exception { CertAndKeyGen cakg = new CertAndKeyGen("RSASSA-PSS", "RSASSA-PSS"); - cakg.generate(1024); + cakg.generate(SecurityUtils.getTestKeySize("RSA")); X509Certificate c = cakg.getSelfCertificate(new X500Name("CN=Me"), 100); if (c.getSigAlgParams() == c.getSigAlgParams()) { throw new Exception("Encoded params are the same byte array"); diff --git a/test/jdk/javax/crypto/SecretKeyFactory/SecKeyFacSunJCEPrf.java b/test/jdk/javax/crypto/SecretKeyFactory/SecKeyFacSunJCEPrf.java index a8819b04457..8501f888e0f 100644 --- a/test/jdk/javax/crypto/SecretKeyFactory/SecKeyFacSunJCEPrf.java +++ b/test/jdk/javax/crypto/SecretKeyFactory/SecKeyFacSunJCEPrf.java @@ -42,11 +42,11 @@ public class SecKeyFacSunJCEPrf { // One of the PBKDF2 HMAC-SHA1 test vectors from RFC 6070 - private static final byte[] SALT = "salt".getBytes(); + private static final byte[] SALT = "16-byte salt val".getBytes(); private static final char[] PASS = "password".toCharArray(); private static final int ITER = 4096; private static final byte[] EXP_OUT = - HexFormat.of().parseHex("4B007901B765489ABEAD49D926F721D065A429C1"); + HexFormat.of().parseHex("D2CACD3F1D44AF293C704F0B1005338D903C688C"); public static void main(String[] args) throws Exception { // Instantiate the Evil Provider and insert it in the diff --git a/test/jdk/javax/security/auth/Destroyable/KeyDestructionTest.java b/test/jdk/javax/security/auth/Destroyable/KeyDestructionTest.java index 71570807e4a..6a664cebf7e 100644 --- a/test/jdk/javax/security/auth/Destroyable/KeyDestructionTest.java +++ b/test/jdk/javax/security/auth/Destroyable/KeyDestructionTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ /* * @test * @bug 6263419 + * @library /test/lib * @summary No way to clean the memory for a java.security.Key */ @@ -32,10 +33,12 @@ import javax.crypto.*; import javax.security.auth.Destroyable; import javax.security.auth.DestroyFailedException; +import jdk.test.lib.security.SecurityUtils; public class KeyDestructionTest { public static void main(String[] args) throws Exception { - KeyPair keypair = generateKeyPair("RSA", 1024); + String kpgAlgorithm = "RSA"; + KeyPair keypair = generateKeyPair(kpgAlgorithm, SecurityUtils.getTestKeySize(kpgAlgorithm)); // Check keys that support and have implemented key destruction testKeyDestruction(new MyDestroyableSecretKey()); diff --git a/test/jdk/jdk/security/jarsigner/Spec.java b/test/jdk/jdk/security/jarsigner/Spec.java index 0e189babb8b..5ca3b11cd96 100644 --- a/test/jdk/jdk/security/jarsigner/Spec.java +++ b/test/jdk/jdk/security/jarsigner/Spec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -36,6 +36,7 @@ import jdk.security.jarsigner.JarSigner; import jdk.test.lib.util.JarUtils; +import jdk.test.lib.security.SecurityUtils; import sun.security.provider.certpath.X509CertPath; import java.io.File; @@ -175,14 +176,16 @@ public static void main(String[] args) throws Exception { .equals("SHA-384")); // Calculating large DSA and RSA keys are too slow. - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); - kpg.initialize(1024); + String kpgRSA = "RSA"; + String kpgDSA = "DSA"; + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgRSA); + kpg.initialize(SecurityUtils.getTestKeySize(kpgRSA)); assertTrue(JarSigner.Builder .getDefaultSignatureAlgorithm(kpg.generateKeyPair().getPrivate()) .equals("SHA384withRSA")); - kpg = KeyPairGenerator.getInstance("DSA"); - kpg.initialize(1024); + kpg = KeyPairGenerator.getInstance(kpgDSA); + kpg.initialize(SecurityUtils.getTestKeySize(kpgDSA)); assertTrue(JarSigner.Builder .getDefaultSignatureAlgorithm(kpg.generateKeyPair().getPrivate()) .equals("SHA256withDSA")); diff --git a/test/jdk/sun/security/pkcs11/Cipher/TestRSACipher.java b/test/jdk/sun/security/pkcs11/Cipher/TestRSACipher.java index 8156decacc8..6799b19d3e7 100644 --- a/test/jdk/sun/security/pkcs11/Cipher/TestRSACipher.java +++ b/test/jdk/sun/security/pkcs11/Cipher/TestRSACipher.java @@ -44,6 +44,7 @@ import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; +import jdk.test.lib.security.SecurityUtils; public class TestRSACipher extends PKCS11Test { @@ -58,8 +59,10 @@ public void main(Provider p) throws Exception { System.out.println("Not supported by provider, skipping"); return; } - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", p); - kpg.initialize(1024); + String kpgAlgorithm = "RSA"; + int keySize = SecurityUtils.getTestKeySize(kpgAlgorithm); + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm, p); + kpg.initialize(keySize); KeyPair kp = kpg.generateKeyPair(); PublicKey publicKey = kp.getPublic(); PrivateKey privateKey = kp.getPrivate(); @@ -113,7 +116,8 @@ public void main(Provider p) throws Exception { c1.update(b); e = c1.doFinal(); - c1.update(new byte[256]); + // Longer buffer size to verify IllegalBlockSizeException is thrown + c1.update(new byte[keySize / 4]); try { e = c1.doFinal(); throw new Exception("completed call"); diff --git a/test/jdk/sun/security/pkcs11/Cipher/TestRSACipherWrap.java b/test/jdk/sun/security/pkcs11/Cipher/TestRSACipherWrap.java index 632f5f48e66..0be916ebf9e 100644 --- a/test/jdk/sun/security/pkcs11/Cipher/TestRSACipherWrap.java +++ b/test/jdk/sun/security/pkcs11/Cipher/TestRSACipherWrap.java @@ -43,6 +43,7 @@ import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; +import jdk.test.lib.security.SecurityUtils; public class TestRSACipherWrap extends PKCS11Test { @@ -57,8 +58,9 @@ public void main(Provider p) throws Exception { System.out.println(RSA_ALGOS[0] + " unsupported, skipping"); return; } - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", p); - kpg.initialize(1024); + String kpgAlgorithm = "RSA"; + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm, p); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair kp = kpg.generateKeyPair(); for (String rsaAlgo: RSA_ALGOS) { diff --git a/test/jdk/sun/security/pkcs11/Cipher/TestRawRSACipher.java b/test/jdk/sun/security/pkcs11/Cipher/TestRawRSACipher.java index 32319f9f3cf..fe6433d096e 100644 --- a/test/jdk/sun/security/pkcs11/Cipher/TestRawRSACipher.java +++ b/test/jdk/sun/security/pkcs11/Cipher/TestRawRSACipher.java @@ -41,6 +41,7 @@ import java.util.HexFormat; import java.util.Random; import javax.crypto.Cipher; +import jdk.test.lib.security.SecurityUtils; public class TestRawRSACipher extends PKCS11Test { @@ -53,8 +54,9 @@ public void main(Provider p) throws Exception { return; } - final int KEY_LEN = 1024; - KeyPairGenerator kpGen = KeyPairGenerator.getInstance("RSA", p); + String kpgAlgorithm = "RSA"; + final int KEY_LEN = SecurityUtils.getTestKeySize(kpgAlgorithm); + KeyPairGenerator kpGen = KeyPairGenerator.getInstance(kpgAlgorithm, p); kpGen.initialize(KEY_LEN); KeyPair kp = kpGen.generateKeyPair(); Random random = new Random(); diff --git a/test/jdk/sun/security/pkcs11/KeyAgreement/TestDH.java b/test/jdk/sun/security/pkcs11/KeyAgreement/TestDH.java index dc25754c717..13b09d16dcf 100644 --- a/test/jdk/sun/security/pkcs11/KeyAgreement/TestDH.java +++ b/test/jdk/sun/security/pkcs11/KeyAgreement/TestDH.java @@ -38,6 +38,7 @@ import java.util.Arrays; import javax.crypto.KeyAgreement; import javax.crypto.SecretKey; +import jdk.test.lib.security.SecurityUtils; public class TestDH extends PKCS11Test { @@ -47,8 +48,9 @@ public void main(Provider p) throws Exception { System.out.println("DH not supported, skipping"); return; } - KeyPairGenerator kpg = KeyPairGenerator.getInstance("DH", p); - kpg.initialize(512); + String kpgAlgorithm = "DH"; + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm, p); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair kp1 = kpg.generateKeyPair(); KeyPair kp2 = kpg.generateKeyPair(); diff --git a/test/jdk/sun/security/provider/KeyStore/CaseSensitiveAliases.java b/test/jdk/sun/security/provider/KeyStore/CaseSensitiveAliases.java index e11a8ac87dc..fd47d0ac60f 100644 --- a/test/jdk/sun/security/provider/KeyStore/CaseSensitiveAliases.java +++ b/test/jdk/sun/security/provider/KeyStore/CaseSensitiveAliases.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ /* * @test * @bug 5091374 5100603 + * @library /test/lib * @summary make sure the JKS case sensitivity works correctly * @author Andreas Sterbenz */ @@ -34,6 +35,7 @@ import java.security.*; import java.security.cert.*; import java.security.cert.Certificate; +import jdk.test.lib.security.SecurityUtils; public class CaseSensitiveAliases { @@ -90,8 +92,9 @@ private static void main(String jks, boolean caseInsensitive) throws Exception { X509Certificate[] a1 = {c1}; X509Certificate[] a2 = {c2}; - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); - kpg.initialize(512); + String kpgAlgorithm = "RSA"; + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); PrivateKey p1 = kpg.generateKeyPair().getPrivate(); PrivateKey p2 = kpg.generateKeyPair().getPrivate(); diff --git a/test/jdk/sun/security/provider/NSASuiteB/TestSHAwithDSASignatureOids.java b/test/jdk/sun/security/provider/NSASuiteB/TestSHAwithDSASignatureOids.java index e76ca9a1386..c7f1ce75ca4 100644 --- a/test/jdk/sun/security/provider/NSASuiteB/TestSHAwithDSASignatureOids.java +++ b/test/jdk/sun/security/provider/NSASuiteB/TestSHAwithDSASignatureOids.java @@ -23,10 +23,12 @@ import java.util.Arrays; import java.util.List; +import jdk.test.lib.security.SecurityUtils; /* * @test * @bug 8075286 + * @library /test/lib * @summary Test the SHAwithDSA signature algorithm OIDs in JDK. * OID and algorithm transformation string should match. * Both could be able to be used to generate the algorithm instance. @@ -40,8 +42,10 @@ public class TestSHAwithDSASignatureOids { new OidAlgorithmPair("2.16.840.1.101.3.4.3.2", "SHA256withDSA")); public static void main(String[] args) throws Exception { - TestSignatureOidHelper helper = new TestSignatureOidHelper("DSA", - System.getProperty("test.provider.name", "SUN"), 1024, DATA); + String kpgAlgorithm = "DSA"; + TestSignatureOidHelper helper = new TestSignatureOidHelper(kpgAlgorithm, + System.getProperty("test.provider.name", "SUN"), + SecurityUtils.getTestKeySize(kpgAlgorithm), DATA); helper.execute(); } } diff --git a/test/jdk/sun/security/rsa/BrokenRSAPrivateCrtKey.java b/test/jdk/sun/security/rsa/BrokenRSAPrivateCrtKey.java index 787011782fa..aef92647396 100644 --- a/test/jdk/sun/security/rsa/BrokenRSAPrivateCrtKey.java +++ b/test/jdk/sun/security/rsa/BrokenRSAPrivateCrtKey.java @@ -24,6 +24,7 @@ /* * @test * @bug 4503229 8220016 + * @library /test/lib * @summary default RSA KeyFactory can return broken RSAPrivateCrtKey objects * This test was taken directly from the bug report, which * was fixed in the crippled JSAFE provider, and needed @@ -35,13 +36,15 @@ import java.security.interfaces.*; import java.security.spec.*; import java.math.BigInteger; +import jdk.test.lib.security.SecurityUtils; public class BrokenRSAPrivateCrtKey { public static void main(String[] args) throws Exception { + String kpgAlgorithm = "RSA"; KeyPairGenerator generator = - KeyPairGenerator.getInstance("RSA", + KeyPairGenerator.getInstance(kpgAlgorithm, System.getProperty("test.provider.name", "SunRsaSign")); - generator.initialize(2048); + generator.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair pair = generator.generateKeyPair(); diff --git a/test/jdk/sun/security/rsa/TestKeyPairGenerator.java b/test/jdk/sun/security/rsa/TestKeyPairGenerator.java index ff142c712fe..ea4d92fd6a3 100644 --- a/test/jdk/sun/security/rsa/TestKeyPairGenerator.java +++ b/test/jdk/sun/security/rsa/TestKeyPairGenerator.java @@ -40,6 +40,7 @@ import java.security.interfaces.*; import java.security.spec.*; +import jdk.test.lib.security.SecurityUtils; import jdk.test.lib.SigTestUtil; import static jdk.test.lib.SigTestUtil.SignatureType; @@ -114,12 +115,13 @@ public static void main(String[] args) throws Exception { provider = Security.getProvider( System.getProperty("test.provider.name", "SunRsaSign")); data = new byte[2048]; - // keypair generation is very slow, test only a few short keys - int[] keyLengths = {512, 512, 1024}; + String kpgAlgorithm = "RSA"; + int keySize = SecurityUtils.getTestKeySize(kpgAlgorithm); + int[] keyLengths = {keySize, keySize, keySize + 1024}; BigInteger[] pubExps = {null, BigInteger.valueOf(3), null}; KeyPair[] keyPairs = new KeyPair[3]; new Random().nextBytes(data); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", provider); + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm, provider); for (int i = 0; i < keyLengths.length; i++) { int len = keyLengths[i]; BigInteger exp = pubExps[i]; diff --git a/test/jdk/sun/security/rsa/TestKeyPairGeneratorExponent.java b/test/jdk/sun/security/rsa/TestKeyPairGeneratorExponent.java index 6d77683e04e..2c60d66664e 100644 --- a/test/jdk/sun/security/rsa/TestKeyPairGeneratorExponent.java +++ b/test/jdk/sun/security/rsa/TestKeyPairGeneratorExponent.java @@ -24,6 +24,7 @@ /** * @test * @bug 8216012 + * @library /test/lib * @summary Tests the RSA public key exponent for KeyPairGenerator * @run main/timeout=60 TestKeyPairGeneratorExponent */ @@ -33,14 +34,16 @@ import java.security.*; import java.security.interfaces.*; import java.security.spec.*; +import jdk.test.lib.security.SecurityUtils; public class TestKeyPairGeneratorExponent { - private static int keyLen = 512; + private static final String KPG_ALGORITHM = "RSA"; + private static final int KEY_LENGTH = SecurityUtils.getTestKeySize(KPG_ALGORITHM); private static BigInteger[] validExponents = new BigInteger[] { RSAKeyGenParameterSpec.F0, RSAKeyGenParameterSpec.F4, - BigInteger.ONE.shiftLeft(keyLen - 1).subtract(BigInteger.ONE) + BigInteger.ONE.shiftLeft(KEY_LENGTH - 1).subtract(BigInteger.ONE) }; private static BigInteger[] invalidExponents = new BigInteger[] { @@ -55,7 +58,7 @@ public static void testValidExponents(KeyPairGenerator kpg, BigInteger exponent) { System.out.println("Testing exponent = " + exponent.toString(16)); try { - kpg.initialize(new RSAKeyGenParameterSpec(keyLen, exponent)); + kpg.initialize(new RSAKeyGenParameterSpec(KEY_LENGTH, exponent)); kpg.generateKeyPair(); System.out.println("OK, key pair generated"); } catch(InvalidAlgorithmParameterException iape){ @@ -67,7 +70,7 @@ public static void testInvalidExponents(KeyPairGenerator kpg, BigInteger exponent) { System.out.println("Testing exponent = " + exponent.toString(16)); try { - kpg.initialize(new RSAKeyGenParameterSpec(keyLen, exponent)); + kpg.initialize(new RSAKeyGenParameterSpec(KEY_LENGTH, exponent)); kpg.generateKeyPair(); throw new RuntimeException("Error: Expected IAPE not thrown."); } catch(InvalidAlgorithmParameterException iape){ @@ -81,7 +84,7 @@ public static void testInvalidExponents(KeyPairGenerator kpg, public static void main(String[] args) throws Exception { KeyPairGenerator kpg = - KeyPairGenerator.getInstance("RSA", + KeyPairGenerator.getInstance(KPG_ALGORITHM, System.getProperty("test.provider.name", "SunRsaSign")); for(BigInteger validExponent : validExponents) { diff --git a/test/jdk/sun/security/rsa/TestKeyPairGeneratorInit.java b/test/jdk/sun/security/rsa/TestKeyPairGeneratorInit.java index e72474fda24..7d85c56e684 100644 --- a/test/jdk/sun/security/rsa/TestKeyPairGeneratorInit.java +++ b/test/jdk/sun/security/rsa/TestKeyPairGeneratorInit.java @@ -24,11 +24,13 @@ /** * @test * @bug 8211049 + * @library /test/lib * @summary make sure the supplied SecureRandom object is used */ import java.security.*; import java.security.interfaces.*; +import jdk.test.lib.security.SecurityUtils; public class TestKeyPairGeneratorInit { @@ -45,11 +47,12 @@ public void nextBytes(byte[] bytes) { } public static void main(String[] args) throws Exception { + String kpgAlgorithm = "RSA"; KeyPairGenerator kpg = - KeyPairGenerator.getInstance("RSA", + KeyPairGenerator.getInstance(kpgAlgorithm, System.getProperty("test.provider.name", "SunRsaSign")); MySecureRandom rnd = new MySecureRandom(); - kpg.initialize(2048, rnd); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm), rnd); System.out.println("Generate keypair then check"); KeyPair kp = kpg.generateKeyPair(); if (!rnd.isUsed) { diff --git a/test/jdk/sun/security/rsa/TestKeyPairGeneratorLength.java b/test/jdk/sun/security/rsa/TestKeyPairGeneratorLength.java index 5b05af007f2..765ca485bbc 100644 --- a/test/jdk/sun/security/rsa/TestKeyPairGeneratorLength.java +++ b/test/jdk/sun/security/rsa/TestKeyPairGeneratorLength.java @@ -24,23 +24,27 @@ /** * @test * @bug 5078280 + * @library /test/lib * @summary make sure generated key pairs are exactly the requested length * @author Andreas Sterbenz */ import java.security.*; import java.security.interfaces.*; +import jdk.test.lib.security.SecurityUtils; public class TestKeyPairGeneratorLength { + private static final String KPG_ALGORITHM = "RSA"; + private static final int KEY_LENGTH = SecurityUtils.getTestKeySize(KPG_ALGORITHM); public static void main(String[] args) throws Exception { - test(512); - test(513); + test(KEY_LENGTH); + test(KEY_LENGTH + 1); System.out.println("Done."); } private static void test(int len) throws Exception { - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", + KeyPairGenerator kpg = KeyPairGenerator.getInstance(KPG_ALGORITHM, System.getProperty("test.provider.name", "SunRsaSign")); kpg.initialize(len); for (int i = 0; i < 6; i++) { diff --git a/test/jdk/sun/security/rsa/pss/DefaultParamSpec.java b/test/jdk/sun/security/rsa/pss/DefaultParamSpec.java index 6f121c75fd2..782fbe510b7 100644 --- a/test/jdk/sun/security/rsa/pss/DefaultParamSpec.java +++ b/test/jdk/sun/security/rsa/pss/DefaultParamSpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -30,10 +30,12 @@ import java.security.spec.PSSParameterSpec; import java.security.spec.RSAKeyGenParameterSpec; import java.util.Date; +import jdk.test.lib.security.SecurityUtils; /** * @test * @bug 8242811 + * @library /test/lib * @modules java.base/sun.security.x509 * @summary AlgorithmId::getDefaultAlgorithmParameterSpec returns incompatible * PSSParameterSpec for an RSASSA-PSS key @@ -42,7 +44,7 @@ public class DefaultParamSpec { public static void main(String[] args) throws Exception { KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSASSA-PSS"); KeyFactory kf = KeyFactory.getInstance("RSASSA-PSS"); - kpg.initialize(new RSAKeyGenParameterSpec(2048, + kpg.initialize(new RSAKeyGenParameterSpec(SecurityUtils.getTestKeySize("RSA"), RSAKeyGenParameterSpec.F4, new PSSParameterSpec( "SHA-384", "MGF1", diff --git a/test/jdk/sun/security/rsa/pss/InitAgain.java b/test/jdk/sun/security/rsa/pss/InitAgain.java index 209d5f46178..9b1963c2ee0 100644 --- a/test/jdk/sun/security/rsa/pss/InitAgain.java +++ b/test/jdk/sun/security/rsa/pss/InitAgain.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,10 +22,12 @@ */ import java.security.*; import java.security.spec.*; +import jdk.test.lib.security.SecurityUtils; /** * @test * @bug 8205445 + * @library /test/lib * @summary Make sure old state is cleared when init is called again */ public class InitAgain { @@ -40,8 +42,9 @@ public static void main(String[] args) throws Exception { s1.setParameter(PSSParameterSpec.DEFAULT); s2.setParameter(PSSParameterSpec.DEFAULT); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); - kpg.initialize(1024); + String kpgAlgorithm = "RSA"; + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair kp = kpg.generateKeyPair(); s1.initSign(kp.getPrivate()); diff --git a/test/jdk/sun/security/rsa/pss/SerializedPSSKey.java b/test/jdk/sun/security/rsa/pss/SerializedPSSKey.java index 0c4578653c5..f946427092c 100644 --- a/test/jdk/sun/security/rsa/pss/SerializedPSSKey.java +++ b/test/jdk/sun/security/rsa/pss/SerializedPSSKey.java @@ -50,9 +50,11 @@ import java.security.spec.RSAPublicKeySpec; import java.security.spec.X509EncodedKeySpec; import java.util.Arrays; +import jdk.test.lib.security.SecurityUtils; /** * @test @bug 8242335 + * @library /test/lib * @summary Test RSASSA-PSS serialized keys * @run main SerializedPSSKey */ @@ -62,7 +64,7 @@ public class SerializedPSSKey { private static final String OID = "1.2.840.113549.1.1.10"; private static final String PROVIDER = System.getProperty("test.provider.name", "SunRsaSign"); - private static final int KEY_SIZE = 2048; + private static final int KEY_SIZE = SecurityUtils.getTestKeySize("RSA"); private static final byte[] DATA = "Test".getBytes(); /** * Digest algorithms to test w/ RSASSA-PSS signature algorithms diff --git a/test/jdk/sun/security/rsa/pss/TestPSSKeySupport.java b/test/jdk/sun/security/rsa/pss/TestPSSKeySupport.java index 6b117a4b5fe..44d1324b00e 100644 --- a/test/jdk/sun/security/rsa/pss/TestPSSKeySupport.java +++ b/test/jdk/sun/security/rsa/pss/TestPSSKeySupport.java @@ -24,6 +24,7 @@ /** * @test * @bug 8146293 8242556 8172366 8254717 + * @library /test/lib * @summary Test RSASSA-PSS Key related support such as KeyPairGenerator * and KeyFactory of the SunRsaSign provider */ @@ -35,6 +36,7 @@ import java.security.*; import java.security.interfaces.*; import java.security.spec.*; +import jdk.test.lib.security.SecurityUtils; public class TestPSSKeySupport { @@ -130,12 +132,13 @@ private static void checkKeyPair(KeyPair kp) throws Exception { } public static void main(String[] args) throws Exception { + int keySize = SecurityUtils.getTestKeySize("RSA"); KeyPairGenerator kpg = KeyPairGenerator.getInstance(ALGO, System.getProperty("test.provider.name", "SunRsaSign")); // Algorithm-Independent Initialization - kpg.initialize(2048); + kpg.initialize(keySize); KeyPair kp = kpg.generateKeyPair(); checkKeyPair(kp); BigInteger pubExp = ((RSAPublicKey)kp.getPublic()).getPublicExponent(); @@ -143,13 +146,13 @@ public static void main(String[] args) throws Exception { // Algorithm-specific Initialization PSSParameterSpec params = new PSSParameterSpec("SHA-256", "MGF1", MGF1ParameterSpec.SHA256, 32, 1); - kpg.initialize(new RSAKeyGenParameterSpec(2048, pubExp, params)); + kpg.initialize(new RSAKeyGenParameterSpec(keySize, pubExp, params)); KeyPair kp2 = kpg.generateKeyPair(); checkKeyPair(kp2); params = new PSSParameterSpec("SHA3-256", "MGF1", new MGF1ParameterSpec("SHA3-256"), 32, 1); - kpg.initialize(new RSAKeyGenParameterSpec(2048, pubExp, params)); + kpg.initialize(new RSAKeyGenParameterSpec(keySize, pubExp, params)); KeyPair kp3 = kpg.generateKeyPair(); checkKeyPair(kp3); diff --git a/test/jdk/sun/security/x509/AlgorithmId/NonStandardNames.java b/test/jdk/sun/security/x509/AlgorithmId/NonStandardNames.java index a8098561d4e..f12e5717682 100644 --- a/test/jdk/sun/security/x509/AlgorithmId/NonStandardNames.java +++ b/test/jdk/sun/security/x509/AlgorithmId/NonStandardNames.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ /* * @test * @bug 7180907 8277224 + * @library /test/lib * @summary Jarsigner -verify fails if rsa file used sha-256 with authenticated attributes * @modules java.base/sun.security.pkcs * java.base/sun.security.tools.keytool @@ -36,6 +37,7 @@ import java.security.MessageDigest; import java.security.Signature; import java.security.cert.X509Certificate; +import jdk.test.lib.security.SecurityUtils; import sun.security.pkcs.ContentInfo; import sun.security.pkcs.PKCS7; import sun.security.pkcs.PKCS9Attribute; @@ -52,8 +54,9 @@ public static void main(String[] args) throws Exception { byte[] data = "Hello".getBytes(); X500Name n = new X500Name("cn=Me"); - CertAndKeyGen cakg = new CertAndKeyGen("RSA", "SHA256withRSA"); - cakg.generate(1024); + String kpgAlgorithm = "RSA"; + CertAndKeyGen cakg = new CertAndKeyGen(kpgAlgorithm, "SHA256withRSA"); + cakg.generate(SecurityUtils.getTestKeySize(kpgAlgorithm)); X509Certificate cert = cakg.getSelfCertificate(n, 1000); MessageDigest md = MessageDigest.getInstance("SHA-256"); diff --git a/test/lib/jdk/test/lib/security/SecurityUtils.java b/test/lib/jdk/test/lib/security/SecurityUtils.java index 319416a466c..e5a36223eb4 100644 --- a/test/lib/jdk/test/lib/security/SecurityUtils.java +++ b/test/lib/jdk/test/lib/security/SecurityUtils.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -36,6 +36,27 @@ */ public final class SecurityUtils { + /* + * Key Sizes for various algorithms. + */ + private enum KeySize{ + RSA(2048), + DSA(2048), + DH(2048); + + private final int keySize; + KeySize(int keySize) { + this.keySize = keySize; + } + + @Override + public String toString() { + return String.valueOf(keySize); + } + } + + private final static int DEFAULT_SALTSIZE = 16; + private static String getCacerts() { String sep = File.separator; return System.getProperty("java.home") + sep @@ -107,6 +128,25 @@ public static void removeAlgsFromDSigPolicy(String... algs) { removeFromDSigPolicy("disallowAlg", List.of(algs)); } + /** + * Returns a salt size for tests + */ + public static int getTestSaltSize() { + return DEFAULT_SALTSIZE; + } + + /** + * Returns a key size in bits for tests, depending on the specified algorithm + */ + public static int getTestKeySize(String algo) { + return switch (algo) { + case "RSA" -> KeySize.RSA.keySize; + case "DSA" -> KeySize.DSA.keySize; + case "DH", "DiffieHellman" -> KeySize.DH.keySize; + default -> throw new RuntimeException("Test key size not defined for " + algo); + }; + } + private static void removeFromDSigPolicy(String rule, List algs) { String value = Security.getProperty("jdk.xml.dsig.secureValidationPolicy"); value = Arrays.stream(value.split(",")) From becac8c858af11d3321c4bee2c4b8a2df0f4e8ab Mon Sep 17 00:00:00 2001 From: Jiangli Zhou Date: Thu, 31 Oct 2024 01:50:00 +0000 Subject: [PATCH 040/159] 8342642: Class loading failure due to archived map issue in ModuleLoaderMap.Mapper Reviewed-by: iklam, shade, alanb --- .../jdk/internal/module/ModuleLoaderMap.java | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/java.base/share/classes/jdk/internal/module/ModuleLoaderMap.java b/src/java.base/share/classes/jdk/internal/module/ModuleLoaderMap.java index a8b5eda709e..e48624bc524 100644 --- a/src/java.base/share/classes/jdk/internal/module/ModuleLoaderMap.java +++ b/src/java.base/share/classes/jdk/internal/module/ModuleLoaderMap.java @@ -51,32 +51,31 @@ private static final class Mapper implements Function { private static final ClassLoader APP_CLASSLOADER = ClassLoaders.appClassLoader(); - private static final Integer PLATFORM_LOADER_INDEX = 1; - private static final Integer APP_LOADER_INDEX = 2; + private static final String PLATFORM_LOADER_NAME = "PLATFORM"; + private static final String APP_LOADER_NAME = "APP"; /** - * Map from module to a class loader index. The index is resolved to the + * Map from module name to class loader name. The name is resolved to the * actual class loader in {@code apply}. */ - private final Map map; + private final Map map; /** * Creates a Mapper to map module names in the given Configuration to * built-in classloaders. * * As a proxy for the actual classloader, we store an easily archiveable - * index value in the internal map. The index is stored as a boxed value - * so that we can cheaply do identity comparisons during bootstrap. + * loader name in the internal map. */ Mapper(Configuration cf) { - var map = new HashMap(); + var map = new HashMap(); for (ResolvedModule resolvedModule : cf.modules()) { String mn = resolvedModule.name(); if (!Modules.bootModules.contains(mn)) { if (Modules.platformModules.contains(mn)) { - map.put(mn, PLATFORM_LOADER_INDEX); + map.put(mn, PLATFORM_LOADER_NAME); } else { - map.put(mn, APP_LOADER_INDEX); + map.put(mn, APP_LOADER_NAME); } } } @@ -85,12 +84,12 @@ private static final class Mapper implements Function { @Override public ClassLoader apply(String name) { - Integer loader = map.get(name); - if (loader == APP_LOADER_INDEX) { + String loader = map.get(name); + if (APP_LOADER_NAME.equals(loader)) { return APP_CLASSLOADER; - } else if (loader == PLATFORM_LOADER_INDEX) { + } else if (PLATFORM_LOADER_NAME.equals(loader)) { return PLATFORM_CLASSLOADER; - } else { // BOOT_LOADER_INDEX + } else { return null; } } From cc7a9478cf46dbd34556279dbe3a9702f1741c6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Lund=C3=A9n?= Date: Thu, 31 Oct 2024 07:46:35 +0000 Subject: [PATCH 041/159] 8342156: C2: Compilation failure with fewer arguments after JDK-8329032 Co-authored-by: Christian Hagedorn Reviewed-by: rcastanedalo, chagedorn, kvn --- .../arguments/TestManyParameters.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 test/hotspot/jtreg/compiler/arguments/TestManyParameters.java diff --git a/test/hotspot/jtreg/compiler/arguments/TestManyParameters.java b/test/hotspot/jtreg/compiler/arguments/TestManyParameters.java new file mode 100644 index 00000000000..4828a0feabc --- /dev/null +++ b/test/hotspot/jtreg/compiler/arguments/TestManyParameters.java @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * @test + * @requires os.simpleArch == "x64" + * @bug 8342156 + * @summary Check that C2's restriction on number of method arguments is not too + * restrictive on x64. + * + * @run main/othervm -Xcomp + * -XX:CompileCommand=compileonly,compiler.arguments.TestManyParameters::test + * -XX:+UnlockDiagnosticVMOptions + * -XX:+AbortVMOnCompilationFailure + * compiler.arguments.TestManyParameters + */ + +package compiler.arguments; + +public class TestManyParameters { + + public static void main(String[] args) { + test(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54); + } + + static void test(int i1, int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9, int i10, int i11, int i12, int i13, int i14, int i15, int i16, int i17, int i18, int i19, int i20, int i21, int i22, int i23, int i24, int i25, int i26, int i27, int i28, int i29, int i30, int i31, int i32, int i33, int i34, int i35, int i36, int i37, int i38, int i39, int i40, int i41, int i42, int i43, int i44, int i45, int i46, int i47, int i48, int i49, int i50, int i51, int i52, int i53, int i54) {} +} From 460d8c78c4cb9e33bfd6ec8e14e1a60235f8c353 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eirik=20Bj=C3=B8rsn=C3=B8s?= Date: Thu, 31 Oct 2024 08:32:48 +0000 Subject: [PATCH 042/159] 8343307: Throw ZipException instead of IAE in ZipFile.Source::initCEN Reviewed-by: lancea, jpai --- src/java.base/share/classes/java/util/zip/ZipFile.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/java.base/share/classes/java/util/zip/ZipFile.java b/src/java.base/share/classes/java/util/zip/ZipFile.java index 792b317a006..3883e245db3 100644 --- a/src/java.base/share/classes/java/util/zip/ZipFile.java +++ b/src/java.base/share/classes/java/util/zip/ZipFile.java @@ -1798,7 +1798,7 @@ private void initCEN(int knownTotal) throws IOException { metaVersions = new HashMap<>(); metaVersions.computeIfAbsent(hashCode, _ -> new BitSet()).set(version); } catch (Exception e) { - throw new IllegalArgumentException(e); + zerror("invalid CEN header (bad entry name or comment)"); } } } From 4f96a8ecd7af92122394cada0c74d8504fe1f4c9 Mon Sep 17 00:00:00 2001 From: Alan Bateman Date: Thu, 31 Oct 2024 08:53:19 +0000 Subject: [PATCH 043/159] 8343132: Remove temporary transitions from Virtual thread implementation Reviewed-by: dholmes, sspitsyn, pchilanomate --- src/hotspot/share/include/jvm.h | 3 - .../share/classes/java/lang/ThreadLocal.java | 45 ++-- .../classes/java/lang/VirtualThread.java | 204 +++++++----------- .../java/util/concurrent/ForkJoinPool.java | 4 +- .../share/native/libjava/VirtualThread.c | 3 +- .../virtual/ParkWithFixedThreadPool.java | 31 ++- 6 files changed, 133 insertions(+), 157 deletions(-) diff --git a/src/hotspot/share/include/jvm.h b/src/hotspot/share/include/jvm.h index edad228b4e3..6634306636b 100644 --- a/src/hotspot/share/include/jvm.h +++ b/src/hotspot/share/include/jvm.h @@ -1142,9 +1142,6 @@ JVM_VirtualThreadMount(JNIEnv* env, jobject vthread, jboolean hide); JNIEXPORT void JNICALL JVM_VirtualThreadUnmount(JNIEnv* env, jobject vthread, jboolean hide); -JNIEXPORT void JNICALL -JVM_VirtualThreadHideFrames(JNIEnv* env, jclass clazz, jboolean hide); - JNIEXPORT void JNICALL JVM_VirtualThreadDisableSuspend(JNIEnv* env, jclass clazz, jboolean enter); diff --git a/src/java.base/share/classes/java/lang/ThreadLocal.java b/src/java.base/share/classes/java/lang/ThreadLocal.java index 4c2eb08c125..8a9aa7998fd 100644 --- a/src/java.base/share/classes/java/lang/ThreadLocal.java +++ b/src/java.base/share/classes/java/lang/ThreadLocal.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -232,8 +232,8 @@ private T setInitialValue(Thread t) { if (this instanceof TerminatingThreadLocal ttl) { TerminatingThreadLocal.register(ttl); } - if (TRACE_VTHREAD_LOCALS) { - dumpStackIfVirtualThread(); + if (TRACE_VTHREAD_LOCALS && t == Thread.currentThread() && t.isVirtual()) { + printStackTrace(); } return value; } @@ -249,8 +249,8 @@ private T setInitialValue(Thread t) { */ public void set(T value) { set(Thread.currentThread(), value); - if (TRACE_VTHREAD_LOCALS) { - dumpStackIfVirtualThread(); + if (TRACE_VTHREAD_LOCALS && Thread.currentThread().isVirtual()) { + printStackTrace(); } } @@ -799,7 +799,6 @@ private void expungeStaleEntries() { } } - /** * Reads the value of the jdk.traceVirtualThreadLocals property to determine if * a stack trace should be printed when a virtual thread sets a thread local. @@ -811,30 +810,28 @@ private static boolean traceVirtualThreadLocals() { } /** - * Print a stack trace if the current thread is a virtual thread. + * Print the stack trace of the current thread, skipping the printStackTrace frame. + * A thread local is used to detect reentrancy as the printing may itself use + * thread locals. */ - static void dumpStackIfVirtualThread() { - if (Thread.currentThread() instanceof VirtualThread vthread) { + private void printStackTrace() { + Thread t = Thread.currentThread(); + ThreadLocalMap map = getMap(t); + if (map.getEntry(DUMPING_STACK) == null) { + map.set(DUMPING_STACK, true); try { - var stack = StackWalkerHolder.STACK_WALKER.walk(s -> + var stack = StackWalker.getInstance().walk(s -> s.skip(1) // skip caller .collect(Collectors.toList())); - - // switch to carrier thread to avoid recursive use of thread-locals - vthread.executeOnCarrierThread(() -> { - System.out.println(vthread); - for (StackWalker.StackFrame frame : stack) { - System.out.format(" %s%n", frame.toStackTraceElement()); - } - return null; - }); - } catch (Exception e) { - throw new InternalError(e); + System.out.println(t); + for (StackWalker.StackFrame frame : stack) { + System.out.format(" %s%n", frame.toStackTraceElement()); + } + } finally { + map.remove(DUMPING_STACK); } } } - private static class StackWalkerHolder { - static final StackWalker STACK_WALKER = StackWalker.getInstance(); - } + private static final ThreadLocal DUMPING_STACK = new ThreadLocal<>(); } diff --git a/src/java.base/share/classes/java/lang/VirtualThread.java b/src/java.base/share/classes/java/lang/VirtualThread.java index 8f389906f2a..f76a6eec914 100644 --- a/src/java.base/share/classes/java/lang/VirtualThread.java +++ b/src/java.base/share/classes/java/lang/VirtualThread.java @@ -28,7 +28,6 @@ import java.security.PrivilegedAction; import java.util.Locale; import java.util.Objects; -import java.util.concurrent.Callable; import java.util.concurrent.CountDownLatch; import java.util.concurrent.Executor; import java.util.concurrent.Executors; @@ -137,13 +136,18 @@ final class VirtualThread extends BaseVirtualThread { // parking permit private volatile boolean parkPermit; + // timeout for timed-park, in nanoseconds, only accessed on current/carrier thread + private long parkTimeout; + + // timer task for timed-park, only accessed on current/carrier thread + private Future timeoutTask; + // carrier thread when mounted, accessed by VM private volatile Thread carrierThread; // termination object when joining, created lazily if needed private volatile CountDownLatch termination; - /** * Returns the default scheduler. */ @@ -246,8 +250,10 @@ private void runContinuation() { if (!compareAndSetState(initialState, RUNNING)) { return; } - // consume parking permit when continuing after parking + // consume permit when continuing after parking. If continuing after a + // timed-park then the timeout task is cancelled. if (initialState == UNPARKED) { + cancelTimeoutTask(); setParkPermit(false); } } else { @@ -268,6 +274,17 @@ private void runContinuation() { } } + /** + * Cancel timeout task when continuing after a timed-park. The + * timeout task may be executing, or may have already completed. + */ + private void cancelTimeoutTask() { + if (timeoutTask != null) { + timeoutTask.cancel(false); + timeoutTask = null; + } + } + /** * Submits the runContinuation task to the scheduler. For the default scheduler, * and calling it on a worker thread, the task will be pushed to the local queue, @@ -276,23 +293,21 @@ private void runContinuation() { * @param retryOnOOME true to retry indefinitely if OutOfMemoryError is thrown * @throws RejectedExecutionException */ - @ChangesCurrentThread private void submitRunContinuation(Executor scheduler, boolean retryOnOOME) { boolean done = false; while (!done) { try { - // The scheduler's execute method is invoked in the context of the - // carrier thread. For the default scheduler this ensures that the - // current thread is a ForkJoinWorkerThread so the task will be pushed - // to the local queue. For other schedulers, it avoids deadlock that - // would arise due to platform and virtual threads contending for a - // lock on the scheduler's submission queue. - if (currentThread() instanceof VirtualThread vthread) { - vthread.switchToCarrierThread(); + // Pin the continuation to prevent the virtual thread from unmounting + // when submitting a task. For the default scheduler this ensures that + // the carrier doesn't change when pushing a task. For other schedulers + // it avoids deadlock that could arise due to carriers and virtual + // threads contending for a lock. + if (currentThread().isVirtual()) { + Continuation.pin(); try { scheduler.execute(runContinuation); } finally { - switchToVirtualThread(vthread); + Continuation.unpin(); } } else { scheduler.execute(runContinuation); @@ -311,24 +326,6 @@ private void submitRunContinuation(Executor scheduler, boolean retryOnOOME) { } } - /** - * Submits the runContinuation task to given scheduler with a lazy submit. - * If OutOfMemoryError is thrown then the submit will be retried until it succeeds. - * @throws RejectedExecutionException - * @see ForkJoinPool#lazySubmit(ForkJoinTask) - */ - private void lazySubmitRunContinuation(ForkJoinPool pool) { - assert Thread.currentThread() instanceof CarrierThread; - try { - pool.lazySubmit(ForkJoinTask.adapt(runContinuation)); - } catch (RejectedExecutionException ree) { - submitFailed(ree); - throw ree; - } catch (OutOfMemoryError e) { - submitRunContinuation(pool, true); - } - } - /** * Submits the runContinuation task to the given scheduler as an external submit. * If OutOfMemoryError is thrown then the submit will be retried until it succeeds. @@ -358,6 +355,30 @@ private void submitRunContinuation() { submitRunContinuation(scheduler, true); } + /** + * Lazy submit the runContinuation task if invoked on a carrier thread and its local + * queue is empty. If not empty, or invoked by another thread, then this method works + * like submitRunContinuation and just submits the task to the scheduler. + * If OutOfMemoryError is thrown then the submit will be retried until it succeeds. + * @throws RejectedExecutionException + * @see ForkJoinPool#lazySubmit(ForkJoinTask) + */ + private void lazySubmitRunContinuation() { + if (currentThread() instanceof CarrierThread ct && ct.getQueuedTaskCount() == 0) { + ForkJoinPool pool = ct.getPool(); + try { + pool.lazySubmit(ForkJoinTask.adapt(runContinuation)); + } catch (RejectedExecutionException ree) { + submitFailed(ree); + throw ree; + } catch (OutOfMemoryError e) { + submitRunContinuation(); + } + } else { + submitRunContinuation(); + } + } + /** * Submits the runContinuation task to the scheduler. For the default scheduler, and * calling it a virtual thread that uses the default scheduler, the task will be @@ -474,45 +495,6 @@ private void unmount() { notifyJvmtiUnmount(/*hide*/false); } - /** - * Sets the current thread to the current carrier thread. - */ - @ChangesCurrentThread - @JvmtiMountTransition - private void switchToCarrierThread() { - notifyJvmtiHideFrames(true); - Thread carrier = this.carrierThread; - assert Thread.currentThread() == this - && carrier == Thread.currentCarrierThread(); - carrier.setCurrentThread(carrier); - } - - /** - * Sets the current thread to the given virtual thread. - */ - @ChangesCurrentThread - @JvmtiMountTransition - private static void switchToVirtualThread(VirtualThread vthread) { - Thread carrier = vthread.carrierThread; - assert carrier == Thread.currentCarrierThread(); - carrier.setCurrentThread(vthread); - notifyJvmtiHideFrames(false); - } - - /** - * Executes the given value returning task on the current carrier thread. - */ - @ChangesCurrentThread - V executeOnCarrierThread(Callable task) throws Exception { - assert Thread.currentThread() == this; - switchToCarrierThread(); - try { - return task.call(); - } finally { - switchToVirtualThread(this); - } - } - /** * Invokes Continuation.yield, notifying JVMTI (if enabled) to hide frames until * the continuation continues. @@ -528,9 +510,8 @@ private boolean yieldContinuation() { } /** - * Invoked after the continuation yields. If parking then it sets the state - * and also re-submits the task to continue if unparked while parking. - * If yielding due to Thread.yield then it just submits the task to continue. + * Invoked in the context of the carrier thread after the Continuation yields when + * parking or Thread.yield. */ private void afterYield() { assert carrierThread == null; @@ -544,17 +525,20 @@ private void afterYield() { // LockSupport.park/parkNanos if (s == PARKING || s == TIMED_PARKING) { - int newState = (s == PARKING) ? PARKED : TIMED_PARKED; - setState(newState); + int newState; + if (s == PARKING) { + setState(newState = PARKED); + } else { + // schedule unpark + assert parkTimeout > 0; + timeoutTask = schedule(this::unpark, parkTimeout, NANOSECONDS); + setState(newState = TIMED_PARKED); + } // may have been unparked while parking if (parkPermit && compareAndSetState(newState, UNPARKED)) { - // lazy submit to continue on the current carrier if possible - if (currentThread() instanceof CarrierThread ct && ct.getQueuedTaskCount() == 0) { - lazySubmitRunContinuation(ct.getPool()); - } else { - submitRunContinuation(); - } + // lazy submit if local queue is empty + lazySubmitRunContinuation(); } return; } @@ -672,7 +656,9 @@ void park() { boolean yielded = false; setState(PARKING); try { - yielded = yieldContinuation(); // may throw + yielded = yieldContinuation(); + } catch (OutOfMemoryError e) { + // park on carrier } finally { assert (Thread.currentThread() == this) && (yielded == (state() == RUNNING)); if (!yielded) { @@ -707,21 +693,23 @@ void parkNanos(long nanos) { if (nanos > 0) { long startTime = System.nanoTime(); + // park the thread, afterYield will schedule the thread to unpark boolean yielded = false; - Future unparker = scheduleUnpark(nanos); // may throw OOME + setParkTimeout(nanos); setState(TIMED_PARKING); try { - yielded = yieldContinuation(); // may throw + yielded = yieldContinuation(); + } catch (OutOfMemoryError e) { + // park on carrier } finally { assert (Thread.currentThread() == this) && (yielded == (state() == RUNNING)); if (!yielded) { assert state() == TIMED_PARKING; setState(RUNNING); } - cancel(unparker); } - // park on carrier thread for remaining time when pinned + // park on carrier thread for remaining time when pinned (or OOME) if (!yielded) { long remainingNanos = nanos - (System.nanoTime() - startTime); parkOnCarrierThread(true, remainingNanos); @@ -772,38 +760,6 @@ private void parkOnCarrierThread(boolean timed, long nanos) { } } - /** - * Schedule this virtual thread to be unparked after a given delay. - */ - @ChangesCurrentThread - private Future scheduleUnpark(long nanos) { - assert Thread.currentThread() == this; - // need to switch to current carrier thread to avoid nested parking - switchToCarrierThread(); - try { - return schedule(this::unpark, nanos, NANOSECONDS); - } finally { - switchToVirtualThread(this); - } - } - - /** - * Cancels a task if it has not completed. - */ - @ChangesCurrentThread - private void cancel(Future future) { - assert Thread.currentThread() == this; - if (!future.isDone()) { - // need to switch to current carrier thread to avoid nested parking - switchToCarrierThread(); - try { - future.cancel(false); - } finally { - switchToVirtualThread(this); - } - } - } - /** * Re-enables this virtual thread for scheduling. If this virtual thread is parked * then its task is scheduled to continue, otherwise its next call to {@code park} or @@ -1041,10 +997,10 @@ Thread.State threadState() { return Thread.State.RUNNABLE; case PARKED: case PINNED: - return State.WAITING; + return Thread.State.WAITING; case TIMED_PARKED: case TIMED_PINNED: - return State.TIMED_WAITING; + return Thread.State.TIMED_WAITING; case TERMINATED: return Thread.State.TERMINATED; default: @@ -1263,6 +1219,10 @@ private boolean getAndSetParkPermit(boolean newValue) { } } + private void setParkTimeout(long timeout) { + parkTimeout = timeout; + } + private void setCarrierThread(Thread carrier) { // U.putReferenceRelease(this, CARRIER_THREAD, carrier); this.carrierThread = carrier; @@ -1286,10 +1246,6 @@ private void setCarrierThread(Thread carrier) { @JvmtiMountTransition private native void notifyJvmtiUnmount(boolean hide); - @IntrinsicCandidate - @JvmtiMountTransition - private static native void notifyJvmtiHideFrames(boolean hide); - @IntrinsicCandidate private static native void notifyJvmtiDisableSuspend(boolean enter); diff --git a/src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java b/src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java index cb061813c8a..13ab965c530 100644 --- a/src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java +++ b/src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java @@ -51,6 +51,7 @@ import java.util.function.Predicate; import java.util.concurrent.CountDownLatch; import java.util.concurrent.locks.LockSupport; +import jdk.internal.access.JavaLangAccess; import jdk.internal.access.JavaUtilConcurrentFJPAccess; import jdk.internal.access.SharedSecrets; import jdk.internal.misc.Unsafe; @@ -2632,7 +2633,7 @@ else if ((runState & SHUTDOWN) != 0L) { private void poolSubmit(boolean signalIfEmpty, ForkJoinTask task) { Thread t; ForkJoinWorkerThread wt; WorkQueue q; boolean internal; - if (((t = Thread.currentThread()) instanceof ForkJoinWorkerThread) && + if (((t = JLA.currentCarrierThread()) instanceof ForkJoinWorkerThread) && (wt = (ForkJoinWorkerThread)t).pool == this) { internal = true; q = wt.workQueue; @@ -2643,6 +2644,7 @@ private void poolSubmit(boolean signalIfEmpty, ForkJoinTask task) { } q.push(task, signalIfEmpty ? this : null, internal); } + private static final JavaLangAccess JLA = SharedSecrets.getJavaLangAccess(); /** * Returns queue for an external submission, bypassing call to diff --git a/src/java.base/share/native/libjava/VirtualThread.c b/src/java.base/share/native/libjava/VirtualThread.c index 94dbe0b7e37..f9d1d4996fc 100644 --- a/src/java.base/share/native/libjava/VirtualThread.c +++ b/src/java.base/share/native/libjava/VirtualThread.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -36,7 +36,6 @@ static JNINativeMethod methods[] = { { "notifyJvmtiEnd", "()V", (void *)&JVM_VirtualThreadEnd }, { "notifyJvmtiMount", "(Z)V", (void *)&JVM_VirtualThreadMount }, { "notifyJvmtiUnmount", "(Z)V", (void *)&JVM_VirtualThreadUnmount }, - { "notifyJvmtiHideFrames", "(Z)V", (void *)&JVM_VirtualThreadHideFrames }, { "notifyJvmtiDisableSuspend", "(Z)V", (void *)&JVM_VirtualThreadDisableSuspend }, }; diff --git a/test/jdk/java/lang/Thread/virtual/ParkWithFixedThreadPool.java b/test/jdk/java/lang/Thread/virtual/ParkWithFixedThreadPool.java index 28a32fc504a..70b73884d92 100644 --- a/test/jdk/java/lang/Thread/virtual/ParkWithFixedThreadPool.java +++ b/test/jdk/java/lang/Thread/virtual/ParkWithFixedThreadPool.java @@ -30,14 +30,16 @@ * @run main ParkWithFixedThreadPool */ -import java.util.concurrent.*; -import java.util.concurrent.atomic.*; +import java.util.concurrent.Executor; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.ThreadFactory; import java.util.concurrent.locks.LockSupport; import jdk.test.lib.thread.VThreadScheduler; public class ParkWithFixedThreadPool { public static void main(String[] args) throws Exception { - try (ExecutorService scheduler = Executors.newFixedThreadPool(8)) { + try (var scheduler = new Scheduler(8)) { int vthreadCount = 300; Thread[] vthreads = new Thread[vthreadCount]; Runnable target = new Runnable() { @@ -74,4 +76,27 @@ public void run() { } } } + + static class Scheduler implements Executor, AutoCloseable { + private final ExecutorService pool; + + Scheduler(int poolSize) { + pool = Executors.newFixedThreadPool(poolSize); + } + + @Override + public void execute(Runnable task) { + try { + pool.execute(task); + } finally { + // ExecutorService::execute may consume parking permit + LockSupport.unpark(Thread.currentThread()); + } + } + + @Override + public void close() { + pool.close(); + } + } } From a6c4c045427858f1f1a8b61ed54eef2caf9b3b2a Mon Sep 17 00:00:00 2001 From: Christian Hagedorn Date: Thu, 31 Oct 2024 09:17:21 +0000 Subject: [PATCH 044/159] 8343296: IGV: Show pre/main/post at CountedLoopNodes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Roberto Castañeda Lozano Reviewed-by: rcastanedalo, kvn --- .../src/main/resources/com/sun/hotspot/igv/filter/helper.js | 5 +++++ .../hotspot/igv/servercompiler/filters/customNodeInfo.filter | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/src/utils/IdealGraphVisualizer/Filter/src/main/resources/com/sun/hotspot/igv/filter/helper.js b/src/utils/IdealGraphVisualizer/Filter/src/main/resources/com/sun/hotspot/igv/filter/helper.js index 78c71c0fdb0..3426e74ba41 100644 --- a/src/utils/IdealGraphVisualizer/Filter/src/main/resources/com/sun/hotspot/igv/filter/helper.js +++ b/src/utils/IdealGraphVisualizer/Filter/src/main/resources/com/sun/hotspot/igv/filter/helper.js @@ -57,6 +57,11 @@ function hasAnyNode(selector) { return new AnySelector(selector); } +// Select the nodes for which the given property is defined. +function hasProperty(property) { + return new MatcherSelector(new Properties.InvertPropertyMatcher(new Properties.RegexpPropertyMatcher(property, ""))); +} + // Select the nodes whose given property matches a given regular expression. function matches(property, regexp) { return new MatcherSelector(new Properties.RegexpPropertyMatcher(property, regexp)); diff --git a/src/utils/IdealGraphVisualizer/ServerCompiler/src/main/resources/com/sun/hotspot/igv/servercompiler/filters/customNodeInfo.filter b/src/utils/IdealGraphVisualizer/ServerCompiler/src/main/resources/com/sun/hotspot/igv/servercompiler/filters/customNodeInfo.filter index 3f7956dc1ee..bcdd86ba7d3 100644 --- a/src/utils/IdealGraphVisualizer/ServerCompiler/src/main/resources/com/sun/hotspot/igv/servercompiler/filters/customNodeInfo.filter +++ b/src/utils/IdealGraphVisualizer/ServerCompiler/src/main/resources/com/sun/hotspot/igv/servercompiler/filters/customNodeInfo.filter @@ -30,3 +30,7 @@ editProperty(matches("name", "CallLeaf|CallLeafNoFP"), ["dump_spec"], "extra_lab function(dump_spec) {return callLeafInfo(dump_spec[0], 1);}); editProperty(matches("name", "CallLeafDirect|CallLeafDirectVector|CallLeafNoFPDirect"), ["dump_spec"], "extra_label", function(dump_spec) {return callLeafInfo(dump_spec[0], 0);}); + +// Show pre/main/post at CountedLoopNodes. +editProperty(hasProperty("loop_kind"), ["loop_kind"], "extra_label", + function(loop_kind) { return loop_kind[0]; }); From c37c59c8e01348e8782accd4abb8691aeb616447 Mon Sep 17 00:00:00 2001 From: Doug Simon Date: Thu, 31 Oct 2024 13:55:42 +0000 Subject: [PATCH 045/159] 8341861: GHA: Use only retention mechanism to remove bundles Reviewed-by: shade, ihse, erikj --- .github/workflows/main.yml | 45 -------------------------------------- 1 file changed, 45 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e3451e5d89a..00f64d2aedf 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -374,48 +374,3 @@ jobs: platform: windows-x64 bootjdk-platform: windows-x64 runs-on: windows-2019 - - # Remove bundles so they are not misconstrued as binary distributions from the JDK project - remove-bundles: - name: 'Remove bundle artifacts' - runs-on: ubuntu-22.04 - if: always() - needs: - - build-linux-x64 - - build-linux-x86-hs - - build-linux-x64-hs-nopch - - build-linux-x64-hs-zero - - build-linux-x64-hs-minimal - - build-linux-x64-hs-optimized - - build-linux-cross-compile - - build-alpine-linux-x64 - - build-macos-x64 - - build-macos-aarch64 - - build-windows-x64 - - build-windows-aarch64 - - test-linux-x64 - - test-macos-x64 - - test-macos-aarch64 - - test-windows-x64 - - steps: - - name: 'Remove bundle artifacts' - run: | - # Find and remove all bundle artifacts - # See: https://docs.github.com/en/rest/actions/artifacts?apiVersion=2022-11-28 - ALL_ARTIFACT_IDS="$(curl -sL \ - -H 'Accept: application/vnd.github+json' \ - -H 'Authorization: Bearer ${{ github.token }}' \ - -H 'X-GitHub-Api-Version: 2022-11-28' \ - '${{ github.api_url }}/repos/${{ github.repository }}/actions/runs/${{ github.run_id }}/artifacts?per_page=100')" - BUNDLE_ARTIFACT_IDS="$(echo "$ALL_ARTIFACT_IDS" | jq -r -c '.artifacts | map(select(.name|startswith("bundles-"))) | .[].id')" - for id in $BUNDLE_ARTIFACT_IDS; do - echo "Removing $id" - curl -sL \ - -X DELETE \ - -H 'Accept: application/vnd.github+json' \ - -H 'Authorization: Bearer ${{ github.token }}' \ - -H 'X-GitHub-Api-Version: 2022-11-28' \ - "${{ github.api_url }}/repos/${{ github.repository }}/actions/artifacts/$id" \ - || echo "Failed to remove bundle" - done From 9d7bca2262a2c06e13dee83140902ee6cd9b873f Mon Sep 17 00:00:00 2001 From: Chen Liang Date: Thu, 31 Oct 2024 14:01:13 +0000 Subject: [PATCH 046/159] 8342458: More consistent constant instruction handling Reviewed-by: asotona --- .../classfile/impl/AbstractInstruction.java | 10 +- .../classfile/impl/DirectCodeBuilder.java | 27 ++- test/jdk/jdk/classfile/LDCTest.java | 183 ++++++++++++------ 3 files changed, 145 insertions(+), 75 deletions(-) diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractInstruction.java b/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractInstruction.java index 8795894530b..2197ac81e37 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractInstruction.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/AbstractInstruction.java @@ -673,7 +673,8 @@ public void writeTo(DirectCodeBuilder writer) { if (writer.canWriteDirect(code.constantPool())) super.writeTo(writer); else - writer.writeLoadConstant(op, constantEntry()); + // We have writer.canWriteDirect(constantEntry().constantPool()) == false + writer.writeAdaptLoadConstant(op, constantEntry()); } @Override @@ -1346,7 +1347,12 @@ public ConstantDesc constantValue() { @Override public void writeTo(DirectCodeBuilder writer) { - writer.writeLoadConstant(op, constant); + var constant = this.constant; + if (writer.canWriteDirect(constant.constantPool())) + // Allows writing ldc_w small index constants upon user request + writer.writeDirectLoadConstant(op, constant); + else + writer.writeAdaptLoadConstant(op, constant); } @Override diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java b/src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java index 6536faa8bea..7d554a35974 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java @@ -670,16 +670,22 @@ public void writeArgumentConstant(Opcode opcode, int value) { } } - public void writeLoadConstant(Opcode opcode, LoadableConstantEntry value) { - // Make sure Long and Double have LDC2_W and - // rewrite to _W if index is >= 256 - int index = AbstractPoolEntry.maybeClone(constantPool, value).index(); - if (value instanceof LongEntry || value instanceof DoubleEntry) { - opcode = Opcode.LDC2_W; - } else if (index >= 256) - opcode = Opcode.LDC_W; + // value may not be writable to this constant pool + public void writeAdaptLoadConstant(Opcode opcode, LoadableConstantEntry value) { + var pe = AbstractPoolEntry.maybeClone(constantPool, value); + int index = pe.index(); + if (pe != value && opcode != Opcode.LDC2_W) { + // rewrite ldc/ldc_w if external entry; ldc2_w never needs rewrites + opcode = index <= 0xFF ? Opcode.LDC : Opcode.LDC_W; + } - assert !opcode.isWide(); + writeDirectLoadConstant(opcode, pe); + } + + // the loadable entry is writable to this constant pool + public void writeDirectLoadConstant(Opcode opcode, LoadableConstantEntry pe) { + assert !opcode.isWide() && canWriteDirect(pe.constantPool()); + int index = pe.index(); if (opcode.sizeIfFixed() == 3) { bytecodesBufWriter.writeU1U2(opcode.bytecode(), index); } else { @@ -1654,7 +1660,8 @@ public CodeBuilder lconst_1() { @Override public CodeBuilder ldc(LoadableConstantEntry entry) { - writeLoadConstant(BytecodeHelpers.ldcOpcode(entry), entry); + var direct = AbstractPoolEntry.maybeClone(constantPool, entry); + writeDirectLoadConstant(BytecodeHelpers.ldcOpcode(direct), direct); return this; } diff --git a/test/jdk/jdk/classfile/LDCTest.java b/test/jdk/jdk/classfile/LDCTest.java index 207d53e8820..63a08b50436 100644 --- a/test/jdk/jdk/classfile/LDCTest.java +++ b/test/jdk/jdk/classfile/LDCTest.java @@ -23,88 +23,145 @@ /* * @test + * @bug 8342458 + * @library /test/lib * @summary Testing ClassFile LDC instructions. * @run junit LDCTest */ -import java.lang.constant.ClassDesc; -import static java.lang.classfile.ClassFile.ACC_PUBLIC; -import static java.lang.classfile.ClassFile.ACC_STATIC; -import static java.lang.constant.ConstantDescs.*; -import java.lang.constant.MethodTypeDesc; - -import java.lang.classfile.*; +import java.lang.classfile.Attributes; +import java.lang.classfile.ClassFile; +import java.lang.classfile.Instruction; +import java.lang.classfile.MethodModel; +import java.lang.classfile.attribute.CodeAttribute; import java.lang.classfile.constantpool.ConstantPoolBuilder; +import java.lang.classfile.constantpool.LongEntry; import java.lang.classfile.constantpool.StringEntry; +import java.lang.classfile.instruction.ConstantInstruction; +import java.lang.constant.ClassDesc; +import java.lang.constant.DirectMethodHandleDesc; +import java.lang.constant.DynamicConstantDesc; +import java.lang.constant.MethodHandleDesc; +import java.lang.constant.MethodTypeDesc; import java.lang.reflect.AccessFlag; -import static org.junit.jupiter.api.Assertions.*; +import java.util.List; + +import jdk.test.lib.ByteCodeLoader; import org.junit.jupiter.api.Test; -import static helpers.TestConstants.MTD_VOID; + +import static java.lang.classfile.ClassFile.*; import static java.lang.classfile.Opcode.*; -import java.lang.classfile.instruction.ConstantInstruction; +import static java.lang.constant.ConstantDescs.*; +import static org.junit.jupiter.api.Assertions.*; class LDCTest { @Test - void testLDCisConvertedToLDCW() throws Exception { - var cc = ClassFile.of(); - byte[] bytes = cc.build(ClassDesc.of("MyClass"), cb -> { - cb.withFlags(AccessFlag.PUBLIC); - cb.withVersion(52, 0); - cb.withMethod("", MethodTypeDesc.of(CD_void), 0, mb -> mb - .withCode(codeb -> codeb.aload(0) - .invokespecial(CD_Object, "", MTD_VOID, false) - .return_() - ) - ) + void loadConstantGeneralTest() throws Exception { + var otherCp = ConstantPoolBuilder.of(); + var narrowString131 = otherCp.stringEntry("string131"); + assertTrue(narrowString131.index() <= 0xFF); + for (int i = 0; i < 0xFF; i++) { + var unused = otherCp.intEntry(i); + } + var wideString0 = otherCp.stringEntry("string0"); + assertTrue(wideString0.index() > 0xFF); - .withMethod("main", MethodTypeDesc.of(CD_void, CD_String.arrayType()), - ACC_PUBLIC | ACC_STATIC, - mb -> mb.withCode(c0 -> { - ConstantPoolBuilder cpb = cb.constantPool(); - for (int i = 0; i <= 256/2 + 2; i++) { // two entries per String - StringEntry s = cpb.stringEntry("string" + i); - } - c0.ldc("string0") - .ldc("string131") - .ldc("string50") - .loadConstant(-0.0f) - .loadConstant(-0.0d) - //non-LDC test cases - .loadConstant(0.0f) - .loadConstant(0.0d) - .return_(); - })); - }); + var cc = ClassFile.of(); + var cd = ClassDesc.of("MyClass"); + MethodTypeDesc bsmType = MethodTypeDesc.of(CD_double, CD_MethodHandles_Lookup, CD_String, CD_Class); + byte[] bytes = cc.build(cd, cb -> cb + .withFlags(AccessFlag.PUBLIC) + .withVersion(JAVA_11_VERSION, 0) // condy support required + .withMethodBody("bsm", bsmType, ACC_STATIC, cob -> cob + .dconst_1() + .dreturn()) + .withMethodBody("main", MethodTypeDesc.of(CD_void, CD_String.arrayType()), + ACC_PUBLIC | ACC_STATIC, c0 -> { + ConstantPoolBuilder cpb = cb.constantPool(); + LongEntry l42 = cpb.longEntry(42); + assertTrue(l42.index() <= 0xFF); + for (int i = 0; i <= 256 / 2 + 2; i++) { // two entries per String + StringEntry s = cpb.stringEntry("string" + i); + } + var wideCondy = cpb.constantDynamicEntry(DynamicConstantDesc.of(MethodHandleDesc.ofMethod( + DirectMethodHandleDesc.Kind.STATIC, cd, "bsm", bsmType))); + assertTrue(wideCondy.index() > 0xFF); + var s0 = cpb.stringEntry("string0"); + assertTrue(s0.index() <= 0xFF); + // use line number to match case numbers; pop ensures verification passes + c0.ldc("string0").pop() // regular ldc + .ldc(wideString0).pop() // adaption - narrowed + .with(ConstantInstruction.ofLoad(LDC, wideString0)).pop() // adaption + .with(ConstantInstruction.ofLoad(LDC_W, wideString0)).pop() // adaption - narrowed + .with(ConstantInstruction.ofLoad(LDC_W, s0)).pop() // explicit ldc_w - local + .ldc("string131").pop() // ldc_w + .ldc(narrowString131).pop() // adaption - widened + .with(ConstantInstruction.ofLoad(LDC, narrowString131)).pop() // adaption - widened + .with(ConstantInstruction.ofLoad(LDC_W, narrowString131)).pop() // adaption + .ldc("string50").pop() + .ldc(l42).pop2() // long cases + .loadConstant(l42.longValue()).pop2() + .loadConstant(Long.valueOf(l42.longValue())).pop2() + .loadConstant(-0.0f).pop() // floating cases + .loadConstant(-0.0d).pop2() + .loadConstant(0.0f).pop() // intrinsic cases + .loadConstant(0.0d).pop2() + .ldc(wideCondy).pop2() // no wrong "widening" of condy + .return_(); + })); - var model = cc.parse(bytes); - var code = model.elementStream() - .filter(e -> e instanceof MethodModel) - .map(e -> (MethodModel) e) - .filter(e -> e.methodName().stringValue().equals("main")) - .flatMap(MethodModel::elementStream) - .filter(e -> e instanceof CodeModel) - .map(e -> (CodeModel) e) + var cm = cc.parse(bytes); + var code = cm.elementStream() + .mapMulti((ce, sink) -> { + if (ce instanceof MethodModel mm && mm.methodName().equalsString("main")) { + sink.accept(mm.findAttribute(Attributes.code()).orElseThrow()); + } + }) .findFirst() .orElseThrow(); - var opcodes = code.elementList().stream() - .filter(e -> e instanceof Instruction) - .map(e -> (Instruction)e) - .toList(); + var instructions = code.elementList().stream() + .mapMulti((ce, sink) -> { + if (ce instanceof ConstantInstruction i) { + sink.accept(i); + } + }) + .toList(); - assertEquals(opcodes.size(), 8); - assertEquals(opcodes.get(0).opcode(), LDC); - assertEquals(opcodes.get(1).opcode(), LDC_W); - assertEquals(opcodes.get(2).opcode(), LDC); + assertIterableEquals(List.of( + LDC, // string0 + LDC, + LDC, + LDC, + LDC_W, + LDC_W, // string131 + LDC_W, + LDC_W, + LDC_W, + LDC, // string50 + LDC2_W, // long cases + LDC2_W, + LDC2_W, + LDC_W, // floating cases + LDC2_W, + FCONST_0, // intrinsic cases + DCONST_0, + LDC2_W // wide condy + ), instructions.stream().map(Instruction::opcode).toList()); + + int longCaseStart = 10; + for (int longCaseIndex = longCaseStart; longCaseIndex < longCaseStart + 3; longCaseIndex++) { + var message = "Case " + longCaseIndex; + assertEquals(42, (long) instructions.get(longCaseIndex).constantValue(), message); + } + + int floatingCaseStart = longCaseStart + 3; assertEquals( - Float.floatToRawIntBits((float)((ConstantInstruction)opcodes.get(3)).constantValue()), + Float.floatToRawIntBits((float) instructions.get(floatingCaseStart).constantValue()), Float.floatToRawIntBits(-0.0f)); assertEquals( - Double.doubleToRawLongBits((double)((ConstantInstruction)opcodes.get(4)).constantValue()), + Double.doubleToRawLongBits((double) instructions.get(floatingCaseStart + 1).constantValue()), Double.doubleToRawLongBits(-0.0d)); - assertEquals(opcodes.get(5).opcode(), FCONST_0); - assertEquals(opcodes.get(6).opcode(), DCONST_0); - assertEquals(opcodes.get(7).opcode(), RETURN); - } - // TODO test for explicit LDC_W? -} \ No newline at end of file + assertDoesNotThrow(() -> ByteCodeLoader.load("MyClass", bytes), "Invalid LDC bytecode generated"); + } +} From c8b36002d2644b85bed2ec12c01e4d85cb6f7ba4 Mon Sep 17 00:00:00 2001 From: Olexandr Rotan Date: Thu, 31 Oct 2024 15:25:42 +0000 Subject: [PATCH 047/159] 8338981: Access to private classes should be permitted inside the permits clause of the enclosing top-level class Reviewed-by: vromero, mcimadamore --- .../com/sun/tools/javac/code/Source.java | 1 + .../com/sun/tools/javac/comp/AttrContext.java | 5 + .../com/sun/tools/javac/comp/Resolve.java | 13 +- .../com/sun/tools/javac/comp/TypeEnter.java | 14 +- .../sealed/PrivateMembersInPermitClause.java | 182 ++++++++++++++++++ 5 files changed, 210 insertions(+), 5 deletions(-) create mode 100644 test/langtools/tools/javac/sealed/PrivateMembersInPermitClause.java diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java index b37b571e795..0c589c54edd 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java @@ -262,6 +262,7 @@ public enum Feature { PRIMITIVE_PATTERNS(JDK23, Fragments.FeaturePrimitivePatterns, DiagKind.PLURAL), FLEXIBLE_CONSTRUCTORS(JDK22, Fragments.FeatureFlexibleConstructors, DiagKind.NORMAL), MODULE_IMPORTS(JDK23, Fragments.FeatureModuleImports, DiagKind.PLURAL), + PRIVATE_MEMBERS_IN_PERMITS_CLAUSE(JDK19), ; enum DiagKind { diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/AttrContext.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/AttrContext.java index b8afce009a5..f121849457c 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/AttrContext.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/AttrContext.java @@ -92,6 +92,10 @@ public class AttrContext { */ boolean allowProtectedAccess = false; + /** Are we attributing a permits clause? + */ + boolean isPermitsClause = false; + /** Are arguments to current function applications boxed into an array for varargs? */ Resolve.MethodResolutionPhase pendingResolutionPhase = null; @@ -149,6 +153,7 @@ AttrContext dup(WriteableScope scope) { info.preferredTreeForDiagnostics = preferredTreeForDiagnostics; info.visitingServiceImplementation = visitingServiceImplementation; info.allowProtectedAccess = allowProtectedAccess; + info.isPermitsClause = isPermitsClause; return info; } diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java index 55293535ff8..b6d7e166902 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java @@ -111,6 +111,7 @@ public class Resolve { private final boolean compactMethodDiags; private final boolean allowLocalVariableTypeInference; private final boolean allowYieldStatement; + private final boolean allowPrivateMembersInPermitsClause; final EnumSet verboseResolutionMode; final boolean dumpMethodReferenceSearchResults; final boolean dumpStacktraceOnError; @@ -147,6 +148,7 @@ protected Resolve(Context context) { Target target = Target.instance(context); allowLocalVariableTypeInference = Feature.LOCAL_VARIABLE_TYPE_INFERENCE.allowedInSource(source); allowYieldStatement = Feature.SWITCH_EXPRESSION.allowedInSource(source); + allowPrivateMembersInPermitsClause = Feature.PRIVATE_MEMBERS_IN_PERMITS_CLAUSE.allowedInSource(source); polymorphicSignatureScope = WriteableScope.create(syms.noSymbol); allowModules = Feature.MODULES.allowedInSource(source); allowRecords = Feature.RECORDS.allowedInSource(source); @@ -425,7 +427,9 @@ public boolean isAccessible(Env env, Type site, Symbol sym, boolean (env.enclClass.sym == sym.owner // fast special case || env.enclClass.sym.outermostClass() == - sym.owner.outermostClass()) + sym.owner.outermostClass() + || + privateMemberInPermitsClauseIfAllowed(env, sym)) && sym.isInheritedIn(site.tsym, types); case 0: @@ -458,6 +462,13 @@ public boolean isAccessible(Env env, Type site, Symbol sym, boolean return isAccessible(env, site, checkInner) && notOverriddenIn(site, sym); } } + + private boolean privateMemberInPermitsClauseIfAllowed(Env env, Symbol sym) { + return allowPrivateMembersInPermitsClause && + env.info.isPermitsClause && + ((JCClassDecl) env.tree).sym.outermostClass() == sym.owner.outermostClass(); + } + //where /* `sym' is accessible only if not overridden by * another symbol which is a member of `site' diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java index 5be8d755d41..b518d7edb4b 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java @@ -979,11 +979,17 @@ private void fillPermits(JCClassDecl tree, Env baseEnv) { if (sym.isPermittedExplicit) { ListBuffer permittedSubtypeSymbols = new ListBuffer<>(); List permittedTrees = tree.permitting; - for (JCExpression permitted : permittedTrees) { - Type pt = attr.attribBase(permitted, baseEnv, false, false, false); - permittedSubtypeSymbols.append(pt.tsym); + var isPermitsClause = baseEnv.info.isPermitsClause; + try { + baseEnv.info.isPermitsClause = true; + for (JCExpression permitted : permittedTrees) { + Type pt = attr.attribBase(permitted, baseEnv, false, false, false); + permittedSubtypeSymbols.append(pt.tsym); + } + sym.setPermittedSubclasses(permittedSubtypeSymbols.toList()); + } finally { + baseEnv.info.isPermitsClause = isPermitsClause; } - sym.setPermittedSubclasses(permittedSubtypeSymbols.toList()); } } } diff --git a/test/langtools/tools/javac/sealed/PrivateMembersInPermitClause.java b/test/langtools/tools/javac/sealed/PrivateMembersInPermitClause.java new file mode 100644 index 00000000000..0350b74e0e2 --- /dev/null +++ b/test/langtools/tools/javac/sealed/PrivateMembersInPermitClause.java @@ -0,0 +1,182 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * @test + * @bug 8338981 + * @summary Access to private classes should be permitted inside the permits clause of the enclosing top-level class. + * @library /tools/lib + * @modules jdk.compiler/com.sun.tools.javac.api + * jdk.compiler/com.sun.tools.javac.main + * jdk.compiler/com.sun.tools.javac.util + * @build toolbox.ToolBox toolbox.JavacTask toolbox.Task + * @run main PrivateMembersInPermitClause -source 19+ + */ +import java.nio.file.Path; +import java.util.Objects; +import toolbox.Task; +import java.util.List; + +public class PrivateMembersInPermitClause extends toolbox.TestRunner { + + private final toolbox.ToolBox tb; + + public PrivateMembersInPermitClause() { + super(System.err); + tb = new toolbox.ToolBox(); + } + + public static void main(String... args) throws Exception { + new PrivateMembersInPermitClause().runTests(); + } + + public void runTests() throws Exception { + runTests(_ -> new Object[] {}); + } + + /** + * Tests that a private class in the permits clause compiles successfully. + */ + @Test + public void privateClassPermitted() throws Exception { + var root = Path.of("src"); + tb.writeJavaFiles(root, + """ + sealed class S permits S.A { + private static final class A extends S {} + } + """ + ); + + new toolbox.JavacTask(tb) + .files(root.resolve("S.java")) + .run(toolbox.Task.Expect.SUCCESS); + } + + /** + * Tests that a private class from another top-level class in the permits clause fails to compile. + */ + @Test + public void otherTopLevelPrivateClassFails() throws Exception { + var root = Path.of("src"); + tb.writeJavaFiles(root, + """ + public class S { + private static final class A extends S {} + } + sealed class T permits S.A { + } + """ + ); + var expectedErrors = List.of( + "S.java:4:25: compiler.err.report.access: S.A, private, S", + "1 error" + ); + + var compileErrors = new toolbox.JavacTask(tb) + .files(root.resolve("S.java")) + .options("-XDrawDiagnostics") + .run(toolbox.Task.Expect.FAIL) + .getOutputLines(Task.OutputKind.DIRECT); + + if (!Objects.equals(compileErrors, expectedErrors)) { + throw new AssertionError("Expected errors: " + expectedErrors + ", but got: " + compileErrors); + } + } + + /** + * Tests that a private class in the permits clause of an inner class compiles successfully. + */ + @Test + public void privateClassInInnerPermitted() throws Exception { + var root = Path.of("src"); + tb.writeJavaFiles(root, + """ + public sealed class S permits S.T.A { + static class T { + private static final class A extends S {} + } + } + """ + ); + + new toolbox.JavacTask(tb) + .files(root.resolve("S.java")) + .run(toolbox.Task.Expect.SUCCESS); + } + + /** + * Tests that a private class in the permits clause contained in a sibling private inner class compiles successfully. + */ + @Test + public void siblingPrivateClassesPermitted() throws Exception { + var root = Path.of("src"); + tb.writeJavaFiles(root, + """ + public class S { + private static class A { + private static class B extends C.D {} + } + private static class C { + private static class D {} + } + } + """ + ); + + new toolbox.JavacTask(tb) + .files(root.resolve("S.java")) + .run(toolbox.Task.Expect.SUCCESS); + } + + /** + * Tests that a private class in the permits clause of a sealed class does not compile when the release is lower than 19. + */ + @Test + public void testSourceLowerThan19() throws Exception { + var root = Path.of("src"); + tb.writeJavaFiles(root, + """ + sealed class S permits S.A { + private static final class A extends S {} + } + """ + ); + + var expectedErrors = List.of( + "S.java:1:25: compiler.err.report.access: S.A, private, S", + "S.java:2:26: compiler.err.cant.inherit.from.sealed: S", + "2 errors" + ); + + var actualOutput = new toolbox.JavacTask(tb) + .files(root.resolve("S.java")) + .options("--release", "18", "-XDrawDiagnostics") + .run(toolbox.Task.Expect.FAIL) + .getOutputLines(Task.OutputKind.DIRECT); + + if (!Objects.equals(actualOutput, expectedErrors)) { + throw new AssertionError("Expected errors: " + expectedErrors + ", but got: " + actualOutput); + } + } +} From 196fdd52d3b6fb6c271f8db16ac0c6d98cd83c55 Mon Sep 17 00:00:00 2001 From: Cesar Soares Lucas Date: Thu, 31 Oct 2024 17:11:11 +0000 Subject: [PATCH 048/159] 8335977: Deoptimization fails with assert "object should be reallocated already" Co-authored-by: Christian Hagedorn Reviewed-by: thartmann, kvn, vlivanov --- .../TestReduceAllocationAndJVMStates.java | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 test/hotspot/jtreg/compiler/escapeAnalysis/TestReduceAllocationAndJVMStates.java diff --git a/test/hotspot/jtreg/compiler/escapeAnalysis/TestReduceAllocationAndJVMStates.java b/test/hotspot/jtreg/compiler/escapeAnalysis/TestReduceAllocationAndJVMStates.java new file mode 100644 index 00000000000..3b0513003ae --- /dev/null +++ b/test/hotspot/jtreg/compiler/escapeAnalysis/TestReduceAllocationAndJVMStates.java @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8335977 + * @summary Check that Reduce Allocation Merges doesn't crash when there + * is an uncommon_trap with a chain of JVMS and, the reduced phi + * input(s) are local(s) in an old JVMS but not in a younger JVMS. + * I.e., check that we don't lose track of "_is_root" when traversing + * a JVMS chain. + * @run main/othervm -Xbatch + * -XX:CompileOnly=compiler.escapeAnalysis.TestReduceAllocationAndJVMStates::test* + * compiler.escapeAnalysis.TestReduceAllocationAndJVMStates + * @run main compiler.escapeAnalysis.TestReduceAllocationAndJVMStates + */ +package compiler.escapeAnalysis; + +public class TestReduceAllocationAndJVMStates { + static boolean bFld; + static int iFld; + + public static void main(String[] args) { + bFld = false; + + for (int i = 0; i < 10000; i++) { + test(i % 2 == 0); + } + bFld = true; + + // This will trigger a deoptimization which + // will make the issue manifest to the user + test(true); + } + + static int test(boolean flag) { + Super a = new A(); + Super b = new B(); + Super s = (flag ? a : b); + + // This needs to be inlined by C2 + check(); + + return a.i + b.i + s.i; + } + + // This shouldn't be manually inlined + static void check() { + if (bFld) { + iFld = 34; + } + } +} + +class Super { + int i; +} +class A extends Super {} +class B extends Super {} From 864765e3093578dbe868596da21a0fbcdff3bdfc Mon Sep 17 00:00:00 2001 From: Erik Gahlin Date: Thu, 31 Oct 2024 18:25:30 +0000 Subject: [PATCH 049/159] 8343057: JFR: Sorting in 'jfr view' can violate contract Reviewed-by: mgronlun --- .../jdk/jfr/internal/query/TableSorter.java | 76 +++++++++++++++++-- 1 file changed, 70 insertions(+), 6 deletions(-) diff --git a/src/jdk.jfr/share/classes/jdk/jfr/internal/query/TableSorter.java b/src/jdk.jfr/share/classes/jdk/jfr/internal/query/TableSorter.java index 88695162809..6a7f2e94be1 100644 --- a/src/jdk.jfr/share/classes/jdk/jfr/internal/query/TableSorter.java +++ b/src/jdk.jfr/share/classes/jdk/jfr/internal/query/TableSorter.java @@ -24,6 +24,7 @@ */ package jdk.jfr.internal.query; +import java.math.BigDecimal; import java.util.Comparator; import java.util.function.Predicate; @@ -63,17 +64,80 @@ int sortOrderToFactor(SortOrder order) { @Override public int compare(Row rowA, Row rowB) { if (lexical) { - return compareObjects(rowA.getText(index), rowB.getText(index)); + return factor * compareObjects(rowA.getText(index), rowB.getText(index)); } else { - return compareObjects(rowA.getValue(index), rowB.getValue(index)); + return factor * compareObjects(rowA.getValue(index), rowB.getValue(index)); } } - private int compareObjects(Object a, Object b) { - if (a instanceof Comparable c1 && b instanceof Comparable c2) { - return factor * c1.compareTo(c2); + private static int compareObjects(Object a, Object b) { + if (a == b) { + return 0; } - return factor; + if (a == null) { + return -1; + } + if (b == null) { + return 1; + } + if (a instanceof String s1 && b instanceof String s2) { + return s1.compareTo(s2); + } + + if (a instanceof Number n1 && b instanceof Number n2) { + if (isIntegralType(n1)) { + if (isIntegralType(n2)) { + return Long.compare(n1.longValue(), n2.longValue()); + } + if (isFractionalType(n2)) { + return compare(n1.longValue(), n2.doubleValue()); + } + } + if (isFractionalType(n1)) { + if (isFractionalType(n2)) { + return Double.compare(n1.doubleValue(), n2.doubleValue()); + } + if (isIntegralType(n2)) { + return - compare(n2.longValue(), n1.doubleValue()); + } + } + } + if (a instanceof Number) { + return 1; + } + if (b instanceof Number) { + return -1; + } + // Comparison with the same class + if (a.getClass() == b.getClass() && a instanceof Comparable c1) { + return c1.compareTo((Comparable)b); + } + if (a instanceof Comparable) { + return 1; + } + if (b instanceof Comparable) { + return -1; + } + // Use something that is stable if it's not null, comparable or numeric + return Integer.compare(System.identityHashCode(a), System.identityHashCode(b)); + } + + private static int compare(long integral, double fractional) { + return BigDecimal.valueOf(integral).compareTo(BigDecimal.valueOf(fractional)); + } + + private static boolean isIntegralType(Number value) { + if (value instanceof Long || value instanceof Integer) { + return true; + } + if (value instanceof Short || value instanceof Byte) { + return true; + } + return false; + } + + private static boolean isFractionalType(Number number) { + return number instanceof Float || number instanceof Double; } } From 1488159efd22f3cb093508fc8cc7fd4a50e9f6ad Mon Sep 17 00:00:00 2001 From: Fernando Guallini Date: Thu, 31 Oct 2024 18:28:52 +0000 Subject: [PATCH 050/159] 8342188: Update tests to use stronger key parameters and certificates Reviewed-by: rhalade, ascarpino --- .../crypto/provider/Cipher/RSA/TestRSA.java | 46 +- .../KeyAgreement/DHGenSharedSecret.java | 41 +- .../KeyAgreement/DHKeyAgreement2.java | 72 +- .../KeyAgreement/DHKeyAgreement3.java | 65 +- .../provider/KeyAgreement/DHKeyFactory.java | 57 +- .../provider/KeyAgreement/DHKeyGenSpeed.java | 43 +- .../provider/TLS/TestLeadingZeroes.java | 708 +++++---- test/jdk/java/security/KeyRep/Serial.java | 59 +- .../pkcs11/KeyAgreement/TestInterop.java | 68 +- .../X509TrustManagerImpl/PKIXExtendedTM.java | 1276 ++++++++++------- .../SunX509ExtendedTM.java | 1263 +++++++++------- .../sun/security/x509/X509CRLImpl/Verify.java | 80 +- .../security/x509/X509CertImpl/Verify.java | 64 +- .../test/lib/security/DiffieHellmanGroup.java | 109 ++ .../jdk/test/lib/security/SecurityUtils.java | 20 + 15 files changed, 2333 insertions(+), 1638 deletions(-) create mode 100644 test/lib/jdk/test/lib/security/DiffieHellmanGroup.java diff --git a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestRSA.java b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestRSA.java index 576fc5fcd60..610890a5247 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestRSA.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestRSA.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -101,20 +101,28 @@ private static int nextNibble(StringReader r) throws IOException { } private final static BigInteger N = new BigInteger - ("116231208661367609700141079576488663663527180869991078124978203037949869" - +"312762870627991319537001781149083155962615105864954367253799351549459177" - +"839995715202060014346744789001273681801687605044315560723525700773069112" - +"214443196787519930666193675297582113726306864236010438506452172563580739" - +"994193451997175316921"); + ("188266606413163647033284152746165049309898453322378171182320013745371408" + +"184225151227340555539225381200565037956400694325061098310480360339435446" + +"755336872372614880713694669514510970895097323213784523223711244354375506" + +"545371740274561954822416119304686041493350049135717091225288845575963270" + +"990119098295690603875646206002898855577388327774594330896529948536446408" + +"529165060686851725546480612209956477350581924733034990053737541249952501" + +"521769091148873248215142518797910690254486909784694829645856181407041627" + +"170373444275842961547787746324163594572697634605250977434548015081503826" + +"85269006571608614747965903308253511034583"); private final static BigInteger E = BigInteger.valueOf(65537); private final static BigInteger D = new BigInteger - ("528278531576995741358027120152717979850387435582102361125581844437708890" - +"736418759997555187916546691958396015481089485084669078137376029510618510" - +"203389286674134146181629472813419906337170366867244770096128371742241254" - +"843638089774095747779777512895029847721754360216404183209801002443859648" - +"26168432372077852785"); + ("559658959270449023652159986632594861346314765962941829914811303419116045" + +"486272857832294696380057096672262714220410818939360476461317579410769250" + +"330981320689411092912185059149606517928125605236733543203155054153225543" + +"370812803235323701309554652228655108862291812277980776744407549833834128" + +"186640306349843950814414209051640048163781518404082259622597528271617305" + +"214590875955949331568915021275293633454662841999317653268823194135508673" + +"577887397954709453731172900970199673444683653554380810128925964066225098" + +"009484055412274405773246950554037029408478181447349886871279557912030178" + +"079306593910311097342934485929224862873"); private final static Random RANDOM = new Random(); @@ -154,16 +162,16 @@ public static void testKat(String alg, int mode, Key key, String in, String out, } private final static String in2 = "0f:7d:6c:20:75:99:a5:bc:c1:53:b0:4e:8d:ef:98:fb:cf:2d:e5:1d:d4:bf:71:56:12:b7:a3:c3:e4:53:1b:07:d3:bb:94:a7:a7:28:75:1e:83:46:c9:80:4e:3f:ac:b2:47:06:9f:1b:68:38:73:b8:69:9e:6b:8b:8b:23:60:31:ae:ea:36:24:6f:85:af:de:a5:2a:88:7d:6a:9f:8a:9f:61:f6:59:3f:a8:ce:91:75:49:e9:34:b8:9f:b6:21:8c"; - private final static String out2 = "7d:84:d1:3a:dc:ac:46:09:3a:0c:e5:4b:85:5d:fa:bb:52:f1:0f:de:d9:87:ef:b3:f7:c8:e3:9a:29:be:e9:b5:51:57:fd:07:5b:3c:1c:1c:56:aa:0c:a6:3f:79:40:16:ee:2c:2c:2e:fe:b8:3e:fd:45:90:1c:e7:87:1d:0a:0a:c5:de:9d:2b:a9:dd:77:d2:89:ba:98:fe:78:5b:a3:91:b4:ac:b5:ae:ce:45:21:f7:74:97:3e:a9:58:59:bc:14:13:02:3f:09:7b:97:90:b3:bd:53:cb:15:c0:6e:36:ea:d4:a3:3e:fc:94:85:a9:66:7f:57:b4:2a:ae:70:2e:fb"; + private final static String out2 = "4d:17:15:23:d9:f6:97:4d:4b:5b:9b:37:bd:a7:c5:33:b9:40:1f:c4:63:fa:7c:2a:fb:19:0b:d8:c4:3a:bd:e7:46:6b:1b:09:20:93:39:7c:e5:5f:7b:83:a7:a6:f6:f5:42:20:e7:7f:d3:14:9a:14:25:f9:31:9e:3c:c9:04:20:be:31:ac:77:45:37:4d:76:1b:10:3a:aa:42:c7:df:4c:61:a4:35:4d:28:41:c2:f9:b7:ce:00:94:42:06:c7:35:06:ca:f2:9e:96:c3:89:54:10:82:d8:de:f3:6c:23:8c:47:41:5a:13:fa:33:e0:a5:7f:ec:43:5d:b0:ea:c9:43:17:72:73:ce:11:48:fb:19:ee:13:6a:92:13:06:5c:55:dc:9e:86:b9:fb:44:62:44:9e:a9:e8:bd:6a:c0:c1:64:4b:fd:a9:5d:ef:59:1e:16:fe:64:c1:07:31:9e:9f:4d:4e:28:34:ea:39:e0:65:68:d4:8b:02:0b:8b:ed:bb:a6:a6:4a:29:b9:b5:08:f3:7a:a8:fd:03:3e:0d:d0:9e:25:47:2c:45:f2:40:39:58:e8:95:64:04:2b:50:1e:a5:ff:00:a4:cf:a9:13:4b:17:3a:e8:d1:2c:c1:4a:ab:1c:07:b4:b5:f6:c9:3f:38:48:89:55:59:00:c1:25:c9:d7:68"; private final static String in1 = "17:a3:a7:b1:86:29:06:c5:81:33:cd:2f:da:32:7c:0e:26:a8:18:aa:37:9b:dd:4a:b0:b0:a7:1c:14:82:6c:d9:c9:14:9f:55:19:91:02:0d:d9:d7:95:c2:2b:a6:fa:ba:a3:51:00:83:6b:ec:97:27:40:a3:8f:ba:b1:09:15:11:44:33:c6:3c:47:95:50:71:50:5a:f4:aa:00:4e:b9:48:6a:b1:34:e9:d0:c8:b8:92:bf:95:f3:3d:91:66:93:2b"; - private final static String out1 = "28:b7:b4:73:f2:16:11:c0:67:70:96:ee:dc:3e:23:87:9f:30:a7:e5:f0:db:aa:67:33:27:0e:75:79:af:29:f5:88:3d:93:22:14:d2:59:b4:eb:ce:95:7f:24:74:df:f2:aa:4d:e6:65:5a:63:6d:64:30:ef:31:f1:a6:df:17:42:b6:d1:ed:22:1f:b0:96:69:9d:f8:ce:ff:3a:47:96:51:ba:d9:8d:57:39:40:dc:fc:d3:03:92:39:f4:dd:4b:1b:07:8b:33:60:27:2d:5f:c6:cf:17:92:c6:12:69:a3:54:2e:b8:0f:ca:d9:46:0f:da:95:34:d0:84:35:9c:f6:44"; + private final static String out1 = "18:6d:d2:89:43:cb:ec:5c:ff:3d:fd:d5:23:2d:aa:fc:db:a7:63:5f:c7:2d:6f:81:c2:9f:aa:47:ed:fc:79:39:8a:6d:8f:c3:d0:f9:64:c3:e1:5f:1a:b3:20:03:1e:8a:3a:c5:58:ef:78:6b:fc:50:98:0a:11:d3:30:d9:68:44:9b:93:a6:b3:92:8f:09:0c:7a:d0:64:ac:e2:c7:b5:6a:37:35:00:3b:4e:d7:64:fb:54:c2:54:90:b9:71:6a:48:c4:6c:1e:e4:e6:4c:3f:fc:34:69:16:b9:53:8c:9f:30:4e:2e:7e:9c:fb:5f:26:18:c0:6e:69:32:18:30:40:59:8c:d1:c2:7a:41:75:06:9d:1c:0f:14:74:a9:f0:47:3a:97:0d:c4:c6:3f:24:ee:ed:c5:f8:2c:b6:ae:1d:e5:64:33:cd:e1:e0:21:d6:10:c0:8b:59:06:59:81:73:28:b4:f4:ef:fa:e8:67:a8:65:a5:e4:3c:c3:7e:99:f8:55:7a:e9:0d:41:3a:bf:c1:8c:41:f3:71:32:b6:c0:05:8b:91:8a:90:35:60:95:52:78:8e:a7:e5:a9:a1:bf:a3:de:55:c6:02:03:d5:98:01:59:fb:91:da:37:9e:3f:39:85:e1:3f:79:23:6c:0e:68:25:4c:13:3a:52:a2:f8:d9:4c:ce"; - private final static String rin1 = "09:01:06:53:a7:96:09:63:ef:e1:3f:e9:8d:95:22:d1:0e:1b:87:c1:a2:41:b2:09:97:a3:5e:e0:a4:1d:59:91:21:e4:ca:87:bf:77:4a:7e:a2:22:ff:59:1e:bd:a4:80:aa:93:4a:41:56:95:5b:f4:57:df:fc:52:2f:46:9b:45:d7:03:ae:22:8e:67:9e:6c:b9:95:4f:bd:8e:e8:67:90:5b:fe:de:2f:11:22:2e:9d:30:93:6d:c0:48:00:cb:08:b9:c4:36:e9:03:7c:08:2d:68:42:cb:71:d0:7d:47:22:c1:58:c5:b8:2f:28:3e:98:78:11:6d:71:5b:3b:36:3c"; - private final static String rout1 = "4a:21:64:20:56:5f:27:0c:90:1d:f3:1b:64:8e:16:d3:af:79:ca:c6:65:56:19:77:8f:25:35:70:be:f3:15:b3:e3:d8:8f:04:ec:c3:60:59:d0:9a:66:be:1c:ad:f7:09:46:a9:09:46:12:5f:28:b6:28:b1:53:fb:fe:07:73:b8:8b:f8:83:64:8e:2d:45:ca:1a:fd:85:4a:2c:fa:fc:e6:58:f7:e4:83:68:8c:38:49:2b:f3:5c:c1:2d:24:6a:cd:22:6d:cb:f4:f1:8c:9e:1a:94:a7:4b:6f:d1:b4:b4:ab:56:8b:a3:a9:89:88:c3:5d:a8:47:2a:67:50:32:71:19"; + private final static String rin1 = "09:01:06:53:a7:96:09:63:ef:e1:3f:e9:8d:95:22:d1:0e:1b:87:c1:a2:41:b2:09:97:a3:5e:e0:a4:1d:59:91:21:e4:ca:87:bf:77:4a:7e:a2:22:ff:59:1e:bd:a4:80:aa:93:4a:41:56:95:5b:f4:57:df:fc:52:2f:46:9b:45:d7:03:ae:22:8e:67:9e:6c:b9:95:4f:bd:8e:e8:67:90:5b:fe:de:2f:11:22:2e:9d:30:93:6d:c0:48:00:cb:08:b9:c4:36:e9:03:7c:08:2d:68:42:cb:71:d0:7d:47:22:c1:58:c5:b8:2f:28:3e:98:78:11:6d:71:5b:3b:36:3c:09:01:06:53:a7:96:09:63:ef:e1:3f:e9:8d:95:22:d1:0e:1b:87:c1:a2:41:b2:09:97:a3:5e:e0:a4:1d:59:91:21:e4:ca:87:bf:77:4a:7e:a2:22:ff:59:1e:bd:a4:80:aa:93:4a:41:56:95:5b:f4:57:df:fc:52:2f:46:9b:45:d7:03:ae:22:8e:67:9e:6c:b9:95:4f:bd:8e:e8:67:90:5b:fe:de:2f:11:22:2e:9d:30:93:6d:c0:48:00:cb:08:b9:c4:36:e9:03:7c:08:2d:68:42:cb:71:d0:7d:47:22:c1:58:c5:b8:2f:28:3e:98:78:11:6d:71:5b:3b:36:3c"; + private final static String rout1 = "19:dd:a2:f9:57:d4:6b:60:85:ec:2d:5d:f9:64:f8:a0:c0:33:36:a2:8c:59:0f:74:9b:62:a8:ad:42:ed:be:34:0e:dc:13:db:d5:b9:aa:64:38:35:18:d7:6c:1d:da:5b:ff:f2:98:f5:fc:67:36:fb:9f:84:df:84:a3:af:ce:02:e5:05:ca:a7:e4:29:c0:5c:55:6a:8d:dc:8f:f7:6e:d4:ee:2e:6c:5b:ea:f8:bf:4c:7d:5f:af:6a:c3:77:02:80:33:be:13:4c:98:cf:dc:aa:e8:7d:73:69:6e:30:2c:35:c5:90:83:45:0d:64:04:af:b6:94:c3:a8:e2:d4:08:98:1d:b1:73:e3:fc:10:1f:71:0f:d0:13:f3:58:80:c4:a3:a9:02:52:cf:aa:41:b6:9b:69:33:9d:2a:d6:f6:02:07:ec:ce:19:01:f1:2f:90:27:fe:00:a5:d7:8d:01:97:36:fd:88:34:2f:f3:ab:38:ed:9d:69:91:af:b2:0d:ca:92:ca:9e:e7:24:37:d6:e3:c7:02:30:69:5b:ea:b4:b2:68:5f:4e:8c:cc:fd:bb:2e:96:2f:a3:c6:f7:71:93:24:5c:ca:8f:bc:f9:d8:bd:d3:b9:d1:16:ba:5a:ac:62:41:b4:d8:56:45:74:55:c2:a5:ef:23:f5:e3:27:ce:99:97:e9"; - private final static String rin2 = "1b:49:a6:7a:83:1c:b6:28:47:16:2f:be:6a:d3:28:a6:83:07:4f:50:be:5c:99:26:2a:15:b8:21:a8:cc:8a:45:93:07:ff:32:67:3c:a4:92:d2:cd:43:eb:f5:2e:09:79:c8:32:3a:9d:00:4c:f5:6e:65:b2:ca:9c:c2:d5:35:8e:fe:6c:ba:1a:7b:65:c1:4f:e9:6c:cb:5d:9f:13:5d:5f:be:32:cd:91:ed:8b:d7:d7:e9:d6:5c:cc:11:7b:d9:ff:7a:93:de:e4:81:92:56:0c:52:47:75:56:a8:e0:9a:55:16:0c:43:df:ae:be:a1:6a:9d:5a:be:fc:51:ea:52:0c"; - private final static String rout2 = "65:28:b9:48:8d:68:3f:5e:9a:85:e7:09:78:4c:0c:0e:60:6c:89:43:3c:d3:72:b9:2f:5a:eb:4f:15:77:93:9d:47:05:a6:52:48:72:ee:ce:e8:5a:6d:28:b0:06:5a:a1:93:58:a1:61:3f:9b:42:0d:c1:ec:32:0a:7a:1e:38:45:47:87:52:16:62:c9:44:c6:04:4d:82:64:01:f4:b1:26:dc:7f:61:82:52:7a:f6:6b:ab:22:98:87:93:63:4c:3f:92:c7:5b:cc:e5:2b:15:db:f7:d3:c7:b5:38:6f:15:3b:1e:88:3d:31:0c:b4:f9:6d:66:41:b7:1b:a0:4a:b8:16"; + private final static String rin2 = "1b:49:a6:7a:83:1c:b6:28:47:16:2f:be:6a:d3:28:a6:83:07:4f:50:be:5c:99:26:2a:15:b8:21:a8:cc:8a:45:93:07:ff:32:67:3c:a4:92:d2:cd:43:eb:f5:2e:09:79:c8:32:3a:9d:00:4c:f5:6e:65:b2:ca:9c:c2:d5:35:8e:fe:6c:ba:1a:7b:65:c1:4f:e9:6c:cb:5d:9f:13:5d:5f:be:32:cd:91:ed:8b:d7:d7:e9:d6:5c:cc:11:7b:d9:ff:7a:93:de:e4:81:92:56:0c:52:47:75:56:a8:e0:9a:55:16:0c:43:df:ae:be:a1:6a:9d:5a:be:fc:51:ea:52:0c:1b:49:a6:7a:83:1c:b6:28:47:16:2f:be:6a:d3:28:a6:83:07:4f:50:be:5c:99:26:2a:15:b8:21:a8:cc:8a:45:93:07:ff:32:67:3c:a4:92:d2:cd:43:eb:f5:2e:09:79:c8:32:3a:9d:00:4c:f5:6e:65:b2:ca:9c:c2:d5:35:8e:fe:6c:ba:1a:7b:65:c1:4f:e9:6c:cb:5d:9f:13:5d:5f:be:32:cd:91:ed:8b:d7:d7:e9:d6:5c:cc:11:7b:d9:ff:7a:93:de:e4:81:92:56:0c:52:47:75:56:a8:e0:9a:55:16:0c:43:df:ae:be:a1:6a:9d:5a:be:fc:51:ea:52:0c"; + private final static String rout2 = "7a:11:19:cf:76:97:4b:29:48:66:69:e7:f0:db:18:53:d4:50:71:a4:9d:90:47:9f:e6:8a:f3:ba:2e:96:fd:c8:4b:02:7e:06:a9:2b:47:0d:68:3c:6a:f9:21:62:77:0d:4e:e1:1b:82:97:66:13:01:c2:3b:b2:d3:f8:9e:cc:c9:2a:1a:76:05:3f:d4:f7:fb:9d:9b:bf:a8:2d:fd:81:e5:f4:bb:ca:3b:5f:93:ea:ef:88:1c:c1:18:52:38:be:50:42:29:08:d9:65:43:5f:01:7d:50:22:7a:2f:f1:29:14:95:30:c1:b8:fd:eb:da:c1:4e:8a:ef:97:84:f9:cf:34:ab:89:a6:3c:4a:ff:a4:98:a8:7c:c6:2c:c3:e3:10:a9:8b:67:32:47:35:37:15:03:3b:d0:f3:23:fc:bb:42:64:a2:ba:63:3e:94:6e:7a:e6:94:05:79:29:28:d5:99:5b:f9:67:fd:ea:d3:5f:b5:7b:f4:10:9b:0a:1c:20:6b:0c:59:56:76:45:07:56:cb:d0:ab:08:fc:19:8e:f1:27:03:22:f1:e9:23:d3:01:b1:4d:cf:96:f7:a6:44:59:de:2a:52:fd:bb:14:ae:39:c4:e4:0f:4e:10:f7:c6:61:79:0a:a6:4c:ed:ee:d7:40:fe:ef:f3:85:ae:3e:f3:bb:6e:de"; public static void main(String[] args) throws Exception { long start = System.currentTimeMillis(); @@ -190,8 +198,8 @@ public static void main(String[] args) throws Exception { // blocktype 1 testEncDec("RSA/ECB/PKCS1Padding", 96, privateKey, publicKey); - testEncDec("RSA/ECB/NoPadding", 128, publicKey, privateKey); - testEncDec("RSA/ECB/NoPadding", 128, privateKey, publicKey); + testEncDec("RSA/ECB/NoPadding", 256, publicKey, privateKey); + testEncDec("RSA/ECB/NoPadding", 256, privateKey, publicKey); // expected failure, blocktype 2 random padding bytes are different testKat("RSA/ECB/PKCS1Padding", Cipher.ENCRYPT_MODE, publicKey, in2, out2, false); diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHGenSharedSecret.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHGenSharedSecret.java index 34e87030636..9fe96d967dc 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHGenSharedSecret.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHGenSharedSecret.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ /* * @test * @bug 0000000 + * @library /test/lib * @summary DHGenSharedSecret * @author Jan Luehe */ @@ -33,40 +34,11 @@ import javax.crypto.*; import javax.crypto.spec.*; import java.math.BigInteger; +import jdk.test.lib.security.DiffieHellmanGroup; +import jdk.test.lib.security.SecurityUtils; public class DHGenSharedSecret { - static byte[] DHPrime = { -(byte)0x00, (byte)0x8D, (byte)0x8A, (byte)0x6C, (byte)0x7F, (byte)0xCC, -(byte)0xA5, (byte)0xBF, (byte)0x9C, (byte)0xE1, (byte)0xFA, (byte)0x3C, -(byte)0xCA, (byte)0x98, (byte)0xB7, (byte)0x99, (byte)0xD1, (byte)0xE5, -(byte)0x2C, (byte)0xC0, (byte)0x26, (byte)0x97, (byte)0x12, (byte)0x80, -(byte)0x12, (byte)0xEF, (byte)0x0B, (byte)0xDE, (byte)0x71, (byte)0x76, -(byte)0xAA, (byte)0x2D, (byte)0x86, (byte)0x41, (byte)0x0E, (byte)0x6A, -(byte)0xC2, (byte)0x12, (byte)0xAA, (byte)0xAA, (byte)0xE4, (byte)0x84, -(byte)0x80, (byte)0x13, (byte)0x95, (byte)0x06, (byte)0xC4, (byte)0x83, -(byte)0xB9, (byte)0xD3, (byte)0x72, (byte)0xC5, (byte)0xC8, (byte)0x85, -(byte)0x96, (byte)0x59, (byte)0x08, (byte)0xFA, (byte)0x9E, (byte)0x3C, -(byte)0xDC, (byte)0x92, (byte)0x28, (byte)0xC3, (byte)0x1D, (byte)0x6F, -(byte)0x44, (byte)0x36, (byte)0x70, (byte)0x40, (byte)0x80, (byte)0xF1, -(byte)0x35 - }; - - static byte[] DHBase = { -(byte)0x72, (byte)0x21, (byte)0xB3, (byte)0xA8, (byte)0x83, (byte)0xDD, -(byte)0x76, (byte)0xF5, (byte)0x0D, (byte)0x9B, (byte)0x81, (byte)0x11, -(byte)0x15, (byte)0x03, (byte)0x6D, (byte)0x4D, (byte)0x46, (byte)0x65, -(byte)0x30, (byte)0xB0, (byte)0xFA, (byte)0xFE, (byte)0xBE, (byte)0xA8, -(byte)0xD9, (byte)0x83, (byte)0x33, (byte)0x54, (byte)0xC7, (byte)0xF6, -(byte)0x81, (byte)0xAC, (byte)0xCC, (byte)0xA3, (byte)0xAE, (byte)0xAA, -(byte)0xC8, (byte)0x11, (byte)0x38, (byte)0xD4, (byte)0x4F, (byte)0xC4, -(byte)0x89, (byte)0xD3, (byte)0x72, (byte)0xEE, (byte)0x22, (byte)0x5A, -(byte)0x68, (byte)0xF7, (byte)0xAC, (byte)0x24, (byte)0x01, (byte)0x9B, -(byte)0xE9, (byte)0x08, (byte)0xFE, (byte)0x58, (byte)0x0A, (byte)0xCF, -(byte)0xB9, (byte)0x52, (byte)0xB4, (byte)0x02, (byte)0x73, (byte)0xA4, -(byte)0xA6, (byte)0xB9, (byte)0x0C, (byte)0x8D, (byte)0xA7, (byte)0xFB, - }; - public static void main(String[] args) throws Exception { DHGenSharedSecret test = new DHGenSharedSecret(); test.run(); @@ -75,8 +47,9 @@ public static void main(String[] args) throws Exception { public void run() throws Exception { long start, end; - BigInteger p = new BigInteger(1, DHPrime); - BigInteger g = new BigInteger(1, DHBase); + DiffieHellmanGroup dhGroup = SecurityUtils.getTestDHGroup(); + BigInteger p = dhGroup.getPrime(); + BigInteger g = new BigInteger(1, dhGroup.getBase().toByteArray()); int l = 512; DHParameterSpec spec = diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement2.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement2.java index c7a0c4aeb33..e3439b0140e 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement2.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement2.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ /* * @test * @bug 7146728 + * @library /test/lib * @summary DHKeyAgreement2 * @author Jan Luehe * @run main/othervm -Djdk.crypto.KeyAgreement.legacyKDF=true DHKeyAgreement2 @@ -38,13 +39,14 @@ import javax.crypto.*; import javax.crypto.spec.*; import javax.crypto.interfaces.*; +import jdk.test.lib.security.DiffieHellmanGroup; +import jdk.test.lib.security.SecurityUtils; /** * This test utility executes the Diffie-Hellman key agreement protocol * between 2 parties: Alice and Bob. * - * By default, preconfigured parameters (1024 bit prime modulus and base - * generator used by SKIP) are used. + * By default, preconfigured parameters are used. * If this program is called with the "-gen" option, a new set of parameters * are created. */ @@ -59,7 +61,7 @@ public class DHKeyAgreement2 { private DHKeyAgreement2() {} public static void main(String argv[]) throws Exception { - String mode = "USE_SKIP_DH_PARAMS"; + String mode = "USE_PRECONFIGURED_DH_PARAMS"; DHKeyAgreement2 keyAgree = new DHKeyAgreement2(); @@ -80,22 +82,25 @@ public static void main(String argv[]) throws Exception { private void run(String mode) throws Exception { - DHParameterSpec dhSkipParamSpec; + DHParameterSpec dhParameterSpec; + String algorithm = "DH"; + int primeSize = SecurityUtils.getTestKeySize(algorithm); if (mode.equals("GENERATE_DH_PARAMS")) { // Some central authority creates new DH parameters System.err.println("Creating Diffie-Hellman parameters ..."); AlgorithmParameterGenerator paramGen = AlgorithmParameterGenerator.getInstance("DH", SUNJCE); - paramGen.init(512); + paramGen.init(primeSize); AlgorithmParameters params = paramGen.generateParameters(); - dhSkipParamSpec = (DHParameterSpec)params.getParameterSpec + dhParameterSpec = (DHParameterSpec)params.getParameterSpec (DHParameterSpec.class); } else { - // use some pre-generated, default DH parameters - System.err.println("Using SKIP Diffie-Hellman parameters"); - dhSkipParamSpec = new DHParameterSpec(skip1024Modulus, - skip1024Base); + // use some pre-generated, test default DH parameters + DiffieHellmanGroup dhGroup = SecurityUtils.getTestDHGroup(primeSize); + System.err.println("Using " + dhGroup.name() + " Diffie-Hellman parameters"); + dhParameterSpec = new DHParameterSpec(dhGroup.getPrime(), + dhGroup.getBase()); } /* @@ -104,7 +109,7 @@ private void run(String mode) throws Exception { */ System.err.println("ALICE: Generate DH keypair ..."); KeyPairGenerator aliceKpairGen = KeyPairGenerator.getInstance("DH", SUNJCE); - aliceKpairGen.initialize(dhSkipParamSpec); + aliceKpairGen.initialize(dhParameterSpec); KeyPair aliceKpair = aliceKpairGen.generateKeyPair(); System.out.println("Alice DH public key:\n" + aliceKpair.getPublic().toString()); @@ -274,47 +279,4 @@ private void usage() { System.err.print("DHKeyAgreement usage: "); System.err.println("[-gen]"); } - - // The 1024 bit Diffie-Hellman modulus values used by SKIP - private static final byte skip1024ModulusBytes[] = { - (byte)0xF4, (byte)0x88, (byte)0xFD, (byte)0x58, - (byte)0x4E, (byte)0x49, (byte)0xDB, (byte)0xCD, - (byte)0x20, (byte)0xB4, (byte)0x9D, (byte)0xE4, - (byte)0x91, (byte)0x07, (byte)0x36, (byte)0x6B, - (byte)0x33, (byte)0x6C, (byte)0x38, (byte)0x0D, - (byte)0x45, (byte)0x1D, (byte)0x0F, (byte)0x7C, - (byte)0x88, (byte)0xB3, (byte)0x1C, (byte)0x7C, - (byte)0x5B, (byte)0x2D, (byte)0x8E, (byte)0xF6, - (byte)0xF3, (byte)0xC9, (byte)0x23, (byte)0xC0, - (byte)0x43, (byte)0xF0, (byte)0xA5, (byte)0x5B, - (byte)0x18, (byte)0x8D, (byte)0x8E, (byte)0xBB, - (byte)0x55, (byte)0x8C, (byte)0xB8, (byte)0x5D, - (byte)0x38, (byte)0xD3, (byte)0x34, (byte)0xFD, - (byte)0x7C, (byte)0x17, (byte)0x57, (byte)0x43, - (byte)0xA3, (byte)0x1D, (byte)0x18, (byte)0x6C, - (byte)0xDE, (byte)0x33, (byte)0x21, (byte)0x2C, - (byte)0xB5, (byte)0x2A, (byte)0xFF, (byte)0x3C, - (byte)0xE1, (byte)0xB1, (byte)0x29, (byte)0x40, - (byte)0x18, (byte)0x11, (byte)0x8D, (byte)0x7C, - (byte)0x84, (byte)0xA7, (byte)0x0A, (byte)0x72, - (byte)0xD6, (byte)0x86, (byte)0xC4, (byte)0x03, - (byte)0x19, (byte)0xC8, (byte)0x07, (byte)0x29, - (byte)0x7A, (byte)0xCA, (byte)0x95, (byte)0x0C, - (byte)0xD9, (byte)0x96, (byte)0x9F, (byte)0xAB, - (byte)0xD0, (byte)0x0A, (byte)0x50, (byte)0x9B, - (byte)0x02, (byte)0x46, (byte)0xD3, (byte)0x08, - (byte)0x3D, (byte)0x66, (byte)0xA4, (byte)0x5D, - (byte)0x41, (byte)0x9F, (byte)0x9C, (byte)0x7C, - (byte)0xBD, (byte)0x89, (byte)0x4B, (byte)0x22, - (byte)0x19, (byte)0x26, (byte)0xBA, (byte)0xAB, - (byte)0xA2, (byte)0x5E, (byte)0xC3, (byte)0x55, - (byte)0xE9, (byte)0x2F, (byte)0x78, (byte)0xC7 - }; - - // The SKIP 1024 bit modulus - private static final BigInteger skip1024Modulus - = new BigInteger(1, skip1024ModulusBytes); - - // The base used with the SKIP 1024 bit modulus - private static final BigInteger skip1024Base = BigInteger.valueOf(2); } diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement3.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement3.java index 6cdcf1dad2e..d4f70ea2563 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement3.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement3.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ /* * @test * @bug 0000000 + * @library /test/lib * @summary DHKeyAgreement3 * @author Jan Luehe */ @@ -37,13 +38,14 @@ import javax.crypto.*; import javax.crypto.spec.*; import javax.crypto.interfaces.*; +import jdk.test.lib.security.DiffieHellmanGroup; +import jdk.test.lib.security.SecurityUtils; /** * This test utility executes the Diffie-Hellman key agreement protocol * between 3 parties: Alice, Bob, and Carol. * - * We use the same 1024 bit prime modulus and base generator that are used by - * SKIP. + * By default, preconfigured parameters are used. */ public class DHKeyAgreement3 { @@ -61,27 +63,27 @@ public static void main(String argv[]) throws Exception { private void run() throws Exception { - DHParameterSpec dhSkipParamSpec; - - System.err.println("Using SKIP Diffie-Hellman parameters"); - dhSkipParamSpec = new DHParameterSpec(skip1024Modulus, skip1024Base); + DiffieHellmanGroup dhGroup = SecurityUtils.getTestDHGroup(); + DHParameterSpec dhParamSpec; + System.err.println("Using " + dhGroup.name() + " Diffie-Hellman parameters"); + dhParamSpec = new DHParameterSpec(dhGroup.getPrime(), dhGroup.getBase()); // Alice creates her own DH key pair System.err.println("ALICE: Generate DH keypair ..."); KeyPairGenerator aliceKpairGen = KeyPairGenerator.getInstance("DH", "SunJCE"); - aliceKpairGen.initialize(dhSkipParamSpec); + aliceKpairGen.initialize(dhParamSpec); KeyPair aliceKpair = aliceKpairGen.generateKeyPair(); // Bob creates his own DH key pair System.err.println("BOB: Generate DH keypair ..."); KeyPairGenerator bobKpairGen = KeyPairGenerator.getInstance("DH", "SunJCE"); - bobKpairGen.initialize(dhSkipParamSpec); + bobKpairGen.initialize(dhParamSpec); KeyPair bobKpair = bobKpairGen.generateKeyPair(); // Carol creates her own DH key pair System.err.println("CAROL: Generate DH keypair ..."); KeyPairGenerator carolKpairGen = KeyPairGenerator.getInstance("DH", "SunJCE"); - carolKpairGen.initialize(dhSkipParamSpec); + carolKpairGen.initialize(dhParamSpec); KeyPair carolKpair = carolKpairGen.generateKeyPair(); @@ -178,47 +180,4 @@ private void usage() { System.err.print("DHKeyAgreement usage: "); System.err.println("[-gen]"); } - - // The 1024 bit Diffie-Hellman modulus values used by SKIP - private static final byte skip1024ModulusBytes[] = { - (byte)0xF4, (byte)0x88, (byte)0xFD, (byte)0x58, - (byte)0x4E, (byte)0x49, (byte)0xDB, (byte)0xCD, - (byte)0x20, (byte)0xB4, (byte)0x9D, (byte)0xE4, - (byte)0x91, (byte)0x07, (byte)0x36, (byte)0x6B, - (byte)0x33, (byte)0x6C, (byte)0x38, (byte)0x0D, - (byte)0x45, (byte)0x1D, (byte)0x0F, (byte)0x7C, - (byte)0x88, (byte)0xB3, (byte)0x1C, (byte)0x7C, - (byte)0x5B, (byte)0x2D, (byte)0x8E, (byte)0xF6, - (byte)0xF3, (byte)0xC9, (byte)0x23, (byte)0xC0, - (byte)0x43, (byte)0xF0, (byte)0xA5, (byte)0x5B, - (byte)0x18, (byte)0x8D, (byte)0x8E, (byte)0xBB, - (byte)0x55, (byte)0x8C, (byte)0xB8, (byte)0x5D, - (byte)0x38, (byte)0xD3, (byte)0x34, (byte)0xFD, - (byte)0x7C, (byte)0x17, (byte)0x57, (byte)0x43, - (byte)0xA3, (byte)0x1D, (byte)0x18, (byte)0x6C, - (byte)0xDE, (byte)0x33, (byte)0x21, (byte)0x2C, - (byte)0xB5, (byte)0x2A, (byte)0xFF, (byte)0x3C, - (byte)0xE1, (byte)0xB1, (byte)0x29, (byte)0x40, - (byte)0x18, (byte)0x11, (byte)0x8D, (byte)0x7C, - (byte)0x84, (byte)0xA7, (byte)0x0A, (byte)0x72, - (byte)0xD6, (byte)0x86, (byte)0xC4, (byte)0x03, - (byte)0x19, (byte)0xC8, (byte)0x07, (byte)0x29, - (byte)0x7A, (byte)0xCA, (byte)0x95, (byte)0x0C, - (byte)0xD9, (byte)0x96, (byte)0x9F, (byte)0xAB, - (byte)0xD0, (byte)0x0A, (byte)0x50, (byte)0x9B, - (byte)0x02, (byte)0x46, (byte)0xD3, (byte)0x08, - (byte)0x3D, (byte)0x66, (byte)0xA4, (byte)0x5D, - (byte)0x41, (byte)0x9F, (byte)0x9C, (byte)0x7C, - (byte)0xBD, (byte)0x89, (byte)0x4B, (byte)0x22, - (byte)0x19, (byte)0x26, (byte)0xBA, (byte)0xAB, - (byte)0xA2, (byte)0x5E, (byte)0xC3, (byte)0x55, - (byte)0xE9, (byte)0x2F, (byte)0x78, (byte)0xC7 - }; - - // The SKIP 1024 bit modulus - private static final BigInteger skip1024Modulus - = new BigInteger(1, skip1024ModulusBytes); - - // The base used with the SKIP 1024 bit modulus - private static final BigInteger skip1024Base = BigInteger.valueOf(2); } diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyFactory.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyFactory.java index 753e7e1e197..356cfc4b20a 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyFactory.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyFactory.java @@ -24,6 +24,7 @@ /* * @test * @bug 0000000 + * @library /test/lib * @summary DHKeyFactory * @author Jan Luehe */ @@ -36,6 +37,8 @@ import javax.crypto.*; import javax.crypto.spec.*; import javax.crypto.interfaces.*; +import jdk.test.lib.security.DiffieHellmanGroup; +import jdk.test.lib.security.SecurityUtils; /** * This test creates a DH keypair, retrieves the encodings of the DH public and @@ -55,16 +58,13 @@ public static void main(String argv[]) throws Exception { private void run() throws Exception { - DHParameterSpec dhSkipParamSpec; - - // use some pre-generated, default DH parameters - System.err.println("Using SKIP Diffie-Hellman parameters"); - dhSkipParamSpec = new DHParameterSpec(skip1024Modulus, - skip1024Base); + DiffieHellmanGroup dhGroup = SecurityUtils.getTestDHGroup(); + DHParameterSpec dhParamSpec = new DHParameterSpec(dhGroup.getPrime(), dhGroup.getBase()); + System.out.println("Using " + dhGroup.name() + " Diffie-Hellman parameters"); KeyPairGenerator kpgen = KeyPairGenerator.getInstance("DH", System.getProperty("test.provider.name", "SunJCE")); - kpgen.initialize(dhSkipParamSpec); + kpgen.initialize(dhParamSpec); KeyPair kp = kpgen.generateKeyPair(); // get the public key encoding @@ -82,47 +82,4 @@ private void run() throws Exception { PKCS8EncodedKeySpec pkcsKeySpec = new PKCS8EncodedKeySpec(privKeyEnc); PrivateKey privKey = kfac.generatePrivate(pkcsKeySpec); } - - // The 1024 bit Diffie-Hellman modulus values used by SKIP - private static final byte skip1024ModulusBytes[] = { - (byte)0xF4, (byte)0x88, (byte)0xFD, (byte)0x58, - (byte)0x4E, (byte)0x49, (byte)0xDB, (byte)0xCD, - (byte)0x20, (byte)0xB4, (byte)0x9D, (byte)0xE4, - (byte)0x91, (byte)0x07, (byte)0x36, (byte)0x6B, - (byte)0x33, (byte)0x6C, (byte)0x38, (byte)0x0D, - (byte)0x45, (byte)0x1D, (byte)0x0F, (byte)0x7C, - (byte)0x88, (byte)0xB3, (byte)0x1C, (byte)0x7C, - (byte)0x5B, (byte)0x2D, (byte)0x8E, (byte)0xF6, - (byte)0xF3, (byte)0xC9, (byte)0x23, (byte)0xC0, - (byte)0x43, (byte)0xF0, (byte)0xA5, (byte)0x5B, - (byte)0x18, (byte)0x8D, (byte)0x8E, (byte)0xBB, - (byte)0x55, (byte)0x8C, (byte)0xB8, (byte)0x5D, - (byte)0x38, (byte)0xD3, (byte)0x34, (byte)0xFD, - (byte)0x7C, (byte)0x17, (byte)0x57, (byte)0x43, - (byte)0xA3, (byte)0x1D, (byte)0x18, (byte)0x6C, - (byte)0xDE, (byte)0x33, (byte)0x21, (byte)0x2C, - (byte)0xB5, (byte)0x2A, (byte)0xFF, (byte)0x3C, - (byte)0xE1, (byte)0xB1, (byte)0x29, (byte)0x40, - (byte)0x18, (byte)0x11, (byte)0x8D, (byte)0x7C, - (byte)0x84, (byte)0xA7, (byte)0x0A, (byte)0x72, - (byte)0xD6, (byte)0x86, (byte)0xC4, (byte)0x03, - (byte)0x19, (byte)0xC8, (byte)0x07, (byte)0x29, - (byte)0x7A, (byte)0xCA, (byte)0x95, (byte)0x0C, - (byte)0xD9, (byte)0x96, (byte)0x9F, (byte)0xAB, - (byte)0xD0, (byte)0x0A, (byte)0x50, (byte)0x9B, - (byte)0x02, (byte)0x46, (byte)0xD3, (byte)0x08, - (byte)0x3D, (byte)0x66, (byte)0xA4, (byte)0x5D, - (byte)0x41, (byte)0x9F, (byte)0x9C, (byte)0x7C, - (byte)0xBD, (byte)0x89, (byte)0x4B, (byte)0x22, - (byte)0x19, (byte)0x26, (byte)0xBA, (byte)0xAB, - (byte)0xA2, (byte)0x5E, (byte)0xC3, (byte)0x55, - (byte)0xE9, (byte)0x2F, (byte)0x78, (byte)0xC7 - }; - - // The SKIP 1024 bit modulus - private static final BigInteger skip1024Modulus - = new BigInteger(1, skip1024ModulusBytes); - - // The base used with the SKIP 1024 bit modulus - private static final BigInteger skip1024Base = BigInteger.valueOf(2); } diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyGenSpeed.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyGenSpeed.java index c74161e20e3..723ce11760b 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyGenSpeed.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyGenSpeed.java @@ -24,6 +24,7 @@ /* * @test * @bug 0000000 + * @library /test/lib * @summary DHKeyGenSpeed * @author Jan Luehe */ @@ -33,42 +34,11 @@ import javax.crypto.*; import javax.crypto.spec.*; import java.math.*; +import jdk.test.lib.security.DiffieHellmanGroup; +import jdk.test.lib.security.SecurityUtils; public class DHKeyGenSpeed { - static byte[] DHPrime = { -(byte)0x00, (byte)0x91, (byte)0x18, (byte)0x26, (byte)0x9A, (byte)0x26, -(byte)0x43, (byte)0xA6, (byte)0x1E, (byte)0x11, (byte)0x02, (byte)0xA0, -(byte)0x88, (byte)0xFE, (byte)0x12, (byte)0xEA, (byte)0x63, (byte)0x20, -(byte)0x6D, (byte)0x4F, (byte)0x40, (byte)0x3C, (byte)0x4F, (byte)0x13, -(byte)0x10, (byte)0x97, (byte)0xEC, (byte)0x3A, (byte)0x38, (byte)0x87, -(byte)0x9B, (byte)0x08, (byte)0x66, (byte)0x0C, (byte)0x82, (byte)0xD0, -(byte)0x57, (byte)0xE0, (byte)0x37, (byte)0x16, (byte)0x8E, (byte)0xB4, -(byte)0xEA, (byte)0xB7, (byte)0xE6, (byte)0xAF, (byte)0x4C, (byte)0xE0, -(byte)0x40, (byte)0x07, (byte)0xF4, (byte)0x81, (byte)0xDD, (byte)0x36, -(byte)0x33, (byte)0xAD, (byte)0x92, (byte)0xC6, (byte)0x0F, (byte)0xB5, -(byte)0xE4, (byte)0x0F, (byte)0x0E, (byte)0xEA, (byte)0x91, (byte)0x35, -(byte)0xFB, (byte)0x55, (byte)0x7A, (byte)0x39, (byte)0xD1, (byte)0xF0, -(byte)0x6B, (byte)0x9A, (byte)0xB9, (byte)0xFA, (byte)0x19, (byte)0xBE, -(byte)0x1B, (byte)0xFD, (byte)0x77 - }; - static byte[] DHBase = { -(byte)0x29, (byte)0xF2, (byte)0x29, (byte)0xC8, (byte)0x42, (byte)0x25, -(byte)0x29, (byte)0xC3, (byte)0xF2, (byte)0xAA, (byte)0xF2, (byte)0x6A, -(byte)0x3C, (byte)0xD2, (byte)0xD2, (byte)0xDE, (byte)0xD3, (byte)0x6B, -(byte)0x85, (byte)0xA5, (byte)0xE1, (byte)0x43, (byte)0x90, (byte)0xA2, -(byte)0xB6, (byte)0xA5, (byte)0x0C, (byte)0xBA, (byte)0xB9, (byte)0x4C, -(byte)0x25, (byte)0xE0, (byte)0xC8, (byte)0xEA, (byte)0xA1, (byte)0x7B, -(byte)0xB9, (byte)0xF8, (byte)0xFF, (byte)0x15, (byte)0x66, (byte)0x5B, -(byte)0xB0, (byte)0x00, (byte)0x18, (byte)0xE2, (byte)0xF4, (byte)0xF1, -(byte)0xB4, (byte)0x7A, (byte)0xC2, (byte)0xCF, (byte)0x9C, (byte)0x61, -(byte)0x36, (byte)0xED, (byte)0x14, (byte)0x72, (byte)0xD7, (byte)0xD4, -(byte)0x94, (byte)0x20, (byte)0x5E, (byte)0x1E, (byte)0xE4, (byte)0xB1, -(byte)0x60, (byte)0xC8, (byte)0x10, (byte)0x85, (byte)0xBD, (byte)0x74, -(byte)0x34, (byte)0x8C, (byte)0x3C, (byte)0x2A, (byte)0xBD, (byte)0x3C, -(byte)0xFF, (byte)0x14 - }; - public static void main(String[] args) throws Exception { DHKeyGenSpeed test = new DHKeyGenSpeed(); test.run(); @@ -78,8 +48,9 @@ public static void main(String[] args) throws Exception { public void run() throws Exception { long start, end; - BigInteger p = new BigInteger(1, DHPrime); - BigInteger g = new BigInteger(1, DHBase); + DiffieHellmanGroup dhGroup = SecurityUtils.getTestDHGroup(); + BigInteger p = dhGroup.getPrime(); + BigInteger g = new BigInteger(1, dhGroup.getBase().toByteArray()); int l = 576; DHParameterSpec spec = @@ -95,7 +66,7 @@ public void run() throws Exception { end = System.currentTimeMillis(); System.out.println("PrimeBits\tExponentBits"); - System.out.println(DHPrime.length*8 + "\t\t" + l); + System.out.println(dhGroup.getPrime().bitLength() + "\t\t" + l); System.out.println("keyGen(millisecond): " + (end - start)); System.out.println("Test Passed!"); } diff --git a/test/jdk/com/sun/crypto/provider/TLS/TestLeadingZeroes.java b/test/jdk/com/sun/crypto/provider/TLS/TestLeadingZeroes.java index fec6d24c0ef..9dc22c77fd0 100644 --- a/test/jdk/com/sun/crypto/provider/TLS/TestLeadingZeroes.java +++ b/test/jdk/com/sun/crypto/provider/TLS/TestLeadingZeroes.java @@ -81,7 +81,7 @@ private void run() throws Exception { System.out.println("shared secret:\n" + HEX_FORMATTER.formatHex(sharedSecret)); // verify that leading zero is present - if (sharedSecret.length != 128) { + if (sharedSecret.length != 256) { throw new Exception("Unexpected shared secret length"); } if (sharedSecret[0] != 0) { @@ -97,7 +97,7 @@ private void run() throws Exception { "tls premaster secret:\n" + HEX_FORMATTER.formatHex(tlsPremasterSecret)); // check that leading zero has been stripped - if (tlsPremasterSecret.length != 127) { + if (tlsPremasterSecret.length != 255) { throw new Exception("Unexpected TLS premaster secret length"); } if (tlsPremasterSecret[0] == 0) { @@ -112,279 +112,455 @@ private void run() throws Exception { } private static final byte alicePubKeyEnc[] = { - (byte)0x30, (byte)0x82, (byte)0x01, (byte)0x24, - (byte)0x30, (byte)0x81, (byte)0x99, (byte)0x06, - (byte)0x09, (byte)0x2A, (byte)0x86, (byte)0x48, - (byte)0x86, (byte)0xF7, (byte)0x0D, (byte)0x01, - (byte)0x03, (byte)0x01, (byte)0x30, (byte)0x81, - (byte)0x8B, (byte)0x02, (byte)0x81, (byte)0x81, - (byte)0x00, (byte)0xF4, (byte)0x88, (byte)0xFD, - (byte)0x58, (byte)0x4E, (byte)0x49, (byte)0xDB, - (byte)0xCD, (byte)0x20, (byte)0xB4, (byte)0x9D, - (byte)0xE4, (byte)0x91, (byte)0x07, (byte)0x36, - (byte)0x6B, (byte)0x33, (byte)0x6C, (byte)0x38, - (byte)0x0D, (byte)0x45, (byte)0x1D, (byte)0x0F, - (byte)0x7C, (byte)0x88, (byte)0xB3, (byte)0x1C, - (byte)0x7C, (byte)0x5B, (byte)0x2D, (byte)0x8E, - (byte)0xF6, (byte)0xF3, (byte)0xC9, (byte)0x23, - (byte)0xC0, (byte)0x43, (byte)0xF0, (byte)0xA5, - (byte)0x5B, (byte)0x18, (byte)0x8D, (byte)0x8E, - (byte)0xBB, (byte)0x55, (byte)0x8C, (byte)0xB8, - (byte)0x5D, (byte)0x38, (byte)0xD3, (byte)0x34, - (byte)0xFD, (byte)0x7C, (byte)0x17, (byte)0x57, - (byte)0x43, (byte)0xA3, (byte)0x1D, (byte)0x18, - (byte)0x6C, (byte)0xDE, (byte)0x33, (byte)0x21, - (byte)0x2C, (byte)0xB5, (byte)0x2A, (byte)0xFF, - (byte)0x3C, (byte)0xE1, (byte)0xB1, (byte)0x29, - (byte)0x40, (byte)0x18, (byte)0x11, (byte)0x8D, - (byte)0x7C, (byte)0x84, (byte)0xA7, (byte)0x0A, - (byte)0x72, (byte)0xD6, (byte)0x86, (byte)0xC4, - (byte)0x03, (byte)0x19, (byte)0xC8, (byte)0x07, - (byte)0x29, (byte)0x7A, (byte)0xCA, (byte)0x95, - (byte)0x0C, (byte)0xD9, (byte)0x96, (byte)0x9F, - (byte)0xAB, (byte)0xD0, (byte)0x0A, (byte)0x50, - (byte)0x9B, (byte)0x02, (byte)0x46, (byte)0xD3, - (byte)0x08, (byte)0x3D, (byte)0x66, (byte)0xA4, - (byte)0x5D, (byte)0x41, (byte)0x9F, (byte)0x9C, - (byte)0x7C, (byte)0xBD, (byte)0x89, (byte)0x4B, - (byte)0x22, (byte)0x19, (byte)0x26, (byte)0xBA, - (byte)0xAB, (byte)0xA2, (byte)0x5E, (byte)0xC3, - (byte)0x55, (byte)0xE9, (byte)0x2F, (byte)0x78, - (byte)0xC7, (byte)0x02, (byte)0x01, (byte)0x02, - (byte)0x02, (byte)0x02, (byte)0x02, (byte)0x00, - (byte)0x03, (byte)0x81, (byte)0x85, (byte)0x00, - (byte)0x02, (byte)0x81, (byte)0x81, (byte)0x00, - (byte)0xEE, (byte)0xD6, (byte)0xB1, (byte)0xA3, - (byte)0xB4, (byte)0x78, (byte)0x2B, (byte)0x35, - (byte)0xEF, (byte)0xCD, (byte)0x17, (byte)0x86, - (byte)0x63, (byte)0x2B, (byte)0x97, (byte)0x0E, - (byte)0x7A, (byte)0xD1, (byte)0xFF, (byte)0x7A, - (byte)0xEB, (byte)0x57, (byte)0x61, (byte)0xA1, - (byte)0xF7, (byte)0x90, (byte)0x11, (byte)0xA7, - (byte)0x79, (byte)0x28, (byte)0x69, (byte)0xBA, - (byte)0xA7, (byte)0xB2, (byte)0x37, (byte)0x17, - (byte)0xAE, (byte)0x3C, (byte)0x92, (byte)0x89, - (byte)0x88, (byte)0xE5, (byte)0x7E, (byte)0x8E, - (byte)0xF0, (byte)0x24, (byte)0xD0, (byte)0xE1, - (byte)0xC4, (byte)0xB0, (byte)0x26, (byte)0x5A, - (byte)0x1E, (byte)0xBD, (byte)0xA0, (byte)0xCF, - (byte)0x3E, (byte)0x97, (byte)0x2A, (byte)0x13, - (byte)0x92, (byte)0x3B, (byte)0x39, (byte)0xD0, - (byte)0x1D, (byte)0xA3, (byte)0x6B, (byte)0x3E, - (byte)0xC2, (byte)0xBB, (byte)0x14, (byte)0xB6, - (byte)0xE2, (byte)0x4C, (byte)0x0E, (byte)0x5B, - (byte)0x4B, (byte)0xA4, (byte)0x9D, (byte)0xA6, - (byte)0x21, (byte)0xB0, (byte)0xF9, (byte)0xDE, - (byte)0x55, (byte)0xAE, (byte)0x5C, (byte)0x29, - (byte)0x0E, (byte)0xC1, (byte)0xFC, (byte)0xBA, - (byte)0x51, (byte)0xD3, (byte)0xB6, (byte)0x6D, - (byte)0x75, (byte)0x72, (byte)0xDF, (byte)0x43, - (byte)0xAB, (byte)0x94, (byte)0x21, (byte)0x6E, - (byte)0x0C, (byte)0xD1, (byte)0x93, (byte)0x54, - (byte)0x56, (byte)0x7D, (byte)0x4B, (byte)0x90, - (byte)0xF1, (byte)0x94, (byte)0x45, (byte)0xD4, - (byte)0x2A, (byte)0x71, (byte)0xA1, (byte)0xB8, - (byte)0xDD, (byte)0xAA, (byte)0x05, (byte)0xF0, - (byte)0x27, (byte)0x37, (byte)0xBD, (byte)0x44 + (byte)0x30, (byte)0x82, (byte)0x02, (byte)0x25, + (byte)0x30, (byte)0x82, (byte)0x01, (byte)0x17, + (byte)0x06, (byte)0x09, (byte)0x2a, (byte)0x86, + (byte)0x48, (byte)0x86, (byte)0xf7, (byte)0x0d, + (byte)0x01, (byte)0x03, (byte)0x01, (byte)0x30, + (byte)0x82, (byte)0x01, (byte)0x08, (byte)0x02, + (byte)0x82, (byte)0x01, (byte)0x01, (byte)0x00, + (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, + (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, + (byte)0xad, (byte)0xf8, (byte)0x54, (byte)0x58, + (byte)0xa2, (byte)0xbb, (byte)0x4a, (byte)0x9a, + (byte)0xaf, (byte)0xdc, (byte)0x56, (byte)0x20, + (byte)0x27, (byte)0x3d, (byte)0x3c, (byte)0xf1, + (byte)0xd8, (byte)0xb9, (byte)0xc5, (byte)0x83, + (byte)0xce, (byte)0x2d, (byte)0x36, (byte)0x95, + (byte)0xa9, (byte)0xe1, (byte)0x36, (byte)0x41, + (byte)0x14, (byte)0x64, (byte)0x33, (byte)0xfb, + (byte)0xcc, (byte)0x93, (byte)0x9d, (byte)0xce, + (byte)0x24, (byte)0x9b, (byte)0x3e, (byte)0xf9, + (byte)0x7d, (byte)0x2f, (byte)0xe3, (byte)0x63, + (byte)0x63, (byte)0x0c, (byte)0x75, (byte)0xd8, + (byte)0xf6, (byte)0x81, (byte)0xb2, (byte)0x02, + (byte)0xae, (byte)0xc4, (byte)0x61, (byte)0x7a, + (byte)0xd3, (byte)0xdf, (byte)0x1e, (byte)0xd5, + (byte)0xd5, (byte)0xfd, (byte)0x65, (byte)0x61, + (byte)0x24, (byte)0x33, (byte)0xf5, (byte)0x1f, + (byte)0x5f, (byte)0x06, (byte)0x6e, (byte)0xd0, + (byte)0x85, (byte)0x63, (byte)0x65, (byte)0x55, + (byte)0x3d, (byte)0xed, (byte)0x1a, (byte)0xf3, + (byte)0xb5, (byte)0x57, (byte)0x13, (byte)0x5e, + (byte)0x7f, (byte)0x57, (byte)0xc9, (byte)0x35, + (byte)0x98, (byte)0x4f, (byte)0x0c, (byte)0x70, + (byte)0xe0, (byte)0xe6, (byte)0x8b, (byte)0x77, + (byte)0xe2, (byte)0xa6, (byte)0x89, (byte)0xda, + (byte)0xf3, (byte)0xef, (byte)0xe8, (byte)0x72, + (byte)0x1d, (byte)0xf1, (byte)0x58, (byte)0xa1, + (byte)0x36, (byte)0xad, (byte)0xe7, (byte)0x35, + (byte)0x30, (byte)0xac, (byte)0xca, (byte)0x4f, + (byte)0x48, (byte)0x3a, (byte)0x79, (byte)0x7a, + (byte)0xbc, (byte)0x0a, (byte)0xb1, (byte)0x82, + (byte)0xb3, (byte)0x24, (byte)0xfb, (byte)0x61, + (byte)0xd1, (byte)0x08, (byte)0xa9, (byte)0x4b, + (byte)0xb2, (byte)0xc8, (byte)0xe3, (byte)0xfb, + (byte)0xb9, (byte)0x6a, (byte)0xda, (byte)0xb7, + (byte)0x60, (byte)0xd7, (byte)0xf4, (byte)0x68, + (byte)0x1d, (byte)0x4f, (byte)0x42, (byte)0xa3, + (byte)0xde, (byte)0x39, (byte)0x4d, (byte)0xf4, + (byte)0xae, (byte)0x56, (byte)0xed, (byte)0xe7, + (byte)0x63, (byte)0x72, (byte)0xbb, (byte)0x19, + (byte)0x0b, (byte)0x07, (byte)0xa7, (byte)0xc8, + (byte)0xee, (byte)0x0a, (byte)0x6d, (byte)0x70, + (byte)0x9e, (byte)0x02, (byte)0xfc, (byte)0xe1, + (byte)0xcd, (byte)0xf7, (byte)0xe2, (byte)0xec, + (byte)0xc0, (byte)0x34, (byte)0x04, (byte)0xcd, + (byte)0x28, (byte)0x34, (byte)0x2f, (byte)0x61, + (byte)0x91, (byte)0x72, (byte)0xfe, (byte)0x9c, + (byte)0xe9, (byte)0x85, (byte)0x83, (byte)0xff, + (byte)0x8e, (byte)0x4f, (byte)0x12, (byte)0x32, + (byte)0xee, (byte)0xf2, (byte)0x81, (byte)0x83, + (byte)0xc3, (byte)0xfe, (byte)0x3b, (byte)0x1b, + (byte)0x4c, (byte)0x6f, (byte)0xad, (byte)0x73, + (byte)0x3b, (byte)0xb5, (byte)0xfc, (byte)0xbc, + (byte)0x2e, (byte)0xc2, (byte)0x20, (byte)0x05, + (byte)0xc5, (byte)0x8e, (byte)0xf1, (byte)0x83, + (byte)0x7d, (byte)0x16, (byte)0x83, (byte)0xb2, + (byte)0xc6, (byte)0xf3, (byte)0x4a, (byte)0x26, + (byte)0xc1, (byte)0xb2, (byte)0xef, (byte)0xfa, + (byte)0x88, (byte)0x6b, (byte)0x42, (byte)0x38, + (byte)0x61, (byte)0x28, (byte)0x5c, (byte)0x97, + (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, + (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, + (byte)0x02, (byte)0x01, (byte)0x02, (byte)0x03, + (byte)0x82, (byte)0x01, (byte)0x06, (byte)0x00, + (byte)0x02, (byte)0x82, (byte)0x01, (byte)0x01, + (byte)0x00, (byte)0xb0, (byte)0x6e, (byte)0x76, + (byte)0x73, (byte)0x32, (byte)0xd4, (byte)0xcf, + (byte)0xb8, (byte)0x16, (byte)0x46, (byte)0x76, + (byte)0x8b, (byte)0x2b, (byte)0x2b, (byte)0xda, + (byte)0x6e, (byte)0x25, (byte)0x52, (byte)0x87, + (byte)0x9e, (byte)0x0c, (byte)0x97, (byte)0xc7, + (byte)0x16, (byte)0x42, (byte)0xb6, (byte)0x30, + (byte)0xc6, (byte)0x30, (byte)0xce, (byte)0xc5, + (byte)0xf4, (byte)0x8e, (byte)0x28, (byte)0xe0, + (byte)0x8d, (byte)0x5b, (byte)0x44, (byte)0x59, + (byte)0xae, (byte)0x5e, (byte)0xb6, (byte)0x5f, + (byte)0x48, (byte)0x8e, (byte)0x13, (byte)0x91, + (byte)0x00, (byte)0x72, (byte)0x9b, (byte)0x1b, + (byte)0xd8, (byte)0x69, (byte)0xe4, (byte)0xdf, + (byte)0x10, (byte)0x50, (byte)0x53, (byte)0x0f, + (byte)0x3d, (byte)0xba, (byte)0x82, (byte)0x02, + (byte)0x1c, (byte)0x78, (byte)0xf3, (byte)0xf3, + (byte)0x9a, (byte)0x01, (byte)0x3d, (byte)0xb6, + (byte)0x65, (byte)0xc2, (byte)0x6f, (byte)0x70, + (byte)0xec, (byte)0x67, (byte)0x14, (byte)0x56, + (byte)0xa0, (byte)0x98, (byte)0xef, (byte)0xc8, + (byte)0x63, (byte)0xbe, (byte)0x14, (byte)0x78, + (byte)0x1d, (byte)0xff, (byte)0xf8, (byte)0xf9, + (byte)0xd9, (byte)0x53, (byte)0xb2, (byte)0xc4, + (byte)0x40, (byte)0x3e, (byte)0x90, (byte)0x5c, + (byte)0x10, (byte)0xf8, (byte)0xa4, (byte)0xd3, + (byte)0xa2, (byte)0x39, (byte)0xc6, (byte)0xeb, + (byte)0xcd, (byte)0x3d, (byte)0xd1, (byte)0x27, + (byte)0x51, (byte)0xc8, (byte)0x4f, (byte)0x9b, + (byte)0x86, (byte)0xce, (byte)0xcf, (byte)0x80, + (byte)0x96, (byte)0x3d, (byte)0xb9, (byte)0x25, + (byte)0x05, (byte)0x54, (byte)0x15, (byte)0x8d, + (byte)0x02, (byte)0xd2, (byte)0x6f, (byte)0xed, + (byte)0xaf, (byte)0x49, (byte)0x0d, (byte)0x3e, + (byte)0xda, (byte)0xe6, (byte)0x3d, (byte)0x1a, + (byte)0x91, (byte)0x8f, (byte)0xca, (byte)0x6d, + (byte)0x88, (byte)0xff, (byte)0x0f, (byte)0x75, + (byte)0xf5, (byte)0x4e, (byte)0x08, (byte)0x42, + (byte)0xf0, (byte)0xa3, (byte)0x4a, (byte)0x95, + (byte)0xca, (byte)0x18, (byte)0xc1, (byte)0x3d, + (byte)0x9a, (byte)0x12, (byte)0x3e, (byte)0x09, + (byte)0x29, (byte)0x82, (byte)0x8e, (byte)0xe5, + (byte)0x3a, (byte)0x4c, (byte)0xcc, (byte)0x8f, + (byte)0x94, (byte)0x14, (byte)0xe3, (byte)0xc7, + (byte)0x63, (byte)0x8a, (byte)0x23, (byte)0x11, + (byte)0x03, (byte)0x77, (byte)0x7d, (byte)0xe8, + (byte)0x03, (byte)0x15, (byte)0x37, (byte)0xa9, + (byte)0xe5, (byte)0xd7, (byte)0x38, (byte)0x8f, + (byte)0xa8, (byte)0x49, (byte)0x5d, (byte)0xe4, + (byte)0x0d, (byte)0xed, (byte)0xb9, (byte)0x92, + (byte)0xc4, (byte)0xd7, (byte)0x72, (byte)0xf2, + (byte)0x29, (byte)0x26, (byte)0x99, (byte)0x11, + (byte)0xac, (byte)0xa8, (byte)0x45, (byte)0xb1, + (byte)0x6b, (byte)0x5a, (byte)0x01, (byte)0xc4, + (byte)0xe0, (byte)0x08, (byte)0xbf, (byte)0xa1, + (byte)0x49, (byte)0x2a, (byte)0x9c, (byte)0x8c, + (byte)0x89, (byte)0x31, (byte)0x07, (byte)0x36, + (byte)0x7d, (byte)0xec, (byte)0xa3, (byte)0x9a, + (byte)0x1e, (byte)0xd6, (byte)0xc6, (byte)0x01, + (byte)0x0e, (byte)0xc8, (byte)0x85, (byte)0x55, + (byte)0x42, (byte)0xa4, (byte)0x87, (byte)0x58, + (byte)0xfa, (byte)0xec, (byte)0x71, (byte)0x2e, + (byte)0x4c, (byte)0x46, (byte)0xd2, (byte)0x19, + (byte)0x23, (byte)0x0a, (byte)0x59, (byte)0x1a, + (byte)0x56 }; private static final byte alicePrivKeyEnc[] = { - (byte)0x30, (byte)0x81, (byte)0xE3, (byte)0x02, - (byte)0x01, (byte)0x00, (byte)0x30, (byte)0x81, - (byte)0x99, (byte)0x06, (byte)0x09, (byte)0x2A, - (byte)0x86, (byte)0x48, (byte)0x86, (byte)0xF7, - (byte)0x0D, (byte)0x01, (byte)0x03, (byte)0x01, - (byte)0x30, (byte)0x81, (byte)0x8B, (byte)0x02, - (byte)0x81, (byte)0x81, (byte)0x00, (byte)0xF4, - (byte)0x88, (byte)0xFD, (byte)0x58, (byte)0x4E, - (byte)0x49, (byte)0xDB, (byte)0xCD, (byte)0x20, - (byte)0xB4, (byte)0x9D, (byte)0xE4, (byte)0x91, - (byte)0x07, (byte)0x36, (byte)0x6B, (byte)0x33, - (byte)0x6C, (byte)0x38, (byte)0x0D, (byte)0x45, - (byte)0x1D, (byte)0x0F, (byte)0x7C, (byte)0x88, - (byte)0xB3, (byte)0x1C, (byte)0x7C, (byte)0x5B, - (byte)0x2D, (byte)0x8E, (byte)0xF6, (byte)0xF3, - (byte)0xC9, (byte)0x23, (byte)0xC0, (byte)0x43, - (byte)0xF0, (byte)0xA5, (byte)0x5B, (byte)0x18, - (byte)0x8D, (byte)0x8E, (byte)0xBB, (byte)0x55, - (byte)0x8C, (byte)0xB8, (byte)0x5D, (byte)0x38, - (byte)0xD3, (byte)0x34, (byte)0xFD, (byte)0x7C, - (byte)0x17, (byte)0x57, (byte)0x43, (byte)0xA3, - (byte)0x1D, (byte)0x18, (byte)0x6C, (byte)0xDE, - (byte)0x33, (byte)0x21, (byte)0x2C, (byte)0xB5, - (byte)0x2A, (byte)0xFF, (byte)0x3C, (byte)0xE1, - (byte)0xB1, (byte)0x29, (byte)0x40, (byte)0x18, - (byte)0x11, (byte)0x8D, (byte)0x7C, (byte)0x84, - (byte)0xA7, (byte)0x0A, (byte)0x72, (byte)0xD6, - (byte)0x86, (byte)0xC4, (byte)0x03, (byte)0x19, - (byte)0xC8, (byte)0x07, (byte)0x29, (byte)0x7A, - (byte)0xCA, (byte)0x95, (byte)0x0C, (byte)0xD9, - (byte)0x96, (byte)0x9F, (byte)0xAB, (byte)0xD0, - (byte)0x0A, (byte)0x50, (byte)0x9B, (byte)0x02, - (byte)0x46, (byte)0xD3, (byte)0x08, (byte)0x3D, - (byte)0x66, (byte)0xA4, (byte)0x5D, (byte)0x41, - (byte)0x9F, (byte)0x9C, (byte)0x7C, (byte)0xBD, - (byte)0x89, (byte)0x4B, (byte)0x22, (byte)0x19, - (byte)0x26, (byte)0xBA, (byte)0xAB, (byte)0xA2, - (byte)0x5E, (byte)0xC3, (byte)0x55, (byte)0xE9, - (byte)0x2F, (byte)0x78, (byte)0xC7, (byte)0x02, - (byte)0x01, (byte)0x02, (byte)0x02, (byte)0x02, - (byte)0x02, (byte)0x00, (byte)0x04, (byte)0x42, - (byte)0x02, (byte)0x40, (byte)0x36, (byte)0x4D, - (byte)0xD0, (byte)0x58, (byte)0x64, (byte)0x91, - (byte)0x78, (byte)0xA2, (byte)0x4B, (byte)0x79, - (byte)0x46, (byte)0xFE, (byte)0xC9, (byte)0xD9, - (byte)0xCA, (byte)0x5C, (byte)0xF9, (byte)0xFD, - (byte)0x6C, (byte)0x5D, (byte)0x76, (byte)0x3A, - (byte)0x41, (byte)0x6D, (byte)0x44, (byte)0x62, - (byte)0x75, (byte)0x93, (byte)0x81, (byte)0x93, - (byte)0x00, (byte)0x4C, (byte)0xB1, (byte)0xD8, - (byte)0x7D, (byte)0x9D, (byte)0xF3, (byte)0x16, - (byte)0x2C, (byte)0x6C, (byte)0x9F, (byte)0x7A, - (byte)0x84, (byte)0xA3, (byte)0x7A, (byte)0xC1, - (byte)0x4F, (byte)0x60, (byte)0xE3, (byte)0xB5, - (byte)0x86, (byte)0x28, (byte)0x08, (byte)0x4D, - (byte)0x94, (byte)0xB6, (byte)0x04, (byte)0x0D, - (byte)0xAC, (byte)0xBD, (byte)0x1F, (byte)0x42, - (byte)0x8F, (byte)0x1B + (byte)0x30, (byte)0x82, (byte)0x01, (byte)0x3f, + (byte)0x02, (byte)0x01, (byte)0x00, (byte)0x30, + (byte)0x82, (byte)0x01, (byte)0x17, (byte)0x06, + (byte)0x09, (byte)0x2a, (byte)0x86, (byte)0x48, + (byte)0x86, (byte)0xf7, (byte)0x0d, (byte)0x01, + (byte)0x03, (byte)0x01, (byte)0x30, (byte)0x82, + (byte)0x01, (byte)0x08, (byte)0x02, (byte)0x82, + (byte)0x01, (byte)0x01, (byte)0x00, (byte)0xff, + (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, + (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xad, + (byte)0xf8, (byte)0x54, (byte)0x58, (byte)0xa2, + (byte)0xbb, (byte)0x4a, (byte)0x9a, (byte)0xaf, + (byte)0xdc, (byte)0x56, (byte)0x20, (byte)0x27, + (byte)0x3d, (byte)0x3c, (byte)0xf1, (byte)0xd8, + (byte)0xb9, (byte)0xc5, (byte)0x83, (byte)0xce, + (byte)0x2d, (byte)0x36, (byte)0x95, (byte)0xa9, + (byte)0xe1, (byte)0x36, (byte)0x41, (byte)0x14, + (byte)0x64, (byte)0x33, (byte)0xfb, (byte)0xcc, + (byte)0x93, (byte)0x9d, (byte)0xce, (byte)0x24, + (byte)0x9b, (byte)0x3e, (byte)0xf9, (byte)0x7d, + (byte)0x2f, (byte)0xe3, (byte)0x63, (byte)0x63, + (byte)0x0c, (byte)0x75, (byte)0xd8, (byte)0xf6, + (byte)0x81, (byte)0xb2, (byte)0x02, (byte)0xae, + (byte)0xc4, (byte)0x61, (byte)0x7a, (byte)0xd3, + (byte)0xdf, (byte)0x1e, (byte)0xd5, (byte)0xd5, + (byte)0xfd, (byte)0x65, (byte)0x61, (byte)0x24, + (byte)0x33, (byte)0xf5, (byte)0x1f, (byte)0x5f, + (byte)0x06, (byte)0x6e, (byte)0xd0, (byte)0x85, + (byte)0x63, (byte)0x65, (byte)0x55, (byte)0x3d, + (byte)0xed, (byte)0x1a, (byte)0xf3, (byte)0xb5, + (byte)0x57, (byte)0x13, (byte)0x5e, (byte)0x7f, + (byte)0x57, (byte)0xc9, (byte)0x35, (byte)0x98, + (byte)0x4f, (byte)0x0c, (byte)0x70, (byte)0xe0, + (byte)0xe6, (byte)0x8b, (byte)0x77, (byte)0xe2, + (byte)0xa6, (byte)0x89, (byte)0xda, (byte)0xf3, + (byte)0xef, (byte)0xe8, (byte)0x72, (byte)0x1d, + (byte)0xf1, (byte)0x58, (byte)0xa1, (byte)0x36, + (byte)0xad, (byte)0xe7, (byte)0x35, (byte)0x30, + (byte)0xac, (byte)0xca, (byte)0x4f, (byte)0x48, + (byte)0x3a, (byte)0x79, (byte)0x7a, (byte)0xbc, + (byte)0x0a, (byte)0xb1, (byte)0x82, (byte)0xb3, + (byte)0x24, (byte)0xfb, (byte)0x61, (byte)0xd1, + (byte)0x08, (byte)0xa9, (byte)0x4b, (byte)0xb2, + (byte)0xc8, (byte)0xe3, (byte)0xfb, (byte)0xb9, + (byte)0x6a, (byte)0xda, (byte)0xb7, (byte)0x60, + (byte)0xd7, (byte)0xf4, (byte)0x68, (byte)0x1d, + (byte)0x4f, (byte)0x42, (byte)0xa3, (byte)0xde, + (byte)0x39, (byte)0x4d, (byte)0xf4, (byte)0xae, + (byte)0x56, (byte)0xed, (byte)0xe7, (byte)0x63, + (byte)0x72, (byte)0xbb, (byte)0x19, (byte)0x0b, + (byte)0x07, (byte)0xa7, (byte)0xc8, (byte)0xee, + (byte)0x0a, (byte)0x6d, (byte)0x70, (byte)0x9e, + (byte)0x02, (byte)0xfc, (byte)0xe1, (byte)0xcd, + (byte)0xf7, (byte)0xe2, (byte)0xec, (byte)0xc0, + (byte)0x34, (byte)0x04, (byte)0xcd, (byte)0x28, + (byte)0x34, (byte)0x2f, (byte)0x61, (byte)0x91, + (byte)0x72, (byte)0xfe, (byte)0x9c, (byte)0xe9, + (byte)0x85, (byte)0x83, (byte)0xff, (byte)0x8e, + (byte)0x4f, (byte)0x12, (byte)0x32, (byte)0xee, + (byte)0xf2, (byte)0x81, (byte)0x83, (byte)0xc3, + (byte)0xfe, (byte)0x3b, (byte)0x1b, (byte)0x4c, + (byte)0x6f, (byte)0xad, (byte)0x73, (byte)0x3b, + (byte)0xb5, (byte)0xfc, (byte)0xbc, (byte)0x2e, + (byte)0xc2, (byte)0x20, (byte)0x05, (byte)0xc5, + (byte)0x8e, (byte)0xf1, (byte)0x83, (byte)0x7d, + (byte)0x16, (byte)0x83, (byte)0xb2, (byte)0xc6, + (byte)0xf3, (byte)0x4a, (byte)0x26, (byte)0xc1, + (byte)0xb2, (byte)0xef, (byte)0xfa, (byte)0x88, + (byte)0x6b, (byte)0x42, (byte)0x38, (byte)0x61, + (byte)0x28, (byte)0x5c, (byte)0x97, (byte)0xff, + (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, + (byte)0xff, (byte)0xff, (byte)0xff, (byte)0x02, + (byte)0x01, (byte)0x02, (byte)0x04, (byte)0x1f, + (byte)0x02, (byte)0x1d, (byte)0x00, (byte)0xc7, + (byte)0x06, (byte)0xe9, (byte)0x24, (byte)0xf8, + (byte)0xb1, (byte)0xdf, (byte)0x98, (byte)0x61, + (byte)0x34, (byte)0x7f, (byte)0xcf, (byte)0xf1, + (byte)0xcc, (byte)0xcd, (byte)0xc8, (byte)0xcc, + (byte)0xd9, (byte)0x6a, (byte)0xb8, (byte)0x7d, + (byte)0x72, (byte)0x4c, (byte)0x58, (byte)0x5a, + (byte)0x97, (byte)0x39, (byte)0x69 }; private static final byte bobPubKeyEnc[] = { - (byte)0x30, (byte)0x82, (byte)0x01, (byte)0x23, - (byte)0x30, (byte)0x81, (byte)0x99, (byte)0x06, - (byte)0x09, (byte)0x2A, (byte)0x86, (byte)0x48, - (byte)0x86, (byte)0xF7, (byte)0x0D, (byte)0x01, - (byte)0x03, (byte)0x01, (byte)0x30, (byte)0x81, - (byte)0x8B, (byte)0x02, (byte)0x81, (byte)0x81, - (byte)0x00, (byte)0xF4, (byte)0x88, (byte)0xFD, - (byte)0x58, (byte)0x4E, (byte)0x49, (byte)0xDB, - (byte)0xCD, (byte)0x20, (byte)0xB4, (byte)0x9D, - (byte)0xE4, (byte)0x91, (byte)0x07, (byte)0x36, - (byte)0x6B, (byte)0x33, (byte)0x6C, (byte)0x38, - (byte)0x0D, (byte)0x45, (byte)0x1D, (byte)0x0F, - (byte)0x7C, (byte)0x88, (byte)0xB3, (byte)0x1C, - (byte)0x7C, (byte)0x5B, (byte)0x2D, (byte)0x8E, - (byte)0xF6, (byte)0xF3, (byte)0xC9, (byte)0x23, - (byte)0xC0, (byte)0x43, (byte)0xF0, (byte)0xA5, - (byte)0x5B, (byte)0x18, (byte)0x8D, (byte)0x8E, - (byte)0xBB, (byte)0x55, (byte)0x8C, (byte)0xB8, - (byte)0x5D, (byte)0x38, (byte)0xD3, (byte)0x34, - (byte)0xFD, (byte)0x7C, (byte)0x17, (byte)0x57, - (byte)0x43, (byte)0xA3, (byte)0x1D, (byte)0x18, - (byte)0x6C, (byte)0xDE, (byte)0x33, (byte)0x21, - (byte)0x2C, (byte)0xB5, (byte)0x2A, (byte)0xFF, - (byte)0x3C, (byte)0xE1, (byte)0xB1, (byte)0x29, - (byte)0x40, (byte)0x18, (byte)0x11, (byte)0x8D, - (byte)0x7C, (byte)0x84, (byte)0xA7, (byte)0x0A, - (byte)0x72, (byte)0xD6, (byte)0x86, (byte)0xC4, - (byte)0x03, (byte)0x19, (byte)0xC8, (byte)0x07, - (byte)0x29, (byte)0x7A, (byte)0xCA, (byte)0x95, - (byte)0x0C, (byte)0xD9, (byte)0x96, (byte)0x9F, - (byte)0xAB, (byte)0xD0, (byte)0x0A, (byte)0x50, - (byte)0x9B, (byte)0x02, (byte)0x46, (byte)0xD3, - (byte)0x08, (byte)0x3D, (byte)0x66, (byte)0xA4, - (byte)0x5D, (byte)0x41, (byte)0x9F, (byte)0x9C, - (byte)0x7C, (byte)0xBD, (byte)0x89, (byte)0x4B, - (byte)0x22, (byte)0x19, (byte)0x26, (byte)0xBA, - (byte)0xAB, (byte)0xA2, (byte)0x5E, (byte)0xC3, - (byte)0x55, (byte)0xE9, (byte)0x2F, (byte)0x78, - (byte)0xC7, (byte)0x02, (byte)0x01, (byte)0x02, - (byte)0x02, (byte)0x02, (byte)0x02, (byte)0x00, - (byte)0x03, (byte)0x81, (byte)0x84, (byte)0x00, - (byte)0x02, (byte)0x81, (byte)0x80, (byte)0x2C, - (byte)0x40, (byte)0xFA, (byte)0xF6, (byte)0xA6, - (byte)0xF8, (byte)0xAC, (byte)0xC2, (byte)0x4F, - (byte)0xCD, (byte)0xC7, (byte)0x37, (byte)0x93, - (byte)0xE5, (byte)0xE4, (byte)0x5E, (byte)0x18, - (byte)0x14, (byte)0xE6, (byte)0x50, (byte)0xDA, - (byte)0x55, (byte)0x38, (byte)0x5D, (byte)0x24, - (byte)0xF5, (byte)0x42, (byte)0x68, (byte)0x5F, - (byte)0xF5, (byte)0x15, (byte)0xC8, (byte)0x9B, - (byte)0x5D, (byte)0x06, (byte)0x3D, (byte)0xE1, - (byte)0x52, (byte)0x2F, (byte)0x98, (byte)0xFF, - (byte)0x37, (byte)0xBB, (byte)0x75, (byte)0x48, - (byte)0x48, (byte)0xE9, (byte)0x65, (byte)0x84, - (byte)0x37, (byte)0xBB, (byte)0xB3, (byte)0xE9, - (byte)0x36, (byte)0x01, (byte)0xB4, (byte)0x6A, - (byte)0x1C, (byte)0xB2, (byte)0x11, (byte)0x82, - (byte)0xCE, (byte)0x3D, (byte)0x65, (byte)0xE5, - (byte)0x3C, (byte)0x89, (byte)0xE9, (byte)0x52, - (byte)0x19, (byte)0xBD, (byte)0x58, (byte)0xF6, - (byte)0xA2, (byte)0x03, (byte)0xA8, (byte)0xB2, - (byte)0xA5, (byte)0xDB, (byte)0xEB, (byte)0xF5, - (byte)0x94, (byte)0xF9, (byte)0x46, (byte)0xBE, - (byte)0x45, (byte)0x4C, (byte)0x65, (byte)0xD2, - (byte)0xD1, (byte)0xCF, (byte)0xFF, (byte)0xFF, - (byte)0xFA, (byte)0x38, (byte)0xF1, (byte)0x72, - (byte)0xAB, (byte)0xB9, (byte)0x14, (byte)0x4E, - (byte)0xF5, (byte)0xF0, (byte)0x7A, (byte)0x8E, - (byte)0x45, (byte)0xFD, (byte)0x5B, (byte)0xF9, - (byte)0xA2, (byte)0x97, (byte)0x1B, (byte)0xAE, - (byte)0x2C, (byte)0x7B, (byte)0x6B, (byte)0x7C, - (byte)0x98, (byte)0xFE, (byte)0x58, (byte)0xDD, - (byte)0xBE, (byte)0xF6, (byte)0x1C, (byte)0x8E, - (byte)0xD0, (byte)0xA1, (byte)0x72 + (byte)0x30, (byte)0x82, (byte)0x02, (byte)0x25, + (byte)0x30, (byte)0x82, (byte)0x01, (byte)0x17, + (byte)0x06, (byte)0x09, (byte)0x2a, (byte)0x86, + (byte)0x48, (byte)0x86, (byte)0xf7, (byte)0x0d, + (byte)0x01, (byte)0x03, (byte)0x01, (byte)0x30, + (byte)0x82, (byte)0x01, (byte)0x08, (byte)0x02, + (byte)0x82, (byte)0x01, (byte)0x01, (byte)0x00, + (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, + (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, + (byte)0xad, (byte)0xf8, (byte)0x54, (byte)0x58, + (byte)0xa2, (byte)0xbb, (byte)0x4a, (byte)0x9a, + (byte)0xaf, (byte)0xdc, (byte)0x56, (byte)0x20, + (byte)0x27, (byte)0x3d, (byte)0x3c, (byte)0xf1, + (byte)0xd8, (byte)0xb9, (byte)0xc5, (byte)0x83, + (byte)0xce, (byte)0x2d, (byte)0x36, (byte)0x95, + (byte)0xa9, (byte)0xe1, (byte)0x36, (byte)0x41, + (byte)0x14, (byte)0x64, (byte)0x33, (byte)0xfb, + (byte)0xcc, (byte)0x93, (byte)0x9d, (byte)0xce, + (byte)0x24, (byte)0x9b, (byte)0x3e, (byte)0xf9, + (byte)0x7d, (byte)0x2f, (byte)0xe3, (byte)0x63, + (byte)0x63, (byte)0x0c, (byte)0x75, (byte)0xd8, + (byte)0xf6, (byte)0x81, (byte)0xb2, (byte)0x02, + (byte)0xae, (byte)0xc4, (byte)0x61, (byte)0x7a, + (byte)0xd3, (byte)0xdf, (byte)0x1e, (byte)0xd5, + (byte)0xd5, (byte)0xfd, (byte)0x65, (byte)0x61, + (byte)0x24, (byte)0x33, (byte)0xf5, (byte)0x1f, + (byte)0x5f, (byte)0x06, (byte)0x6e, (byte)0xd0, + (byte)0x85, (byte)0x63, (byte)0x65, (byte)0x55, + (byte)0x3d, (byte)0xed, (byte)0x1a, (byte)0xf3, + (byte)0xb5, (byte)0x57, (byte)0x13, (byte)0x5e, + (byte)0x7f, (byte)0x57, (byte)0xc9, (byte)0x35, + (byte)0x98, (byte)0x4f, (byte)0x0c, (byte)0x70, + (byte)0xe0, (byte)0xe6, (byte)0x8b, (byte)0x77, + (byte)0xe2, (byte)0xa6, (byte)0x89, (byte)0xda, + (byte)0xf3, (byte)0xef, (byte)0xe8, (byte)0x72, + (byte)0x1d, (byte)0xf1, (byte)0x58, (byte)0xa1, + (byte)0x36, (byte)0xad, (byte)0xe7, (byte)0x35, + (byte)0x30, (byte)0xac, (byte)0xca, (byte)0x4f, + (byte)0x48, (byte)0x3a, (byte)0x79, (byte)0x7a, + (byte)0xbc, (byte)0x0a, (byte)0xb1, (byte)0x82, + (byte)0xb3, (byte)0x24, (byte)0xfb, (byte)0x61, + (byte)0xd1, (byte)0x08, (byte)0xa9, (byte)0x4b, + (byte)0xb2, (byte)0xc8, (byte)0xe3, (byte)0xfb, + (byte)0xb9, (byte)0x6a, (byte)0xda, (byte)0xb7, + (byte)0x60, (byte)0xd7, (byte)0xf4, (byte)0x68, + (byte)0x1d, (byte)0x4f, (byte)0x42, (byte)0xa3, + (byte)0xde, (byte)0x39, (byte)0x4d, (byte)0xf4, + (byte)0xae, (byte)0x56, (byte)0xed, (byte)0xe7, + (byte)0x63, (byte)0x72, (byte)0xbb, (byte)0x19, + (byte)0x0b, (byte)0x07, (byte)0xa7, (byte)0xc8, + (byte)0xee, (byte)0x0a, (byte)0x6d, (byte)0x70, + (byte)0x9e, (byte)0x02, (byte)0xfc, (byte)0xe1, + (byte)0xcd, (byte)0xf7, (byte)0xe2, (byte)0xec, + (byte)0xc0, (byte)0x34, (byte)0x04, (byte)0xcd, + (byte)0x28, (byte)0x34, (byte)0x2f, (byte)0x61, + (byte)0x91, (byte)0x72, (byte)0xfe, (byte)0x9c, + (byte)0xe9, (byte)0x85, (byte)0x83, (byte)0xff, + (byte)0x8e, (byte)0x4f, (byte)0x12, (byte)0x32, + (byte)0xee, (byte)0xf2, (byte)0x81, (byte)0x83, + (byte)0xc3, (byte)0xfe, (byte)0x3b, (byte)0x1b, + (byte)0x4c, (byte)0x6f, (byte)0xad, (byte)0x73, + (byte)0x3b, (byte)0xb5, (byte)0xfc, (byte)0xbc, + (byte)0x2e, (byte)0xc2, (byte)0x20, (byte)0x05, + (byte)0xc5, (byte)0x8e, (byte)0xf1, (byte)0x83, + (byte)0x7d, (byte)0x16, (byte)0x83, (byte)0xb2, + (byte)0xc6, (byte)0xf3, (byte)0x4a, (byte)0x26, + (byte)0xc1, (byte)0xb2, (byte)0xef, (byte)0xfa, + (byte)0x88, (byte)0x6b, (byte)0x42, (byte)0x38, + (byte)0x61, (byte)0x28, (byte)0x5c, (byte)0x97, + (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, + (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, + (byte)0x02, (byte)0x01, (byte)0x02, (byte)0x03, + (byte)0x82, (byte)0x01, (byte)0x06, (byte)0x00, + (byte)0x02, (byte)0x82, (byte)0x01, (byte)0x01, + (byte)0x00, (byte)0x8d, (byte)0xb4, (byte)0x1c, + (byte)0xfc, (byte)0xc0, (byte)0x5f, (byte)0x38, + (byte)0x4c, (byte)0x7f, (byte)0x31, (byte)0xaa, + (byte)0x03, (byte)0x06, (byte)0xf0, (byte)0xec, + (byte)0xfd, (byte)0x45, (byte)0x8d, (byte)0x69, + (byte)0x8a, (byte)0xb6, (byte)0x60, (byte)0x2f, + (byte)0xa2, (byte)0xb4, (byte)0xda, (byte)0xc0, + (byte)0x2e, (byte)0xe1, (byte)0x31, (byte)0x12, + (byte)0x5a, (byte)0x49, (byte)0xef, (byte)0xf7, + (byte)0x17, (byte)0x77, (byte)0x26, (byte)0xa8, + (byte)0x91, (byte)0x0b, (byte)0xbc, (byte)0x84, + (byte)0x5c, (byte)0x20, (byte)0x84, (byte)0xd3, + (byte)0x38, (byte)0xc9, (byte)0xa1, (byte)0x5b, + (byte)0xad, (byte)0x84, (byte)0x83, (byte)0xb9, + (byte)0xe1, (byte)0x59, (byte)0x87, (byte)0xd9, + (byte)0x9b, (byte)0x36, (byte)0x6b, (byte)0x3c, + (byte)0xb6, (byte)0x3c, (byte)0x3a, (byte)0x0c, + (byte)0xf4, (byte)0x0b, (byte)0xad, (byte)0x23, + (byte)0x8d, (byte)0x5f, (byte)0x80, (byte)0x16, + (byte)0xa3, (byte)0x96, (byte)0xbd, (byte)0x28, + (byte)0x2f, (byte)0x9f, (byte)0xd1, (byte)0x7e, + (byte)0x13, (byte)0x86, (byte)0x6a, (byte)0x22, + (byte)0x26, (byte)0xdb, (byte)0x3b, (byte)0x42, + (byte)0xf0, (byte)0x21, (byte)0x7a, (byte)0x6c, + (byte)0xe3, (byte)0xb0, (byte)0x8d, (byte)0x9c, + (byte)0x3b, (byte)0xfb, (byte)0x17, (byte)0x27, + (byte)0xde, (byte)0xe4, (byte)0x82, (byte)0x2e, + (byte)0x6d, (byte)0x08, (byte)0xeb, (byte)0x2b, + (byte)0xb9, (byte)0xb0, (byte)0x94, (byte)0x0e, + (byte)0x56, (byte)0xc1, (byte)0xf2, (byte)0x54, + (byte)0xd8, (byte)0x94, (byte)0x21, (byte)0xc2, + (byte)0x2d, (byte)0x4d, (byte)0x28, (byte)0xf2, + (byte)0xc3, (byte)0x96, (byte)0x5b, (byte)0x24, + (byte)0xb6, (byte)0xee, (byte)0xa4, (byte)0xbf, + (byte)0x20, (byte)0x19, (byte)0x29, (byte)0x1a, + (byte)0x55, (byte)0x46, (byte)0x7a, (byte)0x2a, + (byte)0x14, (byte)0x12, (byte)0x4d, (byte)0xf4, + (byte)0xee, (byte)0xf5, (byte)0x6f, (byte)0x4f, + (byte)0xf7, (byte)0x99, (byte)0x1c, (byte)0xa3, + (byte)0x72, (byte)0x33, (byte)0x7d, (byte)0xfe, + (byte)0xae, (byte)0x0b, (byte)0xda, (byte)0x2c, + (byte)0xc7, (byte)0xf3, (byte)0xba, (byte)0xb7, + (byte)0x83, (byte)0x58, (byte)0x4c, (byte)0x93, + (byte)0x5d, (byte)0x90, (byte)0x65, (byte)0xc9, + (byte)0xb8, (byte)0x6d, (byte)0x2d, (byte)0xda, + (byte)0x10, (byte)0x55, (byte)0xe6, (byte)0x27, + (byte)0xb9, (byte)0x4b, (byte)0x75, (byte)0x30, + (byte)0xfa, (byte)0xe4, (byte)0xa3, (byte)0xff, + (byte)0xae, (byte)0xf9, (byte)0xfb, (byte)0xe4, + (byte)0x62, (byte)0x89, (byte)0x7c, (byte)0x7d, + (byte)0x20, (byte)0x50, (byte)0xf9, (byte)0xd1, + (byte)0xe2, (byte)0x0e, (byte)0x56, (byte)0xf6, + (byte)0x3c, (byte)0x8b, (byte)0x24, (byte)0x8a, + (byte)0x6d, (byte)0x92, (byte)0x3f, (byte)0x85, + (byte)0x7b, (byte)0x3b, (byte)0x49, (byte)0x21, + (byte)0x9d, (byte)0x26, (byte)0x1b, (byte)0x58, + (byte)0x08, (byte)0x9e, (byte)0x5f, (byte)0xea, + (byte)0x23, (byte)0x20, (byte)0xc2, (byte)0x3d, + (byte)0x87, (byte)0xbe, (byte)0x1a, (byte)0x17, + (byte)0x34, (byte)0xd8, (byte)0x10, (byte)0x0f, + (byte)0x81, (byte)0xb6, (byte)0xc7, (byte)0xa5, + (byte)0xe9, (byte)0x8b, (byte)0x21, (byte)0xab, + (byte)0x09, (byte)0x88, (byte)0x5e, (byte)0xbd, + (byte)0xa2, (byte)0x8a, (byte)0xc4, (byte)0xa8, + (byte)0x83 }; private static final byte bobPrivKeyEnc[] = { - (byte)0x30, (byte)0x81, (byte)0xE4, (byte)0x02, - (byte)0x01, (byte)0x00, (byte)0x30, (byte)0x81, - (byte)0x99, (byte)0x06, (byte)0x09, (byte)0x2A, - (byte)0x86, (byte)0x48, (byte)0x86, (byte)0xF7, - (byte)0x0D, (byte)0x01, (byte)0x03, (byte)0x01, - (byte)0x30, (byte)0x81, (byte)0x8B, (byte)0x02, - (byte)0x81, (byte)0x81, (byte)0x00, (byte)0xF4, - (byte)0x88, (byte)0xFD, (byte)0x58, (byte)0x4E, - (byte)0x49, (byte)0xDB, (byte)0xCD, (byte)0x20, - (byte)0xB4, (byte)0x9D, (byte)0xE4, (byte)0x91, - (byte)0x07, (byte)0x36, (byte)0x6B, (byte)0x33, - (byte)0x6C, (byte)0x38, (byte)0x0D, (byte)0x45, - (byte)0x1D, (byte)0x0F, (byte)0x7C, (byte)0x88, - (byte)0xB3, (byte)0x1C, (byte)0x7C, (byte)0x5B, - (byte)0x2D, (byte)0x8E, (byte)0xF6, (byte)0xF3, - (byte)0xC9, (byte)0x23, (byte)0xC0, (byte)0x43, - (byte)0xF0, (byte)0xA5, (byte)0x5B, (byte)0x18, - (byte)0x8D, (byte)0x8E, (byte)0xBB, (byte)0x55, - (byte)0x8C, (byte)0xB8, (byte)0x5D, (byte)0x38, - (byte)0xD3, (byte)0x34, (byte)0xFD, (byte)0x7C, - (byte)0x17, (byte)0x57, (byte)0x43, (byte)0xA3, - (byte)0x1D, (byte)0x18, (byte)0x6C, (byte)0xDE, - (byte)0x33, (byte)0x21, (byte)0x2C, (byte)0xB5, - (byte)0x2A, (byte)0xFF, (byte)0x3C, (byte)0xE1, - (byte)0xB1, (byte)0x29, (byte)0x40, (byte)0x18, - (byte)0x11, (byte)0x8D, (byte)0x7C, (byte)0x84, - (byte)0xA7, (byte)0x0A, (byte)0x72, (byte)0xD6, - (byte)0x86, (byte)0xC4, (byte)0x03, (byte)0x19, - (byte)0xC8, (byte)0x07, (byte)0x29, (byte)0x7A, - (byte)0xCA, (byte)0x95, (byte)0x0C, (byte)0xD9, - (byte)0x96, (byte)0x9F, (byte)0xAB, (byte)0xD0, - (byte)0x0A, (byte)0x50, (byte)0x9B, (byte)0x02, - (byte)0x46, (byte)0xD3, (byte)0x08, (byte)0x3D, - (byte)0x66, (byte)0xA4, (byte)0x5D, (byte)0x41, - (byte)0x9F, (byte)0x9C, (byte)0x7C, (byte)0xBD, - (byte)0x89, (byte)0x4B, (byte)0x22, (byte)0x19, - (byte)0x26, (byte)0xBA, (byte)0xAB, (byte)0xA2, - (byte)0x5E, (byte)0xC3, (byte)0x55, (byte)0xE9, - (byte)0x2F, (byte)0x78, (byte)0xC7, (byte)0x02, - (byte)0x01, (byte)0x02, (byte)0x02, (byte)0x02, - (byte)0x02, (byte)0x00, (byte)0x04, (byte)0x43, - (byte)0x02, (byte)0x41, (byte)0x00, (byte)0xE0, - (byte)0x31, (byte)0xE7, (byte)0x77, (byte)0xB8, - (byte)0xD0, (byte)0x7E, (byte)0x0A, (byte)0x9B, - (byte)0x94, (byte)0xD5, (byte)0x3D, (byte)0x33, - (byte)0x62, (byte)0x32, (byte)0x51, (byte)0xCE, - (byte)0x74, (byte)0x5C, (byte)0xA5, (byte)0x72, - (byte)0xD9, (byte)0x36, (byte)0xF3, (byte)0x8A, - (byte)0x3F, (byte)0x8B, (byte)0xC6, (byte)0xFE, - (byte)0xEF, (byte)0x94, (byte)0x8B, (byte)0x50, - (byte)0x41, (byte)0x9B, (byte)0x14, (byte)0xC8, - (byte)0xE9, (byte)0x1F, (byte)0x24, (byte)0x1F, - (byte)0x65, (byte)0x8E, (byte)0xD3, (byte)0x85, - (byte)0xD0, (byte)0x68, (byte)0x6C, (byte)0xF1, - (byte)0x79, (byte)0x45, (byte)0xD0, (byte)0x06, - (byte)0xA4, (byte)0xB8, (byte)0xE0, (byte)0x64, - (byte)0xF5, (byte)0x38, (byte)0x72, (byte)0x97, - (byte)0x00, (byte)0x23, (byte)0x5F + (byte)0x30, (byte)0x82, (byte)0x01, (byte)0x3f, + (byte)0x02, (byte)0x01, (byte)0x00, (byte)0x30, + (byte)0x82, (byte)0x01, (byte)0x17, (byte)0x06, + (byte)0x09, (byte)0x2a, (byte)0x86, (byte)0x48, + (byte)0x86, (byte)0xf7, (byte)0x0d, (byte)0x01, + (byte)0x03, (byte)0x01, (byte)0x30, (byte)0x82, + (byte)0x01, (byte)0x08, (byte)0x02, (byte)0x82, + (byte)0x01, (byte)0x01, (byte)0x00, (byte)0xff, + (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, + (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xad, + (byte)0xf8, (byte)0x54, (byte)0x58, (byte)0xa2, + (byte)0xbb, (byte)0x4a, (byte)0x9a, (byte)0xaf, + (byte)0xdc, (byte)0x56, (byte)0x20, (byte)0x27, + (byte)0x3d, (byte)0x3c, (byte)0xf1, (byte)0xd8, + (byte)0xb9, (byte)0xc5, (byte)0x83, (byte)0xce, + (byte)0x2d, (byte)0x36, (byte)0x95, (byte)0xa9, + (byte)0xe1, (byte)0x36, (byte)0x41, (byte)0x14, + (byte)0x64, (byte)0x33, (byte)0xfb, (byte)0xcc, + (byte)0x93, (byte)0x9d, (byte)0xce, (byte)0x24, + (byte)0x9b, (byte)0x3e, (byte)0xf9, (byte)0x7d, + (byte)0x2f, (byte)0xe3, (byte)0x63, (byte)0x63, + (byte)0x0c, (byte)0x75, (byte)0xd8, (byte)0xf6, + (byte)0x81, (byte)0xb2, (byte)0x02, (byte)0xae, + (byte)0xc4, (byte)0x61, (byte)0x7a, (byte)0xd3, + (byte)0xdf, (byte)0x1e, (byte)0xd5, (byte)0xd5, + (byte)0xfd, (byte)0x65, (byte)0x61, (byte)0x24, + (byte)0x33, (byte)0xf5, (byte)0x1f, (byte)0x5f, + (byte)0x06, (byte)0x6e, (byte)0xd0, (byte)0x85, + (byte)0x63, (byte)0x65, (byte)0x55, (byte)0x3d, + (byte)0xed, (byte)0x1a, (byte)0xf3, (byte)0xb5, + (byte)0x57, (byte)0x13, (byte)0x5e, (byte)0x7f, + (byte)0x57, (byte)0xc9, (byte)0x35, (byte)0x98, + (byte)0x4f, (byte)0x0c, (byte)0x70, (byte)0xe0, + (byte)0xe6, (byte)0x8b, (byte)0x77, (byte)0xe2, + (byte)0xa6, (byte)0x89, (byte)0xda, (byte)0xf3, + (byte)0xef, (byte)0xe8, (byte)0x72, (byte)0x1d, + (byte)0xf1, (byte)0x58, (byte)0xa1, (byte)0x36, + (byte)0xad, (byte)0xe7, (byte)0x35, (byte)0x30, + (byte)0xac, (byte)0xca, (byte)0x4f, (byte)0x48, + (byte)0x3a, (byte)0x79, (byte)0x7a, (byte)0xbc, + (byte)0x0a, (byte)0xb1, (byte)0x82, (byte)0xb3, + (byte)0x24, (byte)0xfb, (byte)0x61, (byte)0xd1, + (byte)0x08, (byte)0xa9, (byte)0x4b, (byte)0xb2, + (byte)0xc8, (byte)0xe3, (byte)0xfb, (byte)0xb9, + (byte)0x6a, (byte)0xda, (byte)0xb7, (byte)0x60, + (byte)0xd7, (byte)0xf4, (byte)0x68, (byte)0x1d, + (byte)0x4f, (byte)0x42, (byte)0xa3, (byte)0xde, + (byte)0x39, (byte)0x4d, (byte)0xf4, (byte)0xae, + (byte)0x56, (byte)0xed, (byte)0xe7, (byte)0x63, + (byte)0x72, (byte)0xbb, (byte)0x19, (byte)0x0b, + (byte)0x07, (byte)0xa7, (byte)0xc8, (byte)0xee, + (byte)0x0a, (byte)0x6d, (byte)0x70, (byte)0x9e, + (byte)0x02, (byte)0xfc, (byte)0xe1, (byte)0xcd, + (byte)0xf7, (byte)0xe2, (byte)0xec, (byte)0xc0, + (byte)0x34, (byte)0x04, (byte)0xcd, (byte)0x28, + (byte)0x34, (byte)0x2f, (byte)0x61, (byte)0x91, + (byte)0x72, (byte)0xfe, (byte)0x9c, (byte)0xe9, + (byte)0x85, (byte)0x83, (byte)0xff, (byte)0x8e, + (byte)0x4f, (byte)0x12, (byte)0x32, (byte)0xee, + (byte)0xf2, (byte)0x81, (byte)0x83, (byte)0xc3, + (byte)0xfe, (byte)0x3b, (byte)0x1b, (byte)0x4c, + (byte)0x6f, (byte)0xad, (byte)0x73, (byte)0x3b, + (byte)0xb5, (byte)0xfc, (byte)0xbc, (byte)0x2e, + (byte)0xc2, (byte)0x20, (byte)0x05, (byte)0xc5, + (byte)0x8e, (byte)0xf1, (byte)0x83, (byte)0x7d, + (byte)0x16, (byte)0x83, (byte)0xb2, (byte)0xc6, + (byte)0xf3, (byte)0x4a, (byte)0x26, (byte)0xc1, + (byte)0xb2, (byte)0xef, (byte)0xfa, (byte)0x88, + (byte)0x6b, (byte)0x42, (byte)0x38, (byte)0x61, + (byte)0x28, (byte)0x5c, (byte)0x97, (byte)0xff, + (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, + (byte)0xff, (byte)0xff, (byte)0xff, (byte)0x02, + (byte)0x01, (byte)0x02, (byte)0x04, (byte)0x1f, + (byte)0x02, (byte)0x1d, (byte)0x01, (byte)0x62, + (byte)0x8e, (byte)0xfc, (byte)0xf3, (byte)0x25, + (byte)0xf3, (byte)0x2a, (byte)0xf4, (byte)0x49, + (byte)0x20, (byte)0x83, (byte)0x61, (byte)0x7f, + (byte)0x97, (byte)0x8f, (byte)0x48, (byte)0xac, + (byte)0xf9, (byte)0xc3, (byte)0xad, (byte)0x3c, + (byte)0x56, (byte)0x95, (byte)0x1c, (byte)0x85, + (byte)0xd3, (byte)0x85, (byte)0xd6 }; } diff --git a/test/jdk/java/security/KeyRep/Serial.java b/test/jdk/java/security/KeyRep/Serial.java index e61de5c2be6..88c91a091e7 100644 --- a/test/jdk/java/security/KeyRep/Serial.java +++ b/test/jdk/java/security/KeyRep/Serial.java @@ -24,6 +24,7 @@ /* * @test * @bug 4532506 4999599 + * @library /test/lib * @summary Serializing KeyPair on one VM (Sun), * and Deserializing on another (IBM) fails * @run main/othervm/java.security.policy=Serial.policy Serial @@ -34,6 +35,8 @@ import java.security.*; import javax.crypto.*; import javax.crypto.spec.*; +import jdk.test.lib.security.DiffieHellmanGroup; +import jdk.test.lib.security.SecurityUtils; public class Serial { @@ -45,8 +48,9 @@ public class Serial { public static void main(String[] args) throws Exception { // generate DSA key pair - KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA", SUN); - kpg.initialize(512); + String kpgAlgorithmDsa = "DSA"; + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithmDsa, SUN); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithmDsa)); KeyPair dsaKp = kpg.genKeyPair(); // serialize DSA key pair @@ -67,8 +71,9 @@ public static void main(String[] args) throws Exception { } // generate RSA key pair - kpg = KeyPairGenerator.getInstance("RSA", RSA); - kpg.initialize(512); + String kpgAlgorithmRsa = "RSA"; + kpg = KeyPairGenerator.getInstance(kpgAlgorithmRsa, RSA); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithmRsa)); KeyPair rsaKp = kpg.genKeyPair(); // serialize RSA key pair @@ -89,8 +94,9 @@ public static void main(String[] args) throws Exception { } // generate DH key pair + DiffieHellmanGroup dhGroup = SecurityUtils.getTestDHGroup(); kpg = KeyPairGenerator.getInstance("DiffieHellman", JCE); - kpg.initialize(new DHParameterSpec(skip1024Modulus, skip1024Base)); + kpg.initialize(new DHParameterSpec(dhGroup.getPrime(), dhGroup.getBase())); KeyPair dhKp = kpg.genKeyPair(); // serialize DH key pair @@ -197,47 +203,4 @@ private static void checkKey(String algorithm, int size) throws Exception { throw new SecurityException(algorithm + " test failed"); } } - - // The 1024 bit Diffie-Hellman modulus values used by SKIP - private static final byte skip1024ModulusBytes[] = { - (byte)0xF4, (byte)0x88, (byte)0xFD, (byte)0x58, - (byte)0x4E, (byte)0x49, (byte)0xDB, (byte)0xCD, - (byte)0x20, (byte)0xB4, (byte)0x9D, (byte)0xE4, - (byte)0x91, (byte)0x07, (byte)0x36, (byte)0x6B, - (byte)0x33, (byte)0x6C, (byte)0x38, (byte)0x0D, - (byte)0x45, (byte)0x1D, (byte)0x0F, (byte)0x7C, - (byte)0x88, (byte)0xB3, (byte)0x1C, (byte)0x7C, - (byte)0x5B, (byte)0x2D, (byte)0x8E, (byte)0xF6, - (byte)0xF3, (byte)0xC9, (byte)0x23, (byte)0xC0, - (byte)0x43, (byte)0xF0, (byte)0xA5, (byte)0x5B, - (byte)0x18, (byte)0x8D, (byte)0x8E, (byte)0xBB, - (byte)0x55, (byte)0x8C, (byte)0xB8, (byte)0x5D, - (byte)0x38, (byte)0xD3, (byte)0x34, (byte)0xFD, - (byte)0x7C, (byte)0x17, (byte)0x57, (byte)0x43, - (byte)0xA3, (byte)0x1D, (byte)0x18, (byte)0x6C, - (byte)0xDE, (byte)0x33, (byte)0x21, (byte)0x2C, - (byte)0xB5, (byte)0x2A, (byte)0xFF, (byte)0x3C, - (byte)0xE1, (byte)0xB1, (byte)0x29, (byte)0x40, - (byte)0x18, (byte)0x11, (byte)0x8D, (byte)0x7C, - (byte)0x84, (byte)0xA7, (byte)0x0A, (byte)0x72, - (byte)0xD6, (byte)0x86, (byte)0xC4, (byte)0x03, - (byte)0x19, (byte)0xC8, (byte)0x07, (byte)0x29, - (byte)0x7A, (byte)0xCA, (byte)0x95, (byte)0x0C, - (byte)0xD9, (byte)0x96, (byte)0x9F, (byte)0xAB, - (byte)0xD0, (byte)0x0A, (byte)0x50, (byte)0x9B, - (byte)0x02, (byte)0x46, (byte)0xD3, (byte)0x08, - (byte)0x3D, (byte)0x66, (byte)0xA4, (byte)0x5D, - (byte)0x41, (byte)0x9F, (byte)0x9C, (byte)0x7C, - (byte)0xBD, (byte)0x89, (byte)0x4B, (byte)0x22, - (byte)0x19, (byte)0x26, (byte)0xBA, (byte)0xAB, - (byte)0xA2, (byte)0x5E, (byte)0xC3, (byte)0x55, - (byte)0xE9, (byte)0x2F, (byte)0x78, (byte)0xC7 - }; - - // The SKIP 1024 bit modulus - private static final BigInteger skip1024Modulus - = new BigInteger(1, skip1024ModulusBytes); - - // The base used with the SKIP 1024 bit modulus - private static final BigInteger skip1024Base = BigInteger.valueOf(2); } diff --git a/test/jdk/sun/security/pkcs11/KeyAgreement/TestInterop.java b/test/jdk/sun/security/pkcs11/KeyAgreement/TestInterop.java index 9172b2a4941..7f6f79e767b 100644 --- a/test/jdk/sun/security/pkcs11/KeyAgreement/TestInterop.java +++ b/test/jdk/sun/security/pkcs11/KeyAgreement/TestInterop.java @@ -39,43 +39,40 @@ import javax.crypto.KeyAgreement; import javax.crypto.spec.DHPrivateKeySpec; import javax.crypto.spec.DHPublicKeySpec; +import jdk.test.lib.security.DiffieHellmanGroup; +import jdk.test.lib.security.SecurityUtils; public class TestInterop extends PKCS11Test { - private final static BigInteger p = new BigInteger - ("171718397966129586011229151993178480901904202533705695869569760169920539" - + "80807543778874708672297590042574075430109846864794139516459381007417046" - + "27996080624930219892858374168155487210358743785481212360509485282294161" - + "39585571568998066586304075565145536350296006867635076744949977849997684" - + "222020336013226588207303"); - - private final static BigInteger g = new BigInteger("2"); - private final static BigInteger ya = new BigInteger - ("687709211571508809414670982463565909269384277848448625781941269577397703" - + "73675199968849153119146758339814638228795348558483510369322822476757204" - + "22158455966026517829008713407587339322132253724742557954802911059639161" - + "24827916158465757962384625410294483756242900146397201260757102085985457" - + "09397033481077351036224"); + ("22272412859242949963897309866268099957623364986192222381531147912319" + + "23153170556019072276127184001075566033823724518300406542189341984" + + "14728033901164887842157675409022004721268960808255834930605035809" + + "96449867261598768663006346373969582073599358922631400907241847771" + + "58539394502794451638884093173505103869438428833148912071609829581" + + "89477284513896649100113024962862016311693389603523142235630316916" + + "51727812401021776761600004971782662420311224757086651213529674905" + + "34921437167341469749945865459714558842881915928697452568830704027" + + "08840053484115995358953663434943150292283157101600109003253293611" + + "67575903571371898272633920086"); private final static BigInteger xa = new BigInteger - ("104917367119952955556289227181599819745346393858545449202252025137706135" - + "98100778613457655440586438263591136003106529323555991109623536177695714" - + "66884181531401472902830508361532232717792847436112280721439936797741371" - + "245140912614191507"); + ("20959988947516815975588968321965141642005944293655257916834342975849"); private final static BigInteger yb = new BigInteger - ("163887874871842952463100699681506173424091615364591742415764095471629919" - + "08421025296419917755446931473037086355546823601999684501737493240373415" - + "65608293667837249198973539289354492348897732633852665609611113031379864" - + "58514616034107537409230452318065341748503347627733368519091332060477528" - + "173423377887175351037810"); + ("1788841814501653834923092375117807364896992833810838802030127811094" + + "8450381275318704655838368105000403140578033341448162321874634765" + + "6870663019881556386613144025875613921737258766185138415793010195" + + "3802511267742963370821568963965936108932734114202964873644126233" + + "6937947954023458790417933403303562491144788202839815534782475160" + + "7813094179390506418017926774832227342290968359943612529948409558" + + "4647213355501260440663649115694263879691520265343063263385211121" + + "3396751542827391711077192604441343359832896902306354119121777576" + + "6479255602858536672821464920683781338851326155035757018336622673" + + "39973666608754923308482789421630138499"); private final static BigInteger xb = new BigInteger - ("127757517533485947079959908591028646859165238853082197617179368337276371" - + "51601819447716934542027725311863797141734616730248519214531856941516613" - + "30313414180008978013330410484011186019824874948204261839391153650949864" - + "429505597086564709"); + ("37339373137107550077381337769340105015086522284791968753218309293526"); @Override public void main(Provider prov) throws Exception { @@ -92,13 +89,18 @@ public void main(Provider prov) throws Exception { KeyAgreement ka = KeyAgreement.getInstance("DH", prov); KeyAgreement kbSunJCE = KeyAgreement.getInstance("DH", System.getProperty("test.provider.name", "SunJCE")); - DHPrivateKeySpec privSpecA = new DHPrivateKeySpec(xa, p, g); - DHPublicKeySpec pubSpecA = new DHPublicKeySpec(ya, p, g); + DiffieHellmanGroup dhGroup = SecurityUtils.getTestDHGroup(); + DHPrivateKeySpec privSpecA = new DHPrivateKeySpec(xa, dhGroup.getPrime(), + dhGroup.getBase()); + DHPublicKeySpec pubSpecA = new DHPublicKeySpec(ya, dhGroup.getPrime(), + dhGroup.getBase()); PrivateKey privA = kf.generatePrivate(privSpecA); PublicKey pubA = kf.generatePublic(pubSpecA); - DHPrivateKeySpec privSpecB = new DHPrivateKeySpec(xb, p, g); - DHPublicKeySpec pubSpecB = new DHPublicKeySpec(yb, p, g); + DHPrivateKeySpec privSpecB = new DHPrivateKeySpec(xb, dhGroup.getPrime(), + dhGroup.getBase()); + DHPublicKeySpec pubSpecB = new DHPublicKeySpec(yb, dhGroup.getPrime(), + dhGroup.getBase()); PrivateKey privB = kf.generatePrivate(privSpecB); PublicKey pubB = kf.generatePublic(pubSpecB); @@ -110,6 +112,10 @@ public void main(Provider prov) throws Exception { kbSunJCE.doPhase(pubA, true); byte[] n2 = kbSunJCE.generateSecret(); + // verify that a leading zero is present in secrets + if (n1[0] != 0 || n2[0] != 0) { + throw new Exception("First byte is not zero as expected"); + } if (Arrays.equals(n1, n2) == false) { throw new Exception("values mismatch!"); } else { diff --git a/test/jdk/sun/security/ssl/X509TrustManagerImpl/PKIXExtendedTM.java b/test/jdk/sun/security/ssl/X509TrustManagerImpl/PKIXExtendedTM.java index 1cf22f04293..e2e5e066f9c 100644 --- a/test/jdk/sun/security/ssl/X509TrustManagerImpl/PKIXExtendedTM.java +++ b/test/jdk/sun/security/ssl/X509TrustManagerImpl/PKIXExtendedTM.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -56,354 +56,495 @@ * * TLS server certificate: * server private key: - * -----BEGIN RSA PRIVATE KEY----- - * Proc-Type: 4,ENCRYPTED - * DEK-Info: DES-EDE3-CBC,D9AE407F6D0E389A * - * WPrA7TFol/cQCcp9oHnXWNpYlvRbbIcQj0m+RKT2Iuzfus+DHt3Zadf8nJpKfX2e - * h2rnhlzCN9M7djRDooZKDOPCsdBn51Au7HlZF3S3Opgo7D8XFM1a8t1Je4ke14oI - * nw6QKYsBblRziPnP2PZ0zvX24nOv7bbY8beynlJHGs00VWSFdoH2DS0aE1p6D+3n - * ptJuJ75dVfZFK4X7162APlNXevX8D6PEQpSiRw1rjjGGcnvQ4HdWk3BxDVDcCNJb - * Y1aGNRxsjTDvPi3R9Qx2M+W03QzEPx4SR3ZHVskeSJHaetM0TM/w/45Paq4GokXP - * ZeTnbEx1xmjkA7h+t4doLL4watx5F6yLsJzu8xB3lt/1EtmkYtLz1t7X4BetPAXz - * zS69X/VwhKfsOI3qXBWuL2oHPyhDmT1gcaUQwEPSV6ogHEEQEDXdiUS8heNK13KF - * TCQYFkETvV2BLxUhV1hypPzRQ6tUpJiAbD5KmoK2lD9slshG2QtvKQq0/bgkDY5J - * LhDHV2dtcZ3kDPkkZXpbcJQvoeH3d09C5sIsuTFo2zgNR6oETHUc5TzP6FY2YYRa - * QcK5HcmtsRRiXFm01ac+aMejJUIujjFt84SiKWT/73vC8AmY4tYcJBLjCg4XIxSH - * fdDFLL1YZENNO5ivlp8mdiHqcawx+36L7DrEZQ8RZt6cqST5t/+XTdM74s6k81GT - * pNsa82P2K2zmIUZ/DL2mKjW1vfRByw1NQFEBkN3vdyZxYfM/JyUzX4hbjXBEkh9Q - * QYrcwLKLjis2QzSvK04B3bvRzRb+4ocWiso8ZPAXAIxZFBWDpTMM2A== - * -----END RSA PRIVATE KEY----- - * - * -----BEGIN RSA PRIVATE KEY----- - * MIICXAIBAAKBgQClrFscN6LdmYktsnm4j9VIpecchBeNaZzGrG358h0fORna03Ie - * buxEzHCk3LoAMPagTz1UemFqzFfQCn+VKBg/mtmU8hvIJIh+/p0PPftXUwizIDPU - * PxdHFNHN6gjYDnVOr77M0uyvqXpJ38LZrLgkQJCmA1Yq0DAFQCxPq9l0iQIDAQAB - * AoGAbqcbg1E1mkR99uOJoNeQYKFOJyGiiXTMnXV1TseC4+PDfQBU7Dax35GcesBi - * CtapIpFKKS5D+ozY6b7ZT8ojxuQ/uHLPAvz0WDR3ds4iRF8tyu71Q1ZHcQsJa17y - * yO7UbkSSKn/Mp9Rb+/dKqftUGNXVFLqgHBOzN2s3We3bbbECQQDYBPKOg3hkaGHo - * OhpHKqtQ6EVkldihG/3i4WejRonelXN+HRh1KrB2HBx0M8D/qAzP1i3rNSlSHer4 - * 59YRTJnHAkEAxFX/sVYSn07BHv9Zhn6XXct/Cj43z/tKNbzlNbcxqQwQerw3IH51 - * 8UH2YOA+GD3lXbKp+MytoFLWv8zg4YT/LwJAfqan75Z1R6lLffRS49bIiq8jwE16 - * rTrUJ+kv8jKxMqc9B3vXkxpsS1M/+4E8bqgAmvpgAb8xcsvHsBd9ErdukQJBAKs2 - * j67W75BrPjBI34pQ1LEfp56IGWXOrq1kF8IbCjxv3+MYRT6Z6UJFkpRymNPNDjsC - * dgUYgITiGJHUGXuw3lMCQHEHqo9ZtXz92yFT+VhsNc29B8m/sqUJdtCcMd/jGpAF - * u6GHufjqIZBpQsk63wbwESAPZZ+kk1O1kS5GIRLX608= - * -----END RSA PRIVATE KEY----- - * - * Private-Key: (1024 bit) + * Private-Key: (2048 bit, 2 primes) * modulus: - * 00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f: - * d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2: - * 1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc: - * ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a: - * 7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe: - * 9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14: - * d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9: - * 7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0: - * 30:05:40:2c:4f:ab:d9:74:89 + * 00:9a:0c:e0:8f:a8:02:7e:5a:ef:ed:b2:42:ad:08: + * 4e:91:ba:c2:ad:9b:79:d7:9b:0f:fd:d2:f8:15:2f: + * 19:89:80:10:00:02:19:6d:27:c2:90:d7:a5:23:53: + * 74:6e:64:28:7c:24:aa:ed:ea:21:59:dc:a3:5c:b5: + * c9:42:31:4f:a2:de:fb:09:7c:73:ed:88:04:34:f1: + * 15:ad:3d:60:cd:ca:c5:13:99:d3:9f:9b:b2:92:70: + * cb:ba:4b:3d:20:96:ad:be:92:53:ed:54:3b:c5:14: + * bd:cf:d4:0f:cb:05:4f:fd:2b:9e:e0:50:bb:65:13: + * 92:c0:d6:bd:4d:02:0c:70:b6:65:d4:7d:b4:4d:c3: + * df:2c:08:9e:d2:3e:69:32:46:6f:6f:ca:d1:73:a4: + * 94:07:ef:14:e3:da:9e:2f:c0:ac:0e:10:33:4c:68: + * 79:f3:79:40:d6:e9:3c:c2:e6:70:e0:89:ce:a0:7a: + * a8:84:28:85:32:37:08:b0:cf:b1:7f:5f:bc:1f:a5: + * 3d:ef:d6:68:a8:17:21:5f:87:d5:4b:b5:cc:ee:78: + * 8d:dd:b1:28:6a:c0:fb:64:bd:b7:70:02:33:03:0b: + * b8:b8:bb:08:82:f6:8e:05:27:d1:3b:e6:c5:ac:4d: + * 85:5b:a1:1d:a3:48:5d:03:15:76:63:6c:71:21:3e: + * 98:cd * publicExponent: 65537 (0x10001) * privateExponent: - * 6e:a7:1b:83:51:35:9a:44:7d:f6:e3:89:a0:d7:90: - * 60:a1:4e:27:21:a2:89:74:cc:9d:75:75:4e:c7:82: - * e3:e3:c3:7d:00:54:ec:36:b1:df:91:9c:7a:c0:62: - * 0a:d6:a9:22:91:4a:29:2e:43:fa:8c:d8:e9:be:d9: - * 4f:ca:23:c6:e4:3f:b8:72:cf:02:fc:f4:58:34:77: - * 76:ce:22:44:5f:2d:ca:ee:f5:43:56:47:71:0b:09: - * 6b:5e:f2:c8:ee:d4:6e:44:92:2a:7f:cc:a7:d4:5b: - * fb:f7:4a:a9:fb:54:18:d5:d5:14:ba:a0:1c:13:b3: - * 37:6b:37:59:ed:db:6d:b1 + * 68:87:36:54:a3:c6:d5:5f:f5:0f:4f:76:c8:9c:2b: + * 5b:dc:e2:be:14:12:2f:c7:0a:a9:cb:5e:04:59:ca: + * 35:2f:8d:2b:c4:40:e6:7d:25:1b:4d:07:c3:99:9c: + * 16:4f:a5:dc:de:b0:90:f0:de:22:70:80:f4:a6:70: + * e2:96:3d:18:21:bf:2b:27:a4:2d:d7:ae:2b:12:2f: + * 08:36:ee:99:94:ed:f6:a7:d9:1d:a2:f3:1f:44:a4: + * 28:4b:67:35:d6:a8:1b:f8:84:34:34:84:bd:ec:9e: + * 03:08:3c:93:20:8e:af:15:cb:1f:20:08:97:c4:19: + * 3e:fa:36:c6:ab:0e:2f:e7:b3:c0:a7:bc:e4:e0:a6: + * 08:1c:69:20:4d:78:bd:7a:e5:25:48:60:9e:2e:50: + * 8d:36:1e:07:e9:d5:0d:39:67:41:42:24:db:87:e5: + * 77:76:fd:5e:d5:c6:e5:d3:b0:98:71:48:69:47:4f: + * 46:05:0c:9e:58:45:2e:e2:27:d0:f6:11:05:78:ad: + * 83:5a:5b:ec:d7:2e:26:5a:a5:4f:9e:52:84:2c:1f: + * 59:1a:78:56:0a:44:54:c6:37:64:01:ca:e4:a8:01: + * c7:86:c1:b4:d6:6c:7a:15:9a:65:69:46:9e:fd:f6: + * 08:17:0c:6c:ac:38:bd:c2:cd:da:ef:54:7a:48:92: + * 4d * prime1: - * 00:d8:04:f2:8e:83:78:64:68:61:e8:3a:1a:47:2a: - * ab:50:e8:45:64:95:d8:a1:1b:fd:e2:e1:67:a3:46: - * 89:de:95:73:7e:1d:18:75:2a:b0:76:1c:1c:74:33: - * c0:ff:a8:0c:cf:d6:2d:eb:35:29:52:1d:ea:f8:e7: - * d6:11:4c:99:c7 + * 00:e4:43:cc:51:25:aa:1d:90:41:95:2c:e8:9f:aa: + * 1c:9b:ea:bd:fd:29:e5:68:6b:28:00:ec:31:31:36: + * d0:3d:84:db:c5:5d:32:f6:38:b9:04:4f:45:cb:19: + * f5:88:cd:a8:fc:70:b8:6d:98:68:a6:b4:9e:c1:da: + * fd:db:eb:1a:53:3c:3b:e6:85:d2:6f:03:45:7a:ad: + * 49:8c:c3:96:a7:46:a4:bb:3b:48:d3:d7:1c:b4:3c: + * f7:04:0a:a3:85:9d:94:3e:bd:35:f5:34:21:3d:08: + * 89:df:c5:54:af:cf:90:f7:d8:5c:57:c5:77:5a:c8: + * d1:b3:8f:ee:01:5c:07:13:3f * prime2: - * 00:c4:55:ff:b1:56:12:9f:4e:c1:1e:ff:59:86:7e: - * 97:5d:cb:7f:0a:3e:37:cf:fb:4a:35:bc:e5:35:b7: - * 31:a9:0c:10:7a:bc:37:20:7e:75:f1:41:f6:60:e0: - * 3e:18:3d:e5:5d:b2:a9:f8:cc:ad:a0:52:d6:bf:cc: - * e0:e1:84:ff:2f + * 00:ac:c4:a0:cc:7c:51:db:65:0a:02:da:bc:d8:77: + * 21:8c:d3:30:ae:ec:50:60:4b:b9:39:c7:2d:bd:98: + * aa:4f:9b:44:74:ab:f8:86:de:e2:44:15:73:7a:cd: + * d5:46:f2:03:62:c5:87:9c:6d:91:d5:7a:9a:17:c2: + * c6:2f:29:0e:8a:a4:a9:f4:c2:63:a2:77:97:bf:c6: + * 90:e8:39:70:87:cc:fd:62:4f:d2:3d:e7:47:70:fb: + * f3:bd:bd:5c:9c:77:fe:23:33:7d:83:ef:cb:0e:4e: + * f1:dd:05:47:40:97:f4:da:b6:1f:b9:8d:e2:92:04: + * 09:be:fb:6a:97:29:27:ac:f3 * exponent1: - * 7e:a6:a7:ef:96:75:47:a9:4b:7d:f4:52:e3:d6:c8: - * 8a:af:23:c0:4d:7a:ad:3a:d4:27:e9:2f:f2:32:b1: - * 32:a7:3d:07:7b:d7:93:1a:6c:4b:53:3f:fb:81:3c: - * 6e:a8:00:9a:fa:60:01:bf:31:72:cb:c7:b0:17:7d: - * 12:b7:6e:91 + * 3f:08:1d:b6:56:b1:38:02:aa:a9:77:c2:30:bc:b7: + * b3:b2:49:8e:4b:f0:66:3a:18:cc:d0:6b:f1:0c:12: + * ca:ba:12:39:d8:b7:86:d8:38:f6:e0:b1:04:19:81: + * fc:a9:d5:bd:07:9f:55:dc:1d:21:d3:84:77:41:72: + * 92:34:c4:8b:31:79:d4:f9:25:17:b4:8e:8e:06:a5: + * e5:b1:e8:ba:fe:3d:e4:d9:c5:0d:82:3c:11:e5:37: + * cc:ac:e7:64:b1:13:cb:93:52:00:08:ca:18:e1:6f: + * b9:13:f3:83:ac:cc:7a:34:0b:a3:cd:0a:5d:4e:50: + * e1:c5:9f:d2:4e:48:41:df * exponent2: - * 00:ab:36:8f:ae:d6:ef:90:6b:3e:30:48:df:8a:50: - * d4:b1:1f:a7:9e:88:19:65:ce:ae:ad:64:17:c2:1b: - * 0a:3c:6f:df:e3:18:45:3e:99:e9:42:45:92:94:72: - * 98:d3:cd:0e:3b:02:76:05:18:80:84:e2:18:91:d4: - * 19:7b:b0:de:53 + * 02:c7:fb:8a:af:29:a6:2d:7f:36:c2:8c:ad:b3:65: + * 3f:de:1a:77:86:68:58:d4:7f:3b:d5:df:ff:a0:58: + * 85:85:8b:59:91:77:23:bc:ac:c9:c9:ca:9d:1c:79: + * 25:76:39:e5:ba:26:4f:b7:57:d4:a6:ef:9a:18:51: + * 96:6a:c3:c8:29:94:6e:d3:3e:45:5c:45:7e:19:d5: + * 35:57:cf:5e:f0:46:d7:f1:4f:02:1e:1a:01:50:9d: + * 00:dd:ee:82:ba:4f:c6:03:4b:2e:f7:8a:3e:45:b9: + * 11:04:c7:bb:db:76:5e:9a:f5:f1:c7:bd:f0:f9:cd: + * aa:5c:63:bf:e1:32:b9:4f * coefficient: - * 71:07:aa:8f:59:b5:7c:fd:db:21:53:f9:58:6c:35: - * cd:bd:07:c9:bf:b2:a5:09:76:d0:9c:31:df:e3:1a: - * 90:05:bb:a1:87:b9:f8:ea:21:90:69:42:c9:3a:df: - * 06:f0:11:20:0f:65:9f:a4:93:53:b5:91:2e:46:21: - * 12:d7:eb:4f - * + * 50:4c:e6:1e:23:f3:e2:2b:d6:3f:87:53:fb:19:53: + * 4b:84:21:0b:77:31:ed:8d:c3:0c:ea:31:b0:a6:38: + * a9:e6:44:6e:18:05:53:8f:4a:5f:75:e5:3e:b5:26: + * 9b:46:3d:73:e7:c1:2a:a6:3e:c3:cd:41:b1:a6:55: + * 57:84:11:13:ec:44:92:59:7f:dd:0d:67:30:d3:b7: + * 13:ee:9e:2d:ea:be:b3:ca:4a:f0:6e:4f:22:e8:be: + * 8b:8d:9b:2c:30:a5:ed:2c:2b:13:4c:f7:61:19:64: + * 35:9d:b0:c8:10:85:01:e7:2a:70:13:00:39:c5:73: + * 63:34:fd:28:2d:7f:8d:20 + * -----BEGIN PRIVATE KEY----- + * MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCaDOCPqAJ+Wu/t + * skKtCE6RusKtm3nXmw/90vgVLxmJgBAAAhltJ8KQ16UjU3RuZCh8JKrt6iFZ3KNc + * tclCMU+i3vsJfHPtiAQ08RWtPWDNysUTmdOfm7KScMu6Sz0glq2+klPtVDvFFL3P + * 1A/LBU/9K57gULtlE5LA1r1NAgxwtmXUfbRNw98sCJ7SPmkyRm9vytFzpJQH7xTj + * 2p4vwKwOEDNMaHnzeUDW6TzC5nDgic6geqiEKIUyNwiwz7F/X7wfpT3v1mioFyFf + * h9VLtczueI3dsShqwPtkvbdwAjMDC7i4uwiC9o4FJ9E75sWsTYVboR2jSF0DFXZj + * bHEhPpjNAgMBAAECggEAaIc2VKPG1V/1D092yJwrW9zivhQSL8cKqcteBFnKNS+N + * K8RA5n0lG00Hw5mcFk+l3N6wkPDeInCA9KZw4pY9GCG/KyekLdeuKxIvCDbumZTt + * 9qfZHaLzH0SkKEtnNdaoG/iENDSEveyeAwg8kyCOrxXLHyAIl8QZPvo2xqsOL+ez + * wKe85OCmCBxpIE14vXrlJUhgni5QjTYeB+nVDTlnQUIk24fld3b9XtXG5dOwmHFI + * aUdPRgUMnlhFLuIn0PYRBXitg1pb7NcuJlqlT55ShCwfWRp4VgpEVMY3ZAHK5KgB + * x4bBtNZsehWaZWlGnv32CBcMbKw4vcLN2u9UekiSTQKBgQDkQ8xRJaodkEGVLOif + * qhyb6r39KeVoaygA7DExNtA9hNvFXTL2OLkET0XLGfWIzaj8cLhtmGimtJ7B2v3b + * 6xpTPDvmhdJvA0V6rUmMw5anRqS7O0jT1xy0PPcECqOFnZQ+vTX1NCE9CInfxVSv + * z5D32FxXxXdayNGzj+4BXAcTPwKBgQCsxKDMfFHbZQoC2rzYdyGM0zCu7FBgS7k5 + * xy29mKpPm0R0q/iG3uJEFXN6zdVG8gNixYecbZHVepoXwsYvKQ6KpKn0wmOid5e/ + * xpDoOXCHzP1iT9I950dw+/O9vVycd/4jM32D78sOTvHdBUdAl/Tath+5jeKSBAm+ + * +2qXKSes8wKBgD8IHbZWsTgCqql3wjC8t7OySY5L8GY6GMzQa/EMEsq6EjnYt4bY + * OPbgsQQZgfyp1b0Hn1XcHSHThHdBcpI0xIsxedT5JRe0jo4GpeWx6Lr+PeTZxQ2C + * PBHlN8ys52SxE8uTUgAIyhjhb7kT84OszHo0C6PNCl1OUOHFn9JOSEHfAoGAAsf7 + * iq8ppi1/NsKMrbNlP94ad4ZoWNR/O9Xf/6BYhYWLWZF3I7ysycnKnRx5JXY55bom + * T7dX1KbvmhhRlmrDyCmUbtM+RVxFfhnVNVfPXvBG1/FPAh4aAVCdAN3ugrpPxgNL + * LveKPkW5EQTHu9t2Xpr18ce98PnNqlxjv+EyuU8CgYBQTOYeI/PiK9Y/h1P7GVNL + * hCELdzHtjcMM6jGwpjip5kRuGAVTj0pfdeU+tSabRj1z58Eqpj7DzUGxplVXhBET + * 7ESSWX/dDWcw07cT7p4t6r6zykrwbk8i6L6LjZssMKXtLCsTTPdhGWQ1nbDIEIUB + * 5ypwEwA5xXNjNP0oLX+NIA== + * -----END PRIVATE KEY----- * * server certificate: - * Data: - * Version: 3 (0x2) - * Serial Number: 8 (0x8) - * Signature Algorithm: md5WithRSAEncryption - * Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org - * Validity - * Not Before: Dec 8 03:43:04 2008 GMT - * Not After : Aug 25 03:43:04 2028 GMT - * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Server, CN=localhost - * Subject Public Key Info: - * Public Key Algorithm: rsaEncryption - * RSA Public Key: (1024 bit) - * Modulus (1024 bit): - * 00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f: - * d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2: - * 1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc: - * ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a: - * 7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe: - * 9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14: - * d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9: - * 7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0: - * 30:05:40:2c:4f:ab:d9:74:89 - * Exponent: 65537 (0x10001) - * X509v3 extensions: - * X509v3 Basic Constraints: - * CA:FALSE - * X509v3 Key Usage: - * Digital Signature, Non Repudiation, Key Encipherment - * X509v3 Subject Key Identifier: - * ED:6E:DB:F4:B5:56:C8:FB:1A:06:61:3F:0F:08:BB:A6:04:D8:16:54 - * X509v3 Authority Key Identifier: - * keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14 - * - * X509v3 Subject Alternative Name: critical - * DNS:localhost - * Signature Algorithm: md5WithRSAEncryption0 - * + * Data: + * Version: 3 (0x2) + * Serial Number: 106315679 (0x6563f9f) + * Signature Algorithm: sha1WithRSAEncryption + * Issuer: C=Us, ST=Some-State, L=Some-City, O=Some-Org + * Validity + * Not Before: Jul 1 04:16:55 2024 GMT + * Not After : Jul 2 04:16:55 2034 GMT + * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, CN=localhost ou=SSL-Server + * Subject Public Key Info: + * Public Key Algorithm: rsaEncryption + * Public-Key: (2048 bit) + * Modulus: + * 00:9a:0c:e0:8f:a8:02:7e:5a:ef:ed:b2:42:ad:08: + * 4e:91:ba:c2:ad:9b:79:d7:9b:0f:fd:d2:f8:15:2f: + * 19:89:80:10:00:02:19:6d:27:c2:90:d7:a5:23:53: + * 74:6e:64:28:7c:24:aa:ed:ea:21:59:dc:a3:5c:b5: + * c9:42:31:4f:a2:de:fb:09:7c:73:ed:88:04:34:f1: + * 15:ad:3d:60:cd:ca:c5:13:99:d3:9f:9b:b2:92:70: + * cb:ba:4b:3d:20:96:ad:be:92:53:ed:54:3b:c5:14: + * bd:cf:d4:0f:cb:05:4f:fd:2b:9e:e0:50:bb:65:13: + * 92:c0:d6:bd:4d:02:0c:70:b6:65:d4:7d:b4:4d:c3: + * df:2c:08:9e:d2:3e:69:32:46:6f:6f:ca:d1:73:a4: + * 94:07:ef:14:e3:da:9e:2f:c0:ac:0e:10:33:4c:68: + * 79:f3:79:40:d6:e9:3c:c2:e6:70:e0:89:ce:a0:7a: + * a8:84:28:85:32:37:08:b0:cf:b1:7f:5f:bc:1f:a5: + * 3d:ef:d6:68:a8:17:21:5f:87:d5:4b:b5:cc:ee:78: + * 8d:dd:b1:28:6a:c0:fb:64:bd:b7:70:02:33:03:0b: + * b8:b8:bb:08:82:f6:8e:05:27:d1:3b:e6:c5:ac:4d: + * 85:5b:a1:1d:a3:48:5d:03:15:76:63:6c:71:21:3e: + * 98:cd + * Exponent: 65537 (0x10001) + * X509v3 extensions: + * X509v3 Subject Key Identifier: + * 5C:AF:44:B1:48:B8:59:9A:64:53:9D:2E:A6:B2:09:D3:0A:92:04:83 + * X509v3 Key Usage: + * Digital Signature, Non Repudiation, Key Encipherment + * X509v3 Subject Alternative Name: critical + * DNS:localhost + * X509v3 Basic Constraints: + * CA:FALSE + * X509v3 Authority Key Identifier: + * E0:03:90:F6:4F:BB:57:E6:7E:AF:5C:94:25:B3:85:DA:16:0A:51:40 + * Signature Algorithm: sha1WithRSAEncryption + * Signature Value: + * 9d:22:49:5f:56:23:e6:80:35:cc:ab:44:1c:27:bd:c9:8d:89: + * 93:49:58:e8:c1:7a:68:dd:cf:bd:e0:12:76:06:54:cd:2f:62: + * 9b:54:84:f2:bb:90:a0:bb:37:e2:13:1d:f3:df:41:aa:e0:fe: + * c0:ef:46:78:8d:aa:f4:1b:70:ad:a9:16:24:fa:15:4a:c6:0a: + * 8d:e1:99:93:00:a9:d4:b6:08:5d:8e:65:03:dc:d0:95:fc:95: + * 61:a6:ad:b5:ab:4d:a6:e0:05:48:8c:db:42:42:8a:d6:5e:c0: + * 2a:a0:11:15:b8:07:69:5c:3f:99:a0:bd:53:65:db:4e:cf:46: + * 61:93:09:7b:81:40:ff:5c:fe:4c:eb:f4:ac:de:1f:38:ad:b2: + * 60:28:f6:0e:9f:46:e7:07:8f:20:9a:a4:e1:8f:ab:54:99:76: + * 82:d8:9e:70:c4:da:98:85:71:af:3b:54:e4:01:b4:9e:83:d0: + * 7b:c6:8d:1f:ed:25:08:89:05:e9:87:97:76:5a:a3:85:c3:f8: + * 59:d7:bb:3b:5a:db:cb:ed:5d:ff:ac:21:b9:9a:e2:65:0a:bc: + * de:d1:dc:53:94:98:44:97:91:b3:1b:6b:80:0b:9b:57:b3:ae: + * 5c:7c:35:ca:39:71:f7:4e:8f:4a:d7:eb:0b:25:da:b2:1e:17: + * 48:b8:eb:09 * -----BEGIN CERTIFICATE----- - * MIICpDCCAg2gAwIBAgIBCDANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET - * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK - * EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMDRaFw0yODA4MjUwMzQzMDRaMHIxCzAJ - * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp - * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD - * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3 - * ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6 - * YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS - * 7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjczBxMAkGA1UdEwQCMAAw - * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV - * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh - * bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAoqVTciHtcvsUj+YaTct8tUh3aTCsKsac - * PHhfQ+ObjiXSgxsKYTX7ym/wk/wvlbUcbqLKxsu7qrcJitH+H9heV1hEHEu65Uoi - * nRugFruyOrwvAylV8Cm2af7ddilmYJ+sdJA6N2M3xJRxR0G2LFHEXDNEjYReyexn - * JqCpf5uZGOo= + * MIIDpTCCAo2gAwIBAgIEBlY/nzANBgkqhkiG9w0BAQUFADBJMQswCQYDVQQGEwJV + * czETMBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYD + * VQQKEwhTb21lLU9yZzAeFw0yNDA3MDEwNDE2NTVaFw0zNDA3MDIwNDE2NTVaMGsx + * CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21l + * LUNpdHkxETAPBgNVBAoTCFNvbWUtT3JnMSAwHgYDVQQDExdsb2NhbGhvc3Qgb3U9 + * U1NMLVNlcnZlcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJoM4I+o + * An5a7+2yQq0ITpG6wq2bedebD/3S+BUvGYmAEAACGW0nwpDXpSNTdG5kKHwkqu3q + * IVnco1y1yUIxT6Le+wl8c+2IBDTxFa09YM3KxROZ05+bspJwy7pLPSCWrb6SU+1U + * O8UUvc/UD8sFT/0rnuBQu2UTksDWvU0CDHC2ZdR9tE3D3ywIntI+aTJGb2/K0XOk + * lAfvFOPani/ArA4QM0xoefN5QNbpPMLmcOCJzqB6qIQohTI3CLDPsX9fvB+lPe/W + * aKgXIV+H1Uu1zO54jd2xKGrA+2S9t3ACMwMLuLi7CIL2jgUn0TvmxaxNhVuhHaNI + * XQMVdmNscSE+mM0CAwEAAaNzMHEwHQYDVR0OBBYEFFyvRLFIuFmaZFOdLqayCdMK + * kgSDMAsGA1UdDwQEAwIF4DAXBgNVHREBAf8EDTALgglsb2NhbGhvc3QwCQYDVR0T + * BAIwADAfBgNVHSMEGDAWgBTgA5D2T7tX5n6vXJQls4XaFgpRQDANBgkqhkiG9w0B + * AQUFAAOCAQEAnSJJX1Yj5oA1zKtEHCe9yY2Jk0lY6MF6aN3PveASdgZUzS9im1SE + * 8ruQoLs34hMd899BquD+wO9GeI2q9BtwrakWJPoVSsYKjeGZkwCp1LYIXY5lA9zQ + * lfyVYaattatNpuAFSIzbQkKK1l7AKqARFbgHaVw/maC9U2XbTs9GYZMJe4FA/1z+ + * TOv0rN4fOK2yYCj2Dp9G5wePIJqk4Y+rVJl2gtiecMTamIVxrztU5AG0noPQe8aN + * H+0lCIkF6YeXdlqjhcP4Wde7O1rby+1d/6whuZriZQq83tHcU5SYRJeRsxtrgAub + * V7OuXHw1yjlx906PStfrCyXash4XSLjrCQ== * -----END CERTIFICATE----- * * * TLS client certificate: * client private key: - * ----BEGIN RSA PRIVATE KEY----- - * Proc-Type: 4,ENCRYPTED - * DEK-Info: DES-EDE3-CBC,FA2A435CD35A9390 - * - * Z+Y2uaETbsUWIyJUyVu1UV2G4rgFYJyACZT6Tp1KjRtxflSh2kXkJ9MpuXMXA0V4 - * Yy3fDzPqCL9NJmQAYRlAx/W/+j4F5EyMWDIx8fUxzONRZyoiwF7jLm+KscAfv6Pf - * q7ItWOdj3z7IYrwlB8YIGd3F2cDKT3S+lYRk7rKb/qT7itbuHnY4Ardh3yl+MZak - * jBp+ELUlRsUqSr1V0LoM+0rCCykarpyfhpxEcqsrl0v9Cyi5uhU50/oKv5zql3SH - * l2ImgDjp3batAs8+Bd4NF2aqi0a7Hy44JUHxRm4caZryU/i/D9N1MbuM6882HLat - * 5N0G+NaIUfywa8mjwq2D5aiit18HqKA6XeRRYeJ5Dvu9DCO4GeFSwcUFIBMI0L46 - * 7s114+oDodg57pMgITi+04vmUxvqlN9aiyd7f5Fgd7PeHGeOdbMz1NaJLJaPI9++ - * NakK8eK9iwT/Gdq0Uap5/CHW7vCT5PO+h3HY0STH0lWStXhdWnFO04zTdywsbSp+ - * DLpHeFT66shfeUlxR0PsCbG9vPRt/QmGLeYQZITppWo/ylSq4j+pRIuXvuWHdBRN - * rTZ8QF4Y7AxQUXVz1j1++s6ZMHTzaK2i9HrhmDs1MbJl+QwWre3Xpv3LvTVz3k5U - * wX8kuY1m3STt71QCaRWENq5sRaMImLxZbxc/ivFl9RAzUqo4NCxLod/QgA4iLqtO - * ztnlpzwlC/F8HbQ1oqYWwnZAPhzU/cULtstl+Yrws2c2atO323LbPXZqbASySgig - * sNpFXQMObdfP6LN23bY+1SvtK7V4NUTNhpdIc6INQAQ= - * -----END RSA PRIVATE KEY----- - * - * -----BEGIN RSA PRIVATE KEY----- - * MIICWwIBAAKBgQC78EA2rCZUTvSjWgAvaSFvuXo6k+yi9uGOx2PYLxIwmS6w8o/4 - * Jy0keCiE9wG/jUR53TvSVfPOPLJbIX3v/TNKsaP/xsibuQ98QTWX+ds6BWAFFa9Z - * F5KjEK0WHOQHU6+odqJWKpLT+SjgeM9eH0irXBnd4WdDunWN9YKsQ5JEGwIDAQAB - * AoGAEbdqNj0wN85hnWyEi/ObJU8UyKTdL9eaF72QGfcF/fLSxfd3vurihIeXOkGW - * tpn4lIxYcVGM9CognhqgJpl11jFTQzn1KqZ+NEJRKkCHA4hDabKJbSC9fXHvRwrf - * BsFpZqgiNxp3HseUTiwnaUVeyPgMt/jAj5nB5Sib+UyUxrECQQDnNQBiF2aifEg6 - * zbJOOC7he5CHAdkFxSxWVFVHL6EfXfqdLVkUohMbgZv+XxyIeU2biOExSg49Kds3 - * FOKgTau1AkEA0Bd1haj6QuCo8I0AXm2WO+MMTZMTvtHD/bGjKNM+fT4I8rKYnQRX - * 1acHdqS9Xx2rNJqZgkMmpESIdPR2fc4yjwJALFeM6EMmqvj8/VIf5UJ/Mz14fXwM - * PEARfckUxd9LnnFutCBTWlKvKXJVEZb6KO5ixPaegc57Jp3Vbh3yTN44lQJADD/1 - * SSMDaIB1MYP7a5Oj7m6VQNPRq8AJe5vDcRnOae0G9dKRrVyeFxO4GsHj6/+BHp2j - * P8nYMn9eURQ7DXjf/QJAAQzMlWnKGSO8pyTDtnQx3hRMoUkOEhmNq4bQhLkYqtnY - * FcqpUQ2qMjW+NiNWk5HnTrMS3L9EdJobMUzaNZLy4w== - * -----END RSA PRIVATE KEY----- * - * Private-Key: (1024 bit) + * Private-Key: (2048 bit, 2 primes) * modulus: - * 00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69: - * 21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f: - * 12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7: - * 01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21: - * 7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41: - * 35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10: - * ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9: - * 28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba: - * 75:8d:f5:82:ac:43:92:44:1b + * 00:cc:bf:92:3c:a6:57:74:1f:58:ad:c7:69:88:6f: + * 59:32:47:50:60:22:e4:98:49:0e:3e:1d:b8:ba:e2: + * 3b:b6:71:5b:fd:64:02:6d:0d:50:77:72:6e:a8:3d: + * 5d:d4:bd:1f:76:51:dc:9a:d0:d6:3e:d0:31:a5:24: + * 5a:2c:be:77:fa:88:a1:fa:06:41:c8:0f:47:70:47: + * 24:99:50:52:44:5b:30:62:5b:65:35:c4:28:b0:5c: + * ee:d0:1b:eb:39:2b:0b:a1:ac:96:48:da:56:6c:e0: + * e3:e6:e3:dd:45:cb:51:33:8d:40:43:d7:f0:a4:31: + * aa:b5:c0:df:4b:df:2b:0a:ed:7e:10:0c:ae:1f:96: + * a2:10:1e:6b:d0:f9:37:8b:df:0d:0e:02:35:f8:58: + * bc:6e:b5:57:0e:2f:ea:20:e6:73:9a:e5:6b:82:70: + * 25:bb:51:9a:7c:9d:e2:50:3d:cf:1e:24:3e:92:55: + * cf:2a:ad:0d:84:8f:a8:43:24:cd:ad:50:64:74:c2: + * 73:b6:e1:92:1c:b2:2b:8c:2d:7b:96:a6:41:61:5c: + * 1b:8f:78:28:51:40:ed:41:90:ce:1d:b8:26:81:47: + * 6b:e3:57:41:74:4e:20:f0:5a:1b:97:37:91:86:19: + * c5:f2:6d:04:c9:78:2b:5a:16:bc:fc:2b:71:5b:d0: + * 00:4f * publicExponent: 65537 (0x10001) * privateExponent: - * 11:b7:6a:36:3d:30:37:ce:61:9d:6c:84:8b:f3:9b: - * 25:4f:14:c8:a4:dd:2f:d7:9a:17:bd:90:19:f7:05: - * fd:f2:d2:c5:f7:77:be:ea:e2:84:87:97:3a:41:96: - * b6:99:f8:94:8c:58:71:51:8c:f4:2a:20:9e:1a:a0: - * 26:99:75:d6:31:53:43:39:f5:2a:a6:7e:34:42:51: - * 2a:40:87:03:88:43:69:b2:89:6d:20:bd:7d:71:ef: - * 47:0a:df:06:c1:69:66:a8:22:37:1a:77:1e:c7:94: - * 4e:2c:27:69:45:5e:c8:f8:0c:b7:f8:c0:8f:99:c1: - * e5:28:9b:f9:4c:94:c6:b1 + * 62:b2:d6:63:b6:2b:e2:26:5a:31:2b:37:8c:35:60: + * e2:03:ce:93:09:3e:f8:c9:fe:bb:a2:c8:32:0e:6c: + * 8a:7e:0a:c2:13:3b:b8:25:fa:ec:19:95:8e:34:46: + * cf:0e:7b:e4:25:82:1a:7f:21:48:16:44:58:3f:35: + * d8:eb:d8:1a:45:53:0f:9b:84:8a:54:13:33:e4:97: + * 97:f0:48:37:fb:5d:4f:8c:8f:35:63:e1:d9:62:73: + * 1c:8e:d8:cd:2e:1a:e5:4c:b5:05:59:7a:df:f1:68: + * eb:1c:5c:c6:10:44:8c:7d:42:c5:71:8a:e7:1b:aa: + * 17:03:6a:a0:c0:6b:97:50:17:ad:6e:5e:d9:db:6f: + * 3e:e9:3f:35:c3:45:bc:e8:3d:5a:b4:b9:3f:53:80: + * 64:dc:12:24:35:35:bd:98:bb:8d:fa:19:a3:5e:9e: + * ac:70:4a:fc:8d:ae:55:8b:71:81:0e:4d:c8:2f:87: + * b0:44:f7:4f:dc:a8:c8:50:b5:95:24:63:74:13:54: + * 58:de:fc:e0:75:eb:f4:06:58:83:12:4c:56:c4:c4: + * 18:0c:ea:a3:e7:25:a3:de:19:23:a2:5a:2a:b6:56: + * 04:bc:65:ba:7c:0a:f4:91:10:22:88:3f:9d:be:58: + * 43:4c:2e:ad:db:d6:32:cf:8e:b5:05:55:39:8b:e1: + * 01 * prime1: - * 00:e7:35:00:62:17:66:a2:7c:48:3a:cd:b2:4e:38: - * 2e:e1:7b:90:87:01:d9:05:c5:2c:56:54:55:47:2f: - * a1:1f:5d:fa:9d:2d:59:14:a2:13:1b:81:9b:fe:5f: - * 1c:88:79:4d:9b:88:e1:31:4a:0e:3d:29:db:37:14: - * e2:a0:4d:ab:b5 + * 00:f1:da:c2:8a:e5:66:45:8a:14:fc:08:6e:fb:aa: + * 50:d2:8c:b1:c4:f4:88:26:d4:b8:c4:63:30:ca:e3: + * 0c:6c:50:d4:93:5c:1c:13:37:60:21:11:3b:d1:f1: + * 9f:4c:0d:7b:0e:53:3d:c9:a4:fb:fa:6b:9e:b4:0a: + * 5d:d3:50:88:d7:be:c3:88:b2:b1:8a:6e:7b:d6:70: + * 88:96:a4:fe:90:ef:d1:84:ad:a8:9e:9f:3a:68:3f: + * 3f:82:07:be:c2:44:1e:d5:a1:a9:1a:db:39:d7:7f: + * 0c:6e:35:5b:1d:33:1b:a9:cd:38:2a:64:d1:70:2a: + * fe:b9:c2:b6:ed:59:19:73:b1 * prime2: - * 00:d0:17:75:85:a8:fa:42:e0:a8:f0:8d:00:5e:6d: - * 96:3b:e3:0c:4d:93:13:be:d1:c3:fd:b1:a3:28:d3: - * 3e:7d:3e:08:f2:b2:98:9d:04:57:d5:a7:07:76:a4: - * bd:5f:1d:ab:34:9a:99:82:43:26:a4:44:88:74:f4: - * 76:7d:ce:32:8f + * 00:d8:b9:3a:38:6c:79:cd:0b:1f:2b:34:74:bf:7a: + * 3d:0c:21:5a:a6:ea:f2:9e:de:68:42:05:7f:ea:a5: + * 00:c9:10:f8:fd:c5:05:8d:03:45:5d:4f:6f:fa:6e: + * 9d:ef:ad:8a:ec:83:d4:ed:57:f3:86:73:15:2f:d2: + * 67:70:d1:62:ef:1d:25:08:59:47:20:62:47:16:35: + * e1:57:38:bf:39:dd:fc:b9:c8:d8:23:53:e2:02:7d: + * 22:31:4c:66:72:96:df:d8:7c:01:2c:71:00:89:18: + * e9:8c:08:44:8c:64:1f:93:9b:7a:97:26:c9:50:d0: + * 87:b2:48:a8:19:71:e1:b3:ff * exponent1: - * 2c:57:8c:e8:43:26:aa:f8:fc:fd:52:1f:e5:42:7f: - * 33:3d:78:7d:7c:0c:3c:40:11:7d:c9:14:c5:df:4b: - * 9e:71:6e:b4:20:53:5a:52:af:29:72:55:11:96:fa: - * 28:ee:62:c4:f6:9e:81:ce:7b:26:9d:d5:6e:1d:f2: - * 4c:de:38:95 + * 23:98:dd:35:70:5a:43:35:f5:ac:ba:d9:0a:f5:a0: + * 7b:bc:f5:95:55:a0:8c:86:96:c3:61:0e:17:6e:9f: + * af:79:9e:30:2a:48:7f:93:90:f4:8d:02:ce:fd:cf: + * 42:74:61:7e:54:46:2d:dd:b8:b0:bd:12:58:d1:85: + * c9:ca:7a:b9:b6:7c:35:2c:87:f1:26:1d:d8:0c:2c: + * 2e:70:0e:7f:ea:ac:5d:e8:e9:7e:9f:55:0b:6e:f3: + * bc:01:c3:d3:f8:0e:c9:c6:c7:8b:0a:65:53:10:82: + * 15:de:88:90:9d:ab:1e:ac:f3:ed:59:75:72:1b:01: + * ee:f9:77:cf:2b:64:11:a1 * exponent2: - * 0c:3f:f5:49:23:03:68:80:75:31:83:fb:6b:93:a3: - * ee:6e:95:40:d3:d1:ab:c0:09:7b:9b:c3:71:19:ce: - * 69:ed:06:f5:d2:91:ad:5c:9e:17:13:b8:1a:c1:e3: - * eb:ff:81:1e:9d:a3:3f:c9:d8:32:7f:5e:51:14:3b: - * 0d:78:df:fd + * 00:9e:29:6f:87:c6:02:8d:d5:54:05:df:de:63:ee: + * fd:a6:60:a1:1b:b7:d3:20:86:07:68:47:43:37:26: + * fc:0f:c0:c7:35:cc:17:64:f5:c2:25:7a:d7:a9:d8: + * 18:82:d6:0f:d0:d3:d5:0c:f1:66:d3:f4:20:be:29: + * bb:3b:e6:53:61:55:cf:b4:ec:12:b0:5b:88:ad:78: + * dc:df:1e:96:cf:d0:65:a3:e0:23:7c:84:b7:28:41: + * d2:36:50:1f:63:f9:1f:9b:89:c4:01:7e:e6:79:27: + * 29:29:fc:ce:a9:f6:57:e5:0d:4e:c6:08:94:5a:da: + * 14:6d:d4:00:79:b1:56:9a:59 * coefficient: - * 01:0c:cc:95:69:ca:19:23:bc:a7:24:c3:b6:74:31: - * de:14:4c:a1:49:0e:12:19:8d:ab:86:d0:84:b9:18: - * aa:d9:d8:15:ca:a9:51:0d:aa:32:35:be:36:23:56: - * 93:91:e7:4e:b3:12:dc:bf:44:74:9a:1b:31:4c:da: - * 35:92:f2:e3 + * 6c:73:0d:fe:c7:22:15:5d:8c:a1:91:2b:d1:88:e8: + * 91:f9:d0:3e:d0:ba:c4:74:88:ce:14:20:4e:1e:4b: + * c5:91:8f:c1:56:e9:74:e0:f6:cf:71:91:ed:2c:f5: + * 90:9d:d6:c8:cd:f5:79:dc:6e:b3:83:3e:fa:d6:b4: + * 60:d9:3a:52:12:76:9d:92:fb:db:26:ee:43:33:c4: + * 0b:84:74:1b:91:e0:41:8b:cc:cc:24:da:52:af:2d: + * 42:e7:11:57:0d:aa:66:af:1a:ba:c2:8e:6a:ee:8f: + * 2c:e6:5b:76:38:96:bb:7a:2f:59:fe:de:a1:02:fc: + * 12:3a:aa:9f:3c:0e:a4:78 + * writing RSA key + * -----BEGIN PRIVATE KEY----- + * MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDMv5I8pld0H1it + * x2mIb1kyR1BgIuSYSQ4+Hbi64ju2cVv9ZAJtDVB3cm6oPV3UvR92Udya0NY+0DGl + * JFosvnf6iKH6BkHID0dwRySZUFJEWzBiW2U1xCiwXO7QG+s5KwuhrJZI2lZs4OPm + * 491Fy1EzjUBD1/CkMaq1wN9L3ysK7X4QDK4flqIQHmvQ+TeL3w0OAjX4WLxutVcO + * L+og5nOa5WuCcCW7UZp8neJQPc8eJD6SVc8qrQ2Ej6hDJM2tUGR0wnO24ZIcsiuM + * LXuWpkFhXBuPeChRQO1BkM4duCaBR2vjV0F0TiDwWhuXN5GGGcXybQTJeCtaFrz8 + * K3Fb0ABPAgMBAAECggEAYrLWY7Yr4iZaMSs3jDVg4gPOkwk++Mn+u6LIMg5sin4K + * whM7uCX67BmVjjRGzw575CWCGn8hSBZEWD812OvYGkVTD5uEilQTM+SXl/BIN/td + * T4yPNWPh2WJzHI7YzS4a5Uy1BVl63/Fo6xxcxhBEjH1CxXGK5xuqFwNqoMBrl1AX + * rW5e2dtvPuk/NcNFvOg9WrS5P1OAZNwSJDU1vZi7jfoZo16erHBK/I2uVYtxgQ5N + * yC+HsET3T9yoyFC1lSRjdBNUWN784HXr9AZYgxJMVsTEGAzqo+clo94ZI6JaKrZW + * BLxlunwK9JEQIog/nb5YQ0wurdvWMs+OtQVVOYvhAQKBgQDx2sKK5WZFihT8CG77 + * qlDSjLHE9Igm1LjEYzDK4wxsUNSTXBwTN2AhETvR8Z9MDXsOUz3JpPv6a560Cl3T + * UIjXvsOIsrGKbnvWcIiWpP6Q79GEraienzpoPz+CB77CRB7Voaka2znXfwxuNVsd + * MxupzTgqZNFwKv65wrbtWRlzsQKBgQDYuTo4bHnNCx8rNHS/ej0MIVqm6vKe3mhC + * BX/qpQDJEPj9xQWNA0VdT2/6bp3vrYrsg9TtV/OGcxUv0mdw0WLvHSUIWUcgYkcW + * NeFXOL853fy5yNgjU+ICfSIxTGZylt/YfAEscQCJGOmMCESMZB+Tm3qXJslQ0Iey + * SKgZceGz/wKBgCOY3TVwWkM19ay62Qr1oHu89ZVVoIyGlsNhDhdun695njAqSH+T + * kPSNAs79z0J0YX5URi3duLC9EljRhcnKerm2fDUsh/EmHdgMLC5wDn/qrF3o6X6f + * VQtu87wBw9P4DsnGx4sKZVMQghXeiJCdqx6s8+1ZdXIbAe75d88rZBGhAoGBAJ4p + * b4fGAo3VVAXf3mPu/aZgoRu30yCGB2hHQzcm/A/AxzXMF2T1wiV616nYGILWD9DT + * 1QzxZtP0IL4puzvmU2FVz7TsErBbiK143N8els/QZaPgI3yEtyhB0jZQH2P5H5uJ + * xAF+5nknKSn8zqn2V+UNTsYIlFraFG3UAHmxVppZAoGAbHMN/sciFV2MoZEr0Yjo + * kfnQPtC6xHSIzhQgTh5LxZGPwVbpdOD2z3GR7Sz1kJ3WyM31edxus4M++ta0YNk6 + * UhJ2nZL72ybuQzPEC4R0G5HgQYvMzCTaUq8tQucRVw2qZq8ausKOau6PLOZbdjiW + * u3ovWf7eoQL8EjqqnzwOpHg= + * -----END PRIVATE KEY----- * * client certificate: - * Data: - * Version: 3 (0x2) - * Serial Number: 9 (0x9) - * Signature Algorithm: md5WithRSAEncryption - * Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org - * Validity - * Not Before: Dec 8 03:43:24 2008 GMT - * Not After : Aug 25 03:43:24 2028 GMT - * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Client, CN=localhost - * Subject Public Key Info: - * Public Key Algorithm: rsaEncryption - * RSA Public Key: (1024 bit) - * Modulus (1024 bit): - * 00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69: - * 21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f: - * 12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7: - * 01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21: - * 7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41: - * 35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10: - * ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9: - * 28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba: - * 75:8d:f5:82:ac:43:92:44:1b - * Exponent: 65537 (0x10001) - * X509v3 extensions: - * X509v3 Basic Constraints: - * CA:FALSE - * X509v3 Key Usage: - * Digital Signature, Non Repudiation, Key Encipherment - * X509v3 Subject Key Identifier: - * CD:BB:C8:85:AA:91:BD:FD:1D:BE:CD:67:7C:FF:B3:E9:4C:A8:22:E6 - * X509v3 Authority Key Identifier: - * keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14 - * - * X509v3 Subject Alternative Name: critical - * DNS:localhost - * Signature Algorithm: md5WithRSAEncryption - * + * Data: + * Version: 3 (0x2) + * Serial Number: 1500699355 (0x5972dadb) + * Signature Algorithm: sha1WithRSAEncryption + * Issuer: C=Us, ST=Some-State, L=Some-City, O=Some-Org + * Validity + * Not Before: Jul 1 04:16:52 2024 GMT + * Not After : Jul 2 04:16:52 2034 GMT + * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, CN=localhost ou=SSL-Client + * Subject Public Key Info: + * Public Key Algorithm: rsaEncryption + * Public-Key: (2048 bit) + * Modulus: + * 00:cc:bf:92:3c:a6:57:74:1f:58:ad:c7:69:88:6f: + * 59:32:47:50:60:22:e4:98:49:0e:3e:1d:b8:ba:e2: + * 3b:b6:71:5b:fd:64:02:6d:0d:50:77:72:6e:a8:3d: + * 5d:d4:bd:1f:76:51:dc:9a:d0:d6:3e:d0:31:a5:24: + * 5a:2c:be:77:fa:88:a1:fa:06:41:c8:0f:47:70:47: + * 24:99:50:52:44:5b:30:62:5b:65:35:c4:28:b0:5c: + * ee:d0:1b:eb:39:2b:0b:a1:ac:96:48:da:56:6c:e0: + * e3:e6:e3:dd:45:cb:51:33:8d:40:43:d7:f0:a4:31: + * aa:b5:c0:df:4b:df:2b:0a:ed:7e:10:0c:ae:1f:96: + * a2:10:1e:6b:d0:f9:37:8b:df:0d:0e:02:35:f8:58: + * bc:6e:b5:57:0e:2f:ea:20:e6:73:9a:e5:6b:82:70: + * 25:bb:51:9a:7c:9d:e2:50:3d:cf:1e:24:3e:92:55: + * cf:2a:ad:0d:84:8f:a8:43:24:cd:ad:50:64:74:c2: + * 73:b6:e1:92:1c:b2:2b:8c:2d:7b:96:a6:41:61:5c: + * 1b:8f:78:28:51:40:ed:41:90:ce:1d:b8:26:81:47: + * 6b:e3:57:41:74:4e:20:f0:5a:1b:97:37:91:86:19: + * c5:f2:6d:04:c9:78:2b:5a:16:bc:fc:2b:71:5b:d0: + * 00:4f + * Exponent: 65537 (0x10001) + * X509v3 extensions: + * X509v3 Subject Key Identifier: + * CD:45:E2:05:92:88:A3:C7:49:28:E7:D3:37:B7:13:92:FB:B1:36:C4 + * X509v3 Key Usage: + * Digital Signature, Non Repudiation, Key Encipherment + * X509v3 Subject Alternative Name: critical + * DNS:localhost + * X509v3 Basic Constraints: + * CA:FALSE + * X509v3 Authority Key Identifier: + * E0:03:90:F6:4F:BB:57:E6:7E:AF:5C:94:25:B3:85:DA:16:0A:51:40 + * Signature Algorithm: sha1WithRSAEncryption + * Signature Value: + * 23:6e:e9:5d:80:0d:b3:86:c9:cd:17:81:33:bd:5b:aa:c0:65: + * 4c:6b:9f:fa:ee:32:e9:89:e1:d0:c7:1d:5c:43:7e:94:ac:83: + * af:91:90:4c:26:61:8d:fe:6b:1a:aa:6e:61:39:b3:24:4a:dc: + * 92:c8:ca:f2:80:b0:05:41:0c:b3:dd:ed:b7:81:42:9a:1e:4e: + * f2:80:6c:72:62:8b:bd:d4:cd:23:7d:7c:e8:6f:e3:67:89:6a: + * 79:19:dd:f6:57:62:12:fa:eb:cd:66:c3:d2:d8:40:5a:1c:dd: + * 7f:9f:b2:34:e9:2a:d6:14:52:ba:6e:a8:9b:0d:a9:a1:03:bf: + * c4:0d:92:3d:59:e4:a9:8e:20:41:39:99:81:70:9d:d0:68:98: + * fc:5f:49:4a:92:e5:a2:c1:51:61:f6:1e:49:56:0b:b6:8c:57: + * db:08:2a:f0:a3:04:dc:a1:04:a2:5c:d0:90:4f:13:8d:1c:e6: + * 2e:7a:63:9c:32:40:65:59:04:5d:71:90:5a:a8:db:6a:30:42: + * 57:5b:0b:df:ce:a1:1f:fa:23:71:f3:57:12:c4:1c:66:3b:37: + * 77:32:28:a7:fb:ad:ee:86:51:4c:80:2f:dd:c8:5b:9f:a7:15: + * 07:fa:2b:5a:ee:93:00:5f:a6:43:22:1b:40:52:15:66:01:84: + * 32:9e:71:21 * -----BEGIN CERTIFICATE----- - * MIICpDCCAg2gAwIBAgIBCTANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET - * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK - * EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMjRaFw0yODA4MjUwMzQzMjRaMHIxCzAJ - * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp - * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD - * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas - * JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV - * 8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq - * ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjczBxMAkGA1UdEwQCMAAw - * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV - * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh - * bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAm25gJyqW1JznQ1EyOtTGswBVwfgBOf+F - * HJuBTcflYQLbTD/AETPQJGvZU9tdhuLtbG3OPhR7vSY8zeAbfM3dbH7QFr3r47Gj - * XEH7qM/MX+Z3ifVaC4MeJmrYQkYFSuKeyyKpdRVX4w4nnFHF6OsNASsYrMW6LpxN - * cl/epUcHL7E= + * MIIDpTCCAo2gAwIBAgIEWXLa2zANBgkqhkiG9w0BAQUFADBJMQswCQYDVQQGEwJV + * czETMBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYD + * VQQKEwhTb21lLU9yZzAeFw0yNDA3MDEwNDE2NTJaFw0zNDA3MDIwNDE2NTJaMGsx + * CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21l + * LUNpdHkxETAPBgNVBAoTCFNvbWUtT3JnMSAwHgYDVQQDExdsb2NhbGhvc3Qgb3U9 + * U1NMLUNsaWVudDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMy/kjym + * V3QfWK3HaYhvWTJHUGAi5JhJDj4duLriO7ZxW/1kAm0NUHdybqg9XdS9H3ZR3JrQ + * 1j7QMaUkWiy+d/qIofoGQcgPR3BHJJlQUkRbMGJbZTXEKLBc7tAb6zkrC6Gslkja + * Vmzg4+bj3UXLUTONQEPX8KQxqrXA30vfKwrtfhAMrh+WohAea9D5N4vfDQ4CNfhY + * vG61Vw4v6iDmc5rla4JwJbtRmnyd4lA9zx4kPpJVzyqtDYSPqEMkza1QZHTCc7bh + * khyyK4wte5amQWFcG494KFFA7UGQzh24JoFHa+NXQXROIPBaG5c3kYYZxfJtBMl4 + * K1oWvPwrcVvQAE8CAwEAAaNzMHEwHQYDVR0OBBYEFM1F4gWSiKPHSSjn0ze3E5L7 + * sTbEMAsGA1UdDwQEAwIF4DAXBgNVHREBAf8EDTALgglsb2NhbGhvc3QwCQYDVR0T + * BAIwADAfBgNVHSMEGDAWgBTgA5D2T7tX5n6vXJQls4XaFgpRQDANBgkqhkiG9w0B + * AQUFAAOCAQEAI27pXYANs4bJzReBM71bqsBlTGuf+u4y6Ynh0McdXEN+lKyDr5GQ + * TCZhjf5rGqpuYTmzJErcksjK8oCwBUEMs93tt4FCmh5O8oBscmKLvdTNI3186G/j + * Z4lqeRnd9ldiEvrrzWbD0thAWhzdf5+yNOkq1hRSum6omw2poQO/xA2SPVnkqY4g + * QTmZgXCd0GiY/F9JSpLlosFRYfYeSVYLtoxX2wgq8KME3KEEolzQkE8TjRzmLnpj + * nDJAZVkEXXGQWqjbajBCV1sL386hH/ojcfNXEsQcZjs3dzIop/ut7oZRTIAv3chb + * n6cVB/orWu6TAF+mQyIbQFIVZgGEMp5xIQ== * -----END CERTIFICATE----- * * - * * Trusted CA certificate: * Certificate: * Data: - * Version: 3 (0x2) - * Serial Number: 0 (0x0) - * Signature Algorithm: md5WithRSAEncryption - * Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org - * Validity - * Not Before: Dec 8 02:43:36 2008 GMT - * Not After : Aug 25 02:43:36 2028 GMT - * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org - * Subject Public Key Info: - * Public Key Algorithm: rsaEncryption - * RSA Public Key: (1024 bit) - * Modulus (1024 bit): - * 00:cb:c4:38:20:07:be:88:a7:93:b0:a1:43:51:2d: - * d7:8e:85:af:54:dd:ad:a2:7b:23:5b:cf:99:13:53: - * 99:45:7d:ee:6d:ba:2d:bf:e3:ad:6e:3d:9f:1a:f9: - * 03:97:e0:17:55:ae:11:26:57:de:01:29:8e:05:3f: - * 21:f7:e7:36:e8:2e:37:d7:48:ac:53:d6:60:0e:c7: - * 50:6d:f6:c5:85:f7:8b:a6:c5:91:35:72:3c:94:ee: - * f1:17:f0:71:e3:ec:1b:ce:ca:4e:40:42:b0:6d:ee: - * 6a:0e:d6:e5:ad:3c:0f:c9:ba:82:4f:78:f8:89:97: - * 89:2a:95:12:4c:d8:09:2a:e9 - * Exponent: 65537 (0x10001) - * X509v3 extensions: - * X509v3 Subject Key Identifier: - * FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14 - * X509v3 Authority Key Identifier: - * keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14 - * DirName:/C=US/ST=Some-State/L=Some-City/O=Some-Org - * serial:00 - * - * X509v3 Basic Constraints: - * CA:TRUE - * Signature Algorithm: md5WithRSAEncryption - * + * Version: 3 (0x2) + * Serial Number: 1539881479 (0x5bc8ba07) + * Signature Algorithm: sha1WithRSAEncryption + * Issuer: C=Us, ST=Some-State, L=Some-City, O=Some-Org + * Validity + * Not Before: Jul 1 04:16:50 2024 GMT + * Not After : Jul 2 04:16:50 2034 GMT + * Subject: C=Us, ST=Some-State, L=Some-City, O=Some-Org + * Subject Public Key Info: + * Public Key Algorithm: rsaEncryption + * Public-Key: (2048 bit) + * Modulus: + * 00:bc:a6:55:60:3f:17:74:39:ba:71:8c:ef:11:3f: + * 9d:36:47:d5:02:d1:4d:9d:7e:b8:fe:59:b1:2b:f1: + * b7:b0:0c:31:57:eb:9c:9d:13:f5:4c:5f:fc:c4:9e: + * f9:75:09:0f:96:8f:05:77:30:a8:35:48:71:96:e4: + * a5:7d:1a:81:fb:e6:bf:90:80:60:5d:11:20:54:16: + * 0b:6d:df:64:de:18:d5:98:51:38:9d:c9:d6:5f:de: + * 9d:de:fe:a8:5f:d3:25:3d:ad:f3:2b:45:c8:4a:80: + * 97:14:7b:85:9d:cf:59:08:bb:c7:67:ac:8b:29:f3: + * 1e:93:bf:fb:82:53:c5:ae:b4:bc:55:30:15:a8:7e: + * 3f:82:22:59:43:cc:d2:62:e7:65:67:72:ec:10:8a: + * fc:05:90:91:72:dd:e9:6f:e2:9f:0c:ab:a1:83:55: + * 02:23:b7:a3:c3:50:ab:be:0b:bb:51:75:50:d1:a8: + * c9:e5:f5:06:fe:00:09:a6:1b:8a:16:29:0d:ab:00: + * 3e:bc:d2:73:d9:37:d7:d9:9a:58:6e:2d:2a:f6:76: + * ae:f4:ea:6d:70:de:7f:e3:04:43:c0:4f:91:3f:78: + * 58:d7:c2:ad:74:eb:04:9d:d0:7e:82:b8:7a:97:44: + * 61:fa:41:45:a6:ca:7d:a5:2e:fc:f9:a6:cf:61:cd: + * 75:bf + * Exponent: 65537 (0x10001) + * X509v3 extensions: + * X509v3 Subject Key Identifier: + * E0:03:90:F6:4F:BB:57:E6:7E:AF:5C:94:25:B3:85:DA:16:0A:51:40 + * X509v3 Basic Constraints: critical + * CA:TRUE + * Signature Algorithm: sha1WithRSAEncryption + * Signature Value: + * 1f:89:34:e3:ee:05:33:3b:18:ca:96:13:3d:ad:cd:5a:e6:24: + * 46:94:36:ad:37:a5:36:a9:92:37:f9:ed:07:dd:44:5b:c9:2e: + * 68:f7:82:f3:58:1c:64:ed:64:d0:ad:eb:30:15:e0:04:3a:d7: + * c8:c7:9d:65:76:ae:84:e4:2e:2d:0d:68:09:0d:e5:ae:cc:a7: + * 54:86:ad:ff:00:95:85:01:49:db:5b:8e:c2:6f:e7:19:10:17: + * f7:03:b9:a8:97:21:a2:fc:7f:c0:e0:7a:12:64:b8:70:f5:e8: + * b6:e1:25:f7:eb:32:3e:46:ce:43:55:fc:0b:62:59:90:61:63: + * f9:94:6c:95:63:31:1b:00:59:1f:72:9d:d0:0b:4f:cd:02:eb: + * de:20:4e:60:48:4e:ea:ad:3c:0f:1d:bf:1a:69:3d:a8:3d:8b: + * f5:a2:ae:8c:4f:d7:0e:b3:e1:9b:b3:2c:89:19:18:da:db:e1: + * 6d:d5:ab:c8:b8:48:57:d8:8b:33:01:d4:97:91:d9:da:34:a1: + * ef:36:00:e1:38:19:34:8f:0d:47:af:57:cf:59:d6:8b:0d:9e: + * 89:05:82:3d:3c:f3:45:1d:4a:3f:0e:0f:5a:28:6f:5c:e1:e9: + * 60:72:87:28:b6:97:44:8b:d7:c6:cd:cb:dc:5a:5d:60:f1:b4: + * 37:ee:44:db * -----BEGIN CERTIFICATE----- - * MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET - * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK - * EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ - * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp - * dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB - * gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX - * 4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj - * 7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G - * A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ - * hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt - * U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw - * DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA - * ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ - * LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P - * 6Mvf0r1PNTY2hwTJLJmKtg== - * -----END CERTIFICATE--- + * MIIDQjCCAiqgAwIBAgIEW8i6BzANBgkqhkiG9w0BAQUFADBJMQswCQYDVQQGEwJV + * czETMBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYD + * VQQKEwhTb21lLU9yZzAeFw0yNDA3MDEwNDE2NTBaFw0zNDA3MDIwNDE2NTBaMEkx + * CzAJBgNVBAYTAlVzMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21l + * LUNpdHkxETAPBgNVBAoTCFNvbWUtT3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A + * MIIBCgKCAQEAvKZVYD8XdDm6cYzvET+dNkfVAtFNnX64/lmxK/G3sAwxV+ucnRP1 + * TF/8xJ75dQkPlo8FdzCoNUhxluSlfRqB++a/kIBgXREgVBYLbd9k3hjVmFE4ncnW + * X96d3v6oX9MlPa3zK0XISoCXFHuFnc9ZCLvHZ6yLKfMek7/7glPFrrS8VTAVqH4/ + * giJZQ8zSYudlZ3LsEIr8BZCRct3pb+KfDKuhg1UCI7ejw1Crvgu7UXVQ0ajJ5fUG + * /gAJphuKFikNqwA+vNJz2TfX2ZpYbi0q9nau9OptcN5/4wRDwE+RP3hY18KtdOsE + * ndB+grh6l0Rh+kFFpsp9pS78+abPYc11vwIDAQABozIwMDAdBgNVHQ4EFgQU4AOQ + * 9k+7V+Z+r1yUJbOF2hYKUUAwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUF + * AAOCAQEAH4k04+4FMzsYypYTPa3NWuYkRpQ2rTelNqmSN/ntB91EW8kuaPeC81gc + * ZO1k0K3rMBXgBDrXyMedZXauhOQuLQ1oCQ3lrsynVIat/wCVhQFJ21uOwm/nGRAX + * 9wO5qJchovx/wOB6EmS4cPXotuEl9+syPkbOQ1X8C2JZkGFj+ZRslWMxGwBZH3Kd + * 0AtPzQLr3iBOYEhO6q08Dx2/Gmk9qD2L9aKujE/XDrPhm7MsiRkY2tvhbdWryLhI + * V9iLMwHUl5HZ2jSh7zYA4TgZNI8NR69Xz1nWiw2eiQWCPTzzRR1KPw4PWihvXOHp + * YHKHKLaXRIvXxs3L3FpdYPG0N+5E2w== + * */ @@ -427,201 +568,342 @@ public class PKIXExtendedTM { */ static String trusedCertStr = "-----BEGIN CERTIFICATE-----\n" + - "MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" + - "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" + - "EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ\n" + - "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" + - "dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\n" + - "gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX\n" + - "4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj\n" + - "7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G\n" + - "A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ\n" + - "hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt\n" + - "U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw\n" + - "DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA\n" + - "ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ\n" + - "LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P\n" + - "6Mvf0r1PNTY2hwTJLJmKtg==\n" + + "MIIDQjCCAiqgAwIBAgIEW8i6BzANBgkqhkiG9w0BAQUFADBJMQswCQYDVQQGEwJV\n" + + "czETMBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYD\n" + + "VQQKEwhTb21lLU9yZzAeFw0yNDA3MDEwNDE2NTBaFw0zNDA3MDIwNDE2NTBaMEkx\n" + + "CzAJBgNVBAYTAlVzMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21l\n" + + "LUNpdHkxETAPBgNVBAoTCFNvbWUtT3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A\n" + + "MIIBCgKCAQEAvKZVYD8XdDm6cYzvET+dNkfVAtFNnX64/lmxK/G3sAwxV+ucnRP1\n" + + "TF/8xJ75dQkPlo8FdzCoNUhxluSlfRqB++a/kIBgXREgVBYLbd9k3hjVmFE4ncnW\n" + + "X96d3v6oX9MlPa3zK0XISoCXFHuFnc9ZCLvHZ6yLKfMek7/7glPFrrS8VTAVqH4/\n" + + "giJZQ8zSYudlZ3LsEIr8BZCRct3pb+KfDKuhg1UCI7ejw1Crvgu7UXVQ0ajJ5fUG\n" + + "/gAJphuKFikNqwA+vNJz2TfX2ZpYbi0q9nau9OptcN5/4wRDwE+RP3hY18KtdOsE\n" + + "ndB+grh6l0Rh+kFFpsp9pS78+abPYc11vwIDAQABozIwMDAdBgNVHQ4EFgQU4AOQ\n" + + "9k+7V+Z+r1yUJbOF2hYKUUAwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUF\n" + + "AAOCAQEAH4k04+4FMzsYypYTPa3NWuYkRpQ2rTelNqmSN/ntB91EW8kuaPeC81gc\n" + + "ZO1k0K3rMBXgBDrXyMedZXauhOQuLQ1oCQ3lrsynVIat/wCVhQFJ21uOwm/nGRAX\n" + + "9wO5qJchovx/wOB6EmS4cPXotuEl9+syPkbOQ1X8C2JZkGFj+ZRslWMxGwBZH3Kd\n" + + "0AtPzQLr3iBOYEhO6q08Dx2/Gmk9qD2L9aKujE/XDrPhm7MsiRkY2tvhbdWryLhI\n" + + "V9iLMwHUl5HZ2jSh7zYA4TgZNI8NR69Xz1nWiw2eiQWCPTzzRR1KPw4PWihvXOHp\n" + + "YHKHKLaXRIvXxs3L3FpdYPG0N+5E2w==\n" + "-----END CERTIFICATE-----"; static String serverCertStr = "-----BEGIN CERTIFICATE-----\n" + - "MIICpDCCAg2gAwIBAgIBCDANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" + - "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" + - "EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMDRaFw0yODA4MjUwMzQzMDRaMHIxCzAJ\n" + - "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" + - "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD\n" + - "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3\n" + - "ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6\n" + - "YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS\n" + - "7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjczBxMAkGA1UdEwQCMAAw\n" + - "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV\n" + - "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh\n" + - "bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAoqVTciHtcvsUj+YaTct8tUh3aTCsKsac\n" + - "PHhfQ+ObjiXSgxsKYTX7ym/wk/wvlbUcbqLKxsu7qrcJitH+H9heV1hEHEu65Uoi\n" + - "nRugFruyOrwvAylV8Cm2af7ddilmYJ+sdJA6N2M3xJRxR0G2LFHEXDNEjYReyexn\n" + - "JqCpf5uZGOo=\n" + + "MIIDpTCCAo2gAwIBAgIEBlY/nzANBgkqhkiG9w0BAQUFADBJMQswCQYDVQQGEwJV\n" + + "czETMBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYD\n" + + "VQQKEwhTb21lLU9yZzAeFw0yNDA3MDEwNDE2NTVaFw0zNDA3MDIwNDE2NTVaMGsx\n" + + "CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21l\n" + + "LUNpdHkxETAPBgNVBAoTCFNvbWUtT3JnMSAwHgYDVQQDExdsb2NhbGhvc3Qgb3U9\n" + + "U1NMLVNlcnZlcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJoM4I+o\n" + + "An5a7+2yQq0ITpG6wq2bedebD/3S+BUvGYmAEAACGW0nwpDXpSNTdG5kKHwkqu3q\n" + + "IVnco1y1yUIxT6Le+wl8c+2IBDTxFa09YM3KxROZ05+bspJwy7pLPSCWrb6SU+1U\n" + + "O8UUvc/UD8sFT/0rnuBQu2UTksDWvU0CDHC2ZdR9tE3D3ywIntI+aTJGb2/K0XOk\n" + + "lAfvFOPani/ArA4QM0xoefN5QNbpPMLmcOCJzqB6qIQohTI3CLDPsX9fvB+lPe/W\n" + + "aKgXIV+H1Uu1zO54jd2xKGrA+2S9t3ACMwMLuLi7CIL2jgUn0TvmxaxNhVuhHaNI\n" + + "XQMVdmNscSE+mM0CAwEAAaNzMHEwHQYDVR0OBBYEFFyvRLFIuFmaZFOdLqayCdMK\n" + + "kgSDMAsGA1UdDwQEAwIF4DAXBgNVHREBAf8EDTALgglsb2NhbGhvc3QwCQYDVR0T\n" + + "BAIwADAfBgNVHSMEGDAWgBTgA5D2T7tX5n6vXJQls4XaFgpRQDANBgkqhkiG9w0B\n" + + "AQUFAAOCAQEAnSJJX1Yj5oA1zKtEHCe9yY2Jk0lY6MF6aN3PveASdgZUzS9im1SE\n" + + "8ruQoLs34hMd899BquD+wO9GeI2q9BtwrakWJPoVSsYKjeGZkwCp1LYIXY5lA9zQ\n" + + "lfyVYaattatNpuAFSIzbQkKK1l7AKqARFbgHaVw/maC9U2XbTs9GYZMJe4FA/1z+\n" + + "TOv0rN4fOK2yYCj2Dp9G5wePIJqk4Y+rVJl2gtiecMTamIVxrztU5AG0noPQe8aN\n" + + "H+0lCIkF6YeXdlqjhcP4Wde7O1rby+1d/6whuZriZQq83tHcU5SYRJeRsxtrgAub\n" + + "V7OuXHw1yjlx906PStfrCyXash4XSLjrCQ==\n" + "-----END CERTIFICATE-----"; static String clientCertStr = "-----BEGIN CERTIFICATE-----\n" + - "MIICpDCCAg2gAwIBAgIBCTANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" + - "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" + - "EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMjRaFw0yODA4MjUwMzQzMjRaMHIxCzAJ\n" + - "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" + - "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD\n" + - "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas\n" + - "JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV\n" + - "8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq\n" + - "ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjczBxMAkGA1UdEwQCMAAw\n" + - "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV\n" + - "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh\n" + - "bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAm25gJyqW1JznQ1EyOtTGswBVwfgBOf+F\n" + - "HJuBTcflYQLbTD/AETPQJGvZU9tdhuLtbG3OPhR7vSY8zeAbfM3dbH7QFr3r47Gj\n" + - "XEH7qM/MX+Z3ifVaC4MeJmrYQkYFSuKeyyKpdRVX4w4nnFHF6OsNASsYrMW6LpxN\n" + - "cl/epUcHL7E=\n" + + "MIIDpTCCAo2gAwIBAgIEWXLa2zANBgkqhkiG9w0BAQUFADBJMQswCQYDVQQGEwJV\n" + + "czETMBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYD\n" + + "VQQKEwhTb21lLU9yZzAeFw0yNDA3MDEwNDE2NTJaFw0zNDA3MDIwNDE2NTJaMGsx\n" + + "CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21l\n" + + "LUNpdHkxETAPBgNVBAoTCFNvbWUtT3JnMSAwHgYDVQQDExdsb2NhbGhvc3Qgb3U9\n" + + "U1NMLUNsaWVudDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMy/kjym\n" + + "V3QfWK3HaYhvWTJHUGAi5JhJDj4duLriO7ZxW/1kAm0NUHdybqg9XdS9H3ZR3JrQ\n" + + "1j7QMaUkWiy+d/qIofoGQcgPR3BHJJlQUkRbMGJbZTXEKLBc7tAb6zkrC6Gslkja\n" + + "Vmzg4+bj3UXLUTONQEPX8KQxqrXA30vfKwrtfhAMrh+WohAea9D5N4vfDQ4CNfhY\n" + + "vG61Vw4v6iDmc5rla4JwJbtRmnyd4lA9zx4kPpJVzyqtDYSPqEMkza1QZHTCc7bh\n" + + "khyyK4wte5amQWFcG494KFFA7UGQzh24JoFHa+NXQXROIPBaG5c3kYYZxfJtBMl4\n" + + "K1oWvPwrcVvQAE8CAwEAAaNzMHEwHQYDVR0OBBYEFM1F4gWSiKPHSSjn0ze3E5L7\n" + + "sTbEMAsGA1UdDwQEAwIF4DAXBgNVHREBAf8EDTALgglsb2NhbGhvc3QwCQYDVR0T\n" + + "BAIwADAfBgNVHSMEGDAWgBTgA5D2T7tX5n6vXJQls4XaFgpRQDANBgkqhkiG9w0B\n" + + "AQUFAAOCAQEAI27pXYANs4bJzReBM71bqsBlTGuf+u4y6Ynh0McdXEN+lKyDr5GQ\n" + + "TCZhjf5rGqpuYTmzJErcksjK8oCwBUEMs93tt4FCmh5O8oBscmKLvdTNI3186G/j\n" + + "Z4lqeRnd9ldiEvrrzWbD0thAWhzdf5+yNOkq1hRSum6omw2poQO/xA2SPVnkqY4g\n" + + "QTmZgXCd0GiY/F9JSpLlosFRYfYeSVYLtoxX2wgq8KME3KEEolzQkE8TjRzmLnpj\n" + + "nDJAZVkEXXGQWqjbajBCV1sL386hH/ojcfNXEsQcZjs3dzIop/ut7oZRTIAv3chb\n" + + "n6cVB/orWu6TAF+mQyIbQFIVZgGEMp5xIQ==\n" + "-----END CERTIFICATE-----"; static byte serverPrivateExponent[] = { - (byte)0x6e, (byte)0xa7, (byte)0x1b, (byte)0x83, - (byte)0x51, (byte)0x35, (byte)0x9a, (byte)0x44, - (byte)0x7d, (byte)0xf6, (byte)0xe3, (byte)0x89, - (byte)0xa0, (byte)0xd7, (byte)0x90, (byte)0x60, - (byte)0xa1, (byte)0x4e, (byte)0x27, (byte)0x21, - (byte)0xa2, (byte)0x89, (byte)0x74, (byte)0xcc, - (byte)0x9d, (byte)0x75, (byte)0x75, (byte)0x4e, - (byte)0xc7, (byte)0x82, (byte)0xe3, (byte)0xe3, - (byte)0xc3, (byte)0x7d, (byte)0x00, (byte)0x54, - (byte)0xec, (byte)0x36, (byte)0xb1, (byte)0xdf, - (byte)0x91, (byte)0x9c, (byte)0x7a, (byte)0xc0, - (byte)0x62, (byte)0x0a, (byte)0xd6, (byte)0xa9, - (byte)0x22, (byte)0x91, (byte)0x4a, (byte)0x29, - (byte)0x2e, (byte)0x43, (byte)0xfa, (byte)0x8c, - (byte)0xd8, (byte)0xe9, (byte)0xbe, (byte)0xd9, - (byte)0x4f, (byte)0xca, (byte)0x23, (byte)0xc6, - (byte)0xe4, (byte)0x3f, (byte)0xb8, (byte)0x72, - (byte)0xcf, (byte)0x02, (byte)0xfc, (byte)0xf4, - (byte)0x58, (byte)0x34, (byte)0x77, (byte)0x76, - (byte)0xce, (byte)0x22, (byte)0x44, (byte)0x5f, - (byte)0x2d, (byte)0xca, (byte)0xee, (byte)0xf5, - (byte)0x43, (byte)0x56, (byte)0x47, (byte)0x71, - (byte)0x0b, (byte)0x09, (byte)0x6b, (byte)0x5e, - (byte)0xf2, (byte)0xc8, (byte)0xee, (byte)0xd4, - (byte)0x6e, (byte)0x44, (byte)0x92, (byte)0x2a, - (byte)0x7f, (byte)0xcc, (byte)0xa7, (byte)0xd4, - (byte)0x5b, (byte)0xfb, (byte)0xf7, (byte)0x4a, - (byte)0xa9, (byte)0xfb, (byte)0x54, (byte)0x18, - (byte)0xd5, (byte)0xd5, (byte)0x14, (byte)0xba, - (byte)0xa0, (byte)0x1c, (byte)0x13, (byte)0xb3, - (byte)0x37, (byte)0x6b, (byte)0x37, (byte)0x59, - (byte)0xed, (byte)0xdb, (byte)0x6d, (byte)0xb1 + (byte)0x68, (byte)0x87, (byte)0x36, (byte)0x54, + (byte)0xa3, (byte)0xc6, (byte)0xd5, (byte)0x5f, + (byte)0xf5, (byte)0x0f, (byte)0x4f, (byte)0x76, + (byte)0xc8, (byte)0x9c, (byte)0x2b, (byte)0x5b, + (byte)0xdc, (byte)0xe2, (byte)0xbe, (byte)0x14, + (byte)0x12, (byte)0x2f, (byte)0xc7, (byte)0x0a, + (byte)0xa9, (byte)0xcb, (byte)0x5e, (byte)0x04, + (byte)0x59, (byte)0xca, (byte)0x35, (byte)0x2f, + (byte)0x8d, (byte)0x2b, (byte)0xc4, (byte)0x40, + (byte)0xe6, (byte)0x7d, (byte)0x25, (byte)0x1b, + (byte)0x4d, (byte)0x07, (byte)0xc3, (byte)0x99, + (byte)0x9c, (byte)0x16, (byte)0x4f, (byte)0xa5, + (byte)0xdc, (byte)0xde, (byte)0xb0, (byte)0x90, + (byte)0xf0, (byte)0xde, (byte)0x22, (byte)0x70, + (byte)0x80, (byte)0xf4, (byte)0xa6, (byte)0x70, + (byte)0xe2, (byte)0x96, (byte)0x3d, (byte)0x18, + (byte)0x21, (byte)0xbf, (byte)0x2b, (byte)0x27, + (byte)0xa4, (byte)0x2d, (byte)0xd7, (byte)0xae, + (byte)0x2b, (byte)0x12, (byte)0x2f, (byte)0x08, + (byte)0x36, (byte)0xee, (byte)0x99, (byte)0x94, + (byte)0xed, (byte)0xf6, (byte)0xa7, (byte)0xd9, + (byte)0x1d, (byte)0xa2, (byte)0xf3, (byte)0x1f, + (byte)0x44, (byte)0xa4, (byte)0x28, (byte)0x4b, + (byte)0x67, (byte)0x35, (byte)0xd6, (byte)0xa8, + (byte)0x1b, (byte)0xf8, (byte)0x84, (byte)0x34, + (byte)0x34, (byte)0x84, (byte)0xbd, (byte)0xec, + (byte)0x9e, (byte)0x03, (byte)0x08, (byte)0x3c, + (byte)0x93, (byte)0x20, (byte)0x8e, (byte)0xaf, + (byte)0x15, (byte)0xcb, (byte)0x1f, (byte)0x20, + (byte)0x08, (byte)0x97, (byte)0xc4, (byte)0x19, + (byte)0x3e, (byte)0xfa, (byte)0x36, (byte)0xc6, + (byte)0xab, (byte)0x0e, (byte)0x2f, (byte)0xe7, + (byte)0xb3, (byte)0xc0, (byte)0xa7, (byte)0xbc, + (byte)0xe4, (byte)0xe0, (byte)0xa6, (byte)0x08, + (byte)0x1c, (byte)0x69, (byte)0x20, (byte)0x4d, + (byte)0x78, (byte)0xbd, (byte)0x7a, (byte)0xe5, + (byte)0x25, (byte)0x48, (byte)0x60, (byte)0x9e, + (byte)0x2e, (byte)0x50, (byte)0x8d, (byte)0x36, + (byte)0x1e, (byte)0x07, (byte)0xe9, (byte)0xd5, + (byte)0x0d, (byte)0x39, (byte)0x67, (byte)0x41, + (byte)0x42, (byte)0x24, (byte)0xdb, (byte)0x87, + (byte)0xe5, (byte)0x77, (byte)0x76, (byte)0xfd, + (byte)0x5e, (byte)0xd5, (byte)0xc6, (byte)0xe5, + (byte)0xd3, (byte)0xb0, (byte)0x98, (byte)0x71, + (byte)0x48, (byte)0x69, (byte)0x47, (byte)0x4f, + (byte)0x46, (byte)0x05, (byte)0x0c, (byte)0x9e, + (byte)0x58, (byte)0x45, (byte)0x2e, (byte)0xe2, + (byte)0x27, (byte)0xd0, (byte)0xf6, (byte)0x11, + (byte)0x05, (byte)0x78, (byte)0xad, (byte)0x83, + (byte)0x5a, (byte)0x5b, (byte)0xec, (byte)0xd7, + (byte)0x2e, (byte)0x26, (byte)0x5a, (byte)0xa5, + (byte)0x4f, (byte)0x9e, (byte)0x52, (byte)0x84, + (byte)0x2c, (byte)0x1f, (byte)0x59, (byte)0x1a, + (byte)0x78, (byte)0x56, (byte)0x0a, (byte)0x44, + (byte)0x54, (byte)0xc6, (byte)0x37, (byte)0x64, + (byte)0x01, (byte)0xca, (byte)0xe4, (byte)0xa8, + (byte)0x01, (byte)0xc7, (byte)0x86, (byte)0xc1, + (byte)0xb4, (byte)0xd6, (byte)0x6c, (byte)0x7a, + (byte)0x15, (byte)0x9a, (byte)0x65, (byte)0x69, + (byte)0x46, (byte)0x9e, (byte)0xfd, (byte)0xf6, + (byte)0x08, (byte)0x17, (byte)0x0c, (byte)0x6c, + (byte)0xac, (byte)0x38, (byte)0xbd, (byte)0xc2, + (byte)0xcd, (byte)0xda, (byte)0xef, (byte)0x54, + (byte)0x7a, (byte)0x48, (byte)0x92, (byte)0x4d }; static byte serverModulus[] = { - (byte)0x00, - (byte)0xa5, (byte)0xac, (byte)0x5b, (byte)0x1c, - (byte)0x37, (byte)0xa2, (byte)0xdd, (byte)0x99, - (byte)0x89, (byte)0x2d, (byte)0xb2, (byte)0x79, - (byte)0xb8, (byte)0x8f, (byte)0xd5, (byte)0x48, - (byte)0xa5, (byte)0xe7, (byte)0x1c, (byte)0x84, - (byte)0x17, (byte)0x8d, (byte)0x69, (byte)0x9c, - (byte)0xc6, (byte)0xac, (byte)0x6d, (byte)0xf9, - (byte)0xf2, (byte)0x1d, (byte)0x1f, (byte)0x39, - (byte)0x19, (byte)0xda, (byte)0xd3, (byte)0x72, - (byte)0x1e, (byte)0x6e, (byte)0xec, (byte)0x44, - (byte)0xcc, (byte)0x70, (byte)0xa4, (byte)0xdc, - (byte)0xba, (byte)0x00, (byte)0x30, (byte)0xf6, - (byte)0xa0, (byte)0x4f, (byte)0x3d, (byte)0x54, - (byte)0x7a, (byte)0x61, (byte)0x6a, (byte)0xcc, - (byte)0x57, (byte)0xd0, (byte)0x0a, (byte)0x7f, - (byte)0x95, (byte)0x28, (byte)0x18, (byte)0x3f, - (byte)0x9a, (byte)0xd9, (byte)0x94, (byte)0xf2, - (byte)0x1b, (byte)0xc8, (byte)0x24, (byte)0x88, - (byte)0x7e, (byte)0xfe, (byte)0x9d, (byte)0x0f, - (byte)0x3d, (byte)0xfb, (byte)0x57, (byte)0x53, - (byte)0x08, (byte)0xb3, (byte)0x20, (byte)0x33, - (byte)0xd4, (byte)0x3f, (byte)0x17, (byte)0x47, - (byte)0x14, (byte)0xd1, (byte)0xcd, (byte)0xea, - (byte)0x08, (byte)0xd8, (byte)0x0e, (byte)0x75, - (byte)0x4e, (byte)0xaf, (byte)0xbe, (byte)0xcc, - (byte)0xd2, (byte)0xec, (byte)0xaf, (byte)0xa9, - (byte)0x7a, (byte)0x49, (byte)0xdf, (byte)0xc2, - (byte)0xd9, (byte)0xac, (byte)0xb8, (byte)0x24, - (byte)0x40, (byte)0x90, (byte)0xa6, (byte)0x03, - (byte)0x56, (byte)0x2a, (byte)0xd0, (byte)0x30, - (byte)0x05, (byte)0x40, (byte)0x2c, (byte)0x4f, - (byte)0xab, (byte)0xd9, (byte)0x74, (byte)0x89 + (byte)0x00, (byte)0x9a, (byte)0x0c, (byte)0xe0, + (byte)0x8f, (byte)0xa8, (byte)0x02, (byte)0x7e, + (byte)0x5a, (byte)0xef, (byte)0xed, (byte)0xb2, + (byte)0x42, (byte)0xad, (byte)0x08, (byte)0x4e, + (byte)0x91, (byte)0xba, (byte)0xc2, (byte)0xad, + (byte)0x9b, (byte)0x79, (byte)0xd7, (byte)0x9b, + (byte)0x0f, (byte)0xfd, (byte)0xd2, (byte)0xf8, + (byte)0x15, (byte)0x2f, (byte)0x19, (byte)0x89, + (byte)0x80, (byte)0x10, (byte)0x00, (byte)0x02, + (byte)0x19, (byte)0x6d, (byte)0x27, (byte)0xc2, + (byte)0x90, (byte)0xd7, (byte)0xa5, (byte)0x23, + (byte)0x53, (byte)0x74, (byte)0x6e, (byte)0x64, + (byte)0x28, (byte)0x7c, (byte)0x24, (byte)0xaa, + (byte)0xed, (byte)0xea, (byte)0x21, (byte)0x59, + (byte)0xdc, (byte)0xa3, (byte)0x5c, (byte)0xb5, + (byte)0xc9, (byte)0x42, (byte)0x31, (byte)0x4f, + (byte)0xa2, (byte)0xde, (byte)0xfb, (byte)0x09, + (byte)0x7c, (byte)0x73, (byte)0xed, (byte)0x88, + (byte)0x04, (byte)0x34, (byte)0xf1, (byte)0x15, + (byte)0xad, (byte)0x3d, (byte)0x60, (byte)0xcd, + (byte)0xca, (byte)0xc5, (byte)0x13, (byte)0x99, + (byte)0xd3, (byte)0x9f, (byte)0x9b, (byte)0xb2, + (byte)0x92, (byte)0x70, (byte)0xcb, (byte)0xba, + (byte)0x4b, (byte)0x3d, (byte)0x20, (byte)0x96, + (byte)0xad, (byte)0xbe, (byte)0x92, (byte)0x53, + (byte)0xed, (byte)0x54, (byte)0x3b, (byte)0xc5, + (byte)0x14, (byte)0xbd, (byte)0xcf, (byte)0xd4, + (byte)0x0f, (byte)0xcb, (byte)0x05, (byte)0x4f, + (byte)0xfd, (byte)0x2b, (byte)0x9e, (byte)0xe0, + (byte)0x50, (byte)0xbb, (byte)0x65, (byte)0x13, + (byte)0x92, (byte)0xc0, (byte)0xd6, (byte)0xbd, + (byte)0x4d, (byte)0x02, (byte)0x0c, (byte)0x70, + (byte)0xb6, (byte)0x65, (byte)0xd4, (byte)0x7d, + (byte)0xb4, (byte)0x4d, (byte)0xc3, (byte)0xdf, + (byte)0x2c, (byte)0x08, (byte)0x9e, (byte)0xd2, + (byte)0x3e, (byte)0x69, (byte)0x32, (byte)0x46, + (byte)0x6f, (byte)0x6f, (byte)0xca, (byte)0xd1, + (byte)0x73, (byte)0xa4, (byte)0x94, (byte)0x07, + (byte)0xef, (byte)0x14, (byte)0xe3, (byte)0xda, + (byte)0x9e, (byte)0x2f, (byte)0xc0, (byte)0xac, + (byte)0x0e, (byte)0x10, (byte)0x33, (byte)0x4c, + (byte)0x68, (byte)0x79, (byte)0xf3, (byte)0x79, + (byte)0x40, (byte)0xd6, (byte)0xe9, (byte)0x3c, + (byte)0xc2, (byte)0xe6, (byte)0x70, (byte)0xe0, + (byte)0x89, (byte)0xce, (byte)0xa0, (byte)0x7a, + (byte)0xa8, (byte)0x84, (byte)0x28, (byte)0x85, + (byte)0x32, (byte)0x37, (byte)0x08, (byte)0xb0, + (byte)0xcf, (byte)0xb1, (byte)0x7f, (byte)0x5f, + (byte)0xbc, (byte)0x1f, (byte)0xa5, (byte)0x3d, + (byte)0xef, (byte)0xd6, (byte)0x68, (byte)0xa8, + (byte)0x17, (byte)0x21, (byte)0x5f, (byte)0x87, + (byte)0xd5, (byte)0x4b, (byte)0xb5, (byte)0xcc, + (byte)0xee, (byte)0x78, (byte)0x8d, (byte)0xdd, + (byte)0xb1, (byte)0x28, (byte)0x6a, (byte)0xc0, + (byte)0xfb, (byte)0x64, (byte)0xbd, (byte)0xb7, + (byte)0x70, (byte)0x02, (byte)0x33, (byte)0x03, + (byte)0x0b, (byte)0xb8, (byte)0xb8, (byte)0xbb, + (byte)0x08, (byte)0x82, (byte)0xf6, (byte)0x8e, + (byte)0x05, (byte)0x27, (byte)0xd1, (byte)0x3b, + (byte)0xe6, (byte)0xc5, (byte)0xac, (byte)0x4d, + (byte)0x85, (byte)0x5b, (byte)0xa1, (byte)0x1d, + (byte)0xa3, (byte)0x48, (byte)0x5d, (byte)0x03, + (byte)0x15, (byte)0x76, (byte)0x63, (byte)0x6c, + (byte)0x71, (byte)0x21, (byte)0x3e, (byte)0x98, + (byte)0xcd }; static byte clientPrivateExponent[] = { - (byte)0x11, (byte)0xb7, (byte)0x6a, (byte)0x36, - (byte)0x3d, (byte)0x30, (byte)0x37, (byte)0xce, - (byte)0x61, (byte)0x9d, (byte)0x6c, (byte)0x84, - (byte)0x8b, (byte)0xf3, (byte)0x9b, (byte)0x25, - (byte)0x4f, (byte)0x14, (byte)0xc8, (byte)0xa4, - (byte)0xdd, (byte)0x2f, (byte)0xd7, (byte)0x9a, - (byte)0x17, (byte)0xbd, (byte)0x90, (byte)0x19, - (byte)0xf7, (byte)0x05, (byte)0xfd, (byte)0xf2, - (byte)0xd2, (byte)0xc5, (byte)0xf7, (byte)0x77, - (byte)0xbe, (byte)0xea, (byte)0xe2, (byte)0x84, - (byte)0x87, (byte)0x97, (byte)0x3a, (byte)0x41, - (byte)0x96, (byte)0xb6, (byte)0x99, (byte)0xf8, - (byte)0x94, (byte)0x8c, (byte)0x58, (byte)0x71, - (byte)0x51, (byte)0x8c, (byte)0xf4, (byte)0x2a, - (byte)0x20, (byte)0x9e, (byte)0x1a, (byte)0xa0, - (byte)0x26, (byte)0x99, (byte)0x75, (byte)0xd6, - (byte)0x31, (byte)0x53, (byte)0x43, (byte)0x39, - (byte)0xf5, (byte)0x2a, (byte)0xa6, (byte)0x7e, - (byte)0x34, (byte)0x42, (byte)0x51, (byte)0x2a, - (byte)0x40, (byte)0x87, (byte)0x03, (byte)0x88, - (byte)0x43, (byte)0x69, (byte)0xb2, (byte)0x89, - (byte)0x6d, (byte)0x20, (byte)0xbd, (byte)0x7d, - (byte)0x71, (byte)0xef, (byte)0x47, (byte)0x0a, - (byte)0xdf, (byte)0x06, (byte)0xc1, (byte)0x69, - (byte)0x66, (byte)0xa8, (byte)0x22, (byte)0x37, - (byte)0x1a, (byte)0x77, (byte)0x1e, (byte)0xc7, - (byte)0x94, (byte)0x4e, (byte)0x2c, (byte)0x27, - (byte)0x69, (byte)0x45, (byte)0x5e, (byte)0xc8, - (byte)0xf8, (byte)0x0c, (byte)0xb7, (byte)0xf8, - (byte)0xc0, (byte)0x8f, (byte)0x99, (byte)0xc1, - (byte)0xe5, (byte)0x28, (byte)0x9b, (byte)0xf9, - (byte)0x4c, (byte)0x94, (byte)0xc6, (byte)0xb1 + (byte)0x62, (byte)0xb2, (byte)0xd6, (byte)0x63, + (byte)0xb6, (byte)0x2b, (byte)0xe2, (byte)0x26, + (byte)0x5a, (byte)0x31, (byte)0x2b, (byte)0x37, + (byte)0x8c, (byte)0x35, (byte)0x60, (byte)0xe2, + (byte)0x03, (byte)0xce, (byte)0x93, (byte)0x09, + (byte)0x3e, (byte)0xf8, (byte)0xc9, (byte)0xfe, + (byte)0xbb, (byte)0xa2, (byte)0xc8, (byte)0x32, + (byte)0x0e, (byte)0x6c, (byte)0x8a, (byte)0x7e, + (byte)0x0a, (byte)0xc2, (byte)0x13, (byte)0x3b, + (byte)0xb8, (byte)0x25, (byte)0xfa, (byte)0xec, + (byte)0x19, (byte)0x95, (byte)0x8e, (byte)0x34, + (byte)0x46, (byte)0xcf, (byte)0x0e, (byte)0x7b, + (byte)0xe4, (byte)0x25, (byte)0x82, (byte)0x1a, + (byte)0x7f, (byte)0x21, (byte)0x48, (byte)0x16, + (byte)0x44, (byte)0x58, (byte)0x3f, (byte)0x35, + (byte)0xd8, (byte)0xeb, (byte)0xd8, (byte)0x1a, + (byte)0x45, (byte)0x53, (byte)0x0f, (byte)0x9b, + (byte)0x84, (byte)0x8a, (byte)0x54, (byte)0x13, + (byte)0x33, (byte)0xe4, (byte)0x97, (byte)0x97, + (byte)0xf0, (byte)0x48, (byte)0x37, (byte)0xfb, + (byte)0x5d, (byte)0x4f, (byte)0x8c, (byte)0x8f, + (byte)0x35, (byte)0x63, (byte)0xe1, (byte)0xd9, + (byte)0x62, (byte)0x73, (byte)0x1c, (byte)0x8e, + (byte)0xd8, (byte)0xcd, (byte)0x2e, (byte)0x1a, + (byte)0xe5, (byte)0x4c, (byte)0xb5, (byte)0x05, + (byte)0x59, (byte)0x7a, (byte)0xdf, (byte)0xf1, + (byte)0x68, (byte)0xeb, (byte)0x1c, (byte)0x5c, + (byte)0xc6, (byte)0x10, (byte)0x44, (byte)0x8c, + (byte)0x7d, (byte)0x42, (byte)0xc5, (byte)0x71, + (byte)0x8a, (byte)0xe7, (byte)0x1b, (byte)0xaa, + (byte)0x17, (byte)0x03, (byte)0x6a, (byte)0xa0, + (byte)0xc0, (byte)0x6b, (byte)0x97, (byte)0x50, + (byte)0x17, (byte)0xad, (byte)0x6e, (byte)0x5e, + (byte)0xd9, (byte)0xdb, (byte)0x6f, (byte)0x3e, + (byte)0xe9, (byte)0x3f, (byte)0x35, (byte)0xc3, + (byte)0x45, (byte)0xbc, (byte)0xe8, (byte)0x3d, + (byte)0x5a, (byte)0xb4, (byte)0xb9, (byte)0x3f, + (byte)0x53, (byte)0x80, (byte)0x64, (byte)0xdc, + (byte)0x12, (byte)0x24, (byte)0x35, (byte)0x35, + (byte)0xbd, (byte)0x98, (byte)0xbb, (byte)0x8d, + (byte)0xfa, (byte)0x19, (byte)0xa3, (byte)0x5e, + (byte)0x9e, (byte)0xac, (byte)0x70, (byte)0x4a, + (byte)0xfc, (byte)0x8d, (byte)0xae, (byte)0x55, + (byte)0x8b, (byte)0x71, (byte)0x81, (byte)0x0e, + (byte)0x4d, (byte)0xc8, (byte)0x2f, (byte)0x87, + (byte)0xb0, (byte)0x44, (byte)0xf7, (byte)0x4f, + (byte)0xdc, (byte)0xa8, (byte)0xc8, (byte)0x50, + (byte)0xb5, (byte)0x95, (byte)0x24, (byte)0x63, + (byte)0x74, (byte)0x13, (byte)0x54, (byte)0x58, + (byte)0xde, (byte)0xfc, (byte)0xe0, (byte)0x75, + (byte)0xeb, (byte)0xf4, (byte)0x06, (byte)0x58, + (byte)0x83, (byte)0x12, (byte)0x4c, (byte)0x56, + (byte)0xc4, (byte)0xc4, (byte)0x18, (byte)0x0c, + (byte)0xea, (byte)0xa3, (byte)0xe7, (byte)0x25, + (byte)0xa3, (byte)0xde, (byte)0x19, (byte)0x23, + (byte)0xa2, (byte)0x5a, (byte)0x2a, (byte)0xb6, + (byte)0x56, (byte)0x04, (byte)0xbc, (byte)0x65, + (byte)0xba, (byte)0x7c, (byte)0x0a, (byte)0xf4, + (byte)0x91, (byte)0x10, (byte)0x22, (byte)0x88, + (byte)0x3f, (byte)0x9d, (byte)0xbe, (byte)0x58, + (byte)0x43, (byte)0x4c, (byte)0x2e, (byte)0xad, + (byte)0xdb, (byte)0xd6, (byte)0x32, (byte)0xcf, + (byte)0x8e, (byte)0xb5, (byte)0x05, (byte)0x55, + (byte)0x39, (byte)0x8b, (byte)0xe1, (byte)0x01 }; static byte clientModulus[] = { - (byte)0x00, - (byte)0xbb, (byte)0xf0, (byte)0x40, (byte)0x36, - (byte)0xac, (byte)0x26, (byte)0x54, (byte)0x4e, - (byte)0xf4, (byte)0xa3, (byte)0x5a, (byte)0x00, - (byte)0x2f, (byte)0x69, (byte)0x21, (byte)0x6f, - (byte)0xb9, (byte)0x7a, (byte)0x3a, (byte)0x93, - (byte)0xec, (byte)0xa2, (byte)0xf6, (byte)0xe1, - (byte)0x8e, (byte)0xc7, (byte)0x63, (byte)0xd8, - (byte)0x2f, (byte)0x12, (byte)0x30, (byte)0x99, - (byte)0x2e, (byte)0xb0, (byte)0xf2, (byte)0x8f, - (byte)0xf8, (byte)0x27, (byte)0x2d, (byte)0x24, - (byte)0x78, (byte)0x28, (byte)0x84, (byte)0xf7, - (byte)0x01, (byte)0xbf, (byte)0x8d, (byte)0x44, - (byte)0x79, (byte)0xdd, (byte)0x3b, (byte)0xd2, - (byte)0x55, (byte)0xf3, (byte)0xce, (byte)0x3c, - (byte)0xb2, (byte)0x5b, (byte)0x21, (byte)0x7d, - (byte)0xef, (byte)0xfd, (byte)0x33, (byte)0x4a, - (byte)0xb1, (byte)0xa3, (byte)0xff, (byte)0xc6, - (byte)0xc8, (byte)0x9b, (byte)0xb9, (byte)0x0f, - (byte)0x7c, (byte)0x41, (byte)0x35, (byte)0x97, - (byte)0xf9, (byte)0xdb, (byte)0x3a, (byte)0x05, - (byte)0x60, (byte)0x05, (byte)0x15, (byte)0xaf, - (byte)0x59, (byte)0x17, (byte)0x92, (byte)0xa3, - (byte)0x10, (byte)0xad, (byte)0x16, (byte)0x1c, - (byte)0xe4, (byte)0x07, (byte)0x53, (byte)0xaf, - (byte)0xa8, (byte)0x76, (byte)0xa2, (byte)0x56, - (byte)0x2a, (byte)0x92, (byte)0xd3, (byte)0xf9, - (byte)0x28, (byte)0xe0, (byte)0x78, (byte)0xcf, - (byte)0x5e, (byte)0x1f, (byte)0x48, (byte)0xab, - (byte)0x5c, (byte)0x19, (byte)0xdd, (byte)0xe1, - (byte)0x67, (byte)0x43, (byte)0xba, (byte)0x75, - (byte)0x8d, (byte)0xf5, (byte)0x82, (byte)0xac, - (byte)0x43, (byte)0x92, (byte)0x44, (byte)0x1b + (byte)0x00, (byte)0xcc, (byte)0xbf, (byte)0x92, + (byte)0x3c, (byte)0xa6, (byte)0x57, (byte)0x74, + (byte)0x1f, (byte)0x58, (byte)0xad, (byte)0xc7, + (byte)0x69, (byte)0x88, (byte)0x6f, (byte)0x59, + (byte)0x32, (byte)0x47, (byte)0x50, (byte)0x60, + (byte)0x22, (byte)0xe4, (byte)0x98, (byte)0x49, + (byte)0x0e, (byte)0x3e, (byte)0x1d, (byte)0xb8, + (byte)0xba, (byte)0xe2, (byte)0x3b, (byte)0xb6, + (byte)0x71, (byte)0x5b, (byte)0xfd, (byte)0x64, + (byte)0x02, (byte)0x6d, (byte)0x0d, (byte)0x50, + (byte)0x77, (byte)0x72, (byte)0x6e, (byte)0xa8, + (byte)0x3d, (byte)0x5d, (byte)0xd4, (byte)0xbd, + (byte)0x1f, (byte)0x76, (byte)0x51, (byte)0xdc, + (byte)0x9a, (byte)0xd0, (byte)0xd6, (byte)0x3e, + (byte)0xd0, (byte)0x31, (byte)0xa5, (byte)0x24, + (byte)0x5a, (byte)0x2c, (byte)0xbe, (byte)0x77, + (byte)0xfa, (byte)0x88, (byte)0xa1, (byte)0xfa, + (byte)0x06, (byte)0x41, (byte)0xc8, (byte)0x0f, + (byte)0x47, (byte)0x70, (byte)0x47, (byte)0x24, + (byte)0x99, (byte)0x50, (byte)0x52, (byte)0x44, + (byte)0x5b, (byte)0x30, (byte)0x62, (byte)0x5b, + (byte)0x65, (byte)0x35, (byte)0xc4, (byte)0x28, + (byte)0xb0, (byte)0x5c, (byte)0xee, (byte)0xd0, + (byte)0x1b, (byte)0xeb, (byte)0x39, (byte)0x2b, + (byte)0x0b, (byte)0xa1, (byte)0xac, (byte)0x96, + (byte)0x48, (byte)0xda, (byte)0x56, (byte)0x6c, + (byte)0xe0, (byte)0xe3, (byte)0xe6, (byte)0xe3, + (byte)0xdd, (byte)0x45, (byte)0xcb, (byte)0x51, + (byte)0x33, (byte)0x8d, (byte)0x40, (byte)0x43, + (byte)0xd7, (byte)0xf0, (byte)0xa4, (byte)0x31, + (byte)0xaa, (byte)0xb5, (byte)0xc0, (byte)0xdf, + (byte)0x4b, (byte)0xdf, (byte)0x2b, (byte)0x0a, + (byte)0xed, (byte)0x7e, (byte)0x10, (byte)0x0c, + (byte)0xae, (byte)0x1f, (byte)0x96, (byte)0xa2, + (byte)0x10, (byte)0x1e, (byte)0x6b, (byte)0xd0, + (byte)0xf9, (byte)0x37, (byte)0x8b, (byte)0xdf, + (byte)0x0d, (byte)0x0e, (byte)0x02, (byte)0x35, + (byte)0xf8, (byte)0x58, (byte)0xbc, (byte)0x6e, + (byte)0xb5, (byte)0x57, (byte)0x0e, (byte)0x2f, + (byte)0xea, (byte)0x20, (byte)0xe6, (byte)0x73, + (byte)0x9a, (byte)0xe5, (byte)0x6b, (byte)0x82, + (byte)0x70, (byte)0x25, (byte)0xbb, (byte)0x51, + (byte)0x9a, (byte)0x7c, (byte)0x9d, (byte)0xe2, + (byte)0x50, (byte)0x3d, (byte)0xcf, (byte)0x1e, + (byte)0x24, (byte)0x3e, (byte)0x92, (byte)0x55, + (byte)0xcf, (byte)0x2a, (byte)0xad, (byte)0x0d, + (byte)0x84, (byte)0x8f, (byte)0xa8, (byte)0x43, + (byte)0x24, (byte)0xcd, (byte)0xad, (byte)0x50, + (byte)0x64, (byte)0x74, (byte)0xc2, (byte)0x73, + (byte)0xb6, (byte)0xe1, (byte)0x92, (byte)0x1c, + (byte)0xb2, (byte)0x2b, (byte)0x8c, (byte)0x2d, + (byte)0x7b, (byte)0x96, (byte)0xa6, (byte)0x41, + (byte)0x61, (byte)0x5c, (byte)0x1b, (byte)0x8f, + (byte)0x78, (byte)0x28, (byte)0x51, (byte)0x40, + (byte)0xed, (byte)0x41, (byte)0x90, (byte)0xce, + (byte)0x1d, (byte)0xb8, (byte)0x26, (byte)0x81, + (byte)0x47, (byte)0x6b, (byte)0xe3, (byte)0x57, + (byte)0x41, (byte)0x74, (byte)0x4e, (byte)0x20, + (byte)0xf0, (byte)0x5a, (byte)0x1b, (byte)0x97, + (byte)0x37, (byte)0x91, (byte)0x86, (byte)0x19, + (byte)0xc5, (byte)0xf2, (byte)0x6d, (byte)0x04, + (byte)0xc9, (byte)0x78, (byte)0x2b, (byte)0x5a, + (byte)0x16, (byte)0xbc, (byte)0xfc, (byte)0x2b, + (byte)0x71, (byte)0x5b, (byte)0xd0, (byte)0x00, + (byte)0x4f }; static char passphrase[] = "passphrase".toCharArray(); @@ -808,26 +1090,26 @@ static class Test { } static Test[] tests = { - // MD5 is used in this test case, don't disable MD5 algorithm. + // SHA1 is used in this test case, don't disable SHA1 algorithm. new Test( "SSLv3, RC4, DH keySize < 768", "MD2, RSA keySize < 1024", false), - // Disable MD5 but only if cert chains back to public root CA, should - // pass because the MD5 cert in this test case is issued by test CA + // Disable SHA1 but only if cert chains back to public root CA, should + // pass because the SHA1 cert in this test case is issued by test CA new Test( "SSLv3, RC4, DH keySize < 768", - "MD2, MD5 jdkCA, RSA keySize < 1024", + "MD2, SHA1 jdkCA, RSA keySize < 1024", false), - // Disable MD5 alg via TLS property and expect failure + // Disable SHA1 alg via TLS property and expect failure new Test( - "SSLv3, MD5, RC4, DH keySize < 768", + "SSLv3, SHA1, RC4, DH keySize < 768", "MD2, RSA keySize < 1024", true), - // Disable MD5 alg via certpath property and expect failure + // Disable SHA1 alg via certpath property and expect failure new Test( "SSLv3, RC4, DH keySize < 768", - "MD2, MD5, RSA keySize < 1024", + "MD2, SHA1, RSA keySize < 1024", true), }; @@ -850,7 +1132,7 @@ public static void main(String args[]) throws Exception { try { new PKIXExtendedTM(); if (test.fail) { - throw new Exception("Expected MD5 certificate to be blocked"); + throw new Exception("Expected SHA1 certificate to be blocked"); } } catch (Exception e) { if (test.fail) { diff --git a/test/jdk/sun/security/ssl/X509TrustManagerImpl/SunX509ExtendedTM.java b/test/jdk/sun/security/ssl/X509TrustManagerImpl/SunX509ExtendedTM.java index ec893f90703..f95aee76dab 100644 --- a/test/jdk/sun/security/ssl/X509TrustManagerImpl/SunX509ExtendedTM.java +++ b/test/jdk/sun/security/ssl/X509TrustManagerImpl/SunX509ExtendedTM.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -52,357 +52,497 @@ * * TLS server certificate: * server private key: - * -----BEGIN RSA PRIVATE KEY----- - * Proc-Type: 4,ENCRYPTED - * DEK-Info: DES-EDE3-CBC,D9AE407F6D0E389A * - * WPrA7TFol/cQCcp9oHnXWNpYlvRbbIcQj0m+RKT2Iuzfus+DHt3Zadf8nJpKfX2e - * h2rnhlzCN9M7djRDooZKDOPCsdBn51Au7HlZF3S3Opgo7D8XFM1a8t1Je4ke14oI - * nw6QKYsBblRziPnP2PZ0zvX24nOv7bbY8beynlJHGs00VWSFdoH2DS0aE1p6D+3n - * ptJuJ75dVfZFK4X7162APlNXevX8D6PEQpSiRw1rjjGGcnvQ4HdWk3BxDVDcCNJb - * Y1aGNRxsjTDvPi3R9Qx2M+W03QzEPx4SR3ZHVskeSJHaetM0TM/w/45Paq4GokXP - * ZeTnbEx1xmjkA7h+t4doLL4watx5F6yLsJzu8xB3lt/1EtmkYtLz1t7X4BetPAXz - * zS69X/VwhKfsOI3qXBWuL2oHPyhDmT1gcaUQwEPSV6ogHEEQEDXdiUS8heNK13KF - * TCQYFkETvV2BLxUhV1hypPzRQ6tUpJiAbD5KmoK2lD9slshG2QtvKQq0/bgkDY5J - * LhDHV2dtcZ3kDPkkZXpbcJQvoeH3d09C5sIsuTFo2zgNR6oETHUc5TzP6FY2YYRa - * QcK5HcmtsRRiXFm01ac+aMejJUIujjFt84SiKWT/73vC8AmY4tYcJBLjCg4XIxSH - * fdDFLL1YZENNO5ivlp8mdiHqcawx+36L7DrEZQ8RZt6cqST5t/+XTdM74s6k81GT - * pNsa82P2K2zmIUZ/DL2mKjW1vfRByw1NQFEBkN3vdyZxYfM/JyUzX4hbjXBEkh9Q - * QYrcwLKLjis2QzSvK04B3bvRzRb+4ocWiso8ZPAXAIxZFBWDpTMM2A== - * -----END RSA PRIVATE KEY----- - * - * -----BEGIN RSA PRIVATE KEY----- - * MIICXAIBAAKBgQClrFscN6LdmYktsnm4j9VIpecchBeNaZzGrG358h0fORna03Ie - * buxEzHCk3LoAMPagTz1UemFqzFfQCn+VKBg/mtmU8hvIJIh+/p0PPftXUwizIDPU - * PxdHFNHN6gjYDnVOr77M0uyvqXpJ38LZrLgkQJCmA1Yq0DAFQCxPq9l0iQIDAQAB - * AoGAbqcbg1E1mkR99uOJoNeQYKFOJyGiiXTMnXV1TseC4+PDfQBU7Dax35GcesBi - * CtapIpFKKS5D+ozY6b7ZT8ojxuQ/uHLPAvz0WDR3ds4iRF8tyu71Q1ZHcQsJa17y - * yO7UbkSSKn/Mp9Rb+/dKqftUGNXVFLqgHBOzN2s3We3bbbECQQDYBPKOg3hkaGHo - * OhpHKqtQ6EVkldihG/3i4WejRonelXN+HRh1KrB2HBx0M8D/qAzP1i3rNSlSHer4 - * 59YRTJnHAkEAxFX/sVYSn07BHv9Zhn6XXct/Cj43z/tKNbzlNbcxqQwQerw3IH51 - * 8UH2YOA+GD3lXbKp+MytoFLWv8zg4YT/LwJAfqan75Z1R6lLffRS49bIiq8jwE16 - * rTrUJ+kv8jKxMqc9B3vXkxpsS1M/+4E8bqgAmvpgAb8xcsvHsBd9ErdukQJBAKs2 - * j67W75BrPjBI34pQ1LEfp56IGWXOrq1kF8IbCjxv3+MYRT6Z6UJFkpRymNPNDjsC - * dgUYgITiGJHUGXuw3lMCQHEHqo9ZtXz92yFT+VhsNc29B8m/sqUJdtCcMd/jGpAF - * u6GHufjqIZBpQsk63wbwESAPZZ+kk1O1kS5GIRLX608= - * -----END RSA PRIVATE KEY----- - * - * Private-Key: (1024 bit) + * Private-Key: (2048 bit, 2 primes) * modulus: - * 00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f: - * d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2: - * 1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc: - * ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a: - * 7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe: - * 9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14: - * d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9: - * 7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0: - * 30:05:40:2c:4f:ab:d9:74:89 + * 00:9a:0c:e0:8f:a8:02:7e:5a:ef:ed:b2:42:ad:08: + * 4e:91:ba:c2:ad:9b:79:d7:9b:0f:fd:d2:f8:15:2f: + * 19:89:80:10:00:02:19:6d:27:c2:90:d7:a5:23:53: + * 74:6e:64:28:7c:24:aa:ed:ea:21:59:dc:a3:5c:b5: + * c9:42:31:4f:a2:de:fb:09:7c:73:ed:88:04:34:f1: + * 15:ad:3d:60:cd:ca:c5:13:99:d3:9f:9b:b2:92:70: + * cb:ba:4b:3d:20:96:ad:be:92:53:ed:54:3b:c5:14: + * bd:cf:d4:0f:cb:05:4f:fd:2b:9e:e0:50:bb:65:13: + * 92:c0:d6:bd:4d:02:0c:70:b6:65:d4:7d:b4:4d:c3: + * df:2c:08:9e:d2:3e:69:32:46:6f:6f:ca:d1:73:a4: + * 94:07:ef:14:e3:da:9e:2f:c0:ac:0e:10:33:4c:68: + * 79:f3:79:40:d6:e9:3c:c2:e6:70:e0:89:ce:a0:7a: + * a8:84:28:85:32:37:08:b0:cf:b1:7f:5f:bc:1f:a5: + * 3d:ef:d6:68:a8:17:21:5f:87:d5:4b:b5:cc:ee:78: + * 8d:dd:b1:28:6a:c0:fb:64:bd:b7:70:02:33:03:0b: + * b8:b8:bb:08:82:f6:8e:05:27:d1:3b:e6:c5:ac:4d: + * 85:5b:a1:1d:a3:48:5d:03:15:76:63:6c:71:21:3e: + * 98:cd * publicExponent: 65537 (0x10001) * privateExponent: - * 6e:a7:1b:83:51:35:9a:44:7d:f6:e3:89:a0:d7:90: - * 60:a1:4e:27:21:a2:89:74:cc:9d:75:75:4e:c7:82: - * e3:e3:c3:7d:00:54:ec:36:b1:df:91:9c:7a:c0:62: - * 0a:d6:a9:22:91:4a:29:2e:43:fa:8c:d8:e9:be:d9: - * 4f:ca:23:c6:e4:3f:b8:72:cf:02:fc:f4:58:34:77: - * 76:ce:22:44:5f:2d:ca:ee:f5:43:56:47:71:0b:09: - * 6b:5e:f2:c8:ee:d4:6e:44:92:2a:7f:cc:a7:d4:5b: - * fb:f7:4a:a9:fb:54:18:d5:d5:14:ba:a0:1c:13:b3: - * 37:6b:37:59:ed:db:6d:b1 + * 68:87:36:54:a3:c6:d5:5f:f5:0f:4f:76:c8:9c:2b: + * 5b:dc:e2:be:14:12:2f:c7:0a:a9:cb:5e:04:59:ca: + * 35:2f:8d:2b:c4:40:e6:7d:25:1b:4d:07:c3:99:9c: + * 16:4f:a5:dc:de:b0:90:f0:de:22:70:80:f4:a6:70: + * e2:96:3d:18:21:bf:2b:27:a4:2d:d7:ae:2b:12:2f: + * 08:36:ee:99:94:ed:f6:a7:d9:1d:a2:f3:1f:44:a4: + * 28:4b:67:35:d6:a8:1b:f8:84:34:34:84:bd:ec:9e: + * 03:08:3c:93:20:8e:af:15:cb:1f:20:08:97:c4:19: + * 3e:fa:36:c6:ab:0e:2f:e7:b3:c0:a7:bc:e4:e0:a6: + * 08:1c:69:20:4d:78:bd:7a:e5:25:48:60:9e:2e:50: + * 8d:36:1e:07:e9:d5:0d:39:67:41:42:24:db:87:e5: + * 77:76:fd:5e:d5:c6:e5:d3:b0:98:71:48:69:47:4f: + * 46:05:0c:9e:58:45:2e:e2:27:d0:f6:11:05:78:ad: + * 83:5a:5b:ec:d7:2e:26:5a:a5:4f:9e:52:84:2c:1f: + * 59:1a:78:56:0a:44:54:c6:37:64:01:ca:e4:a8:01: + * c7:86:c1:b4:d6:6c:7a:15:9a:65:69:46:9e:fd:f6: + * 08:17:0c:6c:ac:38:bd:c2:cd:da:ef:54:7a:48:92: + * 4d * prime1: - * 00:d8:04:f2:8e:83:78:64:68:61:e8:3a:1a:47:2a: - * ab:50:e8:45:64:95:d8:a1:1b:fd:e2:e1:67:a3:46: - * 89:de:95:73:7e:1d:18:75:2a:b0:76:1c:1c:74:33: - * c0:ff:a8:0c:cf:d6:2d:eb:35:29:52:1d:ea:f8:e7: - * d6:11:4c:99:c7 + * 00:e4:43:cc:51:25:aa:1d:90:41:95:2c:e8:9f:aa: + * 1c:9b:ea:bd:fd:29:e5:68:6b:28:00:ec:31:31:36: + * d0:3d:84:db:c5:5d:32:f6:38:b9:04:4f:45:cb:19: + * f5:88:cd:a8:fc:70:b8:6d:98:68:a6:b4:9e:c1:da: + * fd:db:eb:1a:53:3c:3b:e6:85:d2:6f:03:45:7a:ad: + * 49:8c:c3:96:a7:46:a4:bb:3b:48:d3:d7:1c:b4:3c: + * f7:04:0a:a3:85:9d:94:3e:bd:35:f5:34:21:3d:08: + * 89:df:c5:54:af:cf:90:f7:d8:5c:57:c5:77:5a:c8: + * d1:b3:8f:ee:01:5c:07:13:3f * prime2: - * 00:c4:55:ff:b1:56:12:9f:4e:c1:1e:ff:59:86:7e: - * 97:5d:cb:7f:0a:3e:37:cf:fb:4a:35:bc:e5:35:b7: - * 31:a9:0c:10:7a:bc:37:20:7e:75:f1:41:f6:60:e0: - * 3e:18:3d:e5:5d:b2:a9:f8:cc:ad:a0:52:d6:bf:cc: - * e0:e1:84:ff:2f + * 00:ac:c4:a0:cc:7c:51:db:65:0a:02:da:bc:d8:77: + * 21:8c:d3:30:ae:ec:50:60:4b:b9:39:c7:2d:bd:98: + * aa:4f:9b:44:74:ab:f8:86:de:e2:44:15:73:7a:cd: + * d5:46:f2:03:62:c5:87:9c:6d:91:d5:7a:9a:17:c2: + * c6:2f:29:0e:8a:a4:a9:f4:c2:63:a2:77:97:bf:c6: + * 90:e8:39:70:87:cc:fd:62:4f:d2:3d:e7:47:70:fb: + * f3:bd:bd:5c:9c:77:fe:23:33:7d:83:ef:cb:0e:4e: + * f1:dd:05:47:40:97:f4:da:b6:1f:b9:8d:e2:92:04: + * 09:be:fb:6a:97:29:27:ac:f3 * exponent1: - * 7e:a6:a7:ef:96:75:47:a9:4b:7d:f4:52:e3:d6:c8: - * 8a:af:23:c0:4d:7a:ad:3a:d4:27:e9:2f:f2:32:b1: - * 32:a7:3d:07:7b:d7:93:1a:6c:4b:53:3f:fb:81:3c: - * 6e:a8:00:9a:fa:60:01:bf:31:72:cb:c7:b0:17:7d: - * 12:b7:6e:91 + * 3f:08:1d:b6:56:b1:38:02:aa:a9:77:c2:30:bc:b7: + * b3:b2:49:8e:4b:f0:66:3a:18:cc:d0:6b:f1:0c:12: + * ca:ba:12:39:d8:b7:86:d8:38:f6:e0:b1:04:19:81: + * fc:a9:d5:bd:07:9f:55:dc:1d:21:d3:84:77:41:72: + * 92:34:c4:8b:31:79:d4:f9:25:17:b4:8e:8e:06:a5: + * e5:b1:e8:ba:fe:3d:e4:d9:c5:0d:82:3c:11:e5:37: + * cc:ac:e7:64:b1:13:cb:93:52:00:08:ca:18:e1:6f: + * b9:13:f3:83:ac:cc:7a:34:0b:a3:cd:0a:5d:4e:50: + * e1:c5:9f:d2:4e:48:41:df * exponent2: - * 00:ab:36:8f:ae:d6:ef:90:6b:3e:30:48:df:8a:50: - * d4:b1:1f:a7:9e:88:19:65:ce:ae:ad:64:17:c2:1b: - * 0a:3c:6f:df:e3:18:45:3e:99:e9:42:45:92:94:72: - * 98:d3:cd:0e:3b:02:76:05:18:80:84:e2:18:91:d4: - * 19:7b:b0:de:53 + * 02:c7:fb:8a:af:29:a6:2d:7f:36:c2:8c:ad:b3:65: + * 3f:de:1a:77:86:68:58:d4:7f:3b:d5:df:ff:a0:58: + * 85:85:8b:59:91:77:23:bc:ac:c9:c9:ca:9d:1c:79: + * 25:76:39:e5:ba:26:4f:b7:57:d4:a6:ef:9a:18:51: + * 96:6a:c3:c8:29:94:6e:d3:3e:45:5c:45:7e:19:d5: + * 35:57:cf:5e:f0:46:d7:f1:4f:02:1e:1a:01:50:9d: + * 00:dd:ee:82:ba:4f:c6:03:4b:2e:f7:8a:3e:45:b9: + * 11:04:c7:bb:db:76:5e:9a:f5:f1:c7:bd:f0:f9:cd: + * aa:5c:63:bf:e1:32:b9:4f * coefficient: - * 71:07:aa:8f:59:b5:7c:fd:db:21:53:f9:58:6c:35: - * cd:bd:07:c9:bf:b2:a5:09:76:d0:9c:31:df:e3:1a: - * 90:05:bb:a1:87:b9:f8:ea:21:90:69:42:c9:3a:df: - * 06:f0:11:20:0f:65:9f:a4:93:53:b5:91:2e:46:21: - * 12:d7:eb:4f - * + * 50:4c:e6:1e:23:f3:e2:2b:d6:3f:87:53:fb:19:53: + * 4b:84:21:0b:77:31:ed:8d:c3:0c:ea:31:b0:a6:38: + * a9:e6:44:6e:18:05:53:8f:4a:5f:75:e5:3e:b5:26: + * 9b:46:3d:73:e7:c1:2a:a6:3e:c3:cd:41:b1:a6:55: + * 57:84:11:13:ec:44:92:59:7f:dd:0d:67:30:d3:b7: + * 13:ee:9e:2d:ea:be:b3:ca:4a:f0:6e:4f:22:e8:be: + * 8b:8d:9b:2c:30:a5:ed:2c:2b:13:4c:f7:61:19:64: + * 35:9d:b0:c8:10:85:01:e7:2a:70:13:00:39:c5:73: + * 63:34:fd:28:2d:7f:8d:20 + * -----BEGIN PRIVATE KEY----- + * MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCaDOCPqAJ+Wu/t + * skKtCE6RusKtm3nXmw/90vgVLxmJgBAAAhltJ8KQ16UjU3RuZCh8JKrt6iFZ3KNc + * tclCMU+i3vsJfHPtiAQ08RWtPWDNysUTmdOfm7KScMu6Sz0glq2+klPtVDvFFL3P + * 1A/LBU/9K57gULtlE5LA1r1NAgxwtmXUfbRNw98sCJ7SPmkyRm9vytFzpJQH7xTj + * 2p4vwKwOEDNMaHnzeUDW6TzC5nDgic6geqiEKIUyNwiwz7F/X7wfpT3v1mioFyFf + * h9VLtczueI3dsShqwPtkvbdwAjMDC7i4uwiC9o4FJ9E75sWsTYVboR2jSF0DFXZj + * bHEhPpjNAgMBAAECggEAaIc2VKPG1V/1D092yJwrW9zivhQSL8cKqcteBFnKNS+N + * K8RA5n0lG00Hw5mcFk+l3N6wkPDeInCA9KZw4pY9GCG/KyekLdeuKxIvCDbumZTt + * 9qfZHaLzH0SkKEtnNdaoG/iENDSEveyeAwg8kyCOrxXLHyAIl8QZPvo2xqsOL+ez + * wKe85OCmCBxpIE14vXrlJUhgni5QjTYeB+nVDTlnQUIk24fld3b9XtXG5dOwmHFI + * aUdPRgUMnlhFLuIn0PYRBXitg1pb7NcuJlqlT55ShCwfWRp4VgpEVMY3ZAHK5KgB + * x4bBtNZsehWaZWlGnv32CBcMbKw4vcLN2u9UekiSTQKBgQDkQ8xRJaodkEGVLOif + * qhyb6r39KeVoaygA7DExNtA9hNvFXTL2OLkET0XLGfWIzaj8cLhtmGimtJ7B2v3b + * 6xpTPDvmhdJvA0V6rUmMw5anRqS7O0jT1xy0PPcECqOFnZQ+vTX1NCE9CInfxVSv + * z5D32FxXxXdayNGzj+4BXAcTPwKBgQCsxKDMfFHbZQoC2rzYdyGM0zCu7FBgS7k5 + * xy29mKpPm0R0q/iG3uJEFXN6zdVG8gNixYecbZHVepoXwsYvKQ6KpKn0wmOid5e/ + * xpDoOXCHzP1iT9I950dw+/O9vVycd/4jM32D78sOTvHdBUdAl/Tath+5jeKSBAm+ + * +2qXKSes8wKBgD8IHbZWsTgCqql3wjC8t7OySY5L8GY6GMzQa/EMEsq6EjnYt4bY + * OPbgsQQZgfyp1b0Hn1XcHSHThHdBcpI0xIsxedT5JRe0jo4GpeWx6Lr+PeTZxQ2C + * PBHlN8ys52SxE8uTUgAIyhjhb7kT84OszHo0C6PNCl1OUOHFn9JOSEHfAoGAAsf7 + * iq8ppi1/NsKMrbNlP94ad4ZoWNR/O9Xf/6BYhYWLWZF3I7ysycnKnRx5JXY55bom + * T7dX1KbvmhhRlmrDyCmUbtM+RVxFfhnVNVfPXvBG1/FPAh4aAVCdAN3ugrpPxgNL + * LveKPkW5EQTHu9t2Xpr18ce98PnNqlxjv+EyuU8CgYBQTOYeI/PiK9Y/h1P7GVNL + * hCELdzHtjcMM6jGwpjip5kRuGAVTj0pfdeU+tSabRj1z58Eqpj7DzUGxplVXhBET + * 7ESSWX/dDWcw07cT7p4t6r6zykrwbk8i6L6LjZssMKXtLCsTTPdhGWQ1nbDIEIUB + * 5ypwEwA5xXNjNP0oLX+NIA== + * -----END PRIVATE KEY----- * * server certificate: - * Data: - * Version: 3 (0x2) - * Serial Number: 8 (0x8) - * Signature Algorithm: md5WithRSAEncryption - * Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org - * Validity - * Not Before: Dec 8 03:43:04 2008 GMT - * Not After : Aug 25 03:43:04 2028 GMT - * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Server, CN=localhost - * Subject Public Key Info: - * Public Key Algorithm: rsaEncryption - * RSA Public Key: (1024 bit) - * Modulus (1024 bit): - * 00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f: - * d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2: - * 1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc: - * ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a: - * 7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe: - * 9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14: - * d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9: - * 7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0: - * 30:05:40:2c:4f:ab:d9:74:89 - * Exponent: 65537 (0x10001) - * X509v3 extensions: - * X509v3 Basic Constraints: - * CA:FALSE - * X509v3 Key Usage: - * Digital Signature, Non Repudiation, Key Encipherment - * X509v3 Subject Key Identifier: - * ED:6E:DB:F4:B5:56:C8:FB:1A:06:61:3F:0F:08:BB:A6:04:D8:16:54 - * X509v3 Authority Key Identifier: - * keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14 - * - * X509v3 Subject Alternative Name: critical - * DNS:localhost - * Signature Algorithm: md5WithRSAEncryption0 - * + * Data: + * Version: 3 (0x2) + * Serial Number: 106315679 (0x6563f9f) + * Signature Algorithm: sha1WithRSAEncryption + * Issuer: C=Us, ST=Some-State, L=Some-City, O=Some-Org + * Validity + * Not Before: Jul 1 04:16:55 2024 GMT + * Not After : Jul 2 04:16:55 2034 GMT + * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, CN=localhost ou=SSL-Server + * Subject Public Key Info: + * Public Key Algorithm: rsaEncryption + * Public-Key: (2048 bit) + * Modulus: + * 00:9a:0c:e0:8f:a8:02:7e:5a:ef:ed:b2:42:ad:08: + * 4e:91:ba:c2:ad:9b:79:d7:9b:0f:fd:d2:f8:15:2f: + * 19:89:80:10:00:02:19:6d:27:c2:90:d7:a5:23:53: + * 74:6e:64:28:7c:24:aa:ed:ea:21:59:dc:a3:5c:b5: + * c9:42:31:4f:a2:de:fb:09:7c:73:ed:88:04:34:f1: + * 15:ad:3d:60:cd:ca:c5:13:99:d3:9f:9b:b2:92:70: + * cb:ba:4b:3d:20:96:ad:be:92:53:ed:54:3b:c5:14: + * bd:cf:d4:0f:cb:05:4f:fd:2b:9e:e0:50:bb:65:13: + * 92:c0:d6:bd:4d:02:0c:70:b6:65:d4:7d:b4:4d:c3: + * df:2c:08:9e:d2:3e:69:32:46:6f:6f:ca:d1:73:a4: + * 94:07:ef:14:e3:da:9e:2f:c0:ac:0e:10:33:4c:68: + * 79:f3:79:40:d6:e9:3c:c2:e6:70:e0:89:ce:a0:7a: + * a8:84:28:85:32:37:08:b0:cf:b1:7f:5f:bc:1f:a5: + * 3d:ef:d6:68:a8:17:21:5f:87:d5:4b:b5:cc:ee:78: + * 8d:dd:b1:28:6a:c0:fb:64:bd:b7:70:02:33:03:0b: + * b8:b8:bb:08:82:f6:8e:05:27:d1:3b:e6:c5:ac:4d: + * 85:5b:a1:1d:a3:48:5d:03:15:76:63:6c:71:21:3e: + * 98:cd + * Exponent: 65537 (0x10001) + * X509v3 extensions: + * X509v3 Subject Key Identifier: + * 5C:AF:44:B1:48:B8:59:9A:64:53:9D:2E:A6:B2:09:D3:0A:92:04:83 + * X509v3 Key Usage: + * Digital Signature, Non Repudiation, Key Encipherment + * X509v3 Subject Alternative Name: critical + * DNS:localhost + * X509v3 Basic Constraints: + * CA:FALSE + * X509v3 Authority Key Identifier: + * E0:03:90:F6:4F:BB:57:E6:7E:AF:5C:94:25:B3:85:DA:16:0A:51:40 + * Signature Algorithm: sha1WithRSAEncryption + * Signature Value: + * 9d:22:49:5f:56:23:e6:80:35:cc:ab:44:1c:27:bd:c9:8d:89: + * 93:49:58:e8:c1:7a:68:dd:cf:bd:e0:12:76:06:54:cd:2f:62: + * 9b:54:84:f2:bb:90:a0:bb:37:e2:13:1d:f3:df:41:aa:e0:fe: + * c0:ef:46:78:8d:aa:f4:1b:70:ad:a9:16:24:fa:15:4a:c6:0a: + * 8d:e1:99:93:00:a9:d4:b6:08:5d:8e:65:03:dc:d0:95:fc:95: + * 61:a6:ad:b5:ab:4d:a6:e0:05:48:8c:db:42:42:8a:d6:5e:c0: + * 2a:a0:11:15:b8:07:69:5c:3f:99:a0:bd:53:65:db:4e:cf:46: + * 61:93:09:7b:81:40:ff:5c:fe:4c:eb:f4:ac:de:1f:38:ad:b2: + * 60:28:f6:0e:9f:46:e7:07:8f:20:9a:a4:e1:8f:ab:54:99:76: + * 82:d8:9e:70:c4:da:98:85:71:af:3b:54:e4:01:b4:9e:83:d0: + * 7b:c6:8d:1f:ed:25:08:89:05:e9:87:97:76:5a:a3:85:c3:f8: + * 59:d7:bb:3b:5a:db:cb:ed:5d:ff:ac:21:b9:9a:e2:65:0a:bc: + * de:d1:dc:53:94:98:44:97:91:b3:1b:6b:80:0b:9b:57:b3:ae: + * 5c:7c:35:ca:39:71:f7:4e:8f:4a:d7:eb:0b:25:da:b2:1e:17: + * 48:b8:eb:09 * -----BEGIN CERTIFICATE----- - * MIICpDCCAg2gAwIBAgIBCDANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET - * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK - * EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMDRaFw0yODA4MjUwMzQzMDRaMHIxCzAJ - * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp - * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD - * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3 - * ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6 - * YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS - * 7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjczBxMAkGA1UdEwQCMAAw - * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV - * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh - * bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAoqVTciHtcvsUj+YaTct8tUh3aTCsKsac - * PHhfQ+ObjiXSgxsKYTX7ym/wk/wvlbUcbqLKxsu7qrcJitH+H9heV1hEHEu65Uoi - * nRugFruyOrwvAylV8Cm2af7ddilmYJ+sdJA6N2M3xJRxR0G2LFHEXDNEjYReyexn - * JqCpf5uZGOo= + * MIIDpTCCAo2gAwIBAgIEBlY/nzANBgkqhkiG9w0BAQUFADBJMQswCQYDVQQGEwJV + * czETMBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYD + * VQQKEwhTb21lLU9yZzAeFw0yNDA3MDEwNDE2NTVaFw0zNDA3MDIwNDE2NTVaMGsx + * CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21l + * LUNpdHkxETAPBgNVBAoTCFNvbWUtT3JnMSAwHgYDVQQDExdsb2NhbGhvc3Qgb3U9 + * U1NMLVNlcnZlcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJoM4I+o + * An5a7+2yQq0ITpG6wq2bedebD/3S+BUvGYmAEAACGW0nwpDXpSNTdG5kKHwkqu3q + * IVnco1y1yUIxT6Le+wl8c+2IBDTxFa09YM3KxROZ05+bspJwy7pLPSCWrb6SU+1U + * O8UUvc/UD8sFT/0rnuBQu2UTksDWvU0CDHC2ZdR9tE3D3ywIntI+aTJGb2/K0XOk + * lAfvFOPani/ArA4QM0xoefN5QNbpPMLmcOCJzqB6qIQohTI3CLDPsX9fvB+lPe/W + * aKgXIV+H1Uu1zO54jd2xKGrA+2S9t3ACMwMLuLi7CIL2jgUn0TvmxaxNhVuhHaNI + * XQMVdmNscSE+mM0CAwEAAaNzMHEwHQYDVR0OBBYEFFyvRLFIuFmaZFOdLqayCdMK + * kgSDMAsGA1UdDwQEAwIF4DAXBgNVHREBAf8EDTALgglsb2NhbGhvc3QwCQYDVR0T + * BAIwADAfBgNVHSMEGDAWgBTgA5D2T7tX5n6vXJQls4XaFgpRQDANBgkqhkiG9w0B + * AQUFAAOCAQEAnSJJX1Yj5oA1zKtEHCe9yY2Jk0lY6MF6aN3PveASdgZUzS9im1SE + * 8ruQoLs34hMd899BquD+wO9GeI2q9BtwrakWJPoVSsYKjeGZkwCp1LYIXY5lA9zQ + * lfyVYaattatNpuAFSIzbQkKK1l7AKqARFbgHaVw/maC9U2XbTs9GYZMJe4FA/1z+ + * TOv0rN4fOK2yYCj2Dp9G5wePIJqk4Y+rVJl2gtiecMTamIVxrztU5AG0noPQe8aN + * H+0lCIkF6YeXdlqjhcP4Wde7O1rby+1d/6whuZriZQq83tHcU5SYRJeRsxtrgAub + * V7OuXHw1yjlx906PStfrCyXash4XSLjrCQ== * -----END CERTIFICATE----- * * * TLS client certificate: * client private key: - * ----BEGIN RSA PRIVATE KEY----- - * Proc-Type: 4,ENCRYPTED - * DEK-Info: DES-EDE3-CBC,FA2A435CD35A9390 - * - * Z+Y2uaETbsUWIyJUyVu1UV2G4rgFYJyACZT6Tp1KjRtxflSh2kXkJ9MpuXMXA0V4 - * Yy3fDzPqCL9NJmQAYRlAx/W/+j4F5EyMWDIx8fUxzONRZyoiwF7jLm+KscAfv6Pf - * q7ItWOdj3z7IYrwlB8YIGd3F2cDKT3S+lYRk7rKb/qT7itbuHnY4Ardh3yl+MZak - * jBp+ELUlRsUqSr1V0LoM+0rCCykarpyfhpxEcqsrl0v9Cyi5uhU50/oKv5zql3SH - * l2ImgDjp3batAs8+Bd4NF2aqi0a7Hy44JUHxRm4caZryU/i/D9N1MbuM6882HLat - * 5N0G+NaIUfywa8mjwq2D5aiit18HqKA6XeRRYeJ5Dvu9DCO4GeFSwcUFIBMI0L46 - * 7s114+oDodg57pMgITi+04vmUxvqlN9aiyd7f5Fgd7PeHGeOdbMz1NaJLJaPI9++ - * NakK8eK9iwT/Gdq0Uap5/CHW7vCT5PO+h3HY0STH0lWStXhdWnFO04zTdywsbSp+ - * DLpHeFT66shfeUlxR0PsCbG9vPRt/QmGLeYQZITppWo/ylSq4j+pRIuXvuWHdBRN - * rTZ8QF4Y7AxQUXVz1j1++s6ZMHTzaK2i9HrhmDs1MbJl+QwWre3Xpv3LvTVz3k5U - * wX8kuY1m3STt71QCaRWENq5sRaMImLxZbxc/ivFl9RAzUqo4NCxLod/QgA4iLqtO - * ztnlpzwlC/F8HbQ1oqYWwnZAPhzU/cULtstl+Yrws2c2atO323LbPXZqbASySgig - * sNpFXQMObdfP6LN23bY+1SvtK7V4NUTNhpdIc6INQAQ= - * -----END RSA PRIVATE KEY----- - * - * -----BEGIN RSA PRIVATE KEY----- - * MIICWwIBAAKBgQC78EA2rCZUTvSjWgAvaSFvuXo6k+yi9uGOx2PYLxIwmS6w8o/4 - * Jy0keCiE9wG/jUR53TvSVfPOPLJbIX3v/TNKsaP/xsibuQ98QTWX+ds6BWAFFa9Z - * F5KjEK0WHOQHU6+odqJWKpLT+SjgeM9eH0irXBnd4WdDunWN9YKsQ5JEGwIDAQAB - * AoGAEbdqNj0wN85hnWyEi/ObJU8UyKTdL9eaF72QGfcF/fLSxfd3vurihIeXOkGW - * tpn4lIxYcVGM9CognhqgJpl11jFTQzn1KqZ+NEJRKkCHA4hDabKJbSC9fXHvRwrf - * BsFpZqgiNxp3HseUTiwnaUVeyPgMt/jAj5nB5Sib+UyUxrECQQDnNQBiF2aifEg6 - * zbJOOC7he5CHAdkFxSxWVFVHL6EfXfqdLVkUohMbgZv+XxyIeU2biOExSg49Kds3 - * FOKgTau1AkEA0Bd1haj6QuCo8I0AXm2WO+MMTZMTvtHD/bGjKNM+fT4I8rKYnQRX - * 1acHdqS9Xx2rNJqZgkMmpESIdPR2fc4yjwJALFeM6EMmqvj8/VIf5UJ/Mz14fXwM - * PEARfckUxd9LnnFutCBTWlKvKXJVEZb6KO5ixPaegc57Jp3Vbh3yTN44lQJADD/1 - * SSMDaIB1MYP7a5Oj7m6VQNPRq8AJe5vDcRnOae0G9dKRrVyeFxO4GsHj6/+BHp2j - * P8nYMn9eURQ7DXjf/QJAAQzMlWnKGSO8pyTDtnQx3hRMoUkOEhmNq4bQhLkYqtnY - * FcqpUQ2qMjW+NiNWk5HnTrMS3L9EdJobMUzaNZLy4w== - * -----END RSA PRIVATE KEY----- * - * Private-Key: (1024 bit) + * Private-Key: (2048 bit, 2 primes) * modulus: - * 00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69: - * 21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f: - * 12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7: - * 01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21: - * 7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41: - * 35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10: - * ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9: - * 28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba: - * 75:8d:f5:82:ac:43:92:44:1b + * 00:cc:bf:92:3c:a6:57:74:1f:58:ad:c7:69:88:6f: + * 59:32:47:50:60:22:e4:98:49:0e:3e:1d:b8:ba:e2: + * 3b:b6:71:5b:fd:64:02:6d:0d:50:77:72:6e:a8:3d: + * 5d:d4:bd:1f:76:51:dc:9a:d0:d6:3e:d0:31:a5:24: + * 5a:2c:be:77:fa:88:a1:fa:06:41:c8:0f:47:70:47: + * 24:99:50:52:44:5b:30:62:5b:65:35:c4:28:b0:5c: + * ee:d0:1b:eb:39:2b:0b:a1:ac:96:48:da:56:6c:e0: + * e3:e6:e3:dd:45:cb:51:33:8d:40:43:d7:f0:a4:31: + * aa:b5:c0:df:4b:df:2b:0a:ed:7e:10:0c:ae:1f:96: + * a2:10:1e:6b:d0:f9:37:8b:df:0d:0e:02:35:f8:58: + * bc:6e:b5:57:0e:2f:ea:20:e6:73:9a:e5:6b:82:70: + * 25:bb:51:9a:7c:9d:e2:50:3d:cf:1e:24:3e:92:55: + * cf:2a:ad:0d:84:8f:a8:43:24:cd:ad:50:64:74:c2: + * 73:b6:e1:92:1c:b2:2b:8c:2d:7b:96:a6:41:61:5c: + * 1b:8f:78:28:51:40:ed:41:90:ce:1d:b8:26:81:47: + * 6b:e3:57:41:74:4e:20:f0:5a:1b:97:37:91:86:19: + * c5:f2:6d:04:c9:78:2b:5a:16:bc:fc:2b:71:5b:d0: + * 00:4f * publicExponent: 65537 (0x10001) * privateExponent: - * 11:b7:6a:36:3d:30:37:ce:61:9d:6c:84:8b:f3:9b: - * 25:4f:14:c8:a4:dd:2f:d7:9a:17:bd:90:19:f7:05: - * fd:f2:d2:c5:f7:77:be:ea:e2:84:87:97:3a:41:96: - * b6:99:f8:94:8c:58:71:51:8c:f4:2a:20:9e:1a:a0: - * 26:99:75:d6:31:53:43:39:f5:2a:a6:7e:34:42:51: - * 2a:40:87:03:88:43:69:b2:89:6d:20:bd:7d:71:ef: - * 47:0a:df:06:c1:69:66:a8:22:37:1a:77:1e:c7:94: - * 4e:2c:27:69:45:5e:c8:f8:0c:b7:f8:c0:8f:99:c1: - * e5:28:9b:f9:4c:94:c6:b1 + * 62:b2:d6:63:b6:2b:e2:26:5a:31:2b:37:8c:35:60: + * e2:03:ce:93:09:3e:f8:c9:fe:bb:a2:c8:32:0e:6c: + * 8a:7e:0a:c2:13:3b:b8:25:fa:ec:19:95:8e:34:46: + * cf:0e:7b:e4:25:82:1a:7f:21:48:16:44:58:3f:35: + * d8:eb:d8:1a:45:53:0f:9b:84:8a:54:13:33:e4:97: + * 97:f0:48:37:fb:5d:4f:8c:8f:35:63:e1:d9:62:73: + * 1c:8e:d8:cd:2e:1a:e5:4c:b5:05:59:7a:df:f1:68: + * eb:1c:5c:c6:10:44:8c:7d:42:c5:71:8a:e7:1b:aa: + * 17:03:6a:a0:c0:6b:97:50:17:ad:6e:5e:d9:db:6f: + * 3e:e9:3f:35:c3:45:bc:e8:3d:5a:b4:b9:3f:53:80: + * 64:dc:12:24:35:35:bd:98:bb:8d:fa:19:a3:5e:9e: + * ac:70:4a:fc:8d:ae:55:8b:71:81:0e:4d:c8:2f:87: + * b0:44:f7:4f:dc:a8:c8:50:b5:95:24:63:74:13:54: + * 58:de:fc:e0:75:eb:f4:06:58:83:12:4c:56:c4:c4: + * 18:0c:ea:a3:e7:25:a3:de:19:23:a2:5a:2a:b6:56: + * 04:bc:65:ba:7c:0a:f4:91:10:22:88:3f:9d:be:58: + * 43:4c:2e:ad:db:d6:32:cf:8e:b5:05:55:39:8b:e1: + * 01 * prime1: - * 00:e7:35:00:62:17:66:a2:7c:48:3a:cd:b2:4e:38: - * 2e:e1:7b:90:87:01:d9:05:c5:2c:56:54:55:47:2f: - * a1:1f:5d:fa:9d:2d:59:14:a2:13:1b:81:9b:fe:5f: - * 1c:88:79:4d:9b:88:e1:31:4a:0e:3d:29:db:37:14: - * e2:a0:4d:ab:b5 + * 00:f1:da:c2:8a:e5:66:45:8a:14:fc:08:6e:fb:aa: + * 50:d2:8c:b1:c4:f4:88:26:d4:b8:c4:63:30:ca:e3: + * 0c:6c:50:d4:93:5c:1c:13:37:60:21:11:3b:d1:f1: + * 9f:4c:0d:7b:0e:53:3d:c9:a4:fb:fa:6b:9e:b4:0a: + * 5d:d3:50:88:d7:be:c3:88:b2:b1:8a:6e:7b:d6:70: + * 88:96:a4:fe:90:ef:d1:84:ad:a8:9e:9f:3a:68:3f: + * 3f:82:07:be:c2:44:1e:d5:a1:a9:1a:db:39:d7:7f: + * 0c:6e:35:5b:1d:33:1b:a9:cd:38:2a:64:d1:70:2a: + * fe:b9:c2:b6:ed:59:19:73:b1 * prime2: - * 00:d0:17:75:85:a8:fa:42:e0:a8:f0:8d:00:5e:6d: - * 96:3b:e3:0c:4d:93:13:be:d1:c3:fd:b1:a3:28:d3: - * 3e:7d:3e:08:f2:b2:98:9d:04:57:d5:a7:07:76:a4: - * bd:5f:1d:ab:34:9a:99:82:43:26:a4:44:88:74:f4: - * 76:7d:ce:32:8f + * 00:d8:b9:3a:38:6c:79:cd:0b:1f:2b:34:74:bf:7a: + * 3d:0c:21:5a:a6:ea:f2:9e:de:68:42:05:7f:ea:a5: + * 00:c9:10:f8:fd:c5:05:8d:03:45:5d:4f:6f:fa:6e: + * 9d:ef:ad:8a:ec:83:d4:ed:57:f3:86:73:15:2f:d2: + * 67:70:d1:62:ef:1d:25:08:59:47:20:62:47:16:35: + * e1:57:38:bf:39:dd:fc:b9:c8:d8:23:53:e2:02:7d: + * 22:31:4c:66:72:96:df:d8:7c:01:2c:71:00:89:18: + * e9:8c:08:44:8c:64:1f:93:9b:7a:97:26:c9:50:d0: + * 87:b2:48:a8:19:71:e1:b3:ff * exponent1: - * 2c:57:8c:e8:43:26:aa:f8:fc:fd:52:1f:e5:42:7f: - * 33:3d:78:7d:7c:0c:3c:40:11:7d:c9:14:c5:df:4b: - * 9e:71:6e:b4:20:53:5a:52:af:29:72:55:11:96:fa: - * 28:ee:62:c4:f6:9e:81:ce:7b:26:9d:d5:6e:1d:f2: - * 4c:de:38:95 + * 23:98:dd:35:70:5a:43:35:f5:ac:ba:d9:0a:f5:a0: + * 7b:bc:f5:95:55:a0:8c:86:96:c3:61:0e:17:6e:9f: + * af:79:9e:30:2a:48:7f:93:90:f4:8d:02:ce:fd:cf: + * 42:74:61:7e:54:46:2d:dd:b8:b0:bd:12:58:d1:85: + * c9:ca:7a:b9:b6:7c:35:2c:87:f1:26:1d:d8:0c:2c: + * 2e:70:0e:7f:ea:ac:5d:e8:e9:7e:9f:55:0b:6e:f3: + * bc:01:c3:d3:f8:0e:c9:c6:c7:8b:0a:65:53:10:82: + * 15:de:88:90:9d:ab:1e:ac:f3:ed:59:75:72:1b:01: + * ee:f9:77:cf:2b:64:11:a1 * exponent2: - * 0c:3f:f5:49:23:03:68:80:75:31:83:fb:6b:93:a3: - * ee:6e:95:40:d3:d1:ab:c0:09:7b:9b:c3:71:19:ce: - * 69:ed:06:f5:d2:91:ad:5c:9e:17:13:b8:1a:c1:e3: - * eb:ff:81:1e:9d:a3:3f:c9:d8:32:7f:5e:51:14:3b: - * 0d:78:df:fd + * 00:9e:29:6f:87:c6:02:8d:d5:54:05:df:de:63:ee: + * fd:a6:60:a1:1b:b7:d3:20:86:07:68:47:43:37:26: + * fc:0f:c0:c7:35:cc:17:64:f5:c2:25:7a:d7:a9:d8: + * 18:82:d6:0f:d0:d3:d5:0c:f1:66:d3:f4:20:be:29: + * bb:3b:e6:53:61:55:cf:b4:ec:12:b0:5b:88:ad:78: + * dc:df:1e:96:cf:d0:65:a3:e0:23:7c:84:b7:28:41: + * d2:36:50:1f:63:f9:1f:9b:89:c4:01:7e:e6:79:27: + * 29:29:fc:ce:a9:f6:57:e5:0d:4e:c6:08:94:5a:da: + * 14:6d:d4:00:79:b1:56:9a:59 * coefficient: - * 01:0c:cc:95:69:ca:19:23:bc:a7:24:c3:b6:74:31: - * de:14:4c:a1:49:0e:12:19:8d:ab:86:d0:84:b9:18: - * aa:d9:d8:15:ca:a9:51:0d:aa:32:35:be:36:23:56: - * 93:91:e7:4e:b3:12:dc:bf:44:74:9a:1b:31:4c:da: - * 35:92:f2:e3 + * 6c:73:0d:fe:c7:22:15:5d:8c:a1:91:2b:d1:88:e8: + * 91:f9:d0:3e:d0:ba:c4:74:88:ce:14:20:4e:1e:4b: + * c5:91:8f:c1:56:e9:74:e0:f6:cf:71:91:ed:2c:f5: + * 90:9d:d6:c8:cd:f5:79:dc:6e:b3:83:3e:fa:d6:b4: + * 60:d9:3a:52:12:76:9d:92:fb:db:26:ee:43:33:c4: + * 0b:84:74:1b:91:e0:41:8b:cc:cc:24:da:52:af:2d: + * 42:e7:11:57:0d:aa:66:af:1a:ba:c2:8e:6a:ee:8f: + * 2c:e6:5b:76:38:96:bb:7a:2f:59:fe:de:a1:02:fc: + * 12:3a:aa:9f:3c:0e:a4:78 + * writing RSA key + * -----BEGIN PRIVATE KEY----- + * MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDMv5I8pld0H1it + * x2mIb1kyR1BgIuSYSQ4+Hbi64ju2cVv9ZAJtDVB3cm6oPV3UvR92Udya0NY+0DGl + * JFosvnf6iKH6BkHID0dwRySZUFJEWzBiW2U1xCiwXO7QG+s5KwuhrJZI2lZs4OPm + * 491Fy1EzjUBD1/CkMaq1wN9L3ysK7X4QDK4flqIQHmvQ+TeL3w0OAjX4WLxutVcO + * L+og5nOa5WuCcCW7UZp8neJQPc8eJD6SVc8qrQ2Ej6hDJM2tUGR0wnO24ZIcsiuM + * LXuWpkFhXBuPeChRQO1BkM4duCaBR2vjV0F0TiDwWhuXN5GGGcXybQTJeCtaFrz8 + * K3Fb0ABPAgMBAAECggEAYrLWY7Yr4iZaMSs3jDVg4gPOkwk++Mn+u6LIMg5sin4K + * whM7uCX67BmVjjRGzw575CWCGn8hSBZEWD812OvYGkVTD5uEilQTM+SXl/BIN/td + * T4yPNWPh2WJzHI7YzS4a5Uy1BVl63/Fo6xxcxhBEjH1CxXGK5xuqFwNqoMBrl1AX + * rW5e2dtvPuk/NcNFvOg9WrS5P1OAZNwSJDU1vZi7jfoZo16erHBK/I2uVYtxgQ5N + * yC+HsET3T9yoyFC1lSRjdBNUWN784HXr9AZYgxJMVsTEGAzqo+clo94ZI6JaKrZW + * BLxlunwK9JEQIog/nb5YQ0wurdvWMs+OtQVVOYvhAQKBgQDx2sKK5WZFihT8CG77 + * qlDSjLHE9Igm1LjEYzDK4wxsUNSTXBwTN2AhETvR8Z9MDXsOUz3JpPv6a560Cl3T + * UIjXvsOIsrGKbnvWcIiWpP6Q79GEraienzpoPz+CB77CRB7Voaka2znXfwxuNVsd + * MxupzTgqZNFwKv65wrbtWRlzsQKBgQDYuTo4bHnNCx8rNHS/ej0MIVqm6vKe3mhC + * BX/qpQDJEPj9xQWNA0VdT2/6bp3vrYrsg9TtV/OGcxUv0mdw0WLvHSUIWUcgYkcW + * NeFXOL853fy5yNgjU+ICfSIxTGZylt/YfAEscQCJGOmMCESMZB+Tm3qXJslQ0Iey + * SKgZceGz/wKBgCOY3TVwWkM19ay62Qr1oHu89ZVVoIyGlsNhDhdun695njAqSH+T + * kPSNAs79z0J0YX5URi3duLC9EljRhcnKerm2fDUsh/EmHdgMLC5wDn/qrF3o6X6f + * VQtu87wBw9P4DsnGx4sKZVMQghXeiJCdqx6s8+1ZdXIbAe75d88rZBGhAoGBAJ4p + * b4fGAo3VVAXf3mPu/aZgoRu30yCGB2hHQzcm/A/AxzXMF2T1wiV616nYGILWD9DT + * 1QzxZtP0IL4puzvmU2FVz7TsErBbiK143N8els/QZaPgI3yEtyhB0jZQH2P5H5uJ + * xAF+5nknKSn8zqn2V+UNTsYIlFraFG3UAHmxVppZAoGAbHMN/sciFV2MoZEr0Yjo + * kfnQPtC6xHSIzhQgTh5LxZGPwVbpdOD2z3GR7Sz1kJ3WyM31edxus4M++ta0YNk6 + * UhJ2nZL72ybuQzPEC4R0G5HgQYvMzCTaUq8tQucRVw2qZq8ausKOau6PLOZbdjiW + * u3ovWf7eoQL8EjqqnzwOpHg= + * -----END PRIVATE KEY----- * * client certificate: - * Data: - * Version: 3 (0x2) - * Serial Number: 9 (0x9) - * Signature Algorithm: md5WithRSAEncryption - * Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org - * Validity - * Not Before: Dec 8 03:43:24 2008 GMT - * Not After : Aug 25 03:43:24 2028 GMT - * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Client, CN=localhost - * Subject Public Key Info: - * Public Key Algorithm: rsaEncryption - * RSA Public Key: (1024 bit) - * Modulus (1024 bit): - * 00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69: - * 21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f: - * 12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7: - * 01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21: - * 7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41: - * 35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10: - * ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9: - * 28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba: - * 75:8d:f5:82:ac:43:92:44:1b - * Exponent: 65537 (0x10001) - * X509v3 extensions: - * X509v3 Basic Constraints: - * CA:FALSE - * X509v3 Key Usage: - * Digital Signature, Non Repudiation, Key Encipherment - * X509v3 Subject Key Identifier: - * CD:BB:C8:85:AA:91:BD:FD:1D:BE:CD:67:7C:FF:B3:E9:4C:A8:22:E6 - * X509v3 Authority Key Identifier: - * keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14 - * - * X509v3 Subject Alternative Name: critical - * DNS:localhost - * Signature Algorithm: md5WithRSAEncryption - * + * Data: + * Version: 3 (0x2) + * Serial Number: 1500699355 (0x5972dadb) + * Signature Algorithm: sha1WithRSAEncryption + * Issuer: C=Us, ST=Some-State, L=Some-City, O=Some-Org + * Validity + * Not Before: Jul 1 04:16:52 2024 GMT + * Not After : Jul 2 04:16:52 2034 GMT + * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, CN=localhost ou=SSL-Client + * Subject Public Key Info: + * Public Key Algorithm: rsaEncryption + * Public-Key: (2048 bit) + * Modulus: + * 00:cc:bf:92:3c:a6:57:74:1f:58:ad:c7:69:88:6f: + * 59:32:47:50:60:22:e4:98:49:0e:3e:1d:b8:ba:e2: + * 3b:b6:71:5b:fd:64:02:6d:0d:50:77:72:6e:a8:3d: + * 5d:d4:bd:1f:76:51:dc:9a:d0:d6:3e:d0:31:a5:24: + * 5a:2c:be:77:fa:88:a1:fa:06:41:c8:0f:47:70:47: + * 24:99:50:52:44:5b:30:62:5b:65:35:c4:28:b0:5c: + * ee:d0:1b:eb:39:2b:0b:a1:ac:96:48:da:56:6c:e0: + * e3:e6:e3:dd:45:cb:51:33:8d:40:43:d7:f0:a4:31: + * aa:b5:c0:df:4b:df:2b:0a:ed:7e:10:0c:ae:1f:96: + * a2:10:1e:6b:d0:f9:37:8b:df:0d:0e:02:35:f8:58: + * bc:6e:b5:57:0e:2f:ea:20:e6:73:9a:e5:6b:82:70: + * 25:bb:51:9a:7c:9d:e2:50:3d:cf:1e:24:3e:92:55: + * cf:2a:ad:0d:84:8f:a8:43:24:cd:ad:50:64:74:c2: + * 73:b6:e1:92:1c:b2:2b:8c:2d:7b:96:a6:41:61:5c: + * 1b:8f:78:28:51:40:ed:41:90:ce:1d:b8:26:81:47: + * 6b:e3:57:41:74:4e:20:f0:5a:1b:97:37:91:86:19: + * c5:f2:6d:04:c9:78:2b:5a:16:bc:fc:2b:71:5b:d0: + * 00:4f + * Exponent: 65537 (0x10001) + * X509v3 extensions: + * X509v3 Subject Key Identifier: + * CD:45:E2:05:92:88:A3:C7:49:28:E7:D3:37:B7:13:92:FB:B1:36:C4 + * X509v3 Key Usage: + * Digital Signature, Non Repudiation, Key Encipherment + * X509v3 Subject Alternative Name: critical + * DNS:localhost + * X509v3 Basic Constraints: + * CA:FALSE + * X509v3 Authority Key Identifier: + * E0:03:90:F6:4F:BB:57:E6:7E:AF:5C:94:25:B3:85:DA:16:0A:51:40 + * Signature Algorithm: sha1WithRSAEncryption + * Signature Value: + * 23:6e:e9:5d:80:0d:b3:86:c9:cd:17:81:33:bd:5b:aa:c0:65: + * 4c:6b:9f:fa:ee:32:e9:89:e1:d0:c7:1d:5c:43:7e:94:ac:83: + * af:91:90:4c:26:61:8d:fe:6b:1a:aa:6e:61:39:b3:24:4a:dc: + * 92:c8:ca:f2:80:b0:05:41:0c:b3:dd:ed:b7:81:42:9a:1e:4e: + * f2:80:6c:72:62:8b:bd:d4:cd:23:7d:7c:e8:6f:e3:67:89:6a: + * 79:19:dd:f6:57:62:12:fa:eb:cd:66:c3:d2:d8:40:5a:1c:dd: + * 7f:9f:b2:34:e9:2a:d6:14:52:ba:6e:a8:9b:0d:a9:a1:03:bf: + * c4:0d:92:3d:59:e4:a9:8e:20:41:39:99:81:70:9d:d0:68:98: + * fc:5f:49:4a:92:e5:a2:c1:51:61:f6:1e:49:56:0b:b6:8c:57: + * db:08:2a:f0:a3:04:dc:a1:04:a2:5c:d0:90:4f:13:8d:1c:e6: + * 2e:7a:63:9c:32:40:65:59:04:5d:71:90:5a:a8:db:6a:30:42: + * 57:5b:0b:df:ce:a1:1f:fa:23:71:f3:57:12:c4:1c:66:3b:37: + * 77:32:28:a7:fb:ad:ee:86:51:4c:80:2f:dd:c8:5b:9f:a7:15: + * 07:fa:2b:5a:ee:93:00:5f:a6:43:22:1b:40:52:15:66:01:84: + * 32:9e:71:21 * -----BEGIN CERTIFICATE----- - * MIICpDCCAg2gAwIBAgIBCTANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET - * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK - * EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMjRaFw0yODA4MjUwMzQzMjRaMHIxCzAJ - * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp - * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD - * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas - * JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV - * 8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq - * ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjczBxMAkGA1UdEwQCMAAw - * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV - * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh - * bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAm25gJyqW1JznQ1EyOtTGswBVwfgBOf+F - * HJuBTcflYQLbTD/AETPQJGvZU9tdhuLtbG3OPhR7vSY8zeAbfM3dbH7QFr3r47Gj - * XEH7qM/MX+Z3ifVaC4MeJmrYQkYFSuKeyyKpdRVX4w4nnFHF6OsNASsYrMW6LpxN - * cl/epUcHL7E= + * MIIDpTCCAo2gAwIBAgIEWXLa2zANBgkqhkiG9w0BAQUFADBJMQswCQYDVQQGEwJV + * czETMBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYD + * VQQKEwhTb21lLU9yZzAeFw0yNDA3MDEwNDE2NTJaFw0zNDA3MDIwNDE2NTJaMGsx + * CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21l + * LUNpdHkxETAPBgNVBAoTCFNvbWUtT3JnMSAwHgYDVQQDExdsb2NhbGhvc3Qgb3U9 + * U1NMLUNsaWVudDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMy/kjym + * V3QfWK3HaYhvWTJHUGAi5JhJDj4duLriO7ZxW/1kAm0NUHdybqg9XdS9H3ZR3JrQ + * 1j7QMaUkWiy+d/qIofoGQcgPR3BHJJlQUkRbMGJbZTXEKLBc7tAb6zkrC6Gslkja + * Vmzg4+bj3UXLUTONQEPX8KQxqrXA30vfKwrtfhAMrh+WohAea9D5N4vfDQ4CNfhY + * vG61Vw4v6iDmc5rla4JwJbtRmnyd4lA9zx4kPpJVzyqtDYSPqEMkza1QZHTCc7bh + * khyyK4wte5amQWFcG494KFFA7UGQzh24JoFHa+NXQXROIPBaG5c3kYYZxfJtBMl4 + * K1oWvPwrcVvQAE8CAwEAAaNzMHEwHQYDVR0OBBYEFM1F4gWSiKPHSSjn0ze3E5L7 + * sTbEMAsGA1UdDwQEAwIF4DAXBgNVHREBAf8EDTALgglsb2NhbGhvc3QwCQYDVR0T + * BAIwADAfBgNVHSMEGDAWgBTgA5D2T7tX5n6vXJQls4XaFgpRQDANBgkqhkiG9w0B + * AQUFAAOCAQEAI27pXYANs4bJzReBM71bqsBlTGuf+u4y6Ynh0McdXEN+lKyDr5GQ + * TCZhjf5rGqpuYTmzJErcksjK8oCwBUEMs93tt4FCmh5O8oBscmKLvdTNI3186G/j + * Z4lqeRnd9ldiEvrrzWbD0thAWhzdf5+yNOkq1hRSum6omw2poQO/xA2SPVnkqY4g + * QTmZgXCd0GiY/F9JSpLlosFRYfYeSVYLtoxX2wgq8KME3KEEolzQkE8TjRzmLnpj + * nDJAZVkEXXGQWqjbajBCV1sL386hH/ojcfNXEsQcZjs3dzIop/ut7oZRTIAv3chb + * n6cVB/orWu6TAF+mQyIbQFIVZgGEMp5xIQ== * -----END CERTIFICATE----- * * - * * Trusted CA certificate: * Certificate: * Data: - * Version: 3 (0x2) - * Serial Number: 0 (0x0) - * Signature Algorithm: md5WithRSAEncryption - * Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org - * Validity - * Not Before: Dec 8 02:43:36 2008 GMT - * Not After : Aug 25 02:43:36 2028 GMT - * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org - * Subject Public Key Info: - * Public Key Algorithm: rsaEncryption - * RSA Public Key: (1024 bit) - * Modulus (1024 bit): - * 00:cb:c4:38:20:07:be:88:a7:93:b0:a1:43:51:2d: - * d7:8e:85:af:54:dd:ad:a2:7b:23:5b:cf:99:13:53: - * 99:45:7d:ee:6d:ba:2d:bf:e3:ad:6e:3d:9f:1a:f9: - * 03:97:e0:17:55:ae:11:26:57:de:01:29:8e:05:3f: - * 21:f7:e7:36:e8:2e:37:d7:48:ac:53:d6:60:0e:c7: - * 50:6d:f6:c5:85:f7:8b:a6:c5:91:35:72:3c:94:ee: - * f1:17:f0:71:e3:ec:1b:ce:ca:4e:40:42:b0:6d:ee: - * 6a:0e:d6:e5:ad:3c:0f:c9:ba:82:4f:78:f8:89:97: - * 89:2a:95:12:4c:d8:09:2a:e9 - * Exponent: 65537 (0x10001) - * X509v3 extensions: - * X509v3 Subject Key Identifier: - * FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14 - * X509v3 Authority Key Identifier: - * keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14 - * DirName:/C=US/ST=Some-State/L=Some-City/O=Some-Org - * serial:00 - * - * X509v3 Basic Constraints: - * CA:TRUE - * Signature Algorithm: md5WithRSAEncryption - * + * Version: 3 (0x2) + * Serial Number: 1539881479 (0x5bc8ba07) + * Signature Algorithm: sha1WithRSAEncryption + * Issuer: C=Us, ST=Some-State, L=Some-City, O=Some-Org + * Validity + * Not Before: Jul 1 04:16:50 2024 GMT + * Not After : Jul 2 04:16:50 2034 GMT + * Subject: C=Us, ST=Some-State, L=Some-City, O=Some-Org + * Subject Public Key Info: + * Public Key Algorithm: rsaEncryption + * Public-Key: (2048 bit) + * Modulus: + * 00:bc:a6:55:60:3f:17:74:39:ba:71:8c:ef:11:3f: + * 9d:36:47:d5:02:d1:4d:9d:7e:b8:fe:59:b1:2b:f1: + * b7:b0:0c:31:57:eb:9c:9d:13:f5:4c:5f:fc:c4:9e: + * f9:75:09:0f:96:8f:05:77:30:a8:35:48:71:96:e4: + * a5:7d:1a:81:fb:e6:bf:90:80:60:5d:11:20:54:16: + * 0b:6d:df:64:de:18:d5:98:51:38:9d:c9:d6:5f:de: + * 9d:de:fe:a8:5f:d3:25:3d:ad:f3:2b:45:c8:4a:80: + * 97:14:7b:85:9d:cf:59:08:bb:c7:67:ac:8b:29:f3: + * 1e:93:bf:fb:82:53:c5:ae:b4:bc:55:30:15:a8:7e: + * 3f:82:22:59:43:cc:d2:62:e7:65:67:72:ec:10:8a: + * fc:05:90:91:72:dd:e9:6f:e2:9f:0c:ab:a1:83:55: + * 02:23:b7:a3:c3:50:ab:be:0b:bb:51:75:50:d1:a8: + * c9:e5:f5:06:fe:00:09:a6:1b:8a:16:29:0d:ab:00: + * 3e:bc:d2:73:d9:37:d7:d9:9a:58:6e:2d:2a:f6:76: + * ae:f4:ea:6d:70:de:7f:e3:04:43:c0:4f:91:3f:78: + * 58:d7:c2:ad:74:eb:04:9d:d0:7e:82:b8:7a:97:44: + * 61:fa:41:45:a6:ca:7d:a5:2e:fc:f9:a6:cf:61:cd: + * 75:bf + * Exponent: 65537 (0x10001) + * X509v3 extensions: + * X509v3 Subject Key Identifier: + * E0:03:90:F6:4F:BB:57:E6:7E:AF:5C:94:25:B3:85:DA:16:0A:51:40 + * X509v3 Basic Constraints: critical + * CA:TRUE + * Signature Algorithm: sha1WithRSAEncryption + * Signature Value: + * 1f:89:34:e3:ee:05:33:3b:18:ca:96:13:3d:ad:cd:5a:e6:24: + * 46:94:36:ad:37:a5:36:a9:92:37:f9:ed:07:dd:44:5b:c9:2e: + * 68:f7:82:f3:58:1c:64:ed:64:d0:ad:eb:30:15:e0:04:3a:d7: + * c8:c7:9d:65:76:ae:84:e4:2e:2d:0d:68:09:0d:e5:ae:cc:a7: + * 54:86:ad:ff:00:95:85:01:49:db:5b:8e:c2:6f:e7:19:10:17: + * f7:03:b9:a8:97:21:a2:fc:7f:c0:e0:7a:12:64:b8:70:f5:e8: + * b6:e1:25:f7:eb:32:3e:46:ce:43:55:fc:0b:62:59:90:61:63: + * f9:94:6c:95:63:31:1b:00:59:1f:72:9d:d0:0b:4f:cd:02:eb: + * de:20:4e:60:48:4e:ea:ad:3c:0f:1d:bf:1a:69:3d:a8:3d:8b: + * f5:a2:ae:8c:4f:d7:0e:b3:e1:9b:b3:2c:89:19:18:da:db:e1: + * 6d:d5:ab:c8:b8:48:57:d8:8b:33:01:d4:97:91:d9:da:34:a1: + * ef:36:00:e1:38:19:34:8f:0d:47:af:57:cf:59:d6:8b:0d:9e: + * 89:05:82:3d:3c:f3:45:1d:4a:3f:0e:0f:5a:28:6f:5c:e1:e9: + * 60:72:87:28:b6:97:44:8b:d7:c6:cd:cb:dc:5a:5d:60:f1:b4: + * 37:ee:44:db * -----BEGIN CERTIFICATE----- - * MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET - * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK - * EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ - * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp - * dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB - * gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX - * 4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj - * 7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G - * A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ - * hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt - * U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw - * DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA - * ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ - * LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P - * 6Mvf0r1PNTY2hwTJLJmKtg== + * MIIDQjCCAiqgAwIBAgIEW8i6BzANBgkqhkiG9w0BAQUFADBJMQswCQYDVQQGEwJV + * czETMBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYD + * VQQKEwhTb21lLU9yZzAeFw0yNDA3MDEwNDE2NTBaFw0zNDA3MDIwNDE2NTBaMEkx + * CzAJBgNVBAYTAlVzMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21l + * LUNpdHkxETAPBgNVBAoTCFNvbWUtT3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A + * MIIBCgKCAQEAvKZVYD8XdDm6cYzvET+dNkfVAtFNnX64/lmxK/G3sAwxV+ucnRP1 + * TF/8xJ75dQkPlo8FdzCoNUhxluSlfRqB++a/kIBgXREgVBYLbd9k3hjVmFE4ncnW + * X96d3v6oX9MlPa3zK0XISoCXFHuFnc9ZCLvHZ6yLKfMek7/7glPFrrS8VTAVqH4/ + * giJZQ8zSYudlZ3LsEIr8BZCRct3pb+KfDKuhg1UCI7ejw1Crvgu7UXVQ0ajJ5fUG + * /gAJphuKFikNqwA+vNJz2TfX2ZpYbi0q9nau9OptcN5/4wRDwE+RP3hY18KtdOsE + * ndB+grh6l0Rh+kFFpsp9pS78+abPYc11vwIDAQABozIwMDAdBgNVHQ4EFgQU4AOQ + * 9k+7V+Z+r1yUJbOF2hYKUUAwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUF + * AAOCAQEAH4k04+4FMzsYypYTPa3NWuYkRpQ2rTelNqmSN/ntB91EW8kuaPeC81gc + * ZO1k0K3rMBXgBDrXyMedZXauhOQuLQ1oCQ3lrsynVIat/wCVhQFJ21uOwm/nGRAX + * 9wO5qJchovx/wOB6EmS4cPXotuEl9+syPkbOQ1X8C2JZkGFj+ZRslWMxGwBZH3Kd + * 0AtPzQLr3iBOYEhO6q08Dx2/Gmk9qD2L9aKujE/XDrPhm7MsiRkY2tvhbdWryLhI + * V9iLMwHUl5HZ2jSh7zYA4TgZNI8NR69Xz1nWiw2eiQWCPTzzRR1KPw4PWihvXOHp + * YHKHKLaXRIvXxs3L3FpdYPG0N+5E2w== * -----END CERTIFICATE--- */ - public class SunX509ExtendedTM { /* @@ -423,201 +563,342 @@ public class SunX509ExtendedTM { */ static String trusedCertStr = "-----BEGIN CERTIFICATE-----\n" + - "MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" + - "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" + - "EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ\n" + - "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" + - "dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\n" + - "gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX\n" + - "4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj\n" + - "7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G\n" + - "A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ\n" + - "hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt\n" + - "U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw\n" + - "DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA\n" + - "ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ\n" + - "LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P\n" + - "6Mvf0r1PNTY2hwTJLJmKtg==\n" + + "MIIDQjCCAiqgAwIBAgIEW8i6BzANBgkqhkiG9w0BAQUFADBJMQswCQYDVQQGEwJV\n" + + "czETMBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYD\n" + + "VQQKEwhTb21lLU9yZzAeFw0yNDA3MDEwNDE2NTBaFw0zNDA3MDIwNDE2NTBaMEkx\n" + + "CzAJBgNVBAYTAlVzMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21l\n" + + "LUNpdHkxETAPBgNVBAoTCFNvbWUtT3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A\n" + + "MIIBCgKCAQEAvKZVYD8XdDm6cYzvET+dNkfVAtFNnX64/lmxK/G3sAwxV+ucnRP1\n" + + "TF/8xJ75dQkPlo8FdzCoNUhxluSlfRqB++a/kIBgXREgVBYLbd9k3hjVmFE4ncnW\n" + + "X96d3v6oX9MlPa3zK0XISoCXFHuFnc9ZCLvHZ6yLKfMek7/7glPFrrS8VTAVqH4/\n" + + "giJZQ8zSYudlZ3LsEIr8BZCRct3pb+KfDKuhg1UCI7ejw1Crvgu7UXVQ0ajJ5fUG\n" + + "/gAJphuKFikNqwA+vNJz2TfX2ZpYbi0q9nau9OptcN5/4wRDwE+RP3hY18KtdOsE\n" + + "ndB+grh6l0Rh+kFFpsp9pS78+abPYc11vwIDAQABozIwMDAdBgNVHQ4EFgQU4AOQ\n" + + "9k+7V+Z+r1yUJbOF2hYKUUAwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUF\n" + + "AAOCAQEAH4k04+4FMzsYypYTPa3NWuYkRpQ2rTelNqmSN/ntB91EW8kuaPeC81gc\n" + + "ZO1k0K3rMBXgBDrXyMedZXauhOQuLQ1oCQ3lrsynVIat/wCVhQFJ21uOwm/nGRAX\n" + + "9wO5qJchovx/wOB6EmS4cPXotuEl9+syPkbOQ1X8C2JZkGFj+ZRslWMxGwBZH3Kd\n" + + "0AtPzQLr3iBOYEhO6q08Dx2/Gmk9qD2L9aKujE/XDrPhm7MsiRkY2tvhbdWryLhI\n" + + "V9iLMwHUl5HZ2jSh7zYA4TgZNI8NR69Xz1nWiw2eiQWCPTzzRR1KPw4PWihvXOHp\n" + + "YHKHKLaXRIvXxs3L3FpdYPG0N+5E2w==\n" + "-----END CERTIFICATE-----"; static String serverCertStr = "-----BEGIN CERTIFICATE-----\n" + - "MIICpDCCAg2gAwIBAgIBCDANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" + - "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" + - "EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMDRaFw0yODA4MjUwMzQzMDRaMHIxCzAJ\n" + - "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" + - "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD\n" + - "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3\n" + - "ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6\n" + - "YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS\n" + - "7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjczBxMAkGA1UdEwQCMAAw\n" + - "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV\n" + - "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh\n" + - "bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAoqVTciHtcvsUj+YaTct8tUh3aTCsKsac\n" + - "PHhfQ+ObjiXSgxsKYTX7ym/wk/wvlbUcbqLKxsu7qrcJitH+H9heV1hEHEu65Uoi\n" + - "nRugFruyOrwvAylV8Cm2af7ddilmYJ+sdJA6N2M3xJRxR0G2LFHEXDNEjYReyexn\n" + - "JqCpf5uZGOo=\n" + + "MIIDpTCCAo2gAwIBAgIEBlY/nzANBgkqhkiG9w0BAQUFADBJMQswCQYDVQQGEwJV\n" + + "czETMBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYD\n" + + "VQQKEwhTb21lLU9yZzAeFw0yNDA3MDEwNDE2NTVaFw0zNDA3MDIwNDE2NTVaMGsx\n" + + "CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21l\n" + + "LUNpdHkxETAPBgNVBAoTCFNvbWUtT3JnMSAwHgYDVQQDExdsb2NhbGhvc3Qgb3U9\n" + + "U1NMLVNlcnZlcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJoM4I+o\n" + + "An5a7+2yQq0ITpG6wq2bedebD/3S+BUvGYmAEAACGW0nwpDXpSNTdG5kKHwkqu3q\n" + + "IVnco1y1yUIxT6Le+wl8c+2IBDTxFa09YM3KxROZ05+bspJwy7pLPSCWrb6SU+1U\n" + + "O8UUvc/UD8sFT/0rnuBQu2UTksDWvU0CDHC2ZdR9tE3D3ywIntI+aTJGb2/K0XOk\n" + + "lAfvFOPani/ArA4QM0xoefN5QNbpPMLmcOCJzqB6qIQohTI3CLDPsX9fvB+lPe/W\n" + + "aKgXIV+H1Uu1zO54jd2xKGrA+2S9t3ACMwMLuLi7CIL2jgUn0TvmxaxNhVuhHaNI\n" + + "XQMVdmNscSE+mM0CAwEAAaNzMHEwHQYDVR0OBBYEFFyvRLFIuFmaZFOdLqayCdMK\n" + + "kgSDMAsGA1UdDwQEAwIF4DAXBgNVHREBAf8EDTALgglsb2NhbGhvc3QwCQYDVR0T\n" + + "BAIwADAfBgNVHSMEGDAWgBTgA5D2T7tX5n6vXJQls4XaFgpRQDANBgkqhkiG9w0B\n" + + "AQUFAAOCAQEAnSJJX1Yj5oA1zKtEHCe9yY2Jk0lY6MF6aN3PveASdgZUzS9im1SE\n" + + "8ruQoLs34hMd899BquD+wO9GeI2q9BtwrakWJPoVSsYKjeGZkwCp1LYIXY5lA9zQ\n" + + "lfyVYaattatNpuAFSIzbQkKK1l7AKqARFbgHaVw/maC9U2XbTs9GYZMJe4FA/1z+\n" + + "TOv0rN4fOK2yYCj2Dp9G5wePIJqk4Y+rVJl2gtiecMTamIVxrztU5AG0noPQe8aN\n" + + "H+0lCIkF6YeXdlqjhcP4Wde7O1rby+1d/6whuZriZQq83tHcU5SYRJeRsxtrgAub\n" + + "V7OuXHw1yjlx906PStfrCyXash4XSLjrCQ==\n" + "-----END CERTIFICATE-----"; static String clientCertStr = "-----BEGIN CERTIFICATE-----\n" + - "MIICpDCCAg2gAwIBAgIBCTANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" + - "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" + - "EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMjRaFw0yODA4MjUwMzQzMjRaMHIxCzAJ\n" + - "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" + - "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD\n" + - "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas\n" + - "JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV\n" + - "8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq\n" + - "ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjczBxMAkGA1UdEwQCMAAw\n" + - "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV\n" + - "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh\n" + - "bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAm25gJyqW1JznQ1EyOtTGswBVwfgBOf+F\n" + - "HJuBTcflYQLbTD/AETPQJGvZU9tdhuLtbG3OPhR7vSY8zeAbfM3dbH7QFr3r47Gj\n" + - "XEH7qM/MX+Z3ifVaC4MeJmrYQkYFSuKeyyKpdRVX4w4nnFHF6OsNASsYrMW6LpxN\n" + - "cl/epUcHL7E=\n" + + "MIIDpTCCAo2gAwIBAgIEWXLa2zANBgkqhkiG9w0BAQUFADBJMQswCQYDVQQGEwJV\n" + + "czETMBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYD\n" + + "VQQKEwhTb21lLU9yZzAeFw0yNDA3MDEwNDE2NTJaFw0zNDA3MDIwNDE2NTJaMGsx\n" + + "CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21l\n" + + "LUNpdHkxETAPBgNVBAoTCFNvbWUtT3JnMSAwHgYDVQQDExdsb2NhbGhvc3Qgb3U9\n" + + "U1NMLUNsaWVudDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMy/kjym\n" + + "V3QfWK3HaYhvWTJHUGAi5JhJDj4duLriO7ZxW/1kAm0NUHdybqg9XdS9H3ZR3JrQ\n" + + "1j7QMaUkWiy+d/qIofoGQcgPR3BHJJlQUkRbMGJbZTXEKLBc7tAb6zkrC6Gslkja\n" + + "Vmzg4+bj3UXLUTONQEPX8KQxqrXA30vfKwrtfhAMrh+WohAea9D5N4vfDQ4CNfhY\n" + + "vG61Vw4v6iDmc5rla4JwJbtRmnyd4lA9zx4kPpJVzyqtDYSPqEMkza1QZHTCc7bh\n" + + "khyyK4wte5amQWFcG494KFFA7UGQzh24JoFHa+NXQXROIPBaG5c3kYYZxfJtBMl4\n" + + "K1oWvPwrcVvQAE8CAwEAAaNzMHEwHQYDVR0OBBYEFM1F4gWSiKPHSSjn0ze3E5L7\n" + + "sTbEMAsGA1UdDwQEAwIF4DAXBgNVHREBAf8EDTALgglsb2NhbGhvc3QwCQYDVR0T\n" + + "BAIwADAfBgNVHSMEGDAWgBTgA5D2T7tX5n6vXJQls4XaFgpRQDANBgkqhkiG9w0B\n" + + "AQUFAAOCAQEAI27pXYANs4bJzReBM71bqsBlTGuf+u4y6Ynh0McdXEN+lKyDr5GQ\n" + + "TCZhjf5rGqpuYTmzJErcksjK8oCwBUEMs93tt4FCmh5O8oBscmKLvdTNI3186G/j\n" + + "Z4lqeRnd9ldiEvrrzWbD0thAWhzdf5+yNOkq1hRSum6omw2poQO/xA2SPVnkqY4g\n" + + "QTmZgXCd0GiY/F9JSpLlosFRYfYeSVYLtoxX2wgq8KME3KEEolzQkE8TjRzmLnpj\n" + + "nDJAZVkEXXGQWqjbajBCV1sL386hH/ojcfNXEsQcZjs3dzIop/ut7oZRTIAv3chb\n" + + "n6cVB/orWu6TAF+mQyIbQFIVZgGEMp5xIQ==\n" + "-----END CERTIFICATE-----"; static byte serverPrivateExponent[] = { - (byte)0x6e, (byte)0xa7, (byte)0x1b, (byte)0x83, - (byte)0x51, (byte)0x35, (byte)0x9a, (byte)0x44, - (byte)0x7d, (byte)0xf6, (byte)0xe3, (byte)0x89, - (byte)0xa0, (byte)0xd7, (byte)0x90, (byte)0x60, - (byte)0xa1, (byte)0x4e, (byte)0x27, (byte)0x21, - (byte)0xa2, (byte)0x89, (byte)0x74, (byte)0xcc, - (byte)0x9d, (byte)0x75, (byte)0x75, (byte)0x4e, - (byte)0xc7, (byte)0x82, (byte)0xe3, (byte)0xe3, - (byte)0xc3, (byte)0x7d, (byte)0x00, (byte)0x54, - (byte)0xec, (byte)0x36, (byte)0xb1, (byte)0xdf, - (byte)0x91, (byte)0x9c, (byte)0x7a, (byte)0xc0, - (byte)0x62, (byte)0x0a, (byte)0xd6, (byte)0xa9, - (byte)0x22, (byte)0x91, (byte)0x4a, (byte)0x29, - (byte)0x2e, (byte)0x43, (byte)0xfa, (byte)0x8c, - (byte)0xd8, (byte)0xe9, (byte)0xbe, (byte)0xd9, - (byte)0x4f, (byte)0xca, (byte)0x23, (byte)0xc6, - (byte)0xe4, (byte)0x3f, (byte)0xb8, (byte)0x72, - (byte)0xcf, (byte)0x02, (byte)0xfc, (byte)0xf4, - (byte)0x58, (byte)0x34, (byte)0x77, (byte)0x76, - (byte)0xce, (byte)0x22, (byte)0x44, (byte)0x5f, - (byte)0x2d, (byte)0xca, (byte)0xee, (byte)0xf5, - (byte)0x43, (byte)0x56, (byte)0x47, (byte)0x71, - (byte)0x0b, (byte)0x09, (byte)0x6b, (byte)0x5e, - (byte)0xf2, (byte)0xc8, (byte)0xee, (byte)0xd4, - (byte)0x6e, (byte)0x44, (byte)0x92, (byte)0x2a, - (byte)0x7f, (byte)0xcc, (byte)0xa7, (byte)0xd4, - (byte)0x5b, (byte)0xfb, (byte)0xf7, (byte)0x4a, - (byte)0xa9, (byte)0xfb, (byte)0x54, (byte)0x18, - (byte)0xd5, (byte)0xd5, (byte)0x14, (byte)0xba, - (byte)0xa0, (byte)0x1c, (byte)0x13, (byte)0xb3, - (byte)0x37, (byte)0x6b, (byte)0x37, (byte)0x59, - (byte)0xed, (byte)0xdb, (byte)0x6d, (byte)0xb1 + (byte)0x68, (byte)0x87, (byte)0x36, (byte)0x54, + (byte)0xa3, (byte)0xc6, (byte)0xd5, (byte)0x5f, + (byte)0xf5, (byte)0x0f, (byte)0x4f, (byte)0x76, + (byte)0xc8, (byte)0x9c, (byte)0x2b, (byte)0x5b, + (byte)0xdc, (byte)0xe2, (byte)0xbe, (byte)0x14, + (byte)0x12, (byte)0x2f, (byte)0xc7, (byte)0x0a, + (byte)0xa9, (byte)0xcb, (byte)0x5e, (byte)0x04, + (byte)0x59, (byte)0xca, (byte)0x35, (byte)0x2f, + (byte)0x8d, (byte)0x2b, (byte)0xc4, (byte)0x40, + (byte)0xe6, (byte)0x7d, (byte)0x25, (byte)0x1b, + (byte)0x4d, (byte)0x07, (byte)0xc3, (byte)0x99, + (byte)0x9c, (byte)0x16, (byte)0x4f, (byte)0xa5, + (byte)0xdc, (byte)0xde, (byte)0xb0, (byte)0x90, + (byte)0xf0, (byte)0xde, (byte)0x22, (byte)0x70, + (byte)0x80, (byte)0xf4, (byte)0xa6, (byte)0x70, + (byte)0xe2, (byte)0x96, (byte)0x3d, (byte)0x18, + (byte)0x21, (byte)0xbf, (byte)0x2b, (byte)0x27, + (byte)0xa4, (byte)0x2d, (byte)0xd7, (byte)0xae, + (byte)0x2b, (byte)0x12, (byte)0x2f, (byte)0x08, + (byte)0x36, (byte)0xee, (byte)0x99, (byte)0x94, + (byte)0xed, (byte)0xf6, (byte)0xa7, (byte)0xd9, + (byte)0x1d, (byte)0xa2, (byte)0xf3, (byte)0x1f, + (byte)0x44, (byte)0xa4, (byte)0x28, (byte)0x4b, + (byte)0x67, (byte)0x35, (byte)0xd6, (byte)0xa8, + (byte)0x1b, (byte)0xf8, (byte)0x84, (byte)0x34, + (byte)0x34, (byte)0x84, (byte)0xbd, (byte)0xec, + (byte)0x9e, (byte)0x03, (byte)0x08, (byte)0x3c, + (byte)0x93, (byte)0x20, (byte)0x8e, (byte)0xaf, + (byte)0x15, (byte)0xcb, (byte)0x1f, (byte)0x20, + (byte)0x08, (byte)0x97, (byte)0xc4, (byte)0x19, + (byte)0x3e, (byte)0xfa, (byte)0x36, (byte)0xc6, + (byte)0xab, (byte)0x0e, (byte)0x2f, (byte)0xe7, + (byte)0xb3, (byte)0xc0, (byte)0xa7, (byte)0xbc, + (byte)0xe4, (byte)0xe0, (byte)0xa6, (byte)0x08, + (byte)0x1c, (byte)0x69, (byte)0x20, (byte)0x4d, + (byte)0x78, (byte)0xbd, (byte)0x7a, (byte)0xe5, + (byte)0x25, (byte)0x48, (byte)0x60, (byte)0x9e, + (byte)0x2e, (byte)0x50, (byte)0x8d, (byte)0x36, + (byte)0x1e, (byte)0x07, (byte)0xe9, (byte)0xd5, + (byte)0x0d, (byte)0x39, (byte)0x67, (byte)0x41, + (byte)0x42, (byte)0x24, (byte)0xdb, (byte)0x87, + (byte)0xe5, (byte)0x77, (byte)0x76, (byte)0xfd, + (byte)0x5e, (byte)0xd5, (byte)0xc6, (byte)0xe5, + (byte)0xd3, (byte)0xb0, (byte)0x98, (byte)0x71, + (byte)0x48, (byte)0x69, (byte)0x47, (byte)0x4f, + (byte)0x46, (byte)0x05, (byte)0x0c, (byte)0x9e, + (byte)0x58, (byte)0x45, (byte)0x2e, (byte)0xe2, + (byte)0x27, (byte)0xd0, (byte)0xf6, (byte)0x11, + (byte)0x05, (byte)0x78, (byte)0xad, (byte)0x83, + (byte)0x5a, (byte)0x5b, (byte)0xec, (byte)0xd7, + (byte)0x2e, (byte)0x26, (byte)0x5a, (byte)0xa5, + (byte)0x4f, (byte)0x9e, (byte)0x52, (byte)0x84, + (byte)0x2c, (byte)0x1f, (byte)0x59, (byte)0x1a, + (byte)0x78, (byte)0x56, (byte)0x0a, (byte)0x44, + (byte)0x54, (byte)0xc6, (byte)0x37, (byte)0x64, + (byte)0x01, (byte)0xca, (byte)0xe4, (byte)0xa8, + (byte)0x01, (byte)0xc7, (byte)0x86, (byte)0xc1, + (byte)0xb4, (byte)0xd6, (byte)0x6c, (byte)0x7a, + (byte)0x15, (byte)0x9a, (byte)0x65, (byte)0x69, + (byte)0x46, (byte)0x9e, (byte)0xfd, (byte)0xf6, + (byte)0x08, (byte)0x17, (byte)0x0c, (byte)0x6c, + (byte)0xac, (byte)0x38, (byte)0xbd, (byte)0xc2, + (byte)0xcd, (byte)0xda, (byte)0xef, (byte)0x54, + (byte)0x7a, (byte)0x48, (byte)0x92, (byte)0x4d }; static byte serverModulus[] = { - (byte)0x00, - (byte)0xa5, (byte)0xac, (byte)0x5b, (byte)0x1c, - (byte)0x37, (byte)0xa2, (byte)0xdd, (byte)0x99, - (byte)0x89, (byte)0x2d, (byte)0xb2, (byte)0x79, - (byte)0xb8, (byte)0x8f, (byte)0xd5, (byte)0x48, - (byte)0xa5, (byte)0xe7, (byte)0x1c, (byte)0x84, - (byte)0x17, (byte)0x8d, (byte)0x69, (byte)0x9c, - (byte)0xc6, (byte)0xac, (byte)0x6d, (byte)0xf9, - (byte)0xf2, (byte)0x1d, (byte)0x1f, (byte)0x39, - (byte)0x19, (byte)0xda, (byte)0xd3, (byte)0x72, - (byte)0x1e, (byte)0x6e, (byte)0xec, (byte)0x44, - (byte)0xcc, (byte)0x70, (byte)0xa4, (byte)0xdc, - (byte)0xba, (byte)0x00, (byte)0x30, (byte)0xf6, - (byte)0xa0, (byte)0x4f, (byte)0x3d, (byte)0x54, - (byte)0x7a, (byte)0x61, (byte)0x6a, (byte)0xcc, - (byte)0x57, (byte)0xd0, (byte)0x0a, (byte)0x7f, - (byte)0x95, (byte)0x28, (byte)0x18, (byte)0x3f, - (byte)0x9a, (byte)0xd9, (byte)0x94, (byte)0xf2, - (byte)0x1b, (byte)0xc8, (byte)0x24, (byte)0x88, - (byte)0x7e, (byte)0xfe, (byte)0x9d, (byte)0x0f, - (byte)0x3d, (byte)0xfb, (byte)0x57, (byte)0x53, - (byte)0x08, (byte)0xb3, (byte)0x20, (byte)0x33, - (byte)0xd4, (byte)0x3f, (byte)0x17, (byte)0x47, - (byte)0x14, (byte)0xd1, (byte)0xcd, (byte)0xea, - (byte)0x08, (byte)0xd8, (byte)0x0e, (byte)0x75, - (byte)0x4e, (byte)0xaf, (byte)0xbe, (byte)0xcc, - (byte)0xd2, (byte)0xec, (byte)0xaf, (byte)0xa9, - (byte)0x7a, (byte)0x49, (byte)0xdf, (byte)0xc2, - (byte)0xd9, (byte)0xac, (byte)0xb8, (byte)0x24, - (byte)0x40, (byte)0x90, (byte)0xa6, (byte)0x03, - (byte)0x56, (byte)0x2a, (byte)0xd0, (byte)0x30, - (byte)0x05, (byte)0x40, (byte)0x2c, (byte)0x4f, - (byte)0xab, (byte)0xd9, (byte)0x74, (byte)0x89 + (byte)0x00, (byte)0x9a, (byte)0x0c, (byte)0xe0, + (byte)0x8f, (byte)0xa8, (byte)0x02, (byte)0x7e, + (byte)0x5a, (byte)0xef, (byte)0xed, (byte)0xb2, + (byte)0x42, (byte)0xad, (byte)0x08, (byte)0x4e, + (byte)0x91, (byte)0xba, (byte)0xc2, (byte)0xad, + (byte)0x9b, (byte)0x79, (byte)0xd7, (byte)0x9b, + (byte)0x0f, (byte)0xfd, (byte)0xd2, (byte)0xf8, + (byte)0x15, (byte)0x2f, (byte)0x19, (byte)0x89, + (byte)0x80, (byte)0x10, (byte)0x00, (byte)0x02, + (byte)0x19, (byte)0x6d, (byte)0x27, (byte)0xc2, + (byte)0x90, (byte)0xd7, (byte)0xa5, (byte)0x23, + (byte)0x53, (byte)0x74, (byte)0x6e, (byte)0x64, + (byte)0x28, (byte)0x7c, (byte)0x24, (byte)0xaa, + (byte)0xed, (byte)0xea, (byte)0x21, (byte)0x59, + (byte)0xdc, (byte)0xa3, (byte)0x5c, (byte)0xb5, + (byte)0xc9, (byte)0x42, (byte)0x31, (byte)0x4f, + (byte)0xa2, (byte)0xde, (byte)0xfb, (byte)0x09, + (byte)0x7c, (byte)0x73, (byte)0xed, (byte)0x88, + (byte)0x04, (byte)0x34, (byte)0xf1, (byte)0x15, + (byte)0xad, (byte)0x3d, (byte)0x60, (byte)0xcd, + (byte)0xca, (byte)0xc5, (byte)0x13, (byte)0x99, + (byte)0xd3, (byte)0x9f, (byte)0x9b, (byte)0xb2, + (byte)0x92, (byte)0x70, (byte)0xcb, (byte)0xba, + (byte)0x4b, (byte)0x3d, (byte)0x20, (byte)0x96, + (byte)0xad, (byte)0xbe, (byte)0x92, (byte)0x53, + (byte)0xed, (byte)0x54, (byte)0x3b, (byte)0xc5, + (byte)0x14, (byte)0xbd, (byte)0xcf, (byte)0xd4, + (byte)0x0f, (byte)0xcb, (byte)0x05, (byte)0x4f, + (byte)0xfd, (byte)0x2b, (byte)0x9e, (byte)0xe0, + (byte)0x50, (byte)0xbb, (byte)0x65, (byte)0x13, + (byte)0x92, (byte)0xc0, (byte)0xd6, (byte)0xbd, + (byte)0x4d, (byte)0x02, (byte)0x0c, (byte)0x70, + (byte)0xb6, (byte)0x65, (byte)0xd4, (byte)0x7d, + (byte)0xb4, (byte)0x4d, (byte)0xc3, (byte)0xdf, + (byte)0x2c, (byte)0x08, (byte)0x9e, (byte)0xd2, + (byte)0x3e, (byte)0x69, (byte)0x32, (byte)0x46, + (byte)0x6f, (byte)0x6f, (byte)0xca, (byte)0xd1, + (byte)0x73, (byte)0xa4, (byte)0x94, (byte)0x07, + (byte)0xef, (byte)0x14, (byte)0xe3, (byte)0xda, + (byte)0x9e, (byte)0x2f, (byte)0xc0, (byte)0xac, + (byte)0x0e, (byte)0x10, (byte)0x33, (byte)0x4c, + (byte)0x68, (byte)0x79, (byte)0xf3, (byte)0x79, + (byte)0x40, (byte)0xd6, (byte)0xe9, (byte)0x3c, + (byte)0xc2, (byte)0xe6, (byte)0x70, (byte)0xe0, + (byte)0x89, (byte)0xce, (byte)0xa0, (byte)0x7a, + (byte)0xa8, (byte)0x84, (byte)0x28, (byte)0x85, + (byte)0x32, (byte)0x37, (byte)0x08, (byte)0xb0, + (byte)0xcf, (byte)0xb1, (byte)0x7f, (byte)0x5f, + (byte)0xbc, (byte)0x1f, (byte)0xa5, (byte)0x3d, + (byte)0xef, (byte)0xd6, (byte)0x68, (byte)0xa8, + (byte)0x17, (byte)0x21, (byte)0x5f, (byte)0x87, + (byte)0xd5, (byte)0x4b, (byte)0xb5, (byte)0xcc, + (byte)0xee, (byte)0x78, (byte)0x8d, (byte)0xdd, + (byte)0xb1, (byte)0x28, (byte)0x6a, (byte)0xc0, + (byte)0xfb, (byte)0x64, (byte)0xbd, (byte)0xb7, + (byte)0x70, (byte)0x02, (byte)0x33, (byte)0x03, + (byte)0x0b, (byte)0xb8, (byte)0xb8, (byte)0xbb, + (byte)0x08, (byte)0x82, (byte)0xf6, (byte)0x8e, + (byte)0x05, (byte)0x27, (byte)0xd1, (byte)0x3b, + (byte)0xe6, (byte)0xc5, (byte)0xac, (byte)0x4d, + (byte)0x85, (byte)0x5b, (byte)0xa1, (byte)0x1d, + (byte)0xa3, (byte)0x48, (byte)0x5d, (byte)0x03, + (byte)0x15, (byte)0x76, (byte)0x63, (byte)0x6c, + (byte)0x71, (byte)0x21, (byte)0x3e, (byte)0x98, + (byte)0xcd }; static byte clientPrivateExponent[] = { - (byte)0x11, (byte)0xb7, (byte)0x6a, (byte)0x36, - (byte)0x3d, (byte)0x30, (byte)0x37, (byte)0xce, - (byte)0x61, (byte)0x9d, (byte)0x6c, (byte)0x84, - (byte)0x8b, (byte)0xf3, (byte)0x9b, (byte)0x25, - (byte)0x4f, (byte)0x14, (byte)0xc8, (byte)0xa4, - (byte)0xdd, (byte)0x2f, (byte)0xd7, (byte)0x9a, - (byte)0x17, (byte)0xbd, (byte)0x90, (byte)0x19, - (byte)0xf7, (byte)0x05, (byte)0xfd, (byte)0xf2, - (byte)0xd2, (byte)0xc5, (byte)0xf7, (byte)0x77, - (byte)0xbe, (byte)0xea, (byte)0xe2, (byte)0x84, - (byte)0x87, (byte)0x97, (byte)0x3a, (byte)0x41, - (byte)0x96, (byte)0xb6, (byte)0x99, (byte)0xf8, - (byte)0x94, (byte)0x8c, (byte)0x58, (byte)0x71, - (byte)0x51, (byte)0x8c, (byte)0xf4, (byte)0x2a, - (byte)0x20, (byte)0x9e, (byte)0x1a, (byte)0xa0, - (byte)0x26, (byte)0x99, (byte)0x75, (byte)0xd6, - (byte)0x31, (byte)0x53, (byte)0x43, (byte)0x39, - (byte)0xf5, (byte)0x2a, (byte)0xa6, (byte)0x7e, - (byte)0x34, (byte)0x42, (byte)0x51, (byte)0x2a, - (byte)0x40, (byte)0x87, (byte)0x03, (byte)0x88, - (byte)0x43, (byte)0x69, (byte)0xb2, (byte)0x89, - (byte)0x6d, (byte)0x20, (byte)0xbd, (byte)0x7d, - (byte)0x71, (byte)0xef, (byte)0x47, (byte)0x0a, - (byte)0xdf, (byte)0x06, (byte)0xc1, (byte)0x69, - (byte)0x66, (byte)0xa8, (byte)0x22, (byte)0x37, - (byte)0x1a, (byte)0x77, (byte)0x1e, (byte)0xc7, - (byte)0x94, (byte)0x4e, (byte)0x2c, (byte)0x27, - (byte)0x69, (byte)0x45, (byte)0x5e, (byte)0xc8, - (byte)0xf8, (byte)0x0c, (byte)0xb7, (byte)0xf8, - (byte)0xc0, (byte)0x8f, (byte)0x99, (byte)0xc1, - (byte)0xe5, (byte)0x28, (byte)0x9b, (byte)0xf9, - (byte)0x4c, (byte)0x94, (byte)0xc6, (byte)0xb1 + (byte)0x62, (byte)0xb2, (byte)0xd6, (byte)0x63, + (byte)0xb6, (byte)0x2b, (byte)0xe2, (byte)0x26, + (byte)0x5a, (byte)0x31, (byte)0x2b, (byte)0x37, + (byte)0x8c, (byte)0x35, (byte)0x60, (byte)0xe2, + (byte)0x03, (byte)0xce, (byte)0x93, (byte)0x09, + (byte)0x3e, (byte)0xf8, (byte)0xc9, (byte)0xfe, + (byte)0xbb, (byte)0xa2, (byte)0xc8, (byte)0x32, + (byte)0x0e, (byte)0x6c, (byte)0x8a, (byte)0x7e, + (byte)0x0a, (byte)0xc2, (byte)0x13, (byte)0x3b, + (byte)0xb8, (byte)0x25, (byte)0xfa, (byte)0xec, + (byte)0x19, (byte)0x95, (byte)0x8e, (byte)0x34, + (byte)0x46, (byte)0xcf, (byte)0x0e, (byte)0x7b, + (byte)0xe4, (byte)0x25, (byte)0x82, (byte)0x1a, + (byte)0x7f, (byte)0x21, (byte)0x48, (byte)0x16, + (byte)0x44, (byte)0x58, (byte)0x3f, (byte)0x35, + (byte)0xd8, (byte)0xeb, (byte)0xd8, (byte)0x1a, + (byte)0x45, (byte)0x53, (byte)0x0f, (byte)0x9b, + (byte)0x84, (byte)0x8a, (byte)0x54, (byte)0x13, + (byte)0x33, (byte)0xe4, (byte)0x97, (byte)0x97, + (byte)0xf0, (byte)0x48, (byte)0x37, (byte)0xfb, + (byte)0x5d, (byte)0x4f, (byte)0x8c, (byte)0x8f, + (byte)0x35, (byte)0x63, (byte)0xe1, (byte)0xd9, + (byte)0x62, (byte)0x73, (byte)0x1c, (byte)0x8e, + (byte)0xd8, (byte)0xcd, (byte)0x2e, (byte)0x1a, + (byte)0xe5, (byte)0x4c, (byte)0xb5, (byte)0x05, + (byte)0x59, (byte)0x7a, (byte)0xdf, (byte)0xf1, + (byte)0x68, (byte)0xeb, (byte)0x1c, (byte)0x5c, + (byte)0xc6, (byte)0x10, (byte)0x44, (byte)0x8c, + (byte)0x7d, (byte)0x42, (byte)0xc5, (byte)0x71, + (byte)0x8a, (byte)0xe7, (byte)0x1b, (byte)0xaa, + (byte)0x17, (byte)0x03, (byte)0x6a, (byte)0xa0, + (byte)0xc0, (byte)0x6b, (byte)0x97, (byte)0x50, + (byte)0x17, (byte)0xad, (byte)0x6e, (byte)0x5e, + (byte)0xd9, (byte)0xdb, (byte)0x6f, (byte)0x3e, + (byte)0xe9, (byte)0x3f, (byte)0x35, (byte)0xc3, + (byte)0x45, (byte)0xbc, (byte)0xe8, (byte)0x3d, + (byte)0x5a, (byte)0xb4, (byte)0xb9, (byte)0x3f, + (byte)0x53, (byte)0x80, (byte)0x64, (byte)0xdc, + (byte)0x12, (byte)0x24, (byte)0x35, (byte)0x35, + (byte)0xbd, (byte)0x98, (byte)0xbb, (byte)0x8d, + (byte)0xfa, (byte)0x19, (byte)0xa3, (byte)0x5e, + (byte)0x9e, (byte)0xac, (byte)0x70, (byte)0x4a, + (byte)0xfc, (byte)0x8d, (byte)0xae, (byte)0x55, + (byte)0x8b, (byte)0x71, (byte)0x81, (byte)0x0e, + (byte)0x4d, (byte)0xc8, (byte)0x2f, (byte)0x87, + (byte)0xb0, (byte)0x44, (byte)0xf7, (byte)0x4f, + (byte)0xdc, (byte)0xa8, (byte)0xc8, (byte)0x50, + (byte)0xb5, (byte)0x95, (byte)0x24, (byte)0x63, + (byte)0x74, (byte)0x13, (byte)0x54, (byte)0x58, + (byte)0xde, (byte)0xfc, (byte)0xe0, (byte)0x75, + (byte)0xeb, (byte)0xf4, (byte)0x06, (byte)0x58, + (byte)0x83, (byte)0x12, (byte)0x4c, (byte)0x56, + (byte)0xc4, (byte)0xc4, (byte)0x18, (byte)0x0c, + (byte)0xea, (byte)0xa3, (byte)0xe7, (byte)0x25, + (byte)0xa3, (byte)0xde, (byte)0x19, (byte)0x23, + (byte)0xa2, (byte)0x5a, (byte)0x2a, (byte)0xb6, + (byte)0x56, (byte)0x04, (byte)0xbc, (byte)0x65, + (byte)0xba, (byte)0x7c, (byte)0x0a, (byte)0xf4, + (byte)0x91, (byte)0x10, (byte)0x22, (byte)0x88, + (byte)0x3f, (byte)0x9d, (byte)0xbe, (byte)0x58, + (byte)0x43, (byte)0x4c, (byte)0x2e, (byte)0xad, + (byte)0xdb, (byte)0xd6, (byte)0x32, (byte)0xcf, + (byte)0x8e, (byte)0xb5, (byte)0x05, (byte)0x55, + (byte)0x39, (byte)0x8b, (byte)0xe1, (byte)0x01 }; static byte clientModulus[] = { - (byte)0x00, - (byte)0xbb, (byte)0xf0, (byte)0x40, (byte)0x36, - (byte)0xac, (byte)0x26, (byte)0x54, (byte)0x4e, - (byte)0xf4, (byte)0xa3, (byte)0x5a, (byte)0x00, - (byte)0x2f, (byte)0x69, (byte)0x21, (byte)0x6f, - (byte)0xb9, (byte)0x7a, (byte)0x3a, (byte)0x93, - (byte)0xec, (byte)0xa2, (byte)0xf6, (byte)0xe1, - (byte)0x8e, (byte)0xc7, (byte)0x63, (byte)0xd8, - (byte)0x2f, (byte)0x12, (byte)0x30, (byte)0x99, - (byte)0x2e, (byte)0xb0, (byte)0xf2, (byte)0x8f, - (byte)0xf8, (byte)0x27, (byte)0x2d, (byte)0x24, - (byte)0x78, (byte)0x28, (byte)0x84, (byte)0xf7, - (byte)0x01, (byte)0xbf, (byte)0x8d, (byte)0x44, - (byte)0x79, (byte)0xdd, (byte)0x3b, (byte)0xd2, - (byte)0x55, (byte)0xf3, (byte)0xce, (byte)0x3c, - (byte)0xb2, (byte)0x5b, (byte)0x21, (byte)0x7d, - (byte)0xef, (byte)0xfd, (byte)0x33, (byte)0x4a, - (byte)0xb1, (byte)0xa3, (byte)0xff, (byte)0xc6, - (byte)0xc8, (byte)0x9b, (byte)0xb9, (byte)0x0f, - (byte)0x7c, (byte)0x41, (byte)0x35, (byte)0x97, - (byte)0xf9, (byte)0xdb, (byte)0x3a, (byte)0x05, - (byte)0x60, (byte)0x05, (byte)0x15, (byte)0xaf, - (byte)0x59, (byte)0x17, (byte)0x92, (byte)0xa3, - (byte)0x10, (byte)0xad, (byte)0x16, (byte)0x1c, - (byte)0xe4, (byte)0x07, (byte)0x53, (byte)0xaf, - (byte)0xa8, (byte)0x76, (byte)0xa2, (byte)0x56, - (byte)0x2a, (byte)0x92, (byte)0xd3, (byte)0xf9, - (byte)0x28, (byte)0xe0, (byte)0x78, (byte)0xcf, - (byte)0x5e, (byte)0x1f, (byte)0x48, (byte)0xab, - (byte)0x5c, (byte)0x19, (byte)0xdd, (byte)0xe1, - (byte)0x67, (byte)0x43, (byte)0xba, (byte)0x75, - (byte)0x8d, (byte)0xf5, (byte)0x82, (byte)0xac, - (byte)0x43, (byte)0x92, (byte)0x44, (byte)0x1b + (byte)0x00, (byte)0xcc, (byte)0xbf, (byte)0x92, + (byte)0x3c, (byte)0xa6, (byte)0x57, (byte)0x74, + (byte)0x1f, (byte)0x58, (byte)0xad, (byte)0xc7, + (byte)0x69, (byte)0x88, (byte)0x6f, (byte)0x59, + (byte)0x32, (byte)0x47, (byte)0x50, (byte)0x60, + (byte)0x22, (byte)0xe4, (byte)0x98, (byte)0x49, + (byte)0x0e, (byte)0x3e, (byte)0x1d, (byte)0xb8, + (byte)0xba, (byte)0xe2, (byte)0x3b, (byte)0xb6, + (byte)0x71, (byte)0x5b, (byte)0xfd, (byte)0x64, + (byte)0x02, (byte)0x6d, (byte)0x0d, (byte)0x50, + (byte)0x77, (byte)0x72, (byte)0x6e, (byte)0xa8, + (byte)0x3d, (byte)0x5d, (byte)0xd4, (byte)0xbd, + (byte)0x1f, (byte)0x76, (byte)0x51, (byte)0xdc, + (byte)0x9a, (byte)0xd0, (byte)0xd6, (byte)0x3e, + (byte)0xd0, (byte)0x31, (byte)0xa5, (byte)0x24, + (byte)0x5a, (byte)0x2c, (byte)0xbe, (byte)0x77, + (byte)0xfa, (byte)0x88, (byte)0xa1, (byte)0xfa, + (byte)0x06, (byte)0x41, (byte)0xc8, (byte)0x0f, + (byte)0x47, (byte)0x70, (byte)0x47, (byte)0x24, + (byte)0x99, (byte)0x50, (byte)0x52, (byte)0x44, + (byte)0x5b, (byte)0x30, (byte)0x62, (byte)0x5b, + (byte)0x65, (byte)0x35, (byte)0xc4, (byte)0x28, + (byte)0xb0, (byte)0x5c, (byte)0xee, (byte)0xd0, + (byte)0x1b, (byte)0xeb, (byte)0x39, (byte)0x2b, + (byte)0x0b, (byte)0xa1, (byte)0xac, (byte)0x96, + (byte)0x48, (byte)0xda, (byte)0x56, (byte)0x6c, + (byte)0xe0, (byte)0xe3, (byte)0xe6, (byte)0xe3, + (byte)0xdd, (byte)0x45, (byte)0xcb, (byte)0x51, + (byte)0x33, (byte)0x8d, (byte)0x40, (byte)0x43, + (byte)0xd7, (byte)0xf0, (byte)0xa4, (byte)0x31, + (byte)0xaa, (byte)0xb5, (byte)0xc0, (byte)0xdf, + (byte)0x4b, (byte)0xdf, (byte)0x2b, (byte)0x0a, + (byte)0xed, (byte)0x7e, (byte)0x10, (byte)0x0c, + (byte)0xae, (byte)0x1f, (byte)0x96, (byte)0xa2, + (byte)0x10, (byte)0x1e, (byte)0x6b, (byte)0xd0, + (byte)0xf9, (byte)0x37, (byte)0x8b, (byte)0xdf, + (byte)0x0d, (byte)0x0e, (byte)0x02, (byte)0x35, + (byte)0xf8, (byte)0x58, (byte)0xbc, (byte)0x6e, + (byte)0xb5, (byte)0x57, (byte)0x0e, (byte)0x2f, + (byte)0xea, (byte)0x20, (byte)0xe6, (byte)0x73, + (byte)0x9a, (byte)0xe5, (byte)0x6b, (byte)0x82, + (byte)0x70, (byte)0x25, (byte)0xbb, (byte)0x51, + (byte)0x9a, (byte)0x7c, (byte)0x9d, (byte)0xe2, + (byte)0x50, (byte)0x3d, (byte)0xcf, (byte)0x1e, + (byte)0x24, (byte)0x3e, (byte)0x92, (byte)0x55, + (byte)0xcf, (byte)0x2a, (byte)0xad, (byte)0x0d, + (byte)0x84, (byte)0x8f, (byte)0xa8, (byte)0x43, + (byte)0x24, (byte)0xcd, (byte)0xad, (byte)0x50, + (byte)0x64, (byte)0x74, (byte)0xc2, (byte)0x73, + (byte)0xb6, (byte)0xe1, (byte)0x92, (byte)0x1c, + (byte)0xb2, (byte)0x2b, (byte)0x8c, (byte)0x2d, + (byte)0x7b, (byte)0x96, (byte)0xa6, (byte)0x41, + (byte)0x61, (byte)0x5c, (byte)0x1b, (byte)0x8f, + (byte)0x78, (byte)0x28, (byte)0x51, (byte)0x40, + (byte)0xed, (byte)0x41, (byte)0x90, (byte)0xce, + (byte)0x1d, (byte)0xb8, (byte)0x26, (byte)0x81, + (byte)0x47, (byte)0x6b, (byte)0xe3, (byte)0x57, + (byte)0x41, (byte)0x74, (byte)0x4e, (byte)0x20, + (byte)0xf0, (byte)0x5a, (byte)0x1b, (byte)0x97, + (byte)0x37, (byte)0x91, (byte)0x86, (byte)0x19, + (byte)0xc5, (byte)0xf2, (byte)0x6d, (byte)0x04, + (byte)0xc9, (byte)0x78, (byte)0x2b, (byte)0x5a, + (byte)0x16, (byte)0xbc, (byte)0xfc, (byte)0x2b, + (byte)0x71, (byte)0x5b, (byte)0xd0, (byte)0x00, + (byte)0x4f }; static char passphrase[] = "passphrase".toCharArray(); @@ -795,11 +1076,11 @@ private static SSLContext getSSLContext(String trusedCertStr, volatile Exception clientException = null; public static void main(String args[]) throws Exception { - // MD5 is used in this test case, don't disable MD5 algorithm. + // SHA1 is used in this test case, don't disable SHA1 algorithm. Security.setProperty("jdk.certpath.disabledAlgorithms", - "MD2, RSA keySize < 1024"); + "MD2, MD5, RSA keySize < 1024"); Security.setProperty("jdk.tls.disabledAlgorithms", - "SSLv3, RC4, DH keySize < 768"); + "SSLv3, RC4, MD5withRSA, DH keySize < 768"); if (debug) System.setProperty("javax.net.debug", "all"); diff --git a/test/jdk/sun/security/x509/X509CRLImpl/Verify.java b/test/jdk/sun/security/x509/X509CRLImpl/Verify.java index 6a77224fab4..911f53f5120 100644 --- a/test/jdk/sun/security/x509/X509CRLImpl/Verify.java +++ b/test/jdk/sun/security/x509/X509CRLImpl/Verify.java @@ -35,45 +35,61 @@ public class Verify { static String selfSignedCertStr = "-----BEGIN CERTIFICATE-----\n" + - "MIICPjCCAaegAwIBAgIBADANBgkqhkiG9w0BAQQFADAfMQswCQYDVQQGEwJVUzEQ\n" + - "MA4GA1UEChMHRXhhbXBsZTAeFw0wOTA0MjcwMjI0MzJaFw0zMDA0MDcwMjI0MzJa\n" + - "MB8xCzAJBgNVBAYTAlVTMRAwDgYDVQQKEwdFeGFtcGxlMIGfMA0GCSqGSIb3DQEB\n" + - "AQUAA4GNADCBiQKBgQC4OTag24sTxL2tXTNuvpmUEtdxrYAZoFsslFQ60T+WD9wQ\n" + - "Jeiw87FSPsR2vxRuv0j8DNm2a4h7LNNIFcLurfNldbz5pvgZ7VqdbbUMPE9qP85n\n" + - "jgDl4woyRTSUeRI4A7O0CO6NpES21dtbdhroWQrEkHxpnrDPxsxrz5gf2m3gqwID\n" + - "AQABo4GJMIGGMB0GA1UdDgQWBBSCJd0hpl5PdAD9IZS+Hzng4lXLGzBHBgNVHSME\n" + - "QDA+gBSCJd0hpl5PdAD9IZS+Hzng4lXLG6EjpCEwHzELMAkGA1UEBhMCVVMxEDAO\n" + - "BgNVBAoTB0V4YW1wbGWCAQAwDwYDVR0TAQH/BAUwAwEB/zALBgNVHQ8EBAMCAgQw\n" + - "DQYJKoZIhvcNAQEEBQADgYEAluy6HIjWcq009lTLmhp+Np6dxU78pInBK8RZkza0\n" + - "484qGaxFGD3UGyZkI5uWmsH2XuMbuox5khfIq6781gmkPBHXBIEtJN8eLusOHEye\n" + - "iE8h7WI+N3qa6Pj56WionMrioqC/3X+b06o147bbhx8U0vkYv/HyPaITOFfMXTdz\n" + - "Vjw=\n" + + "MIIDVzCCAj+gAwIBAgIUUM/RKxE2Rcc6zYLWLxNolpLnuiwwDQYJKoZIhvcNAQEL\n" + + "BQAwOzENMAsGA1UEAwwEUk9PVDEQMA4GA1UECgwHRXhhbXBsZTELMAkGA1UECAwC\n" + + "Q0ExCzAJBgNVBAYTAlVTMB4XDTI0MDYxOTA0NDc1N1oXDTM0MDYxOTA0NDc1N1ow\n" + + "OzENMAsGA1UEAwwEUk9PVDEQMA4GA1UECgwHRXhhbXBsZTELMAkGA1UECAwCQ0Ex\n" + + "CzAJBgNVBAYTAlVTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAohRG\n" + + "eq8/CniUqWEtpm1gBp+PWENpYgeaALAUgFdBBa6ao7mESjxRG8teaNRcszmoL3Rl\n" + + "TH5hLycHA00G5qsALXo4Cj9wAGfR3LbA0HlTurdw3NNk76twQXZpuE19YNYQonbR\n" + + "Mm2sgTd2YcrNWmGpthgNiUaT837Yt7RCuurPo4zi1y6g/NJwyLtn775S86NrV5PT\n" + + "4vaBCsB5+eCm01CBgzBq3I0OY5oosopNUjmFL4LYccZZ2YAOUY0fvxfsMZD5EDcj\n" + + "KrgKBspjmolfn5g5lA5vdVthG2/TxTIdLss69+NsGS1RBkSKGiQNKnRnAB9/gHwc\n" + + "2ryHKJRMQrV+JGMjrQIDAQABo1MwUTAdBgNVHQ4EFgQUW6jZ+mcCEMAQTUzJH2F0\n" + + "TwMTOMswHwYDVR0jBBgwFoAUW6jZ+mcCEMAQTUzJH2F0TwMTOMswDwYDVR0TAQH/\n" + + "BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAB8T/EfVh602S1GJD2tJ1ck9TwutF\n" + + "2VSoSRKajMOabbwjzKEAeJ9rNcWiy60rSvDuL8i4IL52R7fHhlJaDg9FVjmkiWSO\n" + + "VPiIZuOyvUtsc9++AM741RK9OrEMETvAtbtEMU6du7LiFk2KcnDTHfcNihtM/TNZ\n" + + "1bzEKuSfQydBNPkO3Ftmveygj7QGX+Kgppp7RXXUFzySYxrlA1usgNhVXY/qhFiJ\n" + + "jhTU33iZgwiKxpY+zj/Gmk5sdOCEk7e1P06IB3eIopdRTMGJCeCBKyFyXND38kNC\n" + + "bTIPnuOdE73M2AW0LWuPv6UQZVBv5A82WMT9f8Hq9H2cHbuhgL/ozyFSWw==\n" + "-----END CERTIFICATE-----"; static String crlIssuerCertStr = "-----BEGIN CERTIFICATE-----\n" + - "MIICKzCCAZSgAwIBAgIBAjANBgkqhkiG9w0BAQQFADAfMQswCQYDVQQGEwJVUzEQ\n" + - "MA4GA1UEChMHRXhhbXBsZTAeFw0wOTA0MjcwMjI0MzNaFw0yOTAxMTIwMjI0MzNa\n" + - "MB8xCzAJBgNVBAYTAlVTMRAwDgYDVQQKEwdFeGFtcGxlMIGfMA0GCSqGSIb3DQEB\n" + - "AQUAA4GNADCBiQKBgQDMJeBMBybHykI/YpwUJ4O9euqDSLb1kpWpceBS8TVqvgBC\n" + - "SgUJWtFZL0i6bdvF6mMdlbuBkGzhXqHiVAi96/zRLbUC9F8SMEJ6MuD+YhQ0ZFTQ\n" + - "atKy8zf8O9XzztelLJ26Gqb7QPV133WY3haAqHtCXOhEKkCN16NOYNC37DTaJwID\n" + - "AQABo3cwdTAdBgNVHQ4EFgQULXSWzXzUOIpOJpzbSCpW42IJUugwRwYDVR0jBEAw\n" + - "PoAUgiXdIaZeT3QA/SGUvh854OJVyxuhI6QhMB8xCzAJBgNVBAYTAlVTMRAwDgYD\n" + - "VQQKEwdFeGFtcGxlggEAMAsGA1UdDwQEAwIBAjANBgkqhkiG9w0BAQQFAAOBgQAY\n" + - "eMnf5AHSNlyUlzXk8o2S0h4gCuvKX6C3kFfKuZcWvFAbx4yQOWLS2s15/nzR4+AP\n" + - "FGX3lgJjROyAh7fGedTQK+NFWwkM2ag1g3hXktnlnT1qHohi0w31nVBJxXEDO/Ck\n" + - "uJTpJGt8XxxbFaw5v7cHy7XuTAeU/sekvjEiNHW00Q==\n" + + "MIIDeTCCAmGgAwIBAgIBATANBgkqhkiG9w0BAQUFADA7MQ0wCwYDVQQDDARST09U\n" + + "MRAwDgYDVQQKDAdFeGFtcGxlMQswCQYDVQQIDAJDQTELMAkGA1UEBhMCVVMwHhcN\n" + + "MjQwNjE5MDQ0NzU3WhcNMjYwNjE4MDQ0NzU3WjA5MQswCQYDVQQDDAJDQTELMAkG\n" + + "A1UECAwCQ0ExCzAJBgNVBAYTAlVTMRAwDgYDVQQKDAdFeGFtcGxlMIIBIjANBgkq\n" + + "hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn3wVMxoa3mgqk7fbg+UEj3vDfdR+o0dL\n" + + "UeDqtkM/KHQg2h16LTRsRM+bGcDAg8pz/8RNK+jiCq5lXylUtOYEIKzD2NTrycOH\n" + + "gAt92vt01cusZrnvdf+wKFNzDQea1q1fgNFbFdWZZ7Ia+BvR9dYdwbyX7LPKPth5\n" + + "aSmvwhKivETV6mTU17dMls/8OjQ+oUydBggVjhpjS+xYCBa09ie2dR+eGrluCaF5\n" + + "gspoTeQxAOOytBoL4+DECEPsAyr7/guMOdmWUbPDvfYL+97N6imXUh4XtQ7+xHTd\n" + + "OWWwAhS7JjqcalADSNUClU54VVGbZ9NmIjDiSPc1bvam4FxicuqrBQIDAQABo4GJ\n" + + "MIGGMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFMPkRHT0w2v7Nx2SN/i+2hJIj/5x\n" + + "MB8GA1UdIwQYMBaAFFuo2fpnAhDAEE1MyR9hdE8DEzjLMAsGA1UdDwQEAwIBAjAp\n" + + "BgNVHR8EIjAgMB6gHKAahhhodHRwOi8vdGVzdC5jb20vcm9vdC5jcmwwDQYJKoZI\n" + + "hvcNAQEFBQADggEBAIsREfhopvEGrbVjbaRsBmGlMAblqiTWF3DklU4BfXGQ7u+2\n" + + "z/Dvl5rehGkWIU5GmBY/DFWN/Tgt6yJU+d1ismKj+zhWI8IT7dLKJnSP0Sei0zqr\n" + + "qsIj/y5Xzmd2XpQ52V3KtDy4t7YQJ+nRKUrqLzSKHvOXOQgScK2RL4FZx0gah/bJ\n" + + "YCKq6zonC59lZ6ftJ2j9Ny9wNulHBlgS0p8q+Z42IfdfVgrLmbXoHNmKjVKdrs1Z\n" + + "HCva3WKMOkVFdejOuvPSnSw4Iob479nC3V12YtFAgeYMoBMPgZHcuWce4IC9Ts7z\n" + + "w8Xo1Fv3aNOygWdXdVDL79jkOJo2wO8yIe+J6Ig=\n" + "-----END CERTIFICATE-----"; static String crlStr = "-----BEGIN X509 CRL-----\n" + - "MIIBGzCBhQIBATANBgkqhkiG9w0BAQQFADAfMQswCQYDVQQGEwJVUzEQMA4GA1UE\n" + - "ChMHRXhhbXBsZRcNMDkwNDI3MDIzODA0WhcNMjgwNjI2MDIzODA0WjAiMCACAQUX\n" + - "DTA5MDQyNzAyMzgwMFowDDAKBgNVHRUEAwoBBKAOMAwwCgYDVR0UBAMCAQIwDQYJ\n" + - "KoZIhvcNAQEEBQADgYEAoarfzXEtw3ZDi4f9U8eSvRIipHSyxOrJC7HR/hM5VhmY\n" + - "CErChny6x9lBVg9s57tfD/P9PSzBLusCcHwHMAbMOEcTltVVKUWZnnbumpywlYyg\n" + - "oKLrE9+yCOkYUOpiRlz43/3vkEL5hjIKMcDSZnPKBZi1h16Yj2hPe9GMibNip54=\n" + + "MIIBtjCBnwIBATANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQDDAJDQTELMAkGA1UE\n" + + "CAwCQ0ExCzAJBgNVBAYTAlVTMRAwDgYDVQQKDAdFeGFtcGxlFw0yNDA2MTkwNDQ3\n" + + "NThaFw0yNjA2MTgwNDQ3NThaMCIwIAIBAhcNMjQwNjE5MDQ0NzU4WjAMMAoGA1Ud\n" + + "FQQDCgEEoA4wDDAKBgNVHRQEAwIBATANBgkqhkiG9w0BAQUFAAOCAQEAkN0owWtq\n" + + "We0SznF9rAAADLMfB/2GKBQpqsJXXwE9FnCm8emSDtHpud+NZL+PAy9g050et8nl\n" + + "CNey/FBMJJMN3b3SZKkHA2MR4qJmHfeFnlE5mHnUHg7gH0a1u7H7wf0Z/L6eZNWy\n" + + "dB905II7Ej0GBuPnLsKNMDBtGtDuSPXCvmaBsKDe8awaEA1VchZKVLzg+8hEC0vt\n" + + "60jz9HrDpFun99IKTTCxBT+9GrW38GbPMxj0rLAL4n75SrfPdeFPj0t5fksOC7a7\n" + + "SLO9t+UC89SMTsoIwVjHIFIUxw5FHpuUfgOQ7PtjhpLd2Pm5u5Pe2gv4Q41xVgVW\n" + + "hVMagRPmAQAniQ==\n" + "-----END X509 CRL-----"; private static X509CRL crl; @@ -104,7 +120,7 @@ public static void main(String[] args) throws Exception { /* * Try to verify CRL with a provider that has a Signature implementation - * but not of the right algorithm (MD5withRSA). + * but not of the right algorithm (SHA1withRSA). * Should fail with NoSuchAlgorithmException. */ try { diff --git a/test/jdk/sun/security/x509/X509CertImpl/Verify.java b/test/jdk/sun/security/x509/X509CertImpl/Verify.java index 0fc94bc2802..0b98758ee4c 100644 --- a/test/jdk/sun/security/x509/X509CertImpl/Verify.java +++ b/test/jdk/sun/security/x509/X509CertImpl/Verify.java @@ -36,35 +36,47 @@ public class Verify { static String selfSignedCertStr = "-----BEGIN CERTIFICATE-----\n" + - "MIICPjCCAaegAwIBAgIBADANBgkqhkiG9w0BAQQFADAfMQswCQYDVQQGEwJVUzEQ\n" + - "MA4GA1UEChMHRXhhbXBsZTAeFw0wOTA0MjcwMjI0MzJaFw0zMDA0MDcwMjI0MzJa\n" + - "MB8xCzAJBgNVBAYTAlVTMRAwDgYDVQQKEwdFeGFtcGxlMIGfMA0GCSqGSIb3DQEB\n" + - "AQUAA4GNADCBiQKBgQC4OTag24sTxL2tXTNuvpmUEtdxrYAZoFsslFQ60T+WD9wQ\n" + - "Jeiw87FSPsR2vxRuv0j8DNm2a4h7LNNIFcLurfNldbz5pvgZ7VqdbbUMPE9qP85n\n" + - "jgDl4woyRTSUeRI4A7O0CO6NpES21dtbdhroWQrEkHxpnrDPxsxrz5gf2m3gqwID\n" + - "AQABo4GJMIGGMB0GA1UdDgQWBBSCJd0hpl5PdAD9IZS+Hzng4lXLGzBHBgNVHSME\n" + - "QDA+gBSCJd0hpl5PdAD9IZS+Hzng4lXLG6EjpCEwHzELMAkGA1UEBhMCVVMxEDAO\n" + - "BgNVBAoTB0V4YW1wbGWCAQAwDwYDVR0TAQH/BAUwAwEB/zALBgNVHQ8EBAMCAgQw\n" + - "DQYJKoZIhvcNAQEEBQADgYEAluy6HIjWcq009lTLmhp+Np6dxU78pInBK8RZkza0\n" + - "484qGaxFGD3UGyZkI5uWmsH2XuMbuox5khfIq6781gmkPBHXBIEtJN8eLusOHEye\n" + - "iE8h7WI+N3qa6Pj56WionMrioqC/3X+b06o147bbhx8U0vkYv/HyPaITOFfMXTdz\n" + - "Vjw=\n" + + "MIIDVzCCAj+gAwIBAgIUUM/RKxE2Rcc6zYLWLxNolpLnuiwwDQYJKoZIhvcNAQEL\n" + + "BQAwOzENMAsGA1UEAwwEUk9PVDEQMA4GA1UECgwHRXhhbXBsZTELMAkGA1UECAwC\n" + + "Q0ExCzAJBgNVBAYTAlVTMB4XDTI0MDYxOTA0NDc1N1oXDTM0MDYxOTA0NDc1N1ow\n" + + "OzENMAsGA1UEAwwEUk9PVDEQMA4GA1UECgwHRXhhbXBsZTELMAkGA1UECAwCQ0Ex\n" + + "CzAJBgNVBAYTAlVTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAohRG\n" + + "eq8/CniUqWEtpm1gBp+PWENpYgeaALAUgFdBBa6ao7mESjxRG8teaNRcszmoL3Rl\n" + + "TH5hLycHA00G5qsALXo4Cj9wAGfR3LbA0HlTurdw3NNk76twQXZpuE19YNYQonbR\n" + + "Mm2sgTd2YcrNWmGpthgNiUaT837Yt7RCuurPo4zi1y6g/NJwyLtn775S86NrV5PT\n" + + "4vaBCsB5+eCm01CBgzBq3I0OY5oosopNUjmFL4LYccZZ2YAOUY0fvxfsMZD5EDcj\n" + + "KrgKBspjmolfn5g5lA5vdVthG2/TxTIdLss69+NsGS1RBkSKGiQNKnRnAB9/gHwc\n" + + "2ryHKJRMQrV+JGMjrQIDAQABo1MwUTAdBgNVHQ4EFgQUW6jZ+mcCEMAQTUzJH2F0\n" + + "TwMTOMswHwYDVR0jBBgwFoAUW6jZ+mcCEMAQTUzJH2F0TwMTOMswDwYDVR0TAQH/\n" + + "BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAB8T/EfVh602S1GJD2tJ1ck9TwutF\n" + + "2VSoSRKajMOabbwjzKEAeJ9rNcWiy60rSvDuL8i4IL52R7fHhlJaDg9FVjmkiWSO\n" + + "VPiIZuOyvUtsc9++AM741RK9OrEMETvAtbtEMU6du7LiFk2KcnDTHfcNihtM/TNZ\n" + + "1bzEKuSfQydBNPkO3Ftmveygj7QGX+Kgppp7RXXUFzySYxrlA1usgNhVXY/qhFiJ\n" + + "jhTU33iZgwiKxpY+zj/Gmk5sdOCEk7e1P06IB3eIopdRTMGJCeCBKyFyXND38kNC\n" + + "bTIPnuOdE73M2AW0LWuPv6UQZVBv5A82WMT9f8Hq9H2cHbuhgL/ozyFSWw==\n" + "-----END CERTIFICATE-----"; static String crlIssuerCertStr = "-----BEGIN CERTIFICATE-----\n" + - "MIICKzCCAZSgAwIBAgIBAjANBgkqhkiG9w0BAQQFADAfMQswCQYDVQQGEwJVUzEQ\n" + - "MA4GA1UEChMHRXhhbXBsZTAeFw0wOTA0MjcwMjI0MzNaFw0yOTAxMTIwMjI0MzNa\n" + - "MB8xCzAJBgNVBAYTAlVTMRAwDgYDVQQKEwdFeGFtcGxlMIGfMA0GCSqGSIb3DQEB\n" + - "AQUAA4GNADCBiQKBgQDMJeBMBybHykI/YpwUJ4O9euqDSLb1kpWpceBS8TVqvgBC\n" + - "SgUJWtFZL0i6bdvF6mMdlbuBkGzhXqHiVAi96/zRLbUC9F8SMEJ6MuD+YhQ0ZFTQ\n" + - "atKy8zf8O9XzztelLJ26Gqb7QPV133WY3haAqHtCXOhEKkCN16NOYNC37DTaJwID\n" + - "AQABo3cwdTAdBgNVHQ4EFgQULXSWzXzUOIpOJpzbSCpW42IJUugwRwYDVR0jBEAw\n" + - "PoAUgiXdIaZeT3QA/SGUvh854OJVyxuhI6QhMB8xCzAJBgNVBAYTAlVTMRAwDgYD\n" + - "VQQKEwdFeGFtcGxlggEAMAsGA1UdDwQEAwIBAjANBgkqhkiG9w0BAQQFAAOBgQAY\n" + - "eMnf5AHSNlyUlzXk8o2S0h4gCuvKX6C3kFfKuZcWvFAbx4yQOWLS2s15/nzR4+AP\n" + - "FGX3lgJjROyAh7fGedTQK+NFWwkM2ag1g3hXktnlnT1qHohi0w31nVBJxXEDO/Ck\n" + - "uJTpJGt8XxxbFaw5v7cHy7XuTAeU/sekvjEiNHW00Q==\n" + + "MIIDeTCCAmGgAwIBAgIBATANBgkqhkiG9w0BAQUFADA7MQ0wCwYDVQQDDARST09U\n" + + "MRAwDgYDVQQKDAdFeGFtcGxlMQswCQYDVQQIDAJDQTELMAkGA1UEBhMCVVMwHhcN\n" + + "MjQwNjE5MDQ0NzU3WhcNMjYwNjE4MDQ0NzU3WjA5MQswCQYDVQQDDAJDQTELMAkG\n" + + "A1UECAwCQ0ExCzAJBgNVBAYTAlVTMRAwDgYDVQQKDAdFeGFtcGxlMIIBIjANBgkq\n" + + "hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn3wVMxoa3mgqk7fbg+UEj3vDfdR+o0dL\n" + + "UeDqtkM/KHQg2h16LTRsRM+bGcDAg8pz/8RNK+jiCq5lXylUtOYEIKzD2NTrycOH\n" + + "gAt92vt01cusZrnvdf+wKFNzDQea1q1fgNFbFdWZZ7Ia+BvR9dYdwbyX7LPKPth5\n" + + "aSmvwhKivETV6mTU17dMls/8OjQ+oUydBggVjhpjS+xYCBa09ie2dR+eGrluCaF5\n" + + "gspoTeQxAOOytBoL4+DECEPsAyr7/guMOdmWUbPDvfYL+97N6imXUh4XtQ7+xHTd\n" + + "OWWwAhS7JjqcalADSNUClU54VVGbZ9NmIjDiSPc1bvam4FxicuqrBQIDAQABo4GJ\n" + + "MIGGMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFMPkRHT0w2v7Nx2SN/i+2hJIj/5x\n" + + "MB8GA1UdIwQYMBaAFFuo2fpnAhDAEE1MyR9hdE8DEzjLMAsGA1UdDwQEAwIBAjAp\n" + + "BgNVHR8EIjAgMB6gHKAahhhodHRwOi8vdGVzdC5jb20vcm9vdC5jcmwwDQYJKoZI\n" + + "hvcNAQEFBQADggEBAIsREfhopvEGrbVjbaRsBmGlMAblqiTWF3DklU4BfXGQ7u+2\n" + + "z/Dvl5rehGkWIU5GmBY/DFWN/Tgt6yJU+d1ismKj+zhWI8IT7dLKJnSP0Sei0zqr\n" + + "qsIj/y5Xzmd2XpQ52V3KtDy4t7YQJ+nRKUrqLzSKHvOXOQgScK2RL4FZx0gah/bJ\n" + + "YCKq6zonC59lZ6ftJ2j9Ny9wNulHBlgS0p8q+Z42IfdfVgrLmbXoHNmKjVKdrs1Z\n" + + "HCva3WKMOkVFdejOuvPSnSw4Iob479nC3V12YtFAgeYMoBMPgZHcuWce4IC9Ts7z\n" + + "w8Xo1Fv3aNOygWdXdVDL79jkOJo2wO8yIe+J6Ig=\n" + "-----END CERTIFICATE-----"; private static X509Certificate cert; @@ -96,7 +108,7 @@ public static void main(String[] args) throws Exception { /* * Try to verify certificate with a provider that has a Signature - * implementation but not of the right algorithm (MD5withRSA). + * implementation but not of the right algorithm (SHA1withRSA). * Should fail with NoSuchAlgorithmException. */ try { diff --git a/test/lib/jdk/test/lib/security/DiffieHellmanGroup.java b/test/lib/jdk/test/lib/security/DiffieHellmanGroup.java new file mode 100644 index 00000000000..b8f7c0c34be --- /dev/null +++ b/test/lib/jdk/test/lib/security/DiffieHellmanGroup.java @@ -0,0 +1,109 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package jdk.test.lib.security; + +import java.math.BigInteger; + +/** + * An enumeration of DH groups for tests. + */ +public enum DiffieHellmanGroup { + + /** + * RFC 7919 - ffdhe2048. + */ + ffdhe2048(new BigInteger("FFFFFFFFFFFFFFFFADF85458A2BB4A9AAFDC5620273D3CF1" + + "D8B9C583CE2D3695A9E13641146433FBCC939DCE249B3EF9" + + "7D2FE363630C75D8F681B202AEC4617AD3DF1ED5D5FD6561" + + "2433F51F5F066ED0856365553DED1AF3B557135E7F57C935" + + "984F0C70E0E68B77E2A689DAF3EFE8721DF158A136ADE735" + + "30ACCA4F483A797ABC0AB182B324FB61D108A94BB2C8E3FB" + + "B96ADAB760D7F4681D4F42A3DE394DF4AE56EDE76372BB19" + + "0B07A7C8EE0A6D709E02FCE1CDF7E2ECC03404CD28342F61" + + "9172FE9CE98583FF8E4F1232EEF28183C3FE3B1B4C6FAD73" + + "3BB5FCBC2EC22005C58EF1837D1683B2C6F34A26C1B2EFFA" + + "886B423861285C97FFFFFFFFFFFFFFFF", 16), 2), + /** + * RFC 7919 - ffdhe3072. + */ + ffdhe3072(new BigInteger("FFFFFFFFFFFFFFFFADF85458A2BB4A9AAFDC5620273D3CF1" + + "D8B9C583CE2D3695A9E13641146433FBCC939DCE249B3EF9" + + "7D2FE363630C75D8F681B202AEC4617AD3DF1ED5D5FD6561" + + "2433F51F5F066ED0856365553DED1AF3B557135E7F57C935" + + "984F0C70E0E68B77E2A689DAF3EFE8721DF158A136ADE735" + + "30ACCA4F483A797ABC0AB182B324FB61D108A94BB2C8E3FB" + + "B96ADAB760D7F4681D4F42A3DE394DF4AE56EDE76372BB19" + + "0B07A7C8EE0A6D709E02FCE1CDF7E2ECC03404CD28342F61" + + "9172FE9CE98583FF8E4F1232EEF28183C3FE3B1B4C6FAD73" + + "3BB5FCBC2EC22005C58EF1837D1683B2C6F34A26C1B2EFFA" + + "886B4238611FCFDCDE355B3B6519035BBC34F4DEF99C0238" + + "61B46FC9D6E6C9077AD91D2691F7F7EE598CB0FAC186D91C" + + "AEFE130985139270B4130C93BC437944F4FD4452E2D74DD3" + + "64F2E21E71F54BFF5CAE82AB9C9DF69EE86D2BC522363A0D" + + "ABC521979B0DEADA1DBF9A42D5C4484E0ABCD06BFA53DDEF" + + "3C1B20EE3FD59D7C25E41D2B66C62E37FFFFFFFFFFFFFFFF", 16), 2), + /** + * RFC 7919 - ffdhe4096. + */ + ffdhe4096(new BigInteger("FFFFFFFFFFFFFFFFADF85458A2BB4A9AAFDC5620273D3CF1" + + "D8B9C583CE2D3695A9E13641146433FBCC939DCE249B3EF9" + + "7D2FE363630C75D8F681B202AEC4617AD3DF1ED5D5FD6561" + + "2433F51F5F066ED0856365553DED1AF3B557135E7F57C935" + + "984F0C70E0E68B77E2A689DAF3EFE8721DF158A136ADE735" + + "30ACCA4F483A797ABC0AB182B324FB61D108A94BB2C8E3FB" + + "B96ADAB760D7F4681D4F42A3DE394DF4AE56EDE76372BB19" + + "0B07A7C8EE0A6D709E02FCE1CDF7E2ECC03404CD28342F61" + + "9172FE9CE98583FF8E4F1232EEF28183C3FE3B1B4C6FAD73" + + "3BB5FCBC2EC22005C58EF1837D1683B2C6F34A26C1B2EFFA" + + "886B4238611FCFDCDE355B3B6519035BBC34F4DEF99C0238" + + "61B46FC9D6E6C9077AD91D2691F7F7EE598CB0FAC186D91C" + + "AEFE130985139270B4130C93BC437944F4FD4452E2D74DD3" + + "64F2E21E71F54BFF5CAE82AB9C9DF69EE86D2BC522363A0D" + + "ABC521979B0DEADA1DBF9A42D5C4484E0ABCD06BFA53DDEF" + + "3C1B20EE3FD59D7C25E41D2B669E1EF16E6F52C3164DF4FB" + + "7930E9E4E58857B6AC7D5F42D69F6D187763CF1D55034004" + + "87F55BA57E31CC7A7135C886EFB4318AED6A1E012D9E6832" + + "A907600A918130C46DC778F971AD0038092999A333CB8B7A" + + "1A1DB93D7140003C2A4ECEA9F98D0ACC0A8291CDCEC97DCF" + + "8EC9B55A7F88A46B4DB5A851F44182E1C68A007E5E655F6A" + + "FFFFFFFFFFFFFFFF", 16), 2); + + + public BigInteger getPrime() { + return prime; + } + + private final BigInteger prime; + + public BigInteger getBase() { + return base; + } + + private final BigInteger base; + + DiffieHellmanGroup(BigInteger prime, int base) { + this.prime = prime; + this.base = BigInteger.valueOf(base); + } +} diff --git a/test/lib/jdk/test/lib/security/SecurityUtils.java b/test/lib/jdk/test/lib/security/SecurityUtils.java index e5a36223eb4..2885440e2a2 100644 --- a/test/lib/jdk/test/lib/security/SecurityUtils.java +++ b/test/lib/jdk/test/lib/security/SecurityUtils.java @@ -30,6 +30,7 @@ import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; +import jdk.test.lib.security.DiffieHellmanGroup; /** * Common library for various security test helper functions. @@ -147,6 +148,25 @@ public static int getTestKeySize(String algo) { }; } + /** + * Returns a DH predefined group for tests + */ + public static DiffieHellmanGroup getTestDHGroup() { + return getTestDHGroup(2048); + } + + /** + * Returns a DH predefined group for tests, depending on the specified prime size + */ + public static DiffieHellmanGroup getTestDHGroup(int primeSize) { + return switch(primeSize) { + case 2048 -> DiffieHellmanGroup.ffdhe2048; + case 3072 -> DiffieHellmanGroup.ffdhe3072; + case 4096 -> DiffieHellmanGroup.ffdhe4096; + default -> throw new RuntimeException("Test DH group not defined for " + primeSize); + }; + } + private static void removeFromDSigPolicy(String rule, List algs) { String value = Security.getProperty("jdk.xml.dsig.secureValidationPolicy"); value = Arrays.stream(value.split(",")) From 042594d6674ae1287fb6f3ae0785ea5eebaced28 Mon Sep 17 00:00:00 2001 From: Nathan Henderson Date: Thu, 10 Oct 2024 13:55:15 -0400 Subject: [PATCH 051/159] Add configure support to enable RAM class persistence Related: https://github.ibm.com/runtimes/openj9/issues/755 Related: https://github.com/eclipse-openj9/openj9/pull/20387 Signed-off-by: Nathan Henderson --- closed/OpenJ9.gmk | 13 +++++++++++++ closed/autoconf/custom-hook.m4 | 20 ++++++++++++++++++++ closed/autoconf/custom-spec.gmk.in | 1 + 3 files changed, 34 insertions(+) diff --git a/closed/OpenJ9.gmk b/closed/OpenJ9.gmk index ac427d1bc43..6dfc9a7cc4a 100644 --- a/closed/OpenJ9.gmk +++ b/closed/OpenJ9.gmk @@ -286,6 +286,13 @@ else FEATURE_SED_SCRIPT += $(call SedDisable,opt_jitserver) endif +# Adjust snapshots enablement flags. +ifeq (true,$(OPENJ9_ENABLE_SNAPSHOTS)) + FEATURE_SED_SCRIPT += $(call SedEnable,opt_snapshots) +else # OPENJ9_ENABLE_SNAPSHOTS + FEATURE_SED_SCRIPT += $(call SedDisable,opt_snapshots) +endif # OPENJ9_ENABLE_SNAPSHOTS + # Adjust Inline-Types enablement flags. ifeq (true,$(OPENJ9_ENABLE_INLINE_TYPES)) SPEC_SED_SCRIPT += $(call SedEnable,opt_valhallaValueTypes) @@ -463,6 +470,12 @@ ifeq (true,$(OPENJ9_ENABLE_CMAKE)) CMAKE_ARGS += -DJ9VM_OPT_JITSERVER=OFF endif # OPENJ9_ENABLE_JITSERVER + ifeq (true,$(OPENJ9_ENABLE_SNAPSHOTS)) + CMAKE_ARGS += -DJ9VM_OPT_SNAPSHOTS=ON + else # OPENJ9_ENABLE_SNAPSHOTS + CMAKE_ARGS += -DJ9VM_OPT_SNAPSHOTS=OFF + endif # OPENJ9_ENABLE_SNAPSHOTS + ifeq (true,$(OPENJ9_ENABLE_CUDA)) CMAKE_ARGS += -DJ9VM_OPT_CUDA=ON -DOMR_CUDA_HOME="$(call UnixPath,$(CUDA_HOME))" else # OPENJ9_ENABLE_CUDA diff --git a/closed/autoconf/custom-hook.m4 b/closed/autoconf/custom-hook.m4 index ead0a82bfc9..2c51c0fefd1 100644 --- a/closed/autoconf/custom-hook.m4 +++ b/closed/autoconf/custom-hook.m4 @@ -50,6 +50,7 @@ AC_DEFUN_ONCE([CUSTOM_EARLY_HOOK], OPENJ9_CONFIGURE_JFR OPENJ9_CONFIGURE_JITSERVER OPENJ9_CONFIGURE_NUMA + OPENJ9_CONFIGURE_SNAPSHOTS OPENJ9_CONFIGURE_WARNINGS OPENJ9_THIRD_PARTY_REQUIREMENTS OPENJ9_CHECK_NASM_VERSION @@ -152,6 +153,25 @@ AC_DEFUN([OPENJ9_CONFIGURE_NUMA], fi ]) +AC_DEFUN([OPENJ9_CONFIGURE_SNAPSHOTS], +[ + AC_MSG_CHECKING([for snapshot support]) + AC_ARG_ENABLE([snapshots], [AS_HELP_STRING([--enable-snapshots], + [enable RAM persistence snapshots @<:@disabled@:>@])]) + OPENJ9_ENABLE_SNAPSHOTS=false + if test "x$enable_snapshots" = xyes ; then + AC_MSG_RESULT([yes (explicitly enabled)]) + OPENJ9_ENABLE_SNAPSHOTS=true + elif test "x$enable_snapshots" = xno ; then + AC_MSG_RESULT([no (explicitly disabled)]) + elif test "x$enable_snapshots" = x ; then + AC_MSG_RESULT([no (default)]) + else + AC_MSG_ERROR([--enable-snapshots accepts no argument]) + fi + AC_SUBST(OPENJ9_ENABLE_SNAPSHOTS) +]) + AC_DEFUN([OPENJ9_CONFIGURE_COMPILERS], [ AC_ARG_WITH(openj9-cc, [AS_HELP_STRING([--with-openj9-cc], [build OpenJ9 with a specific C compiler])], diff --git a/closed/autoconf/custom-spec.gmk.in b/closed/autoconf/custom-spec.gmk.in index b3676445650..6720d37cad6 100644 --- a/closed/autoconf/custom-spec.gmk.in +++ b/closed/autoconf/custom-spec.gmk.in @@ -77,6 +77,7 @@ OPENJ9_ENABLE_DEMOS := @OPENJ9_ENABLE_DEMOS@ OPENJ9_ENABLE_INLINE_TYPES := @OPENJ9_ENABLE_INLINE_TYPES@ OPENJ9_ENABLE_JFR := @OPENJ9_ENABLE_JFR@ OPENJ9_ENABLE_JITSERVER := @OPENJ9_ENABLE_JITSERVER@ +OPENJ9_ENABLE_SNAPSHOTS := @OPENJ9_ENABLE_SNAPSHOTS@ # for constructing version output COMPILER_VERSION_STRING := @COMPILER_VERSION_STRING@ From c4eafa97645288844cae1fdf44ff7e260be22166 Mon Sep 17 00:00:00 2001 From: Aleksey Shipilev Date: Thu, 31 Oct 2024 20:18:25 +0000 Subject: [PATCH 052/159] 8343019: Primitive caches must use boxed instances from the archive Reviewed-by: jiangli, vlivanov, iklam --- .../share/classes/java/lang/Byte.java | 3 +- .../share/classes/java/lang/Character.java | 3 +- .../share/classes/java/lang/Integer.java | 12 +++- .../share/classes/java/lang/Long.java | 3 +- .../share/classes/java/lang/Short.java | 3 +- .../cacheObject/ArchivedIntegerCacheTest.java | 63 ++++++++++--------- .../cacheObject/ArchivedIntegerHolder.java | 38 +++++++++++ .../cacheObject/CheckIntegerCacheApp.java | 8 +++ 8 files changed, 100 insertions(+), 33 deletions(-) create mode 100644 test/hotspot/jtreg/runtime/cds/appcds/cacheObject/ArchivedIntegerHolder.java diff --git a/src/java.base/share/classes/java/lang/Byte.java b/src/java.base/share/classes/java/lang/Byte.java index c78e11ae067..5835f65366f 100644 --- a/src/java.base/share/classes/java/lang/Byte.java +++ b/src/java.base/share/classes/java/lang/Byte.java @@ -117,7 +117,7 @@ private ByteCache() {} // Load and use the archived cache if it exists CDS.initializeFromArchive(ByteCache.class); - if (archivedCache == null || archivedCache.length != size) { + if (archivedCache == null) { Byte[] c = new Byte[size]; byte value = (byte)-128; for(int i = 0; i < size; i++) { @@ -126,6 +126,7 @@ private ByteCache() {} archivedCache = c; } cache = archivedCache; + assert cache.length == size; } } diff --git a/src/java.base/share/classes/java/lang/Character.java b/src/java.base/share/classes/java/lang/Character.java index 101eabcbcc0..8368adf5403 100644 --- a/src/java.base/share/classes/java/lang/Character.java +++ b/src/java.base/share/classes/java/lang/Character.java @@ -8984,7 +8984,7 @@ private CharacterCache(){} // Load and use the archived cache if it exists CDS.initializeFromArchive(CharacterCache.class); - if (archivedCache == null || archivedCache.length != size) { + if (archivedCache == null) { Character[] c = new Character[size]; for (int i = 0; i < size; i++) { c[i] = new Character((char) i); @@ -8992,6 +8992,7 @@ private CharacterCache(){} archivedCache = c; } cache = archivedCache; + assert cache.length == size; } } diff --git a/src/java.base/share/classes/java/lang/Integer.java b/src/java.base/share/classes/java/lang/Integer.java index 84fa5303ac7..e666e977c61 100644 --- a/src/java.base/share/classes/java/lang/Integer.java +++ b/src/java.base/share/classes/java/lang/Integer.java @@ -960,7 +960,17 @@ private static final class IntegerCache { if (archivedCache == null || size > archivedCache.length) { Integer[] c = new Integer[size]; int j = low; - for(int i = 0; i < c.length; i++) { + // If archive has Integer cache, we must use all instances from it. + // Otherwise, the identity checks between archived Integers and + // runtime-cached Integers would fail. + int archivedSize = (archivedCache == null) ? 0 : archivedCache.length; + for (int i = 0; i < archivedSize; i++) { + c[i] = archivedCache[i]; + assert j == archivedCache[i]; + j++; + } + // Fill the rest of the cache. + for (int i = archivedSize; i < size; i++) { c[i] = new Integer(j++); } archivedCache = c; diff --git a/src/java.base/share/classes/java/lang/Long.java b/src/java.base/share/classes/java/lang/Long.java index 78a2402ba0e..8c083b3ec84 100644 --- a/src/java.base/share/classes/java/lang/Long.java +++ b/src/java.base/share/classes/java/lang/Long.java @@ -962,7 +962,7 @@ private LongCache() {} // Load and use the archived cache if it exists CDS.initializeFromArchive(LongCache.class); - if (archivedCache == null || archivedCache.length != size) { + if (archivedCache == null) { Long[] c = new Long[size]; long value = -128; for(int i = 0; i < size; i++) { @@ -971,6 +971,7 @@ private LongCache() {} archivedCache = c; } cache = archivedCache; + assert cache.length == size; } } diff --git a/src/java.base/share/classes/java/lang/Short.java b/src/java.base/share/classes/java/lang/Short.java index a2d31ee07c3..57e88442b27 100644 --- a/src/java.base/share/classes/java/lang/Short.java +++ b/src/java.base/share/classes/java/lang/Short.java @@ -244,7 +244,7 @@ private ShortCache() {} // Load and use the archived cache if it exists CDS.initializeFromArchive(ShortCache.class); - if (archivedCache == null || archivedCache.length != size) { + if (archivedCache == null) { Short[] c = new Short[size]; short value = -128; for(int i = 0; i < size; i++) { @@ -253,6 +253,7 @@ private ShortCache() {} archivedCache = c; } cache = archivedCache; + assert cache.length == size; } } diff --git a/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/ArchivedIntegerCacheTest.java b/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/ArchivedIntegerCacheTest.java index 43d8568fac5..8bf3f9fcd27 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/ArchivedIntegerCacheTest.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/ArchivedIntegerCacheTest.java @@ -27,8 +27,9 @@ * @summary Test primitive box caches integrity in various scenarios (IntegerCache etc) * @requires vm.cds.write.archived.java.heap * @library /test/jdk/lib/testlibrary /test/lib /test/hotspot/jtreg/runtime/cds/appcds - * @compile CheckIntegerCacheApp.java + * @compile --add-exports java.base/jdk.internal.misc=ALL-UNNAMED CheckIntegerCacheApp.java ArchivedIntegerHolder.java * @run driver jdk.test.lib.helpers.ClassFileInstaller -jar boxCache.jar CheckIntegerCacheApp + * @run driver jdk.test.lib.helpers.ClassFileInstaller -jar boxCache-boot.jar ArchivedIntegerHolder * @run driver ArchivedIntegerCacheTest */ @@ -41,6 +42,19 @@ public class ArchivedIntegerCacheTest { + public static String[] mixArgs(String... args) { + String bootJar = ClassFileInstaller.getJarPath("boxCache-boot.jar"); + + String[] newArgs = new String[args.length + 5]; + newArgs[0] = "--add-exports"; + newArgs[1] = "java.base/jdk.internal.misc=ALL-UNNAMED"; + newArgs[2] = "-Xbootclasspath/a:" + bootJar; + newArgs[3] = "-XX:+IgnoreUnrecognizedVMOptions"; + newArgs[4] = "-XX:ArchiveHeapTestClass=ArchivedIntegerHolder"; + System.arraycopy(args, 0, newArgs, 5, args.length); + return newArgs; + } + public static void main(String[] args) throws Exception { String appJar = ClassFileInstaller.getJarPath("boxCache.jar"); @@ -51,15 +65,15 @@ public static void main(String[] args) throws Exception { // Dump default archive // OutputAnalyzer output = TestCommon.dump(appJar, - TestCommon.list("CheckIntegerCacheApp")); + TestCommon.list("CheckIntegerCacheApp"), + mixArgs()); TestCommon.checkDump(output); // Test case 1) // - Default options System.out.println("----------------------- Test case 1 ----------------------"); output = TestCommon.exec(appJar, - "CheckIntegerCacheApp", - "127"); + mixArgs("CheckIntegerCacheApp", "127")); TestCommon.checkExec(output); // Test case 2) @@ -67,9 +81,8 @@ public static void main(String[] args) throws Exception { // - Larger -XX:AutoBoxCacheMax System.out.println("----------------------- Test case 2 ----------------------"); output = TestCommon.exec(appJar, - "-XX:AutoBoxCacheMax=20000", - "CheckIntegerCacheApp", - "20000"); + mixArgs("-XX:AutoBoxCacheMax=20000", + "CheckIntegerCacheApp", "20000")); TestCommon.checkExec(output); // @@ -77,7 +90,7 @@ public static void main(String[] args) throws Exception { // output = TestCommon.dump(appJar, TestCommon.list("CheckIntegerCacheApp"), - "-XX:AutoBoxCacheMax=20000"); + mixArgs("-XX:AutoBoxCacheMax=20000")); TestCommon.checkDump(output); // Test case 3) @@ -85,10 +98,8 @@ public static void main(String[] args) throws Exception { // - Default options System.out.println("----------------------- Test case 3 ----------------------"); output = TestCommon.exec(appJar, - "--module-path", - moduleDir.toString(), - "CheckIntegerCacheApp", - "127"); + mixArgs("--module-path", moduleDir.toString(), + "CheckIntegerCacheApp", "127")); TestCommon.checkExec(output); @@ -97,11 +108,9 @@ public static void main(String[] args) throws Exception { // - Matching options System.out.println("----------------------- Test case 4 ----------------------"); output = TestCommon.exec(appJar, - "--module-path", - moduleDir.toString(), - "-XX:AutoBoxCacheMax=20000", - "CheckIntegerCacheApp", - "20000"); + mixArgs("--module-path", moduleDir.toString(), + "-XX:AutoBoxCacheMax=20000", + "CheckIntegerCacheApp", "20000")); TestCommon.checkExec(output); // Test case 5) @@ -109,23 +118,21 @@ public static void main(String[] args) throws Exception { // - Larger requested cache System.out.println("----------------------- Test case 5 ----------------------"); output = TestCommon.exec(appJar, - "--module-path", - moduleDir.toString(), - "-XX:AutoBoxCacheMax=30000", - "CheckIntegerCacheApp", - "30000"); + mixArgs("--module-path", moduleDir.toString(), + "-XX:AutoBoxCacheMax=30000", + "CheckIntegerCacheApp", "30000")); TestCommon.checkExec(output); // Test case 6) // - Cache is too large to archive output = TestCommon.dump(appJar, TestCommon.list("CheckIntegerCacheApp"), - "-XX:AutoBoxCacheMax=2000000", - "-Xmx1g", - "-XX:NewSize=1g", - "-Xlog:cds+heap=info", - "-Xlog:gc+region+cds", - "-Xlog:gc+region=trace"); + mixArgs("-XX:AutoBoxCacheMax=2000000", + "-Xmx1g", + "-XX:NewSize=1g", + "-Xlog:cds+heap=info", + "-Xlog:gc+region+cds", + "-Xlog:gc+region=trace")); TestCommon.checkDump(output, "Cannot archive the sub-graph referenced from [Ljava.lang.Integer; object"); } diff --git a/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/ArchivedIntegerHolder.java b/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/ArchivedIntegerHolder.java new file mode 100644 index 00000000000..c8ab0db7d34 --- /dev/null +++ b/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/ArchivedIntegerHolder.java @@ -0,0 +1,38 @@ +/* + * Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +import jdk.internal.misc.CDS; + +public class ArchivedIntegerHolder { + public static Object[] archivedObjects; + static { + CDS.initializeFromArchive(ArchivedIntegerHolder.class); + if (archivedObjects == null) { + archivedObjects = new Object[256]; + for (int i = -128; i <= 127; i++) { + archivedObjects[i + 128] = Integer.valueOf(i); + } + } + } +} diff --git a/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/CheckIntegerCacheApp.java b/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/CheckIntegerCacheApp.java index a1d1655b32f..7f66b2339a2 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/CheckIntegerCacheApp.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/CheckIntegerCacheApp.java @@ -62,6 +62,14 @@ public static void main(String[] args) throws Exception { } } + // Check that archived integer cache agrees with runtime integer cache. + for (int i = -128; i <= 127; i++) { + if (ArchivedIntegerHolder.archivedObjects[i + 128] != Integer.valueOf(i)) { + throw new RuntimeException( + "FAILED. Archived and runtime caches disagree for " + i); + } + } + int high = Integer.parseInt(args[0]); if (Integer.valueOf(high) != Integer.valueOf(high)) { throw new RuntimeException( From 4e07ef71b73cf551400bb833299a1d4f4f51db8b Mon Sep 17 00:00:00 2001 From: Alexey Semenyuk Date: Thu, 31 Oct 2024 20:25:55 +0000 Subject: [PATCH 053/159] 8325089: jpackage utility creates an "infinite", undeleteable directory tree Reviewed-by: almatvee --- .../internal/AbstractAppImageBuilder.java | 25 +- .../jdk/jpackage/internal/Arguments.java | 18 +- .../jdk/jpackage/internal/DeployParams.java | 8 +- .../jdk/jpackage/internal/IOUtils.java | 37 ++- .../internal/StandardBundlerParam.java | 13 +- .../test/DirectoryContentVerifierTest.java | 171 +++++++++++ .../jdk/jpackage/test/CommandArguments.java | 17 +- .../jdk/jpackage/test/JPackageCommand.java | 113 ++++++-- .../jdk/jpackage/test/JavaAppDesc.java | 6 +- .../helpers/jdk/jpackage/test/MacHelper.java | 33 ++- .../jdk/jpackage/test/PackageTest.java | 18 +- .../helpers/jdk/jpackage/test/TKit.java | 124 +++++++- .../jpackage/internal/DeployParamsTest.java | 12 +- .../tools/jpackage/share/InOutPathTest.java | 266 ++++++++++++++++++ .../share/jdk/jpackage/tests/BasicTest.java | 60 ++++ 15 files changed, 834 insertions(+), 87 deletions(-) create mode 100644 test/jdk/tools/jpackage/helpers-test/jdk/jpackage/test/DirectoryContentVerifierTest.java create mode 100644 test/jdk/tools/jpackage/share/InOutPathTest.java diff --git a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/AbstractAppImageBuilder.java b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/AbstractAppImageBuilder.java index 4e46d9a59cc..b507cc955bd 100644 --- a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/AbstractAppImageBuilder.java +++ b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/AbstractAppImageBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -27,14 +27,20 @@ import java.io.IOException; import java.io.InputStream; +import java.nio.file.Files; import java.nio.file.Path; +import java.util.ArrayList; import java.util.Map; import java.util.List; +import java.util.Objects; +import java.util.stream.Stream; import static jdk.jpackage.internal.OverridableResource.createResource; import static jdk.jpackage.internal.StandardBundlerParam.APP_NAME; import static jdk.jpackage.internal.StandardBundlerParam.ICON; import static jdk.jpackage.internal.StandardBundlerParam.SOURCE_DIR; import static jdk.jpackage.internal.StandardBundlerParam.APP_CONTENT; +import static jdk.jpackage.internal.StandardBundlerParam.OUTPUT_DIR; +import static jdk.jpackage.internal.StandardBundlerParam.TEMP_ROOT; import jdk.jpackage.internal.resources.ResourceLocator; /* @@ -73,8 +79,21 @@ protected void copyApplication(Map params) throws IOException { Path inputPath = SOURCE_DIR.fetchFrom(params); if (inputPath != null) { - IOUtils.copyRecursive(SOURCE_DIR.fetchFrom(params), - appLayout.appDirectory()); + inputPath = inputPath.toAbsolutePath(); + + List excludes = new ArrayList<>(); + + for (var path : List.of(TEMP_ROOT.fetchFrom(params), OUTPUT_DIR.fetchFrom(params), root)) { + if (Files.isDirectory(path)) { + path = path.toAbsolutePath(); + if (path.startsWith(inputPath) && !Files.isSameFile(path, inputPath)) { + excludes.add(path); + } + } + } + + IOUtils.copyRecursive(inputPath, + appLayout.appDirectory().toAbsolutePath(), excludes); } AppImageFile.save(root, params); diff --git a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/Arguments.java b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/Arguments.java index 16cd89d9d52..52579f50296 100644 --- a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/Arguments.java +++ b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/Arguments.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -89,9 +89,6 @@ public class Arguments { private List allOptions = null; - private String input = null; - private Path output = null; - private boolean hasMainJar = false; private boolean hasMainClass = false; private boolean hasMainModule = false; @@ -135,9 +132,6 @@ public Arguments(String[] args) { allOptions = new ArrayList<>(); addLaunchers = new ArrayList<>(); - - output = Paths.get("").toAbsolutePath(); - deployParams.setOutput(output); } // CLIOptions is public for DeployParamsTest @@ -147,13 +141,12 @@ public enum CLIOptions { }), INPUT ("input", "i", OptionCategories.PROPERTY, () -> { - context().input = popArg(); - setOptionValue("input", context().input); + setOptionValue("input", popArg()); }), OUTPUT ("dest", "d", OptionCategories.PROPERTY, () -> { - context().output = Path.of(popArg()); - context().deployParams.setOutput(context().output); + var path = Path.of(popArg()); + setOptionValue("dest", path); }), DESCRIPTION ("description", OptionCategories.PROPERTY), @@ -711,7 +704,8 @@ private void generateBundle(Map params) Map localParams = new HashMap<>(params); try { bundler.validate(localParams); - Path result = bundler.execute(localParams, deployParams.outdir); + Path result = bundler.execute(localParams, + StandardBundlerParam.OUTPUT_DIR.fetchFrom(params)); if (result == null) { throw new PackagerException("MSG_BundlerFailed", bundler.getID(), bundler.getName()); diff --git a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/DeployParams.java b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/DeployParams.java index 3a96703e1b5..18645f17a6d 100644 --- a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/DeployParams.java +++ b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/DeployParams.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -49,15 +49,9 @@ public class DeployParams { String targetFormat = null; // means default type for this platform - Path outdir = null; - // raw arguments to the bundler Map bundlerArguments = new LinkedHashMap<>(); - public void setOutput(Path output) { - outdir = output; - } - static class Template { Path in; Path out; diff --git a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/IOUtils.java b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/IOUtils.java index f4b0483bf98..573109a004b 100644 --- a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/IOUtils.java +++ b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/IOUtils.java @@ -121,29 +121,52 @@ public static void copyRecursive(Path src, Path dest, CopyOption... options) } public static void copyRecursive(Path src, Path dest, - final List excludes, CopyOption... options) + final List excludes, CopyOption... options) throws IOException { + + List copyActions = new ArrayList<>(); + Files.walkFileTree(src, new SimpleFileVisitor() { @Override public FileVisitResult preVisitDirectory(final Path dir, - final BasicFileAttributes attrs) throws IOException { - if (excludes.contains(dir.toFile().getName())) { + final BasicFileAttributes attrs) { + if (isPathMatch(dir, excludes)) { return FileVisitResult.SKIP_SUBTREE; } else { - Files.createDirectories(dest.resolve(src.relativize(dir))); + copyActions.add(new CopyAction(null, dest.resolve(src. + relativize(dir)))); return FileVisitResult.CONTINUE; } } @Override public FileVisitResult visitFile(final Path file, - final BasicFileAttributes attrs) throws IOException { - if (!excludes.contains(file.toFile().getName())) { - Files.copy(file, dest.resolve(src.relativize(file)), options); + final BasicFileAttributes attrs) { + if (!isPathMatch(file, excludes)) { + copyActions.add(new CopyAction(file, dest.resolve(src. + relativize(file)))); } return FileVisitResult.CONTINUE; } }); + + for (var copyAction : copyActions) { + copyAction.apply(options); + } + } + + private static record CopyAction(Path src, Path dest) { + void apply(CopyOption... options) throws IOException { + if (src == null) { + Files.createDirectories(dest); + } else { + Files.copy(src, dest, options); + } + } + } + + private static boolean isPathMatch(Path what, List paths) { + return paths.stream().anyMatch(what::endsWith); } public static void copyFile(Path sourceFile, Path destFile) diff --git a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/StandardBundlerParam.java b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/StandardBundlerParam.java index a50293aedb5..718f186c954 100644 --- a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/StandardBundlerParam.java +++ b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/StandardBundlerParam.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,7 +43,6 @@ import java.util.Set; import java.util.function.BiFunction; import java.util.function.Function; -import java.util.stream.Collectors; import java.util.stream.Stream; /** @@ -100,6 +99,14 @@ class StandardBundlerParam extends BundlerParamInfo { (s, p) -> Path.of(s) ); + static final StandardBundlerParam OUTPUT_DIR = + new StandardBundlerParam<>( + Arguments.CLIOptions.OUTPUT.getId(), + Path.class, + p -> Path.of("").toAbsolutePath(), + (s, p) -> Path.of(s) + ); + // note that each bundler is likely to replace this one with // their own converter static final StandardBundlerParam MAIN_JAR = @@ -596,7 +603,7 @@ static void copyPredefinedRuntimeImage(Map params, } // copy whole runtime, need to skip jmods and src.zip - final List excludes = Arrays.asList("jmods", "src.zip"); + final List excludes = Arrays.asList(Path.of("jmods"), Path.of("src.zip")); IOUtils.copyRecursive(topImage, appLayout.runtimeHomeDirectory(), excludes, LinkOption.NOFOLLOW_LINKS); diff --git a/test/jdk/tools/jpackage/helpers-test/jdk/jpackage/test/DirectoryContentVerifierTest.java b/test/jdk/tools/jpackage/helpers-test/jdk/jpackage/test/DirectoryContentVerifierTest.java new file mode 100644 index 00000000000..cf910445abf --- /dev/null +++ b/test/jdk/tools/jpackage/helpers-test/jdk/jpackage/test/DirectoryContentVerifierTest.java @@ -0,0 +1,171 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package jdk.jpackage.test; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Set; +import java.util.function.BiConsumer; +import static java.util.stream.Collectors.toSet; +import java.util.stream.Stream; +import jdk.jpackage.test.Annotations.Parameters; +import jdk.jpackage.test.Annotations.Test; +import static jdk.jpackage.test.DirectoryContentVerifierTest.AssertType.CONTAINS; +import static jdk.jpackage.test.DirectoryContentVerifierTest.AssertType.MATCH; +import jdk.jpackage.test.TKit.DirectoryContentVerifier; +import static jdk.jpackage.test.TKit.assertAssert; + +/* + * @test + * @summary Test TKit.DirectoryContentVerifier from jpackage test library + * @library /test/jdk/tools/jpackage/helpers + * @build jdk.jpackage.test.* + * @modules jdk.jpackage/jdk.jpackage.internal + * @compile DirectoryContentVerifierTest.java + * @run main/othervm/timeout=360 -Xmx512m jdk.jpackage.test.Main + * --jpt-run=jdk.jpackage.test.DirectoryContentVerifierTest + */ +public class DirectoryContentVerifierTest { + + enum AssertType { + MATCH(DirectoryContentVerifier::match), + CONTAINS(DirectoryContentVerifier::contains), + ; + + AssertType(BiConsumer> assertFunc) { + this.assertFunc = assertFunc; + } + + private final BiConsumer> assertFunc; + } + + private static ArgsBuilder buildArgs() { + return new ArgsBuilder(); + } + + private static class ArgsBuilder { + + void applyTo(List data) { + data.add(new Object[]{expectedPaths, actualPaths, assertOp, success}); + } + + void applyVariantsTo(List data) { + applyTo(data); + boolean pathGroupsEqual = List.of(expectedPaths).equals(List.of(actualPaths)); + if (assertOp == MATCH) { + if (!pathGroupsEqual) { + data.add(new Object[]{actualPaths, expectedPaths, MATCH, success}); + } + if (success) { + data.add(new Object[]{expectedPaths, actualPaths, CONTAINS, success}); + if (!pathGroupsEqual) { + data.add(new Object[]{actualPaths, expectedPaths, CONTAINS, success}); + } + } + } + } + + ArgsBuilder expectedPaths(String... paths) { + expectedPaths = paths; + return this; + } + + ArgsBuilder actualPaths(String... paths) { + actualPaths = paths; + return this; + } + + ArgsBuilder assertOp(AssertType v) { + assertOp = v; + return this; + } + + ArgsBuilder expectFail() { + success = false; + return this; + } + + private String[] expectedPaths = new String[0]; + private String[] actualPaths = new String[0]; + private AssertType assertOp = MATCH; + private boolean success = true; + } + + @Parameters + public static Collection input() { + List data = new ArrayList<>(); + buildArgs().applyVariantsTo(data); + buildArgs().actualPaths("foo").assertOp(CONTAINS).applyTo(data); + buildArgs().actualPaths("zoo").expectFail().applyVariantsTo(data); + buildArgs().actualPaths("boo").expectedPaths("boo").applyVariantsTo(data); + if (TKit.isWindows()) { + buildArgs().actualPaths("moo").expectedPaths("Moo").applyVariantsTo(data); + } else { + buildArgs().actualPaths("moo").expectedPaths("Moo").expectFail().applyVariantsTo(data); + } + buildArgs().actualPaths("hello").expectedPaths().expectFail().applyVariantsTo(data); + buildArgs().actualPaths("123").expectedPaths("456").expectFail().applyVariantsTo(data); + buildArgs().actualPaths("a", "b", "c").expectedPaths("b", "a", "c").applyVariantsTo(data); + buildArgs().actualPaths("AA", "BB", "CC").expectedPaths("BB", "AA").expectFail().applyVariantsTo(data); + buildArgs().actualPaths("AA", "BB", "CC").expectedPaths("BB", "AA").assertOp(CONTAINS).applyTo(data); + buildArgs().actualPaths("AA", "BB", "CC").expectedPaths("BB", "DD", "AA").expectFail().assertOp(CONTAINS).applyTo(data); + buildArgs().actualPaths("AA", "BB", "CC").expectedPaths("BB", "DD", "AA").expectFail().applyTo(data); + return data; + } + + public DirectoryContentVerifierTest(String[] expectedPaths, String[] actualPaths, + AssertType assertOp, Boolean success) { + this.expectedPaths = conv(expectedPaths); + this.actualPaths = conv(actualPaths); + this.assertOp = assertOp; + this.success = success; + } + + @Test + public void test() { + TKit.withTempDirectory("basedir", this::test); + } + + private void test(Path basedir) throws IOException { + for (var path : actualPaths) { + Files.createFile(basedir.resolve(path)); + } + + var testee = TKit.assertDirectoryContent(basedir); + + assertAssert(success, () -> assertOp.assertFunc.accept(testee, expectedPaths)); + } + + private static Set conv(String... paths) { + return Stream.of(paths).map(Path::of).collect(toSet()); + } + + private final Set expectedPaths; + private final Set actualPaths; + private final AssertType assertOp; + private final boolean success; +} diff --git a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/CommandArguments.java b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/CommandArguments.java index 5b4cf3aef71..e5941918938 100644 --- a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/CommandArguments.java +++ b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/CommandArguments.java @@ -34,30 +34,35 @@ public class CommandArguments { args = new ArrayList<>(); } - final public T addArgument(String v) { + public final T clearArguments() { + args.clear(); + return (T) this; + } + + public final T addArgument(String v) { args.add(v); return (T) this; } - final public T addArguments(List v) { + public final T addArguments(List v) { args.addAll(v); return (T) this; } - final public T addArgument(Path v) { + public final T addArgument(Path v) { return addArgument(v.toString()); } - final public T addArguments(String... v) { + public final T addArguments(String... v) { return addArguments(Arrays.asList(v)); } - final public T addPathArguments(List v) { + public final T addPathArguments(List v) { return addArguments(v.stream().map((p) -> p.toString()).collect( Collectors.toList())); } - final public List getAllArguments() { + public final List getAllArguments() { return List.copyOf(args); } diff --git a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java index fd62d6c7d88..18384db34db 100644 --- a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java +++ b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -52,6 +52,7 @@ import static jdk.jpackage.test.AdditionalLauncher.forEachAdditionalLauncher; import jdk.jpackage.test.Functional.ThrowingConsumer; import jdk.jpackage.test.Functional.ThrowingFunction; +import jdk.jpackage.test.Functional.ThrowingRunnable; import jdk.jpackage.test.Functional.ThrowingSupplier; /** @@ -76,6 +77,8 @@ public JPackageCommand(JPackageCommand cmd) { immutable = cmd.immutable; prerequisiteActions = new Actions(cmd.prerequisiteActions); verifyActions = new Actions(cmd.verifyActions); + appLayoutAsserts = cmd.appLayoutAsserts; + executeInDirectory = cmd.executeInDirectory; } JPackageCommand createImmutableCopy() { @@ -198,7 +201,10 @@ public PackageType packageType() { } public Path outputDir() { - return getArgumentValue("--dest", () -> Path.of("."), Path::of); + var path = getArgumentValue("--dest", () -> Path.of("."), Path::of); + return Optional.ofNullable(executeInDirectory).map(base -> { + return base.resolve(path); + }).orElse(path); } public Path inputDir() { @@ -691,6 +697,12 @@ public JPackageCommand useToolProvider(boolean v) { return this; } + public JPackageCommand setDirectory(Path v) { + verifyMutable(); + executeInDirectory = v; + return this; + } + public JPackageCommand saveConsoleOutput(boolean v) { verifyMutable(); saveConsoleOutput = v; @@ -733,6 +745,7 @@ public JPackageCommand executeVerifyActions() { private Executor createExecutor() { Executor exec = new Executor() .saveOutput(saveConsoleOutput).dumpOutput(!suppressOutput) + .setDirectory(executeInDirectory) .addArguments(args); if (isWithToolProvider()) { @@ -755,18 +768,19 @@ public Executor.Result execute(int expectedExitCode) { executePrerequisiteActions(); if (hasArgument("--dest")) { - if (isImagePackageType()) { - TKit.deleteDirectoryContentsRecursive(outputDir()); - } else { - nullableOutputBundle().ifPresent(path -> { - if (ThrowingSupplier.toSupplier(() -> TKit.deleteIfExists( - path)).get()) { + nullableOutputBundle().ifPresent(path -> { + ThrowingRunnable.toRunnable(() -> { + if (Files.isDirectory(path)) { + TKit.deleteDirectoryRecursive(path, String.format( + "Delete [%s] folder before running jpackage", + path)); + } else if (TKit.deleteIfExists(path)) { TKit.trace(String.format( "Deleted [%s] file before running jpackage", path)); } - }); - } + }).run(); + }); } Path resourceDir = getArgumentValue("--resource-dir", () -> null, Path::of); @@ -816,22 +830,69 @@ public JPackageCommand assertImageCreated() { return this; } - JPackageCommand assertAppLayout() { - assertAppImageFile(); - assertPackageFile(); - - TKit.assertDirectoryExists(appRuntimeDirectory()); - - if (!isRuntime()) { - TKit.assertExecutableFileExists(appLauncherPath()); - TKit.assertFileExists(appLauncherCfgPath(null)); - + public static enum AppLayoutAssert { + APP_IMAGE_FILE(JPackageCommand::assertAppImageFile), + PACKAGE_FILE(JPackageCommand::assertPackageFile), + MAIN_LAUNCHER(cmd -> { + if (cmd.isRuntime()) { + TKit.assertPathExists(convertFromRuntime(cmd).appLauncherPath(), false); + } else { + TKit.assertExecutableFileExists(cmd.appLauncherPath()); + } + }), + MAIN_LAUNCHER_CFG_FILE(cmd -> { + if (cmd.isRuntime()) { + TKit.assertPathExists(convertFromRuntime(cmd).appLauncherCfgPath(null), false); + } else { + TKit.assertFileExists(cmd.appLauncherCfgPath(null)); + } + }), + RUNTIME_DIRECTORY(cmd -> { + TKit.assertDirectoryExists(cmd.appRuntimeDirectory()); if (TKit.isOSX()) { - TKit.assertFileExists(appRuntimeDirectory().resolve( - "Contents/MacOS/libjli.dylib")); + var libjliPath = cmd.appRuntimeDirectory().resolve("Contents/MacOS/libjli.dylib"); + if (cmd.isRuntime()) { + TKit.assertPathExists(libjliPath, false); + } else { + TKit.assertFileExists(libjliPath); + } + } + }), + MAC_BUNDLE_STRUCTURE(cmd -> { + if (TKit.isOSX()) { + MacHelper.verifyBundleStructure(cmd); } + }), + ; + + AppLayoutAssert(Consumer action) { + this.action = action; + } + + private static JPackageCommand convertFromRuntime(JPackageCommand cmd) { + var copy = new JPackageCommand(cmd); + copy.immutable = false; + copy.removeArgumentWithValue("--runtime-image"); + return copy; } + private final Consumer action; + } + + public JPackageCommand setAppLayoutAsserts(AppLayoutAssert ... asserts) { + appLayoutAsserts = Set.of(asserts); + return this; + } + + public JPackageCommand excludeAppLayoutAsserts(AppLayoutAssert... asserts) { + return setAppLayoutAsserts(Stream.of(asserts).filter(Predicate.not( + appLayoutAsserts::contains)).toArray(AppLayoutAssert[]::new)); + } + + JPackageCommand assertAppLayout() { + for (var appLayoutAssert : appLayoutAsserts.stream().sorted().toList()) { + appLayoutAssert.action.accept(this); + } return this; } @@ -1111,9 +1172,11 @@ public void run() { private boolean immutable; private final Actions prerequisiteActions; private final Actions verifyActions; + private Path executeInDirectory; + private Set appLayoutAsserts = Set.of(AppLayoutAssert.values()); private static boolean defaultWithToolProvider; - private final static Map PACKAGE_TYPES = Functional.identity( + private static final Map PACKAGE_TYPES = Functional.identity( () -> { Map reply = new HashMap<>(); for (PackageType type : PackageType.values()) { @@ -1122,7 +1185,7 @@ public void run() { return reply; }).get(); - public final static Path DEFAULT_RUNTIME_IMAGE = Functional.identity(() -> { + public static final Path DEFAULT_RUNTIME_IMAGE = Functional.identity(() -> { // Set the property to the path of run-time image to speed up // building app images and platform bundles by avoiding running jlink // The value of the property will be automativcally appended to @@ -1135,5 +1198,5 @@ public void run() { return null; }).get(); - private final static String UNPACKED_PATH_ARGNAME = "jpt-unpacked-folder"; + private static final String UNPACKED_PATH_ARGNAME = "jpt-unpacked-folder"; } diff --git a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JavaAppDesc.java b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JavaAppDesc.java index 6a798012ca7..5b49b01a443 100644 --- a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JavaAppDesc.java +++ b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JavaAppDesc.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -216,7 +216,9 @@ public static JavaAppDesc parse(final String javaAppDesc) { components[0].length() - 1); desc.setWithMainClass(true); } - desc.setClassName(components[0]); + if (!components[0].isEmpty()) { + desc.setClassName(components[0]); + } if (components.length == 2) { desc.setModuleVersion(components[1]); } diff --git a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/MacHelper.java b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/MacHelper.java index ded548aface..8068e1d858f 100644 --- a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/MacHelper.java +++ b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/MacHelper.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -35,6 +35,7 @@ import java.util.Set; import java.util.regex.Pattern; import java.util.stream.Collectors; +import static java.util.stream.Collectors.toSet; import java.util.stream.Stream; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -257,6 +258,20 @@ static PackageHandlers createPkgPackageHandlers() { return pkg; } + static void verifyBundleStructure(JPackageCommand cmd) { + Path bundleRoot; + if (cmd.isImagePackageType()) { + bundleRoot = cmd.outputBundle(); + } else { + bundleRoot = cmd.pathToUnpackedPackageFile( + cmd.appInstallationDirectory()); + } + + TKit.assertDirectoryContent(bundleRoot).match(Path.of("Contents")); + TKit.assertDirectoryContent(bundleRoot.resolve("Contents")).match( + cmd.isRuntime() ? RUNTIME_BUNDLE_CONTENTS : APP_BUNDLE_CONTENTS); + } + static String getBundleName(JPackageCommand cmd) { cmd.verifyIsOfType(PackageType.MAC); return String.format("%s-%s%s", getPackageName(cmd), cmd.version(), @@ -390,5 +405,19 @@ private static Method initGetServicePListFileName() { static final Set CRITICAL_RUNTIME_FILES = Set.of(Path.of( "Contents/Home/lib/server/libjvm.dylib")); - private final static Method getServicePListFileName = initGetServicePListFileName(); + private static final Method getServicePListFileName = initGetServicePListFileName(); + + private static final Set APP_BUNDLE_CONTENTS = Stream.of( + "Info.plist", + "MacOS", + "app", + "runtime", + "Resources", + "PkgInfo", + "_CodeSignature" + ).map(Path::of).collect(toSet()); + + private static final Set RUNTIME_BUNDLE_CONTENTS = Stream.of( + "Home" + ).map(Path::of).collect(toSet()); } diff --git a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/PackageTest.java b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/PackageTest.java index d597c62d83f..7882d4cd92d 100644 --- a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/PackageTest.java +++ b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/PackageTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -127,6 +127,15 @@ public PackageTest setExpectedExitCode(int v) { return this; } + public PackageTest ignoreBundleOutputDir() { + return ignoreBundleOutputDir(true); + } + + public PackageTest ignoreBundleOutputDir(boolean v) { + ignoreBundleOutputDir = v; + return this; + } + private PackageTest addInitializer(ThrowingConsumer v, String id) { if (id != null) { @@ -368,7 +377,7 @@ protected void runAction(Action... action) { private final List> handlers; } - final static class PackageHandlers { + static final class PackageHandlers { Consumer installHandler; Consumer uninstallHandler; BiFunction unpackHandler; @@ -528,7 +537,7 @@ private void handleAction(Action action, T handler, private final JPackageCommand cmd = Functional.identity(() -> { JPackageCommand result = new JPackageCommand(); result.setDefaultInputOutput().setDefaultAppName(); - if (BUNDLE_OUTPUT_DIR != null) { + if (BUNDLE_OUTPUT_DIR != null && !ignoreBundleOutputDir) { result.setArgumentValue("--dest", BUNDLE_OUTPUT_DIR.toString()); } type.applyTo(result); @@ -777,8 +786,9 @@ private static Map createDefaultPackageHandlers() private Map handlers; private Set namedInitializers; private Map packageHandlers; + private boolean ignoreBundleOutputDir; - private final static File BUNDLE_OUTPUT_DIR; + private static final File BUNDLE_OUTPUT_DIR; static { final String propertyName = "output"; diff --git a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java index 1466714f8dd..ca1224aafd7 100644 --- a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java +++ b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java @@ -40,10 +40,12 @@ import java.nio.file.WatchService; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Date; +import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -57,13 +59,14 @@ import java.util.function.Predicate; import java.util.function.Supplier; import java.util.stream.Collectors; +import static java.util.stream.Collectors.toSet; import java.util.stream.Stream; import jdk.jpackage.test.Functional.ExceptionBox; import jdk.jpackage.test.Functional.ThrowingConsumer; import jdk.jpackage.test.Functional.ThrowingRunnable; import jdk.jpackage.test.Functional.ThrowingSupplier; -final public class TKit { +public final class TKit { private static final String OS = System.getProperty("os.name").toLowerCase(); @@ -84,7 +87,7 @@ final public class TKit { return TEST_SRC_ROOT.resolve("../../../../src/jdk.jpackage").normalize().toAbsolutePath(); }).get(); - public final static String ICON_SUFFIX = Functional.identity(() -> { + public static final String ICON_SUFFIX = Functional.identity(() -> { if (isOSX()) { return ".icns"; } @@ -273,7 +276,23 @@ public static void error(String v) { throw new AssertionError(v); } - private final static String TEMP_FILE_PREFIX = null; + static void assertAssert(boolean expectedSuccess, Runnable runnable) { + try { + runnable.run(); + } catch (AssertionError err) { + if (expectedSuccess) { + assertUnexpected("Assertion failed"); + } else { + return; + } + } + + if (!expectedSuccess) { + assertUnexpected("Assertion passed"); + } + } + + private static final String TEMP_FILE_PREFIX = null; private static Path createUniqueFileName(String defaultName) { final String[] nameComponents; @@ -740,6 +759,101 @@ public static void assertUnexpected(String msg) { error(concatMessages("Unexpected", msg)); } + public static DirectoryContentVerifier assertDirectoryContent(Path dir) { + return new DirectoryContentVerifier(dir); + } + + public static final class DirectoryContentVerifier { + public DirectoryContentVerifier(Path baseDir) { + this(baseDir, ThrowingSupplier.toSupplier(() -> { + try (var files = Files.list(baseDir)) { + return files.map(Path::getFileName).collect(toSet()); + } + }).get()); + } + + public void match(Path ... expected) { + DirectoryContentVerifier.this.match(Set.of(expected)); + } + + public void match(Set expected) { + currentTest.notifyAssert(); + + var comm = Comm.compare(content, expected); + if (!comm.unique1.isEmpty() && !comm.unique2.isEmpty()) { + error(String.format( + "assertDirectoryContentEquals(%s): Some expected %s. Unexpected %s. Missing %s", + baseDir, format(comm.common), format(comm.unique1), format(comm.unique2))); + } else if (!comm.unique1.isEmpty()) { + error(String.format( + "assertDirectoryContentEquals%s: Expected %s. Unexpected %s", + baseDir, format(comm.common), format(comm.unique1))); + } else if (!comm.unique2.isEmpty()) { + error(String.format( + "assertDirectoryContentEquals(%s): Some expected %s. Missing %s", + baseDir, format(comm.common), format(comm.unique2))); + } else { + traceAssert(String.format( + "assertDirectoryContentEquals(%s): Expected %s", + baseDir, format(expected))); + } + } + + public void contains(Path ... expected) { + contains(Set.of(expected)); + } + + public void contains(Set expected) { + currentTest.notifyAssert(); + + var comm = Comm.compare(content, expected); + if (!comm.unique2.isEmpty()) { + error(String.format( + "assertDirectoryContentContains(%s): Some expected %s. Missing %s", + baseDir, format(comm.common), format(comm.unique2))); + } else { + traceAssert(String.format( + "assertDirectoryContentContains(%s): Expected %s", + baseDir, format(expected))); + } + } + + public DirectoryContentVerifier removeAll(Path ... paths) { + Set newContent = new HashSet<>(content); + newContent.removeAll(List.of(paths)); + return new DirectoryContentVerifier(baseDir, newContent); + } + + private DirectoryContentVerifier(Path baseDir, Set contents) { + this.baseDir = baseDir; + this.content = contents; + } + + private static record Comm(Set common, Set unique1, Set unique2) { + static Comm compare(Set a, Set b) { + Set common = new HashSet<>(a); + common.retainAll(b); + + Set unique1 = new HashSet<>(a); + unique1.removeAll(common); + + Set unique2 = new HashSet<>(b); + unique2.removeAll(common); + + return new Comm(common, unique1, unique2); + } + } + + private static String format(Set paths) { + return Arrays.toString( + paths.stream().sorted().map(Path::toString).toArray( + String[]::new)); + } + + private final Path baseDir; + private final Set content; + } + public static void assertStringListEquals(List expected, List actual, String msg) { currentTest.notifyAssert(); @@ -817,7 +931,7 @@ public void close() throws IOException { }; } - public final static class TextStreamVerifier { + public static final class TextStreamVerifier { TextStreamVerifier(String value) { this.value = value; predicate(String::contains); @@ -880,7 +994,7 @@ public void apply(Stream lines) { private String label; private boolean negate; private Supplier createException; - final private String value; + private final String value; } public static TextStreamVerifier assertTextStream(String what) { diff --git a/test/jdk/tools/jpackage/junit/jdk.jpackage/jdk/jpackage/internal/DeployParamsTest.java b/test/jdk/tools/jpackage/junit/jdk.jpackage/jdk/jpackage/internal/DeployParamsTest.java index 53fe04509b0..18ca8836790 100644 --- a/test/jdk/tools/jpackage/junit/jdk.jpackage/jdk/jpackage/internal/DeployParamsTest.java +++ b/test/jdk/tools/jpackage/junit/jdk.jpackage/jdk/jpackage/internal/DeployParamsTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,12 +22,9 @@ */ package jdk.jpackage.internal; -import java.nio.file.Path; -import java.io.IOException; import org.hamcrest.BaseMatcher; import org.hamcrest.Description; import org.junit.Rule; -import org.junit.Before; import org.junit.Test; import org.junit.rules.ExpectedException; import org.junit.rules.TemporaryFolder; @@ -40,11 +37,6 @@ public class DeployParamsTest { @Rule public final ExpectedException thrown = ExpectedException.none(); - @Before - public void setUp() throws IOException { - testRoot = tempFolder.newFolder().toPath(); - } - @Test public void testValidAppName() throws PackagerException { initParamsAppName(); @@ -115,7 +107,6 @@ public void describeTo(Description d) { private void initParamsAppName() { params = new DeployParams(); - params.setOutput(testRoot); params.addBundleArgument(Arguments.CLIOptions.APPCLASS.getId(), "TestClass"); params.addBundleArgument(Arguments.CLIOptions.MAIN_JAR.getId(), @@ -128,6 +119,5 @@ private void setAppNameAndValidate(String appName) throws PackagerException { params.validate(); } - private Path testRoot = null; private DeployParams params; } diff --git a/test/jdk/tools/jpackage/share/InOutPathTest.java b/test/jdk/tools/jpackage/share/InOutPathTest.java new file mode 100644 index 00000000000..699d88e3189 --- /dev/null +++ b/test/jdk/tools/jpackage/share/InOutPathTest.java @@ -0,0 +1,266 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Set; +import java.util.function.Predicate; +import static java.util.stream.Collectors.toSet; +import java.util.stream.Stream; +import jdk.jpackage.internal.AppImageFile; +import jdk.jpackage.internal.ApplicationLayout; +import jdk.jpackage.internal.PackageFile; +import jdk.jpackage.test.Annotations; +import jdk.jpackage.test.Annotations.Test; +import jdk.jpackage.test.Functional.ThrowingConsumer; +import jdk.jpackage.test.JPackageCommand; +import jdk.jpackage.test.JPackageCommand.AppLayoutAssert; +import jdk.jpackage.test.PackageTest; +import jdk.jpackage.test.PackageType; +import static jdk.jpackage.test.RunnablePackageTest.Action.CREATE_AND_UNPACK; +import jdk.jpackage.test.TKit; + +/* + * @test + * @summary Test jpackage command line with overlapping input and output paths + * @library ../helpers + * @build jdk.jpackage.test.* + * @modules jdk.jpackage/jdk.jpackage.internal + * @compile InOutPathTest.java + * @run main/othervm/timeout=360 -Xmx512m jdk.jpackage.test.Main + * --jpt-run=InOutPathTest + */ +public final class InOutPathTest { + + @Annotations.Parameters + public static Collection input() { + List data = new ArrayList<>(); + + for (var packageTypes : List.of(PackageType.IMAGE.toString(), ALL_NATIVE_PACKAGE_TYPES)) { + data.addAll(List.of(new Object[][]{ + {packageTypes, wrap(InOutPathTest::outputDirInInputDir, "--dest in --input")}, + {packageTypes, wrap(InOutPathTest::outputDirSameAsInputDir, "--dest same as --input")}, + {packageTypes, wrap(InOutPathTest::tempDirInInputDir, "--temp in --input")}, + {packageTypes, wrap(cmd -> { + outputDirInInputDir(cmd); + tempDirInInputDir(cmd); + }, "--dest and --temp in --input")}, + })); + data.addAll(additionalContentInput(packageTypes, "--app-content")); + } + + data.addAll(List.of(new Object[][]{ + {PackageType.IMAGE.toString(), wrap(cmd -> { + additionalContent(cmd, "--app-content", cmd.outputBundle()); + }, "--app-content same as output bundle")}, + })); + + if (TKit.isOSX()) { + data.addAll(additionalContentInput(PackageType.MAC_DMG.toString(), + "--mac-dmg-content")); + } + + return data; + } + + private static List additionalContentInput(String packageTypes, String argName) { + List data = new ArrayList<>(); + + data.addAll(List.of(new Object[][]{ + {packageTypes, wrap(cmd -> { + additionalContent(cmd, argName, cmd.inputDir()); + }, argName + " same as --input")}, + })); + + if (!TKit.isOSX()) { + data.addAll(List.of(new Object[][]{ + {packageTypes, wrap(cmd -> { + additionalContent(cmd, argName, cmd.inputDir().resolve("foo")); + }, argName + " in --input")}, + {packageTypes, wrap(cmd -> { + additionalContent(cmd, argName, cmd.outputDir().resolve("bar")); + }, argName + " in --dest")}, + {packageTypes, wrap(cmd -> { + additionalContent(cmd, argName, cmd.outputDir()); + }, argName + " same as --dest")}, + {packageTypes, wrap(cmd -> { + tempDirInInputDir(cmd); + var tempDir = cmd.getArgumentValue("--temp"); + Files.createDirectories(Path.of(tempDir)); + cmd.addArguments(argName, tempDir); + }, argName + " as --temp; --temp in --input")}, + })); + } + + return data; + } + + public InOutPathTest(String packageTypes, Envelope configure) { + if (ALL_NATIVE_PACKAGE_TYPES.equals(packageTypes)) { + this.packageTypes = PackageType.NATIVE; + } else { + this.packageTypes = Stream.of(packageTypes.split(",")).map( + PackageType::valueOf).collect(toSet()); + } + this.configure = configure.value; + } + + @Test + public void test() throws Throwable { + runTest(packageTypes, configure); + } + + private static Envelope wrap(ThrowingConsumer v, String label) { + return new Envelope(v, label); + } + + private static boolean isAppImageValid(JPackageCommand cmd) { + return !cmd.hasArgument("--app-content") && !cmd.hasArgument("--mac-dmg-content"); + } + + private static void runTest(Set packageTypes, + ThrowingConsumer configure) throws Throwable { + ThrowingConsumer configureWrapper = cmd -> { + // Make sure the input directory is empty in every test run. + // This is needed because jpackage output directories in this test + // are subdirectories of the input directory. + cmd.setInputToEmptyDirectory(); + configure.accept(cmd); + if (cmd.hasArgument("--temp") && cmd.isImagePackageType()) { + // Request to build app image wit user supplied temp directory, + // ignore external runtime if any to make use of the temp directory + // for runtime generation. + cmd.ignoreDefaultRuntime(true); + } else { + cmd.setFakeRuntime(); + } + + if (!isAppImageValid(cmd)) { + // Standard asserts for .jpackage.xml fail in messed up app image. Disable them. + // Other standard asserts for app image contents should pass. + cmd.excludeAppLayoutAsserts(AppLayoutAssert.APP_IMAGE_FILE); + } + }; + + if (packageTypes.contains(PackageType.IMAGE)) { + JPackageCommand cmd = JPackageCommand.helloAppImage(JAR_PATH.toString() + ":"); + configureWrapper.accept(cmd); + cmd.executeAndAssertHelloAppImageCreated(); + if (isAppImageValid(cmd)) { + verifyAppImage(cmd); + } + } else { + new PackageTest() + .forTypes(packageTypes) + .configureHelloApp(JAR_PATH.toString() + ":") + .addInitializer(configureWrapper) + .addInstallVerifier(InOutPathTest::verifyAppImage) + .run(CREATE_AND_UNPACK); + } + } + + private static void outputDirInInputDir(JPackageCommand cmd) throws + IOException { + // Set output dir as a subdir of input dir + Path outputDir = cmd.inputDir().resolve("out"); + TKit.createDirectories(outputDir); + cmd.setArgumentValue("--dest", outputDir); + } + + private static void outputDirSameAsInputDir(JPackageCommand cmd) throws + IOException { + // Set output dir the same as the input dir + cmd.setArgumentValue("--dest", cmd.inputDir()); + } + + private static void tempDirInInputDir(JPackageCommand cmd) { + // Set temp dir as a subdir of input dir + Path tmpDir = cmd.inputDir().resolve("tmp"); + cmd.setArgumentValue("--temp", tmpDir); + } + + private static void additionalContent(JPackageCommand cmd, + String argName, Path base) throws IOException { + Path appContentFile = base.resolve(base.toString().replaceAll("[\\\\/]", + "-") + "-foo.txt"); + TKit.createDirectories(appContentFile.getParent()); + TKit.createTextFile(appContentFile, List.of("Hello Duke!")); + cmd.addArguments(argName, appContentFile.getParent()); + } + + private static void verifyAppImage(JPackageCommand cmd) throws IOException { + if (!isAppImageValid(cmd)) { + // Don't verify the contents of app image as it is invalid. + // jpackage exited without getting stuck in infinite spiral. + // No more expectations from the tool for the give arguments. + return; + } + + final Path rootDir = cmd.isImagePackageType() ? cmd.outputBundle() : cmd.pathToUnpackedPackageFile( + cmd.appInstallationDirectory()); + final Path appDir = ApplicationLayout.platformAppImage().resolveAt( + rootDir).appDirectory(); + + final var knownFiles = Set.of( + JAR_PATH.getName(0).toString(), + PackageFile.getPathInAppImage(Path.of("")).getFileName().toString(), + AppImageFile.getPathInAppImage(Path.of("")).getFileName().toString(), + cmd.name() + ".cfg" + ); + + TKit.assertFileExists(appDir.resolve(JAR_PATH)); + + try (Stream actualFilesStream = Files.list(appDir)) { + var unexpectedFiles = actualFilesStream.map(path -> { + return path.getFileName().toString(); + }).filter(Predicate.not(knownFiles::contains)).toList(); + TKit.assertStringListEquals(List.of(), unexpectedFiles, + "Check there are no unexpected files in `app` folder"); + } + } + + private static final record Envelope(ThrowingConsumer value, String label) { + @Override + public String toString() { + // Will produce the same test description for the same label every + // time it's executed. + // The test runner will keep the same test output directory. + return label; + } + } + + private final Set packageTypes; + private final ThrowingConsumer configure; + + // Placing jar file in the "Resources" subdir of the input directory would allow + // to use the input directory with `--app-content` on OSX. + // For other platforms it doesn't matter. Keep it the same across + // all platforms for simplicity. + private static final Path JAR_PATH = Path.of("Resources/duke.jar"); + + private static final String ALL_NATIVE_PACKAGE_TYPES = "NATIVE"; +} diff --git a/test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java b/test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java index 72550fd365b..5118600d341 100644 --- a/test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java +++ b/test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java @@ -28,6 +28,7 @@ import java.nio.file.Path; import java.util.List; import java.util.ArrayList; +import java.util.Optional; import java.util.function.Function; import java.util.function.Predicate; import java.util.regex.Pattern; @@ -41,6 +42,8 @@ import jdk.jpackage.test.JavaTool; import jdk.jpackage.test.Annotations.Test; import jdk.jpackage.test.Annotations.Parameter; +import jdk.jpackage.test.Functional.ThrowingConsumer; +import static jdk.jpackage.test.RunnablePackageTest.Action.CREATE_AND_UNPACK; import static jdk.jpackage.test.WindowsHelper.getTempDirectory; @@ -249,6 +252,63 @@ public void testWhitespaceInPaths() { .executeAndAssertHelloAppImageCreated(); } + @Test + @Parameter("true") + @Parameter("false") + public void testNoOutputDir(boolean appImage) throws Throwable { + var cmd = JPackageCommand.helloAppImage(); + + final var execDir = cmd.outputDir(); + + final ThrowingConsumer initializer = cmdNoOutputDir -> { + cmd.executePrerequisiteActions(); + + final var pkgType = cmdNoOutputDir.packageType(); + + cmdNoOutputDir + .clearArguments() + .addArguments(cmd.getAllArguments()) + // Restore the value of `--type` parameter. + .setPackageType(pkgType) + .removeArgumentWithValue("--dest") + .setArgumentValue("--input", execDir.relativize(cmd.inputDir())) + .setDirectory(execDir) + // Force to use jpackage as executable because we need to + // change the current directory. + .useToolProvider(false); + + Optional.ofNullable(cmdNoOutputDir.getArgumentValue("--runtime-image", + () -> null, Path::of)).ifPresent(runtimePath -> { + if (!runtimePath.isAbsolute()) { + cmdNoOutputDir.setArgumentValue("--runtime-image", + execDir.relativize(runtimePath)); + } + }); + + // JPackageCommand.execute() will not do the cleanup if `--dest` parameter + // is not specified, do it manually. + TKit.createDirectories(execDir); + TKit.deleteDirectoryContentsRecursive(execDir); + }; + + if (appImage) { + var cmdNoOutputDir = new JPackageCommand() + .setPackageType(cmd.packageType()); + initializer.accept(cmdNoOutputDir); + cmdNoOutputDir.executeAndAssertHelloAppImageCreated(); + } else { + // Save time by packing non-functional runtime. + // Build the runtime in app image only. This is sufficient coverage. + cmd.setFakeRuntime(); + new PackageTest() + .addInitializer(initializer) + .addInstallVerifier(HelloApp::executeLauncherAndVerifyOutput) + // Prevent adding `--dest` parameter to jpackage command line. + .ignoreBundleOutputDir() + .run(CREATE_AND_UNPACK); + } + } + @Test @Parameter("ALL-MODULE-PATH") @Parameter("ALL-DEFAULT") From 0830474fece81f2254802ea0c83a70e3bccedf9f Mon Sep 17 00:00:00 2001 From: Calvin Cheung Date: Thu, 31 Oct 2024 21:30:08 +0000 Subject: [PATCH 054/159] 8319343: Improve CDS module graph support for --add-modules option Reviewed-by: alanb, iklam --- .../internal/module/ArchivedModuleGraph.java | 28 ++- .../jdk/internal/module/ModuleBootstrap.java | 8 +- .../appcds/jigsaw/addmods/AddmodsOption.java | 231 ++++++++++++++++++ 3 files changed, 257 insertions(+), 10 deletions(-) create mode 100644 test/hotspot/jtreg/runtime/cds/appcds/jigsaw/addmods/AddmodsOption.java diff --git a/src/java.base/share/classes/jdk/internal/module/ArchivedModuleGraph.java b/src/java.base/share/classes/jdk/internal/module/ArchivedModuleGraph.java index 8b91ab67d2b..ca5ffb2ff68 100644 --- a/src/java.base/share/classes/jdk/internal/module/ArchivedModuleGraph.java +++ b/src/java.base/share/classes/jdk/internal/module/ArchivedModuleGraph.java @@ -25,6 +25,7 @@ package jdk.internal.module; import java.util.Objects; +import java.util.Set; import java.util.function.Function; import java.lang.module.Configuration; import java.lang.module.ModuleFinder; @@ -43,19 +44,22 @@ class ArchivedModuleGraph { private final Configuration configuration; private final Function classLoaderFunction; private final String mainModule; + private final Set addModules; private ArchivedModuleGraph(boolean hasSplitPackages, boolean hasIncubatorModules, ModuleFinder finder, Configuration configuration, Function classLoaderFunction, - String mainModule) { + String mainModule, + Set addModules) { this.hasSplitPackages = hasSplitPackages; this.hasIncubatorModules = hasIncubatorModules; this.finder = finder; this.configuration = configuration; this.classLoaderFunction = classLoaderFunction; this.mainModule = mainModule; + this.addModules = addModules; } ModuleFinder finder() { @@ -78,12 +82,24 @@ boolean hasIncubatorModules() { return hasIncubatorModules; } + static boolean sameAddModules(Set addModules) { + if (archivedModuleGraph.addModules == null || addModules == null) { + return false; + } + + if (archivedModuleGraph.addModules.size() != addModules.size()) { + return false; + } + + return archivedModuleGraph.addModules.containsAll(addModules); + } + /** * Returns the ArchivedModuleGraph for the given initial module. */ - static ArchivedModuleGraph get(String mainModule) { + static ArchivedModuleGraph get(String mainModule, Set addModules) { ArchivedModuleGraph graph = archivedModuleGraph; - if ((graph != null) && Objects.equals(graph.mainModule, mainModule)) { + if ((graph != null) && Objects.equals(graph.mainModule, mainModule) && sameAddModules(addModules)) { return graph; } else { return null; @@ -98,13 +114,15 @@ static void archive(boolean hasSplitPackages, ModuleFinder finder, Configuration configuration, Function classLoaderFunction, - String mainModule) { + String mainModule, + Set addModules) { archivedModuleGraph = new ArchivedModuleGraph(hasSplitPackages, hasIncubatorModules, finder, configuration, classLoaderFunction, - mainModule); + mainModule, + addModules); } static { diff --git a/src/java.base/share/classes/jdk/internal/module/ModuleBootstrap.java b/src/java.base/share/classes/jdk/internal/module/ModuleBootstrap.java index 656104e2455..f5904915e26 100644 --- a/src/java.base/share/classes/jdk/internal/module/ModuleBootstrap.java +++ b/src/java.base/share/classes/jdk/internal/module/ModuleBootstrap.java @@ -141,7 +141,6 @@ public static ModuleFinder limitedFinder() { private static boolean canUseArchivedBootLayer() { return getProperty("jdk.module.upgrade.path") == null && getProperty("jdk.module.patch.0") == null && // --patch-module - getProperty("jdk.module.addmods.0") == null && // --add-modules getProperty("jdk.module.limitmods") == null && // --limit-modules getProperty("jdk.module.addreads.0") == null && // --add-reads getProperty("jdk.module.addexports.0") == null && // --add-exports @@ -212,10 +211,9 @@ private static ModuleLayer boot2() { // If the java heap was archived at CDS dump time, and the environment // at dump time matches the current environment, then use the archived // system modules and finder. - ArchivedModuleGraph archivedModuleGraph = ArchivedModuleGraph.get(mainModule); + ArchivedModuleGraph archivedModuleGraph = ArchivedModuleGraph.get(mainModule, addModules); if (archivedModuleGraph != null && !haveModulePath - && addModules.isEmpty() && limitModules.isEmpty() && !isPatched) { systemModuleFinder = archivedModuleGraph.finder(); @@ -466,7 +464,6 @@ private static ModuleLayer boot2() { if (CDS.isDumpingStaticArchive() && !haveUpgradeModulePath - && addModules.isEmpty() && allJrtOrModularJar(cf)) { assert !isPatched; @@ -478,7 +475,8 @@ && allJrtOrModularJar(cf)) { systemModuleFinder, cf, clf, - mainModule); + mainModule, + addModules); if (!hasSplitPackages && !hasIncubatorModules) { ArchivedBootLayer.archive(bootLayer); } diff --git a/test/hotspot/jtreg/runtime/cds/appcds/jigsaw/addmods/AddmodsOption.java b/test/hotspot/jtreg/runtime/cds/appcds/jigsaw/addmods/AddmodsOption.java new file mode 100644 index 00000000000..5bab21dea13 --- /dev/null +++ b/test/hotspot/jtreg/runtime/cds/appcds/jigsaw/addmods/AddmodsOption.java @@ -0,0 +1,231 @@ +/* + * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * @test + * @bug 8319343 + * @summary Test handling of the --add-modules option. + * @requires vm.cds.write.archived.java.heap + * @requires vm.flagless + * @library /test/lib /test/hotspot/jtreg/runtime/cds/appcds + * @run driver AddmodsOption + */ + +import jdk.test.lib.process.OutputAnalyzer; + +public class AddmodsOption { + public static void main(String[] args) throws Exception { + final String moduleOption = "jdk.httpserver/sun.net.httpserver.simpleserver.Main"; + final String incubatorModule = "jdk.incubator.vector"; + final String jconsoleModule = "jdk.jconsole"; + final String multiModules = ",,jdk.jconsole,jdk.compiler,,"; + final String allSystem = "ALL-SYSTEM"; + final String allModulePath = "ALL-MODULE-PATH"; + final String loggingOption = "-Xlog:cds=debug,cds+module=debug,cds+heap=info,module=trace"; + final String versionPattern = "java.[0-9][0-9][-].*"; + final String subgraphCannotBeUsed = "subgraph jdk.internal.module.ArchivedBootLayer cannot be used because full module graph is disabled"; + final String warningIncubator = "WARNING: Using incubator modules: jdk.incubator.vector"; + String archiveName = TestCommon.getNewArchiveName("addmods-option"); + TestCommon.setCurrentArchiveName(archiveName); + + // dump a base archive with --add-modules jdk.jconsole -m jdk.httpserver + OutputAnalyzer oa = TestCommon.dumpBaseArchive( + archiveName, + loggingOption, + "--add-modules", jconsoleModule, + "-m", moduleOption, + "-version"); + oa.shouldHaveExitValue(0); + + // same modules specified during runtime + oa = TestCommon.execCommon( + loggingOption, + "--add-modules", jconsoleModule, + "-m", moduleOption, + "-version"); + oa.shouldHaveExitValue(0) + // version of the jdk.httpserver module, e.g. java 22-ea + .shouldMatch(versionPattern) + .shouldMatch("cds,module.*Restored from archive: entry.0x.*name jdk.jconsole") + .shouldMatch("cds,module.*Restored from archive: entry.0x.*name jdk.httpserver"); + + // different --add-modules specified during runtime + oa = TestCommon.execCommon( + loggingOption, + "--add-modules", incubatorModule, + "-m", moduleOption, + "-version"); + oa.shouldHaveExitValue(0) + .shouldContain("Mismatched --add-modules module name(s).") + .shouldContain("dump time: jdk.jconsole runtime: jdk.incubator.vector") + .shouldContain(subgraphCannotBeUsed); + + // no module specified during runtime + oa = TestCommon.execCommon( + loggingOption, + "-version"); + oa.shouldHaveExitValue(0) + .shouldContain("Module jdk.httpserver specified during dump time but not during runtime") + .shouldContain(subgraphCannotBeUsed); + + // dump an archive without the --add-modules option + archiveName = TestCommon.getNewArchiveName("no-addmods-option"); + TestCommon.setCurrentArchiveName(archiveName); + oa = TestCommon.dumpBaseArchive( + archiveName, + loggingOption, + "-m", moduleOption, + "-version"); + oa.shouldHaveExitValue(0); + + // run with --add-modules option + oa = TestCommon.execCommon( + loggingOption, + "--add-modules", jconsoleModule, + "-m", moduleOption, + "-version"); + oa.shouldHaveExitValue(0) + .shouldContain("--add-modules module name(s) specified during runtime but not found in archive: jdk.jconsole") + // version of the jdk.httpserver module, e.g. java 22-ea + .shouldMatch(versionPattern) + .shouldContain(subgraphCannotBeUsed); + + // dump an archive with an incubator module, -add-modules jdk.incubator.vector + archiveName = TestCommon.getNewArchiveName("incubator-module"); + TestCommon.setCurrentArchiveName(archiveName); + oa = TestCommon.dumpBaseArchive( + archiveName, + loggingOption, + "--add-modules", incubatorModule, + "-m", moduleOption, + "-version"); + oa.shouldHaveExitValue(0) + // module graph won't be archived with an incubator module + .shouldContain("archivedBootLayer not available, disabling full module graph"); + + // run with the same incubator module + oa = TestCommon.execCommon( + loggingOption, + "--add-modules", incubatorModule, + "-m", moduleOption, + "-version"); + oa.shouldContain("full module graph: disabled") + // module is not restored from archive + .shouldContain("define_module(): creation of module: jdk.incubator.vector") + .shouldContain("WARNING: Using incubator modules: jdk.incubator.vector") + .shouldContain("subgraph jdk.internal.module.ArchivedBootLayer is not recorde") + .shouldHaveExitValue(0); + + // dump an archive with JVMCI option which indirectly adds the + // jdk.internal.vm.ci module using the --add-modules option + archiveName = TestCommon.getNewArchiveName("jvmci-module"); + TestCommon.setCurrentArchiveName(archiveName); + oa = TestCommon.dumpBaseArchive( + archiveName, + loggingOption, + "-XX:+UnlockExperimentalVMOptions", + "-XX:+EagerJVMCI", "-XX:+UseJVMCICompiler", + "-version"); + oa.shouldHaveExitValue(0); + + // run with the JVMCI option + oa = TestCommon.execCommon( + loggingOption, + "-XX:+UnlockExperimentalVMOptions", + "-XX:+EagerJVMCI", "-XX:+UseJVMCICompiler", + "-version"); + try { + oa.shouldHaveExitValue(0) + .shouldMatch("cds,module.*Restored from archive: entry.0x.*name jdk.internal.vm.ci"); + } catch (RuntimeException re) { + // JVMCI compile may not be available + oa.shouldHaveExitValue(1) + .shouldContain("Cannot use JVMCI compiler: No JVMCI compiler found"); + } + + // dump an archive with multiple modules in -add-modules + archiveName = TestCommon.getNewArchiveName("muti-modules"); + TestCommon.setCurrentArchiveName(archiveName); + oa = TestCommon.dumpBaseArchive( + archiveName, + loggingOption, + "--add-modules", multiModules, + "-m", moduleOption, + "-version"); + oa.shouldHaveExitValue(0); + + // run with the same multiple modules with a duplicate module in --add-modules + oa = TestCommon.execCommon( + loggingOption, + "--add-modules", multiModules, + "--add-modules", jconsoleModule, + "-m", moduleOption, + "-version"); + oa.shouldHaveExitValue(0) + .shouldMatch("cds,module.*Restored from archive: entry.0x.*name jdk.compiler") + .shouldMatch("cds,module.*Restored from archive: entry.0x.*name jdk.jconsole"); + + // dump an archive with ALL-SYSTEM in -add-modules + archiveName = TestCommon.getNewArchiveName("muti-modules"); + TestCommon.setCurrentArchiveName(archiveName); + oa = TestCommon.dumpBaseArchive( + archiveName, + loggingOption, + "--add-modules", allSystem, + "-m", moduleOption, + "-version"); + oa.shouldHaveExitValue(0) + .shouldContain(warningIncubator); + + // run with the same ALL-SYSTEM in --add-modules + oa = TestCommon.execCommon( + loggingOption, + "--add-modules", allSystem, + "-m", moduleOption, + "-version"); + oa.shouldHaveExitValue(0) + // the jdk.incubator.vector was specified indirectly via ALL-SYSTEM + .shouldContain(warningIncubator) + .shouldContain("full module graph cannot be loaded: archive was created without full module graph"); + + // dump an archive with ALL-MODULE-PATH in -add-modules + archiveName = TestCommon.getNewArchiveName("muti-modules"); + TestCommon.setCurrentArchiveName(archiveName); + oa = TestCommon.dumpBaseArchive( + archiveName, + loggingOption, + "--add-modules", allModulePath, + "-m", moduleOption, + "-version"); + oa.shouldHaveExitValue(0); + + // run with the same ALL-MODULE-PATH in --add-modules + oa = TestCommon.execCommon( + loggingOption, + "--add-modules", allModulePath, + "-m", moduleOption, + "-version"); + oa.shouldHaveExitValue(0) + .shouldMatch("cds,module.*Restored from archive: entry.0x.*name jdk.httpserver"); + } +} From 7e91fcf8d3289e9e28ebf0eed1d10c8c68e8f590 Mon Sep 17 00:00:00 2001 From: Alexander Matveev Date: Thu, 31 Oct 2024 22:17:35 +0000 Subject: [PATCH 055/159] 8343085: [macos] jpackage verbose output on macOS contains numerous "Running /usr/bin/codesign" entries Reviewed-by: asemenyuk --- .../share/classes/jdk/jpackage/internal/Executor.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/Executor.java b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/Executor.java index 0262ae1ac73..dd1cc4a24b4 100644 --- a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/Executor.java +++ b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/Executor.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -112,7 +112,10 @@ int execute() throws IOException { pb.redirectOutput(ProcessBuilder.Redirect.DISCARD); } - Log.verbose(String.format("Running %s", createLogMessage(pb, true))); + if (!quietCommand) { + Log.verbose(String.format("Running %s", createLogMessage(pb, true))); + } + Process p = pb.start(); int code = 0; From 07ace575de11a95d9e22e67d914d21404fc03379 Mon Sep 17 00:00:00 2001 From: Alexander Matveev Date: Thu, 31 Oct 2024 22:18:26 +0000 Subject: [PATCH 056/159] 8342544: [macos] jpackage test helper should check for both "--app-image" and "--mac-sign" for signing predefined app image case Reviewed-by: asemenyuk --- .../helpers/jdk/jpackage/test/JPackageCommand.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java index 18384db34db..99cb61b17d3 100644 --- a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java +++ b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java @@ -408,12 +408,14 @@ public JPackageCommand setDefaultAppName() { public Path outputBundle() { final String bundleName; if (isImagePackageType()) { - if (TKit.isOSX() && hasArgument("--app-image")) { - return Path.of(getArgumentValue("--app-image", () -> null)); - } - String dirName = name(); - if (TKit.isOSX()) { - dirName = dirName + ".app"; + String dirName; + if (!TKit.isOSX()) { + dirName = name(); + } else if (hasArgument("--app-image") && hasArgument("--mac-sign")) { + // Request to sign external app image, not to build a new one + dirName = getArgumentValue("--app-image"); + } else { + dirName = name() + ".app"; } bundleName = dirName; } else if (TKit.isLinux()) { From e797f89aec1297cd1a4cebea42b472f855c0792f Mon Sep 17 00:00:00 2001 From: Claes Redestad Date: Thu, 31 Oct 2024 22:28:53 +0000 Subject: [PATCH 057/159] 8343305: Remove Indify-dependent microbenchmarks Reviewed-by: liach, ihse, erikj --- make/test/BuildMicrobenchmark.gmk | 23 +- .../java/lang/invoke/CallSiteSetTarget.java | 214 ------------------ .../lang/invoke/CallSiteSetTargetSelf.java | 155 ------------- .../java/lang/invoke/CallSiteStable.java | 171 -------------- 4 files changed, 1 insertion(+), 562 deletions(-) delete mode 100644 test/micro/org/openjdk/bench/java/lang/invoke/CallSiteSetTarget.java delete mode 100644 test/micro/org/openjdk/bench/java/lang/invoke/CallSiteSetTargetSelf.java delete mode 100644 test/micro/org/openjdk/bench/java/lang/invoke/CallSiteStable.java diff --git a/make/test/BuildMicrobenchmark.gmk b/make/test/BuildMicrobenchmark.gmk index 700aac3c9c6..1b2eb40b252 100644 --- a/make/test/BuildMicrobenchmark.gmk +++ b/make/test/BuildMicrobenchmark.gmk @@ -49,7 +49,6 @@ MICROBENCHMARK_CLASSES := $(MICROBENCHMARK_OUTPUT)/classes MICROBENCHMARK_JAR_BIN := $(MICROBENCHMARK_OUTPUT)/jar MICROBENCHMARK_TOOLS_CLASSES := $(MICROBENCHMARK_OUTPUT)/tools-classes -MICROBENCHMARK_INDIFY_DONE := $(MICROBENCHMARK_CLASSES)/_indify.marker JMH_UNPACKED_DIR := $(MICROBENCHMARK_OUTPUT)/jmh_jars JMH_UNPACKED_JARS_DONE := $(JMH_UNPACKED_DIR)/_unpacked.marker @@ -71,17 +70,6 @@ MICROBENCHMARK_MANIFEST := Build: $(FULL_VERSION)\n\ \nJMH-Version: $(JMH_VERSION)\n\ \nName: OpenJDK Microbenchmark Suite -#### Compile Indify tool - -$(eval $(call SetupJavaCompilation, BUILD_INDIFY, \ - TARGET_RELEASE := $(TARGET_RELEASE_BOOTJDK), \ - SRC := $(TOPDIR)/test/jdk/java/lang/invoke, \ - INCLUDE_FILES := indify/Indify.java, \ - DISABLED_WARNINGS := this-escape rawtypes serial options, \ - BIN := $(MICROBENCHMARK_TOOLS_CLASSES), \ - JAVAC_FLAGS := -XDstringConcat=inline -Xprefer:newer, \ -)) - #### Compile Targets # Building microbenchmark requires the jdk.unsupported and java.management modules. @@ -124,14 +112,6 @@ $(eval $(call SetupJavaCompilation, BUILD_JDK_MICROBENCHMARK, \ $(BUILD_JDK_MICROBENCHMARK): $(JMH_COMPILE_JARS) -# Run Indify -$(MICROBENCHMARK_INDIFY_DONE): $(BUILD_INDIFY) $(BUILD_JDK_MICROBENCHMARK) - $(call LogWarn, Running Indify on microbenchmark classes) - $(JAVA_SMALL) -cp $(MICROBENCHMARK_TOOLS_CLASSES) \ - indify.Indify --overwrite $(MICROBENCHMARK_CLASSES) \ - $(LOG_DEBUG) 2>&1 - $(TOUCH) $@ - # Unpacking dependencies for inclusion in the benchmark JARs $(JMH_UNPACKED_JARS_DONE): $(JMH_RUNTIME_JARS) $(RM) -r $(JMH_UNPACKED_DIR) @@ -144,8 +124,7 @@ $(JMH_UNPACKED_JARS_DONE): $(JMH_RUNTIME_JARS) # Create benchmarks JAR file with benchmarks for both the old and new JDK $(eval $(call SetupJarArchive, BUILD_JDK_JAR, \ - DEPENDENCIES := $(BUILD_JDK_MICROBENCHMARK) $(JMH_UNPACKED_JARS_DONE) \ - $(MICROBENCHMARK_INDIFY_DONE), \ + DEPENDENCIES := $(BUILD_JDK_MICROBENCHMARK) $(JMH_UNPACKED_JARS_DONE), \ SRCS := $(MICROBENCHMARK_CLASSES) $(JMH_UNPACKED_DIR), \ BIN := $(MICROBENCHMARK_JAR_BIN), \ SUFFIXES := .*, \ diff --git a/test/micro/org/openjdk/bench/java/lang/invoke/CallSiteSetTarget.java b/test/micro/org/openjdk/bench/java/lang/invoke/CallSiteSetTarget.java deleted file mode 100644 index 965c0713207..00000000000 --- a/test/micro/org/openjdk/bench/java/lang/invoke/CallSiteSetTarget.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ -package org.openjdk.bench.java.lang.invoke; - -import org.openjdk.jmh.annotations.Benchmark; -import org.openjdk.jmh.annotations.BenchmarkMode; -import org.openjdk.jmh.annotations.Fork; -import org.openjdk.jmh.annotations.Measurement; -import org.openjdk.jmh.annotations.Mode; -import org.openjdk.jmh.annotations.OutputTimeUnit; -import org.openjdk.jmh.annotations.Scope; -import org.openjdk.jmh.annotations.Setup; -import org.openjdk.jmh.annotations.State; -import org.openjdk.jmh.annotations.TearDown; -import org.openjdk.jmh.annotations.Warmup; - -import java.lang.invoke.CallSite; -import java.lang.invoke.MethodHandle; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.MethodType; -import java.lang.invoke.MutableCallSite; -import java.lang.invoke.VolatileCallSite; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicBoolean; - -/** - * This benchmark evaluates INDY performance under dynamic target updates. - */ -@BenchmarkMode(Mode.AverageTime) -@OutputTimeUnit(TimeUnit.NANOSECONDS) -@State(Scope.Thread) -@Warmup(iterations = 10, time = 2, timeUnit = TimeUnit.SECONDS) -@Measurement(iterations = 5, time = 2, timeUnit = TimeUnit.SECONDS) -@Fork(3) -public class CallSiteSetTarget { - - /* - * Implementation notes: - * - This test makes sense for mutable and volatile call sites only - * - Multiple threads are calling the same callsite, and invalidator thread tries to swap target on the fly. - * - Additional baseline includes "raw" test, calling callsite's MH directly - */ - - private static volatile CallSite cs; - - private static MethodHandle doCall1; - private static MethodHandle doCall2; - - static { - try { - doCall1 = MethodHandles.lookup().findVirtual(CallSiteSetTarget.class, "call1", MethodType.methodType(int.class)); - doCall2 = MethodHandles.lookup().findVirtual(CallSiteSetTarget.class, "call2", MethodType.methodType(int.class)); - cs = new MutableCallSite(doCall1); - } catch (NoSuchMethodException | IllegalAccessException e) { - throw new IllegalStateException(e); - } - } - - private int i1; - private int i2; - - public int call1() { - return i1++; - } - - public int call2() { - return i2++; - } - - @Benchmark - public int baselineRaw() throws Throwable { - return (int) cs.getTarget().invokeExact(this); - } - - @Benchmark - public int testMutable() throws Throwable { - return (int) INDY_Mutable().invokeExact(this); - } - - @Benchmark - public int testVolatile() throws Throwable { - return (int) INDY_Volatile().invokeExact(this); - } - - /* =========================== INDY TRAMPOLINES ============================== */ - - private static MethodType MT_bsm() { - shouldNotCallThis(); - return MethodType.methodType(CallSite.class, MethodHandles.Lookup.class, String.class, MethodType.class); - } - - private static MethodHandle MH_bsm_Mutable() throws ReflectiveOperationException { - shouldNotCallThis(); - return MethodHandles.lookup().findStatic(MethodHandles.lookup().lookupClass(), "bsm_Mutable", MT_bsm()); - } - - private static MethodHandle MH_bsm_Volatile() throws ReflectiveOperationException { - shouldNotCallThis(); - return MethodHandles.lookup().findStatic(MethodHandles.lookup().lookupClass(), "bsm_Volatile", MT_bsm()); - } - - private static MethodHandle INDY_Mutable() throws Throwable { - shouldNotCallThis(); - return ((CallSite) MH_bsm_Mutable().invoke(MethodHandles.lookup(), "doCall1", MethodType.methodType(int.class, CallSiteSetTarget.class))).dynamicInvoker(); - } - - private static MethodHandle INDY_Volatile() throws Throwable { - shouldNotCallThis(); - return ((CallSite) MH_bsm_Volatile().invoke(MethodHandles.lookup(), "doCall1", MethodType.methodType(int.class, CallSiteSetTarget.class))).dynamicInvoker(); - } - - public static CallSite bsm_Mutable(MethodHandles.Lookup lookup, String name, MethodType type) { - synchronized (CallSiteSetTarget.class) { - if (cs == null) - cs = new MutableCallSite(doCall1); - return cs; - } - } - - public static CallSite bsm_Volatile(MethodHandles.Lookup lookup, String name, MethodType type) { - synchronized (CallSiteSetTarget.class) { - if (cs == null) - cs = new VolatileCallSite(doCall1); - return cs; - } - } - - private static void shouldNotCallThis() { - // if this gets called, the transformation has not taken place - throw new AssertionError("this code should be statically transformed away by Indify"); - } - - /* =========================== INVALIDATE LOGIC ============================== */ - - private final static Invalidator invalidator = new Invalidator(); - - @Setup - public void setup() { - invalidator.start(); - } - - @TearDown - public void tearDown() throws InterruptedException { - invalidator.stop(); - } - - public static class Invalidator implements Runnable { - - private final long period = Integer.getInteger("period", 1000); - - private final AtomicBoolean started = new AtomicBoolean(); - private volatile Thread thread; - - @Override - public void run() { - try { - while(!Thread.interrupted()) { - if (cs != null) { - cs.setTarget(doCall1); - } - TimeUnit.MICROSECONDS.sleep(period); - - if (cs != null) { - cs.setTarget(doCall2); - } - TimeUnit.MICROSECONDS.sleep(period); - } - } catch (InterruptedException e) { - // do nothing - } - } - - public void start() { - if (started.compareAndSet(false, true)) { - thread = new Thread(this); - thread.setPriority(Thread.MAX_PRIORITY); - thread.start(); - } - } - - public void stop() { - if (thread != null) { - thread.interrupt(); - try { - thread.join(); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - } - started.set(false); - } - } - } - -} diff --git a/test/micro/org/openjdk/bench/java/lang/invoke/CallSiteSetTargetSelf.java b/test/micro/org/openjdk/bench/java/lang/invoke/CallSiteSetTargetSelf.java deleted file mode 100644 index ac51b4a80e7..00000000000 --- a/test/micro/org/openjdk/bench/java/lang/invoke/CallSiteSetTargetSelf.java +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ -package org.openjdk.bench.java.lang.invoke; - -import org.openjdk.jmh.annotations.Benchmark; -import org.openjdk.jmh.annotations.BenchmarkMode; -import org.openjdk.jmh.annotations.Fork; -import org.openjdk.jmh.annotations.Measurement; -import org.openjdk.jmh.annotations.Mode; -import org.openjdk.jmh.annotations.OutputTimeUnit; -import org.openjdk.jmh.annotations.Scope; -import org.openjdk.jmh.annotations.State; -import org.openjdk.jmh.annotations.Warmup; - -import java.lang.invoke.CallSite; -import java.lang.invoke.MethodHandle; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.MethodType; -import java.lang.invoke.MutableCallSite; -import java.lang.invoke.VolatileCallSite; -import java.util.concurrent.TimeUnit; - -/** - * This benchmark evaluates INDY performance under dynamic target updates. - */ -@BenchmarkMode(Mode.AverageTime) -@OutputTimeUnit(TimeUnit.NANOSECONDS) -@State(Scope.Thread) -@Warmup(iterations = 10, time = 2, timeUnit = TimeUnit.SECONDS) -@Measurement(iterations = 5, time = 2, timeUnit = TimeUnit.SECONDS) -@Fork(3) -public class CallSiteSetTargetSelf { - - /* - * Implementation notes: - * - This test makes sense for mutable and volatile call sites only - * - Multiple threads are calling the same callsite, and each call is swapping the target. - * - Additional baseline includes "raw" test, calling callsite's MH directly - * - * - NOTE: invalidating shared target callsite is very bad with multiple threads. - * I.e. this test is inherently non-scalable. - */ - - private static CallSite cs; - - private static MethodHandle doCall1; - private static MethodHandle doCall2; - - static { - try { - doCall1 = MethodHandles.lookup().findVirtual(CallSiteSetTargetSelf.class, "call1", MethodType.methodType(int.class)); - doCall2 = MethodHandles.lookup().findVirtual(CallSiteSetTargetSelf.class, "call2", MethodType.methodType(int.class)); - cs = new MutableCallSite(doCall1); - } catch (NoSuchMethodException | IllegalAccessException e) { - throw new IllegalStateException(e); - } - } - - private int i1; - private int i2; - - public int call1() { - cs.setTarget(doCall2); - return i1++; - } - - public int call2() { - cs.setTarget(doCall1); - return i2++; - } - - @Benchmark - public int baselineRaw() throws Throwable { - return (int) cs.getTarget().invokeExact(this); - } - - @Benchmark - public int testMutable() throws Throwable { - return (int) INDY_Mutable().invokeExact(this); - } - - @Benchmark - public int testVolatile() throws Throwable { - return (int) INDY_Volatile().invokeExact(this); - } - - /* =========================== INDY TRAMPOLINES ============================== */ - - private static MethodType MT_bsm() { - shouldNotCallThis(); - return MethodType.methodType(CallSite.class, MethodHandles.Lookup.class, String.class, MethodType.class); - } - - private static MethodHandle MH_bsm_Mutable() throws ReflectiveOperationException { - shouldNotCallThis(); - return MethodHandles.lookup().findStatic(MethodHandles.lookup().lookupClass(), "bsm_Mutable", MT_bsm()); - } - - private static MethodHandle MH_bsm_Volatile() throws ReflectiveOperationException { - shouldNotCallThis(); - return MethodHandles.lookup().findStatic(MethodHandles.lookup().lookupClass(), "bsm_Volatile", MT_bsm()); - } - - private static MethodHandle INDY_Mutable() throws Throwable { - shouldNotCallThis(); - return ((CallSite) MH_bsm_Mutable().invoke(MethodHandles.lookup(), "doCall1", MethodType.methodType(int.class, CallSiteSetTargetSelf.class))).dynamicInvoker(); - } - - private static MethodHandle INDY_Volatile() throws Throwable { - shouldNotCallThis(); - return ((CallSite) MH_bsm_Volatile().invoke(MethodHandles.lookup(), "doCall1", MethodType.methodType(int.class, CallSiteSetTargetSelf.class))).dynamicInvoker(); - } - - public static CallSite bsm_Mutable(MethodHandles.Lookup lookup, String name, MethodType type) { - synchronized (CallSiteSetTarget.class) { - if (cs == null) - cs = new MutableCallSite(doCall1); - return cs; - } - } - - public static CallSite bsm_Volatile(MethodHandles.Lookup lookup, String name, MethodType type) { - synchronized (CallSiteSetTarget.class) { - if (cs == null) - cs = new VolatileCallSite(doCall1); - return cs; - } - } - - private static void shouldNotCallThis() { - // if this gets called, the transformation has not taken place - throw new AssertionError("this code should be statically transformed away by Indify"); - } - -} diff --git a/test/micro/org/openjdk/bench/java/lang/invoke/CallSiteStable.java b/test/micro/org/openjdk/bench/java/lang/invoke/CallSiteStable.java deleted file mode 100644 index cf7c4f487f1..00000000000 --- a/test/micro/org/openjdk/bench/java/lang/invoke/CallSiteStable.java +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ -package org.openjdk.bench.java.lang.invoke; - -import org.openjdk.jmh.annotations.Benchmark; -import org.openjdk.jmh.annotations.BenchmarkMode; -import org.openjdk.jmh.annotations.Fork; -import org.openjdk.jmh.annotations.Measurement; -import org.openjdk.jmh.annotations.Mode; -import org.openjdk.jmh.annotations.OutputTimeUnit; -import org.openjdk.jmh.annotations.Scope; -import org.openjdk.jmh.annotations.State; -import org.openjdk.jmh.annotations.Warmup; - -import java.lang.invoke.ConstantCallSite; -import java.lang.invoke.MethodHandle; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.MethodType; -import java.lang.invoke.MutableCallSite; -import java.lang.invoke.VolatileCallSite; -import java.util.concurrent.TimeUnit; - -/** - * This benchmark evaluates INDY performance when call sites are not changed. - */ -@BenchmarkMode(Mode.AverageTime) -@OutputTimeUnit(TimeUnit.NANOSECONDS) -@State(Scope.Thread) -@Warmup(iterations = 10, time = 1, timeUnit = TimeUnit.SECONDS) -@Measurement(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS) -@Fork(3) -public class CallSiteStable { - - /* - * Implementation notes: - * - Test is calling simple method via INDY - * - Additional baseline includes "raw" test, calling target method directly in virtual and static modes - */ - - private static java.lang.invoke.CallSite cs; - - private static MethodHandle doCallMH; - - static { - try { - doCallMH = MethodHandles.lookup().findVirtual(CallSiteStable.class, "doCall", MethodType.methodType(int.class, int.class)); - } catch (NoSuchMethodException | IllegalAccessException e) { - throw new IllegalStateException(e); - } - } - - private int i; - - public int doCall(int value) { - return value + 1; - } - - public static int doCallStatic(int value) { - return value + 1; - } - - @Benchmark - public void baselineVirtual() { - i = doCall(i); - } - - @Benchmark - public void baselineStatic() { - i = doCallStatic(i); - } - - @Benchmark - public void testConstant() throws Throwable { - i = (int) INDY_Constant().invokeExact(this, i); - } - - @Benchmark - public void testMutable() throws Throwable { - i = (int) INDY_Mutable().invokeExact(this, i); - } - - @Benchmark - public void testVolatile() throws Throwable { - i = (int) INDY_Volatile().invokeExact(this, i); - } - - /* =========================== INDY TRAMPOLINES ============================== */ - - private static MethodType MT_bsm() { - shouldNotCallThis(); - return MethodType.methodType(java.lang.invoke.CallSite.class, MethodHandles.Lookup.class, String.class, MethodType.class); - } - - private static MethodHandle MH_bsm_Constant() throws ReflectiveOperationException { - shouldNotCallThis(); - return MethodHandles.lookup().findStatic(MethodHandles.lookup().lookupClass(), "bsm_Constant", MT_bsm()); - } - - private static MethodHandle MH_bsm_Mutable() throws ReflectiveOperationException { - shouldNotCallThis(); - return MethodHandles.lookup().findStatic(MethodHandles.lookup().lookupClass(), "bsm_Mutable", MT_bsm()); - } - - private static MethodHandle MH_bsm_Volatile() throws ReflectiveOperationException { - shouldNotCallThis(); - return MethodHandles.lookup().findStatic(MethodHandles.lookup().lookupClass(), "bsm_Volatile", MT_bsm()); - } - - private static MethodHandle INDY_Constant() throws Throwable { - shouldNotCallThis(); - return ((java.lang.invoke.CallSite) MH_bsm_Constant().invoke(MethodHandles.lookup(), "doCall", MethodType.methodType(int.class, CallSiteStable.class, int.class))).dynamicInvoker(); - } - private static MethodHandle INDY_Mutable() throws Throwable { - shouldNotCallThis(); - return ((java.lang.invoke.CallSite) MH_bsm_Mutable().invoke(MethodHandles.lookup(), "doCall", MethodType.methodType(int.class, CallSiteStable.class, int.class))).dynamicInvoker(); - } - private static MethodHandle INDY_Volatile() throws Throwable { - shouldNotCallThis(); - return ((java.lang.invoke.CallSite) MH_bsm_Volatile().invoke(MethodHandles.lookup(), "doCall", MethodType.methodType(int.class, CallSiteStable.class, int.class))).dynamicInvoker(); - } - - public static java.lang.invoke.CallSite bsm_Constant(MethodHandles.Lookup lookup, String name, MethodType type) { - synchronized (CallSiteStable.class) { - if (cs == null) - cs = new ConstantCallSite(doCallMH); - return cs; - } - } - - public static java.lang.invoke.CallSite bsm_Mutable(MethodHandles.Lookup lookup, String name, MethodType type) { - synchronized (CallSiteStable.class) { - if (cs == null) - cs = new MutableCallSite(doCallMH); - return cs; - } - } - - public static java.lang.invoke.CallSite bsm_Volatile(MethodHandles.Lookup lookup, String name, MethodType type) { - synchronized (CallSiteStable.class) { - if (cs == null) - cs = new VolatileCallSite(doCallMH); - return cs; - } - } - - private static void shouldNotCallThis() { - // if this gets called, the transformation has not taken place - throw new AssertionError("this code should be statically transformed away by Indify"); - } - -} From 1d892150e8728733cc72f2286826911c19e9b2fa Mon Sep 17 00:00:00 2001 From: Claes Redestad Date: Thu, 31 Oct 2024 22:30:25 +0000 Subject: [PATCH 058/159] 8343345: Use -jvmArgsPrepend when running microbenchmarks in RunTests.gmk Reviewed-by: liach, ihse, erikj --- make/RunTests.gmk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make/RunTests.gmk b/make/RunTests.gmk index bfd55394b2f..2d6392d783b 100644 --- a/make/RunTests.gmk +++ b/make/RunTests.gmk @@ -604,7 +604,7 @@ define SetupRunMicroTestBody $1_JMH_JVM_ARGS += $$(MICRO_VM_OPTIONS) $$(MICRO_JAVA_OPTIONS) endif - $1_MICRO_VM_OPTIONS := -jvmArgs $(call ShellQuote,$$($1_JMH_JVM_ARGS)) + $1_MICRO_VM_OPTIONS := -jvmArgsPrepend $(call ShellQuote,$$($1_JMH_JVM_ARGS)) ifneq ($$(MICRO_ITER), ) $1_MICRO_ITER := -i $$(MICRO_ITER) From baecafe316ab0064c07192968a2e19a2a77f8340 Mon Sep 17 00:00:00 2001 From: J9 Build Date: Fri, 1 Nov 2024 03:19:40 +0000 Subject: [PATCH 059/159] Update OPENJDK_TAG to merged level jdk-24+22 Signed-off-by: J9 Build --- closed/openjdk-tag.gmk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/closed/openjdk-tag.gmk b/closed/openjdk-tag.gmk index b74bee0fad4..3b07874aee3 100644 --- a/closed/openjdk-tag.gmk +++ b/closed/openjdk-tag.gmk @@ -1 +1 @@ -OPENJDK_TAG := jdk-24+21 +OPENJDK_TAG := jdk-24+22 From 8b407ad2fd2c37496af95a064719033d1c016970 Mon Sep 17 00:00:00 2001 From: Christian Hagedorn Date: Fri, 1 Nov 2024 06:51:34 +0000 Subject: [PATCH 060/159] 8343380: C2: assert(iff->in(1)->is_OpaqueNotNull()) failed: must be OpaqueNotNull Reviewed-by: thartmann, kvn --- .../TestCanReduceCheckUsersDifferentIfs.java | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 test/hotspot/jtreg/compiler/escapeAnalysis/TestCanReduceCheckUsersDifferentIfs.java diff --git a/test/hotspot/jtreg/compiler/escapeAnalysis/TestCanReduceCheckUsersDifferentIfs.java b/test/hotspot/jtreg/compiler/escapeAnalysis/TestCanReduceCheckUsersDifferentIfs.java new file mode 100644 index 00000000000..b71f9b2cef2 --- /dev/null +++ b/test/hotspot/jtreg/compiler/escapeAnalysis/TestCanReduceCheckUsersDifferentIfs.java @@ -0,0 +1,107 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +/* + * @test + * @bug 8343380 + * @summary Test that can_reduce_check_users() can handle different If nodes and that we bail out properly if it's not + * an actual IfNode. + * @run main/othervm -XX:CompileCommand=compileonly,compiler.escapeAnalysis.TestCanReduceCheckUsersDifferentIfs::test* + * -Xcomp compiler.escapeAnalysis.TestCanReduceCheckUsersDifferentIfs + */ + +package compiler.escapeAnalysis; + +public class TestCanReduceCheckUsersDifferentIfs { + static int iFld, iFld2; + static boolean flag; + + public static void main(String[] args) { + // Make sure classes are loaded. + new B(); + new C(); + testParsePredicate(); + testOuterStripMinedLoopEnd(); + } + + static void testOuterStripMinedLoopEnd() { + // (1) phi1 for a: phi(CheckCastPP(B), CheckCastPP(c)) with type A:NotNull + A a = flag ? new B() : new C(); + + // (4) Loop removed in PhaseIdealLoop before EA and we know that x == 77. + int x = 77; + int y = 0; + do { + x--; + y++; + } while (x > 0); + + // (L) + for (int i = 0; i < 100; i++) { + iFld += 34; + } + // (6) CastPP(phi1) ends up at IfFalse of OuterStripMinedLoopEnd of loop (L). + // (7) EA tries to reduce phi1(CheckCastPP(B), CheckCastPP(c)) and looks at + // OuterStripMinedLoopEnd and asserts that if it's not an IfNode that it has + // an OpaqueNotNull which obviously is not the case and the assert fails. + + // (5) Found to be false after PhaseIdealLoop before EA and is folded away. + if (y == 76) { + a = (B) a; // (2) a = CheckCastPP(phi1) + } + // (3) phi2 for a: phi(if, else) = phi(CheckCastPP(phi1), phi1) + // phi(CheckCastPP(phi1), phi1) is replaced in PhiNode::Ideal with a CastPP: + // a = CastPP(phi1) with type A:NotNull + iFld2 = a.iFld; + } + + // Same as testOuterStripMinedLoopEnd() but we find in (7) a ParsePredicate from the + // removed loop (L) which also does not have an OpaqueNotNull and the assert fails. + static void testParsePredicate() { + A a = flag ? new B() : new C(); + + int x = 77; + int y = 0; + // (L) + do { + x--; + y++; + } while (x > 0); + + if (y == 76) { + a = (B) a; + } + iFld2 = a.iFld; + } +} + +class A { + int iFld; +} + +class B extends A { +} + +class C extends A { +} From afc4186dfca2c99b3c0702f51d3a559d1dc5b654 Mon Sep 17 00:00:00 2001 From: Aleksey Shipilev Date: Fri, 1 Nov 2024 07:19:51 +0000 Subject: [PATCH 061/159] 8343379: [BACKOUT] 8343190 GHA: Try building JTReg several times Reviewed-by: erikj, ihse --- .github/actions/build-jtreg/action.yml | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/.github/actions/build-jtreg/action.yml b/.github/actions/build-jtreg/action.yml index 3e5ced8a7f8..3abfa260c17 100644 --- a/.github/actions/build-jtreg/action.yml +++ b/.github/actions/build-jtreg/action.yml @@ -52,24 +52,8 @@ runs: - name: 'Build JTReg' run: | - # Try building JTReg several times, backing off exponentially on failure. - # ~500 seconds in total should be enough to capture most of the transient - # failures. - for I in `seq 0 8`; do - rm -rf build/images/jtreg - bash make/build.sh --jdk "$JAVA_HOME_17_X64" && break - S=$(( 2 ** $I )) - echo "Failure. Waiting $S seconds before retrying" - sleep $S - done - - # Check if build was successful - if [ ! -d build/images/jtreg ]; then - echo "Build failed" - exit 1; - fi - - # Move files to the proper locations + # Build JTReg and move files to the proper locations + bash make/build.sh --jdk "$JAVA_HOME_17_X64" mkdir ../installed mv build/images/jtreg/* ../installed working-directory: jtreg/src From 4859e1252e9313d1ed66da272aa9246acd5f8574 Mon Sep 17 00:00:00 2001 From: Kevin Walls Date: Fri, 1 Nov 2024 08:35:28 +0000 Subject: [PATCH 062/159] 8343378: Exceptions in javax/management DeadLockTest.java do not cause test failure Reviewed-by: amenkov --- .../mandatory/connection/DeadLockTest.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/test/jdk/javax/management/remote/mandatory/connection/DeadLockTest.java b/test/jdk/javax/management/remote/mandatory/connection/DeadLockTest.java index e9f060248ec..0526f86b4a1 100644 --- a/test/jdk/javax/management/remote/mandatory/connection/DeadLockTest.java +++ b/test/jdk/javax/management/remote/mandatory/connection/DeadLockTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -46,21 +46,23 @@ public class DeadLockTest { public static void main(String[] args) { System.out.println(">>> test on a client notification deadlock."); - boolean ok = true; + boolean fail = false; for (int i = 0; i < protocols.length; i++) { try { test(protocols[i]); } catch (Exception e) { + fail = true; // any one protocol failure, fails the test System.out.println(">>> Test failed for " + protocols[i]); e.printStackTrace(System.out); } } - + if (fail) { + throw new RuntimeException("FAILED"); + } System.out.println(">>> Test passed"); } - private static void test(String proto) - throws Exception { + private static void test(String proto) throws Exception { System.out.println(">>> Test for protocol " + proto); JMXServiceURL u = null; @@ -78,6 +80,7 @@ private static void test(String proto) server = JMXConnectorServerFactory.newJMXConnectorServer(u, env, mbs); } catch (MalformedURLException e) { System.out.println(">>> Skipping unsupported URL " + proto); + return; // skip testing this protocol } server.start(); @@ -101,10 +104,10 @@ private static void test(String proto) // which should be closed by the server. conn.getDefaultDomain(); - // allow the listner to have time to work + // allow the listener to have time to work Thread.sleep(100); - // get a closed notif, should no block. + // get a closed notif, should not block. client.close(); Thread.sleep(100); From cc4b42b8dbe5df7223d87477d47ca1ed167c5a19 Mon Sep 17 00:00:00 2001 From: Andrey Turbanov Date: Fri, 1 Nov 2024 11:47:00 +0000 Subject: [PATCH 063/159] 8343194: Avoid redundant Hashtable.containsKey call in CodeSource.readObject Reviewed-by: mullan --- .../share/classes/java/security/CodeSource.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/java.base/share/classes/java/security/CodeSource.java b/src/java.base/share/classes/java/security/CodeSource.java index b1cf0bf3c7d..821964cded5 100644 --- a/src/java.base/share/classes/java/security/CodeSource.java +++ b/src/java.base/share/classes/java/security/CodeSource.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -556,7 +556,6 @@ private void writeObject(java.io.ObjectOutputStream oos) private void readObject(java.io.ObjectInputStream ois) throws IOException, ClassNotFoundException { - CertificateFactory cf; Hashtable cfs = null; List certList = null; @@ -577,10 +576,8 @@ private void readObject(java.io.ObjectInputStream ois) // read the certificate type, and instantiate a certificate // factory of that type (reuse existing factory if possible) String certType = ois.readUTF(); - if (cfs.containsKey(certType)) { - // reuse certificate factory - cf = cfs.get(certType); - } else { + CertificateFactory cf = cfs.get(certType); + if (cf == null) { // create new certificate factory try { cf = CertificateFactory.getInstance(certType); From 122637e5843dbdb85471d3e9dd3f7e171de542da Mon Sep 17 00:00:00 2001 From: Julian Date: Mon, 28 Oct 2024 13:23:44 -0400 Subject: [PATCH 064/159] Set AIX executables to have exempt SED status Customers complained IBM SDK8 has this status, but Semeru Runtimes don't, such that they cannot run Semeru Runtimes on their systems when migrating from IBM SDK8. This is a temporary fix without any other impacts, while we are investigating a complete solution for a larger issue (HugePages are not used for codeCache even though proper -Xlp option is specified). Signed-off-by: Julian --- make/autoconf/flags-ldflags.m4 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/make/autoconf/flags-ldflags.m4 b/make/autoconf/flags-ldflags.m4 index 6facd34081c..70edad4a92a 100644 --- a/make/autoconf/flags-ldflags.m4 +++ b/make/autoconf/flags-ldflags.m4 @@ -27,7 +27,7 @@ # # =========================================================================== -# (c) Copyright IBM Corp. 2019, 2019 All Rights Reserved +# (c) Copyright IBM Corp. 2019, 2024 All Rights Reserved # =========================================================================== AC_DEFUN([FLAGS_SETUP_LDFLAGS], @@ -80,12 +80,12 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER], UTIL_REQUIRE_PROGS(LLD, lld) fi if test "x$OPENJDK_TARGET_OS" = xaix; then - BASIC_LDFLAGS="-Wl,-b64 -Wl,-brtl -Wl,-bnolibpath -Wl,-bnoexpall \ + BASIC_LDFLAGS="-Wl,-b64 -Wl,-brtl -Wl,-bnolibpath -Wl,-bnoexpall -Wl,-brwexec_must \ -Wl,-bernotok -Wl,-bdatapsize:64k -Wl,-btextpsize:64k -Wl,-bstackpsize:64k" BASIC_LDFLAGS_JVM_ONLY="$BASIC_LDFLAGS_JVM_ONLY -Wl,-lC_r -Wl,-bbigtoc" fi elif test "x$TOOLCHAIN_TYPE" = xxlc; then - BASIC_LDFLAGS="-b64 -brtl -bnolibpath -bnoexpall -bernotok -btextpsize:64K \ + BASIC_LDFLAGS="-b64 -brtl -bnolibpath -bnoexpall -bernotok -brwexec_must -btextpsize:64K \ -bdatapsize:64K -bstackpsize:64K" # libjvm.so has gotten too large for normal TOC size; compile with qpic=large and link with bigtoc BASIC_LDFLAGS_JVM_ONLY="-Wl,-lC_r -bbigtoc" From e89685eb1d27c45bc7a5c4fc507467934f528e6f Mon Sep 17 00:00:00 2001 From: Fernando Guallini Date: Fri, 1 Nov 2024 13:11:56 +0000 Subject: [PATCH 065/159] 8340116: test/jdk/sun/security/tools/jarsigner/PreserveRawManifestEntryAndDigest.java can fail due to regex Reviewed-by: mullan --- .../tools/jarsigner/PreserveRawManifestEntryAndDigest.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/test/jdk/sun/security/tools/jarsigner/PreserveRawManifestEntryAndDigest.java b/test/jdk/sun/security/tools/jarsigner/PreserveRawManifestEntryAndDigest.java index 1217788eef0..5d946945c15 100644 --- a/test/jdk/sun/security/tools/jarsigner/PreserveRawManifestEntryAndDigest.java +++ b/test/jdk/sun/security/tools/jarsigner/PreserveRawManifestEntryAndDigest.java @@ -243,9 +243,8 @@ String[] fromFirstToSecondEmptyLine(String[] lines) { * @see "concise_jarsigner.sh" */ String[] getExpectedJarSignerOutputUpdatedContentNotValidatedBySignerA( - String jarFilename, String digestalg, String firstAddedFilename, String secondAddedFilename) { - final String TS = ".{28,29}"; // matches a timestamp + final String TS = ".{28,34}"; // matches a timestamp List expLines = new ArrayList<>(); expLines.add("s k *\\d+ " + TS + " META-INF/MANIFEST[.]MF"); expLines.add(" *\\d+ " + TS + " META-INF/B[.]SF"); @@ -347,7 +346,6 @@ String test(String name, assertMatchByLines( fromFirstToSecondEmptyLine(o.getStdout().split("\\R")), getExpectedJarSignerOutputUpdatedContentNotValidatedBySignerA( - jarFilename4, digestalg, firstAddedFilename, secondAddedFilename)); // double-check reading the files with a verifying JarFile From 3419ea57c739eb7e0537d763e7c6360f21646cb4 Mon Sep 17 00:00:00 2001 From: Justin Lu Date: Fri, 1 Nov 2024 16:34:53 +0000 Subject: [PATCH 066/159] 8343236: Use @apiNote and @implSpec in j.util.Currency Reviewed-by: iris, lancea, bpb, naoto --- src/java.base/share/classes/java/util/Currency.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/java.base/share/classes/java/util/Currency.java b/src/java.base/share/classes/java/util/Currency.java index b11b774e614..0bc86f3281e 100644 --- a/src/java.base/share/classes/java/util/Currency.java +++ b/src/java.base/share/classes/java/util/Currency.java @@ -103,8 +103,8 @@ * and/or minor unit are encountered, those entries are ignored and the remainder * of entries in file are processed. * - *

    - * It is recommended to use {@link java.math.BigDecimal} class while dealing + * @apiNote + * It is recommended to use the {@link java.math.BigDecimal} class while dealing * with {@code Currency} or monetary values as it provides better handling of floating * point numbers and their operations. * @@ -521,7 +521,8 @@ public String getCurrencyCode() { * {@linkplain Locale##def_locale_extension Unicode extensions}, * the symbol returned from this method reflects * the value specified with that extension. - *

    + * + * @implSpec * This is equivalent to calling * {@link #getSymbol(Locale) * getSymbol(Locale.getDefault(Locale.Category.DISPLAY))}. @@ -621,7 +622,8 @@ public String getNumericCodeAsString() { * the default {@link Locale.Category#DISPLAY DISPLAY} locale. * If there is no suitable display name found * for the default locale, the ISO 4217 currency code is returned. - *

    + * + * @implSpec * This is equivalent to calling * {@link #getDisplayName(Locale) * getDisplayName(Locale.getDefault(Locale.Category.DISPLAY))}. From 12c27e2ac2d7da40bf24cdbc1187b716ebd3d51c Mon Sep 17 00:00:00 2001 From: Kostas Tsiounis Date: Fri, 1 Nov 2024 13:25:31 -0400 Subject: [PATCH 067/159] Fix names of algorithms printed in debug trace The parameter used to indicate the name of the algorithm, whose native implementation's availability is being checked, was incorrectly set to the provider name, leading to incorrect debug trace messages. Signed-off-by: Kostas Tsiounis --- src/java.base/share/classes/sun/security/ec/SunEC.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/java.base/share/classes/sun/security/ec/SunEC.java b/src/java.base/share/classes/sun/security/ec/SunEC.java index b2c8da66aab..e3d8f195797 100644 --- a/src/java.base/share/classes/sun/security/ec/SunEC.java +++ b/src/java.base/share/classes/sun/security/ec/SunEC.java @@ -65,30 +65,30 @@ public final class SunEC extends Provider { /* The property 'jdk.nativeEC' is used to control enablement of the native * ECDH implementation. */ - private static final boolean useNativeECDH = NativeCrypto.isAlgorithmEnabled("jdk.nativeEC", "SunEC"); + private static final boolean useNativeECDH = NativeCrypto.isAlgorithmEnabled("jdk.nativeEC", "ECDH"); /* The property 'jdk.nativeECKeyGen' is used to control enablement of the native * ECKeyGeneration implementation. * OpenSSL 1.1.0 or above is required for EC key generation support. */ - private static final boolean useNativeECKeyGen = NativeCrypto.isAlgorithmEnabled("jdk.nativeECKeyGen", "SunEC"); + private static final boolean useNativeECKeyGen = NativeCrypto.isAlgorithmEnabled("jdk.nativeECKeyGen", "ECKeyGen"); /* The property 'jdk.nativeECDSA' is used to control enablement of the native * ECDSA signature implementation. */ - private static final boolean useNativeECDSA = NativeCrypto.isAlgorithmEnabled("jdk.nativeECDSA", "SunEC"); + private static final boolean useNativeECDSA = NativeCrypto.isAlgorithmEnabled("jdk.nativeECDSA", "ECDSA"); /* The property 'jdk.nativeXDHKeyAgreement' is used to control enablement of the native * XDH key agreement. XDH key agreement is only supported in OpenSSL 1.1.1 and above. */ private static final boolean useNativeXDHKeyAgreement = - NativeCrypto.isAlgorithmEnabled("jdk.nativeXDHKeyAgreement", "SunEC"); + NativeCrypto.isAlgorithmEnabled("jdk.nativeXDHKeyAgreement", "XDHKeyAgreement"); /* The property 'jdk.nativeXDHKeyGen' is used to control enablement of the native * XDH key generation. XDH key generation is only supported in OpenSSL 1.1.1 and above. */ private static final boolean useNativeXDHKeyGen = - NativeCrypto.isAlgorithmEnabled("jdk.nativeXDHKeyGen", "SunEC"); + NativeCrypto.isAlgorithmEnabled("jdk.nativeXDHKeyGen", "XDHKeyGen"); private static class ProviderServiceA extends ProviderService { ProviderServiceA(Provider p, String type, String algo, String cn, From 18a203f5a4ceb287ec2b98a71a6338edc64cf352 Mon Sep 17 00:00:00 2001 From: Fernando Guallini Date: Fri, 1 Nov 2024 17:52:20 +0000 Subject: [PATCH 068/159] 8342183: Update tests to use stronger algorithms and keys Reviewed-by: rhalade, ascarpino --- .../crypto/provider/CICO/CICOSkipTest.java | 2 +- .../KeyWrap/TestCipherKeyWrapperTest.java | 6 +-- .../Cipher/PBE/TestCipherPBECons.java | 2 +- .../KeyAgreement/DHKeyAgreement2.java | 20 +++++--- .../KeyAgreement/SupportedDHParamGens.java | 30 +++++++++--- .../SupportedDHParamGensLongKey.java | 1 + .../KeyGenerator/TestExplicitKeyLength.java | 4 +- .../crypto/provider/Mac/HmacSaltLengths.java | 4 ++ .../com/sun/crypto/provider/Mac/MacClone.java | 5 +- .../security/KeyStore/TestKeyStoreEntry.java | 4 +- .../security/MessageDigest/ByteBuffers.java | 5 +- .../java/security/Signature/ByteBuffers.java | 11 +++-- .../Signature/SignWithOutputBuffer.java | 17 ++++--- .../Signature/SignatureGetInstance.java | 11 +++-- .../TestInitSignWithMyOwnRandom.java | 17 +++++-- .../Signature/VerifyRangeCheckOverflow.java | 2 +- .../jdk/java/security/SignedObject/Chain.java | 2 + test/jdk/java/security/SignedObject/Copy.java | 14 ++++-- test/jdk/javax/crypto/Cipher/ByteBuffers.java | 10 ++-- .../javax/crypto/Cipher/TestGetInstance.java | 28 ++++++----- .../crypto/CipherSpi/DirectBBRemaining.java | 10 ++-- .../crypto/CryptoPermission/AllPermCheck.java | 5 +- .../CryptoPermission/LowercasePermCheck.java | 2 +- .../EncryptedPrivateKeyInfo/GetKeySpec.java | 10 ++-- .../GetKeySpecException.java | 5 +- .../GetKeySpecException2.java | 7 +-- .../GetKeySpecInvalidEncoding.java | 5 +- .../crypto/KeyGenerator/TestGetInstance.java | 9 ++-- test/jdk/javax/crypto/Mac/ByteBuffers.java | 7 ++- .../jdk/javax/crypto/Mac/TestGetInstance.java | 9 ++-- .../pkcs/pkcs10/PKCS10AttrEncoding.java | 13 +++-- .../sun/security/pkcs/pkcs7/SignerOrder.java | 33 ++++++++----- .../security/rsa/TestKeyPairGenerator.java | 16 ++++-- test/jdk/sun/security/rsa/pss/InitAgain.java | 9 +++- .../security/tools/keytool/KeyToolTest.java | 49 +++++++++++++------ 35 files changed, 259 insertions(+), 125 deletions(-) diff --git a/test/jdk/com/sun/crypto/provider/CICO/CICOSkipTest.java b/test/jdk/com/sun/crypto/provider/CICO/CICOSkipTest.java index 6ccf4c1eedf..d0af93ff646 100644 --- a/test/jdk/com/sun/crypto/provider/CICO/CICOSkipTest.java +++ b/test/jdk/com/sun/crypto/provider/CICO/CICOSkipTest.java @@ -75,7 +75,7 @@ public class CICOSkipTest { "OFB", "OFB64", "PCBC"}; private static final String[] PADDINGS = {"NoPadding", "Pkcs5Padding"}; private static final String[] PBE_ALGOS = {"PBEWithMD5AndDES", - "PBEWithMD5AndDES/CBC/PKCS5Padding"}; + "PBEWithMD5AndDES/CBC/PKCS5Padding", "PBEWithSHA1AndDESede"}; public static void main(String[] args) throws Exception { // how many kinds of padding mode such as PKCS5padding and NoPadding diff --git a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestCipherKeyWrapperTest.java b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestCipherKeyWrapperTest.java index 82794de2582..2ae0d91d592 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestCipherKeyWrapperTest.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestCipherKeyWrapperTest.java @@ -167,7 +167,8 @@ public static void main(String[] args) throws Exception { test.wrapperPBEKeyTest(provider); // Public and private key wrap test - test.wrapperPublicPriviteKeyTest(provider, publicPrivateAlgos); + test.wrapperPublicPriviteKeyTest(provider, publicPrivateAlgos, "DES"); + test.wrapperPublicPriviteKeyTest(provider, publicPrivateAlgos, "AES"); } private void wrapperAesDESedeKeyTest(String algo, String wrapAlgo, @@ -263,7 +264,7 @@ private void wrapperPBEKeyTest(Provider p) throws InvalidKeySpecException, } } - private void wrapperPublicPriviteKeyTest(Provider p, String[] algorithms) + private void wrapperPublicPriviteKeyTest(Provider p, String[] algorithms, String algoWrap) throws NoSuchAlgorithmException, InvalidKeyException, NoSuchPaddingException, IllegalBlockSizeException, InvalidAlgorithmParameterException { @@ -275,7 +276,6 @@ private void wrapperPublicPriviteKeyTest(Provider p, String[] algorithms) kpg.initialize(SecurityUtils.getTestKeySize(algo)); KeyPair kp = kpg.genKeyPair(); // key generated - String algoWrap = "DES"; KeyGenerator kg = KeyGenerator.getInstance(algoWrap, p); Key key = kg.generateKey(); wrapTest(algo, algoWrap, key, kp.getPrivate(), Cipher.PRIVATE_KEY, diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/TestCipherPBECons.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/TestCipherPBECons.java index 788f27bcb47..a3432c1ba93 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/TestCipherPBECons.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/TestCipherPBECons.java @@ -40,7 +40,7 @@ public class TestCipherPBECons { private static final String[] PBEAlgorithms = {"pbeWithMD5ANDdes", - "PBEWithMD5AndTripleDES"}; + "PBEWithMD5AndTripleDES", "PBEWithSHA1AndDESede"}; private static final String[] cipherModes = {"ECb", "cbC", "cFB", "Cfb32", "OfB", "oFb64", "pCbC"}; private static final String[] cipherPaddings = {"Pkcs5Padding", "NoPaDDing"}; diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement2.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement2.java index e3439b0140e..da583c9dc29 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement2.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement2.java @@ -232,20 +232,26 @@ private void run(String mode) throws Exception { } System.err.println("Shared secrets are the same"); + testSecretKey(bobKeyAgree, alicePubKey, "DES"); + testSecretKey(bobKeyAgree, alicePubKey, "AES"); + } + + private static void testSecretKey(KeyAgreement bobKeyAgree, PublicKey alicePubKey, String algo) + throws Exception { // Now let's return the shared secret as a SecretKey object // and use it for encryption - System.out.println("Return shared secret as SecretKey object ..."); + System.out.println("Return shared secret as SecretKey object with algorithm: " + algo); bobKeyAgree.doPhase(alicePubKey, true); - SecretKey desKey = bobKeyAgree.generateSecret("DES"); + SecretKey key = bobKeyAgree.generateSecret(algo); - Cipher desCipher = Cipher.getInstance("DES/ECB/PKCS5Padding"); - desCipher.init(Cipher.ENCRYPT_MODE, desKey); + Cipher cipher = Cipher.getInstance(algo + "/ECB/PKCS5Padding"); + cipher.init(Cipher.ENCRYPT_MODE, key); byte[] cleartext = "This is just an example".getBytes(); - byte[] ciphertext = desCipher.doFinal(cleartext); + byte[] ciphertext = cipher.doFinal(cleartext); - desCipher.init(Cipher.DECRYPT_MODE, desKey); - byte[] cleartext1 = desCipher.doFinal(ciphertext); + cipher.init(Cipher.DECRYPT_MODE, key); + byte[] cleartext1 = cipher.doFinal(ciphertext); int clearLen = cleartext.length; int clear1Len = cleartext1.length; diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHParamGens.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHParamGens.java index 96a5754cfa6..efc85999b3e 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHParamGens.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHParamGens.java @@ -24,6 +24,7 @@ /** * @test * @bug 8072452 8163498 + * @library /test/lib * @summary Support DHE sizes up to 8192-bits and DSA sizes up to 3072-bits * This test has been split based on lower/higher key sizes in order to * reduce individual execution times and run in parallel @@ -33,14 +34,16 @@ * @run main/timeout=300 SupportedDHParamGens 832 * @run main/timeout=300 SupportedDHParamGens 1024 * @run main/timeout=600 SupportedDHParamGens 2048 + * @run main/timeout=600 SupportedDHParamGens 3072 + * @run main/timeout=600 SupportedDHParamGens 4096 */ - import java.math.BigInteger; import java.security.*; -import javax.crypto.*; import javax.crypto.interfaces.*; import javax.crypto.spec.*; +import jdk.test.lib.security.DiffieHellmanGroup; +import jdk.test.lib.security.SecurityUtils; public class SupportedDHParamGens { @@ -48,12 +51,18 @@ public static void main(String[] args) throws Exception { int primeSize = Integer.valueOf(args[0]).intValue(); System.out.println("Checking " + primeSize + " ..."); - AlgorithmParameterGenerator apg = - AlgorithmParameterGenerator.getInstance("DH", - System.getProperty("test.provider.name", "SunJCE")); - apg.init(primeSize); - AlgorithmParameters ap = apg.generateParameters(); - DHParameterSpec spec = ap.getParameterSpec(DHParameterSpec.class); + DHParameterSpec spec = null; + switch (primeSize) { + case 2048, 3072, 4096 -> spec = getDHParameterSpec(primeSize); + default -> { + AlgorithmParameterGenerator apg = + AlgorithmParameterGenerator.getInstance("DH", + System.getProperty("test.provider.name", "SunJCE")); + apg.init(primeSize); + AlgorithmParameters ap = apg.generateParameters(); + spec = ap.getParameterSpec(DHParameterSpec.class); + } + } KeyPairGenerator kpg = KeyPairGenerator.getInstance("DH", System.getProperty("test.provider.name", "SunJCE")); @@ -62,6 +71,11 @@ public static void main(String[] args) throws Exception { checkKeyPair(kp, primeSize); } + private static DHParameterSpec getDHParameterSpec(int primeSize) { + DiffieHellmanGroup dhGroup = SecurityUtils.getTestDHGroup(primeSize); + return new DHParameterSpec(dhGroup.getPrime(), dhGroup.getBase()); + } + private static void checkKeyPair(KeyPair kp, int pSize) throws Exception { DHPrivateKey privateKey = (DHPrivateKey)kp.getPrivate(); diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHParamGensLongKey.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHParamGensLongKey.java index 740486e06cf..7d2570991d5 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHParamGensLongKey.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHParamGensLongKey.java @@ -24,6 +24,7 @@ /** * @test * @bug 8072452 8163498 + * @library /test/lib * @summary Support DHE sizes up to 8192-bits and DSA sizes up to 3072-bits * This test has been split based on lower/higher key sizes in order to * reduce individual execution times and run in parallel diff --git a/test/jdk/com/sun/crypto/provider/KeyGenerator/TestExplicitKeyLength.java b/test/jdk/com/sun/crypto/provider/KeyGenerator/TestExplicitKeyLength.java index 6a0c2419fcc..a1226b89d34 100644 --- a/test/jdk/com/sun/crypto/provider/KeyGenerator/TestExplicitKeyLength.java +++ b/test/jdk/com/sun/crypto/provider/KeyGenerator/TestExplicitKeyLength.java @@ -35,10 +35,10 @@ public class TestExplicitKeyLength { - private static final String ALGOS[] = { "RC2", "ARCFOUR" }; + private static final String ALGOS[] = { "RC2", "ARCFOUR", "AES", "AES", "AES" }; private static final int KEY_SIZES[] = - { 64, 80 }; // in bits + { 64, 80, 128, 192, 256 }; // in bits public static void runTest(String algo, int keysize) throws Exception { KeyGenerator kg = KeyGenerator.getInstance(algo, diff --git a/test/jdk/com/sun/crypto/provider/Mac/HmacSaltLengths.java b/test/jdk/com/sun/crypto/provider/Mac/HmacSaltLengths.java index aa2ef2ae7de..d1c8383e6a1 100644 --- a/test/jdk/com/sun/crypto/provider/Mac/HmacSaltLengths.java +++ b/test/jdk/com/sun/crypto/provider/Mac/HmacSaltLengths.java @@ -41,6 +41,10 @@ public class HmacSaltLengths { private static final String[] ALGOS = { "HmacPBESHA1", + "HmacPBESHA224", + "HmacPBESHA256", + "HmacPBESHA384", + "HmacPBESHA512", "PBEWithHmacSHA1", "PBEWithHmacSHA224", "PBEWithHmacSHA256", diff --git a/test/jdk/com/sun/crypto/provider/Mac/MacClone.java b/test/jdk/com/sun/crypto/provider/Mac/MacClone.java index e66b71ec1a3..5d491ded324 100644 --- a/test/jdk/com/sun/crypto/provider/Mac/MacClone.java +++ b/test/jdk/com/sun/crypto/provider/Mac/MacClone.java @@ -26,6 +26,8 @@ * @bug 7087021 8013069 8288050 * @summary Clone tests for all MAC algorithms. * @author Jan Luehe + * @run main MacClone DES + * @run main MacClone AES */ import java.security.spec.AlgorithmParameterSpec; import javax.crypto.*; @@ -39,7 +41,8 @@ public static void main(String[] args) throws Exception { "HmacSHA384", "HmacSHA512", "HmacSHA512/224", "HmacSHA512/256", }; - KeyGenerator kgen = KeyGenerator.getInstance("DES"); + String keyAlgo = args[0]; + KeyGenerator kgen = KeyGenerator.getInstance(keyAlgo); SecretKey skey = kgen.generateKey(); for (String algo : algos) { doTest(algo, skey, null); diff --git a/test/jdk/java/security/KeyStore/TestKeyStoreEntry.java b/test/jdk/java/security/KeyStore/TestKeyStoreEntry.java index d0aa21f8144..fde58a1cf33 100644 --- a/test/jdk/java/security/KeyStore/TestKeyStoreEntry.java +++ b/test/jdk/java/security/KeyStore/TestKeyStoreEntry.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,7 +47,7 @@ public class TestKeyStoreEntry { private static final char[] PASSWDF = new String("guardian Angel") .toCharArray(); private static final String[] KS_ALGOS = { - "DES", "DESede", "Blowfish" + "DES", "DESede", "Blowfish", "AES" }; private static final int NUM_ALGOS = KS_ALGOS.length; diff --git a/test/jdk/java/security/MessageDigest/ByteBuffers.java b/test/jdk/java/security/MessageDigest/ByteBuffers.java index f21a51e1c10..fc25b596d86 100644 --- a/test/jdk/java/security/MessageDigest/ByteBuffers.java +++ b/test/jdk/java/security/MessageDigest/ByteBuffers.java @@ -27,6 +27,8 @@ * @summary Test the MessageDigest.update(ByteBuffer) method * @author Andreas Sterbenz * @key randomness + * @run main ByteBuffers MD5 + * @run main ByteBuffers SHA-1 */ import java.util.*; @@ -43,7 +45,8 @@ public static void main(String[] args) throws Exception { byte[] t = new byte[n]; random.nextBytes(t); - MessageDigest md = MessageDigest.getInstance("MD5", p); + String digestAlgo = args[0]; + MessageDigest md = MessageDigest.getInstance(digestAlgo, p); byte[] d1 = md.digest(t); // test 1: ByteBuffer with an accessible backing array diff --git a/test/jdk/java/security/Signature/ByteBuffers.java b/test/jdk/java/security/Signature/ByteBuffers.java index d9866204244..9f03a9923ec 100644 --- a/test/jdk/java/security/Signature/ByteBuffers.java +++ b/test/jdk/java/security/Signature/ByteBuffers.java @@ -27,6 +27,8 @@ * @summary Test the Signature.update(ByteBuffer) method * @author Andreas Sterbenz * @key randomness + * @run main ByteBuffers DSA 512 + * @run main ByteBuffers SHA256withDSA 2048 */ import java.util.*; @@ -44,11 +46,14 @@ public static void main(String[] args) throws Exception { byte[] t = new byte[n]; random.nextBytes(t); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA", p); - kpg.initialize(512); + String kpgAlgorithm = "DSA"; + int keySize = Integer.parseInt(args[1]); + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm, p); + kpg.initialize(keySize); KeyPair kp = kpg.generateKeyPair(); - Signature sig = Signature.getInstance("DSA", p); + String signAlgo = args[0]; + Signature sig = Signature.getInstance(signAlgo, p); sig.initSign(kp.getPrivate()); sig.update(t); byte[] signature = sig.sign(); diff --git a/test/jdk/java/security/Signature/SignWithOutputBuffer.java b/test/jdk/java/security/Signature/SignWithOutputBuffer.java index 5f4716391a7..0fcc0405f7c 100644 --- a/test/jdk/java/security/Signature/SignWithOutputBuffer.java +++ b/test/jdk/java/security/Signature/SignWithOutputBuffer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,6 +26,8 @@ * @bug 4114896 * @summary Signature should support a sign() method that places the signature * in an already existing array. + * @run main SignWithOutputBuffer DSS 512 + * @run main SignWithOutputBuffer SHA256withDSA 2048 */ import java.security.*; @@ -36,11 +38,14 @@ public static void main(String[] args) throws Exception { int numBytes; - KeyPairGenerator kpGen = KeyPairGenerator.getInstance("DSA"); - kpGen.initialize(512); + String kpgAlgorithm = "DSA"; + int keySize = Integer.parseInt(args[1]); + KeyPairGenerator kpGen = KeyPairGenerator.getInstance(kpgAlgorithm); + kpGen.initialize(keySize); KeyPair kp = kpGen.genKeyPair(); - Signature sig = Signature.getInstance("DSS"); + String signAlgo = args[0]; + Signature sig = Signature.getInstance(signAlgo); sig.initSign(kp.getPrivate()); sig.update((byte)0xff); @@ -55,10 +60,10 @@ public static void main(String[] args) throws Exception { } // Now repeat the same with a buffer that's big enough - sig = Signature.getInstance("DSS"); + sig = Signature.getInstance(signAlgo); sig.initSign(kp.getPrivate()); sig.update((byte)0xff); - out = new byte[48]; + out = new byte[64]; numBytes = sig.sign(out, 0, out.length); System.out.println("Signature len="+numBytes); diff --git a/test/jdk/java/security/Signature/SignatureGetInstance.java b/test/jdk/java/security/Signature/SignatureGetInstance.java index e36d253dbc8..821c20602a7 100644 --- a/test/jdk/java/security/Signature/SignatureGetInstance.java +++ b/test/jdk/java/security/Signature/SignatureGetInstance.java @@ -27,7 +27,8 @@ * @summary Ensure the BC provider-reselection workaround in Signature class * functions correctly * @modules java.base/sun.security.util - * @run main/othervm SignatureGetInstance + * @run main/othervm SignatureGetInstance default + * @run main/othervm SignatureGetInstance SHA-256 */ import java.security.*; import java.security.interfaces.*; @@ -37,8 +38,12 @@ public class SignatureGetInstance { private static final String SIGALG = "RSASSA-PSS"; + private static PSSParameterSpec pssParamSpec; public static void main(String[] args) throws Exception { + String mdName = args[0]; + pssParamSpec = "default".equals(mdName) ? PSSParameterSpec.DEFAULT : + new PSSParameterSpec(mdName, "MGF1", new MGF1ParameterSpec(mdName), 20, 1); Provider testProvider = new TestProvider(); // put test provider before SunRsaSign provider Security.insertProviderAt(testProvider, 1); @@ -85,7 +90,7 @@ private static void checkName(Signature s, String name) { private static void testDblInit(PrivateKey key1, PublicKey key2, boolean shouldPass, String expectedProvName) throws Exception { Signature sig = Signature.getInstance(SIGALG); - SignatureUtil.initSignWithParam(sig, key1, PSSParameterSpec.DEFAULT, null); + SignatureUtil.initSignWithParam(sig, key1, pssParamSpec, null); try { sig.initVerify(key2); if (!shouldPass) { @@ -108,7 +113,7 @@ private static void testSetAndInit(String provName, Key key, } else { sig = Signature.getInstance(SIGALG, provName); } - AlgorithmParameterSpec params = PSSParameterSpec.DEFAULT; + AlgorithmParameterSpec params = pssParamSpec; boolean doSign = (key instanceof PrivateKey); try { if (doSign) { diff --git a/test/jdk/java/security/Signature/TestInitSignWithMyOwnRandom.java b/test/jdk/java/security/Signature/TestInitSignWithMyOwnRandom.java index a59ea9a9355..ac4199ec771 100644 --- a/test/jdk/java/security/Signature/TestInitSignWithMyOwnRandom.java +++ b/test/jdk/java/security/Signature/TestInitSignWithMyOwnRandom.java @@ -24,23 +24,30 @@ /** * @test * @bug 4716321 + * @library /test/lib * @summary Ensure the random source supplied in * Signature.initSign(PrivateKey, SecureRandom) is used. + * @run main TestInitSignWithMyOwnRandom DSA 512 + * @run main TestInitSignWithMyOwnRandom SHA256withDSA 2048 */ import java.security.*; +import jdk.test.lib.security.SecurityUtils; public class TestInitSignWithMyOwnRandom { - public static void main(String[] argv) throws Exception { + public static void main(String[] args) throws Exception { // any signature implementation will do as long as // it needs a random source Provider p = Security.getProvider( - System.getProperty("test.provider.name", "SUN")); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA", p); - kpg.initialize(512); + System.getProperty("test.provider.name", "SUN")); + String kpgAlgorithm = "DSA"; + int keySize = Integer.parseInt(args[1]); + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm, p); + kpg.initialize(keySize); KeyPair kp = kpg.generateKeyPair(); TestRandomSource rand = new TestRandomSource(); - Signature sig = Signature.getInstance("DSA", p); + String signAlgo = args[0]; + Signature sig = Signature.getInstance(signAlgo, p); sig.initSign(kp.getPrivate(), rand); sig.update(new byte[20]); sig.sign(); diff --git a/test/jdk/java/security/Signature/VerifyRangeCheckOverflow.java b/test/jdk/java/security/Signature/VerifyRangeCheckOverflow.java index 5cf939d05db..397d7933274 100644 --- a/test/jdk/java/security/Signature/VerifyRangeCheckOverflow.java +++ b/test/jdk/java/security/Signature/VerifyRangeCheckOverflow.java @@ -48,7 +48,7 @@ public static void main(String[] args) throws Exception { PublicKey publicKey = keys.getPublic(); byte[] sigBytes = new byte[100]; - Signature signature = Signature.getInstance("SHA1withDSA"); + Signature signature = Signature.getInstance("SHA256withDSA"); signature.initVerify(publicKey); try { signature.verify(sigBytes, Integer.MAX_VALUE, 1); diff --git a/test/jdk/java/security/SignedObject/Chain.java b/test/jdk/java/security/SignedObject/Chain.java index 0fb5cf3c53f..883ac13890d 100644 --- a/test/jdk/java/security/SignedObject/Chain.java +++ b/test/jdk/java/security/SignedObject/Chain.java @@ -165,6 +165,8 @@ public String toString() { new Test(SigAlg.SHA1withDSA, KeyAlg.DSA, Provider.Default, 1024), new Test(SigAlg.MD2withRSA, KeyAlg.RSA, Provider.Default), new Test(SigAlg.MD5withRSA, KeyAlg.RSA, Provider.Default), + new Test(SigAlg.SHA224withRSA, KeyAlg.RSA, Provider.Default), + new Test(SigAlg.SHA256withRSA, KeyAlg.RSA, Provider.Default), new Test(SigAlg.SHA3_224withRSA, KeyAlg.RSA, Provider.Default), new Test(SigAlg.SHA3_256withRSA, KeyAlg.RSA, Provider.Default), new Test(SigAlg.SHA3_384withRSA, KeyAlg.RSA, Provider.Default), diff --git a/test/jdk/java/security/SignedObject/Copy.java b/test/jdk/java/security/SignedObject/Copy.java index 16267ee534d..3e36891173a 100644 --- a/test/jdk/java/security/SignedObject/Copy.java +++ b/test/jdk/java/security/SignedObject/Copy.java @@ -31,31 +31,35 @@ * @test * @bug 8050374 * @summary Checks if a signed object is a copy of an original object + * @run main Copy DSA 512 + * @run main Copy SHA256withDSA 2048 */ public class Copy { private static final String DSA = "DSA"; - private static final int KEY_SIZE = 512; private static final int MAGIC = 123; public static void main(String args[]) throws Exception { + int keySize = Integer.parseInt(args[1]); KeyPairGenerator kg = KeyPairGenerator.getInstance(DSA); - kg.initialize(KEY_SIZE); + kg.initialize(keySize); KeyPair kp = kg.genKeyPair(); - Signature signature = Signature.getInstance(DSA); + String signAlgo = args[0]; + Signature signature = Signature.getInstance(signAlgo); Test original = new Test(); SignedObject so = new SignedObject(original, kp.getPrivate(), signature); System.out.println("Signature algorithm: " + so.getAlgorithm()); - signature = Signature.getInstance(DSA, System.getProperty("test.provider.name", "SUN")); + signature = Signature.getInstance(signAlgo, + System.getProperty("test.provider.name", "SUN")); if (!so.verify(kp.getPublic(), signature)) { throw new RuntimeException("Verification failed"); } kg = KeyPairGenerator.getInstance(DSA); - kg.initialize(KEY_SIZE); + kg.initialize(keySize); kp = kg.genKeyPair(); if (so.verify(kp.getPublic(), signature)) { diff --git a/test/jdk/javax/crypto/Cipher/ByteBuffers.java b/test/jdk/javax/crypto/Cipher/ByteBuffers.java index 141f1c10781..4dd6d86b476 100644 --- a/test/jdk/javax/crypto/Cipher/ByteBuffers.java +++ b/test/jdk/javax/crypto/Cipher/ByteBuffers.java @@ -27,6 +27,8 @@ * @summary Test the Cipher.update/doFinal(ByteBuffer, ByteBuffer) methods * @author Andreas Sterbenz * @key randomness + * @run main ByteBuffers DES 8 + * @run main ByteBuffers AES 16 */ import java.util.*; @@ -47,11 +49,13 @@ public static void main(String[] args) throws Exception { byte[] t = new byte[n]; random.nextBytes(t); - byte[] keyBytes = new byte[8]; + int keyInt = Integer.parseInt(args[1]); + byte[] keyBytes = new byte[keyInt]; random.nextBytes(keyBytes); - SecretKey key = new SecretKeySpec(keyBytes, "DES"); + String algo = args[0]; + SecretKey key = new SecretKeySpec(keyBytes, algo); - Cipher cipher = Cipher.getInstance("DES/ECB/NoPadding"); + Cipher cipher = Cipher.getInstance(algo + "/ECB/NoPadding"); cipher.init(Cipher.ENCRYPT_MODE, key); byte[] outBytes = cipher.doFinal(t); diff --git a/test/jdk/javax/crypto/Cipher/TestGetInstance.java b/test/jdk/javax/crypto/Cipher/TestGetInstance.java index 07ad131c736..8d261657498 100644 --- a/test/jdk/javax/crypto/Cipher/TestGetInstance.java +++ b/test/jdk/javax/crypto/Cipher/TestGetInstance.java @@ -26,10 +26,13 @@ * @bug 4898428 * @summary test that the new getInstance() implementation works correctly * @author Andreas Sterbenz + * @run main TestGetInstance DES PBEWithMD5AndTripleDES + * @run main TestGetInstance AES PBEWithHmacSHA1AndAES_128 */ import java.security.*; import java.security.spec.*; +import java.util.Locale; import javax.crypto.*; @@ -42,61 +45,64 @@ private static void same(Provider p1, Provider p2) throws Exception { } public static void main(String[] args) throws Exception { + String algo = args[0]; + String algoLC = algo.toLowerCase(Locale.ROOT); + String pbeAlgo = args[1]; Provider p = Security.getProvider( System.getProperty("test.provider.name", "SunJCE")); Cipher c; - c = Cipher.getInstance("PBEWithMD5AndTripleDES"); + c = Cipher.getInstance(pbeAlgo); same(p, c.getProvider()); - c = Cipher.getInstance("des", + c = Cipher.getInstance(algoLC, System.getProperty("test.provider.name", "SunJCE")); same(p, c.getProvider()); - c = Cipher.getInstance("des/cbc/pkcs5padding", + c = Cipher.getInstance(algoLC + "/cbc/pkcs5padding", System.getProperty("test.provider.name", "SunJCE")); same(p, c.getProvider()); - c = Cipher.getInstance("des", p); + c = Cipher.getInstance(algoLC, p); same(p, c.getProvider()); - c = Cipher.getInstance("des/cbc/pkcs5padding", p); + c = Cipher.getInstance(algoLC + "/cbc/pkcs5padding", p); same(p, c.getProvider()); try { - c = Cipher.getInstance("DES/XYZ/PKCS5Padding"); + c = Cipher.getInstance(algo + "/XYZ/PKCS5Padding"); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); } try { - c = Cipher.getInstance("DES/XYZ/PKCS5Padding", + c = Cipher.getInstance(algo + "/XYZ/PKCS5Padding", System.getProperty("test.provider.name", "SunJCE")); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); } try { - c = Cipher.getInstance("DES/XYZ/PKCS5Padding", p); + c = Cipher.getInstance(algo + "/XYZ/PKCS5Padding", p); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); } try { - c = Cipher.getInstance("DES/CBC/XYZPadding"); + c = Cipher.getInstance(algo + "/CBC/XYZPadding"); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); } try { - c = Cipher.getInstance("DES/CBC/XYZPadding", + c = Cipher.getInstance(algo + "/CBC/XYZPadding", System.getProperty("test.provider.name", "SunJCE")); throw new AssertionError(); } catch (NoSuchPaddingException e) { System.out.println(e); } try { - c = Cipher.getInstance("DES/CBC/XYZPadding", p); + c = Cipher.getInstance(algo + "/CBC/XYZPadding", p); throw new AssertionError(); } catch (NoSuchPaddingException e) { System.out.println(e); diff --git a/test/jdk/javax/crypto/CipherSpi/DirectBBRemaining.java b/test/jdk/javax/crypto/CipherSpi/DirectBBRemaining.java index 5a383ded6dc..9487792df08 100644 --- a/test/jdk/javax/crypto/CipherSpi/DirectBBRemaining.java +++ b/test/jdk/javax/crypto/CipherSpi/DirectBBRemaining.java @@ -27,6 +27,8 @@ * @summary Cipher.doFinal(ByteBuffer,ByteBuffer) fails to * process when in.remaining() == 0 * @key randomness + * @run main DirectBBRemaining DES 8 + * @run main DirectBBRemaining AES 16 */ import java.nio.ByteBuffer; @@ -53,11 +55,13 @@ public static void main(String args[]) throws Exception { boolean failedOnce = false; Exception failedReason = null; - byte[] keyBytes = new byte[8]; + int keyInt = Integer.parseInt(args[1]); + byte[] keyBytes = new byte[keyInt]; random.nextBytes(keyBytes); - SecretKey key = new SecretKeySpec(keyBytes, "DES"); + String algo = args[0]; + SecretKey key = new SecretKeySpec(keyBytes, algo); - Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding", + Cipher cipher = Cipher.getInstance(algo + "/CBC/PKCS5Padding", System.getProperty("test.provider.name", "SunJCE")); cipher.init(Cipher.ENCRYPT_MODE, key); diff --git a/test/jdk/javax/crypto/CryptoPermission/AllPermCheck.java b/test/jdk/javax/crypto/CryptoPermission/AllPermCheck.java index ea0ae4ab925..c2fef8785e1 100644 --- a/test/jdk/javax/crypto/CryptoPermission/AllPermCheck.java +++ b/test/jdk/javax/crypto/CryptoPermission/AllPermCheck.java @@ -29,6 +29,8 @@ * crypto permssion checks failed. * @author Valerie Peng * @key randomness + * @run main AllPermCheck DES + * @run main AllPermCheck AES */ import java.io.*; @@ -86,7 +88,8 @@ public static void runTest(Cipher c, Key key) throws Exception { public static void main(String[] args) throws Exception { Provider p = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + p.getName() + "..."); - if (Cipher.getMaxAllowedKeyLength("DES") == Integer.MAX_VALUE) { + String transformation = args[0]; + if (Cipher.getMaxAllowedKeyLength(transformation) == Integer.MAX_VALUE) { // skip this test for unlimited jurisdiction policy files System.out.println("Skip this test due to unlimited version"); return; diff --git a/test/jdk/javax/crypto/CryptoPermission/LowercasePermCheck.java b/test/jdk/javax/crypto/CryptoPermission/LowercasePermCheck.java index a8eca5f6830..97f6f4fd103 100644 --- a/test/jdk/javax/crypto/CryptoPermission/LowercasePermCheck.java +++ b/test/jdk/javax/crypto/CryptoPermission/LowercasePermCheck.java @@ -48,7 +48,7 @@ public class LowercasePermCheck { public static void main(String[] args) throws Exception { Provider p = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + p.getName() + "..."); - if (Cipher.getMaxAllowedKeyLength("DES") == Integer.MAX_VALUE) { + if (Cipher.getMaxAllowedKeyLength("AES") == Integer.MAX_VALUE) { // skip this test for unlimited jurisdiction policy files System.out.println("Skip this test due to unlimited version"); return; diff --git a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpec.java b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpec.java index 6be4ef9bbdf..cc0adc18e56 100644 --- a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpec.java +++ b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpec.java @@ -26,6 +26,8 @@ * @bug 4508341 * @summary Test the EncryptedPrivateKeyInfo.getKeySpec(...) methods. * @author Valerie Peng + * @run main/othervm -DcipherAlg=PBEWithMD5AndDES GetKeySpec + * @run main/othervm -DcipherAlg=PBEWithSHA1AndDESede GetKeySpec */ import java.util.*; import java.nio.*; @@ -37,12 +39,13 @@ import javax.crypto.spec.*; public class GetKeySpec { - private static final String cipherAlg = "PBEWithMD5AndDES"; + private static String cipherAlg; private static final char[] passwd = { 'p','a','s','s','w','d' }; private static AlgorithmParameters GOOD_PARAMS; static { try { + cipherAlg = System.getProperty("cipherAlg"); PBEParameterSpec goodParamSpec = new PBEParameterSpec(new byte[8], 1024); GOOD_PARAMS = AlgorithmParameters.getInstance @@ -55,7 +58,8 @@ public class GetKeySpec { } private static String pkcs8Encoded = "30:82:01:53:02:01:00:30:0D:06:09:2A:86:48:86:F7:0D:01:01:01:05:00:04:82:01:3D:30:82:01:39:02:01:00:02:40:6E:A4:13:65:97:A2:C2:47:5E:F2:23:6B:94:D8:D7:25:13:BB:A4:AE:8A:AA:A7:27:A4:9A:04:DC:15:F7:9B:E4:39:18:99:9E:27:EA:92:BB:D0:0E:F3:26:F4:95:89:33:02:65:6D:84:69:2C:CE:B7:FA:68:8E:FE:8D:63:44:6B:02:03:01:00:01:02:40:59:6E:1C:13:98:FE:C1:04:89:75:35:36:27:29:22:B5:E0:7E:62:BD:86:6E:2C:10:7A:16:D8:68:C1:04:D4:A7:10:41:F7:B9:B4:84:05:03:A5:C0:28:73:24:A7:24:F1:1B:C3:4F:BF:05:20:D0:D9:00:08:7F:C3:29:64:1B:29:02:21:00:C4:63:4D:0C:32:51:44:AE:DD:90:A9:B7:B6:C2:6B:11:BE:D2:07:E7:B5:C2:4A:9F:4D:0F:2F:30:5F:E6:1C:6D:02:21:00:90:39:A4:2D:93:0B:08:AF:2F:6F:18:CC:1A:EF:B6:E6:01:E7:21:3A:7F:45:C7:3F:39:12:B8:CC:DF:44:2D:37:02:21:00:B3:9B:61:9E:B2:F2:12:4F:9E:C1:2C:06:A1:B5:A3:38:62:7D:31:CF:9F:32:67:0E:D3:E9:FC:2D:50:B7:61:ED:02:20:5B:FD:77:FB:5D:A3:97:09:6E:1E:D5:59:32:01:1D:CE:7C:FE:38:12:80:A5:38:1D:DA:40:57:C0:CC:D3:46:67:02:20:52:EC:61:05:0D:EC:8A:ED:F7:1E:95:67:D0:7C:8B:D9:AA:A5:33:B8:26:26:2E:8F:D7:A7:18:16:2A:83:63:5C"; - private static String encryptedPKCS8 = "AE:20:81:4F:4D:38:73:C0:51:70:42:DA:C2:EF:61:49:07:E9:B5:D5:55:6D:D1:50:54:B2:0B:41:3E:2F:B6:00:BC:30:89:7B:32:A5:5F:B6:86:92:9E:06:6E:E2:40:8E:3E:E8:0B:CA:97:DB:3E:72:3E:03:22:34:35:EA:5F:B0:71:B2:07:BC:0D:97:94:0A:E6:12:9B:60:7A:77:D4:6C:99:60:2E:68:D6:55:BE:83:B8:A9:0F:19:8A:BE:91:30:D0:FE:52:94:5A:4C:D7:24:07:B3:61:EB:B5:4A:C6:6F:96:8A:C0:20:E9:73:40:FA:A2:56:04:F2:43:35:90:EA:35:C9:8C:08:9D:0B:BC:37:F0:01:D5:DF:BE:E4:4A:57:E0:13:0C:D5:F0:E8:5C:3B:B3:CD:7E:B5:E8:A5:84:63:F6:DA:3E:F2:CF:53:1F:A2:86:44:61:DD:AF:C1:78:70:3A:E6:06:41:77:6C:5B:8D:FA:C4:39:D7:4D:2F:87:D8:31:F4:B6:2B:94:D9:87:17:0E:C8:E3:FA:54:C8:B2:44:56:E0:37:5F:4C:5D:B2:21:DD:15:9E:94:63:89:CF:07:8C:79:F8:65:B2:22:45:D5:F0:2A:70:19:61:16:1D:52:5E:0C:35:3B:20:88:17:7E:FD:05:CC:08:09:2F:05:61:F7:A8:F5:EA:DE:77:DE:5D:55:4E:A0:36:A1:13:FF:2D:57:E8:4E:06:CE:C9:C1:B1:AE:C6:52:A6:EB:35:4C:81:91:DE:71:BA:34:DA:8A:99:1A:47:2E:66:52:AF:E3:2A:E4:0A:27:7F:72:C4:90:7E:8D:8F:64:8D:21:7E:00:DC:1C:62:0F:CC:96:80:C7:E5:5B:70:48:A5:E7:34:27:1A:7C:48:A7:9E:8B:2B:A6:E2"; + private static String sha1EncryptedPKCS8 = "0D:CA:00:8F:64:91:9C:60:36:F5:9B:BD:DD:C5:A9:A2:27:9E:6B:AE:CB:23:0E:2F:DA:76:03:A5:B7:C0:D5:3E:B9:03:60:62:41:2C:D6:51:37:F0:D9:ED:B2:CC:E7:99:28:03:CD:20:5D:EC:56:77:FC:61:57:D7:8C:F3:F6:10:F7:E5:BA:88:04:FE:1A:17:B3:8C:36:BF:70:2D:CD:6F:BF:83:ED:03:41:22:95:68:E3:08:90:76:B5:97:CB:FF:CE:51:27:14:F6:38:00:22:E9:0F:86:9F:64:D2:47:34:F6:50:DA:A9:80:F5:67:BF:C7:51:B3:38:AF:CD:15:96:50:8F:33:F3:8B:43:4C:AF:ED:DD:37:03:EC:B1:CC:57:53:0A:AF:0D:53:CD:D7:2B:A2:20:C5:37:AF:09:78:8E:3F:A0:E4:EC:22:C6:71:EC:D1:42:15:9D:1D:E9:E3:9D:8F:D6:0B:2A:99:C9:C8:90:B1:CD:AB:17:DD:A3:6F:64:43:23:26:25:7B:A5:E0:1F:2E:AF:18:89:C8:D6:97:28:32:A1:01:22:6F:14:B6:6C:4E:8A:83:47:16:99:51:B4:8D:85:9E:AB:00:B5:18:BB:49:97:47:59:F8:A7:A8:64:76:3F:41:5F:71:1A:F3:4A:96:F2:B4:44:38:42:4B:AE:0F:08:83:5C:33:F8:6A:8F:B9:6A:3D:1C:06:02:4E:07:48:46:E0:6D:6D:ED:E8:19:CB:3F:B0:6F:10:68:3A:5E:F5:8F:94:EF:B4:8B:58:5F:50:0A:E5:F2:13:54:59:14:99:C5:74:02:A2:B1:73:16:7F:F2:D4:DE:E0:12:86:55:46:9C:57:D1:7A:5C:8B:46:E1:7E:C3:32:14:31:52:64:07:52:9D:65:04:9D:54:89"; + private static String md5EncryptedPKCS8 = "AE:20:81:4F:4D:38:73:C0:51:70:42:DA:C2:EF:61:49:07:E9:B5:D5:55:6D:D1:50:54:B2:0B:41:3E:2F:B6:00:BC:30:89:7B:32:A5:5F:B6:86:92:9E:06:6E:E2:40:8E:3E:E8:0B:CA:97:DB:3E:72:3E:03:22:34:35:EA:5F:B0:71:B2:07:BC:0D:97:94:0A:E6:12:9B:60:7A:77:D4:6C:99:60:2E:68:D6:55:BE:83:B8:A9:0F:19:8A:BE:91:30:D0:FE:52:94:5A:4C:D7:24:07:B3:61:EB:B5:4A:C6:6F:96:8A:C0:20:E9:73:40:FA:A2:56:04:F2:43:35:90:EA:35:C9:8C:08:9D:0B:BC:37:F0:01:D5:DF:BE:E4:4A:57:E0:13:0C:D5:F0:E8:5C:3B:B3:CD:7E:B5:E8:A5:84:63:F6:DA:3E:F2:CF:53:1F:A2:86:44:61:DD:AF:C1:78:70:3A:E6:06:41:77:6C:5B:8D:FA:C4:39:D7:4D:2F:87:D8:31:F4:B6:2B:94:D9:87:17:0E:C8:E3:FA:54:C8:B2:44:56:E0:37:5F:4C:5D:B2:21:DD:15:9E:94:63:89:CF:07:8C:79:F8:65:B2:22:45:D5:F0:2A:70:19:61:16:1D:52:5E:0C:35:3B:20:88:17:7E:FD:05:CC:08:09:2F:05:61:F7:A8:F5:EA:DE:77:DE:5D:55:4E:A0:36:A1:13:FF:2D:57:E8:4E:06:CE:C9:C1:B1:AE:C6:52:A6:EB:35:4C:81:91:DE:71:BA:34:DA:8A:99:1A:47:2E:66:52:AF:E3:2A:E4:0A:27:7F:72:C4:90:7E:8D:8F:64:8D:21:7E:00:DC:1C:62:0F:CC:96:80:C7:E5:5B:70:48:A5:E7:34:27:1A:7C:48:A7:9E:8B:2B:A6:E2"; private static byte[] parse(String s) { try { @@ -99,7 +103,7 @@ public static void main(String[] argv) throws Exception { throw new Exception("Static parameter generation failed"); } byte[] encodedKey = parse(pkcs8Encoded); - byte[] encryptedData = parse(encryptedPKCS8); + byte[] encryptedData = parse(cipherAlg.contains("MD5") ? md5EncryptedPKCS8 : sha1EncryptedPKCS8); boolean result = true; Provider p = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); diff --git a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException.java b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException.java index 7be1023aafe..f55f1eea42c 100644 --- a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException.java +++ b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException.java @@ -28,6 +28,8 @@ * @summary Test the error conditions of * EncryptedPrivateKeyInfo.getKeySpec(...) methods. * @author Valerie Peng + * @run main/othervm -DcipherAlg=PBEWithMD5AndDES GetKeySpecException + * @run main/othervm -DcipherAlg=PBEWithSHA1AndDESede GetKeySpecException */ import java.security.*; import java.util.Arrays; @@ -37,7 +39,7 @@ import javax.crypto.spec.*; public class GetKeySpecException { - private static final String cipherAlg = "PBEWithMD5AndDES"; + private static String cipherAlg; private static final char[] passwd = { 'p','a','s','s','w','d' }; private static SecretKey cipherKey; private static Cipher cipher = null; @@ -50,6 +52,7 @@ public class GetKeySpecException { static { try { + cipherAlg = System.getProperty("cipherAlg"); sunjce = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); PBEParameterSpec badParamSpec = new PBEParameterSpec(new byte[10], 10); diff --git a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException2.java b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException2.java index ef2d6acdef7..1fad8b70071 100644 --- a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException2.java +++ b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException2.java @@ -28,6 +28,8 @@ * with wrong mode with EncryptedPrivateKeyInfo.getKeySpec * (Cipher) method. * @author Valerie Peng + * @run main GetKeySpecException2 PBEWithMD5AndDES + * @run main GetKeySpecException2 PBEWithSHA1AndDESede */ import java.security.*; import java.util.Arrays; @@ -38,11 +40,10 @@ import javax.crypto.spec.*; public class GetKeySpecException2 { - private static final String cipherAlg = "PBEWithMD5AndDES"; private static final char[] passwd = { 'p','a','s','s','w','d' }; - public static void main(String[] argv) throws Exception { - + public static void main(String[] args) throws Exception { + String cipherAlg = args[0]; // use random data byte[] encryptedData = new byte[30]; encryptedData[20] = (byte) 8; diff --git a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecInvalidEncoding.java b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecInvalidEncoding.java index a6aa3c86222..40c112b42ee 100644 --- a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecInvalidEncoding.java +++ b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecInvalidEncoding.java @@ -28,6 +28,8 @@ * methods with scenarios where the decrypted bytes are not * encoded correctly per PKCS#8 standard. * @author Valerie Peng + * @run main/othervm -DcipherAlg=PBEWithMD5AndDES GetKeySpecInvalidEncoding + * @run main/othervm -DcipherAlg=PBEWithSHA1AndDESede GetKeySpecInvalidEncoding */ import java.util.*; import java.nio.*; @@ -39,12 +41,13 @@ import javax.crypto.spec.*; public class GetKeySpecInvalidEncoding { - private static final String cipherAlg = "PBEWithMD5AndDES"; + private static String cipherAlg; private static final char[] passwd = { 'p','a','s','s', 'w', 'd' }; private static AlgorithmParameters GOOD_PARAMS; static { try { + cipherAlg = System.getProperty("cipherAlg"); PBEParameterSpec goodParamSpec = new PBEParameterSpec(new byte[8], 6); GOOD_PARAMS = AlgorithmParameters.getInstance diff --git a/test/jdk/javax/crypto/KeyGenerator/TestGetInstance.java b/test/jdk/javax/crypto/KeyGenerator/TestGetInstance.java index 3863fc98154..96e8f794d9b 100644 --- a/test/jdk/javax/crypto/KeyGenerator/TestGetInstance.java +++ b/test/jdk/javax/crypto/KeyGenerator/TestGetInstance.java @@ -26,6 +26,8 @@ * @bug 4898428 * @summary test that the new getInstance() implementation works correctly * @author Andreas Sterbenz + * @run main TestGetInstance des + * @run main TestGetInstance aes */ import java.security.*; @@ -47,12 +49,13 @@ public static void main(String[] args) throws Exception { KeyGenerator kg; - kg = KeyGenerator.getInstance("des"); + String algo = args[0]; + kg = KeyGenerator.getInstance(algo); System.out.println("Default: " + kg.getProvider().getName()); - kg = KeyGenerator.getInstance("des", + kg = KeyGenerator.getInstance(algo, System.getProperty("test.provider.name", "SunJCE")); same(p, kg.getProvider()); - kg = KeyGenerator.getInstance("des", p); + kg = KeyGenerator.getInstance(algo, p); same(p, kg.getProvider()); try { diff --git a/test/jdk/javax/crypto/Mac/ByteBuffers.java b/test/jdk/javax/crypto/Mac/ByteBuffers.java index 39efee91798..eafd2b89e1a 100644 --- a/test/jdk/javax/crypto/Mac/ByteBuffers.java +++ b/test/jdk/javax/crypto/Mac/ByteBuffers.java @@ -27,6 +27,8 @@ * @summary Test the Mac.update(ByteBuffer) method * @author Andreas Sterbenz * @key randomness + * @run main ByteBuffers HmacMD5 + * @run main ByteBuffers HmacSha256 */ import java.util.*; @@ -46,11 +48,12 @@ public static void main(String[] args) throws Exception { byte[] t = new byte[n]; random.nextBytes(t); + String algo = args[0]; byte[] keyBytes = new byte[16]; random.nextBytes(keyBytes); - SecretKey key = new SecretKeySpec(keyBytes, "HmacMD5"); + SecretKey key = new SecretKeySpec(keyBytes, algo); - Mac mac = Mac.getInstance("HmacMD5"); + Mac mac = Mac.getInstance(algo); mac.init(key); byte[] macValue = mac.doFinal(t); diff --git a/test/jdk/javax/crypto/Mac/TestGetInstance.java b/test/jdk/javax/crypto/Mac/TestGetInstance.java index 0361bc0b8d0..85982799bd0 100644 --- a/test/jdk/javax/crypto/Mac/TestGetInstance.java +++ b/test/jdk/javax/crypto/Mac/TestGetInstance.java @@ -26,6 +26,8 @@ * @bug 4898428 * @summary test that the new getInstance() implementation works correctly * @author Andreas Sterbenz + * @run main TestGetInstance hmacmd5 + * @run main TestGetInstance hmacsha256 */ import java.security.*; @@ -47,11 +49,12 @@ public static void main(String[] args) throws Exception { Mac mac; - mac = Mac.getInstance("hmacmd5"); + String algo = args[0]; + mac = Mac.getInstance(algo); System.out.println("Default: " + mac.getProvider().getName()); - mac = Mac.getInstance("hmacmd5", System.getProperty("test.provider.name", "SunJCE")); + mac = Mac.getInstance(algo, System.getProperty("test.provider.name", "SunJCE")); same(p, mac.getProvider()); - mac = Mac.getInstance("hmacmd5", p); + mac = Mac.getInstance(algo, p); same(p, mac.getProvider()); try { diff --git a/test/jdk/sun/security/pkcs/pkcs10/PKCS10AttrEncoding.java b/test/jdk/sun/security/pkcs/pkcs10/PKCS10AttrEncoding.java index 1e389eb613f..9f3d72f8983 100644 --- a/test/jdk/sun/security/pkcs/pkcs10/PKCS10AttrEncoding.java +++ b/test/jdk/sun/security/pkcs/pkcs10/PKCS10AttrEncoding.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -30,7 +30,8 @@ * java.base/sun.security.util * java.base/sun.security.x509 * @compile -XDignore.symbol.file PKCS10AttrEncoding.java - * @run main PKCS10AttrEncoding + * @run main PKCS10AttrEncoding DSA 512 + * @run main PKCS10AttrEncoding Sha256withDSA 2048 */ import java.security.KeyPair; import java.security.KeyPairGenerator; @@ -69,11 +70,13 @@ public static void main(String[] args) throws Exception { constructedMap.put(ids[j], values[j]); } + String kpgAlgorithm = "DSA"; X500Name subject = new X500Name("cn=Test"); - KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DSA"); - String sigAlg = "DSA"; + KeyPairGenerator keyGen = KeyPairGenerator.getInstance(kpgAlgorithm); + String sigAlg = args[0]; + int keySize = Integer.parseInt(args[1]); - keyGen.initialize(512); + keyGen.initialize(keySize); KeyPair pair = keyGen.generateKeyPair(); X509Key publicKey = (X509Key) pair.getPublic(); diff --git a/test/jdk/sun/security/pkcs/pkcs7/SignerOrder.java b/test/jdk/sun/security/pkcs/pkcs7/SignerOrder.java index 30f9392cfde..7d8333e6aa5 100644 --- a/test/jdk/sun/security/pkcs/pkcs7/SignerOrder.java +++ b/test/jdk/sun/security/pkcs/pkcs7/SignerOrder.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -29,7 +29,8 @@ * @modules java.base/sun.security.pkcs * java.base/sun.security.util * java.base/sun.security.x509 - * @run main SignerOrder + * @run main SignerOrder default 1024 + * @run main SignerOrder Sha256 2048 */ import java.io.IOException; import java.math.BigInteger; @@ -62,20 +63,21 @@ public class SignerOrder { static final byte[] data1 = "12345".getBytes(); static final byte[] data2 = "abcde".getBytes(); - public static void main(String[] argv) throws Exception { - + public static void main(String[] args) throws Exception { + String digestAlg = "default".equals(args[0]) ? null : args[0]; + int keySize = Integer.parseInt(args[1]); SignerInfo[] signerInfos = new SignerInfo[9]; - SimpleSigner signer1 = new SimpleSigner(null, null, null, null); + SimpleSigner signer1 = new SimpleSigner(digestAlg, null, null, null, keySize); signerInfos[8] = signer1.genSignerInfo(data1); signerInfos[7] = signer1.genSignerInfo(new byte[]{}); signerInfos[6] = signer1.genSignerInfo(data2); - SimpleSigner signer2 = new SimpleSigner(null, null, null, null); + SimpleSigner signer2 = new SimpleSigner(digestAlg, null, null, null, keySize); signerInfos[5] = signer2.genSignerInfo(data1); signerInfos[4] = signer2.genSignerInfo(new byte[]{}); signerInfos[3] = signer2.genSignerInfo(data2); - SimpleSigner signer3 = new SimpleSigner(null, null, null, null); + SimpleSigner signer3 = new SimpleSigner(digestAlg, null, null, null, keySize); signerInfos[2] = signer3.genSignerInfo(data1); signerInfos[1] = signer3.genSignerInfo(new byte[]{}); signerInfos[0] = signer3.genSignerInfo(data2); @@ -156,28 +158,33 @@ class SimpleSigner { public SimpleSigner(String digestAlg, String encryptionAlg, KeyPair keyPair, - X500Name agent) throws Exception { + X500Name agent, + int keySize) throws Exception { + String signAlgoDigest; if (agent == null) { agent = new X500Name("cn=test"); } - if (digestAlg == null) { - digestAlg = "SHA"; - } if (encryptionAlg == null) { encryptionAlg = "DSA"; } + if (digestAlg == null) { + digestAlg = "SHA"; + signAlgoDigest = encryptionAlg; + } else { + signAlgoDigest = digestAlg + "with" + encryptionAlg; + } if (keyPair == null) { KeyPairGenerator keyGen = KeyPairGenerator.getInstance(encryptionAlg); - keyGen.initialize(1024); + keyGen.initialize(keySize); keyPair = keyGen.generateKeyPair(); } publicKey = (X509Key) keyPair.getPublic(); privateKey = keyPair.getPrivate(); if ("DSA".equals(encryptionAlg)) { - this.sig = Signature.getInstance(encryptionAlg); + this.sig = Signature.getInstance(signAlgoDigest); } else { // RSA this.sig = Signature.getInstance(digestAlg + "/" + encryptionAlg); } diff --git a/test/jdk/sun/security/rsa/TestKeyPairGenerator.java b/test/jdk/sun/security/rsa/TestKeyPairGenerator.java index ea4d92fd6a3..f5bd6c47f3b 100644 --- a/test/jdk/sun/security/rsa/TestKeyPairGenerator.java +++ b/test/jdk/sun/security/rsa/TestKeyPairGenerator.java @@ -86,9 +86,10 @@ private static void test(PrivateKey privateKey, PublicKey publicKey) throws Exce } // regression test for 4865198 - private static void testInvalidSignature(KeyPair kp1, KeyPair kp2) throws Exception { + private static void testInvalidSignature(KeyPair kp1, KeyPair kp2, String signAlgo) + throws Exception { System.out.println("Testing signature with incorrect key..."); - Signature sig = Signature.getInstance("MD5withRSA", provider); + Signature sig = Signature.getInstance(signAlgo, provider); sig.initSign(kp1.getPrivate()); byte[] data = new byte[100]; sig.update(data); @@ -153,9 +154,14 @@ public static void main(String[] args) throws Exception { } test(privateKey, publicKey); } - testInvalidSignature(keyPairs[0], keyPairs[1]); - testInvalidSignature(keyPairs[0], keyPairs[2]); - testInvalidSignature(keyPairs[2], keyPairs[0]); + String md5Algo = "MD5withRSA"; + String sha256Algo = "Sha256withRSA"; + testInvalidSignature(keyPairs[0], keyPairs[1], md5Algo); + testInvalidSignature(keyPairs[0], keyPairs[2], md5Algo); + testInvalidSignature(keyPairs[2], keyPairs[0], md5Algo); + testInvalidSignature(keyPairs[0], keyPairs[1], sha256Algo); + testInvalidSignature(keyPairs[0], keyPairs[2], sha256Algo); + testInvalidSignature(keyPairs[2], keyPairs[0], sha256Algo); long stop = System.currentTimeMillis(); System.out.println("All tests passed (" + (stop - start) + " ms)."); } diff --git a/test/jdk/sun/security/rsa/pss/InitAgain.java b/test/jdk/sun/security/rsa/pss/InitAgain.java index 9b1963c2ee0..9fe8d1a0131 100644 --- a/test/jdk/sun/security/rsa/pss/InitAgain.java +++ b/test/jdk/sun/security/rsa/pss/InitAgain.java @@ -29,18 +29,23 @@ * @bug 8205445 * @library /test/lib * @summary Make sure old state is cleared when init is called again + * @run main InitAgain default + * @run main InitAgain SHA-256 */ public class InitAgain { public static void main(String[] args) throws Exception { + String mdName = args[0]; + PSSParameterSpec pssParamSpec = "default".equals(mdName) ? PSSParameterSpec.DEFAULT : + new PSSParameterSpec(mdName, "MGF1", new MGF1ParameterSpec(mdName), 20, 1); byte[] msg = "hello".getBytes(); Signature s1 = Signature.getInstance("RSASSA-PSS"); Signature s2 = Signature.getInstance("RSASSA-PSS"); - s1.setParameter(PSSParameterSpec.DEFAULT); - s2.setParameter(PSSParameterSpec.DEFAULT); + s1.setParameter(pssParamSpec); + s2.setParameter(pssParamSpec); String kpgAlgorithm = "RSA"; KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm); diff --git a/test/jdk/sun/security/tools/keytool/KeyToolTest.java b/test/jdk/sun/security/tools/keytool/KeyToolTest.java index 7b5f4d5556e..954951a1a78 100644 --- a/test/jdk/sun/security/tools/keytool/KeyToolTest.java +++ b/test/jdk/sun/security/tools/keytool/KeyToolTest.java @@ -68,6 +68,7 @@ import java.util.*; import java.security.cert.X509Certificate; import jdk.test.lib.util.FileUtils; +import jdk.test.lib.security.SecurityUtils; import sun.security.util.ObjectIdentifier; @@ -103,6 +104,8 @@ public class KeyToolTest { "-srcproviderName SunPKCS11-nzz " + "-addprovider SunPKCS11 " + "-providerArg p11-nzz.txt "; + private static final int KEY_LENGTH_DSA = SecurityUtils.getTestKeySize("DSA"); + private static final int KEY_LENGTH_RSA = SecurityUtils.getTestKeySize("RSA"); String p11Arg, srcP11Arg; @@ -192,7 +195,7 @@ void testOK(String input, String cmd) throws Exception { // SunPKCS11-NSS does not support SHA256withDSA yet. if (cmd.contains("p11-nss.txt") && cmd.contains("-genkey") && cmd.contains("DSA")) { - cmd += " -sigalg SHA1withDSA -keysize 1024"; + cmd += " -sigalg SHA256withDSA -keysize " + KEY_LENGTH_DSA; } test(input, cmd); } catch(Exception e) { @@ -955,6 +958,9 @@ void sqeSelfCertTest() throws Exception { // sig not compatible testFail("", "-keystore x.jks -storetype JKS -storepass changeit " + "-keypass changeit -selfcert -sigalg MD5withRSA"); + // sig not compatible + testFail("", "-keystore x.jks -storetype JKS -storepass changeit " + + "-keypass changeit -selfcert -sigalg SHA256withRSA"); // bad pass testFail("", "-keystore x.jks -storetype JKS -storepass wrong " + "-keypass changeit -selfcert"); @@ -1062,10 +1068,10 @@ void sqeGenkeyTest() throws Exception { "-keypass changeit -genkeypair -keyalg DSA -dname CN=olala -keysize 999 " + "-alias n5"); testOK("", "-keystore x.jks -storetype JKS -storepass changeit " + - "-keypass changeit -genkeypair -keyalg DSA -dname CN=olala -keysize 512 " + + "-keypass changeit -genkeypair -keyalg DSA -dname CN=olala -keysize 2048 " + "-alias n6"); testOK("", "-keystore x.jks -storetype JKS -storepass changeit " + - "-keypass changeit -genkeypair -keyalg DSA -dname CN=olala -keysize 1024 " + + "-keypass changeit -genkeypair -keyalg DSA -dname CN=olala -keysize 3072 " + "-alias n7"); testFail("", "-keystore x.jks -storetype JKS -storepass changeit " + "-keypass changeit -genkeypair -keyalg DSA -dname CN=olala " + @@ -1076,6 +1082,9 @@ void sqeGenkeyTest() throws Exception { testOK("", "-keystore x.jks -storetype JKS -storepass changeit " + "-keypass changeit -genkeypair -dname CN=olala -keyalg RSA " + "-sigalg MD5withRSA -alias n10"); + testOK("", "-keystore x.jks -storetype JKS -storepass changeit " + + "-keypass changeit -genkeypair -dname CN=olala -keyalg RSA " + + "-sigalg SHA256withRSA -alias n10-1"); testOK("", "-keystore x.jks -storetype JKS -storepass changeit " + "-keypass changeit -genkeypair -dname CN=olala -keyalg RSA " + "-sigalg SHA1withRSA -alias n11"); @@ -1152,16 +1161,20 @@ void sqeCsrTest() throws Exception { remove("csr1"); // PrivateKeyEntry can do certreq testOK("", "-keystore x.jks -storetype JKS -storepass changeit " + - "-keypass changeit -genkeypair -keyalg DSA -dname CN=olala -keysize 1024"); + "-keypass changeit -genkeypair -keyalg DSA -dname CN=olala -keysize " + + KEY_LENGTH_DSA); testOK("", "-keystore x.jks -storetype JKS -storepass changeit " + "-certreq -file csr1 -alias mykey"); testOK("", "-keystore x.jks -storetype JKS -storepass changeit " + "-certreq -file csr1"); testOK("", "-keystore x.jks -storetype JKS -storepass changeit " + - "-certreq -file csr1 -sigalg SHA1withDSA"); - // unmatched sigalg + "-certreq -file csr1 -sigalg SHA256withDSA"); + // unmatched md5 testFail("", "-keystore x.jks -storetype JKS -storepass changeit " + "-certreq -file csr1 -sigalg MD5withRSA"); + // unmatched sha + testFail("", "-keystore x.jks -storetype JKS -storepass changeit " + + "-certreq -file csr1 -sigalg SHA256withRSA"); // misc test // bad storepass testFail("", "-keystore x.jks -storetype JKS -storepass badstorepass " + @@ -1192,9 +1205,9 @@ void sqeCsrTest() throws Exception { "-certreq -file csr1"); // unmatched sigalg testFail("", "-keystore x.jks -storetype JKS -storepass changeit " + - "-certreq -file csr1 -sigalg SHA1withDSA"); + "-certreq -file csr1 -sigalg SHA256withDSA"); testOK("", "-keystore x.jks -storetype JKS -storepass changeit " + - "-certreq -file csr1 -sigalg MD5withRSA"); + "-certreq -file csr1 -sigalg SHA256withRSA"); // TrustedCertificateEntry cannot do certreq testOK("", "-keystore x.jks -storetype JKS -storepass changeit " + "-exportcert -file x.jks.p1.cert"); @@ -1222,6 +1235,9 @@ void sqePrintcertTest() throws Exception { testOK("", "-keystore x.jks -storetype JKS -storepass changeit " + "-keypass changeit -genkeypair -dname CN=weak -keyalg rsa " + "-keysize 512 -sigalg MD5withRSA -alias myweakkey"); + testOK("", "-keystore x.jks -storetype JKS -storepass changeit " + + "-keypass changeit -genkeypair -dname CN=weak -keyalg rsa -keysize " + + KEY_LENGTH_RSA + " -sigalg SHA256withRSA -alias myweakkey-sha"); testOK("", "-keystore x.jks -storetype JKS -storepass changeit " + "-export -file myweakkey.cert -alias myweakkey"); testFail("", "-printcert -file badkeystore"); @@ -1673,31 +1689,32 @@ void i18nTest() throws Exception { remove("x.jks"); testOK("", "-help"); - // 2. keytool -genkey -keyalg DSA -v -keysize 512 Enter "a" for the keystore + // 2. keytool -genkey -keyalg DSA -v -keysize Enter "a" for the keystore // password. Check error (password too short). Enter "password" for // the keystore password. Hit 'return' for "first and last name", // "organizational unit", "City", "State", and "Country Code". // Type "yes" when they ask you if everything is correct. // Type 'return' for new key password. testOK("a\npassword\npassword\nMe\nHere\nNow\nPlace\nPlace\nUS\nyes\n\n", - "-genkey -keyalg DSA -v -keysize 512 -keystore x.jks -storetype JKS"); + "-genkey -keyalg DSA -v -keysize " + KEY_LENGTH_DSA + " -keystore x.jks " + + "-storetype JKS"); // 3. keytool -list -v -storepass password testOK("", "-list -v -storepass password -keystore x.jks -storetype JKS"); // 4. keytool -list -v Type "a" for the keystore password. // Check error (wrong keystore password). testFail("a\n", "-list -v -keystore x.jks -storetype JKS"); assertTrue(ex.indexOf("password was incorrect") != -1); - // 5. keytool - -keyalg DSA -v -keysize 512 Enter "password" as the password. + // 5. keytool - -keyalg DSA -v -keysize Enter "password" as the password. // Check error (alias 'mykey' already exists). - testFail("password\n", "-genkey -keyalg DSA -v -keysize 512" + + testFail("password\n", "-genkey -keyalg DSA -v -keysize " + KEY_LENGTH_DSA + " -keystore x.jks -storetype JKS"); assertTrue(ex.indexOf("alias already exists") != -1); - // 6. keytool -genkey -keyalg DSA -v -keysize 512 -alias mykey2 -storepass password + // 6. keytool -genkey -keyalg DSA -v -keysize -alias mykey2 -storepass password // Hit 'return' for "first and last name", "organizational unit", "City", // "State", and "Country Code". Type "yes" when they ask you if // everything is correct. Type 'return' for new key password. - testOK("\n\n\n\n\n\nyes\n\n", "-genkey -keyalg DSA -v -keysize 512 -alias mykey2" + - " -storepass password -keystore x.jks -storetype JKS"); + testOK("\n\n\n\n\n\nyes\n\n", "-genkey -keyalg DSA -v -keysize " + KEY_LENGTH_DSA + + " -alias mykey2 -storepass password -keystore x.jks -storetype JKS"); // 7. keytool -list -v Type 'password' for the store password. testOK("password\n", "-list -v -keystore x.jks -storetype JKS"); // 8. keytool -keypasswd -v -alias mykey2 -storepass password @@ -1777,7 +1794,7 @@ void i18nPKCS11Test() throws Exception { // 1. sccs edit cert8.db key3.db //Runtime.getRuntime().exec("/usr/bin/sccs edit cert8.db key3.db"); testOK("", p11Arg + ("-storepass test12 -genkey -alias genkey" + - " -dname cn=genkey -keysize 512 -keyalg rsa")); + " -dname cn=genkey -keysize " + KEY_LENGTH_RSA + " -keyalg rsa")); testOK("", p11Arg + "-storepass test12 -list"); testOK("", p11Arg + "-storepass test12 -list -alias genkey"); testOK("", p11Arg + From f15ad438dcea6d0b2c1e36cae40677a48b65e6f2 Mon Sep 17 00:00:00 2001 From: Kostas Tsiounis Date: Tue, 27 Aug 2024 11:36:05 -0400 Subject: [PATCH 069/159] Avoid rebuilding native code headers for OpenJCEPlus Some OpenJCEPlus headers are already compiled as part of a previous target, so there is no reason to recompile them. Instead an additional variable is passed as part of the make command to indicate that this step can be skipped. Signed-off-by: Kostas Tsiounis --- closed/make/modules/openjceplus/Lib.gmk | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/closed/make/modules/openjceplus/Lib.gmk b/closed/make/modules/openjceplus/Lib.gmk index aa11aef0fcb..43b5a6c54f2 100644 --- a/closed/make/modules/openjceplus/Lib.gmk +++ b/closed/make/modules/openjceplus/Lib.gmk @@ -23,13 +23,14 @@ include LibCommon.gmk ifeq (true,$(BUILD_OPENJCEPLUS)) # Identify the desired JGSKIT target platform. -OPENJCEPLUS_BOOT_JDK := $(BOOT_JDK) +EXPORT_COMPILER_ENV_VARS := +OPENJCEPLUS_JDK := $(JDK_OUTPUTDIR) OPENJCEPLUS_GSKIT_HOME := $(OPENJCEPLUS_TOPDIR)/ock/jgsk_sdk +OPENJCEPLUS_HEADER_FILES := $(SUPPORT_OUTPUTDIR)/headers/openjceplus OPENJCEPLUS_JCE_CLASSPATH := $(JDK_OUTPUTDIR)/modules/openjceplus:$(JDK_OUTPUTDIR)/modules/java.base OPENJCEPLUS_JGSKIT_MAKE := jgskit.mak OPENJCEPLUS_JGSKIT_MAKE_PATH := $(OPENJCEPLUS_TOPDIR)/src/main/native OPENJCEPLUS_JGSKIT_PLATFORM := -OPENJCEPLUS_VS_LIB := ifeq ($(call isTargetOs, aix), true) OPENJCEPLUS_JGSKIT_PLATFORM := ppc-aix64 @@ -43,12 +44,13 @@ else ifeq ($(call isTargetOs, linux), true) endif else ifeq ($(call isTargetOs, windows), true) ifeq ($(call isTargetCpu, x86_64), true) - OPENJCEPLUS_BOOT_JDK := $(call MixedPath,$(OPENJCEPLUS_BOOT_JDK)) + EXPORT_COMPILER_ENV_VARS := LIB='$(OPENJ9_VS_LIB)' + OPENJCEPLUS_JDK := $(call MixedPath,$(OPENJCEPLUS_JDK)) OPENJCEPLUS_GSKIT_HOME := $(call MixedPath,$(OPENJCEPLUS_GSKIT_HOME)) - OPENJCEPLUS_JCE_CLASSPATH := "$(call MixedPath,$(JDK_OUTPUTDIR)/modules/openjceplus)\;$(call MixedPath,$(JDK_OUTPUTDIR)/modules/java.base)" + OPENJCEPLUS_HEADER_FILES := $(call MixedPath,$(OPENJCEPLUS_HEADER_FILES)) + OPENJCEPLUS_JCE_CLASSPATH := "$(call MixedPath,$(JDK_OUTPUTDIR)/modules/openjceplus);$(call MixedPath,$(JDK_OUTPUTDIR)/modules/java.base)" OPENJCEPLUS_JGSKIT_MAKE := jgskit.win64.mak OPENJCEPLUS_JGSKIT_PLATFORM := win64 - OPENJCEPLUS_VS_LIB := LIB='$(OPENJ9_VS_LIB)' endif endif @@ -60,13 +62,17 @@ endif # OPENJCEPLUS_JGSKIT_PLATFORM compile-libs : @$(ECHO) Compiling OpenJCEPlus native code - export \ - $(OPENJCEPLUS_VS_LIB) \ + $(EXPORT_COMPILER_ENV_VARS) \ + $(MAKE) \ + -C $(OPENJCEPLUS_JGSKIT_MAKE_PATH) \ + -f $(OPENJCEPLUS_JGSKIT_MAKE) \ + EXTERNAL_HEADERS=true \ GSKIT_HOME=$(OPENJCEPLUS_GSKIT_HOME) \ - JAVA_HOME=$(OPENJCEPLUS_BOOT_JDK) \ + JAVA_HOME=$(OPENJCEPLUS_JDK) \ JCE_CLASSPATH=$(OPENJCEPLUS_JCE_CLASSPATH) \ + OPENJCEPLUS_HEADER_FILES=$(OPENJCEPLUS_HEADER_FILES) \ PLATFORM=$(OPENJCEPLUS_JGSKIT_PLATFORM) \ - && $(MAKE) -j1 -C $(OPENJCEPLUS_JGSKIT_MAKE_PATH) -f $(OPENJCEPLUS_JGSKIT_MAKE) all + all @$(ECHO) OpenJCEplus compile complete TARGETS += compile-libs From 3755cea8cc81930715822c4bf264b90e8fe2f53f Mon Sep 17 00:00:00 2001 From: Jiangli Zhou Date: Sat, 2 Nov 2024 01:11:20 +0000 Subject: [PATCH 070/159] 8339128: Cannot resolve user specified tool properly after JDK-8338304 Reviewed-by: erikj, ihse --- make/autoconf/flags-ldflags.m4 | 4 +++- make/autoconf/toolchain.m4 | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/make/autoconf/flags-ldflags.m4 b/make/autoconf/flags-ldflags.m4 index 8183a0af7d0..bdbc898f987 100644 --- a/make/autoconf/flags-ldflags.m4 +++ b/make/autoconf/flags-ldflags.m4 @@ -73,7 +73,9 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER], if test "x$OPENJDK_TARGET_OS" = xlinux; then # Clang needs the lld linker to work correctly BASIC_LDFLAGS="-fuse-ld=lld -Wl,--exclude-libs,ALL" - UTIL_REQUIRE_PROGS(LLD, lld) + if test "x$CXX_IS_USER_SUPPLIED" = xfalse && test "x$CC_IS_USER_SUPPLIED" = xfalse; then + UTIL_REQUIRE_PROGS(LLD, lld) + fi fi if test "x$OPENJDK_TARGET_OS" = xaix; then BASIC_LDFLAGS="-Wl,-b64 -Wl,-brtl -Wl,-bnorwexec -Wl,-bnolibpath -Wl,-bnoexpall \ diff --git a/make/autoconf/toolchain.m4 b/make/autoconf/toolchain.m4 index d84ae447e54..c240b9098bc 100644 --- a/make/autoconf/toolchain.m4 +++ b/make/autoconf/toolchain.m4 @@ -445,6 +445,7 @@ AC_DEFUN([TOOLCHAIN_FIND_COMPILER], AC_MSG_ERROR([User supplied compiler $1=[$]$1 does not exist]) fi fi + $1_IS_USER_SUPPLIED=true else # No user supplied value. Locate compiler ourselves. @@ -462,6 +463,7 @@ AC_DEFUN([TOOLCHAIN_FIND_COMPILER], HELP_MSG_MISSING_DEPENDENCY([devkit]) AC_MSG_ERROR([Could not find a $COMPILER_NAME compiler. $HELP_MSG]) fi + $1_IS_USER_SUPPLIED=false fi # Now we have a compiler binary in $1. Make sure it's okay. From 960dd32a7f5a289ace69a6c4d417cdcde1863697 Mon Sep 17 00:00:00 2001 From: Archie Cobbs Date: Sat, 2 Nov 2024 02:32:02 +0000 Subject: [PATCH 071/159] 8343412: Missing escapes for single quote marks in javac.properties Reviewed-by: vromero --- .../com/sun/tools/javac/resources/javac.properties | 10 +++++----- .../langtools/tools/javac/diags/CheckResourceKeys.java | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties index 2b48676e6b8..28a89ee3072 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties @@ -148,7 +148,7 @@ javac.opt.maxerrs=\ javac.opt.maxwarns=\ Set the maximum number of warnings to print javac.opt.nogj=\ - Don't accept generics in the language + Don''t accept generics in the language javac.opt.moreinfo=\ Print extended information for type variables javac.opt.printsearch=\ @@ -178,7 +178,7 @@ javac.opt.arg.Xlint=\ (,)* javac.opt.Xlint.custom=\ Warnings to enable or disable, separated by comma.\n\ - Precede a key by '-' to disable the specified warning.\n\ + Precede a key by ''-'' to disable the specified warning.\n\ Use --help-lint to see the supported keys. javac.opt.Xlint.desc.auxiliaryclass=\ Warn about an auxiliary class that is hidden in a source file, and is used from other files. @@ -313,9 +313,9 @@ javac.opt.Xdoclint.package.args = \ javac.opt.Xdoclint.package.desc=\ Enable or disable checks in specific packages. Each is either\n\ - the qualified name of a package or a package name prefix followed by '.*',\n\ + a qualified package name or a package name prefix followed by ''.*'',\n\ which expands to all sub-packages of the given package. Each \n\ - can be prefixed with '-' to disable checks for the specified package(s). + can be prefixed with ''-'' to disable checks for the specified package(s). javac.opt.Xstdout=\ Redirect standard output @@ -382,7 +382,7 @@ javac.opt.default.module.for.created.files=\ Fallback target module for files created by annotation processors,\n\ if none specified or inferred. javac.opt.lineDocComments=\ - Disable support for documentation comments with lines beginning '///' + Disable support for documentation comments with lines beginning ''///'' ## messages diff --git a/test/langtools/tools/javac/diags/CheckResourceKeys.java b/test/langtools/tools/javac/diags/CheckResourceKeys.java index e69d023130a..65d4ed24cb3 100644 --- a/test/langtools/tools/javac/diags/CheckResourceKeys.java +++ b/test/langtools/tools/javac/diags/CheckResourceKeys.java @@ -524,7 +524,7 @@ Set getResourceKeys() { List getMessageFormatBundles() { Module jdk_compiler = ModuleLayer.boot().findModule("jdk.compiler").get(); List results = new ArrayList<>(); - for (String name : new String[]{"compiler", "launcher"}) { + for (String name : new String[]{"javac", "compiler", "launcher"}) { ResourceBundle b = ResourceBundle.getBundle("com.sun.tools.javac.resources." + name, jdk_compiler); results.add(b); From 5bcb5adea95151f1a3a161e66eb8d7ff35e56188 Mon Sep 17 00:00:00 2001 From: Andrey Turbanov Date: Sat, 2 Nov 2024 08:33:56 +0000 Subject: [PATCH 072/159] 8342082: Remove unused BasicProgressBarUI.Animator.interval Reviewed-by: prr, honkar --- .../swing/plaf/basic/BasicProgressBarUI.java | 42 +++++++++++++------ 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicProgressBarUI.java b/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicProgressBarUI.java index 74ba5272554..724901b4bcd 100644 --- a/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicProgressBarUI.java +++ b/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicProgressBarUI.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,17 +25,36 @@ package javax.swing.plaf.basic; -import sun.swing.SwingUtilities2; -import java.awt.*; +import java.awt.BasicStroke; +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.FontMetrics; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Insets; +import java.awt.Point; +import java.awt.Rectangle; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.HierarchyEvent; +import java.awt.event.HierarchyListener; import java.awt.geom.AffineTransform; -import java.awt.event.*; -import javax.swing.*; -import javax.swing.event.*; -import javax.swing.plaf.*; +import javax.swing.BoundedRangeModel; +import javax.swing.JComponent; +import javax.swing.JProgressBar; +import javax.swing.LookAndFeel; +import javax.swing.SwingUtilities; +import javax.swing.Timer; +import javax.swing.UIManager; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import javax.swing.plaf.ComponentUI; +import javax.swing.plaf.ProgressBarUI; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeEvent; -import java.io.Serializable; import sun.swing.DefaultLookup; +import sun.swing.SwingUtilities2; /** * A Basic L&F implementation of ProgressBarUI. @@ -1224,9 +1243,8 @@ private void initAnimationIndex() { private class Animator implements ActionListener { private Timer timer; private long previousDelay; //used to tune the repaint interval - private int interval; //the fixed repaint interval private long lastCall; //the last time actionPerformed was called - private int MINIMUM_DELAY = 5; + private static final int MINIMUM_DELAY = 5; /** * Creates a timer if one doesn't already exist, @@ -1267,9 +1285,9 @@ public void actionPerformed(ActionEvent e) { if (lastCall > 0) { //adjust nextDelay //XXX maybe should cache this after a while //actual = time - lastCall - //difference = actual - interval + //difference = actual - repaintInterval //nextDelay = previousDelay - difference - // = previousDelay - (time - lastCall - interval) + // = previousDelay - (time - lastCall - repaintInterval) int nextDelay = (int)(previousDelay - time + lastCall + getRepaintInterval()); From 335a340de18fcba7157107e68d3053133114b909 Mon Sep 17 00:00:00 2001 From: Alexey Semenyuk Date: Sat, 2 Nov 2024 12:44:17 +0000 Subject: [PATCH 073/159] 8340311: JPackage app-image exe launches multiple exe's in JDK 22+ Reviewed-by: almatvee --- .../share/native/applauncher/AppLauncher.cpp | 39 +++-- .../share/native/applauncher/AppLauncher.h | 13 +- .../share/native/applauncher/CfgFile.cpp | 17 +- .../share/native/applauncher/CfgFile.h | 10 +- .../native/applauncher/WinLauncher.cpp | 33 +++- .../helpers/jdk/jpackage/test/CfgFile.java | 115 ++++++++++---- .../jdk/jpackage/test/JPackageCommand.java | 34 ++-- .../test/LauncherAsServiceVerifier.java | 8 +- .../jdk/jpackage/test/WindowsHelper.java | 95 ++++++++++- .../share/jdk/jpackage/tests/BasicTest.java | 2 +- .../jpackage/windows/Win8301247Test.java | 86 +--------- .../jpackage/windows/WinChildProcessTest.java | 12 +- .../jpackage/windows/WinNoRestartTest.java | 149 ++++++++++++++++++ 13 files changed, 461 insertions(+), 152 deletions(-) create mode 100644 test/jdk/tools/jpackage/windows/WinNoRestartTest.java diff --git a/src/jdk.jpackage/share/native/applauncher/AppLauncher.cpp b/src/jdk.jpackage/share/native/applauncher/AppLauncher.cpp index e1628cd0f6f..96e8885e6ab 100644 --- a/src/jdk.jpackage/share/native/applauncher/AppLauncher.cpp +++ b/src/jdk.jpackage/share/native/applauncher/AppLauncher.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,6 +38,7 @@ AppLauncher::AppLauncher() { setInitJvmFromCmdlineOnly(false); launcherPath = SysInfo::getProcessModulePath(); args = SysInfo::getCommandArgs(); + externalCfgFile = nullptr; } @@ -110,22 +111,18 @@ bool AppLauncher::libEnvVariableContainsAppDir() const { } Jvm* AppLauncher::createJvmLauncher() const { - const tstring cfgFilePath = getCfgFilePath(); - - LOG_TRACE(tstrings::any() << "Launcher config file path: \"" - << cfgFilePath << "\""); - - CfgFile::Macros macros; - macros[_T("$APPDIR")] = appDirPath; - macros[_T("$BINDIR")] = FileUtils::dirname(launcherPath); - macros[_T("$ROOTDIR")] = imageRoot; - - CfgFile cfgFile = CfgFile::load(cfgFilePath).expandMacros(macros); + CfgFile cfgFile; + if (externalCfgFile) { + cfgFile = *externalCfgFile; + } else { + std::unique_ptr createdCfgFile(createCfgFile()); + cfgFile.swap(*createdCfgFile); + } if (!args.empty()) { // Override default launcher arguments. cfgFile.setPropertyValue(SectionName::ArgOptions, - PropertyName::arguments, args); + PropertyName::arguments, args); } std::unique_ptr jvm(new Jvm()); @@ -160,6 +157,22 @@ void AppLauncher::launch() const { } +CfgFile* AppLauncher::createCfgFile() const { + const tstring cfgFilePath = getCfgFilePath(); + + LOG_TRACE(tstrings::any() << "Launcher config file path: \"" + << cfgFilePath << "\""); + + CfgFile::Macros macros; + macros[_T("$APPDIR")] = appDirPath; + macros[_T("$BINDIR")] = FileUtils::dirname(launcherPath); + macros[_T("$ROOTDIR")] = imageRoot; + std::unique_ptr dummy(new CfgFile()); + CfgFile::load(cfgFilePath).expandMacros(macros).swap(*dummy); + return dummy.release(); +} + + tstring AppLauncher::getCfgFilePath() const { tstring_array::const_iterator it = cfgFileLookupDirs.begin(); tstring_array::const_iterator end = cfgFileLookupDirs.end(); diff --git a/src/jdk.jpackage/share/native/applauncher/AppLauncher.h b/src/jdk.jpackage/share/native/applauncher/AppLauncher.h index 104c7609380..13491046ae1 100644 --- a/src/jdk.jpackage/share/native/applauncher/AppLauncher.h +++ b/src/jdk.jpackage/share/native/applauncher/AppLauncher.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -30,6 +30,7 @@ #include "tstrings.h" class Jvm; +class CfgFile; class AppLauncher { public: @@ -70,14 +71,21 @@ class AppLauncher { return *this; } + AppLauncher& setCfgFile(const CfgFile* v) { + externalCfgFile = v; + return *this; + } + bool libEnvVariableContainsAppDir() const; Jvm* createJvmLauncher() const; void launch() const; + CfgFile* createCfgFile() const; + private: - tstring getCfgFilePath() const; + tstring getCfgFilePath() const; private: tstring_array args; @@ -89,6 +97,7 @@ class AppLauncher { tstring_array jvmLibNames; tstring_array cfgFileLookupDirs; bool initJvmFromCmdlineOnly; + const CfgFile* externalCfgFile; }; #endif // AppLauncher_h diff --git a/src/jdk.jpackage/share/native/applauncher/CfgFile.cpp b/src/jdk.jpackage/share/native/applauncher/CfgFile.cpp index 0d220288f0f..b5049334b64 100644 --- a/src/jdk.jpackage/share/native/applauncher/CfgFile.cpp +++ b/src/jdk.jpackage/share/native/applauncher/CfgFile.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -234,6 +234,20 @@ tstring CfgFile::asString(Properties::const_reference property) { return *property.second.rbegin(); } +bool CfgFile::asBoolean(Properties::const_reference property) { + const auto str = asString(property); + if (tstrings::equals(str, _T("true"), tstrings::IGNORE_CASE)) { + return true; + } + + // Parse integer. + tistringstream iss(str); + int intValue = 0; + iss >> intValue; + + return intValue != 0; +} + tstring CfgFile::asPathList(Properties::const_reference property) { return join(property.second, FileUtils::pathSeparator); } @@ -276,6 +290,7 @@ namespace { JP_PROPERTY(memory, "app.memory"); \ JP_PROPERTY(arguments, "arguments"); \ JP_PROPERTY(javaOptions, "java-options"); \ + JP_PROPERTY(winNorestart, "win.norestart"); \ namespace PropertyName { #define JP_PROPERTY(varName, name) const CfgFile::PropertyName varName(_T(name)) diff --git a/src/jdk.jpackage/share/native/applauncher/CfgFile.h b/src/jdk.jpackage/share/native/applauncher/CfgFile.h index 47fc8320e64..03f70d94fde 100644 --- a/src/jdk.jpackage/share/native/applauncher/CfgFile.h +++ b/src/jdk.jpackage/share/native/applauncher/CfgFile.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -85,6 +85,11 @@ class CfgFile { CfgFile& setPropertyValue(const SectionName& sectionName, const PropertyName& name, const tstring_array& value); + void swap(CfgFile& other) { + std::swap(data, other.data); + std::swap(empty, other.empty); + } + typedef std::map Macros; /** @@ -96,6 +101,8 @@ class CfgFile { static tstring asString(Properties::const_reference property); + static bool asBoolean(Properties::const_reference property); + static tstring asPathList(Properties::const_reference property); typedef std::map PropertyMap; @@ -126,6 +133,7 @@ namespace PropertyName { extern const CfgFile::PropertyName memory; extern const CfgFile::PropertyName arguments; extern const CfgFile::PropertyName javaOptions; + extern const CfgFile::PropertyName winNorestart; } // namespace AppPropertyName #endif // CfgFile_h diff --git a/src/jdk.jpackage/windows/native/applauncher/WinLauncher.cpp b/src/jdk.jpackage/windows/native/applauncher/WinLauncher.cpp index 119cbbd79c5..5323643cddd 100644 --- a/src/jdk.jpackage/windows/native/applauncher/WinLauncher.cpp +++ b/src/jdk.jpackage/windows/native/applauncher/WinLauncher.cpp @@ -28,6 +28,7 @@ #include #include +#include "CfgFile.h" #include "AppLauncher.h" #include "JvmLauncher.h" #include "Log.h" @@ -226,6 +227,35 @@ class RunExecutorWithMsgLoop { }; +bool needRestartLauncher(AppLauncher& appLauncher, CfgFile& cfgFile) { + if (appLauncher.libEnvVariableContainsAppDir()) { + return false; + } + + std::unique_ptr(appLauncher.createCfgFile())->swap(cfgFile); + + const CfgFile::Properties& appOptions = cfgFile.getProperties( + SectionName::Application); + + const CfgFile::Properties::const_iterator winNorestart = appOptions.find( + PropertyName::winNorestart); + + bool result; + if (winNorestart != appOptions.end()) { + const bool norestart = CfgFile::asBoolean(*winNorestart); + LOG_TRACE(tstrings::any() << PropertyName::winNorestart.name() << "=" + << (norestart ? "true" : "false") << " from config file"); + result = !norestart; + } else { + result = true; + } + + appLauncher.setCfgFile(&cfgFile); + + return result; +} + + void launchApp() { // [RT-31061] otherwise UI can be left in back of other windows. ::AllowSetForegroundWindow(ASFW_ANY); @@ -248,7 +278,8 @@ void launchApp() { addCfgFileLookupDirForEnvVariable(pkgFile, appLauncher, _T("APPDATA")); } - const bool restart = !appLauncher.libEnvVariableContainsAppDir(); + CfgFile dummyCfgFile; + const bool restart = needRestartLauncher(appLauncher, dummyCfgFile); std::unique_ptr jvm(appLauncher.createJvmLauncher()); diff --git a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/CfgFile.java b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/CfgFile.java index ba2485516a9..9df28b3915e 100644 --- a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/CfgFile.java +++ b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/CfgFile.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,61 +25,108 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import java.util.ArrayList; import java.util.Collections; -import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Optional; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.stream.Stream; public final class CfgFile { - public String getValue(String section, String key) { - Objects.requireNonNull(section); - Objects.requireNonNull(key); + public String getValue(String sectionName, String key) { + var section = getSection(sectionName); + TKit.assertTrue(section != null, String.format( + "Check section [%s] is found in [%s] cfg file", sectionName, id)); - Map entries = data.get(section); - TKit.assertTrue(entries != null, String.format( - "Check section [%s] is found in [%s] cfg file", section, id)); - - String value = entries.get(key); + String value = section.getValue(key); TKit.assertNotNull(value, String.format( "Check key [%s] is found in [%s] section of [%s] cfg file", key, - section, id)); + sectionName, id)); return value; } - public String getValueUnchecked(String section, String key) { - Objects.requireNonNull(section); - Objects.requireNonNull(key); + public String getValueUnchecked(String sectionName, String key) { + var section = getSection(sectionName); + if (section != null) { + return section.getValue(key); + } else { + return null; + } + } + + public void addValue(String sectionName, String key, String value) { + var section = getSection(sectionName); + if (section == null) { + section = new Section(sectionName, new ArrayList<>()); + data.add(section); + } + section.data.add(Map.entry(key, value)); + } + + public CfgFile() { + this(new ArrayList<>(), "*"); + } - return Optional.ofNullable(data.get(section)).map(v -> v.get(key)).orElse( - null); + public static CfgFile combine(CfgFile base, CfgFile mods) { + var cfgFile = new CfgFile(new ArrayList<>(), "*"); + for (var src : List.of(base, mods)) { + for (var section : src.data) { + for (var kvp : section.data) { + cfgFile.addValue(section.name, kvp.getKey(), kvp.getValue()); + } + } + } + return cfgFile; } - private CfgFile(Map> data, String id) { + private CfgFile(List

    data, String id) { this.data = data; this.id = id; } - public static CfgFile readFromFile(Path path) throws IOException { + public void save(Path path) { + var lines = data.stream().flatMap(section -> { + return Stream.concat( + Stream.of(String.format("[%s]", section.name)), + section.data.stream().map(kvp -> { + return String.format("%s=%s", kvp.getKey(), kvp.getValue()); + })); + }); + TKit.createTextFile(path, lines); + } + + private Section getSection(String name) { + Objects.requireNonNull(name); + for (var section : data.reversed()) { + if (name.equals(section.name)) { + return section; + } + } + return null; + } + + public static CfgFile load(Path path) throws IOException { TKit.trace(String.format("Read [%s] jpackage cfg file", path)); final Pattern sectionBeginRegex = Pattern.compile( "\\s*\\[([^]]*)\\]\\s*"); final Pattern keyRegex = Pattern.compile( "\\s*([^=]*)=(.*)" ); - Map> result = new HashMap<>(); + List
    sections = new ArrayList<>(); String currentSectionName = null; - Map currentSection = new HashMap<>(); + List> currentSection = new ArrayList<>(); for (String line : Files.readAllLines(path)) { Matcher matcher = sectionBeginRegex.matcher(line); if (matcher.find()) { if (currentSectionName != null) { - result.put(currentSectionName, Collections.unmodifiableMap( - new HashMap<>(currentSection))); + sections.add(new Section(currentSectionName, + Collections.unmodifiableList(new ArrayList<>( + currentSection)))); } currentSectionName = matcher.group(1); currentSection.clear(); @@ -88,19 +135,31 @@ public static CfgFile readFromFile(Path path) throws IOException { matcher = keyRegex.matcher(line); if (matcher.find()) { - currentSection.put(matcher.group(1), matcher.group(2)); - continue; + currentSection.add(Map.entry(matcher.group(1), matcher.group(2))); } } if (!currentSection.isEmpty()) { - result.put(Optional.ofNullable(currentSectionName).orElse(""), - Collections.unmodifiableMap(currentSection)); + sections.add(new Section( + Optional.ofNullable(currentSectionName).orElse(""), + Collections.unmodifiableList(currentSection))); } - return new CfgFile(Collections.unmodifiableMap(result), path.toString()); + return new CfgFile(sections, path.toString()); + } + + private static record Section(String name, List> data) { + String getValue(String key) { + Objects.requireNonNull(key); + for (var kvp : data.reversed()) { + if (key.equals(kvp.getKey())) { + return kvp.getValue(); + } + } + return null; + } } - private final Map> data; + private final List
    data; private final String id; } diff --git a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java index 99cb61b17d3..d4219704934 100644 --- a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java +++ b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java @@ -630,8 +630,18 @@ public Path appLauncherCfgPath(String launcherName) { } public boolean isFakeRuntime(String msg) { - Path runtimeDir = appRuntimeDirectory(); + if (isFakeRuntime()) { + // Fake runtime + Path runtimeDir = appRuntimeDirectory(); + TKit.trace(String.format( + "%s because application runtime directory [%s] is incomplete", + msg, runtimeDir)); + return true; + } + return false; + } + private boolean isFakeRuntime() { final Collection criticalRuntimeFiles; if (TKit.isWindows()) { criticalRuntimeFiles = WindowsHelper.CRITICAL_RUNTIME_FILES; @@ -643,16 +653,9 @@ public boolean isFakeRuntime(String msg) { throw TKit.throwUnknownPlatformError(); } - if (!criticalRuntimeFiles.stream().anyMatch(v -> { - return runtimeDir.resolve(v).toFile().exists(); - })) { - // Fake runtime - TKit.trace(String.format( - "%s because application runtime directory [%s] is incomplete", - msg, runtimeDir)); - return true; - } - return false; + Path runtimeDir = appRuntimeDirectory(); + return !criticalRuntimeFiles.stream().map(runtimeDir::resolve).allMatch( + Files::exists); } public boolean canRunLauncher(String msg) { @@ -723,6 +726,13 @@ public JPackageCommand ignoreDefaultRuntime(boolean v) { return this; } + public JPackageCommand ignoreFakeRuntime() { + if (isFakeRuntime()) { + ignoreDefaultRuntime(true); + } + return this; + } + public JPackageCommand ignoreDefaultVerbose(boolean v) { verifyMutable(); ignoreDefaultVerbose = v; @@ -1063,7 +1073,7 @@ public CfgFile readLauncherCfgFile(String launcherName) { if (isRuntime()) { return null; } - return ThrowingFunction.toFunction(CfgFile::readFromFile).apply( + return ThrowingFunction.toFunction(CfgFile::load).apply( appLauncherCfgPath(launcherName)); } diff --git a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherAsServiceVerifier.java b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherAsServiceVerifier.java index b7ebc4939ba..026da0df0eb 100644 --- a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherAsServiceVerifier.java +++ b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherAsServiceVerifier.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,7 +43,7 @@ public final class LauncherAsServiceVerifier { - public final static class Builder { + public static final class Builder { public Builder setExpectedValue(String v) { expectedValue = v; @@ -215,7 +215,7 @@ private boolean canVerifyInstall(JPackageCommand cmd) throws IOException { if (cmd.isPackageUnpacked(msg) || cmd.isFakeRuntime(msg)) { return false; } - var cfgFile = CfgFile.readFromFile(cmd.appLauncherCfgPath(launcherName)); + var cfgFile = CfgFile.load(cmd.appLauncherCfgPath(launcherName)); if (!expectedValue.equals(cfgFile.getValueUnchecked("ArgOptions", "arguments"))) { TKit.trace(String.format( @@ -368,6 +368,6 @@ private Path appOutputFilePathVerify(JPackageCommand cmd) { private final Path appOutputFileName; private final Consumer additionalLauncherCallback; - final static Set SUPPORTED_PACKAGES = Stream.of(LINUX, WINDOWS, + static final Set SUPPORTED_PACKAGES = Stream.of(LINUX, WINDOWS, Set.of(MAC_PKG)).flatMap(x -> x.stream()).collect(Collectors.toSet()); } diff --git a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WindowsHelper.java b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WindowsHelper.java index b7fd904325d..338ff7a767b 100644 --- a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WindowsHelper.java +++ b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WindowsHelper.java @@ -28,9 +28,12 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Optional; import java.util.Set; import java.util.function.BiConsumer; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; import java.util.stream.Stream; import jdk.jpackage.test.Functional.ThrowingRunnable; @@ -228,6 +231,90 @@ public static String getExecutableDesciption(Path pathToExeFile) { "Failed to get file description of [%s]", pathToExeFile)); } + public static void killProcess(long pid) { + Executor.of("taskkill", "/F", "/PID", Long.toString(pid)).dumpOutput(true).execute(); + } + + public static void killAppLauncherProcess(JPackageCommand cmd, + String launcherName, int expectedCount) { + var pids = findAppLauncherPIDs(cmd, launcherName); + try { + TKit.assertEquals(expectedCount, pids.length, String.format( + "Check [%d] %s app launcher processes found running", + expectedCount, Optional.ofNullable(launcherName).map( + str -> "[" + str + "]").orElse("
    "))); + } finally { + if (pids.length != 0) { + killProcess(pids[0]); + } + } + } + + private static long[] findAppLauncherPIDs(JPackageCommand cmd, String launcherName) { + // Get the list of PIDs and PPIDs of app launcher processes. + // wmic process where (name = "foo.exe") get ProcessID,ParentProcessID + List output = Executor.of("wmic", "process", "where", "(name", + "=", + "\"" + cmd.appLauncherPath(launcherName).getFileName().toString() + "\"", + ")", "get", "ProcessID,ParentProcessID").dumpOutput(true). + saveOutput().executeAndGetOutput(); + + if ("No Instance(s) Available.".equals(output.getFirst().trim())) { + return new long[0]; + } + + String[] headers = Stream.of(output.getFirst().split("\\s+", 2)).map( + String::trim).map(String::toLowerCase).toArray(String[]::new); + Pattern pattern; + if (headers[0].equals("parentprocessid") && headers[1].equals( + "processid")) { + pattern = Pattern.compile("^(?\\d+)\\s+(?\\d+)\\s+$"); + } else if (headers[1].equals("parentprocessid") && headers[0].equals( + "processid")) { + pattern = Pattern.compile("^(?\\d+)\\s+(?\\d+)\\s+$"); + } else { + throw new RuntimeException( + "Unrecognizable output of \'wmic process\' command"); + } + + List processes = output.stream().skip(1).map(line -> { + Matcher m = pattern.matcher(line); + long[] pids = null; + if (m.matches()) { + pids = new long[]{Long.parseLong(m.group("pid")), Long. + parseLong(m.group("ppid"))}; + } + return pids; + }).filter(Objects::nonNull).toList(); + + switch (processes.size()) { + case 2 -> { + final long parentPID; + final long childPID; + if (processes.get(0)[0] == processes.get(1)[1]) { + parentPID = processes.get(0)[0]; + childPID = processes.get(1)[0]; + } else if (processes.get(1)[0] == processes.get(0)[1]) { + parentPID = processes.get(1)[0]; + childPID = processes.get(0)[0]; + } else { + TKit.assertUnexpected("App launcher processes unrelated"); + return null; // Unreachable + } + return new long[]{parentPID, childPID}; + } + case 1 -> { + return new long[]{processes.get(0)[0]}; + } + default -> { + TKit.assertUnexpected(String.format( + "Unexpected number of running processes [%d]", + processes.size())); + return null; // Unreachable + } + } + } + private static boolean isUserLocalInstall(JPackageCommand cmd) { return cmd.hasArgument("--win-per-user-install"); } @@ -458,15 +545,15 @@ private static String queryRegistryValueCache(String keyPath, "bin\\server\\jvm.dll")); // jtreg resets %ProgramFiles% environment variable by some reason. - private final static Path PROGRAM_FILES = Path.of(Optional.ofNullable( + private static final Path PROGRAM_FILES = Path.of(Optional.ofNullable( System.getenv("ProgramFiles")).orElse("C:\\Program Files")); - private final static Path USER_LOCAL = Path.of(System.getProperty( + private static final Path USER_LOCAL = Path.of(System.getProperty( "user.home"), "AppData", "Local"); - private final static String SYSTEM_SHELL_FOLDERS_REGKEY = "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders"; - private final static String USER_SHELL_FOLDERS_REGKEY = "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders"; + private static final String SYSTEM_SHELL_FOLDERS_REGKEY = "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders"; + private static final String USER_SHELL_FOLDERS_REGKEY = "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders"; private static final Map REGISTRY_VALUES = new HashMap<>(); } diff --git a/test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java b/test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java index 5118600d341..8d62dc291b4 100644 --- a/test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java +++ b/test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java @@ -79,7 +79,7 @@ public void testJpackageProps() { .saveConsoleOutput(true) .addArguments("--app-version", appVersion, "--arguments", "jpackage.app-version jpackage.app-path") - .ignoreDefaultRuntime(true); + .ignoreFakeRuntime(); cmd.executeAndAssertImageCreated(); Path launcherPath = cmd.appLauncherPath(); diff --git a/test/jdk/tools/jpackage/windows/Win8301247Test.java b/test/jdk/tools/jpackage/windows/Win8301247Test.java index 67163ee5c60..f61bb2b6e53 100644 --- a/test/jdk/tools/jpackage/windows/Win8301247Test.java +++ b/test/jdk/tools/jpackage/windows/Win8301247Test.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,19 +23,12 @@ import java.io.IOException; import java.time.Duration; -import java.util.List; -import java.util.Objects; -import java.util.Optional; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.stream.Stream; import jdk.jpackage.test.JPackageCommand; import jdk.jpackage.test.Annotations.Test; -import jdk.jpackage.test.Executor; import jdk.jpackage.test.HelloApp; -import jdk.jpackage.test.TKit; +import static jdk.jpackage.test.WindowsHelper.killAppLauncherProcess; /** * Test that terminating of the parent app launcher process automatically @@ -57,17 +50,13 @@ public class Win8301247Test { @Test public void test() throws IOException, InterruptedException { - JPackageCommand cmd = JPackageCommand.helloAppImage(); + var cmd = JPackageCommand.helloAppImage().ignoreFakeRuntime(); // Launch the app in a way it doesn't exit to let us trap app laucnher // processes in the process list cmd.addArguments("--java-options", "-Djpackage.test.noexit=true"); cmd.executeAndAssertImageCreated(); - if (!cmd.canRunLauncher("Not running the test")) { - return; - } - try ( // Launch the app in a separate thread ExecutorService exec = Executors.newSingleThreadExecutor()) { exec.execute(() -> { @@ -77,76 +66,13 @@ public void test() throws IOException, InterruptedException { // Wait a bit to let the app start Thread.sleep(Duration.ofSeconds(10)); - // Get PID of the main app launcher process - final long pid = findMainAppLauncherPID(cmd, 2).get(); - - // Kill the main app launcher process - Executor.of("taskkill", "/F", "/PID", Long.toString(pid)). - dumpOutput(true).execute(); + // Find the main app launcher process and kill it + killAppLauncherProcess(cmd, null, 2); // Wait a bit and check if child app launcher process is still running (it must NOT) Thread.sleep(Duration.ofSeconds(5)); - findMainAppLauncherPID(cmd, 0); - } - } - - private static Optional findMainAppLauncherPID(JPackageCommand cmd, - int expectedCount) { - // Get the list of PIDs and PPIDs of app launcher processes. - // wmic process where (name = "foo.exe") get ProcessID,ParentProcessID - List output = Executor.of("wmic", "process", "where", "(name", - "=", - "\"" + cmd.appLauncherPath().getFileName().toString() + "\"", - ")", "get", "ProcessID,ParentProcessID").dumpOutput(true). - saveOutput().executeAndGetOutput(); - - if (expectedCount == 0) { - TKit.assertEquals("No Instance(s) Available.", output.getFirst(). - trim(), "Check no app launcher processes found running"); - return Optional.empty(); - } - - String[] headers = Stream.of(output.getFirst().split("\\s+", 2)).map( - String::trim).map(String::toLowerCase).toArray(String[]::new); - Pattern pattern; - if (headers[0].equals("parentprocessid") && headers[1].equals( - "processid")) { - pattern = Pattern.compile("^(?\\d+)\\s+(?\\d+)\\s+$"); - } else if (headers[1].equals("parentprocessid") && headers[0].equals( - "processid")) { - pattern = Pattern.compile("^(?\\d+)\\s+(?\\d+)\\s+$"); - } else { - throw new RuntimeException( - "Unrecognizable output of \'wmic process\' command"); - } - - List processes = output.stream().skip(1).map(line -> { - Matcher m = pattern.matcher(line); - long[] pids = null; - if (m.matches()) { - pids = new long[]{Long.parseLong(m.group("pid")), Long. - parseLong(m.group("ppid"))}; - } - return pids; - }).filter(Objects::nonNull).toList(); - - TKit.assertEquals(expectedCount, processes.size(), String.format( - "Check [%d] app launcher processes found running", expectedCount)); - - switch (expectedCount) { - case 2 -> { - if (processes.get(0)[0] == processes.get(1)[1]) { - return Optional.of(processes.get(0)[0]); - } else if (processes.get(1)[0] == processes.get(0)[1]) { - return Optional.of(processes.get(1)[0]); - } else { - throw new RuntimeException( - "App launcher processes unrelated"); - } - } - default -> - throw new IllegalArgumentException(); + killAppLauncherProcess(cmd, null, 0); } } } diff --git a/test/jdk/tools/jpackage/windows/WinChildProcessTest.java b/test/jdk/tools/jpackage/windows/WinChildProcessTest.java index 4fa7581d2b5..a61191d8a4e 100644 --- a/test/jdk/tools/jpackage/windows/WinChildProcessTest.java +++ b/test/jdk/tools/jpackage/windows/WinChildProcessTest.java @@ -28,7 +28,6 @@ * @library ../helpers * @library /test/lib * @requires os.family == "windows" - * @build WinChildProcessTest * @build jdk.jpackage.test.* * @build WinChildProcessTest * @modules jdk.jpackage/jdk.jpackage.internal @@ -46,13 +45,14 @@ import jdk.jpackage.test.Annotations.Test; import jdk.jpackage.test.Executor; import jdk.jpackage.test.TKit; +import static jdk.jpackage.test.WindowsHelper.killProcess; public class WinChildProcessTest { private static final Path TEST_APP_JAVA = TKit.TEST_SRC_ROOT .resolve("apps/ChildProcessAppLauncher.java"); @Test - public static void test() throws Throwable { + public static void test() { long childPid = 0; try { JPackageCommand cmd = JPackageCommand @@ -78,10 +78,12 @@ public static void test() throws Throwable { Optional processHandle = ProcessHandle.of(childPid); boolean isAlive = processHandle.isPresent() && processHandle.get().isAlive(); - TKit.assertTrue(isAlive, "Check is child process is alive"); + TKit.assertTrue(isAlive, "Check child process is alive"); } finally { - // Kill only a specific child instance - Runtime.getRuntime().exec("taskkill /F /PID " + childPid); + if (childPid != 0) { + // Kill only a specific child instance + killProcess(childPid); + } } } } diff --git a/test/jdk/tools/jpackage/windows/WinNoRestartTest.java b/test/jdk/tools/jpackage/windows/WinNoRestartTest.java new file mode 100644 index 00000000000..02b24591e92 --- /dev/null +++ b/test/jdk/tools/jpackage/windows/WinNoRestartTest.java @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import java.io.IOException; +import java.time.Duration; +import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import jdk.jpackage.test.JPackageCommand; +import jdk.jpackage.test.Annotations.Test; +import jdk.jpackage.test.CfgFile; +import jdk.jpackage.test.HelloApp; +import static jdk.jpackage.test.WindowsHelper.killAppLauncherProcess; + +/* @test + * @bug 8340311 + * @summary Test that jpackage windows app launcher doesn't create child process + * if `win.norestart` property is set in the corresponding .cfg file + * @library ../helpers + * @library /test/lib + * @requires os.family == "windows" + * @build jdk.jpackage.test.* + * @build WinNoRestartTest + * @modules jdk.jpackage/jdk.jpackage.internal + * @run main/othervm -Xmx512m jdk.jpackage.test.Main + * --jpt-run=WinNoRestartTest + */ + +public class WinNoRestartTest { + + @Test + public static void test() throws InterruptedException, IOException { + var cmd = JPackageCommand.helloAppImage().ignoreFakeRuntime(); + + // Configure test app to launch in a way it will not exit + cmd.addArguments("--java-options", "-Djpackage.test.noexit=true"); + cmd.execute(); + + var origCfgFile = CfgFile.load(cmd.appLauncherCfgPath(null)); + + for (var testConfig : testConfig()) { + testConfig.apply(cmd, origCfgFile); + } + } + + private static record NoRerunSectionConfig(String sectionName, + String firstValue, String secondValue) { + + void apply(CfgFile cfgFile) { + if (firstValue != null) { + cfgFile.addValue(sectionName, "win.norestart", firstValue); + } + if (secondValue != null) { + cfgFile.addValue(sectionName, "win.norestart", secondValue); + } + } + } + + private static record NoRerunConfig(NoRerunSectionConfig firstSection, + NoRerunSectionConfig secondSection, boolean expectedNoRestarted) { + + void apply(JPackageCommand cmd, CfgFile origCfgFile) throws InterruptedException { + // Alter the main launcher .cfg file + var cfgFile = new CfgFile(); + if (firstSection != null) { + firstSection.apply(cfgFile); + } + cfgFile = CfgFile.combine(cfgFile, origCfgFile); + + if (secondSection != null) { + secondSection.apply(cfgFile); + } + + // Save updated main launcher .cfg file + cfgFile.save(cmd.appLauncherCfgPath(null)); + + try ( // Launch the app in a separate thread + ExecutorService exec = Executors.newSingleThreadExecutor()) { + exec.execute(() -> { + HelloApp.executeLauncher(cmd); + }); + + // Wait a bit to let the app start + Thread.sleep(Duration.ofSeconds(10)); + + // Find the main app launcher process and kill it + killAppLauncherProcess(cmd, null, expectedNoRestarted ? 1 : 2); + } + } + } + + private static List testConfig() { + return List.of( + // Test boolean conversion + withValue(true, "true"), + withValue(true, "7"), + withValue(true, "TRUE"), + withValue(false, "false"), + withValue(false, ""), + withValue(false, "true2"), + + // Test multiple values of the property (the last should win) + withValues(false, "true", ""), + withValues(true, "false", "true"), + + // Test property ignored in other sections + withWrongSection("Foo", "true"), + withWrongSection("JavaOptions", "true") + ); + } + + private static NoRerunConfig withValue(boolean expectedNorestart, + String norestartValue) { + return new NoRerunConfig(null, new NoRerunSectionConfig("Application", + norestartValue, null), expectedNorestart); + } + + private static NoRerunConfig withValues(boolean expectedNorestart, + String firstNorestartValue, String secondNorestartValue) { + return new NoRerunConfig(null, new NoRerunSectionConfig("Application", + firstNorestartValue, secondNorestartValue), expectedNorestart); + } + + private static NoRerunConfig withWrongSection(String sectionName, + String norestartValue) { + return new NoRerunConfig(new NoRerunSectionConfig(sectionName, + norestartValue, null), null, false); + } +} From c20c9c9b7d0b421d96e832990bb6c98c4798d1e2 Mon Sep 17 00:00:00 2001 From: Michael McMahon Date: Sun, 3 Nov 2024 17:43:46 +0000 Subject: [PATCH 074/159] 8343433: Update net.properties and java.net.http module-info.java after 8326949 Reviewed-by: dfuchs, jpai --- src/java.base/share/conf/net.properties | 4 +--- src/java.net.http/share/classes/module-info.java | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/java.base/share/conf/net.properties b/src/java.base/share/conf/net.properties index 2aa9a9630be..9245226e166 100644 --- a/src/java.base/share/conf/net.properties +++ b/src/java.base/share/conf/net.properties @@ -104,9 +104,7 @@ jdk.http.auth.tunneling.disabledSchemes=Basic # to be used in real deployments. Protocol errors or other undefined behavior is likely # to occur when using them. The property is not set by default. # Note also, that there may be other headers that are restricted from being set -# depending on the context. This includes the "Authorization" header when the -# relevant HttpClient has an authenticator set. These restrictions cannot be -# overridden by this property. +# depending on the context. These restrictions cannot be overridden by this property. # # jdk.httpclient.allowRestrictedHeaders=host # diff --git a/src/java.net.http/share/classes/module-info.java b/src/java.net.http/share/classes/module-info.java index c95d80657b8..5bd49792e38 100644 --- a/src/java.net.http/share/classes/module-info.java +++ b/src/java.net.http/share/classes/module-info.java @@ -45,9 +45,7 @@ * and whitespace is ignored. Note that this property is intended for testing and not for * real-world deployments. Protocol errors or other undefined behavior are likely to occur * when using this property. There may be other headers that are restricted from being set - * depending on the context. This includes the "Authorization" header when the relevant - * HttpClient has an authenticator set. These restrictions cannot be overridden by this - * property. + * depending on the context. These restrictions cannot be overridden by this property. * *
  • {@systemProperty jdk.httpclient.bufsize} (default: 16384 bytes or 16 kB)
    * The size to use for internal allocated buffers in bytes. From a9c16306acc949b717d352e5c8f05435ec6b5a63 Mon Sep 17 00:00:00 2001 From: Adam Sotona Date: Mon, 4 Nov 2024 07:19:23 +0000 Subject: [PATCH 075/159] 8343436: Regression in StackMapGenerator after JDK-8339205 Reviewed-by: liach --- .../classfile/impl/StackMapGenerator.java | 412 +++++------------- test/jdk/jdk/classfile/StackMapsTest.java | 21 +- 2 files changed, 131 insertions(+), 302 deletions(-) diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java b/src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java index d4bff1bfe80..a83c32dc05a 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java @@ -349,7 +349,6 @@ private void removeRangeFromExcTable(int rangeStart, int rangeEnd) { var it = handlers.listIterator(); while (it.hasNext()) { var e = it.next(); - var labelContext = this.labelContext; int handlerStart = labelContext.labelToBci(e.tryStart()); int handlerEnd = labelContext.labelToBci(e.tryEnd()); if (rangeStart >= handlerEnd || rangeEnd <= handlerStart) { @@ -391,15 +390,14 @@ public Attribute stackMapTableAttribute() { return framesCount == 0 ? null : new UnboundAttribute.AdHocAttribute<>(Attributes.stackMapTable()) { @Override public void writeBody(BufWriterImpl b) { - var gen = StackMapGenerator.this; - b.writeU2(gen.framesCount); - Frame prevFrame = gen.new Frame(gen.classHierarchy); - prevFrame.setLocalsFromArg(gen.methodName, gen.methodDesc, gen.isStatic, gen.thisType); + b.writeU2(framesCount); + Frame prevFrame = new Frame(classHierarchy); + prevFrame.setLocalsFromArg(methodName, methodDesc, isStatic, thisType); prevFrame.trimAndCompress(); - for (int i = 0; i < gen.framesCount; i++) { - var fr = gen.frames[i]; + for (int i = 0; i < framesCount; i++) { + var fr = frames[i]; fr.trimAndCompress(); - fr.writeTo(b, prevFrame, gen.cp); + fr.writeTo(b, prevFrame, cp); prevFrame = fr; } } @@ -462,7 +460,6 @@ private boolean processBlock(RawBytecodeHelper bcs) { processExceptionHandlerTargets(bci, this_uninit); verified_exc_handlers = true; } - var currentFrame = this.currentFrame; switch (opcode) { case NOP -> {} case RETURN -> { @@ -503,27 +500,27 @@ private boolean processBlock(RawBytecodeHelper bcs) { case ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3 -> currentFrame.pushStack(currentFrame.getLocal(opcode - ALOAD_0)); case IALOAD, BALOAD, CALOAD, SALOAD -> - currentFrame.decStack2PushStack(Type.INTEGER_TYPE); + currentFrame.decStack(2).pushStack(Type.INTEGER_TYPE); case LALOAD -> - currentFrame.decStack2PushStack(Type.LONG_TYPE, Type.LONG2_TYPE); + currentFrame.decStack(2).pushStack(Type.LONG_TYPE, Type.LONG2_TYPE); case FALOAD -> - currentFrame.decStack2PushStack(Type.FLOAT_TYPE); + currentFrame.decStack(2).pushStack(Type.FLOAT_TYPE); case DALOAD -> - currentFrame.decStack2PushStack(Type.DOUBLE_TYPE, Type.DOUBLE2_TYPE); + currentFrame.decStack(2).pushStack(Type.DOUBLE_TYPE, Type.DOUBLE2_TYPE); case AALOAD -> - currentFrame.pushStack((type1 = currentFrame.decStack().popStack()) == Type.NULL_TYPE ? Type.NULL_TYPE : type1.getComponent()); + currentFrame.pushStack((type1 = currentFrame.decStack(1).popStack()) == Type.NULL_TYPE ? Type.NULL_TYPE : type1.getComponent()); case ISTORE -> - currentFrame.decStack().setLocal(bcs.getIndex(), Type.INTEGER_TYPE); + currentFrame.decStack(1).setLocal(bcs.getIndex(), Type.INTEGER_TYPE); case ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3 -> - currentFrame.decStack().setLocal(opcode - ISTORE_0, Type.INTEGER_TYPE); + currentFrame.decStack(1).setLocal(opcode - ISTORE_0, Type.INTEGER_TYPE); case LSTORE -> currentFrame.decStack(2).setLocal2(bcs.getIndex(), Type.LONG_TYPE, Type.LONG2_TYPE); case LSTORE_0, LSTORE_1, LSTORE_2, LSTORE_3 -> currentFrame.decStack(2).setLocal2(opcode - LSTORE_0, Type.LONG_TYPE, Type.LONG2_TYPE); case FSTORE -> - currentFrame.decStack().setLocal(bcs.getIndex(), Type.FLOAT_TYPE); + currentFrame.decStack(1).setLocal(bcs.getIndex(), Type.FLOAT_TYPE); case FSTORE_0, FSTORE_1, FSTORE_2, FSTORE_3 -> - currentFrame.decStack().setLocal(opcode - FSTORE_0, Type.FLOAT_TYPE); + currentFrame.decStack(1).setLocal(opcode - FSTORE_0, Type.FLOAT_TYPE); case DSTORE -> currentFrame.decStack(2).setLocal2(bcs.getIndex(), Type.DOUBLE_TYPE, Type.DOUBLE2_TYPE); case DSTORE_0, DSTORE_1, DSTORE_2, DSTORE_3 -> @@ -537,75 +534,98 @@ private boolean processBlock(RawBytecodeHelper bcs) { case IASTORE, BASTORE, CASTORE, SASTORE, FASTORE, AASTORE -> currentFrame.decStack(3); case POP, MONITORENTER, MONITOREXIT -> - currentFrame.decStack(); + currentFrame.decStack(1); case POP2 -> currentFrame.decStack(2); case DUP -> - currentFrame.dup(); - case DUP_X1 -> - currentFrame.dup_x1(); - case DUP_X2 -> - currentFrame.dup_x2(); - case DUP2 -> - currentFrame.dup2(); - case DUP2_X1 -> - currentFrame.dup2_x1(); - case DUP2_X2 -> - currentFrame.dup2_x2(); - case SWAP -> - currentFrame.swap(); + currentFrame.pushStack(type1 = currentFrame.popStack()).pushStack(type1); + case DUP_X1 -> { + type1 = currentFrame.popStack(); + type2 = currentFrame.popStack(); + currentFrame.pushStack(type1).pushStack(type2).pushStack(type1); + } + case DUP_X2 -> { + type1 = currentFrame.popStack(); + type2 = currentFrame.popStack(); + type3 = currentFrame.popStack(); + currentFrame.pushStack(type1).pushStack(type3).pushStack(type2).pushStack(type1); + } + case DUP2 -> { + type1 = currentFrame.popStack(); + type2 = currentFrame.popStack(); + currentFrame.pushStack(type2).pushStack(type1).pushStack(type2).pushStack(type1); + } + case DUP2_X1 -> { + type1 = currentFrame.popStack(); + type2 = currentFrame.popStack(); + type3 = currentFrame.popStack(); + currentFrame.pushStack(type2).pushStack(type1).pushStack(type3).pushStack(type2).pushStack(type1); + } + case DUP2_X2 -> { + type1 = currentFrame.popStack(); + type2 = currentFrame.popStack(); + type3 = currentFrame.popStack(); + type4 = currentFrame.popStack(); + currentFrame.pushStack(type2).pushStack(type1).pushStack(type4).pushStack(type3).pushStack(type2).pushStack(type1); + } + case SWAP -> { + type1 = currentFrame.popStack(); + type2 = currentFrame.popStack(); + currentFrame.pushStack(type1); + currentFrame.pushStack(type2); + } case IADD, ISUB, IMUL, IDIV, IREM, ISHL, ISHR, IUSHR, IOR, IXOR, IAND -> - currentFrame.decStack2PushStack(Type.INTEGER_TYPE); + currentFrame.decStack(2).pushStack(Type.INTEGER_TYPE); case INEG, ARRAYLENGTH, INSTANCEOF -> - currentFrame.decStack1PushStack(Type.INTEGER_TYPE); + currentFrame.decStack(1).pushStack(Type.INTEGER_TYPE); case LADD, LSUB, LMUL, LDIV, LREM, LAND, LOR, LXOR -> - currentFrame.decStack4PushStack(Type.LONG_TYPE, Type.LONG2_TYPE); + currentFrame.decStack(4).pushStack(Type.LONG_TYPE, Type.LONG2_TYPE); case LNEG -> - currentFrame.decStack2PushStack(Type.LONG_TYPE, Type.LONG2_TYPE); + currentFrame.decStack(2).pushStack(Type.LONG_TYPE, Type.LONG2_TYPE); case LSHL, LSHR, LUSHR -> - currentFrame.decStack3PushStack(Type.LONG_TYPE, Type.LONG2_TYPE); + currentFrame.decStack(3).pushStack(Type.LONG_TYPE, Type.LONG2_TYPE); case FADD, FSUB, FMUL, FDIV, FREM -> - currentFrame.decStack2PushStack(Type.FLOAT_TYPE); + currentFrame.decStack(2).pushStack(Type.FLOAT_TYPE); case FNEG -> - currentFrame.decStack1PushStack(Type.FLOAT_TYPE); + currentFrame.decStack(1).pushStack(Type.FLOAT_TYPE); case DADD, DSUB, DMUL, DDIV, DREM -> - currentFrame.decStack4PushStack(Type.DOUBLE_TYPE, Type.DOUBLE2_TYPE); + currentFrame.decStack(4).pushStack(Type.DOUBLE_TYPE, Type.DOUBLE2_TYPE); case DNEG -> - currentFrame.decStack2PushStack(Type.DOUBLE_TYPE, Type.DOUBLE2_TYPE); + currentFrame.decStack(2).pushStack(Type.DOUBLE_TYPE, Type.DOUBLE2_TYPE); case IINC -> currentFrame.checkLocal(bcs.getIndex()); case I2L -> - currentFrame.decStack1PushStack(Type.LONG_TYPE, Type.LONG2_TYPE); + currentFrame.decStack(1).pushStack(Type.LONG_TYPE, Type.LONG2_TYPE); case L2I -> - currentFrame.decStack2PushStack(Type.INTEGER_TYPE); + currentFrame.decStack(2).pushStack(Type.INTEGER_TYPE); case I2F -> - currentFrame.decStack1PushStack(Type.FLOAT_TYPE); + currentFrame.decStack(1).pushStack(Type.FLOAT_TYPE); case I2D -> - currentFrame.decStack1PushStack(Type.DOUBLE_TYPE, Type.DOUBLE2_TYPE); + currentFrame.decStack(1).pushStack(Type.DOUBLE_TYPE, Type.DOUBLE2_TYPE); case L2F -> - currentFrame.decStack2PushStack(Type.FLOAT_TYPE); + currentFrame.decStack(2).pushStack(Type.FLOAT_TYPE); case L2D -> - currentFrame.decStack2PushStack(Type.DOUBLE_TYPE, Type.DOUBLE2_TYPE); + currentFrame.decStack(2).pushStack(Type.DOUBLE_TYPE, Type.DOUBLE2_TYPE); case F2I -> - currentFrame.decStack1PushStack(Type.INTEGER_TYPE); + currentFrame.decStack(1).pushStack(Type.INTEGER_TYPE); case F2L -> - currentFrame.decStack1PushStack(Type.LONG_TYPE, Type.LONG2_TYPE); + currentFrame.decStack(1).pushStack(Type.LONG_TYPE, Type.LONG2_TYPE); case F2D -> - currentFrame.decStack1PushStack(Type.DOUBLE_TYPE, Type.DOUBLE2_TYPE); + currentFrame.decStack(1).pushStack(Type.DOUBLE_TYPE, Type.DOUBLE2_TYPE); case D2L -> - currentFrame.decStack2PushStack(Type.LONG_TYPE, Type.LONG2_TYPE); + currentFrame.decStack(2).pushStack(Type.LONG_TYPE, Type.LONG2_TYPE); case D2F -> - currentFrame.decStack2PushStack(Type.FLOAT_TYPE); + currentFrame.decStack(2).pushStack(Type.FLOAT_TYPE); case I2B, I2C, I2S -> - currentFrame.decStack1PushStack(Type.INTEGER_TYPE); + currentFrame.decStack(1).pushStack(Type.INTEGER_TYPE); case LCMP, DCMPL, DCMPG -> - currentFrame.decStack4PushStack(Type.INTEGER_TYPE); + currentFrame.decStack(4).pushStack(Type.INTEGER_TYPE); case FCMPL, FCMPG, D2I -> - currentFrame.decStack2PushStack(Type.INTEGER_TYPE); + currentFrame.decStack(2).pushStack(Type.INTEGER_TYPE); case IF_ICMPEQ, IF_ICMPNE, IF_ICMPLT, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ACMPEQ, IF_ACMPNE -> checkJumpTarget(currentFrame.decStack(2), bcs.dest()); case IFEQ, IFNE, IFLT, IFGE, IFGT, IFLE, IFNULL, IFNONNULL -> - checkJumpTarget(currentFrame.decStack(), bcs.dest()); + checkJumpTarget(currentFrame.decStack(1), bcs.dest()); case GOTO -> { checkJumpTarget(currentFrame, bcs.dest()); ncf = true; @@ -623,7 +643,7 @@ private boolean processBlock(RawBytecodeHelper bcs) { ncf = true; } case IRETURN, FRETURN, ARETURN, ATHROW -> { - currentFrame.decStack(); + currentFrame.decStack(1); ncf = true; } case GETSTATIC, PUTSTATIC, GETFIELD, PUTFIELD -> @@ -633,16 +653,17 @@ private boolean processBlock(RawBytecodeHelper bcs) { case NEW -> currentFrame.pushStack(Type.uninitializedType(bci)); case NEWARRAY -> - currentFrame.decStack1PushStack(getNewarrayType(bcs.getIndex())); + currentFrame.decStack(1).pushStack(getNewarrayType(bcs.getIndex())); case ANEWARRAY -> processAnewarray(bcs.getIndexU2()); case CHECKCAST -> - currentFrame.decStack1PushStack(cpIndexToType(bcs.getIndexU2(), cp)); + currentFrame.decStack(1).pushStack(cpIndexToType(bcs.getIndexU2(), cp)); case MULTIANEWARRAY -> { type1 = cpIndexToType(bcs.getIndexU2(), cp); - currentFrame.decStack( - bcs.getU1Unchecked(bcs.bci() + 3) /* dim */ - ); + int dim = bcs.getU1Unchecked(bcs.bci() + 3); + for (int i = 0; i < dim; i++) { + currentFrame.popStack(); + } currentFrame.pushStack(type1); } case JSR, JSR_W, RET -> @@ -657,7 +678,6 @@ private boolean processBlock(RawBytecodeHelper bcs) { } private void processExceptionHandlerTargets(int bci, boolean this_uninit) { - var currentFrame = this.currentFrame; for (var ex : rawHandlers) { if (bci == ex.start || (currentFrame.localsChanged && bci > ex.start && bci < ex.end)) { int flags = currentFrame.flags; @@ -670,10 +690,7 @@ private void processExceptionHandlerTargets(int bci, boolean this_uninit) { } private void processLdc(int index) { - var e = cp.entryByIndex(index); - byte tag = e.tag(); - var currentFrame = this.currentFrame; - switch (tag) { + switch (cp.entryByIndex(index).tag()) { case TAG_UTF8 -> currentFrame.pushStack(Type.OBJECT_TYPE); case TAG_STRING -> @@ -693,9 +710,9 @@ private void processLdc(int index) { case TAG_METHOD_TYPE -> currentFrame.pushStack(Type.METHOD_TYPE); case TAG_DYNAMIC -> - currentFrame.pushStack(ClassReaderImpl.checkType(e, index, ConstantDynamicEntry.class).asSymbol().constantType()); + currentFrame.pushStack(cp.entryByIndex(index, ConstantDynamicEntry.class).asSymbol().constantType()); default -> - throw generatorError("CP entry #%d %s is not loadable constant".formatted(index, tag)); + throw generatorError("CP entry #%d %s is not loadable constant".formatted(index, cp.entryByIndex(index).tag())); } } @@ -704,7 +721,7 @@ private void processSwitch(RawBytecodeHelper bcs) { int alignedBci = RawBytecodeHelper.align(bci + 1); int defaultOffset = bcs.getIntUnchecked(alignedBci); int keys, delta; - currentFrame.decStack(); + currentFrame.popStack(); if (bcs.opcode() == TABLESWITCH) { int low = bcs.getIntUnchecked(alignedBci + 4); int high = bcs.getIntUnchecked(alignedBci + 2 * 4); @@ -748,7 +765,8 @@ private void processFieldInstructions(RawBytecodeHelper bcs) { currentFrame.decStack(Util.isDoubleSlot(desc) ? 2 : 1); } case GETFIELD -> { - currentFrame.dec1PushStack(desc); + currentFrame.decStack(1); + currentFrame.pushStack(desc); } case PUTFIELD -> { currentFrame.decStack(Util.isDoubleSlot(desc) ? 3 : 2); @@ -786,7 +804,7 @@ private boolean processInvokeInstructions(RawBytecodeHelper bcs, boolean inTryBl throw generatorError("Bad operand type when invoking "); } } else { - currentFrame.decStack(); + currentFrame.decStack(1); } } currentFrame.pushStack(mDesc.returnType()); @@ -799,17 +817,10 @@ private Type getNewarrayType(int index) { } private void processAnewarray(int index) { - currentFrame.decStack(); + currentFrame.popStack(); currentFrame.pushStack(cpIndexToType(index, cp).toArray()); } - /** - * {@return the generator error with stack underflow} - */ - private IllegalArgumentException stackUnderflow() { - return generatorError("Operand stack underflow"); - } - /** * {@return the generator error with attached details} * @param msg error message @@ -889,7 +900,6 @@ private void detectFrames() { } catch (IllegalArgumentException iae) { throw generatorError("Detected branch target out of bytecode range", bci); } - for (int i = 0; i < rawHandlers.size(); i++) try { addFrame(rawHandlers.get(i).handler()); } catch (IllegalArgumentException iae) { @@ -958,101 +968,6 @@ public String toString() { return (dirty ? "frame* @" : "frame @") + offset + " with locals " + (locals == null ? "[]" : Arrays.asList(locals).subList(0, localsSize)) + " and stack " + (stack == null ? "[]" : Arrays.asList(stack).subList(0, stackSize)); } - Frame dup() { - int stackSize = this.stackSize; - if (stackSize < 1) throw stackUnderflow(); - checkStack(stackSize + 1); - stack[stackSize] = stack[stackSize - 1]; - this.stackSize = stackSize + 1; - return this; - } - - Frame dup_x1() { - int stackSize = this.stackSize; - if (stackSize < 2) throw stackUnderflow(); - checkStack(stackSize + 1); - var stack = this.stack; - Type type0 = stack[stackSize - 2]; - Type type1 = stack[stackSize - 1]; - stack[stackSize - 2] = type1; - stack[stackSize - 1] = type0; - stack[stackSize ] = type1; - this.stackSize = stackSize + 1; - return this; - } - - Frame dup_x2() { - int stackSize = this.stackSize; - if (stackSize < 3) throw stackUnderflow(); - checkStack(stackSize + 1); - var stack = this.stack; - Type type0 = stack[stackSize - 3]; - Type type1 = stack[stackSize - 2]; - Type type2 = stack[stackSize - 1]; - stack[stackSize - 3] = type2; - stack[stackSize - 2] = type0; - stack[stackSize - 1] = type1; - stack[stackSize ] = type2; - this.stackSize = stackSize + 1; - return this; - } - - Frame dup2() { - int stackSize = this.stackSize; - if (stackSize < 2) throw stackUnderflow(); - checkStack(stackSize + 2); - stack[stackSize ] = stack[stackSize - 2]; - stack[stackSize + 1] = stack[stackSize - 1]; - this.stackSize = stackSize + 2; - return this; - } - - Frame dup2_x1() { - int stackSize = this.stackSize; - if (stackSize < 3) throw stackUnderflow(); - checkStack(stackSize + 2); - var stack = this.stack; - Type type0 = stack[stackSize - 3]; - Type type1 = stack[stackSize - 2]; - Type type2 = stack[stackSize - 1]; - stack[stackSize - 3] = type1; - stack[stackSize - 2] = type2; - stack[stackSize - 1] = type0; - stack[stackSize ] = type1; - stack[stackSize + 1] = type2; - this.stackSize = stackSize + 2; - return this; - } - - Frame dup2_x2() { - int stackSize = this.stackSize; - if (stackSize < 4) throw stackUnderflow(); - checkStack(stackSize + 2); - var stack = this.stack; - Type type0 = stack[stackSize - 4]; - Type type1 = stack[stackSize - 3]; - Type type2 = stack[stackSize - 2]; - Type type3 = stack[stackSize - 1]; - stack[stackSize - 4] = type2; - stack[stackSize - 3] = type3; - stack[stackSize - 2] = type0; - stack[stackSize - 1] = type1; - stack[stackSize ] = type2; - stack[stackSize + 1] = type3; - this.stackSize = stackSize + 4; - return this; - } - - Frame swap() { - int stackSize = this.stackSize - 2; - if (stackSize < 0) throw stackUnderflow(); - var stack = this.stack; - Type type = stack[stackSize]; - stack[stackSize] = stack[stackSize + 1]; - stack[stackSize + 1] = type; - return this; - } - Frame pushStack(ClassDesc desc) { if (desc == CD_long) return pushStack(Type.LONG_TYPE, Type.LONG2_TYPE); if (desc == CD_double) return pushStack(Type.DOUBLE_TYPE, Type.DOUBLE2_TYPE); @@ -1063,109 +978,27 @@ Frame pushStack(ClassDesc desc) { : Type.referenceType(desc)); } - Frame dec1PushStack(ClassDesc desc) { - if (desc == CD_long) return decStack1PushStack(Type.LONG_TYPE, Type.LONG2_TYPE); - if (desc == CD_double) return decStack1PushStack(Type.DOUBLE_TYPE, Type.DOUBLE2_TYPE); - return desc == CD_void ? this - : decStack1PushStack( - desc.isPrimitive() - ? (desc == CD_float ? Type.FLOAT_TYPE : Type.INTEGER_TYPE) - : Type.referenceType(desc)); - } - Frame pushStack(Type type) { - int stackSize = this.stackSize; checkStack(stackSize); - stack[stackSize] = type; - this.stackSize = stackSize + 1; + stack[stackSize++] = type; return this; } Frame pushStack(Type type1, Type type2) { - int stackSize = this.stackSize; checkStack(stackSize + 1); - stack[stackSize] = type1; - stack[stackSize + 1] = type2; - this.stackSize = stackSize + 2; + stack[stackSize++] = type1; + stack[stackSize++] = type2; return this; } Type popStack() { - int stackSize = this.stackSize - 1; - if (stackSize < 0) throw stackUnderflow(); - this.stackSize = stackSize; - return stack[stackSize]; - } - - Frame decStack() { - if (--stackSize < 0) throw stackUnderflow(); - return this; + if (stackSize < 1) throw generatorError("Operand stack underflow"); + return stack[--stackSize]; } Frame decStack(int size) { stackSize -= size; - if (stackSize < 0) throw stackUnderflow(); - return this; - } - - Frame decStack1PushStack(Type type1, Type type2) { - int stackSize = this.stackSize - 1; - if (stackSize < 0) throw stackUnderflow(); - checkStack(stackSize + 2); - stack[stackSize ] = type1; - stack[stackSize + 1] = type2; - this.stackSize = stackSize + 2; - return this; - } - - Frame decStack1PushStack(Type type) { - int stackSize = this.stackSize - 1; - if (stackSize < 0) throw stackUnderflow(); - stack[stackSize] = type; - return this; - } - - Frame decStack2PushStack(Type type) { - int stackSize = this.stackSize - 2; - if (stackSize < 0) throw stackUnderflow(); - stack[stackSize] = type; - this.stackSize = stackSize + 1; - return this; - } - - Frame decStack2PushStack(Type type1, Type type2) { - int stackSize = this.stackSize - 2; - if (stackSize < 0) throw stackUnderflow(); - var stack = this.stack; - stack[stackSize ] = type1; - stack[stackSize + 1] = type2; - return this; - } - - Frame decStack3PushStack(Type type1, Type type2) { - int stackSize = this.stackSize - 3; - if (stackSize < 0) throw stackUnderflow(); - stack[stackSize ] = type1; - stack[stackSize + 1] = type2; - this.stackSize = stackSize + 2; - return this; - } - - Frame decStack4PushStack(Type type) { - int stackSize = this.stackSize - 4; - if (stackSize < 0) throw stackUnderflow(); - stack[stackSize] = type; - this.stackSize = stackSize + 1; - return this; - } - - Frame decStack4PushStack(Type type1, Type type2) { - int stackSize = this.stackSize - 4; - if (stackSize < 0) throw stackUnderflow(); - var stack = this.stack; - stack[stackSize ] = type1; - stack[stackSize + 1] = type2; - this.stackSize = stackSize + 2; + if (stackSize < 0) throw generatorError("Operand stack underflow"); return this; } @@ -1194,59 +1027,34 @@ void initializeObject(Type old_object, Type new_object) { Frame checkLocal(int index) { if (index >= frameMaxLocals) frameMaxLocals = index + 1; if (locals == null) { - initLocals(index); + locals = new Type[index + FRAME_DEFAULT_CAPACITY]; + Arrays.fill(locals, Type.TOP_TYPE); } else if (index >= locals.length) { - growLocals(index); + int current = locals.length; + locals = Arrays.copyOf(locals, index + FRAME_DEFAULT_CAPACITY); + Arrays.fill(locals, current, locals.length, Type.TOP_TYPE); } return this; } - private void initLocals(int index) { - locals = new Type[index + FRAME_DEFAULT_CAPACITY]; - Arrays.fill(locals, Type.TOP_TYPE); - } - - private void growLocals(int index) { - int current = locals.length; - locals = Arrays.copyOf(locals, index + FRAME_DEFAULT_CAPACITY); - Arrays.fill(locals, current, locals.length, Type.TOP_TYPE); - } - private void checkStack(int index) { if (index >= frameMaxStack) frameMaxStack = index + 1; if (stack == null) { - initStack(index); + stack = new Type[index + FRAME_DEFAULT_CAPACITY]; + Arrays.fill(stack, Type.TOP_TYPE); } else if (index >= stack.length) { - growStack(index); + int current = stack.length; + stack = Arrays.copyOf(stack, index + FRAME_DEFAULT_CAPACITY); + Arrays.fill(stack, current, stack.length, Type.TOP_TYPE); } } - private void initStack(int index) { - stack = new Type[index + FRAME_DEFAULT_CAPACITY]; - Arrays.fill(stack, Type.TOP_TYPE); - } - - private void growStack(int index) { - int current = stack.length; - stack = Arrays.copyOf(stack, index + FRAME_DEFAULT_CAPACITY); - Arrays.fill(stack, current, stack.length, Type.TOP_TYPE); - } - private void setLocalRawInternal(int index, Type type) { checkLocal(index); - var locals = this.locals; localsChanged |= !type.equals(locals[index]); locals[index] = type; } - private void setLocalRawInternal(int index, Type type1, Type type2) { - checkLocal(index + 1); - var locals = this.locals; - localsChanged |= !type1.equals(locals[index]) || !type2.equals(locals[index + 1]); - locals[index ] = type1; - locals[index + 1] = type2; - } - void setLocalsFromArg(String name, MethodTypeDesc methodDesc, boolean isStatic, Type thisKlass) { int localsSize = 0; // Pre-emptively create a locals array that encompass all parameter slots @@ -1347,7 +1155,8 @@ void setLocal(int index, Type type) { Type old = getLocalRawInternal(index); if (old == Type.DOUBLE_TYPE || old == Type.LONG_TYPE) { setLocalRawInternal(index + 1, Type.TOP_TYPE); - } else if (old == Type.DOUBLE2_TYPE || old == Type.LONG2_TYPE) { + } + if (old == Type.DOUBLE2_TYPE || old == Type.LONG2_TYPE) { setLocalRawInternal(index - 1, Type.TOP_TYPE); } setLocalRawInternal(index, type); @@ -1365,7 +1174,8 @@ void setLocal2(int index, Type type1, Type type2) { if (old == Type.DOUBLE2_TYPE || old == Type.LONG2_TYPE) { setLocalRawInternal(index - 1, Type.TOP_TYPE); } - setLocalRawInternal(index, type1, type2); + setLocalRawInternal(index, type1); + setLocalRawInternal(index + 1, type2); if (index >= localsSize - 1) { localsSize = index + 2; } diff --git a/test/jdk/jdk/classfile/StackMapsTest.java b/test/jdk/jdk/classfile/StackMapsTest.java index 1ccd7255ed4..857299f4ecd 100644 --- a/test/jdk/jdk/classfile/StackMapsTest.java +++ b/test/jdk/jdk/classfile/StackMapsTest.java @@ -24,7 +24,7 @@ /* * @test * @summary Testing Classfile stack maps generator. - * @bug 8305990 8320222 8320618 8335475 8338623 8338661 + * @bug 8305990 8320222 8320618 8335475 8338623 8338661 8343436 * @build testdata.* * @run junit StackMapsTest */ @@ -344,8 +344,27 @@ void testEmptyCounters(ClassFile.StackMapsOption option) { } } + @ParameterizedTest + @EnumSource(ClassFile.StackMapsOption.class) + void testI2LCounters(ClassFile.StackMapsOption option) { + var cf = ClassFile.of(option); + var bytes = cf.build(ClassDesc.of("Test"), clb -> clb + .withMethodBody("a", MTD_long_int, ACC_STATIC, cob -> + cob.iload(0) + .i2l() + .lreturn())); + + var cm = ClassFile.of().parse(bytes); + for (var method : cm.methods()) { + var code = (CodeAttribute) method.code().orElseThrow(); + assertEquals(1, code.maxLocals()); + assertEquals(2, code.maxStack()); + } + } + private static final MethodTypeDesc MTD_int = MethodTypeDesc.of(CD_int); private static final MethodTypeDesc MTD_int_String = MethodTypeDesc.of(CD_int, CD_String); + private static final MethodTypeDesc MTD_long_int = MethodTypeDesc.of(CD_long, CD_int); @ParameterizedTest @EnumSource(ClassFile.StackMapsOption.class) From 25f853b061de4a29397cdc0aa9b5970c99054286 Mon Sep 17 00:00:00 2001 From: Damon Fenacci Date: Mon, 4 Nov 2024 07:33:54 +0000 Subject: [PATCH 076/159] 8343153: compiler/codecache/CheckLargePages.java fails on linux with huge pages configured but its number set to 0 Reviewed-by: eastigeevich, thartmann --- test/hotspot/jtreg/ProblemList.txt | 1 - .../compiler/codecache/CheckLargePages.java | 26 ++++++++++++++++--- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/test/hotspot/jtreg/ProblemList.txt b/test/hotspot/jtreg/ProblemList.txt index ce9e97e1715..000f26d71c6 100644 --- a/test/hotspot/jtreg/ProblemList.txt +++ b/test/hotspot/jtreg/ProblemList.txt @@ -55,7 +55,6 @@ compiler/c2/Test8004741.java 8235801 generic-all compiler/c2/irTests/TestDuplicateBackedge.java 8318904 generic-all compiler/codecache/jmx/PoolsIndependenceTest.java 8264632 macosx-all -compiler/codecache/CheckLargePages.java 8332654 linux-x64 compiler/vectorapi/reshape/TestVectorReinterpret.java 8320897 aix-ppc64,linux-ppc64le compiler/vectorapi/VectorLogicalOpIdentityTest.java 8302459 linux-x64,windows-x64 diff --git a/test/hotspot/jtreg/compiler/codecache/CheckLargePages.java b/test/hotspot/jtreg/compiler/codecache/CheckLargePages.java index ee37b7a5164..a7935928cab 100644 --- a/test/hotspot/jtreg/compiler/codecache/CheckLargePages.java +++ b/test/hotspot/jtreg/compiler/codecache/CheckLargePages.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -39,6 +39,9 @@ import jdk.test.lib.process.OutputAnalyzer; import jdk.test.lib.process.ProcessTools; import jdk.test.whitebox.WhiteBox; +import java.util.Scanner; +import java.io.File; +import java.io.FileNotFoundException; import java.util.Arrays; import java.util.List; @@ -47,6 +50,7 @@ public class CheckLargePages { private final static long LP_1G = 1024 * 1024 * 1024; private final static boolean LARGE_PAGES_ENABLED; private final static long LARGE_PAGE_SIZE; + private final static String LARGE_PAGE_NUMBER_FILE_BASE = "/sys/kernel/mm/hugepages/hugepages-%skB/nr_hugepages"; static { WhiteBox whiteBox = WhiteBox.getWhiteBox(); @@ -58,6 +62,16 @@ private static boolean isLargePageSizeEqual(long size) { return LARGE_PAGE_SIZE == size; } + private static int numberOfLargePages(long size) { + String largePageNumberFile = String.format(LARGE_PAGE_NUMBER_FILE_BASE, size / 1024); + try (Scanner scanner = new Scanner(new File(largePageNumberFile))) { + if (scanner.hasNextInt()) { + return scanner.nextInt(); + } + } catch (FileNotFoundException e) { }; + return 0; + } + private static void testSegmented2GbCodeCacheWith1GbPage() throws Exception { ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( "-XX:+UseLargePages", @@ -113,11 +127,17 @@ private static void testNonSegmented1GbCodeCacheWith1GbLargePages() throws Excep out.shouldContain("UseLargePages=1, UseTransparentHugePages=0"); out.shouldMatch("CodeCache: min=1[gG] max=1[gG] base=[^ ]+ size=1[gG] page_size=1[gG]"); } + public static void main(String[] args) throws Exception { if (isLargePageSizeEqual(LP_1G)) { testSegmented2GbCodeCacheWith1GbPage(); - testDefaultCodeCacheWith1GbLargePages(); - testNonSegmented1GbCodeCacheWith1GbLargePages(); + if (numberOfLargePages(LP_1G) >= 1) { + testDefaultCodeCacheWith1GbLargePages(); + testNonSegmented1GbCodeCacheWith1GbLargePages(); + } else { + System.out.println("Skipping testDefaultCodeCacheWith1GbLargePages and " + + "testNonSegmented1GbCodeCacheWith1GbLargePages, no 1Gb pages available"); + } } else { System.out.println("1GB large pages not supported: UseLargePages=" + LARGE_PAGES_ENABLED + (LARGE_PAGES_ENABLED ? ", largePageSize=" + LARGE_PAGE_SIZE : "") + ". Skipping"); From 036f09a1ef181d97c17b34b3190b123d8e3186ed Mon Sep 17 00:00:00 2001 From: Hamlin Li Date: Mon, 4 Nov 2024 09:19:39 +0000 Subject: [PATCH 077/159] 8312425: [vectorapi] AArch64: Optimize vector math operations with SLEEF Co-authored-by: Xiaohong Gong Reviewed-by: ihse, fgao, aph --- make/autoconf/flags-cflags.m4 | 30 ++++++ make/autoconf/spec.gmk.template | 3 + make/modules/jdk.incubator.vector/Lib.gmk | 14 +++ .../native/libsleef/lib/vector_math_neon.c | 91 +++++++++++++++++++ .../native/libsleef/lib/vector_math_sve.c | 89 ++++++++++++++++++ 5 files changed, 227 insertions(+) create mode 100644 src/jdk.incubator.vector/linux/native/libsleef/lib/vector_math_neon.c create mode 100644 src/jdk.incubator.vector/linux/native/libsleef/lib/vector_math_sve.c diff --git a/make/autoconf/flags-cflags.m4 b/make/autoconf/flags-cflags.m4 index bd8f2ec9a7f..57654514eb6 100644 --- a/make/autoconf/flags-cflags.m4 +++ b/make/autoconf/flags-cflags.m4 @@ -912,6 +912,36 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP], IF_FALSE: [$2FDLIBM_CFLAGS=""]) fi AC_SUBST($2FDLIBM_CFLAGS) + + # Check whether the compiler supports the Arm C Language Extensions (ACLE) + # for SVE. Set SVE_CFLAGS to -march=armv8-a+sve if it does. + # ACLE and this flag are required to build the aarch64 SVE related functions in + # libvectormath. + if test "x$OPENJDK_TARGET_CPU" = "xaarch64"; then + if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then + AC_LANG_PUSH(C) + OLD_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -march=armv8-a+sve" + AC_MSG_CHECKING([if Arm SVE ACLE is supported]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], + [ + svint32_t r = svdup_n_s32(1); + return 0; + ])], + [ + AC_MSG_RESULT([yes]) + $2SVE_CFLAGS="-march=armv8-a+sve" + ], + [ + AC_MSG_RESULT([no]) + $2SVE_CFLAGS="" + ] + ) + CFLAGS="$OLD_CFLAGS" + AC_LANG_POP(C) + fi + fi + AC_SUBST($2SVE_CFLAGS) ]) # FLAGS_SETUP_GCC6_COMPILER_FLAGS([PREFIX]) diff --git a/make/autoconf/spec.gmk.template b/make/autoconf/spec.gmk.template index a5f4143c888..eb2b1a688e1 100644 --- a/make/autoconf/spec.gmk.template +++ b/make/autoconf/spec.gmk.template @@ -827,6 +827,9 @@ OS_VERSION_MAJOR := @OS_VERSION_MAJOR@ OS_VERSION_MINOR := @OS_VERSION_MINOR@ OS_VERSION_MICRO := @OS_VERSION_MICRO@ +# Arm SVE +SVE_CFLAGS := @SVE_CFLAGS@ + # Images directory definitions JDK_IMAGE_SUBDIR := jdk JRE_IMAGE_SUBDIR := jre diff --git a/make/modules/jdk.incubator.vector/Lib.gmk b/make/modules/jdk.incubator.vector/Lib.gmk index bf6ace6f97f..69da7ed059a 100644 --- a/make/modules/jdk.incubator.vector/Lib.gmk +++ b/make/modules/jdk.incubator.vector/Lib.gmk @@ -55,3 +55,17 @@ ifeq ($(call isTargetOs, linux)+$(call isTargetCpu, riscv64)+$(INCLUDE_COMPILER2 TARGETS += $(BUILD_LIBSLEEF) endif + +ifeq ($(call isTargetOs, linux)+$(call isTargetCpu, aarch64)+$(INCLUDE_COMPILER2), true+true+true) + $(eval $(call SetupJdkLibrary, BUILD_LIBSLEEF, \ + NAME := sleef, \ + OPTIMIZATION := HIGH, \ + SRC := libsleef/lib, \ + EXTRA_SRC := libsleef/generated, \ + DISABLED_WARNINGS_gcc := unused-function sign-compare tautological-compare ignored-qualifiers, \ + DISABLED_WARNINGS_clang := unused-function sign-compare tautological-compare ignored-qualifiers, \ + CFLAGS := $(SVE_CFLAGS), \ + )) + + TARGETS += $(BUILD_LIBSLEEF) +endif diff --git a/src/jdk.incubator.vector/linux/native/libsleef/lib/vector_math_neon.c b/src/jdk.incubator.vector/linux/native/libsleef/lib/vector_math_neon.c new file mode 100644 index 00000000000..de289d4ffc5 --- /dev/null +++ b/src/jdk.incubator.vector/linux/native/libsleef/lib/vector_math_neon.c @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2024, Arm Limited. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +#if defined(__ARM_NEON__) || defined(__ARM_NEON) + +#include +#include + +#include "../generated/misc.h" +#include "../generated/sleefinline_advsimd.h" + + +#include + +#define DEFINE_VECTOR_MATH_UNARY(op, type) \ +JNIEXPORT \ +type op##advsimd(type input) { \ + return Sleef_##op##advsimd(input); \ +} + +#define DEFINE_VECTOR_MATH_BINARY(op, type) \ +JNIEXPORT \ +type op##advsimd(type input1, type input2) { \ + return Sleef_##op##advsimd(input1, input2); \ +} + +DEFINE_VECTOR_MATH_UNARY(tanf4_u10, float32x4_t) +DEFINE_VECTOR_MATH_UNARY(tanhf4_u10, float32x4_t) +DEFINE_VECTOR_MATH_UNARY(sinf4_u10, float32x4_t) +DEFINE_VECTOR_MATH_UNARY(sinhf4_u10, float32x4_t) +DEFINE_VECTOR_MATH_UNARY(cosf4_u10, float32x4_t) +DEFINE_VECTOR_MATH_UNARY(coshf4_u10, float32x4_t) +DEFINE_VECTOR_MATH_UNARY(asinf4_u10, float32x4_t) +DEFINE_VECTOR_MATH_UNARY(acosf4_u10, float32x4_t) +DEFINE_VECTOR_MATH_UNARY(atanf4_u10, float32x4_t) +DEFINE_VECTOR_MATH_UNARY(cbrtf4_u10, float32x4_t) +DEFINE_VECTOR_MATH_UNARY(logf4_u10, float32x4_t) +DEFINE_VECTOR_MATH_UNARY(log10f4_u10, float32x4_t) +DEFINE_VECTOR_MATH_UNARY(log1pf4_u10, float32x4_t) +DEFINE_VECTOR_MATH_UNARY(expf4_u10, float32x4_t) +DEFINE_VECTOR_MATH_UNARY(expm1f4_u10, float32x4_t) + +DEFINE_VECTOR_MATH_UNARY(tand2_u10, float64x2_t) +DEFINE_VECTOR_MATH_UNARY(tanhd2_u10, float64x2_t) +DEFINE_VECTOR_MATH_UNARY(sind2_u10, float64x2_t) +DEFINE_VECTOR_MATH_UNARY(sinhd2_u10, float64x2_t) +DEFINE_VECTOR_MATH_UNARY(cosd2_u10, float64x2_t) +DEFINE_VECTOR_MATH_UNARY(coshd2_u10, float64x2_t) +DEFINE_VECTOR_MATH_UNARY(asind2_u10, float64x2_t) +DEFINE_VECTOR_MATH_UNARY(acosd2_u10, float64x2_t) +DEFINE_VECTOR_MATH_UNARY(atand2_u10, float64x2_t) +DEFINE_VECTOR_MATH_UNARY(cbrtd2_u10, float64x2_t) +DEFINE_VECTOR_MATH_UNARY(logd2_u10, float64x2_t) +DEFINE_VECTOR_MATH_UNARY(log10d2_u10, float64x2_t) +DEFINE_VECTOR_MATH_UNARY(log1pd2_u10, float64x2_t) +DEFINE_VECTOR_MATH_UNARY(expd2_u10, float64x2_t) +DEFINE_VECTOR_MATH_UNARY(expm1d2_u10, float64x2_t) + +DEFINE_VECTOR_MATH_BINARY(atan2f4_u10, float32x4_t) +DEFINE_VECTOR_MATH_BINARY(powf4_u10, float32x4_t) +DEFINE_VECTOR_MATH_BINARY(hypotf4_u05, float32x4_t) + +DEFINE_VECTOR_MATH_BINARY(atan2d2_u10, float64x2_t) +DEFINE_VECTOR_MATH_BINARY(powd2_u10, float64x2_t) +DEFINE_VECTOR_MATH_BINARY(hypotd2_u05, float64x2_t) + +#undef DEFINE_VECTOR_MATH_UNARY + +#undef DEFINE_VECTOR_MATH_BINARY + +#endif // defined(__ARM_NEON__) || defined(__ARM_NEON) diff --git a/src/jdk.incubator.vector/linux/native/libsleef/lib/vector_math_sve.c b/src/jdk.incubator.vector/linux/native/libsleef/lib/vector_math_sve.c new file mode 100644 index 00000000000..1a442761d51 --- /dev/null +++ b/src/jdk.incubator.vector/linux/native/libsleef/lib/vector_math_sve.c @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2024, Arm Limited. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +#if defined(__ARM_FEATURE_SVE) + +#include +#include + +#include "../generated/misc.h" +#include "../generated/sleefinline_sve.h" + + +#include + +#define DEFINE_VECTOR_MATH_UNARY_SVE(op, type) \ +JNIEXPORT \ +type op##sve(type input) { \ + return Sleef_##op##sve(input); \ +} + +#define DEFINE_VECTOR_MATH_BINARY_SVE(op, type) \ +JNIEXPORT \ +type op##sve(type input1, type input2) { \ + return Sleef_##op##sve(input1, input2); \ +} + +DEFINE_VECTOR_MATH_UNARY_SVE(tanfx_u10, svfloat32_t) +DEFINE_VECTOR_MATH_UNARY_SVE(sinfx_u10, svfloat32_t) +DEFINE_VECTOR_MATH_UNARY_SVE(sinhfx_u10, svfloat32_t) +DEFINE_VECTOR_MATH_UNARY_SVE(cosfx_u10, svfloat32_t) +DEFINE_VECTOR_MATH_UNARY_SVE(coshfx_u10, svfloat32_t) +DEFINE_VECTOR_MATH_UNARY_SVE(asinfx_u10, svfloat32_t) +DEFINE_VECTOR_MATH_UNARY_SVE(acosfx_u10, svfloat32_t) +DEFINE_VECTOR_MATH_UNARY_SVE(atanfx_u10, svfloat32_t) +DEFINE_VECTOR_MATH_UNARY_SVE(cbrtfx_u10, svfloat32_t) +DEFINE_VECTOR_MATH_UNARY_SVE(logfx_u10, svfloat32_t) +DEFINE_VECTOR_MATH_UNARY_SVE(log10fx_u10, svfloat32_t) +DEFINE_VECTOR_MATH_UNARY_SVE(log1pfx_u10, svfloat32_t) +DEFINE_VECTOR_MATH_UNARY_SVE(expfx_u10, svfloat32_t) +DEFINE_VECTOR_MATH_UNARY_SVE(expm1fx_u10, svfloat32_t) + +DEFINE_VECTOR_MATH_UNARY_SVE(tandx_u10, svfloat64_t) +DEFINE_VECTOR_MATH_UNARY_SVE(sindx_u10, svfloat64_t) +DEFINE_VECTOR_MATH_UNARY_SVE(sinhdx_u10, svfloat64_t) +DEFINE_VECTOR_MATH_UNARY_SVE(cosdx_u10, svfloat64_t) +DEFINE_VECTOR_MATH_UNARY_SVE(coshdx_u10, svfloat64_t) +DEFINE_VECTOR_MATH_UNARY_SVE(asindx_u10, svfloat64_t) +DEFINE_VECTOR_MATH_UNARY_SVE(acosdx_u10, svfloat64_t) +DEFINE_VECTOR_MATH_UNARY_SVE(atandx_u10, svfloat64_t) +DEFINE_VECTOR_MATH_UNARY_SVE(cbrtdx_u10, svfloat64_t) +DEFINE_VECTOR_MATH_UNARY_SVE(logdx_u10, svfloat64_t) +DEFINE_VECTOR_MATH_UNARY_SVE(log10dx_u10, svfloat64_t) +DEFINE_VECTOR_MATH_UNARY_SVE(log1pdx_u10, svfloat64_t) +DEFINE_VECTOR_MATH_UNARY_SVE(expdx_u10, svfloat64_t) +DEFINE_VECTOR_MATH_UNARY_SVE(expm1dx_u10, svfloat64_t) + +DEFINE_VECTOR_MATH_BINARY_SVE(atan2fx_u10, svfloat32_t) +DEFINE_VECTOR_MATH_BINARY_SVE(powfx_u10, svfloat32_t) +DEFINE_VECTOR_MATH_BINARY_SVE(hypotfx_u05, svfloat32_t) + +DEFINE_VECTOR_MATH_BINARY_SVE(atan2dx_u10, svfloat64_t) +DEFINE_VECTOR_MATH_BINARY_SVE(powdx_u10, svfloat64_t) +DEFINE_VECTOR_MATH_BINARY_SVE(hypotdx_u05, svfloat64_t) + +#undef DEFINE_VECTOR_MATH_UNARY_SVE + +#undef DEFINE_VECTOR_MATH_BINARY_SVE + +#endif // __ARM_FEATURE_SVE From c15d8d1c38cc49eca959e6e6b28f6c4506f5547a Mon Sep 17 00:00:00 2001 From: Per Minborg Date: Mon, 4 Nov 2024 11:06:25 +0000 Subject: [PATCH 078/159] 8343188: Investigate ways to simplify MemorySegment::ofBuffer Reviewed-by: mcimadamore --- .../share/classes/java/nio/Buffer.java | 39 +++++++- .../nio/ByteBufferAs-X-Buffer.java.template | 21 +++- .../java/nio/Direct-X-Buffer.java.template | 23 ++++- .../java/nio/Heap-X-Buffer.java.template | 21 ++++ .../classes/java/nio/X-Buffer.java.template | 22 ++++- .../jdk/internal/access/JavaNioAccess.java | 15 ++- .../foreign/AbstractMemorySegmentImpl.java | 99 ++++++++----------- .../internal/foreign/SegmentFactories.java | 58 +++++++++++ .../java/lang/foreign/SegmentOfBuffer.java | 71 +++++++++++++ 9 files changed, 305 insertions(+), 64 deletions(-) create mode 100644 test/micro/org/openjdk/bench/java/lang/foreign/SegmentOfBuffer.java diff --git a/src/java.base/share/classes/java/nio/Buffer.java b/src/java.base/share/classes/java/nio/Buffer.java index 828ae417f79..39e0ff642a4 100644 --- a/src/java.base/share/classes/java/nio/Buffer.java +++ b/src/java.base/share/classes/java/nio/Buffer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,11 +37,9 @@ import jdk.internal.util.Preconditions; import jdk.internal.vm.annotation.ForceInline; -import java.io.FileDescriptor; import java.lang.foreign.MemorySegment; import java.lang.ref.Reference; import java.util.List; -import java.util.Objects; import java.util.Spliterator; import java.util.function.BiFunction; import java.util.function.Function; @@ -780,6 +778,23 @@ final int checkIndex(int i, int nb) { // package-private return Preconditions.checkIndex(i, limit - nb + 1, IOOBE_FORMATTER); } + /** + * {@return the scale shifts for this Buffer} + *

    + * The scale shifts are: + * ByteBuffer: 0 + * ShortBuffer, CharBuffer: 1 + * IntBuffer, FloatBuffer: 2 + * LongBuffer, DoubleBuffer: 3 + */ + abstract int scaleShifts(); + + abstract AbstractMemorySegmentImpl heapSegment(Object base, + long offset, + long length, + boolean readOnly, + MemorySessionImpl bufferScope); + final int markValue() { // package-private return mark; } @@ -832,6 +847,7 @@ public ByteBuffer newHeapByteBuffer(byte[] hb, int offset, int capacity, MemoryS return new HeapByteBuffer(hb, -1, 0, capacity, capacity, offset, segment); } + @ForceInline @Override public Object getBufferBase(Buffer buffer) { return buffer.base(); @@ -906,6 +922,23 @@ public void unreserveMemory(long size, long cap) { public int pageSize() { return Bits.pageSize(); } + + @ForceInline + @Override + public int scaleShifts(Buffer buffer) { + return buffer.scaleShifts(); + } + + @ForceInline + @Override + public AbstractMemorySegmentImpl heapSegment(Buffer buffer, + Object base, + long offset, + long length, + boolean readOnly, + MemorySessionImpl bufferScope) { + return buffer.heapSegment(base, offset, length, readOnly, bufferScope); + } }); } diff --git a/src/java.base/share/classes/java/nio/ByteBufferAs-X-Buffer.java.template b/src/java.base/share/classes/java/nio/ByteBufferAs-X-Buffer.java.template index 863de99f096..7437b86cf51 100644 --- a/src/java.base/share/classes/java/nio/ByteBufferAs-X-Buffer.java.template +++ b/src/java.base/share/classes/java/nio/ByteBufferAs-X-Buffer.java.template @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -28,6 +28,10 @@ package java.nio; import java.lang.foreign.MemorySegment; +import jdk.internal.foreign.AbstractMemorySegmentImpl; +import jdk.internal.foreign.MemorySessionImpl; +import jdk.internal.foreign.SegmentFactories; +import jdk.internal.vm.annotation.ForceInline; import java.util.Objects; import jdk.internal.misc.Unsafe; @@ -246,6 +250,21 @@ class ByteBufferAs$Type$Buffer$RW$$BO$ // package-private #end[char] + @ForceInline + @Override + int scaleShifts() { + return Integer.numberOfTrailingZeros($Fulltype$.BYTES); + } + + @ForceInline + @Override + AbstractMemorySegmentImpl heapSegment(Object base, + long offset, + long length, + boolean readOnly, + MemorySessionImpl bufferScope) { + return SegmentFactories.arrayOfByteSegment(base, offset, length, readOnly, bufferScope); + } public ByteOrder order() { #if[boB] diff --git a/src/java.base/share/classes/java/nio/Direct-X-Buffer.java.template b/src/java.base/share/classes/java/nio/Direct-X-Buffer.java.template index 6c0da829331..dac9abbf620 100644 --- a/src/java.base/share/classes/java/nio/Direct-X-Buffer.java.template +++ b/src/java.base/share/classes/java/nio/Direct-X-Buffer.java.template @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,7 +31,10 @@ import java.io.FileDescriptor; import java.lang.foreign.MemorySegment; import java.lang.ref.Reference; import java.util.Objects; +import jdk.internal.foreign.AbstractMemorySegmentImpl; import jdk.internal.foreign.MemorySessionImpl; +import jdk.internal.foreign.SegmentFactories; +import jdk.internal.vm.annotation.ForceInline; import jdk.internal.misc.ScopedMemoryAccess.ScopedAccessError; import jdk.internal.misc.VM; import jdk.internal.ref.Cleaner; @@ -528,6 +531,24 @@ class Direct$Type$Buffer$RW$$BO$ } #end[char] +#if[byte] + @ForceInline + @Override + int scaleShifts() { + return 0; + } + + @ForceInline + @Override + AbstractMemorySegmentImpl heapSegment(Object base, + long offset, + long length, + boolean readOnly, + MemorySessionImpl bufferScope) { + // Direct buffers are not backed by an array. + throw new UnsupportedOperationException(); + } +#end[byte] #if[byte] // #BIN diff --git a/src/java.base/share/classes/java/nio/Heap-X-Buffer.java.template b/src/java.base/share/classes/java/nio/Heap-X-Buffer.java.template index 4820725d6c4..9dc46716119 100644 --- a/src/java.base/share/classes/java/nio/Heap-X-Buffer.java.template +++ b/src/java.base/share/classes/java/nio/Heap-X-Buffer.java.template @@ -28,6 +28,10 @@ package java.nio; import java.lang.foreign.MemorySegment; +import jdk.internal.foreign.AbstractMemorySegmentImpl; +import jdk.internal.foreign.MemorySessionImpl; +import jdk.internal.foreign.SegmentFactories; +import jdk.internal.vm.annotation.ForceInline; import java.util.Objects; /** @@ -735,6 +739,23 @@ class Heap$Type$Buffer$RW$ #end[char] +#if[byte] + @ForceInline + @Override + int scaleShifts() { + return 0; + } + + @ForceInline + @Override + AbstractMemorySegmentImpl heapSegment(Object base, + long offset, + long length, + boolean readOnly, + MemorySessionImpl bufferScope) { + return SegmentFactories.arrayOf$Type$Segment(base, offset, length, readOnly, bufferScope); + } +#end[byte] #if[!byte] diff --git a/src/java.base/share/classes/java/nio/X-Buffer.java.template b/src/java.base/share/classes/java/nio/X-Buffer.java.template index 1b378a2ef4a..d089155abf9 100644 --- a/src/java.base/share/classes/java/nio/X-Buffer.java.template +++ b/src/java.base/share/classes/java/nio/X-Buffer.java.template @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,6 +37,10 @@ import java.util.stream.StreamSupport; import java.util.stream.$Streamtype$Stream; #end[streamableType] +import jdk.internal.foreign.AbstractMemorySegmentImpl; +import jdk.internal.foreign.MemorySessionImpl; +import jdk.internal.foreign.SegmentFactories; +import jdk.internal.vm.annotation.ForceInline; import java.lang.foreign.MemorySegment; import java.util.Objects; import jdk.internal.util.ArraysSupport; @@ -2321,6 +2325,22 @@ public abstract sealed class $Type$Buffer #end[byte] + @ForceInline + @Override + int scaleShifts() { + return Integer.numberOfTrailingZeros($Fulltype$.BYTES); + } + + @ForceInline + @Override + AbstractMemorySegmentImpl heapSegment(Object base, + long offset, + long length, + boolean readOnly, + MemorySessionImpl bufferScope) { + return SegmentFactories.arrayOf$Type$Segment(base, offset, length, readOnly, bufferScope); + } + #if[streamableType] #if[char] diff --git a/src/java.base/share/classes/jdk/internal/access/JavaNioAccess.java b/src/java.base/share/classes/jdk/internal/access/JavaNioAccess.java index a5d7c843998..f2d2b7b5b65 100644 --- a/src/java.base/share/classes/jdk/internal/access/JavaNioAccess.java +++ b/src/java.base/share/classes/jdk/internal/access/JavaNioAccess.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -27,10 +27,11 @@ import jdk.internal.access.foreign.MappedMemoryUtilsProxy; import jdk.internal.access.foreign.UnmapperProxy; +import jdk.internal.foreign.AbstractMemorySegmentImpl; +import jdk.internal.foreign.MemorySessionImpl; import jdk.internal.misc.VM.BufferPool; import java.lang.foreign.MemorySegment; -import java.io.FileDescriptor; import java.nio.Buffer; import java.nio.ByteBuffer; @@ -127,4 +128,14 @@ public interface JavaNioAccess { * Used by {@code jdk.internal.foreign.NativeMemorySegmentImpl}. */ int pageSize(); + + int scaleShifts(Buffer buffer); + + AbstractMemorySegmentImpl heapSegment(Buffer buffer, + Object base, + long offset, + long length, + boolean readOnly, + MemorySessionImpl bufferScope); + } diff --git a/src/java.base/share/classes/jdk/internal/foreign/AbstractMemorySegmentImpl.java b/src/java.base/share/classes/jdk/internal/foreign/AbstractMemorySegmentImpl.java index c3b6295853f..c3673dace8d 100644 --- a/src/java.base/share/classes/jdk/internal/foreign/AbstractMemorySegmentImpl.java +++ b/src/java.base/share/classes/jdk/internal/foreign/AbstractMemorySegmentImpl.java @@ -30,12 +30,6 @@ import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.ByteOrder; -import java.nio.CharBuffer; -import java.nio.DoubleBuffer; -import java.nio.FloatBuffer; -import java.nio.IntBuffer; -import java.nio.LongBuffer; -import java.nio.ShortBuffer; import java.nio.charset.Charset; import java.util.*; import java.util.function.BiFunction; @@ -51,14 +45,11 @@ import jdk.internal.misc.ScopedMemoryAccess; import jdk.internal.reflect.CallerSensitive; import jdk.internal.reflect.Reflection; -import jdk.internal.util.Architecture; import jdk.internal.util.ArraysSupport; import jdk.internal.util.Preconditions; import jdk.internal.vm.annotation.ForceInline; import sun.nio.ch.DirectBuffer; -import static java.lang.foreign.ValueLayout.JAVA_BYTE; - /** * This abstract class provides an immutable implementation for the {@code MemorySegment} interface. This class contains information * about the segment's spatial and temporal bounds; each memory segment implementation is associated with an owner thread which is set at creation time. @@ -521,48 +512,53 @@ public int hashCode() { unsafeGetBase()); } - public static AbstractMemorySegmentImpl ofBuffer(Buffer bb) { - Objects.requireNonNull(bb); - Object base = NIO_ACCESS.getBufferBase(bb); - if (!bb.isDirect() && base == null) { + @ForceInline + public static AbstractMemorySegmentImpl ofBuffer(Buffer b) { + // Implicit null check via NIO_ACCESS.scaleShifts(b) + final int scaleShifts = NIO_ACCESS.scaleShifts(b); + return ofBuffer(b, offset(b, scaleShifts), length(b, scaleShifts)); + } + + @ForceInline + private static AbstractMemorySegmentImpl ofBuffer(Buffer b, long offset, long length) { + final Object base = NIO_ACCESS.getBufferBase(b); + return (base == null) + ? nativeSegment(b, offset, length) + : NIO_ACCESS.heapSegment(b, base, offset, length, b.isReadOnly(), bufferScope(b)); + } + + @ForceInline + private static long offset(Buffer b, int scaleShifts) { + final long bbAddress = NIO_ACCESS.getBufferAddress(b); + return bbAddress + (((long) b.position()) << scaleShifts); + } + + @ForceInline + private static long length(Buffer b, int scaleShifts) { + return ((long) b.limit() - b.position()) << scaleShifts; + } + + @ForceInline + private static AbstractMemorySegmentImpl nativeSegment(Buffer b, long offset, long length) { + if (!b.isDirect()) { throw new IllegalArgumentException("The provided heap buffer is not backed by an array."); } - long bbAddress = NIO_ACCESS.getBufferAddress(bb); - UnmapperProxy unmapper = NIO_ACCESS.unmapper(bb); - - int pos = bb.position(); - int limit = bb.limit(); - int size = limit - pos; - - AbstractMemorySegmentImpl bufferSegment = (AbstractMemorySegmentImpl) NIO_ACCESS.bufferSegment(bb); - boolean readOnly = bb.isReadOnly(); - int scaleFactor = getScaleFactor(bb); - final MemorySessionImpl bufferScope; - if (bufferSegment != null) { - bufferScope = bufferSegment.scope; - } else { - bufferScope = MemorySessionImpl.createHeap(bufferRef(bb)); - } - long off = bbAddress + ((long)pos << scaleFactor); - long len = (long)size << scaleFactor; - if (base != null) { - return switch (base) { - case byte[] _ -> new HeapMemorySegmentImpl.OfByte(off, base, len, readOnly, bufferScope); - case short[] _ -> new HeapMemorySegmentImpl.OfShort(off, base, len, readOnly, bufferScope); - case char[] _ -> new HeapMemorySegmentImpl.OfChar(off, base, len, readOnly, bufferScope); - case int[] _ -> new HeapMemorySegmentImpl.OfInt(off, base, len, readOnly, bufferScope); - case float[] _ -> new HeapMemorySegmentImpl.OfFloat(off, base, len, readOnly, bufferScope); - case long[] _ -> new HeapMemorySegmentImpl.OfLong(off, base, len, readOnly, bufferScope); - case double[] _ -> new HeapMemorySegmentImpl.OfDouble(off, base, len, readOnly, bufferScope); - default -> throw new AssertionError("Cannot get here"); - }; - } else if (unmapper == null) { - return new NativeMemorySegmentImpl(off, len, readOnly, bufferScope); - } else { - return new MappedMemorySegmentImpl(off, unmapper, len, readOnly, bufferScope); - } + final UnmapperProxy unmapper = NIO_ACCESS.unmapper(b); + return unmapper == null + ? new NativeMemorySegmentImpl(offset, length, b.isReadOnly(), bufferScope(b)) + : new MappedMemorySegmentImpl(offset, unmapper, length, b.isReadOnly(), bufferScope(b)); } + @ForceInline + private static MemorySessionImpl bufferScope(Buffer b) { + final AbstractMemorySegmentImpl bufferSegment = + (AbstractMemorySegmentImpl) NIO_ACCESS.bufferSegment(b); + return bufferSegment == null + ? MemorySessionImpl.createHeap(bufferRef(b)) + : bufferSegment.scope; + } + + @ForceInline private static Object bufferRef(Buffer buffer) { if (buffer instanceof DirectBuffer directBuffer) { // direct buffer, return either the buffer attachment (for slices and views), or the buffer itself @@ -660,15 +656,6 @@ public static void copy(Object srcArray, int srcIndex, } } - private static int getScaleFactor(Buffer buffer) { - return switch (buffer) { - case ByteBuffer _ -> 0; - case CharBuffer _, ShortBuffer _ -> 1; - case IntBuffer _, FloatBuffer _ -> 2; - case LongBuffer _, DoubleBuffer _ -> 3; - }; - } - // accessors @ForceInline diff --git a/src/java.base/share/classes/jdk/internal/foreign/SegmentFactories.java b/src/java.base/share/classes/jdk/internal/foreign/SegmentFactories.java index 133631e2aa4..a9d803055c5 100644 --- a/src/java.base/share/classes/jdk/internal/foreign/SegmentFactories.java +++ b/src/java.base/share/classes/jdk/internal/foreign/SegmentFactories.java @@ -140,6 +140,64 @@ public static MemorySegment fromArray(long[] arr) { MemorySessionImpl.createHeap(arr)); } + // Buffer conversion factories + + public static AbstractMemorySegmentImpl arrayOfByteSegment(Object base, + long offset, + long length, + boolean readOnly, + MemorySessionImpl bufferScope) { + return new HeapMemorySegmentImpl.OfByte(offset, base, length, readOnly, bufferScope); + } + + public static AbstractMemorySegmentImpl arrayOfShortSegment(Object base, + long offset, + long length, + boolean readOnly, + MemorySessionImpl bufferScope) { + return new HeapMemorySegmentImpl.OfShort(offset, base, length, readOnly, bufferScope); + } + + public static AbstractMemorySegmentImpl arrayOfCharSegment(Object base, + long offset, + long length, + boolean readOnly, + MemorySessionImpl bufferScope) { + return new HeapMemorySegmentImpl.OfChar(offset, base, length, readOnly, bufferScope); + } + + public static AbstractMemorySegmentImpl arrayOfIntSegment(Object base, + long offset, + long length, + boolean readOnly, + MemorySessionImpl bufferScope) { + return new HeapMemorySegmentImpl.OfInt(offset, base, length, readOnly, bufferScope); + } + + public static AbstractMemorySegmentImpl arrayOfFloatSegment(Object base, + long offset, + long length, + boolean readOnly, + MemorySessionImpl bufferScope) { + return new HeapMemorySegmentImpl.OfFloat(offset, base, length, readOnly, bufferScope); + } + + public static AbstractMemorySegmentImpl arrayOfLongSegment(Object base, + long offset, + long length, + boolean readOnly, + MemorySessionImpl bufferScope) { + return new HeapMemorySegmentImpl.OfLong(offset, base, length, readOnly, bufferScope); + } + + public static AbstractMemorySegmentImpl arrayOfDoubleSegment(Object base, + long offset, + long length, + boolean readOnly, + MemorySessionImpl bufferScope) { + return new HeapMemorySegmentImpl.OfDouble(offset, base, length, readOnly, bufferScope); + } + public static MemorySegment allocateSegment(long byteSize, long byteAlignment, MemorySessionImpl sessionImpl, boolean shouldReserve) { ensureInitialized(); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/SegmentOfBuffer.java b/test/micro/org/openjdk/bench/java/lang/foreign/SegmentOfBuffer.java new file mode 100644 index 00000000000..25bfd44b063 --- /dev/null +++ b/test/micro/org/openjdk/bench/java/lang/foreign/SegmentOfBuffer.java @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +package org.openjdk.bench.java.lang.foreign; + +import org.openjdk.jmh.annotations.Benchmark; +import org.openjdk.jmh.annotations.BenchmarkMode; +import org.openjdk.jmh.annotations.Fork; +import org.openjdk.jmh.annotations.Measurement; +import org.openjdk.jmh.annotations.Mode; +import org.openjdk.jmh.annotations.OutputTimeUnit; +import org.openjdk.jmh.annotations.Scope; +import org.openjdk.jmh.annotations.State; +import org.openjdk.jmh.annotations.Warmup; + +import java.lang.foreign.MemorySegment; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.util.concurrent.TimeUnit; + +@BenchmarkMode(Mode.AverageTime) +@Warmup(iterations = 5, time = 500, timeUnit = TimeUnit.MILLISECONDS) +@Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) +@OutputTimeUnit(TimeUnit.NANOSECONDS) +@State(Scope.Benchmark) +public class SegmentOfBuffer { + + private final ByteBuffer buffer = ByteBuffer + .allocateDirect(0x1000) + .order(ByteOrder.nativeOrder()); + + @Benchmark + @Fork(value = 3) + public long ofBuffer() { + return MemorySegment.ofBuffer(buffer).address(); + } + + @Benchmark + @Fork(value = 3, jvmArgsAppend = "-XX:CompileCommand=inline,jdk.internal.foreign.AbstractMemorySegmentImpl::ofBuffer,false") + public long ofBufferInlineFalse() { + return MemorySegment.ofBuffer(buffer).address(); + } + + @Benchmark + @Fork(value = 3, jvmArgsAppend = "-XX:CompileCommand=inline,jdk.internal.foreign.AbstractMemorySegmentImpl::ofBuffer,true") + public long ofBufferInlineTrue() { + return MemorySegment.ofBuffer(buffer).address(); + } + +} From 59436b9fb4bd80dbfc4e89d88aa9e30d49f24de2 Mon Sep 17 00:00:00 2001 From: Alexey Ivanov Date: Mon, 4 Nov 2024 11:37:47 +0000 Subject: [PATCH 079/159] 8343128: PassFailJFrame.java test result: Error. Bad action for script: build} Use HTML character entity in javadoc to prevent jtreg from recognising PassFailJFrame.java as a test file. Reviewed-by: azvegint, honkar --- test/jdk/java/awt/regtesthelpers/PassFailJFrame.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/test/jdk/java/awt/regtesthelpers/PassFailJFrame.java b/test/jdk/java/awt/regtesthelpers/PassFailJFrame.java index 41c5fdf8ccd..1426b97e3ca 100644 --- a/test/jdk/java/awt/regtesthelpers/PassFailJFrame.java +++ b/test/jdk/java/awt/regtesthelpers/PassFailJFrame.java @@ -184,21 +184,23 @@ * *

    * Add the following jtreg tags before the test class declaration - * {@snippet : + *

    
      * /*
    - *  * @test
    + *  * @test
      *  * @summary Sample manual test
      *  * @library /java/awt/regtesthelpers
      *  * @build PassFailJFrame
      *  * @run main/manual SampleManualTest
    - * }
    - * and the closing comment tag */.
    + *  */
    + * 
    *

    * The {@code @library} tag points to the location of the * {@code PassFailJFrame} class in the source code; * the {@code @build} tag makes jtreg compile the {@code PassFailJFrame} class, * and finally the {@code @run} tag specifies it is a manual * test and the class to run. + *

    + * Don't forget to update the name of the class to run in the {@code @run} tag. * *

    Using {@code Builder}

    * Use methods of the {@link Builder Builder} class to set or change From 2f75633356a50b54ad227ba71a46d95954a8dc73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hannes=20Walln=C3=B6fer?= Date: Mon, 4 Nov 2024 12:05:08 +0000 Subject: [PATCH 080/159] 8321500: javadoc rejects '@' in multi-line attribute value Reviewed-by: prappo --- .../tools/javac/parser/DocCommentParser.java | 9 --- .../tools/javac/doctree/AttrTest.java | 70 ++++++++++++++++++- 2 files changed, 68 insertions(+), 11 deletions(-) diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/DocCommentParser.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/DocCommentParser.java index be311bb3ab8..3f7e27ca267 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/DocCommentParser.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/DocCommentParser.java @@ -1147,7 +1147,6 @@ protected List htmlAttrs() { ListBuffer attrs = new ListBuffer<>(); skipWhitespace(); - loop: while (bp < buflen && isIdentifierStart(ch)) { int namePos = bp; Name name = readAttributeName(); @@ -1165,14 +1164,6 @@ protected List htmlAttrs() { nextChar(); textStart = bp; while (bp < buflen && ch != quote) { - if (newline && ch == '@') { - attrs.add(erroneous("dc.unterminated.string", namePos)); - // No point trying to read more. - // In fact, all attrs get discarded by the caller - // and superseded by a malformed.html node because - // the html tag itself is not terminated correctly. - break loop; - } attrValueChar(v); } addPendingText(v, bp - 1, DocTree.Kind.TEXT); diff --git a/test/langtools/tools/javac/doctree/AttrTest.java b/test/langtools/tools/javac/doctree/AttrTest.java index 6f17849c13f..ea5761d33ee 100644 --- a/test/langtools/tools/javac/doctree/AttrTest.java +++ b/test/langtools/tools/javac/doctree/AttrTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,7 +23,7 @@ /* * @test - * @bug 7021614 8076026 8273244 + * @bug 7021614 8076026 8273244 8321500 * @summary extend com.sun.source API to support parsing javadoc comments * @modules jdk.compiler/com.sun.tools.javac.api * jdk.compiler/com.sun.tools.javac.file @@ -345,4 +345,70 @@ void multiple_attr() { } block tags: empty ] */ + + /** + * + */ + void tags_in_attr() { } +/* +DocComment[DOC_COMMENT, pos:1 + firstSentence: 1 + StartElement[START_ELEMENT, pos:1 + name:a + attributes: 3 + Attribute[ATTRIBUTE, pos:4 + name: name1 + vkind: DOUBLE + value: 1 + Literal[LITERAL, pos:11, value] + ] + Attribute[ATTRIBUTE, pos:29 + name: name2 + vkind: SINGLE + value: 1 + Text[TEXT, pos:36, @foo] + ] + Attribute[ATTRIBUTE, pos:42 + name: name3 + vkind: DOUBLE + value: 6 + Text[TEXT, pos:49, abc|@notag_] + Entity[ENTITY, pos:60, lt] + Text[TEXT, pos:64, Noref] + Entity[ENTITY, pos:69, gt] + Text[TEXT, pos:73, _] + Literal[LITERAL, pos:74, xyz] + ] + ] + body: empty + block tags: empty +] +*/ + + /** + * dedupedLambdas = new LinkedHashMap<>(); - task.addTaskListener(new TreeDiffHashTaskListener(dedupedLambdas)); + task.addTaskListener(new TreeDiffHashTaskListener(dedupedLambdas, types)); Iterable generated = task.generate(); if (!diagnosticListener.unexpected.isEmpty()) { throw new AssertionError( @@ -142,15 +149,19 @@ public static void main(String[] args) throws Exception { try (InputStream input = output.openInputStream()) { cm = ClassFile.of().parse(input.readAllBytes()); } - if (cm.thisClass().asInternalName().equals("com/sun/tools/javac/comp/Deduplication$R")) { + if (cm.thisClass().asInternalName().equals("com/sun/tools/javac/comp/Deduplication$R") || + cm.thisClass().asInternalName().equals("com/sun/tools/javac/comp/Deduplication$1C") || + cm.thisClass().asInternalName().equals("com/sun/tools/javac/comp/Deduplication$2C")) { continue; } BootstrapMethodsAttribute bsm = cm.findAttribute(Attributes.bootstrapMethods()).orElseThrow(); for (BootstrapMethodEntry b : bsm.bootstrapMethods()) { - bootstrapMethodNames.add( - ((MethodHandleEntry)b.arguments().get(1)) - .reference() - .name().stringValue()); + if (((BootstrapMethodEntryImpl) b).bootstrapMethod().asSymbol().methodName().equals("metafactory")) { + bootstrapMethodNames.add( + ((MethodHandleEntry) b.arguments().get(1)) + .reference() + .name().stringValue()); + } } } Set deduplicatedNames = @@ -249,9 +260,11 @@ private static class TreeDiffHashTaskListener implements TaskListener { * deduplicated to. */ private final Map dedupedLambdas; + private final Types types; - public TreeDiffHashTaskListener(Map dedupedLambdas) { + public TreeDiffHashTaskListener(Map dedupedLambdas, Types types) { this.dedupedLambdas = dedupedLambdas; + this.types = types; } @Override @@ -262,31 +275,26 @@ public void finished(TaskEvent e) { // Scan the compilation for calls to a varargs method named 'group', whose arguments // are a group of lambdas that are equivalent to each other, but distinct from all // lambdas in the compilation unit outside of that group. - List> lambdaGroups = new ArrayList<>(); + List> lambdaEqualsGroups = new ArrayList<>(); + List> lambdaNotEqualsGroups = new ArrayList<>(); + new TreeScanner() { @Override public void visitApply(JCMethodInvocation tree) { - if (tree.getMethodSelect().getTag() == Tag.IDENT - && ((JCIdent) tree.getMethodSelect()) - .getName() - .contentEquals("group")) { - List xs = new ArrayList<>(); - for (JCExpression arg : tree.getArguments()) { - if (arg instanceof JCTypeCast) { - arg = ((JCTypeCast) arg).getExpression(); - } - xs.add((JCLambda) arg); - } - lambdaGroups.add(xs); + if (isMethodWithName(tree, "groupEquals")) { + addToGroup(tree, lambdaEqualsGroups); + } else if (isMethodWithName(tree, "groupNotEquals")) { + addToGroup(tree, lambdaNotEqualsGroups); } super.visitApply(tree); } }.scan((JCCompilationUnit) e.getCompilationUnit()); - for (int i = 0; i < lambdaGroups.size(); i++) { - List curr = lambdaGroups.get(i); - JCLambda first = null; + + for (int i = 0; i < lambdaEqualsGroups.size(); i++) { + List curr = lambdaEqualsGroups.get(i); // Assert that all pairwise combinations of lambdas in the group are equal, and // hash to the same value. + JCLambda first = null; for (JCLambda lhs : curr) { if (first == null) { first = lhs; @@ -294,50 +302,82 @@ public void visitApply(JCMethodInvocation tree) { dedupedLambdas.put(lhs, first); } for (JCLambda rhs : curr) { - if (!new TreeDiffer(paramSymbols(lhs), paramSymbols(rhs)) - .scan(lhs.body, rhs.body)) { - throw new AssertionError( - String.format( - "expected lambdas to be equal\n%s\n%s", lhs, rhs)); - } - if (TreeHasher.hash(lhs, paramSymbols(lhs)) - != TreeHasher.hash(rhs, paramSymbols(rhs))) { - throw new AssertionError( - String.format( - "expected lambdas to hash to the same value\n%s\n%s", - lhs, rhs)); - } - } - } - // Assert that no lambdas in a group are equal to any lambdas outside that group, - // or hash to the same value as lambda outside the group. - // (Note that the hash collisions won't result in correctness problems but could - // regress performs, and do not currently occurr for any of the test inputs.) - for (int j = 0; j < lambdaGroups.size(); j++) { - if (i == j) { - continue; - } - for (JCLambda lhs : curr) { - for (JCLambda rhs : lambdaGroups.get(j)) { - if (new TreeDiffer(paramSymbols(lhs), paramSymbols(rhs)) + if (rhs != lhs) { + if (!new TreeDiffer(types, paramSymbols(lhs), paramSymbols(rhs)) .scan(lhs.body, rhs.body)) { throw new AssertionError( String.format( - "expected lambdas to not be equal\n%s\n%s", - lhs, rhs)); + "expected lambdas to be equal\n%s\n%s", lhs, rhs)); } - if (TreeHasher.hash(lhs, paramSymbols(lhs)) - == TreeHasher.hash(rhs, paramSymbols(rhs))) { + if (TreeHasher.hash(types, lhs, paramSymbols(lhs)) + != TreeHasher.hash(types, rhs, paramSymbols(rhs))) { throw new AssertionError( String.format( - "expected lambdas to hash to different values\n%s\n%s", + "expected lambdas to hash to the same value\n%s\n%s", lhs, rhs)); } } } } + // Assert that no lambdas in a group are equal to any lambdas outside that group, + // or hash to the same value as lambda outside the group. + // (Note that the hash collisions won't result in correctness problems but could + // regress performs, and do not currently occurr for any of the test inputs.) + assertNotEqualsWithinGroup(lambdaEqualsGroups, i, curr, types); + } + lambdaEqualsGroups.clear(); + + // Assert that no lambdas in a not-equals group are equal to any lambdas inside that group, + // or hash to the same value as lambda inside the group. + for (int i = 0; i < lambdaNotEqualsGroups.size(); i++) { + List curr = lambdaNotEqualsGroups.get(i); + + assertNotEqualsWithinGroup(lambdaNotEqualsGroups, i, curr, types); + } + lambdaNotEqualsGroups.clear(); + } + + private void assertNotEqualsWithinGroup(List> lambdaNotEqualsGroups, int i, List curr, Types types) { + for (int j = 0; j < lambdaNotEqualsGroups.size(); j++) { + if (i == j) { + continue; + } + for (JCLambda lhs : curr) { + for (JCLambda rhs : lambdaNotEqualsGroups.get(j)) { + if (new TreeDiffer(types, paramSymbols(lhs), paramSymbols(rhs)) + .scan(lhs.body, rhs.body)) { + throw new AssertionError( + String.format( + "expected lambdas to not be equal\n%s\n%s", + lhs, rhs)); + } + if (TreeHasher.hash(types, lhs, paramSymbols(lhs)) + == TreeHasher.hash(types, rhs, paramSymbols(rhs))) { + throw new AssertionError( + String.format( + "expected lambdas to hash to different values\n%s\n%s", + lhs, rhs)); + } + } + } + } + } + + private boolean isMethodWithName(JCMethodInvocation tree, String markerMethodName) { + return tree.getMethodSelect().getTag() == Tag.IDENT && ((JCIdent) tree.getMethodSelect()) + .getName() + .contentEquals(markerMethodName); + } + + private void addToGroup(JCMethodInvocation tree, List> groupToAdd) { + List xs = new ArrayList<>(); + for (JCExpression arg : tree.getArguments()) { + if (arg instanceof JCTypeCast) { + arg = ((JCTypeCast) arg).getExpression(); + } + xs.add((JCLambda) arg); } - lambdaGroups.clear(); + groupToAdd.add(xs); } } } From f4ab11618165a28ac6ad5dc654e57b2155a79af0 Mon Sep 17 00:00:00 2001 From: Chen Liang Date: Mon, 4 Nov 2024 13:24:09 +0000 Subject: [PATCH 082/159] 8343437: ClassDesc.of incorrectly permitting empty names Reviewed-by: mchung --- .../classes/java/lang/constant/ClassDesc.java | 2 +- .../java/lang/constant/PackageDesc.java | 4 +- .../jdk/internal/constant/ConstantUtils.java | 121 ++++++++++-------- .../jdk/java/lang/constant/ClassDescTest.java | 7 +- .../java/lang/constant/PackageDescTest.java | 6 +- 5 files changed, 80 insertions(+), 60 deletions(-) diff --git a/src/java.base/share/classes/java/lang/constant/ClassDesc.java b/src/java.base/share/classes/java/lang/constant/ClassDesc.java index 9f58a4f94da..51369652740 100644 --- a/src/java.base/share/classes/java/lang/constant/ClassDesc.java +++ b/src/java.base/share/classes/java/lang/constant/ClassDesc.java @@ -120,7 +120,7 @@ static ClassDesc ofInternalName(String name) { * not in the correct format */ static ClassDesc of(String packageName, String className) { - validateBinaryClassName(packageName); + validateBinaryPackageName(packageName); validateMemberName(className, false); if (packageName.isEmpty()) { return internalNameToDesc(className); diff --git a/src/java.base/share/classes/java/lang/constant/PackageDesc.java b/src/java.base/share/classes/java/lang/constant/PackageDesc.java index 2798d69d6da..4f2791b3b5c 100644 --- a/src/java.base/share/classes/java/lang/constant/PackageDesc.java +++ b/src/java.base/share/classes/java/lang/constant/PackageDesc.java @@ -55,7 +55,7 @@ public sealed interface PackageDesc * @see PackageDesc#ofInternalName(String) */ static PackageDesc of(String name) { - ConstantUtils.validateBinaryPackageName(requireNonNull(name)); + ConstantUtils.validateBinaryPackageName(name); return new PackageDescImpl(ConstantUtils.binaryToInternal(name)); } @@ -75,7 +75,7 @@ static PackageDesc of(String name) { * @see PackageDesc#of(String) */ static PackageDesc ofInternalName(String name) { - ConstantUtils.validateInternalPackageName(requireNonNull(name)); + ConstantUtils.validateInternalPackageName(name); return new PackageDescImpl(name); } diff --git a/src/java.base/share/classes/jdk/internal/constant/ConstantUtils.java b/src/java.base/share/classes/jdk/internal/constant/ConstantUtils.java index 21791937649..875c75296ee 100644 --- a/src/java.base/share/classes/jdk/internal/constant/ConstantUtils.java +++ b/src/java.base/share/classes/jdk/internal/constant/ConstantUtils.java @@ -174,8 +174,52 @@ public static ClassDesc parseReferenceTypeDesc(String descriptor) { } /** - * Validates the correctness of a binary class name. In particular checks for the presence of - * invalid characters in the name. + * Validates the correctness of a class or interface name or a package name. + * In particular checks for the presence of invalid characters, + * consecutive, leading, or trailing separator char, for both non-internal + * and internal forms, and the empty string for class or interface names. + * + * @param name the name + * @param slashSeparator {@code true} means {@code /} is the separator char + * (internal form); otherwise {@code .} is the separator char + * @param allowEmpty {@code true} means the empty string is a valid name + * @return the name passed if valid + * @throws IllegalArgumentException if the name is invalid + * @throws NullPointerException if name is {@code null} + */ + private static String validateClassOrPackageName(String name, boolean slashSeparator, boolean allowEmpty) { + int len = name.length(); // implicit null check + // empty name special rule + if (allowEmpty && len == 0) + return name; + // state variable for detection of illegal states of + // empty name, consecutive, leading, or trailing separators + int afterSeparator = 0; + for (int i = 0; i < len; i++) { + char ch = name.charAt(i); + // reject ';' or '[' + if (ch == ';' || ch == '[') + throw invalidClassName(name); + // encounter a separator + boolean foundSlash = ch == '/'; + if (foundSlash || ch == '.') { + // reject the other separator char + // reject consecutive or leading separators + if (foundSlash != slashSeparator || i == afterSeparator) + throw invalidClassName(name); + afterSeparator = i + 1; + } + } + // reject empty name or trailing separators + if (len == afterSeparator) + throw invalidClassName(name); + return name; + } + + /** + * Validates the correctness of a binary class name. + * In particular checks for the presence of invalid characters, empty + * name, consecutive, leading, or trailing {@code .}. * * @param name the class name * @return the class name passed if valid @@ -183,18 +227,13 @@ public static ClassDesc parseReferenceTypeDesc(String descriptor) { * @throws NullPointerException if class name is {@code null} */ public static String validateBinaryClassName(String name) { - for (int i = 0; i < name.length(); i++) { - char ch = name.charAt(i); - if (ch == ';' || ch == '[' || ch == '/' - || ch == '.' && (i == 0 || i + 1 == name.length() || name.charAt(i - 1) == '.')) - throw invalidClassName(name); - } - return name; + return validateClassOrPackageName(name, false, false); } /** * Validates the correctness of an internal class name. - * In particular checks for the presence of invalid characters in the name. + * In particular checks for the presence of invalid characters, empty + * name, consecutive, leading, or trailing {@code /}. * * @param name the class name * @return the class name passed if valid @@ -202,19 +241,13 @@ public static String validateBinaryClassName(String name) { * @throws NullPointerException if class name is {@code null} */ public static String validateInternalClassName(String name) { - for (int i = 0; i < name.length(); i++) { - char ch = name.charAt(i); - if (ch == ';' || ch == '[' || ch == '.' - || ch == '/' && (i == 0 || i + 1 == name.length() || name.charAt(i - 1) == '/')) - throw invalidClassName(name); - } - return name; + return validateClassOrPackageName(name, true, false); } /** * Validates the correctness of a binary package name. - * In particular checks for the presence of invalid characters in the name. - * Empty package name is allowed. + * In particular checks for the presence of invalid characters, consecutive, + * leading, or trailing {@code .}. Allows empty strings for the unnamed package. * * @param name the package name * @return the package name passed if valid @@ -222,18 +255,13 @@ public static String validateInternalClassName(String name) { * @throws NullPointerException if the package name is {@code null} */ public static String validateBinaryPackageName(String name) { - for (int i = 0; i < name.length(); i++) { - char ch = name.charAt(i); - if (ch == ';' || ch == '[' || ch == '/') - throw new IllegalArgumentException("Invalid package name: " + name); - } - return name; + return validateClassOrPackageName(name, false, true); } /** * Validates the correctness of an internal package name. - * In particular checks for the presence of invalid characters in the name. - * Empty package name is allowed. + * In particular checks for the presence of invalid characters, consecutive, + * leading, or trailing {@code /}. Allows empty strings for the unnamed package. * * @param name the package name * @return the package name passed if valid @@ -241,12 +269,7 @@ public static String validateBinaryPackageName(String name) { * @throws NullPointerException if the package name is {@code null} */ public static String validateInternalPackageName(String name) { - for (int i = 0; i < name.length(); i++) { - char ch = name.charAt(i); - if (ch == ';' || ch == '[' || ch == '.') - throw new IllegalArgumentException("Invalid package name: " + name); - } - return name; + return validateClassOrPackageName(name, true, true); } /** @@ -423,26 +446,22 @@ static int skipOverFieldSignature(String descriptor, int start, int end) { case JVM_SIGNATURE_DOUBLE: return index - start; case JVM_SIGNATURE_CLASS: - // state variable for detection of illegal states, such as: - // empty unqualified name, '//', leading '/', or trailing '/' - boolean legal = false; + // state variable for detection of illegal states of + // empty name, '//', leading '/', or trailing '/' + int afterSeparator = index + 1; // start of internal name while (index < end) { - switch (descriptor.charAt(index++)) { - case ';' -> { - // illegal state on parser exit indicates empty unqualified name or trailing '/' - return legal ? index - start : 0; - } - case '.', '[' -> { - // do not permit '.' or '[' + ch = descriptor.charAt(index++); + if (ch == ';') + // reject empty name or trailing '/' + return index == afterSeparator ? 0 : index - start; + // reject '.' or '[' + if (ch == '.' || ch == '[') + return 0; + if (ch == '/') { + // reject '//' or leading '/' + if (index == afterSeparator) return 0; - } - case '/' -> { - // illegal state when received '/' indicates '//' or leading '/' - if (!legal) return 0; - legal = false; - } - default -> - legal = true; + afterSeparator = index + 1; } } break; diff --git a/test/jdk/java/lang/constant/ClassDescTest.java b/test/jdk/java/lang/constant/ClassDescTest.java index 839de27b178..ee76d27e8d0 100644 --- a/test/jdk/java/lang/constant/ClassDescTest.java +++ b/test/jdk/java/lang/constant/ClassDescTest.java @@ -279,7 +279,8 @@ public void testArrayClassDesc() throws ReflectiveOperationException { public void testBadClassDescs() { List badDescriptors = List.of("II", "I;", "Q", "L", "", "java.lang.String", "[]", "Ljava/lang/String", - "Ljava.lang.String;", "java/lang/String"); + "Ljava.lang.String;", "java/lang/String", "L;", + "La//b;", "L/a;", "La/;"); for (String d : badDescriptors) { try { @@ -292,7 +293,7 @@ public void testBadClassDescs() { } List badBinaryNames = List.of("I;", "[]", "Ljava/lang/String", - "Ljava.lang.String;", "java/lang/String"); + "Ljava.lang.String;", "java/lang/String", ""); for (String d : badBinaryNames) { try { ClassDesc constant = ClassDesc.of(d); @@ -303,7 +304,7 @@ public void testBadClassDescs() { } List badInternalNames = List.of("I;", "[]", "[Ljava/lang/String;", - "Ljava.lang.String;", "java.lang.String"); + "Ljava.lang.String;", "java.lang.String", ""); for (String d : badInternalNames) { try { ClassDesc constant = ClassDesc.ofInternalName(d); diff --git a/test/jdk/java/lang/constant/PackageDescTest.java b/test/jdk/java/lang/constant/PackageDescTest.java index fe54a96eb8b..f7824c81a3b 100644 --- a/test/jdk/java/lang/constant/PackageDescTest.java +++ b/test/jdk/java/lang/constant/PackageDescTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -35,13 +35,13 @@ class PackageDescTest { @ParameterizedTest - @ValueSource(strings = {"a/b.d", "a[]", "a;"}) + @ValueSource(strings = {"a/b.d", "a[]", "a;", "a..b", "a.b.", ".a.b"}) void testInvalidPackageNames(String pkg) { assertThrows(IllegalArgumentException.class, () -> PackageDesc.of(pkg)); } @ParameterizedTest - @ValueSource(strings = {"a/b.d", "a[]", "a;"}) + @ValueSource(strings = {"a/b.d", "a[]", "a;", "a//b", "a/b/", "/a/b"}) void testInvalidInternalPackageNames(String pkg) { assertThrows(IllegalArgumentException.class, () -> PackageDesc.ofInternalName(pkg)); } From ec88b8c19efd9a82e4e7e84aa8037693fe993b13 Mon Sep 17 00:00:00 2001 From: Chen Liang Date: Mon, 4 Nov 2024 13:24:29 +0000 Subject: [PATCH 083/159] 8336267: Method and Constructor signature parsing can be shared on the root object Reviewed-by: mchung --- .../java/lang/reflect/Constructor.java | 41 +++++++---------- .../classes/java/lang/reflect/Field.java | 42 ++++++++--------- .../classes/java/lang/reflect/Method.java | 46 ++++++++----------- 3 files changed, 57 insertions(+), 72 deletions(-) diff --git a/src/java.base/share/classes/java/lang/reflect/Constructor.java b/src/java.base/share/classes/java/lang/reflect/Constructor.java index 668fc575688..308890c61ad 100644 --- a/src/java.base/share/classes/java/lang/reflect/Constructor.java +++ b/src/java.base/share/classes/java/lang/reflect/Constructor.java @@ -72,8 +72,6 @@ public final class Constructor extends Executable { private final int modifiers; // Generics and annotations support private final transient String signature; - // generic info repository; lazily initialized - private transient volatile ConstructorRepository genericInfo; private final byte[] annotations; private final byte[] parameterAnnotations; @@ -88,26 +86,27 @@ private GenericsFactory getFactory() { @Override ConstructorRepository getGenericInfo() { var genericInfo = this.genericInfo; - // lazily initialize repository if necessary if (genericInfo == null) { - // create and cache generic info repository - genericInfo = - ConstructorRepository.make(getSignature(), - getFactory()); + var root = this.root; + if (root != null) { + genericInfo = root.getGenericInfo(); + } else { + genericInfo = ConstructorRepository.make(getSignature(), getFactory()); + } this.genericInfo = genericInfo; } - return genericInfo; //return cached repository + return genericInfo; } - @Stable - private ConstructorAccessor constructorAccessor; - // For sharing of ConstructorAccessors. This branching structure - // is currently only two levels deep (i.e., one root Constructor - // and potentially many Constructor objects pointing to it.) - // - // If this branching structure would ever contain cycles, deadlocks can - // occur in annotation code. - private Constructor root; + /** + * Constructors are mutable due to {@link AccessibleObject#setAccessible(boolean)}. + * Thus, we return a new copy of a root each time a constructor is returned. + * Some lazily initialized immutable states can be stored on root and shared to the copies. + */ + private Constructor root; + private transient volatile ConstructorRepository genericInfo; + private @Stable ConstructorAccessor constructorAccessor; + // End shared states @Override Constructor getRoot() { @@ -143,13 +142,6 @@ Constructor getRoot() { * "root" field points to this Constructor. */ Constructor copy() { - // This routine enables sharing of ConstructorAccessor objects - // among Constructor objects which refer to the same underlying - // method in the VM. (All of this contortion is only necessary - // because of the "accessibility" bit in AccessibleObject, - // which implicitly requires that new java.lang.reflect - // objects be fabricated for each reflective call on Class - // objects.) if (this.root != null) throw new IllegalArgumentException("Can not copy a non-root Constructor"); @@ -162,6 +154,7 @@ Constructor copy() { res.root = this; // Might as well eagerly propagate this if already present res.constructorAccessor = constructorAccessor; + res.genericInfo = genericInfo; return res; } diff --git a/src/java.base/share/classes/java/lang/reflect/Field.java b/src/java.base/share/classes/java/lang/reflect/Field.java index 3e9d02d5509..5d0fe76a99a 100644 --- a/src/java.base/share/classes/java/lang/reflect/Field.java +++ b/src/java.base/share/classes/java/lang/reflect/Field.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -76,22 +76,18 @@ class Field extends AccessibleObject implements Member { private final boolean trustedFinal; // Generics and annotations support private final transient String signature; - // generic info repository; lazily initialized - private transient volatile FieldRepository genericInfo; private final byte[] annotations; - // Cached field accessor created without override - @Stable - private FieldAccessor fieldAccessor; - // Cached field accessor created with override - @Stable - private FieldAccessor overrideFieldAccessor; - // For sharing of FieldAccessors. This branching structure is - // currently only two levels deep (i.e., one root Field and - // potentially many Field objects pointing to it.) - // - // If this branching structure would ever contain cycles, deadlocks can - // occur in annotation code. - private Field root; + + /** + * Fields are mutable due to {@link AccessibleObject#setAccessible(boolean)}. + * Thus, we return a new copy of a root each time a field is returned. + * Some lazily initialized immutable states can be stored on root and shared to the copies. + */ + private Field root; + private transient volatile FieldRepository genericInfo; + private @Stable FieldAccessor fieldAccessor; // access control enabled + private @Stable FieldAccessor overrideFieldAccessor; // access control suppressed + // End shared states // Generics infrastructure @@ -107,17 +103,18 @@ private GenericsFactory getFactory() { // Accessor for generic info repository private FieldRepository getGenericInfo() { var genericInfo = this.genericInfo; - // lazily initialize repository if necessary if (genericInfo == null) { - // create and cache generic info repository - genericInfo = FieldRepository.make(getGenericSignature(), - getFactory()); + var root = this.root; + if (root != null) { + genericInfo = root.getGenericInfo(); + } else { + genericInfo = FieldRepository.make(getGenericSignature(), getFactory()); + } this.genericInfo = genericInfo; } - return genericInfo; //return cached repository + return genericInfo; } - /** * Package-private constructor */ @@ -162,6 +159,7 @@ Field copy() { // Might as well eagerly propagate this if already present res.fieldAccessor = fieldAccessor; res.overrideFieldAccessor = overrideFieldAccessor; + res.genericInfo = genericInfo; return res; } diff --git a/src/java.base/share/classes/java/lang/reflect/Method.java b/src/java.base/share/classes/java/lang/reflect/Method.java index 730b4b09757..6a90f91bdde 100644 --- a/src/java.base/share/classes/java/lang/reflect/Method.java +++ b/src/java.base/share/classes/java/lang/reflect/Method.java @@ -81,22 +81,20 @@ public final class Method extends Executable { private final int modifiers; // Generics and annotations support private final transient String signature; - // generic info repository; lazily initialized - private transient volatile MethodRepository genericInfo; private final byte[] annotations; private final byte[] parameterAnnotations; private final byte[] annotationDefault; - @Stable - private MethodAccessor methodAccessor; - // For sharing of MethodAccessors. This branching structure is - // currently only two levels deep (i.e., one root Method and - // potentially many Method objects pointing to it.) - // - // If this branching structure would ever contain cycles, deadlocks can - // occur in annotation code. - private Method root; - // Hash code of this object - private int hash; + + /** + * Methods are mutable due to {@link AccessibleObject#setAccessible(boolean)}. + * Thus, we return a new copy of a root each time a method is returned. + * Some lazily initialized immutable states can be stored on root and shared to the copies. + */ + private Method root; + private transient volatile MethodRepository genericInfo; + private @Stable MethodAccessor methodAccessor; + // End shared states + private int hash; // not shared right now, eligible if expensive // Generics infrastructure private String getGenericSignature() {return signature;} @@ -111,14 +109,16 @@ private GenericsFactory getFactory() { @Override MethodRepository getGenericInfo() { var genericInfo = this.genericInfo; - // lazily initialize repository if necessary if (genericInfo == null) { - // create and cache generic info repository - genericInfo = MethodRepository.make(getGenericSignature(), - getFactory()); + var root = this.root; + if (root != null) { + genericInfo = root.getGenericInfo(); + } else { + genericInfo = MethodRepository.make(getGenericSignature(), getFactory()); + } this.genericInfo = genericInfo; } - return genericInfo; //return cached repository + return genericInfo; } /** @@ -154,13 +154,6 @@ MethodRepository getGenericInfo() { * "root" field points to this Method. */ Method copy() { - // This routine enables sharing of MethodAccessor objects - // among Method objects which refer to the same underlying - // method in the VM. (All of this contortion is only necessary - // because of the "accessibility" bit in AccessibleObject, - // which implicitly requires that new java.lang.reflect - // objects be fabricated for each reflective call on Class - // objects.) if (this.root != null) throw new IllegalArgumentException("Can not copy a non-root Method"); @@ -168,8 +161,9 @@ Method copy() { exceptionTypes, modifiers, slot, signature, annotations, parameterAnnotations, annotationDefault); res.root = this; - // Might as well eagerly propagate this if already present + // Propagate shared states res.methodAccessor = methodAccessor; + res.genericInfo = genericInfo; return res; } From 2f9971bac3973c6bbc42f4bc6f0bd11e11e48430 Mon Sep 17 00:00:00 2001 From: Per Minborg Date: Mon, 4 Nov 2024 14:12:30 +0000 Subject: [PATCH 084/159] 8340307: Add explanation around MemorySegment:reinterpret regarding arenas Reviewed-by: jvernee --- .../java/lang/foreign/MemorySegment.java | 20 ++++++++++++++----- test/jdk/java/foreign/TestSegments.java | 19 ++++++++++++++++++ 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/src/java.base/share/classes/java/lang/foreign/MemorySegment.java b/src/java.base/share/classes/java/lang/foreign/MemorySegment.java index 9fadc2f0f56..74658a5bbf6 100644 --- a/src/java.base/share/classes/java/lang/foreign/MemorySegment.java +++ b/src/java.base/share/classes/java/lang/foreign/MemorySegment.java @@ -761,8 +761,13 @@ public sealed interface MemorySegment permits AbstractMemorySegmentImpl { * arena: that is, if the provided arena is a {@linkplain Arena#ofConfined() confined arena}, * the returned segment can only be accessed by the arena's owner thread, regardless * of the confinement restrictions associated with this segment. In other words, this - * method returns a segment that behaves as if it had been allocated using the - * provided arena. + * method returns a segment that can be used as any other segment allocated using the + * provided arena. However, The returned segment is backed by the same memory region + * as that of the original segment. As such, the region of memory backing the + * returned segment is deallocated only when this segment's arena is closed. + * This might lead to use-after-free issues, as the returned segment can be + * accessed after its region of memory has been deallocated via this + * segment's arena. *

    * Clients can specify an optional cleanup action that should be executed when the * provided scope becomes invalid. This cleanup action receives a fresh memory @@ -811,9 +816,14 @@ public sealed interface MemorySegment permits AbstractMemorySegmentImpl { * compatibly with the confinement restrictions associated with the provided arena: * that is, if the provided arena is a {@linkplain Arena#ofConfined() confined arena}, * the returned segment can only be accessed by the arena's owner thread, regardless - * of the confinement restrictions associated with this segment. In other words, - * this method returns a segment that behaves as if it had been allocated using the - * provided arena. + * of the confinement restrictions associated with this segment. In other words, this + * method returns a segment that can be used as any other segment allocated using the + * provided arena. However, The returned segment is backed by the same memory region + * as that of the original segment. As such, the region of memory backing the + * returned segment is deallocated only when this segment's arena is closed. + * This might lead to use-after-free issues, as the returned segment can be + * accessed after its region of memory has been deallocated via this + * segment's arena. *

    * Clients can specify an optional cleanup action that should be executed when the * provided scope becomes invalid. This cleanup action receives a fresh memory diff --git a/test/jdk/java/foreign/TestSegments.java b/test/jdk/java/foreign/TestSegments.java index b361abac3df..a76bc69fbd8 100644 --- a/test/jdk/java/foreign/TestSegments.java +++ b/test/jdk/java/foreign/TestSegments.java @@ -42,6 +42,7 @@ import java.util.function.IntFunction; import java.util.function.Supplier; +import static java.lang.foreign.ValueLayout.JAVA_BYTE; import static java.lang.foreign.ValueLayout.JAVA_INT; import static org.testng.Assert.*; @@ -392,6 +393,24 @@ void testReinterpret() { assertEquals(counter.get(), 3); } + @Test + void testReinterpretArenaClose() { + MemorySegment segment; + try (Arena arena = Arena.ofConfined()){ + try (Arena otherArena = Arena.ofConfined()) { + segment = arena.allocate(100); + segment = segment.reinterpret(otherArena, null); + } + final MemorySegment sOther = segment; + assertThrows(IllegalStateException.class, () -> sOther.get(JAVA_BYTE, 0)); + segment = segment.reinterpret(arena, null); + final MemorySegment sOriginal = segment; + sOriginal.get(JAVA_BYTE, 0); + } + final MemorySegment closed = segment; + assertThrows(IllegalStateException.class, () -> closed.get(JAVA_BYTE, 0)); + } + @Test void testThrowInCleanup() { AtomicInteger counter = new AtomicInteger(); From ef4a29c8807a22a10582e56bdbed26ca80301fc1 Mon Sep 17 00:00:00 2001 From: SendaoYan Date: Mon, 4 Nov 2024 15:05:52 +0000 Subject: [PATCH 085/159] 8343473: Update copyright year of AddmodsOption.java Reviewed-by: mli --- .../jtreg/runtime/cds/appcds/jigsaw/addmods/AddmodsOption.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/hotspot/jtreg/runtime/cds/appcds/jigsaw/addmods/AddmodsOption.java b/test/hotspot/jtreg/runtime/cds/appcds/jigsaw/addmods/AddmodsOption.java index 5bab21dea13..4bc779899ac 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/jigsaw/addmods/AddmodsOption.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/jigsaw/addmods/AddmodsOption.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it From 8b4de6103e122ee82be630c0acd6ac478e79facf Mon Sep 17 00:00:00 2001 From: Archie Cobbs Date: Mon, 4 Nov 2024 16:13:10 +0000 Subject: [PATCH 086/159] 8343484: Remove unnecessary @SuppressWarnings annotations (nio) Reviewed-by: alanb --- .../classes/java/nio/channels/AsynchronousFileChannel.java | 4 ++-- .../share/classes/java/nio/channels/FileChannel.java | 4 ++-- .../classes/java/nio/charset/Charset-X-Coder.java.template | 1 - 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/java.base/share/classes/java/nio/channels/AsynchronousFileChannel.java b/src/java.base/share/classes/java/nio/channels/AsynchronousFileChannel.java index a84d655ace9..5668d305cb8 100644 --- a/src/java.base/share/classes/java/nio/channels/AsynchronousFileChannel.java +++ b/src/java.base/share/classes/java/nio/channels/AsynchronousFileChannel.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -259,7 +259,7 @@ public static AsynchronousFileChannel open(Path file, return provider.newAsynchronousFileChannel(file, options, executor, attrs); } - @SuppressWarnings({"unchecked", "rawtypes"}) // generic array construction + @SuppressWarnings("rawtypes") // generic array construction private static final FileAttribute[] NO_ATTRIBUTES = new FileAttribute[0]; /** diff --git a/src/java.base/share/classes/java/nio/channels/FileChannel.java b/src/java.base/share/classes/java/nio/channels/FileChannel.java index 95151293430..57c40220215 100644 --- a/src/java.base/share/classes/java/nio/channels/FileChannel.java +++ b/src/java.base/share/classes/java/nio/channels/FileChannel.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -309,7 +309,7 @@ public static FileChannel open(Path path, return provider.newFileChannel(path, options, attrs); } - @SuppressWarnings({"unchecked", "rawtypes"}) // generic array construction + @SuppressWarnings("rawtypes") // generic array construction private static final FileAttribute[] NO_ATTRIBUTES = new FileAttribute[0]; /** diff --git a/src/java.base/share/classes/java/nio/charset/Charset-X-Coder.java.template b/src/java.base/share/classes/java/nio/charset/Charset-X-Coder.java.template index 1bd0d701acf..76d17c54c61 100644 --- a/src/java.base/share/classes/java/nio/charset/Charset-X-Coder.java.template +++ b/src/java.base/share/classes/java/nio/charset/Charset-X-Coder.java.template @@ -228,7 +228,6 @@ public abstract class Charset$Coder$ { * @throws IllegalArgumentException * If the preconditions on the parameters do not hold */ - @SuppressWarnings("this-escape") protected Charset$Coder$(Charset cs, float average$ItypesPerOtype$, float max$ItypesPerOtype$) From b3b37a7afee9813d705b4253c9ef136df40a88dc Mon Sep 17 00:00:00 2001 From: Naoto Sato Date: Mon, 4 Nov 2024 17:00:44 +0000 Subject: [PATCH 087/159] 8333582: Update CLDR to Version 46.0 Reviewed-by: joehw, srl, jlu --- make/data/cldr/common/bcp47/currency.xml | 3 +- make/data/cldr/common/bcp47/number.xml | 8 + make/data/cldr/common/bcp47/timezone.xml | 40 +- make/data/cldr/common/dtd/ldml.dtd | 8 +- make/data/cldr/common/dtd/ldml.xsd | 4 +- make/data/cldr/common/dtd/ldmlBCP47.dtd | 2 +- make/data/cldr/common/dtd/ldmlBCP47.xsd | 4 +- .../data/cldr/common/dtd/ldmlSupplemental.dtd | 16 +- .../data/cldr/common/dtd/ldmlSupplemental.xsd | 8 +- .../cldr/common/dtd/messageFormat/message.dtd | 58 + .../common/dtd/messageFormat/message.json | 242 + make/data/cldr/common/main/ab.xml | 12 +- make/data/cldr/common/main/af.xml | 193 +- make/data/cldr/common/main/ak.xml | 4856 ++++- make/data/cldr/common/main/am.xml | 767 +- make/data/cldr/common/main/an.xml | 4 +- make/data/cldr/common/main/ar.xml | 189 +- make/data/cldr/common/main/as.xml | 105 +- make/data/cldr/common/main/ast.xml | 26 +- make/data/cldr/common/main/az.xml | 109 +- make/data/cldr/common/main/bal.xml | 14 +- make/data/cldr/common/main/bal_Latn.xml | 5196 ++++- make/data/cldr/common/main/be.xml | 81 +- make/data/cldr/common/main/be_TARASK.xml | 7 - make/data/cldr/common/main/bew.xml | 223 +- make/data/cldr/common/main/bg.xml | 132 +- make/data/cldr/common/main/blo.xml | 2614 ++- make/data/cldr/common/main/bn.xml | 92 +- make/data/cldr/common/main/br.xml | 15 +- make/data/cldr/common/main/brx.xml | 28 +- make/data/cldr/common/main/bs.xml | 522 +- make/data/cldr/common/main/bs_Cyrl.xml | 37 +- make/data/cldr/common/main/ca.xml | 194 +- make/data/cldr/common/main/ca_ES_VALENCIA.xml | 91 + make/data/cldr/common/main/ccp.xml | 16 +- make/data/cldr/common/main/ce.xml | 16 +- make/data/cldr/common/main/ceb.xml | 427 +- make/data/cldr/common/main/chr.xml | 90 +- make/data/cldr/common/main/cs.xml | 285 +- make/data/cldr/common/main/csw.xml | 854 +- make/data/cldr/common/main/cv.xml | 6914 ++++++- make/data/cldr/common/main/cy.xml | 155 +- make/data/cldr/common/main/da.xml | 127 +- make/data/cldr/common/main/de.xml | 1145 +- make/data/cldr/common/main/de_CH.xml | 2 +- make/data/cldr/common/main/doi.xml | 1599 +- make/data/cldr/common/main/dsb.xml | 100 +- make/data/cldr/common/main/ee.xml | 33 +- make/data/cldr/common/main/el.xml | 156 +- make/data/cldr/common/main/en.xml | 102 +- make/data/cldr/common/main/en_001.xml | 68 +- make/data/cldr/common/main/en_AU.xml | 50 +- make/data/cldr/common/main/en_BS.xml | 4 - make/data/cldr/common/main/en_BZ.xml | 4 - make/data/cldr/common/main/en_CA.xml | 183 +- make/data/cldr/common/main/en_Dsrt.xml | 6 +- make/data/cldr/common/main/en_GB.xml | 68 +- make/data/cldr/common/main/en_IN.xml | 79 +- make/data/cldr/common/main/en_KY.xml | 4 - make/data/cldr/common/main/en_PW.xml | 4 - make/data/cldr/common/main/en_ZA.xml | 13 + make/data/cldr/common/main/eo.xml | 1365 +- make/data/cldr/common/main/es.xml | 334 +- make/data/cldr/common/main/es_419.xml | 86 +- make/data/cldr/common/main/es_AR.xml | 1 - make/data/cldr/common/main/es_BO.xml | 1 - make/data/cldr/common/main/es_CL.xml | 1 - make/data/cldr/common/main/es_CO.xml | 1 - make/data/cldr/common/main/es_CR.xml | 1 - make/data/cldr/common/main/es_DO.xml | 1 - make/data/cldr/common/main/es_EC.xml | 1 - make/data/cldr/common/main/es_GT.xml | 3 - make/data/cldr/common/main/es_HN.xml | 1 - make/data/cldr/common/main/es_MX.xml | 92 +- make/data/cldr/common/main/es_NI.xml | 1 - make/data/cldr/common/main/es_PA.xml | 1 - make/data/cldr/common/main/es_PE.xml | 1 - make/data/cldr/common/main/es_PY.xml | 1 - make/data/cldr/common/main/es_US.xml | 104 +- make/data/cldr/common/main/es_VE.xml | 1 - make/data/cldr/common/main/et.xml | 161 +- make/data/cldr/common/main/eu.xml | 384 +- make/data/cldr/common/main/fa.xml | 564 +- make/data/cldr/common/main/fa_AF.xml | 4 +- make/data/cldr/common/main/ff_Adlm.xml | 26 +- make/data/cldr/common/main/fi.xml | 166 +- make/data/cldr/common/main/fil.xml | 172 +- make/data/cldr/common/main/fo.xml | 1016 +- make/data/cldr/common/main/fr.xml | 113 +- make/data/cldr/common/main/fr_CA.xml | 64 +- make/data/cldr/common/main/frr.xml | 1515 +- make/data/cldr/common/main/fur.xml | 44 + make/data/cldr/common/main/fy.xml | 725 +- make/data/cldr/common/main/ga.xml | 175 +- make/data/cldr/common/main/gaa.xml | 108 +- make/data/cldr/common/main/gd.xml | 276 +- make/data/cldr/common/main/gl.xml | 145 +- make/data/cldr/common/main/gu.xml | 92 +- make/data/cldr/common/main/ha.xml | 663 +- make/data/cldr/common/main/ha_NE.xml | 5 - make/data/cldr/common/main/he.xml | 965 +- make/data/cldr/common/main/hi.xml | 108 +- make/data/cldr/common/main/hi_Latn.xml | 28 +- make/data/cldr/common/main/hr.xml | 263 +- make/data/cldr/common/main/hsb.xml | 100 +- make/data/cldr/common/main/hu.xml | 212 +- make/data/cldr/common/main/hy.xml | 877 +- make/data/cldr/common/main/ia.xml | 156 +- make/data/cldr/common/main/id.xml | 76 +- make/data/cldr/common/main/ie.xml | 606 +- make/data/cldr/common/main/ig.xml | 1315 +- make/data/cldr/common/main/ii.xml | 202 +- make/data/cldr/common/main/is.xml | 211 +- make/data/cldr/common/main/it.xml | 139 +- make/data/cldr/common/main/ja.xml | 64 +- make/data/cldr/common/main/jv.xml | 79 +- make/data/cldr/common/main/ka.xml | 63 +- make/data/cldr/common/main/kaa.xml | 712 + make/data/cldr/common/main/kaa_Cyrl.xml | 14 + make/data/cldr/common/main/kaa_Cyrl_UZ.xml | 15 + make/data/cldr/common/main/kaa_Latn.xml | 21 + make/data/cldr/common/main/kaa_Latn_UZ.xml | 15 + make/data/cldr/common/main/kab.xml | 20 +- make/data/cldr/common/main/kgp.xml | 18 +- make/data/cldr/common/main/kk.xml | 304 +- make/data/cldr/common/main/kk_Arab.xml | 8910 ++++++++ make/data/cldr/common/main/kk_Arab_CN.xml | 15 + make/data/cldr/common/main/kk_Cyrl.xml | 14 + make/data/cldr/common/main/kk_Cyrl_KZ.xml | 15 + make/data/cldr/common/main/km.xml | 85 +- make/data/cldr/common/main/kn.xml | 226 +- make/data/cldr/common/main/ko.xml | 132 +- make/data/cldr/common/main/kok.xml | 136 +- make/data/cldr/common/main/kok_Deva.xml | 14 + .../main/{kok_IN.xml => kok_Deva_IN.xml} | 1 + make/data/cldr/common/main/kok_Latn.xml | 1541 ++ make/data/cldr/common/main/kok_Latn_IN.xml | 15 + make/data/cldr/common/main/ks.xml | 16 +- make/data/cldr/common/main/ks_Deva.xml | 211 +- make/data/cldr/common/main/ksh.xml | 6 +- make/data/cldr/common/main/ku.xml | 1143 +- make/data/cldr/common/main/kxv.xml | 207 +- make/data/cldr/common/main/kxv_Deva.xml | 3072 +++ make/data/cldr/common/main/kxv_Orya.xml | 3079 +++ make/data/cldr/common/main/kxv_Telu.xml | 3044 +++ make/data/cldr/common/main/ky.xml | 87 +- make/data/cldr/common/main/lb.xml | 8 - make/data/cldr/common/main/lij.xml | 7 - make/data/cldr/common/main/lld.xml | 3744 ++++ make/data/cldr/common/main/lld_IT.xml | 14 + make/data/cldr/common/main/lo.xml | 142 +- make/data/cldr/common/main/lrc.xml | 3 - make/data/cldr/common/main/lt.xml | 230 +- make/data/cldr/common/main/ltg.xml | 163 + make/data/cldr/common/main/ltg_LV.xml | 14 + make/data/cldr/common/main/lv.xml | 243 +- make/data/cldr/common/main/mai.xml | 32 +- make/data/cldr/common/main/mgo.xml | 28 +- make/data/cldr/common/main/mhn.xml | 18 + make/data/cldr/common/main/mhn_IT.xml | 14 + make/data/cldr/common/main/mi.xml | 34 +- make/data/cldr/common/main/mk.xml | 319 +- make/data/cldr/common/main/ml.xml | 445 +- make/data/cldr/common/main/mn.xml | 353 +- make/data/cldr/common/main/mn_Mong_MN.xml | 6 - make/data/cldr/common/main/mr.xml | 298 +- make/data/cldr/common/main/ms.xml | 158 +- make/data/cldr/common/main/mt.xml | 7 +- make/data/cldr/common/main/my.xml | 189 +- make/data/cldr/common/main/ne.xml | 80 +- make/data/cldr/common/main/nl.xml | 284 +- make/data/cldr/common/main/nn.xml | 85 +- make/data/cldr/common/main/no.xml | 272 +- make/data/cldr/common/main/nqo.xml | 2653 ++- make/data/cldr/common/main/nso.xml | 61 +- make/data/cldr/common/main/oc.xml | 23 +- make/data/cldr/common/main/oc_ES.xml | 11 +- make/data/cldr/common/main/om.xml | 2632 ++- make/data/cldr/common/main/om_KE.xml | 28 - make/data/cldr/common/main/or.xml | 591 +- make/data/cldr/common/main/pa.xml | 147 +- make/data/cldr/common/main/pap.xml | 467 +- make/data/cldr/common/main/pcm.xml | 171 +- make/data/cldr/common/main/pl.xml | 316 +- make/data/cldr/common/main/ps.xml | 114 +- make/data/cldr/common/main/pt.xml | 103 +- make/data/cldr/common/main/pt_PT.xml | 113 +- make/data/cldr/common/main/qu.xml | 417 +- make/data/cldr/common/main/rif.xml | 1164 +- make/data/cldr/common/main/rm.xml | 3 - make/data/cldr/common/main/ro.xml | 132 +- make/data/cldr/common/main/root.xml | 735 +- make/data/cldr/common/main/ru.xml | 207 +- make/data/cldr/common/main/rw.xml | 16 +- make/data/cldr/common/main/sa.xml | 10 - make/data/cldr/common/main/sah.xml | 10 - make/data/cldr/common/main/sat.xml | 9 +- make/data/cldr/common/main/sc.xml | 264 +- make/data/cldr/common/main/scn.xml | 3302 ++- make/data/cldr/common/main/sd.xml | 207 +- make/data/cldr/common/main/sd_Deva.xml | 47 +- make/data/cldr/common/main/se_FI.xml | 7 - make/data/cldr/common/main/si.xml | 85 +- make/data/cldr/common/main/sk.xml | 299 +- make/data/cldr/common/main/sl.xml | 526 +- make/data/cldr/common/main/so.xml | 299 +- make/data/cldr/common/main/sq.xml | 81 +- make/data/cldr/common/main/sr.xml | 279 +- make/data/cldr/common/main/sr_Cyrl_BA.xml | 63 +- make/data/cldr/common/main/sr_Cyrl_ME.xml | 8 +- make/data/cldr/common/main/sr_Latn.xml | 272 +- make/data/cldr/common/main/sr_Latn_BA.xml | 63 +- make/data/cldr/common/main/sr_Latn_ME.xml | 8 +- make/data/cldr/common/main/st.xml | 62 +- make/data/cldr/common/main/su.xml | 1 - make/data/cldr/common/main/sv.xml | 234 +- make/data/cldr/common/main/sw.xml | 134 +- make/data/cldr/common/main/sw_KE.xml | 7 - make/data/cldr/common/main/syr.xml | 19 +- make/data/cldr/common/main/szl.xml | 10 - make/data/cldr/common/main/ta.xml | 173 +- make/data/cldr/common/main/te.xml | 148 +- make/data/cldr/common/main/tg.xml | 2976 ++- make/data/cldr/common/main/th.xml | 71 +- make/data/cldr/common/main/ti.xml | 5148 ++++- make/data/cldr/common/main/ti_ER.xml | 4 +- make/data/cldr/common/main/tig.xml | 4 - make/data/cldr/common/main/tk.xml | 186 +- make/data/cldr/common/main/tn.xml | 35 +- make/data/cldr/common/main/to.xml | 143 +- make/data/cldr/common/main/tr.xml | 88 +- make/data/cldr/common/main/trv.xml | 6 +- make/data/cldr/common/main/trw.xml | 10 - make/data/cldr/common/main/tt.xml | 2986 ++- make/data/cldr/common/main/ug.xml | 8 +- make/data/cldr/common/main/uk.xml | 520 +- make/data/cldr/common/main/ur.xml | 106 +- make/data/cldr/common/main/uz.xml | 180 +- make/data/cldr/common/main/uz_Cyrl.xml | 12 +- make/data/cldr/common/main/vai.xml | 1 + make/data/cldr/common/main/vec.xml | 2567 ++- make/data/cldr/common/main/vi.xml | 134 +- make/data/cldr/common/main/wo.xml | 1603 +- make/data/cldr/common/main/xh.xml | 121 +- make/data/cldr/common/main/xnr.xml | 1915 +- make/data/cldr/common/main/yo.xml | 834 +- make/data/cldr/common/main/yo_BJ.xml | 594 +- make/data/cldr/common/main/yrl.xml | 18 +- make/data/cldr/common/main/yue.xml | 83 +- make/data/cldr/common/main/yue_Hans.xml | 63 +- make/data/cldr/common/main/yue_Hant_CN.xml | 15 + make/data/cldr/common/main/zh.xml | 151 +- make/data/cldr/common/main/zh_Hans_MY.xml | 62 + make/data/cldr/common/main/zh_Hant.xml | 524 +- make/data/cldr/common/main/zh_Hant_HK.xml | 208 +- make/data/cldr/common/main/zh_Hant_MY.xml | 47 + make/data/cldr/common/main/zh_Latn.xml | 24 + make/data/cldr/common/main/zh_Latn_CN.xml | 19 + make/data/cldr/common/main/zu.xml | 50 +- .../cldr/common/properties/coverageLevels.txt | 27 +- .../supplemental/attributeValueValidity.xml | 173 +- .../common/supplemental/coverageLevels.xml | 768 +- .../common/supplemental/languageGroup.xml | 108 +- .../cldr/common/supplemental/languageInfo.xml | 8 +- .../common/supplemental/likelySubtags.xml | 17209 +++++++--------- .../cldr/common/supplemental/metaZones.xml | 71 +- .../common/supplemental/numberingSystems.xml | 8 + .../cldr/common/supplemental/ordinals.xml | 22 +- .../cldr/common/supplemental/pluralRanges.xml | 6 +- .../data/cldr/common/supplemental/plurals.xml | 14 +- .../cldr/common/supplemental/subdivisions.xml | 33 +- .../common/supplemental/supplementalData.xml | 805 +- .../supplemental/supplementalMetadata.xml | 81 +- make/data/cldr/common/supplemental/units.xml | 14 +- .../cldr/common/supplemental/windowsZones.xml | 6 +- .../cldrconverter/TimeZoneParseHandler.java | 23 +- .../java/util/spi/LocaleServiceProvider.java | 2 + .../cldr/CLDRTimeZoneNameProviderImpl.java | 13 +- src/java.base/share/legal/cldr.md | 2 +- src/jdk.localedata/share/legal/cldr.md | 2 +- .../text/Format/DateFormat/Bug6530336.java | 3 +- .../MultipleNumberScriptTest.java | 4 +- .../java/time/format/TestNonIsoFormatter.java | 8 +- .../time/format/TestUnicodeExtension.java | 44 +- .../java/util/Calendar/CalendarDataTest.java | 8 +- .../java/util/Locale/InternationalBAT.java | 6 +- .../java/util/Locale/bcp47u/FormatTests.java | 6 +- test/jdk/sun/text/resources/LocaleData.cldr | 60 +- .../sun/text/resources/LocaleDataTest.java | 2 +- .../plugins/IncludeLocalesPluginTest.java | 13 +- 290 files changed, 107423 insertions(+), 22934 deletions(-) create mode 100644 make/data/cldr/common/dtd/messageFormat/message.dtd create mode 100644 make/data/cldr/common/dtd/messageFormat/message.json create mode 100644 make/data/cldr/common/main/kaa.xml create mode 100644 make/data/cldr/common/main/kaa_Cyrl.xml create mode 100644 make/data/cldr/common/main/kaa_Cyrl_UZ.xml create mode 100644 make/data/cldr/common/main/kaa_Latn.xml create mode 100644 make/data/cldr/common/main/kaa_Latn_UZ.xml create mode 100644 make/data/cldr/common/main/kk_Arab.xml create mode 100644 make/data/cldr/common/main/kk_Arab_CN.xml create mode 100644 make/data/cldr/common/main/kk_Cyrl.xml create mode 100644 make/data/cldr/common/main/kk_Cyrl_KZ.xml create mode 100644 make/data/cldr/common/main/kok_Deva.xml rename make/data/cldr/common/main/{kok_IN.xml => kok_Deva_IN.xml} (95%) create mode 100644 make/data/cldr/common/main/kok_Latn.xml create mode 100644 make/data/cldr/common/main/kok_Latn_IN.xml create mode 100644 make/data/cldr/common/main/lld.xml create mode 100644 make/data/cldr/common/main/lld_IT.xml create mode 100644 make/data/cldr/common/main/ltg.xml create mode 100644 make/data/cldr/common/main/ltg_LV.xml create mode 100644 make/data/cldr/common/main/mhn.xml create mode 100644 make/data/cldr/common/main/mhn_IT.xml create mode 100644 make/data/cldr/common/main/yue_Hant_CN.xml create mode 100644 make/data/cldr/common/main/zh_Hans_MY.xml create mode 100644 make/data/cldr/common/main/zh_Hant_MY.xml create mode 100644 make/data/cldr/common/main/zh_Latn.xml create mode 100644 make/data/cldr/common/main/zh_Latn_CN.xml diff --git a/make/data/cldr/common/bcp47/currency.xml b/make/data/cldr/common/bcp47/currency.xml index 7b291fba785..dd1bce5a142 100644 --- a/make/data/cldr/common/bcp47/currency.xml +++ b/make/data/cldr/common/bcp47/currency.xml @@ -318,8 +318,9 @@ For terms of use, see http://www.unicode.org/copyright.html - + + diff --git a/make/data/cldr/common/bcp47/number.xml b/make/data/cldr/common/bcp47/number.xml index 19579ac5a9f..7d242ac07e1 100644 --- a/make/data/cldr/common/bcp47/number.xml +++ b/make/data/cldr/common/bcp47/number.xml @@ -28,12 +28,14 @@ For terms of use, see http://www.unicode.org/copyright.html + + @@ -52,6 +54,7 @@ For terms of use, see http://www.unicode.org/copyright.html + @@ -69,6 +72,8 @@ For terms of use, see http://www.unicode.org/copyright.html + + @@ -76,8 +81,10 @@ For terms of use, see http://www.unicode.org/copyright.html + + @@ -88,6 +95,7 @@ For terms of use, see http://www.unicode.org/copyright.html + diff --git a/make/data/cldr/common/bcp47/timezone.xml b/make/data/cldr/common/bcp47/timezone.xml index bb96a78bbe0..b173ad4c80d 100644 --- a/make/data/cldr/common/bcp47/timezone.xml +++ b/make/data/cldr/common/bcp47/timezone.xml @@ -62,7 +62,7 @@ For terms of use, see http://www.unicode.org/copyright.html - + @@ -141,7 +141,7 @@ For terms of use, see http://www.unicode.org/copyright.html - + @@ -164,7 +164,7 @@ For terms of use, see http://www.unicode.org/copyright.html - + @@ -196,7 +196,7 @@ For terms of use, see http://www.unicode.org/copyright.html - + @@ -265,15 +265,15 @@ For terms of use, see http://www.unicode.org/copyright.html - + - + - + @@ -308,7 +308,7 @@ For terms of use, see http://www.unicode.org/copyright.html - + @@ -321,9 +321,9 @@ For terms of use, see http://www.unicode.org/copyright.html - + - + @@ -403,20 +403,20 @@ For terms of use, see http://www.unicode.org/copyright.html - + - - + + - + - + @@ -424,10 +424,10 @@ For terms of use, see http://www.unicode.org/copyright.html - + - + @@ -453,12 +453,12 @@ For terms of use, see http://www.unicode.org/copyright.html - + - + - + diff --git a/make/data/cldr/common/dtd/ldml.dtd b/make/data/cldr/common/dtd/ldml.dtd index d968a6962d5..efe1565f53d 100644 --- a/make/data/cldr/common/dtd/ldml.dtd +++ b/make/data/cldr/common/dtd/ldml.dtd @@ -42,7 +42,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + @@ -63,7 +63,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + @@ -2042,7 +2042,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + @@ -2053,7 +2053,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + diff --git a/make/data/cldr/common/dtd/ldml.xsd b/make/data/cldr/common/dtd/ldml.xsd index 92a0f548286..ee03c2275cc 100644 --- a/make/data/cldr/common/dtd/ldml.xsd +++ b/make/data/cldr/common/dtd/ldml.xsd @@ -128,10 +128,10 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file - + - + diff --git a/make/data/cldr/common/dtd/ldmlBCP47.dtd b/make/data/cldr/common/dtd/ldmlBCP47.dtd index f608a6e8a60..e69ae1e7724 100644 --- a/make/data/cldr/common/dtd/ldmlBCP47.dtd +++ b/make/data/cldr/common/dtd/ldmlBCP47.dtd @@ -12,7 +12,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + diff --git a/make/data/cldr/common/dtd/ldmlBCP47.xsd b/make/data/cldr/common/dtd/ldmlBCP47.xsd index 39d6cd2d2c6..d55d3f40728 100644 --- a/make/data/cldr/common/dtd/ldmlBCP47.xsd +++ b/make/data/cldr/common/dtd/ldmlBCP47.xsd @@ -24,10 +24,10 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file - + - + diff --git a/make/data/cldr/common/dtd/ldmlSupplemental.dtd b/make/data/cldr/common/dtd/ldmlSupplemental.dtd index 864e696e030..338b8be5c99 100644 --- a/make/data/cldr/common/dtd/ldmlSupplemental.dtd +++ b/make/data/cldr/common/dtd/ldmlSupplemental.dtd @@ -12,10 +12,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + - + @@ -1078,7 +1078,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + @@ -1155,17 +1155,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + - + - + - + @@ -1278,7 +1278,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + diff --git a/make/data/cldr/common/dtd/ldmlSupplemental.xsd b/make/data/cldr/common/dtd/ldmlSupplemental.xsd index 2aeeecf1084..6716f017f62 100644 --- a/make/data/cldr/common/dtd/ldmlSupplemental.xsd +++ b/make/data/cldr/common/dtd/ldmlSupplemental.xsd @@ -64,17 +64,17 @@ Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file - + - + - + - + diff --git a/make/data/cldr/common/dtd/messageFormat/message.dtd b/make/data/cldr/common/dtd/messageFormat/message.dtd new file mode 100644 index 00000000000..c89c9e39872 --- /dev/null +++ b/make/data/cldr/common/dtd/messageFormat/message.dtd @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/make/data/cldr/common/dtd/messageFormat/message.json b/make/data/cldr/common/dtd/messageFormat/message.json new file mode 100644 index 00000000000..611107ff783 --- /dev/null +++ b/make/data/cldr/common/dtd/messageFormat/message.json @@ -0,0 +1,242 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", +"$id": "https://github.com/unicode-org/cldr/blob/maint/maint-46/common/dtd/messageFormat/message.json", + + "oneOf": [{ "$ref": "#/$defs/message" }, { "$ref": "#/$defs/select" }], + + "$defs": { + "literal": { + "type": "object", + "properties": { + "type": { "const": "literal" }, + "value": { "type": "string" } + }, + "required": ["type", "value"] + }, + "variable": { + "type": "object", + "properties": { + "type": { "const": "variable" }, + "name": { "type": "string" } + }, + "required": ["type", "name"] + }, + "options": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "value": { + "oneOf": [ + { "$ref": "#/$defs/literal" }, + { "$ref": "#/$defs/variable" } + ] + } + }, + "required": ["name", "value"] + } + }, + "attributes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "value": { + "oneOf": [ + { "$ref": "#/$defs/literal" }, + { "$ref": "#/$defs/variable" } + ] + } + }, + "required": ["name"] + } + }, + + "function-annotation": { + "type": "object", + "properties": { + "type": { "const": "function" }, + "name": { "type": "string" }, + "options": { "$ref": "#/$defs/options" } + }, + "required": ["type", "name"] + }, + "unsupported-annotation": { + "type": "object", + "properties": { + "type": { "const": "unsupported-annotation" }, + "source": { "type": "string" } + }, + "required": ["type", "source"] + }, + "annotation": { + "oneOf": [ + { "$ref": "#/$defs/function-annotation" }, + { "$ref": "#/$defs/unsupported-annotation" } + ] + }, + + "literal-expression": { + "type": "object", + "properties": { + "type": { "const": "expression" }, + "arg": { "$ref": "#/$defs/literal" }, + "annotation": { "$ref": "#/$defs/annotation" }, + "attributes": { "$ref": "#/$defs/attributes" } + }, + "required": ["type", "arg"] + }, + "variable-expression": { + "type": "object", + "properties": { + "type": { "const": "expression" }, + "arg": { "$ref": "#/$defs/variable" }, + "annotation": { "$ref": "#/$defs/annotation" }, + "attributes": { "$ref": "#/$defs/attributes" } + }, + "required": ["type", "arg"] + }, + "function-expression": { + "type": "object", + "properties": { + "type": { "const": "expression" }, + "annotation": { "$ref": "#/$defs/function-annotation" }, + "attributes": { "$ref": "#/$defs/attributes" } + }, + "required": ["type", "annotation"] + }, + "unsupported-expression": { + "type": "object", + "properties": { + "type": { "const": "expression" }, + "annotation": { "$ref": "#/$defs/unsupported-annotation" }, + "attributes": { "$ref": "#/$defs/attributes" } + }, + "required": ["type", "annotation"] + }, + "expression": { + "oneOf": [ + { "$ref": "#/$defs/literal-expression" }, + { "$ref": "#/$defs/variable-expression" }, + { "$ref": "#/$defs/function-expression" }, + { "$ref": "#/$defs/unsupported-expression" } + ] + }, + + "markup": { + "type": "object", + "properties": { + "type": { "const": "markup" }, + "kind": { "oneOf": [ "open", "standalone", "close" ] }, + "name": { "type": "string" }, + "options": { "$ref": "#/$defs/options" }, + "attributes": { "$ref": "#/$defs/attributes" } + }, + "required": ["type", "kind", "name"] + }, + + "pattern": { + "type": "array", + "items": { + "oneOf": [ + { "type": "string" }, + { "$ref": "#/$defs/expression" }, + { "$ref": "#/$defs/markup" } + ] + } + }, + + "input-declaration": { + "type": "object", + "properties": { + "type": { "const": "input" }, + "name": { "type": "string" }, + "value": { "$ref": "#/$defs/variable-expression" } + }, + "required": ["type", "name", "value"] + }, + "local-declaration": { + "type": "object", + "properties": { + "type": { "const": "local" }, + "name": { "type": "string" }, + "value": { "$ref": "#/$defs/expression" } + }, + "required": ["type", "name", "value"] + }, + "unsupported-statement": { + "type": "object", + "properties": { + "type": { "const": "unsupported-statement" }, + "keyword": { "type": "string" }, + "body": { "type": "string" }, + "expressions": { + "type": "array", + "items": { "$ref": "#/$defs/expression" } + } + }, + "required": ["type", "keyword", "expressions"] + }, + "declarations": { + "type": "array", + "items": { + "oneOf": [ + { "$ref": "#/$defs/input-declaration" }, + { "$ref": "#/$defs/local-declaration" }, + { "$ref": "#/$defs/unsupported-statement" } + ] + } + }, + + "variant-key": { + "oneOf": [ + { "$ref": "#/$defs/literal" }, + { + "type": "object", + "properties": { + "type": { "const": "*" }, + "value": { "type": "string" } + }, + "required": ["type"] + } + ] + }, + "message": { + "type": "object", + "properties": { + "type": { "const": "message" }, + "declarations": { "$ref": "#/$defs/declarations" }, + "pattern": { "$ref": "#/$defs/pattern" } + }, + "required": ["type", "declarations", "pattern"] + }, + "select": { + "type": "object", + "properties": { + "type": { "const": "select" }, + "declarations": { "$ref": "#/$defs/declarations" }, + "selectors": { + "type": "array", + "items": { "$ref": "#/$defs/expression" } + }, + "variants": { + "type": "array", + "items": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { "$ref": "#/$defs/variant-key" } + }, + "value": { "$ref": "#/$defs/pattern" } + }, + "required": ["keys", "value"] + } + } + }, + "required": ["type", "declarations", "selectors", "variants"] + } + } +} diff --git a/make/data/cldr/common/main/ab.xml b/make/data/cldr/common/main/ab.xml index 0a0bf6d526e..5bb1fd2c891 100644 --- a/make/data/cldr/common/main/ab.xml +++ b/make/data/cldr/common/main/ab.xml @@ -893,7 +893,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2192,9 +2192,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Улан-Батор - - Чоибалсан - Макао @@ -2975,13 +2972,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Китаи, аԥхынтәи аамҭа - - - Чоибалсан - Чоибалсан, астандартә аамҭа - Чоибалсан, аԥхынтәи аамҭа - - ад-ха Қьырса diff --git a/make/data/cldr/common/main/af.xml b/make/data/cldr/common/main/af.xml index 36c0414e442..aae485668df 100644 --- a/make/data/cldr/common/main/af.xml +++ b/make/data/cldr/common/main/af.xml @@ -58,6 +58,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Bislama Bini Siksika + Anii Bambara Bengaals Tibettaans @@ -104,7 +105,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Dogrib Zarma Dogri - Benedesorbies + Nedersorbies Duala Divehi Jola-Fonyi @@ -161,6 +162,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Suid-Haida Hebreeus Hindi + Hingels Hiligaynon Hetities Hmong @@ -223,7 +225,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Karachay-Balkar Karelies Kurukh - Kasjmirs + Kasjmiri Shambala Bafia Keuls @@ -232,6 +234,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Komi Kornies Kwak’wala + Kuvi Kirgisies Latyn Ladino @@ -240,8 +243,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Lezghies Ganda Limburgs + Liguries Lillooet Lakota + Lombardies Lingaals Lao Louisiana Kreool @@ -354,7 +359,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Rwa Sanskrit Sandawees - Sakhaans + Jakoeties Samburu Santalies Ngambay @@ -396,6 +401,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Swahili Comoraans Siries + Silesies Tamil Suid-Tutchone Teloegoe @@ -406,7 +412,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Tagish Thai Tahltan - Tigrinya + Tigrinja Tigre Turkmeens Klingon @@ -433,10 +439,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Umbundu Onbekende taal Oerdoe - Oezbeeks + Oesbekies Vai Venda + Venesiaans Viëtnamees + Makhuwa Volapük Vunjo Walloon @@ -448,18 +456,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Wu-Sjinees Kalmyk Xhosa + Kangri Soga Yangben Yemba Jiddisj - Yoruba + Joroeba Nheengatu Kantonees Kantonese Chinees + Zhuang Standaard Marokkaanse Tamazight Chinees Mandarynse Chinees - Mandarynse Chinees (Vereenvoudigd) + Mandarynse Chinees (Vereenvoudig) Mandarynse Chinees (Tradisioneel) Zoeloe Zuni @@ -479,7 +489,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -487,7 +497,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -499,7 +509,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -523,7 +532,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -533,11 +541,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + - Wêreld + wêreld Afrika Noord-Amerika Suid-Amerika @@ -611,8 +619,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Demokratiese Republiek van die Kongo Kongo (DRK) Sentraal-Afrikaanse Republiek - Kongo - Brazzaville - Kongo (Republiek die) + Kongo-Brazzaville + Kongo (Republiek) Switserland Ivoorkus Cookeilande @@ -954,11 +962,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Griekse kleinletter-syfers Goedjarati-syfers Gurmukhi-syfers - Sjinese desimale syfers - Vereenvoudigde Sjinese syfers - Vereenvoudigde Sjinese finansiële syfers - Tradisionele Sjinese syfers - Tradisionele Sjinese finansiële syfers + Chinese desimale syfers + Vereenvoudigde Chinese syfers + Vereenvoudigde Chinese finansiële syfers + Tradisionele Chinese syfers + Tradisionele Chinese finansiële syfers Hebreeuse syfers Javaanse syfers Japannese syfers @@ -1355,7 +1363,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ voor Christus voor die gewone jaartelling - na Christus + ná Christus gewone jaartelling @@ -1530,6 +1538,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ h a – h a h – h a + + HH – HH + h:mm a – h:mm a h:mm – h:mm a @@ -2052,6 +2063,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}-tyd {0}-dagligtyd {0}-standaardtyd + + Honolulu + Gekoördineerde universele tyd @@ -2082,7 +2096,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Bahrein - Sint Barthélemy + Sint Bartholomeus Broenei @@ -2111,9 +2125,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kaap Verde - - Curaçao - Praag @@ -2224,12 +2235,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Meksikostad - - Merida - - - Cancun - Koeala-Loempoer @@ -2254,15 +2259,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Lissabon - - Asunción - Katar - - Réunion - Boekarest @@ -2308,9 +2307,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Mogadisjoe - - São Tomé - Damaskus @@ -2320,9 +2316,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kiëf - - Honolulu - Beulah, Noord-Dakota @@ -2583,13 +2576,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ China-dagligtyd - - - Choibalsan-tyd - Choibalsan-standaardtyd - Choibalsan-somertyd - - Christmaseiland-tyd @@ -2604,7 +2590,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Colombië-tyd Colombië-standaardtyd - Colombia-somertyd + Colombië-somertyd @@ -2835,6 +2821,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Petropavlovsk-Kamchatski-somertyd + + + Kazakstan-tyd + + Oos-Kazakstan-tyd @@ -3367,8 +3358,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ 000 bn - {0} {1} - {0} {1} @@ -3548,7 +3537,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Guinese syli - Guatemalaanse quetzal + Guatemalaanse kwetsal + Guatemalaanse kwetsal + Guatemalaanse kwetsal Guyanese dollar @@ -4191,7 +4182,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} kilobis - eeu + eeue {0} eeu {0} eeue @@ -4834,6 +4825,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Engelse kwartgelling {0} Engelse kwartgelling + + lig + {0} lig + {0} lig + + + deeltjies per miljard + {0} deeltjie per miljard + {0} deeltjies per miljard + + + nagte + {0} nag + {0} nagte + {0} per nag + kompasrigting {0} oos @@ -5080,8 +5087,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ megapieksels - {0} Mpx - {0} Mpx + {0} MP + {0} MP dpcm @@ -5415,6 +5422,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} kwart Eng. {0} kwart Eng. + + lig + {0} lig + {0} lig + + + deeltjies/miljard + {0} deeltjie/miljard + {0} deeltjies/miljard + + + nagte + {0} nag + {0} nagte + {0}/nag + rigting {0} O @@ -5723,8 +5746,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}px - {0}Mpx - {0}Mpx + {0} MP + {0} MP {0}ppcm @@ -5775,6 +5798,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}jt. + vt. {0}vt. {0}vt. @@ -6137,6 +6161,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}kw.Eng. {0}kw.Eng + + lig + {0} lig + {0} lig + + + deeltjies/miljard + {0}deeltjie/miljard + {0}deeltjies/miljard + + + nagte + {0} nag + {0} nagte + {0}/nag + hh:mm @@ -6160,6 +6200,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}, {1} + + {0}, {1} + {0}, {1} + + + {0} {1} + {0} {1} + {0} {1} + {0} {1} + + + {0}, {1} + {0}, {1} + @@ -6170,7 +6224,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} – alle {0} – versoenbaarheid - {0} ingeslote + {0} – ingeslote {0} – uitgebreid {0} kyk na links {0} kyk na regs @@ -6190,14 +6244,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ pyltjie liggaam bokstekening - Braille gebou - kolpunt/sterretjie + kolpunt of sterretjie konsonantale jamo geldeenheidsimbool - koppelteken/koppelaar + koppelteken of koppelaar syfer - towersimbool + waarsêerysimbool af-pyltjie af-op-pyltjie Oos-Asiese skrif @@ -6210,7 +6263,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ formatering en witspasie volwye variant geometriese vorm - Halfwye variant + halfwye variant Han-karakter Han-radikaal Hanzi (vereenvoudig) @@ -6236,7 +6289,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ nommers voorwerp ander - Saamgevoeg + saamgevoeg persoon fonetiese alfabet piktogram @@ -6245,8 +6298,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ regs-pyltjie teken of simbool klein variante - gesiggie - emosiekoon of mens + glimlaggesiggie + glimlaggesiggie of mens Suid-Asiese skrif Suidoos-Asiese skrif spasiëring @@ -6270,7 +6323,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kursief onderskrif teks - kantel + betiteling vertoon plakkaat skuins na agtertoe @@ -6470,7 +6523,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Bertie Henri Retief ∅∅∅ - Wyk + Willemse ∅∅∅ jnr. LP diff --git a/make/data/cldr/common/main/ak.xml b/make/data/cldr/common/main/ak.xml index 210bde48f91..74c9de0c9ad 100644 --- a/make/data/cldr/common/main/ak.xml +++ b/make/data/cldr/common/main/ak.xml @@ -12,52 +12,269 @@ CLDR data files are interpreted according to the LDML specification (http://unic + Afrikaans Akan Amarik - Arabik + Arabeke + Arabeke Kasa Nhyehyɛeɛ Foforɔ + Asamese + Asturiani + Asabegyanni Belarus kasa Bɔlgeria kasa + Harianvi + Bopuri + Anii Bengali kasa + Britenni + Bodo + Bosniani + Katalan + Kebuano + Kiroki Kyɛk kasa + Tadeɛm Kreefoɔ Kasa + Kyuvahyi + Wɛɛhye Kasa + Dane kasa Gyaaman + Ɔstria Gyaaman + Swisalande Gyaaman + Dɔgri + Sɔɔbia a ɛwɔ fam Greek kasa Borɔfo + Ngresi Borɔfo + Amɛrika Borɔfo + Esperanto Spain kasa + Spain kasa (Laaten Amɛrika) + Estonia kasa + Baske Pɛɛhyia kasa + Fula kasa + Finlande kasa + Filipin kasa + Farosi Frɛnkye + Kanada Frɛnkye + Swisalande Frɛnkye + Atɔeɛ Fam Frihyia Kasa + Aerelande kasa + Skotlandfoɔ Galek Kasa + Galisia kasa + Gugyarata Hausa + Hibri kasa Hindi + Laatenfoɔ Hindi + Hindibrɔfo + Kurowehyia kasa + Atifi fam Sɔɔbia Kasa Hangri kasa + Aameniani + Kasa ntam Indonihyia kasa - Igbo + Kasa afrafra + Igbo kasa + Aeslande kasa Italy kasa Gyapan kasa Gyabanis kasa + Gyɔɔgyia kasa + Kabuvadianu + Kaingang + kasaki kasa Kambodia kasa + Kanada Korea kasa + Konkani kasa + Kahyimiɛ + Kɛɛde kasa + Kuvi kasa + Kɛgyese kasa + Lɔsimbɔge kasa + Liguria kasa + Lombad kasa + Lawo kasa + Lituania kasa + Latvia kasa + Maetili + Mawori + Mɛsidonia kasa + Malayalam kasa + Mongoliafoɔ kasa + Manipuri + Marati Malay kasa + Malta kasa + Kasa ahodoɔ Bɛɛmis kasa + Gyaaman kasa a ɛwɔ fam Nɛpal kasa Dɛɛkye + Dɛɛkye (Bɛɛgyiɔm + Nɔwefoɔ Ninɔso + Nɔwefoɔ kasa + Nko + Osita kasa + Odia Pungyabi kasa + Nigeriafoɔ Pigyin Pɔland kasa + Prusia kasa + Pahyito Pɔɔtugal kasa + Kwɛkya + Ragyasitan kasa + Romanhye kasa Romenia kasa Rahyia kasa Rewanda kasa + Sanskrit kasa + Yakut Kasa + Santal kasa + Saadinia kasa + Sindi + Sinhala + Slovak Kasa + Slovɛniafoɔ Kasa Somalia kasa + Aabeniani + Sɛbia Kasa + Sunda Kasa Sweden kasa + Swahili + Siiria Kasa + Silesiafoɔ Kasa Tamil kasa + Telugu + Tɛgyeke kasa Taeland kasa + Tigrinya kasa + Tɛkmɛnistan Kasa + Tonga kasa Tɛɛki kasa + Tata kasa + Yugaa Kasa Ukren kasa + kasa a yɛnnim Urdu kasa + Usbɛkistan Kasa + Vɛnihyia Kasa Viɛtnam kasa + Makuwa + Wolɔfo Kasa + Hosa Kasa + Kangri Yoruba + Ningatu + Kantonese + Kyaena Kantonese + Zuang Kyaena kasa + Madarin, Kyaena kasa + Kyaena kasa a emu yɛ mmrɛ + Mandarin Kyaena kasa a emu yɛ mmrɛ + Tete Kyaena kasa + Tete Mandarin Kyaena kasa Zulu + Lengwestese biara nnim + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + wiase + Abibirem + Amɛrika Atifi + Amɛrika Anaafoɔ + Osiana + Abibirem Atɔeɛ Fam + Amɛrika Mfimfini + Abibirem Apueiɛ Fam + Abibirem Atifi Fam + Abibirem Mfimfini + Abibirem Anaafoɔ Fam + Amɛrikafoɔ + Amɛrika Atifi Fam + Karibia + Asia Apueiɛ + Asia Anaafoɔ + Asia Anaafoɔ Apuieɛ + Yuropu Anaafoɔ + Ɔstrelia ne Asia + Melanesia + Micronesia Mantam + Pɔlenesia + Asia + Asia Mfimfini + Asia Atɔeɛ + Yuropu + Yuropu Apuieɛ + Yuropu Atifi + Yuropu Atɔeɛ + Abibirem Mpaprɛ Anaafoɔ + Laaten Amɛrika + Asɛnhyin Andora United Arab Emirates Afganistan @@ -66,12 +283,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic Albenia Aamenia Angola + Antaatika Agyɛntina Amɛrika Samoa Ɔstria Ɔstrelia Aruba - Azebaegyan + Aland Aeland + Asabegyan Bosnia ne Hɛzegovina Baabados Bangladɛhye @@ -81,53 +300,71 @@ CLDR data files are interpreted according to the LDML specification (http://unic Baren Burundi Bɛnin + St. Baatilemi Bɛmuda Brunae Bolivia + Caribbean Netherlands Brazil Bahama Butan + Bouvet Island Bɔtswana Bɛlarus Beliz Kanada - Kongo (Zair) + Kokoso Supɔ + Kongo Kinhyaahya + DR Kongo Afrika Finimfin Man Kongo + Kongo Man Swetzaland - La Côte d’Ivoire - Kook Nsupɔw + Kodivuwa + Kuk Nsupɔ Kyili Kamɛrun Kyaena Kolombia + Klepatin Aeland Kɔsta Rika Kuba Kepvɛdfo Islands - Saeprɔs - Kyɛk Kurokɛse + Kurakaw + Buronya Supɔ + Saeprɔso + Kyɛk + Kyɛk Man Gyaaman + Diɛgo Gaasia Gyibuti Dɛnmak Dɔmeneka - Dɔmeneka Kurokɛse + Dɔmeneka Man Ɔlgyeria - Ikuwadɔ + Ceuta ne Melilla + Yikuwedɔ Ɛstonia - Nisrim + Misrim + Sahara Atɔeɛ Ɛritrea Spain Ithiopia + Yuropu Nkabomkuo + Yuropu Fam Finland Figyi - Fɔlkman Aeland + Fɔkman Aeland + Fɔkman Aeland (Islas Maivinas) Maekronehyia - Frɛnkyeman + Faro Aeland + Franse Gabɔn - Ahendiman Nkabom + UK Grenada Gyɔgyea Frɛnkye Gayana + Guɛnse Gaana Gyebralta Greenman @@ -136,35 +373,43 @@ CLDR data files are interpreted according to the LDML specification (http://unic Guwadelup Gini Ikuweta Greekman + Gyɔɔgyia Anaafoɔ ne Sandwich Aeland Anaafoɔ Guwatemala Guam Gini Bisaw Gayana + Hɔnkɔn Kyaena + Hɔnkɔn + Heard ne McDonald Supɔ Hɔnduras Krowehyia Heiti Hangari + Canary Islands Indɔnehyia Aereland - Israel + Israe + Isle of Man India - Britenfo Hɔn Man Wɔ India Po No Mu + Britenfo Man Wɔ India Po No Mu + Kyagɔso Akyipalego Irak Iran Aesland Itali + Gyɛsi Gyameka Gyɔdan Gyapan - Kɛnya + Kenya Kɛɛgestan Kambodia Kiribati Kɔmɔrɔs Saint Kitts ne Nɛves - Etifi Koria - Anaafo Koria - Kuwete + Korea Atifi + Korea Anaafoɔ + Kuweti Kemanfo Islands Kazakstan Laos @@ -173,20 +418,25 @@ CLDR data files are interpreted according to the LDML specification (http://unic Lektenstaen Sri Lanka Laeberia - Lɛsutu + Lesoto Lituwenia - Laksembɛg + Lusimbɛg Latvia Libya Moroko - Mɔnako + Monako Mɔldova + Mɔntenegro + St. Maatin Madagaska - Marshall Islands + Mahyaa Aeland + Mesidonia Atifi Mali - Miyanma + Mayaama (Bɛɛma) Mɔngolia - Northern Mariana Islands + Makaw Kyaena + Makaw + Mariana Atifi Fam Aeland Matinik Mɔretenia Mantserat @@ -199,61 +449,70 @@ CLDR data files are interpreted according to the LDML specification (http://unic Mozambik Namibia Kaledonia Foforo - Nigyɛ - Nɔfolk Aeland + Nigyɛɛ + Norfold Supɔ Naegyeria Nekaraguwa Nɛdɛland Nɔɔwe - Nɛpɔl + Nɛpal Naworu Niyu Ziland Foforo + Ziland Foforɔ a ɛwɔ Awotiarua Oman Panama Peru Frɛnkye Pɔlenehyia - Papua Guinea Foforo - Philippines + Papua Gini Foforɔ + Filipin Pakistan - Poland + Pɔland Saint Pierre ne Miquelon - Pitcairn + Pitkaan Nsupɔ Puɛto Riko Palestaen West Bank ne Gaza Pɔtugal Palau - Paraguay + Paraguae Kata + Osiana Ano Ano Reyuniɔn Romenia + Sɛbia Rɔhyea - Rwanda + Rewanda Saudi Arabia - Solomon Islands + Solomɔn Aeland Seyhyɛl Sudan Sweden Singapɔ Saint Helena Slovinia + Svalbard ne Jan Mayen Slovakia - Sierra Leone + Sɛra Liɔn San Marino Senegal Somalia Suriname - São Tomé and Príncipe + Sudan Anaafoɔ + São Tomé ne Príncipe Ɛl Salvadɔ + Sint Maaten Siria Swaziland + Tristan da Kuna Turks ne Caicos Islands Kyad + Franse Anaafoɔ Nsaase Togo Taeland - Tajikistan + Tagyikistan Tokelau Timɔ Boka + Timɔ Apueiɛ Tɛkmɛnistan Tunihyia Tonga @@ -261,31 +520,119 @@ CLDR data files are interpreted according to the LDML specification (http://unic Trinidad ne Tobago Tuvalu Taiwan - Tanzania + Tansania Ukren - Uganda + Yuganda + U.S. Nkyɛnnkyɛn Supɔ Ahodoɔ + Amansan Nkabomkuo Amɛrika Yurugwae - Uzbɛkistan + Usbɛkistan Vatican Man Saint Vincent ne Grenadines Venezuela - Britainfo Virgin Islands + Ngresifoɔ Virgin Island Amɛrika Virgin Islands Viɛtnam Vanuatu Wallis ne Futuna Samoa - Yɛmen + Anto Kasa + Anto Bidi + Kosovo + Yɛmɛn Mayɔte - Afrika Anaafo + Abibirem Anaafoɔ Zambia - Zembabwe + Zimbabue + Mantam a Yɛnnim + + Kalɛnna + Sika Fɔmate + Nyiyie Kwan + Sika + Dɔnhwere Nkɔmmaeɛ (12 anaa 24) + Line Break Nhyehyɛeɛ + Nsusudeɛ Sestɛm + Nɛma + + + Budafoɔ Kalɛnna + Kyaenafoɔ Kalɛnna + Kɔtesefoɔ Kalɛnna + Dangi Kalɛnna + Yitiopia Kalɛnna + Yitiopia Amete Alɛm Kalɛnna + Gregorian Kalɛnna + Hibri Kalɛnda + Higyiri Kalɛnda + Higyiri Kalɛnda (tabula, sivil epokyi + Higyiri Kalɛnda (Ummm al-Kura) + ISO-8601 Kalɛnna + Gyapanfoɔ Kalɛnda + Pɛɛsiafoɔ Kalɛnda + Minguo Kalɛnda + Sika Nkotabuo Fɔmate + Sika Fɔmate Susudua + Koodu Korɔ Nyiyie Kwan a ɛdi Kan + Daa-Botaeɛ Adehwehwɛ + Nyiyie Kwan Susudua + Nnɔnhwere 12 Sestɛm (0–11) + Nnɔnhwere 12 Sestɛm (1–12 + Nnɔnhwere 24 Sestɛm (0–23) + Nnɔnhwere 24 Sestɛm (0–24) + Line Break Nhyehyɛeɛ a Emu Yɛ Mmrɛ + Daa Line Break Nhyehyɛeɛ + Line Break Nhyehyɛeɛ Ferenkyemm + Mɛtreke Nhyehyɛeɛ + Imperial Nsusudeɛ Sestɛm + US Nsusudeɛ Sestɛm + Arabeke Digyete + Arabeke Digyete a Wɔatrɛm + Aamenia Nɔma + Aamenia Nɔma Nkumaa + Bangla Gigyete + Kyakma Digyete + Devanagari Gigyete + Yitiopia Nɔma + Digyete a Emu Pi + Gyɔgyea Nɔma + Griiki Nɔma + Griiki Nɔma Nkumaa + Gugyarati Digyete + Gurumuki Digyete + Kyaenafoɔ Dɛsima Nɔma + Kyaenafoɔ Dɛsima Nɔma a Emu Yɛ Mmrɛ + Kyaenafoɔ Sikasɛm Dɛsima Nɔma a Emu Yɛ Mmrɛ + Kyaenafoɔ Tete Nɔma + Tete Kyaena Sikasɛm Nɔma + Hibri Nɔma + Gyavaniisi Digyete + Gyapanfoɔ Nɔma + Gyapanfoɔ Sikasɛm Nɔma + Kima Digyete + Kanada Digyete + Lawo Digyete + Atɔeɛ Fam Digyete + Malayalam Digyete + Meeti Mayɛke Digyete + Mayaama Digyete + Ol Kyiki Digyete + Odia Digyete + Roman Nɔma + Romanfoɔ Nɔma Nkumaa + Tamil Tete Nɔma + Tamil Digyete + Telugu Digyete + Taelanfoɔ Digyete + Tibɛtan Digyete + Vai Gigyete + [a b d e ɛ f g h i k l m n o ɔ p r s t u w y] - [c j q v z] + [áäã c éë í j óö q ü v z] [A B C D E Ɛ F G H I J K L M N O Ɔ P Q R S T U V W X Y Z] @@ -316,6 +663,26 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + {1} {0} + + + + + {1} {0} + + + + + {1} {0} + + + + + {1} {0} + + h:mm a M/d @@ -332,38 +699,105 @@ CLDR data files are interpreted according to the LDML specification (http://unic QQQ y QQQQ y + + + MMM – MMM Y G + MMM y– MMM Y G + + + MMM d – d, y G + + - S-Ɔ - K-Ɔ - E-Ɔ - E-O - E-K - O-A - A-K - D-Ɔ - F-Ɛ - Ɔ-A - Ɔ-O - M-Ɔ + Ɔpɛpɔn + Ɔgyefoɔ + Ɔbɛnem + Oforisuo + Kɔtɔnimma + Ayɛwohomumu + Kutawonsa + Ɔsanaa + Ɛbɔ + Ahinime + Obubuo + Ɔpɛnimma + + + Ɔ + Ɔ + Ɔ + O + K + A + K + Ɔ + Ɛ + A + O + Ɔ + + + Ɔpɛpɔn + Ɔgyefoɔ + Ɔbɛnem + Oforisuo + Kɔtɔnimma + Ayɛwohomumu + Kutawonsa + Ɔsanaa + Ɛbɔ + Ahinime + Obubuo + Ɔpɛnimma + + + + + Ɔpɛpɔn + Ɔgyefoɔ + Ɔbɛnem + Oforisuo + Kɔtɔnimma + Ayɛwohomumu + Kutawonsa + Ɔsanaa + Ɛbɔ + Ahinime + Obubuo + Ɔpɛnimma + + + Ɔ + Ɔ + Ɔ + O + K + A + K + Ɔ + Ɛ + A + O + Ɔ - Sanda-Ɔpɛpɔn - Kwakwar-Ɔgyefuo - Ebɔw-Ɔbenem - Ebɔbira-Oforisuo - Esusow Aketseaba-Kɔtɔnimba - Obirade-Ayɛwohomumu - Ayɛwoho-Kitawonsa - Difuu-Ɔsandaa - Fankwa-Ɛbɔ - Ɔbɛsɛ-Ahinime - Ɔberɛfɛw-Obubuo - Mumu-Ɔpɛnimba + Ɔpɛpɔn + Ɔgyefoɔ + Ɔbɛnem + Oforisuo + Kɔtɔnimma + Ayɛwohomumu + Kutawonsa + Ɔsanaa + Ɛbɔ + Ahinime + Obubuo + Ɔpɛnimma @@ -379,12 +813,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic Mem - Kwesida - Dwowda + Kwasiada + Dwoada Benada - Wukuda - Yawda - Fida + Wukuada + Yawoada + Fiada Memeneda @@ -398,8 +832,47 @@ CLDR data files are interpreted according to the LDML specification (http://unic F M + + Kwasiada + Dwoada + Benada + Wukuada + Yawoada + Fiada + Memeneda + + + + + Kɔta1 + Kɔta2 + Kɔta3 + Kɔta4 + + + Kɔta a ɛdi kan + kɔta a ɛtɔ so mmienu + Kɔta a ɛtɔ so mmiɛnsa + Kɔta a ɛtɔ so nnan + + + + + Kɔta1 + Kɔta2 + Kɔta3 + Kɔta4 + + + Kɔta a ɛdi kan + kɔta a ɛtɔ so mmienu + Kɔta a ɛtɔ so mmiɛnsa + Kɔta a ɛtɔ so nnan + + + @@ -407,37 +880,46 @@ CLDR data files are interpreted according to the LDML specification (http://unic EW + + + AN + ANW + + Ansa Kristo - Kristo Ekyiri + Ansa Daa Berɛ + Kristo Akyi + Daa Berɛm AK KE + KA - EEEE, y MMMM dd + EEE, MMMM d, y yMMMMEEEEdd - y MMMM d + MMMM d, y - y MMM d + MMM d, y - yy/MM/dd + M/d/yy yyMMdd @@ -469,6 +951,35 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + {1}, {0} + + + {1} 'wɔ' {0} + + + + + {1}, {0} + + + {1} 'wɔ' {0} + + + + + {1}, {0} + + + + + {1}, {0} + + + {1}, {0} + + h:mm a M/d @@ -479,111 +990,2347 @@ CLDR data files are interpreted according to the LDML specification (http://unic y/M/d E, M/d/y MMM y + MMM d, y E, MMM d, y MMMM y QQQ y QQQQ y + + + M/y G – M/y G + M/y – M/y G + M/y – M/y G + + + M/d/y – M/d/y G + M/d/y G – M/d/y G + M/d/y – M/d/y G + M/d/y – M/d/y G + + + E, M/d/y – E, M/d/y G + E, M/d/y G – E, M/d/y G + E, M/d/y – E, M/d/y G + E, M/d/y – E, M/d/y G + + + MMM y G – MMM y G + MMM – MMM y G + MMM y – MMM y G + + + MMM d – d, y G + MMM d, y G – MMM d, y G + MMM d – MMM d, y G + MMM d, y – MMM d, y G + + + E, MMM d – E, MMM d, y G + E, MMM d, y G – E, MMM d, y G + E, MMM d – E, MMM d, y G + E, MMM d, y – E, MMM d, y G + + + M – M + + + M/d – M/d + M/d – M/d + + + E, M/d – E, M/d + E, M/d – E, M/d + + + MMM – MMM + + + MMM d – MMM d + + + E, MMM d – E, MMM d + E, MMM d – E, MMM d + + + M/y – M/y + M/y – M/y + + + M/d/y – M/d/y + M/d/y – M/d/y + M/d/y – M/d/y + + + E, M/d/y – E, M/d/y + E, M/d/y – E, M/d/y + E, M/d/y – E, M/d/y + + + MMM – MMM y + MMM y – MMM y + + + MMM d – d, y + MMM d – MMM d, y + MMM d, y – MMM d, y + + + E, MMM d – E, MMM d, y + E, MMM d – E, MMM d, y + + - Bere + berɛ + + + berɛ + + + berɛ Afe + afe a atwam + afe yi + afe a ɛdi hɔ + + afe {0} mu + mfeɛ {0} mu + + + afe {0} a atwam + mfeɛ {0} a atwam + + + + afe a atwam + afe yi + afe a ɛdi hɔ + + afe {0} mu + mfeɛ {0} mu + + + afe {0} a atwam + mfeɛ {0} a atwam + + + + afe a atwam + afe yi + afe a ɛdi hɔ + + afe {0} mu + mfeɛ {0} mu + + + afe {0} a atwam + mfeɛ {0} a atwam + + + + kɔta + kɔta a atwam + kɔta yi + kɔta a ɛdi hɔ + + kɔta {0} mu + kɔta ahodoɔ {0} mu + + + kɔta {0} a atwam + kɔta ahodoɔ {0} a atwam + + + + kɔta + + kɔta {0} mu + kɔta ahodoɔ {0} mu + + + kɔta {0} a atwam + kɔta ahodoɔ {0} a atwam + + + + kɔta + + kɔta {0} mu + kɔta {0} mu + + + kɔta {0} a atwam + kɔta {0} a atwam + Bosome + bosome a atwam + bosome yi + bosome a ɛdi hɔ + + bosome{0} mu + abosome{0} mu + + + -{0} bosome a atwam + abosome{0} a atwam + + + + bosome a atwam + bosome yi + bosome a ɛdi hɔ + + bosome {0} mu + abosome{0} mu + + + bosome {0} a atwam + abosome{0} a atwam + + + + bosome a atwam + bosome yi + bosome a ɛdi hɔ + + bosome {0} mu + abosome{0} mu + + + bosome {0} a atwam + abosome{0} a atwam + - Dapɛn + Nnawɔtwe + nnawɔtwe a atwam + nnawɔtwe yi + nnawɔtwe a ɛdi hɔ + + nnawɔtwe {0} mu + nnawɔtwe {0} mu + + + nnawɔtwe{0} a atwam + nnawɔtwe{0} a atwam + + nnawɔtwe a ɛtɔ so {0}mu + + + Nnawɔtwe + nnawɔtwe a atwam + nnawɔtwe yi + nnawɔtwe a ɛdi hɔ + + nnawɔtwe {0} mu + nnawɔtwe {0} mu + + + nnawɔtwe{0} a atwam + nnawɔtwe{0} a atwam + + nnawɔtwe a ɛtɔ so {0}mu + + + Nnawɔtwe + nnawɔtwe a atwam + nnawɔtwe yi + nnawɔtwe a ɛdi hɔ + + nnawɔtwe {0} mu. + nnawɔtwe {0} mu + + + nnawɔtwe{0} a atwam + nnawɔtwe {0} a atwam + + nnawɔtwe a ɛtɔ so {0}mu + + + bosome mu nnawɔtwe + + + bosome mu nnawɔtwe + + + bosome mu nnawɔtwe Da - Ndeda - Ndɛ + nnora + ɛnnɛ Ɔkyena + + da {0} mu + nna {0} mu + + + da{0} a atwam + nna{0} a atwam + + + + Ndeda ɛnnora + Ndɛ ɛnnɛ + Ɔkyena + + da {0} mu + nna {0} mu + + + da{0} a atwam + nna{0} a atwam + + + + ɛnnora + ɛnnɛ + Ɔkyena + + da {0} mu + nna {0} mu + + + da{0} a atwam + nna{0} a atwam + + + + afe mu da + + + afe mu da + + + afe mu da - Dapɛn mu da + nnawɔtwe mu da + + + nnawɔtwe mu da + + + nnawɔtwe mu da + + + nnawɔtwe mu da wɔ bosome mu + + + nnawɔtwe mu da wɔ bosome mu + + + nnawɔtwe mu da wɔ bosome mu + + + Kwasiada a atwam + Kwasiada yi + Kwasiada a ɛdi hɔ + + Kwasiada {0} mu + Kwasiada {0} mu + + + Kwasiada {0} a atwam + Kwasiada {0} a atwam + + + + Kwasiada a atwam + Kwasiada yi + Kwasiada a ɛdi hɔ + + Kwasiada {0} mu + Kwasiada {0} mu + + + Kwasiada {0} a atwam + Kwasiada {0} a atwam + + + + Kwasiada a atwam + Kwasiada yi + Kwasiada a ɛdi hɔ + + Kwasiada {0} mu + Kwasiada {0} mu + + + Kwasiada {0} a atwam + Kwasiada {0} a atwam + + + + Dwoada a atwam + Dwoada yi + Dwoada a ɛdi hɔ + + Dwoada {0} mu + Dwoada {0} mu + + + Dwoada {0} a atwam + Dwoada {0} a atwam + + + + Dwoada a atwam + Dwoada yi + Dwoada a ɛdi hɔ + + Dwoada {0} mu + Dwoada {0} mu + + + Dwoada {0} a atwam + Dwoada {0} a atwam + + + + Dwoada a atwam + Dwoada yi + Dwoada a ɛdi hɔ + + Dwoada {0} mu + Dwoada {0} mu + + + Dwoada {0} a atwam + Dwoada {0} a atwam + + + + Benada a atwam + Benada yi + Benada a ɛdi hɔ + + Benada {0} mu + Benada {0} mu + + + Benada {0} a atwam + Benada {0} a atwam + + + + Benada a atwam + Benada yi + Benada a ɛdi hɔ + + Benada {0} mu + Benada {0} mu + + + Benada {0} a atwam + Benada {0} a atwam + + + + Benada a atwam + Benada yi + Benada a ɛdi hɔ + + Benada {0} mu + Benada {0} mu + + + Benada {0} a atwam + Benada {0} a atwam + + + + Wukuada a atwam + Wukuada yi + Wukuada a ɛdi hɔ + + Wukuada {0} mu + Wukuada {0} mu + + + Wukuada {0} a atwam + Wukuada {0} a atwam + + + + Wukuada a atwam + Wukuada yi + Wukuada a ɛdi hɔ + + Wukuada {0} mu + Wukuada {0} mu + + + Wukuada {0} a atwam + Wukuada {0} a atwam + + + + Wukuada a atwam + Wukuada yi + Wukuada a ɛdi hɔ + + Wukuada {0} mu + Wukuada {0} mu + + + Wukuada {0} a atwam + Wukuada {0} a atwam + + + + Yawoada a atwam + Yawoada yi + Yawoada a ɛdi hɔ + + Yawoada {0} mu + Yawoada {0} mu + + + Yawoada {0} a atwam + Yawoada {0} a atwam + + + + Yawoada a atwam + Yawoada yi + Yawoada a ɛdi hɔ + + Yawoada {0} mu + Yawoada {0} mu + + + Yawoada {0} a atwam + Yawoada {0} a atwam + + + + Yawoada a atwam + Yawoada yi + Yawoada a ɛdi hɔ + + Yawoada {0} mu + Yawoada {0} mu + + + Yawoada {0} a atwam + Yawoada {0} a atwam + + + + Fiada a atwam + Fiada yi + Fiada a ɛdi hɔ + + Fiada {0} mu + Fiada {0} mu + + + Fiada {0} a atwam + Fiada {0} a atwam + + + + Fiada a atwam + Fiada yi + Fiada a ɛdi hɔ + + Fiada {0} mu + Fiada {0} mu + + + Fiada {0} a atwam + Fiada {0} a atwam + + + + Fiada a atwam + Fiada yi + Fiada a ɛdi hɔ + + Fiada {0} mu + Fiada {0} mu + + + Fiada {0} a atwam + Fiada {0} a atwam + + + + Memeneda a atwam + Memeneda yi + Memeneda a ɛdi hɔ + + Memeneda {0} mu + Memeneda {0} mu + + + Memeneda {0} a atwam + Memeneda {0} a atwam + + + + Memeneda a atwam + Memeneda yi + Memeneda a ɛdi hɔ + + Memeneda {0} mu + Memeneda {0} mu + + + Memeneda {0} a atwam + Memeneda {0} a atwam + + + + Memeneda a atwam + Memeneda yi + Memeneda a ɛdi hɔ + + Memeneda {0} mu + Memeneda {0} mu + + + Memeneda {0} a atwam + Memeneda {0} a atwam + + + + anɔpa/anwummerɛ - Da bere + anɔpa/anwummerɛ + + + anɔpa/anwummerɛ - Dɔnhwer + dɔnhwere + dɔnhwere yi + + dɔnhwere {0} mu + nnɔnhwere {0} mu + + + dɔnhwere {0} a atwam + nnɔnhwere {0} a atwam + + + + dɔnhwere + + dɔnhwere {0} mu + nnɔnhwere {0} mu + + + dɔnhwere {0} a atwam + nnɔnhwere {0} a atwam + + + + dɔnhwere + + dɔnhwere {0} mu + nnɔnhwere {0} mu + + + dɔnhwere {0} a atwam + nnɔnhwere {0} a atwam + - Sema + sima + sima yi + + sima {0} mu + sima {0} mu + + + sima {0} a atwam + sima {0} a atwam + + + + sima + + sima {0} mu + sima {0} mu + + + sima {0} a atwam + sima {0} a atwam + + + + sima + + sima {0} mu + sima {0} mu + + + sima {0} a atwam + sima {0} a atwam + - Sɛkɛnd + Simasin + seesei + + anibuo {0} mu + nnibuo {0} mu + + + anibuo {0} a atwam + nnibuo {0} a atwam + + + + Simasin + + anibuo {0} mu + nnibuo {0} mu + + + anibuo {0} a atwam + nnibuo {0} a atwam + + + + Simasin + + anibuo {0} mu + nnibuo {0} mu + + + anibuo {0} a atwam + nnibuo {0} a atwam + - Bere apaamu + berɛ mu wiase nkyekyɛmu + + + nkyekyɛmu + + + nkyekyɛmu + + Berɛ {0} + Awia ber {0} + Berɛ susudua {0} + + + Amansan Kɔdinatɛde Berɛ + + + + Baabi a yɛnnim + + + Andɔra + + + Anguila + + + Rotera + + + Paama + + + Trɔɔ + + + Mɔɔson + + + Vɔstɔk + + + Kasi + + + Rio Gallegɔs + + + Mɛndɔsa + + + San Dwuan + + + La Riogya + + + Katamaaka + + + Dwudwui + + + Tukuman + + + Kɔɔdɔba + + + Veɛna + + + Pɛɛt + + + Eukla + + + Daawin + + + Brɔken Hill + + + Mɛɛbɔn + + + Hɔbat + + + Sidni + + + Makaari + + + Lɔd Howe + + + Saragyevo + + + Baabados + + + Daka + + + Brɛsɛlse + + + Wagadugu + + + Sɔfia + + + Budwumbura + + + St. Baatilemi + + + Bɛmuda + + + Kralɛngyik + + + Rio Branko + + + Pɔɔto Velho + + + Kuiaba + + + Kampo Grande + + + Bɛlɛm + + + Fɔɔtalɛsa + + + Makeio + + + Rɛsifɛ + + + Timphu + + + Bɛlisi + + + Dɔɔson + + + Fɔt Nɛlson + + + Dɔɔson Kreek + + + Krɛston + + + Edmɔnton + + + Swift Kɛrɛnt + + + Kambrigyi Bay + + + Rɛgyina + + + Winipɛg + + + Rɛsɔlut + + + Ikaluit + + + Mɔnktin + + + Guus Bay + + + Blanc-Sablɔn + + + Kokoso + + + Kinhyaahya + + + Zurekye + + + Abigyan + + + Easta + + + Yurymki + + + Kɔsta Rika + + + Kepvɛde + + + Kurukaw + + + Buronya + + + Nikosia + + + Busingye + + + Bɛɛlin + + + Gyibuuti + + + Kɔpɛhangɛne + + + Dɔmeneka + + + Ɔlgyese + + + Galapagɔs + + + Gayakwuil + + + Kairo + + + Kanari + + + Kyuta + + + Hɛlsinki + + + Figyi + + + Stanli + + + Kyuuk + + + Pɔnpei + + + + Ingresi Awia Berɛ + + Lɔndɔn + + + Kayiini + + + Akraa + + + Gyebrota + + + Yitokɔtuɔmete + + + Bandwuu + + + Kɔnakri + + + Guwadelup + + + Atene + + + Gyɔɔgyia Anaafoɔ + + + Guwatemala + + + Bisaw + + + Gayana + + + Tegusigalpa + + + Budapɛsh + + + Gyakaata + + + Makasa + + + Gyayapura + + + + Irelandfoɔ Susudua Berɛ + + Dɔblin + + + Yerusalem + + + Kɔɔkata + + + Kyagɔs + + + Tɛɛran + + + Rɛɛkgyavik + + + Roma + + + Jɛɛsi + + + Gyameka + + + Aman + + + Kɔmɔrɔ + + + Kemanfo + + + Aktau + + + Aktopɛ + + + Kostanay + + + Aamati + + + Vienhyiane + + + Bɛɛrut + + + Kolombo + + + Lɛsembɛg + + + Kasablanka + + + Monako + + + Kyisinau + + + Podgorika + + + Marigɔt + + + Kwagyaleene + + + Magyuro + + + Skɔpgye + + + Yulanbata + + + Martinike + + + Mantserat + + + Mɔɔta + + + Mɔrihyiɔso + + + Blantai + + + Tidwuana + + + Hɛmɔsilo + + + Masatlan + + + Kyihuahua + + + Ogyinaga + + + Mɔntirii + + + Mɛksiko Siti + + + Matamɔrɔso + + + Kukyin + + + Nɔɔfɔk + + + Legɔs + + + Amstadam + + + Katmandu + + + Kyatam + + + Aukland + + + Muskat + + + Maakesase + + + Pɔt Morɛsbi + + + Karakyi + + + Wɔɔsɔɔ + + + Pitkairne + + + Puɛto Riko + + + Hɛbrɔn + + + Lisbɔn + + + Kata + + + Bukyarɛst + + + Bɛlgrade + + + Mɔsko + + + Yɛkatɛrinbɛg + + + Kyita + + + Kamkyatka + + + Guadaakanaa + + + Stɔkhɔm + + + Singapɔ + + + Ldwubdwana + + + Dakaa + + + Paramaribɔ + + + Dwuba + + + El Salvadɔɔ + + + Lowa Prinse Kɔta + + + Damaskɔso + + + Grand Tuk + + + Ngyamena + + + Kɛguelɛn + + + Bankɔk + + + Spain Pɔɔto + + + Ankɔragyi + + + Mɛtlakatla + + + Lɔs Angyɛlis + + + Bɔisi + + + Finisk + + + Dɛnva + + + Beula, Nɔf Dakota + + + New Salɛm, Nɔf Dakota + + + Sɛnta, Nɔf Dakota + + + Kyikago + + + Mɛnɔminee + + + Pitɛsbɛgye, Indiana + + + Tell Siti, Indiana + + + Winamak, Indiana + + + Indianapɔlis + + + Mɔntisɛlo, Kɛntɛki + + + Detrɔit + + + New Yɔk + + + Vatikan + + + Karakas + + + Tɔɔtola + + + Ho Kyi Min + + + Mayote + + + + Afganistan Berɛ + + + + + Afrika Finimfin Berɛ + + + + + Afrika Apueeɛ Berɛ + + + + + Afrika Anaafoɔ Susudua Berɛ + + + + + Afrika Atɔeɛ Berɛ + Afrika Atɔeɛ Susudua Berɛ + Afrika Atɔeɛ Awia Berɛ + + + + + Alaska Berɛ + Alaska Susudua Berɛ + Alaska Awia Berɛ + + + + + Amazon Berɛ + Amazon Susudua Berɛ + Amazon Awia Berɛ + + + + + Mfinimfini Berɛ + Mfinimfini Susudua Berɛ + Mfinimfini Awia Berɛ + + + + + Apueeɛ Berɛ + Apueeɛ Susudua Berɛ + Apueeɛ Awia Berɛ + + + + + Bepɔ Berɛ + Bepɔ Susudua Berɛ + Bepɔ Awia Berɛ + + + + + Pasifik Berɛ + Pasifik Susudua Berɛ + Pasifik Awia Berɛ + + + + + Apia Berɛ + Apia Susudua Berɛ + Apia Awia Berɛ + + + + + Arabia Berɛ + Arabia Susudua Berɛ + Arabia Awia Berɛ + + + + + Agyɛntina Berɛ + Agyɛntina Susudua Berɛ + Agyɛntina Awia Berɛ + + + + + Agyɛntina Atɔeeɛ Berɛ + Agyɛntina Atɔeeɛ Susudua Berɛ + Agyɛntina Atɔeeɛ Awia Berɛ + + + + + Aamenia Berɛ + Aamenia Susudua Berɛ + Aamenia Awia Berɛ + + + + + Atlantik Berɛ + Atlantik Susudua Berɛ + Atlantik Awia Berɛ + + + + + Ɔstrelia Mfinimfini Berɛ + Ɔstrelia Mfinimfini Susudua Berɛ + Ɔstrelia Mfinimfini Awia Berɛ + + + + + Ɔstrelia Mfinimfini Atɔeeɛ Berɛ + Ɔstrelia Mfinimfini Atɔeeɛ Susudua Berɛ + Ɔstrelia Mfinimfini Atɔeeɛ Awia Berɛ + + + + + Ɔstrelia Apueeɛ Berɛ + Ɔstrelia Apueeɛ Susudua Berɛ + Ɔstrelia Apueeɛ Awia Berɛ + + + + + Ɔstrelia Atɔeeɛ Berɛ + Ɔstrelia Atɔeeɛ Susudua Berɛ + Ɔstrelia Atɔeeɛ Awia Berɛ + + + + + Asabegyan Berɛ + Asabegyan Susudua Berɛ + Asabegyan Awia Berɛ + + + + + Azores Berɛ + Azores Susudua Berɛ + Azores Awia Berɛ + + + + + Bangladɛhye Berɛ + Bangladɛhye Susudua Berɛ + Bangladɛhye Awia Berɛ + + + + + Butan Berɛ + + + + + Bolivia Berɛ + + + + + Brasilia Berɛ + Brasilia Susudua Berɛ + Brasilia Awia Berɛ + + + + + Brunei Darusalam Berɛ + + + + + Kepvɛde Berɛ + Kepvɛde Susudua Berɛ + Kepvɛde Awia Berɛ + + + + + Kyamoro Susudua Berɛ + + + + + Kyatam Berɛ + Kyatam Susudua Berɛ + Kyatam Awia Berɛ + + + + + Kyili Berɛ + Kyili Susudua Berɛ + Kyili Awia Berɛ + + + + + Kyaena Berɛ + Kyaena Susudua Berɛ + Kyaena Awia Berɛ + + + + + Buronya Aeland Berɛ + + + + + Kokoso Aeland Berɛ + + + + + Kolombia Berɛ + Kolombia Susudua Berɛ + Kolombia Awia Berɛ + + + + + Kuk Aeland Berɛ + Kuk Aeland Susudua Berɛ + Kuk Aeland Awia Fa Berɛ + + + + + Kuba Berɛ + Kuba Susudua Berɛ + Kuba Awia Berɛ + + + + + Davis Berɛ + + + + + Dumont-d’Urville Berɛ + + + + + Timɔɔ Apueeɛ Berɛ + + + + + Easta Aeland Berɛ + Easta Aeland Susudua Berɛ + Easta Aeland Awia Berɛ + + + + + Yikuwedɔ Berɛ + + + + + Yuropu Mfinimfini Berɛ + Yuropu Mfinimfini Susudua Berɛ + Yuropu Mfinimfini Awia Berɛ + + + + + Yuropu Apueeɛ Berɛ + Yuropu Apueeɛ Susudua Berɛ + Yuropu Apueeɛ Awia Berɛ + + + + + Yuropu Apueeɛ Nohoa Berɛ + + + + + Yuropu Atɔeeɛ Berɛ + Yuropu Atɔeeɛ Susudua Berɛ + Yuropu Atɔeeɛ Awia Berɛ + + + + + Fɔkman Aeland Berɛ + Fɔkman Aeland Susudua Berɛ + Fɔkman Aeland Awia Berɛ + + + + + Figyi Berɛ + Figyi Susudua Berɛ + Figyi Awia Berɛ + + + + + Frɛnkye Gayana Berɛ + + + + + Frɛnkye Anaafoɔ ne Antaatik Berɛ + + + + + Galapagɔs Berɛ + + + + + Gambier Berɛ + + + + + Gyɔgyea Berɛ + Gyɔgyea Susudua Berɛ + Gyɔgyea Awia Berɛ + + + + + Geebɛt Aeland Berɛ + + + + + Greenwich Mean Berɛ + + + + + Greenland Apueeɛ Berɛ + Greenland Apueeɛ Susudua Berɛ + Greenland Apueeɛ Awia Berɛ + + + + + Greenland Atɔeɛ Berɛ + Greenland Atɔeɛ Susudua Berɛ + Greenland Atɔeɛ Awia Berɛ + + + + + Gɔɔfo Susudua Berɛ + + + + + Gayana Berɛ + + + + + Hawaii-Aleutian Berɛ + Hawaii-Aleutian Susudua Berɛ + Hawaii-Aleutian Awia Berɛ + + + + + Hɔnkɔn Berɛ + Hɔnkɔn Susudua Berɛ + Hɔnkɔn Awia Berɛ + + + + + Hovd Berɛ + Hovd Susudua Berɛ + Hovd Awia Berɛ + + + + + India Susudua Berɛ + + + + + India Po Berɛ + + + + + Indɔkyina Berɛ + + + + + Indɔnehyia Mfinimfini Berɛ + + + + + Indɔnehyia Apueeɛ Berɛ + + + + + Indɔnehyia Atɔeeɛ Berɛ + + + + + Iran Berɛ + Iran Susudua Berɛ + Iran Awia Berɛ + + + + + Irkutsk Berɛ + Irkutsk Susudua Berɛ + Irkutsk Awia Berɛ + + + + + Israel Berɛ + Israel Susudua Berɛ + Israel Awia Berɛ + + + + + Gyapan Berɛ + Gyapan Susudua Berɛ + Gyapan Awia Berɛ + + + + + Kazakstan Berɛ + + + + + Kazakstan Apueeɛ Berɛ + + + + + Kazakstan Atɔeɛ Berɛ + + + + + Korean Berɛ + Korean Susudua Berɛ + Korean Awia Berɛ + + + + + Kosrae Berɛ + + + + + Krasnoyarsk Berɛ + Krasnoyarsk Susudua Berɛ + Krasnoyarsk Awia Berɛ + + + + + Kɛɛgestan Berɛ + + + + + Lai Aeland Berɛ + + + + + Lɔd Howe Berɛ + Lɔd Howe Susudua Berɛ + Lɔd Howe Awia Berɛ + + + + + Magadan Berɛ + Magadan Susudua Berɛ + Magadan Awia Berɛ + + + + + Malehyia Berɛ + + + + + Maldives Berɛ + + + + + Makesase Berɛ + + + + + Mahyaa Aeland Berɛ + + + + + Mɔrihyiɔso Berɛ + Mɔrihyiɔso Susudua Berɛ + Mɔrihyiɔso Awia Berɛ + + + + + Mɔɔson Berɛ + + + + + Mɛksiko Pasifik Berɛ + Mɛksiko Pasifik Susudua Berɛ + Mɛksiko Pasifik Awia Berɛ + + + + + Yulanbata Berɛ + Yulanbata Susudua Berɛ + Yulanbata Awia Berɛ + + + + + Mɔsko Berɛ + Mɔsko Susudua Berɛ + Mɔsko Awia Berɛ + + + + + Mayaama Berɛ + + + + + Nauru Berɛ + + + + + Nɛpal Berɛ + + + + + Kaledonia Foforɔ Berɛ + Kaledonia Foforɔ Susudua Berɛ + Kaledonia Foforɔ Awia Berɛ + + + + + Ziland Foforɔ Berɛ + Ziland Foforɔ Susudua Berɛ + Ziland Foforɔ Awia Berɛ + + + + + Newfoundland Berɛ + Newfoundland Susudua Berɛ + Newfoundland Awia Berɛ + + + + + Niue Berɛ + + + + + Nɔɔfɔk Aeland Berɛ + Nɔɔfɔk Aeland Susudua Berɛ + Nɔɔfɔk Aeland Awia Berɛ + + + + + Fernando de Noronha Berɛ + Fernando de Noronha Susudua Berɛ + Fernando de Noronha Awia Berɛ + + + + + Novosibirsk Berɛ + Novosibirsk Susudua Berɛ + Novosibirsk Awia Berɛ + + + + + Omsk Berɛ + Omsk Susudua Berɛ + Omsk Awia Berɛ + + + + + Pakistan Berɛ + Pakistan Susudua Berɛ + Pakistan Awia Berɛ + + + + + Palau Berɛ + + + + + Papua Gini Foforɔ Berɛ + + + + + Paraguae Berɛ + Paraguae Susudua Berɛ + Paraguae Awia Berɛ + + + + + Peru Berɛ + Peru Susudua Berɛ + Peru Awia Berɛ + + + + + Filipin Berɛ + Filipin Susudua Berɛ + Filipin Awia Berɛ + + + + + Finise Aeland Berɛ + + + + + St. Pierre & Miquelon Berɛ + St. Pierre & Miquelon Susudua Berɛ + St. Pierre & Miquelon Awia Berɛ + + + + + Pitkairn Berɛ + + + + + Ponape Berɛ + + + + + Pyongyang Berɛ + + + + + Réunion Berɛ + + + + + Rotera Berɛ + + + + + Sakhalin Berɛ + Sakhalin Susudua Berɛ + Sakhalin Awia Berɛ + + + + + Samoa Berɛ + Samoa Susudua Berɛ + Samoa Awia Berɛ + + + + + Seyhyɛl Berɛ + + + + + Singapɔ Susudua Berɛ + + + + + Solomon Aeland Berɛ + + + + + Gyɔɔgyia Anaafoɔ Berɛ + + + + + Suriname Berɛ + + + + + Syowa Berɛ + + + + + Tahiti Berɛ + + + + + Taipei Berɛ + Taipei Susudua Berɛ + Taipei Awia Berɛ + + + + + Tagyikistan Berɛ + + + + + Tokelau Berɛ + + + + + Tonga Berɛ + Tonga Susudua Berɛ + Tonga Awia Berɛ + + + + + Kyuuk Berɛ + + + + + Tɛkmɛnistan Berɛ + Tɛkmɛnistan Susudua Berɛ + Tɛkmɛnistan Awia Berɛ + + + + + Tuvalu Berɛ + + + + + Yurugwae Berɛ + Yurugwae Susudua Berɛ + Yurugwae Awia Berɛ + + + + + Usbɛkistan Berɛ + Usbɛkistan Susudua Berɛ + Usbɛkistan Awia Berɛ + + + + + Vanuatu Berɛ + Vanuatu Susudua Berɛ + Vanuatu Awia Berɛ + + + + + Venezuela Berɛ + + + + + Vladivostok Berɛ + Vladivostok Susudua Berɛ + Vladivostok Awia Berɛ + + + + + Volgograd Berɛ + Volgograd Susudua Berɛ + Volgograd Awia Berɛ + + + + + Vostok Berɛ + + + + + Wake Aeland Berɛ + + + + + Wallis ne Futuna Berɛ + + + + + Yakutsk Berɛ + Yakutsk Susudua Berɛ + Yakutsk Awia Berɛ + + + + + Yɛkatɛrinbɛg Berɛ + Yɛkatɛrinbɛg Susudua Berɛ + Yɛkatɛrinbɛg Awia Berɛ + + + + + Yukɔn Berɛ + + + + + + + apem 0 + apem 0 + mpem 00 + mpem 00 + mpem 000 + mpem 000 + ɔpepem 0 + ɔpepem 0 + ɔpepem 00 + ɔpepem 00 + ɔpepem 000 + ɔpepem 000 + ɔpepepem 0 + ɔpepepem 0 + ɔpepepem 00 + ɔpepepem 00 + ɔpepepem 000 + ɔpepepem 000 + ɔpepepepem 0 + ɔpepepepem 0 + ɔpepepepem 00 + ɔpepepepem 00 + ɔpepepepem 000 + ɔpepepepem 000 + + + ¤#,##0.00 ¤ #,##0.00 + + ¤#,##0.00;(¤#,##0.00) + ¤ #,##0.00;(¤ #,##0.00) + #,##0.00;(#,##0.00) + - ¤0K - ¤ 0K - ¤0K - ¤ 0K - ¤00K - ¤ 00K - ¤00K - ¤ 00K - ¤000K - ¤ 000K - ¤000K - ¤ 000K - ¤0M - ¤ 0M - ¤0M - ¤ 0M - ¤00M - ¤ 00M - ¤00M - ¤ 00M - ¤000M - ¤ 000M - ¤000M - ¤ 000M - ¤0G - ¤ 0G - ¤0G - ¤ 0G - ¤00G - ¤ 00G - ¤00G - ¤ 00G - ¤000G - ¤ 000G - ¤000G - ¤ 000G - ¤0T - ¤ 0T - ¤0T - ¤ 0T - ¤00T - ¤ 00T - ¤00T - ¤ 00T - ¤000T - ¤ 000T - ¤000T - ¤ 000T + ¤0K + ¤ 0K + ¤0K + ¤ 0K + ¤00K + ¤ 00K + ¤00K + ¤ 00K + ¤000K + ¤ 000K + ¤000K + ¤ 000K + ¤0M + ¤ 0M + ¤0M + ¤ 0M + ¤00M + ¤ 00M + ¤00M + ¤ 00M + ¤000M + ¤ 000M + ¤000M + ¤ 000M + ¤ 0G + ¤ 0G + ¤00B + ¤ 00B + ¤00B + ¤ 00G + ¤000G + ¤ 000G + ¤000G + ¤ 000G + ¤0T + ¤ 0T + ¤0T + ¤ 0T + ¤00T + ¤ 00T + ¤00T + ¤ 00T + ¤000T + ¤ 000T + ¤000T + ¤ 000T @@ -591,36 +3338,183 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ɛmirete Arab Nkabɔmu Deram + + Afghanfoɔ Afghani + Afghanfoɔ Afghani + Afghanfoɔ Afghani + + + Albania Lek + Albania lek + Albania lekë + + + Amɛnia dram + Amɛnia dram + Amɛnia dram + + + Nɛdɛlande Antɛlia guuda + Nɛdɛlande Antɛlia guuda + Nɛdɛlande Antɛlia guuda + Angola Kwanza + + Agɛntina peso + Agɛntina peso + Agɛntina peso + Ɔstrelia Dɔla + + Aruba flɔrin + Aruba flɔrin + Aruba flɔrin + + + Azɛbagyan manat + Azɛbagyan manat + Azɛbagyan manat + + + Bɔsnia-Hɛzegɔvina nsesa maake + Bɔsnia-Hɛzegɔvina nsesa maake + Bɔsnia-Hɛzegɔvina nsesa maake + + + Babadɔso dɔla + Babadɔso dɔla + Babadɔso dɔla + + + Bangladehye taka + Bangladehye taka + Bangladehye taka + + + Bɔɔgaria lɛv + Bɔɔgaria lɛv + Bɔɔgaria lɛva + Baren Dina Burundi Frank + + Bɛɛmuda dɔla + Bɛɛmuda dɔla + Bɛɛmuda dɔla + + + Brunei dɔla + Brunei dɔla + Brunei dɔla + + + Bolivia boliviano + Bolivia boliviano + Bolivia boliviano + + + Brazil reale + Brazil reale + Brazil reale + + + Bahama dɔla + Bahama dɔla + Bahama dɔla + + + Butanfoɔ ngutrum + Butanfoɔ ngutrum + Butanfoɔ ngutrum + Botswana Pula + + Bɛlaruhyia ruble + Bɛlaruhyia ruble + Bɛlaruhyia ruble + + + Belize Dɔla + Belize Dɔla + Belize Dɔla + Kanada Dɔla Kongo Frank + + Swiss Franc + Swiss franc + Swiss francs + + + Kyili Peso + Kyili Peso + Kyili Peso + + + kyaena yuan (offshore) + kyaena yuan (offshore) + kyaena yuan (offshore) + - Yuan + kyaena yuan + kyaena yuan + kyaena yuan + + + Kolombia peso + Kolombia peso + Kolombia peso + + + Kɔsta Rika kɔlɔn + Kɔsta Rika kɔlɔn + Kɔsta Rika kɔlɔn + + + Kuba nsesa peso + Kuba nsesa peso + Kuba nsesa peso + + + Kuba peso + Kuba peso + Kuba peso Ɛskudo + + Kyɛk koruna + Kyɛk koruna + Kyɛk koruna + Gyebuti Frank + + Danefoɔ krone + Danefoɔ krone + Danefoɔ krone + + + Dɔmenika peso + Dɔmenika peso + Dɔmenika peso + Ɔlgyeria Dina @@ -636,9 +3530,24 @@ CLDR data files are interpreted according to the LDML specification (http://unic Iro + + Figyi Dɔla + Figyi Dɔla + Figyi Dɔla + + + Fɔkland Aelande Pɔn + Fɔkland Aelande Pɔn + Fɔkland Aelande Pɔn + Breten Pɔn + + Gyɔɔgyia lari + Gyɔɔgyia lari + Gyɔɔgyia lari + Ghana Sidi (1979–2007) @@ -646,24 +3555,155 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ghana Sidi GH₵ + + Gyebrotaa pɔn + Gyebrotaa pɔn + Gyebrotaa pɔn + Gambia Dalasi + + Gini franke + Gini franke + Gini franke + Gini Frank + + Guatemala kwɛtsaa + Guatemala kwɛtsaa + Guatemala kwɛtsaa + + + Gayana dɔla + Gayana dɔla + Gayana dɔla + + + Hɔnkɔn Dɔla + Hɔnkɔn Dɔla + Hɔnkɔn Dɔla + + + Hɔndura lɛmpira + Hɔndura lɛmpira + Hɔndura lɛmpira + + + Krohyia kuna + Krohyia kuna + Krohyia kunas + + + Haiti gɔɔde + Haiti gɔɔde + Haiti gɔɔde + + + Hangari fɔrint + Hangari fɔrint + Hangari fɔrint + + + Indɔnihyia rupia + Indɔnihyia rupia + Indɔnihyia rupia + + + Israel hyekel foforɔ + Israel hyekel foforɔ + Israel hyekel foforɔ + India Rupi + + Irak dinaa + Irak dinaa + Irak dinaa + Irak dinaa + + + Yiranfoɔ rial + Yiranfoɔ rial + Yiranfoɔ rial + + + Icelandfoɔ Króna + Icelandfoɔ króna + Icelandfoɔ krónur + + + Gyameka dɔla + Gyameka dɔla + Gyameka dɔla + + + Gyɔɔdan dinaa + Gyɔɔdan dinaa + Gyɔɔdan dinaa + Gyapan Yɛn Kenya Hyelen + + Kagyɛstan som + Kagyɛstan som + Kagyɛstan som + + + Kambodia riel + Kambodia riel + Kambodia riel + Komoro Frank + + Korea Atifi won + Korea Atifi won + Korea Atifi won + + + Korea Anaafoɔ won + Korea Anaafoɔ won + Korea Anaafoɔ won + + + Kuwait dinaa + Kuwait dinaa + Kuwait dinaa + + + Kayemanfo Aelande dɔla + Kayemanfo Aelande dɔla + Kayemanfo Aelande dɔla + + + Kagyastan tenge + Kagyastan tenge + Kagyastan tenge + + + Laohyia kip + Laohyia kip + Laohyia kip + + + Lɛbanon pɔn + Lɛbanon pɔn + Lɛbanon pɔn + + + Sri Lankafoɔ rupee + Sri Lankafoɔ rupee + Sri Lankafoɔ rupee + Laeberia Dɔla @@ -676,9 +3716,34 @@ CLDR data files are interpreted according to the LDML specification (http://unic Moroko Diram + + Moldova Leu + Moldova leu + Moldova lei + Madagasi Frank + + Masidonia denaa + Masidonia denaa + Masidonia denari + + + Mayamaa kyat + Mayamaa kyat + Mayamaa kyat + + + Mongoliafoɔ tugrike + Mongoliafoɔ tugrike + Mongoliafoɔ tugrike + + + Makaw pataka + Makaw pataka + Makaw pataka + Mɔretenia Ouguiya (1973–2017) @@ -688,24 +3753,131 @@ CLDR data files are interpreted according to the LDML specification (http://unic Mɔrehyeɔs Rupi + + Maldivefoɔ rufiyaa + Maldivefoɔ rufiyaa + Maldivefoɔ rufiyaa + - Malawi Kwacha + Malawi Kwakya + Malawi Kwakya + Malawi Kwakya + + + Mɛksiko pɛso + Mɛksiko pɛso + Mɛksiko pɛso + + + Malaahyia ringgit + Malaahyia ringgit + Malaahyia ringgit Mozambik Metical + + Mozambik mɛtikaa + Mozambik mɛtikaa + Mozambik mɛtikaa + Namibia Dɔla Naegyeria Naira + + Nikaragua kɔɔdɔba + Nikaragua kɔɔdɔba + Nikaragua kɔɔdɔba + + + Nɔɔwee Krone + Nɔɔwee krone + Nɔɔwee kroner + + + Nepalfoɔ rupee + Nepalfoɔ rupee + Nepalfoɔ rupee + + + New Zealand Dɔla + New Zealand Dɔla + New Zealand Dɔla + + + Oman rial + Oman rial + Oman rial + + + Panama baaboa + Panama baaboa + Panama baaboa + + + Pɛruvia sol + Pɛruvia sol + Pɛruvia sol + + + Papua New Gini kina + Papua New Gini kina + Papua New Gini kina + + + Filipine peso + Filipine peso + Filipine peso + + + Pakistanfoɔ rupee + Pakistanfoɔ rupee + Pakistanfoɔ rupee + + + Pɔlihye zloty + Pɔlihye zloty + Pɔlihye zloty + + + Paragayana guarani + Paragayana guarani + Paragayana guarani + + + Kata riyaa + Kata riyaa + Kata riyaa + + + Romania Leu + Romania leu + Romania lei + + + Sɛɛbia dinaa + Sɛɛbia dinaa + Sɛɛbia dinaa + + + Rɔhyia rubuu + Rɔhyia rubuu + Rɔhyia rubuu + Rewanda Frank Saudi Riyal + + Solomon Aeland Dɔla + Solomon Aeland Dɔla + Solomon Aeland Dɔla + Seyhyɛls Rupi @@ -715,6 +3887,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic Sudan Pɔn + + Sweden Krona + Sweden krona + Sweden kronor + + + Singapɔɔ dɔla + Singapɔɔ dɔla + Singapɔɔ dɔla + St Helena Pɔn @@ -727,29 +3909,142 @@ CLDR data files are interpreted according to the LDML specification (http://unic Somailia Hyelen + + Suriname dɔla + Suriname dɔla + Suriname dɔla + + + Sudan Anaafoɔ Pɔn + Sudan Anaafoɔ Pɔn + Sudan Anaafoɔ Pɔn + Sao Tome ne Principe Dobra (1977–2017) Sao Tome ne Principe Dobra + + Siria pɔn + Siria pɔn + Siria pɔn + Lilangeni + + Tai bat + Tai bat + Tai bat + + + Tagyikistan somoni + Tagyikistan somoni + Tagyikistan somoni + + + Tɛkmɛstan manat + Tɛkmɛstan manat + Tɛkmɛstan manat + Tunisia Dina + + Tonga Paʻanga + Tonga paʻanga + Tonga paʻanga + + + Tɛki lira + Tɛki lira + Tɛki lira + + + Trinidad ne Tobago dɔla + Trinidad ne Tobago dɔla + Trinidad ne Tobago dɔla + + + Taewanfoɔ dɔla foforɔ + Taelanfoɔ dɔla foforɔ + Taewanfoɔ dɔla foforɔ + Tanzania Hyelen + + Yukren hryvnia + Yukren hryvnia + Yukren hryvnia + Uganda Hyelen Amɛrika Dɔla + + Yurugueɛ peso + Yurugueɛ peso + Yurugueɛ peso + + + Yusbɛkistan som + Yusbɛkistan som + Yusbɛkistan som + + + Venezuelan bolívar + Venezuelan bolívar + Venezuelan bolívars + + + Viɛtnamfoɔ dɔn + Viɛtnamfoɔ dɔn + Viɛtnamfoɔ dɔn + + + Vanuatu vatu + Vanuatu vatu + Vanuatu vatu + + + Samoa Tala + Samoa tala + Samoa tala + - Sefa + Afrika Mfinimfini Sefa + Afrika Mfinimfini Sefa + Afrika Mfinimfini Sefa + + + Karibine Apueeɛ dɔla + Karibine Apueeɛ dɔla + Karibine Apueeɛ dɔla + + + Afrika Atɔeɛ Sefa + Afrika Atɔeɛ Sefa + Afrika Atɔeɛ Sefa + AAS + + + CFP Franc + CFP franc + CFP francs + + + sika a yɛnnim + (sika a yɛnnim) + (sika a yɛnnim) + + + Yɛmɛn rial + Yɛmɛn rial + Yɛmɛn rial Afrika Anaafo Rand @@ -758,7 +4053,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Zambia Kwacha (1968–2012) - Zambia Kwacha + Zambia Kwakya + Zambia Kwakya + Zambia Kwakya Zimbabwe Dɔla @@ -767,13 +4064,1284 @@ CLDR data files are interpreted according to the LDML specification (http://unic da {0} nda {0} - Fa nyimfa {0}. + Fa nifa {0} + + + + dɛci{0} + + + sɛnti{0} + + + mili{0} + + + mikro{0} + + + nano{0} + + + piko{0} + + + fɛmtɔ{0} + + + atto{0} + + + dika{0} + + + hɛkto{0} + + + kilo{0} + + + mɛga{0} + + + tɛra{0} + + + pɛta{0} + + + {0} wɔ {1} biara mu + + + sokwɛɛ {0} + sokwɛɛ {0} + + + kubik {0} + kubik {0} + + + {0}-{1} + + + {0} g-force + {0} g-force + + + ntwaho + ntwaho {0} + ntwaho {0} + + + radian + {0} radian + {0} radian + + + digrii + digrii {0} + digrii {0} + + + aakesima + aakesima {0} + aakesima {0} + + + aakesɛkɛnse + {0} aakesɛkɛnse + {0} aakesɛkɛnse + + + Eka + {0} eka + {0} eka + + + karat + {0} karat + {0} karat + + + miligrame dɛsilita biara + miligrame dɛsilita biara {0} + miligrame dɛsilita biara {0} + + + milimole lita biara + milimole lita biara {0} + milimole lita biara {0} + + + adeɛ + adeɛ {0} + adeɛ {0} + + + paat ɔpepem biara + paat ɔpepem biara {0} + paat ɔpepem biara {0} + + + ɔha nkyɛmu + ɔha nkyɛmu {0} + ɔha nkyɛmu {0} + + + pɛmile + pɛɛmile {0} + pɛɛmile {0} + + + pɛɛmiride + pɛɛmiride {0} + pɛɛmiride {0} + + + mole + {0} mole + {0} mole + + + lita kilomita biara + lita kilomita biara {0} + lita kilomita biara {0} + + + lita kilomita 100 biara + lita kilomita 100 biara {0} + lita kilomita 100 biara {0} + + + mile galɔn biara + mile galɔn biara {0} + mile galɔn biara {0} + + + mile Imp. galɔn biara + mile Imp. galɔn biara {0} + mile Imp. galɔn biara {0} + + + petabytes + {0} petabyte + {0} petabyte + + + terabyte + {0} terabyte + {0} terabyte + + + terabit + {0} terabit + {0} terabit + + + gigabyte + {0} gigabyte + {0} gigabyte + + + gigabit + {0} Gb + {0} gigabit + + + megabyte + {0} megabyte + {0} megabyte + + + megabit + {0} megabit + {0} megabit + + + kilobyte + {0} kilobyte + {0} kilobyte + + + kilobit + {0} kilobit + {0} kilobits + + + mfeha + afeha{0} + mfeha{0} + + + mfenhyia du + mfenhyia du {0} + {0} dec + + + mfeɛ + mfeɛ {0} + mfeɛ {0} + mfeɛ biara {0} + + + kɔta + kɔta {0} + {0} q + + + bosome + Bosome {0} + Bosome {0} + bosome biara {0} + + + nnawɔtwe + nnawɔtwe {0} + nnawɔtwe {0} + nnawɔtwe biara {0} + + + nna + da {0} + nna {0} + + + dɔnhwere + dɔnhwere {0} + dɔnhwere {0} + + + sima + sima {0} + sima {0} + + + sima sini + sima sini {0} + sima sini {0} + sima sini biara {0} + + + millisɛkɛns + {0} millisɛkɛn + {0} millisɛkɛns + + + μsecs + {0} mikrosɛkɛn + {0} mikrosɛkɛns + + + nanosɛkɛns + {0} nanosɛkɛn + {0} nanosɛkɛns + + + fɔs mu pɔn + fɔs mu pɔn {0} + fɔs mu pɔn {0} + + + newton + {0} newton + {0} newton + + + kilowat-nnɔnhwere 100 kilomita biara + kilowat-nnɔnhwere 100 kilomita biara {0} + kilowat-nnɔnhwere 100 kilomita biara {0} + + + taipografik ems + + + pixels + {0} pixel + {0} pixels + + + {0} megapixel + {0} megapixels + + + pixels sɛntimita biara + pixels sɛntimita biara {0} + pixels sɛntimita biara{0} + + + pixels inkye biara + pixels inkye biara{0} + pixels inkye biara{0} + + + asaase radiɔs + asaase radiɔs {0} + asaase radiɔs{0} + + + kilomita + kilomita {0} + kilomita {0} + kilomita biara{0} + + + mita + mita {0} + mita {0} + mita biara {0} + + + dɛsimita + dɛsimita {0} + dɛsimita {0} + + + sɛntimita + sɛntimita {0} + sɛntimita {0} + sɛntimita biara {0} + + + milimita + milimita {0} + milimita {0} + + + mikromita + mikromita {0} + mikromita {0} + + + nanomita + nanomita {0} + nanomita {0} + + + pikomita + pikomita {0} + pikomita {0} + + + kwansini + kwansini {0} + kwansini {0} + + + yaase + yaase {0} + yaase {0} + + + ananmɔn + ananmɔn {0} + {0} ft + ananmɔn biara {0} + + + inkyisi + inkyisi {0} + inkyisi {0} + inkyisi biara {0} + + + paasɛk + paasɛk {0} + paasɛk {0} + + + kanea mfeɛ + kanea mfeɛ {0} + kanea mfeɛ {0} + + + astrɔnɔmikaa winit + astrɔnɔmikaa winit {0} + astrɔnɔmikaa winit {0} + + + fɛɛlɔɔne + fɛɛlɔɔne {0} + fɛɛlɔɔne {0} + + + fatɔmse + fatɔmse {0} + fatɔmse {0} + + + nɔtikaa ananmɔn + nɔtikaa ananmɔn {0} + nɔtikaa ananmɔn {0} + + + miaase-skandinavian + miaase-skandinavian {0} + miaase-skandinavian {0} + + + pɔnse + pɔnse {0} + pɔnse {0} + + + sola radii + sola radii {0} + sola radii {0} + + + lux + {0} lux + {0} lux + + + kandela + {0} kandela + {0} kandela + + + lumen + + + sola luminɔsitise + sola luminɔsitise {0} + sola luminɔsitise {0} + + + mɛtreke tons + mɛtreke tons {0} + mɛtreke tons {0} + + + kilograme + kilograme {0} + kilograme {0} + kilograme biara {0} + + + grame + grame {0} + {0} g + grame biara {0} + + + miligrame + miligrame {0} + miligrame {0} + + + mikrograme + mikrograme {0} + mikrograme {0} + + + {0} ton + {0} tons + + + pɔns + pɔns {0} + pɔns {0} + pɔns biara {0} + + + awnse + awnse {0} + awnse {0} + awnse biara {0} + + + troy awnse + troy awnse {0} + troy awnse {0} + + + karat + karat {0} + karat {0} + + + daatin + daatin {0} + daatin {0} + + + Asaase mass + Asaase mass {0} + Asaase mass {0} + + + sola mass + sola mass {0} + sola mass {0} + + + + Pɔ {0} + Pɔ {0} + + + pɔn-fɔs-ananmɔn + pɔn-fɔs-ananmɔn {0} + pɔn-fɔs-ananmɔn {0} + + + Newton-mita + {0} newton-mita + {0} newton-mita + + + lita + {0} l + {0} lita + + + pints + + + kuruwa + kuruwa {0} + kuruwa {0} + + + Atere kɛseɛ + Atere kɛseɛ {0} + Atere kɛseɛ {0} + + + atere fa + atere fa {0} + atere fa {0} + + + bare + bare {0} + bare {0} + + + atere + atere {0} + atere {0} + + + koko + ko {0} + koko {0} + + + drɔm + drɔm fl {0} + drɔm fl {0} + + + gyega + gyega {0} + gyega {0} + + + kanea + kanea {0} + kanea {0} + + + paat ɔpepepem biara + paat ɔpepepem biara {0} + paat ɔpepepem biara {0} + + + anadwo + {0} anadwo + anadwo{0} + anadwo biara{0} + + + kadinaa akwankyerɛ + {0} apueɛ + {0} atifi + {0} anaafoɔ + {0} atɔeɛ + + + + + radian + + + digrii + + + aakesima + + + aakesɛkɛnse + {0} aakesɛkɛnse + {0} aakesɛkɛnse + + + Eka + + + karat + + + milimol/lita + + + adeɛ + adeɛ {0} + adeɛ {0} + + + paat ɔpepem biara + + + ɔha nkyɛmu + + + pɛɛmile + + + pɛɛmiride + + + mole + + + lita kilomita biara + + + mile galɔn biara + + + mile Imp. galɔn biara + + + PByte + + + TByte + + + Tbit + + + GByte + + + Gbit + + + MByte + + + Mbit + + + kByte + + + kbit + + + mfeɛ + + + bosome + + + nnawɔtwe + + + nna + da {0} + nna {0} + + + dɔnhwere + + + μsecs + + + nanosɛkɛns + + + fɔs mu pɔn + + + newton + + + pixels + + + asaase radiɔs + + + m + + + kwansini + + + yaase + + + ananmɔn + + + inkyisi + + + paasɛk + + + kanea mfeɛ + + + fɛɛlɔɔne + + + fatɔmse + + + pɔnse + + + sola radii + + + lux + + + kandela + + + lumen + + + sola luminɔsitise + + + grame + + + pɔns + + + oz troy + + + karat + + + daatin + + + Asaase mass + + + sola mass + + + {0} gr + {0} gr + + + {0} mph + {0} mph + + + lita + + + pints + + + kuruwa + + + bare + + + atere + {0} dsp + {0} dsp + + + koko + ko {0} + ko {0} + + + drɔm + drɔm {0} + drɔm {0} + + + gyega + gyega {0} + gyega {0} + + + {0} pn + {0} pn + + + kanea + kanea {0} + kanea {0} + + + paat ɔpepepem biara + + + anadwo + anadwo{0} + anadwo{0} + {0}/anadwo + + + akwankyerɛ + + + + + radian + + + digrii + + + aakesima + + + aakesɛkɛnse + + + Eka + + + karat + + + milimol/lita + + + adeɛ + adeɛ {0} + adeɛ {0} + + + paat ɔpepem biara + + + ɔha nkyɛmu + + + pɛɛmiride + + + lita kilomita biara + + + mile galɔn biara + + + mpg UK + + + PByte + + + B + {0}B + {0}B + + + mfeɛ + + + bosome + + + nnawɔtwe + + + da + da {0} + nna {0} + + + dɔnhwere + + + μsec + + + fɔs mu pɔn + + + asaase radiɔs + + + m + + + yaase + + + ananmɔn + {0}′ + {0}′ + + + inkyisi + {0}″ + {0}″ + + + paasɛk + + + kanea mfeɛ + + + fɛɛlɔɔne + + + fatɔmse + + + pts + + + sola radii + + + lux + + + sola luminɔsitise + + + grame + + + pɔns + + + oz troy + + + karat + + + daatin + + + Asaase mass + + + sola mass + + + gr + {0}gr + {0}gr + + + {0} mph + {0} mph + + + lita + + + pt + + + {0}/gal + + + kuruwa + + + dsp + {0}dsp + {0}dsp + + + dr + ko {0} + ko {0} + + + fl.dr. + drɔm fl {0} + drɔm fl {0} + + + gyega + gyega {0} + gyega {0} + + + pn + {0} pn + {0} pn + + + kanea + kanea {0} + kanea {0} + + + paat ɔpepepem biara + + + anadwo + anadwo{0} + anadwo{0} + {0}/anadwo + + + akwankyerɛ + + + + + + {0}, ne {1} + {0} ne {1} + + + {0}, anaa {1} + {0} anaa {1} + + + {0}, anaa {1} + {0} anaa {1} + + + {0}, anaa {1} + {0} anaa {1} + + + {0}, ne {1} + + + {0}, ne {1} + {0} ne {1} + + + {0}, ne {1} + {0} ne {1} + + + {0} {1} + {0} {1} + {0} {1} + {0} {1} + + + {0}, ne {1} + {0} ne {1} + + Yiw:Y Daabi:D + + {0} — kɔmpatebiliti + {0} — ɛnkloso + {0} — ɛstɛndɛde + {0} rehwɛ bɛnkum + {0} rehwɛ nifa + {0} — histɔrike + {0} — mɛsɛleniɔso + {0} — afoforɔ + sikripite — {0} + stroke {0} + stroke {0} + {0} sabsikripite + {0} supasikripite + aktifiti + Afrika sikripite + Amɛrika sikripite + aboa + aboa anaa neekya + aaro + bɔdi + box drɔɔwen + booden + bulɛt anaa setaa + kɔnsonantaa gyamo + kɛɛrɛnsi simboo + dash anaa kɔnɛkta + digyite + akɔmfosɛm ahyɛnsodeɛ + fam aaro + fam soro aaro + Asia Apueɛ sikripite + ɛmogyi + Yuropu sikripite + ɔbaa + aduane ne nsa + fɔɔmate + fɔɔmate ne whitespace + gyeomɛtrike hyepe + Han karata + Han radikaa + hangya + Hansi (deɛ ɛmmerɛ) + Hansi (tete) + akoma + histɔrike sikripite + ideografike desc. karata + Gyapanfoɔ kana + kangya + kiikape + bɛnkum aaro + bɛnkum nifa aaro + lɛtɛnseso simboo + dwuma a anohyetoɔ da ho + barima + nkontaa simboo + Apueɛ Mfinimfini sikripite + misilaniyɔso + mɔɔden sikripite + mɔdifaya + nnwom simboo + nakya + nɔnspesine + nɔma + adeɛ + foforɔ + pɛɛde + onipa + fɔnɛtise atwerɛdeɛ + piktografo + beaeɛ + afifideɛ + pɔntuehyen + nifa aaro + saane anaa simboo + variants nketewa + simaili + simaili anaa onipa + Asia Anaafoɔ sikripite + Asia Anaafoɔapueɛ sikripite + spesine + spɔto + simboo + tɛknekaa simboo + toonu maake + akwantuo + akwantuo anaa beaeɛ + soro aaro + vokalike gyamo + wɛda + Asia Atɔeɛ sikripite + + + italike + ntrɛmu + emu duru + dintoɔ + atwerɛ + atifi asɛm + yikyerɛ + posta + akyire nkyeaeɛ + pintinn + nkyeaeɛ + nkyeaeɛ pii + emu pi mmorosoɔ + emu pi-mmorosoɔ + emu pi + emu pi fa ne fa + daasɛm + emu aba da ne fa + emu abae + emu abae mmorosoɔ + emu abae mmorosoɔ koraa + hweaa + hweaa koraa + kanea + hweaa fa ne fa + nwoma + daa + fa ne fa + tumm kakra + akokoɔduru + akokoɔduru mmorɔsoɔ + tuntum + tuntum a ɛboro so + soro-fam frahyen + atwerɛdeɛ akɛseɛ ntetemu + ligekya a ɛnyɛ ɔhyɛ + benkum-nifa frahyen + nɔma a ɛdeda mu + tete nɔma deɛ + ɔdinaafoɔ + prɔpɔɔhyen nɔma + atwerɛdeɛ akɛseɛ nkumaa + pono so nɔma + ziro a yɛapae mu + + + und ak en + informal + + Zendaya + + + Irene + Adler + + + Mary Sue + Hamish + Watson + + + Owura + Bertram Wilberforce + Bertie + Henry Robert + ∅∅∅ + Wooster + ∅∅∅ + Jr + MP + + + Sinbad + + + Käthe + Müller + + + Zäzilia + Hamish + Stöber + + + Prof. Dr. + Ada Cornelia + Neele + César Martín + von + Brühl + González Domingo + Jr + MD DDS + + diff --git a/make/data/cldr/common/main/am.xml b/make/data/cldr/common/main/am.xml index d8ed339d21c..558567ed9df 100644 --- a/make/data/cldr/common/main/am.xml +++ b/make/data/cldr/common/main/am.xml @@ -14,7 +14,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - {0}፣{1} + {0}፣ {1} + {0}፦ {1} አፋርኛ @@ -46,10 +47,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ የአልጄሪያ ዓረብኛ ናጅዲ አረብኛ አራዋክ - አሳሜዛዊ + አሳሜዝ አሱ የአሜሪካ የምልክት ቋንቋ - አስቱሪያን + አስቱሪያንኛ አቲካምከው አቫሪክ አዋድሂ @@ -71,14 +72,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ባፉት ባዳጋ ቡልጋሪኛ - ሃርያንቪ + ሃርያንቪኛ የምዕራብ ባሎቺ - ቦጁሪ + ቦጅፑሪ ቢስላምኛ ቢኮል ቢኒ ባንጃር ሲክሲካ + አኒኛ ባምባርኛ ቤንጋሊኛ ቲቤታንኛ @@ -101,7 +103,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ አትሳም ቻክማ ችችን - ካቡዋኖ + ሴብዋኖ ቺጋኛ ቻሞሮ ቺብቻ @@ -130,8 +132,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ቼክኛ ስዋምፒ ክሪ ቸርች ስላቪክ - ቹቫሽ - ወልሽ + ቹቫሽኛ + ዌልሽ ዴኒሽ ዳኮታ ዳርግዋ @@ -144,7 +146,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ዲንካ ዛርማኛ ዶግሪ - የታችኛው ሰርቢያኛ + የታችኛው ሶርቢያኛ ሴንተራል ዱሰን ዱዋላኛ ዲቬሂ @@ -176,8 +178,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ኤዎንዶ ፐርሺያኛ ዳሪ - ፉላ - ፊኒሽ + ፉላኒኛ + ፊንላንድኛ ፊሊፒንኛ ፊጂኛ ፋሮኛ @@ -190,14 +192,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ሰሜናዊ ፍሪስያን ፍሩሊያን ምዕራባዊ ፍሪሲኛ - አይሪሽ + አየርላንድኛ ጋጉዝኛ ጋን ቻይንኛ - ስኮቲሽ ጋይሊክ + የስኮትላንድ ጌይሊክ ግዕዝኛ ጅልበርትስ - ጋሊሽያዊ + ጋሊሺያንኛ ጓራኒኛ ጎሮንታሎ የጥንታዊ ግሪክ @@ -212,8 +214,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ሃዊያኛ ደቡባዊ ሃይዳ ዕብራይስጥ - ሒንዱኛ - ሂንግሊሽ + ሕንድኛ + ሕንድኛ (ላቲን) ሂሊጋይኖን ህሞንግ ክሮሽያንኛ @@ -223,7 +225,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ሀንጋሪኛ ሁፓ ሃልኮመልም - አርመናዊ + አርሜንኛ ሄሬሮ ኢንቴርሊንጓ ኢባን @@ -244,8 +246,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ሎጅባን ንጎምባ ማቻሜኛ - ጃቫኒዝ - ጆርጂያዊ + ጃቫኛ + ጆርጂያንኛ ካብይል ካቺን ጅጁ @@ -285,6 +287,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ኮሚ ኮርኒሽ ክዋክዋላ + ኩቪኛ ክይርግይዝ ላቲንኛ ላዲኖ @@ -293,22 +296,24 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ሌዝጊያን ጋንዳኛ ሊምቡርጊሽ + ሊጓሪያኛ ሊሎኤት ላኮታ + ሎምባርድኛ ሊንጋላ ላኦኛ ሉዊዚያና ክሬኦል ሎዚ ሰሜናዊ ሉሪ ሳሚያ - ሉቴንያንኛ + ሊቱዌንያኛ ሉባ-ካታንጋ ሉባ-ሉሏ ሉንዳ ሉኦ ሚዞ ሉያ - ላትቪያን + ላትቪያኛ ማዱረስ ማጋሂ ማይቲሊ @@ -334,7 +339,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ሞሲ ማራቲ ማላይ - ማልቲስ + ማልቲዝኛ ሙንዳንግ ባለብዙ ቋንቋዎች ሙስኮኪ @@ -361,7 +366,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ክዋሲዮ የኖርዌይ ናይኖርስክ ኒጊምቡን - ኖርዌጂያን + ኖርዌይኛ ኖጋይ ንኮ ደቡብ ንደቤሌ @@ -413,7 +418,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ርዋ ሳንስክሪት ሳንዳዌ - ሳክሃ + ያኩት ሳምቡሩ ሳንታሊ ንጋምባይ @@ -459,6 +464,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ኮሞሪያን ክላሲክ ኔይራ ሲሪያክ + ሲሌሲያኛ ታሚል ደቡባዊ ቱትቾን ተሉጉ @@ -493,7 +499,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ መካከለኛው አትላስ ታማዚኛ ኡድሙርት ኡይግሁር - ኡይገር ዩክሬንኛ ኡምቡንዱ ያልታወቀ ቋንቋ @@ -501,7 +506,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ኡዝቤክኛ ቫይ ቬንዳ + ቬነቲያንኛ ቪየትናምኛ + ማክሁዋኛ ቮላፑክኛ ቩንጆ ዋሎን @@ -513,6 +520,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ዉ ቻይንኛ ካልማይክ ዞሳኛ + ካንጋሪ ሶጋ ያንግቤንኛ የምባ @@ -520,7 +528,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ዮሩባዊኛ ንሄንጋቱ ካንቶኒዝ - ቻይና፤ ካንቶንኛ + ካንቶኒዝ ቻይንኛ ዡዋንግኛ ብሊስይምቦልስ መደበኛ የሞሮኮ ታማዚግት @@ -546,7 +554,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -559,7 +567,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -569,12 +577,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + - + @@ -588,14 +596,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + - - + + @@ -605,7 +613,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -615,15 +623,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + ዓለም አፍሪካ ሰሜን አሜሪካ ደቡብ አሜሪካ - ኦሺንያ - ምስራቃዊ አፍሪካ + ኦሺያንያ + ምዕራባዊ አፍሪካ መካከለኛው አሜሪካ ምስራቅ አፍሪካ ሰሜናዊ አፍሪካ @@ -633,15 +641,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ሰሜናዊ አሜሪካ ካሪቢያን ምስራቃዊ እስያ - ደቡባዊ እሲያ - ደቡብ ምስራቅ እሲያ + ደቡባዊ እስያ + ደቡብ ምስራቅ እስያ ደቡባዊ አውሮፓ አውስትራሌዥያ ሜላኔዥያ የማይክሮኔዥያን ክልል ፖሊኔዥያ - እሲያ - መካከለኛው እሲያ + እስያ + መካከለኛው እስያ ምዕራባዊ እስያ አውሮፓ ምስራቅ አውሮፓ @@ -653,7 +661,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ አንዶራ የተባበሩት ዓረብ ኤምሬትስ አፍጋኒስታን - አንቲጓ እና ባሩዳ + አንቲጓ እና ባርቡዳ አንጉይላ አልባኒያ አርሜኒያ @@ -671,11 +679,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ባንግላዲሽ ቤልጄም ቡርኪና ፋሶ - ቡልጌሪያ + ቡልጋሪያ ባህሬን ብሩንዲ ቤኒን - ቅዱስ በርቴሎሜ + ሴንት ባርቴሌሚ ቤርሙዳ ብሩኒ ቦሊቪያ @@ -712,7 +720,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ቼቺያ ቼክ ሪፑብሊክ ጀርመን - ዲዬጎ ጋርሺያ + ዲዬጎ ጋርሲያ ጂቡቲ ዴንማርክ ዶሚኒካ @@ -727,16 +735,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ስፔን ኢትዮጵያ የአውሮፓ ህብረት - የአውሮፓ ዞን + የዩሮ ዞን ፊንላንድ ፊጂ የፎክላንድ ደሴቶች ፎክላንድ ደሴቶች (ኢስላስ ማልቪናስ) - ሚክሮኔዢያ + ማይክሮኔዢያ የፋሮ ደሴቶች ፈረንሳይ ጋቦን ዩናይትድ ኪንግደም + ዩኬ ግሬናዳ ጆርጂያ የፈረንሳይ ጉዊአና @@ -756,7 +765,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ጉያና ሆንግ ኮንግ ልዩ የአስተዳደር ክልል ቻይና ሆንግ ኮንግ - ኽርድ ደሴቶችና ማክዶናልድ ደሴቶች + ኽርድ ኣና ማክዶናልድ ደሴቶች ሆንዱራስ ክሮኤሽያ ሀይቲ @@ -773,7 +782,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ኢራን አይስላንድ ጣሊያን - ጀርሲ + ጀርዚ ጃማይካ ጆርዳን ጃፓን @@ -785,7 +794,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ቅዱስ ኪትስ እና ኔቪስ ሰሜን ኮሪያ ደቡብ ኮሪያ - ክዌት + ኩዌት ካይማን ደሴቶች ካዛኪስታን ላኦስ @@ -805,7 +814,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ሞንተኔግሮ ሴንት ማርቲን ማዳጋስካር - ማርሻል አይላንድ + ማርሻል ደሴቶች ሰሜን መቄዶንያ ማሊ ማይናማር(በርማ) @@ -833,8 +842,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ኖርዌይ ኔፓል ናኡሩ - ኒኡይ + ኒዌ ኒው ዚላንድ + አዎቴአሮአ ኒው ዚላንድ ኦማን ፓናማ ፔሩ @@ -843,23 +853,23 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ፊሊፒንስ ፓኪስታን ፖላንድ - ቅዱስ ፒዬር እና ሚኩኤሎን + ሴንት ፒዬር እና ሚኩኤሎን ፒትካኢርን ደሴቶች - ፖርታ ሪኮ + ፑዌርቶ ሪኮ የፍልስጤም ግዛት ፍልስጥኤም ፖርቱጋል ፓላው ፓራጓይ ኳታር - አውትላይንግ ኦሽንያ + የኦሺያንያ ዳርቻ ሪዩኒየን ሮሜኒያ ሰርብያ ሩስያ ሩዋንዳ ሳውድአረቢያ - ሰሎሞን ደሴት + ሰለሞን ደሴቶች ሲሼልስ ሱዳን ስዊድን @@ -871,16 +881,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ሴራሊዮን ሳን ማሪኖ ሴኔጋል - ሱማሌ + ሶማሊያ ሱሪናም ደቡብ ሱዳን ሳኦ ቶሜ እና ፕሪንሲፔ ኤል ሳልቫዶር ሲንት ማርተን ሶሪያ - ሱዋዚላንድ + ኤስዋቲኒ ስዋዚላንድ - ትሪስታን ዲ ኩንሃ + ትሪስታን ዳ ኩንሃ የቱርኮችና የካኢኮስ ደሴቶች ቻድ የፈረንሳይ ደቡባዊ ግዛቶች @@ -907,7 +917,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ኡራጓይ ኡዝቤኪስታን ቫቲካን ከተማ - ቅዱስ ቪንሴንት እና ግሬናዲንስ + ሴንት ቪንሴንት እና ግሬናዲንስ ቬንዙዌላ የእንግሊዝ ቨርጂን ደሴቶች የአሜሪካ ቨርጂን ደሴቶች @@ -933,8 +943,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ የቀን አቆጣጠር የምንዛሪ ቅርጸት - የምልክቶች ድርደራ ችላ በለው - የኋሊዮሽ የፊደል ጭረት ድርደራ + የምልክቶችን ድርደራ ችላ በል + የኋሊዮሽ የትእምርት ድርደራ የአቢይ/ንዑስ ሆሄ ቅደም ተከተል የመልከፊደል ትብ ድርደራ አቀማመጥ ደርድር @@ -987,7 +997,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ፒንይን የድርድር ቅደም ተከተል ለጠቅላላ ጉዳይ ፍለጋ በሃንጉል የመጀመሪያ ተነባቢ ፈልግ - መደበኛ + መደበኛ የድርድር ቅደም ተከተል የበትር ድርድር ቅደም ተከተል ባህላዊ የድርድር ቅደም ተከተል የመሰረታዊ በትር ድርድር ቅደም ተከተል @@ -1010,22 +1020,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ላላ ያለ መስመር መስበሪያ ቅጥ መደበኛ መስመር መስበሪያ ቅጥ ጠበቅ ያለ መስመር መስበሪያ ቅጥ - ቢ ጂ ኤን + ዩኤስ ቢጂኤን ትራንስሊትሬሽን ዩኤን ጂኢጂኤን ትራንስሊትሬሽን - የልኬት ስርዓት + ሜትሪክ ስርዓት ኢምፔሪያል የመለኪያ ስርዓት የአሜሪካ መለኪያ ስርዓት የአረቢክ-ኢንዲክ አሃዞች የተራዘሙ የአረቢክ-ኢንዲክ አሃዞች የአርመንኛ ቁጥሮች - የአሜሪካን ንዑስ ሆሄ አሃዞች + የአሜሪካ ንዑስ ሆሄ አሃዞች የቤንጋሊ አሃዞች - ቻክማ አሃዝ + የቻክማ አሃዞች የዴቫንጋሪ አሃዞች የኢትዮጵያ ቁጥሮች የፋይናንስ ቁጥሮች የሙሉ ወርድ አሃዞች - የጆርጂያን ቁጥሮች + የጆርጂያ ቁጥሮች የግሪክ ቁጥሮች የግሪክ ንዑስ ሆሄ ቁጥሮች የጉጃራቲ አሃዞች @@ -1036,27 +1046,27 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ የባህላዊ ቻይንኛ ቁጥሮች የባህላዊ ቻይንኛ የገንዘብ ነክ ቁጥሮች የእብራይስጥ ቁጥሮች - ጃቫኒዝ አሃዞች + የጃቫ አሃዞች የጃፓንኛ ቁጥሮች የጃፓንኛ የገንዘብ ነክ ቁጥሮች የክህመር አሃዞች የካንአዳ አሃዞች የላኦ አሃዞች - የምስራቃዊ አሃዞች + ምዕራባዊ አሃዞች የማላያላምኛ አሃዞች የሞንጎልኛ አሃዞች ሜቲ ማየክ አሃዞች የማያንማር አሃዞች - ትውልድ አሃዞች + ሀገር በቀል አሃዞች ኦይ ቺኪ አሃዞች - የኦሪያኛ አሃዞች + የኦዲያ አሃዞች የሮማን ቁጥሮች የሮማን ንዑስ ሆሄ ቁጥሮች ባህላዊ የታሚል ቁጥሮች የታሚል አሃዞች የተልጉ አሃዞች የታይ አሃዞች - የቲቤታን አሃዞች + የቲቤት አሃዞች ተለምዷዊ ቁጥሮች የቫይ አሃዞች @@ -1065,24 +1075,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ዩኬ ዩ ኤስ + + ቋንቋ፦ {0} + ፊደል፦ {0} + ክልል፦ {0} + [ሀ ሁ ሂ ሃ ሄ ህ ሆ ለ ሉ ሊ ላ ሌ ል ሎ ሏ ሐ ሑ ሒ ሓ ሔ ሕ ሖ ሗ መ ሙ ሚ ማ ሜ ም ሞ ሟ ሠ ሡ ሢ ሣ ሤ ሥ ሦ ሧ ረ ሩ ሪ ራ ሬ ር ሮ ሯ ሰ ሱ ሲ ሳ ሴ ስ ሶ ሷ ሸ ሹ ሺ ሻ ሼ ሽ ሾ ሿ ቀ ቁ ቂ ቃ ቄ ቅ ቆ ቈ ቊ ቋ ቌ ቍ በ ቡ ቢ ባ ቤ ብ ቦ ቧ ቨ ቩ ቪ ቫ ቬ ቭ ቮ ቯ ተ ቱ ቲ ታ ቴ ት ቶ ቷ ቸ ቹ ቺ ቻ ቼ ች ቾ ቿ ኀ ኁ ኂ ኃ ኄ ኅ ኆ ኈ ኊ ኋ ኌ ኍ ነ ኑ ኒ ና ኔ ን ኖ ኗ ኘ ኙ ኚ ኛ ኜ ኝ ኞ ኟ አ ኡ ኢ ኣ ኤ እ ኦ ኧ ከ ኩ ኪ ካ ኬ ክ ኮ ኰ ኲ ኳ ኴ ኵ ኸ ኹ ኺ ኻ ኼ ኽ ኾ ወ ዉ ዊ ዋ ዌ ው ዎ ዐ ዑ ዒ ዓ ዔ ዕ ዖ ዘ ዙ ዚ ዛ ዜ ዝ ዞ ዟ ዠ ዡ ዢ ዣ ዤ ዥ ዦ ዧ የ ዩ ዪ ያ ዬ ይ ዮ ደ ዱ ዲ ዳ ዴ ድ ዶ ዷ ጀ ጁ ጂ ጃ ጄ ጅ ጆ ጇ ገ ጉ ጊ ጋ ጌ ግ ጎ ጐ ጒ ጓ ጔ ጕ ጠ ጡ ጢ ጣ ጤ ጥ ጦ ጧ ጨ ጩ ጪ ጫ ጬ ጭ ጮ ጯ ጰ ጱ ጲ ጳ ጴ ጵ ጶ ጷ ጸ ጹ ጺ ጻ ጼ ጽ ጾ ጿ ፀ ፁ ፂ ፃ ፄ ፅ ፆ ፈ ፉ ፊ ፋ ፌ ፍ ፎ ፏ ፐ ፑ ፒ ፓ ፔ ፕ ፖ ፗ] [ሀ ለ ሐ መ ሠ ረ ሰ ሸ ቀ ቈ በ ቨ ተ ቸ ኀ ኈ ነ ኘ አ ከ ኰ ኸ ወ ዐ ዘ ዠ የ ደ ጀ ገ ጐ ጠ ጨ ጰ ጸ ፀ ፈ ፐ] [‐ – , ፡ ፣ ፤ ፥ ፦ ! ? . ። ‹ › « » ( ) \[ \]] - - [\: ∶] - - - [£ ₤] - - - [\--﹣ ‑ ‒ −⁻₋ ➖] - [,,﹐︐ ، ٫ 、﹑、︑] - - - [,,﹐︐ ٫] - « @@ -1406,7 +1408,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ጥዋት - ከሰዓት በኋላ + ከሰዓት ምሽት ሌሊት @@ -1414,7 +1416,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ጥዋት - ከሰዓት በኋላ + ከሰዓት ማታ ሌሊት @@ -1429,13 +1431,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ዓ/ዓ ዓ/ም - መዓ - y MMMM d, EEEE + EEEE d MMMM y @@ -1502,26 +1503,38 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + B h + B h:mm + B h:mm:ss + E B h:mm + E B h:mm:ss E d + E a h:mm + E a h:mm:ss y G - M/d/y GGGGG + d/M/y GGGGG MMM y G + MMM d y G + E MMM d y G + a h H - M/d - E፣ M/d + a h:mm + a h:mm:ss + d/M + E፣ d/M E፣ MMM d E፣ MMMM d - ሳምንት W የ MMMM - ሳምንት W የ MMMM + የMMMM Wኛ ሳምንት + የMMMM Wኛ ሳምንት M/y d/M/y E፣ d/M/y MMM y - d MMM y + MMM d y E፣ MMM d y MMMM y - QQQ y - QQQQ y + የY wኛ ሳምንት + የY wኛ ሳምንት {0} – {1} @@ -1533,7 +1546,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ GGGGG d/M/y – d/M/y GGGGG d/M/y – GGGGG d/M/y - GGGGG d/M/y – d/M/y GGGGG d/M/y – d/M/y @@ -1978,9 +1990,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ +HHmm;-HHmm ጂ ኤም ቲ{0} ጂ ኤም ቲ - {0} ጊዜ + {0} ሰዓት {0} የቀን ብርሃን ሰዓት {0} መደበኛ ሰዓት + + ሆኖሉሉ + የተቀነባበረ ሁለገብ ሰዓት @@ -2718,9 +2733,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ኡላአንባአታር - - ቾይባልሳን - ማካኡ @@ -3120,9 +3132,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ኖሜ - - ሆኖሉሉ - አንኮራጅ @@ -3474,13 +3483,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ የቻይና የቀን ብርሃን ሰዓት - - - የቾይባልሳ ሰዓት አቆጣጠር - የቾይባልሳን መደበኛ የሰዓት አቆጣጠር - የቾይባልሳን የበጋ የሰዓት አቆጣጠር - - የገና ደሴት ሰዓት @@ -3726,6 +3728,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ የፔትሮፓቭሎስኪ - ካምቻትስኪ የበጋ ሰዓት አቆጣጠር + + + ካዛኪስታን ሰዓት + + የምስራቅ ካዛኪስታን ሰዓት @@ -4153,6 +4160,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ethi + + በቁጥር ሊገለጽ የማይችል + @@ -4275,8 +4285,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ 000 ት - {0} {1} - {0} {1} @@ -4373,7 +4381,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ የቻይና ዩዋን (የውጭ ምንዛሪ) - የቻይና ዩዋን የቻይና የን @@ -4854,6 +4861,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ኤክሳ {0} + + ዜታ {0} + + + ዮታ {0} + + + ሮና {0} + + + ዮቢ {0} + {0} በ{1} @@ -4872,15 +4891,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ጂ-ኃይል - {0} rev + ኡደት + {0} ኡደት {0} ኡደት - {0} rev + {0} ኡደት {0} ኡደቶች - {0} rad + ራዲ + {0} ራዲ {0} ራዲያን - {0} rad + {0} ራዲ {0} ራዲያኖች @@ -4901,6 +4922,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ካሬ ሜትር {0} ካሬ ሜትር + + ስኴር ያርድ + {0} ስኴር ያርድ + {0} ስኴር ያርድ + ጋሻ @@ -5005,9 +5031,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ማይክሮሰከንድ - {0} A + አምፒር + {0} አምፒር {0} አምፒር - {0} A + {0} አምፒር {0} አምፒሮች @@ -5017,13 +5044,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ohms - {0} V + ቮልት + {0} ቮልት {0} ቮልት - {0} V + {0} ቮልት {0} ቮልቶች - - cal + + ኪሎ ካሎሪ + {0} ኪሎ ካሎሪ + {0} ኪሎ ካሎሪ + {0} ኪሎ ካሎሪ + {0} ኪሎ ካሎሪ + + + ኪጁ + {0} ኪጁ + {0} ኪጁ + {0} ኪጁ + {0} ኪጁ + + + ጁልስ + {0} ጁልስ + {0} ጁልስ + {0} ጁልስ + {0} ጁልስ {0} ኒ @@ -5038,11 +5084,33 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ኪሎዋት-ሰዓታት በየ 100 ኪሎሜትሮች {0} ኪሎዋት-ሰዓታት በየ 100 ኪሎሜትሮች + + ጊጋኸርዝ + {0} ጊጋኸርዝ + {0} ጊጋኸርዝ + {0} ጊጋኸርዝ + {0} ጊጋኸርዝ + + + ሜጋኸርዝ + {0} ሜጋኸርዝ + {0} ሜጋኸርዝ + {0} ሜጋኸርዝ + {0} ሜጋኸርዝ + + + ኪሎኸርዝ + {0} ኪሎኸርዝ + {0} ኪሎኸርዝ + {0} ኪሎኸርዝ + {0} ኪሎኸርዝ + - {0} Hz - {0} hertz - {0} Hz - {0} hertz + ኸርዝ + {0} ኸርዝ + {0} ኸርዝ + {0} ኸርዝ + {0} ኸርዝ ታይፖግራፊክ em @@ -5134,10 +5202,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ግራም {0} ግራም + + ሚግ + {0} ሚግ + {0} ሚግ + {0} ሚግ + {0} ሚግ + - {0} μg + ማግ + {0} ማግ {0} ማይክሮ ግራም - {0} μg + {0} ማግ {0} ማይክሮ ግራም @@ -5148,8 +5224,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ካራቶች - {0} ዳተንስ - {0} ዳተንስ + ዳልተንስ + {0} ዳልተንስ + {0} ዳልተንስ {0} ኤርዝማስስ @@ -5159,6 +5236,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ሶላር ማስስ {0} ሶላር ማስስ + + ጊጋ ዋት + {0} ጊዋ + {0} ጊዋ + {0} ጊዋ + {0} ጊዋ + + + ሜጋ ዋት + {0} ሜዋ + {0} ሜዋ + {0} ሜዋ + {0} ሜዋ + {0} ኪሎዋት {0} ኪሎዋት @@ -5171,6 +5262,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ዋት {0} ዋት + + ሚሊ ዋት + {0} ሚዋ + {0} ሚዋ + {0} ሚዋ + {0} ሚዋ + {0} የፈረስ ጉልበት {0} የፈረስ ጉልበት @@ -5218,9 +5316,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ዲግሪ ፋራንሃይት - {0} K + + {0} ኬ {0} ኬልቪን - {0} K + {0} ኬ {0} ኬልቪኖች @@ -5233,16 +5332,23 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ኩቢክ ማይል {0} ኩቢክ ማይል + + ኪዩቢክ ያርድ + {0} ኪዩቢክ ያርድ + {0} ኪዩቢክ ያርድ + - {0} ML + ሜጋሊትር + {0} ሜሊ {0} ሜሊ - {0} ML + {0} ሜሊ {0} ሜሊ - {0} hL + ሄክቶሊትር + {0} ሄሊ {0} ሄሊ - {0} hL + {0} ሄሊ {0} ሄሊ @@ -5271,15 +5377,56 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} mpt {0} ሜትሪክ ፒንቶች + + ጋሎን + {0}/ጋሎን + {0}/ጋሎን + {0}/ጋሎን + + + ኳርትስ + {0} ኳርትስ + {0} ኳርትስ + + + ኩባያ + {0} ኩባያ + {0} ኩባያ + Imp. fluid ኦንስስ {0} Imp. fluid ኦንስስ {0} Imp. fluid ኦንስስ + + የሻይ ማንኪያ + {0} የሻይ ማንኪያ + {0} የሻይ ማንኪያ + + + የሻይ ማንኪያዎች + {0} የሻይ ማንኪያዎች + {0} የሻይ ማንኪያዎች + {0} በርሜል {0} በርሜሎች + + ብርሃን + {0} ብርሃን + {0} ብርሃን + {0} ብርሃን + {0} ብርሃን + + + ለሊት + {0}/ለሊት + {0}/ለሊት + {0}/ለሊት + {0}/ለሊት + {0}/ለሊት + ዓቢይ አቅጣጫ @@ -5294,6 +5441,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ሚ{0} + + ማይክሮ{0} + ና{0} @@ -5333,6 +5483,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ፔታ {0} + + ዜታ {0} + + + ዮታ {0} + + + ሮና {0} + {0} ኪቢ @@ -5351,6 +5510,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ዜቢ + + ዮቢ {0} + ጂ-ኃይል {0} ጂ @@ -5361,6 +5523,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ሜ/ሰ² {0} ሜ/ሰ² + + ኡደት + {0} ኡደት + {0} ኡደት + + + ራዲ + {0} ራዲ + {0} ራዲ + ዲግሪ {0}°ዲግሪ @@ -5410,6 +5582,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ኤክር {0} ኤክር + + ስኴር ያርድ + {0} ስኴር ያርድ + {0} ስኴር ያርድ + ካሬ ጫማ {0} ካሬ ጫማ @@ -5585,6 +5762,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ናኖሰከንድ {0} ናኖሰከንድ + + አምፒር + {0} አምፒር + {0} አምፒር + + + ቮልት + {0} ቮልት + {0} ቮልት + + + ኪሎ ካሎሪ + {0} ኪሎ ካሎሪ + {0} ኪሎ ካሎሪ + ካሎሪ {0} ካሎሪ @@ -5595,6 +5787,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ካሎሪ {0} ካሎሪ + + ኪጁ + {0} ኪጁ + {0} ኪጁ + + + ጁልስ + {0} ጁልስ + {0} ጁልስ + ኤቮ {0} ኤቮ @@ -5605,6 +5807,26 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ኒ {0} ኒ + + ጊጋኸርዝ + {0} ጊጋኸርዝ + {0} ጊጋኸርዝ + + + ሜጋኸርዝ + {0} ሜጋኸርዝ + {0} ሜጋኸርዝ + + + ኪሎኸርዝ + {0} ኪሎኸርዝ + {0} ኪሎኸርዝ + + + ኸርዝ + {0} ኸርዝ + {0} ኸርዝ + ፒክስል {0} ፒክስል @@ -5760,6 +5982,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ግ {0}/ግራም + + ሚግ + {0} ሚግ + {0} ሚግ + + + ማግ + {0} ማግ + {0} ማግ + ቶን {0} ቶን @@ -5783,7 +6015,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}/አውንስ - ዳተንስ + ዳልተንስ + {0} ዳልተንስ + {0} ዳልተንስ ኤርዝማስስ @@ -5796,6 +6030,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ጥራ ጥሬ {0} ጥራ ጥሬ + + ጊጋ ዋት + {0} ጊዋ + {0} ጊዋ + + + ሜዋ + {0} ሜዋ + {0} ሜዋ + ኪሎዋት {0} ኪዋ @@ -5806,6 +6050,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ዋ {0} ዋ + + ሚዋ + {0} ሚዋ + {0} ሚዋ + የፈረስ ጉልበት {0} የፈጉ @@ -5876,6 +6125,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}°ፋ {0}°ፋ + + + {0} ኬ + {0} ኬ + ኒ.ሜ {0} ኒ.ሜ @@ -5903,6 +6157,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ማይል³ {0} ማይል³ + + ኪዩቢክ ያርድ + {0} ኪዩቢክ ያርድ + {0} ኪዩቢክ ያርድ + ጫማ³ {0} ጫማ³ @@ -5913,6 +6172,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ኢንች³ {0} ኢንች³ + + ሜጋሊትር + {0} ሜሊ + {0} ሜሊ + + + ሄሊ + {0} ሄሊ + {0} ሄሊ + ሊትር {0} ሊ @@ -5945,16 +6214,36 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ዳውላ - gal - {0} gal - {0} gal - {0}/gal + ጋሎን + {0}/ጋሎን + {0} ጋሎን + {0}/ጋሎን + + + ኳርትስ + {0} ኳርትስ + {0} ኳርትስ + + + ኩባያ + {0} ኩባያ + {0} ኩባያ fl oz {0} fl oz {0} fl oz + + የሻይ ማንኪያ + {0} የሻይ ማንኪያ + {0} የሻይ ማንኪያ + + + የሻይ ማንኪያዎች + {0} የሻይ ማንኪያዎች + {0} የሻይ ማንኪያዎች + በርሜል {0} በርሜል @@ -5995,6 +6284,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} የፈሳሽ መለኪያ {0} የፈሳሽ መለኪያ + + ብርሃን + {0} ብርሃን + {0} ብርሃን + + + ለሊቶች + {0} ለሊት + {0} ለሊት + {0}/ለሊት + አቅጣጫ {0}ምስ @@ -6004,6 +6304,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + ማይክሮ{0} + + + ዜታ {0} + + + ዮታ {0} + + + ሮና {0} + + + ዮቢ {0} + ኡደ {0} ኡደ @@ -6030,6 +6345,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ማይል² {0} ማይል² + + {0} ስኴር ያርድ + {0} ስኴር ያርድ + {0} ጫማ² {0} ጫማ² @@ -6084,6 +6403,51 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ሰ {0} ሰ + + አምፒር + {0} አምፒር + {0} አምፒር + + + ቮልት + {0} ቮልት + {0} ቮልት + + + ኪሎ ካሎሪ + {0} ኪሎ ካሎሪ + {0} ኪሎ ካሎሪ + + + ኪጁ + {0} ኪጁ + {0} ኪጁ + + + ጁልስ + {0} ጁልስ + {0} ጁልስ + + + ጊጋኸርዝ + {0} ጊጋኸርዝ + {0} ጊጋኸርዝ + + + ሜጋኸርዝ + {0} ሜጋኸርዝ + {0} ሜጋኸርዝ + + + ኪሎኸርዝ + {0} ኪሎኸርዝ + {0} ኪሎኸርዝ + + + ኸርዝ + {0} ኸርዝ + {0} ኸርዝ + {0} ሜፒ {0} ሜፒ @@ -6101,9 +6465,34 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ሚሊግራም {0} ሚሊግራም + + ማግ + {0} ማግ + {0} ማግ + ካራት + + ዳልተንስ + {0} ዳልተንስ + {0} ዳልተንስ + + + ጊዋ + {0} ጊዋ + {0} ጊዋ + + + ሜዋ + {0} ሜዋ + {0} ሜዋ + + + ሚዋ + {0} ሚዋ + {0} ሚዋ + {0} የፈረስ ኃይል {0} የፈረስ ኃይል @@ -6137,11 +6526,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ኬ {0} ኬ + + ኪዩቢክ ያርድ + {0} ኪዩቢክ ያርድ + {0} ኪዩቢክ ያርድ + ሜጋሊትር {0} ሜጋሊትር {0} ሜጋሊትር + + ሄሊ + {0} ሄሊ + {0} ሄሊ + {0} ሚሊ {0} ሚሊ @@ -6150,11 +6549,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ኤጫ {0} ኤጫ + + ጋሎን + {0} ጋሎን + {0} ጋሎን + {0}/ጋሎን + + + ኳርትስ + {0} ኳርትስ + {0} ኳርትስ + ኩባያ {0} ኩባያ {0} ኩባያ + + የሻይ ማንኪያ + {0} የሻይ ማንኪያ + {0} የሻይ ማንኪያ + + + የሻይ ማንኪያዎች + {0} የሻይ ማንኪያዎች + {0} የሻይ ማንኪያዎች + {0} ክመ {0} ክመ @@ -6163,31 +6583,47 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ፈመ {0} ፈመ + + ብርሃን + {0} ብርሃን + {0} ብርሃን + + + ለሊቶች + {0} ለሊት + {0} ለሊት + {0}/ለሊት + {0}፣ {1} {0}፣ {1} - {0}፣ እና {1} + {0} እና {1} {0} እና {1} {0}፣ {1} {0}፣ {1} - {0}፣ ወይም {1} + {0} ወይም {1} {0} ወይም {1} - - {0}, እና {1} + + {0} ወይም {1} - - {0} {1} - {0} {1} + + {0} ወይም {1} - - {0}፣ {1} - {0}፣ {1} + + {0} እና {1} + + + {0} እና {1} + + + {0} እና {1} + {0} እና {1} @@ -6368,29 +6804,28 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ und am - ko vi yue zh ዜንዳያ - ኢሬን + አይሪን አድለር - ጆን + ሜሪ ሱ ሃሚሽ ዋትሰን አቶ - በርታም ዊልበርፎርስ + በርትራም ዊልበርፎርስ በርቲ ሄነሪ ሮበርት ∅∅∅ ዉስተር ∅∅∅ - ተማሪ - ኤምፒ + ልጅ + የፓርላማ አባል ሲንባድ @@ -6400,7 +6835,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ሙለር - ዛዚላ + ዛዚሊያ ሃሚሽ ስቶበር @@ -6408,12 +6843,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ፕ/ር ዶ/ር አዳ ኮርኔሊያ ኒል - ኢቫ ሶፊያ - ቫን ደን + ሴዛር ማርቲን + ቮን ብሩህል ጎንዛሌዝ ዶሚንጎ - ተማሪ - ሚ/ዶ ዶ/ር + ልጅ + ዶ/ር የጥርስ ዶ/ር diff --git a/make/data/cldr/common/main/an.xml b/make/data/cldr/common/main/an.xml index 58d722c1821..5786203541a 100644 --- a/make/data/cldr/common/main/an.xml +++ b/make/data/cldr/common/main/an.xml @@ -879,8 +879,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic E, d/M/y – E, d/M/y - E, d/M/y - E, d/M/Y – E, d/M/Y + E, d/M/y – E, d/M/y + E, d/M/y – E, d/M/y LLL–LLL y diff --git a/make/data/cldr/common/main/ar.xml b/make/data/cldr/common/main/ar.xml index 9d980918278..105a81f17d2 100644 --- a/make/data/cldr/common/main/ar.xml +++ b/make/data/cldr/common/main/ar.xml @@ -74,6 +74,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ البينية لغة الكوم السيكسيكية + الآنية البامبارا البنغالية التبتية @@ -132,7 +133,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ تيتا الألمانية الألمانية النمساوية - الألمانية العليا السويسرية الديلوير السلافية الدوجريب @@ -155,11 +155,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ اليونانية الإمايت الإنجليزية - الإنجليزية الأسترالية - الإنجليزية الكندية - الإنجليزية البريطانية الإنجليزية المملكة المتحدة - الإنجليزية الأمريكية الإنجليزية الولايات المتحدة الإنجليزية الوسطى الإسبرانتو @@ -181,8 +177,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ الفاروية الفون الفرنسية - الفرنسية الكندية - الفرنسية السويسرية الفرنسية الكاجونية الفرنسية الوسطى الفرنسية القديمة @@ -302,6 +296,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ الكومي الكورنية الكواكوالا + الكوفية القيرغيزية اللاتينية اللادينو @@ -312,9 +307,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ الليزجية الغاندا الليمبورغية + الليغورية الليلويتية لاكوتا - اللومبردية + اللومبردية اللينجالا اللاوية منغولى @@ -384,7 +380,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ النياس النيوي الهولندية - الفلمنكية كواسيو النرويجية نينورسك لغة النجيمبون @@ -508,6 +503,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ القمرية سريانية تقليدية السريانية + السيليزية التاميلية التوتشون الجنوبية التيلوغوية @@ -557,7 +553,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ الأوزبكية الفاي الفيندا + البندقية الفيتنامية + الماكوا لغة الفولابوك الفوتيك الفونجو @@ -571,6 +569,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ الوو الصينية الكالميك الخوسا + كانغري السوغا الياو اليابيز @@ -1831,22 +1830,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ E، d‏/M‏/y – E، d‏/M‏/y - MMM – MMM، y - MMM، y – MMM، y + MMM – MMM y + MMM y – MMM y - d–d MMM، y - d MMM – d MMM، y - d MMM، y – d MMM، y + d–d MMM y + d MMM – d MMM y + d MMM y – d MMM y E، d – E، d MMM، y E، d MMM – E، d MMM، y - E، d MMM، y – E، d MMM، y + E، d MMM y – E، d MMM y - MMMM – MMMM، y - MMMM، y – MMMM، y + MMMM – MMMM y + MMMM y – MMMM y @@ -2816,6 +2815,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ توقيت {0} توقيت {0} الصيفي توقيت {0} الرسمي + + هونولولو + التوقيت العالمي المنسق @@ -3553,9 +3555,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ آلانباتار - - تشوبالسان - ماكاو @@ -3955,9 +3954,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ نوم - - هونولولو - أنشوراج @@ -4309,13 +4305,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ توقيت الصين الصيفي - - - توقيت شويبالسان - توقيت شويبالسان الرسمي - التوقيت الصيفي لشويبالسان - - توقيت جزر الكريسماس @@ -4569,6 +4558,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ توقيت بيتروبافلوفسك-كامتشاتسكي الصيفي + + + توقيت كازاخستان + + توقيت شرق كازاخستان @@ -4998,14 +4992,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - arab + latn latn arab أس - ليس رقم + ليس رقمًا + + + ليس رقمًا ‎%‎ @@ -5232,12 +5229,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ¤¤ - {0} {1} - {0} {1} - {0} {1} - {0} {1} - {0} {1} - {0} {1} @@ -6471,13 +6462,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} قيراط - مغم/ديسيبل - {0} مغم/ديسيبل - {0} مغم/ديسيبل - {0} مغم/ديسيبل - {0} مغم/ديسيبل - {0} مغم/ديسيبل - {0} مغم/ديسيبل + masculine + مغم/ديسيلتر + {0} مغم/ديسيل + مغم/ديسيلتر + مغم/ديسيلتر + {0} مغم/ديسيلتر + {0} مغم/ديسيلتر + {0} مغم/ديسيلتر masculine @@ -6636,7 +6628,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} في السنة - masculine + masculine أرباع {0} ربع سنوي ربع سنوي @@ -6743,6 +6735,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine + masculine كيلو سعرة {0} كيلو سعرة {0} كيلو سعرة @@ -6890,7 +6883,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} بكسل لكل بوصة - نقطة لكل سنتيمتر + نقطة لكل سنتيمتر {0} نقطة لكل سنتيمتر {0} نقطة لكل سنتيمتر نقطتان لكل سنتيمتر @@ -6999,6 +6992,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine + + feminine + نصف قطر شمسي {0} نصف قطر شمسي @@ -7140,6 +7136,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} قوة حصان + masculine مليمتر زئبقي {0} مليمتر زئبقي {0} مليمتر زئبقي @@ -7462,6 +7459,27 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} رشّة {0} رشّة + + masculine + جزء بالمليار + {0} جزء بالمليار + {0} جزء بالمليار + جزآن بالمليار + {0} أجزاء بالمليار + {0} جزءًا بالمليار + {0} جزء بالمليار + + + feminine + ليالي + {0} ليلة + ليلة + ليلتان + {0} ليالٍ + {0} ليلةً + {0} ليلة + {0} في الليلة + اتجاه أساسي {0} شرقًا @@ -7735,13 +7753,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} قيراط - مغم/ديسبل - {0} مغم/ديسبل - {0} مغم/ديسبل - {0} مغم/ديسبل - {0} مغم/ديسبل - {0} مغم/ديسبل - {0} مغم/ديسبل + مغم/ديسيل + {0} مغم/ديسيل + {0} مغم/ديسيل + {0} مغم/ديسيل + {0} مغم/ديسيل + {0} مغم/ديسيل + {0} مغم/ديسيل م.مول/ل @@ -8283,19 +8301,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} بكسل/بوصة - نقطة/سم + نقطة/سم {0} نقطة/سم {0} نقطة/سم - {0} نقطتان/سم + {0} نقطة/سم {0} نقاط/سم {0} نقطة/سم {0} نقطة/سم - نقطة لكل بوصة + نقطة/بوصة {0} نقطة/بوصة {0} نقطة/بوصة - نقطة/بوصة + {0} نقطة/بوصة {0} نقاط/بوصة {0} نقطة/بوصة {0} نقطة/بوصة @@ -9223,6 +9241,25 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ربع غالون إمبراطوري {0} ربع غالون إمبراطوري + + جزء/مليار + {0} جزء/مليار + {0} جزء/مليار + جزآن/مليار + {0} أجزاء/مليار + {0} جزءًا/مليار + {0} جزء/مليار + + + ليلة + {0} ليلة + ليلة + ليلتان + {0} ليالٍ + {0} ليلةً + {0} ليلة + {0}/ل + اتجاه {0} شرق @@ -9271,13 +9308,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ث قوسية - مغ/ديسبل - {0} مغ/ديسبل - {0} مغ/ديسبل - {0} مغ/ديسبل - {0} مغ/ديسبل - {0} مغ/ديسبل - {0} مغ/ديسبل + مغ/ديسيل + {0} مغ/ديسيل + {0} مغ/ديسيل + {0} مغ/ديسيل + {0} مغ/ديسيل + {0} مغ/ديسيل + {0} مغ/ديسيل {0} عنصر @@ -9469,7 +9506,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} بك/بوصة - ن/سم + ن/سم {0} ن/سم {0} ن/سم {0} ن/سم @@ -9478,6 +9515,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ن/سم + ن/بوصة {0} ن/بوصة {0} ن/بوصة {0} ن/بوصة @@ -9643,6 +9681,25 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} قدح {0} قدح + + جزء/مليار + {0} جزء/مليار + {0} جزء/مليار + جزآن/مليار + {0} أجزاء/مليار + {0} جزءًا/مليار + {0} جزء/مليار + + + ليلة + {0} ل + {0} ل + {0} ل + {0} ل + {0} ل + {0} ل + {0}/ل + diff --git a/make/data/cldr/common/main/as.xml b/make/data/cldr/common/main/as.xml index a86c2f45454..b3696f2ce3a 100644 --- a/make/data/cldr/common/main/as.xml +++ b/make/data/cldr/common/main/as.xml @@ -55,6 +55,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ বিছলামা বিনি ছিক্সিকা + আনি বামবাৰা বাংলা তিব্বতী @@ -176,7 +177,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ইবান ইবিবিও ইণ্ডোনেচিয় - উপস্থাপন ভাষা + ইণ্টাৰলিংগুৱে ইগ্বো ছিচুৱান ই ৱেষ্টাৰ্ণ কানাডিয়ান ইনক্টিটুট @@ -229,6 +230,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ কোমি কোৰ্নিচ ক্বাকৱালা + কুভি কিৰ্গিজ লেটিন লাডিনো @@ -237,6 +239,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ লেজঘিয়ান গান্দা লিম্বুৰ্গিচ + লিংগুৰিয়ান লিল্লোৱেট লাকোটা ল’ম্বাৰ্ড @@ -393,6 +396,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ কঙ্গো স্বাহিলি কোমোৰিয়ান চিৰিয়াক + ছাইলেছিয়ান তামিল দাক্ষিণাত্যৰ টুটচ’ন তেলুগু @@ -432,7 +436,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ উজবেক ভাই ভেণ্ডা + ভেনেছিয়ান ভিয়েটনামী + মাখুৱা ভোলাপুক ভুঞ্জু ৱালুন @@ -443,6 +449,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ৱু চাইনিজ কাল্মিক হোছা + কাংগৰি ছোগা য়াংবেন য়েম্বা @@ -451,6 +458,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ হিংগাটো কেণ্টোনীজ চাইনিজ, কেণ্টোনীজ + ঝুৱাং ষ্টেণ্ডাৰ্ড মোৰোক্কান তামাজাইট চীনা চীনা, মেণ্ডাৰিন @@ -945,12 +953,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [় অ আ ই ঈ উ ঊ ঋ এ ঐ ও ঔ ং ঃ ক খ গ ঘ ঙ চ ছ জ ঝ ঞ ট ঠ ড ঢ ণ ৎ ত থ দ ধ ন প ফ ব ভ ম য ৰ ল ৱ শ ষ স হ ্] [\- ‑ , . % ‰ + 0০ 1১ 2২ 3৩ 4৪ 5৫ 6৬ 7৭ 8৮ 9৯] [\- ‐‑ – — , ; \: ! ? . … । '‘’ "“” ( ) \[ \] § @ * / \& # † ‡ ′ ″] - - [\: ∶] - - - [£ ₤] - [\--﹣ ‑ ‒ −⁻₋ ➖] [,,﹐︐ ، ٫ 、﹑、︑] @@ -1199,9 +1201,27 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + am + pm + + + AM + PM + + + - পূৰ্বাহ্ন - অপৰাহ্ন + AM + PM + + + AM + PM + + + AM + PM @@ -2525,9 +2545,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ উলানবাটাৰ - - কোইবাল্ছন - মাকাও @@ -3271,13 +3288,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ চীনৰ ডেলাইট সময় - - - কোইবাল্ছনৰ সময় - কোইবাল্ছনৰ মান সময় - কোইবাল্ছনৰ গ্ৰীষ্মকালীন সময় - - খ্ৰীষ্টমাছ দ্বীপৰ সময় @@ -3519,6 +3529,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ জাপানৰ ডেলাইট সময় + + + কাজাখস্তানৰ সময় + + পূব কাজাখস্তানৰ সময় @@ -4060,8 +4075,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ¤¤ - {0} {1} - {0} {1} @@ -5321,6 +5334,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ইম্পেৰিয়েল কুৱাৰ্ট {0} ইম্পেৰিয়েল কুৱাৰ্ট + + আলোক + {0} আলোক + {0} আলোক + + + প্ৰতি বিলিয়নত অংশ + {0} প্ৰতি বিলিয়নত অংশ + {0} প্ৰতি বিলিয়নত অংশ + + + নিশা + {0} নিশা + {0} নিশা + {0}/নিশা + প্ৰধান দিক্-নিৰ্দেশনা {0} পূব @@ -6230,6 +6259,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} পিঞ্চ {0} পিঞ্চ + + আলোক + {0} আলোক + {0} আলোক + + + অংশ/বিলিয়ন + + + নিশা + {0} নিশা + {0} নিশা + {0}/নিশা + দিক্-নিৰ্দেশনা {0} পূঃ @@ -6395,6 +6438,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ N + + {0}kWh/100km + {0} kWh/100km + পি. {0} পি @@ -6468,6 +6515,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}dsp-Imp {0}dsp-Imp + + আলোক + {0}আলোক + {0}আলোক + + + {0}ppb + {0}ppb + + + নিশা + {0} নিশা + {0} নিশা + {0}/নিশা + @@ -6675,6 +6737,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ und as ko si ta te vi yue zh + informal {given} {given2} {surname} {credentials} diff --git a/make/data/cldr/common/main/ast.xml b/make/data/cldr/common/main/ast.xml index aa3a3d6f652..e02dc9e5742 100644 --- a/make/data/cldr/common/main/ast.xml +++ b/make/data/cldr/common/main/ast.xml @@ -208,7 +208,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic altualemán mediu guaraní altualemán antiguu - goan konkani gondi gorontalo góticu @@ -1321,7 +1320,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -3376,6 +3375,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic Hora de {0} Hora braniega de {0} Hora estándar de {0} + + + HST + HST + HDT + + Honolulu + Hora coordinada universal @@ -3705,14 +3712,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kiev - - - HST - HST - HDT - - Honolulu - Beulah, Dakota del Norte @@ -4025,13 +4024,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Hora braniega de China - - - Hora de Choibalsan - Hora estándar de Choibalsan - Hora braniega de Choibalsan - - Hora estándar de la Islla Christmas diff --git a/make/data/cldr/common/main/az.xml b/make/data/cldr/common/main/az.xml index 2eb5a1769ef..7849097e10c 100644 --- a/make/data/cldr/common/main/az.xml +++ b/make/data/cldr/common/main/az.xml @@ -67,6 +67,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bikol bini siksikə + anii bambara benqal tibet @@ -291,6 +292,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komi korn Kvakvala + kuvi qırğız latın sefard @@ -301,8 +303,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ləzgi qanda limburq + liquriya dili Liluet lakota + lombard dili linqala laos monqo @@ -315,7 +319,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ luba-lulua luyseno lunda - luo mizo luyia latış @@ -490,6 +493,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Konqo suahilicəsi komor suriya + silez dili tamil cənubi tuçon teluqu @@ -536,9 +540,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ naməlum dil urdu özbək - vai venda + venet dili vyetnam + makua dili volapük votik vunyo @@ -552,6 +557,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ vu kalmık xosa + kanqri soqa yao yapiz @@ -1133,7 +1139,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2028,6 +2034,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Vaxtı {0} Yay Vaxtı {0} Standart Vaxtı + + Honolulu + Koordinasiya edilmiş ümumdünya vaxtı @@ -2595,9 +2604,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ulanbator - - Çoybalsan - Makao @@ -2853,9 +2859,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Nom - - Honolulu - Ankorac @@ -3167,13 +3170,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Çin Yay Vaxtı - - - Çoybalsan Vaxtı - Çoybalsan Standart Vaxtı - Çoybalsan Yay Vaxtı - - Milad Adası Vaxtı @@ -3412,6 +3408,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Yaponiya Yay Vaxtı + + + Qazaxıstan vaxtı + + Şərqi Qazaxıstan Vaxtı @@ -3836,10 +3837,36 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + , + ٪ + + + - + + + , + ~ + + + - + , . + + + + standart onluq kəsr0.### + + + + + + + standart onluq kəsr0.### + + + @@ -3892,6 +3919,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + + standart elmi# + + + @@ -3929,8 +3963,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000T ¤ - {0} {1} - {0} {1} @@ -6056,6 +6088,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} İmp. kvarta {0} İmp. kvarta + + işıq + {0} işıq + {0} işıq + + + bir milyarda düşən hissə sayı + bir milyarda düşən {0} hissə + bir milyarda düşən {0} hissə + + + gecə + {0} gecə + {0} gecə + {0}/gecə + kardinal istiqamət @@ -6609,6 +6657,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} kvarta İmp. {0} kvarta İmp. + + işıq + {0} işıq + {0} işıq + + + hissə/milyard + + + gecə + {0} gecə + {0} gecə + {0}/gecə + istiqamət @@ -6862,6 +6924,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}qt-Imp. {0}qt-Imp. + + işıq + {0}işıq + {0}işıq + + + gecə + {0}gecə + {0}gecə + {0}/gecə + diff --git a/make/data/cldr/common/main/bal.xml b/make/data/cldr/common/main/bal.xml index 4b1b1f16696..355aa29a28e 100644 --- a/make/data/cldr/common/main/bal.xml +++ b/make/data/cldr/common/main/bal.xml @@ -48,7 +48,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + @@ -252,6 +252,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic {1} {0} + + dd-MM-y + d MMM y + + + {1} - {0} + @@ -373,6 +380,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic رۆنندی یورپئے گرماگی ساهت + + + گرین‌وِچ مین ٹائم + + هئواییئے ساهت diff --git a/make/data/cldr/common/main/bal_Latn.xml b/make/data/cldr/common/main/bal_Latn.xml index 68f2f264bae..81059f1fa12 100644 --- a/make/data/cldr/common/main/bal_Latn.xml +++ b/make/data/cldr/common/main/bal_Latn.xml @@ -13,87 +13,1111 @@ CLDR data files are interpreted according to the LDML specification (http://unic - بلۆچی - Balóchi - Jarman - Ástriái Jarman - Swizi Jarman - Engrézi - Ástréliái Engrézi - Kaynadhái Engrézi - Bartániái Engrézi - Amriki Engrézi - Espini - Zerbári-Amriki Espini - Espini (Espin) - Meksiki Espini - Paránsi - Kaynadhái Paránsi - Swizi Paránsi - Itáliái - Jápáni - Portagáli - Brázili Portagáli - Yuropi Portagáli - Rusi - Nagisshetagén zobán - Chini - Sádah kortagén Chini - Rabyati Chini + Apar + Abkházi + Aprikái + Agem + Akan + Amhari + Aragóni + Obóló + Latwiái Arabi + Arabi + Arabi (Donyá) + Mapuche + Asámi + Asu + Asturiái + Ázerbáijáni + Bashkar + Balóchi + Balóchi (Látin) + Basá + Bélárusi + Bembá + Betawi + Bená + Bolgáriái + Haryánui + Balóchi (Róbarkati) + Bójpuri + Ani + Tái Dam + Bambará + Bangáli + Tebbati + Brétón + Bodó + Busniái + Akuse + Blin + Katálan + Kaddó-kad + Atsam + Chakmá + Chechen + Chebuánó + Chigá + Choktaw + Cheruki + Chekkásaw + Myáni Kordi + Myáni Kordi- ckb + Myáni Kordi-men + Korsiki + Chek + Swampi Kri + Charch Sláwi + Chuwash + Wéli + Denmárki + Táitá + Jarman + Zarmah + Dogri + Láwar Sorbi + Duálá + Diwéhi + Jólá-Póni + Dzongká + Embó + Ewe + Yunáni + Engrézi + Engrézi (Kaynadhá) + Esperántu + Espini + Espini (Látini Amriká) + Espini (Meksikó) + Estóniái + Bask + Ewondó + Pársi + Pársi (AF) + Pulá + Fenlándi + Pelpini + Paróese + Paránsi + Paránsi (Kaynadhá) + Kájon Pránsi + Shemáli Prési + Priuli + Ferisi (Róbarkati) + Áeri + Gaa + Eskáti Géli + Géz + Galéki + Guárián + Swiz Jarman + Gojráti + Gusi + Manks + Hausá + Hawái + Ebráni + Hendi + Hendi (Látin Engrézi (Látin) Engrézi (Látin, Amrikáay Tepákén Están) syáhag: Látini) + Hmang Njuá + Króshiái + Borzi Sorbiái + Hangári + Arminiái + Myánzobáni + Endónési + Myánzobán + Igbó + Sichuái Yi + Idó + Islándi + Itáliái + Inuktitut + Jápáni + Lojban + Ngombá + Makami + Jáwáni + Járjiái + Kara-Kalpak + Kabáile + Jju + Kambá + Tyáp + Makonde + Kubuwerdiánó + Kinyang + Káingáng + Koirá Chini + Kikuyu + Kázák + Kákó + Kalállisut + Kalenjin + Khmér + Kannadá + Kuriái + Konkani + Kpelle + Kashmiri + Shambalá + Bapiá + Kologni + Kordi + Kornesh + Kuwi + Kirgez + Látini + Langi + Logzemborgi + Gandá + Liguri + Lakótá + Ladin + Lombard + Lingálá + Láó + Luisiáná Krióle + Shemáli Lori + Litwániái + Latgali + Lubá-Katangá + Luó + Luiá + Latwiái + Maitéli + Masai + Moksha + Méru + Murisén + Malagase + Makuá-Mitó + Métá + Móchénó + Muri + Mikmaw + Makduni + Malyálam + Mangóli + Manipuri + Mohawk + Maráthi + Malai + Maltiz + Mundang + Báz zobán + Muskógi + Barmái + Erziá + Mázendaráni + Nama + Nárwiji Bokmál + Shemáli Nedébéle + Láw Jarman + Láw Jarman (NL) + Népáli + Dacch + Dacch (Béljiam) + Kwásiu + Nárwiji Nókén + Ngembun + Nárwiji + Nko + Zerbári Nedebéli + Shemáli Sotó + Nuér + Nawájó + Nyanjá + Nyankóle + Ositi + Oromó + Odi + Oséti + Oságá + Panjábi + Pápiámentó + Náijiri Pidgin + Pijen + Pólayndi + Prushiái + Pashtó + Portagáli + Kwichu + Kichi + Rájestáni + Róhengiá + Ripi + Rumansh + Róndi + Rumániái + Rumániái (MD) + Rombó + Rusi + Kenyarwandá + Rwa + Sanskeret + Yakut + Samboró + Santali + Sangu + Sardéniái + Sesiliái + Sendi + Zerbári Kordi + Shemáli Sámi + Sená + Koryáburó Senni + Sangó + Tachelhit + Shan + Senhálá + Sidámó + Solwák + Saráeki + Solwiniái + Zerbári Sámi + Lule Sámi + Inári Sámi + Eskált Sámi + Shoná + Sómáli + Albániái + Sarbiái + Swáti + Sahó + Zerbári Sutó + Sudáni + Swidi + Swáhéli + Swáhéli (CD) + Siriek + Selisi + Támel + Telgó + Tésó + Tájek + Tái + Tigriniá + Tigré + Trkm + Tuswáná + Tongan + Tóki Póná + Tok Pisin + Tork + Torokó + Torwáli + Tesungá + Tátar + Tasawak + Tuwini + Tzm + Yughor + Yukrini + Nagisshetagén zobán + Urdu + Ozbek + Wái + Wendá + Weneti + Wietnámi + Makuwá + Wolápuk + Wunjó + Wallun + Welser + Wolettá + Warlpiri + Wolop + Khushá + Kangri + Sugá + Yangben + Yeddi + Yorobá + Ningátu + Kantóni + Kantóni-yue + Zhuáng + Gisshetqagén Moróki Tamázi + Chini + Zulu + Hecch zobán - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - Brázil - Chin - Jarmani - Paráns - Bartániá - Hendostán - Itáliá - Jápán - Pákestán - Rus - Amrikáay Tepákén Están - Nagisshetagén damag + Donyá + Afriká + Shemáli Amriká + Zerbári Amriká + Ushiáná + Rónendi Apriká + Myáni Amriká + Ródarátki Apriká + Shemáli Apriká + Myáni Apriká + Jonubi Apriká + Amriká + Shemáli Amrika + Kerébian + Ródarátki Ásiá + Zerbári Ásiá + Zerbárródarátki Ásiá + Zerbári Yurop + Ástrálásiá + Melanésiá + Máekrónési Damag + Pólinisiá + Ásiá + Myáni Ásiá + Rónendi Ásiá + Yurop + Ródarátki Yurop + Shemáli Yurop + Rónendi Yurop + Sab-Sahári Apriká + Látini Amriká + Asenshan Islánd + Andorrá + Emárát + Awghánestán + Antiga o Barbuda + Angwila + Albániá + Árminiá + Angólá + Antárktiká + Arjentiná + Amriki Samóá + Ástriá + Ásthréliá + Aruba + Áwlánd Islánd + Ázerbáiján + Bósniá + Barbadós + Bangaladésh + Béljiam + Burkiná Pásó + Balgáriá + Bahren + Borondi + Benin + St. Bartélémi + Barmudá + Brunái + Boliwiá + Kerébi Nedarlánd + Brázil + Bahamas + Buthán + Bówet Islánd + Bostwáná + Bélárus + Belize + Kaynadhá + Kukus Islánd (Kileng) + Kángó-Kenshásá + Kángó + Myáni Apriki Eshtán + Kángó-Brázáwille + Kángó (Están) + Swizarlánd + Kóté diáwóri + Áiwari Tyáb + Kuk Islánd + Chilay + Kaymrun + Chin + Kólambiá + Klipperton Islánd + Sárk + Kóstá Riká + Kyubá + Kap Wardé + Churácháó + Kresmes Islánd + Sáipras + Chéchiá + Chek Están + Jarmani + Diégó Gárshiá + Djebuti + Denmárk + Duminiká + Duminiki Están + Aljiriá + Siótó o Melilá + Ekwádór + Estóniá + Mesr + Róbarkati Sahárá + Eritiriá + Espin + Etupiá + Yuropi Yunian + Yurop-damag + Fenlánd + Fiji + Páklánd Islánd + Páklánd Islánd (Islas Málwinás) + Mikrónéshiá + Faróé Islánd + Paráns + Gabon + Bartániá + Gerená + Járjiá + Pránsi Gwiáná + Gwernsay + Gáná + Gibráltar + Grinlánd + Gambiá + Giniá + Gwádelóp + Ekwáturi Giniá + Yunán + Zerbári Járjiá + Gwátémálá + Guám + Giniá-Bissáu + Goyáná + Háng Káng o SAR Chin + Háng Káng + Hard o Mekdónald Islánd + Honduras + Króshiá + Hayti + Hangari + Kanaray Islánd + Endhonéshiá + Áerlánd + Esráil + Áisale Mardom + Hendostán + Bartáni Hendi Zerdamag + Chágós Árkipelágó + Erák + Érán + Áeslánd + Itáliá + Jersé + Jamáeká + Ordon + Jápán + Kiniá + Karghazestán + Kambódhiá + Kiribáti + Komórós + St. Kitts o Newis + Shamáli Kóriá + Zerbári Kóriá + Kwayt + Kaymi Islánd + Kázakhestán + Láus + Lebnán + St. Lusiá + Lichtenstén + Sari Lanká + Láibériá + Lesótó + Lituániá + Loksembórg + Latwiá + Libyá + Morókó + Monákó + Moldowá + Montenegró + St. Mártin + Madagáskar + Marshall Islánd + Shemáli Makduniá + Máli + Myanmár (Barmá) + Mangóliá + Makaó SAR Chin + Makaó + Shemáli Máriáná Islánd + Mártinik + Muritániá + Montserrat + Máltá + Murishias + Máldip + Maláwi + Meksikó + Maléshiá + Mózambik + Namibiá + Niu Káledóniá + Náiger + Nórfolk Islánd + Náijériá + Nekárágóá + Nedarlánd + Nárway + Népál + Náuru + Niué + Nyu Zilánd + Áotéróá Niu Zilánd + Omán + Pánámá + Péru + Paránsi Pulinishiá + Pápuá Niu Giniá + Pelpin + Pákestán + Pólánd + St. Péri o Mikwélin + Pitkarén Islánd + Piuró Rikó + Palastinay Damag + Palastin + Portogál + Paláu + Parágóay + Gatar + Tálánén Zerbahrag + Réyunian + Rumániá + Sarbiá + Rus + Rwándhá + Saudi Arab + Solomán Islánd + Sécheles + Sudán + Swidhan + Sengápur + St. Heléná + Slowiniá + Swalbard o Jan Mayén + Slowákiá + Sierrá Leóne + San Mariánó + Senigál + Sómáliá + Surinaym + Zerbári Sudán + Sáó Tóme o Prensip + El Salwadór + Sint Márten + Suriá + Eswatini + Swázilánd + Tristan dá Chonhá + Tork o Káikói Islánd + Chád + Pránsi Zerbári Damag + Tógó + Táilánd + Tájekestán + Tokéláu + Témur-Leste + Ródarátki Témur + Torkmenestán + Tunishiá + Tongá + Turkiye + Torki + Trinidad o Tobágó + Tuwalu + Táiwán + Tanzániá + Yukrén + Yugandhá + U.S. Daráén Islánd + Myánostománi Gal + Amrikáay Tepákén Están + Yurógóay + Ozbekestán + Wátikán Sethi + St. Wensent o Grenádin + Wenezwélá + Bretáni Ajgén Islánd + Amriki Ajgén Islánd + Wietnám + Wanuátu + Wális o Futuná + Samóá + Kesási-Gálwár + Kesási- Bidi + Kósówó + Yaman + Mayotte + Zerbári Apriká + Zambiá + Zembábwé + Nagisshetagén damag + + Rabyati Jarman nebeshtarahband + Gisshetagén Réshian nebeshtarahband + Jarman nebeshtarahband + Randi Myáni Pránsi + Mahlahén Nókén Pránsi + Akádemi + Nebeshtarahbnadi Gishwár 1943 + AKUÁPÉM + ALA-LK Látini, 1997 + Aluku gálwár + ANPÉZÓ + Portogáli Zobánay Nebeshtarahbanday Mannánk 1990 + ARANÉS + ARKÁIKÁ + ASANTÉ + AUWERN + Hawárén Torki Látini Áb + Balanká gálwár, Anii + Barlawentó gálwár granch, Kábuwerdiánu + BASIKENG + BAUDDÁ + BKIAW + BKIZBL + BISKAYAN + San Jiárjó/Bila gálwár + BLÁSL + Bohóri áb + Buntleng + BÓRNHOLM + CISÁUP + Portagézi-Brázili Nebeshtarahband Diwán 1945 + CÓRNU + CRÉISS + Dajankó áb + Sarbiái gón Ekwái gálwárá + Mahlahén Nókén Engrézi + FÁSCIÁ + FODÓM + IPA Tawári + FÓNKERSH + FONNÁPÁ + UPA Tawári + FONKSAMP + GALLÓ + GASKÓN + GHÉRD + GRKLÁSS + GRITÁL + GRMEST + Hepburn Látini + HÓGNÓRSK + HSISTEMÓ + Sarbiái gón Ejekawái gálwárá + ITIHÁSÁ + IWANCHÓW + JÁUÉR + JYUTPÉNG + Hawárén Nebeshtarahband + KÓCIEWIÉ + Gisshetagén Nebeshtarahband + LÁUKIKÁ + LÉMÓSIN + LENGÁDÓK + Lipówázi gálwár, Réshi + LTG-1929 + LTG-2007 + LUNÁ-1918 + Metelkó áb + Mónótáni + Ndyuká gálwár + Natisón gálwár + NEWPOUND + NICÁRD + Gniwá/Njiwá gálwár + Nókén Wolápuk + Osiákkó/Osójáné gálwár + Ákspórd Engrézi Labzbaladay áp rahband + PAHAWH-2 + PAHAWH-3 + PAHAWH-4 + Pamáká gálwár + PEÁNÓ + PEHÓEJI + PÉTR-1708 + Pinyin Látini + Pólituni + Kampyutar + PROWENC + PUTÉR + Nókázén Nebeshtarahband + Kalásiki Wólápuk + Réshi + RÓMGR + Sahó + Eskáti Gisshetagén Engrézi + Skáuz + Sádah + Stolwizá/Solbiká gálwár + Sotáwentó gálwár granch, Kabuwerdiánó + SPÁNGLIS + SURMIRÁN + SURSILW + SUTSILW + SYNNÉJYL + TÁILÓ + Taraskiwiká nebeshtarahband + TONGYÓNG + TUNUMIÉT + Hamshawrén Nebeshtarahband + Hamshawrén Nókázén Nebeshtarahband + ULSTÉR + UNIFON-tawári áb + WAIDIKA + WALBADIÁ + Walensi + WALLADER + ÓECDRUKÁ + WIWARÁUP + Wayd-Gili Látin + KSISTEMO + + + Sáldar + Zarr Káleb + Red o band + Zarr + Sáhatáni chahr (12 o 24) + Red próshagay dáb + Kayl kanagy rahband + Nambar + - Buddái sáldar - Chini sáldar - Kobti sáldar - Dángi sáldar - Etupiái sáldar - Etupiái Ámet Álem sáldar - Miládi sáldar - Ebráni sáldar - Hendi Kawmi sáldar - Eslámi sáldar - Eslámi shahri sáldar - Eslámi Saudi-Arabi sáldar - Eslámi Nojumi sáldar - Eslámi Omm al-Korrahi sáldar - ISO-8601 sáldar - Jápáni sáldar - Pársi sáldar - Mingu-Chini sáldar - Zarray anjárén káleb - Gisshetagén red o band - Arabi-Hendi mórdán - Rusi mórdán - Dénágari mórdán - Rónendi mórdán + Buddái sáldar + Chini sáldar + Kobti sáldar + Dángi sáldar + Etupiái sáldar + Etupiái Ámet Álem sáldar + Miládi sáldar + Ebráni sáldar + Hendi Kawmi sáldar + Eslámi sáldar + Eslámi shahri sáldar + Eslámi Saudi-Arabi sáldar + Eslámi Nojumi sáldar + Eslámi Omm al-Korrahi sáldar + ISO-8601 sáldar + Jápáni sáldar + Pársi sáldar + Mingu-Chini sáldar + Hesáb, Zarr Káleb + Zarray anjárén káleb + Chini Rabyati Red o band + Pésari Red o band, pa hamdapiá + Labzbaladi Red o band + Aslén Yunikodi Red o band + Emóji Red o band + Yuropi Red o bandi Rahband + Sádah kortagén Chini Red o band - GB2312 + Pawnbokki Red o band + Pinyi Red o band + Ám Kári Shóház + Hangul Awali Jwánábay sará shóház + Anjári Red o band + Strók Red o band + Rabyati Red o band + Trondén-stróki Red o band + Zhuin Red o band + 12 Sáhati (0–11) + 12 Sáhati (1–12) + 24 Sáhati (0–23) + 14 Sáhati (1–24) + Red próshagay sholén dáb + Red próshagay ámigén dáb + Red próshagay trondén dáb + Mitari + Sháhensháhi Kayl Rahband + Amrikái Kayl Rahband + Ahom Mórdán + Arabi-Hendi mórdán + Géshén Arabi-Hendi Mórdán + Ármini Nambar + Árminiái Kasánén Nambar + Báléni Mórdán + Bangla Mórdán + Brahmi Mórdán + Chakma Mórdán + Cham Mórdán + Rusi mórdán + Dénágari mórdán + Diwi Akuru Mórdán + Etupi Nambar + Srjam-Sháhegánén Mórdán + Garai Mórdán + Járjiái Nambar + Gunjála Góndi mórdán + Masaram Góndi mórdán + Yunáni Nambar + Yunáni Kasánén Nambar + Gojráti Mórdán + Gurong Khémá Mórdán + Gurmuki Mórdán + Chini Dahi Nambar + Sáda kortagén Chini Nambar + Sáda kortagén Chini Hesábi Nambar + Chini Rabyati Nambar + Chini Rabyati Hesáni Nambar + Ebráni Nambar + Pahaw Hmong Mórdán + Nyákeng Páuchó Hmong Mórdán + Jáwáni Mórdán + Jápáni Nambar + Jápáni Hesábi Nambar + Káyah Li Mórdán + Kawi Mórdán + Khmér Mórdán + Kannadái Mórdán + Kirat Rai Mórdán + Tai Tam Hórá Mórdán + Tai Tam Tam Mórdán + Láó Mórdán + Rónendi Mórdán + Lepcha Mórdán + Limbu Mórdán + Hesábi Dhalagén Mórdán + Hesábi do-likki Mórdán + Hesábi Yakjáhén Mórdán + Hesábi Sans-Serép Dhalagén Mórdán + Hesábi Sans-Serép Mórdán + Malyálam Mórdán + Módi Mórdán + Mongóli Mórdán + Mró Mórdán + Méti Mayék Mórdán + Myánmár Mórdán + Myánmár Ródarátki Pwo Karen Mórdán + Myánmár Pao Mórdán + Myánmár Shan Mórdán + Myánmár Tai Laing Mórdán + Nag Mundari Mórdán + Nkó Mórdán + Ol Cheki Mórdán + Ol Onal Mórdán + Odi Mórdán + Osmániái Mórdán + Darlikki Mórdán + Hanipi Róhangiái Mórdán + Látini Nambar + Látini Kasánén Nambar + Saurashtri Mórdán + Sharadá Mórdán + Kodáwadi Mórdán + Senhálá Lit Mórdán + Sórá Sompeng Mórdán + Sudáni Mórdán + Sunuwar Mórdán + Takri Mórdán + Nókén Tai Lue Mórdán + Rabyati Támel Nambar + Támel Mórdán + Telegó Mórdán + Tái Mórdán + Tebbati Mórdán + Tirutá Mórdán + Tangsá Mórdán + Wái Mórdán + Warang Siti Mórdán + Wanchó Mórdán - mitari - Bartáni - Amriki + Mitari + Bartáni + Amriki zobán: {0} @@ -102,439 +1126,4119 @@ CLDR data files are interpreted according to the LDML specification (http://unic - [á a b c d é e g h i j k l m n ó o p r s t u v w y z] - [f ń q x] - [Á A B {Ch} D {Dh} É E F G H I J K L M N Ó O P R {Rh} S {Sh} T {Th} U V W Y Z {Zh}] - [, ; \: ? . ‘’ “”] + [á a b {ch} d {dh} é e f g {gh} h i j k {kh} l m n ó o p r {rh} s {sh} t {th} u w y z {zh}] + [ń] + [Á A B {Ch} D {Dh} É E F G {Gh} H I J K {Kh} L M N Ó O P R {Rh} S {Sh} T {Th} U W Y Z {Zh}] + [\- ‑ , ; \: ! ? . ‘’ “”] + + + + + + garmág shoru + hawray áp + kerm + + + + + - Jan - Par - Már - Apr - Mai - Jun - Jól - Aga - Sat - Akt - Naw - Das + Jan + Par + Már + Apr + Mai + Jun + Jól + Aga + Sat + Akt + Naw + Das - Janwari - Parwari - Márch - Aprél - Mai - Jun - Jólái - Agast - Satambar - Aktubar - Nawambar - Dasambar + Janwari + Parwari + Márch + Aprél + Mai + Jun + Jólái + Agast + Satambar + Aktubar + Nawambar + Dasambar - Yak - Do - Say - Chá - Pan - Jom - Sha + Yak + Do + Say + Chá + Pan + Jom + Sha + + + Y + D + S + Ch + P + J + Sh - Yakshambeh - Doshambeh - Sayshambeh - Chárshambeh - Panchshambeh - Jomah - Shambeh + Yakshambeh + Doshambeh + Sayshambeh + Chárshambeh + Panchshambeh + Jomah + Shambeh + + + + + Y + D + S + Ch + P + J + Sh - 1/4 - 2/4 - 3/4 - 4/4 + 1/4 + 2/4 + 3/4 + 4/4 - awali chárek - domi chárek - sayomi chárek - cháromi chárek + awali chárek + domi chárek + sayomi chárek + cháromi chárek + + + + am + pm + + + am + pm + + + am + pm + + + + + am + pm + + + am + pm + + + am + pm + + + + + + Péshmilád + Hórén Ahdá Pésh + Annó Domini + Hórén Ahd + + + PM + PHA + AD + HA + + + PM + PHA + AD + HA + + - EEEE, d MMMM, y + dd,MM,y - d MMMM, y + d MMMM, y - d MMM, y + d MMM, y - d/M/yy + d/M/yy - hh:mm:ss a zzzz + hh:mm:ss a zzzz - hh:mm:ss a zzz + hh:mm:ss a zzz - hh:mm:ss a + hh:mm:ss a - hh:mm a + hh:mm a - {1} {0} + {1} {0} - {1} {0} + {1} {0} - {1} {0} + {1} {0} - {1} {0} + {1} {0} + + h:mm + h:mm:ss a + h:mm:ss a v + d/M/y + MM,dd,y + + + + + + Moh. + Sap. + Rab. I + Rab. II + Jam. I + Jam. II + Raj. + Sha. + Ram. + Shaw. + Zol-K. + Zol-H. + + + Moharram + Sapar + Rabiʻ I + Rabiʻ II + Jamádi I + Jamádi II + Rajab + Shábán + Ramezán + Shauwál + Zolkáda + Zolhajj + + + + + Moh. + Sap. + Rab. I + Rab. II + Jam. I + Jam. II + Raj. + Sha. + Ram. + Shaw. + Zol-K. + Zol-H. + + + Moharram + Sapar + Rabiʻ I + Rabiʻ II + Jamádi I + Jamádi II + Rajab + Shábán + Ramezán + Shauwál + Zolkáda + Zolhajj + + + + + + + Ahd + + + Zamánag + + + Zamánag + + + Sál + Pári + Embarán + Démay sál + + Áókén {0} sál + Áókén {0} sálá + + + Gwastagén {0} sál + {0} sálá pésar + + + + Sál + Pári + Embarán + Démay sál + + Áókén {0} sál + Áókén {0} sálá + + + Gwastagén {0} sál + {0} sálá pésar + + + + Sál + Pári + Embarán + Démay sál + + Áókén {0} sál + Áókén {0} sálá + + + Gwastagén {0} sál + {0} sálá pésar + + + + Chárek + Sálay gwastagén chárek + Sálay é chárek + Sálay démay chárek + + Áókén {0} chárek + Áókén {0} chárek + + + Sálay {0} cháreká pésar + Sálay {0} chárká pésar + + + + Chárek + Sálay gwastagén chárek + Sálay é chárek + Sálay démay chárek + + Áókén {0} chárek + Áókén {0} chárek + + + Sálay {0} cháreká pésar + Sálay {0} chárká pésar + + + + Chárek + Sálay gwastagén chárek + Sálay é chárek + Sálay démay chárek + + Áókén {0} chárek + Áókén {0} chárek + + + Sálay {0} cháreká pésar + Sálay {0} chárká pésar + + + + Máh + gwastagén máh + É máh + Démay máh + + {0} máhá + {0} máhá + + + {0} máhá pésar + {0} máhá pésar + + + + Máh + gwastagén máh + É máh + Démay máh + + {0} máhá + {0} máhá + + + {0} máhá pésar + {0} máhá pésar + + + + Máh + gwastagén máh + É máh + Démay máh + + {0} máhá + {0} máhá + + + {0} máhá pésar + {0} máhá pésar + + + + Haptag + gwastagén haptag + é haptag + démay haptag + + démay haptag + démay {0} haptag + + + gwastagén haptag + gwastagén {0} haptag + + {0}-mi haptag + + + Haptag + gwastagén haptag + é haptag + démay haptag + + démay haptag + démay {0} haptag + + + gwastagén haptag + gwastagén {0} haptag + + {0}-mi haptag + + + Haptag + gwastagén haptag + é haptag + démay haptag + + démay haptag + démay {0} haptag + + + gwastagén haptag + gwastagén {0} haptag + + {0}-mi haptag + + + Máhay -mi haptag + + + Máhay -mi haptag + + + Máhay -mi haptag + + + Róch + zi + maróchi + bándá + + {0} róchá + {0} róchá rand + + + {0} róchá pésar + {0} róchá pésar + + + + Róch + zi + maróchi + bándá + + {0} róchá + {0} róchá rand + + + {0} róchá pésar + {0} róchá pésar + + + + Róch + zi + maróchi + bándá + + {0} róchá + {0} róchá rand + + + {0} róchá pésar + {0} róchá pésar + + + + Sálay -mi róch + + + Sálay -mi róch + + + Sálay -mi róch + + + Haptagay róch + + + Haptagay -mi róch + + + Haptagay -mi róch + + + Máhay -mi róch + + + Máhay -mi róch + + + Máhay -mi róch + + + gwastagén yakshambehá + é yakshambehá + démay yakshambehá + + +{0}mi yakshambehá + +{0} yakshambehá rand + + + +{0} yakshambehá pésar + +{0} yakshambehá pésar + + + + gwastagén yakshambehá + é yakshambehá + démay yakshambehá + + +{0}mi yakshambehá + +{0} yakshambehá rand + + + +{0} yakshambehá pésar + +{0} yakshambehá pésar + + + + gwastagén yakshambehá + é yakshambehá + démay yakshambehá + + +{0}mi yakshambehá + +{0} yakshambehá rand + + + +{0} yakshambehá pésar + +{0} yakshambehá pésar + + + + gwastagén doshambeh + é doshambeh + démay doshambeh + + +{0}mi doshambehá + +{0} doshambehá rand + + + +{0} doshambehá pésar + +{0} doshambehá pésar + + + + gwastagén doshambeh + é doshambeh + démay doshambeh + + +{0}mi doshambehá + +{0} doshambehá rand + + + +{0} doshambehá pésar + +{0} doshambehá pésar + + + + gwastagén doshambeh + é doshambeh + démay doshambeh + + +{0}mi doshambehá + +{0} doshambehá rand + + + +{0} doshambehá pésar + +{0} doshambehá pésar + + + + gwastagén sayshambeh + é sayshambeh + démay sayshambeh + + +{0}mi sayshambehá + +{0} sayshambehá rand + + + +{0} sayshambehá pésar + +{0} sayshambehá pésar + + + + gwastagén sayshambeh + é sayshambeh + démay sayshambeh + + +{0}mi sayshambehá + +{0} sayshambehá rand + + + +{0} sayshambehá pésar + +{0} sayshambehá pésar + + + + gwastagén sayshambeh + é sayshambeh + démay sayshambeh + + +{0}mi sayshambehá + +{0} sayshambehá rand + + + +{0} sayshambehá pésar + +{0} sayshambehá pésar + + + + gwastagén chárshambeh + é chárshambeh + démay chárshambeh + + +{0}mi chárshambehá + +{0} chárshambehá rand + + + +{0} chárshambehá pésar + +{0} chárshambehá pésar + + + + gwastagén chárshambeh + é chárshambeh + démay chárshambeh + + +{0}mi chárshambehá + +{0} chárshambehá rand + + + +{0} chárshambehá pésar + +{0} chárshambehá pésar + + + + gwastagén chárshambeh + é chárshambeh + démay chárshambeh + + +{0}mi chárshambehá + +{0} chárshambehá rand + + + +{0} chárshambehá pésar + +{0} chárshambehá pésar + + + + gwastagén panchshambeh + é panchshambeh + démay panchshambeh + + +{0}mi panchshambehá + +{0} panchshambehá rand + + + +{0} panchshambehá pésar + +{0} panchshambehá pésar + + + + gwastagén panchshambeh + é panchshambeh + démay panchshambeh + + +{0}mi panchshambehá + +{0} panchshambehá rand + + + +{0} panchshambehá pésar + +{0} panchshambehá pésar + + + + gwastagén panchshambeh + é panchshambeh + démay panchshambeh + + +{0}mi panchshambehá + +{0} panchshambehá rand + + + +{0} panchshambehá pésar + +{0} panchshambehá pésar + + + + gwastagén jomah + é jomah + démay jomah + + +{0}mi jomahá + +{0} jomahá rand + + + +{0} jomahá pésar + +{0} jomahá pésar + + + + gwastagén jomah + é jomah + démay jomah + + +{0}mi jomahá + +{0} jomahá rand + + + +{0} jomahá pésar + +{0} jomahá pésar + + + + gwastagén jomah + é jomah + démay jomah + + +{0}mi jomahá + +{0} jomahá rand + + + +{0} jomahá pésar + +{0} jomahá pésar + + + + gwastagén shambeh + é shambeh + démay shambeh + + +{0}mi shambehá + +{0} shambehá rand + + + +{0} shambehá pésar + +{0} shambehá pésar + + + + gwastagén shambeh + é shambeh + démay shambeh + + +{0}mi shambehá + +{0} shambehá rand + + + +{0} shambehá pésar + +{0} shambehá pésar + + + + gwastagén shambeh + é shambeh + démay shambeh + + +{0}mi shambehá + +{0} shambehá rand + + + +{0} shambehá pésar + +{0} shambehá pésar + + + + Róchay bél + + + Bél + + + Róchay bél + + + Ganthah + É sáhat + + Ganthahéá + {0} ganthahá rand + + + {0} ganthahá pésar + {0} ganthahá pésar + + + + Sáhat + É sáhat + + Ganthahéá + {0} ganthahá rand + + + {0} ganthahá pésar + {0} ganthahá pésar + + + + Sáhat + É sáhat + + Ganthahéá + {0} ganthahá rand + + + {0} ganthahá pésar + {0} ganthahá pésar + + + + Meletth + é damán + + meletthéá + {0} meletthá rand + + + {0} meletthá pésar + {0} meletthá pésar + + + + Meletth + é damán + + meletthéá + {0} meletthá rand + + + {0} meletthá pésar + {0} meletthá pésar + + + + Meletth + é damán + + meletthéá + {0} meletthá rand + + + {0} meletthá pésar + {0} meletthá pésar + + + + Katrah + annun + + sekendhá + {0} sekendhá rand + + + {0} sekendhá pésar + {0} sekendhá pésar + + + + Katrah + annun + + sekendhá + {0} sekendhá rand + + + {0} sekendhá pésar + {0} sekendhá pésar + + + + Katrah + annun + + sekendhá + {0} sekendhá rand + + + {0} sekendhá pésar + {0} sekendhá pésar + + + + Damag + + + Damag + + + Damag + + + + + Hamdárén Jaháni wahd + + + + Námálumén shahr + + + Dabai + + + Kábol + + + Antiguá + + + Anguillá + + + Tiráne + + + Yerewán + + + Luandá + + + Syówá + + + Dawis + + + Wostok + + + Kásé + + + Dumont Urwila + + + Mendozá + + + Ushwáiá + + + Chatamarká + + + Jojui + + + Tukuman + + + Kortoba + + + Wienná + + + Pert + + + Yuklá + + + Adiléd + + + Melborn + + + Sedhni + + + Makwáer + + + Arubá + + + Báku + + + Sarajéwó + + + Dháka + + + Sofiá + + + Bahren + + + Bujombura + + + Portó-Nówó + + + Brunái + + + Lá Paz + + + Irunépé + + + Rió Brankó + + + Portó welhó + + + Bóá Wistá + + + Kwaibá + + + Champo Grande + + + Sáó Pauló + + + Portalezá + + + Machió + + + Rechipé + + + Noronhá + + + Thimpu + + + Gaboroné + + + Inuwik + + + Wankuwar + + + Dawson Krék + + + Krestón + + + Swift Karrant + + + Kambrej Bay + + + Resólut + + + Atikókan + + + Torontó + + + Ikálwit + + + Monkton + + + Halifaks + + + Glays Bay + + + Blanch-Sablón + + + Kukus + + + Kenshása + + + Lubumbáshi + + + Brazzawilay + + + Zyurekh + + + Ábedján + + + Isthar + + + Santiagó + + + Douálá + + + Urumki + + + Shangái + + + Kóstá Riká + + + Hawáná + + + Kap Wardé + + + Chorácháó + + + Kresmes + + + Nikóshiá + + + Pamagustá + + + Prág + + + Djebóti + + + Kopenhágen + + + Dominiká + + + Santó Domingó + + + Gwáyakil + + + Káeró + + + El Áiun + + + Asmará + + + Kanaray + + + Kyutá + + + Addis Ababá + + + Stánlé + + + Kósrai + + + Payres + + + Librewilay + + + + Bartániái garmági wahd + + Landan + + + Grenadá + + + Tebilisi + + + Chayenn + + + Guernséy + + + Akkrá + + + Tulé + + + Ittokkorturmit + + + Danmarkshawn + + + Konakri + + + Gwádelóp + + + Malábó + + + Áten + + + Shemáli Járjiá + + + Gwátémálá + + + Guyána + + + Háng Káng + + + Teguchigalpá + + + Pórt-au-Prens + + + Budápest + + + Jakártá + + + Jaypur + + + + Áeri anjári wahd + + + + Urshalim + + + Kalkata + + + Chagós + + + Bagdád + + + Tehrán + + + Reykjawik + + + Rum + + + Jerséy + + + Jamáeká + + + Ammán + + + Tókyó + + + Nérubi + + + Komóró + + + Pyongyáng + + + Seól + + + Kwayt + + + Kayman + + + Aktau + + + Orál + + + Atirau + + + Aktubé + + + Kastanay + + + Kizilordá + + + Almati + + + Wientiáné + + + Bérut + + + St. Lusiá + + + Waduz + + + Kólambó + + + Monrówiá + + + Maséró + + + Wilnius + + + Logzemborg + + + Tripóli + + + Kasablanká + + + Monákó + + + Podgoriká + + + Antananariwó + + + Kopjé + + + Bamakó + + + Hówd + + + Ulánbátar + + + Makáó + + + Matinik + + + Nouakshott + + + Murishas + + + Máldip + + + Blantiray + + + Tijuána + + + Chiudad Juárez + + + Chihuahuá + + + Bahía de Banderás + + + Monterray + + + Meksikó Shahr + + + Chanchun + + + Kwálá Lampur + + + Maputó + + + Windoek + + + Niaméy + + + Nurpolk + + + Lagós + + + Ósló + + + Awklánd + + + Maskat + + + Panámá + + + Limá + + + Markesás + + + Bógáinwilay + + + Karáchi + + + Wársá + + + Mekwelon + + + Pitkarin + + + Puertó Rikó + + + Hebrón + + + Azóres + + + Asunchión + + + Gatar + + + Réyunian + + + Bukhárest + + + Belgrád + + + Máskó + + + Wolgograd + + + Saratów + + + Ulyanówsk + + + Kirów + + + Nowosibirsk + + + Nowokuznetsk + + + Wladiwóstok + + + Khandiga + + + Srednekólimsk + + + Anadir + + + Ryáz + + + Guadalkanal + + + Mahé + + + Khartum + + + Esthákholm + + + Sengápur + + + St. Helená + + + Ljubljaná + + + Bratislawá + + + Peritháón + + + San Marinó + + + Mógádéshó + + + Paramaribó + + + Jubá + + + Sáó Tomé + + + El Salwadór + + + Damáskas + + + Mbabané + + + Ndjamená + + + Kargwelen + + + Lómé + + + Bengkák + + + Doshambeh + + + Fakaófó + + + Dehli + + + Tunes + + + Estamból + + + Pórt Espin + + + Táipi + + + Dár es salám + + + Simperópól + + + Kampála + + + Anchoragé + + + Juniu + + + Lás Enjeles + + + Póeniks + + + Denwér + + + Beulah, Nárt Dakótá + + + Nyu Salem, Nárt Dakótá + + + Santhar, Nárt Dakótá + + + Shekágó + + + Menomini + + + Winsennes, Indiáná + + + Petersburg, Indiáná + + + Tell Sithi, Indiáná + + + Knoks, Indiáná + + + Winamak, Indiáná + + + Marengó Indiáná + + + Indiánápolis + + + Luiswillay + + + Weway, Indiáná + + + Montichelló, Kentuki + + + Nyu Yárk + + + Montewidió + + + Táshkand + + + Watikan + + + St. Winsent + + + Charakás + + + Tortolá + + + St. Tómas + + + Hó Chi Menn + + + Efáti + + + Apiá + + + Adan + + + Mayótay + + + Johannesbarg + + + Lusáká + + + Haráré + + + + Awgánestánay wahd + + + + + Delgáhi Aprikáay wahd + + + + + Ródarátki Aprikáay wahd + + + + + Ródarátki Aprikáay anjári wahd + + + + + Rónendi Aprikáay wahd + Rónendi Aprikáay anjári wahd + Rónendi Aprikáay garmági wahd + + - Aláskáay wahd - Aláskáay anjári wahd - Aláskáay garmági wahd + Aláskáay wahd + Aláskáay anjári wahd + Aláskáay garmági wahd - Amázónay wahd - Amázónay anjári wahd - Amázónay garmági wahd + Amázónay wahd + Amázónay anjári wahd + Amázónay garmági wahd - Delgáhi Amrikáay wahd - Delgáhi Amrikáay anjári wahd - Delgáhi Amrikáay garmági wahd + Delgáhi Amrikáay wahd + Delgáhi Amrikáay anjári wahd + Delgáhi Amrikáay garmági wahd - Ródarátki Amrikáay wahd - Ródarátki Amrikáay anjári wahd - Ródarátki Amrikáay garmági wahd + Ródarátki Amrikáay wahd + Ródarátki Amrikáay anjári wahd + Ródarátki Amrikáay garmági wahd - Kóhestagi Amrikáay wahd - Kóhestagi Amrikáay anjári wahd - Kóhestagi Amrikáay garmági wahd + Kóhestagi Amrikáay wahd + Kóhestagi Amrikáay anjári wahd + Kóhestagi Amrikáay garmági wahd - Árámzeri Amrikáay wahd - Árámzeri Amrikáay anjári wahd - Árámzeri Amrikáay garmági wahd + Árámzeri Amrikáay wahd + Árámzeri Amrikáay anjári wahd + Árámzeri Amrikáay garmági wahd + + + + + Apiáay wahd + Apiáay anjári wahd + Apiáay róchi wahd + + + + + Arabi wahd + Arabi anjári wahd + Arabi róchi wahd - Arjentináay wahd - Arjentináay anjári wahd - Arjentináay garmági wahd + Arjentináay wahd + Arjentináay anjári wahd + Arjentináay garmági wahd - Rónendi Arjentináay wahd - Rónendi Arjentináay anjári wahd - Rónendi Arjentináay gramági wahd + Rónendi Arjentináay wahd + Rónendi Arjentináay anjári wahd + Rónendi Arjentináay gramági wahd + + + + + Árminiáay wahd + Árminiáay anjári wahd + Árminiáay garmági wahd + + + + + Atlantáay wahd + Atlantáay anjári wahd + Atlantáay róchi wahd - Delgáhi Ástréliáay wahd - Delgáhi Ástréliáay anjári wahd - Delgáhi Ástréliáay garmági wahd + Delgáhi Ástréliáay wahd + Delgáhi Ástréliáay anjári wahd + Delgáhi Ástréliáay garmági wahd - Delgáhirónendi Ástréliáay wahd - Delgáhirónendi Ástréliáay anjári wahd - Delgáhirónendi Ástréliáay garmági wahd + Delgáhirónendi Ástréliáay wahd + Delgáhirónendi Ástréliáay anjári wahd + Delgáhirónendi Ástréliáay garmági wahd - Ródarátki Ástréliáay wahd - Ródarátki Ástréliáay anjári wahd - Ródarátki Ástréliáay garmági wahd + Ródarátki Ástréliáay wahd + Ródarátki Ástréliáay anjári wahd + Ródarátki Ástréliáay garmági wahd - Rónendi Ástréliáay wahd - Rónendi Ástréliáay anjári wahd - Rónendi Ástréliáay garmági wahd + Rónendi Ástréliáay wahd + Rónendi Ástréliáay anjári wahd + Rónendi Ástréliáay garmági wahd + + + + + Ázerbáijánay wahd + Ázerbáijánay anjári wahd + Ázerbáijánay garmági wahd + + + + + Azóresay wahd + Azóresay anjári wahd + Azóresay garmági wahd + + + + + Bangaladéshay wahd + Bangaladéshay anjári wahd + Bangaladéshay garmági wahd + + + + + Buthánay wahd + + + + + Boliwiáay wahd - Brázilay wahd - Brázilay anjári wahd - Brázilay garmági wahd + Brázilay wahd + Brázilay anjári wahd + Brázilay garmági wahd + + + + + Brunáiay wahd + + + + + Kap Wardéay wahd + Kap Wardéay anjári wahd + Kap Wardéay garmági wahd + + + + + Chamorróay wahd + + + + + Chatam wahd + Chatam anjári wahd + Chatam róchi wahd + + + + + Chilayay wahd + Chilayay anjári wahd + Chilayay garmági wahd + + + + + Chinay wahd + Chinay anjári wahd + Chinay róchi wahd + + + + + Kresmes Islánday wahd + + + + + Kukus Islánday wahd + + + + + Kolambiáay wahd + Kolambiáay anjári wahd + Kolambiáay garmági wahd + + + + + Kuk Islánday wahd + Kuk Islánday anjári wahd + Kuk Islánday ném-garmági wahd + + + + + Kyubáay wahd + Kyubáay anjári wahd + Kyubáay róchay wahd + + + + + Dawisay wahd + + + + + Dumont Urwilay wahd + + + + + Ródarátki Timuray wahd + + + + + Isthar Islánday wahd + Isthar Islánday anjári wahd + Isthar Islánday garmági wahd + + + + + Ekwádóray wahd - Delgáhi Yuropay wahd - Delgáhi Yuropay anjári wahd - Delgáhi Yuropay garmági wahd + Delgáhi Yuropay wahd + Delgáhi Yuropay anjári wahd + Delgáhi Yuropay garmági wahd - Ródarátki Yuropay wahd - Ródarátki Yuropay anjári wahd - Ródarátki Yuropay garmági wahd + Ródarátki Yuropay wahd + Ródarátki Yuropay anjári wahd + Ródarátki Yuropay garmági wahd - Démterén Ródarátki Yuropay anjári wahd + Démterén Ródarátki Yuropay anjári wahd - Rónendi Yuropay wahd - Rónendi Yuropay anjári wahd - Rónendi Yuropay garmági wahd + Rónendi Yuropay wahd + Rónendi Yuropay anjári wahd + Rónendi Yuropay garmági wahd + + + + + Palklánd Islánday wahd + Palklánd Islánday anjári wahd + Palklánd Islánday garmági wahd + + + + + Fijiay wahd + Fijiay anjári wahd + Fijiay garmági wahd + + + + + Paránsi Gwináay wahd + + + + + Zerbári Paransi o Antárktikáay wahd + + + + + Galapagosay wahd + + + + + Gambiray wahd + + + + + Járjiáay wahd + Járjiáay anjári wahd + Járjiáay garmági wahd + + + + + Gelbart Islánday wahd + + + + + Grinwech Min Wahd + + + + + Ródarátki Grinlánday wahd + Ródarátki Grinlánday anjári wahd + Ródarátki Grinlánday garmági wahd + + + + + Rónendi Grinlánday wahd + Rónendi Grinlánday anjári wahd + Rónendi Grinlánd Garmági Wahd + + + + + Khalijay anjári wahd + + + + + Guyánáay wahd - Hawái/Alushiay wahd - Hawái/Alushiay anjári wahd - Hawái/Alushiay garmági wahd + Hawái/Alushiay wahd + Hawái/Alushiay anjári wahd + Hawái/Alushiay garmági wahd + + + + + Háng Kángay wahd + Háng Kángay anjári wahd + Háng Kángay garmági wahd + + + + + Hówday wahd + Hówday anjári wahd + Hówday garmági wahd + + + + + Henday anjári wahd + + + + + Hendi zeray wahd + + + + + Hendóchinay wahd - Delgáhi Endhonishiáay anjári wahd + Delgáhi Endhonishiáay anjári wahd - Ródarátki Endhonishiáay anjári wahd + Ródarátki Endhonishiáay anjári wahd - Rónendi Endhonishiáay anjári wahd + Rónendi Endhonishiáay anjári wahd + + + + + Éránay wahd + Éránay anjári wahd + Éránay róchi wahd - Erkuskay wahd - Erkuskay anjári wahd - Erkuskay garmági wahd + Erkuskay wahd + Erkuskay anjári wahd + Erkuskay garmági wahd + + + + + Esráilay wahd + Esráilay anjári wahd + Esráilay róchi wahd + + + + + Jápánay wahd + Jápánay anjári wahd + Jápánay róchi wahd + + + + + Kázakestánay wahd - Ródarátki Kázekestánay anjári wahd + Ródarátki Kázekestánay anjári wahd - Rónendi Kázekestánay anjári wahd + Rónendi Kázekestánay anjári wahd + + + + + Kóriáay wahd + Kóriáay anjári wahd + Kóriáay róchi wahd + + + + + Kósraiay wahd - Krasnóyáskay wahd - Krasnóyáskay anjári wahd - Krasnóyáskay garmági wahd + Krasnóyáskay wahd + Krasnóyáskay anjári wahd + Krasnóyáskay garmági wahd + + + + + Kargezestánay wahd + + + + + Liné Islánday wahd - Ástréliáay, Ládhaway wahd - Ástréliáay, Ládhaway anjári wahd - Ástréliáay, Ládhaway garmági wahd + Ástréliáay, Ládhaway wahd + Ástréliáay, Ládhaway anjári wahd + Ástréliáay, Ládhaway garmági wahd - Mágadánay wahd - Mágadánay anjári wahd - Mágadánay garmági wahd + Mágadánay wahd + Mágadánay anjári wahd + Mágadánay garmági wahd + + + + + Malishiáay wahd + + + + + Máldipay wahd + + + + + Markésásay wahd + + + + + Márshal Islánday wahd + + + + + Muritániáay wahd + Muritániáay anjári wahd + Muritániáay garmági wahd + + + + + Mawsonay wahd - Árámzeri Meksikóay wahd - Árámzeri Meksikóay anjári wahd - Árámzeri Meksikóay garmági wahd + Árámzeri Meksikóay wahd + Árámzeri Meksikóay anjári wahd + Árámzeri Meksikóay garmági wahd + + + + + Ulánbátaray wahd + Ulánbátaray anjári wahd + Ulánbátaray garmági wahd - Máskóay wahd - Máskóay anjári wahd - Máskóay garmági wahd + Máskóay wahd + Máskóay anjári wahd + Máskóay garmági wahd + + + + + Myanmáray wahd + + + + + Nauruay wahd + + + + + Népálay wahd + + + + + Nyu Kaledóniáay wahd + Nyu Kaledóniáay anjári wahd + Nyu Kaledóniáay garmági wahd + + + + + Niu Zilánday wahd + Niu Zilánday anjári wahd + Niu Zilánday róchi wahd - Nipándlaynday wahd - Nipándlaynday anjári wahd - Nipándlaynday garmági wahd + Nipándlaynday wahd + Nipándlaynday anjári wahd + Nipándlaynday garmági wahd + + + + + Niuay wahd + + + + + Nurpolk Islánday wahd + Nurpolk Islánday anjári wahd + Nurpolk Islánday róchi wahd - Noronáay wahd - Noronáay anjári wahd - Noronáay garmági wahd + Noronáay wahd + Noronáay anjári wahd + Noronáay garmági wahd - Nawásibiskay wahd - Nawásibiskay anjári wahd - Nawásibiskay garmági wahd + Nawásibiskay wahd + Nawásibiskay anjári wahd + Nawásibiskay garmági wahd - Ómskay wahd - Ómskay anjári wahd - Ómskay garmági wahd + Ómskay wahd + Ómskay anjári wahd + Ómskay garmági wahd + + + + + Pákestánay wahd + Pákestánay anjári wahd + Pákestánay garmági wahd + + + + + Paláuay wahd + + + + + Pápuá Niu Giniáay wahd + + + + + Paragóayay wahd + Paragóayay anjári wahd + Paragóayay garmági wahd + + + + + Péróay wahd + Péróay anjári wahd + Péróay garmági wahd + + + + + Pelpinay wahd + Pelpinay anjári wahd + Pelpinay garmági wahd + + + + + Phoeneks Islánday wahd + + + + + St. Péri o Mikwélin wahd + St. Péri o Mikwélin ajári wahd + St. Péri o Mikwélin róchi wahd + + + + + Pitkarénay wahd + + + + + Pónpiay wahd + + + + + Pyongyángay wahd + + + + + Réyunianay wahd + + + + + Rothéráay wahd + + + + + Sakhálinay wahd + Sakhálinay anjári wahd + Sakhálinay garmági wahd + + + + + Samóáway wahd + Samóáway anjári wahd + Samóáway róchi wahd + + + + + Séchelesay wahd + + + + + Sengápuray anjári wahd + + + + + Solomán Islánday wahd + + + + + Zerbári Járjiáay wahd + + + + + Surinaymay wahd + + + + + Syówáay wahd + + + + + Tahitiay wahd + + + + + Táipiay wahd + Táipiay anjári wahd + Táipiay róchi wahd + + + + + Tájekestánay wahd + + + + + Tokeláuay wahd + + + + + Tongáay wahd + Tongáay anjári wahd + Tongáay garmági wahd + + + + + Chukay wahd + + + + + Torkmenestánay wahd + Torkmenestánay anjári wahd + Torkmenestánay garmági wahd + + + + + Tuwáluay wahd + + + + + Yurógóayay wahd + Yurógóayay anjári wahd + Yurógóayay garmági wahd + + + + + Ozbekestánay wahd + Ozbekestánay anjári wahd + Ozbekestánay garmági wahd + + + + + Wánuátuay wahd + Wánuátuay anjári wahd + Wánuátuay garmági wahd + + + + + Wenezwéláay wahd - Waládiwástókay wahd - Waládiwástókay anjári wahd - Waládiwástókay garmági wahd + Waládiwástókay wahd + Waládiwástókay anjári wahd + Waládiwástókay garmági wahd + + + + + Wolgograday wahd + Wolgograday anjári wahd + Wolgograday garmági wahd + + + + + Wostokay wahd + + + + + Wayk Islánday wahd + + + + + Wallis o Futunáay wahd - Yákuskay wahd - Yákuskay anjári wahd - Yákuskay garmági wahd + Yákuskay wahd + Yákuskay anjári wahd + Yákuskay garmági wahd - Yakátrinborgay wahd - Yakátrinborgay anjári wahd - Yakátrinborgay garmági wahd + Yakátrinborgay wahd + Yakátrinborgay anjári wahd + Yakátrinborgay garmági wahd + + + + + Yukón wahd + + + + 0H + 0H + 00H + 00H + 000H + 000H + 0Kr + 0Kr + 00Kr + 00Kr + 000Kr + 000Kr + + + + + 0H + 0H + 00H + 00H + 000H + 000H + 0Kr + 0Kr + 00Kr + 00Kr + 000Kr + 000Kr + + + + + + + ¤ 0H + ¤ 0H + ¤ 00H + ¤ 00H + ¤ 000H + ¤ 000H + ¤ 0Kr + ¤ 0Kr + ¤ 00Kr + ¤ 00Kr + ¤ 000Kr + ¤ 000Kr + + + + + Emáráti Darham + Emáráti darham + Emáráti darham + + + Awgáni Awgáni + Awgáni Awgáni + Awgáni Awgáni + AWGA + + + Albániái Lek + Albániái lek + Albániái lek + ALBL + + + Árminiái Dram + Árminiái dram + Árminiái dram + ARMD + + + Nedarlándi Antilli Gelder + Nedarlándi Antilli gelder + Nedarlándi Antilli gelder + NLAG + + + Angólái Kwanzá + Angólái kwanzá + Angólái kwanzá + ANGK + + + Arjentinái Paysó + Arjentinái paysó + Arjentinái paysó + ARJP + + + Ástráliái Dhálar + Ástráliái dhálar + Ástráliái dhálar + + + Arubi Flórin + Arubi flórin + Arubi flórin + ARBF + + + Ázerbáijáni Manat + Ázerbáijáni manat + Ázerbáijáni manat + AZRM + + + Bósniá-Herzigówinái Badali Mark + Bósniá-Herzigówinái badali mark + Bósniá-Herzigówinái badali mark + BHBM + + + Barbadi Dhálar + Barbadi dhálar + Barbadi dhálar + BRBD + + + Bangaladéshi Thakká + Bangaladéshi thakká + Bangaladéshi thakká + BGDT + + + Bulgáriái Lew + Bulgáriái lew + Bulgáriái lew + BLGL + + + Bahreni Dinár + Bahreni dinár + Bahreni dinár + + + Burundi Fránk + Burundi fránk + Burundi fránk + BRDF + + + Bermudá Dhálar + Bermudá Dhálar + Bermudá Dhálar + BRMD + + + Brunái Dhálar + Brunái dhálar + Brunái dhálar + BRND + + + Boliwiái Boliwiánó + Boliwiái boliwiánó + Boliwiái boliwiánó + BLWB + - Brázili riál + Brázili riál + + + Bahami Dhálar + Bahami dhálar + Bahami dhálar + BHMD + + + Butháni Ngultrum + Butháni ngultrum + Butháni ngultrum + BTNN + + + Botswánái Pulá + Botswánái pulá + Botswánái pulá + BTSP + + + Bélárusi Rubel + Bélárusi rubel + Bélárusi rubel + BLRR + + + Belizé Dhálar + Belizé dhálar + Belizé dhálar + BLZD + + + Kaynadhái Dhálar + Kaynadhái dhálar + Kaynadhái dhálar + KN$ + + + Kángói Fránk + Kángói fránk + Kángói fránk + KNGF + + + Swizi Fránk + Swizi fránk + Swizi fránk + SWZF + + + Chilayi Paysó + Chilayi paysó + Chilayi paysó + + + Chini Yuán (Ápshór) + Chini yuán (Ápshór) + Chini yuán (Ápshór) + CNYÁ + + + Chini Yuán + Chini yuán + Chini yuán + CHNY + + + Kolambiái Paysó + Kolambiái paysó + Kolambiái paysó + KLBP + + + Kóstá Rikái Kolón + Kóstá Rikái Kolón + Kóstá Rikái Kolón + KRK + + + Kyubái Badali Paysó + Kyubái badali paysó + Kyubái badali paysó + KBKP + + + Kyubái Paysó + Kyubái paysó + Kyubái paysó + CBAP + + + Kayp Werdi Eskudó + Kayp Werdi eskudó + Kayp Werdi eskudó + KWRE + + + Chek Koruná + Chek koruná + Chek koruná + CHKK + + + Djebuti Fránk + Djebuti fránk + Djebuti fránk + DJBF + + + Danmárki Koron + Danmárki koron + Danmárki koron + DNMK + + + Dominiki Paysó + Dominiki paysó + Dominiki paysó + DOMP + + + Aljiriái Dinár + Aljiriái dinár + Aljiriái dinár + ALJD + + + Mesri Pawndh + Mesri pawndh + Mesri pawndh + MSRP + + + Eritiriái Nakfá + Eritiriái nakfá + Eritiriái nakfá + ERTN + + + Etiupiái Birr + Etiupiái birr + Etiupiái birr + ETPB - yuró + Yuró + + + Fiji Dhálar + Fiji dhálar + Fiji dhálar + + + Fálklánd Islándi Pawndh + Fálklánd Islándi pawndh + Fálklánd Islándi pawndh - Bartáni pawndh + Bartáni pawndh + BRTP + + + Járjiái Lari + Járjiái lari + Járjiái lari + JRJL + + + Gánái Sédi + Gánái sédi + Gánái sédi + GNAS + + + Gibraltar Pawndh + Gibraltar pawndh + Gibraltar pawndh + GBRP + + + Gambiái Dalasi + Gambiái dalasi + Gambiái dalasi + GMBD + + + Gwiniái Fránk + Gwiniái fránk + Gwiniái fránk + GWNF + + + Gwátemálái Kwetzal + Gwátemálái Kwetzal + Gwátemálái Kwetzal + GTMK + Kw + + + Góyánái Dhálar + Góyánái dhálar + Góyánái dhálar + + + Háng Káng Dhálar + Háng Káng dhálar + Háng Káng dhálar + HGKD + + + Hondurái Lempirá + Hondurái lempirá + Hondurái lempirá + HNDL + Lp + + + Króáshiái Kuná + Króáshiái kuná + Króáshiái kuná + KRSK + + + Haiti Gurde + Haiti gurde + Haiti gurde + HTNG + + + Hungáriái Forint + Hungáriái forint + Hungáriái forint + HGRF + + + Endhónishiái Rupiá + Endhónishiái rupiá + Endhónishiái rupiá + ENDR + + + Esráili Nókén Shekel + Esráili nókén shekel + Esráili nókén shekel - Hendostáni rupi + Hendostáni Rupi + HNDR + + + Eráki Dinár + Eráki dinár + Eráki dinár - Éráni ryál - ریال + Éráni Ryál + ERNR + + + Isláni Króná + Isláni króná + Isláni króná + ISLK + + + Jamáiki Dhálar + Jamáiki dhálar + Jamáiki dhálar + JMKD + + + Ordoni Dinár + Ordoni dinár + Ordoni dinár - Jápáni yen - ¥ + Jápáni Yen + ¥ + + + Kinyái Shilling + Kinyái shilling + Kinyái shilling + KINS + + + Kargestáni Som + Kargestáni som + Kargestáni som + KGSS + + + Kambódhiái Riél + Kambódhiái riél + Kambódhiái riél + KMBR + + + Komóriái Éránk + Komóriái fránk + Komóriái fránk + KMRF + + + Shemáli Kóriái Won + Shemáli Kóriái won + Shemáli Kóriái won + SHKW + + + Zerbári Kóriái Won + Zerbári Kóriái won + Zerbári Kóriái won + ZBKW + + + Kwayti Dinár + Kwayti dinár + Kwayti dinár + + + Kayman Islándi Dhálar + Kayman Islándi dhálar + Kayman Islándi dhálar + KMID + + + Kázakestáni Tengé + Kázakestáni tengé + Kázakestáni tengé + KZKT + + + Laótiái Kip + Laótiái kip + Laótiái kip + LTKK + + + Lebnáni Pawndh + Lebnáni pawndh + Lebnáni pawndh + LBNP + + + Sri Lankái Rupi + Sri Lankái rupi + Sri Lankái rupi + SRLR + + + Láibiriái Dhálar + Láibiriái dhálar + Láibiriái dhálar + LBRD + + + Lesótó Lóti + Lesótó lóti + Lesótó lóti + LSTL + + + Libyái Dinár + Libyái dinár + Libyái dinár + LBYD + + + Mórokói Darham + Mórokói darham + Mórokói darham + MRKD + + + Moldówi Leu + Moldówi leu + Moldówi leu + MLDL + + + Malagasi Ariári + Malagasi ariári + Malagasi ariári + MLGA + + + Makduniái Dinár + Makduniái dinár + Makduniái dinár + MKDD + + + Myanmár Kyát + Myanmár kyát + Myanmár kyát + MNMK + + + Mongóliái Tugrik + Mongóliái tugrik + Mongóliái tugrik + MNGT + + + Makani Pataká + Makani pataká + Makani pataká + MKNP + + + Mauritániái Ugwiyá + Mauritániái ugwiyá + Mauritániái ugwiyá + MRTU + + + Muritániái Rupi + Muritániái rupi + Muritániái rupi + MURR + + + Máldipi Rupiyá + Máldipi rupiyá + Máldipi rupiyá + MLDR + + + Malawi Kwachá + Malawi kwachá + Malawi kwachá + MLWK + + + Meksikói Paysó + Meksikói paysó + Meksikói paysó + MKS$ + + + Malishiái Ringgit + Malishiái ringgit + Malishiái ringgit + MLRG + + + Mózambiki Metikal + Mózambiki metikal + Mózambiki metikal + MZBM + + + Namibiái Dhálar + Namibiái dhálar + Namibiái dhálar + NMBD + + + Náijiriái Nairá + Náijiriái nairá + Náijiriái nairá + NJRN + + + Nikárágóái Kordobá + Nikárágóái kordobá + Nikárágóái kordobá + NKGC + + + Nárwéji Koron + Nárwéji koron + Nárwéji koron + NRWK + + + Népáli Rupi + Népáli rupi + Népáli rupi + NPLR + + + Nyu Zilánd Dhálar + Nyu Zilánd dhálar + Nyu Zilánd dhálar + + + Ománi Riál + Ománi riál + Ománi riál + + + Panamániái Balbóá + Panamániái balbóá + Panamániái balbóá + PNMB + + + Péruwi Sól + Péruwi sól + Péruwi sól + PRSL + + + Pápuá Nyu Gwini Kiná + Pápuá Nyu Gwini kiná + Pápuá Nyu Gwini kiná + + + Pelpini Paysó + Pelpini paysó + Pelpini paysó + PLPP - Pákestáni rupi - Rs + Pákestáni Rupi + PKRS + + + Pólándi Zlóti + Pólándi zlóti + Pólándi zlóti + PLNZ + + + Payráguyái Gwarani + Payráguyái gwarani + Payráguyái gwarani + PRGG + + + Gatari Riál + Gatari riál + Gatari riál + + + Rumániái Leu + Rumániái leu + Rumániái leu + RMNL + + + Sarbiái Dinár + Sarbiái dinár + Sarbiái dinár + SRBD - Rusi rubel - + Rusi Rubel + RUSR + + + Rwándái Fránk + Rwándái fránk + Rwándái fránk + RWDF + + + Saudi Riál + Saudi riál + Saudi riál + + + Solomán Islánd Dhálar + Solomán Islánd dhálar + Solomán Islánd dhálar + + + Seychelli Rupi + Seychelli rupi + Seychelli rupi + SCLR + + + Sudáni Pawndh + Sudáni pawndh + Sudáni pawndh + SDNP + + + Swidi Koron + Swidi koron + Swidi koron + SWDK + + + Singápur Dhálar + Singápur dhálar + Singápur dhálar + SGPD + + + St. Helénái Pawndh + St. Helénái pawndh + St. Helénái pawndh + SHLP + + + Siérá Leóni León + Siérá Leóni león + Siérá Leóni león + SLNL + + + Siérá Leóni León (1964—2022) + Siérá Leóni león (1964—2022) + Siérá Leóni león (1964—2022) + SRLL + + + Sómáli Shilling + Sómáli shilling + Sómáli shilling + SÓMS + + + Surinami Dhálar + Surinami dhálar + Surinami dhálar + SRND + + + Zerbári Sudáni Pawndh + Zerbári Sudáni pawndh + Zerbári Sudáni pawndh + ZRSP + + + Sáó Tómé o Prensip Dobrá + Sáó Tómé o Prensip dobrá + Sáó Tómé o Prensip dobrá + STPD + + + Suriái Pawndh + Suriái pawndh + Suriái pawndh + SURP + + + Swázi Lilangeni + Swázi lilangeni + Swázi lilangeni + SWZL + + + Tái Baht + Tái baht + Tái baht + TÁIB + + + Tájekestáni Somoni + Tájekestáni somoni + Tájekestáni somoni + + + TRKM + Torkmánestáni manat + Torkmánestáni manat + + + Tunisi Dinár + Tunisi dinár + Tunisi dinár + TNSD + + + Tongan Pángá + Tongan pángá + Tongan pángá + + + Torki Lirá + Torki lirá + Torki lirá + TRKL + + + Trinidadi o Tobagó Dhálar + Trinidadi o Tobagó dhálar + Trinidadi o Tobagó dhálar + TDTD + + + Nyu Táiwán Dhálar + Nyu Táiwán dhálar + Nyu Táiwán dhálar + NTWD + + + Tanzániái Shilling + Tanzániái shilling + Tanzániái shilling + TNZS + + + Yukrayni Hriwniá + Yukrayni hriwniá + Yukrayni hriwniá + YKNH + + + Yugandhái Shilling + Yugandhái shilling + Yugandhái shilling + YUGS - Amriki dhálar - $ + Amriki dhálar + $ + + + Yurógóyái Paysó + Yurógóyái paysó + Yurógóyái paysó + YRGP + + + Ozbekestáni Som + Ozbekestáni som + Ozbekestáni som + OZBS + + + Wénezwélái Boliwar + Wénezwélái boliwar + Wénezwélái boliwar + WNZB + + + Wietnámi Dong + Wietnámi dong + Wietnámi dong + WTND + + + Wanuátu Wátu + Wanuátu wátu + Wanuátu wátu + + + Samóan Talá + Samóan talá + Samóan talá + + + Delgáhi Aprikái CFA Fránk + Delgáhi Aprikái CFA fránk + Delgáhi Aprikái CFA fránk + DARF + + + Ródarátki Karibiái Dhálar + Ródarátki Karibiái dhálar + Ródarátki Karibiái dhálar + RKB$ + + + Rónendi Aprikái CFA Fránk + Rónendi Aprikái CFA fránk + Rónendi Aprikái CFA fránk + RACF + + + CFP Fránk + CFP fránk + CFP fránk - Nazántagén zarr + Nazántagén Zarr XXX + + Yamani Riál + Yamani riál + Yamani riál + + + Zerbári Aprikái Rand + Zerbári Aprikái rand + Zerbári Aprikái rand + ZAPR + + + Zambiái Kwachá + Zambiái kwachá + Zambiái kwachá + ZMBK + + + + + karn + {0} karn + {0} karn + + + Dahekk + {0} Dahekk + {0} Dahekk + + + sál + {0} sál + {0} sál + {0}/sálé + + + chárek + {0} chárek + {0} chárek + {0}/chárek + + + máh + {0} máh + {0} máh + {0}/máhé + + + haptag + {0} haptag + {0} haptag + {0}/haptagé + + + róch + {0} róch + {0} róch + {0}/róché + + + sáhat + {0} sáhat + {0} sáhat + {0}/sáhaté + + + meletth + {0} meletth + {0} meletth + {0}/meletth + + + sekendh + {0} sekendh + {0} sekendh + {0}/sekendhé + + + milisekendh + {0} milisekendh + {0} milisekendh + + + máikrósekendh + {0} máikrósekendh + {0} máikrósekendh + + + nénósekendh + {0} nénósekendh + {0} nénósekendh + + + pks + {0} pks + {0} pks + + + ppsm + {0} ppsm + {0} ppsm + + + kilómitar + {0}/kilómitaré + + + mitar + {0} mitar + {0} mitar + {0}/mitaré + + + désimitar + {0} désimitar + {0} désimitar + + + santimitar + {0} santimitar + {0} santimitar + {0}/santimitaré + + + milimitar + + + máikrómitar + {0} máikrómitar + {0} máikrómitar + + + nénómitar + {0} nénómitar + {0} nénómitar + + + pikómitar + {0} pikómitar + {0} pikómitar + + + Skándi-mil + {0} Skándi-mil + {0} Skándi-mil + + + noktah + {0} noktah + {0} noktah + + + shap + {0} shap + {0} shap + {0}/shapé + + + némag + {0} Ródarátk + {0} Shemál + {0} Zerbár + {0} Rónend + + + + + k + {0} k + {0} k + + + Dah + {0} Dah + {0} Dah + + + sál + {0} sál + {0} sál + {0}/sál + + + chárek + {0} chárek + {0} chárek + {0}/chárek + + + máh + {0} máh + {0} máh + {0}/máhé + + + haptag + {0} haptag + {0} haptag + {0}/haptagé + + + róch + {0} róch + {0} róch + {0}/róché + + + st + {0} sáhat + {0} sáhat + {0}/sáhaté + + + meletth + {0} meletth + {0} meletth + {0}/meletth + + + sekendh + {0} sekendh + {0} sekendh + {0}/sekendhé + + + {0} milisekendh + {0} milisekendh + + + {0} máikrósekendh + {0} máikrósekendh + + + nénósekendh + {0} nénósekendh + {0} nénósekendh + + + pks + {0} pks + {0} pks + + + ppsm + {0} ppsm + {0} ppsm + + + {0}/kmé + + + mitar + {0} mitar + {0} mitar + {0}/mitaré + + + {0} désimitar + {0} désimitar + + + sm + {0} santimitar + {0} sm + {0}/smé + + + {0} pikómitar + {0} pikómitar + + + {0} Skándi-mil + {0} Skándi-mil + + + nk + {0} nk + {0} noktah + + + shap + {0} shap + {0} shap + {0}/shapé + + + némag + {0} Ródarátk + {0} Shemál + {0} Zerbár + {0} Rónend + + + + + k + {0} k + {0} k + + + Dah + {0} Dah + {0} Dah + + + sl + {0} sál + {0} sál + {0}/sál + + + chárek + {0} chárek + {0} chárek + {0}/chárek + + + máh + {0} máh + {0} máh + {0}/máhé + + + haptag + {0} haptag + {0} haptag + {0}/haptagé + + + róch + {0} róch + {0} róch + {0}/róché + + + sáhat + {0} sáhat + {0} sáhat + {0}/sáhaté + + + meletth + {0} meletth + {0} meletth + {0}/meletth + + + sekendh + {0} sekendh + {0} sekendh + {0}/sekendhé + + + milisekendh + {0} milisekendh + {0} milisekendh + + + máikrósekendh + {0} máikrósekendh + {0} máikrósekendh + + + nénósekendh + {0} nénósekendh + {0} nénósekendh + + + pks + {0} pks + {0} pks + + + ppsm + {0} ppsm + {0} ppsm + + + {0}/kmé + + + mitar + {0} mitar + {0} mitar + {0}/mitaré + + + {0} désimitar + {0} désimitar + + + santimitar + {0} santimitar + {0} santimitar + {0}/santimitar + + + máikrómitar + {0} máikrómitar + {0} máikrómitar + + + nénómitar + {0} nénómitar + {0} nénómitar + + + pikómitar + {0} pikómitar + {0} pikómitar + + + Skándi-mil + {0} Skándi-mil + {0} Skándi-mil + + + noktah + {0} noktah + {0} noktah + + + shap + {0} shap + {0} shap + {0}/shapé + + + némag + {0} Ródarátk + {0} Shemál + {0} Zerbár + {0} Rónend + + + haw:h na:n + + und bal + + Karima + + + Karima + Balóch + + + Karima + Mehráb + Balóch + + + Wj. + Monir Mómen + Ostád + Monir Mómen + ∅∅∅ + Balóch + ∅∅∅ + Jr + ∅∅∅ + + + Sinbad + + + Käthe + Müller + + + Zäzilia + Hamish + Stöber + + + Prop. Dr. + Ada Cornelia + Neele + César Martín + von + Brühl + González Domingo + Jr + MD DDS + + diff --git a/make/data/cldr/common/main/be.xml b/make/data/cldr/common/main/be.xml index 8c1ed8788d2..c7a7afa6494 100644 --- a/make/data/cldr/common/main/be.xml +++ b/make/data/cldr/common/main/be.xml @@ -58,6 +58,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ біслама эда блэкфут + аніі бамбара бенгальская тыбецкая @@ -242,6 +243,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ комі корнская квакіутль + куві кіргізская лацінская ладына @@ -250,8 +252,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ лезгінская ганда лімбургская + лігурская лілуэт лакота + ламбардская лінгала лаоская монга @@ -417,6 +421,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ кангалезская суахілі каморская сірыйская + сілезская тамільская паўднёвая тутчонэ тэлугу @@ -456,7 +461,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ узбекская ваі венда + венецыянская в’етнамская + макуа валапюк вунджо валонская @@ -468,6 +475,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ву калмыцкая коса + кангры сога янгбэн йемба @@ -476,6 +484,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ньенгату кантонскі дыялект кітайскай кітайская, кантонскі дыялект + чжуанская сапатэк стандартная мараканская тамазіхт кітайская @@ -702,7 +711,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Востраў Мэн Індыя Брытанская тэрыторыя ў Індыйскім акіяне - архіпелаг Чагас + Архіпелаг Чагас Ірак Іран Ісландыя @@ -2170,6 +2179,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Час: {0} Летні час: {0} Стандартны час: {0} + + Ганалулу + Універсальны каардынаваны час @@ -2907,9 +2919,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Улан-Батар - - Чайбалсан - Макаа @@ -3309,9 +3318,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ном - - Ганалулу - Анкарыдж @@ -3656,13 +3662,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Летні час Кітая - - - Час Чайбалсана - Стандартны час Чайбалсана - Летні час Чайбалсана - - Час вострава Каляд @@ -3901,6 +3900,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Летні час Японіі + + + Казахстанскі час + + Усходнеказахстанскі час @@ -4471,10 +4475,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 трлн ¤ - {0} {1} - {0} {1} - {0} {1} - {0} {1} @@ -6932,6 +6932,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ брыт. кварты + + частак на мільярд + {0} частка на мільярд + {0} часткі на мільярд + {0} частак на мільярд + {0} часткі на мільярд + + + ночы + {0} ноч + {0} ночы + {0} начэй + {0} ночы + {0} за ноч + кірунак свету {0} усходняй даўгаты @@ -8285,6 +8300,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} брыт. кварт {0} брыт. кварты + + частак/мільярд + {0} ч/млрд + {0} ч/млрд + {0} ч/млрд + {0} ч/млрд + + + ночы + {0} ноч + {0} ноч + {0} начэй + {0} ночы + {0}/ноч + кірунак {0} усх. д. @@ -8324,6 +8354,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} дэс. лыжак {0} дэс. лыжкі + + ч/млрд + {0} ч/млрд + {0} ч/млрд + {0} ч/млрд + {0} ч/млрд + + + ночы + {0} ноч + {0} ночы + {0} начэй + {0} ночы + {0}/ноч + {0} У {0} Пн diff --git a/make/data/cldr/common/main/be_TARASK.xml b/make/data/cldr/common/main/be_TARASK.xml index e39083692d7..cb640562472 100644 --- a/make/data/cldr/common/main/be_TARASK.xml +++ b/make/data/cldr/common/main/be_TARASK.xml @@ -1546,13 +1546,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Летні час Кітаю - - - Час Чайбалсану - Змоўчны час Чайбалсану - Летні час Чайбалсану - - Час вострава Раства diff --git a/make/data/cldr/common/main/bew.xml b/make/data/cldr/common/main/bew.xml index 30adaac310e..5a270c061da 100644 --- a/make/data/cldr/common/main/bew.xml +++ b/make/data/cldr/common/main/bew.xml @@ -97,7 +97,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Algonkin Karolina Cèk Kri Rawa - Slawen Gerèja + Slawen Geréja Cuwas Walès Dèn @@ -109,7 +109,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Dogrib Jarma Dograb - Sorben Bawa + Soreb Bawa Duala Diwéhi Jola-Poni @@ -123,11 +123,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Inggris Inggris (Britani) Inggris (Kerajaan Rempug) - Èspèranto + Sepèranto Spanyol Spanyol (Èropa) - Èst - Basken + Èstlan + Basek Èwondo Parsi Parsi Dari @@ -135,16 +135,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic Pin Pilipèn Piji - Perower + Pèrower Pon Prasman Prasman Kajen - Pris Lor + Peris Lor Priuli - Pris Kulon + Peris Kulon Ir Gang - Gaèlik Skot + Gaèlik Sekot Gé’ès Gilbet Galisi @@ -166,14 +166,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic Mong Mong Njua Kroat - Sorben Atas - Kréol Haiti + Soreb Atas + Peranakan Haiti Honggari Hupa Halkomélem Lemènder - Hèrèro - Interlingua + Héréro + Anterlida Iban Ibibio Indonésia @@ -182,7 +182,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic I Sucoan Inuktitut Kanada Kulon Iloko - Inggusèti + Inggus Ido Èslan Itali @@ -193,6 +193,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Masamé Jawa Géorgi + Karakalpak Kabili Kacin Kajé @@ -220,7 +221,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kepèle Kenuri Karacé-Balkar - Karèli + Karéli Kuruk Kasmir Sambala @@ -233,7 +234,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kuakuala Kuwi Kirgis - Latin + Latèn Spanyol Yahudi Langgi Leksembereh @@ -243,6 +244,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Liguri Lilowèt Lakota + Ladin Lombardi Linggala Laos @@ -251,6 +253,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Lur Lor Samia Litowen + Lètgal Luba-Katangga Luba-Lulua Lunda @@ -271,6 +274,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Makhuwa-Mèto Mèta’ Marsal + Pèrsental Maori Mikmak Minangkabo @@ -285,7 +289,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Melayu Malta Mundang - Beberapa basa + Banyak basa Muskogi Miranda Birma @@ -303,8 +307,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ndongga Nias Niué - Belanda - Plam + Welanda + Pelam Ngumba Nor Baru Nggièmbong @@ -315,7 +319,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Soto Lor Nuwer Nabaho - Cicèwa + Céwa Nyangkolé Oksitan Ojibwé Lor-kulon @@ -336,7 +340,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Pijin Pol Malisèt-Pasamakuodi - Près + Perès Pastun Portugis Portugis (Èropa) @@ -364,10 +368,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic Sanggu Sardèn Sisilian - Skot - Sind + Sekot + Sindi Kurdi Kidul - Samen Lor + Sami Lor Séna Koyra Sèni Sanggo @@ -432,7 +436,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Tahiti Tuwin Bèrbèr Atlas Tenga - Udmut + Udmuret Uigur Ukrain Umbundu @@ -464,6 +468,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Nyè’èngatu Kanton Tionghoa, Kanton + Cong Bèrbèr Maroko Pakem Tionghoa Tionghoa, Mandarin @@ -514,7 +519,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + @@ -554,7 +559,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + @@ -670,23 +675,23 @@ CLDR data files are interpreted according to the LDML specification (http://unic Amrik Amrik Belèlir Karaiben - Asia Belètan - Asia Bekidul + Asia Wètan + Asia Kidul Asia Kidul-wètan - Èropa Bekidul - Ostralasia - Melanésia - Daèrah Mikronésia - Polinésia + Èropa Kidul + Ostralasi + Mélanési + Daèrah Mikronési + Polinési Asia Asia Tenga - Asia Bekulon + Asia Kulon Èropa - Èropa Belètan - Èropa Belèlir - Èropa Bekulon + Èropa Wètan + Èropa Lor + Èropa Kulon Aprika Kidulnya Sahara - Amrik Latin + Amrik Latèn Pulo Kenaèkan Andora Imarat Arab Rempug @@ -717,7 +722,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Bermuda Bruné Boliwi - Belanda Karaiben + Welanda Karaiben Brasil Bahama Butan @@ -765,13 +770,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic Spanyol Habsi (Ètiopi) Uni Èropa - Kawasan Èuro + Gutekan Èuro Pinlan Piji Pulo Paklan Pulo Paklan (Malbinas) - Mikronésia - Pulo Perower + Mikronési + Pulo Pèrower Prasman Gabon Kerajaan Rempug @@ -795,7 +800,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Guyana Daèrah Bestir Istimèwa Hongkong Hongkong - Pulo Heard èn McDonald + Pulo Hered èn MikDonal Honduras Kroasi Haiti @@ -854,7 +859,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Pulo Mariana Lor Martinik Moritani - Monsérat + Monsèrat Malta Moritius Maladéwa @@ -865,10 +870,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic Namibi Kalédoni Baru Nigèr - Pulo Norpok + Pulo Norpolek Nigéria Nikaragua - Belanda + Welanda Norwèhen Népal Nauru @@ -878,7 +883,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Oman Panama Péru - Polinésia Prasman + Polinési Prasman Papua Giné Baru (Papua Nugini) Pilipénen (Pilipina) Pakistan @@ -892,7 +897,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Palau Paragué Katar - Oséania Paling Luar + Oséani Luar Réunion Ruméni Sèrwi @@ -906,7 +911,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Singapur Sint-Héléna Slowéni - Spitbèrhen + Spitbèrhen & Jan Mayen Slowaki Gunung Singa (Sièra Léon) San Marino @@ -923,9 +928,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Tristang da Kunya Pulo Turks èn Kaikos Cad - Wilayah Kulon Prasman + Wilayah Kidul Prasman Togo - Muang-Tay + Siam Tajikistan Tokélau Timor Wètan @@ -939,8 +944,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Tansania Ukrain Uganda - Kepuloan AS Paling Luar - Perserèkatan Bangsa-Bangsa + Kepuloan Mentil AS Luar + Peserèkatan Bangsa-Bangsa Amrik Serèkat AS Urugué @@ -968,12 +973,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic èjaan Dèt Terdisionil èjaan Résia Pakem èjaan Dèt tahon 1996 - Prasman Pertengahan Akir ampé 1606 + Prasman Tenga Akir ampé 1606 Prasman Modèren Awal - Akadémis + Akademi Rancangan èjaan tahon 1943 Akuapèm - Penglatinan ALA-LC tahon 1997 + Penglatènan ALA-LC tahon 1997 logat Aluku Mupakat Èjaan Basa Portugis tahon 1990 Aranis @@ -983,7 +988,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic logat Balangka basa Ani kelompok logat Barlawèntu basa Tanjung Ijo Inggris Dasar - Ragem Buddha + Cara Buda Biskaye logat San Giorgio/Bila hurup Bohorič @@ -994,22 +999,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic hurup Dajnko Sèrwi paké lapal Èkawia Inggris Modèren Awal - Hurup Ponètis Antèrobangsa - Hurup Ponètis Kirshenbaum - Hurup Ponètis Amrik Lor - Hurup Ponètis Ural - Hurup Ponètis X-SAMPA + Hurup Pengucapan Antérobangsa + Hurup Pengucapan Kirshenbaum + Hurup Pengucapan Amrik Lor + Hurup Pengucapan Ural + Hurup Pengucapan X-SAMPA Gaskon Èjaan Oksitan Klasik Èjaan Oksitan Keitalian Èjaan Oksitan Mistral - penglatinan Hepburn + penglatènan Hepburn Nor Tinggi - Sistim Èjaan H Èspèranto + Sistim Èjaan H Sepèranto Sèrwi paké lapal Iyèkawia Èjaan Bulgari tahon 1899 Jawer - Penglatinan Jyutping + Penglatènan Jyutping Èjaan Umum Kociéwié Èjaan Pakem @@ -1055,13 +1060,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic Èjaan Kegabreg Èjaan Kegabreg Perbaèkan Èjaan Ulster - Hurup Ponètis Unifon - Ragem Wèda + Hurup Pengucapan Unifon + Cara Wéda Balènsi Waladèr Wiwaro-Alpen - Penglatinan Wade-Giles - Sistim Èjaan X Èspèranto + Penglatènan Wade-Giles + Sistim Èjaan X Sepèranto Almenak @@ -1938,7 +1943,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic - éra + jaman + + + jmn + + + jmn tahon @@ -2019,6 +2030,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic minggu + minggu marèn + ni minggu + minggu bèsok {0} minggu lagi @@ -2087,17 +2101,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic ari gawé - - Minggu kemarèn - ni Minggu - Minggu bèsok - - {0} Minggu lagi - - - {0} Minggu nyang liwat - - + Min marèn ni Min @@ -2322,13 +2337,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic - kawasan waktu + gutekan wayah - kawasan wkt + gutekan wyh - kwsn wkt + gtkn wyh @@ -2338,7 +2353,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Waktu Pakem {0} - Waktu Dunia Kekordinir + Waktu Kabèhan Ragem @@ -2757,9 +2772,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ulanbator - - Coibalsan - Makao @@ -3333,13 +3345,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Waktu Musim Pentèr Tiongkok - - - Waktu Coibalsan - Waktu Pakem Coibalsan - Waktu Musim Pentèr Coibalsan - - Waktu Pulo Natal @@ -3467,7 +3472,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Waktu Pulo Gilbert + Waktu Pulo Gilbet @@ -5121,7 +5126,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} hertz - em tipograpis + em tulisan piksel @@ -6109,11 +6114,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic bendèra bendèra makanan & minuman - pormat - pormat & apstan kosong - ragem lèbar-penu + bentukan + bentukan & apstan kosong + macem lèbar-tutug bentuk géomètris - ragem lèbar-paro + macem lèbar-paro hurup Han oyod Han Hanja @@ -6121,7 +6126,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic hurup Tionghoa (terdisionil) ati hurup jaman dulu - lèter jab. idéograpis + lèter jab. gambar arti gana Jepang kambun Kanji @@ -6130,7 +6135,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic lambang kaya’ hurup pemakéan kewates lanang - lambang matimatis + lambang ètung-ètungan hurup Wètan Tenga laèn-laèn hurup modèren @@ -6150,20 +6155,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic tenger baca panah kanan tenger atawa lambang - ragem kecil + macem kecil mèseman mèseman atawa orang hurup Asia Kidul hurup Asia Kidul-wètan apstan - olaraga + gerak badan lambang lambang tèhnis tenger nada - plesir - plesir atawa tempat + ladog + ladog atawa tempat panah atas - ragem + macem camo hurup idup cuaca hurup Asia Kulon diff --git a/make/data/cldr/common/main/bg.xml b/make/data/cldr/common/main/bg.xml index 57e2140549b..e1c6a42926e 100644 --- a/make/data/cldr/common/main/bg.xml +++ b/make/data/cldr/common/main/bg.xml @@ -66,6 +66,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ биколски бини сиксика + ании бамбара бенгалски тибетски @@ -217,7 +218,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ибан ибибио индонезийски - оксидентал + интерлингве игбо съчуански йи инупиак @@ -280,6 +281,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ коми корнуолски куак’уала + кови киргизки латински ладино @@ -290,9 +292,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ лезгински ганда лимбургски + лигурски лилоует лакота - ломбардски + ломбардски лингала лаоски монго @@ -480,6 +483,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ коморски класически сирийски сирийски + силезийски тамилски южен тучоне телугу @@ -528,7 +532,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ узбекски ваи венда + венециански виетнамски + макува волапюк вотик вунджо @@ -542,6 +548,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ву китайски калмик кхоса + кангри сога яо япезе @@ -1192,7 +1199,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ь ю я] [{а̀} ѐё ѝ {о̀} {у̀} {ъ̀} ы ѣ э {ю̀} {я̀} ѫ] - [А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ю Я] + [А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ю Я] [  \- ‑ , % ‰ + 0 1 2 3 4 5 6 7 8 9] [\- ‐‑ – — , ; \: ! ? . … '‘‚ "“„ ( ) \[ \] § @ * / ″ №] {0}… {1} @@ -2553,6 +2560,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Гринуич {0} – лятно часово време {0} – стандартно време + + Хонолулу + Координирано универсално време @@ -3171,7 +3181,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ендърбъри - Кантон + Кантон Киритимати @@ -3290,9 +3300,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Улан Батор - - Чойбалсан - Макао @@ -3692,9 +3699,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ноум - - Хонолулу - Анкъридж @@ -4046,13 +4050,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Китайско лятно часово време - - - Чойбалсанско време - Чойбалсанско стандартно време - Чойбалсанско лятно часово време - - Остров Рождество @@ -4298,6 +4295,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Петропавловск-Камчатски – лятно часово време + + + Казахстанско време + + Източноказахстанско време @@ -4823,8 +4825,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 трлн'.' ¤ - {0} {1} - {0} {1} @@ -5847,9 +5847,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ сиералеонски леоне - Сиералеонско леоне (1964—2022) - сиералеонско леоне (1964—2022) - сиералеонски леоне (1964—2022) + Сиералеонско леоне (1964 – 2022) + сиералеонско леоне (1964 – 2022) + сиералеонски леоне (1964 – 2022) Сомалийски шилинг @@ -7190,6 +7190,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} имперска кварта {0} имперски кварти + + светлина + {0} светлина + {0} светлина + + + части на милиард + {0} част на милиард + {0} части на милиард + + + нощи + {0} нощ + {0} нощи + {0} на нощ + основна посока @@ -7538,6 +7554,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} имп. кварта {0} имп. кварти + + светлина + {0} светлина + {0} светлина + + + части/милиард + + + нощи + {0} нощ + {0} нощи + {0}/нощ + посока {0}И @@ -7554,13 +7584,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} кв. миля {0} кв. мили - - {0} кв. фут - {0} кв. фута - % + + + + + PB + г. {0} г. @@ -7573,11 +7605,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ мес. - {0}/мес. + {0}/мес. седм. - {0}/седм. + {0}/седм. д @@ -7596,32 +7628,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ точка - - {0} миля - {0} мили - - - {0} ярд - {0} ярда - - - {0} фут - {0} фута - {0}" {0}" - - {0} фунт - {0} фунта - - - {0} унц. - {0} унц. - - Da + Da {0} к.с. @@ -7635,16 +7647,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} по Б {0} по Б - - {0} °F - {0} °F - - - {0} куб. миля - {0} куб. мили + + pt - bbl + bbl {0} дес. лъж. @@ -7654,6 +7661,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} брит. дес. лъж. {0} брит. дес. лъж. + + светлина + {0} светлина + {0} светлина + + + нощи + {0} нощ + {0} нощи + {0}/нощ + diff --git a/make/data/cldr/common/main/blo.xml b/make/data/cldr/common/main/blo.xml index f4f72e94d43..4781d9b45ee 100644 --- a/make/data/cldr/common/main/blo.xml +++ b/make/data/cldr/common/main/blo.xml @@ -21,7 +21,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic baŋglaa kagɩja gɩjaamaja gɛɛshɩ - gɛɛshɩ (GT) gɛɛshɩ (Ganɔ gaɖɔŋkɔnɔ kabʊtǝna Amalɩka nɩ) gɛɛshɩ (GKA) gɩspaŋja @@ -50,6 +49,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic + @@ -373,6 +373,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic ɩshilé n’ɩŋɔrɔ ɩtʊrka + gɩtanɩ + ʊfaŋʊ kayaashɩ + ɩnɔmba Buɖa kǝbaja bɩshilé na bɩŋɔrɔ ɩtʊrka @@ -394,6 +397,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Pɛrs kǝbaja bɩshilé na kɩŋɔrɔ ɩtʊrka miŋguwo kɩshilé na kɩŋɔrɔ ɩtʊrka ɩbii kʊnyaʊ ɖeiɖei + mɛta kʊfaŋʊ kayaashɩ + Gɛɛshɩ kʊfaŋʊ kayaashɩ + Amalɩka kʊfaŋʊ kayaashɩ latɛŋ @@ -1013,6 +1019,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic ɩŋɔrɩriu + ɩŋɔrɩriu ɩboŋoka + ɩŋɔrɩriu nnɖe + ɩŋɔrɩriu ɩfɔlɩ ɩŋɔ. @@ -1057,6 +1066,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic bk ɖe bk fɔlɩ + + aŋɔrɔ kabɔkɔɩ + ʊshilé galaɩ @@ -1069,6 +1081,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic ʊsh + + gaja kʊshilé + bɔkɔɩ kʊshilé @@ -1930,9 +1945,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ulanbatɔɔr - - Koibalsaan - Makawoo @@ -2661,13 +2673,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Caɩna kaakɔŋkɔŋɔ̀ gafʊbaka - - - Koibalsaan kaakɔŋkɔŋɔ̀ - Koibalsaan kaakɔŋkɔŋɔ̀ ɖeiɖei - Koibalsaan kaakɔŋkɔŋɔ̀ gafʊbaka - - Nowɛl kaAtukǝltǝna kaakɔŋkɔŋɔ̀ @@ -2914,6 +2919,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Japaŋ kaakɔŋkɔŋɔ̀ gafʊbaka + + + Kasastan kaakɔŋkɔŋɔ̀ + + Kasastan gajakalaŋ kaakɔŋkɔŋɔ̀ @@ -3365,8 +3375,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic ¤ #,##0.00;¤ -#,##0.00 - {0} {1} - {0} {1} + {1} {0} + {1} {0} {1} {0} @@ -4328,9 +4338,942 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + ɖesi{0} + + + sɛnti{0} + + + mili{0} + + + mikroo{0} + + + nanoo{0} + + + pikoo{0} + + + fɛmtoo{0} + + + atoo{0} + + + sɛptoo{0} + + + yɔktoo{0} + + + rɔntoo{0} + + + kwɛktoo{0} + + + ɖeka{0} + + + hɛktoo{0} + + + kiloo{0} + + + megaa{0} + + + jigaa{0} + + + tɛraa{0} + + + petaa{0} + + + ɛsaa{0} + + + sɛtaa{0} + + + yɔta{0} + + + rɔnaa{0} + + + kwɛtaa{0} + + + kibi{0} + + + mebi{0} + + + jibi{0} + + + tebi{0} + + + pebi{0} + + + ɛsbi{0} + + + sebi{0} + + + yobi{0} + {0} {1} nɩ + + {0} bʊye bʊye + {0} bʊye bʊye + {0} bʊye bʊye + + + {0} bʊye bʊriu + {0} bʊye bʊriu + {0} bʊye bʊriu + + + gatǝna kɩkashɩ bʊkɔ laŋ + baa gatǝna kɩkashɩ bʊkɔ laŋ {0} + gatǝna kɩkashɩ bʊkɔ laŋ {0} + gatǝna kɩkashɩ bʊkɔ laŋ {0} + + + ɩmɛta gɩpi bʊyɛ bʊyɛ nɩ + baa mɛta gɩpi bʊyɛ bʊyɛ nɩ {0} + mɛta gɩpi bʊyɛ bʊyɛ nɩ {0} + ɩmɛta gɩpi bʊyɛ bʊyɛ nɩ {0} + + + ɩcǝpǝrʊ + baa ʊcǝpǝrʊ {0} + ʊcǝpǝrʊ {0} + ɩcǝpǝrʊ {0} + + + ɩɖegre + baa ɖegre {0} + ɖegre {0} + ɩɖegre {0} + + + gʊta-kɩminti + baa gʊta-kaminti {0} + gʊta-kaminti {0} + gʊta-kɩminti {0} + + + gʊta-kɩsǝmpi + baa gʊta-kagɩsǝmpi {0} + gʊta-kagɩsǝmpi {0} + gʊta-kɩsǝmpi {0} + + + ɩkiloomɛta bʊyɛ bʊyɛ + baa kiloomɛta bʊyɛ bʊyɛ {0} + kiloomɛta bʊyɛ bʊyɛ {0} + ɩkiloomɛta bʊyɛ bʊyɛ {0} + {0} kiloomɛta bʊyɛ bʊyɛ nɩ + + + ɩlɔ + baa ʊlɔ {0} + ʊlɔ {0} + ɩlɔ {0} + + + ɩmɛta bʊyɛ bʊyɛ + baa mɛta bʊyɛ bʊyɛ {0} + mɛta bʊyɛ bʊyɛ {0} + ɩmɛta bʊyɛ bʊyɛ {0} + {0} mɛta bʊyɛ bʊyɛ nɩ + + + ɩsɛntimɛta bʊyɛ bʊyɛ + baa sɛntimɛta bʊyɛ bʊyɛ {0} + sɛntimɛta bʊyɛ bʊyɛ {0} + ɩsɛntimɛta bʊyɛ bʊyɛ {0} + {0} sɛntimɛta bʊyɛ bʊyɛ nɩ + + + ɩmayɩl bʊyɛ bʊyɛ + baa mayɩl bʊyɛ bʊyɛ {0} + mayɩl bʊyɛ bʊyɛ {0} + ɩmayɩl bʊyɛ bʊyɛ {0} + {0} mayɩl bʊyɛ bʊyɛ nɩ + + + anaŋcǝna bʊyɛ bʊyɛ + baa gʊnaŋcǝna bʊyɛ bʊyɛ {0} + gʊnaŋcǝna bʊyɛ bʊyɛ {0} + anaŋcǝna bʊyɛ bʊyɛ {0} + + + asǝkǝmǝ bʊyɛ bʊyɛ + baa nsǝkǝmǝ bʊyɛ bʊyɛ {0} + nsǝkǝmǝ bʊyɛ bʊyɛ {0} + asǝkǝmǝ bʊyɛ bʊyɛ {0} + {0} nsǝkǝmǝ bʊyɛ bʊyɛ nɩ + + + ɩɖunam + baa ɖunam {0} + ɖunam {0} + ɩɖunam {0} + + + ɩkaraatɩ + baa karaatɩ {0} + karaatɩ {0} + ɩkaraatɩ {0} + + + ɩmiligram ɖesilitri nɩ + baa miligram ɖesilitri nɩ {0} + miligram ɖesilitri nɩ {0} + ɩmiligram ɖesilitri nɩ {0} + + + ɩmilimol litri nɩ + baa milimol litri nɩ {0} + milimol litri nɩ {0} + ɩmilimol litri nɩ {0} + + + ayɔkɔ + baa bʊkɔ {0} + bʊkɔ {0} + ayɔkɔ {0} + + + ɩshɩnʊn nɩ + ɩshɩnʊn nɩ {0} + ɩshɩnʊn nɩ {0} + ɩshɩnʊn nɩ {0} + + + miili nɩ + miili nɩ {0} + miili nɩ {0} + miili nɩ {0} + + + ɩmol + baa mol {0} + mol {0} + ɩmol {0} + + + ɩlitri kiloomɛta nɩ + baa litri kiloomɛta nɩ {0} + litri kiloomɛta nɩ {0} + litri kiloomɛta nɩ {0} + + + ɩlitri ɩkiloomɛta 100 nɩ + baa litri ɩkiloomɛta 100 nɩ {0} + litri ɩkiloomɛta 100 nɩ {0} + ɩlitri ɩkiloomɛta 100 nɩ {0} + + + ɩmayɩl gaalɔŋ nɩ + baa mayɩl gaalɔŋ nɩ {0} + mayɩl gaalɔŋ nɩ {0} + ɩmayɩl gaalɔŋ nɩ {0} + + + ɩmayɩl gaalɔŋ Gɛɛshɩ kaja nɩ + baa mayɩl gaalɔŋ Gɛɛshɩ kaja nɩ {0} + mayɩl gaalɔŋ Gɛɛshɩ kaja nɩ {0} + ɩmayɩl gaalɔŋ Gɛɛshɩ kaja nɩ {0} + + + bʊja-ɩshɩnʊn mána + + + bʊja-tǝb mána + + + bʊja + {0} gaja nɩ + + + ɩŋɔrɩriu mána + {0} ɩŋɔrɩriu nɩ + + + ɩŋɔrɔ + {0} aŋɔrɔ nɩ + + + ɩbɔkɔɩ + {0} bɔkɔɩ nɩ + + + ɩshilé + {0} ʊshilé nɩ + + + bʊkɔŋkɔŋɔ̀ + {0} gakɔŋkɔŋɔ̀ nɩ + + + anaŋa + {0} gʊnaŋa nɩ + + + ɩpi + {0} gɩpi nɩ + + + ɩsǝmpi + + + ɩmikroosǝmpi + + + ɩnanoosǝmpi + + + Ampɛɛr mána + baa Ampɛɛr {0} + Ampɛɛr {0} + Ampɛɛr mána {0} + + + mili-Ampɛɛr mána + baa mili-Ampɛɛr {0} + mili-Ampɛɛr {0} + mili-Ampɛɛr {0} mána + + + Om mána + baa Om {0} + Om {0} + Om mána {0} + + + ɩFɔltɩ + baa Fɔltɩ {0} + Fɔltɩ {0} + ɩFɔltɩ {0} + + + ɩkilookalorii + baa kilookalorii {0} + kilookalorii {0} + ɩkilookalorii {0} + + + ɩkalorii + baa kalorii {0} + kalorii {0} + ɩkalorii {0} + + + ɩkiloojul + baa kiloojul {0} + kiloojul {0} + ɩkiloojul {0} + + + ɩjul + baa jul {0} + jul {0} + ɩjul {0} + + + kiloo-Waatɩ-bʊkɔŋkɔŋɔ̀ + baa kiloo-Waatɩ-gakɔŋkɔŋɔ̀ {0} + kiloo-Waatɩ-gakɔŋkɔŋɔ̀ {0} + kiloo-Waatɩ-bʊkɔŋkɔŋɔ̀ {0} + + + elɛtrɔŋ-Fɔltɩ mána + baa elɛtrɔŋ-Fɔltɩ {0} + elɛtrɔŋ-Fɔltɩ {0} + elɛtrɔŋ-Fɔltɩ mána {0} + + + ɩNiutɔn + baa Niutɔn {0} + Niutɔn {0} + ɩNiutɔn {0} + + + kiloo-Waatɩ-bʊkɔŋkɔŋɔ̀ ɩkilomɛta 100 nɩ + baa kiloo-Waatɩ-gakɔŋkɔŋɔ̀ ɩkilomɛta 100 nɩ {0} + kiloo-Waatɩ-gakɔŋkɔŋɔ̀ ɩkilomɛta 100 nɩ {0} + kiloo-Waatɩ-bʊkɔŋkɔŋɔ̀ ɩkilomɛta 100 nɩ {0} + + + ɩjigaa-Hɛrtɩ + baa jigaa-Hɛrtɩ {0} + jigaa-Hɛrtɩ {0} + ɩjigaa-Hɛrtɩ {0} + + + ɩmegaa-Hɛrtɩ + baa megaa-Hɛrtɩ {0} + megaa-Hɛrtɩ {0} + ɩmegaa-Hɛrtɩ {0} + + + ɩkiloo-Hɛrtɩ + baa kiloo-Hɛrtɩ {0} + kiloo-Hɛrtɩ {0} + ɩkiloo-Hɛrtɩ {0} + + + ɩHɛrtɩ + baa Hɛrtɩ {0} + Hɛrtɩ {0} + ɩHɛrtɩ {0} + + + ɩfɔɔ ɛm + baa ʊfɔɔ ɛm + ʊfɔɔ ɛm {0} + ɩfɔɔ ɛm {0} + + + ɩpisɛl + baa pisɛl + pisɛl {0} + ɩpisɛl {0} + + + ɩmegapisɛl + baa megapisɛl + megapisɛl {0} + ɩmegapisɛl {0} + + + ɩpisɛl sɛntimɛta bʊye bʊye nɩ + baa pisɛl sɛntimɛta bʊye bʊye nɩ + pisɛl {0} sɛntimɛta bʊye bʊye nɩ + ɩpisɛl {0} sɛntimɛta bʊye bʊye nɩ + + + ɩpisɛl nsǝkǝmǝ bʊye bʊye nɩ + baa pisɛl nsǝkǝmǝ bʊye bʊye nɩ + pisɛl {0} nsǝkǝmǝ bʊye bʊye nɩ + ɩpisɛl {0} nsǝkǝmǝ bʊye bʊye nɩ + + + gatǝna gawalaka kʊfana + baa gatǝna gawalaka kʊfana {0} + gatǝna gawalaka kʊfana {0} + gatǝna gawalaka kɩfana {0} + + + ɩkiloomɛta + baa kiloomɛta {0} + kiloomɛta {0} + ɩkiloomɛta {0} + {0} kiloomɛta nɩ + + + ɩmɛta + baa mɛta {0} + mɛta {0} + ɩmɛta {0} + {0} mɛta nɩ + + + ɩɖesimɛta + baa ɖesimɛta {0} + ɖesimɛta {0} + ɩɖesimɛta {0} + + + ɩsɛntimɛta + baa sɛntimɛta {0} + sɛntimɛta {0} + ɩsɛntimɛta {0} + {0} sɛntimɛta nɩ + + + ɩmilimɛta + baa milimɛta {0} + milimɛta {0} + ɩmilimɛta {0} + + + ɩmikroomɛta + baa mikroomɛta {0} + mikroomɛta {0} + ɩmikroomɛta {0} + + + ɩnanoomɛta + baa nanoomɛta {0} + nanoomɛta {0} + ɩnanoomɛta {0} + + + ɩpikoomɛta + baa pikoomɛta {0} + pikoomɛta {0} + ɩpikoomɛta {0} + + + ɩmayɩl + baa mayɩl {0} + mayɩl {0} + ɩmayɩl {0} + + + anaŋcǝna + baa gʊnaŋcǝna {0} + gʊnaŋcǝna {0} + anaŋcǝna {0} + {0}/gʊnaŋcǝna nɩ + + + asǝkǝmǝ + baa nsǝkǝmǝ {0} + nsǝkǝmǝ {0} + asǝkǝmǝ {0} + {0} nsǝkǝmǝ nɩ + + + ɩparsɛɛkɩ + baa parsɛɛkɩ {0} + parsɛɛkɩ {0} + ɩparsɛɛkɩ {0} + + + pɔɩɩ-bʊja + baa pɔɩɩ-gaja {0} + pɔɩɩ-gaja {0} + pɔɩɩ-bʊja {0} + + + atǝn-n’ʊshilè mána + baa atǝn-n’ʊshilè {0} + atǝn-n’ʊshilè {0} + atǝn-n’ʊshilè mána {0} + + + ɩfɛɛlɔŋ + baa fɛɛlɔŋ {0} + fɛɛlɔŋ {0} + ɩfɛɛlɔŋ {0} + + + ɩfɛɛɖǝm + baa fɛɛɖǝm {0} + fɛɛɖǝm {0} + ɩfɛɛɖǝm {0} + + + teŋku kɩmayɩl + baa teŋku kamayɩl {0} + teŋku kamayɩl {0} + teŋku kɩmayɩl {0} + + + sǝkanɖɩnaf kɩmayɩl + baa sǝkanɖɩnaf kamayɩl {0} + sǝkanɖɩnaf kamayɩl {0} + sǝkanɖɩnaf kɩmayɩl {0} + + + ɩpipi + baa gɩpipi {0} + gɩpipi {0} + ɩpipi {0} + + + ʊshilè kɩfana + baa ʊshilè kʊfana + ʊshilè kʊfana {0} + ʊshilè kɩfana {0} + + + ɩlus + baa lus {0} + lus {0} + ɩlus {0} + + + ɩkanɖalaa + baa kanɖalaa {0} + kanɖalaa {0} + ɩkanɖalaa {0} + + + ɩlumɛn + baa lumɛn {0} + lumɛn {0} + ɩlumɛn {0} + + + ɩtɔn mɛta kʊfaŋʊ kɩja + baa tɔn {0} + tɔn {0} + ɩtɔn {0} + + + ɩkiloogram + baa kiloogram {0} + kiloogram {0} + ɩkiloogram {0} + {0} kiloogram nɩ + + + ɩgram + baa gram {0} + gram {0} + ɩgram {0} + {0} gram nɩ + + + ɩmiligram + baa miligram {0} + miligram {0} + ɩmiligram {0} + + + ɩmikroogram + baa mikroogram {0} + mikroogram {0} + ɩmikroogram {0} + + + ɩtɔn Gɛɛshɩ kɩja + baa tɔn Gɛɛshɩ kaja {0} + tɔn Gɛɛshɩ kaja {0} + tɔn Gɛɛshɩ kɩja {0} + + + atala + baa ntala {0} + ntala {0} + atala {0} + + + ɩpɔŋ + baa pɔŋ {0} + pɔŋ {0} + ɩpɔŋ {0} + {0} pɔŋ nɩ + + + wʊra karaatɩ mána + + + ɩjigaa-Waatɩ + baa jigaa-Waatɩ {0} + jigaa-Waatɩ {0} + ɩjigaa-Waatɩ {0} + + + ɩmegaa-Waatɩ + baa megaa-Waatɩ {0} + megaa-Waatɩ {0} + ɩmegaa-Waatɩ {0} + + + kiloo-Waatɩ + baa kiloo-Waatɩ {0} + kiloo-Waatɩ {0} + ɩkiloo-Waatɩ {0} + + + Waatɩ + baa Waatɩ {0} + Waatɩ {0} + ɩWaatɩ {0} + + + ɩmili-Waatɩ + baa mili-Waatɩ {0} + mili-Waatɩ {0} + ɩmili-Waatɩ {0} + + + asuko-‘ɩkaŋkɩrɩ + baa asuko-‘ɩkaŋkɩrɩ + asuko-‘ɩkaŋkɩrɩ {0} + asuko-‘ɩkaŋkɩrɩ {0} + + + mɛrkiir kɩmilimɛta + baa mɛrkiir kamilimɛta {0} + mɛrkiir kamilimɛta {0} + mɛrkiir kɩmilimɛta {0} + + + mɛrkiir kasǝkǝmǝ + baa mɛrkiir kansǝkǝmǝ {0} + mɛrkiir kansǝkǝmǝ {0} + mɛrkiir kasǝkǝmǝ {0} + + + ɩbaar + baa baar {0} + baar {0} + ɩbaar {0} + + + ɩmilibaar + baa milibaar {0} + milibaar {0} + ɩmilibaar {0} + + + atǝmɔsfɛɛr mána + baa atǝmɔsfɛɛr {0} + atǝmɔsfɛɛr {0} + atǝmɔsfɛɛr mána {0} + + + ɩPaskal + baa Paskal {0} + Paskal {0} + ɩPaskal {0} + + + ɩhɛktoo-Paskal + baa hɛktoo-Paskal {0} + hɛktoo-Paskal {0} + ɩhɛktoo-Paskal {0} + + + ɩkiloo-Paskal + baa kiloo-Paskal {0} + kiloo-Paskal {0} + ɩkiloo-Paskal {0} + + + ɩmegaa-Paskal + baa megaa-Paskal {0} + megaa-Paskal {0} + ɩmegaa-Paskal {0} + + + ɩkiloomɛta gakɔŋkɔŋɔ̀ nɩ + baa kiloomɛta gakɔŋkɔŋɔ̀ nɩ {0} + kiloomɛta gakɔŋkɔŋɔ̀ nɩ {0} + ɩkiloomɛta gakɔŋkɔŋɔ̀ nɩ {0} + + + ɩmɛta gɩpi nɩ + baa mɛta gɩpi nɩ {0} + mɛta gɩpi nɩ {0} + ɩmɛta gɩpi nɩ {0} + + + ɩmayɩl gakɔŋkɔŋɔ̀ nɩ + baa mayɩl gakɔŋkɔŋɔ̀ nɩ {0} + mayɩl gakɔŋkɔŋɔ̀ nɩ {0} + ɩmayɩl gakɔŋkɔŋɔ̀ nɩ {0} + + + akʊra + baa ŋkʊra {0} + ŋkʊra {0} + akʊra {0} + + + kpaʊ-na-sarasara kɩɖegre + baa kpaʊ-na-sarasara kaɖegre {0} + kpaʊ-na-sarasara kaɖegre {0} + kpaʊ-na-sarasara kɩɖegre {0} + + + ɩɖegre Sɛlsus + baa ɖegre Sɛlsus {0} + ɖegre Sɛlsus {0} + ɩɖegre Sɛlsus {0} + + + ɩɖegre Faranhaɩt + baa ɖegre Faranhaɩt {0} + ɖegre Faranhaɩt {0} + ɩɖegre Faranhaɩt {0} + + + ɩKɛlwin + baa Kɛlwin {0} + Kɛlwin {0} + ɩKɛlwin {0} + + + ɩNiutɔn-mɛta + baa Niutɔn-mɛta {0} + Niutɔn-mɛta {0} + ɩNiutɔn-mɛta {0} + + + ɩkiloomɛta bʊyɛ bʊriu + baa kiloomɛta bʊye bʊriu {0} + kiloomɛta bʊye bʊriu {0} + ɩkiloomɛta bʊye bʊriu {0} + + + ɩmɛta bʊyɛ bʊriu + baa mɛta bʊyɛ bʊriu {0} + mɛta bʊyɛ bʊriu {0} + ɩmɛta bʊyɛ bʊriu {0} + {0} ɩmɛta bʊyɛ bʊriu nɩ + + + ɩsɛntimɛta bʊye bʊriu + baa sɛntimɛta bʊye bʊriu {0} + sɛntimɛta bʊye bʊriu {0} + ɩsɛntimɛta bʊye bʊriu {0} + {0} ɩsɛntimɛta bʊye bʊriu nɩ + + + ɩmayɩl bʊyɛ bʊriu + baa mayɩl bʊyɛ bʊriu {0} + mayɩl bʊyɛ bʊriu {0} + ɩmayɩl bʊyɛ bʊriu {0} + + + anaŋcǝna bʊyɛ bʊriu + baa gʊnaŋcǝna bʊyɛ bʊriu {0} + gʊnaŋcǝna bʊyɛ bʊriu {0} + anaŋcǝna bʊyɛ bʊriu {0} + + + asǝkǝmǝ bʊyɛ bʊriu + baa nsǝkǝmǝ bʊyɛ bʊriu {0} + nsǝkǝmǝ bʊyɛ bʊriu {0} + asǝkǝmǝ bʊyɛ bʊriu {0} + + + ɩmegaalitri + baa megaalitri {0} + megaalitri {0} + ɩmegaalitri {0} + + + ɩhɛktoolitri + baa hɛktoolitri {0} + hɛktoolitri {0} + ɩhɛktoolitri {0} + + + ɩlitri + baa litri {0} + litri {0} + ɩlitri {0} + {0} ɩlitri nɩ + + + ɩɖesilitri + baa ɖesilitri {0} + ɖesilitri {0} + ɩɖesilitri {0} + + + ɩsɛntilitri + baa sɛntilitri {0} + sɛntilitri {0} + ɩsɛntilitri {0} + + + ɩmililitri + baa mililitri {0} + mililitri {0} + ɩmililitri {0} + + + litri kasaʊ + baa litri kansaʊ {0} + litri kansaʊ {0} + litri kasaʊ {0} + + + ɩkɔɔpʊ mɛta kʊfaŋʊ kɩja + baa kɔɔpʊ mɛta kʊfaŋʊ kɩja {0} + kɔɔpʊ mɛta kʊfaŋʊ kɩja {0} + ɩkɔɔpʊ mɛta kʊfaŋʊ kɩja {0} + + + ɩgaalɔŋ Amalɩka kʊfaŋʊ kɩja + baa gaalɔŋ Amalɩka kʊfaŋʊ kaja {0} + gaalɔŋ Amalɩka kʊfaŋʊ kaja {0} + ɩgaalɔŋ Amalɩka kʊfaŋʊ kɩja {0} + {0} gaalɔŋ nɩ + + + ɩgaalɔŋ gɛɛshɩ kɩja + baa gaalɔŋ gɛɛshɩ kaja {0} + gaalɔŋ gɛɛshɩ kaja {0} + ɩgaalɔŋ gɛɛshɩ kɩja {0} + {0} gaalɔŋ gɛɛshɩ kaja nɩ + + + ɩkɔɔpʊ + baa kɔɔpʊ {0} + kɔɔpʊ {0} + ɩkɔɔpʊ {0} + + + ɩtɩrɩɩ ʊnyɩʊ kɩja + baa tɩrɩɩ ʊnyɩʊ kaja {0} + tɩrɩɩ ʊnyɩʊ kaja {0} + ɩtɩrɩɩ ʊnyɩʊ kɩja {0} + + + ɩtɩrɩɩ kafee kɩja + baa tɩrɩɩ kafee kaja {0} + tɩrɩɩ kafee kaja {0} + ɩtɩrɩɩ kafee kɩja {0} + + + ɩsɔr + baa ʊsɔr {0} + ʊsɔr {0} + ɩsɔr {0} + + + ɩɖraam + baa ɖraam {0} + ɖraam {0} + ɩɖraam {0} + + + ɩjɩga + baa jɩga {0} + jɩga {0} + ɩjɩga {0} + + + ɩkɩtɩʊ + baa ʊkɩtɩʊ {0} + ʊkɩtɩʊ {0} + ɩkɩtɩʊ {0} + + + pɔɩɩ + pɔɩɩ {0} + pɔɩɩ {0} + pɔɩɩ {0} + + + {0} gɩjibɔŋɔ nɩ + {0} gajakalaŋ {0} gʊnyɩpɛnɛlaŋ @@ -4339,6 +5282,752 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + G {0} + G {0} + G {0} + + + m/s² {0} + m/s² {0} + m/s² {0} + + + rev {0} + rev {0} + rev {0} + + + rad {0} + rad {0} + rad {0} + + + °{0} + °{0} + °{0} + + + ′{0} + ′{0} + ′{0} + + + ″{0} + ″{0} + ″{0} + + + km² {0} + km² {0} + km² {0} + + + ɩlɔ + ha {0} + ha {0} + ha {0} + + + ɩmɛta² + m² {0} + m² {0} + m² {0} + + + cm² {0} + cm² {0} + cm² {0} + + + mi² {0} + mi² {0} + mi² {0} + + + yd² {0} + yd² {0} + yd² {0} + + + ft² {0} + ft² {0} + ft² {0} + + + in² {0} + in² {0} + in² {0} + + + ɩɖunam + baa ɖunam {0} + ɖunam {0} + ɩɖunam {0} + + + kt {0} + kt {0} + kt {0} + + + mg/dL {0} + mg/dL {0} + mg/dL {0} + + + mmol/L {0} + mmol/L {0} + mmol/L {0} + + + item {0} + item {0} + item {0} + + + ppm {0} + ppm {0} + ppm {0} + + + %{0} + %{0} + %{0} + + + ‰{0} + ‰{0} + ‰{0} + + + ‱{0} + ‱{0} + ‱{0} + + + mol {0} + mol {0} + mol {0} + + + L/km {0} + L/km {0} + L/km {0} + + + L/100km {0} + L/100km {0} + L/100km {0} + + + mpg {0} + mpg {0} + mpg {0} + + + mpg Imp. {0} + mpg Imp. {0} + mpg Imp. {0} + + + A {0} + A {0} + A {0} + + + mA {0} + mA {0} + mA {0} + + + Ω {0} + Ω {0} + Ω {0} + + + V {0} + V {0} + V {0} + + + kcal {0} + kcal {0} + kcal {0} + + + cal {0} + cal {0} + cal {0} + + + kJ {0} + kJ {0} + kJ {0} + + + ɩjul + J {0} + J {0} + J {0} + + + kWh {0} + kWh {0} + kWh {0} + + + eV {0} + eV {0} + eV {0} + + + Btu {0} + Btu {0} + Btu {0} + + + US therm {0} + US therm {0} + US therm {0} + + + N {0} + N {0} + N {0} + + + kWh/100km {0} + kWh/100km {0} + kWh/100km {0} + + + GHz {0} + GHz {0} + GHz {0} + + + MHz {0} + MHz {0} + MHz {0} + + + kHz {0} + kHz {0} + kHz {0} + + + Hz {0} + Hz {0} + Hz {0} + + + baa ʊfɔɔ ɛm + ʊfɔɔ ɛm {0} + ɩfɔɔ ɛm {0} + + + ɩpisɛl + + + ɩmegapisɛl + + + gatǝna gawalaka kʊfana + R⊕ {0} + R⊕ {0} + R⊕ {0} + + + km {0} + km {0} + km {0} + + + m + m {0} + m {0} + m {0} + + + dm {0} + dm {0} + dm {0} + + + cm {0} + cm {0} + cm {0} + + + mm {0} + mm {0} + mm {0} + + + μm {0} + μm {0} + μm {0} + + + nm {0} + nm {0} + nm {0} + + + pm {0} + pm {0} + pm {0} + + + ɩmayɩl + mi {0} + mi {0} + mi {0} + + + yd {0} + yd {0} + yd {0} + + + anaŋcǝna + ft {0} + ft {0} + ft {0} + + + asǝkǝmǝ + in {0} + in {0} + in {0} + + + ɩparsɛɛkɩ + pc {0} + pc {0} + pc {0} + + + ly {0} + ly {0} + ly {0} + + + au {0} + au {0} + au {0} + + + ɩfɛɛlɔŋ + fur {0} + fur {0} + fur {0} + + + ɩfɛɛɖǝm + fth {0} + {0} fth + {0} fth + + + nmi {0} + nmi {0} + nmi {0} + + + smi {0} + smi {0} + smi {0} + + + ɩpipi + pt {0} + pt {0} + pt {0} + + + ʊshilè kɩfana + R☉ {0} + R☉ {0} + R☉ {0} + + + lx {0} + lx {0} + lx {0} + + + cd {0} + cd {0} + cd {0} + + + lm {0} + lm {0} + lm {0} + + + t {0} + t {0} + t {0} + + + kg {0} + kg {0} + kg {0} + + + ɩgram + g {0} + g {0} + g {0} + + + mg {0} + mg {0} + mg {0} + + + μg {0} + μg {0} + μg {0} + + + tn {0} + tn {0} + tn {0} + + + st {0} + st {0} + st {0} + + + lb {0} + lb {0} + lb {0} + + + oz {0} + oz {0} + oz {0} + + + oz t {0} + oz t {0} + oz t {0} + + + CD {0} + CD {0} + CD {0} + + + GW {0} + GW {0} + GW {0} + + + MW {0} + MW {0} + MW {0} + + + kW {0} + kW {0} + kW {0} + + + W {0} + W {0} + W {0} + + + mW {0} + mW {0} + mW {0} + + + hp {0} + hp {0} + hp {0} + + + mmHg {0} + mmHg {0} + mmHg {0} + + + psi {0} + psi {0} + psi {0} + + + inHg {0} + inHg {0} + inHg {0} + + + bar {0} + bar {0} + bar {0} + + + mbar {0} + mbar {0} + mbar {0} + + + atm {0} + atm {0} + atm {0} + + + Pa {0} + Pa {0} + Pa {0} + + + hPa {0} + hPa {0} + hPa {0} + + + kPa {0} + kPa {0} + kPa {0} + + + MPa {0} + MPa {0} + MPa {0} + + + km/h {0} + km/h {0} + km/h {0} + + + m/s {0} + m/s {0} + m/s {0} + + + mi/h {0} + mi/h {0} + mi/h {0} + + + kn {0} + kn {0} + kn {0} + + + °{0} + °{0} + °{0} + + + °C{0} + °C{0} + °C{0} + + + °F{0} + °F{0} + °F{0} + + + K {0} + K {0} + K {0} + + + N⋅m {0} + N⋅m {0} + N⋅m {0} + + + km³ {0} + km³ {0} + km³ {0} + + + m³ {0} + m³ {0} + m³ {0} + + + cm³ {0} + cm³ {0} + cm³ {0} + + + mi³ {0} + mi³ {0} + mi³ {0} + + + yd³ {0} + yd³ {0} + yd³ {0} + + + ft³ {0} + ft³ {0} + ft³ {0} + + + in³ {0} + in³ {0} + in³ {0} + + + ML {0} + ML {0} + ML {0} + + + hL {0} + hL {0} + hL {0} + + + ɩlitri + l {0} + l {0} + l {0} + + + dL {0} + dL {0} + dL {0} + + + cL {0} + cL {0} + cL {0} + + + mL {0} + mL {0} + mL {0} + + + mpt {0} + mpt {0} + mpt {0} + + + mc {0} + mc {0} + mc {0} + + + ac ft {0} + ac ft {0} + ac ft {0} + + + bu {0} + bu {0} + bu {0} + + + gal US {0} + gal US {0} + gal US {0} + + + gal Imp. {0} + gal Imp. {0} + gal Imp. {0} + + + ɩkɔɔpʊ + c {0} + c {0} + c {0} + + + fl oz US {0} + fl oz US {0} + fl oz US {0} + + + fl oz Imp. {0} + fl oz Imp. {0} + fl oz Imp. {0} + + + tbsp {0} + tbsp {0} + tbsp {0} + + + tsp {0} + tsp {0} + tsp {0} + + + bbl {0} + bbl {0} + bbl {0} + + + dstspn {0} + dstspn {0} + dstspn {0} + + + dstspn Imp {0} + dstspn Imp {0} + dstspn Imp {0} + + + ɩsɔr + drop {0} + drop {0} + drop {0} + + + ɩɖraam + dram {0} + dram {0} + dram {0} + + + ɩjɩga + jigger {0} + jigger {0} + jigger {0} + + + ɩkɩtɩʊ + pn {0} + pn {0} + pn {0} + + + qt Imp. {0} + qt Imp. {0} + qt Imp. {0} + + + pɔɩɩ + light {0} + light {0} + light {0} + + + ppb {0} + ppb {0} + ppb {0} + + + gɩjibɔŋɔ + ʊtǝŋu {0} gjl @@ -4347,6 +6036,744 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} gshl + + + G{0} + G{0} + G{0} + + + m/s²{0} + m/s²{0} + m/s²{0} + + + rev{0} + rev{0} + rev{0} + + + rad{0} + rad{0} + rad{0} + + + °{0} + °{0} + °{0} + + + ′{0} + ′{0} + ′{0} + + + ″{0} + ″{0} + ″{0} + + + km²{0} + km²{0} + km²{0} + + + ʊlɔ + ha{0} + ha{0} + ha{0} + + + ɩmɛta² + m²{0} + m²{0} + m²{0} + + + cm²{0} + cm²{0} + cm²{0} + + + mi²{0} + mi²{0} + mi²{0} + + + yd²{0} + yd²{0} + yd²{0} + + + ft²{0} + ft²{0} + ft²{0} + + + in²{0} + in²{0} + in²{0} + + + ɖunam + baa ɖunam{0} + ɖunam {0} + ɩɖunam {0} + + + kt{0} + kt{0} + kt{0} + + + mg/dL{0} + mg/dL{0} + mg/dL{0} + + + mmol/L{0} + mmol/L{0} + mmol/L{0} + + + item{0} + item{0} + item{0} + + + ppm{0} + ppm{0} + ppm{0} + + + %{0} + %{0} + %{0} + + + ‰{0} + ‰{0} + ‰{0} + + + ‱{0} + ‱{0} + ‱{0} + + + mol{0} + mol{0} + mol{0} + + + L/km{0} + L/km{0} + L/km{0} + + + L/100km{0} + L/100km{0} + L/100km{0} + + + mpg{0} + mpg{0} + mpg{0} + + + mpg Imp.{0} + mpg Imp.{0} + mpg Imp.{0} + + + A{0} + A{0} + A{0} + + + mA{0} + mA{0} + mA{0} + + + Ω{0} + Ω{0} + Ω{0} + + + V{0} + V{0} + V{0} + + + kcal{0} + kcal{0} + kcal{0} + + + cal{0} + cal{0} + cal{0} + + + kJ{0} + kJ{0} + kJ{0} + + + jul + J{0} + J{0} + J{0} + + + kWh{0} + kWh{0} + kWh{0} + + + eV{0} + eV{0} + eV{0} + + + Btu{0} + Btu{0} + Btu{0} + + + US therm{0} + US therm{0} + US therm{0} + + + N{0} + N{0} + N{0} + + + kWh/100km{0} + kWh/100km{0} + kWh/100km{0} + + + GHz{0} + GHz{0} + GHz{0} + + + MHz{0} + MHz{0} + MHz{0} + + + kHz{0} + kHz{0} + kHz{0} + + + Hz{0} + Hz{0} + Hz{0} + + + em {0} + em {0} + em {0} + + + R⊕{0} + R⊕{0} + R⊕{0} + + + km{0} + km{0} + km{0} + + + m + m{0} + m{0} + m{0} + + + dm{0} + dm{0} + dm{0} + + + cm{0} + cm{0} + cm{0} + + + mm{0} + mm{0} + mm{0} + + + μm{0} + μm{0} + μm{0} + + + nm{0} + nm{0} + nm{0} + + + pm{0} + pm{0} + pm{0} + + + ɩmayɩl + mi{0} + mi{0} + mi{0} + + + yd{0} + yd{0} + yd{0} + + + ′{0} + ′{0} + ′{0} + + + ′′{0} + ′′{0} + ′′{0} + + + parsɛɛkɩ + pc{0} + pc{0} + pc{0} + + + ly{0} + ly{0} + ly{0} + + + au{0} + au{0} + au{0} + + + fɛɛlɔŋ + fur{0} + fur{0} + fur{0} + + + fɛɛɖǝm + fth{0} + fth{0} + fth{0} + + + nmi{0} + nmi{0} + nmi{0} + + + smi{0} + smi{0} + smi{0} + + + ɩpipi + pt{0} + pt{0} + pt{0} + + + ʊshilè kɩfana + R☉{0} + R☉{0} + R☉{0} + + + lx{0} + lx{0} + lx{0} + + + cd{0} + cd{0} + cd{0} + + + lm{0} + lm{0} + lm{0} + + + t{0} + t{0} + t{0} + + + kg{0} + kg{0} + kg{0} + + + ɩgram + g{0} + g{0} + g{0} + + + mg{0} + mg{0} + mg{0} + + + μg{0} + μg{0} + μg{0} + + + tn{0} + tn{0} + tn{0} + + + st{0} + st{0} + st{0} + + + lb{0} + lb{0} + lb{0} + + + oz{0} + oz{0} + oz{0} + + + oz t{0} + oz t{0} + oz t{0} + + + CD{0} + CD{0} + CD{0} + + + GW{0} + GW{0} + GW{0} + + + MW{0} + MW{0} + MW{0} + + + kW{0} + kW{0} + kW{0} + + + W{0} + W{0} + W{0} + + + mW{0} + mW{0} + mW{0} + + + hp{0} + hp{0} + hp{0} + + + mmHg{0} + mmHg{0} + mmHg{0} + + + psi{0} + psi{0} + psi{0} + + + ″ Hg + inHg{0} + inHg{0} + inHg{0} + + + bar{0} + bar{0} + bar{0} + + + mbar{0} + mbar{0} + mbar{0} + + + atm{0} + atm{0} + atm{0} + + + Pa{0} + Pa{0} + Pa{0} + + + hPa{0} + hPa{0} + hPa{0} + + + kPa{0} + kPa{0} + kPa{0} + + + MPa{0} + MPa{0} + MPa{0} + + + km/h{0} + km/h{0} + km/h{0} + + + m/s{0} + m/s{0} + m/s{0} + + + mi/h{0} + mi/h{0} + mi/h{0} + + + kn{0} + kn{0} + kn{0} + + + °{0} + °{0} + °{0} + + + °C{0} + °C{0} + °C{0} + + + °F{0} + °F{0} + °F{0} + + + K {0} + K {0} + K {0} + + + N⋅m{0} + N⋅m{0} + N⋅m{0} + + + km³{0} + km³{0} + km³{0} + + + m³{0} + m³{0} + m³{0} + + + cm³{0} + cm³{0} + cm³{0} + + + mi³{0} + mi³{0} + mi³{0} + + + yd³{0} + yd³{0} + yd³{0} + + + ft³{0} + ft³{0} + ft³{0} + + + in³{0} + in³{0} + in³{0} + + + ML{0} + ML{0} + ML{0} + + + hL{0} + hL{0} + hL{0} + + + litri + l{0} + l{0} + l{0} + + + dL{0} + dL{0} + dL{0} + + + cL{0} + cL{0} + cL{0} + + + mL{0} + mL{0} + mL{0} + + + pt + mpt{0} + mpt{0} + mpt{0} + + + mc{0} + mc{0} + mc{0} + + + ac ft{0} + ac ft{0} + ac ft{0} + + + bu{0} + bu{0} + bu{0} + + + gal{0} + gal{0} + gal{0} + + + gal Imp.{0} + gal Imp.{0} + gal Imp.{0} + + + kɔɔpʊ + c{0} + c{0} + c{0} + + + fl oz{0} + fl oz{0} + fl oz{0} + + + fl oz Imp.{0} + fl oz Imp.{0} + fl oz Imp.{0} + + + tbsp{0} + tbsp{0} + tbsp{0} + + + tsp{0} + tsp{0} + tsp{0} + + + bbl{0} + bbl{0} + bbl{0} + + + dstspn{0} + dstspn{0} + dstspn{0} + + + dstspn Imp{0} + dstspn Imp{0} + dstspn Imp{0} + + + ɩsɔr + dr{0} + dr{0} + dr{0} + + + fl.dr. + fl.dr.{0} + fl.dr.{0} + fl.dr.{0} + + + jɩga + jigger{0} + jigger{0} + jigger{0} + + + ɩkɩtɩʊ + pn{0} + pn{0} + pn{0} + + + qt Imp.{0} + qt Imp.{0} + qt Imp.{0} + + + pɔɩɩ + light{0} + light{0} + light{0} + + + ppb{0} + ppb{0} + ppb{0} + + @@ -4366,4 +6793,165 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}, {1} + + und blo + long + {0}{1} + + {title} {credentials} {given} {surname} {given2} + + + {given-informal} {surname} + + + {title} {credentials} {given} {surname} {given2} + + + {given-informal} {surname} + + + {given-monogram-allCaps}{surname-monogram-allCaps} {given2-monogram-allCaps} + + + {given-monogram-allCaps}{surname-monogram-allCaps} {given2-monogram-allCaps} + + + {title} {given} {surname} {given2} + + + {given-informal} {surname} + + + {title} {given} {surname} {given2} + + + {given-informal} {surname} + + + {given-monogram-allCaps}{surname-monogram-allCaps} + + + {given-monogram-allCaps}{surname-monogram-allCaps} + + + {given} {surname} {given2} + + + {given-informal} + + + {given} {surname} {given2} + + + {given-informal} + + + {surname-monogram-allCaps} + + + {given-informal-monogram-allCaps} + + + {title} {credentials} {surname} {surname2} {given2} {given} + + + {surname} {given-informal} + + + {title} {credentials} {surname} {surname2} {given2} {given} + + + {surname} {given-informal} + + + {surname-monogram-allCaps}{given2-monogram-allCaps}{given-monogram-allCaps} + + + {surname-monogram-allCaps}{given2-monogram-allCaps}{given-monogram-allCaps} + + + {title} {surname} {surname2} {given2} {given} + + + {surname} {given-informal} + + + {title} {surname} {surname2} {given2} {given} + + + {surname} {given-informal} + + + {surname-monogram-allCaps}{given-monogram-allCaps} + + + {surname-monogram-allCaps}{given-monogram-allCaps} + + + {surname} {surname2} {given2} {given} + + + {given-informal} + + + {surname} {surname2} {given2} {given} + + + {given-informal} + + + {surname-monogram-allCaps} + + + {given-informal-monogram-allCaps} + + + {surname} {given2} {given} + + + {surname} {given2} {given} + + + {surname} {given2} {given} + + + {surname} {given2} {given} + + + {surname} {given2} {given} + + + {surname} {given2} {given} + + + Muniiru + + + Fuseena + AKIME + + + Abɖu-Tɔyib + GOMINA + + + ʊŋono + Mustafa + Tafa + KALAM + ajala + Alaaji + + + Eemil + + + Iiɖa + KANSULO + + + Alfɔns + MANƉELA + + diff --git a/make/data/cldr/common/main/bn.xml b/make/data/cldr/common/main/bn.xml index 8aaaeb16221..bd6d3c5f902 100644 --- a/make/data/cldr/common/main/bn.xml +++ b/make/data/cldr/common/main/bn.xml @@ -66,6 +66,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ বিকোল বিনি সিকসিকা + অ্যানি বামবারা বাংলা তিব্বতি @@ -281,6 +282,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ কোমি কর্ণিশ কোয়াক’ওয়ালা + কুভি কির্গিজ লাতিন লাদিনো @@ -291,9 +293,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ লেজঘিয়ান গান্ডা লিম্বুর্গিশ + লিগুরিয়ান লিল্লুয়েট লাকোটা - লম্বার্ড + লম্বার্ড লিঙ্গালা লাও মোঙ্গো @@ -482,6 +485,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ কমোরিয়ান প্রাচীন সিরিও সিরিয়াক + সিলেশিয়ান তামিল দক্ষিণী টুচোন তেলুগু @@ -530,7 +534,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ উজবেক ভাই ভেন্ডা + ভেনেশিয়ান ভিয়েতনামী + মাখুওয়া ভোলাপুক ভোটিক ভুঞ্জো @@ -544,6 +550,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ উ চীনা কাল্মাইক জোসা + কাংরি সোগা ইয়াও ইয়াপেসে @@ -1060,7 +1067,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ভারতীয় জাতীয় বর্ষপঞ্জী ইসলামিক ক্যালেন্ডার ইসলামিক-সিভিল বর্ষপঞ্জী - ইসলামিক বর্ষপঞ্জী (সৌদি আরব, দৃশ্যমান) + ইসলামিক বর্ষপঞ্জী (সৌদি আরব, দৃশ্যমান) ইসলামিক বর্ষপঞ্জী (ছকবদ্ধ, জ্যোতির্বিদ্যীয় যুগ) ইসলামিক বর্ষপঞ্জী (উম্মা আল-কুরআ) ISO-861 ক্যালেন্ডার @@ -1222,7 +1229,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -1655,7 +1662,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ খ্রিস্টপূর্ব - খ্রিষ্টপূর্বাব্দ + "খ্রিঃপূঃ" খৃষ্টাব্দ খ্রিষ্টাব্দ @@ -2016,7 +2023,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ শাহরিবার মেহের আবান - আজার + সেপ্ট দে বাহমান এসফ্যান্ড @@ -2281,10 +2288,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} সেকেন্ডে - {0} সেকেন্ড পূর্বে + {0} সেকেন্ড আগে {0} সেকেন্ড পূর্বে + + + {0} সেকেন্ড আগে + {0} সেকেন্ড আগে + + {0} সেকেন্ড আগে @@ -2303,6 +2316,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} সময় {0} দিবালোক সময় {0} মানক সময় + + হনোলুলু + স্থানাংকিত আন্তর্জাতিক সময় @@ -3040,9 +3056,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ উলানবাতার - - চোইবাল্‌স্যান - ম্যাকাও @@ -3442,9 +3455,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ নোম - - হনোলুলু - এনকোরেজ @@ -3824,13 +3834,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ চীন দিবালোক সময় - - - চয়বালসন সময় - চয়বালসন মানক সময় - চয়বালসন গ্রীষ্মকালীন সময় - - ক্রিসমাস দ্বীপ সময় @@ -4084,6 +4087,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ পিত্রেপ্যাভলস্ক- ক্যামচ্যাটস্কি গৃষ্মকালীন সময় + + + কাজাখাস্তান সময় + + পূর্ব কাজাখাস্তান সময় @@ -4678,8 +4686,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 লা'.'কো'.' ¤ - {0} {1} - {0} {1} @@ -5029,6 +5035,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ভারতীয় রুপি + ভারতীয় টাকা + ভারতীয় টাকা ইরাকি দিনার @@ -5312,10 +5320,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ স্লোভাক কোরুনা - সিয়েরালিয়ন লিয়ন + সিয়েরা লিয়নের লিয়ন + সিয়েরা লিয়নের লিয়ন + সিয়েরা লিয়নের লিয়ন - সিয়েরালিয়ন লিয়ন (1964—2022) + সিয়েরা লিয়নের লিয়ন (1964—2022) + সিয়েরা লিয়নের লিয়ন (1964—2022) + সিয়েরা লিয়নের লিয়ন (1964—2022) সোমালি শিলিং @@ -6343,6 +6355,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Imp. quart {0} Imp. quart + + পার্ট প্রতি বিলিয়ন + {0} পার্ট প্রতি বিলিয়ন + {0} পার্ট প্রতি বিলিয়ন + + + রাত্রি + {0} রাত্রি + {0} রাত্রি + {0}/রাত্রি + প্রধান দিকনির্দেশ {0} পূর্ব @@ -6585,7 +6608,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ দিন {0} দিন {0} দিন - {0} প্রতি দিন + {0}/দিন ঘন্টা @@ -6839,6 +6862,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} চিমটে {0} চিমটে + + পার্ট/ বিলিয়ন + + + রাত্রি + {0} রাত্রি + {0} রাত্রি + {0}/রাত্রি + দিকনির্দেশ {0}পূ @@ -6976,7 +7008,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} সেঃ {0} সেঃ - {0}/সে: + {0}/সেঃ {0}μs @@ -7133,6 +7165,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}fl.dr. {0}fl.dr. + + {0}ppb + {0} ppb + + + রাত্রি + {0}রাত্রি + {0}রাত্রি + {0}/রাত্রি + {0}উ {0}দ diff --git a/make/data/cldr/common/main/br.xml b/make/data/cldr/common/main/br.xml index c299b613822..3f5cbb61022 100644 --- a/make/data/cldr/common/main/br.xml +++ b/make/data/cldr/common/main/br.xml @@ -1266,7 +1266,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic [''’ ՚ ᾽᾿ ʼ ߴ] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2871,6 +2871,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic eur {0} eur hañv {0} eur cʼhoañv {0} + + Honolulu + amzer hollvedel kenurzhiet @@ -3155,9 +3158,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kiev - - Honolulu - Toshkent @@ -3399,13 +3399,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic eur hañv Sina - - - eur Choibalsan - eur cʼhoañv Choibalsan - eur hañv Choibalsan - - eur Enez Christmas diff --git a/make/data/cldr/common/main/brx.xml b/make/data/cldr/common/main/brx.xml index e9a622735d1..58bf5271975 100644 --- a/make/data/cldr/common/main/brx.xml +++ b/make/data/cldr/common/main/brx.xml @@ -847,7 +847,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic इज्राईल आयोल अफ मेन भारत - ब्रिटिशनि भारतारि लैथो बाहागो + ब्रिटिशनि भारतारि लैथो बाहागो ईराक ईरान आइसलेण्ड @@ -1050,9 +1050,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic ग्रेग’रियान फान्जामुथि हिब्रिउ फान्जामुथि भारतनि हादोरनां फान्जामुथि - इस्लामिक फान्जामुथि - इस्लामिक फान्जामुथि ( फारि, हादोरारि मुगा) - इस्लामिक फान्जामुथि( ऊम आल-कूरा) + इस्लामिक फान्जामुथि + इस्लामिक फान्जामुथि ( फारि, हादोरारि मुगा) + इस्लामिक फान्जामुथि( ऊम आल-कूरा) आइ.एस.अ-8601 फान्जामुथि जापानीज फान्जामुथि पार्सियान फान्जामुथि @@ -1557,6 +1557,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic E, M/d d-MMM E, MMM d + MMMM d E, MMMM d M/y dd-MM-y @@ -1956,6 +1957,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} सम {0} साननि सोरां सम {0} थाखोआरि सम + + हनलुलु + गोरोबहोनाय मुलुगनां सम @@ -2693,9 +2697,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic उलानबातार - - च’इबालसान - माकाऊ @@ -3092,9 +3093,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic न’म - - हनलुलु - एंकरेज @@ -3474,13 +3472,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic चाईना सानारि सम - - - च’इबालसान सम - च’इबालसान थाखोआरि सम - च’इबालसान दैज्लां सम - - ख्रीस्टमास द्वीप सम @@ -4294,8 +4285,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} ¤¤ - {0} {1} - {0} {1} @@ -5232,7 +5221,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic सोनाब आफ्रिकानि सि.एफ.ए फ्रांक - एफ सि.एफ.ए पैलेडियम diff --git a/make/data/cldr/common/main/bs.xml b/make/data/cldr/common/main/bs.xml index 5662ea08033..fe5a60dc108 100644 --- a/make/data/cldr/common/main/bs.xml +++ b/make/data/cldr/common/main/bs.xml @@ -70,6 +70,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bini kom siksika + anii bambara bengalski tibetanski @@ -283,6 +284,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komi kornski kvakvala + kuvi kirgiški latinski ladino @@ -309,7 +311,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ luba-lulua luiseno lunda - luo mizo luhija latvijski @@ -488,6 +489,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komorski klasični sirijski sirijski + šleski tamilski južni tučoni telugu @@ -534,10 +536,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ nepoznati jezik urdu uzbečki - vai venda venecijanski vijetnamski + makua volapuk votski vunjo @@ -551,6 +553,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Wu kineski kalmik hosa + kangri soga jao japeški @@ -934,7 +937,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Izrael Ostrvo Man Indija - Britanska Teritorija u Indijskom Okeanu + Britanska Teritorija u Indijskom Okeanu arhipelag Chagos Irak Iran @@ -1232,7 +1235,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ budistički kalendar kineski kalendar - Koptski kalendar + koptski kalendar dangi kalendar etiopski kalendar etiopski kalendar "Amete Alem" @@ -1241,8 +1244,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ indijski nacionalni kalendar islamski kalendar islamski građanski kalendar, tabelarni - islamski kalendar za Saudijsku Arabiju - islamski kalendar, tabelarni, astronomska epoha + islamski kalendar za Saudijsku Arabiju + islamski kalendar, tabelarni, astronomska epoha islamski kalendar, Umm al-Qura kalendar ISO-8601 japanski kalendar @@ -1358,7 +1361,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ mijanmarske šan cifre mijanmarske tai laing cifre nag mundari cifre - Izvorne cifre + izvorni brojevi n’ko cifre ol čiki cifre orijski brojevi @@ -1422,7 +1425,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [a b c č ć d {dž} đ e f g h i j k l {lj} m n {nj} o p r s š t u v z ž] [q w x y] - [A B C Č Ć D {DŽ} E F G H I J K L {LJ} M N {NJ} O P Q R S Š T U V W X Y Z Ž] + [A B C Č Ć D {DŽ} E F G H I J K L {LJ} M N {NJ} O P Q R S Š T U V W X Y Z Ž] [‐ – — , ; \: ! ? . … '‘’ "“”„ ( ) \[ \] @ * / ′ ″] {0}… {1} {0}… @@ -1704,6 +1707,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ E h:mm a E h:mm:ss a y. G + d. M. y. GGGG MMM y. G d. MMM y. G E, d. MMM y. G @@ -1975,15 +1979,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ponoć + a. m. podne + p. m. ujutro poslijepodne navečer po noći - prijepodne - popodne + a. m. + p. m. prijepodne @@ -1991,6 +1997,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + a. m. + p. m. + prijepodne popodne @@ -2005,12 +2015,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ prije nove ere nove ere - Nove ere + nove ere p. n. e. n. e. - n.e. p.n.e. @@ -2100,7 +2109,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ E h:mm a E h:mm:ss a y. G - d/M/y. G + d. M. y. G MMM y. G d. MMM y. G E, d. MMM y. G @@ -2111,8 +2120,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ HH:mm:ss (v) h:mm a (v) HH:mm (v) - d.M. - E, d.M. + d. M. + E, d. M. d. M. d. MMM E, d. MMM @@ -2123,9 +2132,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ W. 'sedmica' 'mjesec' MMMM y. MM/y - d.M.y. - E, d.M.y. - M/y + d. M. y. + E, d. M. y. + M. y. MMM y. d. MMM y. E, d. MMM y. @@ -2151,7 +2160,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ y. G – y. G - y – y. G + y–y. G M. y. G – M. y. G @@ -2176,7 +2185,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ MMM y – MMM y. G - d – d. MMM y. G + d–d. MMM y. G d. MMM y. G – d. MMM y. G d. MMM – d. MMM y. G d. MMM y – d. MMM y. G @@ -2189,7 +2198,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ h a – h a - h – h'h' a HH – HH'h' @@ -2227,48 +2235,48 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ d. M – d. M. - E, d.M. – E, d.M. - E, d.M. – E, d.M. + E, d. M – E, d. M. + E, d. M – E, d. M. - d.–d. MMM + d–d. MMM d. MMM – d. MMM - E, d. – E, d. MMM + E, d – E, d. MMM E, d. MMM – E, d. MMM - M/y – M/y - M/y – M/y + M. y – M. y. + M. y – M. y. d. M. y – d. M. y. - d.M.y. – d.M.y. - d.M.y. – d.M.y. + d. M. y – d. M. y. + d. M. y – d. M. y. - E, d.M.y. – E, d.M.y. - E, d.M.y. – E, d.M.y. - E, d.M.y. – E, d.M.y. + E, d. M. y – E, d. M. y. + E, d. M. y – E, d. M. y. + E, d. M. y – E, d. M. y. LLL – LLL y. - LLL y. – LLL y. + LLL y – LLL y. - d. – d. MMM y. + d–d. MMM y. d. MMM – d. MMM y. - d. MMM y. – d. MMM y. + d. MMM y – d. MMM y. - E, d. – E, d. MMM y. + E, d – E, d. MMM y. E, d. MMM – E, d. MMM y. - E, d. MMM y. – E, d. MMM y. + E, d. MMM y – E, d. MMM y. LLLL – LLLL y. - LLLL y. – LLLL y. + LLLL y – LLLL y. @@ -2634,11 +2642,31 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ prošli pon. ovaj pon. sljedeći pon + + za {0} pon + za {0} pon + za {0} pon + + + prije {0} pon + prije {0} pon + prije {0} pon + prošli pon. ovaj pon. sljedeći pon. + + za {0} pon + za {0} pon + za {0} pon + + + prije {0} pon + prije {0} pon + prije {0} pon + prošli utorak @@ -2792,7 +2820,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ min - za {0} min. + za {0} min za {0} min. za {0} min. @@ -2802,9 +2830,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ prije {0} min. - - min. - sekunda sada @@ -2820,7 +2845,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - sek. + s za {0} sek. za {0} sek. @@ -2847,6 +2872,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ GMT {0} {0}, ljetno vrijeme {0}, standardno vrijeme + + Honolulu + Koordinirano svjetsko vrijeme @@ -3085,9 +3113,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ulan Bator - - Čojbalsan - Makau @@ -3214,9 +3239,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Simferopolj - - Honolulu - Beulah, Sjeverna Dakota @@ -3488,13 +3510,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kinesko ljetno vrijeme - - - Čojbalsansko vrijeme - Čojbalsansko standardno vrijeme - Čojbalsansko ljetno vrijeme - - Vrijeme na Božićnom Ostrvu @@ -3763,14 +3778,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Petropavlovsk-Kamčatski letnje računanje vremena + + + kazahstansko vrijeme + + - Istočnokazahstansko vrijeme + istočnokazahstansko vrijeme - Zapadnokazahstansko vrijeme + zapadnokazahstansko vrijeme @@ -3794,7 +3814,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Kirgistansko vrijeme + kirgistansko vrijeme @@ -4102,7 +4122,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Tadžikistansko vrijeme + tadžikistansko vrijeme @@ -4124,9 +4144,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Turkmenistansko vrijeme - Turkmenistansko standardno vrijeme - Turkmenistansko ljetno vrijeme + turkmenistansko vrijeme + turkmenistansko standardno vrijeme + turkmenistansko ljetno vrijeme @@ -4143,9 +4163,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Uzbekistansko vrijeme - Uzbekistansko standardno vrijeme - Uzbekistansko ljetno vrijeme + uzbekistansko vrijeme + uzbekistansko standardno vrijeme + uzbekistansko ljetno vrijeme @@ -4594,111 +4614,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - @@ -4745,124 +4660,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 bil'.' ¤ - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - {0} {1} @@ -6802,6 +6599,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} po kvadratnoj milji + akeri {0} katastarsko jutro {0} katastarska jutra {0} katastarskih jutara @@ -7162,20 +6960,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ tačaka po centimetru {0} tačka po centimetru - {0} ppcm + {0} dpcm {0} tačaka po centimetru tačaka po inču {0} tačka po inču - {0} ppi + {0} dpi {0} tačaka po inču - radijus zemlje - {0} radijus zemlje - {0} radijusa zemlje - {0} radijus zemlje + radijus Zemlje + {0} radijus Zemlje + {0} radijusa Zemlje + {0} radijusa Zemlje kilometri @@ -7740,6 +7538,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} imperijalna kvarca {0} imperijalnih kvarca + + noći + {0} noć + {0} noći + {0} noći + {0} po noći + glavni pravac {0} istok @@ -7775,9 +7580,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ katastarska jutra - {0} kj - {0} kj - {0} kj + {0} ac + {0} ac + {0} ac dunumi @@ -7935,13 +7740,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ dpcm {0} dpcm - {0} ppcm + {0} dpcm {0} dpcm dpi {0} dpi - {0} ppi + {0} dpi {0} dpi @@ -7951,7 +7756,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} tačaka - metri + m milje @@ -8055,9 +7860,39 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Nm {0} Nm + + Ml + {0} Ml + {0} Ml + {0} Ml + + + hl + {0} hl + {0} hl + {0} hl + litri + + dl + {0} dl + {0} dl + {0} dl + + + cl + {0} cl + {0} cl + {0} cl + + + ml + {0} ml + {0} ml + {0} ml + gal {0} gal @@ -8091,14 +7926,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} imp. fl oz + kašike {0} kšk. {0} kšk. - {0} tbsp + {0} kšk. + kšč. {0} kšč. {0} kšč. - {0} tsp + {0} kšč. kš. des. @@ -8138,9 +7975,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ imp. kvarc - {0} imp. kvarc - {0} imp. kvarca - {0} imp. kvarca + {0} imp. kvart + {0} imp. kvarta + {0} imp. kvarata + + + noći + {0} noć + {0} noći + {0} noći + {0}/noć pravac @@ -8151,6 +7995,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + aker + {0} ac + {0} ac + {0} ac + ppm @@ -8205,6 +8055,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ns + cal {0} kal. {0} kal. {0} cal @@ -8229,19 +8080,34 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}dpcm - {0} ppcm + {0} dpcm {0} dpcm {0}dpi - {0} ppi + {0} dpi {0} dpi tačka - metar + m + + + mi + + + yd + + + ft + + + in + + + sg gram @@ -8258,6 +8124,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ct + gr {0} gr {0} gr {0} gr @@ -8277,12 +8144,36 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} °F {0}°F + + Ml + + + hl + litar {0}l {0}l {0}l + + dl + {0} dl + {0} dl + {0} dl + + + cl + {0} cl + {0} cl + {0} cl + + + ml + {0} ml + {0} ml + {0} ml + kšk. {0} kšk. @@ -8295,6 +8186,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} kšč. {0} kšč. + + imp. kvart + {0} imp. kvart + {0} imp. kvarta + {0} imp. kvarata + + + noći + {0} noć + {0} noći + {0} noći + {0}/noć + {0}I {0}S diff --git a/make/data/cldr/common/main/bs_Cyrl.xml b/make/data/cldr/common/main/bs_Cyrl.xml index a27f0b85fa2..720a39415b6 100644 --- a/make/data/cldr/common/main/bs_Cyrl.xml +++ b/make/data/cldr/common/main/bs_Cyrl.xml @@ -900,7 +900,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Израел Острво Мен Индија - Британска територија у Индијском океану + Британска територија у Индијском океану Ирак Иран Исланд @@ -1136,7 +1136,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic грегоријански календар хебрејски календар Индијски национални календар - исламски календар + исламски календар Исламски цивилни календар ISO-8601 календар јапански календар @@ -2528,6 +2528,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Време: {0} + + Хонолулу + Координисано универзално вријеме @@ -3262,9 +3265,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Улан Батор - - Чојбалсан - Макау @@ -3661,9 +3661,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ном - - Хонолулу - Енкориџ @@ -4043,13 +4040,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Кина љетње рачунање времена - - - Чојбалсан вријеме - Чојбалсан стандардно вријеме - Чојбалсан љетње рачунање времена - - Божићна острва вријеме @@ -4300,6 +4290,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Петропавловско-камчатско летње рачунање вемена + + + Kazakhstan Time + + Источно-казахстанско вријеме @@ -4740,6 +4735,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Јекатеринбург љетње рачунање времена + + + Yukon Time + + @@ -4863,9 +4863,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 000 бил ¤ - {0} {1} - {0} {1} - {0} {1} @@ -6783,10 +6780,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic мегапиксели - тачке по центиметру + тачке по центиметру - тачке по инчу + тачке по инчу километри diff --git a/make/data/cldr/common/main/ca.xml b/make/data/cldr/common/main/ca.xml index cd7cc403042..132bd0137cd 100644 --- a/make/data/cldr/common/main/ca.xml +++ b/make/data/cldr/common/main/ca.xml @@ -65,6 +65,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ belarús beja bemba + betawi bena bafut badaga @@ -77,6 +78,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ edo kom blackfoot + anii bambara bengalí tibetà @@ -110,6 +112,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ chipewyan cherokee xeiene + chickasaw kurd central sorani kurd sorani @@ -211,7 +214,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ alt alemany mitjà guaraní alt alemany antic - concani de Goa gondi gorontalo gòtic @@ -235,6 +237,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ híligaynon hitita hmong + hmong njua hiri motu croat alt sòrab @@ -316,6 +319,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komi còrnic kwak’wala + kuvi kirguís llatí judeocastellà @@ -329,6 +333,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lígur lillooet lakota + ladí llombard lingala laosià @@ -342,7 +347,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ luba-lulua luisenyo lunda - luo mizo luyia letó @@ -586,12 +590,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ idioma desconegut urdú uzbek - vai venda vènet vepse vietnamita flamenc occidental + makua volapük vòtic vunjo @@ -606,6 +610,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ calmuc xosa mingrelià + kangri soga yao yapeà @@ -900,6 +905,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Xina Colòmbia Illa Clipperton + Sark Costa Rica Cuba Cap Verd @@ -927,8 +933,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ zona euro Finlàndia Fiji - Illes Malvines - Illes Malvines (Illes Falkland) + Illes Falkland + Illes Falkland (Illes Malvines) Micronèsia Illes Fèroe França @@ -966,7 +972,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Illa de Man Índia Territori Britànic de l’Oceà Índic - Arxipèlag de Chagos + Illes Chagos Iraq Iran Islàndia @@ -986,7 +992,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kuwait Illes Caiman Kazakhstan - Laos + Lao Líban Saint Lucia Liechtenstein @@ -1024,7 +1030,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Namíbia Nova Caledònia Níger - Norfolk + Illa Norfolk Nigèria Nicaragua Països Baixos @@ -1082,7 +1088,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Tristan da Cunha Illes Turks i Caicos Txad - Territoris Australs Francesos + Terres Australs Antàrtiques Franceses Togo Tailàndia Tadjikistan @@ -1093,13 +1099,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Tunísia Tonga Turquia - Trinitat i Tobago + Trinidad i Tobago Tuvalu Taiwan Tanzània Ucraïna Uganda - Illes Perifèriques Menors dels EUA + Illes Menors Allunyades dels Estats Units Nacions Unides ONU Estats Units @@ -1109,8 +1115,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ciutat del Vaticà Saint Vincent i les Grenadines Veneçuela - Illes Verges britàniques - Illes Verges nord-americanes + Illes Verges Britàniques + Illes Verges dels Estats Units Vietnam Vanuatu Wallis i Futuna @@ -1120,7 +1126,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kosovo Iemen Mayotte - República de Sud-àfrica + Sud-àfrica Zàmbia Zimbàbue regió desconeguda @@ -1360,9 +1366,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - - [£ ₤] - [\--﹣ ‑ ‒ −⁻₋ ➖] [,,﹐︐ ، ٫ 、﹑、︑] @@ -1842,15 +1845,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ vespre nit - - mitjanit - mat. - matí - migdia - tarda - vespre - nit - a. m. p. m. @@ -1999,7 +1993,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ d MMMM 'del' y E, d MMMM 'del' y QQQ y - QQQQ y + QQQQ 'del' y 'setmana' w 'del' Y 'setmana' w 'del' Y @@ -2574,6 +2568,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Hora de: {0} Hora d’estiu, {0} Hora estàndard, {0} + + Honolulu + Temps universal coordinat @@ -2651,9 +2648,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Cap Verd - - Curaçao - Nicòsia @@ -2834,9 +2828,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Lisboa - - Asunción - Reunió @@ -2912,9 +2903,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Mogadiscio - - São Tomé - Damasc @@ -2933,9 +2921,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Simferòpol - - Honolulu - Beulah, Dakota del Nord @@ -2973,24 +2958,24 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Hora de l’Àfrica Central + Hora de l’Àfrica central - Hora de l’Àfrica Oriental + Hora de l’Àfrica oriental - Hora estàndard del sud de l’Àfrica + Hora estàndard de l’Àfrica meridional - Hora de l’Àfrica Occidental - Hora estàndard de l’Àfrica Occidental - Hora d’estiu de l’Àfrica Occidental + Hora de l’Àfrica occidental + Hora estàndard de l’Àfrica occidental + Hora d’estiu de l’Àfrica occidental @@ -3037,7 +3022,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Hora d’Anadyr + Hora d’Anàdir Hora estàndard d’Anadyr Horari d’estiu d’Anadyr @@ -3086,9 +3071,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Hora d’Austràlia Central - Hora estàndard d’Austràlia Central - Hora d’estiu d’Austràlia Central + Hora d’Austràlia central + Hora estàndard d’Austràlia central + Hora d’estiu d’Austràlia central @@ -3100,16 +3085,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Hora d’Austràlia Oriental - Hora estàndard d’Austràlia Oriental - Hora d’estiu d’Austràlia Oriental + Hora d’Austràlia oriental + Hora estàndard d’Austràlia oriental + Hora d’estiu d’Austràlia oriental - Hora d’Austràlia Occidental - Hora estàndard d’Austràlia Occidental - Hora d’estiu d’Austràlia Occidental + Hora d’Austràlia occidental + Hora estàndard d’Austràlia occidental + Hora d’estiu d’Austràlia occidental @@ -3188,13 +3173,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Hora d’estiu de la Xina - - - Hora de Choibalsan - Hora estàndard de Choibalsan - Hora d’estiu de Choibalsan - - Hora de Kiritimati @@ -3255,9 +3233,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Hora del Centre d’Europa - Hora estàndard del Centre d’Europa - Hora d’estiu del Centre d’Europa + Hora d’Europa central + Hora estàndard d’Europa central + Hora d’estiu d’Europa central CET @@ -3267,9 +3245,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Hora de l’Est d’Europa - Hora estàndard de l’Est d’Europa - Hora d’estiu de l’Est d’Europa + Hora d’Europa oriental + Hora estàndard d’Europa oriental + Hora d’estiu d’Europa oriental EET @@ -3279,14 +3257,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Hora de l’Extrem Orient Europeu + Hora de l’extrem oriental d’Europa - Hora de l’Oest d’Europa - Hora estàndard de l’Oest d’Europa - Hora d’estiu de l’Oest d’Europa + Hora d’Europa occidental + Hora estàndard d’Europa occidental + Hora d’estiu d’Europa occidental WET @@ -3315,7 +3293,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Hora d’Antàrtida i França del Sud + Hora d’Antàrtida i de les Terres Australs Antàrtiques Franceses @@ -3342,12 +3320,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Hora del Meridià de Greenwich + Hora del meridià de Greenwich GMT + + + Hora de Groenlàndia + Hora estàndard de Groenlàndia + Hora d’estiu de Groenlàndia + + Hora de l’Est de Groenlàndia @@ -3458,6 +3443,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Horari d’estiu de Petropavlovsk de Kamtxatka + + + Hora del Kazakhstan + + Hora de l’est del Kazakhstan @@ -3996,8 +3986,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 B¤ - {0} {1} - {0} {1} @@ -4271,9 +4259,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ nous rubles bielorussos (1994–1999) - ruble bielorús - ruble bielorús - rubles bielorussos + ruble belarús + ruble belarús + rubles belarussos р. @@ -5728,6 +5716,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} quirats + masculine mil·ligrams per decilitre {0} mil·ligram per decilitre {0} mil·ligrams per decilitre @@ -5956,6 +5945,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} volts + feminine quilocalories {0} quilocaloria {0} quilocalories @@ -6193,6 +6183,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} milles escandinaves + masculine {0} punt tipogràfic {0} punts tipogràfics @@ -6340,6 +6331,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} cavalls de vapor + masculine mil·límetres de mercuri {0} mil·límetre de mercuri {0} mil·límetres de mercuri @@ -6632,6 +6624,25 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ quarts imperials + + feminine + llum + {0} llum + {0} llum + + + masculine + part per mil milions + {0} part per mil milions + {0} parts per mil milions + + + feminine + nits + {0} nit + {0} nits + {0} per nit + punt cardinal {0} est @@ -7055,6 +7066,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} quart imperial {0} quarts imperials + + llum + {0} llum + {0} llum + + + part/mil milions + + + nits + {0} nit + {0} nits + {0}/nit + punt {0}O @@ -7222,6 +7247,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} qt imp {0} qt imp + + llum + {0} llum + {0} llum + + + nit + {0}/nit + {0}/nit + {0}/nit + diff --git a/make/data/cldr/common/main/ca_ES_VALENCIA.xml b/make/data/cldr/common/main/ca_ES_VALENCIA.xml index 9c0482f08ab..aaa1063f17a 100644 --- a/make/data/cldr/common/main/ca_ES_VALENCIA.xml +++ b/make/data/cldr/common/main/ca_ES_VALENCIA.xml @@ -19,17 +19,25 @@ CLDR data files are interpreted according to the LDML specification (http://unic assamés azerbaidjanés balinés + bavarés txetxé gal·lés danés neerlandés mitjà anglés + anglés australià + anglés canadenc + anglés britànic anglés (GB) + anglés americà anglés (EUA) anglés mitjà finés feroés francés + francés canadenc + francés suís + francés cajun francés mitjà francés antic irlandés @@ -52,6 +60,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic neerlandés polonés portugués + portugués del Brasil + portugués de Portugal romanés aromanés ruandés @@ -66,9 +76,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic tongalés ucraïnés cantonés + xinés, cantonés xinés + xinés, mandarí + xinés simplificat + xinés mandarí (simplificat) + xinés tradicional + xinés mandarí (tradicional) + @@ -86,6 +103,33 @@ CLDR data files are interpreted according to the LDML specification (http://unic ordre del xinés simplificat - GB2312 + + + + + + + vesprada + + + vesprada + + + vesprada + + + + + vesprada + + + vesprada + + + + + + @@ -108,6 +152,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic lek albanés lekë albanesos + + kwanza angolés + kwanza angolés + + + kwanza angolés (1977–1991) + kwanza angolés (1977–1991) + + + nou kwanza angolés (1990–2000) + nou kwanza angolés (1990–2000) + + + kwanza angolés reajustat (1995–1999) + kwanza angolés reajustat (1995–1999) + manat azerbaidjanés (1993–2006) manat azerbaidjanés (1993–2006) @@ -118,6 +178,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic manat azerbaidjanés manats azerbaidjanesos + + franc congolés + franc congolés + escut xilé escut xilé @@ -128,6 +192,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic peso xilé pesos xilens + + iuan xinés extracontinental + iuan xinés extracontinental + dòlar del Banc Popular Xinés dòlar del Banc Popular Xinés @@ -148,6 +216,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic franc francés francs francesos + + cedi ghanés (1979–2007) + cedi ghanés (1979–2007) + + + cedi ghanés + cedi ghanés + fòrint hongarés fòrint hongarés @@ -228,6 +304,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic franc rwandés francs de Ruanda + + dinar sudanés + dinar sudanés + tolar eslové tolar eslové @@ -263,6 +343,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic franc UIC francés francs UIC francesos + + nou zaire zairés + nou zaire zairés + + + zaire zairés + zaire zairés + dòlar zimbabués (1980–2008) dòlar zimbabués (1980–2008) @@ -280,4 +368,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + kana japonés + diff --git a/make/data/cldr/common/main/ccp.xml b/make/data/cldr/common/main/ccp.xml index 10a56431c72..7304ae6dd98 100644 --- a/make/data/cldr/common/main/ccp.xml +++ b/make/data/cldr/common/main/ccp.xml @@ -1931,6 +1931,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} 𑄃𑄧𑄇𑄴𑄖𑄧 {0} 𑄘𑄨𑄝𑄪𑄌𑄴𑄎𑄳𑄠 𑄃𑄧𑄇𑄴𑄖𑄧𑄖𑄴 {0} 𑄟𑄚𑄧𑄇𑄴 𑄃𑄧𑄇𑄴𑄖𑄧𑄖𑄴 + + 𑄦𑄧𑄚𑄮𑄣𑄪𑄣𑄪 + 𑄘𑄇𑄴𑄘𑄨𑄠 𑄛𑄨𑄖𑄴𑄗𑄨𑄟𑄨𑄢𑄴 𑄃𑄧𑄇𑄴𑄖𑄧 @@ -2653,9 +2656,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 𑄃𑄪𑄣𑄚𑄴𑄝𑄖𑄢𑄴 - - 𑄌𑄰𑄱𑄝𑄣𑄴𑄥𑄳𑄠𑄚𑄴 - 𑄟𑄳𑄠𑄇𑄃𑄮 @@ -3049,9 +3049,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 𑄚𑄮𑄟𑄴 - - 𑄦𑄧𑄚𑄮𑄣𑄪𑄣𑄪 - 𑄃𑄬𑄚𑄴𑄇𑄮𑄢𑄬𑄌𑄴 @@ -3424,13 +3421,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 𑄌𑄨𑄚𑄴 𑄘𑄨𑄚𑄮𑄃𑄣𑄮𑄢𑄴 𑄃𑄧𑄇𑄴𑄖𑄧 - - - 𑄌𑄧𑄠𑄴𑄝𑄣𑄴𑄥𑄧𑄚𑄴 𑄃𑄧𑄇𑄴𑄖𑄧 - 𑄌𑄧𑄠𑄴𑄝𑄣𑄴𑄥𑄧𑄚𑄴 𑄟𑄚𑄧𑄇𑄴 𑄃𑄧𑄇𑄴𑄖𑄧 - 𑄌𑄧𑄠𑄴𑄝𑄣𑄴𑄥𑄧𑄚𑄴 𑄉𑄧𑄢𑄧𑄟𑄴𑄇𑄣𑄧𑄢𑄴 𑄃𑄧𑄇𑄴𑄖𑄧 - - 𑄇𑄳𑄢𑄨𑄌𑄴𑄟𑄥𑄴 𑄉𑄭 𑄉𑄭 𑄞𑄨𑄘𑄬 𑄃𑄧𑄇𑄴𑄖𑄧 diff --git a/make/data/cldr/common/main/ce.xml b/make/data/cldr/common/main/ce.xml index 6a0fcd64320..e2ff1fc4e6a 100644 --- a/make/data/cldr/common/main/ce.xml +++ b/make/data/cldr/common/main/ce.xml @@ -1250,6 +1250,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + Гонолулу + Йоьвзуш йоцу гӀала @@ -1976,9 +1979,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Улан-Батор - - Чойбалсан - Макао @@ -2375,9 +2375,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ном - - Гонолулу - Анкоридж @@ -2722,13 +2719,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Цийчоьнан, аьхкенан хан - - - Чойбалсан - Чойбалсан, стандартан хан - Чойбалсан, аьхкенан хан - - Ӏийса пайхамар винчу ден гӀайре diff --git a/make/data/cldr/common/main/ceb.xml b/make/data/cldr/common/main/ceb.xml index 814a72dfd44..19238f6bb04 100644 --- a/make/data/cldr/common/main/ceb.xml +++ b/make/data/cldr/common/main/ceb.xml @@ -20,48 +20,41 @@ the LDML specification (http://unicode.org/reports/tr35/) Bangla Cebuano German - Austrian German Swiss High German English - English sa Australia - English sa Canada Britanikong English - English sa UK - English sa America - English sa US + English (UK) + English (America) + English (US) Espanyol Espanyol (Europa) Pranses - Pranses sa Canada - Pranses sa Switzerland Hindi Hinglish Indonesian - Italiano + Italyano Hinapon Korean Dutch Flemish Polish Portuguese - Brazilyanong Portuguese - Portuguese sa Europe Russian Thai Turkish Wala Mailhing Pinulongan Inintsik Chinese, Mandarin - Pinasimpleng Chinese - Pinasimpleng Mandarin Chinese + Pinasimple nga Chinese + Pinasimple nga Mandarin Chinese Tradisyonal nga Chinese Tradisyonal nga Mandarin Chinese - - + + - + @@ -348,7 +341,7 @@ the LDML specification (http://unicode.org/reports/tr35/) Turkmenistan Tunisia Tonga - Turkey + Turkiye Trinidad & Tobago Tuvalu Taiwan @@ -606,7 +599,7 @@ the LDML specification (http://unicode.org/reports/tr35/) Hunyo Hulyo Agosto - Septiyembre + Septyembre Oktubre Nobyembre Disyembre @@ -627,6 +620,20 @@ the LDML specification (http://unicode.org/reports/tr35/) N D + + Enero + Pebrero + Marso + Abril + Mayo + Hunyo + Hulyo + Agosto + Septyembre + Oktubre + Nobyembre + Disyembre + @@ -984,12 +991,21 @@ the LDML specification (http://unicode.org/reports/tr35/) minuto + + min. + + + min + segundo seg. + + seg + time zone @@ -997,12 +1013,12 @@ the LDML specification (http://unicode.org/reports/tr35/) GMT {0} Oras sa {0} - Daylight Time sa {0} - Tamdanang Oras sa {0} + Daylight nga Oras sa {0} + Standard nga Oras sa {0} {1} {0} - Gikoordinar nga Kinatibuk-ang Oras + Coordinated Universal Time @@ -1010,14 +1026,17 @@ the LDML specification (http://unicode.org/reports/tr35/) - Oras sa Tag-init sa British + British Summer Time - Tamdanang Oras sa Irish + Irish Standard Time + + Enderbury + Siyudad sa Ho Chi Minh @@ -1038,28 +1057,28 @@ the LDML specification (http://unicode.org/reports/tr35/) - Tamdanang Oras sa South Africa + Standard nga Oras sa South Africa Oras sa West Africa - Tamdanang Oras sa West Africa - Oras sa Tag-init sa West Africa + Standard nga Oras sa West Africa + Oras sa Ting-init sa West Africa Oras sa Alaska - Tamdanang Oras sa Alaska - Daylight Time sa Alaska + Standard nga Oras sa Alaska + Daylight nga Oras sa Alaska Oras sa Amazon - Tamdanang Oras sa Amazon - Oras sa Tag-init sa Amazon + Standard nga Oras sa Amazon + Oras sa Ting-init sa Amazon @@ -1085,100 +1104,100 @@ the LDML specification (http://unicode.org/reports/tr35/) - Pacific Time - Pacific Standard Time - Pacific Daylight Time + Oras sa Pasipiko + Standard nga Oras sa Pasipiko + Daylight nga Oras sa Pasipiko Oras sa Apia - Tamdanang Oras sa Apia - Daylight Time sa Apia + Standard nga Oras sa Apia + Daylight nga Oras sa Apia Oras sa Arabia - Tamdanang Oras sa Arabia - Oras sa Tag-init sa Arabia + Standard nga Oras sa Arabia + Daylight nga Oras sa Arabia Oras sa Argentina - Tamdanang Oras sa Argentina - Oras sa Tag-init sa Argentina + Standard nga Oras sa Argentina + Oras sa Ting-init sa Argentina Oras sa Western Argentina - Tamdanang Oras sa Western Argentina - Oras sa Tag-init sa Western Argentina + Standard nga Oras sa Western Argentina + Oras sa Ting-init sa Western Argentina Oras sa Armenia - Tamdanang Oras sa Armenia - Oras sa Tag-init sa Armenia + Standard nga Oras sa Armenia + Oras sa Ting-init sa Armenia - Atlantic Time - Atlantic Standard Time - Atlantic Daylight Time + Oras sa Atlantic + Standard nga Oras sa Atlantic + Daylight nga Oras sa Atlantic Oras sa Central Australia - Tamdanang Oras sa Central Australia - Oras sa Tag-init sa Central Australia + Standard nga Oras sa Central Australia + Daylight nga Oras sa Central Australia Oras sa Central Western Australia - Tamdanang Oras sa Central Western Australia - Oras sa Tag-init sa Central Western Australia + Standard nga Oras sa Central Western Australia + Daylight nga Oras sa Central Western Australia Oras sa Eastern Australia - Tamdanang Oras sa Eastern Australia - Oras sa Tag-init sa Eastern Australia + Standard nga Oras sa Eastern Australia + Daylight nga Oras sa Eastern Australia Oras sa Western Australia - Tamdanang Oras sa Western Australia - Oras sa Tag-init sa Western Australia + Standard nga Oras sa Western Australia + Daylight nga Oras sa Western Australia Oras sa Azerbaijan - Tamdanang Oras sa Azerbaijan - Oras sa Tag-init sa Azerbaijan + Standard nga Oras sa Azerbaijan + Oras sa Ting-init sa Azerbaijan Oras sa Azores - Tamdanang Oras sa Azores - Oras sa Tag-init sa Azores + Standard nga Oras sa Azores + Oras sa Ting-init sa Azores Oras sa Bangladesh - Tamdanang Oras sa Bangladesh - Oras sa Tag-init sa Bangladesh + Standard nga Oras sa Bangladesh + Oras sa Ting-init sa Bangladesh @@ -1194,8 +1213,8 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa Brasilia - Tamdanang Oras sa Brasilia - Oras sa Tag-init sa Brasilia + Standard nga Oras sa Brasilia + Oras sa Ting-init sa Brasilia @@ -1206,41 +1225,34 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa Cape Verde - Tamdanang Oras sa Cape Verde - Oras sa Tag-init sa Cape Verde + Standard nga Oras sa Cape Verde + Oras sa Ting-init sa Cape Verde - Tamdanang Oras sa Chamorro + Standard nga Oras sa Chamorro Oras sa Chatham - Tamdanang Oras sa Chatham - Oras sa Tag-init sa Chatham + Standard nga Oras sa Chatham + Daylight nga Oras sa Chatham Oras sa Chile - Tamdanang Oras sa Chile - Oras sa Tag-init sa Chile + Standard nga Oras sa Chile + Oras sa Ting-init sa Chile - Oras sa Tsina - Tamdanang Oras sa Tsina - Oras sa Tag-init sa Tsina - - - - - Oras sa Choibalsan - Tamdanang Oras sa Choibalsan - Oras sa Tag-init sa Choibalsan + Oras sa China + Standard nga Oras sa China + Daylight nga Oras sa China @@ -1256,22 +1268,22 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa Colombia - Tamdanang Oras sa Colombia - Oras sa Tag-init sa Colombia + Standard nga Oras sa Colombia + Oras sa Ting-init sa Colombia Oras sa Cook Islands - Tamdanang Oras sa Cook Islands - Katungang Oras sa Tag-init sa Cook Islands + Standard nga Oras sa Cook Islands + Katungang Oras sa Ting-init sa Cook Islands Oras sa Cuba - Tamdanang Oras sa Cuba - Oras sa Tag-init sa Cuba + Standard nga Oras sa Cuba + Daylight nga Oras sa Cuba @@ -1292,8 +1304,8 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa Easter Island - Tamdanang Oras sa Easter Island - Oras sa Tag-init sa Easter Island + Standard nga Oras sa Easter Island + Oras sa Ting-init sa Easter Island @@ -1304,15 +1316,15 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa Central Europe - Tamdanang Oras sa Central Europe - Oras sa Tag-init sa Central Europe + Standard nga Oras sa Central Europe + Oras sa Ting-init sa Central Europe Oras sa Eastern Europe - Tamdanang Oras sa Eastern Europe - Oras sa Tag-init sa Eastern Europe + Standard nga Oras sa Eastern Europe + Oras sa Ting-init sa Eastern Europe @@ -1323,22 +1335,22 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa Western Europe - Tamdanang Oras sa Western Europe - Oras sa Tag-init sa Western Europe + Standard nga Oras sa Western Europe + Oras sa Ting-init sa Western Europe Oras sa Falkland Islands - Tamdanang Oras sa Falkland Islands - Oras sa Tag-init sa Falkland Islands + Standard nga Oras sa Falkland Islands + Oras sa Ting-init sa Falkland Islands Oras sa Fiji - Tamdanang Oras sa Fiji - Oras sa Tag-init sa Fiji + Standard nga Oras sa Fiji + Oras sa Ting-init sa Fiji @@ -1364,8 +1376,8 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa Georgia - Tamdanang Oras sa Georgia - Oras sa Tag-init sa Georgia + Standard nga Oras sa Georgia + Oras sa Ting-init sa Georgia @@ -1381,20 +1393,20 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa East Greenland - Tamdanang Oras sa East Greenland - Oras sa Tag-init sa East Greenland + Standard nga Oras sa East Greenland + Oras sa Ting-init sa East Greenland Oras sa West Greenland - Tamdanang Oras sa West Greenland - Oras sa Tag-init sa West Greenland + Standard nga Oras sa West Greenland + Oras sa Ting-init sa West Greenland - Tamdanang Oras sa Gulf + Standard nga Oras sa Gulf @@ -1405,27 +1417,27 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa Hawaii-Aleutian - Tamdanang Oras sa Hawaii-Aleutian - Oras sa Tag-init sa Hawaii-Aleutian + Standard nga Oras sa Hawaii-Aleutian + Daylight nga Oras sa Hawaii-Aleutian Oras sa Hong Kong - Tamdanang Oras sa Hong Kong - Oras sa Tag-init sa Hong Kong + Standard nga Oras sa Hong Kong + Oras sa Ting-init sa Hong Kong Oras sa Hovd - Tamdanang Oras sa Hovd - Oras sa Tag-init sa Hovd + Standard nga Oras sa Hovd + Oras sa Ting-init sa Hovd - Tamdanang Oras sa India + Standard nga Oras sa India @@ -1456,29 +1468,34 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa Iran - Tamdanang Oras sa Iran - Oras sa Tag-init sa Iran + Standard nga Oras sa Iran + Daylight nga Oras sa Iran Oras sa Irkutsk - Tamdanang Oras sa Irkutsk - Oras sa Tag-init sa Irkutsk + Standard nga Oras sa Irkutsk + Oras sa Ting-init sa Irkutsk Oras sa Israel - Tamdanang Oras sa Israel - Oras sa Tag-init sa Israel + Standard nga Oras sa Israel + Daylight nga Oras sa Israel Oras sa Japan - Tamdanang Oras sa Japan - Oras sa Adlawan sa Japan + Standard nga Oras sa Japan + Daylight nga Oras sa Japan + + + + + Oras sa Kazakhstan @@ -1494,8 +1511,8 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa Korea - Tamdanang Oras sa Korea - Oras sa Tag-init sa Korea + Standard nga Oras sa Korea + Daylight nga Oras sa Korea @@ -1506,8 +1523,8 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa Krasnoyarsk - Tamdanang Oras sa Krasnoyarsk - Oras sa Tag-init sa Krasnoyarsk + Standard nga Oras sa Krasnoyarsk + Oras sa Ting-init sa Krasnoyarsk @@ -1523,15 +1540,15 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa Lord Howe - Tamdanang Oras sa Lord Howe - Oras sa Tag-init sa Lord Howe + Standard nga Oras sa Lord Howe + Daylight nga Oras sa Lord Howe Oras sa Magadan - Tamdanang Oras sa Magadan - Oras sa Tag-init sa Magadan + Standard nga Oras sa Magadan + Oras sa Ting-init sa Magadan @@ -1557,8 +1574,8 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa Mauritius - Tamdanang Oras sa Mauritius - Oras sa Tag-init sa Mauritius + Standard nga Oras sa Mauritius + Oras sa Ting-init sa Mauritius @@ -1569,22 +1586,22 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa Mexican Pacific - Tamdanang Oras sa Mexican Pacific - Oras sa Tag-init sa Mexican Pacific + Standard nga Oras sa Mexican Pacific + Daylight nga Oras sa Mexican Pacific Oras sa Ulaanbaatar - Tamdanang Oras sa Ulaanbaatar - Oras sa Tag-init sa Ulaanbaatar + Standard nga Oras sa Ulaanbaatar + Oras sa Ting-init sa Ulaanbaatar Oras sa Moscow - Tamdanang Oras sa Moscow - Oras sa Tag-init sa Moscow + Standard nga Oras sa Moscow + Oras sa Ting-init sa Moscow @@ -1605,22 +1622,22 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa New Caledonia - Tamdanang Oras sa New Caledonia - Oras sa Tag-init sa New Caledonia + Standard nga Oras sa New Caledonia + Oras sa Ting-init sa New Caledonia Oras sa New Zealand - Tamdanang Oras sa New Zealand - Oras sa Tag-init sa New Zealand + Standard nga Oras sa New Zealand + Daylight nga Oras sa New Zealand Oras sa Newfoundland - Tamdanang Oras sa Newfoundland - Oras sa Tag-init sa Newfoundland + Standard nga Oras sa Newfoundland + Daylight nga Oras sa Newfoundland @@ -1631,36 +1648,36 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa Norfolk Island - Tamdanang Oras sa Norfolk Island - Oras sa Tag-init sa Norfolk Island + Standard nga Oras sa Norfolk Island + Daylight nga Oras sa Norfolk Island Oras sa Fernando de Noronha - Tamdanang Oras sa Fernando de Noronha - Oras sa Tag-init sa Fernando de Noronha + Standard nga Oras sa Fernando de Noronha + Oras sa Ting-init sa Fernando de Noronha Oras sa Novosibirsk - Tamdanang Oras sa Novosibirsk - Oras sa Tag-init sa Novosibirsk + Standard nga Oras sa Novosibirsk + Oras sa Ting-init sa Novosibirsk Oras sa Omsk - Tamdanang Oras sa Omsk - Oras sa Tag-init sa Omsk + Standard nga Oras sa Omsk + Oras sa Ting-init sa Omsk Oras sa Pakistan - Tamdanang Oras sa Pakistan - Oras sa Tag-init sa Pakistan + Standard nga Oras sa Pakistan + Oras sa Ting-init sa Pakistan @@ -1676,22 +1693,22 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa Paraguay - Tamdanang Oras sa Paraguay - Oras sa Tag-init sa Paraguay + Standard nga Oras sa Paraguay + Oras sa Ting-init sa Paraguay Oras sa Peru - Tamdanang Oras sa Peru - Oras sa Tag-init sa Peru + Standard nga Oras sa Peru + Oras sa Ting-init sa Peru Oras sa Pilipinas - Tamdanang Oras sa Pilipinas - Oras sa Tag-init sa Pilipinas + Standard nga Oras sa Pilipinas + Oras sa Ting-init sa Pilipinas @@ -1702,8 +1719,8 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa St. Pierre & Miquelon - Tamdanang Oras sa St. Pierre & Miquelon - Oras sa Tag-init sa St.Pierre & Miquelon + Standard nga Oras sa St. Pierre & Miquelon + Daylight nga Oras sa St. Pierre & Miquelon @@ -1734,15 +1751,15 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa Sakhalin - Tamdanang Oras sa Sakhalin - Oras sa Tag-init sa Sakhalin + Standard nga Oras sa Sakhalin + Oras sa Ting-init sa Sakhalin Oras sa Samoa - Tamdanang Oras sa Samoa - Daylight Time sa Samoa + Standard nga Oras sa Samoa + Daylight nga Oras sa Samoa @@ -1752,7 +1769,7 @@ the LDML specification (http://unicode.org/reports/tr35/) - Tamdanang Oras sa Singapore + Standard nga Oras sa Singapore @@ -1783,8 +1800,8 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa Taipei - Tamdanang Oras sa Taipei - Oras sa Tag-init sa Taipei + Standard nga Oras sa Taipei + Daylight nga Oras sa Taipei @@ -1800,8 +1817,8 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa Tonga - Tamdanang Oras sa Tonga - Oras sa Tag-init sa Tonga + Standard nga Oras sa Tonga + Oras sa Ting-init sa Tonga @@ -1812,8 +1829,8 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa Turkmenistan - Tamdanang Oras sa Turkmenistan - Oras sa Tag-init sa Turkmenistan + Standard nga Oras sa Turkmenistan + Oras sa Ting-init sa Turkmenistan @@ -1824,22 +1841,22 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa Uruguay - Tamdanang Oras sa Uruguay - Oras sa Tag-init sa Uruguay + Standard nga Oras sa Uruguay + Oras sa Ting-init sa Uruguay Oras sa Uzbekistan - Tamdanang Oras sa Uzbekistan - Oras sa Tag-init sa Uzbekistan + Standard nga Oras sa Uzbekistan + Oras sa Ting-init sa Uzbekistan Oras sa Vanuatu - Tamdanang Oras sa Vanuatu - Oras sa Tag-init sa Vanuatu + Standard nga Oras sa Vanuatu + Oras sa Ting-init sa Vanuatu @@ -1850,15 +1867,15 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa Vladivostok - Tamdanang Oras sa Vladivostok - Oras sa Tag-init sa Vladivostok + Standard nga Oras sa Vladivostok + Oras sa Ting-init sa Vladivostok Oras sa Volgograd - Tamdanang Oras sa Volgograd - Oras sa Tag-init sa Volgograd + Standard nga Oras sa Volgograd + Oras sa Ting-init sa Volgograd @@ -1879,15 +1896,15 @@ the LDML specification (http://unicode.org/reports/tr35/) Oras sa Yakutsk - Tamdanang Oras sa Yakutsk - Oras sa Tag-init sa Yakutsk + Standard nga Oras sa Yakutsk + Oras sa Ting-init sa Yakutsk Oras sa Yekaterinburg - Tamdanang Oras sa Yekaterinburg - Oras sa Tag-init sa Yekaterinburg + Standard nga Oras sa Yekaterinburg + Oras sa Ting-init sa Yekaterinburg @@ -1937,7 +1954,7 @@ the LDML specification (http://unicode.org/reports/tr35/) Netherlands Antillean Guilder Netherlands Antillean guilder - Mga Netherlands Antillean guilder + Netherlands Antillean guilders Angolan Kwanza @@ -1972,7 +1989,7 @@ the LDML specification (http://unicode.org/reports/tr35/) Barbadian Dollar Barbadian dollar - Mga Barbadian dollar + Barbadian dollars Bangladeshi Taka @@ -1997,7 +2014,7 @@ the LDML specification (http://unicode.org/reports/tr35/) Bermudan Dollar Bermudan dollar - Mga Bermudan dollar + Bermudan dollars Brunei Dollar @@ -2017,7 +2034,7 @@ the LDML specification (http://unicode.org/reports/tr35/) Bahamian Dollar Bahamian dollar - Mga Bahamian dollar + Bahamian dollars Bhutanese Ngultrum @@ -2037,12 +2054,12 @@ the LDML specification (http://unicode.org/reports/tr35/) Belize Dollar Belize dollar - Mga Belize dollar + Belize dollars Canadian Dollar Canadian dollar - Mga Canadian dollar + Canadian dollars Congolese Franc @@ -2077,17 +2094,17 @@ the LDML specification (http://unicode.org/reports/tr35/) Costa Rican Colon Costa Rican colon - Mga Costa Rican colon + Costa Rican colóns Cuban Convertible Peso Cuban convertible peso - Mga Cuban convertible peso + Cuban convertible pesos Cuban Peso Cuban peso - Mga Cuban peso + Cuban pesos Cape Verdean Escudo @@ -2112,7 +2129,7 @@ the LDML specification (http://unicode.org/reports/tr35/) Dominican Peso Dominican peso - Mga Dominican peso + Dominican pesos Algerian Dinar @@ -2182,7 +2199,7 @@ the LDML specification (http://unicode.org/reports/tr35/) Guatemalan Quetzal Guatemalan quetzal - Mga Guatemalan quetzal + Guatemalan quetzals Guyanaese Dollar @@ -2197,7 +2214,7 @@ the LDML specification (http://unicode.org/reports/tr35/) Honduran Lempira Honduran lempira - Mga Honduran lempira + Honduran lempiras Croatian Kuna @@ -2207,7 +2224,7 @@ the LDML specification (http://unicode.org/reports/tr35/) Haitian Gourde Haitian gourde - Mga Haitian gourde + Haitian gourdes Hungarian Forint @@ -2247,7 +2264,7 @@ the LDML specification (http://unicode.org/reports/tr35/) Jamaican Dollar Jamaican dollar - Mga Jamaican dollar + Jamaican dollars Jordanian Dinar @@ -2297,7 +2314,7 @@ the LDML specification (http://unicode.org/reports/tr35/) Cayman Islands Dollar Cayman Islands dollar - Mga Cayman Islands dollar + Cayman Islands dollars Kazakhstani Tenge @@ -2392,7 +2409,7 @@ the LDML specification (http://unicode.org/reports/tr35/) Mexican Peso Mexican peso - Mga Mexican peso + Mexican pesos Malaysian Ringgit @@ -2417,7 +2434,7 @@ the LDML specification (http://unicode.org/reports/tr35/) Nicaraguan Cordoba Nicaraguan cordoba - Mga Nicaraguan cordoba + Nicaraguan córdobas Norwegian Krone @@ -2442,7 +2459,7 @@ the LDML specification (http://unicode.org/reports/tr35/) Panamanian Balboa Panamanian balboa - Mga Panamanian balboa + Panamanian balboas Peruvian Sol @@ -2607,7 +2624,7 @@ the LDML specification (http://unicode.org/reports/tr35/) Trinidad & Tobago Dollar Trinidad & Tobago dollar - Mga Trinidad & Tobago dollar + Trinidad & Tobago dollars New Taiwan Dollar @@ -2632,7 +2649,7 @@ the LDML specification (http://unicode.org/reports/tr35/) US Dollar US dollar - Mga US dollar + US dollars US $ @@ -2673,7 +2690,7 @@ the LDML specification (http://unicode.org/reports/tr35/) East Caribbean Dollar East Caribbean dollar - Mga East Caribbean dollar + East Caribbean dollars West African CFA Franc diff --git a/make/data/cldr/common/main/chr.xml b/make/data/cldr/common/main/chr.xml index 36c2aaad4c1..4cb2682f08f 100644 --- a/make/data/cldr/common/main/chr.xml +++ b/make/data/cldr/common/main/chr.xml @@ -53,6 +53,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ᏈᏍᎳᎹ ᏈᏂ ᏏᎩᏏᎧ + ᎠᏂᎵ ᏆᎻᏆᎳ ᏇᏂᎦᎳ ᏘᏇᏔᏂ @@ -174,6 +175,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ᎢᏆᏂ ᎢᏈᏈᎣ ᎢᏂᏙᏂᏏᎠ + ᏈᏖᎵᏆ ᎢᎦᎪ ᏏᏧᏩᏂ Ᏹ ᏭᏕᎵᎬ ᎨᎾᏓ ᎢᏄᎩᏘᏚᏘ @@ -226,6 +228,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ᎪᎻ ᏎᎷᎭ ᏆᏆᎳ + ᎫᏈ ᎩᎵᏣᎢᏍ ᎳᏘᏂ ᎳᏗᏃ @@ -234,8 +237,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic ᎴᏏᎦᏂ ᎦᏂᏓ ᎴᎹᏊᎵᏏ + ᎵᏇᎢᎠ ᎵᎶᎡᏘ ᎳᎪᏓ + ᎶᏆᏗ ᎵᏂᎦᎳ ᎳᎣ ᎷᏫᏏᎡᎾ ᎦᏬᏂᎯᏍᏗ @@ -391,6 +396,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ᎧᏂᎪ ᏍᏩᎯᎵ ᎪᎼᎵᎠᏂ ᏏᎵᎠᎩ + ᏏᎴᏏᏂ ᏔᎻᎵ ᏧᎦᏃᏮ ᏚᏦᏁ ᏖᎷᎦ @@ -430,7 +436,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic ᎤᏍᏇᎩ ᏩᏱ ᏫᏂᏓ + ᏈᏂᏒᏂ ᏫᎡᏘᎾᎻᏍ + ᎹᎱᏩ ᏬᎳᏊᎩ ᏭᎾᏦ ᏩᎷᎾ @@ -441,6 +449,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ꮽ ᏓᎶᏂᎨᏍᏛ ᎧᎳᎻᎧ ᏠᏌ + ᎧᏈᎢ ᏐᎦ ᏰᎾᎦᏇᏂ ᏰᎹᏋ @@ -449,6 +458,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ᏂᎾᎦᏚ ᎨᎾᏙᏂᏏ ᏓᎶᏂᎨ, ᎨᎾᏙᏂᏏ + ᎱᎠᏂ ᎠᏟᎶᏍᏗ ᎼᎶᎪ ᏔᎹᏏᏘ ᏓᎶᏂᎨ ᏓᎶᏂᎨ, ᎹᏓᏈᏂ @@ -931,7 +941,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2027,6 +2037,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} ᎠᏟᎢᎵᏒ {0} ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ {0} ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ + + + HST + HST + HDT + + ᎭᏃᎷᎷ + ᎢᎩᏠᏱ ᏂᎦᏓ ᎠᏟᎢᎵᏒ @@ -2764,9 +2782,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ᎤᎳᏂᏆᏔ - - ᏦᏱᏆᎵᏌᏂ - ᎹᎧᎤ @@ -3166,14 +3181,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ᏃᎺ - - - HST - HST - HDT - - ᎭᏃᎷᎷ - ᎠᏂᎪᎴᏥ @@ -3548,13 +3555,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ᏓᎶᏂᎨᏍᏛ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ - - - ᏦᏱᏆᎵᏌᏂ ᎠᏟᎢᎵᏒ - ᏦᏱᏆᎵᏌᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ - ᏦᏱᏆᎵᏌᏂ ᎪᎩ ᎠᏟᎢᎵᏒ - - ᏓᏂᏍᏓᏲᎯᎲ ᎤᎦᏚᏛᎢ ᎠᏟᎢᎵᏒ @@ -3798,6 +3798,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic ᏣᏩᏂᏏ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ + + + ᎧᏎᎧᏍᏕᏂ ᎠᏟᎢᎵᏒ + + ᏗᎧᎸᎬ ᎧᏎᎧᏍᏕᏂ ᎠᏟᎢᎵᏒ @@ -4319,8 +4324,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ¤ 000T - {0} {1} - {0} {1} @@ -5793,6 +5796,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} ᏂᎬᎾᏛᎢ ᎤᏓᏤᎵᎦᏯ ᏅᎩ ᎢᏗᎧᎵᎢ {0} ᏂᎬᎾᏛᎢ ᎤᏓᏤᎵᎦᏯ ᏅᎩ ᎢᏗᎧᎵᎢ + + ᎠᏨᏍᏗ + {0} ᎠᏨᏍᏗ + {0} ᎠᏨᏍᏗ + + + ᏚᏙᏢᏒ ᎢᏳᏓᎵ ᎢᏳᏔᎵᎳᏗᏅᏛ + {0} ᎤᏙᏢᏒ ᎢᏳᏓᎵ ᎢᏳᏔᎵᎳᏗᏅᏛ + {0} ᏚᏙᏢᏒ ᎢᏳᏓᎵ ᎢᏳᏔᎵᎳᏗᏅᏛ + + + ᏚᎵᏏᏂᏒ + {0} ᎤᏒ + {0} ᏚᎵᏏᏂᏒ + {0}/ᎤᏒ + ᏅᎩ ᏫᏂᏚᏳᎪᏛᎢ {0} ᏗᎧᎸᎬ @@ -6259,6 +6278,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} ᏗᏓᏇᏄᎩᏍᏗ {0} ᏗᏓᏇᏄᎩᏍᏗ + + ᎠᏨᏍᏗ + {0} ᎠᏨᏍᏗ + {0} ᎠᏨᏍᏗ + + + ᏚᏙᏢᏒ/ᎢᏳᏔᎵᎳᏗᏅᏛ + + + ᏚᎵᏏᏂᏒ + {0} ᎤᏒ + {0} ᏚᎵᏏᏂᏒ + {0}/ᎤᏒ + ᏫᏚᏳᎪᏛ {0} Ꮧ @@ -7075,6 +7108,21 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}qt-Imp. {0}qt-Imp. + + ᎠᏨᏍᏗ + {0}ᎠᏨᏍᏗ + {0}ᎠᏨᏍᏗ + + + {0}ppb + {0}ppb + + + ᏚᎵᏏᏂᏒ + {0}ᎤᏒ + {0}ᏚᎵᏏᏂᏒ + {0}/ᎤᏒ + {0}Ꮧ {0}ᏧᏴ diff --git a/make/data/cldr/common/main/cs.xml b/make/data/cldr/common/main/cs.xml index 2b12c2e7923..2b2ece15549 100644 --- a/make/data/cldr/common/main/cs.xml +++ b/make/data/cldr/common/main/cs.xml @@ -84,6 +84,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bandžarština kom siksika + aniiština bambarština bengálština tibetština @@ -217,7 +218,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ hornoněmčina (středověká) guaranština hornoněmčina (stará) - konkánština (Goa) góndština gorontalo gótština @@ -328,6 +328,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komijština kornština kvakiutština + kúvi kyrgyzština latina ladinština @@ -616,13 +617,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ neznámý jazyk urdština uzbečtina - vai venda benátština vepština vietnamština vlámština (západní) němčina (mohansko-franské dialekty) + makhuwština volapük votština võruština @@ -638,6 +639,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kalmyčtina xhoština mingrelština + kángrí sogština jaoština japština @@ -2838,6 +2840,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ +H:mm;-H:mm časové pásmo {0} + + + HST + HST + HDT + + Honolulu + koordinovaný světový čas @@ -2927,9 +2937,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kapverdy - - Curaçao - Vánoční ostrov @@ -3106,9 +3113,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ulánbátar - - Čojbalsan - Martinik @@ -3172,15 +3176,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Lisabon - - Asunción - Katar - - Réunion - Bukurešť @@ -3274,14 +3272,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kyjev - - - HST - HST - HDT - - Honolulu - Beulah, Severní Dakota @@ -3594,13 +3584,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ čínský letní čas - - - čojbalsanský čas - čojbalsanský standardní čas - čojbalsanský letní čas - - čas Vánočního ostrova @@ -3856,6 +3839,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ petropavlovsko-kamčatský letní čas + + + kazachstánský čas + + východokazachstánský čas @@ -4456,10 +4444,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ¤¤ - {0} {1} - {0} {1} - {0} {1} - {0} {1} @@ -6040,18 +6024,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ slovenských korun - sierro-leonský leone - sierro-leonský leone - sierro-leonské leone - sierro-leonského leone - sierro-leonských leone + sierraleonský leone + sierraleonský leone + sierraleonské leone + sierraleonského leone + sierraleonských leone - sierro-leonský leone (1964—2022) - sierro-leonský leone (1964—2022) - sierro-leonské leone (1964—2022) - sierro-leonského leone (1964—2022) - sierro-leonských leone (1964—2022) + sierraleonský leone (1964—2022) + sierraleonský leone (1964—2022) + sierraleonské leone (1964—2022) + sierraleonského leone (1964—2022) + sierraleonských leone (1964—2022) somálský šilink @@ -7221,11 +7205,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} karátech + inanimate miligramy na decilitr {0} miligram na decilitr + {0} miligram na decilitr + {0} miligramu na decilitr + {0} miligramu na decilitr + {0} miligramem na decilitr + {0} miligramu na decilitr {0} miligramy na decilitr + {0} miligramy na decilitr + {0} miligramům na decilitr + {0} miligramů na decilitr + {0} miligramy na decilitr + {0} miligramech na decilitr {0} miligramu na decilitr + {0} miligramu na decilitr + {0} miligramu na decilitr + {0} miligramu na decilitr + {0} miligramu na decilitr + {0} miligramu na decilitr {0} miligramů na decilitr + {0} miligramů na decilitr + {0} miligramům na decilitr + {0} miligramů na decilitr + {0} miligramy na decilitr + {0} miligramech na decilitr inanimate @@ -8302,11 +8307,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} voltech + feminine kilokalorie {0} kilokalorie + {0} kilokalorii + {0} kilokalorii + {0} kilokalorie + {0} kilokalorií + {0} kilokalorii {0} kilokalorie + {0} kilokalorie + {0} kilokaloriím + {0} kilokalorií + {0} kilokaloriemi + {0} kilokaloriích {0} kilokalorie + {0} kilokalorie + {0} kilokalorie + {0} kilokalorie + {0} kilokalorie + {0} kilokalorie {0} kilokalorií + {0} kilokalorií + {0} kilokaloriím + {0} kilokalorií + {0} kilokaloriemi + {0} kilokaloriích feminine @@ -9098,11 +9124,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} skandinávských mílích + inanimate body {0} bod + {0} bod + {0} bodu + {0} bodu + {0} bodem + {0} bodu {0} body + {0} body + {0} bodům + {0} bodů + {0} body + {0} bodech {0} bodu + {0} bodů + {0} bodům + {0} bodů + {0} body + {0} bodech {0} bodů + {0} bodů + {0} bodům + {0} bodů + {0} body + {0} bodech poloměr Slunce @@ -9585,11 +9632,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} koňských sil + inanimate milimetry rtuťového sloupce {0} milimetr rtuťového sloupce + {0} milimetr rtuťového sloupce + {0} milimetru rtuťového sloupce + {0} milimetru rtuťového sloupce + {0} milimetrem rtuťového sloupce + {0} milimetru rtuťového sloupce {0} milimetry rtuťového sloupce + {0} milimetry rtuťového sloupce + {0} milimetrům rtuťového sloupce + {0} milimetrů rtuťového sloupce + {0} milimetry rtuťového sloupce + {0} milimetrech rtuťového sloupce {0} milimetru rtuťového sloupce + {0} milimetrů rtuťového sloupce + {0} milimetrům rtuťového sloupce + {0} milimetrů rtuťového sloupce + {0} milimetry rtuťového sloupce + {0} milimetrech rtuťového sloupce {0} milimetrů rtuťového sloupce + {0} milimetrů rtuťového sloupce + {0} milimetrům rtuťového sloupce + {0} milimetrů rtuťového sloupce + {0} milimetry rtuťového sloupce + {0} milimetrech rtuťového sloupce libry na čtvereční palec @@ -10464,6 +10532,91 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} britského kvartu {0} britských kvartů + + neuter + světlo + {0} světlo + {0} světlo + {0} světlu + {0} světla + {0} světlem + {0} světle + {0} světla + {0} světla + {0} světlům + {0} světel + {0} světly + {0} světlech + {0} světla + {0} světla + {0} světla + {0} světla + {0} světla + {0} světla + {0} světel + {0} světel + {0} světlům + {0} světel + {0} světly + {0} světlech + + + feminine + částice na miliardu + {0} částice na miliardu + {0} částici na miliardu + {0} částici na miliardu + {0} částice na miliardu + {0} částicí na miliardu + {0} částici na miliardu + {0} částice na miliardu + {0} částice na miliardu + {0} částicím na miliardu + {0} částic na miliardu + {0} částicemi na miliardu + {0} částicích na miliardu + {0} částice na miliardu + {0} částice na miliardu + {0} částice na miliardu + {0} částice na miliardu + {0} částice na miliardu + {0} částice na miliardu + {0} částic na miliardu + {0} částic na miliardu + {0} částicím na miliardu + {0} částic na miliardu + {0} částicemi na miliardu + {0} částicích na miliardu + + + feminine + noci + {0} noc + {0} noc + {0} noci + {0} noci + {0} nocí + {0} noci + {0} noci + {0} noci + {0} nocím + {0} nocí + {0} nocemi + {0} nocích + {0} noci + {0} noci + {0} noci + {0} noci + {0} noci + {0} noci + {0} nocí + {0} nocí + {0} nocím + {0} nocí + {0} nocemi + {0} nocích + {0} za noc + světová strana {0} východní délky @@ -10473,9 +10626,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - - {0}{1} - G @@ -10709,6 +10859,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ m + + body + g @@ -10861,6 +11014,28 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ qt Imp. + + světlo + {0} světlo + {0} světla + {0} světla + {0} světel + + + částic/mld. + {0} částice na mld + {0} částice na mld + {0} částic na mld + {0} částic na mld + + + noci + {0} noc + {0} noci + {0} noci + {0} nocí + {0}/noc + směr {0} v. d. @@ -10961,6 +11136,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}″ {0}″ + + b. + mmHg {0} mmHg @@ -11011,6 +11189,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} šp. {0} šp. + + světlo + {0} sv. + {0} sv. + {0} sv. + {0} sv. + + + noci + {0} noc + {0} noci + {0} noci + {0} nocí + {0}/noc + {0}E {0}N diff --git a/make/data/cldr/common/main/csw.xml b/make/data/cldr/common/main/csw.xml index aa49f5eb224..5e4fba3ab8b 100644 --- a/make/data/cldr/common/main/csw.xml +++ b/make/data/cldr/common/main/csw.xml @@ -12,89 +12,869 @@ CLDR data files are interpreted according to the LDML specification (http://unic + ᒉᕑᐅᑫᕀ ᓀᐦᐃᓇᐍᐏᐣ - ᐊᑲᓇᓯᒧᐏᐣ - ᒧᓀᐅ ᐏᓂᓀᐤ ᐋᑲᓇᓯᓄᒯᐣ + ᐊᑲᓈᓰᒧᐏᐣ + ᐊᑲᓈᓰᒧᐏᐣ (AU) + ᐊᑲᓈᓰᒧᐏᐣ (ᑳᓇᑕ) + ᐊᑲᓈᓰᒧᐏᐣ (GB) + ᐊᑲᓈᓰᒧᐏᐣ (US) + ᐹᕽᐘᔦᓰᒧᐏᐣ + ᐹᕽᐘᔦᓰᒧᐏᐣ (ᑳᓇᑕ) + ᐹᕽᐘᔦᓰᒧᐏᐣ (CH) + ᐦᐄᑊᕑᐅᐤ + ᒥᐦᒉᐟ ᐊᔭᒧᐏᓇ + ᓇᒨᓇ ᐃᐦᑕᐟᐘᐣ ᐊᔭᒧᐏᐣ - + + + - ᑲᓇᑕ + ᐊᐢᑭᕀ + ᒥᐦᑭᓇᕽ ᒥᓂᐢᑎᐠ + ᓵᐘᓄᕽ ᒥᐦᑭᓇᕽ ᒥᓂᐢᑎᐠ + ᐋᐱᐦᑕᐤ ᒥᐦᑭᓇᕽ ᒥᓂᐢᑎᐠ + ᑮᐍᑎᓄᕽ ᒥᐦᑭᓇᕽ ᒥᓂᐢᑎᐠ + ᑳᓇᑕ + ᐊᑳᒪᐢᑮᔭ + ᐊᑳᒪᐢᑮᕽ + ᒫᒫᐏ ᐊᐢᑮᔭ + ᑭᐦᒋ ᒨᑯᒫᓂᕽ + + ᐲᓯᒧᐊᓯᓇᐦᐃᑲᐣ + ᐊᔭᒥᐏᐣ: {0} - ᒪᓯᓇᐦᐃᑫᐃᐧᐣ: {0} - ᓀᐦᐃᔭᐊᐧᐢᑭᕀ: {0} + ᒪᓯᓇᐦᐃᑫᐏᐣ: {0} + ᓀᐦᐃᔭᐘᐣᑭᕀ: {0} - [ᐁ ᐃ ᐄ ᐅ ᐆ ᐊ ᐋ ᐍ ᐏ ᐑ ᐓ ᐕ ᐘ ᐚ ᐟ ᐠ ᐢ ᐣ ᐤ ᐦ ᐨ ᐩ ᐯ ᐱ ᐲ ᐳ ᐴ ᐸ ᐹ ᐻ ᐽ ᐿ ᑁ ᑃ ᑅ ᑇ ᑊ ᑌ ᑎ ᑏ ᑐ ᑑ ᑕ ᑖ ᑘ ᑚ ᑜ ᑞ ᑠ ᑢ ᑤ ᑫ ᑭ ᑮ ᑯ ᑰ ᑲ ᑳ ᑵ ᑷ ᑹ ᑻ ᑽ ᑿ ᒁ ᒉ ᒋ ᒌ ᒍ ᒎ ᒐ ᒑ ᒓ ᒕ ᒗ ᒙ ᒛ ᒝ ᒟ ᒣ ᒥ ᒦ ᒧ ᒨ ᒪ ᒫ ᒭ ᒯ ᒱ ᒳ ᒵ ᒷ ᒹ ᒼ ᓀ ᓂ ᓃ ᓄ ᓅ ᓇ ᓈ ᓊ ᓌ ᓎ ᓭ ᓯ ᓰ ᓱ ᓲ ᓴ ᓵ ᓷ ᓹ ᓻ ᓽ ᓿ ᔁ ᔃ ᔦ ᔨ ᔩ ᔪ ᔫ ᔭ ᔮ ᔰ ᔲ ᔴ ᔶ ᔸ ᔺ ᔼ] + [ᐁ ᐃ ᐄ ᐅ ᐆ ᐊ ᐋ ᐍ ᐏ ᐑ ᐓ ᐕ ᐘ ᐚ ᐟ ᐠ ᐢ ᐣ ᐤ ᐦ ᐨ ᐯ ᐱ ᐲ ᐳ ᐴ ᐸ ᐹ ᑊ ᑌ ᑎ ᑏ ᑐ ᑑ ᑕ ᑖ ᑫ ᑭ ᑮ ᑯ ᑰ ᑲ ᑳ ᒉ ᒋ ᒌ ᒍ ᒎ ᒐ ᒑ ᒣ ᒥ ᒦ ᒧ ᒨ ᒪ ᒫ ᒼ ᓀ ᓂ ᓃ ᓄ ᓅ ᓇ ᓈ ᓓ ᓕ ᓖ ᓗ ᓘ ᓚ ᓛ ᓫ ᓭ ᓯ ᓰ ᓱ ᓲ ᓴ ᓵ ᔦ ᔨ ᔩ ᔪ ᔫ ᔭ ᔮ ᕀ ᕃ ᕆ ᕇ ᕈ ᕉ ᕋ ᕌ ᕑ ᕽ] + [ᔐ ᔑ ᔒ ᔓ ᔔ ᔕ ᔖ] + [\- ‐‑ – — , ; \: ! ? . … ᙮ '‘’ "“” ( ) \[ \] § @ * / \& # † ‡ ′ ″] + + ᐅᒉᒥᑮᓯᑳᐏᐲᓯᒼ + ᐸᐚᐦᒐᑭᓇᓰᐢ + ᒥᑭᓯᐏᐲᓯᒼ + ᓂᐢᑭᐲᓯᒼ + ᐊᓃᑭᐲᓯᒼ + ᐚᐏᐲᓯᒼ + ᐹᐢᑲᐦᐋᐏᐲᓯᒼ + ᐅᐸᐦᐅᐏᐲᓯᒼ + ᓄᒌᑐᐏᐲᓯᒼ + ᐱᓈᐢᑯᐏᐲᓯᒼ + ᐋᕽᐘᑎᓄᐏᐲᓯᒼ + ᒪᑯᓭᑮᓭᑳᐏᐲᓯᒼ + - ᑭᓴᐱᓯᒼ - ᒥᑭᓯᐏᐱᓯᒼ - ᓂᐢᑭᐱᓯᒼ - ᐊᓂᑭᐱᓯᒼ - ᓴᑭᐸᑲᐏᐱᓯᒼ - ᐸᐢᑲᐍᐦᐅᐱᓯᒼ - ᐸᐢᑯᐏᐱᓯᒼ - ᐅᐸᐦᐅᐏᐱᓯᒼ - ᑕᐦᑿᑭᐱᓯᒼ - ᐱᒪᐦᐊᒧᐏᐱᓯᒼ - ᐊᑿᑎᓄᐏᐱᓯᒼ - ᐸᐘᐢᒐᑲᓂᓹᐱᓯᒼ + ᐅᒉᒥᑮᓯᑳᐏᐲᓯᒼ + ᐸᐚᐦᒐᑭᓇᓰᐢ + ᒥᑭᓯᐏᐲᓯᒼ + ᓂᐢᑭᐲᓯᒼ + ᐊᓃᑭᐲᓯᒼ + ᐚᐏᐲᓯᒼ + ᐹᐢᑲᐦᐋᐏᐲᓯᒼ + ᐅᐸᐦᐅᐏᐲᓯᒼ + ᓄᒌᑐᐏᐲᓯᒼ + ᐱᓈᐢᑯᐏᐲᓯᒼ + ᐋᕽᐘᑎᓄᐏᐲᓯᒼ + ᒪᑯᓭᑮᓭᑳᐏᐲᓯᒼ + + + + + ᐅᒉᒥᑮᓯᑳᐏᐲᓯᒼ + ᐸᐚᐦᒐᑭᓇᓰᐢ + ᒥᑭᓯᐏᐲᓯᒼ + ᓂᐢᑭᐲᓯᒼ + ᐊᓃᑭᐲᓯᒼ + ᐚᐏᐲᓯᒼ + ᐹᐢᑲᐦᐋᐏᐲᓯᒼ + ᐅᐸᐦᐅᐏᐲᓯᒼ + ᓄᒌᑐᐏᐲᓯᒼ + ᐱᓈᐢᑯᐏᐲᓯᒼ + ᐋᕽᐘᑎᓄᐏᐲᓯᒼ + ᒪᑯᓭᑮᓭᑳᐏᐲᓯᒼ + + + ᐅᒉᒥᑮᓯᑳᐏᐲᓯᒼ + ᐸᐚᐦᒐᑭᓇᓰᐢ + ᒥᑭᓯᐏᐲᓯᒼ + ᓂᐢᑭᐲᓯᒼ + ᐊᓃᑭᐲᓯᒼ + ᐚᐏᐲᓯᒼ + ᐹᐢᑲᐦᐋᐏᐲᓯᒼ + ᐅᐸᐦᐅᐏᐲᓯᒼ + ᓄᒌᑐᐏᐲᓯᒼ + ᐱᓈᐢᑯᐏᐲᓯᒼ + ᐋᕽᐘᑎᓄᐏᐲᓯᒼ + ᒪᑯᓭᑮᓭᑳᐏᐲᓯᒼ + + ᐊᔭᒥᐦᐁᑮᓯᑳᐤ + ᐴᓂ ᐊᔭᒥᐦᐁᑮᓯᑳᐤ + ᓃᓱᑮᓯᑳᐤ + ᐋᐱᐦᑕᐘᐣ + ᐴᓂᐋᐱᐦᑕᐘᐣ + ᑫᑳᐨ ᒫᑎᓇᐍᑮᓯᑳᐤ + ᒫᑎᓇᐍᑮᓯᑳᐤ + + + + + + + + + + + + ᐊᔭᒥᐦᐁᑮᓯᑳᐤ + ᐴᓂ ᐊᔭᒥᐦᐁᑮᓯᑳᐤ + ᓃᓱᑮᓯᑳᐤ + ᐋᐱᐦᑕᐘᐣ + ᐴᓂᐋᐱᐦᑕᐘᐣ + ᑫᑳᐨ ᒫᑎᓇᐍᑮᓯᑳᐤ + ᒫᑎᓇᐍᑮᓯᑳᐤ + - ᐊᔭᒥᐦᐁᐃ ᑭᓯᑲᐤ - ᐯᔭᐠᑭᓯᑲᐤ - ᓂᓱᑭᓯᑲᐤ - ᐊᐱᐦᑕᐘᐣ - ᓀᐓᑭᓯᑲᐤ - ᓂᔭᓇᓄᑭᓯᑲᐤ - ᒪᑎᓄᐏᑭᓯᑲᐤ + ᐊᔭᒥᐦᐁᑮᓯᑳᐤ + ᐴᓂ ᐊᔭᒥᐦᐁᑮᓯᑳᐤ + ᓃᓱᑮᓯᑳᐤ + ᐋᐱᐦᑕᐘᐣ + ᐴᓂᐋᐱᐦᑕᐘᐣ + ᑫᑳᐨ ᒫᑎᓇᐍᑮᓯᑳᐤ + ᒫᑎᓇᐍᑮᓯᑳᐤ + + + + + ᐊᔭᒥᐦᐁᑮᓯᑳᐤ + ᐴᓂ ᐊᔭᒥᐦᐁᑮᓯᑳᐤ + ᓃᓱᑮᓯᑳᐤ + ᐋᐱᐦᑕᐘᐣ + ᐴᓂᐋᐱᐦᑕᐘᐣ + ᑫᑳᐨ ᒫᑎᓇᐍᑮᓯᑳᐤ + ᒫᑎᓇᐍᑮᓯᑳᐤ + + + + + + + + + + + + ᐊᔭᒥᐦᐁᑮᓯᑳᐤ + ᐴᓂ ᐊᔭᒥᐦᐁᑮᓯᑳᐤ + ᓃᓱᑮᓯᑳᐤ + ᐋᐱᐦᑕᐘᐣ + ᐴᓂᐋᐱᐦᑕᐘᐣ + ᑫᑳᐨ ᒫᑎᓇᐍᑮᓯᑳᐤ + ᒫᑎᓇᐍᑮᓯᑳᐤ + + + ᐊᔭᒥᐦᐁᑮᓯᑳᐤ + ᐴᓂ ᐊᔭᒥᐦᐁᑮᓯᑳᐤ + ᓃᓱᑮᓯᑳᐤ + ᐋᐱᐦᑕᐘᐣ + ᐴᓂᐋᐱᐦᑕᐘᐣ + ᑫᑳᐨ ᒫᑎᓇᐍᑮᓯᑳᐤ + ᒫᑎᓇᐍᑮᓯᑳᐤ + + + + ᐊᒼ + ᐲᒼ + + + ᐊᒼ + ᐲᒼ + + + ᐁᒼ + ᐲᒼ + + + + + ᐊᒼ + ᐲᒼ + + + ᐊᒼ + ᐲᒼ + + + ᐊᒼ + ᐲᒼ + + + + + + + y MMMM d, EEEE + + + + + y MMMM d + + + + + y MMM d + + + + + y-MM-dd + + + + + + + h:mm:ss a zzzz + h:mm:ss a zzzz + ahmmsszzzz + + + + + h:mm:ss a z + h:mm:ss a z + ahmmssz + + + + + h:mm:ss a + h:mm:ss a + ahmmss + + + + + h:mm a + h:mm a + ahmm + + + + + + + {1} {0} + + + + + {1} {0} + + + + + {1} {0} + + + + + {1} {0} + + + - ᐊᐢᑭ + ᐊᐢᑭᕀ + ᐃᐢᐠᐚᐨ ᐊᐢᑭᕀ + ᐆᒪ ᐊᐢᑫᕀ + ᒦᓇ ᐊᐢᑭᕀ + + ᓃᑳᐣ {0} ᐊᐢᑮᐊᐧᐦᑭᕀ + ᓃᑳᐣ {0} ᐊᐢᑮᐊᐧᐦᑭ + + + {0} ᑲᔮᐢ ᐊᐢᑭᕀ + {0} ᑲᔮᐢ ᐊᐢᑭᕀ + + + + ᐊᐢᑭᕀ + ᐃᐢᐠᐚᐨ ᐊᐢᑭᕀ + ᐆᒪ ᐊᐢᑫᕀ + ᒦᓇ ᐊᐢᑭᕀ + + ᓃᑳᐣ {0} ᐊᐢᑮᐊᐧᐦᑭ + ᓃᑳᐣ {0} ᐊᐢᑮᐊᐧᐦᑭ + + + {0} ᑲᔮᐢ ᐊᐢᑭᕀ + {0} ᑲᔮᐢ ᐊᐢᑭᕀ + + + + ᐊᐢᑭᕀ + ᐃᐢᐠᐚᐨ ᐊᐢᑭᕀ + ᐆᒪ ᐊᐢᑫᕀ + ᒦᓇ ᐊᐢᑭᕀ + + ᓃᑳᐣ {0}ᐊᐢᑮᐊᐧᐦᑭ + ᓃᑳᐣ {0}ᐊᐢᑮᐊᐧᐦᑭ + + + {0} ᑲᔮᐢ ᐊᐢᑭᕀ + {0} ᑲᔮᐢ ᐊᐢᑭᕀ + - ᐱᓯᒧᐘᐠ + ᐲᓯᒼ + ᐃᐢᐠᐚᐨ ᐲᓯᒼ + ᐊᓄᐦᐨ ᐲᓯᒼ + ᒦᓇ ᐲᓯᒼ + + ᓃᑳᐣ {0} ᐲᓯᒧᐤᐊᐧᐦᑭ + ᓃᑳᐣ {0} ᐲᓯᒧᐤᐊᐧᐦᑭ + + + {0} ᐃᐢᐠᐚᐨ ᐲᓯᒼ + {0} ᑕᐦᑐ ᐲᓯᒼ + + + + ᐲᓯᒼ + ᐃᐢᐠᐚᐨ ᐲᓯᒼ + ᐊᓄᐦᐨ ᐲᓯᒼ + ᒦᓇ ᐲᓯᒼ + + ᓃᑳᐣ {0} ᐲᓯᒧᐤᐊᐧᐦᑭ + ᓃᑳᐣ {0} ᐲᓯᒧᐤᐊᐧᐦᑭ + + + {0} ᐃᐢᐠᐚᐨ ᐲᓯᒼ + {0} ᑕᐦᑐ ᐲᓯᒼ + + + + ᐲᓯᒼ + ᐃᐢᑳᐤᐨ ᐲᓯᒼ + ᐊᓄᐦᐨ ᐲᓯᒼ + ᒦᓇ ᐲᓯᒼ + + ᓃᑳᐣ {0} ᐲᓯᒧᐤᐊᐧᐦᑭ + ᓃᑳᐣ {0} ᐲᓯᒧᐤᐊᐧᐦᑭ + + + {0} ᐃᐢᐠᐚᐨ ᐲᓯᒼ + {0} ᑕᐦᑐ ᐲᓯᒼ + - ᑭᓯᑲᐘ + ᑮᓯᑳᐘ + ᐃᐢᐠᐚᐨ ᑳᐃᐢᐸᓂᐠ + ᐊᓄᐦᐨ ᑳᐃᐢᐸᓂᐠ + ᒦᓇ ᐃᐢᐸᓂᑭ + + ᓃᑳᐣ {0} ᐃᐢᐸᓂᑭ + ᓃᑳᐣ {0} ᐃᐢᐸᓂᑭ + + + ᑳᑮ {0} ᐃᐢᐸᓂᐠ + ᑳᑮ {0} ᐃᐢᐸᓂᐠ + + ᑳᑮ {0} ᐃᐢᐸᓂᐠ + + + ᑮᓯᑳᐘ + ᐃᐢᐠᐚᐨ ᑳᐃᐢᐸᓂᐠ + ᐊᓄᐦᐨ ᑳᐃᐢᐸᓂᐠ + ᒦᓇ ᐃᐢᐸᓂᑭ + + ᓃᑳᐣ {0} ᐃᐢᐸᓂᑭ + ᓃᑳᐣ {0} ᐃᐢᐸᓂᑭ + + + ᑳᑮ {0} ᐃᐢᐸᓂᐠ + ᑳᑮ {0} ᐃᐢᐸᓂᐠ + + ᑳᑮ {0} ᐃᐢᐸᓂᐠ + + + ᑮᓯᑳᐘ + ᐃᐢᐠᐚᐨ ᑳᐃᐢᐸᓂᐠ + ᐊᓄᐦᐨ ᑳᐃᐢᐸᓂᐠ + ᒦᓇ ᐃᐢᐸᓂᑭ + + ᓃᑳᐣ {0} ᐃᐢᐸᓂᑭ + ᓃᑳᐣ {0} ᐃᐢᐸᓂᑭ + + + {0} ᐅᑖᑯᓰᕽ + {0} ᑳᑮ ᐃᐢᐸᓂᐠ + + ᑳᑮ ᐃᐢᐸᓂᐠ {0} - ᑭᓯᑲᐤ - ᐅᑕᑯᓯᐠ - ᐊᓄᐢᐨ - ᐘᐸᐦᑫ + ᑮᓯᑳᐤ + ᐅᑖᑯᓯᕽ + ᐊᓄᐦᐨ + ᐚᐸᐦᑫ + + ᑕᐦᑐ {0} ᑮᓯᑳᑭ + ᑕᐦᑐ {0} ᑮᓯᑳᑭ + + + {0} ᑳᑮ ᑕᐦᑐ ᑮᓯᑳᐠ + {0} ᑳᑮ ᑕᐦᑐ ᑮᓯᑳᐠ + + + + ᑮᓯᑳᐤ + ᐅᑖᑯᓰᕽ + ᐊᓄᐦᐨ + ᐚᐸᐦᑫ + + ᑕᐦᑐ {0} ᑮᓯᑳᑭ + ᑕᐦᑐ {0} ᑮᓯᑳᑭ + + + {0} ᑳᑮ ᑕᐦᑐ ᑮᓯᑳᐠ + {0} ᑳᑮ ᑕᐦᑐ ᑮᓯᑳᐠ + + + + ᑮᓯᑳᐤ + ᐅᑖᑯᓰᕽ + ᐊᓄᐦᐨ + ᐚᐸᐦᑫ + + ᑕᐦᑐ {0}ᑮᓯᑳᑭ + ᑕᐦᑐ {0}ᑮᓯᑳᑭ + + + {0} ᐅᑖᑯᓰᕽ + {0} ᑳᑮ ᑕᐦᑐ ᑮᓯᑳᐠ + + + + ᑳᐊᔭᒥᐦᑮᓯᑳᐠ + ᐆᒪ ᐊᔭᒥᐦᐁ ᑮᓯᑳᐤ + ᐊᔭᒥᐦᐁ ᑮᓯᑳᑭ + + ᒦᓄ {0} ᐊᔭᒥᐦᐁ ᑮᓯᑳᐘ + ᒦᓄ {0} ᐊᔭᒥᐦᐁ ᑮᓯᑳᐘ + + + {0} ᑕᐦᑐ ᐊᔭᒥᐦᐁ ᑮᓯᑳᐘ + {0} ᑕᐦᑐ ᐊᔭᒥᐦᐁ ᑮᓯᑳᐘ + + + + ᑳᐊᔭᒥᐦᑮᓯᑳᐠ + ᐆᒪ ᐊᔭᒥᐦᐁ ᑮᓯᑳᐤ + ᐊᔭᒥᐦᐁ ᑮᓯᑳᑭ + + ᒦᓄ {0} ᐊᔭᒥᐦᐁ ᑮᓯᑳᐘ + ᒦᓄ {0} ᐊᔭᒥᐦᐁ ᑮᓯᑳᐘ + + + {0} ᑕᐦᑐ ᐊᔭᒥᐦᐁ ᑮᓯᑳᐘ + {0} ᑕᐦᑐ ᐊᔭᒥᐦᐁ ᑮᓯᑳᐘ + + + + ᑳᐊᔭᒥᐦᑮᓯᑳᐠ + ᐆᒪ ᐊᔭᒥᐦᐁ ᑮᓯᑳᐤ + ᐊᔭᒥᐦᐁ ᑮᓯᑳᑭ + + ᒦᓄ {0} ᐊᔭᒥᐦᐁ ᑮᓯᑳᐘ + ᒦᓄ {0} ᐊᔭᒥᐦᐁ ᑮᓯᑳᐘ + + + {0} ᑕᐦᑐ ᐊᔭᒥᐦᐁ ᑮᓯᑳᐘ + {0} ᑕᐦᑐ ᐊᔭᒥᐦᐁ ᑮᓯᑳᐘ + + + + ᑳᐴᓂ ᐊᔭᒥᐦᐁ ᑮᓯᑳᐠ + ᐆᒪ ᑳᐴᓂ ᐊᔭᒥᐦᐁ ᑮᓯᑳᐠ + ᐴᓂ ᐊᔭᒥᐦᐁᑮᓯᑳᑭ + + ᑕᐦᑐ {0} ᐴᓂᐊᔭᒥᐦᐁ ᑮᓯᑳᐘ + ᑕᐦᑐ {0} ᐴᓂᐊᔭᒥᐦᐁ ᑮᓯᑳᐘ + + + {0} ᑳᑕᐦᑐ ᐴᓂᐊᔭᒥᐦᐁ ᑮᓯᑳᐠ + {0} ᑳᑕᐦᑐ ᐴᓂᐊᔭᒥᐦᐁ ᑮᓯᑳᐠ + + + + ᑳᐴᓂ ᐊᔭᒥᐦᐁ ᑮᓯᑳᐠ + ᐆᒪ ᑳᐴᓂ ᐊᔭᒥᐦᐁ ᑮᓯᑳᐠ + ᐴᓂ ᐊᔭᒥᐦᐁᑮᓯᑳᑭ + + ᑕᐦᑐ {0} ᐴᓂᐊᔭᒥᐦᐁ ᑮᓯᑳᐘ + ᑕᐦᑐ {0} ᐴᓂᐊᔭᒥᐦᐁ ᑮᓯᑳᐘ + + + {0} ᑳᑕᐦᑐ ᐴᓂᐊᔭᒥᐦᐁ ᑮᓯᑳᐠ + {0} ᑳᑕᐦᑐ ᐴᓂᐊᔭᒥᐦᐁ ᑮᓯᑳᐠ + + + + ᑳᐴᓂ ᐊᔭᒥᐦᐁ ᑮᓯᑳᐠ + ᐆᒪ ᑳᐴᓂ ᐊᔭᒥᐦᐁ ᑮᓯᑳᐠ + ᐴᓂ ᐊᔭᒥᐦᐁᑮᓯᑳᑭ + + ᑕᐦᑐ {0} ᐴᓂᐊᔭᒥᐦᐁ ᑮᓯᑳᐘ + ᑕᐦᑐ {0} ᐴᓂᐊᔭᒥᐦᐁ ᑮᓯᑳᐘ + + + {0} ᑳᑕᐦᑐ ᐴᓂᐊᔭᒥᐦᐁ ᑮᓯᑳᐠ + {0} ᑳᑕᐦᑐ ᐴᓂᐊᔭᒥᐦᐁ ᑮᓯᑳᐠ + + + + ᑳᓃᓱᑮᓯᑳᐠ + ᐆᒪ ᓃᓱᑮᓯᑳᐠ + ᓃᓯᑮᓯᑳᑭ + + ᑕᐦᑐ {0} ᓃᓱᑮᓯᑳᐘ + ᑕᐦᑐ {0} ᓃᓱᑮᓯᑳᐘ + + + {0} ᑳᑕᐦᑐ ᓃᓱᑮᓯᑳᐠ + {0} ᑳᑕᐦᑐ ᓃᓱᑮᓯᑳᐠ + + + + ᑳᓃᓱᑮᓯᑳᐠ + ᐆᒪ ᓃᓱᑮᓯᑳᐠ + ᓃᓯᑮᓯᑳᑭ + + ᑕᐦᑐ {0} ᓃᓱᑮᓯᑳᐘ + ᑕᐦᑐ {0} ᓃᓱᑮᓯᑳᐘ + + + {0} ᑳᑕᐦᑐ ᓃᓱᑮᓯᑳᐠ + {0} ᑳᑕᐦᑐ ᓃᓱᑮᓯᑳᐠ + + + + ᑳᓃᓱᑮᓯᑳᐠ + ᐆᒪ ᓃᓱᑮᓯᑳᐠ + ᓃᓯᑮᓯᑳᑭ + + ᑕᐦᑐ {0} ᓃᓱᑮᓯᑳᐘ + ᑕᐦᑐ {0} ᓃᓱᑮᓯᑳᐘ + + + {0} ᑳᑕᐦᑐ ᓃᓱᑮᓯᑳᐠ + {0} ᑳᑕᐦᑐ ᓃᓱᑮᓯᑳᐠ + + + + ᑳᐋᐱᐦᑕᐘᕽ + ᐆᒪ ᑳᐋᐱᐦᑕᐘᕽ + ᒦᓇ ᐋᐱᐦᑕᐘᐦᑭ + + ᑕᐦᑐ {0} ᐋᐱᐦᑕᐘᐦᑭ + ᑕᐦᑐ {0} ᐋᐱᐦᑕᐘᐦᑭ + + + {0} ᑳᑕᐦᑐ ᐋᐱᐦᑕᐘᕽ + {0} ᑳᑕᐦᑐ ᐋᐱᐦᑕᐘᕽ + + + + ᑳᐋᐱᐦᑕᐘᕽ + ᐆᒪ ᑳᐋᐱᐦᑕᐘᕽ + ᒦᓇ ᐋᐱᐦᑕᐘᐦᑭ + + ᑕᐦᑐ {0} ᐋᐱᐦᑕᐘᐦᑭ + ᑕᐦᑐ {0} ᐋᐱᐦᑕᐘᐦᑭ + + + {0} ᑳᑕᐦᑐ ᐋᐱᐦᑕᐘᕽ + {0} ᑳᑕᐦᑐ ᐋᐱᐦᑕᐘᕽ + + + + ᑳᐋᐱᐦᑕᐘᕽ + ᐆᒪ ᑳᐋᐱᐦᑕᐘᕽ + ᒦᓇ ᐋᐱᐦᑕᐘᐦᑭ + + ᑕᐦᑐ {0} ᐋᐱᐦᑕᐘᐦᑭ + ᑕᐦᑐ {0} ᐋᐱᐦᑕᐘᐦᑭ + + + {0} ᑳᑕᐦᑐ ᐋᐱᐦᑕᐘᕽ + {0} ᑳᑕᐦᑐ ᐋᐱᐦᑕᐘᕽ + + + + ᑳᐴᓂ ᐋᐱᐦᑕᐘᕽ + ᐆᒪ ᑳᐴᓂ ᐋᐱᐦᑕᐘᕽ + ᒦᓇ ᐴᓂ ᐋᐱᐦᑕᐘᐦᑭ + + ᑕᐦᑐ {0} ᐴᓂ ᐋᐱᐦᑕᐘᐦᑭ + ᑕᐦᑐ {0} ᐴᓂ ᐋᐱᐦᑕᐘᐦᑭ + + + {0} ᑳᑕᐦᑐ ᐴᓂ ᐋᐱᐦᑕᐘᕽ + {0} ᑳᑕᐦᑐ ᐴᓂ ᐋᐱᐦᑕᐘᕽ + + + + ᑳᐴᓂ ᐋᐱᐦᑕᐘᕽ + ᐆᒪ ᑳᐴᓂ ᐋᐱᐦᑕᐘᕽ + ᒦᓇ ᐴᓂ ᐋᐱᐦᑕᐘᐦᑭ + + ᑕᐦᑐ {0} ᐴᓂ ᐋᐱᐦᑕᐘᐦᑭ + ᑕᐦᑐ {0} ᐴᓂ ᐋᐱᐦᑕᐘᐦᑭ + + + {0} ᑳᑕᐦᑐ ᐴᓂ ᐋᐱᐦᑕᐘᕽ + {0} ᑳᑕᐦᑐ ᐴᓂ ᐋᐱᐦᑕᐘᕽ + + + + ᑳᐴᓂ ᐋᐱᐦᑕᐘᕽ + ᐆᒪ ᑳᐴᓂ ᐋᐱᐦᑕᐘᕽ + ᒦᓇ ᐴᓂ ᐋᐱᐦᑕᐘᐦᑭ + + ᑕᐦᑐ {0} ᐴᓂ ᐋᐱᐦᑕᐘᐦᑭ + ᑕᐦᑐ {0} ᐴᓂ ᐋᐱᐦᑕᐘᐦᑭ + + + {0} ᑳᑕᐦᑐ ᐴᓂ ᐋᐱᐦᑕᐘᕽ + {0} ᑳᑕᐦᑐ ᐴᓂ ᐋᐱᐦᑕᐘᕽ + + + + ᑫᑳᐨ ᑳᒫᑎᓇᐍ ᑮᓯᑳᐠ + ᐆᒪ ᑫᑳᐨ ᑳᒫᑎᓇᐍ ᑮᓯᑳᐠ + ᒦᓇ ᑫᑳᐨ ᒫᑎᓇᐍ ᑮᓯᑳᑭ + + ᑕᐦᑐ {0} ᑫᑳᐨ ᒫᑎᓇᐍ ᑮᓯᑳᑭ + ᑕᐦᑐ {0} ᑫᑳᐨ ᒫᑎᓇᐍ ᑮᓯᑳᑭ + + + {0} ᑳᑕᐦᑐ ᑫᑳᐨ ᑳᒫᑎᓇᐍ ᑮᓯᑳᐠ + {0} ᑳᑕᐦᑐ ᑫᑳᐨ ᑳᒫᑎᓇᐍ ᑮᓯᑳᐠ + + + + ᑫᑳᐨ ᑳᒫᑎᓇᐍ ᑮᓯᑳᐠ + ᐆᒪ ᑫᑳᐨ ᑳᒫᑎᓇᐍ ᑮᓯᑳᐠ + ᒦᓇ ᑫᑳᐨ ᒫᑎᓇᐍ ᑮᓯᑳᑭ + + ᑕᐦᑐ {0} ᑫᑳᐨ ᒫᑎᓇᐍ ᑮᓯᑳᑭ + ᑕᐦᑐ {0} ᑫᑳᐨ ᒫᑎᓇᐍ ᑮᓯᑳᑭ + + + {0} ᑳᑕᐦᑐ ᑫᑳᐨ ᑳᒫᑎᓇᐍ ᑮᓯᑳᐠ + {0} ᑳᑕᐦᑐ ᑫᑳᐨ ᑳᒫᑎᓇᐍ ᑮᓯᑳᐠ + + + + ᑫᑳᐨ ᑳᒫᑎᓇᐍ ᑮᓯᑳᐠ + ᐆᒪ ᑫᑳᐨ ᑳᒫᑎᓇᐍ ᑮᓯᑳᐠ + ᒦᓇ ᑫᑳᐨ ᒫᑎᓇᐍ ᑮᓯᑳᑭ + + ᑕᐦᑐ {0} ᑫᑳᐨ ᒫᑎᓇᐍ ᑮᓯᑳᑭ + ᑕᐦᑐ {0} ᑫᑳᐨ ᒫᑎᓇᐍ ᑮᓯᑳᑭ + + + {0} ᑳᑕᐦᑐ ᑫᑳᐨ ᑳᒫᑎᓇᐍ ᑮᓯᑳᐠ + {0} ᑳᑕᐦᑐ ᑫᑳᐨ ᑳᒫᑎᓇᐍ ᑮᓯᑳᐠ + + + + ᑫᑳᐨ ᑳᒫᑎᓇᐍᑮᓯᑲᐠ + ᒦᓇ ᑮᑳᐨᒪᑎᓇᐍᑮᓯᑳᐤ + ᒦᓇ ᑮᑳᐨᒪᑎᓇᐍᑮᓯᑳᑭ + + ᑕᐦᑐ {0} ᒫᑎᓇᐍᑮᓯᑳᐘ + ᑕᐦᑐ {0} ᒫᑎᓇᐍᑮᓯᑳᐘ + + + {0} ᑳᑕᐦᑐ ᒫᑎᓇᐍᑮᓯᑲᐠ + {0} ᑳᑕᐦᑐ ᒫᑎᓇᐍᑮᓯᑲᐠ + + + + ᑫᑳᐨ ᑳᒫᑎᓇᐍᑮᓯᑲᐠ + ᒦᓇ ᑮᑳᐨᒪᑎᓇᐍᑮᓯᑳᐤ + ᒦᓇ ᑮᑳᐨᒪᑎᓇᐍᑮᓯᑳᑭ + + ᑕᐦᑐ {0} ᒫᑎᓇᐍᑮᓯᑳᐘ + ᑕᐦᑐ {0} ᒫᑎᓇᐍᑮᓯᑳᐘ + + + {0} ᑳᑕᐦᑐ ᒫᑎᓇᐍᑮᓯᑲᐠ + {0} ᑳᑕᐦᑐ ᒫᑎᓇᐍᑮᓯᑲᐠ + + + + ᑫᑳᐨ ᑳᒫᑎᓇᐍᑮᓯᑲᐠ + ᒦᓇ ᑮᑳᐨᒪᑎᓇᐍᑮᓯᑳᐤ + ᒦᓇ ᑮᑳᐨᒪᑎᓇᐍᑮᓯᑳᑭ + + ᑕᐦᑐ {0} ᒫᑎᓇᐍᑮᓯᑳᐘ + ᑕᐦᑐ {0} ᒫᑎᓇᐍᑮᓯᑳᐘ + + + {0} ᑳᑕᐦᑐ ᒫᑎᓇᐍᑮᓯᑲᐠ + {0} ᑳᑕᐦᑐ ᒫᑎᓇᐍᑮᓯᑲᐠ + + + + ᐚᐢᑳᐸᓂᐤ + ᐆᒪ ᐘᐢᑳᐸᓄᐤ + + ᑕᐦᑐ {0} ᐘᐢᑳᐸᓂᑭ + ᑕᐦᑐ {0} ᐘᐢᑳᐸᓂᑭ + + + {0} ᐘᐢᑳᐸᓂᑯᕽ + {0} ᐘᐢᑳᐸᓂᑯᕽ + + + + ᐚᐢᑳᐸᓂᐤ + + ᑕᐦᑐ {0} ᐘᐢᑳᐸᓂᑭ + ᑕᐦᑐ {0} ᐘᐢᑳᐸᓂᑭ + + + {0} ᐘᐢᑳᐸᓂᑯᕽ + {0} ᐘᐢᑳᐸᓂᑯᕽ + + + + ᐚᐢᑳᐸᓂᐤ + + ᑕᐦᑐ {0} ᐘᐢᑳᐸᓂᑭ + ᑕᐦᑐ {0} ᐘᐢᑳᐸᓂᑭ + + + {0} ᑕᐦᑐ ᐘᐢᑳᐸᓂᑭ + {0} ᐘᐢᑳᐸᓂᑯᕽ + + + + ᑎᐸᐦᐃᑲᓂᐢ + ᐆᒪ ᑎᐸᐦᐃᑲᓂᐢ + + ᑕᐦᑐ {0} ᑎᐸᐦᐃᑲᓂᓴ + ᑕᐦᑐ {0} ᑎᐸᐦᐃᑲᓂᓴ + + + {0} ᑎᐸᐦᐃᑲᓂᓯᐦᑯᕽ + {0} ᑎᐸᐦᐃᑲᓂᓯᐦᑯᕽ + + + + ᑎᐸᐦᐃᑲᓂᐢ + + ᑕᐦᑐ {0} ᑎᐸᐦᐃᑲᓂᓴ + ᑕᐦᑐ {0} ᑎᐸᐦᐃᑲᓂᓴ + + + {0} ᑎᐸᐦᐃᑲᓂᓯᐦᑯᕽ + {0} ᑎᐸᐦᐃᑲᓂᓯᐦᑯᕽ + + + + ᑎᐸᐦᐃᑲᓂᐢ + + + ᒣᐠᐚᐨ - {0} ᐁᐃᐢᐸᓂᐟ - {0} ᑮᓯᑳᐤ ᐁᐃᐢᐸᓂᐟ - {0} ᐯᔭᑯᐦᑕᐃᐧᐣ ᐁᐃᐢᐸᓂᐟ + {0} ᐁᐃᐢᐸᓂᐠ + {0} ᑮᓯᑳᐤ ᐁᐃᐢᐸᓂᐠ + {0} ᐯᔭᑯᐦᑖᐏᐣ ᐁᐃᐢᐸᓂᐠ + + ᓇᒨᓇ ᑭᐢᑫᓂᑖᑿᐣ ᐃᐦᑖᐏᐣ + + + ᐃᓄᐱᐠ + + + ᐁᐟᒪᐣᑐᐣ + + + ᓴᐢᑳᐟᒉᐘᐣ + + + ᐑᓂᐯᐠ + + + ᐊᑎᐦᑯᑲᐣ + + + ᐃᑳᓫᐅᐃᐟ + - ᕒᐁᐁᐣᐤᐏᐨ ᒣᐊᐣ ᐁᐃᐢᐸᓂᐟ + ᐠᕑᐁᓂᐨ ᐯᔭᑯᐦᑖᐏᐣ ᐁᐃᐢᐸᓂᐠ + + + + ᑲᓀᑎᔭᐣ ᐯᔭᐠᐚᐱᐢᐠ + ᑲᓀᑎᔭᐣ ᐯᔭᐠᐚᐱᐢᐠ + ᑲᓀᑎᔭᐣ ᐯᔭᐠᐚᐱᐢᐠᐘᐠ + + + + {0} ᑮᓯᑳᐤ + {0} ᑮᓯᑳᐘ + + + + + {0} ᐊᐠᐘ {1} + + + {0}, ᐊᐍᑳ {1} + {0} ᐊᐍᑳ {1} + + + + + ᐁᐦᐁ:ᐁ + ᓇᒨᓇ:ᓇ + + ᐊᓂᓯᓂᐤ diff --git a/make/data/cldr/common/main/cv.xml b/make/data/cldr/common/main/cv.xml index ef9e1f2245a..9f850a7344f 100644 --- a/make/data/cldr/common/main/cv.xml +++ b/make/data/cldr/common/main/cv.xml @@ -12,59 +12,541 @@ CLDR data files are interpreted according to the LDML specification (http://unic + афар + абхаз + африканс + агем + акан + амхар + арагон + оболо + левант араб арап арап литератури + мапуче + ассам + асу + астури + азербайджан + пушкӑрт + белудж + бас + белорусси + бемба + батав + бен + пӑлхар + харианви + хӗвеланӑҫ балочи + бохжпури + ания + хура таи + бамбар бенгал + тибет + бретань + бодо + босни + акоос + билин + каталан + каддо + атсам + чакма + чеченец + себуано + кига + чоктав + чероки + чикасав + вăтаçĕр курд + тӗп курд + курд (соран) + корсикан + чех + шурлӑх кри + чиркӳ-славян чӑваш + валлий + датчан + тайта нимӗҫ австрин нимӗҫ швейцарин нимӗҫ + зарма + догри + аялти серб + дуал + мальдив + диола-фоньи + дзонг-кэ + эмбу + эве + грек акӑлчан австралин акӑлчан канадӑн акӑлчан британин акӑлчан америкӑн акӑлчан + эсперанто испани латинла америкӑн испани европӑн испани мексикӑн испани + эстон + баск + эвондо + фарси + фарси (Афганистан) + фул + фин + филиппин + фарер франци канадӑн франци швейцарӗн франци + каджун француз + ҫурҫӗр фризӗ + фриул + хӗвеланӑҫ фриз + ирланд + га + гэль + геэз + галис + гуаран + швейцари нимӗҫ + гуджарат + гусии + мэн + хауса + гавай + иврит хинди - хинди чĕлхи (латин) + хинди чӗлхи (латин) хинди (латин) + монг + хорват + тури сорбиан + венгер + армян + интерлинг индонези + интерлингве + игбо + носу (сичуан) + идо + исланди итали + инуктитут япони + ложбан + нгомба + мачам + яван + грузин + каракалпак + кабиль + каджи + камба + туар + маконде + кабувердьян + камерун + каинганг + койра чиини + куикуй + казах + како + гренланди + календжин + кхмер + каннада корей + конкани + кпелле + кашмир + шамбала + бафи + кельн + курд + корн + куви + киргиз + латин + ланго + люксембург + ганда + лигур + лакота + тироль + ломбард + лингал + лаос + луизиан креоль + ҫурҫӗр лури + литва + латгал латыш + луба-катанга + луо + лухья + латыш + майтхили + масайсем + мокшан + меру + маврика креолӗ + малагас + макуа-мето + мета + мотено + маори + микмак + македон + малаялам + монгол + манипур + мохук + маратхи + малай + мальтисем + мундир + тӗрлӗ ҫемье чӗлхисем + крик + бирман + эрзян + мазандеран + нама + норвег букмол + ҫурҫӗр ндебеле + аялти нимĕç + аялти нимĕç (Нидерланд) + непал голланди фламанди + квасио + норвег нюнорск + нгиембунд + норвег + нко (манинка) + кӑнтӑр ндебеле + ҫурҫӗр сото + нуэр + навахо + ньяндж + ньянколе + окситан + оромо + оди (ори) + осетин + оседжи + панджаби + папьяменто + нигер креоль + пиджин поляк + прусси + пушту португали бразилин португали европӑн португали + кечуа + киче + раджастан + рохиндж + риффиан (бербер) + романш + рунди + румын + молдаван + ромбо вырӑс + киньяруанд + руанда + санскрит + якут + самбуру + сантали + сангу + сардин + сицил + синдхи + кӑнтӑр алтай + ҫурҫӗр саам + сена + койраборо сенни + санго + тахелхит (бербер) + шан + сингал + сидама + словак + сирайки + словен + кӑнтӑр саам + луле-саам + инар-саам + колтта-саам + шона + сомали + албан + серб + свази + сахо + кӑнтӑр сото + сундан + швед + суахили + суахили (Конго - Киншаса) + сири + силез + тамил + телугу + тесо + таджик тай + тигринья + тигре + туркмен + тсвана + тонган + токи пона + ток писин турккӑ + тароко + торвали + тсонга + тутар + тасавак + тува + Вӑтам Атлас тамазигт + уйгур + украина паллӑ мар чӗлхе + урду + узбек + ваи + венда + венециан + вьетнам + макуа + воляпюк + вунджо + валлон (бельги) + вальзер (нимӗҫ) + воламо + вальбири + волоф + кхоса + кангри + сога + янгбен + идиш + йоруба + ньенгату + кантон + чжуан + тамазигт китай ҫурҫӗр китай китай, ҫӑмӑллатнӑ ҫыру ҫурҫӗр китай, ҫӑмӑллатнӑ ҫыру китай, традициллӗ ҫыру ҫурҫӗр китай, традициллӗ ҫыру + зулу + чӗлхе материал ҫук + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -152,6 +634,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Китай Колумби Клиппертон утравӗ + Сарк Коста-Рика Куба Кабо-Верде @@ -377,11 +860,275 @@ CLDR data files are interpreted according to the LDML specification (http://unic Зимбабве паллӑ мар регион + + Нимӗҫ йӑлана кӗнӗ орфографийӗ + Стандартизациленӗ резьян орфографийӗ + 1996 ҫултан пуҫласа нимӗҫ орфографийӗн правилисем + Француз каярахпа вӑтам ӗмӗрӗ 1606 ҫулччен + Француз ирхи çĕнĕ вăхăт + Академи + 1943 ҫулхи орфографийӗ + AKUAPEM локализаци + ALALC97 локализаци + Алукулу диалекчӗ + ANPEZO локализаци + AO1990 орфографийӗ + ARANES локализаци + ARKAIKA локализаци + ASANTE локализаци + AUVERN локализаци + Унификациленӗ тӗрӗк-латин алфавичӗ + BALANKA локализаци + BARLA локализаци + BASICENG локализаци + BAUDDHA локализаци + BCIAV локализаци + BCIZBL локализаци + BISCAYAN локализаци + Сан-Гиоргио диалекчӗ + BLASL локализаци + Бохорич алфавичӗ + Бунтлинг + BORNHOLM локализаци + CISAUP локализаци + COLB1945 локализаци + CORNU локализаци + CREISS локализаци + DAJNKO локализаци + EKAVSK локализаци + EMODENG локализаци + FASCIA локализаци + FODOM локализаци + Тӗнчери фонетика алфавичӗ + FONKIRSH локализаци + FONNAPA локализаци + Урал чӗлхисен фонетика алфавичӗ + FONXSAMP локализаци + GALLO локализаци + GASCON локализаци + GHERD локализаци + GRCLASS локализаци + GRITAL локализаци + GRMISTR локализаци + HEPBURN локализаци + HOGNORSK локализаци + HSISTEMO локализаци + IJEKAVSK локализаци + ITIHASA локализаци + IVANCHOV локализаци + JAUER локализаци + JYUTPING локализаци + Пӗтӗмӗшле орфографийӗ + KOCIEWIE локализаци + KSCOR локализаци + LAUKIKA локализаци + LEMOSIN локализаци + LENGADOC локализаци + Резьян чӗлхин липовецла диалекчӗ + LTG1929 локализаци + LTG2007 локализаци + LUNA1918 локализаци + METELKO локализаци + Пӗр кĕвĕллĕ + NDYUKA локализаци + Надиж диалекчӗ + NEWFOUND локализаци + NICARD локализаци + Гнива-нжив диалекчӗ + NULIK локализаци + Осеакла-осоянла диалект + OXENDICT локализаци + PAHAWH2 локализаци + PAHAWH3 локализаци + PAHAWH4 локализаци + PAMAKA локализаци + PEANO локализаци + PEHOEJI локализаци + PETR1708 локализаци + Пиньинь локализаци + Нумай тонлӑ + Компьютер + PROVENC локализаци + PUTER локализаци + Ҫӗнӗрен пӑхса тухнӑ орфографийӗ + RIGIK локализаци + Резьян + RUMGR локализаци + Сахо + Англо-шотланди + Ливерпуль + Ансат + Столици-солбицки диалект + SOTAV локализаци + SPANGLIS локализаци + SURMIRAN локализаци + SURSILV локализаци + SUTSILV локализаци + SYNNEJYL локализаци + TAILO локализаци + Тарашкевиц + TONGYONG локализаци + TUNUMIIT локализаци + Пӗрлешӳллӗ орфографийӗ + Пӗрлешӳллӗ ҫӗнӗрен пӑхса тухнӑ орфографийӗ + ULSTER локализаци + UNIFON локализаци + VAIDIKA локализаци + VALBADIA локализаци + Валенси + VALLADER локализаци + VECDRUKA локализаци + VIVARAUP локализаци + Уэйд – Джайлз системи + XSISTEMO локализаци + + + çулталăк кĕнеки + валюта формачӗ + сортировка йӗрки + валюта + вӑхӑт формачӗ (12- е 24-сехет) + çĕнĕ йĕркерен пуçла стилӗ + виҫев системи + цифрисем + + будда çулталăк кĕнеки + китай çулталăк кĕнеки + копт çулталăк кĕнеки + данги çулталăк кĕнеки + эфиопи çулталăк кĕнеки + амете-алем эфиопи çулталăк кĕнеки грегориан календарӗ + еврей çулталăк кĕнеки + инди наци çулталăк кĕнеки + хиджра çулталăк кĕнеки + хиджра граждан çулталăк кĕнеки (таблици) + хиджра çулталăк кĕнеки (Сауд Аравийӗ) + хиджра çулталăк кĕнеки (таблица, астрономи тапхӑрӗ) + хиджра çулталăк кĕнеки (Умм аль-Кура) календарӗ ISO-8601 + япони çулталăк кĕнеки + перси çулталăк кĕнеки + Миньго çулталăк кĕнеки + финанс формачӗ + валюта стандартлӑ формачӗ + йӑлана кӗнӗ китай - big5 + иртнĕ сортировка йӗрки + сортировка йӗрки словарĕ + Юникодри яланхи сортировка йӗрки + эмодзи сортировка йӗрки + Европа сортировка правилисем + китай сортировкӑн ансат йӗрки - GB2312 + телефон кӗнекине сортировка йӗрке + пиньинь сортировка йӗрки + шырани + хангыльти пуҫламӑш килӗшӳпе шырав стандартлӑ сортировка + йĕр сортировка йӗрке + йӑлана кӗнӗ сортировка йӗрки + уҫҫисем тӑрӑх, унтан йӗрсем тӑрӑх сортировка + чжуинь сортировка йӗрки + 12-сехет (0-11) вӑхӑт формачӗ + 12-сехет (1-12) вӑхӑт формачӗ + 24-сехет (0-23) вӑхӑт формачӗ + 24-сехет (1-24) вӑхӑт формачӗ + çĕнĕ йĕркерен пуçла ирӗклӗ стилӗ + çĕнĕ йĕркерен пуçла яланхи стилӗ + çĕнĕ йĕркерен пуçла хаяр стилӗ + метрикăлла виçев пĕрчисем + британи виҫев системи + америка виҫев системи + ахом цифрисем + араб-инди цифрисем + араб-инди цифрисем анлӑ системи + армян цифрисем + аялти регистрти армян цифрисем + бали цифрисем + бенгали цифрисем + брахмӑллӑ цифрӑсем + чакма цифрисем + чам цифрисем + çырулăхе славян цифрисем + деванагари цифрисем + дайвз акуру цифрисем + эфиопи цифрисем + тулли сарлакăш цифрисем + гарай цифрисем + грузин цифрисем + гунджала гонди цифрисем + масарам гонди цифрисем + грек цифрисем + аялти регистрти грек цифрисем + гуджарати цифрисем + гурунги кхема цифрисем + гурмукхи цифрисем + китай вуншарлă цифрисем + китай ансат цифрисем + китай ансат финанс цифрисем + китай йăлана кĕнĕ цифрисем + китай йăлана кĕнĕ финанс цифрисем + иврит цифрисем + пахау цифрисем + наякинг пуачу хмонг цифрисем + яван цифрисем + япони цифрисем + япони финанс цифрисем + кайя ли цифрисем + кави цифрисем + кхмер цифрисем + каннад цифрисем + кират рай цифрисем + ланна цифрисем + тай тхам цифрисем + лаос цифрисем хальхи араб цифрисем + лепча цифрисем + лимб цифрисем + математика самăр цифрисем + математика хăвăл цифрисене + математика цифрисем + математика самăр сан-сериф цифрисем + математика сан-сериф цифрисем + малаялам цифрисем + моди цифрисем + монгол цифрисем + мро цифрисем + манипури цифрисем + бирман цифрисем + бирман тухӑҫӗнчи пво карен цифрисем + бирман пао цифрисем + бирман шан цифрисем + бирман таи лаи цифрисем + наг мундари цифрисем + нко цифрисем + ол-чики цифрисем + ол онал цифрисем + ория цифрисем + исмания цифрисем + самăр цифрисем + ханифи цифрисем + рим цифрисем + аялти регистрти рим цифрисем + саураштра цифрисем + шарада цифрисем + худавади цифрисем + синхала цифрисем + сора-сомпенг цифрисем + судан цифрисем + сунвари цифрисем + такри цифрисем + ҫӗнӗ тай-лю цифрисем + тамильти йӑлана кӗнӗ цифрисем + тамиль цифрисем + телугу цифрисем + тай цифрисем + тибет цифрисем + тирхута цифрисем + тангса цифрисем + вай цифрисем + варанг-кшити цифрисем + ванчо цифрисем Метрикӑлла @@ -404,7 +1151,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -419,6 +1166,483 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + + будда эра + + + бэ + + + бэ + + + + + + h a – h a + h–h a + + + h:mm a – h:mm a + h:mm–h:mm a + h:mm–h:mm a + + + h:mm a – h:mm a v + h:mm–h:mm a v + h:mm–h:mm a v + + + h a – h a v + h–h a v + + + + + + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + + + кăрлач + на­рăс + пуш + ака + çу + çĕртме + утă + çурла + авăн + юпа + чÿк + раштав + + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + + + + + + + + + тот + бабэ + хатур + кихак + тубэ + амшир + барамхат + бармуда + башнас + бауна + абиб + мисра + наси + + + тот + бабэ + хатур + кихак + тубэ + амшир + барамхат + бармуда + башнас + бауна + абиб + мисра + наси + + + + + тот + бабэ + хатур + кихак + тубэ + амшир + барамхат + бармуда + башнас + бауна + абиб + мисра + наси + + + тот + бабэ + хатур + кихак + тубэ + амшир + барамхат + бармуда + башнас + бауна + абиб + мисра + наси + + + + + + Диоклетиан ҫитиччен + Диоклетиан хыҫҫӑн + + + Диокл.ҫтчн + Диокл.хҫн + + + Дкл.ҫтчн + Дкл.хҫн + + + + + + h a – h a + h–h a + + + h:mm a – h:mm a + h:mm–h:mm a + h:mm–h:mm a + + + h:mm a – h:mm a v + h:mm–h:mm a v + h:mm–h:mm a v + + + h a – h a v + h–h a v + + + + + + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + + + кăрлач + на­рăс + пуш + ака + çу + çĕртме + утă + çурла + авăн + юпа + чÿк + раштав + + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + + + + + + + + ҫуркунне пуҫланать + ҫумӑр шывӗ + хурт-кӑпшанкӑ вӑранать + çурхи кунпа çĕр танлашăвĕ + йăлтăр та янкӑр уяр + тӗштырӑ ҫумӑр + ҫу пуҫланать + тулли тырӑ + пучахри тырӑ + кун таврӑнни + лĕп ăшă + шăрăх + кӗркунне пуҫланать + шӑрӑх вӗҫленни + шурӑ сывлӑм + кӗркунне кунпа ҫӗр танлашни + сивӗ сывлӑм + сивӗтет + хӗл пуҫланать + юр ҫуни + вӑйлӑ юр ҫӑвать + кун хутшӑнни + вӑйсӑр сивӗ + хаяр сивĕ + + + ҫуркунне пуҫланать + ҫумӑр шывӗ + хурт-кӑпшанкӑ вӑранать + çурхи кунпа çĕр танлашăвĕ + йăлтăр та янкӑр уяр + тӗштырӑ ҫумӑр + ҫу пуҫланать + тулли тырӑ + пучахри тырӑ + кун таврӑнни + лĕп ăшă + шăрăх + кӗркунне пуҫланать + шӑрӑх вӗҫленни + шурӑ сывлӑм + кӗркунне кунпа ҫӗр танлашни + сивӗ сывлӑм + сивӗтет + хӗл пуҫланать + юр ҫуни + вӑйлӑ юр ҫӑвать + кун хутшӑнни + вӑйсӑр сивӗ + хаяр сивĕ + + + ҫуркунне пуҫланать + ҫумӑр шывӗ + хурт-кӑпшанкӑ вӑранать + çурхи кунпа çĕр танлашăвĕ + йăлтăр та янкӑр уяр + тӗштырӑ ҫумӑр + ҫу пуҫланать + тулли тырӑ + пучахри тырӑ + кун таврӑнни + лĕп ăшă + шăрăх + кӗркунне пуҫланать + шӑрӑх вӗҫленни + шурӑ сывлӑм + кӗркунне кунпа ҫӗр танлашни + сивӗ сывлӑм + сивӗтет + хӗл пуҫланать + юр ҫуни + вӑйлӑ юр ҫӑвать + кун хутшӑнни + вӑйсӑр сивӗ + хаяр сивĕ + + + + + + + + h a – h a + h–h a + + + h:mm a – h:mm a + h:mm–h:mm a + h:mm–h:mm a + + + h:mm a – h:mm a v + h:mm–h:mm a v + h:mm–h:mm a v + + + h a – h a v + h–h a v + + + + + + + + + мескерем + текемт + хедар + тахсас + тер + якатит + магабит + миазия + генбот + сэнэ + хамлэ + нахасэ + эпагомен + + + мескерем + текемт + хедар + тахсас + тер + якатит + магабит + миазия + генбот + сэнэ + хамлэ + нахасэ + эпагомен + + + + + мескерем + текемт + хедар + тахсас + тер + якатит + магабит + миазия + генбот + сэнэ + хамлэ + нахасэ + эпагомен + + + мескерем + текемт + хедар + тахсас + тер + якатит + магабит + миазия + генбот + сэнэ + хамлэ + нахасэ + эпагомен + + + + + + пирĕн эрăчченхи (Христус пурнăçланничен) + пирĕн самана + + + прн.эрчнх. + прн.смн. + + + прн.эрчнх. + прн.смн. + + + + + + h a – h a + h–h a + + + h:mm a – h:mm a + h:mm–h:mm a + h:mm–h:mm a + + + h:mm a – h:mm a v + h:mm–h:mm a v + h:mm–h:mm a v + + + h a – h a v + h–h a v + + + + @@ -885,6 +2109,1177 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + + + тишрей + хешван + кислев + тевет + шеват + адар I + адар + адар II + нисан + ияр + сиван + таммуз + ав + элул + + + тишрей + хешван + кислев + тевет + шеват + адар I + адар + адар II + нисан + ияр + сиван + таммуз + ав + элул + + + + + тишрей + хешван + кислев + тевет + шеват + адар I + адар + адар II + нисан + ияр + сиван + таммуз + ав + элул + + + тишрей + хешван + кислев + тевет + шеват + адар I + адар + адар II + нисан + ияр + сиван + таммуз + ав + элул + + + + + + çут тĕнче пулса кайни + + + + + + h a – h a + h–h a + + + h:mm a – h:mm a + h:mm–h:mm a + h:mm–h:mm a + + + h:mm a – h:mm a v + h:mm–h:mm a v + h:mm–h:mm a v + + + h a – h a v + h–h a v + + + + + + + + + чайтра + ваисакха + джанштха + асадха + сравана + бхадра + азвина + картика + аграхайана + пауза + магха + пхалгуна + + + чайтра + ваисакха + джанштха + асадха + сравана + бхадра + азвина + картика + аграхайана + пауза + магха + пхалгуна + + + + + чайтра + ваисакха + джанштха + асадха + сравана + бхадра + азвина + картика + аграхайана + пауза + магха + пхалгуна + + + чайтра + ваисакха + джанштха + асадха + сравана + бхадра + азвина + картика + аграхайана + пауза + магха + пхалгуна + + + + + + Сака + + + Сака + + + Сака + + + + + + h a – h a + h–h a + + + h:mm a – h:mm a + h:mm–h:mm a + h:mm–h:mm a + + + h:mm a – h:mm a v + h:mm–h:mm a v + h:mm–h:mm a v + + + h a – h a v + h–h a v + + + + + + + + + мух. + саф. + раб. I + раб. II + джум. I + джум. II + радж. + шааб. + рам. + шав. + зуль-к. + зуль-х. + + + мухаррам + сафар + раби-уль-авваль + раби-уль-ахир + джумад-уль-авваль + джумад-уль-ахир + раджаб + шаабан + рамадан + шавваль + зуль-каада + зуль-хиджжа + + + + + мух. + саф. + раб. I + раб. II + джум. I + джум. II + радж. + шааб. + рам. + шав. + зуль-к. + зуль-х. + + + мухаррам + сафар + раби-уль-авваль + раби-уль-ахир + джумад-уль-авваль + джумад-уль-ахир + раджаб + шаабан + рамадан + шавваль + зуль-каада + зуль-хиджжа + + + + + + хиджра хыҫҫӑн + + + хиджра хҫн + + + х-ра хҫн + + + + + + h a – h a + h–h a + + + h:mm a – h:mm a + h:mm–h:mm a + h:mm–h:mm a + + + h:mm a – h:mm a v + h:mm–h:mm a v + h:mm–h:mm a v + + + h a – h a v + h–h a v + + + + + + + + Тайка тапхăрĕ (645–650) + Хакути тапхăрĕ (650–671) + Хакухо тапхăрĕ (672–686) + Сючё тапхăрĕ (686–701) + Тайхо тапхăрĕ (701–704) + Кёюн тапхăрĕ (704–708) + Вадо тапхăрĕ (708–715) + Рэйки тапхăрĕ (715–717) + Ёро тапхăрĕ (717–724) + Дзинки тапхăрĕ (724–729) + Темпьё тапхăрĕ (729–749) + Темпьё тапхăрĕ (749–749) + Темпьё-Сьохо тапхăрĕ (749-757) + Темпьё-Ходзи тапхăрĕ (757-765) + Темпьё-Ходзи тапхăрĕ (765-767) + Джинго-Кёюн тапхăрĕ (767-770) + Хоки тапхăрĕ (770–780) + Теньё тапхăрĕ (781–782) + Енряку тапхăрĕ (782–806) + Дайдо тапхăрĕ (806–810) + Конин тапхăрĕ (810–824) + Тентьо тапхăрĕ (824–834) + Шова тапхăрĕ (834–848) + Кайо тапхăрĕ (848–851) + Ниндзю тапхăрĕ (851–854) + Сайко тапхăрĕ (854–857) + Теннан тапхăрĕ (857–859) + Йоган тапхăрĕ (859–877) + Генкей тапхăрĕ (877–885) + Нинна тапхăрĕ (885–889) + Кампьё тапхăрĕ (889–898) + Сьотай тапхăрĕ (898–901) + Энги тапхăрĕ (901–923) + Ентьо тапхăрĕ (923–931) + Сьёхэй тапхăрĕ (931–938) + Тенгьо тапхăрĕ (938–947) + Тенрияку тапхăрĕ (947–957) + Тентоку тапхăрĕ (957–961) + Ова тапхăрĕ (961–964) + Кохо тапхăрĕ (964–968) + Анна тапхăрĕ (968–970) + Тенроку тапхăрĕ (970–973) + Теньен тапхăрĕ (973–976) + Дзьоген тапхăрĕ (976–978) + Тенген тапхăрĕ (978–983) + Ейкан тапхăрĕ (983–985) + Канна тапхăрĕ (985–987) + Ейен тапхăрĕ (987–989) + Ейсо тапхăрĕ (989–990) + Сёряку тапхăрĕ (990–995) + Тётоку тапхăрĕ (995–999) + Тёхо тапхăрĕ (999–1004) + Канко тапхăрĕ (1004–1012) + Тёва тапхăрĕ (1012–1017) + Каннин тапхăрĕ (1017–1021) + Дзиан тапхăрĕ (1021–1024) + Мандзю тапхăрĕ (1024–1028) + Тёгэн тапхăрĕ (1028–1037) + Тёряку тапхăрĕ (1037–1040) + Тёкю тапхăрĕ (1040–1044) + Катоку тапхăрĕ (1044–1046) + Эйсо тапхăрĕ (1046–1053) + Тэнги тапхăрĕ (1053–1058) + Кохэй тапхăрĕ (1058–1065) + Дзиряку тапхăрĕ (1065–1069) + Энкю тапхăрĕ (1069–1074) + Сёхо тапхăрĕ (1074–1077) + Сёряку тапхăрĕ (1077–1081) + Эйхо тапхăрĕ (1081–1084) + Отоку тапхăрĕ (1084–1087) + Кандзи тапхăрĕ (1087–1094) + Кахо тапхăрĕ (1094–1096) + Эйтё тапхăрĕ (1096–1097) + Сётоку тапхăрĕ (1097–1099) + Кова тапхăрĕ (1099–1104) + Тёдзи тапхăрĕ (1104–1106) + Касё тапхăрĕ (1106–1108) + Тэннин тапхăрĕ (1108–1110) + Тэнъэй тапхăрĕ (1110–1113) + Эйкю тапхăрĕ (1113–1118) + Гэнъэй тапхăрĕ (1118–1120) + Хоан тапхăрĕ (1120–1124) + Тэндзи тапхăрĕ (1124–1126) + Дайдзи тапхăрĕ (1126–1131) + Тэнсё тапхăрĕ (1131–1132) + Тёсё тапхăрĕ (1132–1135) + Хоэн тапхăрĕ (1135–1141) + Эйдзи тапхăрĕ (1141–1142) + Кодзи тапхăрĕ (1142–1144) + Тэнё тапхăрĕ (1144–1145) + Кюан тапхăрĕ (1145–1151) + Нимпэй тапхăрĕ (1151–1154) + Кюдзю тапхăрĕ (1154–1156) + Хогэн тапхăрĕ (1156–1159) + Хэйдзи тапхăрĕ (1159–1160) + Эйряку тапхăрĕ (1160–1161) + Охо тапхăрĕ (1161–1163) + Тёкан тапхăрĕ (1163–1165) + Эйман тапхăрĕ (1165–1166) + Нинъан тапхăрĕ (1166–1169) + Као тапхăрĕ (1169–1171) + Сёан тапхăрĕ (1171–1175) + Ангэн тапхăрĕ (1175–1177) + Дзисё тапхăрĕ (1177–1181) + Ёва тапхăрĕ (1181–1182) + Дзюэй тапхăрĕ (1182–1184) + Гэнрюку тапхăрĕ (1184–1185) + Бундзи тапхăрĕ (1185–1190) + Кэнкю тапхăрĕ (1190–1199) + Сёдзи тапхăрĕ (1199–1201) + Кэннин тапхăрĕ (1201–1204) + Гэнкю тапхăрĕ (1204–1206) + Кэнъэй тапхăрĕ (1206–1207) + Сёгэн тапхăрĕ (1207–1211) + Кэнряку тапхăрĕ (1211–1213) + Кэмпо тапхăрĕ (1213–1219) + Сёкю тапхăрĕ (1219–1222) + Дзёо тапхăрĕ (1222–1224) + Гэннин тапхăрĕ (1224–1225) + Кароку тапхăрĕ (1225–1227) + Антэй тапхăрĕ (1227–1229) + Канки тапхăрĕ (1229–1232) + Дзёэй тапхăрĕ (1232–1233) + Тэмпуку тапхăрĕ (1233–1234) + Бунряку тапхăрĕ (1234–1235) + Катэй тапхăрĕ (1235–1238) + Рякунин тапхăрĕ (1238–1239) + Энъо тапхăрĕ (1239–1240) + Ниндзи тапхăрĕ (1240–1243) + Кангэн тапхăрĕ (1243–1247) + Ходзи тапхăрĕ (1247–1249) + Кэнтё тапхăрĕ (1249–1256) + Когэн тапхăрĕ (1256–1257) + Сёка тапхăрĕ (1257–1259) + Сёгэн тапхăрĕ (1259–1260) + Бунъо тапхăрĕ (1260–1261) + Котё тапхăрĕ (1261–1264) + Бунъэй тапхăрĕ (1264–1275) + Кэндзи тапхăрĕ (1275–1278) + Коан тапхăрĕ (1278–1288) + Сёо тапхăрĕ (1288–1293) + Эйнин тапхăрĕ (1293–1299) + Сёан тапхăрĕ (1299–1302) + Кэнгэн тапхăрĕ (1302–1303) + Кагэн тапхăрĕ (1303–1306) + Токудзи тапхăрĕ (1306–1308) + Энкэй тапхăрĕ (1308–1311) + Отё тапхăрĕ (1311–1312) + Сёва тапхăрĕ (1312–1317) + Бумпо тапхăрĕ (1317–1319) + Гэно тапхăрĕ (1319–1321) + Гэнкё тапхăрĕ (1321–1324) + Сётю тапхăрĕ (1324–1326) + Карэки тапхăрĕ (1326–1329) + Гэнтоку тапхăрĕ (1329–1331) + Гэнко тапхăрĕ (1331–1334) + Кэмму тапхăрĕ (1334–1336) + Энгэн тапхăрĕ (1336–1340) + Кококу тапхăрĕ (1340–1346) + Сёхэй тапхăрĕ (1346–1370) + Кэнтоку тапхăрĕ (1370–1372) + Бунтю тапхăрĕ (1372–1375) + Иэндзю тапхăрĕ (1375–1379) + Коряку тапхăрĕ (1379–1381) + Кова тапхăрĕ (1381–1384) + Гэнтю тапхăрĕ (1384–1392) + Мэйтоку тапхăрĕ (1384–1387) + Какэй тапхăрĕ (1387–1389) + Коо тапхăрĕ (1389–1390) + Мэйтоку тапхăрĕ (1390–1394) + Оэй тапхăрĕ (1394–1428) + Сётё тапхăрĕ (1428–1429) + Эйкё тапхăрĕ (1429–1441) + Какицу тапхăрĕ (1441–1444) + Банъан тапхăрĕ (1444–1449) + Хотоку тапхăрĕ (1449–1452) + Кётоку тапхăрĕ (1452–1455) + Косё тапхăрĕ (1455–1457) + Тёроку тапхăрĕ (1457–1460) + Кансё тапхăрĕ (1460–1466) + Бунсё тапхăрĕ (1466–1467) + Онин тапхăрĕ (1467–1469) + Буммэй тапхăрĕ (1469–1487) + Тёкё тапхăрĕ (1487–1489) + Энтоку тапхăрĕ (1489–1492) + Мэйо тапхăрĕ (1492–1501) + Бунки тапхăрĕ (1501–1504) + Эйсё тапхăрĕ (1504–1521) + Тайэй тапхăрĕ (1521–1528) + Кёроку тапхăрĕ (1528–1532) + Тэммон тапхăрĕ (1532–1555) + Кодзи тапхăрĕ (1555–1558) + Эйроку тапхăрĕ (1558–1570) + Гэнки тапхăрĕ (1570–1573) + Тэнсё тапхăрĕ (1573–1592) + Бунроку тапхăрĕ (1592–1596) + Кэйтё тапхăрĕ (1596–1615) + Гэнва тапхăрĕ (1615–1624) + Канъэй тапхăрĕ (1624–1644) + Сёхо тапхăрĕ (1644–1648) + Кэйан тапхăрĕ (1648–1652) + Сё тапхăрĕ (1652–1655) + Мэйряку тапхăрĕ (1655–1658) + Мандзи тапхăрĕ (1658–1661) + Камбун тапхăрĕ (1661–1673) + Эмпо тапхăрĕ (1673–1681) + Тэнва тапхăрĕ (1681–1684) + Дзёкё тапхăрĕ (1684–1688) + Гэнроку тапхăрĕ (1688–1704) + Хоэй тапхăрĕ (1704–1711) + Сётоку тапхăрĕ (1711–1716) + Кёхо тапхăрĕ (1716–1736) + Гэмбун тапхăрĕ (1736–1741) + Кампо тапхăрĕ (1741–1744) + Энкё тапхăрĕ (1744–1748) + Канъэн тапхăрĕ (1748–1751) + Хоряку тапхăрĕ (1751–1764) + Мэйва тапхăрĕ (1764–1772) + Анъэй тапхăрĕ (1772–1781) + Тэммэй тапхăрĕ (1781–1789) + Кансэй тапхăрĕ (1789–1801) + Кёва тапхăрĕ (1801–1804) + Бунка тапхăрĕ (1804–1818) + Бунсэй тапхăрĕ (1818–1830) + Тэмпо тапхăрĕ (1830–1844) + Кока тапхăрĕ (1844–1848) + Каэй тапхăрĕ (1848–1854) + Ансэй тапхăрĕ (1854–1860) + Манъэн тапхăрĕ (1860–1861) + Бункю тапхăрĕ (1861–1864) + Гендзи тапхăрĕ (1864–1865) + Кейо тапхăрĕ (1865–1868) + Мэйдзи тапхăрĕ + Тайсьо тапхăрĕ + Сьова тапхăрĕ + Хэйсэй тапхăрĕ + Рэйва тапхăрĕ + + + Тайка тпхр. (645–650) + Хакути тпхр. (650–671) + Хакухо тпхр. (672–686) + Сючё тпхр. (686–701) + Тайхо тпхр. (701–704) + Кёюн тпхр. (704–708) + Вадо тпхр. (708–715) + Рэйки тпхр. (715–717) + Ёро тпхр. (717–724) + Дзинки тпхр. (724–729) + Темпьё тпхр. (729–749) + Т.-кампо тпхр. (749–749) + Темпьё-Сьохо тпхр. (749-757) + Темпьё-Ходзи тпхр. (757-765) + Темпьё-Ходзи тпхр. (765-767) + Джинго-Кёюн тпхр. (767-770) + Хоки тпхр. (770–780) + Теньё тпхр. (781–782) + Енряку тпхр. (782–806) + Дайдо тпхр. (806–810) + Конин тпхр. (810–824) + Тентьо тпхр. (824–834) + Шова тпхр. (834–848) + Кайо тпхр. (848–851) + Ниндзю тпхр. (851–854) + Сайко тпхр. (854–857) + Теннан тпхр. (857–859) + Йоган тпхр. (859–877) + Генкей тпхр. (877–885) + Нинна тпхр. (885–889) + Кампьё тпхр. (889–898) + Сьотай тпхр. (898–901) + Энги тпхр. (901–923) + Ентьо тпхр. (923–931) + Сьёхэй тпхр. (931–938) + Тенгьо тпхр. (938–947) + Тенрияку тпхр. (947–957) + Тентоку тпхр. (957–961) + Ова тпхр. (961–964) + Кохо тпхр. (964–968) + Анна тпхр. (968–970) + Тенроку тпхр. (970–973) + Теньен тпхр. (973–976) + Дзьоген тпхр. (976–978) + Тенген тпхр. (978–983) + Ейкан тпхр. (983–985) + Канна тпхр. (985–987) + Ейен тпхр. (987–989) + Ейсо тпхр. (989–990) + Сёряку тпхр. (990–995) + Тётоку тпхр. (995–999) + Тёхо тпхр. (999–1004) + Канко тпхр. (1004–1012) + Тёва тпхр. (1012–1017) + Каннин тпхр. (1017–1021) + Дзиан тпхр. (1021–1024) + Мандзю тпхр. (1024–1028) + Тёгэн тпхр. (1028–1037) + Тёряку тпхр. (1037–1040) + Тёкю тпхр. (1040–1044) + Катоку тпхр. (1044–1046) + Эйсо тпхр. (1046–1053) + Тэнги тпхр. (1053–1058) + Кохэй тпхр. (1058–1065) + Дзиряку тпхр. (1065–1069) + Энкю тпхр. (1069–1074) + Сёхо тпхр. (1074–1077) + Сёряку тпхр. (1077–1081) + Эйхо тпхр. (1081–1084) + Отоку тпхр. (1084–1087) + Кандзи тпхр. (1087–1094) + Кахо тпхр. (1094–1096) + Эйтё тпхр. (1096–1097) + Сётоку тпхр. (1097–1099) + Кова тпхр. (1099–1104) + Тёдзи тпхр. (1104–1106) + Касё тпхр. (1106–1108) + Тэннин тпхр. (1108–1110) + Тэнъэй тпхр. (1110–1113) + Эйкю тпхр. (1113–1118) + Гэнъэй тпхр. (1118–1120) + Хоан тпхр. (1120–1124) + Тэндзи тпхр. (1124–1126) + Дайдзи тпхр. (1126–1131) + Тэнсё тпхр. (1131–1132) + Тёсё тпхр. (1132–1135) + Хоэн тпхр. (1135–1141) + Эйдзи тпхр. (1141–1142) + Кодзи тпхр. (1142–1144) + Тэнё тпхр. (1144–1145) + Кюан тпхр. (1145–1151) + Нимпэй тпхр. (1151–1154) + Кюдзю тпхр. (1154–1156) + Хогэн тпхр. (1156–1159) + Хэйдзи тпхр. (1159–1160) + Эйряку тпхр. (1160–1161) + Охо тпхр. (1161–1163) + Тёкан тпхр. (1163–1165) + Эйман тпхр. (1165–1166) + Нинъан тпхр. (1166–1169) + Као тпхр. (1169–1171) + Сёан тпхр. (1171–1175) + Ангэн тпхр. (1175–1177) + Дзисё тпхр. (1177–1181) + Ёва тпхр. (1181–1182) + Дзюэй тпхр. (1182–1184) + Гэнрюку тпхр. (1184–1185) + Бундзи тпхр. (1185–1190) + Кэнкю тпхр. (1190–1199) + Сёдзи тпхр. (1199–1201) + Кэннин тпхр. (1201–1204) + Гэнкю тпхр. (1204–1206) + Кэнъэй тпхр. (1206–1207) + Сёгэн тпхр. (1207–1211) + Кэнряку тпхр. (1211–1213) + Кэмпо тпхр. (1213–1219) + Сёкю тпхр. (1219–1222) + Дзёо тпхр. (1222–1224) + Гэннин тпхр. (1224–1225) + Кароку тпхр. (1225–1227) + Антэй тпхр. (1227–1229) + Канки тпхр. (1229–1232) + Дзёэй тпхр. (1232–1233) + Тэмпуку тпхр. (1233–1234) + Бунряку тпхр. (1234–1235) + Катэй тпхр. (1235–1238) + Рякунин тпхр. (1238–1239) + Энъо тпхр. (1239–1240) + Ниндзи тпхр. (1240–1243) + Кангэн тпхр. (1243–1247) + Ходзи тпхр. (1247–1249) + Кэнтё тпхр. (1249–1256) + Когэн тпхр. (1256–1257) + Сёка тпхр. (1257–1259) + Сёгэн тпхр. (1259–1260) + Бунъо тпхр. (1260–1261) + Котё тпхр. (1261–1264) + Бунъэй тпхр. (1264–1275) + Кэндзи тпхр. (1275–1278) + Коан тпхр. (1278–1288) + Сёо тпхр. (1288–1293) + Эйнин тпхр. (1293–1299) + Сёан тпхр. (1299–1302) + Кэнгэн тпхр. (1302–1303) + Кагэн тпхр. (1303–1306) + Токудзи тпхр. (1306–1308) + Энкэй тпхр. (1308–1311) + Отё тпхр. (1311–1312) + Сёва тпхр. (1312–1317) + Бумпо тпхр. (1317–1319) + Гэно тпхр. (1319–1321) + Гэнкё тпхр. (1321–1324) + Сётю тпхр. (1324–1326) + Карэки тпхр. (1326–1329) + Гэнтоку тпхр. (1329–1331) + Гэнко тпхр. (1331–1334) + Кэмму тпхр. (1334–1336) + Энгэн тпхр. (1336–1340) + Кококу тпхр. (1340–1346) + Сёхэй тпхр. (1346–1370) + Кэнтоку тпхр. (1370–1372) + Бунтю тпхр. (1372–1375) + Иэндзю тпхр. (1375–1379) + Коряку тпхр. (1379–1381) + Кова тпхр. (1381–1384) + Гэнтю тпхр. (1384–1392) + Мэйтоку тпхр. (1384–1387) + Какэй тпхр. (1387–1389) + Коо тпхр. (1389–1390) + Мэйтоку тпхр. (1390–1394) + Оэй тпхр. (1394–1428) + Сётё тпхр. (1428–1429) + Эйкё тпхр. (1429–1441) + Какицу тпхр. (1441–1444) + Банъан тпхр. (1444–1449) + Хотоку тпхр. (1449–1452) + Кётоку тпхр. (1452–1455) + Косё тпхр. (1455–1457) + Тёроку тпхр. (1457–1460) + Кансё тпхр. (1460–1466) + Бунсё тпхр. (1466–1467) + Онин тпхр. (1467–1469) + Буммэй тпхр. (1469–1487) + Тёкё тпхр. (1487–1489) + Энтоку тпхр. (1489–1492) + Мэйо тпхр. (1492–1501) + Бунки тпхр. (1501–1504) + Эйсё тпхр. (1504–1521) + Тайэй тпхр. (1521–1528) + Кёроку тпхр. (1528–1532) + Тэммон тпхр. (1532–1555) + Кодзи тпхр. (1555–1558) + Эйроку тпхр. (1558–1570) + Гэнки тпхр. (1570–1573) + Тэнсё тпхр. (1573–1592) + Бунроку тпхр. (1592–1596) + Кэйтё тпхр. (1596–1615) + Гэнва тпхр. (1615–1624) + Канъэй тпхр. (1624–1644) + Сёхо тпхр. (1644–1648) + Кэйан тпхр. (1648–1652) + Сё тпхр. (1652–1655) + Мэйряку тпхр. (1655–1658) + Мандзи тпхр. (1658–1661) + Камбун тпхр. (1661–1673) + Эмпо тпхр. (1673–1681) + Тэнва тпхр. (1681–1684) + Дзёкё тпхр. (1684–1688) + Гэнроку тпхр. (1688–1704) + Хоэй тпхр. (1704–1711) + Сётоку тпхр. (1711–1716) + Кёхо тпхр. (1716–1736) + Гэмбун тпхр. (1736–1741) + Кампо тпхр. (1741–1744) + Энкё тпхр. (1744–1748) + Канъэн тпхр. (1748–1751) + Хоряку тпхр. (1751–1764) + Мэйва тпхр. (1764–1772) + Анъэй тпхр. (1772–1781) + Тэммэй тпхр. (1781–1789) + Кансэй тпхр. (1789–1801) + Кёва тпхр. (1801–1804) + Бунка тпхр. (1804–1818) + Бунсэй тпхр. (1818–1830) + Тэмпо тпхр. (1830–1844) + Кока тпхр. (1844–1848) + Каэй тпхр. (1848–1854) + Ансэй тпхр. (1854–1860) + Манъэн тпхр. (1860–1861) + Бункю тпхр. (1861–1864) + Гендзи тпхр. (1864–1865) + Кейо тпхр. (1865–1868) + Мэйдзи тпхр. + Тайсьо тпхр. + Сьова тпхр. + Хэйсэй тпхр. + Рэйва тпхр. + + + Тайка (645–650) + Хакути (650–671) + Хакухо (672–686) + Сючё (686–701) + Тайхо (701–704) + Кёюн (704–708) + Вадо (708–715) + Рэйки (715–717) + Ёро (717–724) + Дзинки (724–729) + Темпьё (729–749) + Темпьё-кампо (749–749) + Темпьё-Сьохо (749-757) + Темпьё-Ходзи (757-765) + Темпьё-Ходзи (765-767) + Джинго-Кёюн (767-770) + Хоки (770–780) + Теньё (781–782) + Енряку (782–806) + Дайдо (806–810) + Конин (810–824) + Тентьо (824–834) + Шова (834–848) + Кайо (848–851) + Ниндзю (851–854) + Сайко (854–857) + Теннан (857–859) + Йоган (859–877) + Генкей (877–885) + Нинна (885–889) + Кампьё (889–898) + Сьотай (898–901) + Энги (901–923) + Ентьо (923–931) + Сьёхэй (931–938) + Тенгьо (938–947) + Тенрияку (947–957) + Тентоку (957–961) + Ова (961–964) + Кохо (964–968) + Анна (968–970) + Тенроку (970–973) + Теньен (973–976) + Дзьоген (976–978) + Тенген (978–983) + Ейкан (983–985) + Канна (985–987) + Ейен (987–989) + Ейсо (989–990) + Сёряку (990–995) + Тётоку (995–999) + Тёхо (999–1004) + Канко (1004–1012) + Тёва (1012–1017) + Каннин (1017–1021) + Дзиан (1021–1024) + Мандзю (1024–1028) + Тёгэн (1028–1037) + Тёряку (1037–1040) + Тёкю (1040–1044) + Катоку (1044–1046) + Эйсо (1046–1053) + Тэнги (1053–1058) + Кохэй (1058–1065) + Дзиряку (1065–1069) + Энкю (1069–1074) + Сёхо (1074–1077) + Сёряку (1077–1081) + Эйхо (1081–1084) + Отоку (1084–1087) + Кандзи (1087–1094) + Кахо (1094–1096) + Эйтё (1096–1097) + Сётоку (1097–1099) + Кова (1099–1104) + Тёдзи (1104–1106) + Касё (1106–1108) + Тэннин (1108–1110) + Тэнъэй (1110–1113) + Эйкю (1113–1118) + Гэнъэй (1118–1120) + Хоан (1120–1124) + Тэндзи (1124–1126) + Дайдзи (1126–1131) + Тэнсё (1131–1132) + Тёсё (1132–1135) + Хоэн (1135–1141) + Эйдзи (1141–1142) + Кодзи (1142–1144) + Тэнё (1144–1145) + Кюан (1145–1151) + Нимпэй (1151–1154) + Кюдзю (1154–1156) + Хогэн (1156–1159) + Хэйдзи (1159–1160) + Эйряку (1160–1161) + Охо (1161–1163) + Тёкан (1163–1165) + Эйман (1165–1166) + Нинъан (1166–1169) + Као (1169–1171) + Сёан (1171–1175) + Ангэн (1175–1177) + Дзисё (1177–1181) + Ёва (1181–1182) + Дзюэй (1182–1184) + Гэнрюку (1184–1185) + Бундзи (1185–1190) + Кэнкю (1190–1199) + Сёдзи (1199–1201) + Кэннин (1201–1204) + Гэнкю (1204–1206) + Кэнъэй (1206–1207) + Сёгэн (1207–1211) + Кэнряку (1211–1213) + Кэмпо (1213–1219) + Сёкю (1219–1222) + Дзёо (1222–1224) + Гэннин (1224–1225) + Кароку (1225–1227) + Антэй (1227–1229) + Канки (1229–1232) + Дзёэй (1232–1233) + Тэмпуку (1233–1234) + Бунряку (1234–1235) + Катэй (1235–1238) + Рякунин (1238–1239) + Энъо (1239–1240) + Ниндзи (1240–1243) + Кангэн (1243–1247) + Ходзи (1247–1249) + Кэнтё (1249–1256) + Когэн (1256–1257) + Сёка (1257–1259) + Сёгэн (1259–1260) + Бунъо (1260–1261) + Котё (1261–1264) + Бунъэй (1264–1275) + Кэндзи (1275–1278) + Коан (1278–1288) + Сёо (1288–1293) + Эйнин (1293–1299) + Сёан (1299–1302) + Кэнгэн (1302–1303) + Кагэн (1303–1306) + Токудзи (1306–1308) + Энкэй (1308–1311) + Отё (1311–1312) + Сёва (1312–1317) + Бумпо (1317–1319) + Гэно (1319–1321) + Гэнкё (1321–1324) + Сётю (1324–1326) + Карэки (1326–1329) + Гэнтоку (1329–1331) + Гэнко (1331–1334) + Кэмму (1334–1336) + Энгэн (1336–1340) + Кококу (1340–1346) + Сёхэй (1346–1370) + Кэнтоку (1370–1372) + Бунтю (1372–1375) + Иэндзю (1375–1379) + Коряку (1379–1381) + Кова (1381–1384) + Гэнтю (1384–1392) + Мэйтоку (1384–1387) + Какэй (1387–1389) + Коо (1389–1390) + Мэйтоку (1390–1394) + Оэй (1394–1428) + Сётё (1428–1429) + Эйкё (1429–1441) + Какицу (1441–1444) + Банъан (1444–1449) + Хотоку (1449–1452) + Кётоку (1452–1455) + Косё (1455–1457) + Тёроку (1457–1460) + Кансё (1460–1466) + Бунсё (1466–1467) + Онин (1467–1469) + Буммэй (1469–1487) + Тёкё (1487–1489) + Энтоку (1489–1492) + Мэйо (1492–1501) + Бунки (1501–1504) + Эйсё (1504–1521) + Тайэй (1521–1528) + Кёроку (1528–1532) + Тэммон (1532–1555) + Кодзи (1555–1558) + Эйроку (1558–1570) + Гэнки (1570–1573) + Тэнсё (1573–1592) + Бунроку (1592–1596) + Кэйтё (1596–1615) + Гэнва (1615–1624) + Канъэй (1624–1644) + Сёхо (1644–1648) + Кэйан (1648–1652) + Сё (1652–1655) + Мэйряку (1655–1658) + Мандзи (1658–1661) + Камбун (1661–1673) + Эмпо (1673–1681) + Тэнва (1681–1684) + Дзёкё (1684–1688) + Гэнроку (1688–1704) + Хоэй (1704–1711) + Сётоку (1711–1716) + Кёхо (1716–1736) + Гэмбун (1736–1741) + Кампо (1741–1744) + Энкё (1744–1748) + Канъэн (1748–1751) + Хоряку (1751–1764) + Мэйва (1764–1772) + Анъэй (1772–1781) + Бунка (1804–1818) + Кансэй (1789–1801) + Кёва (1801–1804) + Бунка (1804–1818) + Бунсэй (1818–1830) + Тэмпо (1830–1844) + Кока (1844–1848) + Каэй (1848–1854) + Ансэй (1854–1860) + Манъэн (1860–1861) + Бункю (1861–1864) + Гендзи (1864–1865) + Кейо (1865–1868) + Мэйдзи + Тайсьо + Сьова + Хэйсэй + Рэйва + + + + + + h a – h a + h–h a + + + h:mm a – h:mm a + h:mm–h:mm a + h:mm–h:mm a + + + h:mm a – h:mm a v + h:mm–h:mm a v + h:mm–h:mm a v + + + h a – h a v + h–h a v + + + + + + + + + фарвардин + ордибехешт + хордад + тир + мордад + шахривер + мехр + абан + азер + дей + бахман + эсфанд + + + фарвардин + ордибехешт + хордад + тир + мордад + шахривер + мехр + абан + азер + дей + бахман + эсфанд + + + + + фарвардин + ордибехешт + хордад + тир + мордад + шахривер + мехр + абан + азер + дей + бахман + эсфанд + + + фарвардин + ордибехешт + хордад + тир + мордад + шахривер + мехр + абан + азер + дей + бахман + эсфанд + + + + + + перси ҫулӗ + + + перс ҫулӗ + + + перс ҫ. + + + + + + h a – h a + h–h a + + + h:mm a – h:mm a + h:mm–h:mm a + h:mm–h:mm a + + + h:mm a – h:mm a v + h:mm–h:mm a v + h:mm–h:mm a v + + + h a – h a v + h–h a v + + + + + + + + Китай республикин никӗсӗ таран + Миньго + + + К.р-ки нкс.трн. + Миньго + + + Миньго ҫтчн + Миньго + + + + + + h a – h a + h–h a + + + h:mm a – h:mm a + h:mm–h:mm a + h:mm–h:mm a + + + h:mm a – h:mm a v + h:mm–h:mm a v + h:mm–h:mm a v + + + h a – h a v + h–h a v + + + + @@ -895,36 +3290,111 @@ CLDR data files are interpreted according to the LDML specification (http://unic пӗлтӗр кӑҫал ҫитес ҫул + + +{0} ҫултан + + + -{0} ҫул каялла + ҫ. пӗлтӗр кӑҫал ҫитес ҫ. + + +{0} ҫ. + + + -{0} ҫ. каялла + + + + + +{0} ҫ. + + + -{0} ҫ. к-ла + квартал + иртнӗ квартал + ку квартал + ҫитес квартал + + урлӑ +{0} кварталтан + + + -{0} квартал каялла + кв. + иртнӗ кв. + ку кв. + ҫитес кв. + + урлӑ +{0} кв. + + + -{0} кв. каялла + + + + и-нӗ кв. + ку кв. + ҫ-с кв. + + урлӑ +{0} кв. + + + -{0} кв. к-ла + уйӑх иртнӗ уйӑхра ку уйӑхра ҫитес уйӑхра + + +{0} уйӑхран + + + -{0} уйӑх каялла + уй. иртнӗ уй. ку уй. ҫитес уй. + + +{0} уй. + + + -{0} уй. каялла + + + + + +{0} уй. + + + -{0} уй. к-ла + эрне иртнӗ эрнере ҫак эрнере ҫитес эрнере + + +{0} эрнерен + + + -{0} эрне каялла + эрнере {0} @@ -932,48 +3402,403 @@ CLDR data files are interpreted according to the LDML specification (http://unic иртнӗ эр. ҫак эр. ҫитес эр. + + +{0} эр. + + + -{0} эр. каялла + + + + + +{0} эр. + + + -{0} эр. к-ла + + + + уйӑхӑн эрни + + + уй. эрни + + + уй. эр. кун ӗнер паян ыран + + +{0} кунтан + + + -{0} кун каялла + кн. + + +{0} к. + + + -{0} к. каялла + + + + + +{0} к. + + + -{0} к. к-ла + + + + ҫулталӑкӑн кунӗ + + + ҫул. кунӗ + + + ҫул. кн. эрнери кун + + эрнен кунӗ + + + эр. кунӗ + + + эр. кн. + + + иртнӗ вырсарникун + ку вырсарникун + ҫитес вырсарникун + + +{0} вырсарникун + + + -{0} вырсарникун + + + + иртнӗ вырсарни + ку вырсарни + ҫитес вырсарни + + +{0} вырсарни + + + -{0} вырсарни + + + + иртнӗ Вр + ку Вр + ҫитес Вр + + +{0} Вр + + + -{0} Вр + + + + иртнӗ тунтикун + ку тунтикун + ҫитес тунтикун + + +{0} тунтикун + + + -{0} тунтикун + + + + иртнӗ тунти + ку тунти + ҫитес тунти + + +{0} тунти + + + -{0} тунти + + + + иртнӗ Тн + ку Тн + ҫитес Тн + + +{0} Тн + + + -{0} Тн + + + + иртнӗ ытларикун + ку ытларикун + ҫитес ытларикун + + +{0} ытларикун + + + -{0} ытларикун + + + + иртнӗ ытлари + ку ытлари + ҫитес ытлари + + +{0} ытлари + + + -{0} ытлари + + + + иртнӗ Ыт + ку Ыт + ҫитес Ыт + + +{0} Ыт + + + -{0} Ыт + + + + иртнӗ юнкун + ку юнкун + ҫитес юнкун + + +{0} юнкун + + + -{0} юнкун + + + + иртнӗ юн + ку юн + ҫитес юн + + +{0} юн + + + -{0} юн + + + + иртнӗ Юн + ҫитес Юн + ҫитес Юн + + +{0} Юн + + + -{0} Юн + + + + иртнӗ кӗҫнерникун + ку кӗҫнерникун + ҫитес кӗҫнерникун + + +{0} кӗҫнерникун + + + -{0} кӗҫнерникун + + + + иртнӗ кӗҫнерни + ку кӗҫнерни + ҫитес кӗҫнерни + + +{0} кӗҫнерни + + + -{0} кӗҫнерни + + + + иртнӗ Кҫ + ку Кҫ + ҫитес Кҫ + + +{0} Кҫ + + + -{0} Кҫ + + + + иртнӗ эрнекун + ку эрнекун + ҫитес эрнекун + + +{0} эрнекун + + + -{0} эрнекун + + + + иртнӗ эрнекун + ку эрнекун + ҫитес эрнекун + + +{0} эрнекун + + + -{0} эрнекун + + + + иртн.эрнекун + ҫк.эрнекун + ҫтс.эрнекун + + +{0} эрнекун + + + -{0} эрнекун + + + + иртнӗ шӑматкун + ку шӑматкун + ҫитес шӑматкун + + +{0} шӑматкун + + + -{0} шӑматкун + + + + иртнӗ шӑмат + ку шӑмат + ҫитес шӑмат + + +{0} шӑмат + + + -{0} шӑмат + + + + иртнӗ Шм + ку Шм + ҫитес Шм + + +{0} Шм + + + -{0} Шм + + AM/PM сехет + ҫак сехетре + + +{0} сехетрен + + + -{0} сехет каялла + с. + ҫак сех. + + +{0} сех. + + + -{0} сех. каялла + с + ҫак сех. + + +{0} сех. + + + -{0} сех. к-ла + минут + ҫак минутра + + +{0} минутран + + + -{0} минут каялла + мин. + ҫак мин. + + +{0} мин. + + + -{0} мин. каялла + мин + ҫак мин. + + +{0} мин. + + + -{0} мин. к-ла + секунд + халӗ + + +{0} ҫекундран + + + -{0} ҫеккунт каялла + сек. + халӗ + + +{0} ҫек. + + + -{0} ҫек. каялла + сек + халӗ + + +{0} ҫ + + + -{0} ҫ к-ла + пӗр сехетри зона @@ -982,10 +3807,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} ҫуллахи вӑхӑчӗ {0} стандартлӑ вӑхӑчӗ + + + Гавай стандартлӑ вӑхӑчӗ + Гавай стандартлӑ вӑхӑчӗ + Гавай ҫуллахи вӑхӑчӗ + + Пӗтӗм тӗнчери координацилене вӑхӑчӗ + + ПТКВ (UTC) + Паллӑ мар хула @@ -1716,9 +4551,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Улан-Батор - - Чойбалсан - Макао @@ -1752,6 +4584,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Эрмосильо + + Сьюдад-Хуарес + Масатлан @@ -2244,25 +5079,49 @@ CLDR data files are interpreted according to the LDML specification (http://unic Хараре + + + Акри вӑхӑчӗ + Акри стандартлӑ вӑхӑчӗ + Акри ҫуллахи вӑхӑчӗ + + + ACT Acre + ACT Acre + ACST Acre + + Афганистан вӑхӑчӗ + + AFT + Тӗп Африка вӑхӑчӗ + + CAT + Хӗвелтухӑҫ Африка вӑхӑчӗ + + EAT + Кӑнтӑр Африка вӑхӑчӗ + + SAST + @@ -2270,6 +5129,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Анӑҫ Африка стандартлӑ вӑхӑчӗ Анӑҫ Африка ҫуллахи вӑхӑчӗ + + WAT + WAT + WAST + @@ -2277,6 +5141,23 @@ CLDR data files are interpreted according to the LDML specification (http://unic Аляска стандартлӑ вӑхӑчӗ Аляска ҫуллахи вӑхӑчӗ + + AKT + AKST + AKDT + + + + + Алматы вӑхӑчӗ + Алматы стандартлӑ вӑхӑчӗ + Алматы ҫуллахи вӑхӑчӗ + + + ALMT + ALMT + ALMT DST + @@ -2284,6 +5165,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Амазонка стандартлӑ вӑхӑчӗ Амазонка ҫуллахи вӑхӑчӗ + + AMT + AMT + AMST + @@ -2291,6 +5177,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Тӗп Америка стандартлӑ вӑхӑчӗ Тӗп Америка ҫуллахи вӑхӑчӗ + + CT + CST + CDT + @@ -2298,6 +5189,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Хӗвелтухӑҫ Америка стандартлӑ вӑхӑчӗ Хӗвелтухӑҫ Америка ҫуллахи вӑхӑчӗ + + ET + EST + EDT + @@ -2305,6 +5201,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Стандартлӑ ту вӑхӑчӗ (Ҫурҫӗр Америка) Ҫуллахи ту вӑхӑчӗ (Ҫурҫӗр Америка) + + MT + MST + MDT + @@ -2312,6 +5213,23 @@ CLDR data files are interpreted according to the LDML specification (http://unic Лӑпкӑ океан стандартлӑ вӑхӑчӗ Лӑпкӑ океан ҫуллахи вӑхӑчӗ + + PT + PST + PDT + + + + + Анадырь вӑхӑчӗ + Анадырь стандартлӑ вӑхӑчӗ + Анадырь ҫуллахи вӑхӑчӗ + + + ANAT + ANAT + ANAST + @@ -2319,6 +5237,35 @@ CLDR data files are interpreted according to the LDML specification (http://unic Апиа стандартлӑ вӑхӑчӗ Апиа ҫуллахи вӑхӑчӗ + + SST Samoa Apia + SST Samoa Apia + SST Samoa Apia DST + + + + + Актау вӑхӑчӗ + Актау стандартлӑ вӑхӑчӗ + Актау ҫуллахи вӑхӑчӗ + + + ALMT Aktau + ALMT Aktau + ALMT Aktau DST + + + + + Актобе вӑхӑчӗ + Актобе стандартлӑ вӑхӑчӗ + Актобе ҫуллахи вӑхӑчӗ + + + AQTT + AQTT + AQTT DST + @@ -2326,6 +5273,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Арап стандартлӑ вӑхӑчӗ Арап ҫуллахи вӑхӑчӗ + + AST Arabia + AST Arabia + ADT Arabia + @@ -2333,6 +5285,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Аргентина стандартлӑ вӑхӑчӗ Аргентина ҫуллахи вӑхӑчӗ + + ART + ART + ARST + @@ -2340,6 +5297,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Анӑҫ Аргентина стандартлӑ вӑхӑчӗ Анӑҫ Аргентина ҫуллахи вӑхӑчӗ + + WART + WART + WARST + @@ -2347,6 +5309,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Армени стандартлӑ вӑхӑчӗ Армени ҫуллахи вӑхӑчӗ + + AMT Armenia + AMT Armenia + AMST Armenia + @@ -2354,6 +5321,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Атлантика стандартлӑ вӑхӑчӗ Атлантика ҫуллахи вӑхӑчӗ + + AT + AST + ADT + @@ -2361,6 +5333,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Тӗп Австрали стандартлӑ вӑхӑчӗ Тӗп Австрали ҫуллахи вӑхӑчӗ + + ACST + ACST + ACDT + @@ -2368,6 +5345,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Тӗп Австрали анӑҫ стандартлӑ вӑхӑчӗ Тӗп Австрали анӑҫ ҫуллахи вӑхӑчӗ + + ACWST + ACWST + ACWDT + @@ -2375,6 +5357,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Хӗвелтухӑҫ Австрали стандартлӑ вӑхӑчӗ Хӗвелтухӑҫ Австрали ҫуллахи вӑхӑчӗ + + AEST + AEST + AEDT + @@ -2382,6 +5369,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Анӑҫ Австрали стандартлӑ вӑхӑчӗ Анӑҫ Австрали ҫуллахи вӑхӑчӗ + + AWST + AWST + AWDT + @@ -2389,6 +5381,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Азербайджан стандартлӑ вӑхӑчӗ Азербайджан ҫуллахи вӑхӑчӗ + + AZT + AZT + AZST + @@ -2396,6 +5393,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Азор утравӗсен стандартлӑ вӑхӑчӗ Азор утравӗсен ҫуллахи вӑхӑчӗ + + AZOT + AZOT + AZOST + @@ -2403,16 +5405,27 @@ CLDR data files are interpreted according to the LDML specification (http://unic Бангладеш стандартлӑ вӑхӑчӗ Бангладеш ҫуллахи вӑхӑчӗ + + BST Bangladesh + BST Bangladesh + BDT Bangladesh + Бутан вӑхӑчӗ + + BTT + Боливи вӑхӑчӗ + + BOT + @@ -2420,11 +5433,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic Бразили стандартлӑ вӑхӑчӗ Бразили ҫуллахи вӑхӑчӗ + + BRT + BRT + BRST + Бруней-Даруссалам вӑхӑчӗ + + BNT + @@ -2432,11 +5453,27 @@ CLDR data files are interpreted according to the LDML specification (http://unic Кабо-Верде стандартлӑ вӑхӑчӗ Кабо-Верде ҫуллахи вӑхӑчӗ + + CVT + CVT + CVST + + + + + Кейси вӑхӑчӗ + + + CAST + Чаморро вӑхӑчӗ + + ChST + @@ -2444,6 +5481,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Чатем стандартлӑ вӑхӑчӗ Чатем ҫуллахи вӑхӑчӗ + + CHAST + CHAST + CHADT + @@ -2451,6 +5493,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Чили стандартлӑ вӑхӑчӗ Чили ҫуллахи вӑхӑчӗ + + CLT + CLT + CLST + @@ -2458,23 +5505,27 @@ CLDR data files are interpreted according to the LDML specification (http://unic Китай стандартлӑ вӑхӑчӗ Китай ҫуллахи вӑхӑчӗ - - - - Чойбалсан вӑхӑчӗ - Чойбалсан стандартлӑ вӑхӑчӗ - Чойбалсан ҫуллахи вӑхӑчӗ - + + CST China + CST China + CST China DST + Раштав утравӗн вӑхӑчӗ + + CXT + Кокос утравӗсен вӑхӑчӗ + + CCT + @@ -2482,6 +5533,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Колумби стандартлӑ вӑхӑчӗ Колумби ҫуллахи вӑхӑчӗ + + COT + COT + COST + @@ -2489,6 +5545,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Кукӑн утравӗсен стандартлӑ вӑхӑчӗ Кукӑн утравӗсен ҫуллахи вӑхӑчӗ + + CKT + CKT + CKT DST + @@ -2496,21 +5557,35 @@ CLDR data files are interpreted according to the LDML specification (http://unic Куба стандартлӑ вӑхӑчӗ Куба ҫуллахи вӑхӑчӗ + + CST Cuba + CST Cuba + CDT Cuba + Дейвис вӑхӑчӗ + + DAVT + Дюмон-д’Юрвиль вӑхӑчӗ + + DDUT + Хӗвелтухӑҫ Тимор вӑхӑчӗ + + TLT + @@ -2518,11 +5593,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic Мӑнкун утравӗн стандартлӑ вӑхӑчӗ Мӑнкун утравӗн ҫуллахи вӑхӑчӗ + + EAST + EAST + EASST + Эквадор вӑхӑчӗ + + ECT Ecuador + @@ -2530,6 +5613,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Тӗп Европа стандартлӑ вӑхӑчӗ Тӗп Европа ҫуллахи вӑхӑчӗ + + CET + CET + CEST + @@ -2537,11 +5625,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic Хӗвелтухӑҫ Европа стандартлӑ вӑхӑчӗ Хӗвелтухӑҫ Европа ҫуллахи вӑхӑчӗ + + EET + EET + EEST + Инҫет-хӗвелтухӑҫ Европа вӑхӑчӗ + + FEET + @@ -2549,6 +5645,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Анӑҫ Европа стандартлӑ вӑхӑчӗ Анӑҫ Европа ҫуллахи вӑхӑчӗ + + WET + WET + WEST + @@ -2556,6 +5657,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Фолкленд утравӗсен стандартлӑ вӑхӑчӗ Фолкленд утравӗсен ҫуллахи вӑхӑчӗ + + FKT + FKT + FKST + @@ -2563,26 +5669,43 @@ CLDR data files are interpreted according to the LDML specification (http://unic Фиджи стандартлӑ вӑхӑчӗ Фиджи ҫуллахи вӑхӑчӗ + + FJT + FJT + FJT Summer + Франци Гвиана вӑхӑчӗ + + GFT + Франци Кӑнтӑрпа Антарктика территорийӗсен вӑхӑчӗ + + TAAF + Галапагос утравӗсен вӑхӑчӗ + + GALT + Гамбье вӑхӑчӗ + + GAMT + @@ -2590,16 +5713,39 @@ CLDR data files are interpreted according to the LDML specification (http://unic Грузи стандартлӑ вӑхӑчӗ Грузи ҫуллахи вӑхӑчӗ + + GET + GET + GEST + Гилбертӑн утравӗсен вӑхӑчӗ + + GIT + Гринвичпа вӑтам вӑхӑчӗ + + GMT + + + + + Гренланди вӑхӑчӗ + Гренланди стандартлӑ вӑхӑчӗ + Гренланди ҫуллахи вӑхӑчӗ + + + GNST + GNST + GNSST + @@ -2607,6 +5753,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Хӗвелтухӑҫ Гринланди стандартлӑ вӑхӑчӗ Хӗвелтухӑҫ Гринланди ҫуллахи вӑхӑчӗ + + EGT + EGT + EGST + @@ -2614,16 +5765,35 @@ CLDR data files are interpreted according to the LDML specification (http://unic Анӑҫ Гринланди стандартлӑ вӑхӑчӗ Анӑҫ ҫуллахи вӑхӑчӗ + + WGT + WGT + WGST + + + + + Гуам стандартлӑ вӑхӑчӗ + + + GST Guam + Перси залив вӑхӑчӗ + + GST Gulf + Гайана вӑхӑчӗ + + GYT + @@ -2631,6 +5801,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Гавайи Алеут стандартлӑ вӑхӑчӗ Гавайи Алеут ҫуллахи вӑхӑчӗ + + HST + HST + HDT + @@ -2638,6 +5813,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Гонконг стандартлӑ вӑхӑчӗ Гонконг ҫуллахи вӑхӑчӗ + + HKT + HKT + HKT DST + @@ -2645,36 +5825,59 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ховд стандартлӑ вӑхӑчӗ Ховд ҫуллахи вӑхӑчӗ + + HOVT + HOVT + HOVST + Инди вӑхӑчӗ + + IST Indian + Инди океанӗ вӑхӑчӗ + + IOT + Индокитай вӑхӑчӗ + + ICT + Тӗп Индонези вӑхӑчӗ + + CIT + Хӗвелтухӑҫ Индонези вӑхӑчӗ + + EIT + Анӑҫ Индонези вӑхӑчӗ + + WIT + @@ -2682,6 +5885,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Иран стандартлӑ вӑхӑчӗ Иран ҫуллахи вӑхӑчӗ + + IRST + IRST + IRST DST + @@ -2689,6 +5897,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Иркутск стандартлӑ вӑхӑчӗ Иркутск ҫуллахи вӑхӑчӗ + + IRKT + IRKT + IRKST + @@ -2696,6 +5909,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Израиль стандартлӑ вӑхӑчӗ Израиль ҫуллахи вӑхӑчӗ + + IST Israel + IST Israel + IDT + @@ -2703,16 +5921,47 @@ CLDR data files are interpreted according to the LDML specification (http://unic Япони стандартлӑ вӑхӑчӗ Япони ҫуллахи вӑхӑчӗ + + JST + JST + JST DST + + + + + Петропавловск-Камчаткăри вӑхӑчӗ + Петропавловск-Камчаткăри стандартлӑ вӑхӑчӗ + Петропавловск-Камчаткăри ҫуллахи вӑхӑчӗ + + + PETT + PETST + PETDT + + + + + Казахстан вӑхӑчӗ + + + Казахстан вхч + Хӗвелтухӑҫ Казахстан вӑхӑчӗ + + Хӗвелтухӑҫ Казахстан вхч + Анӑҫ Казахстан вӑхӑчӗ + + Анӑҫ Казахстан вхч + @@ -2720,11 +5969,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic Корей стандартлӑ вӑхӑчӗ Корей ҫуллахи вӑхӑчӗ + + KST + KST + KST DST + Косрае вӑхӑчӗ + + KOST + @@ -2732,16 +5989,35 @@ CLDR data files are interpreted according to the LDML specification (http://unic Красноярск стандартлӑ вӑхӑчӗ Красноярск ҫуллахи вӑхӑчӗ + + KRAT + KRAT + KRAST + Киргизи вӑхӑчӗ + + KGT + + + + + Ланка вӑхӑчӗ + + + SLST + Лайн утравӗсен вӑхӑчӗ + + LINT + @@ -2749,6 +6025,23 @@ CLDR data files are interpreted according to the LDML specification (http://unic Лорд-Хау стандартлӑ вӑхӑчӗ Лорд-Хау ҫуллахи вӑхӑчӗ + + LHST + LHST + LHST Summer + + + + + Макао вӑхӑчӗ + Макао стандартлӑ вӑхӑчӗ + Макао ҫуллахи вӑхӑчӗ + + + MST Macao + MST Macao + MST Macao DST + @@ -2756,26 +6049,43 @@ CLDR data files are interpreted according to the LDML specification (http://unic Магадан стандартлӑ вӑхӑчӗ Магадан ҫуллахи вӑхӑчӗ + + MAGT + MAGT + MAGST + Малайзи вӑхӑчӗ + + MYT + Мальдивсем вӑхӑчӗ + + MVT + Маркизас утравӗсен вӑхӑчӗ + + MART + Маршалл утравӗсен вӑхӑчӗ + + MHT + @@ -2783,11 +6093,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic Маврикий стандартлӑ вӑхӑчӗ Маврикий ҫуллахи вӑхӑчӗ + + MUT + MUT + MUST + Моусон вӑхӑчӗ + + MAWT + @@ -2795,6 +6113,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Мексика Лӑпкӑ океан стандартлӑ вӑхӑчӗ Мексика Лӑпкӑ океан ҫуллахи вӑхӑчӗ + + PSTM + PSTM + PDTM + @@ -2802,6 +6125,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Улан-Батор стандартлӑ вӑхӑчӗ Улан-Батор ҫуллахи вӑхӑчӗ + + ULAT + ULAT + ULAST + @@ -2809,21 +6137,35 @@ CLDR data files are interpreted according to the LDML specification (http://unic Мускав стандартлӑ вӑхӑчӗ Мускав ҫуллахи вӑхӑчӗ + + MSK + МСК + MSD + Мьянма вӑхӑчӗ + + MMT + Науру вӑхӑчӗ + + NRT + Непал вӑхӑчӗ + + NPT + @@ -2831,6 +6173,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ҫӗнӗ Каледони стандартлӑ вӑхӑчӗ Ҫӗнӗ Каледони ҫуллахи вӑхӑчӗ + + NCT + NCT + NDT New Caledonia + @@ -2838,6 +6185,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ҫӗнӗ Зеланди стандартлӑ вӑхӑчӗ Ҫӗнӗ Зеланди ҫуллахи вӑхӑчӗ + + NZST + NZST + NZDT + @@ -2845,11 +6197,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ньюфаундленд стандартлӑ вӑхӑчӗ Ньюфаундленд ҫуллахи вӑхӑчӗ + + NST + NST + NDT + Ниуэ вӑхӑчӗ + + NUT + @@ -2857,6 +6217,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Норфолк стандартлӑ вӑхӑчӗ Норфолк ҫуллахи вӑхӑчӗ + + NFT + NFT + NFDT + @@ -2864,6 +6229,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic Фернанду-ди-Норонья стандартлӑ вӑхӑчӗ Фернанду-ди-Норонья ҫуллахи вӑхӑчӗ + + FNT + FNT + FNST + + + + + Мариансен ҫурҫӗрти утравӗсем вӑхӑчӗ + + + ChST NMI + @@ -2871,6 +6249,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Новосибирск стандартлӑ вӑхӑчӗ Новосибирск ҫуллахи вӑхӑчӗ + + NOVT + NOVT + NOVST + @@ -2878,6 +6261,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Омск стандартлӑ вӑхӑчӗ Омск ҫуллахи вӑхӑчӗ + + OMST + OMST + OMSST + @@ -2885,16 +6273,27 @@ CLDR data files are interpreted according to the LDML specification (http://unic Пакистан стандартлӑ вӑхӑчӗ Пакистан ҫуллахи вӑхӑчӗ + + PKT + PKT + PKT DST + Палау вӑхӑчӗ + + PWT + Папуа — Ҫӗнӗ Гвиней вӑхӑчӗ + + PGT + @@ -2902,6 +6301,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Парагвай стандартлӑ вӑхӑчӗ Парагвай ҫуллахи вӑхӑчӗ + + PYT + PYT + PYST + @@ -2909,6 +6313,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Перу стандартлӑ вӑхӑчӗ Перу ҫуллахи вӑхӑчӗ + + PET + PET + EDT Peru + @@ -2916,11 +6325,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic Филиппинсем стандартлӑ вӑхӑчӗ Филиппинсем ҫуллахи вӑхӑчӗ + + PST Philippine + PST Philippine + PST Philippine DST + Феникс вӑхӑчӗ + + PHOT + @@ -2928,31 +6345,63 @@ CLDR data files are interpreted according to the LDML specification (http://unic Сен-Пьер тата Микелон стандартлӑ вӑхӑчӗ Сен-Пьер тата Микелон ҫуллахи вӑхӑчӗ + + PMST + PMST + PMDT + Питкэрн вӑхӑчӗ + + PST Pitcairn + Понпеи вӑхӑчӗ + + PONT + Пхеньян + + PYT Korea + + + + + Кызылорда вӑхӑчӗ + Кызылорда стандартлӑ вӑхӑчӗ + Кызылорда ҫуллахи вӑхӑчӗ + + + QYZT + QYZT + QYZT DST + Реюньон вӑхӑчӗ + + RET + Ротера вӑхӑчӗ + + ROTT + @@ -2960,6 +6409,23 @@ CLDR data files are interpreted according to the LDML specification (http://unic Сахалин стандартлӑ вӑхӑчӗ Сахалин ҫуллахи вӑхӑчӗ + + SAKT + SAKT + SAKST + + + + + Самар вӑхӑчӗ + Самар стандартлӑ вӑхӑчӗ + Самар ҫуллахи вӑхӑчӗ + + + SAMT + SAMT + SAMST + @@ -2967,41 +6433,67 @@ CLDR data files are interpreted according to the LDML specification (http://unic Самоа стандартлӑ вӑхӑчӗ Самоа ҫуллахи вӑхӑчӗ + + SST Samoa + SST Samoa + SST Samoa DST + Сейшел утравӗсен вӑхӑчӗ + + SCT + Сингапур вӑхӑчӗ + + SGT + Соломон вӑхӑчӗ + + SBT + Кӑнтӑр Георги вӑхӑчӗ + + GST + Суринам вӑхӑчӗ + + SRT + Сёва вӑхӑчӗ + + SYOT + Таити вӑхӑчӗ + + TAHT + @@ -3009,16 +6501,27 @@ CLDR data files are interpreted according to the LDML specification (http://unic Тайпей стандартлӑ вӑхӑчӗ Тайпей ҫуллахи вӑхӑчӗ + + TWT + TWT + TWT DST + Таджикистан вӑхӑчӗ + + TJT + Токелау вӑхӑчӗ + + TKT + @@ -3026,11 +6529,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic Тонга стандартлӑ вӑхӑчӗ Тонга ҫуллахи вӑхӑчӗ + + TOT + TOT + TOST + Трук вӑхӑчӗ + + CHUT + @@ -3038,11 +6549,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic Туркменистан стандартлӑ вӑхӑчӗ Туркменистан ҫуллахи вӑхӑчӗ + + TMT + TMT + TMT DST + Тувалу вӑхӑчӗ + + TVT + @@ -3050,6 +6569,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Уругвай стандартлӑ вӑхӑчӗ Уругвай ҫуллахи вӑхӑчӗ + + UYT + UYT + UYST + @@ -3057,6 +6581,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Узбекистан стандартлӑ вӑхӑчӗ Узбекистан ҫуллахи вӑхӑчӗ + + UZT + UZT + UZT DST + @@ -3064,11 +6593,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic Вануату стандартлӑ вӑхӑчӗ Вануату ҫуллахи вӑхӑчӗ + + VUT + VUT + VUT DST + Венесуэла вӑхӑчӗ + + VnzlT + @@ -3076,6 +6613,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Владивосток стандартлӑ вӑхӑчӗ Владивосток ҫуллахи вӑхӑчӗ + + VLAT + VLAT + VLAST + @@ -3083,21 +6625,35 @@ CLDR data files are interpreted according to the LDML specification (http://unic Волгоград стандартлӑ вӑхӑчӗ Волгоград ҫуллахи вӑхӑчӗ + + VOLT + VOLT + VOLST + Восток вӑхӑчӗ + + VOST + Уэйк вӑхӑчӗ + + WAKT + Уоллис тата Футуна вӑхӑчӗ + + WFT + @@ -3105,6 +6661,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Якутск стандартлӑ вӑхӑчӗ Якутск ҫуллахи вӑхӑчӗ + + YAKT + YAKT + YAKST + @@ -3112,11 +6673,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic Екатеринбург стандартлӑ вӑхӑчӗ Екатеринбург ҫуллахи вӑхӑчӗ + + YEKT + YEKT + YEKST + Юкон вӑхӑчӗ + + YST + @@ -3125,6 +6694,40 @@ CLDR data files are interpreted according to the LDML specification (http://unic ,   + + + + 0 пин + 00 пин + 000 пин + 0 миллион + 00 миллион + 000 миллион + 0 миллиард + 00 миллиард + 000 миллиард + 0 триллион + 00 триллион + 000 триллион + + + + + 0 пин + 00 пин + 000 пин + 0 млн + 00 млн + 000 млн + 0 млрд + 00 млрд + 000 млрд + 0 трлн + 00 трлн + 000 трлн + + + @@ -3138,15 +6741,42 @@ CLDR data files are interpreted according to the LDML specification (http://unic #,##0.00 ¤ - {0} {1} + + + 0 пин ¤ + 00 пин ¤ + 000 пин ¤ + 0 млн ¤ + 00 млн ¤ + 000 млн ¤ + 0 млрд ¤ + 00 млрд ¤ + 000 млрд ¤ + 0 трлн ¤ + 00 трлн ¤ + 000 трлн ¤ + + + + Андорра песийӗ + Андорра песийӗ + АПЭ дирхамӗ + + Афган афганийӗ (1927–2002) + Афган афганийӗ (1927–2002) + афганийӗ + + Албани лек + Албани лек + Албани лекӗ @@ -3159,30 +6789,98 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ангола кванзӗ + + Ангола кванзӗ (1977–1991) + Ангола кванзӗ (1977–1991) + + + Ангола ҫӗнӗ кванзӗ (1990–2000) + Ангола ҫӗнӗ кванзӗ (1990–2000) + + + Ангола деноминаци хыҫҫӑн кванзӗ (1995–1999) + Ангола деноминаци хыҫҫӑн кванзӗ (1995–1999) + + + Аргентин аусталӗ + Аргентин аусталӗ + + + Аргентин песийӗ лей (1970–1983) + Аргентин песийӗ лей (1970–1983) + + + Аргентин песийӗ (1881–1970) + Аргентин песийӗ (1881–1970) + + + Аргентин песийӗ (1983–1985) + Аргентин песийӗ (1983–1985) + Аргентина песийӗ + + Австри шиллинг + Австри шиллинг + Австрали долларӗ Аруба флоринӗ + + Азербайджан маначӗ (1993–2006) + Азербайджан маначӗ (1993–2006) + Азербайджан маначӗ + + Боснипе Герцеговина динар (1992–1994) + Боснипе Герцеговина динар (1992–1994) + Боснипе Герцеговина конвертланакан марки + + Боснипе Герцеговина ҫӗнӗ динар (1994–1997) + Боснипе Герцеговина ҫӗнӗ динар (1994–1997) + Барбадос долларӗ Бангладеш таки + + Бельги конвертланакан франк + Бельги конвертланакан франк + + + Бельги франк + Бельги франк + + + Бельги франк (финанс) + Бельги франк (финанс) + + + Болгари хытӑ левӗ + Болгари хытӑ левӗ + + + Болгари социалистсен левӗ + Болгари социалистсен левӗ + Болгари левӗ + + Болгари левӗ (1879–1952) + Болгари левӗ (1879–1952) + Бахрейн динарӗ @@ -3198,22 +6896,70 @@ CLDR data files are interpreted according to the LDML specification (http://unic Боливи боливианӗ + + Боливи боливианӗ (1863–1963) + Боливи боливианӗ (1863–1963) + + + Боливи песийӗ + Боливи песийӗ + + + Боливи мвдол + Боливи мвдол + + + Бразили ҫӗнӗ крузейро (1967–1986) + Бразили ҫӗнӗ крузейро (1967–1986) + + + Бразили крузадо + Бразили крузадо + + + Бразили крузейро (1990–1993) + Бразили крузейро (1990–1993) + Бразили реалӗ + + Бразили ҫӗнӗ крузадо (1989–1990) + Бразили ҫӗнӗ крузадо (1989–1990) + + + Бразили крузейро (1993–1994) + Бразили крузейро (1993–1994) + + + Бразили крузейро (1942–1967) + Бразили крузейро (1942–1967) + Багам долларӗ Бутан нгултрумӗ + + Бирман кьят + Бирман кьят + Ботсвана пули + + Белорусси тенкӗ (1994–1999) + Белорусси тенкӗ (1994–1999) + Беларуҫ тенкӗ Беларуҫ тенки + + Белорусси тенкӗ (2000–2016) + Белорусси тенкӗ (2000–2016) + Белиз долларӗ @@ -3223,24 +6969,56 @@ CLDR data files are interpreted according to the LDML specification (http://unic Конголези франкӗ + + WIR евро + WIR евро + Швейцари франкӗ + + WIR франк + WIR франк + + + Чили эскудо + Чили эскудо + + + Чили расчет единици (UF) + Чили расчет единици (UF) + Чили песийӗ Китай офшор юанӗ + + Китай халӑх банкӗн доллар + Китай халӑх банкӗн доллар + Китай юанӗ Колумби песийӗ + + Колумби чӑн тивĕçлĕ единици + Колумби чӑн тивĕçлĕ единици + Коста-Рика колонӗ + + Серби динарӗ (2002–2006) + Серби динарӗ (2002–2006) + + + Чехословак хытӑ кронӗ + Чехословак хытӑ кронӗ + Куба конвертланакан песийӗ @@ -3250,9 +7028,21 @@ CLDR data files are interpreted according to the LDML specification (http://unic Кабо-Верде эскудӗ + + Кипр фунчӗ + Кипр фунчӗ + Чехи кронӗ + + Хӗвелтухӑҫ Германи марки + Хӗвелтухӑҫ Германи марки + + + Германи марки + Германи марки + Джибути франкӗ @@ -3265,30 +7055,70 @@ CLDR data files are interpreted according to the LDML specification (http://unic Алжир динарӗ + + Эквадор сукре + Эквадор сукре + + + Эквадор яланхи хаклӑхӑн единици + Эквадор яланхи хаклӑхӑн единици + + + Эстон кронӗ + Эстон кронӗ + Египет фунчӗ Эритрей накфӗ + + Испани песета (А) + Испани песета (А) + + + Испани конвертланакан песета + Испани конвертланакан песета + + + Испани песета + Испани песета + Эфиопи бырӗ евро + + Фин марка + Фин марка + Фиджи долларӗ Факланд утравӗсен фунчӗ + + Француз франк + Француз франк + Британи фунчӗ + + Грузин купон + Грузин купон + Грузи ларийӗ + + Гана седи (1979–2007) + Гана седи (1979–2007) + Гана седийӗ @@ -3301,9 +7131,29 @@ CLDR data files are interpreted according to the LDML specification (http://unic Гвиней франкӗ + + Гвиней сили + Гвиней сили + + + Экваториаллă Гвиней эквель + Экваториаллă Гвиней эквель + + + Грек драхми + Грек драхма + Гватемала кетсалӗ + + Гвиней-Бисау эскудо + Гвиней-Бисау эскудо + + + Гвиней-Бисау песийӗ + Гвиней-Бисау песийӗ + Гайана долларӗ @@ -3313,6 +7163,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic Гондурас лемпирӗ + + Хорват динар + Хорват динар + Хорвати куни @@ -3325,6 +7179,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic Индонези рупийӗ + + Ирланди фунчӗ + Ирланди фунчӗ + + + Израиль фунчӗ + Израиль фунчӗ + + + Израиль шекель (1980–1985) + Израиль шекель (1980–1985) + Ҫӗнӗ Израиль шекелӗ @@ -3337,9 +7203,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic Иран риалӗ + + Исланди кронӗ (1918–1981) + Исланди кронӗ (1918–1981) + Исланди кронӗ + + Итали лира + Итали лира + Ямайка долларӗ @@ -3364,6 +7238,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic КХДР вони + + Корей хван + Корей хван + + + Корей вони (1945–1953) + Корей вони (1945–1953) + Корей вони @@ -3391,21 +7273,73 @@ CLDR data files are interpreted according to the LDML specification (http://unic Лесото лотийӗ + + Литва лит + Литва лит + + + Литва талон + Литва талон + + + Люксембург конвертланакан франк + Люксембург конвертланакан франк + + + Люксембург франк + Люксембург франк + + + Люксембург финанс франк + Люксембург финанс франк + + + Латви лат + Латви лат + + + Латви тенкĕ + Латви тенкĕ + Ливи динарӗ Марокко дирхамӗ + + Марокко франк + Марокко франк + + + Монако франк + Монако франк + + + Молдова купон + Молдова купон + Молдова лайӗ Малагаси ариарийӗ + + Малагаси франк + Малагаси франк + Македони денарӗ + + Македони динар (1992–1993) + Македони динар (1992–1993) + + + Мали франк + Мали франк + Мьянман кьятӗ @@ -3415,12 +7349,28 @@ CLDR data files are interpreted according to the LDML specification (http://unic Макао патаки + + Мавритани угийӗ (1973–2017) + Мавритани угийӗ (1973–2017) + Мавритани угийӗ + + Мальта лира + Мальта лира + + + Мальта фунчӗ + Мальта фунчӗ + Маврики рупийӗ + + Мальдив рупийӗ (1947–1981) + Мальдив рупийӗ (1947–1981) + Мальдивсен руфийӗ @@ -3430,9 +7380,25 @@ CLDR data files are interpreted according to the LDML specification (http://unic Мексика песийӗ + + Мексика кӗмӗл песийӗ (1861–1992) + Мексика кӗмӗл песийӗ (1861–1992) + + + Мексика инвестици единици (UDI) + Мексика инвестици единици (UDI) + Малайзи ринггичӗ + + Мозамбик эскудо + Мозамбик эскудо + + + Мозамбик метикал (1980–2006) + Мозамбик метикал (1980–2006) + Мозамбик метикалӗ @@ -3442,9 +7408,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic Нигери найрӗ + + Никарагуа кордобӗ (1988–1991) + Никарагуа кордобӗ (1988–1991) + Никарагуа кордобӗ + + Нидерланд гульден + Нидерланд гульден + Норвеги кронӗ @@ -3460,9 +7434,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic Панама бальбоа + + Перу инти + Перу инти + Перу солӗ + + Перу соль (1863–1965) + Перу соль (1863–1965) + Папуа – Ҫӗнӗ Гвиней кини @@ -3475,12 +7457,28 @@ CLDR data files are interpreted according to the LDML specification (http://unic Польша злотыйӗ + + Польша злотыйӗ (1950–1995) + Польша злотыйӗ (1950–1995) + + + Португали эскудо + Португали эскудо + Парагвай гуаранӗ Катар риалӗ + + Родези доллар + Родези доллар + + + Румыни лейӗ (1952–2006) + Румыни лейӗ (1952–2006) + Румыни лейӗ @@ -3492,6 +7490,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic Раҫҫей тенки + + Раҫҫей тенкӗ (1991–1998) + Раҫҫей тенки (1991–1998) + Руанда франкӗ @@ -3504,9 +7506,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic Сейшел рупийӗ + + Судан динар (1992–2007) + Судан динар (1992–2007) + Судан фунчӗ + + Судан фунчӗ (1957–1998) + Судан фунчӗ (1957–1998) + Швеци кронӗ @@ -3516,6 +7526,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic Сӑваплӑ Елена утравӗн фунчӗ + + Словени толар + Словени толар + + + Словак кронӗ + Словак кронӗ + леонӗ @@ -3528,12 +7546,28 @@ CLDR data files are interpreted according to the LDML specification (http://unic Суринам долларӗ + + Суринам гульден + Суринам гульден + Кӑнтӑр Судан фунчӗ + + Сан-Томе и Принсипи добра + Сан-Томе и Принсипи добра + Сан-Томе тата Принсипи добрӗ + + Совет тенкӗ + Совет тенки + + + Сальвадор колон + Сальвадор колон + Сири фунчӗ @@ -3543,9 +7577,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic Таиланд барӗ + + Таджик тенкӗ + Таджик тенки + Таджик сомонийӗ + + Туркмен маначӗ (1993–2009) + Туркмен маначӗ (1993–2009) + Туркмен маначӗ @@ -3555,6 +7597,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic Тонган паанги + + Тимор эскудо + Тимор эскудо + + + Турци лира (1922–2005) + Турци лира (1922–2005) + Турци лири @@ -3570,6 +7620,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic Украина гривни + + Украина карбованец + Украина карбованец + + + Уганда шиллинг (1966–1987) + Уганда шиллинг (1966–1987) + Уганда шиллингӗ @@ -3577,18 +7635,54 @@ CLDR data files are interpreted according to the LDML specification (http://unic АПШ долларӗ $ + + АПШ долларӗ ыранхи кун + АПШ долларӗ ыранхи кун + + + АПШ долларӗ паянхи кун + АПШ долларӗ паянхи кун + + + Уругвай песийӗ (индексаци хыҫҫӑн единици) + Уругвай песийӗ (индексаци хыҫҫӑн единици) + + + Уругвай песийӗ (1975–1993) + Уругвай песийӗ (1975–1993) + Уругвай песийӗ + + Уругвай номиналлӑ индексаци единици + Уругвай номиналлӑ индексаци единици + Узбек сумӗ + + Венесуэла боливарӗ (1871–2008) + Венесуэла боливарӗ (1871–2008) + + + Суверенлă боливарӗ + Суверенлă боливарӗ + + + Венесуэль боливарӗ (2008–2018) + Венесуэль боливарӗ (2008–2018) + Венесуэла боливарӗ Вьетнам донгӗ + + Вьетнам донг (1978–1985) + Вьетнам донг (1978–1985) + Вануату ватуйӗ @@ -3598,27 +7692,143 @@ CLDR data files are interpreted according to the LDML specification (http://unic Тӗп Африка КФА франкӗ + + кӗмӗл + Трой унци кӗмӗл + + + ылтӑн + Трой унци ылтӑн + + + Европа хутлă единици + Европа хутлă единици + + + Европа укҫа единици + Европа укҫа единици + + + Европа расчет единицисем (XBС) + Европа расчет единицисем (XBС) + + + Европа расчет единицисем (XBD) + Европа расчет единицисем (XBD) + Хӗвелтухӑҫ Карибсем долларӗ + + Кариб гульден + Кариб гульден + + + ятарлӑ заемлени прависем (СДР) + ятарлӑ заемлени прависем (СДР) + + + Европа валюта единици + Европа валюта единици + + + Франци ылтӑн франк + Франци ылтӑн франк + + + Франци UIC-франк + Франци UIC-франк + КФА ВСЕАО франкӗ + + паллади + Трой унци паллади + Франци Лӑпкӑ океан франкӗ + + платина + Трой унци платина + + + RINET фонд единици + RINET фонд единици + + + сукре + сукре + + + тĕрĕслев валют код + тĕрĕслев валют код + + + ADB расчет единици + ADB расчет единици + паллӑ мар валюта + + Йемен динар + Йемен динар + Йемен риалӗ + + Югослави хытӑ динарӗ (1966–1990) + Югослави хытӑ динарӗ (1966–1990) + + + Югослави ҫӗнӗ динарӗ (1994–2002) + Югослави ҫӗнӗ динарӗ (1994–2002) + + + Югослави конвертланакан динарӗ (1990–1992) + Югослави конвертланакан динарӗ (1990–1992) + + + Югослави реформӑланӑ динарӗ (1992–1993) + Югослави реформӑланӑ динарӗ (1992–1993) + + + Кӑнтӑр Африка рэндӗ (финанс) + Кӑнтӑр Африка рэндӗ (финанс) + Кӑнтӑр Африка рэндӗ + + Замби квачи (1968–2012) + Замби квачи (1968–2012) + Замби квачи + + Ҫӗнӗ заир (1993–1998) + Ҫӗнӗ заир (1993–1998) + + + Заир (1971–1993) + Заир (1971–1993) + + + Зимбабве доллар (1980–2008) + Зимбабве доллар (1980–2008) + + + Зимбабве доллар (2009) + Зимбабве доллар (2009) + + + Зимбабве доллар (2008) + Зимбабве доллар (2008) + ≈{0} @@ -3630,6 +7840,864 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + деци{0} + + + санти{0} + + + милли{0} + + + микро{0} + + + нано{0} + + + пико{0} + + + фемто{0} + + + атто{0} + + + зепто{0} + + + иокто{0} + + + ронто{0} + + + квекто{0} + + + дека{0} + + + гекто{0} + + + кило{0} + + + мега{0} + + + гига{0} + + + тера{0} + + + пета{0} + + + экса{0} + + + зетта{0} + + + иотта{0} + + + ронна{0} + + + кветта{0} + + + киби{0} + + + меби{0} + + + гиби{0} + + + теби{0} + + + пеби{0} + + + эксби{0} + + + зеби{0} + + + йоби{0} + + + тӑваткал {0} + + + кубла {0} + + + ирĕклĕн ӳкнин хăвăртланăвĕ + {0} ирĕклĕн ӳкнин хăвăртланăвĕ + + + тӑваткал ҫеккунтра метр + тӑваткал ҫеккунтра {0} метр + + + çавра + {0} çавра + + + радиан + {0} радиан + + + градус + {0} градус + + + кĕтесле минут + {0} кĕтесле минут + + + кĕтесле çеккунт + {0} кĕтесле çеккунт + + + тӑваткал километр + {0} тӑваткал километр + {0}/тӑваткал километр + + + гектар + {0} гектар + + + тӑваткал метр + {0} тӑваткал метр + {0}/тӑваткал метр + + + тӑваткал сантиметр + {0} тӑваткал сантиметр + {0}/тӑваткал сантиметр + + + тӑваткал миля + {0} тӑваткал миля + {0}/тӑваткал миля + + + акр + {0} акр + + + тӑваткал ярд + {0} тӑваткал ярд + + + тӑваткал фут + {0} тӑваткал фут + + + тӑваткал дюйм + {0} тӑваткал дюйм + {0}/тӑваткал дюйм + + + дунам + {0} дунам + + + карат + {0} карат + + + децилитрӑ миллиграмм + {0} децилитрӑ миллиграмм + + + литрлӑх миллимоль + {0} литрлӑх миллимоль + + + объект + {0} объект + + + миллионмĕш пайĕ + {0} миллионмĕш пайĕ + + + процент + {0} процент + + + промиллĕ + {0} промиллĕ + + + промириад + {0} промириад + + + моль + {0} моль + + + километрлӑх литр + километрлӑх {0} литр + + + çĕр километрах литр + çĕр километрах {0} литр + + + галлон ҫине миля + {0} галлон ҫине миля + + + импери галлон ҫинче миля + {0} импери галлон ҫинче миля + + + петабайт + {0} петабайт + + + терабайт + {0} терабайт + + + терабит + {0} терабит + + + гигабайт + {0} гигабайт + + + гигабит + {0} гигабит + + + мегабайт + {0} мегабайт + + + мегабит + {0} мегабит + + + килобайт + {0} килобайт + + + килобит + {0} килобит + + + байт + {0} байт + + + бит + {0} бит + + + ӗмӗрсем + {0} ӗмӗрсем + + + вунҫуллӑх + {0} вунҫуллӑх + + + ҫулталӑксем + {0} ҫулталӑксем + {0} ҫулталӑкра + + + чӗрӗк + {0} чӗрӗк + {0}/чӗрӗк + + + уйăхсем + {0} уйӑхсем + {0}/уйӑх + + + эрне + {0} эрне + {0}/эрнере + + + кун + {0} кун + {0} кунне + + + сехет + {0} сехет + {0} сехетре + + + минут + {0} минут + {0} минутра + + + ҫеккунт + {0} ҫеккунт + {0}/ҫеккунтра + + + миллиҫеккунт + {0} миллиҫеккунт + + + микроҫеккунт + {0} микроҫеккунт + + + наноҫеккунт + {0} наноҫеккунт + + + ампер + {0} ампер + + + миллиампер + {0} миллиампер + + + ом + {0} ом + + + вольт + {0} вольт + + + килокалори + {0} килокалори + + + калори + {0} калори + + + килоджоуль + {0} килоджоуль + + + джоуль + {0} джоуль + + + киловатт-сехет + {0} киловатт-сехет + + + электронвольт + {0} электронвольт + + + британи ӑшӑ единици + {0} британи ӑшӑ единици + + + америка терм + {0} америка терм + + + кĕренке-вăй + {0} кĕренке-вăй + + + ньютон + {0} ньютон + + + çĕр километрах киловатт-сехет + çĕр километрах {0} киловатт-сехет + + + гигагерц + {0} гигагерц + + + мегагерц + {0} мегагерц + + + килогерц + {0} килогерц + + + герц + {0} герц + + + эм + {0} эм + + + пиксельсем + {0} пиксельсем + + + мегапиксельсем + {0} Мпкс + + + сантиметрпалан пиксель тачӑлӑхӗ + {0} сантиметрпалан пиксель тачӑлӑхӗ + + + дюймпалан пиксель тачӑлӑхӗ + {0} дюймпалан пиксель тачӑлӑхӗ + + + ҫӗр радиусӗ + {0} ҫӗр радиусӗ + + + километр + {0} км + {0}/километр + + + метр + {0} метр + {0}/метр + + + дециметр + {0} дециметр + + + сантиметр + {0} сантиметр + {0}/сантиметр + + + миллиметр + {0} миллиметр + + + микрометр + {0}микрометр + + + нанометр + {0} нанометр + + + пикометр + {0} пикометр + + + миля + {0} миля + + + ярд + {0} ярд + + + фут + {0} фут + {0}/фут + + + дюйм + {0} дюйм + {0}/дюйм + + + парçек + {0} парçек + + + çуттăн çулĕ + {0} çуттăн çулĕ + + + астрономилле пĕрчĕ + {0} астрономилле пĕрчĕ + + + фурлонгсем + {0} фурлонгсем + + + тинӗс чалӑш + {0} тинӗс чалӑш + + + тинӗс милли + {0} тинӗс милли + + + скандинави милли + {0} скандинави милли + + + типографи пункчӗ + {0} типографи пункчӗ + + + хӗвел радиусӗ + {0} хӗвел радиусӗ + + + люкс + {0} люкс + + + кандела + {0} кандела + + + люмен + {0} люмен + + + хĕвел çутатаслăхĕ + {0} хĕвел çутатаслăхĕ + + + метрикăлла тонна + {0} метрикăлла тонна + + + килограмм + {0} килограмм + {0}/килограмм + + + грамм + {0} грамм + {0}/грамм + + + миллиграмм + {0} миллиграмм + + + микрограмм + {0} микрограмм + + + америка тонна + {0} америка тонна + + + стоун + {0} стоун + + + кĕренке + {0} кĕренке + {0}/кĕренке + + + унци + {0} унци + {0}/унци + + + трой унци + {0} трой унци + + + метрикăлла карат + {0} метрикăлла карат + + + массăн атомла пĕрчи + {0} массăн атомла пĕрчи + + + Ҫӗр масси + {0} Ҫӗр масси + + + Хӗвел масси + {0} Хӗвел масси + + + гран + {0} гран + + + гигаватт + {0} гигаватт + + + мегаватт + {0} мегаватт + + + киловатт + {0} киловатт + + + ватт + {0} ватт + + + милливатт + {0} милливатт + + + лаша вӑйӗ + {0} лаша вӑйӗ + + + чĕркĕмĕл юпи миллиметр + чĕркĕмĕл юпи {0} миллиметр + + + тӑваткал дюйм кӗренке + тӑваткал дюйм {0} кӗренке + + + чĕркĕмĕл юпи дюйм + чĕркĕмĕл юпи {0} дюйм + + + бар + {0} бар + + + миллибар + {0} миллибар + + + физикăлла атмосфера + {0} физикăлла атмосфера + + + паскаль + {0} паскаль + + + гектопаскаль + {0} гектопаскаль + + + килопаскаль + {0} килопаскаль + + + мегапаскаль + {0} мегапаскаль + + + сехетре километр + сехетре {0} километр + + + ҫеккунтра метр + ҫеккунтра {0} метр + + + сехетре миля + сехетре {0} миля + + + тĕвĕ + {0} тĕвĕ + + + Бофорт шкали ҫинчи балл + {0} Бофорт шкали ҫинчи балл + + + Цельсий градусĕ + {0} Цельсий градусĕ + + + Фаренгейт градусĕ + {0} Фаренгейт градусĕ + + + Кельвин + {0} Кельвин + + + кĕренке-фут + {0} кĕренке-фут + + + ньютон-метр + {0} ньютон-метр + + + кубла километр + {0} кубла километр + + + кубла метр + {0} кубла метр + {0}/кубла метр + + + кубла сантиметр + {0} кубла сантиметр + {0}/кубла сантиметр + + + кубла милли + {0} кубла милли + + + кубла ярд + {0} кубла ярд + + + кубла фут + {0} кубла фут + + + кубла дюйм + {0} кубла дюйм + + + мегалитр + {0} мегалитр + + + гектолитр + {0} гектолитр + + + литр + {0} литр + {0}/литр + + + децилитр + {0} децилитр + + + сантилитр + {0} сантилитр + + + миллилитр + {0} миллилитр + + + пинт-метрлӑ + {0} пинт-метрлӑ + + + курка-метрлӑ + {0} курка-метрлӑ + + + акр-фут + {0} акр-фут + + + бушел + {0} бушел + + + галлон + {0} галлон + {0}/галлон + + + импери галлон + {0} импери галлон + {0}/импери галлон + + + кварт + {0} кварт + + + пинт + {0} пинт + + + чашӑк + {0} чашӑк + + + шӗвӗ унци + {0} шӗвӗ унци + + + импери шӗвӗ унци + {0} импери шӗвӗ унци + + + апат кашӑкӗ + {0} апат кашӑкӗ + + + чей кашӑкӗ + {0} чей кашӑкӗ + + + баррель + {0} баррель + + + пылак апат кашӑкӗ + {0} пылак апат кашӑкӗ + + + импери пылак апат кашӑкӗ + {0} импери пылак апат кашӑкӗ + + + тумлам + {0} тумлам + + + шĕвĕ драхма + {0} шĕвĕ драхма + + + чӗркке + {0} чӗркке + + + чĕптĕм + {0} чĕптĕм + + + импери кварт + {0} импери кварт + + + ҫутӑ хӑвӑртлӑхӗ + {0} ҫутӑ хӑвӑртлӑхӗ + + + миллиардмĕш пайĕ + {0} миллиардмĕш пайĕ + + + ҫӗрсем + {0} ҫӗрсем + {0}/ҫӗр + {0} хӗвелтухӑҫ тӑрӑхӗ {0} ҫурҫӗр тӑрӑхӗ @@ -3638,6 +8706,826 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + д{0} + + + с{0} + + + м{0} + + + мк{0} + + + н{0} + + + п{0} + + + ф{0} + + + а{0} + + + з{0} + + + и{0} + + + р{0} + + + кв{0} + + + да{0} + + + г{0} + + + к{0} + + + М{0} + + + Г{0} + + + Т{0} + + + П{0} + + + Э{0} + + + З{0} + + + И{0} + + + Р{0} + + + Кв{0} + + + Ки{0} + + + Ми{0} + + + Ги{0} + + + Ти{0} + + + Пи{0} + + + Эи{0} + + + Зи{0} + + + Йи{0} + + + g + {0}g + + + м/ҫ² + {0} м/ҫ² + + + çавра + {0} çавра + + + радиан + {0} радиан + + + градус + {0} градус + + + минут + {0} минут + + + çеккунт + {0} çеккунт + + + км² + {0} км² + {0}/км² + + + га + {0} га + + + м² + {0} м² + {0}/м² + + + см² + {0} см² + {0}/см² + + + ми² + {0} ми² + {0}/ми² + + + акр + {0} акр + + + ярд² + {0} ярд² + + + фт² + {0} фт² + + + дюйм² + {0} дюйм² + {0}/дюйм² + + + дунам + {0} дунам + + + карат + {0} карат + + + мг/дл + {0} мг/дл + + + ммоль/л + {0} ммоль/л + + + объект + {0} объект + + + моль + {0} моль + + + л/км + {0} л/км + + + л/100 км + {0} л/100 км + + + ми/гал + {0} ми/гал + + + мили/имп. гал + {0} ми/имп. гал + + + Пбайт + {0} Пбайт + + + Тбайт + {0} Тбайт + + + Тбит + {0} Тбит + + + Гбайт + {0} Гбайт + + + Гбит + {0} Гбит + + + Мбайт + {0} Мбайт + + + Мбит + {0} Мбит + + + Кбайт + {0} Кбайт + + + кбит + {0} кбит + + + байт + {0} байт + + + бит + {0} бит + + + ӗмӗр + {0} ӗмӗр + + + вунҫул + {0} вунҫул + + + ҫулсем + {0} ҫулсем + {0}/ҫул + + + чӗрӗк + {0} чӗрӗк + {0}/чӗрӗк + + + уйӑх + {0} уйӑх + {0}/уйӑх + + + эрне + {0} эрне + {0}/эрне + + + кун + {0} кун + {0}/кун + + + сехет + {0} сехет + {0}/сехет + + + мин + {0} мин + {0}/мин + + + ҫ + {0} ҫ + {0}/ҫ + + + мҫ + {0} мҫ + + + мкҫ + {0} мкҫ + + + нҫ + {0} нҫ + + + А + {0} А + + + мА + {0} мА + + + Ом + {0} Ом + + + В + {0} В + + + ккал + {0} ккал + + + кал + {0} кал + + + кДж + {0} кДж + + + Дж + {0} Дж + + + КВт⋅сехет + {0} КВт⋅сехет + + + эВ + {0} эВ + + + БӐЕ + {0} БӐЕ + + + АПШ терм + {0} АПШ терм + + + кĕренке-вăй + {0} кĕренке-вăй + + + Н + {0} Н + + + кВт⋅ч/100 км + {0} кВт⋅ч/100 км + + + ГГц + {0} ГГц + + + МГц + {0} МГц + + + кГц + {0} кГц + + + Гц + {0} Гц + + + эм + {0} эм + + + пиксельсем + {0} пкс + + + мегапиксельсем + {0} Мпкс + + + пкс/см + {0} пкс/см + + + пкс/дюйм + {0} пкс/дюйм + + + ҫӗр радиусӗ + {0} ҫӗр радиусӗ + + + км + {0} км + {0}/км + + + м + {0} м + {0}/м + + + дм + {0} дм + + + см + {0} см + {0}/см + + + мм + {0} мм + + + мкм + {0} мкм + + + нм + {0} нм + + + пм + {0} пм + + + ми + {0} ми + + + ярд + {0} ярд + + + фт + {0} фт + {0}/фт + + + дюйм + {0} дюйм + {0}/дюйм + + + пк + {0} пк + + + çуттăн çулĕ + {0} çуттăн çулĕ + + + а.п. + {0} а.п. + + + фурлонгсем + {0} фрл + + + тинӗс чалӑш + {0} тинӗс чалӑш + + + тнс.ми + {0} тинӗс милли + + + ск.ми + {0} ск.ми + + + пкт + {0} пкт + + + хӗвел радиусӗ + {0} хӗвел радиусӗ + + + лк + {0} лк + + + кд + {0} кд + + + лм + {0} лм + + + тонна + {0} тонна + + + кг + {0} кг + {0}/кг + + + г + {0} г + {0}/г + + + мг + {0} мг + + + мкг + {0} мкг + + + амер. тонна + {0} амер. тонна + + + стоун + {0} стоун + + + кĕренке + {0} кĕренке + {0}/кĕренке + + + унци + {0} унци + {0}/унци + + + трой унци + {0} трой унци + + + карат + {0} карат + + + дальтон + {0} дальтон + + + Ҫӗр масси + {0} Ҫӗр масси + + + Хӗвел масси + {0} Хӗвел масси + + + гран + {0} гран + + + ГВт + {0} ГВт + + + МВт + {0} МВт + + + КВт + {0} КВт + + + Вт + {0} Вт + + + мВт + {0} мВт + + + л.в. + {0} л.в. + + + чĕркĕмĕл юпи мм + чĕркĕмĕл юпи {0} мм + + + дюйм² кӗренке + дюйм² {0} кӗренке + + + чĕркĕмĕл юпи дюйм + чĕркĕмĕл юпи {0} дюйм + + + бар + {0} бар + + + мбар + {0} мбар + + + атмосфера + {0} атмосфера + + + Па + {0} Па + + + гПа + {0} гПа + + + кПа + {0} кПа + + + МПа + {0} МПа + + + км/сехет + {0} км/сехет + + + м/ҫ + {0} м/ҫ + + + ми/сехет + {0} ми/сехет + + + тĕвĕ + {0} тĕвĕ + + + Бофорт балл + {0} Бофорт балл + + + К + {0} К + + + кĕренке-фут + {0} кĕренке-фут + + + Н⋅м + {0} Н⋅м + + + км³ + {0} км³ + + + м³ + {0} м³ + {0}/м³ + + + см³ + {0} см³ + {0}/см³ + + + ми³ + {0} ми³ + + + ярд³ + {0} ярд³ + + + фт³ + {0} фт³ + + + дюйм³ + {0} дюйм³ + + + мегалитр + {0} мегалитр + + + гл + {0} гл + + + л + {0} л + {0}/л + + + дл + {0} дл + + + сл + {0} сл + + + мл + {0} мл + + + мпт + {0} мпт + + + курка-метрлӑ + {0} курка-метрлӑ + + + акр-фут + {0} акр-фут + + + буш. + {0} буш. + + + гал. + {0} гал. + {0}/гал. + + + импери галлон + {0} импери галлон + {0}/импери галлон + + + кварт + {0} кварт + + + пинт + {0} пинт + + + чашӑк + {0} чашӑк + + + шӗвӗ унци + {0} шӗвӗ унци + + + импери шӗвӗ унци + {0} импери шӗвӗ унци + + + апат кашӑкӗ + {0} апат кашӑкӗ + + + чей кашӑкӗ + {0} чей кашӑкӗ + + + барр. + {0} барр. + + + плк.апат кшк. + {0} плк.апат кшк. + + + имп. пылак апат кашӑкӗ + {0} имп.пылак апат кашӑкӗ + + + тумлам + {0} тумлам + + + шĕвĕ драхма + {0} шĕвĕ драхма + + + чӗркке + {0} чӗркке + + + чĕптĕм + {0} чĕптĕм + + + импери кварт + {0} импери кварт + + + ҫутӑ хӑвӑрт + {0} ҫутӑ хӑвӑрт + + + ҫӗрсем + {0} ҫӗрсем + {0}/ҫӗр + енӗ {0} х. т. @@ -3646,6 +9534,827 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} а. т. + + + д{0} + + + с{0} + + + м{0} + + + мк{0} + + + н{0} + + + п{0} + + + ф{0} + + + а{0} + + + з{0} + + + и{0} + + + р{0} + + + кв{0} + + + да{0} + + + г{0} + + + к{0} + + + М{0} + + + Г{0} + + + Т{0} + + + П{0} + + + Э{0} + + + З{0} + + + И{0} + + + Р{0} + + + Кв{0} + + + Ки{0} + + + Ми{0} + + + Ги{0} + + + Ти{0} + + + Пи{0} + + + Эи{0} + + + Зи{0} + + + Йи{0} + + + g + {0}g + + + м/ҫ² + {0} м/ҫ² + + + çавра + {0} çавра + + + рад + {0} рад + + + градус + + + минут + {0} минут + + + çеккунт + {0} çеккунт + + + км² + {0} км² + {0}/км² + + + га + {0} га + + + м² + {0} м² + {0}/м² + + + см² + {0} см² + {0}/см² + + + ми² + {0} ми² + {0}/ми² + + + акр + {0} акр + + + ярд² + {0} ярд² + + + фт² + {0} фт² + + + дюйм² + {0} дюйм² + {0}/дюйм² + + + дунам + {0} дунам + + + кар + {0} кар + + + мг/дл + {0} мг/дл + + + ммоль/л + {0} ммоль/л + + + объект + {0} объект + + + моль + {0} моль + + + л/км + {0} л/км + + + л/100 км + {0} л/100 км + + + ми/гал + {0} ми/гал + + + ми/имп. гал + {0} ми/имп. гал + + + Пб + {0} Пб + + + Тб + {0} Тб + + + Тбит + {0} Тбит + + + Гб + {0} Гб + + + Гбит + {0} Гбит + + + Мб + {0} Мб + + + Мбит + {0} Мбит + + + Кб + {0} Кб + + + кбит + {0} кбит + + + Б + {0} Б + + + бит + {0} бит + + + ӗмӗр + {0} ӗмӗр + + + внҫл + {0} внҫл + + + ҫул. + {0} ҫул. + {0}/ҫул + + + чрк + {0} чрк + {0}/чрк + + + уйӑх + {0} уйӑх + {0}/уйӑх + + + эрн. + {0} эрн. + {0}/эрн. + + + к. + {0} к. + {0}/к. + + + схт + {0} схт + {0}/схт + + + мин + {0} мин + {0}/мин + + + ҫ + {0} ҫ + {0}/ҫ + + + мҫ + {0} мҫ + + + мкҫ + {0} мкҫ + + + нҫ + {0} нҫ + + + А + {0} А + + + мА + {0} мА + + + Ом + {0} Ом + + + В + {0} В + + + ккал + {0} ккал + + + кал + {0} кал + + + кДж + {0} кДж + + + Дж + {0} Дж + + + КВт⋅схт + {0} КВт⋅схт + + + эВ + {0} эВ + + + БӐЕ + {0} БӐЕ + + + АПШ терм + {0} АПШ терм + + + крнк-вăй + {0} крнк-вăй + + + Н + {0} Н + + + кВт⋅ч/100 км + {0} кВт⋅ч/100 км + + + ГГц + {0} ГГц + + + МГц + {0} МГц + + + кГц + {0} кГц + + + Гц + {0} Гц + + + эм + {0} эм + + + пкс + {0} пкс + + + Мпкс + {0} Мпкс + + + пкс/см + {0} пкс/см + + + пкс/дюйм + {0} пкс/дюйм + + + ҫӗр р-сӗ + {0} ҫӗр р-сӗ + + + км + {0} км + {0}/км + + + м + {0} м + {0}/м + + + дм + {0} дм + + + см + {0} см + {0}/см + + + мм + {0} мм + + + мкм + {0} мкм + + + нм + {0} нм + + + пм + {0} пм + + + ми + {0} ми + + + ярд + {0} ярд + + + фт + {0} фт + {0}/фт + + + дюйм + {0} дюйм + {0}/дюйм + + + пк + {0} пк + + + ç.ç. + {0} ç.ç. + + + а.п. + {0} а.п. + + + фрл + {0} фрл + + + тнс.члш. + {0} тнс.члш. + + + тнс.ми + {0} тнс.ми + + + ск.ми + {0} ск.ми + + + пкт + {0} пкт + + + хӗвел р-с + {0} хӗвел р-с + + + лк + {0} лк + + + кд + {0} кд + + + лм + {0} лм + + + т + {0} т + + + кг + {0} кг + {0}/кг + + + г + {0} г + {0}/г + + + мг + {0} мг + + + мкг + {0} мкг + + + амер. т + {0} амер. т + + + стн + {0} стн + + + крнк + {0} крнк + {0}/крнк + + + унц. + {0} унц. + {0}/унц. + + + тр. унц. + {0} тр. унц. + + + кар + {0} кар + + + Да + {0} Да + + + Ҫӗр масси + {0} Ҫӗр масси + + + Хӗвел масси + {0} Хӗвел масси + + + гран + {0} гран + + + ГВт + {0} ГВт + + + Мвт + {0} МВт + + + КВт + {0} КВт + + + Вт + {0} Вт + + + мВт + {0} мВт + + + л.в. + {0} л.в. + + + ч.ю. мм + ч.ю. {0} мм + + + дюйм² крнк + дюйм² {0} крнк + + + ч.ю. дюйм + ч.ю. {0} дюйм + + + бар + {0} бар + + + мбар + {0} мбар + + + атм + {0} атм + + + Па + {0} Па + + + гПа + {0} гПа + + + кПа + {0} кПа + + + МПа + {0} МПа + + + км/схт + {0} км/схт + + + м/ҫ + {0} м/ҫ + + + ми/схт + {0} ми/схт + + + тĕвĕ + {0} тĕвĕ + + + Бфт + {0} Бфт + + + К + {0} К + + + крнк-фт + {0} крнк-фт + + + Н⋅м + {0} Н⋅м + + + км³ + {0} км³ + + + м³ + {0} м³ + {0}/м³ + + + см³ + {0} см³ + {0}/см³ + + + ми³ + {0} ми³ + + + ярд³ + {0} ярд³ + + + фт³ + {0} фт³ + + + дюйм³ + {0} дюйм³ + + + Мл + {0} Мл + + + гл + {0} гл + + + л + {0} л + {0}/л + + + дл + {0} дл + + + сл + {0} сл + + + мл + {0} мл + + + мпт + {0} мпт + + + крк-мтрл + {0} крк-мтрл + + + акр-фт + {0} акр-фт + + + буш. + {0} буш. + + + гал. + {0} гал. + {0}/гал. + + + имп.гал. + {0} имп.гал. + {0}/имп.гал. + + + кварт + {0} кварт + + + пинт + {0} пинт + + + чашӑк + {0} чашӑк + + + шӗвӗ унци + {0} шӗвӗ унци + + + имп.шӗвӗ унци + {0} импери шӗвӗ унци + + + апт.кшк. + {0} апт.кшк. + + + ч.кшк. + {0} ч.кшк. + + + барр. + {0} барр. + + + плк.апат кшк. + {0} плк.апат кшк. + + + имп.плк. апат кшк. + {0} имп.плк.апат кшк. + + + тмлм + {0} тмлм + + + шĕвĕ др. + {0} шĕвĕ др. + + + чӗркке + {0} чӗркке + + + чптм + {0} чптм + + + имп.кварт + {0} имп.кварт + + + ҫутӑ хврт + {0} ҫутӑ хврт + + + ҫрсм + {0} ҫрсм + {0}/ҫӗр + + @@ -3667,6 +10376,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} {1} + + + çапла + ҫук + + {0} — пурте {0} — пӗрлӗх @@ -3781,8 +10496,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic экран (дисплей) плакат тайлӑк каялла - вертикальлӗ - тайлӑк (наклонный) + тӳрӗ + тайлăклă экстра-тайлӑк ультрӑна чӑмӑртанӑ экстра чӑмӑртанӑ @@ -3817,4 +10532,173 @@ CLDR data files are interpreted according to the LDML specification (http://unic таблица хисепӗсем каснӑ ноль + + und cv + + {title} {given} {given2} {surname} — {generation}, {credentials} + + + {given-informal} {surname} + + + {title} {surname} + + + {given-informal} + + + {given-informal-monogram-allCaps}{surname-monogram-allCaps} + + + {title} {given} {given2} {surname} — {generation}, {credentials} + + + {given-informal} {surname} + + + {title} {surname} + + + {given-informal} + + + {surname-monogram-allCaps} + + + {given-informal-monogram-allCaps} + + + {given-initial} {given2-initial} {surname} + + + {given-informal} {surname-initial} + + + {title} {surname} + + + {given-informal} + + + {surname-monogram-allCaps} + + + {given-informal-monogram-allCaps} + + + {surname} {title} {given} {given2} {credentials} + + + {surname} {given-informal} + + + {title} {surname} + + + {given-informal} + + + {surname-monogram-allCaps}{given-informal-monogram-allCaps} + + + {surname} {given} {given2-initial}, {credentials} + + + {surname} {given-informal} + + + {title} {surname} + + + {given-informal} + + + {surname-monogram-allCaps} + + + {given-informal-monogram-allCaps} + + + {surname} {given-initial} {given2-initial} + + + {surname} {given-initial} + + + {title} {surname} + + + {given-informal} + + + {surname-monogram-allCaps} + + + {given-informal-monogram-allCaps} + + + {surname-core}, {given} {given2} {surname-prefix} + + + {surname}, {given-informal} + + + {surname-core}, {given} {given2-initial} {surname-prefix} + + + {surname}, {given-informal} + + + {surname-core}, {given-initial} {given2-initial} {surname-prefix} + + + {surname}, {given-informal} + + + Аталан + + + Илемпи + Корнилова + + + Константин + Васильевич + Иванов + + + ∅∅∅ + Николай + Коля + Иванович + ∅∅∅ + Ашмарин + ∅∅∅ + ∅∅∅ + ∅∅∅ + + + Синдбад + + + Кете + Мюллер + + + Цецилия + Хэмиш + Штёбер + + + проф., д-р + Ада Корнелия + Неле + Сезар Мартин + фон + Брюль + Гонсалес Доминго + мл. + к.м.н. + + diff --git a/make/data/cldr/common/main/cy.xml b/make/data/cldr/common/main/cy.xml index d9883189a70..e8742b9c7a9 100644 --- a/make/data/cldr/common/main/cy.xml +++ b/make/data/cldr/common/main/cy.xml @@ -57,7 +57,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Awadhi Aymareg Aserbaijaneg - Aseri Aserbaijaneg Deheuol Bashcorteg Balwtsi @@ -78,6 +77,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Bini Comeg Siksika + Anii Bambareg Bengaleg Tibeteg @@ -290,6 +290,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Comi Cernyweg Kwakʼwala + Kuvi Cirgiseg Lladin Iddew-Sbaeneg @@ -300,6 +301,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Lezgheg Ganda Limbwrgeg + Ligwreg Lillooet Lakota Lombardeg @@ -561,6 +563,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Feps Fietnameg Fflemeg Gorllewinol + Macua Folapük Foteg Funjo @@ -574,6 +577,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Wu Tsieineaidd Calmyceg Xhosa + Kangri Soga Iangben Iembaeg @@ -582,6 +586,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Nheengatu Cantoneeg Tsieinëeg, Cantoneg + Zhuang Zapoteceg Blisssymbols Zêlandeg @@ -625,7 +630,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -1178,6 +1182,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ E, d/M d MMM E, d MMM + d MMMM y G y G MMM y G @@ -1698,7 +1703,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ eleni blwyddyn nesaf - ymhen {0} mlynedd + ymhen {0} o flynyddoedd ymhen blwyddyn ymhen {0} flynedd ymhen {0} blynedd @@ -1709,20 +1714,28 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} o flynyddoedd yn ôl blwyddyn yn ôl {0} flynedd yn ôl - {0} blynedd yn ôl - {0} blynedd yn ôl + {0} o flynyddoedd yn ôl + {0} o flynyddoedd yn ôl {0} o flynyddoedd yn ôl bl. + + ymhen {0} o flynyddoedd + ymhen blwyddyn + ymhen {0} flynedd + ymhen {0} blynedd + ymhen {0} blynedd + ymhen {0} o flynyddoedd + {0} o flynyddoedd yn ôl {0} bl. yn ôl {0} flynedd yn ôl - {0} blynedd yn ôl - {0} blynedd yn ôl - {0} bl. yn ôl + {0} o flynyddoedd yn ôl + {0} o flynyddoedd yn ôl + {0} o flynyddoedd yn ôl @@ -1730,20 +1743,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ eleni bl. nesaf - ymhen {0} mlynedd + ymhen {0} o flynyddoedd ymhen bl. ymhen {0} flynedd ymhen {0} blynedd ymhen {0} blynedd - ymhen {0} mlynedd + ymhen {0} o flynyddoedd {0} o flynyddoedd yn ôl blwyddyn yn ôl {0} flynedd yn ôl - {0} blynedd yn ôl - {0} blynedd yn ôl - {0} bl. yn ôl + {0} o flynyddoedd yn ôl + {0} o flynyddoedd yn ôl + {0} o flynyddoedd yn ôl @@ -2493,6 +2506,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Amser {0} Amser Haf {0} Amser Safonol {0} + + Honolulu + Amser Cyffredniol Cydlynol @@ -2510,9 +2526,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Brwsel - - St. Barthélemy - Eirunepé @@ -2531,9 +2544,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Bogotá - - Curaçao - Ynys y Nadolig @@ -2609,27 +2619,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Gasa - - Asunción - - - Réunion - Bwcarést - - São Tomé - Caergystennin Kiev - - Honolulu - Beulah, Gogledd Dakota @@ -2866,13 +2864,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Amser Haf Tsieina - - - Amser Choibalsan - Amser Safonol Choibalsan - Amser Haf Choibalsan - - Amser Ynys Y Nadolig @@ -3129,6 +3120,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Amser Haf Japan + + + Amser Kazakhstan + + Amser Dwyrain Kazakhstan @@ -3765,12 +3761,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ 000T - {0} {1} - {0} {1} - {0} {1} - {0} {1} - {0} {1} - {0} {1} @@ -7656,6 +7646,34 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ chwart Imp + + golau + golau + golau + golau + golau + golau + {0} golau + + + rhannau fesul biliwn + ppb + {0} rhan fesul biliwn + {0} rhan fesul biliwn + {0} rhan fesul biliwn + {0} rhan fesul biliwn + {0} rhan fesul biliwn + + + nosau + {0} noson + {0} noson + {0} noson + {0} noson + {0} noson + {0} noson + {0}/noson + cyfeiriad cardinal {0} i’r dwyrain @@ -8348,6 +8366,28 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} cht Imp. {0} cht Imp. + + golau + golau + {0} golau + {0} golau + {0} golau + {0} golau + {0} golau + + + rhannau/biliwn + + + nosau + {0} noson + {0} noson + {0} noson + {0} noson + {0} noson + {0} noson + {0}/noson + cyfeiriad {0} dn @@ -9444,6 +9484,33 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} qt Imp. {0}qt-Imp. + + golau + {0} golau + {0} golau + {0} golau + {0} golau + {0} golau + {0} golau + + + {0} ppb + {0}ppb + {0} ppb + {0} ppb + {0} ppb + {0}ppb + + + nosau + {0} noson + {0}noson + {0}noson + {0}noson + {0}noson + {0}noson + {0}/noson + {0}dn {0}g diff --git a/make/data/cldr/common/main/da.xml b/make/data/cldr/common/main/da.xml index 1bb32216e19..aaf6959d2bc 100644 --- a/make/data/cldr/common/main/da.xml +++ b/make/data/cldr/common/main/da.xml @@ -71,6 +71,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bini kom siksika + anii bambara bengali tibetansk @@ -298,6 +299,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komi cornisk kwakʼwala + kuvi kirgisisk latin ladino @@ -308,8 +310,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lezghian ganda limburgsk + ligurisk lillooet lakota + lombardisk lingala lao mongo @@ -322,7 +326,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ luba-Lulua luiseno lunda - luo lushai luyana lettisk @@ -355,7 +358,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ innu-aimun mohawk mossi - marathisk + marathi malajisk maltesisk mundang @@ -411,7 +414,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ossetisk osage osmannisk tyrkisk - punjabisk + punjabi pangasinan pahlavi pampanga @@ -505,6 +508,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ comorisk klassisk syrisk syrisk + schlesisk tamil sydtutchone telugu @@ -552,9 +556,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ukendt sprog urdu usbekisk - vai venda + venetiansk vietnamesisk + makhuwa volapyk votisk vunjo @@ -568,6 +573,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ wu-kinesisk kalmyk xhosa + kangri soga yao yapese @@ -2654,6 +2660,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}-tid {0}-sommertid {0}-normaltid + + Honolulu + Koordineret universaltid @@ -2692,9 +2701,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kap Verde - - Curaçao - Juleøen @@ -2771,9 +2777,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ulan Bator - - Tsjojbalsan - Maldiverne @@ -2798,12 +2801,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Lissabon - - Asunción - - - Réunion - Bukarest @@ -2831,9 +2828,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kamtjatka - - São Tomé - Damaskus @@ -2846,9 +2840,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kiev - - Honolulu - Tasjkent @@ -3108,13 +3099,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kinesisk sommertid - - - Tsjojbalsan-tid - Tsjojbalsan-normaltid - Tsjojbalsan-sommertid - - Juleøen-normaltid @@ -3380,6 +3364,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Petropavlovsk-Kamchatski sommertid + + + Kasakhstansk tid + + Østkasakhstansk tid @@ -3932,8 +3921,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 bio'.' ¤ - {0} {1} - {0} {1} @@ -5510,9 +5497,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kubik{0} kubik{0}s - - {0} gange {1} - common {0} G-kraft @@ -5633,9 +5617,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} karats + neuter milligram pr. deciliter {0} milligram pr. deciliter + {0} milligram pr. deciliters {0} milligram pr. deciliter + {0} milligram pr. deciliters neuter @@ -5945,7 +5932,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ common kilokalorier {0} kilokalorie + {0} kilokalories {0} kilokalorier + {0} kilokaloriers common @@ -6007,33 +5996,33 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ common gigahertz {0} gigahertz - {0} gigahertz' + {0} gigahertz’ {0} gigahertz - {0} gigahertz' + {0} gigahertz’ common megahertz {0} megahertz - {0} megahertz' + {0} megahertz’ {0} megahertz - {0} megahertz' + {0} megahertz’ common kilohertz {0} kilohertz - {0} kilohertz' + {0} kilohertz’ {0} kilohertz - {0} kilohertz' + {0} kilohertz’ common hertz {0} hertz - {0} hertz' + {0} hertz’ {0} hertz - {0} hertz' + {0} hertz’ common @@ -6159,7 +6148,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ common - {0} engelsk mil + {0} mile {0} miles @@ -6208,9 +6197,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} svenske mils + neuter punkt {0} punkt + {0} punkts {0} punkt + {0} punkts common @@ -6384,9 +6376,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} hestekræfter + common millimeter kviksølv {0} millimeter kviksølv + {0} millimeter kviksølvs {0} millimeter kviksølv + {0} millimeter kviksølvs pounds pr. kvadrattomme @@ -6616,7 +6611,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} metrisk pint {0} metrisk pints {0} metriske pints - {0} metriske pints' + {0} metriske pints’ common @@ -6730,6 +6725,23 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} britisk quart {0} britiske quarts + + common + milliardtedele + {0} milliardtedel + {0} milliardtedels + {0} milliardtedele + {0} milliardtedeles + + + common + nætter + {0} nat + {0} nats + {0} nætter + {0} nætters + {0} pr. nat + kompasretning {0} øst @@ -6739,9 +6751,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - - {0} ⋅ {1} - G-kraft @@ -7138,6 +7147,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} britisk qt {0} britiske qt + + dele/milliard + + + nætter + {0} nat + {0} nætter + {0}/nat + retning {0}Ø @@ -7145,9 +7163,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - - {0}⋅{1} - {0}G {0}G @@ -7266,7 +7281,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kWh/100 km {0}kWh/100km - {0}kWh/100km + {0} kWh/100 km prik @@ -7336,8 +7351,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}hk - {0}" Hg - {0}" Hg + {0}″ Hg + {0}″ Hg {0} mb @@ -7398,6 +7413,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} br. qt. {0} br. qt. + + nætter + {0}nat + {0}nætter + {0}/nat + h.mm diff --git a/make/data/cldr/common/main/de.xml b/make/data/cldr/common/main/de.xml index da9426b79f0..6ef39f2d098 100644 --- a/make/data/cldr/common/main/de.xml +++ b/make/data/cldr/common/main/de.xml @@ -83,6 +83,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Banjaresisch Kom Blackfoot + Anii Bambara Bengalisch Tibetisch @@ -214,7 +215,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Mittelhochdeutsch Guaraní Althochdeutsch - Goa-Konkani Gondi Mongondou Gotisch @@ -234,6 +234,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Süd-Haida Hebräisch Hindi + Hindi (lateinisch) Hinglish Fidschi-Hindi Hiligaynon @@ -325,6 +326,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Komi Kornisch Kwakʼwala + Kuvi Kirgisisch Latein Ladino @@ -619,6 +621,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Vietnamesisch Westflämisch Mainfränkisch + Makua Volapük Wotisch Võro @@ -634,6 +637,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kalmückisch Xhosa Mingrelisch + Kangri Soga Yao Yapesisch @@ -668,6 +672,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + @@ -683,12 +688,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + - + + @@ -730,7 +736,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -739,6 +744,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + @@ -767,7 +773,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -786,6 +791,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + @@ -833,7 +839,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -844,6 +849,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + @@ -851,7 +857,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -1202,6 +1208,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Taraskievica-Orthographie Vereinheitlichte Rechtschreibung Vereinheitlichte überarbeitete Rechtschreibung + Unifon (phonetisch) Valencianisch Wade-Giles @@ -1220,7 +1227,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Stundenformat (12h/24h) Zeilenumbruchstil Maßsystem - Zahlen + Ziffern Zeitzone Lokale Variante Privatnutzung @@ -1243,7 +1250,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ISO-8601-Kalender Japanischer Kalender Persischer Kalender - Kalender der Republik China + Minguo-Kalender Währungsformat (Buchhaltung) Währungsformat (Standard) Symbole sortieren @@ -1281,10 +1288,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Akzente/Fall/Breite/Kana sortieren Akzente sortieren Akzente/Fall/Breite sortieren - Breit - Halbe Breite + Vollbreit + Halbbreit Numerisch - 12-Stunden-Format (0-11) + 12-Stunden-Format (0–11) 12-Stunden-Format (1-12) 24-Stunden-Format (0-23) 24-Stunden-Format (1-24) @@ -1306,7 +1313,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Brahmi-Ziffern Chakma-Ziffern Cham-Ziffern - Kyrillische Ziffern + Kyrillische Zahlzeichen Devanagari-Ziffern Äthiopische Ziffern Finanzzahlen @@ -1403,7 +1410,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [''’ ՚ ᾽᾿ ʼ ߴ] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -1429,7 +1436,464 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + + Erster + Zweiter + Dritter + Vierter + Fünfter + Sechster + Siebter + Achter + Neunter + Zehnter + Elfter + Zwölfter + + + + + Erster + Zweiter + Dritter + Vierter + Fünfter + Sechster + Siebter + Achter + Neunter + Zehnter + Elfter + Zwölfter + + + + + + + Mäusezeit + Büffelzeit + Tigerzeit + Katzenzeit + Drachenzeit + Schlangenzeit + Pferdezeit + Ziegenzeit + Affenzeit + Hühnerzeit + Hundezeit + Schweinezeit + + + 🐭 + 🐮 + 🐯 + 🐱 + 🐲 + 🐍 + 🐴 + 🐏 + 🐵 + 🐔 + 🐶 + 🐷 + + + Büffelstunden + Tigerstunden + Katzenstunden + Drachenstunden + Schlangenstunden + Pferdestunden + Ziegenstunden + Affenstunden + Hühnerstunden + Hundestunden + Schweinestunden + + + + + + + Holzratte + Holzbüffel + Feuertiger + Feuerhase + Erddrache + Erdschlange + Metallpferd + Metallziege + Wasseraffe + Wasserhuhn + Holzhund + Holzschwein + Feuerratte + Feuerbüffel + Erdtiger + Erdhase + Metalldrache + Metallschlange + Wasserpferd + Wasserziege + Holzaffe + Holzhuhn + Feuerhund + Feuerschwein + Erdratte + Erdbüffel + Metalltiger + Metallhase + Wasserdrache + Wasserschlange + Holzpferd + Holzziege + Feueraffe + Feuerhuhn + Erdhund + Erdschwein + Metallratte + Metallbüffel + Wassertiger + Wasserhase + Holzdrache + Holzschlange + Feuerpferd + Feuerziege + Erdaffe + Erdhuhn + Metallhund + Metallschwein + Wasserratte + Wasserbüffel + Holztiger + Holzhase + Feuerdrache + Feuerschlange + Erdpferd + Erdziege + Metallaffe + Metallhuhn + Wasserhund + Wasserschwein + + + 🌲🐭 + 🌲🐮 + 🔥🐯 + 🔥🐱 + 🌱🐲 + 🌱🐍 + ⚡🐴 + ⚡🐏 + 💧🐵 + 💧🐔 + 🌲🐶 + 🌲🐷 + 🔥🐭 + 🔥🐮 + 🌱🐯 + 🌱🐱 + ⚡🐲 + ⚡🐍 + 💧🐴 + 💧🐏 + 🌲🐵 + 🌲🐔 + 🔥🐶 + 🔥🐷 + 🌱🐭 + 🌱🐮 + ⚡🐯 + ⚡🐱 + 💧🐲 + 💧🐍 + 🌲🐴 + 🌲🐏 + 🔥🐵 + 🔥🐔 + 🌱🐶 + 🌱🐷 + ⚡🐭 + ⚡🐮 + 💧🐯 + 💧🐱 + 🌲🐲 + 🌲🐍 + 🔥🐴 + 🔥🐏 + 🌱🐵 + 🌱🐔 + ⚡🐶 + ⚡🐷 + 💧🐭 + 💧🐮 + 🌲🐯 + 🌲🐱 + 🔥🐲 + 🔥🐍 + 🌱🐴 + 🌱🐏 + ⚡🐵 + ⚡🐔 + 💧🐶 + 💧🐷 + + + Yang-Holzratte + Yin-Holzbüffel + Yang-Feuertiger + Yin-Feuerhase + Yang-Erddrache + Yin-Erdschlange + Yang-Metallpferd + Yin-Metallziege + Yang-Wasseraffe + Yin-Wasserhuhn + Yang-Holzhund + Yin-Holzschwein + Yang-Feuerratte + Yin-Feuerbüffel + Yang-Erdtiger + Yin-Erdhase + Yang-Metalldrache + Yin-Metallschlange + Yang-Wasserpferd + Yin-Wasserziege + Yang-Holzaffe + Yin-Holzhuhn + Yang-Feuerhund + Yin-Feuerschwein + Yang-Erdratte + Yin-Erdbüffel + Yang-Metalltiger + Yin-Metallhase + Yang-Wasserdrache + Yin-Wasserschlange + Yang-Holzpferd + Yin-Holzziege + Yang-Feueraffe + Yin-Feuerhuhn + Yang-Erdhund + Yin-Erdschwein + Yang-Metallratte + Yin-Metallbüffel + Yang-Wassertiger + Yin-Wasserhase + Yang-Holzdrache + Yin-Holzschlange + Yang-Feuerpferd + Yin-Feuerziege + Yang-Erdaffe + Yin-Erdhuhn + Yang-Metallhund + Yin-Metallschwein + Yang-Wasserratte + Yin-Wasserbüffel + Yang-Holztiger + Yin-Holzhase + Yang-Feuerdrache + Yin-Feuerschlange + Yang-Erdpferd + Yin-Erdziege + Yang-Metallaffe + Yin-Metallhuhn + Yang-Wasserhund + Yin-Wasserschwein + + + + + + + Yang-Holzratte + Yin-Holzbüffel + Yang-Feuertiger + Yin-Feuerhase + Yang-Erddrache + Yin-Erdschlange + Yang-Metallpferd + Yin-Metallziege + Yang-Wasseraffe + Yin-Wasserhuhn + Yang-Holzhund + Yin-Holzschwein + Yang-Feuerratte + Yin-Feuerbüffel + Yang-Erdtiger + Yin-Erdhase + Yang-Metalldrache + Yin-Metallschlange + Yang-Wasserpferd + Yin-Wasserziege + Yang-Holzaffe + Yin-Holzhuhn + Yang-Feuerhund + Yin-Feuerschwein + Yang-Erdratte + Yin-Erdbüffel + Yang-Metalltiger + Yin-Metallhase + Yang-Wasserdrache + Yin-Wasserschlange + Yang-Holzpferd + Yin-Holzziege + Yang-Feueraffe + Yin-Feuerhuhn + Yang-Erdhund + Yin-Erdschwein + Yang-Metallratte + Yin-Metallbüffel + Yang-Wassertiger + Yin-Wasserhase + Yang-Holzdrache + Yin-Holzschlange + Yang-Feuerpferd + Yin-Feuerziege + Yang-Erdaffe + Yin-Erdhuhn + Yang-Metallhund + Yin-Metallschwein + Yang-Wasserratte + Yin-Wasserbüffel + Yang-Holztiger + Yin-Holzhase + Yang-Feuerdrache + Yin-Feuerschlange + Yang-Erdpferd + Yin-Erdziege + Yang-Metallaffe + Yin-Metallhuhn + Yang-Wasserhund + Yin-Wasserschwein + + + + + + + 🐯♒ + 🐯♓ + 🐰♓ + 🐰♈ + 🐲♈ + 🐲♉ + 🐍♉ + 🐍♊ + 🐴♊ + 🐴♋ + 🐏♋ + 🐏♌ + 🐵♌ + 🐵♍ + 🐔♍ + 🐔♎ + 🐶♎ + 🐶♏ + 🐷♏ + 🐷♐ + 🐭♐ + 🐭♑ + 🐮♑ + 🐮♒ + + + Neufrühling + Wässer + Schlüpfen + Vollfrühling + Flügge + Sprosskorn + Neusommer + Halmkorn + Ährenkorn + Vollsommer + Vorhitze + Haupthitze + Neuherbst + Endhitze + Morgentau + Vollherbst + Morgenreif + Morgenfrost + Neuwinter + Vorschnee + Hauptschnee + Vollwinter + Vorkälte + Hauptkälte + + + + + + + Yang-Holzratte + Yin-Holzbüffel + Yang-Feuertiger + Yin-Feuerhase + Yang-Erddrache + Yin-Erdschlange + Yang-Metallpferd + Yin-Metallziege + Yang-Wasseraffe + Yin-Wasserhuhn + Yang-Holzhund + Yin-Holzschwein + Yang-Feuerratte + Yin-Feuerbüffel + Yang-Erdtiger + Yin-Erdhase + Yang-Metalldrache + Yin-Metallschlange + Yang-Wasserpferd + Yin-Wasserziege + Yang-Holzaffe + Yin-Holzhuhn + Yang-Feuerhund + Yin-Feuerschwein + Yang-Erdratte + Yin-Erdbüffel + Yang-Metalltiger + Yin-Metallhase + Yang-Wasserdrache + Yin-Wasserschlange + Yang-Holzpferd + Yin-Holzziege + Yang-Feueraffe + Yin-Feuerhuhn + Yang-Erdhund + Yin-Erdschwein + Yang-Metallratte + Yin-Metallbüffel + Yang-Wassertiger + Yin-Wasserhase + Yang-Holzdrache + Yin-Holzschlange + Yang-Feuerpferd + Yin-Feuerziege + Yang-Erdaffe + Yin-Erdhuhn + Yang-Metallhund + Yin-Metallschwein + Yang-Wasserratte + Yin-Wasserbüffel + Yang-Holztiger + Yin-Holzhase + Yang-Feuerdrache + Yin-Feuerschlange + Yang-Erdpferd + Yin-Erdziege + Yang-Metallaffe + Yin-Metallhuhn + Yang-Wasserhund + Yin-Wasserschwein + + + @@ -1446,6 +1910,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Hund Schwein + + 🐭 + 🐮 + 🐯 + 🐰 + 🐲 + 🐍 + 🐴 + 🐏 + 🐵 + 🐔 + 🐶 + 🐷 + @@ -1476,6 +1954,38 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + {1}, {0} + + + {1} 'um' {0} + + + + + {1} {0} + + + {1} 'um' {0} + + + + + {1} {0} + + + {1} 'um' {0} + + + + + {1} {0} + + + {1} 'um' {0} + + E, d. U @@ -1604,6 +2114,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + h 'Uhr' B E, d. E h:mm a E h:mm:ss a @@ -1612,7 +2123,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ MMM y G d. MMM y G E, d. MMM y G - h a + h 'Uhr' B HH 'Uhr' h:mm a h:mm:ss a @@ -2236,7 +2747,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - vor Volksrepublik China + vor Volksrepublik China Minguo @@ -2251,6 +2762,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Epoche + + Ep. + E @@ -2322,6 +2836,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + Mon. vor {0} Monat vor {0} Monaten @@ -2366,9 +2881,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ W/M - - Wo. des Monats - Tag vorgestern @@ -2760,6 +3272,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} (Ortszeit) {0} (Sommerzeit) {0} (Normalzeit) + + Honolulu + Koordinierte Weltzeit @@ -2816,9 +3331,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Cabo Verde - - Curaçao - Weihnachtsinsel @@ -2937,9 +3449,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Chowd - - Tschoibalsan - Macau @@ -2970,15 +3479,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Lissabon - - Asunción - Katar - - Réunion - Bukarest @@ -3045,9 +3548,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Mogadischu - - São Tomé - Damaskus @@ -3072,9 +3572,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kiew - - Honolulu - Taschkent @@ -3155,9 +3652,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Rocky-Mountain-Zeit - Rocky-Mountain-Normalzeit - Rocky-Mountain-Sommerzeit + Rocky-Mountains-Zeit + Rocky-Mountains-Normalzeit + Rocky-Mountains-Sommerzeit @@ -3339,13 +3836,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Chinesische Sommerzeit - - - Tschoibalsan-Zeit - Tschoibalsan-Normalzeit - Tschoibalsan-Sommerzeit - - Weihnachtsinsel-Zeit @@ -3611,6 +4101,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kamtschatka-Sommerzeit + + + Kasachische Zeit + + Ostkasachische Zeit @@ -3642,7 +4137,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Kirgisistan-Zeit + Kirgisische Zeit @@ -3950,7 +4445,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Tadschikistan-Zeit + Tadschikische Zeit @@ -3973,8 +4468,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Turkmenistan-Zeit - Turkmenistan-Normalzeit - Turkmenistan-Sommerzeit + Turkmenische Normalzeit + Turkmenische Sommerzeit @@ -3991,9 +4486,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Usbekistan-Zeit - Usbekistan-Normalzeit - Usbekistan-Sommerzeit + Usbekische Zeit + Usbekische Normalzeit + Usbekische Sommerzeit @@ -4164,8 +4659,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 Bio'.' ¤ - {0} {1} - {0} {1} @@ -5182,9 +5675,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Sierra-leonische Leones - Sierra-leonischer Leone (1964—2022) - Sierra-leonischer Leone (1964—2022) - Sierra-leonische Leones (1964—2022) + Sierra-leonischer Leone (1964–2022) + Sierra-leonischer Leone (1964–2022) + Sierra-leonische Leones (1964–2022) Somalia-Schilling @@ -5876,21 +6369,28 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Karat + neuter Milligramm pro Deziliter {0} Milligramm pro Deziliter + {0} Milligramm pro Deziliter + {0} Milligramm pro Deziliter + {0} Milligramm pro Deziliter {0} Milligramm pro Deziliter + {0} Milligramm pro Deziliter + {0} Milligramm pro Deziliter + {0} Milligramm pro Deziliter - neuter + neuter Millimol pro Liter {0} Millimol pro Liter - {0} Millimol pro Liter - {0} Millimol pro Liter - {0} Millimol pro Liter + {0} Millimol pro Liter + {0} Millimol pro Liter + {0} Millimol pro Liter {0} Millimol pro Liter - {0} Millimol pro Liter - {0} Millimol pro Liter - {0} Millimol pro Liter + {0} Millimol pro Liter + {0} Millimol pro Liter + {0} Millimol pro Liter neuter @@ -5965,16 +6465,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Mol - masculine + masculine Liter pro Kilometer {0} Liter pro Kilometer - {0} Liter pro Kilometer - {0} Liter pro Kilometer - {0} Liters pro Kilometer + {0} Liter pro Kilometer + {0} Liter pro Kilometer + {0} Liters pro Kilometer {0} Liter pro Kilometer - {0} Liter pro Kilometer - {0} Litern pro Kilometer - {0} Liter pro Kilometer + {0} Liter pro Kilometer + {0} Litern pro Kilometer + {0} Liter pro Kilometer masculine @@ -6016,11 +6516,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ neuter Petabytes {0} Petabyte - {0} Petabyte - {0} Petabyte - {0} Petabyte + {0} Petabyte + {0} Petabyte + {0} Petabyte {0} Petabyte - {0} Petabyte + {0} Petabyte {0} Petabyte {0} Petabyte @@ -6037,16 +6537,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Terabyte - neuter + neuter Terabits {0} Terabit - {0} Terabit - {0} Terabit - {0} Terabit + {0} Terabit + {0} Terabit + {0} Terabit {0} Terabit - {0} Terabit - {0} Terabit - {0} Terabit + {0} Terabit + {0} Terabit + {0} Terabit neuter @@ -6174,7 +6674,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Jahr {0} Jahr {0} Jahr - {0} Jahrs + {0} Jahres {0} Jahre {0} Jahre {0} Jahren @@ -6320,38 +6820,38 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Nanosekunden - neuter + neuter {0} Ampere - {0} Ampere - {0} Ampere - {0} Ampere + {0} Ampere + {0} Ampere + {0} Ampere {0} Ampere - {0} Ampere - {0} Ampere - {0} Ampere + {0} Ampere + {0} Ampere + {0} Ampere - neuter + neuter Milliampere {0} Milliampere - {0} Milliampere - {0} Milliampere - {0} Milliampere + {0} Milliampere + {0} Milliampere + {0} Milliampere {0} Milliampere - {0} Milliampere - {0} Milliampere - {0} Milliampere + {0} Milliampere + {0} Milliampere + {0} Milliampere - neuter + neuter {0} Ohm - {0} Ohm - {0} Ohm - {0} Ohms + {0} Ohm + {0} Ohm + {0} Ohms {0} Ohm - {0} Ohm - {0} Ohm - {0} Ohm + {0} Ohm + {0} Ohm + {0} Ohm neuter @@ -6467,64 +6967,64 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Newton - feminine + feminine Kilowattstunde pro 100 Kilometer {0} Kilowattstunde pro 100 Kilometer - {0} Kilowattstunde pro 100 Kilometer - {0} Kilowattstunde pro 100 Kilometer - {0} Kilowattstunde pro 100 Kilometer + {0} Kilowattstunde pro 100 Kilometer + {0} Kilowattstunde pro 100 Kilometer + {0} Kilowattstunde pro 100 Kilometer {0} Kilowattstunden pro 100 Kilometer - {0} Kilowattstunden pro 100 Kilometer - {0} Kilowattstunden pro 100 Kilometer - {0} Kilowattstunden pro 100 Kilometer + {0} Kilowattstunden pro 100 Kilometer + {0} Kilowattstunden pro 100 Kilometer + {0} Kilowattstunden pro 100 Kilometer - neuter + neuter Gigahertz {0} Gigahertz - {0} Gigahertz - {0} Gigahertz - {0} Gigahertz + {0} Gigahertz + {0} Gigahertz + {0} Gigahertz {0} Gigahertz - {0} Gigahertz - {0} Gigahertz - {0} Gigahertz + {0} Gigahertz + {0} Gigahertz + {0} Gigahertz - neuter + neuter Megahertz {0} Megahertz - {0} Megahertz - {0} Megahertz - {0} Megahertz + {0} Megahertz + {0} Megahertz + {0} Megahertz {0} Megahertz - {0} Megahertz - {0} Megahertz - {0} Megahertz + {0} Megahertz + {0} Megahertz + {0} Megahertz - neuter + neuter Kilohertz {0} Kilohertz - {0} Kilohertz - {0} Kilohertz - {0} Kilohertz + {0} Kilohertz + {0} Kilohertz + {0} Kilohertz {0} Kilohertz - {0} Kilohertz - {0} Kilohertz - {0} Kilohertz + {0} Kilohertz + {0} Kilohertz + {0} Kilohertz - neuter + neuter Hertz {0} Hertz - {0} Hertz - {0} Hertz - {0} Hertz + {0} Hertz + {0} Hertz + {0} Hertz {0} Hertz - {0} Hertz - {0} Hertz - {0} Hertz + {0} Hertz + {0} Hertz + {0} Hertz neuter @@ -6615,16 +7115,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} pro Meter - masculine + masculine Dezimeter {0} Dezimeter - {0} Dezimeter - {0} Dezimeter - {0} Dezimeters + {0} Dezimeter + {0} Dezimeter + {0} Dezimeters {0} Dezimeter - {0} Dezimeter - {0} Dezimetern - {0} Dezimeter + {0} Dezimeter + {0} Dezimetern + {0} Dezimeter masculine @@ -6652,28 +7152,28 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Millimeter - masculine + masculine Mikrometer {0} Mikrometer - {0} Mikrometer - {0} Mikrometer - {0} Mikrometers + {0} Mikrometer + {0} Mikrometer + {0} Mikrometers {0} Mikrometer - {0} Mikrometer - {0} Mikrometern - {0} Mikrometer + {0} Mikrometer + {0} Mikrometern + {0} Mikrometer - masculine + masculine Nanometer {0} Nanometer - {0} Nanometer - {0} Nanometer - {0} Nanometers + {0} Nanometer + {0} Nanometer + {0} Nanometers {0} Nanometer - {0} Nanometer - {0} Nanometern - {0} Nanometer + {0} Nanometer + {0} Nanometern + {0} Nanometer masculine @@ -6783,9 +7283,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} skandinavischen Meilen + masculine DTP-Punkte {0} DTP-Punkt + {0} DTP-Punkt + {0} DTP-Punkt + {0} DTP-Punkts {0} DTP-Punkte + {0} DTP-Punkte + {0} DTP-Punkten + {0} DTP-Punkte masculine @@ -6847,16 +7354,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Sonnenleuchtkräfte - feminine + feminine Tonnen {0} Tonne - {0} Tonne - {0} Tonne - {0} Tonne + {0} Tonne + {0} Tonne + {0} Tonne {0} Tonnen - {0} Tonnen - {0} Tonnen - {0} Tonnen + {0} Tonnen + {0} Tonnen + {0} Tonnen neuter @@ -6896,16 +7403,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Milligramm - neuter + neuter Mikrogramm {0} Mikrogramm - {0} Mikrogramm - {0} Mikrogramm - {0} Mikrogramms + {0} Mikrogramm + {0} Mikrogramm + {0} Mikrogramms {0} Mikrogramm - {0} Mikrogramm - {0} Mikrogramm - {0} Mikrogramm + {0} Mikrogramm + {0} Mikrogramm + {0} Mikrogramm Short Tons @@ -6948,16 +7455,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Feinunzen - neuter + neuter Karat {0} Karat - {0} Karat - {0} Karat - {0} Karats + {0} Karat + {0} Karat + {0} Karats {0} Karat - {0} Karat - {0} Karat - {0} Karat + {0} Karat + {0} Karat + {0} Karat neuter @@ -7071,9 +7578,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Pferdestärken + masculine Millimeter Quecksilbersäule {0} Millimeter Quecksilbersäule + {0} Millimeter Quecksilbersäule + {0} Millimeter Quecksilbersäule + {0} Millimeter Quecksilbersäule {0} Millimeter Quecksilbersäule + {0} Millimeter Quecksilbersäule + {0} Millimeter Quecksilbersäule + {0} Millimeter Quecksilbersäule Pfund pro Quadratzoll @@ -7086,63 +7600,63 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Zoll Quecksilbersäule - neuter + neuter Bar {0} Bar - {0} Bar - {0} Bar - {0} Bars + {0} Bar + {0} Bar + {0} Bars {0} Bar - {0} Bar - {0} Bar - {0} Bar + {0} Bar + {0} Bar + {0} Bar - neuter + neuter {0} Millibar - {0} Millibar - {0} Millibar - {0} Millibars + {0} Millibar + {0} Millibar + {0} Millibars {0} Millibar - {0} Millibar - {0} Millibar - {0} Millibar + {0} Millibar + {0} Millibar + {0} Millibar - feminine + feminine Atmosphären {0} Atmosphäre - {0} Atmosphäre - {0} Atmosphäre - {0} Atmosphäre + {0} Atmosphäre + {0} Atmosphäre + {0} Atmosphäre {0} Atmosphären - {0} Atmosphären - {0} Atmosphären - {0} Atmosphären + {0} Atmosphären + {0} Atmosphären + {0} Atmosphären - neuter + neuter Pascal {0} Pascal - {0} Pascal - {0} Pascal - {0} Pascals + {0} Pascal + {0} Pascal + {0} Pascals {0} Pascal - {0} Pascal - {0} Pascal - {0} Pascal + {0} Pascal + {0} Pascal + {0} Pascal - neuter + neuter Hektopascal {0} Hektopascal - {0} Hektopascal - {0} Hektopascal - {0} Hektopascals + {0} Hektopascal + {0} Hektopascal + {0} Hektopascals {0} Hektopascal - {0} Hektopascal - {0} Hektopascal - {0} Hektopascal + {0} Hektopascal + {0} Hektopascal + {0} Hektopascal neuter @@ -7157,16 +7671,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Kilopascal - neuter + neuter Megapascal {0} Megapascal - {0} Megapascal - {0} Megapascal - {0} Megapascals + {0} Megapascal + {0} Megapascal + {0} Megapascals {0} Megapascal - {0} Megapascal - {0} Megapascal - {0} Megapascal + {0} Megapascal + {0} Megapascal + {0} Megapascal masculine @@ -7210,9 +7724,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Knoten + neuter Beaufort Beaufort {0} + Beaufort {0} + Beaufort {0} + Beaufort {0} Beaufort {0} + Beaufort {0} + Beaufort {0} + Beaufort {0} neuter @@ -7279,16 +7800,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Newtonmeter - masculine + masculine Kubikkilometer {0} Kubikkilometer - {0} Kubikkilometer - {0} Kubikkilometer - {0} Kubikkilometers + {0} Kubikkilometer + {0} Kubikkilometer + {0} Kubikkilometers {0} Kubikkilometer - {0} Kubikkilometer - {0} Kubikkilometern - {0} Kubikkilometer + {0} Kubikkilometer + {0} Kubikkilometern + {0} Kubikkilometer masculine @@ -7351,28 +7872,28 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Kubikzoll - masculine + masculine Megaliter {0} Megaliter - {0} Megaliter - {0} Megaliter - {0} Megaliters + {0} Megaliter + {0} Megaliter + {0} Megaliters {0} Megaliter - {0} Megaliter - {0} Megalitern - {0} Megaliter + {0} Megaliter + {0} Megalitern + {0} Megaliter - masculine + masculine Hektoliter {0} Hektoliter - {0} Hektoliter - {0} Hektoliter - {0} Hektoliters + {0} Hektoliter + {0} Hektoliter + {0} Hektoliters {0} Hektoliter - {0} Hektoliter - {0} Hektolitern - {0} Hektoliter + {0} Hektoliter + {0} Hektolitern + {0} Hektoliter masculine @@ -7423,28 +7944,28 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Milliliter - neuter + neuter metrische Pints {0} metrisches Pint - {0} metrische Pint - {0} metrischen Pint - {0} metrischen Pints + {0} metrische Pint + {0} metrischen Pint + {0} metrischen Pints {0} metrische Pints - {0} metrischen Pints - {0} metrischen Pints - {0} metrischen Pints + {0} metrischen Pints + {0} metrischen Pints + {0} metrischen Pints - feminine + feminine metrische Tassen {0} metrische Tasse - {0} metrische Tasse - {0} metrischen Tasse - {0} metrischen Tasse + {0} metrische Tasse + {0} metrischen Tasse + {0} metrischen Tasse {0} metrische Tassen - {0} metrischen Tassen - {0} metrischen Tassen - {0} metrischen Tassen + {0} metrischen Tassen + {0} metrischen Tassen + {0} metrischen Tassen {0} Acre-Foot @@ -7651,6 +8172,31 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Imp. Quart {0} Imp. Quart + + neuter + Milliardstel + {0} Milliardstel + {0} Milliardstel + {0} Milliardstel + {0} Milliardstels + {0} Milliardstel + {0} Milliardstel + {0} Milliardsteln + {0} Milliardstel + + + feminine + Übernachtungen + {0} Übernachtung + {0} Übernachtung + {0} Übernachtung + {0} Übernachtung + {0} Übernachtungen + {0} Übernachtungen + {0} Übernachtungen + {0} Übernachtungen + {0} pro Übernachtung + Himmelsrichtung {0} Ost @@ -8068,6 +8614,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Imp.qt. {0} Imp.qt. + + Milliardstel + {0} Milliardstel + {0} Milliardstel + + + Nächte + {0} Nacht + {0} Nächte + {0}/Nacht + Richtung {0} O @@ -8101,10 +8658,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - ha + ha - Dunam + Dunam kt @@ -8152,30 +8709,30 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} mpg UK - GB + GB - Gb + Gb - MB + MB - Mb + Mb - kB + kB - kb + kb - B + B {0} B {0} B - b + b {0} b {0} b @@ -8201,7 +8758,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} T - A + A {0}A {0}A @@ -8210,12 +8767,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}mA - Ω + Ω {0}Ω {0}Ω - V + V {0}V {0}V @@ -8260,16 +8817,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ d - pm + pm - mi + mi - yd + yd - ft + ft {0}Lj @@ -8317,25 +8874,25 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}L☉ - Tons - {0} tn - {0} tn + Tons + {0} tn + {0} tn - Pfund + Pfund - Unzen + Unzen - {0} oz.tr. - {0} oz.tr. + {0} oz.tr. + {0} oz.tr. - Karat + Karat - gr + gr W @@ -8356,13 +8913,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ l - ac ft + ac ft - Imp.gal - {0} Imp.gal - {0} Imp.gal - {0}/Imp.gal + Imp.gal + {0} Imp.gal + {0} Imp.gal + {0}/Imp.gal Im.fl.oz @@ -8397,6 +8954,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Imp.qt {0} Imp.qt + + Nächte + {0}Nacht + {0}Nächte + {0}/Nacht + NOSW {0}O diff --git a/make/data/cldr/common/main/de_CH.xml b/make/data/cldr/common/main/de_CH.xml index db148685303..205f9b935c6 100644 --- a/make/data/cldr/common/main/de_CH.xml +++ b/make/data/cldr/common/main/de_CH.xml @@ -228,7 +228,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Schuss - Schuss + {0} Schuss {0} Schuss diff --git a/make/data/cldr/common/main/doi.xml b/make/data/cldr/common/main/doi.xml index 025c806eff5..8e8a66dfff1 100644 --- a/make/data/cldr/common/main/doi.xml +++ b/make/data/cldr/common/main/doi.xml @@ -515,6 +515,26 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + + + चेत्तर + बसाख + जेठ + हाड़ + सौन + भाद्रो + अस्सू + कत्ता + मग्घर + पोह् + माघ + फग्गन + + + + @@ -522,27 +542,72 @@ CLDR data files are interpreted according to the LDML specification (http://unic ब’रा + पिछला ब’रा + एह् ब’रा + अगला ब’रा ब. + पिछला ब’रा/पिछले ब’रै + एह् ब’रा/इस ब’रै + अगला ब’रा/अगले ब’रै + + + पिछला ब’रा + एह् ब’रा + अगला ब’रा त्रमाही + आखरी त्रमाही + एह् त्रमाही + अगली त्रमाही त्रमा. म्हीना + पिछला म्हीना/पिछले म्हीनै + एह् म्हीना/इस म्हीनै + अगला म्हीना/अगले म्हीनै म्ही. + पिछला म्हीना/पिछले म्हीनै + एह् म्हीना/इस म्हीनै + अगला म्हीना/अगले म्हीनै + + + पिछला म्हीना/पिछले म्हीनै + एह् म्हीना/इस म्हीनै + अगला म्हीना/अगले म्हीनै हफ्ता + पिछला हफ्ता/पिछले हफ्तै + एह् हफ्ता/इस हफ्तै + अगला हफ्ता/अगले हफ्तै ह. + पिछला हफ्ता/पिछले हफ्तै + एह् हफ्ता/इस हफ्तै + अगला हफ्ता/अगले हफ्तै + + + पिछला हफ्ता/पिछले हफ्तै + एह् हफ्ता/इस हफ्तै + अगला हफ्ता/अगले हफ्तै + + + म्हीने दा हफ्ता + + + म्ही.दा ह. + + + म्ही.दा ह. दिन @@ -550,26 +615,159 @@ CLDR data files are interpreted according to the LDML specification (http://unic अज्ज औंदे कल + + ब’रे दा दिन + + + ब’रे दा दिन + + + ब’रे दा दिन + हफ्ते दा दिन + + कम्म-दिन + + + कम्म-दिन + + + म्हीने दा कम्म-दिन + + + म्हीने दा कम्म-दिन + + + म्हीने दा कम्म-दिन + + + पिछला ऐतबार/पिछले ऐतबारें + एह् ऐतबार/इस ऐतबारें + अगला ऐतबार/अगले ऐतबारें + + + पिछला ऐत./पिछले ऐत. + एह् ऐत./इस ऐत. + अगला ऐत./अगले ऐत. + + + पिछला ऐ./पिछले ऐ. + एह् ऐ./इस ऐ. + अगला ऐ./अगले ऐ. + + + पिछला सोमबार/पिछले सोमबारें + एह् सोमबार/इस सोमबारें + अगला सोमबार/अगले सोमबारें + + + पिछला सोम./पिछले सोम. + एह् सोम./इस सोम. + अगला सोम./अगले सोम. + + + पिछला सो./पिछले सो. + एह् सो./इस सो. + अगला सो./अगले सो. + + + पिछला मंगलबार/पिछले मंगलबारें + एह् मंगलबार/इस मंगलबारें + अगला मंगलबार/अगले मंगलबारें + + + पिछला मंगल./पिछले मंगल. + एह् मंगल./इस मंगल. + अगला मंगल./अगले मंगल. + + + पिछला मं./पिछले मं. + एह् मं./इस मं. + अगला मं./अगले मं. + + + पिछला बुद्धबार/पिछले बुद्धबारें + एह् बुद्धबार/इस बुद्धबारें + अगला बुद्धबार/अगले बुद्धबारें + + + पिछला बुद्ध./पिछले बुद्ध. + एह् बुद्ध./इस बुद्ध. + अगला बुद्ध./अगले बुद्ध. + + + पिछला बु./पिछले बु. + एह् बु./इस बु. + अगला बु./अगले बु. + + + पिछला बीरबार/पिछले बीरबारें + एह् बीरबार/इस बीरबारें + अगला बीरबार/अगले बीरबारें + + + पिछला बीर./पिछले बीर. + एह् बीर./इस बीर. + अगला बीर./अगले बीर. + + + पिछला बी./पिछले बी. + एह् बी./इस बी. + अगला बी./अगले बी. + + + पिछला शुक्करबार/पिछले शुक्करबारें + एह् शुक्करबार/इस शुक्करबारें + अगला शुक्करबार/अगले शुक्करबारें + + + पिछला शुक्कर./पिछले शुक्कर. + एह् शुक्कर./इस शुक्कर. + अगला शुक्कर./अगले शुक्कर. + + + पिछला शु./पिछले शु. + एह् शु./इस शु. + अगला शु./अगले शु. + + + पिछला शनी./पिछले शनी. + एह् शनी./इस शनी. + अगला शनी./अगले शनी. + + + पिछला श./पिछले श. + एह् श./इस श. + अगला श./अगले श. + + + बडलै/स’ञां + सवेर/बा.दपै. + + बडलै/स’ञां + घैंटा + एह् घैंटा/ इस घैंटे घैं. मिंट्‌ट + एह् मिंट/ इस मिंट मिं. सकैंट + हून/इसलै सकैं. @@ -577,6 +775,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic समां खेत्तर + + ज़ोन + + + ज़ोन + {0} समां @@ -674,8 +878,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ¤ #,##0.00 - {0} {1} - {0} {1} @@ -713,34 +915,1395 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + ग्रै-फोर्स + + + मीटर फी सकिंट² + + + घमघेरे + + + रेडियन + + + डिग्रियां + + + आर्क मिंट + + + आर्क सकिंट + + + वर्ग किलोमीटर + + + हैक्टर + + + वर्ग मीटर + + + वर्ग सैंटीमीटर + + + वर्ग मील + + + किल्ले + + + वर्ग गज + + + वर्ग फुट + + + वर्ग इंच + + + डोनम + + + कैरट + + + मिलिग्राम फी डैसीलीटर + + + मिलीमोल फी लीटर + + + हिस्से फी दस लक्ख + + + प्रतिशत/फीसदी + + + फी ज्हार + + + फी दस ज्हार + + + मोल + + + लीटर प्रति किलोमीटर + + + लीटर प्रति 100 किलोमीटर + + + मील प्रति गैलन + + + मील प्रति इंपीरियल गैलन + + + पेटाबाइट + + + टैराबाइट + + + टैराबिट + + + गीगाबाइट + + + गीगाबिट + + + मैगाबाइट + + + मैगाबिट + + + किलोबाइट + + + किलोबिट + + + बाइट + + + बिट + + + सदियां + + + द्हाके + + + ब’रे/साल + + + त्रमाहियां + + + म्हीने + + + हफ्ते + + + दिन + + + घैंटे + + + मिंट + + + सकिंट + + + मिलीसकिंट + + + माइक्रोसकिंट + + + नैनो सकिंट + + + एंपीयर + + + मिलीएंपीयर + + + ओम + + + वोल्ट + + + किलो कैलोरी + + + कैलोरियां + + + किलो जूल + + + जूल + + + किलोवॉट-घैंटे + + + इलैक्ट्रॉनवोल्ट + + + ब्रिटिश थर्मल यूनटां + + + यूऐस्स थर्म + + + पौंड-बल + + + न्यूटन + + + किलोवॉट-घैंटे फी 100किलोमीटर + + + गीगाहर्ट्ज़ + + + मैगाहर्ट्ज़ + + + किलोहर्ट्ज़ + + + हर्ट्ज़ + + + टाइपोग्राफ़िक ऐम्म + + + पिक्सल + + + मैगापिक्सल + + + पिक्सल फी सैंटीमीटर + + + पिक्सल फी इंच + + + धरती दा घेरा + + + किलोमीटर + + + मीटर + + + डैसीमीटर + + + सैंटीमीटर + + + मिलीमीटर + + + माइक्रोमीटर + + + नैनोमीटर + + + पिकोमीटर + + + मील + + + गज + + + फुट + + + इंच + + + पारसेक + + + रुशनाई ब’रे + + + खगोली यूनटां + + + फरलांग + + + मसातरां + + + नॉटिकल मील + + + मील-स्कैण्डिनेवियन + + + सौर अद्धाव्यास + + + लक्स + + + कैंडेला + + + लुमेन + + + सौर चानन + + + मीट्रिक टन + - किल्लो + किलोग्राम ग्राम - - - - {0}m/gUK - {0}m/gUK + + मिलीग्राम - - {0}किल्लोवाट/100किमी - {0} किल्लोवाट/100किमी + + माइक्रोग्राम + + + स्टोन + + + पौंड + + + औंस + + + ट्राय औंस + + + कैरट + + + डाल्टन + + + धरती पिंड + + + सौर पिंड + + + डेढ रत्ती + + + गीगावॉट + + + किलोवॉट + + + वॉट + + + मिलीवॉट + + + हार्सपावर + + + पाराई मिलीमीटर + + + पौंड-फोर्स फी वर्ग इंच + + + पाराई इंच + + + बार + + + मिलीबार + + + वायुमंडली दबाऽ + + + पास्कल + + + हैक्टोपास्कल + + + किलोपास्कल + + + मैगापास्कल + + + किलोमीटर फी घैंटा + + + मीटर प्रति सकिंट + + + मील प्रति घैंटा + + + नॉट + + + डिग्री सेल्सियस + + + डिग्री फारेनहाइट + + + केल्विन + + + पौंड-फोर्स-फुट + + + न्यूटन-मीटर + + + क्यूबिक किलोमीटर + + + क्यूबिक मीटर + + + क्यूबिक सेंटीमीटर + + + क्यूबिक मील + + + क्यूबिक गज + + + क्यूबिक फुट + + + क्यूबिक इंच + + + मैगालीटर + + + हैक्टोलीटर + + + लीटर + + + डैसीलीटर + + + सैंटीलीटर + + + मिलीलीटर + + + मीट्रिक पिंट + + + मीट्रिक कप + + + किल्ला-फुट + + + बुशल + + + गैलनां - {0}galIm - {0}galIm + इंपीरियल गैलनां - - {0}fl oz Im - {0}fl oz Im + + कुआर्ट + + + पिंट + + + कप + + + फ्लूइड औंस + + + टेबलस्पून + + + टी स्पून + + + बैरल + + + डेज़र्ट स्पून - {0}dsp-Imp - {0}dsp-Imp + इंपी. डेज़र्टस्पून + + + बूंद + + + ड्रैम फ्लूइड + + + जिगर + + + चूंडियां + + + इंपी. कुआर्ट + + + प्रधान दिशा + + + + + ग्रै-फोर्स + + + मीटर/सकिं² + + + घमघेरे + + + रेडियन + + + डिग्रियां + + + आर्क मिंट + + + आर्क सकिं + + + व. कि.मी. + + + हैक्टर + + + व. मीटर + + + व. सैं.मी. + + + व.मील + + + किल्ले + + + व.गज + + + व.फु. + + + व.इं॰ + + + डोनम + + + कैरट + + + मि॰ग्रा॰/डै.ली. + + + मिलीमोल/लीटर + + + हिस्से/दस लक्ख + + + प्रतिशत/फीसदी + + + फी ज्हार + + + मोल + + + लीटर/किमी + + + ली./100 कि.मी. + + + मील/गैल + + + मील/गैल इंपी. + + + पेबाइट + + + टैबाइट + + + गीबाइट + + + गीबिट + + + मैबाइट + + + मैबिट + + + किबाइट + + + किबिट + + + बाइट + + + बिट + + + स. + + + द्हा. + + + ब’रे/साल + + + त्रमा. + + + म्हीने + + + हफ्ते + + + दिन + + + घैंटे + + + मिं. + + + सकिं. + + + मिलीसकिं. + + + माइक्रोसकिं + + + नैनो सकिं + + + एंपी + + + मिलीएंप + + + ओम + + + वोल्ट + + + किकैल + + + कैल + + + किलो जूल + + + जूल + + + किवॉघैं + + + इलैक्ट्रॉनवोल्ट + + + ब्रिथयू + + + यूऐस्स थर्म + + + न्यूटन + + + पिक्सल + + + मैगापिक्सल + + + कि.मी. + + + मी. + + + डै.मी. + + + सैं.मी. + + + मि.मी. + + + मामी + + + नैमी + + + पिमी + + + मील + + + गज + + + फुट + + + इंच + + + पारसेक + + + रुशनाई ब’रे + + + खगो.यू. + + + फरलांग + + + मसातरां + + + नॉमी + + + लक्स + + + टन + + + कि.ग्रा. + + + ग्राम + + + मि.ग्रा. + + + मा.ग्रा. + + + स्टोन + + + पौंड + + + औं. + + + औं. ट्राय + + + कैरट + + + डाल्टन + + + डेढ रत्ती + + + मैवॉ + + + किवॉ + + + वॉट + + + मिवॉ + + + हापा + + + बार + + + पा. + + + किपा. + + + मेपा. + + + कि.मी./घैंटा + + + मीटर/सकिं + + + मील/घैंटा + + + नॉट + + + डिग्री सेल्सियस + + + डिग्री फारेनहाइट + + + न्यू.मी. + + + क्यू. कि.मी. + + + क्यू.मी. + + + क्यू.सैं.मी. + + + क्यू. मील + + + क्यू.ग. + + + क्यू. फुट + + + क्यू. इंच + + + मै.ली. + + + है.ली. + + + लीटर + + + डै.ली. + + + सैं.ली. + + + मि.ली. + + + मी.पिं. + + + मी.क. + + + किल्ला फु. + + + बुशल + + + गैल. + + + इंपी. गैल. + + + कुआर्ट + + + पिंट + + + कप + + + फ्लू. औं. + + + टेस्पून + + + टीस्पून + + + बैरल + + + डेस्पून + + + इंपी डेस्पून + + + बूंद + + + ड्रैम फ्लूइड + + + जिगर + + + चूंडी + + + कु इंपी + + + दिशा + + + + + ग्रै-फोर्स + + + मीटर/स² + + + घमघेरा + + + रेडि + + + डिग. + + + आर्क मिंट + + + आर्कसकिं + + + व. किमी + + + हैक्टर + + + व. मीटर + + + व.सैंमी + + + व.मील + + + किल्ला + + + वग + + + वफु + + + वइं + + + डोनम + + + कैरट + + + मि॰ग्रा॰/डैली + + + मिलीमोल/ली + + + हिफीदल + + + मोल + + + लीटर/किमी + + + ली/100 किमी + + + मील/गै + + + मी/गै यूके + {0}m/gUK + {0}m/gUK + + + पेबा + + + टैबा + + + टैबा + + + गीबा + + + गीबि + + + मैबा + + + मैबि + + + किबा + + + किबी + + + बा + + + बिट + + + स. + + + द्हा. + + + ब’रा/साल + + + त्रमा. + + + म्हीना + + + हफ् + + + दिन + + + घैंटा + + + मिं + + + सकिं + + + मि.सकिं + + + मासकिं + + + नैसकिं + + + एंपी + + + मिएं + + + ओम + + + वोल्ट + + + किकैल + + + कैल + + + किजू + + + जूल + + + किवॉघैं + + + इवो + + + ब्रिथयू + + + यूऐस्स थर्म + + + न्यू. + + + किवॉघैं/100किमी + {0}किल्लोवाट/100किमी + {0} किल्लोवाट/100किमी + + + किमी + + + मी + + + डैमी + + + सैंमी + + + मिमी + + + मील + + + ग. + + + फु. + + + इं. + + + पारसेक + + + रुब + + + खगोयू + + + फरलांग + + + मसातर + + + लक्स + + + टन + + + किग्रा + + + ग्राम + + + मिग्रा + + + माग्रा + + + स्टोन + + + पौंड + + + औं + + + औं.ट्रा + + + कैरट + + + डा + + + डे. रत्ती + + + मैवॉ + + + किवॉ + + + वॉट + + + मिवॉ + + + हापा + + + बार + + + पा + + + किपा + + + मेपा + + + किमी/घैं + + + मीटर/स + + + मील/घैं + + + नॉट + + + °से॰ + + + डिग्री फारेनहाइट + + + न्यू.मी. + + + क्यू.किमी + + + क्यू मी + + + क्यू सैंमी + + + क्यू मील + + + क्यूग + + + क्यूफु + + + क्यूइं + + + मैली + + + हैली + + + लीटर + + + डैली + + + सैली + + + मिली + + + मीपिं + + + मीक + + + किल्ला फु + + + बुशल + + + गैल + + + इंपी गैल + {0}galIm + {0}galIm + + + कुआर्ट + + + पिं. + + + कप + + + {0}fl oz Im + {0}fl oz Im + + + बैर. + + + {0}dsp-Imp + {0}dsp-Imp + + + बूंद + + + ड्रै.फ्लू. + + + जिगर + + + चूं + + + कु इंपी + + दिशा + diff --git a/make/data/cldr/common/main/dsb.xml b/make/data/cldr/common/main/dsb.xml index e36b50c2e4d..5c1ace89fe9 100644 --- a/make/data/cldr/common/main/dsb.xml +++ b/make/data/cldr/common/main/dsb.xml @@ -53,6 +53,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic bislamšćina binišćina siksikášćina + aniišćina bambara bengalšćina tibetšćina @@ -176,6 +177,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ibanšćina ibibiošćina indonešćina + interlinguešćina igbo sichuan yi inupiak @@ -231,6 +233,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic komišćina kornišćina kwakʼwalašćina + kuvišćina kirgišćina łatyńšćina ladinšćina @@ -239,8 +242,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic lezgianšćina gandšćina limburšćina + liguriańšćina lillooetšćina lakotšćina + lombardišćina lingala laošćina Louisiana kreolšćina @@ -251,7 +256,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic luba-katanga luba-luluašćina lundašćina - luo mizošćina luhya letišćina @@ -395,6 +399,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic kongojska swahilišćina comorianšćina syriacšćina + šlazyńšćina tamilšćina pódpołdnjowa tutchonšćina telugšćina @@ -434,9 +439,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic njeznata rěc urdušćina usbekšćina - vai vendašćina + venetišćina vietnamšćina + makhuwašćina volapük vunjo walonšćina @@ -447,6 +453,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic wu chinšćina kalmykšćina xhosa + kangrišćina soga yangben yembašćina @@ -2319,9 +2326,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kap Verde - - Curaçao - Gódowne kupy @@ -2410,6 +2414,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Biškek + + Enderbury + Komory @@ -2458,15 +2465,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Lissabon - - Asunción - Katar - - Réunion - Bukarest @@ -2515,9 +2516,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Mogadišu - - São Tomé - Damaskus @@ -2763,13 +2761,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Chinski lěśojski cas - - - Choibalsański cas - Choibalsański standardny cas - Choibalsański lěśojski cas - - cas Gódownych kupow @@ -3023,6 +3014,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Japański lěśojski cas + + + kazachiski cas + + Pódzajtšnokazachski cas @@ -3593,10 +3589,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 000 bil'.' ¤ - {0} {1} - {0} {1} - {0} {1} - {0} {1} @@ -6324,6 +6316,28 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} britiske běrtyle {0} britiskich běrtylow + + spěšnosć swětła + {0} spěšnosć swětła + {0} spěšnosći swětła + {0} spěšnosći swětła + {0} spěšnosćow swětła + + + miliardnina + {0} miliardnina + {0} miliardninje + {0} miliardniny + {0} miliardninow + + + pśenocowanja + {0} pśenocowanje + {0} pśenocowani + {0} pśenocowanja + {0} pśenocowanjow + {0} na pśenocowanje + njebjaski směr {0} pódzajtšo @@ -6740,6 +6754,28 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} šćipki {0} šćipkow + + spěšnosć sw. + {0} spěšnosć sw. + {0} spěšnosći sw. + {0} spěšnosći sw. + {0} spěšnosćow sw. + + + nano + {0} nano + {0} nano + {0} nano + {0} nano + + + nocy + {0} noc + {0} nocy + {0} nocy + {0} nocow + {0} na noc + směr {0} pz @@ -6810,6 +6846,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} šć {0} šć + + c + {0} c + {0} c + {0} c + {0} c + + + n + {0} n + {0} n + {0} n + {0} n + diff --git a/make/data/cldr/common/main/ee.xml b/make/data/cldr/common/main/ee.xml index 81b7f9cab68..01eed333c21 100644 --- a/make/data/cldr/common/main/ee.xml +++ b/make/data/cldr/common/main/ee.xml @@ -62,10 +62,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic dzola-fonyigbe dzongkhagbe embugbe - Eʋegbe + eʋegbe efigbe grisigbe - Yevugbe + iŋlisigbe Yevugbe (Australia) Yevugbe (Canada) Yevugbe (Britain) @@ -334,7 +334,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + @@ -795,14 +795,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic vaii digitwo - metric + dzidzeti uk us gbegbɔgblɔ {0} gbeŋɔŋlɔ {0} - memama {0} + nutome {0} @@ -1153,7 +1153,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic dzodze tedoxe afɔfĩe - dama + dame masa siamlɔm deasiamime @@ -1880,9 +1880,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} GMT - {0} gaƒoƒo me - {0} kele gaƒoƒo me - {0} nutome gaƒoƒo me + {0} game + {0} ŋkekemeɣeyiɣi + {0} game ɖoɖoea + + Honolulu + Xexeme gaƒoƒoɖoanyi me @@ -1922,9 +1925,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kiev - - Honolulu - Eker gaƒoƒome @@ -1963,7 +1963,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - West Africa gaƒoƒo me + West Africa game West Africa nutome gaƒoƒo me West Africa dzomeŋɔli gaƒoƒo me @@ -2189,13 +2189,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic China kele gaƒoƒo me - - - Choibalsan gaƒoƒo me - Choibalsan nutome gaƒoƒo me - Choibalsan dzomeŋɔli gaƒoƒo me - - Christmas Island gaƒoƒo me diff --git a/make/data/cldr/common/main/el.xml b/make/data/cldr/common/main/el.xml index 9ad122deba5..c7b4b2ca21a 100644 --- a/make/data/cldr/common/main/el.xml +++ b/make/data/cldr/common/main/el.xml @@ -70,6 +70,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Μπίνι Κομ Σικσίκα + Ανίι Μπαμπάρα Βεγγαλικά Θιβετιανά @@ -296,6 +297,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Κόμι Κορνουαλικά Κουακουάλα + Κούβι Κιργιζικά Λατινικά Λαδίνο @@ -306,8 +308,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Λεζγκικά Γκάντα Λιμβουργιανά + Λιγουριανά Λιλουέτ Λακότα + Λομβαρδικά Λινγκάλα Λαοτινά Μόνγκο @@ -501,6 +505,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Κομοριανά Κλασικά Συριακά Συριακά + Σιλεσικά Ταμιλικά Νότια Τουτσόνε Τελούγκου @@ -550,7 +555,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ουζμπεκικά Βάι Βέντα + Βενετικά Βιετναμικά + Μακούα Βολαπιούκ Βότικ Βούντζο @@ -564,6 +571,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Κινεζικά Γου Καλμίκ Κόσα + Κάνγκρι Σόγκα Γιάο Γιαπίζ @@ -1243,7 +1251,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2576,6 +2584,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Θερινή ώρα ({0}) Χειμερινή ώρα ({0}) [{1} ({0})] + + Χονολουλού + Συντονισμένη Παγκόσμια Ώρα @@ -3313,9 +3324,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ουλάν Μπατόρ - - Τσοϊμπαλσάν - Μακάο @@ -3712,9 +3720,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Νόμε - - Χονολουλού - Άνκορατζ @@ -4066,13 +4071,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Θερινή ώρα Κίνας - - - Ώρα Τσοϊμπαλσάν - Χειμερινή ώρα Τσοϊμπαλσάν - Θερινή ώρα Τσοϊμπαλσάν - - Ώρα Νήσου Χριστουγέννων @@ -4338,6 +4336,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Θερινή ώρα Πετροπαβλόβσκ-Καμτσάτσκι + + + Ώρα Καζακστάν + + Ώρα Ανατολικού Καζακστάν @@ -4874,8 +4877,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 τρισ'.' ¤ - {0} {1} - {0} {1} @@ -6605,9 +6606,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} καρατίων + neuter χιλιοστόγραμμα ανά δεκατόλιτρο {0} χιλιοστόγραμμο ανά δεκατόλιτρο + {0} χιλιοστόγραμμο ανά δεκατόλιτρο + {0} χιλιοστόγραμμου ανά δεκατόλιτρο {0} χιλιοστόγραμμα ανά δεκατόλιτρο + {0} χιλιοστόγραμμα ανά δεκατόλιτρο + {0} χιλιοστόγραμμων ανά δεκατόλιτρο neuter @@ -6789,10 +6795,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} kilobit - neuter + neuter - neuter + neuter masculine @@ -6815,7 +6821,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} δεκαετιών - neuter + neuter {0} έτος {0} έτος {0} έτους @@ -6835,7 +6841,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} τέταρτων - masculine + masculine {0} μήνας {0} μήνα {0} μήνα @@ -6874,7 +6880,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ημερών - feminine + feminine {0} ώρα {0} ώρα {0} ώρας @@ -6976,9 +6982,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} βολτ + feminine χιλιοθερμίδες {0} χιλιοθερμίδα + {0} χιλιοθερμίδα + {0} χιλιοθερμίδας {0} χιλιοθερμίδες + {0} χιλιοθερμίδες + {0} χιλιοθερμίδων feminine @@ -7300,8 +7311,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} σκανδιναβικών μιλίων + feminine {0} στιγμή + {0} στιγμή + {0} στιγμής {0} στιγμές + {0} στιγμές + {0} στιγμών ακτίνες του Ήλιου @@ -7490,9 +7506,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ίπποι + neuter χιλιοστόμετρα στήλης υδραργύρου {0} χιλιοστόμετρο στήλης υδραργύρου + {0} χιλιοστόμετρο στήλης υδραργύρου + {0} χιλιοστομέτρου στήλης υδραργύρου {0} χιλιοστόμετρα στήλης υδραργύρου + {0} χιλιοστόμετρα στήλης υδραργύρου + {0} χιλιοστόμετρων στήλης υδραργύρου λίβρες ανά τετραγωνική ίντσα @@ -7598,9 +7619,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} κόμβοι + neuter μποφόρ {0} μποφόρ + {0} μποφόρ + {0} μποφόρ {0} μποφόρ + {0} μποφόρ + {0} μποφόρ masculine @@ -7878,6 +7904,37 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} αγγλοσαξονικό τέταρτο του γαλονιού {0} αγγλοσαξονικά τέταρτα του γαλονιού + + neuter + φως + {0} φως + {0} φως + φωτός + {0} φως + {0} φως + {0} φωτός + + + neuter + μέρη στο δισεκατομμύριο + {0} μέρος στο δισεκατομμύριο + {0} μέρος στο δισεκατομμύριο + {0} μέρους στο δισεκατομμύριο + {0} μέρη στο δισεκατομμύριο + {0} μέρη στο δισεκατομμύριο + {0} μερών στο δισεκατομμύριο + + + feminine + νύχτες + {0} νύχτα + {0} νύχτα + {0} νύχτας + {0} νύχτες + {0} νύχτες + {0} νυχτών + {0}/νύχτα + σημεία ορίζοντα {0} ανατολικά @@ -8606,6 +8663,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} αγγλ. τέτ. γαλ. {0} αγγλ. τέτ. γαλ. + + φως + {0} φως + {0} φως + + + μέρη/δισεκατομμύριο + + + νύχτ. + {0} νύχτ. + {0} νύχτ. + {0}/νύχτ. + σημείο {0} Α @@ -8696,7 +8767,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ° - + {0}′ {0}′ @@ -8755,7 +8826,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ mpg - PB + PB έτ. @@ -8898,7 +8969,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ γρ. - τ. ΗΠΑ + τ. ΗΠΑ λβ @@ -8907,16 +8978,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ oz t - κρτ + κρτ - Da + Da - M⊕ + M⊕ - M☉ + M☉ GW @@ -8965,7 +9036,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ °F - yd³ + yd³ λίτρο @@ -8983,24 +9054,35 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} μ. κύπ. - ακρ πδ + ακρ πδ - τέτ. γαλ. + τέτ. γαλ. - πντ + πντ - βρλ + βρλ - αγγλ. κ.φρ. - {0} αγγλ. κ.φρ. - {0} αγγλ. κ.φρ. + αγγλ. κ.φρ. + {0} αγγλ. κ.φρ. + {0} αγγλ. κ.φρ. - δρ. όγκου + δρ. όγκου + + + φώς + {0} φως + {0} φως + + + νύχτ. + {0} νύχτ. + {0} νύχτ. + {0}/νύχτ. σημεία diff --git a/make/data/cldr/common/main/en.xml b/make/data/cldr/common/main/en.xml index 3b65dba4424..ee29e6f48d9 100644 --- a/make/data/cldr/common/main/en.xml +++ b/make/data/cldr/common/main/en.xml @@ -239,7 +239,6 @@ annotations. Middle High German Guarani Old High German - Goan Konkani Gondi Gorontalo Gothic @@ -427,6 +426,7 @@ annotations. Mundang Multiple languages Muscogee + Mvskoke Mirandese Marwari Mentawai @@ -755,6 +755,7 @@ annotations. + @@ -764,6 +765,7 @@ annotations. + @@ -797,6 +799,7 @@ annotations. + @@ -839,6 +842,7 @@ annotations. + @@ -875,6 +879,7 @@ annotations. + @@ -896,7 +901,9 @@ annotations. + + @@ -1535,12 +1542,14 @@ annotations. Ethiopic Numerals Financial Numerals Full-Width Digits + Garay Digits Georgian Numerals Gunjala Gondi digits Masaram Gondi digits Greek Numerals Greek Lowercase Numerals Gujarati Digits + Gurung Khema Digits Gurmukhi Digits Chinese Calendar Day-of-Month Numerals Chinese Decimal Numerals @@ -1559,6 +1568,7 @@ annotations. Kawi Digits Khmer Digits Kannada Digits + Kirat Rai Digits Tai Tham Hora Digits Tai Tham Tham Digits Lao Digits @@ -1576,6 +1586,8 @@ annotations. Mro Digits Meetei Mayek Digits Myanmar Digits + Myanmar Eastern Pwo Karen Digits + Myanmar Pao Digits Myanmar Shan Digits Myanmar Tai Laing Digits Nag Mundari Digits @@ -1583,8 +1595,10 @@ annotations. Newa Digits N’Ko Digits Ol Chiki Digits + Ol Onal Digits Odia Digits Osmanya Digits + Outlined Digits Hanifi Rohingya digits Roman Numerals Roman Lowercase Numerals @@ -1595,6 +1609,7 @@ annotations. Sinhala Lith Digits Sora Sompeng Digits Sundanese Digits + Sunuwar Digits Takri Digits New Tai Lue Digits Traditional Tamil Numerals @@ -3897,6 +3912,13 @@ annotations. {0} Daylight Time {0} Standard Time {1} ({0}) + + + HST + HST + HDT + + Coordinated Universal Time @@ -3918,13 +3940,6 @@ annotations. Kostanay - - - HST - HST - HDT - - Ho Chi Minh City @@ -4213,13 +4228,6 @@ annotations. China Daylight Time - - - Choibalsan Time - Choibalsan Standard Time - Choibalsan Summer Time - - Christmas Island Time @@ -4485,6 +4493,11 @@ annotations. Petropavlovsk-Kamchatski Summer Time + + + Kazakhstan Time + + East Kazakhstan Time @@ -6614,10 +6627,15 @@ annotations. Zimbabwean dollar (1980–2008) Zimbabwean dollars (1980–2008) + + Zimbabwean Gold + Zimbabwean gold + Zimbabwean gold + - Zimbabwean Dollar (2009) - Zimbabwean dollar (2009) - Zimbabwean dollars (2009) + Zimbabwean Dollar (2009–2024) + Zimbabwean dollar (2009–2024) + Zimbabwean dollars (2009–2024) Zimbabwean Dollar (2008) @@ -7703,6 +7721,22 @@ annotations. {0} of gasoline equivalent {0} of gasoline equivalent + + light + {0} light + {0} light + + + parts per billion + {0} part per billion + {0} parts per billion + + + nights + {0} night + {0} nights + {0} per night + cardinal direction {0} east @@ -8775,6 +8809,22 @@ annotations. {0} gas-equiv {0} gas-equiv + + light + {0} light + {0} light + + + parts/billion + {0} ppb + {0} ppb + + + nights + {0} night + {0} nights + {0}/night + direction {0} E @@ -9846,6 +9896,22 @@ annotations. {0}gas-equiv {0}gas-equiv + + light + {0}light + {0}light + + + ppb + {0}ppb + {0}ppb + + + nights + {0}night + {0}nights + {0}/night + direction {0}E diff --git a/make/data/cldr/common/main/en_001.xml b/make/data/cldr/common/main/en_001.xml index 45f042ae31a..944fdc84b79 100644 --- a/make/data/cldr/common/main/en_001.xml +++ b/make/data/cldr/common/main/en_001.xml @@ -778,6 +778,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + ∅∅∅ + ∅∅∅ + ∅∅∅ + + St Barthélemy @@ -799,13 +806,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ St Helena - - - ∅∅∅ - ∅∅∅ - ∅∅∅ - - St Vincent @@ -1021,7 +1021,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} kilowatt-hour - kilowatt-hour per 100 kilometres + kilowatt-hours per 100 kilometres {0} kilowatt-hour per 100 kilometres {0} kilowatt-hours per 100 kilometres @@ -1051,7 +1051,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} per metre - decimetre + decimetres {0} decimetre {0} decimetres @@ -1067,7 +1067,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} millimetres - micrometre + micrometres {0} micrometre {0} micrometres @@ -1118,7 +1118,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} metres per second - degree + degrees kelvin @@ -1206,17 +1206,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} fluid ounces - US dessertspoon + US dessertspoons {0} US dessertspoon {0} US dessertspoons - dessertspoon + dessertspoons {0} dessertspoon {0} dessertspoons - quart + quarts {0} quart {0} quarts @@ -1229,7 +1229,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} revs - metres² + carats @@ -1284,9 +1284,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} sec {0} secs - - metres - μmetres @@ -1297,10 +1294,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ct {0} ct - - {0} grains - {0} grains - metres/sec @@ -1373,14 +1366,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} dstspn - {0} drops + {0} drop {0} drops dram - {0} pinches + {0} pinch {0} pinches @@ -1390,8 +1383,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + {0}G + - metres² + carat @@ -1428,23 +1424,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}mpg {0}mpg - - metre - {0}lb {0}lb + + {0}ct + {0}ct + km/h mph - - {0}° - {0}° - {0}°F {0}°F @@ -1482,9 +1475,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ US gal - {0}galUS - {0}galUS - {0}/galUS + {0}USgal + {0}USgal + {0}/USgal gal @@ -1492,6 +1485,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}gal {0}/gal + + USqt + {0}USqt + {0}USqt + US fl oz {0}US fl oz diff --git a/make/data/cldr/common/main/en_AU.xml b/make/data/cldr/common/main/en_AU.xml index bc112f81d07..ab2bc8069d9 100644 --- a/make/data/cldr/common/main/en_AU.xml +++ b/make/data/cldr/common/main/en_AU.xml @@ -228,7 +228,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - EEEE d MMMM y + EEEE, d MMMM y @@ -292,7 +292,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - d/M/y GGGGG EEEE d MMM y G d/M E, d/M @@ -794,16 +793,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic kilometre - - micrometres - pounds per square inch {0} pound per square inch {0} pounds per square inch - degrees {0} degree {0} degrees @@ -856,24 +851,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} m.p.g. - C. - {0} C. - {0} C. - - - sec. - {0} sec. - {0} secs - {0} ps. - - - millisec. - - - μsec. - - - nanosec. + C + {0} C + {0} C Cal @@ -993,30 +973,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}L/100km - C. - {0}C. - {0}C. - - - sec. - {0}s. - {0}s. - {0} ps. - - - msec. - - - μsec. + C + {0}C + {0}C {0} km/h {0} km/h - - {0}°C - {0}°C - ML {0}ML diff --git a/make/data/cldr/common/main/en_BS.xml b/make/data/cldr/common/main/en_BS.xml index 606935e8738..7d61e251960 100644 --- a/make/data/cldr/common/main/en_BS.xml +++ b/make/data/cldr/common/main/en_BS.xml @@ -20,10 +20,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - {0}°C - {0}°C - {0}° {0}° diff --git a/make/data/cldr/common/main/en_BZ.xml b/make/data/cldr/common/main/en_BZ.xml index bf6cd9c6cd1..8301db0f0ba 100644 --- a/make/data/cldr/common/main/en_BZ.xml +++ b/make/data/cldr/common/main/en_BZ.xml @@ -203,10 +203,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - {0}°C - {0}°C - {0}° {0}° diff --git a/make/data/cldr/common/main/en_CA.xml b/make/data/cldr/common/main/en_CA.xml index f5e62a7157c..aa475a80126 100644 --- a/make/data/cldr/common/main/en_CA.xml +++ b/make/data/cldr/common/main/en_CA.xml @@ -1040,9 +1040,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Saint Kitts - - Aktau - Saint Lucia @@ -1084,59 +1081,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic Eastern Daylight Saving Time - - - Mountain Time - Mountain Standard Time - Mountain Daylight Saving Time - - - - - Pacific Time - Pacific Standard Time - Pacific Daylight Saving Time - - - - - Apia Time - Apia Standard Time - Apia Daylight Saving Time - - - - - Arabian Time - Arabian Standard Time - Arabian Daylight Saving Time - - ART - - - Atlantic Time - Atlantic Standard Time - Atlantic Daylight Saving Time - - - - - Central Australia Time - Australian Central Standard Time - Australian Central Daylight Saving Time - - - - Australian Central Western Time - Australian Central Western Standard Time - Australian Central Western Daylight Saving Time - ACWT ACWST @@ -1144,11 +1094,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - Eastern Australia Time - Australian Eastern Standard Time - Australian Eastern Daylight Saving Time - AET AEST @@ -1156,11 +1101,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - Western Australia Time - Australian Western Standard Time - Australian Western Daylight Saving Time - AWST AWDT @@ -1188,23 +1128,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - Chatham Time - Chatham Standard Time - Chatham Daylight Saving Time - CHAST CHADT - - - China Time - China Standard Time - China Daylight Saving Time - - CXT @@ -1220,13 +1148,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic COST - - - Cuba Time - Cuba Standard Time - Cuba Daylight Saving Time - - TLT @@ -1264,18 +1185,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic EGT + + + Gulf Time + + GYT - - - Hawaii-Aleutian Time - Hawaii-Aleutian Standard Time - Hawaii-Aleutian Daylight Saving Time - - IST @@ -1312,34 +1231,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic IRDT - - - Israel Time - Israel Standard Time - Israel Daylight Saving Time - - - - - Japan Time - Japan Standard Time - Japan Daylight Saving Time - - - - - Korean Time - Korean Standard Time - Korean Daylight Saving Time - - - - - Lord Howe Time - Lord Howe Standard Time - Lord Howe Daylight Saving Time - - MYT @@ -1350,44 +1241,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic MVT - - - Mexican Pacific Time - Mexican Pacific Standard Time - Mexican Pacific Daylight Saving Time - - NPT - - - New Zealand Time - New Zealand Standard Time - New Zealand Daylight Saving Time - - - - Newfoundland Time - Newfoundland Standard Time - Newfoundland Daylight Saving Time - NT NST NDT - - - Norfolk Island Time - Norfolk Island Standard Time - Norfolk Island Daylight Saving Time - - FNT @@ -1425,14 +1290,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Samoa Time Samoa Standard Time - Samoa Daylight Saving Time - - - - - Taipei Time - Taipei Standard Time - Taipei Daylight Saving Time + Samoan Time @@ -1469,11 +1327,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Belarusian new rouble (1994–1999) Belarusian new roubles (1994–1999) - - Belarusian Rouble - Belarusian rouble - Belarusian roubles - Belarusian Rouble (2000–2016) Belarusian rouble (2000–2016) @@ -1490,11 +1343,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Latvian rouble Latvian roubles - - Russian Rouble - Russian rouble - Russian roubles - Russian Rouble (1991–1998) Russian rouble (1991–1998) @@ -1795,7 +1643,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} fluid ounces - US dessertspoon {0} US dessertspoon {0} US dessertspoons @@ -1846,9 +1693,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic millimoles/litre - - items - per mille @@ -1875,12 +1719,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} mpg - bytes {0} byte {0} bytes - bits {0} bit {0} bits @@ -2034,11 +1876,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} fl oz {0} fl oz - - US dssp - {0} US dssp - {0} US dssp - dssp {0} dssp @@ -2114,9 +1951,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic A - - Ω - V @@ -2190,11 +2024,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}fl oz {0}fl oz - - US dsp - {0}USdsp - {0}USdsp - dsp {0}dsp diff --git a/make/data/cldr/common/main/en_Dsrt.xml b/make/data/cldr/common/main/en_Dsrt.xml index 4bbce7fe942..8f8a739bc69 100644 --- a/make/data/cldr/common/main/en_Dsrt.xml +++ b/make/data/cldr/common/main/en_Dsrt.xml @@ -691,6 +691,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic 𐐘𐐣𐐓 {0} 𐐘𐐣𐐓 {0} 𐐓𐐴𐑋 + + 𐐐𐐪𐑌𐐲𐑊𐐭𐑊𐐭 + 𐐊𐑌𐑌𐐬𐑌 @@ -706,9 +709,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 𐐤𐐬𐑋 - - 𐐐𐐪𐑌𐐲𐑊𐐭𐑊𐐭 - 𐐁𐑍𐐿𐐲𐑉𐐮𐐾 diff --git a/make/data/cldr/common/main/en_GB.xml b/make/data/cldr/common/main/en_GB.xml index 80f1237b319..8469b5eccbd 100644 --- a/make/data/cldr/common/main/en_GB.xml +++ b/make/data/cldr/common/main/en_GB.xml @@ -19,55 +19,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - - - EEEE d MMMM y G - - - - - d MMMM y G - - - - - d MMM y G - - - - - dd/MM/y GGGGG - - - - - - {1}, {0} - - - - - {1}, {0} - - - - - {1}, {0} - - - - - {1}, {0} - - - EEEE d MMM y G + EEEE, d MMM y G + E dd/MM + E d MMM EEEE d MMM EEEE d MMMM - EEEE d MMM y G - EEEE d MMMM y G + EEEE, d MMM y G + EEEE, d MMMM y G @@ -99,7 +59,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - EEEE d MMMM y + EEEE, d MMMM y @@ -167,11 +127,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic dd/MM/y G - EEEE d MMM y G + EEEE, d MMM y G + E dd/MM + E d MMM EEEE d MMM EEEE d MMMM - EEEE d MMM y - EEEE d MMMM y + EEEE, d MMM y + EEEE, d MMMM y @@ -203,8 +165,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic E d + EEEE, d MMM y G LL MM/y GGGGG + EEEE, d MMM y G + EEEE, d MMMM y G @@ -245,6 +210,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic WEST + + + GST + + diff --git a/make/data/cldr/common/main/en_IN.xml b/make/data/cldr/common/main/en_IN.xml index e92b09a0f35..68543b3ca1c 100644 --- a/make/data/cldr/common/main/en_IN.xml +++ b/make/data/cldr/common/main/en_IN.xml @@ -30,7 +30,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - EEEE d MMMM, y G + EEEE, d MMMM y G @@ -83,20 +83,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic MMM, y G d MMM, y G E, d MMM, y G - EEEE d MMM, y G + EEEE, d MMM y G d/M E, d/M - EEEE d MMM - EEEE d MMMM + EEEE, d MMM + EEEE, d MMMM M/y GGGGG d/M/y G E, d/M/y GGGGG MMM, y G d MMM, y G E, d MMM, y G - EEEE d MMM, y G + EEEE, d MMM y G MMMM, y G - EEEE d MMMM, y G + EEEE, d MMMM y G @@ -159,7 +159,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - EEEE d MMMM, y + EEEE, d MMMM y @@ -232,14 +232,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic E, h:mm:ss a E, h:mm:ss a E, HH:mm:ss - EEEE d MMM, y G - EEEE d MMM - EEEE d MMMM + EEEE, d MMM y G + EEEE, d MMM + EEEE, d MMMM d/M/y E, d/M/y E, d MMM, y - EEEE d MMM, y - EEEE d MMMM, y + EEEE, d MMM y + EEEE, d MMMM y @@ -303,27 +303,42 @@ CLDR data files are interpreted according to the LDML specification (http://unic MMM, y G d MMM, y G E, d MMM, y G + EEEE d MMM y G d/M E, d/M + EEE, d MMM + d EEEE MMMM d/M/y G E d/M/y G MMM, y G d MMM, y G E, d MMM, y G + EEEE, d MMM y MMMM, y G + EEEE, d MMMM y - - Rangoon + + Kyzylorda + + + Khovd - GST + GST + + + Khovd Time + Khovd Standard Time + Khovd Summer Time + + IST @@ -428,18 +443,43 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + Kyrgyzstani Som + Kyrgyzstani som + Kyrgyzstani soms + + + Kazakhstani Tenge + Kazakhstani Tenges + + + Sierra Leonean Leone + Sierra Leonean Leones + + + Tajikistani Somoni + Tajikistani Somonis + + + Turkmenistani Manat + Turkmenistani Manat + $ + + Uzbekistani Som + Uzbekistani Som + Venezuelan Bolívar Venezuelan bolívar Venezuelan bolívars - VES - VES - VES + VEF + VEF + VEF @@ -449,6 +489,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} earth radius {0} earth radius + + metric tonnes + ° {0}° diff --git a/make/data/cldr/common/main/en_KY.xml b/make/data/cldr/common/main/en_KY.xml index 63702387fea..578853384ad 100644 --- a/make/data/cldr/common/main/en_KY.xml +++ b/make/data/cldr/common/main/en_KY.xml @@ -20,10 +20,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - {0}°C - {0}°C - {0}° {0}° diff --git a/make/data/cldr/common/main/en_PW.xml b/make/data/cldr/common/main/en_PW.xml index 0e6fc103956..9dc9d40e06c 100644 --- a/make/data/cldr/common/main/en_PW.xml +++ b/make/data/cldr/common/main/en_PW.xml @@ -13,10 +13,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - {0}°C - {0}°C - {0}° {0}° diff --git a/make/data/cldr/common/main/en_ZA.xml b/make/data/cldr/common/main/en_ZA.xml index 7bc2afaeaba..77d04450056 100644 --- a/make/data/cldr/common/main/en_ZA.xml +++ b/make/data/cldr/common/main/en_ZA.xml @@ -235,6 +235,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + , + . +   + , + + + + + ¤#,##0.00 + + + R diff --git a/make/data/cldr/common/main/eo.xml b/make/data/cldr/common/main/eo.xml index 4373940cfca..977ff2dc091 100644 --- a/make/data/cldr/common/main/eo.xml +++ b/make/data/cldr/common/main/eo.xml @@ -31,7 +31,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic arapaha araba naĝda asama - asturia + astura atikameka avara avadhia @@ -50,6 +50,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic bislamo edoa siksika + aniia bambara bengala tibeta @@ -224,8 +225,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic lezga ganda limburga + ligura lilueta lakota + lombarda lingala laŭa luiziana kreola @@ -310,6 +313,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic piĵina pola malesita-pasamakvodja + prusa paŝtua portugala portugala brazila @@ -404,7 +408,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic uzbeka vaja vendaa + venecia vjetnama + makua Volapuko kivunja valona @@ -414,6 +420,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic vua kalmuka ksosa + kangra soga jida joruba @@ -543,7 +550,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Bermudoj Brunejo Bolivio - Karibia Nederlando + Kariba Nederlando Brazilo Bahamoj Butano @@ -566,6 +573,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ĉinujo Kolombio Klipertono + Sark Kostariko Kubo Kaboverdo @@ -573,6 +581,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kristnaskinsulo Kipro Ĉeĥujo + Ĉeĥa Respubliko Germanujo Diego Garcia Ĝibutio @@ -782,6 +791,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Zimbabvo nekonata regiono + + Arkaika + h-sistemo + x-sistemo + kalendaro formo de valuto @@ -825,6 +839,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic [A B C Ĉ D E F G Ĝ H Ĥ I J Ĵ K L M N O P R S Ŝ T U Ŭ V Z] [  , % ‰ + − 0 1 2 3 4 5 6 7 8 9] [\- ‐‑ – — , ; \: ! ? . … '‘’ "“” ( ) \[ \] \{ \} /] + {0}… + …{0} @@ -1055,20 +1071,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - Jan - Feb - Mar - Apr - Maj - Jun - Jul - Aŭg - Sep - Okt - Nov - Dec - J F @@ -1931,6 +1933,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic tempo de {0} somera tempo de {0} norma tempo de {0} + + + universala tempo kunordigita + + nekonata urbo @@ -1940,6 +1947,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Dubajurbo + + Kabulo + Antigvo @@ -1955,17 +1965,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic Luando + + Showa + Río Gallegos Saltaurbo - - San Salvador de Jujuy - - San Miguel de Tucumán + Tucumán Kordobo @@ -1973,6 +1983,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Bonaero + + Pagopago + Vieno @@ -2009,6 +2022,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Barbado + + Dako + Bruselo @@ -2024,6 +2040,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Buĵumburo + + Portonovo + Sankta Bartolomeo @@ -2033,9 +2052,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Brunejo - - La-Pazo - Eirunepé @@ -2055,7 +2071,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic Araguaína - San-Paŭlo + Sanpaŭlo + + + Bahio Fortalezo @@ -2069,6 +2088,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Nasaŭo + + Timbuo + Gaborono @@ -2084,6 +2106,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Edmontono + + Kembriĝa Golfo + Vinipego @@ -2117,6 +2142,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Abiĝano + + Rarotongo + Paskinsulo @@ -2199,14 +2227,23 @@ CLDR data files are interpreted according to the LDML specification (http://unic Madrido - Adis-Abebo + Adisabebo Helsinko + + Fiĝio + Stanlejo + + Ĉuuk + + + Ponape + Ferooj @@ -2217,6 +2254,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Librevilo + + brita somera tempo + Londono @@ -2261,6 +2301,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Gvatemalo + + Gvamo + Bisaŭo @@ -2286,6 +2329,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ĝakarto + + irlanda norma tempo + Dublino @@ -2294,12 +2340,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic Mankinsulo + + Kolkato + Ĉagosoj Bagdado + + Teherano + Rejkjaviko @@ -2327,6 +2379,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Pnompeno + + Taravo + Komoroj @@ -2378,6 +2433,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Vaduzo + + Kolombo + Monrovio @@ -2423,12 +2481,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ulanbatoro - - Ĉoibalsan - Makao + + Saipano + Martiniko @@ -2444,6 +2502,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Maŭricio + + Maldivoj + Mazatlán @@ -2460,11 +2521,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kankuno - Kuala-Lumpuro + Kualalumpuro Vindhuko + + Numeo + Niamejo @@ -2480,9 +2544,21 @@ CLDR data files are interpreted according to the LDML specification (http://unic Amsterdamo + + Katmanduo + + + Nauro + + + Niuo + Ĉathamo + + Aŭklando + Maskato @@ -2492,20 +2568,32 @@ CLDR data files are interpreted according to the LDML specification (http://unic Limo + + Tahitio + + + Markizinsuloj + Manilo + + Karaĉio + Varsovio Mikelono + + Pitkarna Insulo + Puertoriko - Gaza-urbo + Gazao Hebrono @@ -2519,6 +2607,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Lisbono + + Palaŭo + Asunciono @@ -2684,6 +2775,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Portospeno + + Funafutio + Tajpeo @@ -2699,6 +2793,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kampalo + + Midvejinsuloj + + + Vejkinsulo + Losanĝeleso @@ -2774,6 +2874,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic Hoĉimino + + Valiso + + + Apio + Adeno @@ -2789,6 +2895,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Harareo + + + afgana tempo + + centrafrika tempo @@ -2853,6 +2964,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic pacifika nordamerika somera tempo + + + tempo: Apio + Apio (norma tempo) + Apio (somera tempo) + + araba tempo @@ -2925,11 +3043,23 @@ CLDR data files are interpreted according to the LDML specification (http://unic - horzono Acoroj + tempo: Acoroj Acoroj (norma tempo) Acoroj (somera tempo) + + + bangladeŝa tempo + bangladeŝa norma tempo + bangladeŝa somera tempo + + + + + butana tempo + + bolivia tempo @@ -2954,6 +3084,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic kaboverda somera tempo + + + ĉamora tempo + + ĉathama tempo @@ -2975,13 +3110,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ĉina somera tempo - - - horzono Ĉoibalsan - Ĉoibalsan (norma tempo) - Ĉoibalsan (somera tempo) - - kristnaskinsula tempo @@ -2999,26 +3127,33 @@ CLDR data files are interpreted according to the LDML specification (http://unic kolombia somera tempo + + + kukinsula tempo + kukinsula norma tempo + kukinsula somera tempo + + - horzono Kubo + tempo: Kubo Kubo (norma tempo) Kubo (somera tempo) - horzono Davis + tempo: Davis - horzono Dumont-d’Urville + tempo: Dumont d’Urville - orienttimora tempo + orient-timora tempo @@ -3066,14 +3201,21 @@ CLDR data files are interpreted according to the LDML specification (http://unic falklanda somera tempo + + + fiĝia tempo + fiĝia norma tempo + fiĝia somera tempo + + - horzono Franca Gviano + tempo: Franca Gujano - horzono Francaj Sudaj Teritorioj + tempo: Francaj Sudaj Teritorioj @@ -3081,6 +3223,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic galapaga tempo + + + tempo: Gambier + + kartvela tempo @@ -3088,6 +3235,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic kartvela somera tempo + + + gilbertinsula tempo + + universala tempo kunordigita @@ -3109,7 +3261,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - golfa norma tempo + arabgolfa norma tempo @@ -3119,7 +3271,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - horzono Havajo-Aleutoj + tempo: Havajo-Aleutoj Havajo-Aleutoj (norma tempo) Havajo-Aleutoj (somera tempo) @@ -3140,7 +3292,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - barata tempo + hinda norma tempo @@ -3155,17 +3307,24 @@ CLDR data files are interpreted according to the LDML specification (http://unic - centra indonezia tempo + centr-indonezia tempo - orienta indonezia tempo + orient-indonezia tempo - okcidenta indonezia tempo + okcident-indonezia tempo + + + + + irana tempo + irana norma tempo + irana somera tempo @@ -3189,14 +3348,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic japana somera tempo + + + kazaĥa tempo + + - orienta kazaĥa tempo + orient-kazaĥa tempo - okcidenta kazaĥa tempo + okcident-kazaĥa tempo @@ -3206,6 +3370,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic korea somera tempo + + + tempo: Kosrae + + krasnojarska tempo @@ -3218,9 +3387,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic kirgiza tempo + + + tempo: Liniaj Insuloj + + - horzono Lord Howe + tempo: Lord Howe Lord Howe (norma tempo) Lord Howe (somera tempo) @@ -3237,6 +3411,21 @@ CLDR data files are interpreted according to the LDML specification (http://unic malajzia tempo + + + maldiva tempo + + + + + markizinsula tempo + + + + + marŝalinsula tempo + + maŭricia tempo @@ -3244,6 +3433,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic maŭricia somera tempo + + + tempo: Mawson + + pacifika meksika tempo @@ -3270,6 +3464,23 @@ CLDR data files are interpreted according to the LDML specification (http://unic birma tempo + + + naura tempo + + + + + nepala tempo + + + + + novkaledonia tempo + novkaledonia norma tempo + novkaledonia somera tempo + + novzelanda tempo @@ -3279,11 +3490,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic - horzono Novlando + tempo: Novlando Novlando (norma tempo) Novlando (somera tempo) + + + niua tempo + + norfolkinsula tempo @@ -3293,7 +3509,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - horzono Fernando de Noronha + tempo: Fernando de Noronha Fernando de Noronha (norma tempo) Fernando de Noronha (somera tempo) @@ -3312,6 +3528,23 @@ CLDR data files are interpreted according to the LDML specification (http://unic omska somera tempo + + + pakistana tempo + pakistana norma tempo + pakistana somera tempo + + + + + palaŭa tempo + + + + + tempo: Papuo-Nov-Gvineo + + paragvaja tempo @@ -3333,13 +3566,28 @@ CLDR data files are interpreted according to the LDML specification (http://unic filipina somera tempo + + + feniksinsula tempo + + - horzono Sankta Piero kaj Mikelono + tempo: Sankta Piero kaj Mikelono Sankta Piero kaj Mikelono (norma tempo) Sankta Piero kaj Mikelono (somera tempo) + + + pitkarninsula tempo + + + + + tempo: Ponape + + pjongjanga tempo @@ -3347,7 +3595,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic - horzono Reunio + tempo: Reunio + + + + + tempo: Rothera @@ -3357,6 +3610,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic saĥalena somera tempo + + + samoa tempo + samoa norma tempo + samoa somera tempo + + sejŝela tempo @@ -3367,9 +3627,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic singapura norma tempo + + + tempo: Salomonoj + + - horzono Sud-Georgio + tempo: Sud-Georgio @@ -3377,6 +3642,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic surinama tempo + + + tempo: Showa + + + + + tahitia tempo + + tajpea tempo @@ -3389,6 +3664,23 @@ CLDR data files are interpreted according to the LDML specification (http://unic taĝika tempo + + + tokelaa tempo + + + + + tonga tempo + tonga norma tempo + tonga somera tempo + + + + + tempo: Ĉuuk + + turkmena tempo @@ -3396,6 +3688,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic turkmena somera tempo + + + tuvala tempo + + urugvaja tempo @@ -3410,6 +3707,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic uzbeka somera tempo + + + vanuatua tempo + vanuatua norma tempo + vanuatua somera tempo + + venezuela tempo @@ -3429,6 +3733,21 @@ CLDR data files are interpreted according to the LDML specification (http://unic volgograda somera tempo + + + tempo: Vostok + + + + + vejkinsula tempo + + + + + tempo: Valiso kaj Futuno + + jakutska tempo @@ -3454,135 +3773,836 @@ CLDR data files are interpreted according to the LDML specification (http://unic ,   + + + + + + 0 mil + 0 mil + 00 mil + 00 mil + 000 mil + 000 mil + 0 miliono + 0 milionoj + 00 miliono + 00 milionoj + 000 miliono + 000 milionoj + 0 miliardo + 0 miliardoj + 00 miliardo + 00 miliardoj + 000 miliardo + 000 miliardoj + 0 duiliono + 0 duilionoj + 00 duiliono + 00 duilionoj + 000 duiliono + 000 duilionoj + + + + + 0k + 0k + 00k + 00k + 000k + 000k + + + #,##0.00 ¤ + + #,##0.00 ¤ + - {0} {1} - {0} {1} + + dirhamo de Unuiĝintaj Arabaj Emirlandoj + UAE-dirhamo + UAE-dirhamoj + + + afgana afganio + afgana afganio + afganaj afganioj + + + albana leko + albana leko + albanaj lekoj + + + armena dramo + armena dramo + armenaj dramoj + + + nederlandantila guldeno + nederlandantila guldeno + nederlandantilaj guldenoj + + + angola kvanzo + angola kvanzo + angolaj kvanzoj + + + argentina peso + argentina peso + argentinaj pesoj + - Aŭstralia dolaro + aŭstralia dolaro aŭstralia dolaro aŭstraliaj dolaroj - AU$ + AUD + + + aruba guldeno + aruba guldeno + arubaj guldenoj + + + azerbajĝana manato + azerbajĝana manato + azerbajĝanaj manatoj + + + konvertebla marko de Bosnujo kaj Hercegovino + konvertebla marko + konverteblaj markoj + + + barbada dolaro + barbada dolaro + barbadaj dolaroj + + + bangladeŝa tako + bangladeŝa tako + bangladeŝaj takoj + + + bulgara levo + bulgara levo + bulgaraj levoj + + + barejna dinaro + barejna dinaro + barejnaj dinaroj + + + burunda franko + burunda franko + burundaj frankoj + + + bermuda dolaro + bermuda dolaro + bermudaj dolaroj + + + bruneja dolaro + bruneja dolaro + brunejaj dolaroj + + + bolivia bolivjano + bolivia bolivjano + boliviaj bolivjanoj - Brazila realo + brazila realo brazila realo brazilaj realoj + BRL + + + bahama dolaro + bahama dolaro + bahamaj dolaroj + + + butana ngultrumo + butana ngultrumo + butanaj ngultrumoj + + + bocvana pulao + bocvana pulao + bocvanaj pulaoj + + + belorusa rublo + belorusa rublo + belorusaj rubloj + + + beliza dolaro + beliza dolaro + belizaj dolaroj - Kanada dolaro + kanada dolaro kanada dolaro kanadaj dolaroj + CAD + + + konga franko + konga franko + kongaj frankoj - Svisa franko + svisa franko svisa franko svisaj frankoj + + ĉilia peso + ĉilia peso + ĉiliaj pesoj + + + ĉina juano (eksterlanda uzo) + ĉina juano (eksterlande) + ĉinaj juanoj (eksterlande) + - Ĉina juano + ĉinaj juanoj ĉina juano ĉinaj juanoj + CNY + + + kolombia peso + kolombia peso + kolombiaj pesoj + + + kostarika kolumbo + kostarika kolumbo + kostarikaj kolumboj + + + konvertebla kuba peso + konvertebla kuba peso + konverteblaj kubaj pesoj + + + kuba peso + kuba peso + kubaj pesoj + + + kaboverda eskudo + kaboverda eskudo + kaboverdaj eskudoj + + + ĉeĥa krono + ĉeĥa krono + ĉeĥaj kronoj + + + ĝibutia franko + ĝibutia franko + ĝibutiaj frankoj - Dana krono + dana krono dana krono danaj kronoj + + dominika peso + dominika peso + dominikaj pesoj + + + alĝeria dinaro + alĝeria dinaro + alĝeriaj dinaroj + + + egipta pundo + egipta pundo + egiptaj pundoj + + + eritrea nakfo + eritrea nakfo + eritreaj nakfoj + + + etiopa birro + etiopa birro + etiopaj birroj + - Eŭro + eŭro eŭro eŭroj + + fiĝia dolaro + fiĝia dolaro + fiĝiaj dolaroj + + + falklanda pundo + falklanda pundo + falklandaj pundoj + - Brita pundo + brita pundo brita pundo britaj pundoj + GBP + + + kartvela lario + kartvela lario + kartvelaj larioj + + + ganaa cedio + ganaa cedio + ganaaj cedioj + + + ĝibraltara pundo + ĝibraltara pundo + ĝibraltaraj pundoj + + + gambia dalasio + gambia dalasio + gambiaj dalasioj + + + gvinea franko + gvinea franko + gvineaj frankoj + + + gvatemala kecalo + gvatemala kecalo + gvatemalaj kecaloj + + + gujana dolaro + gujana dolaro + gujanaj dolaroj - Honkonga dolaro + honkonga dolaro honkonga dolaro honkongaj dolaroj + HKD + + + hondura lempiro + hondura lempiro + honduraj lempiroj + + + kroata kunao + kroata kunao + kroataj kunaoj + + + haitia gurdo + haitia gurdo + haitiaj gurdoj + + + hungara forinto + hungara forinto + hungaraj forintoj - Indonezia rupio - Indonezia rupio - Indoneziaj rupioj + indonezia rupio + indonezia rupio + indoneziaj rupioj + + + israela nova siklo + israela nova siklo + israelaj novaj sikloj + ILS - Barata rupio - barata rupio - barataj rupioj + hinda rupio + hinda rupio + hindaj rupioj + INR + + + iraka dinaro + iraka dinaro + irakaj dinaroj + + + irana rialo + irana rialo + iranaj rialoj + + + islanda krono + islanda krono + islandaj kronoj + + + jamajka dolaro + jamajka dolaro + jamajkaj dolaroj + + + jordania dinaro + jordania dinaro + jordaniaj dinaroj - Japana eno + japana eno japana eno japanaj enoj + JPY + + + kenja ŝilingo + kenja ŝilingo + kenjaj ŝilingoj + + + kirgiza somo + kirgiza somo + kirgizaj somoj + + + kamboĝa rielo + kamboĝa rielo + kamboĝaj rieloj + + + komora franko + komora franko + komoraj frankoj + + + nordkorea vono + nordkorea vono + nordkoreaj vonoj - Sud-korea ŭono - sud-korea ŭono - sud-koreaj ŭonoj + sudkorea vono + sudkorea vono + sudkoreaj vonoj + KRW + + + kuvajta dinaro + kuvajta dinaro + kuvajtaj dinaroj + + + kajmana dolaro + kajmana dolaro + kajmanaj dolaroj + + + kazaĥa tengo + kazaĥa tengo + kazaĥaj tengoj + + + laosa kipo + laosa kipo + laosaj kipoj + + + libana liro + libana liro + libanaj liroj + + + srilanka rupio + srilanka rupio + srilankaj rupioj + + + + liberia dolaro + liberia dolaro + liberiaj dolaroj + + + lesota lotio + lesota lotio + lesotaj lotioj + + + libia dinaro + libia dinaro + libiaj dinaroj + + + maroka dirhamo + maroka dirhamo + marokaj dirhamoj + + + moldava leo + moldava leo + moldavaj leoj + + + madagaskara ariaro + madagaskara ariaro + madagaskaraj ariaroj + + + makedona denaro + makedona denaro + makedonaj denaroj + + + birma kjato + birma kjato + birmaj kjatoj + + + mongola tugriko + mongola tugriko + mongolaj tugrikoj + + + makaa patako + makaa patako + makaaj patakoj + + + maŭritania uguijao + maŭritania uguijao + maŭritaniaj uguijaoj + + + maŭricia rupio + maŭricia rupio + maŭriciaj rupioj + + + + maldiva rufijao + maldiva rufijao + maldivaj rufijaoj + + + malavia kvaĉo + malavia kvaĉo + malaviaj kvaĉoj - Meksika peso + meksika peso meksika peso meksikaj pesoj + MXN + + + malajzia ringito + malajzia ringito + malajziaj ringitoj + + + mozambika metikalo + mozambika metikalo + mozambikaj metikaloj + + + namibia dolaro + namibia dolaro + namibiaj dolaroj + + + niĝeria najro + niĝeria najro + niĝeriaj najroj + + + nikaragva kordovo + nikaragva kordovo + nikaragvaj kordovoj - Norvega krono + norvega krono norvega krono norvegaj kronoj + + nepala rupio + nepala rupio + nepalaj rupioj + + + + novzelanda dolaro + novzelanda dolaro + novzelandaj dolaroj + NZD + + + omana rialo + omana rialo + omanaj rialoj + + + panama balboo + panama balboo + panamaj balbooj + + + perua suno + perua suno + peruaj sunoj + + + papuonovgvinea kinao + papuonovgvinea kinao + papuonovgvineaj kinaoj + + + filipina peso + filipina peso + filipinaj pesoj + PHP + + + pakistana rupio + pakistana rupio + pakistanaj rupioj + + - Pola zloto + pola zloto pola zloto polaj zlotoj + + paragvaja gvaranio + paragvaja gvaranio + paragvajaj gvaranioj + + + katara rialo + katara rialo + kataraj rialoj + + + rumana leo + rumana leo + rumanaj leoj + + + serba dinaro + serba dinaro + serbaj dinaroj + - Rusa rublo + rusa rublo rusa rublo rusaj rubloj + + ruanda franko + ruanda franko + ruandaj frankoj + - Sauda rialo + sauda rialo sauda rialo saudaj rialoj + + salomona dolaro + salomona dolaro + salomonaj dolaroj + + + sejŝela rupio + sejŝela rupio + sejŝelaj rupioj + + + sudana pundo + sudana pundo + sudanaj pundoj + - Sveda krono + sveda krono sveda krono svedaj kronoj + + singapura dolaro + singapura dolaro + singapuraj dolaroj + + + sankthelena pundo + sankthelena pundo + sankthelenaj pundoj + + + sieraleona leono + sieraleona leono + sieraleonaj leonoj + + + sieraleona leono (1964–2022) + sieraleona leono (1964–2022) + sieraleonaj leonoj (1964–2022) + + + somala ŝilingo + somala ŝilingo + somalaj ŝilingoj + + + surinama dolaro + surinama dolaro + surinamaj dolaroj + + + sudsudana pundo + sudsudana pundo + sudsudanaj pundoj + + + santomea dobro + santomea dobro + santomeaj dobroj + + + siria pundo + siria pundo + siriaj pundoj + + + svazilanda liliagenio + svazia lilangenio + svaziaj lilangenioj + - Taja bahto + taja bahto taja bahto tajaj bahtoj - ฿ + + + taĝika somonio + taĝika somonio + taĝikaj somonioj + + + turkmena manato + turkmena manato + turkmenaj manatoj + + + tunizia dinaro + tunizia dinaro + tuniziaj dinaroj + + + tonga paangao + tonga paangao + tongaj paangaoj - Turka liro + turka liro turka liro turkaj liroj - + + + trinidada dolaro + trinidada dolaro + trinidadaj dolaroj - Nova tajvana dolaro - nova tajvana dolaro - novaj tajvanaj dolaroj + tajvana nova dolaro + tajvana nova dolaro + tajvanaj novaj dolaroj + TWD NT$ + + tanzania ŝilingo + tanzania ŝilingo + tanzaniaj ŝilingoj + + + ukraina hrivno + ukraina hrivno + ukrainaj hrivnoj + + + uganda ŝilingo + uganda ŝilingo + ugandaj ŝilingoj + - Usona dolaro + usona dolaro usona dolaro usonaj dolaroj + USD + + + urugvaja peso + urugvaja peso + urugvajaj pesoj + + + uzbeka somo + uzbeka somo + uzbekaj somoj + + + venezuela bolivaro + venezuela bolivaro + venezuelaj bolivaroj + + + vjetnama dongo + vjetnama dongo + vjetnamaj dongoj + VND + + + vanuatua vatuo + vanuatua vatuo + vanuatuaj vatuoj + + + samoa talao + samoa talao + samoaj talaoj + + + ekvatorafrika franko + ekvatorafrika franko + ekvatorafrikaj frankoj + XAF arĝento @@ -3593,29 +4613,71 @@ CLDR data files are interpreted according to the LDML specification (http://unic eŭropa monunuo + + orientkariba dolaro + orientkariba dolaro + orientkaribaj dolaroj + XCD + franca ora franko + + okcidentafrika franko + okcidentafrika franko + okcidentafrikaj frankoj + XOF + paladio + + pacifika franko + pacifika franko + pacifikaj frankoj + XPF + plateno - Nekonata valuto - nekonata monunuo - nekonataj monunuoj + nekonata monunuo + (nekunata monunuo) + (nekonata monunuo) + + + jemena rialo + jemena rialo + jemenaj rialoj - Sud-afrika rando - sud-afrika rando - sud-afrikaj randoj + sudafrika rando + sudafrika rando + sudafrikaj randoj + + + zambia kvaĉo + zambia kvaĉo + zambiaj kvaĉoj + + ≈{0} + + + {0} tago + {0} tagoj + Turniĝu al {0}-a dekstro. + + + po {0} por {1} + + + {0} oble {1} + kvadrataj kilometroj {0} kvadrata kilometro @@ -3711,13 +4773,21 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} bito {0} bitoj + + jarcentoj + {0} jarcento + {0} jarcentoj + jardekoj + {0} jardeko + {0} jardekoj jaroj {0} jaro {0} jaroj + po {0} por jaro monatoj @@ -3871,15 +4941,39 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} litro {0} litroj + + noktoj + {0} nokto + {0} noktoj + po {0} por nokto + + + direkto + {0} oriente + {0} norde + {0} sude + {0} okcidente + ha + + jarcent. + {0} jarcent. + {0} jarcent. + + + jardek. + {0} jardek. + {0} jardek. + - jaro + j. {0} j. {0} j. + {0}/j. monato @@ -3936,6 +5030,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} L {0} L + + nokt. + {0} nokt. + {0} nokt. + {0}/nokto + + + direkto + {0} E + {0} N + {0} S + {0} W + @@ -3954,10 +5061,21 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}cm² {0}cm² + + jc. + {0} jc. + {0} jc. + + + jd. + {0} jd. + {0} jd. + - j. - {0}j. - {0}j. + a + {0} a + {0} a + {0}/a t. @@ -4048,6 +5166,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}L {0}L + + n. + {0} n. + {0} n. + {0}/n. + + + direkto + @@ -4055,6 +5182,36 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} kaj {1} {0} kaj {1} + + {0} aŭ {1} + {0} aŭ {1} + + + {0} aŭ {1} + {0} aŭ {1} + + + {0} aŭ {1} + {0} aŭ {1} + + + {0}, {1} + {0}, {1} + + + {0} k {1} + {0} k {1} + + + {0} {1} + {0} {1} + {0} {1} + {0} {1} + + + {0}, {1} + {0}, {1} + diff --git a/make/data/cldr/common/main/es.xml b/make/data/cldr/common/main/es.xml index b868d6c957b..daabcb5e02f 100644 --- a/make/data/cldr/common/main/es.xml +++ b/make/data/cldr/common/main/es.xml @@ -70,6 +70,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bini kom siksika + anii bambara bengalí tibetano @@ -298,6 +299,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komi córnico kwakʼwala + kuvi kirguís latín ladino @@ -308,9 +310,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lezgiano ganda limburgués + ligur lillooet lakota - lombardo + lombardo lingala lao mongo @@ -323,7 +326,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ luba-lulua luiseño lunda - luo mizo luyia letón @@ -506,6 +508,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ comorense siríaco clásico siriaco + silesio tamil tutchone meridional telugu @@ -553,9 +556,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lengua desconocida urdu uzbeko - vai venda + veneciano vietnamita + makua volapük vótico vunjo @@ -569,6 +573,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ chino wu kalmyk xhosa + kangri soga yao yapés @@ -1263,7 +1268,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2649,6 +2654,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ hora de {0} horario de verano de {0} horario estándar de {0} + + Honolulú + tiempo universal coordinado @@ -3023,9 +3031,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Palaos - - Asunción - Catar @@ -3149,9 +3154,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Simferópol - - Honolulú - Los Ángeles @@ -3437,13 +3439,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ hora de verano de China - - - hora de Choibalsan - hora estándar de Choibalsan - hora de verano de Choibalsan - - hora de la Isla de Navidad @@ -3712,6 +3707,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ hora de verano de Kamchatka + + + hora de Kazajistán + + hora de Kazajistán oriental @@ -4264,8 +4264,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 B¤ - {0} {1} - {0} {1} @@ -4282,19 +4280,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ afgani (1927–2002) - afgani - afgani - afganis + afgani afgano + afgani afgano + afganis afganos - lek - lek - leks + lek albanés + lek albanés + leks albaneses - dram - dram - drams + dram armenio + dram armenio + drams armenios florín antillano @@ -4302,9 +4300,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ florines antillanos - kuanza - kuanza - kuanzas + kuanza angoleño + kuanza angoleño + kuanzas angoleños kwanza angoleño (1977–1990) @@ -4370,9 +4368,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ dólares barbadenses - taka - taka - takas + taka bangladesí + taka bangladesí + takas bangladesíes franco belga (convertible) @@ -4471,9 +4469,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ dólares bahameños - gultrum - gultrum - gultrums + gultrum butanés + gultrum butanés + gultrums butaneses kyat birmano @@ -4481,9 +4479,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kyat birmanos - pula - pula - pulas + pula botsuano + pula botsuano + pulas botsuanos nuevo rublo bielorruso (1994–1999) @@ -4548,9 +4546,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ yuanes chinos (extracontinentales) - yuan - yuan - yuanes + yuan renminbi + yuan renminbi + yuanes renminbi CNY @@ -4655,9 +4653,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ EGP - nakfa - nakfa - nakfas + nakfa eritreo + nakfa eritreo + nakfas eritreos peseta española (cuenta A) @@ -4676,9 +4674,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - bir - bir - bires + bir etíope + bir etíope + bires etíopes euro @@ -4715,17 +4713,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kupon larit georgiano - lari - lari - laris + lari georgiano + lari georgiano + laris georgianos cedi ghanés (1979–2007) - cedi - cedi - cedis + cedi ghanés + cedi ghanés + cedis ghaneses libra gibraltareña @@ -4733,9 +4731,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ libras gibraltareñas - dalasi - dalasi - dalasis + dalasi gambiano + dalasi gambiano + dalasis gambianos franco guineano @@ -4788,9 +4786,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ dinares croatas - kuna - kuna - kunas + kuna croata + kuna croata + kunas croatas gurde haitiano @@ -4860,9 +4858,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ dinares jordanos - yen - yen - yenes + yen japonés + yen japonés + yenes japoneses JPY @@ -4871,14 +4869,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ chelines kenianos - som - som - soms + som kirguís + som kirguís + soms kirguises - riel - riel - rieles + riel camboyano + riel camboyano + rieles camboyanos franco comorense @@ -4912,9 +4910,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ tengues kazajos - kip - kip - kips + kip laosiano + kip laosiano + kips laosianos libra libanesa @@ -4992,9 +4990,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ leus moldavos - ariari - ariari - ariaris + ariari malgache + ariari malgache + ariaris malgaches franco malgache @@ -5008,19 +5006,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ franco malí - kiat - kiat - kiats + kiat de Myanmar + kiat de Myanmar + kiats de Myanmar - tugrik - tugrik - tugriks + tugrik mongol + tugrik mongol + tugriks mongoles - pataca de Macao - pataca de Macao - patacas de Macao + pataca macaense + pataca macaense + patacas macaenses uguiya (1973–2017) @@ -5028,9 +5026,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ uguiyas (1973–2017) - uguiya - uguiya - uguiyas + uguiya mauritano + uguiya mauritano + uguiyas mauritanos lira maltesa @@ -5048,9 +5046,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ rupias mauricianas - rufiya - rufiya - rufiyas + rufiya maldiva + rufiya maldiva + rufiyas maldivas kuacha malauí @@ -5074,9 +5072,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ unidades de inversión (UDI) mexicanas - ringit - ringit - ringits + ringit malasio + ringit malasio + ringits malasios escudo mozambiqueño @@ -5087,9 +5085,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ antiguo metical mozambiqueño - metical - metical - meticales + metical mozambiqueño + metical mozambiqueño + meticales mozambiqueños dólar namibio @@ -5097,9 +5095,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ dólares namibios - naira - naira - nairas + naira nigeriano + naira nigeriano + nairas nigerianos córdoba nicaragüense (1988–1991) @@ -5158,9 +5156,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ soles peruanos (1863–1965) - kina - kina - kinas + kina papú + kina papú + kinas papúes peso filipino @@ -5174,9 +5172,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ rupias pakistaníes - esloti - esloti - eslotis + esloti polaco + esloti polaco + eslotis polacos zloty polaco (1950–1995) @@ -5288,14 +5286,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ coronas eslovacas - leona - leona - leonas + leona sierraleonesa + leona sierraleonesa + leonas sierraleonesas - leona (1964—2022) - leona (1964—2022) - leonas (1964—2022) + leona sierraleonesa (1964–2022) + leona sierraleonesa (1964–2022) + leonas sierraleonesas (1964–2022) chelín somalí @@ -5321,9 +5319,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ dobras (1977–2017) - dobra - dobra - dobras + dobra santotomense + dobra santotomense + dobras santotomenses rublo soviético @@ -5341,14 +5339,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ libras sirias - lilangeni - lilangeni - lilangenis + lilangeni esuatiní + lilangeni esuatiní + lilangenis esuatiníes - bat - bat - bats + bat tailandés + bat tailandés + bats tailandeses ฿ @@ -5375,9 +5373,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ dinares tunecinos - paanga - paanga - paangas + paanga tongano + paanga tongano + paangas tonganos escudo timorense @@ -5410,9 +5408,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ chelines tanzanos - grivna - grivna - grivnas + grivna ucraniana + grivna ucraniana + grivnas ucranianas karbovanet ucraniano @@ -5463,9 +5461,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ unidades previsionales uruguayos - sum - sum - sums + sum uzbeko + sum uzbeko + sums uzbekos bolívar venezolano (1871–2008) @@ -5483,19 +5481,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bolívares venezolanos - dong - dong - dongs + dong vietnamita + dong vietnamita + dongs vietnamitas - vatu - vatu - vatus + vatu vanuatense + vatu vanuatense + vatus vanuatenses - tala - tala - talas + tala samoano + tala samoano + talas samoanos franco CFA de África Central @@ -5609,9 +5607,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ rand sudafricano (financiero) - rand - rand - rands + rand sudafricano + rand sudafricano + rands sudafricanos kwacha zambiano (1968–2012) @@ -5871,6 +5869,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} quilates + masculine miligramos por decilitro {0} miligramo por decilitro {0} miligramos por decilitro @@ -6369,6 +6368,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} millas escandinavas + masculine puntos {0} punto {0} puntos @@ -6530,6 +6530,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} caballos de vapor + masculine milímetros de mercurio {0} milímetro de mercurio {0} milímetros de mercurio @@ -6610,6 +6611,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} nudos + feminine Beaufort Beaufort {0} Beaufort {0} @@ -6852,6 +6854,25 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} cuarto imperial {0} cuartos imperiales + + feminine + luz + {0} luz + {0} luz + + + feminine + partes por millardo + {0} parte por millardo + {0} partes por millardo + + + feminine + noches + {0} noche + {0} noches + {0} por noche + punto cardinal {0} este @@ -7230,6 +7251,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} qt imp. {0} qt imp. + + luz + {0} luz + {0} luz + + + partes/millardo + + + noches + {0} noche + {0} noches + {0}/noche + punto {0} E @@ -7985,6 +8020,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}qt imp {0}qt imp + + luz + {0}luz + {0}luz + + + {0}ppb + {0}ppb + + + noches + {0}noche + {0}noches + {0}/noche + {0}E {0}N diff --git a/make/data/cldr/common/main/es_419.xml b/make/data/cldr/common/main/es_419.xml index 76569c82bf9..2658c449001 100644 --- a/make/data/cldr/common/main/es_419.xml +++ b/make/data/cldr/common/main/es_419.xml @@ -28,7 +28,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ cabardiano karachái-bálkaro cachemiro - laosiano + genovés malabar manipuri ndebele del sur @@ -47,6 +47,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ tetun tuvano uighur + véneto walamo wu calmuco @@ -96,8 +97,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ orden normalizado - calendario islámico (Arabia Saudita) - calendario islámico tabular + calendario islámico (Arabia Saudita) + calendario islámico tabular ordenar símbolos ordenar ignorando símbolos ordenar acentos normalmente @@ -576,24 +577,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ en {0} domingos - - - hace {0} viernes - hace {0} viernes - - - - - hace {0} viernes - hace {0} viernes - - - - - hace {0} sábados - hace {0} sábados - - a.m./p.m. @@ -774,16 +757,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ , - - - 0 billón - 0 billón - 00 billones - 00 billones - 000 billones - 000 billones - - 0 K @@ -902,6 +875,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ córdoba nicaragüense córdobas nicaragüenses + + leone + leone + leones + + + leones (1964—2022) + leone (1964—2022) + leones (1964—2022) + SD£ @@ -941,9 +924,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} unidad de fuerza gravitacional {0} unidades de fuerza gravitacional - - mg/dL - amperes {0} ampere @@ -990,6 +970,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ caballo de fuerza {0} caballos de fuerza + + masculine + {0}° {0}° @@ -1009,6 +992,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} onza fluida {0} onzas fluidas + + partes por mil millones + {0} parte por mil millones + {0} partes por mil millones + @@ -1148,10 +1136,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}d. {0}dd. - - {0} cal - {0}cal - {0}thm EE.UU. {0}thm EE.UU. @@ -1170,7 +1154,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ aa. l. {0}a. l. - {0}a.a. l. + {0}aa. l. + + + {0}ua + {0}ua {0}nmi @@ -1184,14 +1172,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}ton {0}ton - - {0} lb - {0}lb - - - {0} oz - {0}oz - {0}ozt {0}ozt @@ -1221,9 +1201,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}bbl {0}bbl - - {0} qt imp. - {0}qt imp + + {0} luz + {0} luz + + + {0} noche + {0} noches @@ -1243,7 +1227,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ edificio Jamo consonántico símbolos de monedas - Guión/conector + Guion/conector dígitos Flechas hacia arriba y hacia abajo Símbolos de escritura de Europa diff --git a/make/data/cldr/common/main/es_AR.xml b/make/data/cldr/common/main/es_AR.xml index 2f5905cb867..f663283b309 100644 --- a/make/data/cldr/common/main/es_AR.xml +++ b/make/data/cldr/common/main/es_AR.xml @@ -18,7 +18,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic bhojpuri euskera griego antiguo - lao sotho septentrional punyabí siswati diff --git a/make/data/cldr/common/main/es_BO.xml b/make/data/cldr/common/main/es_BO.xml index b6090433440..9fc7e639462 100644 --- a/make/data/cldr/common/main/es_BO.xml +++ b/make/data/cldr/common/main/es_BO.xml @@ -18,7 +18,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic bhojpuri euskera griego antiguo - lao sotho septentrional punyabí siswati diff --git a/make/data/cldr/common/main/es_CL.xml b/make/data/cldr/common/main/es_CL.xml index f61c3a21a3d..2dff2101d76 100644 --- a/make/data/cldr/common/main/es_CL.xml +++ b/make/data/cldr/common/main/es_CL.xml @@ -18,7 +18,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic bhojpuri euskera griego antiguo - lao sotho septentrional punyabí siswati diff --git a/make/data/cldr/common/main/es_CO.xml b/make/data/cldr/common/main/es_CO.xml index 431c17d8ca9..9032b0a216d 100644 --- a/make/data/cldr/common/main/es_CO.xml +++ b/make/data/cldr/common/main/es_CO.xml @@ -18,7 +18,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic bhojpuri euskera griego antiguo - lao sotho septentrional punyabí siswati diff --git a/make/data/cldr/common/main/es_CR.xml b/make/data/cldr/common/main/es_CR.xml index 84375254780..4a1b28a281d 100644 --- a/make/data/cldr/common/main/es_CR.xml +++ b/make/data/cldr/common/main/es_CR.xml @@ -18,7 +18,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic bhojpuri euskera griego antiguo - lao sotho septentrional punyabí siswati diff --git a/make/data/cldr/common/main/es_DO.xml b/make/data/cldr/common/main/es_DO.xml index d5d68e617aa..a74138af8ce 100644 --- a/make/data/cldr/common/main/es_DO.xml +++ b/make/data/cldr/common/main/es_DO.xml @@ -18,7 +18,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic bhojpuri euskera griego antiguo - lao sotho septentrional punyabí siswati diff --git a/make/data/cldr/common/main/es_EC.xml b/make/data/cldr/common/main/es_EC.xml index d2eb9494c2c..41dfc1f792d 100644 --- a/make/data/cldr/common/main/es_EC.xml +++ b/make/data/cldr/common/main/es_EC.xml @@ -18,7 +18,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic bhojpuri euskera griego antiguo - lao sotho septentrional punyabí siswati diff --git a/make/data/cldr/common/main/es_GT.xml b/make/data/cldr/common/main/es_GT.xml index c24654ffe71..4c61912faab 100644 --- a/make/data/cldr/common/main/es_GT.xml +++ b/make/data/cldr/common/main/es_GT.xml @@ -18,7 +18,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic bhojpuri euskera griego antiguo - lao sotho septentrional punyabí siswati @@ -260,8 +259,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ¤ 000MRD - {0} {1} - {1} {0} diff --git a/make/data/cldr/common/main/es_HN.xml b/make/data/cldr/common/main/es_HN.xml index 781e326acdd..91097a8307f 100644 --- a/make/data/cldr/common/main/es_HN.xml +++ b/make/data/cldr/common/main/es_HN.xml @@ -18,7 +18,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic bhojpuri euskera griego antiguo - lao sotho septentrional punyabí siswati diff --git a/make/data/cldr/common/main/es_MX.xml b/make/data/cldr/common/main/es_MX.xml index 6ff5d758521..cad6322043a 100644 --- a/make/data/cldr/common/main/es_MX.xml +++ b/make/data/cldr/common/main/es_MX.xml @@ -45,7 +45,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic kaingang karachái bálkaro cumuco - lao irlandés medieval min nan (Chino) ndebele meridional @@ -154,10 +153,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic a. m. p. m. - - a. m. - p. m. - @@ -392,27 +387,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic sem. de m - - sem. de m - en {0} día en {0} días - - - en {0} día - en {0} días - - día del a - - día del a - el domingo pasado este domingo @@ -456,28 +439,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic el vier. pasado este vier. el próximo vier. - - hace {0} vie. - hace {0} vie. - - - - - hace {0} VI - hace {0} VI - el sábado pasado este sábado el sábado próximo - - - hace {0} SA - hace {0} SA - - en {0} h @@ -492,6 +459,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + Honolulu + Buyumbura @@ -519,9 +489,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Wake - - Honolulu - St. Thomas @@ -611,16 +578,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - - 0 billón - 0 billones - 00 billones - 00 billones - 000 billones - 000 billones - - 0 k @@ -683,15 +640,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - dram armenio - drams armenios - - - taka bangladesí - taka bangladesí - takas bangladesíes - ngultrum butanés ngultrum butanés @@ -703,21 +651,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic £ - - som kirguís - som kirguís - soms kirguises - - - riel camboyano - riel camboyano - rieles camboyanos - - - kip laosiano - kip laosiano - kips laosianos - lats letón lats letones @@ -744,11 +677,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic £ - - dobra santotomense - dobra santotomense - dobras santotomenses - £ @@ -764,11 +692,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic bolívar venezolano bolivares venezolanos - - dong vietnamita - dong vietnamita - dongs vietnamitas - (moneda desconocida) (moneda desconocida) @@ -782,9 +705,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - miligramos por decilitro - por ciento @@ -1020,16 +940,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} mm {0}mm - - M - {0} kg {0}kg - - CV - {0} atm {0}atm diff --git a/make/data/cldr/common/main/es_NI.xml b/make/data/cldr/common/main/es_NI.xml index c232a99bbd3..759dba472f5 100644 --- a/make/data/cldr/common/main/es_NI.xml +++ b/make/data/cldr/common/main/es_NI.xml @@ -18,7 +18,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic bhojpuri euskera griego antiguo - lao sotho septentrional punyabí siswati diff --git a/make/data/cldr/common/main/es_PA.xml b/make/data/cldr/common/main/es_PA.xml index 033d71b624a..710b463d411 100644 --- a/make/data/cldr/common/main/es_PA.xml +++ b/make/data/cldr/common/main/es_PA.xml @@ -18,7 +18,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic bhojpuri euskera griego antiguo - lao sotho septentrional punyabí siswati diff --git a/make/data/cldr/common/main/es_PE.xml b/make/data/cldr/common/main/es_PE.xml index 36da049e783..f10440734c9 100644 --- a/make/data/cldr/common/main/es_PE.xml +++ b/make/data/cldr/common/main/es_PE.xml @@ -18,7 +18,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic bhojpuri euskera griego antiguo - lao sotho septentrional punyabí siswati diff --git a/make/data/cldr/common/main/es_PY.xml b/make/data/cldr/common/main/es_PY.xml index 14a760ceef0..3c7a5802417 100644 --- a/make/data/cldr/common/main/es_PY.xml +++ b/make/data/cldr/common/main/es_PY.xml @@ -18,7 +18,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic bhojpuri euskera griego antiguo - lao sotho septentrional punyabí siswati diff --git a/make/data/cldr/common/main/es_US.xml b/make/data/cldr/common/main/es_US.xml index 192cd37c949..0dce40420b5 100644 --- a/make/data/cldr/common/main/es_US.xml +++ b/make/data/cldr/common/main/es_US.xml @@ -21,6 +21,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic hariana bhojpuri siksika + ani buriat chilcotín cree del sureste @@ -43,7 +44,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ingusetio cabilio karachay-balkar - lao + ligur creole de Luisiana lorí del norte saamia @@ -69,6 +70,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic tuviniano uigur variante wolayta + dogrí @@ -152,14 +154,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 4.º trimestre - - - 1er trimestre - 2.º trimestre - 3.º trimestre - 4.º trimestre - - @@ -167,10 +161,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic a. m. p. m. - - a. m. - p. m. - @@ -314,32 +304,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic esta sem. próxima sem. - - sem. pasada - esta sem. - próxima sem. - sem. de m - - sem. de m - día del a - - día del a - día de la semana del mes día sem. de m - - día sem. de m - dentro de {0} domingo @@ -351,29 +327,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic este mié. el próximo mié. - - - hace {0} VI - hace {0} VI - - - - - hace {0} SA - hace {0} SA - - - - a. m./p. m. - a. m./p. m. - - a. m./p. m. - + + + HST + HST + HDT + + Honolulu + Nassau @@ -398,14 +364,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Wake - - - HST - HST - HDT - - Honolulu - St. Thomas @@ -609,11 +567,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - taka bangladesí - taka bangladesí - takas bangladesíes - ngultrum butanés ngultrum butanés @@ -630,11 +583,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ¥ - - kip laosiano - kip laosiano - kips laosianos - lei @@ -660,11 +608,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Bs - - dong vietnamita - dong vietnamita - dongs vietnamitas - franco CFA de África central franco CFA de África central @@ -692,9 +635,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic quecto {0} - - miligramos por decilitro - por ciento @@ -762,6 +702,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} caballos de fuerza + feminine Escala Beaufort Escala Beaufort {0} Escala Beaufort {0} @@ -795,6 +736,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} dracma fluida {0} dreacmas fluidas + + {0} luz + {0} luces + @@ -893,6 +838,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} fl dracma {0} fl dracmas + + {0} luz + {0} de luces + + + partes/mil millones + @@ -907,7 +859,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic a {0}a {0}a - {0}/a m @@ -931,10 +882,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} mm {0}mm - - {0}ua - {0}ua - furlong @@ -942,7 +889,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic braza - mn {0}mn {0}mn @@ -966,6 +912,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}bsh {0}bsh + + {0}luz + {0}luces + diff --git a/make/data/cldr/common/main/es_VE.xml b/make/data/cldr/common/main/es_VE.xml index 790b39dc6ce..67457a37647 100644 --- a/make/data/cldr/common/main/es_VE.xml +++ b/make/data/cldr/common/main/es_VE.xml @@ -18,7 +18,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic bhojpuri euskera griego antiguo - lao sotho septentrional punyabí siswati diff --git a/make/data/cldr/common/main/et.xml b/make/data/cldr/common/main/et.xml index d592b9a84ea..d2727a59721 100644 --- a/make/data/cldr/common/main/et.xml +++ b/make/data/cldr/common/main/et.xml @@ -84,7 +84,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bandžari komi (Aafrika) mustjalaindiaani - anii + anii tai-dami bambara bengali @@ -214,7 +214,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ friuuli läänefriisi iiri - gaa gagauusi kani gajo @@ -336,7 +335,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komi korni kvakvala - kuvi + kuvi kirgiisi ladina ladiino @@ -351,6 +350,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lillueti liivi lakota + ladiini lombardi lingala lao @@ -365,7 +365,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lulua luisenjo lunda - luo lušei luhja läti @@ -389,6 +388,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ makhuwa-meetto meta maršalli + mohheni maoori mikmaki minangkabau @@ -625,14 +625,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ määramata keel urdu usbeki - vai venda veneti vepsa vietnami lääneflaami Maini frangi - makua + makua volapüki vadja võru @@ -648,6 +647,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kalmõki koosa megreli + kangri soga jao japi @@ -719,6 +719,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + @@ -832,6 +833,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + @@ -1420,15 +1422,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [  , % ‰ + − 0 1 2 3 4 5 6 7 8 9] [\- ‑ – , ; \: ! ? . “„ ( ) \[ \] \{ \} @] {0} … {1} - - [\: ∶] - - - [£ ₤] - - - [\--﹣ ‑ ‒ −⁻₋ ➖] - @@ -2599,6 +2592,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ +HH:mm;−HH:mm GMT {0} ({0}) + + Honolulu + Koordineeritud maailmaaeg @@ -2685,9 +2681,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Roheneemesaared - - Curaçao - Jõulusaar @@ -2715,6 +2708,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kairo + + El Aaiún + Kanaari saared @@ -2782,6 +2778,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Enderbury + + Abariringa + Saint Kitts @@ -2818,9 +2817,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Chișinău - - Tšojbalsan - Macau @@ -2836,6 +2832,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ México + + Nouméa + Katmandu @@ -2857,15 +2856,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Belau - - Asunción - Katar - - Réunion - Bukarest @@ -2911,6 +2904,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ar-Riyāḑ + + Mahé + Hartum @@ -2920,8 +2916,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Saint Helena - - São Tomé + + Muqdisho Damaskus @@ -2929,6 +2925,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ N’Djamena + + Lomé + Dušanbe @@ -2941,9 +2940,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kiiev - - Honolulu - Beulah, Põhja-Dakota @@ -2965,6 +2961,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Saint Thomas + + Hô Chi Minh + Acre aeg @@ -3220,13 +3219,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Hiina suveaeg - - - Tšojbalsani aeg - Tšojbalsani standardaeg - Tšojbalsani suveaeg - - Jõulusaare aeg @@ -3265,7 +3257,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Dumont-d’Urville’i aeg + Dumont d’Urville’i aeg @@ -3362,6 +3354,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Greenwichi aeg + + + Gröönimaa aeg + Gröönimaa standardaeg + Gröönimaa suveaeg + + Ida-Gröönimaa aeg @@ -3477,6 +3476,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kamtšatka suveaeg + + + Kasahstani aeg + + Ida-Kasahstani aeg @@ -3998,7 +4002,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ #,##0.00 ¤;(#,##0.00 ¤) - #,##0.00;(#,##0.00) + #,##0.00;(#,##0.00) @@ -4029,8 +4033,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 trln ¤ - {0} {1} - {0} {1} @@ -4175,6 +4177,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Bulgaaria püsiv leev + Bulgaaria kõva leev + Bulgaaria kõva leevi Bulgaaria leev @@ -4335,6 +4339,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Serbia dinaar (2002–2006) Serbia dinaari (2002–2006) + + Tšehhoslovakkia kõva kroon + Tšehhoslovakkia kõva kroon + Tšehhoslovakkia kõva krooni + Kuuba konverteeritav peeso Kuuba konverteeritav peeso @@ -5161,6 +5170,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ukraina karbovanets + Ukraina karbovanetsi + Ukraina karbovanetsi Uganda šilling (1966–1987) @@ -5320,6 +5331,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Jeemeni riaal Jeemeni riaali + + Jugoslaavia kõva dinaar (1966–1990) + Jugoslaavia kõva dinaar (1966–1990) + Jugoslaavia kõva dinaar (1966–1990) + Jugoslaavia uus dinaar (1994–2002) Jugoslaavia uus dinaar (1994–2002) @@ -5330,6 +5346,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Jugoslaavia konverteeritav dinaar (1990–1992) Jugoslaavia konverteeritavat dinaari (1990–1992) + + Jugoslaavia reformitud dinaar (1992–1993) + Jugoslaavia reformitud dinaar (1992–1993) + Jugoslaavia reformitud dinaari (1992–1993) + Lõuna-Aafrika rand Lõuna-Aafrika rand @@ -5858,14 +5879,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} pikslit tolli kohta - punkte sentimeetri kohta - {0} punkt sentimeetri kohta - {0} punkti sentimeetri kohta + punkte sentimeetri kohta + {0} punkt sentimeetri kohta + {0} punkti sentimeetri kohta - punkte tolli kohta - {0} punkt tolli kohta - {0} punkti tolli kohta + punkte tolli kohta + {0} punkt tolli kohta + {0} punkti tolli kohta punktid @@ -6351,6 +6372,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} inglise kvart {0} inglise kvarti + + miljardikosa + {0} miljardikosa + {0} miljardikosa + + + ööd + {0} öö + {0} ööd + {0} öö kohta + põhiilmakaar {0} idapikkust @@ -6568,18 +6600,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ megapikslid - {0} dpcm - {0} dpcm + {0} dpcm + {0} dpcm - dpi - {0} dpi - {0} dpi + dpi + {0} dpi + {0} dpi p - {0} p - {0} p + {0} p + {0} p m @@ -6788,6 +6820,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ingl kvart {0} ingl kvarti + + osakesed/miljard + {0} miljardikosa + {0} miljardikosa + + + ööd + {0} öö + {0} ööd + {0}/öö + ilmakaar {0} ip @@ -6908,6 +6951,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} qt Imp. {0} qt Imp. + + ööd + {0} öö + {0} ööd + {0}/öö + {0} E {0} N diff --git a/make/data/cldr/common/main/eu.xml b/make/data/cldr/common/main/eu.xml index 05a24b1cd26..27c31f61321 100644 --- a/make/data/cldr/common/main/eu.xml +++ b/make/data/cldr/common/main/eu.xml @@ -55,6 +55,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bislama edoera siksikera + aniiera bambarera bengalera tibetera @@ -178,7 +179,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ibanera ibibioera indonesiera - interlingue + interlinguea igboera Sichuango yiera Kanada mendebaldeko inuitera @@ -233,6 +234,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komiera kornubiera kwakwala + kuvia kirgizera latina ladinoa @@ -244,6 +246,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ liguriera lillooetera lakotera + lombardiera lingala laosera Louisianako kreolera @@ -399,6 +402,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kongoko swahilia komoreera asiriera + silesiera tamilera hegoaldeko tutchoneera telugua @@ -442,6 +446,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ vendera veneziera vietnamera + makhuwera volapük vunjoa valoniera @@ -452,6 +457,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ wu txinera kalmykera xhosera + kangrera sogera yangbenera yemba @@ -460,9 +466,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ nheengatua kantonera Kantongo txinera + zhuangera amazigera estandarra txinera - mandarinera + mandarina txinera sinplifikatua mandarin sinplifikatua txinera tradizionala @@ -494,7 +501,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -538,21 +545,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + - + - + @@ -570,7 +577,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -624,7 +631,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -806,7 +813,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Man uhartea India Indiako Ozeanoko lurralde britainiarra - Chagos uhartedia + Txagos uhartedia Irak Iran Islandia @@ -1109,8 +1116,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Indiar egutegia Egutegi islamiarra Egutegi islamiarra (taula-formakoa, garai zibilekoa) - Islamiar egutegia (Saudi Arabia, ikuspegiak) - Islamiar egutegia (taula-formakoa, gai astronomikokoa) + Islamiar egutegia (Saudi Arabia, ikuspegiak) + Islamiar egutegia (taula-formakoa, gai astronomikokoa) Egutegi islamiarra (Umm al-Qura) ISO-8601 egutegia Japoniar egutegia @@ -1204,7 +1211,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Finantzetarako zenbaki japoniarrak Kayah Li digituak kawi digituak - Digitu khemerarrak + Digitu khmertarrak Digitu kannadarrak Tai Tham Hora digituak Tai Tham Tham digituak @@ -1217,7 +1224,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Zuriune bakarreko digitu matematikoak Sans-Serif Bold digitu matematikoak Sans-Serif digitu matematikoak - Digitu malayalamarrak + Digitu malabartarrak Modi digituak Digitu mongoliarrak Mro digituak @@ -1226,7 +1233,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Shan digitu birmaniarrak Tai Laing digitu birmaniarrak nag mundari digituak - Zenbaki-sistema + Digitu natiboak N’Ko digituak Ol Chiki digituak Digitu oriyarrak @@ -1242,8 +1249,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Digitu sundadarrak Digitu takriarrak Digitu tai lue berriak - Zenbaki tamilar tradizionalak - Digitu tamilarrak + Zenbaki tamildar tradizionalak + Digitu tamildarrak Digitu teluguarrak Digitu thailandiarrak Digitu tibetarrak @@ -1488,6 +1495,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ B h:mm B h:mm:s E B h:mm + E B h:mm:ss d, EEEE E h:mm a E h:mm:ss a @@ -1791,9 +1799,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Gure aroaren aurretik + Kristo aurretik + oraingo aroaren aurretik Kristo ondoren - Gure aroa + oraingo aroa K.a. @@ -2508,10 +2517,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - +HH:mm;−HH:mm + +HH:mm;–HH:mm {0} aldeko ordua {0} (udako ordua) {0} aldeko ordu estandarra + + + HST + HST + HDT + + Honolulu + ordu unibertsal koordinatua @@ -2592,9 +2609,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Cabo Verde - - Curaçao - Nikosia @@ -2738,9 +2752,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ulan Bator - - Txoibalsan - Macau @@ -2861,14 +2872,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kiev - - - HST - HST - HDT - - Honolulu - Beulah, Ipar Dakota @@ -3181,13 +3184,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Txinako udako ordua - - - Txoibalsango ordua - Txoibalsango ordu estandarra - Txoibalsango udako ordua - - Christmas uharteko ordua @@ -3461,6 +3457,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Petropavlovsk-Kamchatskiko udako ordua + + + Kazakhstango ordua + + Kazakhstango ekialdeko ordua @@ -3977,90 +3978,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - @@ -4100,100 +4017,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ¤¤ - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} @@ -5756,7 +5579,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ronto{0} - quecto{0} + kekto{0} deka{0} @@ -6603,6 +6426,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} laurden inperial {0} laurden inperial + + argia + {0} argi + {0} argi + + + zati mila milioiko + {0} zati mila milioiko + {0} zati mila milioiko + + + gauak + {0} gau + {0} gau + {0} gau bakoitzeko + puntu kardinala @@ -7058,6 +6897,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ pinch-a + + argia + {0} argi + {0} argi + + + zati / mila milioi + {0} zati / m. m. + {0} zati / m. m. + + + gau + {0} gau + {0} gau + {0}/gau + norabidea {0} E @@ -7236,6 +7091,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}dsp-Imp {0}dsp-Imp + + argia + {0} a. + {0} a. + + + zati / m. m. + {0} zati / m. m. + {0} zati / m. m. + + + gau + {0} g. + {0} g. + {0}/gau + @@ -7361,30 +7232,71 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Zuriunea + etzana + tamaina optikoa + okerdura + zabalera + lodiera etzana azpititulua testua - ultracompressed - ultranarrow - extra-compressed - extra-narrow + izenburuak + kartelak + posterrak + ezkerrerantz okertuta + zuzena + okertuta + oso okertuta + ultrakondentsatua + ultrakonprimatua + ultraestua + estrakondentsatua + estrakonprimatua + estraestua + kondentsatua konprimatua - compressed - semicompressed - seminarrow - semiextended - semiwide + konprimatua + erdikondentsatua + erdikonprimatua + erdiestua + erdizabaldua + erdihedatua + erdizabala + zabaldua hedatua zabala - extra-extended - extra-wide - ultraextended - ultrawide - ultralight - demibold + estrazabaldua + estrahedatua + estrazabala + ultrazabaldua + ultrahedatua + ultrazabala + mehea + estraarina + ultraarina + arina + erdiarina + liburua + tartekoa + erdilodia + lodia + estralodia + beltza astuna - beltz-beltza - oso astuna + estrabeltza + ultrabeltza + ultraastuna + frakzio bertikalak + maiuskulen arteko espazioa + aukerako loturak + frakzio diagonalak + altuera bakarreko zenbakiak + estilo zaharreko zenbakiak + ordinalak + zenbaki proportzionalak + maiuskula txikiak + zenbaki tabularrak + zero barraduna und eu diff --git a/make/data/cldr/common/main/fa.xml b/make/data/cldr/common/main/fa.xml index 70b2b6af840..b24c0f85743 100644 --- a/make/data/cldr/common/main/fa.xml +++ b/make/data/cldr/common/main/fa.xml @@ -78,6 +78,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ بیکولی بینی سیکسیکا + باسیلا بامبارایی بنگالی تبتی @@ -219,6 +220,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ هایدا جنوبی عبری هندی + هندی (انگلیسی) هندی فیجیایی هیلی‌گاینونی هیتی @@ -300,6 +302,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ کومیایی کورنی کواک والا + کووی قرقیزی لاتین لادینو @@ -310,9 +313,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ لزگی گاندایی لیمبورگی + لیگوری لیلوئت لاکوتا - لومبارد + لومبارد لینگالا لائوسی مونگویی @@ -555,7 +559,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ازبکی ویایی وندایی + ونیزی ویتنامی + ماکوا ولاپوک وتی ونجو @@ -569,6 +575,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ وو چینی قلموقی خوسایی + کانگری سوگایی یائویی یاپی @@ -579,7 +586,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ نهین گاتو کانتونی چینی کانتونی - چوانگی + ژوانگی زاپوتکی زناگا آمازیغی معیار مراکش @@ -1686,12 +1693,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ق ب - ب - ص - ظ - ع - ش - ن قبل‌ازظهر @@ -1706,14 +1707,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - ق - ب - ب - ص - ظ - ع - ش - ن + ق‌ظ + ب‌ظ قبل‌ازظهر @@ -2445,12 +2440,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ این یکشنبه یکشنبهٔ آینده - {0} یکشنبهٔ بعد - {0} یکشنبهٔ بعد + {0} یکشنبه بعد + {0} یکشنبه بعد + + + {0} یکشنبه قبل + {0} یکشنبه قبل + + + + + {0} یکشنبه بعد + {0} یکشنبه بعد + + + {0} یکشنبه قبل + {0} یکشنبه قبل + + + + + {0} یکشنبه بعد + {0} یکشنبه بعد - {0} یکشنبهٔ پیش - {0} یکشنبهٔ پیش + {0} یکشنبه قبل + {0} یکشنبه قبل @@ -2458,12 +2473,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ این دوشنبه دوشنبهٔ آینده - {0} دوشنبهٔ بعد - {0} دوشنبهٔ بعد + {0} دوشنبه بعد + {0} دوشنبه بعد + + + {0} دوشنبه قبل + {0} دوشنبه قبل + + + + + {0} دوشنبه بعد + {0} دوشنبه بعد + + + {0} دوشنبه قبل + {0} دوشنبه قبل + + + + + {0} دوشنبه بعد + {0} دوشنبه بعد - {0} دوشنبهٔ پیش - {0} دوشنبهٔ پیش + {0} دوشنبه قبل + {0} دوشنبه قبل @@ -2471,12 +2506,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ این سه‌شنبه سه‌شنبهٔ آینده - {0} سه‌شنبهٔ بعد - {0} سه‌شنبهٔ بعد + {0} سه‌شنبه بعد + {0} سه‌شنبه بعد + + + {0} سه‌شنبه قبل + {0} سه‌شنبه قبل + + + + + {0} سه‌شنبه بعد + {0} سه‌شنبه بعد + + + {0} سه‌شنبه قبل + {0} سه‌شنبه قبل + + + + + {0} سه‌شنبه بعد + {0} سه‌شنبه بعد - {0} سه‌شنبهٔ پیش - {0} سه‌شنبهٔ پیش + {0} سه‌شنبه قبل + {0} سه‌شنبه قبل @@ -2484,12 +2539,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ این چهارشنبه چهارشنبهٔ آینده - {0} چهارشنبهٔ بعد - {0} چهارشنبهٔ بعد + {0} چهارشنبه بعد + {0} چهارشنبه بعد + + + {0} چهارشنبه قبل + {0} چهارشنبه قبل + + + + + {0} چهارشنبه بعد + {0} چهارشنبه بعد + + + {0} چهارشنبه قبل + {0} چهارشنبه قبل + + + + + {0} چهارشنبه بعد + {0} چهارشنبه بعد - {0} چهارشنبهٔ پیش - {0} چهارشنبهٔ پیش + {0} چهارشنبه قبل + {0} چهارشنبه قبل @@ -2497,12 +2572,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ این پنجشنبه پنجشنبهٔ آینده - {0} پنجشنبهٔ بعد - {0} پنجشنبهٔ بعد + {0} پنجشنبه بعد + {0} پنجشنبه بعد + + + {0} پنجشنبه قبل + {0} پنجشنبه قبل + + + + + {0} پنجشنبه بعد + {0} پنجشنبه بعد + + + {0} پنجشنبه قبل + {0} پنجشنبه قبل + + + + + {0} پنجشنبه بعد + {0} پنجشنبه بعد - {0} پنجشنبهٔ پیش - {0} پنجشنبهٔ پیش + {0} پنجشنبه قبل + {0} پنجشنبه قبل @@ -2510,12 +2605,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ این جمعه جمعهٔ آینده - {0} جمعهٔ بعد - {0} جمعهٔ بعد + {0} جمعه بعد + {0} جمعه بعد + + + {0} جمعه قبل + {0} جمعه قبل + + + + + {0} جمعه بعد + {0} جمعه بعد + + + {0} جمعه قبل + {0} جمعه قبل + + + + + {0} جمعه بعد + {0} جمعه بعد - {0} جمعهٔ پیش - {0} جمعهٔ پیش + {0} جمعه قبل + {0} جمعه قبل @@ -2523,12 +2638,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ این شنبه شنبهٔ آینده - {0} شنبهٔ بعد - {0} شنبهٔ بعد + {0} شنبه بعد + {0} شنبه بعد + + + {0} شنبه قبل + {0} شنبه قبل + + + + + {0} شنبه بعد + {0} شنبه بعد + + + {0} شنبه قبل + {0} شنبه قبل + + + + + {0} شنبه بعد + {0} شنبه بعد - {0} شنبهٔ پیش - {0} شنبهٔ پیش + {0} شنبه قبل + {0} شنبه قبل @@ -2581,6 +2716,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ وقت {0} وقت تابستانی {0} وقت عادی {0} + + هونولولو + زمان هماهنگ جهانی @@ -3318,9 +3456,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ اولان‌باتور - - چویبالسان - ماکائو @@ -3367,7 +3502,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ باهیا باندراس - اخیناگا + اوجیناگا مونتری @@ -3427,7 +3562,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ نیوئه - چتم + چت‌هام اوکلند @@ -3720,9 +3855,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ نوم - - هونولولو - انکوریج @@ -3986,23 +4118,23 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - وقت مرکز-غرب استرالیا - وقت عادی مرکز-غرب استرالیا - وقت تابستانی مرکز-غرب استرالیا + وقت مرکز استرالیای غربی + وقت عادی مرکز استرالیای غربی + وقت تابستانی مرکز استرالیای غربی - وقت شرق استرالیا - وقت عادی شرق استرالیا - وقت تابستانی شرق استرالیا + وقت استرالیای شرقی + وقت عادی استرالیای شرقی + وقت تابستانی استرالیای شرقی - وقت غرب استرالیا - وقت عادی غرب استرالیا - وقت تابستانی غرب استرالیا + وقت استرالیای غربی + وقت عادی استرالیای غربی + وقت تابستانی استرالیای غربی @@ -4081,13 +4213,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ وقت تابستانی چین - - - وقت چویبالسان - وقت عادی چویبالسان - وقت تابستانی چویبالسان - - وقت جزیرهٔ کریسمس @@ -4338,6 +4463,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ وقت تابستانی پتروپاولوسک‐کامچاتسکی + + + وقت قزاقستان + + وقت شرق قزاقستان @@ -4792,6 +4922,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ٪ + E + ناعدد ‎+ @@ -4865,7 +4997,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - ‎¤#,##0.00 + ‎¤#,##0.00 @@ -4914,8 +5046,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 هزارمیلیارد ¤ - {0} {1} - {0} {1} @@ -4991,7 +5121,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ فرانک بلژیک (مالی) - لف بلغارستان + لو بلغارستان + لو بلغارستان + لو بلغارستان دینار بحرین @@ -5028,7 +5160,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ روبل بلاروس - р. + Br روبل بلاروسی (۲۰۱۶–۲۰۰۰) @@ -5187,7 +5319,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ شقل اسرائیل (۱۹۸۰ تا ۱۹۸۵) - شقل جدید اسرائیل + شِکِل جدید اسرائیل + شِکِل جدید اسرائیل + شِکِل جدید اسرائیل روپیهٔ هند @@ -5408,7 +5542,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ روپیهٔ پاکستان - زواتی لهستان + زلوتی لهستان + زلوتی لهستان + زلوتی لهستان اسکودوی پرتغال @@ -6092,6 +6228,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} درم {0} درم + + بخش در بیلیون + {0} بخش در بیلیون + {0} بخش در بیلیون + + + شب + {0} شب + {0} شب + {0} در شب + جهت اصلی @@ -6241,8 +6388,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ هکتار - {0} هک - {0} هک + {0} هکتار + {0} هکتار متر مربع @@ -6387,8 +6534,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ سه‌ماه - {0} فصل - {0} فصل + {0} سه‌ماه + {0}سه‌ماه {0}/سه‌ماه @@ -6680,6 +6827,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ☉L {0} ☉L + + تُن + {0} تُن + {0} تُن + کیلوگرم {0} کیلوگرم @@ -6690,13 +6842,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ گرم {0} گرم {0} گرم - {0} در گرم {0} میلی‌گرم {0} میلی‌گرم + میکروگرم {0} میکروگرم {0} میکروگرم @@ -6711,7 +6863,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} سنگ - پوند {0} پوند {0} پوند {0} در پوند @@ -6999,10 +7150,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ قاشق غ. {0} ق.غ.خ - {0} قاشق غ. + {0} ق.غ.خ - قاشق چ. + ق.چای‌خوری {0} ق.چ. {0} ق.چ. @@ -7046,6 +7197,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} کوارت انگلیسی {0} کوارت انگلیسی + + بخش در بیلیون + + + شب + {0} شب + {0} شب + {0}/شب + جهت {0} شرقی @@ -7160,9 +7320,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}³ - نیروی جاذبه {0}G - {0}G + {0}Gs + + + m/s² {0}° @@ -7177,6 +7339,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}″ + km² {0}km² {0}km² @@ -7189,12 +7352,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}m² + mi² {0} mi² {0} mi² - {0}جریب - {0} جریب + {0}ac + {0}ac yd² @@ -7268,8 +7432,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}kb - {0}فصل - {0}فصل + {0}سه‌ماه + {0}سه‌ماه {0}h @@ -7294,18 +7458,81 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}ns {0}ns + + amp + {0}A + {0}A + + + mA + {0}mA + {0}mA + + + {0}Ω + {0}Ω + + + {0}V + {0}V + + + cal + {0}cal + {0}cal + + + Cal + {0}Cal + {0}Cal + + + kJ + {0}kJ + {0}kJ + + + {0}J + {0}J + + + kWh + {0}kWh + {0}kWh + - {0}الکترون‌ولت - {0}الکترون‌ولت + eV + {0}eV + {0}eV + + + BTU + {0}Btu + {0}Btu {0}ک.وا.س/۱۰۰ ک.م {0} ک.وا.س/۱۰۰ ک.م - گ‌.هرتز - {0} گ.هرتز - {0} گ.هرتز + GHz + {0}GHz + {0}GHz + + + MHz + {0}MHz + {0}MHz + + + kHz + {0}kHz + {0}kHz + + + Hz + {0}Hz + {0}Hz {0}px @@ -7323,6 +7550,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}dpi {0}dpi + + {0}dot + {0}dot + km {0}km @@ -7383,55 +7614,67 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}/ft + in {0}in {0}in + + {0}pc + {0}pc + + ly {0}ly {0}ly - واحد نجومی - {0}واحد نجومی - {0}واحد نجومی + {0}au + {0}au - {0}فرلانگ - {0}فرلانگ + {0}fur + {0}fur - {0}فاتوم - {0}فاتوم + {0}fth + {0}fth - {0}مایل دریایی - {0}مایل دریایی + nmi + {0}nmi + {0}nmi + + + smi - {0}پوینت - {0}پوینت + pts + {0}pt + {0}pt - {0}شعاع خورشید - {0}شعاع خورشید + R☉ + {0}R☉ + {0}R☉ - تن متریک - {0} تن - {0} تن + {0}t + {0}t kg {0}kg {0}kg + + {0}g + {0}g + - میلی‌گرم {0}mg {0}mg - میکروگرم {0}μg {0}μg @@ -7448,33 +7691,45 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}lb + oz {0}oz {0}oz + {0}/oz - {0}اونس تروا - {0}اونس تروا + oz t + {0}oz t + {0}oz t {0}CD {0}CD + Da {0}Da {0}Da + M⊕ {0}M⊕ {0}M⊕ + M☉ {0}M☉ {0}M☉ + gr {0}gr {0}gr + + GW + {0}GW + {0}GW + {0}kW {0}kW @@ -7483,7 +7738,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}W {0}W + + mW + {0}mW + {0}mW + + hp {0}hp {0}hp @@ -7508,16 +7769,23 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}hPa - کیلومتر/ساعت + km/hr + m/s {0}m/s {0}m/s + mi/h {0}mph {0}mph + + kn + {0}kn + {0}kn + B{0} {0}بوفورت @@ -7572,6 +7840,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}bu {0}bu + + {0}galIm + {0}galIm + {0}/galIm + qt {0}qt @@ -7591,16 +7864,45 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}fl oz - {0}اونس سیال انگلیسی - {0}اونس سیال انگلیسی + Imp fl oz + {0}fl oz Im + {0}fl oz Im + + + {0} ق.غ.خ + {0} ق.غ.خ + ق.چ.خ {0}ق.چ. {0}ق.چ. + + bbl + {0}bbl + {0}bbl + + + ق.دس.خ + + + fl.dr. + {0}fl.dr. + {0}fl.dr. + - {0}کوارت انگلیسی - {0} کورت انگلیسی + qt Imp + {0}qt-Imp. + {0}qt-Imp. + + + بخش در بیلیون + + + شب + {0} شب + {0} شب + {0}/شب @@ -7682,10 +7984,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ پرچم‌ها غذا و نوشیدنی قالب - قالب و فضای سفید + قالب و فاصله گونه قالب تمام‌پهنا اشکال هندسی - گونه‌های قالب پهنا + گونه قالب نیم‌پهنا نویسه‌های هان ریشه‌های هان هانجا @@ -7720,27 +8022,27 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ تصویرنگاشت جا گیاه - سجاوندی + نشانه‌های سجاوندی پیکان‌های رو به راست - نمادهای استاندارد/نشان + نشان یا نماد گونه‌های کوچک شکلک - صورتک‌ها و افراد + شکلک یا شخص دبیره‌های آسیای جنوبی دبیره‌های آسیای جنوب شرقی فاصله‌گذاری ورزش - علائم + نماد علائم فنی - نشانه‌های نواخت + علامت نواخت مسافرت - سفر و جای‌ها + سفر یا مکان پیکان‌های رو به بالا گونه‌ها جاموی آوایی آب‌وهوا دبیره‌های آسیای غربی - فضای سفید + فاصله خالی ایتالیک @@ -7749,10 +8051,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ پهنا وزن شکسته - حروف کوچک + زیرنویس متن چاپی - عنوان دادن - حروف بزرگ + عنوان‌بندی + نمایشی دیوارکوب مایل‌به‌چپ عمود diff --git a/make/data/cldr/common/main/fa_AF.xml b/make/data/cldr/common/main/fa_AF.xml index 5dc2c6b07ab..e4e54d3a968 100644 --- a/make/data/cldr/common/main/fa_AF.xml +++ b/make/data/cldr/common/main/fa_AF.xml @@ -266,9 +266,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic - ب + بامداد بعد از چاشت - ش + شب diff --git a/make/data/cldr/common/main/ff_Adlm.xml b/make/data/cldr/common/main/ff_Adlm.xml index 397938de91c..bca130e259d 100644 --- a/make/data/cldr/common/main/ff_Adlm.xml +++ b/make/data/cldr/common/main/ff_Adlm.xml @@ -2248,7 +2248,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic 𞤑𞤫𞤲𞥆𞤭𞤲 (𞥑𞥒𞥐𞥑-𞥑𞥒𞥐𞥔) 𞤘𞤫𞤲𞤳𞤭𞤴𞤵𞥅 (𞥑𞥒𞥐𞥔-𞥑𞥒𞥐𞥖) 𞤑𞤫𞤲𞥇𞤫𞤴 (𞥑𞥒𞥐𞥖-𞥑𞥒𞥐𞥗) - 𞤔𞤮𞥅𞤺𞤫𞤲 (𞥙𞥗𞥖-𞥙𞥗𞥘) + 𞤔𞤮𞥅𞤺𞤫𞤲 (𞥑𞥒𞥐𞥗-𞥑𞥒𞥑𞥑) 𞤑𞤫𞤲𞤪𞤭𞤴𞤢𞤳𞤵 (𞥑𞥒𞥑𞥑-𞥑𞥒𞥑𞥓) 𞤑𞤫𞤥𞤨𞤮𞥅 (𞥑𞥒𞥑𞥓-𞥑𞥒𞥑𞥙) 𞤔𞤮𞥅𞤳𞤭𞤴𞤵𞥅 (𞥑𞥒𞥑𞥙-𞥑𞥒𞥒𞥒) @@ -3267,6 +3267,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 {0} 𞤐𞤶𞤢𞤥𞤲𞤣𞤭 𞤕𞤫𞥅𞤯𞤵 {0} 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤖𞤢𞤱𞤪𞤵𞤲𞥋𞤣𞤫 + + + 𞤑𞤖𞤖 + 𞤑𞤖𞤖 + 𞤑𞤕𞤖 + + 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤖𞤭𞤤𞥆𞤢𞤲𞤳𞤮𞥅𞤪𞤫 𞤊𞤮𞤲𞤣𞤢𞥄𞤲𞤣𞤫 @@ -4007,9 +4014,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 𞤓𞤤𞤢𞤲𞤦𞤢𞤼𞤢𞤪 - - 𞤕𞤮𞤴𞤦𞤢𞤤𞤧𞤢𞤲 - 𞤃𞤢𞤳𞤢𞤱𞤮 @@ -4406,13 +4410,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 𞤐𞤮𞤱𞤥𞤵 - - - 𞤑𞤖𞤖 - 𞤑𞤖𞤖 - 𞤑𞤕𞤖 - - 𞤀𞤲𞤧𞤮𞤪𞤢𞥄𞤶𞤵 @@ -4797,13 +4794,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤕𞤫𞥅𞤯𞤵 𞤕𞤢𞤴𞤲𞤢 - - - 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤅𞤮𞤴𞤦𞤢𞤤𞤧𞤢𞤲 - 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤖𞤢𞤱𞤪𞤭𞤼𞤵𞤲𞥋𞤣𞤫 𞤅𞤮𞤴𞤦𞤢𞤤𞤧𞤢𞤲 - 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤕𞤫𞥅𞤯𞤵 𞤅𞤮𞤴𞤦𞤢𞤤𞤧𞤢𞤲 - - 𞤑𞤭𞤶𞤮𞥅𞤪𞤫 𞤅𞤵𞤪𞤭𞥅𞤪𞤫 𞤑𞤭𞤪𞤧𞤭𞤥𞤢𞥄𞤧 diff --git a/make/data/cldr/common/main/fi.xml b/make/data/cldr/common/main/fi.xml index 137ee13e624..b67fb765c5f 100644 --- a/make/data/cldr/common/main/fi.xml +++ b/make/data/cldr/common/main/fi.xml @@ -84,7 +84,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ banjar kom siksika - anii + anii tai dam bambara bengali @@ -229,7 +229,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ keskiyläsaksa guarani muinaisyläsaksa - goankonkani gondi gorontalo gootti @@ -342,7 +341,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komi korni kwakʼwala - kuvi + kuvi kirgiisi latina ladino @@ -359,6 +358,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lillooet liivi lakota + ladin lombardi lingala lao @@ -373,7 +373,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ luluanluba luiseño lunda - luo lusai luhya latvia @@ -635,14 +634,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ tuntematon kieli urdu uzbekki - vai venda venetsia vepsä vietnam länsiflaami maininfrankki - makhuwa + makhuwa volapük vatja võro @@ -658,7 +656,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kalmukki xhosa mingreli - kangri + kangri soga jao japi @@ -1048,8 +1046,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Israel Mansaari Intia - Brittiläinen Intian valtameren alue - Chagossaaret + Brittiläinen Intian valtameren alue + Chagossaaret Irak Iran Islanti @@ -1539,7 +1537,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -1980,18 +1978,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - tammik. - helmik. - maalisk. - huhtik. - toukok. - kesäk. - heinäk. - elok. - syysk. - lokak. - marrask. - jouluk. + tammi + helmi + maalis + huhti + touko + kesä + heinä + elo + syys + loka + marras + joulu tammikuuta @@ -2065,7 +2063,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ la - sunnuntaina + sunnuntai maanantaina tiistaina keskiviikkona @@ -2288,8 +2286,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ y G M.d.y G LLL y G - d. MMM y G - E d. MMM y G + d.M.y G + E d.M.y G d. MMMM y G E d. MMMM y G h a @@ -2304,8 +2302,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ H.mm v d.M. E d.M. - d. MMM - ccc d. MMM + d.M. + ccc d.M. d. MMMM ccc d. MMMM LLLL'n' W. 'viikko' @@ -2316,8 +2314,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ E d.M.y M.y LLL y - d. MMM y - E d. MMM y + d.M.y + E d.M.y LLLL y cccc d. MMMM y d. MMMM y @@ -3177,6 +3175,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ aikavyöhyke: {0} {0} (kesäaika) {0} (normaaliaika) + + Honolulu + UTC-yleisaika @@ -3255,9 +3256,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kap Verde - - Curaçao - Joulusaari @@ -3410,9 +3408,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ulan Bator - - Tšoibalsa - Malediivit @@ -3446,12 +3441,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Lissabon - - Asunción - - - Réunion - Bukarest @@ -3503,9 +3492,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Saint Helena - - São Tomé - Damaskos @@ -3530,9 +3516,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Midwaysaaret - - Honolulu - Beulah, Pohjois-Dakota @@ -3812,13 +3795,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kiinan kesäaika - - - Tšoibalsan aika - Tšoibalsan normaaliaika - Tšoibalsan kesäaika - - Joulusaaren aika @@ -4069,6 +4045,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kamtšatkan kesäaika + + + Kazakstanin aika + + Itä-Kazakstanin aika @@ -4623,8 +4604,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 bilj'.' ¤ - {0} {1} - {0} {1} @@ -5837,13 +5816,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Sierra Leonen leone - Sierra Leonen leonea + Sierra Leonen leone Sierra Leonen leonea - Sierra Leonen leone (1964—2022) - Sierra Leonen leone (1964—2022) - Sierra Leonen leonea (1964—2022) + Sierra Leonen leone (1964–2022) + Sierra Leonen leone (1964–2022) + Sierra Leonen leonea (1964–2022) Somalian šillinki @@ -6033,8 +6012,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Venezuelan bolívar (1871–2008) - Venezuelan bolivar (1871–2008) - Venezuelan bolivaria (1871–2008) + Venezuelan bolívar (1871–2008) + Venezuelan bolívaria (1871–2008) Venezuelan bolívar (2008–2018) @@ -6567,7 +6546,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ milligrammat desilitrassa {0} milligramma desilitrassa + {0} milligrammasta desilitrassa + {0} milligramman desilitrassa + {0} milligrammaan desilitrassa + {0} milligrammaa desilitrassa {0} milligrammaa desilitrassa + {0} milligrammasta desilitrassa + {0} milligramman desilitrassa + {0} milligrammaan desilitrassa + {0} milligrammaa desilitrassa millimoolit litrassa @@ -7070,7 +7057,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kilokalorit {0} kilokalori + {0} kilokalorista + {0} kilokalorin + {0} kilokaloriin + {0} kilokaloria {0} kilokaloria + {0} kilokalorista + {0} kilokalorin + {0} kilokaloriin + {0} kilokaloria kalorit @@ -7705,7 +7700,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ elohopeamillimetrit {0} elohopeamillimetri + {0} elohopeamillimetristä + {0} elohopeamillimetrin + {0} elohopeamillimetriin + {0} elohopeamillimetriä {0} elohopeamillimetriä + {0} elohopeamillimetristä + {0} elohopeamillimetrin + {0} elohopeamillimetriin + {0} elohopeamillimetriä paunat / neliötuuma @@ -8153,6 +8156,33 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} br. neljännesgallona {0} br. neljännesgallonaa + + miljardisosat + {0} miljardisosa + {0} miljardisosasta + {0} miljardisosan + {0} miljardisosaan + {0} miljardisosaa + {0} miljardisosaa + {0} miljardisosasta + {0} miljardisosan + {0} miljardisosaan + {0} miljardisosaa + + + yöt + {0} yö + {0} yöstä + {0} yön + {0} yöhön + {0} yötä + {0} yötä + {0} yöstä + {0} yön + {0} yöhön + {0} yötä + {0} / yö + pääilmansuunta @@ -8546,6 +8576,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} qt br. {0} qt br. + + yöt + {0} yö + {0} yö + {0}/yö + ilmansuunta {0}I @@ -9273,6 +9309,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}qt br. {0}qt br. + + yöt + {0}yö + {0}yöt + {0}/yö + suunta diff --git a/make/data/cldr/common/main/fil.xml b/make/data/cldr/common/main/fil.xml index 3ab1ed46273..7fc5cf09870 100644 --- a/make/data/cldr/common/main/fil.xml +++ b/make/data/cldr/common/main/fil.xml @@ -57,6 +57,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Bislama Bini Siksika + Anii Bambara Bangla Tibetan @@ -100,6 +101,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Dargwa Taita German + Austrian German Swiss High German Dogrib Zarma @@ -140,7 +142,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Cajun French Hilagang Frisian Friulian - Kanlurang Frisian + Western Frisian Irish Ga Gagauz @@ -231,6 +233,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Komi Cornish Kwakʼwala + Kuvi Kirghiz Latin Ladino @@ -239,9 +242,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Lezghian Ganda Limburgish + Ligurian Lillooet Lakota - Lombard + Lombard Lingala Lao Louisiana Creole @@ -356,7 +360,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Rwa Sanskrit Sandawe - Sakha + Yakut Samburu Santali Ngambay @@ -399,6 +403,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Congo Swahili Comorian Syriac + Silesian Tamil Katimugang Tutchone Telugu @@ -441,7 +446,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Uzbek Vai Venda + Venetian Vietnamese + Makhuwa Volapük Vunjo Walloon @@ -453,6 +460,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Wu Chinese Kalmyk Xhosa + Kangri Soga Yangben Yemba @@ -461,6 +469,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Nheengatu Cantonese Chinese, Cantonese + Zhuang Standard Moroccan Tamazight Chinese Chinese, Mandarin @@ -502,7 +511,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -525,7 +533,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -687,7 +694,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Israel Isle of Man India - Teritoryo sa Karagatan ng British Indian + British Indian Ocean Territory Chagos Archipelago Iraq Iran @@ -887,8 +894,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Pambansang Kalendaryong Indian Kalendaryong Islam Kalendaryong Hijri (tabular, Civil epoch) - Kalendaryong Islamiko (Saudi Arabia, sighting) - Kalendaryong Islamiko (tabular, astronomikal na epoch) + Kalendaryong Islamiko (Saudi Arabia, sighting) + Kalendaryong Islamiko (tabular, astronomikal na epoch) Kalendaryong Hijri (Umm al-Qura) ISO-8601 na Kalendaryo Kalendaryong Japanese @@ -974,7 +981,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Traditional Chinese na Mga Numeral para sa Pananalapi Mga Hebrew Numeral Pahawh Hmong na Mga Digit - Javanese na Mga Digit + Javanese na Mga Digit Mga Japanese Numeral Mga Japanese Numeral sa Pananalapi Kayah Li na Mga Digit @@ -995,7 +1002,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Modi na Mga Digit Mongolian Digits Mro na Mga Digit - Meetei Mayek na Mga Digit + Meetei Mayek na Mga Digit Mga Myanmar na Digit Maynmar Shan na Mga Digit Myanmar Tai Laing na Mga Digit @@ -1031,7 +1038,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -1320,14 +1327,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Biy Sab - - Li - Lu - Ma - Mi - Hu - Bi - Sa + + Lin + Lun + Mar + Miy + Huw + Biy + Sab Linggo @@ -1349,6 +1356,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Biy Sab + + Lin + Lun + Mar + Miy + Huw + Biy + Sab + @@ -1372,9 +1388,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ hatinggabi tanghaling-tapat - nang umaga + ng umaga madaling-araw - tanghali + ng hapon ng gabi ng gabi @@ -1383,10 +1399,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ am tanghaling-tapat pm - umaga + ng umaga madaling-araw - sa hapon - sa gabi + ng hapon + ng gabi + ng gabi + + + hatinggabi + tanghaling-tapat + ng umaga + madaling-araw + ng hapon + ng gabi ng gabi @@ -1398,13 +1423,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ gabi gabi - - umaga - madaling-araw - hapon - gabi - gabi - @@ -1515,7 +1533,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ E, M/d E, MMM d E, MMMM d - 'ika'-W 'linggo' 'ng' MMMM + 'linggo' W 'ng' MMMM 'linggo' W 'ng' MMMM M/y M/d/y @@ -2041,7 +2059,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ sa {0} Biy. - sa {0} (na) Biyernes + sa {0} Biy + + + sa {0} (na) Biy ang nakalipas + {0} (na) Biy ang nakalipas @@ -2160,6 +2182,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Oras sa {0} Daylight Time ng {0} Standard na Oras sa {0} + + Honolulu + Coordinated Universal Time @@ -2168,9 +2193,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Di-kilalang Lungsod - - St. Barthélemy - Makipot na Look ng Rankin @@ -2190,9 +2212,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kostanay - - Rangoon - Macau @@ -2211,21 +2230,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Cancun - - Asunción - - - Réunion - Puwerto ng Espanya Kiev - - Honolulu - Lungsod ng Ho Chi Minh @@ -2356,23 +2366,23 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Oras ng Gitnang Kanluran ng Australya - Standard Time ng Gitnang Kanluran ng Australya - Daylight Time sa Gitnang Kanlurang Australya + Oras ng Gitnang Kanluran ng Australia + Standard Time ng Gitnang Kanluran ng Australia + Daylight Time sa Gitnang Kanlurang Australia - Oras sa Silangang Australya - Standard na Oras sa Silangang Australya - Daylight Time sa Silangang Australya + Oras sa Silangang Australia + Standard na Oras sa Silangang Australia + Daylight Time sa Silangang Australia - Oras sa Kanlurang Australya - Standard na Oras sa Kanlurang Australya - Daylight Time sa Kanlurang Australya + Oras sa Kanlurang Australia + Standard na Oras sa Kanlurang Australia + Daylight Time sa Kanlurang Australia @@ -2451,13 +2461,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Daylight Time sa China - - - Oras sa Choibalsan - Standard na Oras sa Choibalsan - Oras sa Tag-init ng Choibalsan - - Oras sa Christmas Island @@ -2703,6 +2706,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Summer Time sa Petropavlovsk-Kamchatski + + + Oras ng Kazakhstan + + Oras sa Silangang Kazakhstan @@ -3231,8 +3239,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ 000T - {0} {1} - {0} {1} @@ -4414,7 +4420,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ mga quarter {0} qtr - {0} qaurter + {0} quarter mga buwan @@ -4885,7 +4891,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} degrees kelvin - pound-feet + pound-force-feet {0} pound-force-foot {0} pound-feet @@ -5046,6 +5052,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Imp. na kuwart {0} Imp. na kuwart + + parts per billion + {0} part per billion + {0} parts per billion + + + mga gabi + {0} gabi + {0} gabi + {0} kada gabi + cardinal direction @@ -5468,6 +5485,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Imp na kuwart + + parts/billion + + + mga gabi + {0} gabi + {0} gabi + {0}/gabi + {0}S {0}H @@ -5910,6 +5936,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} qt Imp. {0}qt-Imp. + + {0}ppb + {0}ppb + + + mga gabi + {0}gabi + {0}gabi + {0}/gabi + diff --git a/make/data/cldr/common/main/fo.xml b/make/data/cldr/common/main/fo.xml index ecb45b9a457..6fd7a518162 100644 --- a/make/data/cldr/common/main/fo.xml +++ b/make/data/cldr/common/main/fo.xml @@ -45,11 +45,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic bemba bena bulgarskt + haryanvi vestur balochi bhojpuri bislama bini siksika + anii bambara bangla tibetskt @@ -76,6 +78,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic korsikanskt seselwa creole franskt kekkiskt + swampy cree kirkju sláviskt chuvash walisiskt @@ -87,6 +90,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic høgt týskt (Sveis) dogrib sarma + dogri lágt sorbian duala divehi @@ -174,6 +178,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic makonde grønhøvdaoyggjarskt koro + kaingang khasi koyra chiini kikuyu @@ -201,6 +206,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic kumyk komi corniskt + kuvi kyrgyz latín ladino @@ -210,7 +216,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic lezghian ganda limburgiskt + liguriskt lakota + lombard lingala laoskt lozi @@ -219,7 +227,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic luba-katanga luba-lulua lunda - luo mizo luyia lettiskt @@ -300,6 +307,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic portugiskiskt (Evropa) quechua kʼicheʼ + rajasthani rapanui rarotongiskt retoromanskt @@ -354,6 +362,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic kongo svahili komoriskt syriac + silesiskt tamilskt telugu timne @@ -387,9 +396,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic ókent mál urdu usbekiskt - vai venda + venetiskt vjetnamesiskt + makhuwa volapykk vunjo walloon @@ -401,13 +411,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic wu kinesiskt kalmyk xhosa + kangri soga yangben yemba jiddiskt yoruba + nheengatu kantonesiskt kinesiskt, kantonesiskt + zhuang vanligt marokanskt tamazight kinesiskt kinesiskt, mandarin @@ -421,47 +434,147 @@ CLDR data files are interpreted according to the LDML specification (http://unic zaza + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + @@ -552,6 +665,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kina Kolombia Clipperton + Sark Kosta Rika Kuba Grønhøvdaoyggjar @@ -775,10 +889,81 @@ CLDR data files are interpreted according to the LDML specification (http://unic ókent øki + akuapem + anpezo + arkaika + asante + auvern + basiceng + bauddha + bciav + bcizbl + biscayan + blasl + bornholm + cisaup + cornu + creiss + fascia + fodom + fonkirsh + fonnapa + fonxsamp + gallo + gascon + gherd + grclass + grital + grmstr + hognorsk + hsistemo + itihasa + ivanchov + jauer + jyutping + kociewie + laukika + lemosin + lengadoc + ltg1929 + ltg2007 + luna1918 monotonísk - pinyin - polytonísk + andyuka málføri + natisone málføri + newfound + nicard + pahawh2 + pahawh3 + pahawh4 + pamaka málføri + peano + pehoeji + petr1708 + pinyin + polytonísk + teldumál + provenc + puter + rumgr + saho + simple + spanglis + surmiran + sursilv + sutsilv + synnejyl + tailo + tongyong + tunumiit + ulster + vaidika + valbadia + vallader + vecdruka + vivaraup Wade-Giles + xsistemo kalendari @@ -793,11 +978,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic buddistiskur kalendari kinesiskur kalendari + koptiskur kalendari dangi kalendari etiopiskur kalendari + etiopiskur amete alem kalendari gregorianskur kalendari hebraiskur kalendari - islamiskur kalendari + islamiskur kalendari + islamiskur kalendari (talvuskapaður, fólkaligt tíðarskeið) + islamiskur kalendari (Umm al-Qura) ISO-8601 kalendari japanskur kalendari persiskur kalendari @@ -805,9 +994,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic gjaldoyras roknskaparførsla format vanlig gjaldoyra format forsett Unicode raðskipan + myndtekin raðskipan röðina fyrir fjöltyngi evrópskum skjölum vanlig leiting vanlig raðskipan + siðbundin raðskipan + zhuyin raðskipan 12 tímar klokkuskipan (0–11) 12 tímar klokkuskipan (1–12) 24 tímar klokkuskipan (0–23) @@ -818,15 +1010,25 @@ CLDR data files are interpreted according to the LDML specification (http://unic metralag mátingareind (UK) mátingareind (USA) + ahom tøl arabisk tøl víðkað arabisk tøl armensk tøl armensk tøl (smáir bókstavir) + balisk tøl bangla tøl + brahmi tøl + chakma tøl + cham tøl + kyrilliskt tøl devanagarik tøl + dives akuru tøl etiopisk tøl tøl í fullari longd + garay tøl gregoriansk tøl + gunjala gondi tøl + masaram gondi tøl grikskt tøl grikskt tøl (smáir bókstavir) gujaratik tøl @@ -837,6 +1039,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic vanlig kinesisk tøl vanlig kinesisk fíggjarlig tøl hebraisk tøl + javanskt tøl japanskt tøl japanskt fíggjarlig tøl khmer tøl @@ -844,7 +1047,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic lao tøl vesturlendsk tøl malayalam tøl + meetei mayek tøl myanmarsk tøl + ol chiki tøl odia tøl rómartøl rómartøl (smáir bókstavir) @@ -853,6 +1058,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic telugu tøl tailendsk tøl tibetsk tøl + vai tøl metralagið @@ -873,7 +1079,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2033,6 +2239,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} tíð {0} summartíð {0} vanlig tíð + + Honolulu + Samskipað heimstíð @@ -2062,9 +2271,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Grønhøvdaoyggjar - - Curaçao - Prag @@ -2156,12 +2362,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Lissabon - - Asunción - - - Réunion - Bukarest @@ -2177,15 +2377,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Singapor - - São Tomé - Kiev - - Honolulu - Vatikanið @@ -2404,13 +2598,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kina summartíð - - - Choibalsan tíð - Choibalsan vanlig tíð - Choibalsan summartíð - - Jólaoyggj tíð @@ -2649,6 +2836,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Japan summartíð + + + Kasakstan tíð + + Eystur Kasakstan tíð @@ -3174,8 +3366,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 000 bió'.' ¤ - {0} {1} - {0} {1} @@ -3847,6 +4037,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic yocto{0} + + ronto{0} + + + quecto{0} + deka{0} @@ -3877,6 +4073,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic yotta{0} + + ronna{0} + + + quetta{0} + kibi{0} @@ -3968,9 +4170,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} fyri hvørt fermíl - feryards - {0} feryard - {0} feryards + ferjard + {0} ferjardur + {0} ferjard ferføtur @@ -3983,6 +4185,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} fertummar {0} fyri hvønn fertumma + + {0}Karat + {0} Karat + milligramm fyri hvønn desilitur {0} milligramm fyri hvønn desilitur @@ -3993,6 +4199,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} millimol fyri hvønn litur {0} millimol fyri hvønn litur + + lutir + {0} lutur + {0} lutir + partar fyri hvørja millión {0} partur fyri hvørja millión @@ -4088,6 +4299,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} um ári + + korter + {0} korter + {0} korter + {0}/korter + mánaðir {0} mánaður @@ -4196,6 +4413,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} newton {0} newton + + kilowatttímar fyri hvørjar 100 kilometrar + {0} kilowatttíma fyri hvørjar 100 kilometrar + {0} kilowatttímar fyri hvørjar 100 kilometrar + gigahertz {0} gigahertz @@ -4238,14 +4460,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} skíggjadeplar fyri hvønn tunna - punkt fyri hvønn sentimetur - {0} punkt fyri hvønn sentimetur - {0} punkt fyri hvønn sentimetur + punkt fyri hvønn sentimetur + {0} punkt fyri hvønn sentimetur + {0} punkt fyri hvønn sentimetur - punkt fyri hvønn tumma - {0} punkt fyri hvønn tumma - {0} punkt fyri hvønn tumma + punkt fyri hvønn tumma + {0} punkt fyri hvønn tumma + {0} punkt fyri hvønn tumma radius á jørðuni @@ -4401,6 +4623,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} sólarmassi {0} sólarmassar + + gran + {0} gran + {0} gran + {0} gigawatt {0} gigawatt @@ -4486,20 +4713,25 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} sjómíl um tíman {0} sjómíl um tíman + + stig + {0} stig + {0} stig + - stig Celsius - {0} stig Celsius - {0} stig Celsius + celsiusstig + {0} celsiusstig + {0} celsiusstig - stig Fahrenheit - {0} stig Fahrenheit - {0} stig Fahrenheit + fahrenheitstig + {0} fahrenheitstig + {0} fahrenheitstig - Kelvin - {0} Kelvin - {0} Kelvin + kelvin + {0} kelvin + {0} kelvin pund føtur @@ -4579,6 +4811,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} millilitur {0} millilitrar + + metralag pintar + {0} metralag pintur + {0} metralag pintar + {0} fyri hvønn gallon @@ -4615,6 +4852,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} bretsk dessertskeið {0} bretskar dessertskeiðir + + ljós + {0} ljós + {0} ljós + + + partar fyri hvørja milliard + {0} part fyri hvørja milliard + {0} partar fyri hvørja milliard + + + nætur + {0} nátt + {0} nætur + {0}/nátt + {0} eystur {0} norður @@ -4627,13 +4880,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic dam{0} - G + G-kreftir + + + m/sek² snúningar {0} snú. {0} snú. + + radian + stig {0} stig @@ -4664,14 +4923,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} ekrur - yards² - {0} yard² - {0} yards² + jard² + {0} yd² + {0} yd² føtur² - {0} fót² - {0} føtur² + {0} ft² + {0} ft² tum.² @@ -4681,8 +4940,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic karat - {0} karat - {0} karat + {0} Karat + {0} Karat mg/dl @@ -4694,10 +4953,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} mmol/l {0} mmol/l + + lutur + {0} lutur + {0} lutir + partar/millión - {0} pt./mill. - {0} pt./mill. + {0} pt./mill. + {0} pt./mill. prosent @@ -4734,6 +4998,30 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} míl/UK gallon {0} míl/UK gallon + + terabýt + + + terabit + + + gigabýt + + + gigabit + + + megabýt + + + megabit + + + kilobýt + + + kilobit + být {0} být @@ -4755,6 +5043,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} ár {0}/ár + + korter + {0} korter + {0} korter + {0}/korter + mnð. {0} mnð. @@ -4813,9 +5107,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} kal. - kostkaloriur - {0} kostkaloria - {0} kostkaloriur + kostkaloriur + {0} kostkaloria + {0} kostkaloriur kilojoule @@ -4824,7 +5118,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic elektronvolt - bretskar hitaeindir + BTU hitaeindir @@ -4841,9 +5135,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic megaskíggjadeplar - punkt - {0} punkt - {0} punkt + punkt + {0} punkt + {0} punkt + + + radius á jørðuni m @@ -4901,6 +5198,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic luks + + lumen + sólarljósmegi @@ -4914,8 +5214,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic stones - {0} stone - {0} stones + {0} st + {0} st pund @@ -4946,11 +5246,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic sólarmassi - - gigawatt + + gran + {0} gran + {0} gran - hestakreftur + hk {0} hk {0} hk @@ -4959,10 +5261,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} mmHg {0} mmHg + + tum. Hg + {0} tum. Hg + {0} tum. Hg + - mb - {0} mb - {0} mb + {0} mbar + {0} mbar lufttrýst @@ -4974,8 +5280,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} km/t {0} km/t + + m/sek + - míl/t + míl/tíman {0} míl/t {0} míl/t @@ -4984,6 +5293,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} smíl/t {0} smíl/t + + stig + míl³ {0} míl³ @@ -5033,9 +5345,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} ml - metralag pints - {0} metralag pint - {0} metralag pints + metralag pintar + {0} metralag pintur + {0} metralag pintar metralag koppar @@ -5139,6 +5451,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} bretskur quart {0} bretskir quartar + + ljós + {0} ljós + {0} ljós + + + partar/milliard + {0} part/mia. + {0} partar/mia. + + + nætur + {0} nátt + {0} nætur + {0}/nátt + ætt {0} E @@ -5149,60 +5477,192 @@ CLDR data files are interpreted according to the LDML specification (http://unic - {0}G - {0}G + G-kreftir + {0}G + {0}G + + + {0}m/s² + {0}m/s² + + + snú. + {0}snú. + {0}snú. + + + {0}rad + {0}rad - {0}° - {0}° + {0}° + {0}° - {0}′ - {0}′ + {0}′ + {0}′ - {0}″ - {0}″ + {0}″ + {0}″ - {0}km² - {0}km² + {0}km² + {0}km² - {0}ha - {0}ha + {0}ha + {0}ha - {0}m² - {0}m² + {0}m² + {0}m² + + + {0}cm² + {0}cm² + + + {0}míl² + {0}míl² + + + {0}ekra + {0}ekrur + + + yd² + {0}yd² + {0}yd² + + + ft² + {0}ft² + {0}ft² + + + {0}tum.² + {0}tum.² + + + {0}dunam + {0}dunam + + + {0}Karat + {0}Karat - mg/dL - {0}mg/dL - {0}mg/dL + {0}mg/dl + {0}mg/dl - mmol/L - {0}mmol/L - {0}mmol/L + {0}mmol/l + {0}mmol/l + + + lutur + {0}lutur + {0} lutir - ppm - {0} ppm - {0} ppm + pt./mill. + {0}pt./mill + {0}pt./mill % + + + {0}‰ + {0}‰ + + + + {0}‱ + {0}‱ + + + {0}mol + {0}mol + + + {0}l/km + {0}l/km + l/100km {0}l/100km {0}l/100km + + {0}míl/gallon + {0}míl/gallon + + + {0}míl/UK gallon + {0}míl/UK gallon + + + {0}PB + {0}PB + + + {0}TB + {0}TB + + + terabit + {0}Tb + {0}Tb + + + gigabýt + {0}GB + {0}GB + + + {0}Gb + {0}Gb + + + megabýt + {0}MB + {0}MB + + + {0}Mb + {0}Mb + + + kilobýt + {0}kB + {0}kB + + + {0}kb + {0}kb + + + B + {0}B + {0}B + + + {0}bit + {0}bit + {0}ár {0}ár + + kort. + {0}kort. + {0}kort. + {0}/kort. + m. {0}m. @@ -5217,30 +5677,121 @@ CLDR data files are interpreted according to the LDML specification (http://unic d. {0}d. {0}d. - {0}/d + {0}/d t. {0}t. {0}t. + {0}/t m. {0}m. {0}m. - {0}/min + {0}/min s. {0}s. {0}s. - {0}/s + {0}/s ms. {0}ms. {0}ms. + + {0} μs + {0} μs + + + amp + {0}A + {0}A + + + mA + {0}mA + {0}mA + + + {0}Ω + {0}Ω + + + {0}V + {0}V + + + {0}kcal + {0}kcal + + + {0}kal. + {0}kal. + + + {0}kostkaloria + {0}kostkaloriur + + + kJ + {0}kJ + {0}kJ + + + {0}J + {0}J + + + {0}kWh + {0}kWh + + + eV + {0}eV + {0}eV + + + BTU + {0}Btu + {0}Btu + + + {0}thm + {0}thm + + + {0}lbf + {0}lbf + + + N + {0}N + {0}N + + + {0}kWh/100km + {0}kWh/100km + + + {0}GHz + {0}GHz + + + {0}MHz + {0}MHz + + + {0}kHz + {0}kHz + + + {0}Hz + {0}Hz + {0}km {0}km @@ -5258,8 +5809,33 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}mm - {0}pm - {0}pm + {0}pm + {0}pm + + + R☉ + + + {0}lx + {0}lx + + + {0}cd + {0}cd + + + lumen + {0}lm + {0}lm + + + L☉ + {0}L☉ + {0}L☉ + + + {0}t + {0}t {0}kg @@ -5270,43 +5846,217 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}g {0}g + + {0}mg + {0}mg + + + {0}μg + {0}μg + + + {0}stutt t + {0}stutt t + + + {0}st + {0}st + + + {0}# + {0}# + + + {0}unsa + {0}unsur + + + {0}troy unsa + {0} troy unsur + + + {0}CD + {0}CD + + + Da + {0}Da + {0}Da + + + M⊕ + {0}M⊕ + {0}M⊕ + + + M☉ + {0}M☉ + {0}M☉ + + + gran + {0}gran + {0}gran + + + GW + {0}GW + {0}GW + + + {0}MW + {0}MW + - {0}kW - {0}kW + {0}kW + {0}kW - {0}W - {0}W + {0}W + {0}W + + + {0}mW + {0}mW + + + hk + {0}hk + {0}hk + + + {0}mmHg + {0}mmHg + + + {0}psi + {0}psi + + + ″ Hg + {0}″ Hg + {0}″ Hg + + + {0}bar + {0}bar - {0}mbar - {0}mbar + mbar + {0}mb + {0}mb + + + {0}lufttrýst + {0}lufttrýst + + + {0}Pa + {0}Pa - {0}hPa - {0}hPa + {0}hPa + {0}hPa + + + {0}kPa + {0}kPa + + + {0}MPa + {0}MPa {0}km/t {0}km/t - {0}m/s - {0}m/s + m/sek + {0}m/s + {0}m/s - - ° - {0}° - {0}° + + míl/tíman + {0}míl/t + {0}míl/t + + + {0}smíl/t + {0}smíl/t + + + {0}K + {0}K + + + {0}lbf⋅ft + {0}lbf⋅ft + + + {0}N⋅m + {0}N⋅m - {0}km³ - {0}km³ + {0}km³ + {0}km³ + + + {0}m³ + {0}m³ + + + {0}cm³ + {0}cm³ + + + {0}Ml + {0}Ml + + + {0}hl + {0}hl {0}l {0}l + + {0}dl + {0}dl + + + {0}cl + {0}cl + + + {0}ml + {0}ml + + + metralag pintar + {0}metralag pintur + {0}metralag pintar + + + {0}metralag koppur + {0}metralag koppur + + + ljós + {0}ljós + {0}ljós + + + partar/mia. + {0}part/mia. + {0}partar/mia. + + + nætur + {0}nátt + {0}nætur + {0}/nátt + {0}E {0}N @@ -5354,12 +6104,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} — Alt - {0} — Sambæri - {0} — Girða - {0} — Víðkað - {0} — Søguligt + {0} —sambæri + {0} — girða + {0} — víðkað + {0} til vinstru + {0} til høgru + {0} — søguligt {0} — ymiskt - {0} — Annað + {0} — annað Skriftir — {0} {0} strok {0} strok @@ -5524,5 +6276,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic und fo + + Mia + + + Hjørdis + Mortensen + + + harra + diff --git a/make/data/cldr/common/main/fr.xml b/make/data/cldr/common/main/fr.xml index d5ace55980e..ee22ad101c9 100644 --- a/make/data/cldr/common/main/fr.xml +++ b/make/data/cldr/common/main/fr.xml @@ -87,6 +87,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ banjar kom siksika + anii bambara bengali tibétain @@ -226,7 +227,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ moyen haut-allemand guarani ancien haut allemand - konkani de Goa gondi gorontalo gotique @@ -337,6 +337,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komi cornique kwak’wala + kuvi kirghize latin ladino @@ -366,7 +367,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ luba-kasaï (ciluba) luiseño lunda - luo lushaï luyia letton @@ -635,6 +635,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ vietnamien flamand occidental franconien du Main + macua volapük vote võro @@ -650,6 +651,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kalmouk xhosa mingrélien + kangri soga yao yapois @@ -723,6 +725,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + @@ -732,6 +735,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + @@ -765,6 +769,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + @@ -807,6 +812,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + @@ -842,6 +848,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + @@ -863,7 +870,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + @@ -1412,12 +1421,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ chiffres éthiopiens Chiffres financiers chiffres pleine chasse + chiffres garays chiffres géorgiens chiffres gondi gunjala chiffres gondi masaram chiffres grecs chiffres grecs minuscules chiffres goudjarâtîs + chiffres gurung khemas chiffres gourmoukhîs nombres décimaux chinois chiffres en chinois simplifié @@ -1434,6 +1445,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ chiffres kawis chiffres khmers chiffres en kannada + chiffres kirat rais chiffres lannas horas chiffres lannas thams chiffres laotiens @@ -1451,14 +1463,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ chiffres mros chiffres meitei-mayeks chiffres birmans + chiffres birmans de pwo karen de l’Est + chiffres birmans pao chiffres birmans shans chiffres birmans tai laings chiffres nag mundaris chiffres natifs chiffres n’kos chiffres ol-chikis + chiffres ol onals chiffres oriyas chiffres osmanyas + chiffres entourés chiffres rohingyas hanifis chiffres romains chiffres romains minuscules @@ -1468,6 +1484,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ chiffres cinghalais liths chiffres sora-sompengs chiffres soundanais + chiffres sunuwars chiffres takris chiffres néo-taï-luës chiffres tamouls traditionnels @@ -1529,7 +1546,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [''’ ՚ ᾽᾿ ʼ ߴ] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -3296,6 +3313,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ heure : {0} {0} (heure d’été) {0} (heure standard) + + + HT + HST + HDT + + Honolulu + temps universel coordonné @@ -3403,9 +3428,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Cap-Vert - - Curaçao - Nicosie @@ -3558,9 +3580,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Oulan-Bator - - Tchoïbalsan - Malte @@ -3612,9 +3631,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Palaos - - Asunción - La Réunion @@ -3669,9 +3685,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Mogadiscio - - São Tomé - Damas @@ -3693,14 +3706,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kiev - - - HT - HST - HDT - - Honolulu - Beulah (Dakota du Nord) @@ -4043,13 +4048,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ heure d’été de Chine - - - heure de Choibalsan - heure normale de Choibalsan - heure d’été de Choibalsan - - heure de l’île Christmas @@ -4333,6 +4331,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ heure d’été de Petropavlovsk-Kamchatski + + + heure du Kazakhstan + + heure de l’Est du Kazakhstan @@ -4916,8 +4919,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 Bn ¤ - {0} {1} - {0} {1} @@ -6735,6 +6736,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} carats + masculine milligrammes par décilitre {0} milligramme par décilitre {0} milligrammes par décilitre @@ -7236,6 +7238,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} milles scandinaves + masculine {0} point typographique {0} points typographiques @@ -7396,6 +7399,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} chevaux-vapeur + masculine millimètres de mercure {0} millimètre de mercure {0} millimètres de mercure @@ -7710,6 +7714,25 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} quart impérial {0} quarts impériaux + + feminine + lumière + {0} lumière + {0} lumière + + + feminine + parts par milliard + {0} part par milliard + {0} parts par milliard + + + feminine + nuits + {0} nuit + {0} nuits + {0} par nuit + {0} est {0} nord @@ -8516,6 +8539,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} qt imp. {0} qt imp. + + lumière + {0} lumière + {0} lumière + + + nuits + {0} nuit + {0} nuits + {0}/nuit + {0} E {0} N @@ -9192,6 +9226,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}qt imp. {0}qt imp. + + lumière + {0} lumière + {0} lumière + + + {0}ppb + {0}ppb + + + nuits + {0}nuit + {0}nuits + {0}/nuit + {0}E {0}N diff --git a/make/data/cldr/common/main/fr_CA.xml b/make/data/cldr/common/main/fr_CA.xml index f4a523c6939..6fbfa4fa262 100644 --- a/make/data/cldr/common/main/fr_CA.xml +++ b/make/data/cldr/common/main/fr_CA.xml @@ -35,6 +35,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic slave tlicho embou + anglais (R.-U.) anglais (É.-U.) yupik central ewondo @@ -44,7 +45,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic gujarati yi de Sichuan kenyang - kongo kalaallisut kashmiri chambala @@ -53,7 +53,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic chinois classique makhuwa-meetto meta’ - marathe marwari mentawai bas saxon @@ -115,6 +114,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Bélize îles Cocos (Keeling) îles Cook + île Clipperton île Christmas îles Malouines îles Falkland (Malouines) @@ -939,6 +939,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic j (mois) + dim dernier + ce dim + dim prochain dans {0} dim dans {0} dim @@ -949,6 +952,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic + lun dernier + ce lun + lun prochain dans {0} lun dans {0} lun @@ -959,6 +965,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic + mar dernier + ce mar + mar prochain dans {0} mar dans {0} mar @@ -969,6 +978,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic + mer dernier + ce mer + mer prochain dans {0} mer dans {0} mer @@ -979,6 +991,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic + jeu dernier + ce jeu + jeu prochain dans {0} jeu dans {0} jeu @@ -989,6 +1004,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic + ven dernier + ce ven + ven prochain dans {0} ven dans {0} ven @@ -999,7 +1017,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - sam. dernier + sam dernier ce sam sam proch @@ -1039,6 +1057,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic île de Pâques + + îles Canaries + îles Féroé @@ -1047,9 +1068,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic heure avancée britannique - - Tégucigalpa - heure avancée irlandaise @@ -1077,7 +1095,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Beulah [Dakota du Nord] - New Salem, Dakota du Nord + New Salem [Dakota du Nord] Center [Dakota du Nord] @@ -1331,13 +1349,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic heure avancée de Chine - - - heure de Choibalsan - heure normale de Choibalsan - heure avancée de Choibalsan - - heure de Colombie @@ -1448,6 +1459,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic heure avancée de Hovd + + + heure de l’océan Indien + + heure de l’Iran @@ -1820,6 +1836,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + afghani afghan + afghanis afghans + ARS @@ -2486,6 +2506,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} pinte impériale {0} pintes impériales + + parties par milliard + {0} partie par milliard + {0} parties par milliard + point cardinal {0} ouest @@ -2990,6 +3015,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} pte imp {0} pte imp + + p.p. 10⁹ + {0} p.p. 10⁹ + {0} p.p. 10⁹ + {0} E. {0} N. @@ -3218,6 +3248,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}pte imp {0}pte imp + + p.p. 10⁹ + {0}pp10⁹ + {0}pp10⁹ + @@ -3238,6 +3273,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic chiffres en bas de casse + ja ko vi yue zh {surname-core}, {given-informal} {surname-prefix} diff --git a/make/data/cldr/common/main/frr.xml b/make/data/cldr/common/main/frr.xml index 71e59e401e4..bd0134d453f 100644 --- a/make/data/cldr/common/main/frr.xml +++ b/make/data/cldr/common/main/frr.xml @@ -52,6 +52,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Bislama Bini Siksiká + Anii Bambara Bengaals Tibetaans @@ -114,6 +115,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kanaadsk Ingelsk Britisk Ingelsk Amerikoonsk Ingelsk + US Ingelsk Esperanto Spaans Amerikoonsk Spaans @@ -170,6 +172,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Iban Ibibio Indoneesk + Interlingue Igbo Sichuan Yi Waast Kanaadsk Inuktitut @@ -222,6 +225,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Komi Kornisk Kwakʼwala + Kuvi Kirgiisk Latiinsk Ladiinsk @@ -230,8 +234,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic Lesgisk Ganda Limburgs + Liguurisk Lillooet Lakota + Lombardisk Lingala Laotisk Louisiana Kreool @@ -322,6 +328,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Salomoonen Pidgin Poolsk Maliseet-Passamaquoddy + Preusisk Paschtu Portugiisk Brasiliaans Portugiisk @@ -378,6 +385,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Suaheli Komoorisk Syrisk + Sleesisk Tamiilisk Süüd Tutchone Telugu @@ -417,7 +425,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Usbeekisk Vai Venda + Veneetisk Wjetnameesk + Makuva Vunjo Waloons Walsertjiisk @@ -427,6 +437,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Wu Schineesk Kalmükisk Xhosa + Kangri Soga Yangben Yemba @@ -435,6 +446,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Nheengatu Kantoneesk Schineesk, Kantoneesk + Zhuang Maroko Standard Tamazight Schineesk Mandariin Schineesk @@ -475,7 +487,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + @@ -498,7 +510,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - @@ -587,7 +598,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kongo - Brazzaville Republiik Kongo Sweits - Elfenbianküst + Côte d’Ivoire Cook Eilunen Chiile Kameruun @@ -628,6 +639,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Frankrik Gabuun Ferianigt Köningrik + UK Grenaada Georgien Fransöösk Guayaana @@ -860,7 +872,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic UK Süsteem US Süsteem Araabisk Taalen - Ütjwidjet Araabisk taalen + Ütjwidjet Araabisk Taalen Armeensk Taalen Armeensk Letj Taalen Bangla Taalen @@ -883,7 +895,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Japoonsk Taalen Japoonsk Finans Taalen Khmer Taalen - Kannada Taalen + Kanaada Taalen Laotisk Taalen Europeesk Taalen Malayalam Taalen @@ -1057,6 +1069,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + 1.Q + 2.Q + 3.Q + 4.Q + iarst kwartaal naist kwartaal @@ -1065,6 +1083,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + 1.Q + 2.Q + 3.Q + 4.Q + I II @@ -1101,8 +1125,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Föör Krast - Föör üüs tidjreegning + föör Krast + föör üüs tidjreegning f.Kr. @@ -1423,12 +1447,24 @@ CLDR data files are interpreted according to the LDML specification (http://unic letst m das m naist m + + efter {0} m + + + föör {0} m + weg letst weg das weg naist weg + + uun {0} w + + + föör {0} w + at weg faan {0} @@ -1436,9 +1472,21 @@ CLDR data files are interpreted according to the LDML specification (http://unic letst w. das w. naist w. + + uun {0} w + + + föör {0} w + w + + uun {0} w + + + föör {0} w + weg faan muun @@ -1464,10 +1512,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic d - uun {0}d + uun {0} d - föör {0}d + föör {0} d @@ -1479,6 +1527,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic wegdai + + wegdai faan muun + + + wegd. faan m. + wegd. faan m. @@ -1493,6 +1547,28 @@ CLDR data files are interpreted according to the LDML specification (http://unic föör {0} Söndaar + + letst Sön. + das Sön. + naist Sön. + + efter {0} Sön. + + + föör {0} Sön. + + + + letst Sö + das Sö + naist Sö + + efter {0} Sö + + + föör {0} Sö + + letst Mundai das Mundai @@ -1504,6 +1580,28 @@ CLDR data files are interpreted according to the LDML specification (http://unic föör {0} Mundaar + + letst Mun. + das Mun. + naist Mun. + + efter {0} Mun. + + + föör {0} Mun. + + + + letst Mun. + das Mun. + naist Mun. + + efter {0} Mun. + + + föör {0} Mun. + + letst Teisdai das Teisdai @@ -1515,6 +1613,28 @@ CLDR data files are interpreted according to the LDML specification (http://unic föör {0} Teisdaar + + letst Tei. + das Tei. + naist Tei. + + efter {0} Tei. + + + föör {0} Tei. + + + + letst Tei + das Tei + naist Tei + + efter {0} Tei + + + föör {0} Tei + + letst Weedensdai das Weedensdai @@ -1526,6 +1646,28 @@ CLDR data files are interpreted according to the LDML specification (http://unic föör {0} Weedensdaar + + letst Weed. + das Weed. + naist Weed. + + efter {0} Weed. + + + föör {0} Weed. + + + + letst Weed + das Weed + naist Weed + + efter {0} Weed + + + föör {0} Weed + + letst Tüürsdai das Tüürsdai @@ -1537,6 +1679,28 @@ CLDR data files are interpreted according to the LDML specification (http://unic föör {0} Tüürsdaar + + letst Tüü. + das Tüü. + naist Tüü. + + efter {0} Tüü. + + + föör {0} Tüü. + + + + letst Tüü. + das Tüü. + naist Tüü. + + efter {0} Tüü. + + + föör {0} Tüü. + + letst Freidai das Freidai @@ -1548,6 +1712,28 @@ CLDR data files are interpreted according to the LDML specification (http://unic föör {0} Freidaar + + letst Fr. + das Fr. + naist Fr. + + efter {0} Fr. + + + föör {0} Fr. + + + + letst Fr + das Fr + naist Fr + + efter {0} Fr + + + föör {0} Fr + + letst Saninj das Saninj @@ -1559,6 +1745,28 @@ CLDR data files are interpreted according to the LDML specification (http://unic föör {0} Saninjer + + letst San. + das San. + naist San. + + efter {0} San. + + + föör {0} San. + + + + letst Sa + das Sa + naist Sa + + efter {0} Sa + + + föör {0} Sa + + iarm./efterm. @@ -1580,9 +1788,21 @@ CLDR data files are interpreted according to the LDML specification (http://unic s. + + efter {0} st. + + + föör {0} st. + s + + efter {0} st + + + föör {0} st + minüüt @@ -1596,9 +1816,21 @@ CLDR data files are interpreted according to the LDML specification (http://unic min. + + efter {0} min. + + + föör {0} min. + min + + efter {0} min + + + föör {0} min + sekund @@ -1612,9 +1844,21 @@ CLDR data files are interpreted according to the LDML specification (http://unic sek. + + efter {0} sek. + + + föör {0} sek. + sek + + efter {0} s + + + föör {0} s + tidjsoon @@ -1657,7 +1901,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Aruuba - Brabaados + Barbaados Brüssel @@ -1798,9 +2042,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Chowd - - Tschoibalsan - Malediiwen @@ -2136,13 +2377,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Schiina Somertidj - - - Tschoibalsan Tidj - Tschoibalsan Standard Tidj - Tschoibalsan Somertidj - - Jul Eilun Tidj @@ -2381,6 +2615,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Jaapan Somertidj + + + Kasachstaan Tidj + + Uast Kasachstaan Tidj @@ -2744,7 +2983,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Weenesueela Tidj + Weenesuela Tidj @@ -2806,12 +3045,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic - 0M + 0 düüsen + 00 düüsen + 000 düüsen + 0 miljoon 00 miljoon 000 miljoon - 0G - 00G + 0 miljaard + 00 miljaard 000 miljaard + 0 biljoon + 00 biljoon + 000 biljoon @@ -2825,7 +3070,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ¤000M - {0} {1} @@ -3444,9 +3688,141 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + dezi{0} + + + senti{0} + + + mili{0} + + + mikro{0} + + + nano{0} + + + piko{0} + + + femto{0} + + + atto{0} + + + zepto{0} + + + yokto{0} + + + ronto{0} + + + quekto{0} + + + deka{0} + + + hekto{0} + + + kilo{0} + + + mega{0} + + + giga{0} + + + tera{0} + + + peta{0} + + + exa{0} + + + zetta{0} + + + yotta{0} + + + ronna{0} + + + kwetta{0} + + + kibi{0} + + + mebi{0} + + + gibi{0} + + + tebi{0} + + + pebi{0} + + + exbi{0} + + + zebi{0} + + + yobi{0} + + + {0} per {1} + + + kwadroot {0} + + + kubiik {0} + {0}⋅{1} + + g-krääft + + + meetern per kwadrootsekunden + {0} meetern per kwadrootsekunden + + + amdreiangen + {0} amdreiangen + + + radiant + {0} radiant + + + graad + {0} graad + + + böögminüüten + {0} böögminüüten + + + böögsekunden + {0} böögsekunden + kwadrootkilomeetern {0} kwadrootkilomeetern @@ -3485,6 +3861,86 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} kwadroottol {0} per kwadroottol + + karats + {0} karats + + + miligram per deziliter + {0} miligram per deziliter + + + milimol per liter + {0} milimol per liter + + + items + {0} items + + + prosent + {0} prosent + + + promil + {0} promil + + + promyriad + {0} promyriad + + + litern per kilomeeter + {0} litern per kilomeeter + + + litern per 100 kilomeeter + {0} litern per 100 kilomeeter + + + miilen per US galoon + {0} miilen per US galoon + + + miilen per ingelsk galoon + {0} miilen per ingelsk galoon + + + petabyte + {0} petabyte + + + terabyte + {0} terabyte + + + terabit + {0} terabit + + + gigabyte + {0} gigabyte + + + gigabit + {0} gigabit + + + megabyte + {0} megabyte + + + megabit + {0} megabit + + + kilobyte + {0} kilobyte + + + kilobit + {0} kilobit + juarhunerten {0} juarhunerten @@ -3538,6 +3994,79 @@ CLDR data files are interpreted according to the LDML specification (http://unic nanosekunden {0} nanosekunden + + ampere + {0} ampere + + + milliampere + {0} milliampere + + + {0} ohm + + + {0} volt + + + kilokaloriin + {0} kilokaloriin + + + kaloriin + {0} kaloriin + + + kilojoule + {0} kilojoule + + + {0} joule + + + kilowattstünjen + {0} kilowattstünjen + + + elektroonenvolt + {0} elektroonenvolt + + + British thermal units + {0} British thermal units + + + US therms + {0} US therms + + + pounds of force + {0} pounds of force + + + newton + {0} newton + + + kilowattstünjen per 100 kilomeeter + {0} kilowattstünjen per 100 kilomeeter + + + gigahertz + {0} gigahertz + + + megahertz + {0} megahertz + + + kilohertz + {0} kilohertz + + + hertz + {0} hertz + typograafisk ems {0} ems @@ -3634,6 +4163,330 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} san raadien + + lux + {0} lux + + + candela + {0} candela + + + lumen + {0} lumen + + + san laachten + {0} san laachten + + + tonen + {0} tonen + + + kilogram + {0} kilogram + {0} per kilogram + + + {0} gram + {0} per gram + + + miligram + {0} miligram + + + mikrogram + {0} mikrogram + + + amerikoonsk tonen + {0} amerikoonsk tonen + + + stones + {0} stones + + + ingelsk pünj + {0} ingelsk pünj + {0} per ingelsk pünj + + + unsen + {0} unsen + {0} per uns + + + troy unsen + {0} troy unsen + + + karaat + {0} karaat + + + daltons + {0} daltons + + + eerd masen + {0} eerd masen + + + san masen + {0} san masen + + + grains + {0} grains + + + gigawatt + {0} gigawatt + + + megawatt + {0} megawatt + + + kilowatt + {0} kilowatt + + + {0} watt + + + miliwatt + {0} miliwatt + + + pe-es + {0} pe-es + + + milimeetern kwaksalwer + {0} milimeetern kwaksalwer + + + tol kwaksalwer + {0} tol kwaksalwer + + + milibar + {0} milibar + + + atmosfeeren + {0} atmosfeeren + + + pascal + {0} pascal + + + hektopascal + {0} hectopascal + + + kilopascal + {0} kilopascal + + + megapascal + {0} megapascal + + + stünjenkilomeeter + {0} stünjenkilomeeter + + + meetern per sekund + {0} meetern per sekund + + + miilen per stünj + {0} miilen per stünj + + + knooter + {0} knooter + + + Beaufort + {0} Beaufort + + + graad + {0} graad + + + graad Celsius + {0} graad Celsius + + + graad Fahrenheit + {0} graad Fahrenheit + + + Kelvin + {0} Kelvin + + + pound-force-feet + {0} pound-force-feet + + + newtonmeeter + {0} newtonmeeter + + + kubiik kilomeetern + {0} kubiik kilomeetern + + + kubiik meetern + {0} kubiik meetern + {0} per kubiik meeter + + + kubiik sentimeetern + {0} kubiik sentimeetern + {0} per kubiik sentimeeter + + + kubiik miilen + {0} kubiik miilen + + + kubiik yard + {0} kubiik yard + + + kubiik fut + {0} kubiik fut + + + kubiik tol + {0} kubiik tol + + + megalitern + {0} megalitern + + + hektolitern + {0} hektolitern + + + litern + {0} litern + {0} per liter + + + desilitern + {0} desilitern + + + sentilitern + {0} sentilitern + + + mililitern + {0} mililitern + + + hualew litern + {0} hualew litern + + + fjuarden litern + {0} fjuarden litern + + + acre-feet + {0} acre-feet + + + bushels + {0} bushels + + + US galoonen + {0} US galoonen + {0} per US galoon + + + ingelsk galoonen + {0} ingelsk galoonen + {0} per ingelsk galoon + + + quarts + {0} quarts + + + pints + {0} pints + + + cups + {0} cups + + + US fluid ounces + {0} US fluid ounces + + + ingelsk fluid ounces + {0} ingelsk fluid ounces + + + tablespoons + {0} tablespoons + + + teaspoons + {0} teaspoons + + + barrels + {0} barrels + + + dessert spoons + {0} dessert spoons + + + ingelsk dessert spoons + {0} ingelsk dessert spoons + + + drops + {0} drops + + + jiggers + {0} jiggers + + + pinches + {0} pinches + + + ingelsk quarts + {0} ingelsk quarts + + + laacht faard + {0} laacht faard + + + naachter + {0} naachter + {0}/naacht + hemelswai {0} uast @@ -3646,6 +4499,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}{1} + + g-krääft + + + amdr + {0} amdr + + + graad + + + {0} arcmin + + + {0} arcsec + hektaar @@ -3657,6 +4526,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} tol² {0}/tol² + + karats + + + milimol/liter + + + {0} items + + + litern/km + juarh {0} juarh @@ -3704,6 +4585,21 @@ CLDR data files are interpreted according to the LDML specification (http://unic nanosekn + + kilojoule + + + kWstünjen + + + elektroonenvolt + + + pound-force + + + newton + pixel @@ -3762,6 +4658,101 @@ CLDR data files are interpreted according to the LDML specification (http://unic san raadien + + lux + + + candela + + + lumen + + + amerikoonsk tonen + {0} amerikoonsk tonen + + + stones + + + karaat + + + daltons + + + eerd masen + + + san masen + + + grains + + + PS + {0} PS + + + {0} Bft + + + graad + + + Nm + {0} Nm + + + litern + {0} L + {0}/L + + + hualew liter + {0} hualew litern + + + fjuarden liter + {0} fjuarden litern + + + bushels + {0} bushels + + + quarts + {0} quarts + + + pints + {0} pints + + + cups + {0} cup + + + drops + {0} drops + + + jiggers + {0} jiggers + + + pinches + {0} pinches + + + c + {0} c + + + naachter + {0} naachter + {0}/naacht + wai {0} U @@ -3771,6 +4762,168 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + g-krääft + + + amdr + {0} amdr + + + ° + + + acre + + + karat + + + milimol/liter + + + {0} items + + + litern/km + + + jrn + {0} j + + + {0} kw + + + muun + {0} m + + + wgn + {0} w + + + dai + {0} d + + + stünj + {0} h + + + sek + {0} s + + + μsek + + + ns + + + kWstünjen + + + elektroonenvolt + + + pound-force + + + newton + + + px + + + MP + + + R⊕ + + + lj + + + R☉ + + + lux + + + candela + + + lumen + + + amerikoonsk ton + {0} amerikoonsk tonen + + + stone + + + karaat + + + daltons + + + grains + + + PS + {0} pe-es + + + {0} Bft + + + Nm + {0}Nm + + + {0} L + {0}/L + + + 1/2 L + {0} hualew litern + + + 1/4 L + {0} fjuarden litern + + + bushel + {0} bushels + + + quarts + {0} quarts + + + pints + {0} pints + + + cups + {0} cup + + + drops + {0} drops + + + c + {0} c + + + naachter + {0} naachter + {0}/naacht + {0}U {0}N @@ -3795,4 +4948,316 @@ CLDR data files are interpreted according to the LDML specification (http://unic naan:n + + {0} — aal + {0} — kompatibiliteet + {0} — iinbünjen + {0} — ütjwidjet + {0} lachts am + {0} rochts am + {0} — iar + {0} — ölers wat + {0} — öler + skraften — {0} + {0} streger + jipsteld {0} + huuchsteld {0} + aktiwiteet + Afrikoonsk skraft + Amerikoonsk skraft + diarten + diarten of natüür + piil + lif + raam tiaken + gebüüde + ponkt of stäär + konsonant jamo + münt teeken + streg + taal + smok teeken + spuaien + deel piil + deel ap piil + Uast Asiaatisk skraft + Europeesk skraft + wiifelk + flagen + iidj an drank + formaat + formaat an rüm + fol-briad skak + geomeetrisk furem + hualew-briad skak + Han buksteew + Han grünjfurem + Hanja + Hanzi (ianfach) + Hanzi (normool) + hart + ual skraft + ideograafisk teeken + Japoonsk kana + lachts piil + lachts rochts piil + buksteew liket teeken + beknaapet brük + menelk + matemaatisk teeken + Madel Uast skraft + ölers wat + modern skraft + skafter + musikaalisk teeken + natüür + naar steld + taalen + objekt + öler + paaret + persuun + foneetisk alfabeet + piktogram + steed + plaant + sats teeken + rochts piil + teeken + letj ferskeel + smiley of persuun + Süüd Aasien skraft + Süüduast Aasien skraft + ufstant + teeken + technisk teeken + tuun teeken + rais + rais of steed + ap piil + ferskeel + wokaal jamo + weder + Waast Aasien skraft + witj rüm + + + kursiif + optisk grate + sküüns + breetje + gewicht + kursiif + bil tekst + tekst + auerskraft + uunwise + plakoot + lachts sküüns + aprocht + sküüns + muar sküüns + noch muar tuupfaadet + muar tuupfaadet + tuupfaadet + hualew tuupfaadet + normool + hualew ütjwidjet + ütjwidjet + muar ütjwidjet + noch muar ütjwidjet + smääl + muar laacht + laacht + hualew laacht + buk + reguleer + madel + hualew fäät + fäät + muar fäät + suart + muar suart + wertikaal bröök + gratbuksteewen rüm + optionaal ligatuuren + diagonaal bröök + rä numern + ual taalen + ordinaal taalen + proportionaal taalen + letj gratbuksteewen + tabel taalen + nol mä streg + + + und frr + informal + + {title} {given} {given2} {surname} {generation}, {credentials} + + + {given-informal} {surname} + + + {title} {surname} + + + {given-informal} {surname} + + + {given-informal-monogram-allCaps}{surname-monogram-allCaps} + + + {given} {given2-initial} {surname} {generation}, {credentials} + + + {given-informal} {surname} + + + {title} {surname} + + + {given-informal} + + + {surname-monogram-allCaps} + + + {given-informal-monogram-allCaps} + + + {given-initial} {given2-initial} {surname} + + + {given-informal} {surname-initial} + + + {title} {surname} + + + {given-informal} + + + {surname-monogram-allCaps} + + + {given-informal-monogram-allCaps} + + + {surname}, {title} {given} {given2} {generation}, {credentials} + + + {surname}, {given-informal} + + + {title} {surname} + + + {given-informal} + + + {surname-monogram-allCaps}{given-informal-monogram-allCaps} + + + {surname}, {given} {given2-initial} {generation}, {credentials} + + + {surname}, {given-informal} + + + {title} {surname} + + + {given-informal} + + + {surname-monogram-allCaps} + + + {given-informal-monogram-allCaps} + + + {surname}, {given-initial} {given2-initial} + + + {surname}, {given-initial} + + + {title} {surname} + + + {given-informal} + + + {surname-monogram-allCaps} + + + {given-informal-monogram-allCaps} + + + {surname-core}, {given} {given2} {surname-prefix} + + + {surname}, {given-informal} + + + {surname-core}, {given} {given2-initial} {surname-prefix} + + + {surname}, {given-informal} + + + {surname-core}, {given-initial} {given2-initial} {surname-prefix} + + + {surname}, {given-informal} + + + Matje + + + Tatje + Peters + + + Jan + Simon + Willems + + + ∅∅∅ + Hinrich + Hine + Philipp + ∅∅∅ + Ricklefs + ∅∅∅ + di jonger + MP + + + Herrmann + + + Hans + Petersen + + + Hans + Herrmann + Petersen + + + Prof. Dr. + Jan + Jani + Peter + faan + Glücksburg + ∅∅∅ + di jonger + MD DDS + + diff --git a/make/data/cldr/common/main/fur.xml b/make/data/cldr/common/main/fur.xml index 5f2858e9bd0..eb962af0ed9 100644 --- a/make/data/cldr/common/main/fur.xml +++ b/make/data/cldr/common/main/fur.xml @@ -57,6 +57,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic spagnûl spagnûl de Americhe Latine spagnûl iberic + spagnûl messican eston basc persian @@ -221,7 +222,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + @@ -346,9 +349,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Costa Rica Cuba Cjâf vert + Curaçao Isule Christmas Cipri Republiche ceche + Republiche Ceche Gjermanie Diego Garcia Gibuti @@ -374,6 +379,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic France Gabon Ream unît + Ream Unît Grenada Gjeorgjie Guiana francês @@ -442,6 +448,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Sant Martin Madagascar Isulis Marshall + Macedonie dal Nord Mali Birmanie Mongolie @@ -509,6 +516,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Suriname Sao Tomè e Principe El Salvador + Saint Marteen Sirie Swaziland Tristan da Cunha @@ -531,6 +539,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ucraine Uganda Isulis periferichis minôrs dai Stâts Unîts + Nazions Unidis Stâts Unîts Uruguay Uzbechistan @@ -543,6 +552,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Vanuatu Wallis e Futuna Samoa + Pseudoacents + Cossovo Yemen Mayotte Sud Afriche @@ -994,6 +1005,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic an + l’an passât + chest an + l’an che al ven ca di {0} an ca di {0} agns @@ -1003,6 +1017,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} agns indaûr + + l’an passât + chest an + l’an che al ven + + + l’an passât + chest an + l’an che al ven + mês @@ -1016,6 +1040,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic setemane + la setemane passade + chest setemane + la setemane che e ven ca di {0} setemane ca di {0} setemanis @@ -1025,6 +1052,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} setemanis indaûr + + la setemane passade + chest setemane + la setemane che e ven + + + la setemane passade + chest setemane + la setemane che e ven + îr l’altri @@ -1080,6 +1117,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} seconts indaûr + + fûs orari + @@ -1236,6 +1276,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Peso cuban + peso cuban + peso cuban Corone de Republiche Ceche @@ -1310,6 +1352,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Córdoba oro nicaraguan + córdoba oro nicaraguan + córdoba oro nicaraguan corone norvegjese diff --git a/make/data/cldr/common/main/fy.xml b/make/data/cldr/common/main/fy.xml index 1e47da09297..d9dfbf5934f 100644 --- a/make/data/cldr/common/main/fy.xml +++ b/make/data/cldr/common/main/fy.xml @@ -57,12 +57,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic Bena Bafut Bulgaarsk + Haryanvi Bhojpuri Bislama Bikol Bini Kom Siksika + Anii Bambara Bengaalsk Tibetaansk @@ -101,6 +103,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Krim-Tataarsk Tsjechysk Kasjoebysk + Swampy Cree Kerkslavysk Tsjoevasjysk Welsk @@ -190,6 +193,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Hawaïaansk Hebreeuwsk Hindi + Hindy (Latyn) + Hinglysk (Latyn) Hiligaynon Hettitysk Hmong @@ -236,6 +241,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kaapverdysk Creools Koro Kongo + Kaingang Khasi Khotaneesk Koyra Chiini @@ -265,6 +271,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kutenai Komi Cornish + Kuvy Kirgizysk Latyn Ladino @@ -275,7 +282,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Lezgysk Ganda Limburgs + Liguriaansk Lakota + Lombardysk Lingala Laotiaansk Mongo @@ -371,11 +380,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic Pampanga Papiaments Palauaansk + Nigeriaansk Pidgin Aldperzysk Foenisysk Pali Poalsk Pohnpeiaansk + Aldprusysk Aldprovençaals Pasjtoe Pashto @@ -450,6 +461,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Shimaore Klassiek Syrysk Syrysk + Silesysk Tamil Telugu Timne @@ -493,7 +505,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Oezbeeks Vai Venda + Venetiaansk Vietnamees + Makhuwa Volapük Votysk Vunjo @@ -505,6 +519,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Wolof Kalmyk Xhosa + Kangri Soga Yao Yapees @@ -512,6 +527,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Yemba Jiddysk Yoruba + Nheengatu Kantoneesk Zhuang Zapotec @@ -519,17 +535,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic Zenaga Standert Marokkaanske Tamazight Sineesk + Mandarynsk Ferienfâldich Sineesk + Mandarynsk (ferienfâldige) Tradisjoneel Sineesk + Mandarynsk (tradisjoneel) Zulu Zuni Gjin linguïstyske ynhâld Zaza + + @@ -569,6 +590,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic + @@ -642,6 +664,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic + @@ -685,6 +708,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic + @@ -720,6 +744,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic East-Europa Noard-Europa West-Europa + Sub-Saharaansk Afrika Latynsk-Amearika Ascension Andorra @@ -768,6 +793,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Congo (Republyk) Switserlân Ivoorkust + Ivoarkust Cookeilannen Chili Kameroen @@ -781,6 +807,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Krysteilan Syprus Tsjechje + Tsjechië Dútslân Diego Garcia Djibouti @@ -797,6 +824,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Spanje Ethiopië Europeeske Unie + eurosône Finlân Fiji Falklâneilannen @@ -838,6 +866,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Isle of Man India Britse Gebieden yn de Indyske Oseaan + Britske Gebieten yn de Yndyske Oseaan + Britske Gebieten yn de Yndyske Oseaan Irak Iran Yslân @@ -875,6 +905,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Saint-Martin Madeiaskar Marshalleilannen + Noard-Masedoanië Mali Myanmar (Birma) Mongolië @@ -967,6 +998,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Oekraïne Oeganda Lyts ôflizzen eilannen fan de Ferienigde Staten + FN Ferienigde Staten VS Uruguay @@ -980,6 +1012,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Vanuatu Wallis en Futuna Samoa + Pseudo-Aksinten + Pseudo-Bidi Kosovo Jemen Mayotte @@ -1053,6 +1087,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kalender + falutanotaasje sortearje van symbolen negeren Omgekeerd sortearje op accenten Yndiele op haad/lytse letters @@ -1062,6 +1097,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Numeriek sortearje Sorteervoorrang Valuta + oeresysteem (12 of 24) + styl regelôfbrekking + maatsysteem Sifers Tijdzone Landvariant @@ -1071,6 +1109,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Boeddhistyske kalinder Sineeske kalinder Koptyske kalinder + Dangi-kalinder Ethiopyske kalinder Ethiopyske Amete Alem-kalinder Gregoriaanske kalinder @@ -1078,9 +1117,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic Indiase natjonale kalinder Islamityske kalinder Islamityske kalinder (cyclysk) + Islamityske kalinder (Umm al-Qura) + ISO-8601-kalinder Japanske kalinder Perzyske kalinder Kalinder fan de Sineeske Republyk + finansjele falutanotaasje + standert falutanotaasje Symbolen sortearje Sortearje zonder symbolen Normaal sortearje neffens accenten @@ -1116,14 +1159,25 @@ CLDR data files are interpreted according to the LDML specification (http://unic Volledige breedte Halve breedte Numeriek + 12-oeresysteem (0-11) + 12-oeresysteem (1-12) + 12-oeresysteem (0-23) + 12-oeresysteem (1-24) + losse styl regelôfbrekking + normale styl regelôfbrekking + strikte styl regelôfbrekking BGN UNGEGN + metrysk stelsel + Britsk ymperiaal stelsel + Amerikaansk ymperiaal stelsel Arabysk-Indyske sifers Utwreide Arabysk-Indyske sifers Armeense sifers Kleine Armeense sifers Balinese sifers Bengaalse sifers + Chakma sifers Devanagari sifers Ethiopyske sifers Finansjele sifers @@ -1148,8 +1202,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic Westerse sifers Malayalam sifers Mongoolse sifers + Meetei Mayek sifers Myanmarese sifers Binnenlânse sifers + Ol Chiki sifers Oriya sifers Romeinske sifers Lytse Romeinske sifers @@ -1199,6 +1255,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic [æ ò ù] [A B C D E F G H I J K L M N O P R S T U V W X Z] [\- ‐‑ – — , ; \: ! ? . … '‘’ "“” ( ) \[ \] § @ * / \& # † ‡ ′ ″] + + [\: ∶] + @@ -1374,25 +1433,40 @@ CLDR data files are interpreted according to the LDML specification (http://unic {1} {0} + + {1} 'om' {0} + {1} {0} + + {1} 'om' {0} + {1} {0} + + {1}, {0} + {1} {0} + + {1}, {0} + E d + E h:mm a + E h:mm:ss a y G + d/M/y GGGGG MMM y G d MMM y G E d MMM y G @@ -1417,6 +1491,49 @@ CLDR data files are interpreted according to the LDML specification (http://unic QQQQ y G + + h B – h B + + + h:mm B – h:mm B + + + G y – G y + + + M-y – M-y GGGGG + M-y – M-y GGGGG + M-y – M-y GGGGG + + + d-M-y – d-M-y GGGGG + d-M-y GGGGG – d-M-y GGGGG + d-M-y – d-M-y GGGGG + d-M-y – d-M-y GGGGG + + + E d-M-y – E d-M-y GGGGG + E d-M-y GGGGG – E d-M-y GGGGG + E d-M-y – E d-M-y GGGGG + E d-M-y – E d-M-y GGGGG + + + MMM y G – MMM y G + MMM – MMM y G + MMM y – MMM y G + + + d–d MMM y G + d MMM y G – d MMM y G + d MMM – d MMM y G + d MMM y – d MMM y G + + + E d MMM – E d MMM y G + E d MMM y G – E d MMM y G + E d MMM – E d MMM y G + E d MMM y – E d MMM y G + h a – h a h–h a @@ -1671,15 +1788,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic {1} {0} + + {1}, {0} + {1} {0} + + {1}, {0} + E h:mm a E h:mm:ss a + d/M/y GGGGG MMM y G d MMM y G E d MMM y G @@ -1708,6 +1832,50 @@ CLDR data files are interpreted according to the LDML specification (http://unic 'wike' w 'fan' Y + + h B – h B + + + h:mm B – h:mm B + + + y G – y G + y – y G + + + GGGGG y-MM – GGGGG y-MM + M/y – M/y G + M/y – M/y G + + + M/d/y – M/d/y G + M/d/y G – M/d/y G + M/d/y – M/d/y G + M/d/y – M/d/y G + + + E, M/d/y – E, M/d/y G + E, M/d/y G – E, M/d/y G + E, M/d/y – E, M/d/y G + E, M/d/y – E, M/d/y G + + + MMM y G – MMM y G + MMM – MMM y G + MMM y – MMM y G + + + MMM d – d, y G + MMM d, y G – MMM d, y G + MMM d – MMM d, y G + MMM d, y – MMM d, y G + + + E, MMM d – E, MMM d, y G + E, MMM d, y G – E, MMM d, y G + E, MMM d – E, MMM d, y G + E, MMM d, y – E, MMM d, y G + h a – h a h–h a @@ -1884,6 +2052,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic Tiidsrin + + tiidrek + + + tiidrek + Jier foarich jier @@ -1898,8 +2072,32 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} jier lyn + + jr. + foarich jr. + dit jr. + folgjend jr. + + oer {0} jr + oer {0} jr + + + {0} jr lyn + {0} jr lyn + + + + jr + foarich jr. + dit jr. + folgjend jr. + + oer {0} jier + oer {0} jier + + - Fearnsjier + fearnsjier foarich fearnsjier dit fearnsjier folgjend fearnsjier @@ -1929,6 +2127,26 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} moannen lyn + + mn. + foarige mo. + dizze moanne + folgjende mo. + + oer {0} moanne + oer {0} moannen + + + + mn + foarige mo. + dizze moanne + folgjende mo. + + oer {0} moanne + oer {0} moannen + + Wike foarige wike @@ -1942,6 +2160,38 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} wike lyn {0} wiken lyn + de wike fan {0} + + + wk. + foarige wk. + dizze wk. + folgjende wk. + + oer {0} wike + oer {0} wiken + + de wike fan {0} + + + wk + foarige wk. + dizze wk. + folgjende wk. + + oer {0} wike + oer {0} wiken + + de wike fan {0} + + + wike fan de moanne + + + wk fan de mn + + + wk fan de mn dei @@ -1959,49 +2209,341 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} deien lyn + + juster + hjoed + moarn + + oer {0} dei + oer {0} dagen + + + {0} dei lyn + {0} dagen lyn + + + + juster + hjoed + moarn + + oer {0} dei + oer {0} dagen + + + {0} dei lyn + {0} dagen lyn + + + + dei fan it jier + + + dei fan it jr + + + dei f. i. jr + dei van de wike + + dei fan de wk. + + + dei f. d. wk. + + + wikedei fan de moanne + + + wkdei fan de mo + + + wkdei f. d. mo + ôfrûne snein dizze snein folgjende wike snein + + oer {0} snein + oer {0} sneins + + + {0} snein lyn + {0} sneins lyn + + + + ôfrûne snei + dizze snei + folgjende wike snei + + oer {0} snei + oer {0} snei + + + {0} snei lyn + {0} snei lyn + + + + ôfrûne sni + dizze sni + folgjende wk sni + + oer {0} snei + oer {0} snei + + + {0} snei lyn + {0} snei lyn + ôfrûne moandei dizze moandei folgjende wike moandei + + oer {0} moandei + oer {0} moandeis + + + {0} moandei lyn + {0} moandeis lyn + + + + ôfrûne moan + dizze moan + folgjende wike moan + + oer {0} moan. + oer {0} moan. + + + {0} moan. lyn + {0} moan. lyn + + + + ôfrûne mo + dizze mo + folgjende wike mo + + oer {0} mo + oer {0} mo + + + {0} mo lyn + {0} mo lyn + ôfrûne tiisdei dizze tiisdei folgjende wike tiisdei + + oer {0} tiisdei + oer {0} tiisdeis + + + {0} tiisdei lyn + {0} tiisdeis lyn + + + + ôfrûne tiis. + dizze tiis. + folgjende wike tiis. + + oer {0} tiis. + oer {0} tiis. + + + {0} tiis. lyn + {0} tiis. lyn + + + + ôfrûne ti + dizze ti + folgjende wike ti + + oer {0} ti + oer {0} ti + + + {0} ti lyn + {0} ti lyn + ôfrûne woansdei dizze woansdei folgjende wike woansdei + + oer {0} woansdei + oer {0} woansdeis + + + {0} woansdei lyn + {0} woansdeis lyn + + + + ôfrûne woans. + dizze woans. + folgjende wike woans. + + oer {0} woans. + oer {0} woans. + + + {0} woans. lyn + {0} woans. lyn + + + + ôfrûne wo + dizze wo + folgjende wike wo + + oer {0} wo + oer {0} wo + + + {0} wo lyn + {0} wo lyn + ôfrûne tongersdei dizze tongersdei folgjende wike tongersdei + + oer {0} tongersdei + oer {0} tongersdeis + + + {0} tongersdei lyn + {0} tongersdeis lyn + + + + ôfrûne tongers. + dizze tongers. + folgjende wike tongers. + + oer {0} tongers. + oer {0} tongers. + + + {0} tongers. lyn + {0} tongers. lyn + + + + ôfrûne to + dizze to + folgjende wike to + + oer {0} to + oer {0} to + + + {0} to lyn + {0} to lyn + ôfrûne freed dizze freed folgjende wike freed + + oer {0} freed + oer {0} freeds + + + {0} freed lyn + {0} freeds lyn + + + + + oer {0} freed + oer {0} freeds + + + {0} freed lyn + {0} freeds lyn + + + + ôfrûne fr + dizze fr + folgjende wike fr + + oer {0} fr + oer {0} fr + + + {0} fr lyn + {0} fr lyn + ôfrûne sneon dizze sneon folgjende wike sneon + + oer {0} sneon + oer {0} sneons + + + {0} sneon lyn + {0} sneons lyn + + + + ôfrûne sneo + dizze sneo + folgjende wike sneo + + oer {0} sneo + oer {0} sneo + + + {0} sneo lyn + {0} sneo lyn + + + + ôfrûne sneo + dizze sneo + folgjende wike sneo + + oer {0} sneo + oer {0} sneo + + + {0} sneo lyn + {0} sneo lyn + + + + a.m./p.m. AM/PM + + a.m./p.m. + oere + dit oere Oer {0} oere Oer {0} oere @@ -2011,8 +2553,30 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} oere lyn + + + oer {0} oere + oer {0} oeren + + + {0} oere lyn + {0} oeren lyn + + + + o + + oer {0} oere + oer {0} oeren + + + {0} oere lyn + {0} oeren lyn + + Minút + dizze minút Oer {0} minút Oer {0} minuten @@ -2022,6 +2586,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} minuten lyn + + min. + + oer {0} minút + oer {0} minuten + + + + min + + oer {0} minút + oer {0} minuten + + Sekonde nu @@ -2034,11 +2612,36 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} sekonden lyn + + sek. + + oer {0} sekonde + oer {0} sekonden + + + + sek + + oer {0} sekonde + oer {0} sekonden + + + + sône + + + sône + {0}-tiid Zomertiid {0} Standaardtiid {0} + + + koördinearre wrâldtiid + + Unbekende stêd @@ -2206,9 +2809,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Luxemburg - - Monako - Maldiven @@ -2218,6 +2818,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Mexico-stad + + Cancun + Nouméa @@ -2416,6 +3019,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic Anadyr-simmertiid + + + Apia-tiid + Apia-standerttiid + Apia-simmertiid + + Aqtau-tiid @@ -2569,13 +3179,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Sineeske simmertiid - - - Tsjojbalsan tiid - Tsjojbalsan standerttiid - Tsjojbalsan simmertiid - - Krysteilânske tiid @@ -2658,6 +3261,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic EEST + + + Fierder-eastlik-Europeeske tiid + + West-Europeeske tiid @@ -2836,6 +3444,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Petropavlovsk-Kamtsjatski-simmertiid + + + Kazakhstan-tiid + + East-Kazachse tiid @@ -2933,6 +3546,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic Mawson tiid + + + Meksikaanske Pacific-tiid + Meksikaanske Pacific-standerttiid + Meksikaanske Pacific-simmerttiid + + Ulaanbaatar tiid @@ -3081,6 +3701,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Pohnpei tiid + + + Pyongyang-tiid + + Qyzylorda-tiid @@ -3264,6 +3889,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Jekaterinenburg-simmertiid + + + Yukon-tiid + + @@ -3330,6 +3960,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ¤ #,##0.00;(¤ #,##0.00) + #,##0.00;(#,##0.00) @@ -3558,6 +4189,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Sileenske peso + + Sineeske yuan (offshore) + Sineeske yuan (offshore) + Sineeske yuan (offshore) + Sineeske yuan renminbi Sineeske renminbi @@ -4295,12 +4931,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}+ {0}-{1} + + {0} dei + {0} dagen + Nim de {0}e ôfslach rjochts. + {0} per {1} + + {0}{1} + {0} G-kracht {0} G-krachten @@ -4461,8 +5105,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} liter {0} liter + + haadwynstreek + {0} easterlingte + {0} noarderbreedte + {0} suderbreedte + {0} westerlingte + + + {0}{1} + G-krachten @@ -4602,8 +5256,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic kubike myl + + wynstreek + {0} EL + {0} NB + {0} SB + {0} WL + + + {0}{1} + {0} acre {0} acres @@ -4644,6 +5308,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}° {0}° + + wynstreek + {0} EL + {0} NB + {0} SB + {0} WL + @@ -4651,6 +5322,26 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} en {1} {0} en {1} + + {0} of {1} + {0} of {1} + + + {0} of {1} + {0} of {1} + + + {0} of {1} + {0} of {1} + + + {0}, {1} + {0}, {1} + + + {0}, & {1} + {0} & {1} + {0} en {1} @@ -4665,4 +5356,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic nee:n + + und fy + informal + {0}{1} + + Fatima + + + Irene + Bakker + + diff --git a/make/data/cldr/common/main/ga.xml b/make/data/cldr/common/main/ga.xml index a4ee7b2efbd..473bbbec0e1 100644 --- a/make/data/cldr/common/main/ga.xml +++ b/make/data/cldr/common/main/ga.xml @@ -60,6 +60,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Bioslaimis Binis Sicsicis + Anii Bambairis Beangáilis Tibéidis @@ -257,6 +258,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Coimis Coirnis Kwakʼwala + Kuvi Cirgisis Laidin Laidínis @@ -483,6 +485,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Veinéisis Vítneaimis Pléimeannais Iartharach + Macuais Volapük Vunjo Vallúnais @@ -493,6 +496,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Sínis Wu Cailmícis Cóisis + Kangri Soga Yangben Yemba @@ -518,34 +522,42 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + + + + + + + + + @@ -557,22 +569,30 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + + + + + + @@ -580,48 +600,76 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + @@ -2479,6 +2527,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ MAG{0} MAG + + Honolulu + Am Uilíoch Lárnach @@ -2835,9 +2886,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Liospóin - - Asunción - Catar @@ -2886,9 +2934,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Mogaidisiú - - São Tomé - an tSalvadóir @@ -2913,9 +2958,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Oileáin Midway - - Honolulu - Nua-Eabhrac @@ -3194,13 +3236,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Am Samhraidh na Síne - - - Am Choibalsan - Am Caighdeánach Choibalsan - Am Samhraidh Choibalsan - - Am Oileán na Nollag @@ -3469,6 +3504,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Am Samhraidh Phetropavlovsk-Kamchatski + + + Am na Casacstáine + + Am Oirthear na Casacstáine @@ -4138,11 +4178,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ 000T - {0} {1} - {0} {1} - {0} {1} - {0} {1} - {0} {1} @@ -4224,6 +4259,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Austral Airgintíneach + + Peso Ley na hAirgintíne (1970–1983) + Peso na hAirgintíne (1881–1970) pheso na hAirgintíne (1881–1970) @@ -4342,6 +4380,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lev chrua na Bulgáire lev crua na Bulgáire + + lev sóisialach na Bulgáire + lev sóisialach na Bulgáire + lev sóisialach na Bulgáire + lev sóisialach na Bulgáire + lev sóisialach na Bulgáire + Lev na Bulgáire lev na Bulgáire @@ -4550,6 +4595,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bhfranc an Chongó franc an Chongó + + Euro WIR + WIR euro + euro WIR + euro WIR + euro WIR + euro WIR + Franc na hEilvéise fhranc na hEilvéise @@ -4558,6 +4611,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bhfranc na hEilvéise franc na hEilvéise + + Franc WIR + fhranc WIR amháin + fhranc WIR + fhranc WIR + bhfranc WIR + franc WIR + Escudo na Sile escudo na Sile @@ -5529,7 +5590,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ rúbal na Rúise (1991–1998) rúbal na Rúise (1991–1998) rúbal na Rúise (1991–1998) - р. + р. Franc Ruanda @@ -6063,6 +6124,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Dínear Inathraithe Iúgslavach Dínear Inathraithe Iúgslavach + + Dinar Leasaithe na hIúgsláive (1992–1993) + Dinar Leasaithe na hIúgsláive (1992–1993) + Dinar Leasaithe na hIúgsláive (1992–1993) + Dinar Leasaithe na hIúgsláive (1992–1993) + Dinar Leasaithe na hIúgsláive (1992–1993) + Dinars Leasaithe na hIúgsláive (1992–1993) + Rand na hAfraice Theas (airgeadúil) @@ -6094,6 +6163,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Dollar Siombábach (1980–2008) + + Dollar na Siombáibe (2009) + {0}+ @@ -6492,8 +6564,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ giotáin - céadta bliain - {0} chéad bliain + na céadta bliain + céad bliain {0} chéad bliain {0} chéad bliain {0} gcéad bliain @@ -7397,6 +7469,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ndram leachtacha {0} dram leachtach + + oícheanta + {0} oíche amháin + {0} oíche + {0} oíche + {0} n-oíche + {0} oíche + {0} san oíche + príomhaird {0} oirthear @@ -7560,6 +7641,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ngiotán {0} giotán + + céadta bl + blianta {0} bl @@ -8111,6 +8195,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} gcárt impiriúla {0} cárt impiriúil + + oícheanta + {0} oíche + {0} oíche + {0} oíche + {0} n-oíche + {0} oíche + {0}/oíche + treo {0}O @@ -8731,6 +8824,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} unsa l. {0} unsa l. + + + {0}oí + {0}oí + {0}oí + {0}oí + {0}oí + {0}/oíche + @@ -8942,30 +9044,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ und ga ko vi yue zh - - {given} {given2} {surname} {credentials} - - - {given-informal} {surname} - - - {title} {surname} - - - {given-informal} - {given-informal-monogram-allCaps}{surname-monogram-allCaps} - - {given} {given2-initial} {surname} {credentials} - {given-informal} {surname} - - {title} {surname} - {given-informal} @@ -9041,9 +9125,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {given-informal-monogram-allCaps} - - {surname-prefix} {surname-core}, {given} {given2} - {surname}, {given-informal} diff --git a/make/data/cldr/common/main/gaa.xml b/make/data/cldr/common/main/gaa.xml index 83ffd48e86e..57057aeebf4 100644 --- a/make/data/cldr/common/main/gaa.xml +++ b/make/data/cldr/common/main/gaa.xml @@ -61,7 +61,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic German Austria German Switzerland German Krɔŋŋ - Blɔfo + Blɔfo Australia Blɔfo Kanada Blɔfo Britain Blɔfo @@ -77,7 +77,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kanada Frɛntsi Switzerland Frɛntsi Kajun Frɛntsi - + Hindi Armenian Indonesian @@ -116,7 +116,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + @@ -202,7 +202,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Gabon Grenada Frentsibii Guiana - Ghana + Ghana Greenland Gambia Guinea @@ -296,19 +296,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic Blɔfomɛi Anɔmbai - Susumɔnii + Susumɔnii - Language: {0} - Script: {0} - Region: {0} + Wiemɔ {0} + Woloŋmaa {0} + Kpokpaanɔ {0} - [a b d e ɛ f g h i j k l m n ŋ o ɔ p q r s t u v w y z] - [áã é íĩ ó ũ] + [a b d e ɛ f g h i j k l m n ŋ o ɔ p r s t u v w y z] + [áã é íĩ ó ũ] [A B D E Ɛ F G H I J K L M N Ŋ O Ɔ P Q R S T U V W Y Z] - [\- ‐‑ – — , ; \: ! ? . … '‘’ "“” ( ) \[ \] § @ * / \& # † ‡ ′ ″] + [\- ‐‑ – — , ; \: ! ? . … '‘’ "“” ( ) \[ \] § @ * / \& # † ‡ ′ ″] @@ -491,18 +491,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic Afu - Aharabata - Oflɔ - Otsokrikri - Abeibe - Agbiɛnaa - Otukwajaŋ - Maawɛ - Manyawale - Gbo - Antɔŋ - Alemle - Afuabe + Aharabata + Oflɔ + Otsokrikri + Abɛibe + Agbiɛnaa + Otukwajaŋ + Maawɛ + Manyawale + Gbo + Antɔŋ + Alemle + Afuabe @@ -524,7 +524,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Aharabata Oflɔ Otsokrikri - Abeibe + Abɛibe Agbiɛnaa Otukwajan Maawɛ @@ -548,13 +548,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic Hɔɔ - Hɔgbaa - Ju - Jufɔ - Shɔ - Soo - Sohaa - Hɔɔ + Hɔgbaa + Ju + Jufɔ + Shɔ + Soo + Sohaa + Hɔɔ @@ -592,8 +592,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic SN - LEEBI - SHWANE + LEEBI + SHWANE @@ -643,26 +643,26 @@ CLDR data files are interpreted according to the LDML specification (http://unic - h:mm:ss a zzzz - ahmmsszzzz + h:mm:ss a zzzz + ahmmsszzzz - h:mm:ss a z - ahmmssz + h:mm:ss a z + ahmmssz - h:mm:ss a - ahmmss + h:mm:ss a + ahmmss - h:mm a - ahmm + h:mm a + ahmm @@ -698,10 +698,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic E, MMM d MMMM 'otsi' W M/y - M/d/y + M/d/y E, M/d/y MMM y - MMM d, y + MMM d, y E, MMM d, y MMMM y QQQ y @@ -877,9 +877,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic - {0} Be - {0} Be Yɛ Latsa Beiaŋ - {0} Be Yɛ Fɛi Beiaŋ + {0} Be + {0} Be Yɛ Latsa Beiaŋ + {0} Be Yɛ Fɛi Beiaŋ Be Ni Maji Ni Yɔɔ Jeŋ Fɛɛ Kɛtsuɔ Nii @@ -1042,9 +1042,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kasablanka - - Tsoibalsan - Makao @@ -1231,6 +1228,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Antarktik Kɛ Wuoyigbɛbii Ni Wieɔ Frɛntsi Be + + + Betsɔɔmɔ ni ka ŋɛlɛ kome nɔ + + Greenland Bokãgbɛ Be @@ -1714,8 +1716,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic - gbii {0} - ni ji {0} + gbii {0} + ni ji {0} @@ -1915,8 +1917,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic - {0}, kɛ {1} - {0} kɛ {1} + {0}, kɛ {1} + {0} kɛ {1} diff --git a/make/data/cldr/common/main/gd.xml b/make/data/cldr/common/main/gd.xml index fb8f5039aa2..c78fafa85a6 100644 --- a/make/data/cldr/common/main/gd.xml +++ b/make/data/cldr/common/main/gd.xml @@ -82,6 +82,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Banjar Kom Siksika + Anii + Tai Dam Bambara Bangla Tibeitis @@ -117,6 +119,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Chipewyan Cherokee Cheyenne + Chickasaw Cùrdais Mheadhanach Cùrdais Sorani Chilcotin @@ -222,7 +225,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Meadhan-Àrd-Gearmailtis Guaraní Seann-Àrd-Gearmailtis - Konkani Goa Gondi Gorontalo Gotais @@ -247,6 +249,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Hiligaynon Cànan Het Hmong + Hmong Njua Hiri Motu Cròthaisis Sòrbais Uachdarach @@ -330,6 +333,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Komi Còrnais Kwakʼwala + Kuvi Cìorgasais Laideann Ladino @@ -344,6 +348,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Liogùrais Lillooet Lakhóta + Ladainis Lombardais Lingala Làtho @@ -353,6 +358,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Luri Thuathach Saamia Liotuainis + Latgailis Luba-Katanga Luba-Lulua Luiseño @@ -381,6 +387,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Makhuwa-Meetto Meta’ Marshallais + Mócheno Māori Mi’kmaq Minangkabau @@ -528,6 +535,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Sinhala Sidamo Slòbhacais + Saraiki Slòbhainis Lushootseed Dheasach Selayar @@ -557,6 +565,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Comorais Suraidheac Chlasaigeach Suraidheac + Sileisis Taimilis Tutchone Dheasach Tulu @@ -588,6 +597,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Turcais Turoyo Taroko + Torwali Tsonga Tsimshian Tatarais @@ -613,6 +623,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Veps Bhiet-Namais Flànrais Shiarach + Makhuwa Volapük Võro Vunjo @@ -626,6 +637,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Wu Kalmyk Xhosa + Kangri Soga Yao Cànan Yap @@ -657,13 +669,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - @@ -678,7 +688,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - @@ -696,6 +705,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic + @@ -704,6 +714,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic + @@ -722,13 +733,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - + @@ -736,6 +746,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic + @@ -746,7 +757,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + @@ -761,7 +772,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - @@ -771,12 +781,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + @@ -811,8 +821,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + @@ -831,7 +843,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + + @@ -956,7 +969,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ceuta agus Melilla Eacuador An Eastoin - An Èiphit + An Èipheit Sathara an Iar Eartra An Spàinnt @@ -992,7 +1005,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Guidheàna Hong Kong SAR na Sìne Hong Kong - Eilean Heard is MhicDhòmhnaill + Eilean Heard is Eileanan MhicDhòmhnaill Hondùras A’ Chròthais Haidhti @@ -1358,12 +1371,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic Àireamhan Dives Akuru Àireamhan Itiopach Àireamhan làn-leud + Àireamhan Garay Àireamhan na Cairtbheilise Àireamhan Gunjala Gondi Àireamhan Masaram Gondi Àireamhan na Greugaise Àireamhan beaga na Greugaise Àireamhan Gujarati + Àireamhan Gurung Khema Àireamhan Gurmukhi Àireamhan deicheach na Sìnise Àireamhan na Sìnise Shimplichte @@ -1380,6 +1395,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Àireamhan Kawi Àireamhan Cmèar Àireamhan Kannada + Àireamhan Kirat Rai Àireamhan Tai Tham Hora Àireamhan Tai Tham Tham Àireamhan Làtho @@ -1397,13 +1413,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic Àireamhan Mro Àireamhan Meetei Mayek Àireamhan Miànmar + Àireamhan Pwo Karen Miànmar an Ear + Àireamhan Pao Miànmar Àireamhan Shan Miànmar Àireamhan Tai Laing Miànmar Àireamhan Nag Mundari Àireamhan N’Ko Àireamhan Ol Chiki + Àireamhan Ol Onal Àireamhan Odia Àireamhan Osmanya + Àireamhan oir-loidhnichte Àireamhan Hanifi Rohingya Àireamhan Ròmanach Àireamhan beaga Ròmanach @@ -1413,6 +1433,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Àireamhan Lith na Sinhala Àireamhan Sora Sompeng Àireamhan Sunda + Àireamhan Sunuwar Àireamhan Takri Àireamhan Tai Lue Ùr Àireamhan na Taimilise Tradaiseanta @@ -1446,7 +1467,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2160,7 +2181,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - d MMM y + d'mh' MMM y @@ -2258,8 +2279,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic E, d/M/y LL/y LLL Y - d'mh' MMM y - E, d'mh' MMM y + d MMM y + E, d MMM y LLLL y QQQ y QQQQ y @@ -2286,21 +2307,21 @@ CLDR data files are interpreted according to the LDML specification (http://unic y – y G - L/y GGGGG – L/y GGGGG - L/y – L/y GGGGG - L/y – L/y GGGGG + L/y G – L/y G + L/y – L/y G + L/y – L/y G - d/M/y – d/M/y GGGGG - d/M/y GGGGG – d/M/y GGGGG - d/M/y – d/M/y GGGGG - d/M/y – d/M/y GGGGG + d/M/y – d/M/y G + d/M/y G – d/M/y G + d/M/y – d/M/y G + d/M/y – d/M/y G - E, d/M/y – E, d/M/y GGGGG - E, d/M/y GGGGG – E, d/M/y GGGGG - E, d/M/y – E, d/M/y GGGGG - E, d/M/y – E, d/M/y GGGGG + E, d/M/y – E, d/M/y G + E, d/M/y G– E, d/M/y G + E, d/M/y – E, d/M/y G + E, d/M/y – E, d/M/y G LLL y G – LLL y G @@ -2370,7 +2391,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic d MMM – d MMM - E, d – E, d MMM + E, d MMM – E, d MMM E, d MMM – E, d MMM @@ -2400,7 +2421,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic d MMM y – d MMM y - E, d – E, d MMM y + E, d MMM – E, d MMM y E, d MMM – E, d MMM y E, d MMM y – E, d MMM y @@ -3239,6 +3260,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic Tìde samhraidh: {0} Bun-àm: {0} + + + HST + HST + HDT + + Honolulu + Àm Uile-choitcheann Co-òrdanaichte @@ -3346,9 +3375,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic An Ceap Uaine - - Curaçao - Nollaig @@ -3562,15 +3588,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Palabh - - Asunción - Catar - - Réunion - Mosgo @@ -3583,9 +3603,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Eilean Naomh Eilidh - - São Tomé - An Salbhador @@ -3616,14 +3633,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kiev - - - HST - HST - HDT - - Honolulu - Nuadh Eabhrac @@ -3707,9 +3716,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Àm Meadhan Aimeireaga a Tuath - Bun-àm Meadhan Aimeireaga a Tuath - Tìde samhraidh Meadhan Aimeireaga a Tuath + Àm Meadhan Aimeireaga + Bun-àm Meadhan Aimeireaga + Tìde samhraidh Meadhan Aimeireaga CT @@ -3719,9 +3728,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Àm Aimeireaga a Tuath an Ear - Bun-àm Aimeireaga a Tuath an Ear - Tìde samhraidh Aimeireaga a Tuath an Ear + Àm Aimeireaga an Ear + Bun-àm Aimeireaga an Ear + Tìde samhraidh Aimeireaga an Ear ET @@ -3731,9 +3740,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Àm Monadh Aimeireaga a Tuath - Bun-àm Monadh Aimeireaga a Tuath - Tìde samhraidh Monadh Aimeireaga a Tuath + Àm Monadh Aimeireaga + Bun-àm Monadh Aimeireaga + Tìde samhraidh Monadh Aimeireaga MT @@ -3743,9 +3752,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Àm a’ Chuain Sèimh - Bun-àm a’ Chuain Sèimh - Tìde samhraidh a’ Chuain Sèimh + Àm a’ Chuain Shèimh + Bun-àm a’ Chuain Shèimh + Tìde samhraidh a’ Chuain Shèimh PT @@ -3811,9 +3820,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Àm a’ Chuain Siar - Bun-àm a’ Chuain Siar - Tìde samhraidh a’ Chuain Siar + Àm a’ Chuain Shiar + Bun-àm a’ Chuain Shiar + Tìde samhraidh a’ Chuain Shiar AT @@ -3930,13 +3939,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Tìde samhraidh na Sìne - - - Àm Choibalsan - Bun-àm Choibalsan - Tìde samhraidh Choibalsan - - Àm Eilean na Nollaig @@ -4090,6 +4092,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic GMT + + + Àm na Graonlainne + Bun-àm na Graonlainne + Tìde samhraidh na Graonlainne + + Àm na Graonlainn an Ear @@ -4210,6 +4219,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Tìde samhraidh Petropavlovsk-Kamchatsky + + + Àm Casachstàin + + Àm Casachstàin an Ear @@ -4309,9 +4323,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Àm a’ Chuain Sèimh Mheagsago - Bun-àm a’ Chuain Sèimh Mheagsago - Tìde samhraidh a’ Chuain Sèimh Mheagsago + Àm a’ Chuain Shèimh Mheagsago + Bun-àm a’ Chuain Shèimh Mheagsago + Tìde samhraidh a’ Chuain Shèimh Mheagsago @@ -4728,12 +4742,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - {0} {1} - {0} {1} - {0} {1} - {0} {1} - @@ -4846,10 +4854,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ¤ 000T - {0} {1} - {0} {1} - {0} {1} - {0} {1} @@ -5708,18 +5712,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic punnd Iosraeleach - Sheqel Iosraeleach (1980–1985) - sheqel Iosraeleach (1980–1985) - sheqel Iosraeleach (1980–1985) - sheqel Iosraeleach (1980–1985) - sheqel Iosraeleach (1980–1985) + Secel Iosraeleach (1980–1985) + shecel Iosraeleach (1980–1985) + shecel Iosraeleach (1980–1985) + secelean Iosraeleach (1980–1985) + secel Iosraeleach (1980–1985) - Sheqel ùr Iosraeleach - sheqel ùr Iosraeleach - sheqel ùr Iosraeleach - sheqel ùr Iosraeleach - sheqel ùr Iosraeleach + Secel ùr Iosraeleach + shecel ùr Iosraeleach + shecel ùr Iosraeleach + secelean ùra Iosraeleach + secel ùr Iosraeleach Rupee Innseanach @@ -6798,6 +6802,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic dolaran Caraibeach earach dolar Caraibeach earach + + Gulden Caraibeach + ghulden Caraibeach + ghulden Caraibeach + gulden Caraibeach + gulden Caraibeach + Còir tarraing shònraichte chòir tarraing shònraichte @@ -8346,6 +8357,28 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} càrtan ìmpireil {0} càrt ìmpireil + + solas + {0} sholas + {0} sholas + {0} solasan + {0} solas + + + pàirt sa bhillean + {0} phàirt sa bhillean + {0} phàirt sa bhillean + {0} pàirtean sa bhillean + {0} pàirt sa bhillean + + + oidhche + {0} oidhche + {0} oidhche + {0} oidhcheannan + {0} oidhche + {0}/oidhche + comhair combaist @@ -8940,6 +8973,24 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} càrt ìmp. {0} càrt ìmp. + + solas + {0} sholas + {0} sholas + {0} solasan + {0} solas + + + pàirt/billean + + + oidhche + {0} oidhche + {0} oidhche + {0} oidhche. + {0} oidhche + {0}/oidhche + comhair {0}T @@ -10082,6 +10133,27 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}càrt ì. {0}càrt ì. + + solas + {0}sholas + {0}sholas + {0}solas. + {0}solas + + + {0}ppb + {0}ppb + {0}ppb + {0}ppb + + + oidhche + {0}oidh. + {0}oidh. + {0}oidh. + {0}oidh. + {0}/oidh. + @@ -10350,10 +10422,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic {given-informal-monogram-allCaps} - {surname} {surname2} {title} {given} {given2} {generation}, {credentials} + {surname} {surname2}, {title} {given} {given2} {generation}, {credentials} - {surname} {surname2} {given-informal} {given2} + {surname} {surname2}, {given-informal} {given2} {title-vocative} {surname-vocative} @@ -10365,10 +10437,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic {surname-monogram-allCaps}{given-informal-monogram-allCaps} - {surname} {given} {given2-initial} {generation}, {credentials} + {surname}, {given} {given2-initial} {generation}, {credentials} - {surname} {given-informal} {given2} + {surname}, {given-informal} {given2} {title-vocative} {surname-vocative} @@ -10383,7 +10455,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {given-informal-monogram-allCaps} - {surname} {given-initial} {given2-initial} + {surname}, {given-initial} {given2-initial} {given-informal} {given2-initial} @@ -10404,19 +10476,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic {surname-core}, {given} {given2} {surname-prefix} - {surname}, {given-informal} {given2} + {surname-core}, {given-informal} {given2} {surname-core}, {given} {given2-initial} {surname-prefix} - {surname}, {given-informal} {given2-informal-initial} + {surname-core}, {given-informal} {given2-informal-initial} {surname-core}, {given-initial} {given2-initial} {surname-prefix} - {surname}, {given-informal} {given2-informal-initial} + {surname-core}, {given-informal} {given2-informal-initial} Calum diff --git a/make/data/cldr/common/main/gl.xml b/make/data/cldr/common/main/gl.xml index cd29e464b50..3bb5aed0f78 100644 --- a/make/data/cldr/common/main/gl.xml +++ b/make/data/cldr/common/main/gl.xml @@ -58,6 +58,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bislama bini siksiká + anii bambara bengalí tibetano @@ -184,6 +185,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ iban ibibio indonesio + occidental igbo yi sichuanés inuktitut canadense occidental @@ -238,6 +240,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komi córnico kwakiutl + kuvi kirguiz latín ladino @@ -246,8 +249,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lezguio ganda limburgués + lígur lillooet lakota + lombardo lingala laosiano crioulo de Luisiana @@ -258,7 +263,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ luba-katanga luba-lulua lunda - luo mizo luyia letón @@ -404,6 +408,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ suahili congolés comoriano siríaco + silesiano támil tutchone do sur telugu @@ -443,9 +448,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lingua descoñecida urdú uzbeko - vai venda + véneto vietnamita + makua volapuk vunjo valón @@ -457,6 +463,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ chinés wu calmuco xhosa + kangri soga yangben yemba @@ -465,6 +472,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ nheengatu cantonés chinés cantonés + zhuang tamazight marroquí estándar chinés chinés mandarín @@ -574,15 +582,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ América Latina Illa de Ascensión Andorra - Os Emiratos Árabes Unidos + Emiratos Árabes Unidos Afganistán Antigua e Barbuda Anguila Albania Armenia Angola - A Antártida - A Arxentina + Antártida + Arxentina Samoa Americana Austria Australia @@ -603,14 +611,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Brunei Bolivia Caribe Neerlandés - O Brasil + Brasil Bahamas Bután Illa Bouvet Botswana Belarús Belize - O Canadá + Canadá Illas Cocos (Keeling) República Democrática do Congo Congo (RDC) @@ -623,7 +631,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Illas Cook Chile Camerún - A China + China Colombia Illa Clipperton Costa Rica @@ -645,7 +653,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ecuador Estonia Exipto - O Sáhara Occidental + Sáhara Occidental Eritrea España Etiopía @@ -659,7 +667,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Illas Feroe Francia Gabón - O Reino Unido + Reino Unido RU Granada Xeorxia @@ -676,7 +684,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Illas Xeorxia do Sur e Sandwich do Sur Guatemala Guam - A Guinea Bissau + Guinea Bissau Güiana Hong Kong RAE da China Hong Kong @@ -690,7 +698,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Irlanda Israel Illa de Man - A India + India Territorio Británico do Océano Índico Arquipélago de Chagos Iraq @@ -700,7 +708,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Jersey Xamaica Xordania - O Xapón + Xapón Kenya Kirguizistán Camboxa @@ -713,7 +721,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Illas Caimán Kazakistán Laos - O Líbano + Líbano Santa Lucía Liechtenstein Sri Lanka @@ -762,8 +770,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Aotearoa (Nova Zelandia) Omán Panamá - O Perú - A Polinesia Francesa + Perú + Polinesia Francesa Papúa-Nova Guinea Filipinas Paquistán @@ -775,7 +783,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Palestina Portugal Palau - O Paraguai + Paraguai Qatar Territorios afastados de Oceanía Reunión @@ -786,7 +794,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Arabia Saudita Illas Salomón Seychelles - O Sudán + Sudán Suecia Singapur Santa Helena @@ -798,7 +806,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Senegal Somalia Suriname - O Sudán do Sur + Sudán do Sur San Tomé e Príncipe O Salvador Sint Maarten @@ -827,9 +835,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Illas Menores Distantes dos Estados Unidos Nacións Unidas ONU - Os Estados Unidos + Estados Unidos EUA - O Uruguai + Uruguai Uzbekistán Cidade do Vaticano San Vicente e as Granadinas @@ -843,7 +851,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Pseudoacentos Pseudobidireccional Kosovo - O Iemen + Iemen Mayotte Suráfrica Zambia @@ -1009,7 +1017,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2057,6 +2065,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ hora de: {0} hora de verán de: {0} hora estándar de: {0} + + Honolulú + hora universal coordinada @@ -2173,9 +2184,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Cabo Verde - - Curaçao - Illa Christmas @@ -2380,9 +2388,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Lisboa - - Asunción - Reunión @@ -2479,9 +2484,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Simferópol - - Honolulú - Os Ánxeles @@ -2524,6 +2526,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Lusaca + + + hora de Acre + + hora de Afganistán @@ -2595,7 +2602,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Horario de Anadir + hora de Anadyr Horario estándar de Anadir Horario de verán de Anadir @@ -2746,13 +2753,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ hora de verán da China - - - hora de Choibalsan - hora estándar de Choibalsan - hora de verán de Choibalsan - - hora da Illa Christmas @@ -3011,11 +3011,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Horario de Petropávlovsk-Kamchatski + hora estándar de Petropavlovsk-Kamchatski Horario estándar de Petropávlovsk-Kamchatski Horario de verán de Petropávlovsk-Kamchatski + + + hora de Kazakistán + + hora de Kazakistán Oriental @@ -3275,7 +3280,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Horario de Samara + hora de Samara Horario estándar de Samara Horario de verán de Samara @@ -3556,8 +3561,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ¤¤ - {0} {1} - {0} {1} @@ -4364,9 +4367,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ leones de Serra Leoa - leone de Serra Leoa (1964—2022) - leone de Serra Leoa (1964—2022) - leones de Serra Leoa (1964—2022) + leone de Serra Leoa (1964–2022) + leone de Serra Leoa (1964–2022) + leones de Serra Leoa (1964–2022) xilin somalí @@ -5577,6 +5580,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} cuarto imperial {0} cuartos imperiais + + luz + {0} luz + {0} luz + + + partes por mil millóns + {0} parte por mil millóns + {0} partes por mil millóns + + + noites + {0} noite + {0} noites + {0} por noite + punto cardinal {0} leste @@ -6025,6 +6044,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} cto. imp. {0} ctos. imp. + + luz + {0} luz + {0} luz + + + partes/mil millóns + {0} ppmm + {0} ppmm + + + noites + {0} noite + {0} noites + {0}/noite + punto {0} L @@ -6205,6 +6240,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ cto. imp. + + luz + {0} luz + {0} luz + + + ppmm + {0} ppmm + {0} ppmm + + + noites + {0} noite + {0} noites + {0}/noite + diff --git a/make/data/cldr/common/main/gu.xml b/make/data/cldr/common/main/gu.xml index 4f33a197050..079cdcb105f 100644 --- a/make/data/cldr/common/main/gu.xml +++ b/make/data/cldr/common/main/gu.xml @@ -63,13 +63,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ બેમ્બા બેના બલ્ગેરિયન - હરયાણવી + હરિયાણવી પશ્ચિમી બાલોચી ભોજપુરી બિસ્લામા બિકોલ બિની સિક્સિકા + અની બામ્બારા બાંગ્લા તિબેટીયન @@ -156,7 +157,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ બ્રિટિશ અંગ્રેજી યુ.કે. અંગ્રેજી અમેરિકન અંગ્રેજી - યુ. એસ. અંગ્રેજી મિડિલ અંગ્રેજી એસ્પેરાન્ટો સ્પેનિશ @@ -170,14 +170,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ડારી ફેંગ ફન્ટી - ફુલાહ + ફુલા ફિનિશ ફિલિપિનો ફીજીયન ફોરિસ્ત ફોન ફ્રેન્ચ - કેનેડિયન ફ્રેંચ સ્વિસ ફ્રેંચ કાજૂન ફ્રેન્ચ મિડિલ ફ્રેંચ @@ -200,7 +199,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ મધ્ય હાઇ જર્મન ગુઆરાની જૂની હાઇ જર્મન - ગોઅન કોંકણી ગોંડી ગોરોન્તાલો ગોથિક @@ -298,6 +296,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ કોમી કોર્નિશ ક્વેકવાલા + કૂવી કિર્ગીઝ લેટિન લાદીનો @@ -309,8 +308,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ લિંગ્વા ફેન્કા નોવા ગાંડા લિંબૂર્ગિશ + લિગુરીઅન લિલુએટ લાકોટા + લોંબાર્ડ લિંગાલા લાઓ મોંગો @@ -501,6 +502,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ કોમોરિયન પરંપરાગત સિરિએક સિરિએક + સિલેસ્યિન તમિલ દક્ષિણ ટુચૉન તુલુ @@ -551,7 +553,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ઉઝ્બેક વાઇ વેન્દા + વેનેશ્યિન વિયેતનામીસ + મખુવા વોલાપુક વોટિક વુન્જો @@ -565,6 +569,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ વુ ચાઈનીઝ કાલ્મિક ખોસા + કંગરી સોગા યાઓ યાપીસ @@ -883,7 +888,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ આઇલ ઑફ મેન ભારત બ્રિટિશ ઇન્ડિયન ઓશન ટેરિટરી - બ્રિટિશ હિંદ મહાસાગર ક્ષેત્ર + બ્રિટિશ હિંદ મહાસાગર ક્ષેત્ર ચાગસ દ્વિપસમૂહ ઇરાક ઈરાન @@ -1084,8 +1089,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ભારતીય રાષ્ટ્રીય કેલેન્ડર હિજરી કેલેન્ડર હિજરી-નાગરિક કેલેન્ડર - ઇસ્લામિક કેલેન્ડર (સાઉદી અરેબિયા, નિરીક્ષણ) - ઇસ્લામિક કેલેન્ડર (ટેબ્યુલર, ખગોળશાસ્ત્રીય યુગ) + ઇસ્લામિક કેલેન્ડર (સાઉદી અરેબિયા, નિરીક્ષણ) + ઇસ્લામિક કેલેન્ડર (ટેબ્યુલર, ખગોળશાસ્ત્રીય યુગ) હિજરી કેલેન્ડર (ઉમ અલ-કુરા) ISO-8601 કેલેન્ડર જાપાનીઝ કેલેન્ડર @@ -1201,7 +1206,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [઼ ૐ ં ઁ ઃ અ આ ઇ ઈ ઉ ઊ ઋ ૠ ઍ એ ઐ ઑ ઓ ઔ ક ખ ગ ઘ ઙ ચ છ જ ઝ ઞ ટ ઠ ડ ઢ ણ ત થ દ ધ ન પ ફ બ ભ મ ય ર લ વ શ ષ સ હ ળ ઽ ા િ ી ુ ૂ ૃ ૄ ૅ ે ૈ ૉ ો ૌ ્] [\u200C\u200D ૰] [અ {અં} {અઃ} આ ઇ ઈ ઉ ઊ ઋ ઍ એ ઐ ઑ ઓ ઔ ક {ક્ષ} ખ ગ ઘ ઙ ચ છ જ {જ્ઞ} ઝ ઞ ટ ઠ ડ ઢ ણ ત {ત્ર} થ દ ધ ન પ ફ બ ભ મ ય ર લ વ શ ષ સ હ ળ] - [\- ‑ , . % ‰ + 0૦ 1૧ 2૨ 3૩ 4૪ 5૫ 6૬ 7૭ 8૮ 9૯] [\- ‐‑ – — , ; \: ! ? . … '‘’ "“” ( ) \[ \] § @ * / \& # † ‡ ′ ″] @@ -2190,6 +2194,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} સમય {0} દિવસ સમય {0} માનક સમય + + હોનોલુલુ + સંકલિત યુનિવર્સલ સમય @@ -2927,9 +2934,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ઉલાંબાતર - - ચોઇબાલ્સન - મકાઉ @@ -3329,9 +3333,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ નોમ - - હોનોલુલુ - એન્કોરેજ @@ -3711,13 +3712,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ચીન દિવસ સમય - - - ચોઇબાલ્સન સમય - ચોઇબાલ્સન માનક સમય - ચોઇબાલ્સન ગ્રીષ્મ સમય - - ક્રિસમસ આઇલેન્ડ સમય @@ -3971,6 +3965,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ પેટ્રોપેવલોવ્સ્ક-કામચતસ્કી ગ્રીષ્મ સમય + + + કઝાકિસ્તાન સમય + + પૂર્વ કઝાકિસ્તાન સમય @@ -4588,8 +4587,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ¤¤ - {0} {1} - {0} {1} @@ -5925,6 +5922,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ઇમ્પીરિયલ ક્વૉર્ટ {0} ઇમ્પીરિયલ ક્વૉર્ટ + + લાઇટ + {0} લાઇટ + {0} લાઇટ + + + પ્રતિ અબજ ભાગ + {0} પ્રતિ અબજ ભાગ + {0} પ્રતિ અબજ ભાગ + + + રાત + {0} રાત + {0} રાત + {0}/રાત + મુખ્ય દિશા {0}પૂર્વ @@ -6643,6 +6656,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ચપટી {0} ચપટી + + લાઇટ + {0} લાઇટ + {0} લાઇટ + + + ભાગ/અબજ + {0} પ્રતિ અબજ ભાગ + {0} પ્રતિ અબજ ભાગ + + + રાત + {0} રાત + {0} રાત + {0}/રાત + દિશા {0}પૂ @@ -6894,6 +6923,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} dstspn-Imp {0} dstspn-Imp + + લાઇટ + {0} લાઇટ + {0} લાઇટ + + + {0} પ્રતિ અબજ ભાગ + {0} પ્રતિ અબજ ભાગ + + + રાત + {0} રાત + {0} રાત + {0}/રાત + diff --git a/make/data/cldr/common/main/ha.xml b/make/data/cldr/common/main/ha.xml index 554c18da427..6420a881716 100644 --- a/make/data/cldr/common/main/ha.xml +++ b/make/data/cldr/common/main/ha.xml @@ -52,6 +52,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Bislama Bini Siksiká + Anii Bambara Bengali Tibetan @@ -110,11 +111,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Girkanci Turanci Turanci Ostareliya - Turanci Kanada - Turanci Biritaniya - Turancin Ingila - Turanci Amirka - Turancin Amurka + Turanci (Biritaniya) + Turanci (Amurka) Esperanto Sifaniyanci Sifaniyancin Latin Amirka @@ -123,9 +121,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Istoniyanci Basque Ewondo - Farisa + Farisanci Farisanci na Afaganistan - Fulah + Fula Yaren mutanen Finland Dan Filifin Fijiyanci @@ -157,8 +155,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Haida na Kudanci Ibrananci Harshen Hindi - Hindi (Latinanci) - Hinglish + Harshen Hindi (Latin) Hiligaynon Hmong Kuroshiyan @@ -187,7 +184,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Lojban Ngomba Machame - Jafananci + Javananci Jojiyanci Kabyle Kachin @@ -210,7 +207,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Harshen Kimar Kimbundu Kannada - Harshen Koreya + Harshen Koriya Konkananci Kpelle Kanuri @@ -226,6 +223,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Komi Cornish Kwakʼwala + Kavi Kirgizanci Dan Kabilar Latin Ladino @@ -234,8 +232,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic Lezghiniyanci Ganda Limburgish + Liguriyanci Lillooet Lakota + Lombard Lingala Lao Creole na Louisiana @@ -274,7 +274,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Mohawk Mossi Maratinci - Harshen Malai + Harshen Malay Harshen Maltis Mundang Harsuna masu yawa @@ -345,7 +345,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Rwa Sanskrit Sandawe - Sakha + Yakut Samburu Santali Ngambay @@ -383,6 +383,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Harshen Suwahili Komoriyanci Syriac + Silessiyanci Tamil Tutchone na Kudanci Telugu @@ -423,7 +424,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Uzbek Vai Venda + Veneshiyanci Harshen Biyetinam + Makhuwa Volapük Vunjo Walloon @@ -433,7 +436,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Wolof Sinancin Wu Kalmyk - Bazosa + Xhosa + Kangri Soga Yangben Yemba @@ -442,6 +446,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Nheengatu Harshen Cantonese Sinanci, Cantonese + Zhuang Daidaitaccen Moroccan Tamazight Harshen Sinanci Harshen, Sinanci @@ -456,31 +461,30 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + - + - + - + - @@ -503,7 +507,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - @@ -533,7 +536,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kudancin Asiya Kudu Maso Gabashin Asiya Kudancin Turai - Asturesiya + Asturelasiya Melanesia Yankin Micronesiya Kasar Polynesia @@ -556,7 +559,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Armeniya Angola Antatika - Arjantiniya + Ajentina Samowa Ta Amurka Ostiriya Ostareliya @@ -565,11 +568,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Azarbaijan Bosniya da Harzagobina Barbadas - Bangiladas + Bangladesh Belgiyom Burkina Faso Bulgariya - Baharan + Baharen Burundi Binin San Barthélemy @@ -593,19 +596,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic Jamhuriyar Kongo Suwizalan Aibari Kwas - Tsibiran Kuku - Cayile + Tsibiran Cook + Chile Kamaru Sin Kolambiya Tsibirin Clipperton Kwasta Rika Kyuba - Tsibiran Kap Barde + Tsibiran Cape Verde Ƙasar Curaçao Tsibirin Kirsmati - Sifurus - Jamhuriyar Cak + Saifurus + Czechia + Jamhuriyar Czech Jamus Tsibirn Diego Garcia Jibuti @@ -632,7 +636,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Gabon Biritaniya Girnada - Jiwarjiya + Jojiya Gini Ta Faransa Yankin Guernsey Gana @@ -641,14 +645,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic Gambiya Gini Gwadaluf - Gini Ta Ikwaita + Ikwatoriyal Gini Girka Kudancin Geogia da Kudancin Tsibirin Sandiwic Gwatamala - Gwam + Guam Gini Bisau Guyana Babban Yankin Mulkin Hong Kong na Ƙasar Sin + Hong Kong Tsibirin Heard da McDonald Yankin Honduras Kurowaishiya @@ -658,7 +663,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Indunusiya Ayalan Israʼila - Isle na Mutum + Isle of Man Indiya Yankin Birtaniya Na Tekun Indiya Iraƙi @@ -677,10 +682,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic San Kiti Da Nebis Koriya Ta Arewa Koriya Ta Kudu - Kwiyat + Kuwet Tsibiran Kaiman Kazakistan - Lawas + Lawos Labanan San Lusiya Licansitan @@ -694,7 +699,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Maroko Monako Maldoba - Mantanegara + Manteneguro San Martin Madagaskar Tsibiran Marshal @@ -703,6 +708,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Burma, Miyamar Mangoliya Babban Yankin Mulkin Macao na Ƙasar Sin + Macao Tsibiran Mariyana Na Arewa Martinik Moritaniya @@ -712,7 +718,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Maldibi Malawi Mesiko - Malaisiya + Malesiya Mozambik Namibiya Kaledoniya Sabuwa @@ -724,7 +730,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Norwe Nefal Nauru - Niyu + Niue Nuzilan Aotearoa Nuzilan Oman @@ -736,7 +742,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Pakistan Polan San Piyar da Mikelan - Pitakarin + Tsibiran Pitcairn Porto Riko Yankunan Palasɗinu Palasɗinu @@ -780,7 +786,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Tailan Tajikistan Takelau - Timor Ta Gabas + Timor-Leste + Timor ta Gabas Turkumenistan Tunisiya Tonga @@ -796,7 +803,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Amurka Yurigwai Uzubekistan - Batikan + Birnin Batikan San Binsan Da Girnadin Benezuwela Tsibirin Birjin Na Birtaniya @@ -805,10 +812,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic Banuwatu Walis Da Futuna Samoa - Gogewar Kwalwa - Gano wani abu ta hanyar amfani da fasaha + Gurɓataccen Karin harshe + Gurɓataccen Bidi Kasar Kosovo - Yamal + Yamen Mayoti Afirka Ta Kudu Zambiya @@ -820,7 +827,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Yanayin Kudi Tsarin Rabewa Kudin Kasa - Zagayen Awowi + Zagayen Awowi (12 da 24) Salo na Raba Layi Tsarin Awo Lambobi @@ -847,7 +854,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Tsarin Rabewa na Dan-maƙalu na Asali Bincike na Dalilai-Gamagari Daidaitaccen Kasawa - Tsarin Awowi 12(0–11) + Tsarin Awowi 12 (0–11) Tsarin Awowi 12(1–12) Tsarin Awowi 24(0–23) Tsarin Awowi 24(1–24) @@ -900,8 +907,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Tsarin awo - Tsarin awo kasar Ingila - Amurka + Tsarin awon ƙasar Ingila + Tsarin awon ƙasar Amurka Harshe: {0} @@ -1209,6 +1216,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic 'sati' w 'cikin' Y + + M/y G – M/y G + + + E, M/d/y G – E, M/d/y G + E, M/d/y – E, M/d/y G + E, M/d/y – E, M/d/y G + h a – h a @@ -1312,8 +1327,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic a shekaru {0} - shekara da suka gabata {0} - shekara da suka gabata {0} + shekara {0} da ta gabata + shekaru {0} da suka gabata + + + + + shekara {0} da ta gabata + shekaru {0} da suka gabata + + + + + shekara {0} da ta gabata + shekaru {0} da suka gabata @@ -1326,8 +1353,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic a cikin kwatas {0} - kwata da suka gabata {0} - kwatas da suka gabata {0} + kwata {0} da suka gabata + kwata {0} da suka gabata + + + + + kwata {0} da suka gabata + kwata {0} da suka gabata + + + + + kwata {0} da suka gabata + kwata {0} da suka gabata @@ -1340,8 +1379,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic a cikin watanni {0} - watan da ya gabata - watanni da suka gabata {0}} + wata {0} da ya gabata + watanni {0} da suka gabata @@ -1350,14 +1389,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic a cikin watan {0} - watan da ya gabata - watan da ya gabata {0} + wata {0} da ya gabata + watanni {0} da suka gabata - watan da ya gabata {0} - watan da ya gabata {0} + wata {0} da ya gabata + watanni {0} da suka gabata @@ -1370,25 +1409,21 @@ CLDR data files are interpreted according to the LDML specification (http://unic a cikin makonni {0} - mako da ya gabata {0} - makonni da suka gabata {0} + mako {0} da ya gabata + makonni {0} da suka gabata sati na {0} - - a cikin mako {0} - a cikin mako {0} - - mako da ya gabata {0} - mako da ya gabata {0} + mako {0} da ya gabata + makonni {0} da suka gabata - mako da suka gabata {0} - mako da ya gabata {0} + mako {0} da ya gabata + mako {0} da ya gabata @@ -1403,12 +1438,32 @@ CLDR data files are interpreted according to the LDML specification (http://unic yau gobe - a cikin rana {0} + a cikin kwanaki {0} a cikin kwanaki {0} - rana da ya gabata {0} - kwanaki da suka gabata {0} + kwana {0} da ya gabata + kwanaki {0} da suka gabata + + + + + a cikin kwanaki {0} + a cikin kwanaki {0} + + + kwana {0} da ya gabata + kwanaki {0} da suka gabata + + + + + a cikin kwanaki {0} + a cikin kwanaki {0} + + + kwana {0} da ya gabata + kwanaki {0} da suka gabata @@ -1425,31 +1480,74 @@ CLDR data files are interpreted according to the LDML specification (http://unic wanan Lahadi Lahadi mai zuwa - cikin {0} Lahadi - cikin {0} Lahadi + cikin Lahadi {0} + cikin Lahadi {0} + + + Lahadi {0} da ta gabata + Lahadi {0} da suka gabata + + + + + cikin Lahadi {0} + cikin Lahadi {0} + + + Lahadi {0} da ta gabata + Lahadi {0} da suka gabata + + + + Lahadin da ya gabata + wannan Lahadin + Lahadi mai zuwa + + cikin Lahadi {0} + cikin Lahadi {0} - {0} Lahadin da ta gabata - {0} Lahadin da ta gabata + Lahadi {0} da ta gabata + Lahadi {0} da suka gabata Litinin din da ta gabata wannan Litinin din - Litinin din da ya gabata + Litinin mai zuwa - cikin {0} Litinin - cikin {0} Litinin + cikin Litinin {0} + cikin Litinin {0} - {0} Litinin din da ta gabata - {0} Litinin din da ta gabata + Litinin {0} da ta gabata + Litinin {0} da suka gabata + + + + Litinin din da ta gabata + wannan Litinin din + Litinin mai zuwa + + cikin Litinin {0} + cikin Litinin {0} + + + Litinin {0} da ta gabata + Litinin {0} da suka gabata + Litinin din da ta gabata + wannan Litinin din + Litinin mai zuwa + + cikin Litinin {0} + cikin Litinin {0} + - {0} Litinin din da ta - {0} Litinin din da ta + Litinin {0} da ta gabata + Litinin {0} da suka gabata @@ -1457,12 +1555,32 @@ CLDR data files are interpreted according to the LDML specification (http://unic wannan Talata Talata mai zuwa - cikin {0} Talata - cikin {0} Talata + cikin Talata {0} + cikin Talata {0} - {0} Talatar da ta gabata - {0} Talatar da ta gabata + Talata {0} da ta gabata + Talata {0} da suka gabata + + + + + cikin Talata {0} + cikin Talata {0} + + + Talata {0} da ta gabata + Talata {0} da suka gabata + + + + + cikin Talata {0} + cikin Talata {0} + + + Talata {0} da ta gabata + Talata {0} da suka gabata @@ -1470,12 +1588,32 @@ CLDR data files are interpreted according to the LDML specification (http://unic wannan Larabar Laraba mai zuwa - cikin {0} Laraba - cikin {0} Laraba + cikin Laraba {0} + cikin Laraba {0} + + + Laraba {0} da ta gabata + Laraba {0} da suka gabata + + + + + cikin Laraba {0} + cikin Laraba {0} - {0} Laraba da ta gabata - {0} Laraba da ta gabata + Laraba {0} da ta gabata + Laraba {0} da suka gabata + + + + + cikin Laraba {0} + cikin Laraba {0} + + + Laraba {0} da ta gabata + Laraba {0} da suka gabata @@ -1483,12 +1621,32 @@ CLDR data files are interpreted according to the LDML specification (http://unic wannan Alhamis din Alhamis din mai zuwa - cikin {0} Alhamis - cikin {0} Alhamis + cikin Alhamis {0} + cikin Alhamis {0} - {0} Alhamis din da ya gabata - {0} Alhamis din da ya gabata + Alhamis {0} da ta gabata + Alhamis {0} da suka gabata + + + + + cikin Alhamis {0} + cikin Alhamis {0} + + + Alhamis {0} da ta gabata + Alhamis {0} da suka gabata + + + + + cikin Alhamis {0} + cikin Alhamis {0} + + + Alhamis {0} da ta gabata + Alhamis {0} da suka gabata @@ -1496,12 +1654,32 @@ CLDR data files are interpreted according to the LDML specification (http://unic wannan Jumaʼar Jumaʼa mai zuwa - cikin {0} Jumaʼa - cikin {0} Jumaʼa + cikin Jumaʼa {0} + cikin Jumaʼa {0} - {0} Jumaʼa da ta wuce - {0} Jumaʼa da ta wuce + Jumaʼa {0} da ta wuce + Jumaʼa {0} da suka wuce + + + + + cikin Jumaʼa {0} + cikin Jumaʼa {0} + + + Jumaʼa {0} da ta wuce + Jumaʼa {0} da suka wuce + + + + + cikin Jumaʼa {0} + cikin Jumaʼa {0} + + + Jumaʼa {0} da ta wuce + Jumaʼa {0} da suka wuce @@ -1509,12 +1687,32 @@ CLDR data files are interpreted according to the LDML specification (http://unic wannan Asabar din Asabar mai zuwa - cikin {0} Asabar - cikin {0} Asabar + cikin Asabar {0} + cikin Asabar {0} - {0} Asabar din da ya wuce - {0} Asabar din da ya wuce + Asabar {0} da ta wuce + Asabar {0} da ta wuce + + + + + cikin Asabar {0} + cikin Asabar {0} + + + Asabar {0} da ta wuce + Asabar {0} da suka wuce + + + + + cikin Asabar {0} + cikin Asabar {0} + + + Asabar {0} da ta wuce + Asabar {0} da suka wuce @@ -1524,36 +1722,96 @@ CLDR data files are interpreted according to the LDML specification (http://unic awa wannan awa - cikin {0} awa - cikin {0} awa + cikin awa {0} + cikin awanni {0} - {0} awa da ya gabata - {0} awa da ya gabata + awa {0} da ta gabata + awanni {0} da suka gabata + + + + + cikin awa {0} + cikin awanni {0} + + + awa {0} da ta gabata + awanni {0} da suka gabata + + + + + cikin awa {0} + cikin awanni {0} + + + awa {0} da ta gabata + awanni {0} da suka gabata minti wannan mintin - cikin {0} minti - cikin {0} minti + cikin minti {0} + cikin mintuna {0} + + + minti {0} da ya gabata + mintuna {0} da suka gabata + + + + + cikin minti {0} + cikin mintuna {0} + + + minti {0} da ya gabata + mintuna {0} da suka gabata + + + + + cikin minti {0} + cikin mintuna {0} - {0} minti da ya gabata - {0} minti da ya gabata + minti {0} da ya gabata + mintuna {0} da suka gabata daƙiƙa yanzu - cikin {0} dakika - cikin {0} dakika + cikin dakika {0} + cikin dakiku {0} + + + dakika {0} da ta gabata + dakiku {0} da suka gabata + + + + + cikin dakika {0} + cikin dakiku {0} + + + dakika {0} da ta gabata + dakiku {0} da suka gabata + + + + + cikin dakika {0} + cikin dakiku {0} - {0} dakika da ya gabata - {0} dakika da ya gabata + dakika {0} da ta gabata + dakiku {0} da suka gabata @@ -1608,7 +1866,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - South Africa Standard Time + Tsayayyen Lokacin Afirka ta Kudu @@ -1670,7 +1928,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Lokacin Arebiya - Arabian Standard Time + Tsayayyen lokacin Arebiya Lokacin Rana na Arebiya @@ -1704,7 +1962,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Central Australia Time + Lokacin Tsakiyar Australiya Tsayayyen Lokacin Tsakiyar Austiraliya Lokacin Rana na Tsakiyar Austiraliya @@ -1719,7 +1977,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Lokacin Gabashin Austiraliya - Australian Eastern Standard Time + Tsayayyen lokacin Gabashin Australia Lokacin Rana na Gabashin Austiraliya @@ -1753,7 +2011,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Bhutan Time + Lokacin Bhutan @@ -1776,7 +2034,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Lokacin Cape Verde - Cape Verde Standard Time + Tsayayyen lokacin Cape Verde Lokacin Bazara na Cape Verde @@ -1806,13 +2064,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Lokacin Rana na Sin - - - Lokacin Choibalsan - Tsayayyen Lokacin Choibalsan - Lokacin Bazara na Choibalsan - - Lokacin Christmas Island @@ -1935,7 +2186,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Lokacin Georgia Tsayayyen Lokacin Georgia - Georgia Summer Time + Lokacin Bazara na Georgia @@ -1945,7 +2196,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Lokacin Greenwhich a London + Lokacin Greenwich a Ingila @@ -1964,7 +2215,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Lokacin Golf + Tsayayyen lokacin Gulf @@ -1995,7 +2246,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - India Standard Time + Tsayayyen lokacin Indiya @@ -2015,7 +2266,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Eastern Indonesia Time + Lokacin Gabashin Indonesia @@ -2040,15 +2291,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic Lokacin Israʼila - Israel Standard Time - Israel Daylight Time + Tsayayyen lokacin Israʼila + Lokacin Hasken Rana na Israʼila Lokacin Japan - Japan Standard Time - Japan Daylight Time + Tsayayyen lokacin Japan + Lokacin Hasken Rana na Japan + + + + + Lokacin Kazakhstan @@ -2082,7 +2338,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Lokacin Kazakhstan + Lokacin Kyrgyzstan @@ -2364,7 +2620,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Tokelau Time + Lokacin Tokelau @@ -2383,7 +2639,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Lokacin Turkmenistan Tsayayyen Lokacin Turkmenistan - Turkmenistan Summer Time + Lokacin Bazara na Turkmenistan @@ -2468,6 +2724,25 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + . + , + % + + + - + ^ + x + + + + . + % + + + - + ^ + x + + @@ -2499,8 +2774,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic - 0D - 0D + 0K + 0K 00D 00D 000D @@ -2522,7 +2797,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ¤ 00D ¤ 00D ¤ 000K - ¤ 000D + ¤ 000K ¤0B ¤0B ¤0B @@ -2549,8 +2824,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ¤ 000T - {0} {1} - {0} {1} @@ -2625,8 +2898,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Boloviano na ƙasar Bolivia - boliviano na ƙasar Bolivia - Boloviano na ƙasar Bolivia Ril Kudin Birazil @@ -2663,8 +2934,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Peso na ƙasar Chile - peso na ƙasar Chile - Peso na ƙasar Chile Yuwan na ƙasar Sin (na wajen ƙasa) @@ -2676,13 +2945,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Peso na ƙasar Columbia - peso na ƙasar Columbia - Peso na ƙasar Columbia Colón na ƙasar Costa Rica - colón na ƙasar Costa Rica - colón na ƙasar Costa Rica Peso mai fuska biyu na ƙasar Kuba @@ -2773,8 +3038,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Dalar Guyana - dalar Guyana - Dalar Guyana Dalar Hong Kong @@ -2983,8 +3246,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Córdoba na ƙasar Nicaragua - córdoba na ƙasar Nicaragua - Córdoba na ƙasar Nicaragua Krone na ƙasar Norway @@ -3006,13 +3267,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Balboa na ƙasar Panama - balboa na ƙasar Panama - Balboa na ƙasar Panama Sol na ƙasar Peru - sol na ƙasar Peru - Sol na ƙasar Peru Kina na ƙasar Papua Sabon Guinea @@ -3021,8 +3278,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kuɗin Philippine - kuɗin Philippine - Kuɗin Philippine Rupee na ƙasar Pakistan @@ -3036,8 +3291,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Guarani na ƙasar Paraguay - guarani na ƙasar Paraguay - Guarani na ƙasar Paraguay Riyal ɗin Qatar @@ -3104,8 +3357,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Dalar ƙasar Suriname - dalar ƙasar Suriname - Dalar ƙasar Suriname Fam na Kudancin Sudan @@ -3177,8 +3428,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Dalar Amurka - Dalar Amirka - Dalar Amurka $ @@ -3193,8 +3442,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Bolívar na ƙasar Venezuela - bolívar na ƙasar Venezuela - Bolívar na ƙasar Venezuela Kuɗin Vietnam @@ -3294,7 +3541,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic deka{0} - hekta{0} + hekto{0} kilo{0} @@ -3335,7 +3582,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic meters per second squared {0} - revolution + revolutions revolution {0} revolutions {0} @@ -3693,7 +3940,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic hertz {0} - typographic em + typographic ems em {0} {0} ems @@ -3825,7 +4072,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic nautical miles {0} - mile-scandinavian + miles-scandinavian mile-scandinavian {0} miles-scandinavian {0} @@ -4022,7 +4269,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Digirin yanayi {0} - digiri-digiri {0} + digiri-digirin yanayi {0} digiri-digiri Selsiyas @@ -4040,7 +4287,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic kelvins {0} - pound-feet + pound-force-feet Pound-force-foot {0} pound-feet {0} @@ -4186,24 +4433,40 @@ CLDR data files are interpreted according to the LDML specification (http://unic ganguna {0} - dessert spoon + dessert spoons dessert spoon {0} - dessert spoon {0} + dessert spoons {0} - Imp. dessert spoon + Imp. dessert spoons Imp. dessert spoon {0} - Imp. dessert spoon {0} + Imp. dessert spoons {0} - dram + drams dram {0} - {0} dram + drams {0} - Imp. quart + Imp. quarts Imp. quart {0} - Imp. quart {0} + Imp. quarts {0} + + + haske + haske {0} + haske {0} + + + sashi a cikin biliyan + sashi {0} a cikin biliyan + sashi {0} a cikin biliyan + + + darare + dare {0} + darare {0} + dare {0} wurin fuskanta @@ -5051,6 +5314,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic qt Imp. {0} qt Imp. {0} + + hsk + hsk {0} + hsk {0} + + + sashi/biliyan + sashi {0} a cikin biliyan + sashi {0} a cikin biliyan + + + darare + dare {0} + darare {0} + dare {0} + G {0} A {0} @@ -5849,6 +6128,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic qt-Imp.{0} qt-Imp.{0} + + hsk + hsk {0} + hsk {0} + + + sashi/biliyan + sashi {0} a cikin biliyan + sashi {0} a cikin biliyan + + + darare + dare {0} + darare {0} + dare {0} + G{0} A{0} diff --git a/make/data/cldr/common/main/ha_NE.xml b/make/data/cldr/common/main/ha_NE.xml index 68391655af9..84ece09be99 100644 --- a/make/data/cldr/common/main/ha_NE.xml +++ b/make/data/cldr/common/main/ha_NE.xml @@ -11,11 +11,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - - - - [áàâ éèê íìî óòô p q {r̃} úùû v x {ʼy}] [A B Ɓ C D Ɗ E F G H I J K Ƙ L M N O P Q R S T U V W X Y Ƴ Z] diff --git a/make/data/cldr/common/main/he.xml b/make/data/cldr/common/main/he.xml index d64c80493ef..5a7011b729f 100644 --- a/make/data/cldr/common/main/he.xml +++ b/make/data/cldr/common/main/he.xml @@ -73,6 +73,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ביני קום סיקסיקה + אני במבארה בנגלית טיבטית @@ -129,7 +130,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ דרגווה טאיטה גרמנית - גרמנית (שוויץ) דלאוור סלאבית דוגריב @@ -169,7 +169,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ פארואזית פון צרפתית - צרפתית (שוויץ) צרפתית קייג׳ונית צרפתית תיכונה צרפתית עתיקה @@ -289,6 +288,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ קומי קורנית קוואקוואלה + קווי קירגיזית לטינית לדינו @@ -299,9 +299,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ לזגית גאנדה לימבורגית - ליגורית + ליגורית לילואט לקוטה + לומברדית לינגלה לאו מונגו @@ -495,6 +496,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ קומורית סירית קלאסית סורית + שלזית טמילית טצ׳ון דרומית טלוגו @@ -543,7 +545,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ אוזבקית וואי וונדה + ונציאנית וייטנאמית + מאקואה ‏וולאפיק ווטיק וונג׳ו @@ -557,6 +561,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ סינית וו קלמיקית קוסה + קאנגרי סוגה יאו יאפזית @@ -1225,7 +1230,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ לוח השנה ההודי הלאומי לוח שנה ההיג׳רי לוח השנה המוסלמי האזרחי - לוח השנה המוסלמי (ערב הסעודית) + לוח השנה המוסלמי (ערב הסעודית) לוח השנה המוסלמי האסטרונומי לוח השנה המוסלמי אום אל-קורא לוח שנה ISO-8601 @@ -1394,7 +1399,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -1764,8 +1769,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ חצות - לפנה״צ - אחה״צ בוקר צהריים אחר הצהריים @@ -1775,6 +1778,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ חצות + AM + PM בבוקר בצהריים אחה״צ @@ -1784,6 +1789,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ חצות + AM + PM בבוקר בצהריים אחר הצהריים @@ -1914,7 +1921,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ E H:mm E H:mm:ss y G - d/M/y GGGGG + d/M/y G MMM y G d בMMM y G E, d בMMM y G @@ -1952,19 +1959,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ M.y GGGGG – M.y GGGGG - M.y – M.y GGGGG - M.y – M.y GGGGG + M.y – M.y G + M.y – M.y G - d.M.y – d.M.y GGGGG - d.M.y GGGGG – d.M.y GGGGG - d.M.y – d.M.y GGGGG - d.M.y – d.M.y GGGGG + d.M.y – d.M.y G + d.M.y G – d.M.y G + d.M.y – d.M.y G + d.M.y – d.M.y G - E, d.M.y – E, d.M.y GGGGG - E, d.M.y GGGGG – E, d.M.y GGGGG - E, d.M.y – E, d.M.y GGGGG + E, d.M.y – E, d.M.y G + E, d.M.y G – E, d.M.y G + E, d.M.y – E, d.M.y G E, d.M.y – E, d.M.y GGGGG @@ -2457,13 +2464,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ בעוד שנה בעוד שנתיים - בעוד {0} שנה בעוד {0} שנים לפני שנה לפני שנתיים - לפני {0} שנה לפני {0} שנים @@ -2638,6 +2643,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ יום א׳ יום א׳ הבא + + + בעוד יום ראשון {0} + בעוד {0} ימי א׳ + בעוד {0} ימי ראשון + + יום שני שעבר יום שני @@ -2723,12 +2735,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ יום שישי יום שישי הבא - בעוד יום שישי {0} + בעוד יום שישי אחד {0} בעוד {0} ימי שישי בעוד {0} ימי שישי - לפני יום שישי {0} + לפני יום שישי אחד {0} לפני {0} ימי שישי לפני {0} ימי שישי @@ -2737,6 +2749,29 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ יום ו׳ שעבר יום ו׳ יום ו׳ הבא + + בעוד יום שישי אחד {0} + בעוד {0} ימי שישי + בעוד {0} ימי שישי + + + לפני יום שישי אחד {0} + לפני {0} ימי שישי + לפני {0} ימי שישי + + + + + בעוד יום ו׳ אחד {0} + בעוד {0} ימי ו׳ + בעוד {0} ימי ו׳ + בעוד {0} ימי ו׳ + + + לפני יום ו׳ אחד {0} + לפני {0} ימי שישי + לפני {0} ימי שישי + יום שבת שעבר @@ -2748,7 +2783,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ בעוד {0} שבתות - לפני שבת {0} + לפני שבת אחת {0} לפני {0} שבתות לפני {0} שבתות @@ -2757,6 +2792,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ שבת שעברה שבת שבת הבאה + + לפני שבת אחת {0} + לפני {0} שבתות + לפני {0} שבתות + + + + + לפני שבת אחת {0} + לפני {0} שבתות + לפני {0} שבתות + AM/PM @@ -2874,6 +2921,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ שעון {0} שעון {0} (קיץ) שעון {0} (חורף) + + הונולולו + זמן אוניברסלי מתואם @@ -3611,9 +3661,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ אולאן באטור - - צ׳ויבלסן - מקאו @@ -4013,9 +4060,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ נום - - הונולולו - אנקורג׳ @@ -4388,13 +4432,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ שעון סין (קיץ) - - - שעון צ׳ויבלסן - שעון צ׳ויבלסן (חורף) - שעון צ׳ויבלסן (קיץ) - - שעון האי כריסטמס @@ -4645,6 +4682,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ שעון קיץ פטרופבלובסק-קמצ׳טסקי + + + שעון קזחסטן + + שעון מזרח קזחסטן @@ -5271,10 +5313,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ 000T‏ - {0} {1} - {0} {1} - {0} {1} - {0} {1} @@ -5904,8 +5942,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ לירה טורקית חדשה לירה טורקית חדשה - לירות טורקיות חדשות - לירות טורקיות חדשות + לירות טורקיות + לירות טורקיות + לירות טורקיות דולר טרינידדי @@ -6139,7 +6178,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ feminine דקות קשת - דקת קשת {0} + {0} דקת קשת {0} דקות קשת {0} דקות קשת {0} דקות קשת @@ -6147,7 +6186,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ feminine שניות קשת - שניית קשת {0} + {0} שניית קשת {0} שניות קשת {0} שניות קשת {0} שניות קשת @@ -6155,7 +6194,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine קילומטר רבוע - קילומטר רבוע {0} + {0} קילומטר רבוע {0} קילומטר רבוע {0} קילומטר רבוע {0} קילומטר רבוע @@ -6163,7 +6202,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine - הקטאר {0} + {0} הקטאר {0} הקטאר {0} הקטאר {0} הקטאר @@ -6171,7 +6210,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine מטר רבוע - מטר רבוע {0} + {0} מטר רבוע {0} מטר רבוע {0} מטר רבוע {0} מטר רבוע @@ -6180,42 +6219,42 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine סנטימטר רבוע - סנטימטר רבוע {0} + {0} סנטימטר רבוע {0} סנטימטר רבוע {0} סנטימטר רבוע {0} סנטימטר רבוע {0} לסנטימטר רבוע - מייל רבוע {0} + {0} מייל רבוע {0} מייל רבוע {0} מייל רבוע {0} מייל רבוע {0} למייל רבוע - אקר {0} + {0} אקר {0} אקר {0} אקר {0} אקר יארד רבוע - יארד רבוע {0} + {0} יארד רבוע {0} יארד רבוע {0} יארד רבוע {0} יארד רבוע רגל רבועה - רגל רבועה {0} + {0} רגל רבועה {0} רגל רבועה {0} רגל רבועה {0} רגל רבועה אינץ׳ רבוע - אינץ׳ רבוע {0} + {0} אינץ׳ רבוע {0} אינץ׳ רבוע {0} אינץ׳ רבוע {0} אינץ׳ רבוע @@ -6224,12 +6263,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine קראט - קראט אחד + {0} קראט {0} קראט {0} קראט {0} קראט + masculine מיליגרם/דציליטר {0} מיליגרם/דציליטר {0} מיליגרם/דציליטר @@ -6275,7 +6315,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ feminine רבבית - רבבית {0} + {0} רבבית {0} רבביות {0} רבביות {0} רבביות @@ -6328,10 +6368,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine טרה-בייט - טרה-בייט {0} - טרה-בייט {0} - טרה-בייט {0} - טרה-בייט {0} + {0} טרה-בייט + {0} טרה-בייט + {0} טרה-בייט + {0} טרה-בייט masculine @@ -6352,15 +6392,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine ג׳יגה-ביט - {0} ג'יגה-ביט - {0} ג'יגה-ביט - {0} ג'יגה-ביט - {0} ג'יגה-ביט + {0} ג׳יגה-ביט + {0} ג׳יגה-ביט + {0} ג׳יגה-ביט + {0} ג׳יגה-ביט masculine מגה-בייט - מגה-בייט + {0} מגה-בייט {0} מגה-בייט {0} מגה-בייט {0} מגה-בייט @@ -6404,10 +6444,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ feminine - שנה - שנתיים - {0} שנים - ‏{0} לשנה + {0} לשנה masculine @@ -6418,21 +6455,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine - חודש + {0} חודש חודשיים {0} חודשים {0} חודשים - ‏{0} לחודש + {0} לחודש masculine - שבוע - שבועיים - {0} שבועות masculine - יום {0} + {0} יום יומיים {0} יום {0} ימים @@ -6443,7 +6477,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ feminine שעות - שעה + {0} שעה שעתיים {0} שעות {0} שעות @@ -6452,7 +6486,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ feminine דקות - דקה + {0} דקה שתי דקות {0} דקות {0} דקות @@ -6461,16 +6495,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ feminine שניות - שניה + {0} שניה שתי שניות - ‏{0} שניות + {0} שניות {0} שניות {0} לשניה feminine אלפיות השניה - אלפית שנייה {0} + {0} אלפית שנייה {0} אלפיות שנייה {0} אלפיות שנייה {0} אלפיות שנייה @@ -6493,7 +6527,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine אמפר - אמפר {0} + {0} אמפר {0} אמפר {0} אמפר {0} אמפר @@ -6501,7 +6535,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine מיליאמפר - מיליאמפר {0} + {0} מיליאמפר {0} מיליאמפר {0} מיליאמפר {0} מיליאמפר @@ -6515,14 +6549,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine - וולט {0} + {0} וולט {0} וולט {0} וולט {0} וולט + feminine קילו קלוריות - קילו קלוריה {0} + {0} קילו קלוריה {0} קילו קלוריות {0} קילו קלוריות {0} קילו קלוריות @@ -6530,21 +6565,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ feminine קלוריות - קלוריה {0} + {0} קלוריה {0} קלוריות {0} קלוריות {0} קלוריות קלוריות - קלוריה אחת - שתי קלוריות + {0} קלוריה + {0} קלוריות {0} קלוריות {0} קלוריות masculine - קילו ג׳אול {0} + {0} קילו ג׳אול {0} קילו ג׳אול {0} קילו ג׳אול {0} קילו ג׳אול @@ -6559,7 +6594,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine קילוואט־שעה - קילוואט־שעה {0} + {0} קילוואט־שעה {0} קילוואט-שעה {0} קילוואט-שעה {0} קילוואט-שעה @@ -6607,7 +6642,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine ג׳יגה-הרץ - ג׳יגה-הרץ {0} + {0} ג׳יגה-הרץ {0} ג׳יגה-הרץ {0} ג׳יגה-הרץ {0} ג׳יגה-הרץ @@ -6615,7 +6650,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine מגה-הרץ - מגה-הרץ {0} + {0} מגה-הרץ {0} מגה-הרץ {0} מגה-הרץ {0} מגה-הרץ @@ -6623,7 +6658,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine קילו-הרץ - קילו-הרץ {0} + {0} קילו-הרץ {0} קילו-הרץ {0} קילו-הרץ {0} קילו-הרץ @@ -6631,7 +6666,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine הרץ - הרץ {0} + {0} הרץ {0} הרץ {0} הרץ {0} הרץ @@ -6639,9 +6674,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine קו מפריד מסוג em - ‎{0} em ‎ - ‎{0} em ‎ - ‎{0} ems ‎ + {0} em + {0} em + {0} ems masculine @@ -6658,31 +6693,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ פיקסלים לאינץ׳ {0} פיקסל לאינץ' - ‎{0} ppi‎ + {0} פיקסלים לאינץ' + {0} פיקסלים לאינץ' {0} פיקסלים לאינץ' נקודות לסנטימטר - נקודה {0} לסנטימטר - ‎{0} נקודות לסנטימטר - ‎{0} נקודות לסנטימטר - {0} נקודות לסנטימטר - - - נקודות לאינץ׳ - {0} ppi - {0} ppi - ‎{0} dpi‎ נקודות קטנות - {0} נקודה - ‎{0} px ‎ - ‎{0} px ‎ רדיוס כדור-הארץ - רדיוס כדור-הארץ + {0} רדיוס כדור-הארץ {0} רדיוס כדור-הארץ {0} רדיוס כדור-הארץ {0} רדיוס כדור-הארץ @@ -6690,7 +6713,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine קילומטרים - קילומטר {0} + {0} קילומטר {0} קילומטרים {0} קילומטרים {0} קילומטרים @@ -6698,7 +6721,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine - מטר {0} + {0} מטר {0} מטרים {0} מטרים {0} מטרים @@ -6707,7 +6730,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine דצימטר - דצימטר אחד + {0} דצימטר {0} דצימטרים {0} דצימטרים {0} דצימטרים @@ -6715,7 +6738,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine סנטימטרים - סנטימטר {0} + {0} סנטימטר {0} סנטימטרים {0} סנטימטרים {0} סנטימטרים @@ -6724,7 +6747,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine מילימטרים - מילימטר {0} + {0} מילימטר {0} מילימטרים {0} מילימטרים {0} מילימטרים @@ -6732,7 +6755,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine מיקרומטרים - מיקרומטר {0} + {0} מיקרומטר {0} מיקרומטרים {0} מיקרומטרים {0} מיקרומטרים @@ -6740,7 +6763,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine ננומטרים - ננומטר {0} + {0} ננומטר {0} ננומטרים {0} ננומטרים {0} ננומטרים @@ -6748,25 +6771,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine פיקומטרים - פיקומטר {0} + {0} פיקומטר {0} פיקומטרים {0} פיקומטרים {0} פיקומטרים - - מייל {0} - {0} מייל - {0} מייל - - רגל {0} + {0} רגל {0} רגל {0} רגל {0} רגל {0} לרגל - אינץ׳ {0} + {0} אינץ׳ {0} אינץ׳ {0} אינץ׳ {0} אינץ׳ @@ -6781,7 +6799,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ יחידות אסטרונומיות - יחידה אסטרונומית {0} + {0} יחידה אסטרונומית {0} יחידות אסטרונומיות {0} יחידות אסטרונומיות {0} יחידות אסטרונומיות @@ -6802,7 +6820,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ מייל ימי - מייל ימי {0} + {0} מייל ימי {0} מייל ימי {0} מייל ימי {0} מייל ימי @@ -6810,14 +6828,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine מייל-סקנדינביה - מייל-סקנדינביה {0} + {0} מייל-סקנדינביה {0} מייל-סקנדינביה {0} מייל-סקנדינביה {0} מייל-סקנדינביה - נקודה - {0} נק' + feminine + {0} נקודה + {0} נקודות + {0} נקודות {0} נקודות @@ -6830,7 +6850,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine לוקס - לוקס אחד + {0} לוקס {0} לוקס {0} לוקס {0} לוקס @@ -6838,7 +6858,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ feminine קנדלה - קנדלה + {0} קנדלה {0} קנדלה {0} קנדלה {0} קנדלה @@ -6846,7 +6866,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine לומן - לומן {0} + {0} לומן {0} לומן {0} לומן {0} לומן @@ -6857,15 +6877,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine טון מטרי - טון מטרי אחד - שני טון מטרי + {0} טון מטרי + {0} טון מטרי {0} טון מטרי {0} טון מטרי masculine קילוגרם - קילוגרם {0} + {0} קילוגרם {0} קילוגרם {0} קילוגרם {0} קילוגרם @@ -6873,7 +6893,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine - גרם {0} + {0} גרם {0} גרם {0} גרם {0} גרם @@ -6882,36 +6902,36 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine מיליגרם - מיליגרם אחד - שני מיליגרם + {0} מיליגרם + {0} מיליגרם {0} מיליגרם {0} מיליגרם masculine מיקרוגרם - מיקרוגרם אחד - שני מיקרוגרם + {0} מיקרוגרם + {0} מיקרוגרם {0} מיקרוגרם {0} מיקרוגרם טונות - טונה אחת - שתי טונות + {0} טונה + {0} טונות {0} טונות {0} טונות - פאונד אחד - שני פאונד + {0} פאונד + {0} פאונד {0} פאונד {0} פאונד {0}/פאונד אונקיות - אונקיה {0} + {0} אונקיה {0} אונקיות {0} אונקיות {0} אונקיות @@ -6919,15 +6939,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ אונקיות טרוי - אונקיית טרוי אחת - שתי אונקיות טרוי + {0} אונקיית טרוי + {0} אונקיות טרוי {0} אונקיות טרוי {0} אונקיות טרוי masculine - קרט אחד - שני קרט + {0} קרט + {0} קרט {0} קרט {0} קרט @@ -6943,7 +6963,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} מסת כדור הארץ {0} מסות כדור הארץ {0} מסות כדור הארץ - {0} M⊕ + {0} מסות כדור הארץ מסת השמש @@ -6955,7 +6975,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine ג׳יגה ואט - ג׳יגה ואט {0} + {0} ג׳יגה ואט {0} ג׳יגה ואט {0} ג׳יגה ואט {0} ג׳יגה ואט @@ -6963,7 +6983,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine מגה ואט - מגה ואט {0} + {0} מגה ואט {0} מגה ואט {0} מגה ואט {0} מגה ואט @@ -6971,14 +6991,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine קילוואט - קילוואט {0} + {0} קילוואט {0} קילוואט {0} קילוואט {0} קילוואט masculine - ואט {0} + {0} ואט {0} ואט {0} ואט {0} ואט @@ -6986,35 +7006,36 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine מיליוואט - מיליוואט {0} + {0} מיליוואט {0} מיליוואט {0} מיליוואט {0} מיליוואט כוח סוס - כוח סוס {0} + {0} כוח סוס {0} כוח סוס {0} כוח סוס {0} כוח סוס + masculine מילימטר כספית - מילימטר כספית אחד - שני מילימטר כספית + {0} מילימטר כספית + {0} מילימטר כספית {0} מילימטר כספית {0} מילימטר כספית פאונד לאינץ׳ רבוע - פאונד אחד לאינץ׳ רבוע - שני פאונד לאינץ׳ רבוע + פאונד {0} לאינץ׳ רבוע + {0} פאונד לאינץ׳ רבוע {0} פאונד לאינץ׳ רבוע {0} פאונד לאינץ׳ רבוע אינץ׳ כספית - אינץ׳ כספית {0} + {0} אינץ׳ כספית {0} אינץ׳ כספית {0} אינץ׳ כספית {0} אינץ׳ כספית @@ -7049,7 +7070,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine הקטופסקל - הקטופסקל {0} + {0} הקטופסקל {0} הקטופסקל {0} הקטופסקל {0} הקטופסקל @@ -7095,31 +7116,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ קשר - קשר אחד - שני קשר + {0} קשר + {0} קשר {0} קשר {0} קשר בופורט - בופורט {0} - B {0} - בופורט {0} + {0} בופורט + {0} בופורט + {0} בופורט feminine + מעלת טמפרטורה feminine מעלות צלזיוס - מעלת צלזיוס {0} + {0} מעלת צלזיוס {0} מעלות צלזיוס {0} מעלות צלזיוס {0} מעלות צלזיוס מעלות פרנהייט - מעלת פרנהייט {0} + {0} מעלת פרנהייט {0} מעלות פרנהייט {0} מעלות פרנהייט {0} מעלות פרנהייט @@ -7127,7 +7149,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ feminine מעלות קלווין - קלווין {0} + {0} קלווין {0} קלווין {0} קלווין {0} קלווין @@ -7150,7 +7172,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine קילומטר מעוקב - קילומטר מעוקב {0} + {0} קילומטר מעוקב {0} קילומטר מעוקב {0} קילומטר מעוקב {0} קילומטר מעוקב @@ -7158,7 +7180,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine מטר מעוקב - מטר מעוקב {0} + {0} מטר מעוקב {0} מטר מעוקב {0} מטר מעוקב {0} מטר מעוקב @@ -7167,7 +7189,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine סנטימטר מעוקב - סנטימטר מעוקב {0} + {0} סנטימטר מעוקב {0} סנטימטר מעוקב {0} סנטימטר מעוקב {0} סנטימטר מעוקב @@ -7175,7 +7197,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ מייל מעוקב - מייל מעוקב {0} + {0} מייל מעוקב {0} מייל מעוקב {0} מייל מעוקב {0} מייל מעוקב @@ -7189,14 +7211,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ רגל מעוקב - רגל מעוקב {0} + {0} רגל מעוקב {0} רגל מעוקב {0} רגל מעוקב {0} רגל מעוקב אינץ׳ מעוקב - אינץ׳ מעוקב {0} + {0} אינץ׳ מעוקב {0} אינץ׳ מעוקב {0} אינץ׳ מעוקב {0} אינץ׳ מעוקב @@ -7204,7 +7226,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine מגה ליטר - מגה ליטר {0} + {0} מגה ליטר {0} מגה ליטר {0} מגה ליטר {0} מגה ליטר @@ -7212,14 +7234,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine הקטוליטר - הקטוליטר {0} + {0} הקטוליטר {0} הקטוליטר {0} הקטוליטר {0} הקטוליטר masculine - ליטר {0} + {0} ליטר {0} ליטר {0} ליטר {0} ליטר @@ -7228,7 +7250,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine דציליטר - דציליטר {0} + {0} דציליטר {0} דציליטר {0} דציליטר {0} דציליטר @@ -7236,7 +7258,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine סנטיליטר - סנטיליטר {0} + {0} סנטיליטר {0} סנטיליטר {0} סנטיליטר {0} סנטיליטר @@ -7244,7 +7266,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine מיליליטר - מיליליטר {0} + {0} מיליליטר {0} מיליליטר {0} מיליליטר {0} מיליליטר @@ -7252,7 +7274,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine פינט מטרי - פינט מטרי {0} + {0} פינט מטרי {0} פינט מטרי {0} פינט מטרי {0} פינט מטרי @@ -7260,14 +7282,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ feminine כוס מידה מטרית - כוס מידה מטרית {0} + {0} כוס מידה מטרית {0} כ׳ מידה מטרית {0} כ׳ מידה מטרית {0} כ׳ מידה מטרית אקר-רגל - אקר-רגל {0} + {0} אקר-רגל {0} אקר-רגל {0} אקר-רגל {0} אקר-רגל @@ -7280,7 +7302,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} בושל - גלון {0} + {0} גלון {0} גלונים {0} גלונים {0} גלונים @@ -7288,7 +7310,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ גלון אימפריאלי - גלון אימפריאלי {0} + {0} גלון אימפריאלי {0} גלון אימפריאלי {0} גלון אימפריאלי {0} גלון אימפריאלי @@ -7296,26 +7318,26 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ קווארטות - קווארטה {0} + {0} קווארטה {0} קווארטות {0} קווארטות {0} קווארטות - פינט {0} + {0} פינט {0} פינט {0} פינט {0} פינט - כוס {0} + {0} כוס {0} כוסות {0} כוסות {0} כוסות אונקיות נוזלים - אונקיית נוזלים {0} + {0} אונקיית נוזלים {0} אונקיות נוזלים {0} אונקיות נוזלים {0} אונקיות נוזלים @@ -7328,14 +7350,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} אונקיית נוזלים אימפריאלית - כף אחת - שתי כפות + {0} כפ׳ + {0} כפות {0} כפות {0} כפות כפיות - כפית {0} + {0} כפית {0} כפיות {0} כפיות {0} כפיות @@ -7349,44 +7371,69 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ כפית קינוחים - כפית קינוחים + {0} כפית קינוחים {0} כפיות קינוחים {0} כפיות קינוחים {0} כפיות קינוחים כפית קינוחים בארה״ב - כפית קינוחים בארה״ב + {0} כפית קינוחים בארה״ב {0} כפיות קינוחים בארה"ב {0} כפיות קינוחים בארה"ב {0} כפיות קינוחים בארה"ב + + טיפות + דראם אלכוהול - דראם אלכוהול {0} + {0} דראם אלכוהול {0} דראם אלכוהול {0} דראם אלכוהול {0} דראם אלכוהול ג׳יגר - ג'יגר {0} + {0} ג׳יגר {0} ג'יגר {0} ג'יגר {0} ג'יגר - פינץ' {0} + {0} פינץ׳ {0} פינץ' {0} פינץ' קווארט אימפריאלי - קווארט אימפריאלי {0} + {0} קווארט אימפריאלי {0} קווארטות אימפריאליות {0} קווארטות אימפריאליות {0} קווארטות אימפריאליות + + masculine + אור + {0} אור + {0} אור + {0} אור + + + masculine + חלקים למיליארד + {0} חלקים למיליארד + {0} חלקים למיליארד + {0} חלקים למיליארד + + + masculine + לילות + {0} לילה + {0} לילות + {0} לילות + {0}/לילה + רוחות השמיים {0} מזרח @@ -7479,13 +7526,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ דק׳ קשת - ד׳ קשת {0} + {0} ד׳ קשת {0} דק׳ קשת {0} דק׳ קשת שנ׳ קשת - שנ׳ קשת {0} + {0} שנ׳ קשת {0} שנ׳ קשת {0} שנ׳ קשת @@ -7498,13 +7545,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ הקטאר - ‎{0} ha - ‎{0} ha - ‎{0} ha + {0} ha + {0} ha + {0} ha מ״ר - מ״ר {0} + {0} מ״ר {0} מ״ר {0} מ״ר {0}/מ״ר @@ -7518,33 +7565,33 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ מייל רבוע - ‎{0} sq mi - ‎{0} sq mi - ‎{0} sq mi - ‎{0}/mi² + {0} sq mi + {0} sq mi + {0} sq mi + {0}/mi² אקר - ‎{0} ac - {0} ac - ‎{0} ac + {0} אקר + {0} אקר + {0} אקר yards² - ‎{0} yd² - ‎{0} yd² - ‎{0} yd² + {0} yd² + {0} yd² + {0} yd² - ‎{0} sq ft - ‎{0} sq ft - ‎{0} sq ft + {0} sq ft + {0} sq ft + {0} sq ft - ‎{0} in² - ‎{0} in² - ‎{0} in² - ‎{0}/in² + {0} in² + {0} in² + {0} in² + {0}/in² דונם @@ -7552,9 +7599,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} דונם {0} דונם + + {0} kt + {0} kt + {0} kt + + + {0} mg/dL + {0} mg/dL + {0} mg/dL + פריט - פריט {0} + {0} פריט {0} פריטים {0} פריטים @@ -7566,7 +7623,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ל׳/100 ק״מ - ל׳ {0}/100 ק״מ + {0} ל׳/100 ק״מ {0} ל׳/100 ק״מ {0} ל׳/100 ק״מ @@ -7599,19 +7656,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ מאות - מאה {0} + {0} מאה {0} מאות {0} מאות עשור - עשור {0} + {0} עשור {0} עשורים {0} עשורים שנים - שנה {0} + {0} שנה {0} שנים {0} שנים {0}/שנה @@ -7621,43 +7678,43 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ חודשים - חודש - חודשיים + {0} ח׳ + {0} ח׳ {0} ח׳ {0}/חודש שבועות - שבוע {0} + {0} שבוע שבועיים {0} שבועות {0}/שבוע ימים - יום + {0} יום יומיים {0} ימ׳ {0}/יום שע׳ - שעה + {0} שעה שעתיים {0} שע׳ {0}/שעה דק׳ - דקה - שתי דק׳ + {0} דק׳ + {0} דק׳ {0} דק׳ {0}/ד׳ שנ׳ - שנ׳ - שתי שנ׳ + {0} שנ׳ + {0} שנ׳ {0} שנ׳ {0}/שנ׳ @@ -7678,8 +7735,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ קלו׳ - קלו׳ אחת - שתי קלו׳ + {0} קלו׳ + {0} קלו׳ {0} קלו׳ {0} קלו׳ @@ -7700,40 +7757,41 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ קוט״ש/100 ק״מ - {0} קוט"ש/100 ק"מ - {0} קוט"ש/100 ק"מ - {0} קוט"ש/100 ק"מ + {0} קוט״ש/100 ק״מ + {0} קוט״ש/100 ק״מ + {0} קוט״ש/100 ק״מ + {0} קוט״ש/100 ק״מ - ‎{0} em ‎ - ‎{0} em ‎ - ‎{0} em ‎ + {0} em + {0} em + {0} em - ‎{0} px ‎ - ‎{0} px ‎ - ‎{0} px ‎ + {0} px + {0} px + {0} px - ‎{0} MP ‎ - ‎{0} MP ‎ - ‎{0} MP ‎ + {0} MP + {0} MP + {0} MP - ‎{0} ppcm‎ - ‎{0} ppcm‎ - ‎{0} ppcm‎ + {0} ppcm + {0} ppcm + {0} ppcm - ‎{0} ppi‎ - ‎{0} ppi‎ - ‎{0} ppi‎ + {0} ppi + {0} ppi + {0} ppi - נקודות לאינץ׳ - {0} dpi - ‎{0} ppi‎ - ‎{0} dpi‎ + dpi + {0} ppi + {0} ppi + {0} dpi נקודה קטנה @@ -7767,24 +7825,24 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ מ״מ - מ″מ {0} + {0} מ″מ {0} מ״מ {0} מ״מ - ‎{0} μm‎ - ‎{0} μm‎ - ‎{0} μm‎ + {0} μm + {0} μm + {0} μm - ‎{0} nm - ‎{0} nm - ‎{0} nm + {0} nm + {0} nm + {0} nm פ״מ - פ“מ {0} - {0} פ"מ + {0} פ“מ + {0} פ״מ {0} פ"מ @@ -7795,39 +7853,39 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ יארד - יארד {0} + {0} יארד {0} יארד {0} יארד רגל - ‎{0} ft - ‎{0} ft - ‎{0} ft - ‎{0}/ft + {0} ft + {0} ft + {0} ft + {0} ‎/ft אינץ׳ - ‎{0} in - ‎{0} in - ‎{0} in - ‎{0}/in + {0} in + {0} in + {0} in + {0} ‎/in - ‎{0} pc - ‎{0} pc - ‎{0} pc + {0} pc + {0} pc + {0} pc שנות אור - שנת אור {0} + {0} שנת אור {0} שנות אור {0} שנות אור - ‎{0} au - ‎{0} au - ‎{0} au + {0} au + {0} au + {0} au מ״י @@ -7837,33 +7895,34 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ נקודות - {0} נק' - {0} נק' + {0} נק׳ + {0} נק׳ {0} נק' - ‎{0} R☉‎ - ‎{0} R☉‎ - ‎{0} R☉‎ + {0} R☉‎ + {0} R☉‎ + {0} R☉‎ lux + טון מ׳ {0} טון מ׳ {0} טון מ׳ {0} טון מ׳ ק״ג - ק״ג {0} + {0} ק״ג {0} ק״ג {0} ק״ג {0}/ק״ג גרם - גר׳ {0} + {0} גר׳ {0} גר׳ {0} גר׳ {0}/גר׳ @@ -7882,13 +7941,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ טונה - ט׳ {0} + {0} ט׳ {0} ט׳ {0} ט׳ סטון - סטון {0} + {0} סטון {0} סטון {0} סטון @@ -7903,7 +7962,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ גרעין - גרעין {0} + {0} גרעין {0} גרעינים {0} גרעינים @@ -7912,7 +7971,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ כ״ס - כ״ס {0} + {0} כ״ס {0} כ״ס {0} כ״ס @@ -7945,14 +8004,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ קמ״ק - קמ״ק {0} + {0} קמ״ק {0} קמ״ק {0} קמ״ק - ‎{0} m³ - ‎{0} m³ - ‎{0} m³ + {0} m³ + {0} m³ + {0} m³ סמ״ק @@ -7962,39 +8021,39 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}/סמ״ק - ‎{0} mi³ - ‎{0} mi³ - ‎{0} mi³ + {0} mi³ + {0} mi³ + {0} mi³ - ‎{0} yd³ - ‎{0} yd³ - ‎{0} yd³ + {0} yd³ + {0} yd³ + {0} yd³ feet³ - ‎{0} ft³ - ‎{0} ft³ - ‎{0} ft³ + {0} ft³ + {0} ft³ + {0} ft³ - ‎{0} in³ - ‎{0} in³ - ‎{0} in³ + {0} in³ + {0} in³ + {0} in³ - ‎{0} ML - ‎{0} ML - ‎{0} ML + {0} ML + {0} ML + {0} ML - ‎{0} hL - ‎{0} hL - ‎{0} hL + {0} hL + {0} hL + {0} hL ליטר - ל׳ {0} + {0} ל׳ {0} ל׳ {0} ל׳ {0}/ל׳ @@ -8006,30 +8065,30 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} דצ״ל - ‎{0} cL - ‎{0} cL - ‎{0} cL + {0} cL + {0} cL + {0} cL מ״ל - מ״ל {0} + {0} מ״ל {0} מ״ל {0} מ״ל - ‎{0} mpt - ‎{0} mpt - ‎{0} mpt + {0} mpt + {0} mpt + {0} mpt - ‎{0} mc - ‎{0} mc - ‎{0} mc + {0} mc + {0} mc + {0} mc - ‎{0} ac ft - ‎{0} ac ft - ‎{0} ac ft + {0} ac ft + {0} ac ft + {0} ac ft גלון @@ -8047,32 +8106,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ qts - ‎{0} qt - ‎{0} qt - ‎{0} qt + {0} qt + {0} qt + {0} qt פינט - ‎{0} pt - ‎{0} pt - ‎{0} pt + {0} pt + {0} pt + {0} pt כוסות - כ׳ {0} + {0} כ׳ {0} כ׳ {0} כ׳ fl oz - ‎{0} fl oz - ‎{0} fl oz - ‎{0} fl oz + {0} fl oz + {0} fl oz + {0} fl oz - ‎{0} fl oz Imp.‎ - ‎{0} fl oz Imp.‎ - ‎{0} fl oz Imp.‎ + {0} fl oz Imp. + {0} fl oz Imp. + {0} fl oz Imp. כפות @@ -8087,9 +8146,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} כפי׳ - ‎{0} bbl - ‎{0} bbl - ‎{0} bbl + {0} bbl + {0} bbl + {0} bbl טיפה @@ -8103,6 +8162,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} פינץ' {0} פינץ' + + אור + {0} אור + {0} אור + {0} אור + + + לילות + {0} לילה + {0} לילות + {0} לילות + {0}/לילה + כיוון {0} מז׳ @@ -8119,48 +8191,24 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ קווטא{0} - דקה {0} + {0} דקה {0} דקות {0} דקות {0} דקות - שנ׳ {0} + {0} שנ׳ {0} שנ׳ {0} שנ׳ {0} שנ׳ - קמ״ר {0} + {0} קמ״ר {0} קמ״ר {0} קמ״ר - - הקטאר {0} - {0} הקטאר - {0} הקטאר - {0} הקטאר - - - מייל רבוע {0} - {0} מייל רבוע - {0} מייל רבוע - {0} מייל רבוע - - - אקר {0} - {0} אקר - {0} אקר - {0} אקר - - - רגל רבועה {0} - {0} רגל רבועה - {0} רגל רבועה - {0} רגל רבועה - - פריט {0} + {0} פריט {0} פר' {0} פר' {0} פר' @@ -8172,161 +8220,61 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}ל׳/100ק״מ {0}ל׳/100ק״מ - - ג״ב - {0} ג״ב - {0} ג״ב - {0} ג״ב - {0} ג״ב - - - {0} מ״ב - {0} מ״ב - {0} מ״ב - {0} מ״ב - - - ק״ב - ק״ב {0} - {0} ק״ב - {0} ק״ב - {0} ק״ב - ש׳ - ש′ {0} + {0} ש′ {0} ש′ {0} ש′ {0} ש′ ח׳ - ח׳ {0} - {0} ח׳ - {0} ח׳ שבוע - ש′ {0} + {0} ש′ {0} ש′ {0} ש′ {0} ש′ + {0}/שב׳ יום - י׳ + {0} י׳ {0} י׳ {0} י׳ {0} י׳ - שעה {0} + {0} שע׳ {0} שע׳ {0} שע׳ + {0}/שע׳ - - שניה - שתי שנ׳ - {0} שנ׳ + + ns קל׳ - {0} קלו׳ - {0} קלו׳ - {0} קלו׳ kWh/100km {0} kWh/100km - {0} קוט"ש/100 ק"מ + {0} kWh/100km {0} kWh/100km {0} kWh - - ‎{0} ppcm‎ - ‎{0} ppcm‎ - ‎{0} נק׳ ס״מ - - - {0} dpi - {0} ppi - {0} ppi - ‎{0} dpi‎ - נקודה מטר - {0} מ׳ - {0} מ′ - {0} מ׳ - - - ס"מ {0} - {0} ס״מ - {0} ס״מ - - - מ״מ {0} - {0} מ״מ - {0} מ״מ - - - {0} μm - {0} μm - {0} μm - {0} μm - - - {0} nm - {0} nm - {0} nm - {0} nm - - - פיקומטר {0} - {0} פיקומטר - {0} פיקומטר - {0} פיקומטר - - - מייל {0} - {0} מייל - {0} מייל - - - רגל {0} - {0} רגל - {0} רגל - {0} רגל - {0}/רגל - אינץ׳ {0} - {0} אינץ׳ - {0} אינץ׳ - {0} אינץ׳ - {0}/אינץ׳ - - - {0} pc - {0} pc - {0} pc - {0} pc - - - {0} au - {0} au - {0} au - {0} au + in נק׳ - נק׳ {0} - {0} נק׳ - {0} נק׳ - {0} נק' {0} t @@ -8346,47 +8294,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}g {0}g - - מק״ג {0} - {0} מק״ג - {0} מק״ג - lb מ״ב - מיליבר {0} - {0} מיליבר - {0} מיליבר - {0} מיליבר - - - {0} מ/ש - {0} מ/ש - {0} מ/ש - {0} מ/ש + {0} מ″ב + {0} מ″ב + {0} מ″ב + {0} מ″ב - B{0} - B {0} - B{0} - - - {0} קמ״ק - {0} קמ״ק - {0} קמ״ק - - - {0} mi³ - {0} mi³ - {0} mi³ - {0} mi³ - - - {0} ל׳ - {0} ל׳ - {0} ל׳ + {0} B + {0} B + {0} B {0}/galIm @@ -8398,7 +8319,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}dsp-Imp {0}dsp-Imp - {0} dstspn + {0}dsp-Imp {0}dsp-Imp diff --git a/make/data/cldr/common/main/hi.xml b/make/data/cldr/common/main/hi.xml index 33facd56c3b..9ce32233943 100644 --- a/make/data/cldr/common/main/hi.xml +++ b/make/data/cldr/common/main/hi.xml @@ -58,6 +58,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ बेलारूसी बेजा बेम्बा + बेतावी बेना बुल्गारियाई हरियाणवी @@ -67,6 +68,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ बिकोल बिनी सिक्सिका + अनी बाम्बारा बंगाली तिब्बती @@ -74,6 +76,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ब्रज बोडो बोस्नियाई + अकूसे बुरियात बगिनीस ब्लिन @@ -96,6 +99,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ शिपेव्यान चेरोकी शेयेन्न + चिकसॉ सोरानी कुर्दिश कुर्दी, सोरानी चिलकोटिन @@ -211,6 +215,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ हिलिगेनन हिताइत ह्मॉंग + हमोंग नजुआ हिरी मोटू क्रोएशियाई ऊपरी सॉर्बियन @@ -287,6 +292,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ कोमी कोर्निश क्वॉकवाला + कुवी किर्गीज़ लैटिन लादीनो @@ -297,10 +303,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ लेज़्घीयन गांडा लिंबर्गिश - लिगुरियन + लिगुरियन लिलोएट लैकोटा - लॉमबर्ड + लॉमबर्ड लिंगाला लाओ मोंगो @@ -491,6 +497,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ कोमोरियन क्लासिकल सिरिएक सिरिएक + सायलिज़ियन तमिल दक्षिणी टशोनी तेलुगू @@ -539,7 +546,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ उज़्बेक वाई वेन्दा + वनीशन वियतनामी + मखुवा वोलापुक वॉटिक वुंजो @@ -553,6 +562,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ वू चीनी काल्मिक ख़ोसा + कांगड़ी सोगा याओ यापीस @@ -1213,7 +1223,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2533,6 +2543,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} समय {0} डेलाइट समय {0} मानक समय + + + एचएसटी + एचएसटी + HST + + होनोलुलु + समन्वित वैश्विक समय @@ -3270,9 +3288,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ उलानबातर - - चोइबालसन - मकाऊ @@ -3672,14 +3687,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ नोम - - - एचएसटी - एचएसटी - HST - - होनोलुलु - एंकरेज @@ -4031,13 +4038,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ चीन डेलाइट समय - - - कॉइबाल्सन समय - कॉइबाल्सन मानक समय - कॉइबाल्सन ग्रीष्मकालीन समय - - क्रिसमस द्वीप समय @@ -4286,6 +4286,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ पेट्रोपेवलास्क-कैमचात्सकी ग्रीष्मकालीन समय + + + कज़ाखस्तान समय + + पूर्व कज़ाखस्तान समय @@ -4851,8 +4856,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤¤ {0} - {0} {1} - {0} {1} @@ -5688,9 +5691,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} कैरट + masculine मिलिग्राम प्रति डेसीलीटर {0} मिलिग्राम प्रति डेसीलीटर + {0} मिलिग्राम प्रति डेसीलीटर {0} मिलिग्राम प्रति डेसीलीटर + {0} मिलिग्राम प्रति डेसीलीटर masculine @@ -6227,6 +6233,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} मील-स्कैण्डिनेवियन {0} मील-स्कैण्डिनेवियन + + masculine + masculine सौर अर्धव्यास @@ -6397,9 +6406,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} अश्वशक्ति + feminine मर्क्यूरी मिलीमीटर {0} मर्क्यूरी मिलीमीटर + {0} मर्क्यूरी मिलीमीटर {0} मर्क्यूरी मिलीमीटर + {0} मर्क्यूरी मिलीमीटर पाउंड प्रति वर्ग इंच @@ -6715,6 +6727,31 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} क्वार्ट इम्पीरियल {0} क्वार्ट इम्पीरियल + + feminine + लाइट + {0} लाइट + {0} लाइट + {0} लाइट + {0} लाइट + + + masculine + पार्ट्स प्रति बिलियन + {0} पार्ट प्रति बिलियन + {0} पार्ट प्रति बिलियन + {0} पार्ट्स प्रति बिलियन + {0} पार्ट्स प्रति बिलियन + + + feminine + रातें + {0} रात + {0} रात + {0} रातें + {0} रातें + {0} प्रति रात + प्रधान दिशा @@ -7499,6 +7536,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} क. इम्पी. {0} क. इम्पी. + + लाइट + {0} लाइट + {0} लाइट + + + पार्ट्स/बिलियन + + + रातें + {0} रात + {0} रातें + {0}/रात + दिशा @@ -7995,6 +8046,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} qt-Imp. {0} qt-Imp. + + लाइट + {0} लाइट + {0} लाइट + + + रातें + {0}रात + {0}रातें + {0}/रात + diff --git a/make/data/cldr/common/main/hi_Latn.xml b/make/data/cldr/common/main/hi_Latn.xml index 935ec8e26b2..32be9e66a96 100644 --- a/make/data/cldr/common/main/hi_Latn.xml +++ b/make/data/cldr/common/main/hi_Latn.xml @@ -168,7 +168,7 @@ annotations. - EEEE d MMMM, y G + EEEE, d MMMM y G @@ -396,7 +396,7 @@ annotations. - EEEE d MMMM, y + EEEE, d MMMM y @@ -470,6 +470,7 @@ annotations. G y MMM G y, d MMM G y, dd MMM, E + G y, dd MMMM, E MMMM 'kaa' 'week' W MMMM 'kaa' 'week' W d MMM, y @@ -1174,6 +1175,12 @@ annotations. + + + HST + + Honolulu + DumontDUrville @@ -1234,12 +1241,6 @@ annotations. Sao Tome - - - HST - - Honolulu - Saigon @@ -1397,12 +1398,17 @@ annotations. {0} dot per centimeter {0} dots per centimeter - - micrometres - Scandinavian miles + + {0} metric ton + {0} tonnes + + + {0} tonne + {0} tons + stones {0} stone diff --git a/make/data/cldr/common/main/hr.xml b/make/data/cldr/common/main/hr.xml index f028c3424bf..fe18649d5ea 100644 --- a/make/data/cldr/common/main/hr.xml +++ b/make/data/cldr/common/main/hr.xml @@ -64,7 +64,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bena bafut bugarski - haryanvi + haryanvi zapadnobaludžijski bhojpuri bislama @@ -72,6 +72,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bini kom siksika + anii bambara bangla tibetski @@ -301,6 +302,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komi kornski kwakʼwala + kuvi kirgiski latinski ladino @@ -311,8 +313,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lezgiški ganda limburški + ligurski lillooet lakota + lombardski lingala laoski mongo @@ -325,7 +329,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ luba-lulua luiseno lunda - luo lushai luyia latvijski @@ -508,6 +511,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komorski klasični sirski sirijski + šleski tamilski južni tutchone teluški @@ -554,9 +558,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ nepoznati jezik urdski uzbečki - vai venda + venecijanski vijetnamski + makhuwa volapük votski vunjo @@ -570,6 +575,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ wu kineski kalmyk xhosa + kangri soga yao japski @@ -797,7 +803,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Zapadna Europa Subsaharska Afrika Latinska Amerika - Otok Ascension + Otok Uzašašća Andora Ujedinjeni Arapski Emirati Afganistan @@ -836,7 +842,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Bjelorusija Belize Kanada - Kokosovi (Keelingovi) otoci + Kokosovi (Keelingovi) Otoci Kongo - Kinshasa Kongo (DR) Srednjoafrička Republika @@ -845,7 +851,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Švicarska Obala Bjelokosti Bjelokosna Obala - Cookovi otoci + Cookovi Otoci Čile Kamerun Kina @@ -855,7 +861,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kuba Zelenortska Republika Curaçao - Božićni otok + Božićni Otok Cipar Češka Češka Republika @@ -878,10 +884,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ eurozona Finska Fidži - Falklandski otoci - Falklandski otoci (Malvini) + Falklandski Otoci + Falklandski Otoci (Malvini) Mikronezija - Farski otoci + Ovčji Otoci Francuska Gabon Ujedinjeno Kraljevstvo @@ -898,7 +904,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Guadalupe Ekvatorska Gvineja Grčka - Južna Georgija i Južni Sendvički Otoci + Južna Georgia i Otoci Južni Sandwich Gvatemala Guam Gvineja Bisau @@ -910,14 +916,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Hrvatska Haiti Mađarska - Kanarski otoci + Kanari Indonezija Irska Izrael Otok Man Indija - Britanski Indijskooceanski teritorij - Otočje Chagos + Britanski Indijskooceanski Teritorij + Britanski Teritorij u Indijskome Oceanu + Otočje Chagos Irak Iran Island @@ -935,7 +942,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Sjeverna Koreja Južna Koreja Kuvajt - Kajmanski otoci + Kajmanski Otoci Kazahstan Laos Libanon @@ -961,7 +968,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Mongolija PUP Makao Kina Makao - Sjevernomarijanski otoci + Sjevernomarijanski Otoci Martinik Mauretanija Montserrat @@ -994,7 +1001,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Pakistan Poljska Sveti Petar i Mikelon - Otoci Pitcairn + Pitcairnovi Otoci Portoriko Palestinsko područje Palestina @@ -1009,7 +1016,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Rusija Ruanda Saudijska Arabija - Salomonski Otoci + Salomonovi Otoci Sejšeli Sudan Švedska @@ -1033,7 +1040,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Tristan da Cunha Otoci Turks i Caicos Čad - Francuski južni i antarktički teritoriji + Francuski Južni Teritoriji Togo Tajland Tadžikistan @@ -1058,11 +1065,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ SAD Urugvaj Uzbekistan - Vatikanski Grad + Vatikan Sveti Vincent i Grenadini Venezuela - Britanski Djevičanski otoci - Američki Djevičanski otoci + Britanski Djevičanski Otoci + Američki Djevičanski Otoci Vijetnam Vanuatu Wallis i Futuna @@ -1300,7 +1307,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2858,6 +2865,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ +HH:mm; -HH:mm {0}, ljetno vrijeme {0}, standardno vrijeme + + Honolulu + koordinirano svjetsko vrijeme @@ -2893,21 +2903,24 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Saint Barthélemy + + Bermudi + Brunej Zürich + + Urumči + Šangaj Kostarika - - Curaçao - Nikozija @@ -2993,6 +3006,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Jamajka + + Tokio + Biškek @@ -3002,6 +3018,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Pjongjang + + Seul + Kuvajt @@ -3033,7 +3052,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Skoplje - Rangoon + Rangun Ulan Bator @@ -3059,9 +3078,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Cancun + + Katmandu + Markižansko otočje + + Karači + Varšava @@ -3069,20 +3094,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Portoriko - Azorski otoci + Azori Lisabon - - Asunción - Katar - - Réunion - Bukurešt @@ -3137,8 +3156,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Singapur - - São Tomé + + Sveta Helena Salvador @@ -3161,9 +3180,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Simferopolj - - Honolulu - Beulah, Sjeverna Dakota @@ -3437,21 +3453,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kinesko ljetno vrijeme - - - choibalsansko vrijeme - choibalsansko standardno vrijeme - choibalsansko ljetno vrijeme - - - vrijeme Božićnog otoka + vrijeme Božićnog Otoka - vrijeme Kokosovih otoka + vrijeme Kokosovih Otoka @@ -3463,9 +3472,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - vrijeme Cookovih otoka - standardno vrijeme Cookovih otoka - Cookovi otoci, polusatni pomak, ljetno vrijeme + vrijeme Cookovih Otoka + standardno vrijeme Cookovih Otoka + Cookovi Otoci, polusatni pomak, ljetno vrijeme @@ -3564,7 +3573,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - vrijeme Francuskih južnih i antarktičkih teritorija + vrijeme Francuskih Južnih Teritorija @@ -3712,6 +3721,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Petropavlovsk-kamčatsko ljetno vrijeme + + + kazahstansko vrijeme + + istočnokazahstansko vrijeme @@ -4019,7 +4033,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - vrijeme Salomonskih Otoka + vrijeme Salomonovih Otoka @@ -4288,9 +4302,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 bil'.' ¤ - {0} {1} - {0} {1} - {0} {1} @@ -5332,10 +5343,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ mauritanijskih ouguja (1973. – 2017.) - mauritanijska ouguja - mauritanijska ouguja - mauritanijske ouguje - mauritanijskih ouguja + mauretanska ouguja + mauretanska ouguja + mauretanske ouguje + mauretanskih ouguja malteška lira @@ -5424,8 +5435,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ nigerijska naira - nigerijski nair - nigerijska naira + nigerijska naira + nigerijske naire nigerijskih naira @@ -5656,13 +5667,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ sijeraleonski leone sijeraleonski leon - sijeraleonske leone + sijarelonska leona sijeraleonskih leona sijeraleonski leone (1964—2022) - sijeraleonski leon (1964—2022) - sijeraleonske leone (1964—2022) + sijeraleonski leone (1964—2022) + sijeraleonskih leona (1964—2022) sijeraleonskih leona (1964—2022) @@ -6544,10 +6555,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} karata + inanimate miligrami po decilitru {0} miligram po decilitru + {0} miligram po decilitru + {0} mligrama po decilitru + {0} miligramom po decilitru {0} miligrama po decilitru + {0} miligrama po decilitru + {0} miligrama po decilitru + {0} miligrama po decilitru {0} miligrama po decilitru + {0} miligrama po decilitru + {0} miligrama po decilitru + {0} miligrama po decilitru inanimate @@ -7172,10 +7193,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} volta + feminine kilokalorije {0} kilokalorija + {0} kilokaloriju + {0} kilokalorije + {0} kilokalorijom {0} kilokalorije + {0} kilokalorije + {0} kilokalorije + {0} kilokalorije {0} kilokalorija + {0} kilokalorija + {0} kilokalorija + {0} kilokalorija feminine @@ -7656,9 +7687,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} skandinavskih milja + feminine {0} tipografska točka + {0} tipografsku točku + {0} tipografske točke + {0} tipografskom točkom {0} tipografske točke + {0} tipografske točke + {0} tipografske točke + {0} tipografske točke {0} tipografskih točaka + {0} tipografskih točaka + {0} tipografskih točaka + {0} tipografskih točaka Sunčevi polumjeri @@ -7956,10 +7997,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} konjskih snaga + inanimate milimetri živina stupca {0} milimetar živina stupca + {0} milimetar živina stupca + {0} milimetar živina stupca + {0} milimetar živina stupca {0} milimetra živina stupca + {0} milimetra živina stupca + {0} milimetra živina stupca + {0} milimetra živina stupca {0} milimetara živina stupca + {0} milimetara živina stupca + {0} milimetara živina stupca + {0} milimetara živina stupca funte po kvadratnom inču @@ -8495,6 +8546,55 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} imperijalne četvrtine {0} imperijalne četvrtine + + neuter + svjetlo + {0} svjetlo + {0} svjetlo + {0} svjetla + {0} svjetlom + {0} svjetla + {0} svjetla + {0} svjetla + {0} svjetla + {0} svjetala + {0} svjetala + {0} svjetala + {0} svjetala + + + inanimate + dijelovi na milijardu + {0} dio na milijardu + {0} dio na milijardu + {0} dijela na milijardu + {0} dijelom na milijardu + {0} dijela na milijardu + {0} dijela na milijardu + {0} dijela na milijardu + {0} dijela na milijardu + {0} dijelova na milijardu + {0} dijelova na milijardu + {0} dijelova na milijardu + {0} dijelova na milijardu + + + feminine + noći + {0} noć + {0} noć + {0} noći + {0} noći + {0} noći + {0} noći + {0} noći + {0} noći + {0} noći + {0} noći + {0} noći + {0} noći + {0}/noć + kardinalni smjer {0} istočno @@ -8903,6 +9003,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} prstohvata {0} prstohvata + + svjetlo + {0} svjetlo + {0} svjetla + {0} svjetala + + + dijelovi/milijarda + + + noć + {0} noć + {0} noći + {0} noći + {0}/noć + smjer {0} I @@ -9009,6 +9125,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} jiggera {0} jiggera + + svjetlo + {0} svjetlo + {0} svjetla + {0} svjetala + + + dijelovi/milijarda + + + noć + {0} noć + {0} noći + {0} noći + {0}/noć + {0}I {0}S @@ -9148,6 +9280,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kurziv veliko slovo tekst + naslovni ukrasni lijevo nagnut uspravan diff --git a/make/data/cldr/common/main/hsb.xml b/make/data/cldr/common/main/hsb.xml index 25fa9ffc62b..a989a0a8074 100644 --- a/make/data/cldr/common/main/hsb.xml +++ b/make/data/cldr/common/main/hsb.xml @@ -53,6 +53,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic bislamšćina binišćina siksikášćina + aniišćina bambara bengalšćina tibetšćina @@ -176,6 +177,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ibanšćina ibibiošćina indonešćina + interlinguešćina igbo sichuan yi inupiak @@ -231,6 +233,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic komišćina kornišćina kwakʼwalašćina + kuvišćina kirgišćina łaćonšćina ladinšćina @@ -239,8 +242,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic lezgianšćina gandšćina limburšćina + ligurianšćina lillooetšćina lakota + lombardšćina lingala laošćina Louisiana kreolšćina @@ -251,7 +256,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic luba-katanga luba-luluašćina lundašćina - luo mizošćina luhya letišćina @@ -395,6 +399,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic kongoska suahelšćina comorianšćina syriacšćina + šlezišćina tamilšćina južna tutchonšćina telugu @@ -434,9 +439,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic njeznata rěč urdušćina uzbekšćina - vai vendašćina + venetišćina vietnamšćina + makhuwašćina volapük vunjo walonšćina @@ -447,6 +453,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic wu chinšćina kalmykšćina xhosa + kangrišćina soga yangben yembašćina @@ -2384,9 +2391,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kap Verde - - Curaçao - Hodowna kupa @@ -2475,6 +2479,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Biškek + + Enderbury + Komory @@ -2520,15 +2527,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Lissabon - - Asunción - Katar - - Réunion - Bukarest @@ -2577,9 +2578,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Mogadišu - - São Tomé - Damaskus @@ -2834,13 +2832,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic chinski lětni čas - - - Čojbalsanski čas - Čojbalsanski standardny čas - Čojbalsanski lětni čas - - čas Hodowneje kupy @@ -3094,6 +3085,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic japanski lětni čas + + + kazachski čas + + wuchodnokazachski čas @@ -3664,10 +3660,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 000 bil'.' ¤ - {0} {1} - {0} {1} - {0} {1} - {0} {1} @@ -6405,6 +6397,28 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} britiske běrtle {0} britiskich běrtlow + + swětłowa spěšnosć + {0} swětłowa spěšnosć + {0} swětłowej spěšnosći + {0} swětłowe spěšnosće + {0} swětłowych spěšnosćow + + + miliardćina + {0} miliardćina + {0} miliardćinje + {0} miliardćiny + {0} miliardćinow + + + přenocowanja + {0} přenocowanje + {0} přenocowani + {0} přenocowanja + {0} přenocowanjow + {0} na přenocowanje + wobzorosměr {0} wuchod @@ -6825,6 +6839,28 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} šćipki {0} šćipkow + + sw. spěšnosć + {0} sw. spěšnosć + {0} sw. spěšnosći + {0} sw. spěšnosće + {0} sw. spěšnosćow + + + nano + {0} nano + {0} nano + {0} nano + {0} nano + + + nocy + {0} nóc + {0} nocy + {0} nocy + {0} nocow + {0} na nóc + směr {0} w @@ -6938,6 +6974,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} šć {0} šć + + c + {0} c + {0} c + {0} c + {0} c + + + n + {0} n + {0} n + {0} n + {0} n + diff --git a/make/data/cldr/common/main/hu.xml b/make/data/cldr/common/main/hu.xml index 878aeb9a439..d386b4c4eae 100644 --- a/make/data/cldr/common/main/hu.xml +++ b/make/data/cldr/common/main/hu.xml @@ -72,6 +72,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bini kom siksika + anii bambara bangla tibeti @@ -301,6 +302,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komi korni kwakʼwala + kuvi kirgiz latin ladino @@ -311,10 +313,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lezg ganda limburgi - ligur + ligur lillooet lakota - lombard + lombard lingala lao mongó @@ -327,7 +329,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ luba-lulua luiseno lunda - luo lushai lujia lett @@ -509,7 +510,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ comorei klasszikus szír szír - sziléziai + sziléziai tamil déli tutchone telugu @@ -556,10 +557,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ismeretlen nyelv urdu üzbég - vai venda - velencei + velencei vietnámi + makua volapük votják vunjo @@ -573,6 +574,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ wu kínai kalmük xhosza + kangri szoga jaó japi @@ -602,7 +604,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -656,7 +657,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -731,7 +731,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -1153,7 +1152,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Indiai nemzeti naptár Hidzsra naptár Hidzsra naptár (táblázatos, polgári) - Hidzsra naptár (Umm al-Qura) + Hidzsra naptár (Umm al-Qura) ISO-8601 naptár Japán naptár Perzsa naptár @@ -1284,7 +1283,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2355,6 +2354,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} idő {0} nyári idő {0} zónaidő + + Honolulu + koordinált világidő @@ -2456,9 +2458,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Zöld-foki szigetek - - Curaçao - Karácsony-sziget @@ -2493,7 +2492,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ El-Ajún - Asmera + Aszmara Kanári-szigetek @@ -2643,9 +2642,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ulánbátor - - Csojbalszan - Makaó @@ -2703,15 +2699,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Lisszabon - - Asunción - Katar - - Réunion - Bukarest @@ -2805,9 +2795,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Pozsony - - São Tomé - Salvador @@ -2844,9 +2831,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Wake-sziget - - Honolulu - Beulah, Észak-Dakota @@ -3126,13 +3110,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kínai nyári idő - - - csojbalszani idő - csojbalszani téli idő - csojbalszani nyári idő - - karácsony-szigeti idő @@ -3401,6 +3378,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Petropavlovszk-kamcsatkai nyári idő + + + kazahsztáni idő + + kelet-kazahsztáni idő @@ -3946,8 +3928,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 B ¤ - {0} {1} - {0} {1} @@ -4157,7 +4137,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Costa Rica-i colon - szerb dinár + szerb dinár (2002–2006) szerb dinár (2002–2006) szerb dinár (2002–2006) @@ -4301,7 +4281,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ HKD - hodurasi lempira + hondurasi lempira + hondurasi lempira + hondurasi lempira Horvát dínár @@ -4339,7 +4321,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ iraki dínár - iráni rial + iráni riál + iráni riál + iráni riál izlandi korona @@ -4445,7 +4429,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Madagaszkári frank - macedon dínár + macedón dénár + macedón dénár + macedón dénár macedón dénár (1992–1993) @@ -4541,7 +4527,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ NZD - ománi rial + ománi riál + ománi riál + ománi riál panamai balboa @@ -4582,7 +4570,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ paraguayi guarani - katari rial + katari riál + katari riál + katari riál rhodéziai dollár @@ -4596,7 +4586,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ román lej - szerb dínár + szerb dinár + szerb dinár + szerb dinár orosz rubel @@ -4608,7 +4600,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ruandai frank - szaúdi riyal + szaúdi riál + szaúdi riál + szaúdi riál salamon-szigeteki dollár @@ -4648,7 +4642,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Sierra Leone-i leone - Sierra Leone-i leone (1964—2022) + Sierra Leone-i leone (1964–2022) + Sierra Leone-i leone (1964–2022) + Sierra Leone-i leone (1964–2022) szomáli shilling @@ -4764,12 +4760,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Uruguayi peso (1975–1993) - uruguay-i peso + uruguayi peso uruguayi peso uruguayi peso - üzbegisztáni szum + üzbegisztáni szom + üzbegisztáni szom + üzbegisztáni szom Venezuelai bolivar (1871–2008) @@ -4863,7 +4861,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Jemeni dínár - jemeni rial + jemeni riál + jemeni riál + jemeni riál Jugoszláv kemény dínár @@ -4959,10 +4959,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ yocto{0} - ronto{0} + ronto{0} - quecto{0} + quecto{0} deka{0} @@ -4995,10 +4995,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ yotta{0} - ronna{0} + ronna{0} - quetta{0} + quetta{0} kibi{0} @@ -5219,7 +5219,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ milligramm/deciliter {0} milligramm/deciliter + {0} milligramm/decilitert + {0} milligramm/deciliterrel + {0} milligramm/deciliterig + {0} milligramm/deciliterré {0} milligramm/deciliter + {0} milligramm/decilitert + {0} milligramm/deciliterrel + {0} milligramm/deciliterig + {0} milligramm/deciliterré {0} millimól/liter @@ -5720,7 +5728,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kilokalória {0} kilokalória + {0} kilokalóriát + {0} kilokalóriával + {0} kilokalóriáig + {0} kilokalóriává {0} kilokalória + {0} kilokalóriát + {0} kilokalóriával + {0} kilokalóriáig + {0} kilokalóriává kalória @@ -5736,9 +5752,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} kalóriává - kalória - {0} kalória - {0} kalória + kalória + {0} kalória + {0} kalória kilojoule @@ -5933,14 +5949,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} képpont per hüvelyk - pont per centiméter - {0} pont per centiméter - {0} pont per centiméter + pont per centiméter + {0} pont per centiméter + {0} pont per centiméter - pont per hüvelyk - {0} pont per hüvelyk - {0} pont per hüvelyk + pont per hüvelyk + {0} pont per hüvelyk + {0} pont per hüvelyk földsugár @@ -6101,7 +6117,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} pont + {0} pontot + {0} ponttal + {0} pontig + {0} ponttá {0} pont + {0} pontot + {0} ponttal + {0} pontig + {0} ponttá {0} Nap-sugár @@ -6346,7 +6370,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ higanymilliméter {0} higanymilliméter + {0} higanymillimétert + {0} higanymilliméterrel + {0} higanymilliméterig + {0} higanymilliméterré {0} higanymilliméter + {0} higanymillimétert + {0} higanymilliméterrel + {0} higanymilliméterig + {0} higanymilliméterré font per négyzethüvelyk @@ -6778,6 +6810,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} birodalmi kvart {0} birodalmi kvart + + éjszakák + {0} éjszaka + {0} éjszakát + {0} éjszakával + {0} éjszakáig + {0} éjszakává + {0} éjszaka + {0} éjszakát + {0} éjszakával + {0} éjszakáig + {0} éjszakává + {0}/éjszaka + kardinális irány @@ -6922,9 +6968,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ V - cal - {0} cal - {0} cal + cal + {0} cal + {0} cal J @@ -6946,18 +6992,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ megapixel - dpcm - {0} dpcm - {0} dpcm + dpcm + {0} dpcm + {0} dpcm - dpi - {0} dpi - {0} dpi + dpi + {0} dpi + {0} dpi - {0} képpont - {0} képpont + {0} képpont + {0} képpont m @@ -7162,6 +7208,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} bir. qt {0} bir. qt + + éjszakák + {0} éjszaka + {0} éjszaka + {0}/éjszaka + irány {0} K @@ -7244,6 +7296,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} csi {0} csi + + éjszakák + {0} éjszaka + {0} éjszaka + {0}/éjszaka + @@ -7267,8 +7325,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} – kompatibilitás {0} – zárt {0} – kibővített - balra néző {0} - jobbra néző {0} + balra néző {0} + jobbra néző {0} {0} – történelmi {0} – vegyes {0} – egyéb diff --git a/make/data/cldr/common/main/hy.xml b/make/data/cldr/common/main/hy.xml index 91ecf144eaf..fac008b48b2 100644 --- a/make/data/cldr/common/main/hy.xml +++ b/make/data/cldr/common/main/hy.xml @@ -66,6 +66,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ բիսլամա բինի սիկսիկա + անիի բամբարա բենգալերեն տիբեթերեն @@ -185,6 +186,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ հարավային հայդա եբրայերեն հինդի + հինդի (լատինատառ) հինգլիշ հիլիգայնոն հմոնգ @@ -255,6 +257,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ կոմիերեն կոռներեն կվակվալա + կուվի ղրղզերեն լատիներեն լադինո @@ -263,8 +266,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ լեզգիերեն գանդա լիմբուրգերեն + լիգուրերեն լիլուետ լակոտա + լոմբարդերեն լինգալա լաոսերեն լուիզիանական կրեոլերեն @@ -445,6 +450,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ կոնգոյի սուահիլի կոմորերեն ասորերեն + սիլեզերեն թամիլերեն հարավային թուտչոնե տուլու @@ -501,6 +507,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ վեպսերեն վիետնամերեն արևմտաֆլամանդերեն + մաքուա վոլապյուկ վոդերեն վորո @@ -515,6 +522,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ վու չինարեն կալմիկերեն քոսա + կանգրի սոգա յաո յափերեն @@ -670,7 +678,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Բահամյան կղզիներ Բութան Բուվե կղզի - Բոթսվանա + Բոտսվանա Բելառուս Բելիզ Կանադա @@ -873,7 +881,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Չադ Ֆրանսիական Հարավային Տարածքներ Տոգո - Թայլանդ + Թաիլանդ Տաջիկստան Տոկելաու Թիմոր Լեշտի @@ -1097,6 +1105,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ dd.MM, E d MMM d MMM, E + d MMMM y, G y, G G y թ. MM @@ -1457,6 +1466,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ dd.MM, E d MMM d MMM, E + d MMMM MMMM W-ին շաբաթ MMMM W-րդ շաբաթ MM.y @@ -2000,6 +2010,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + Հոնոլուլու + Համաշխարհային կոորդինացված ժամանակ @@ -2737,9 +2750,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ուլան Բատոր - - Չոյբալսան - Մակաո @@ -3139,9 +3149,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Նոմ - - Հոնոլուլու - Անքորիջ @@ -3486,13 +3493,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Չինաստանի ամառային ժամանակ - - - Չոյբալսանի ժամանակ - Չոյբալսանի ստանդարտ ժամանակ - Չոյբալսանի ամառային ժամանակ - - Սուրբ Ծննդյան կղզու ժամանակ @@ -3731,6 +3731,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ճապոնիայի ամառային ժամանակ + + + Ղազախստանի ժամանակ + + Արևելյան Ղազախստանի ժամանակ @@ -4248,8 +4253,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 տրլն ¤ - {0} {1} - {0} {1} @@ -4323,7 +4326,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ բութանական նգուլտրում - բոթսվանական պուլա + բոտսվանական պուլա + բոտսվանական պուլա + բոտսվանական պուլա բելառուսական ռուբլի @@ -4371,7 +4376,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Կաբո Վերդեի էսկուդո - չեխական կրոն + չեխական կրոնա + չեխական կրոնա + չեխական կրոնա Ջիբութիի ֆրանկ @@ -4676,7 +4683,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ սվազիլենդական լիլանգենի - թայլանդական բատ + թաիլանդական բահտ + թաիլանդական բահտ + թաիլանդական բահտ ฿ @@ -4888,9 +4897,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ազատ անկման արագացում + {0} g-ուժ + {0} g-ուժից + {0} g-ուժին + {0} g-ուժով + {0} g-ուժում + {0} g-ուժ + {0} g-ուժից + {0} g-ուժին + {0} g-ուժով + {0} g-ուժում - մետրեր/վայրկյան քառակուսի + մետր քառակուսի վայրկյանի վրա {0} մետր/վայրկյան քառակուսի {0} մետրից/վայրկյան քառակուսի {0} մետրին/վայրկյան քառակուսի @@ -4903,7 +4922,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} մետրում/վայրկյան քառակուսի - պտույտներ + պտույտ {0} պտույտ {0} պտույտից {0} պտույտին @@ -4916,7 +4935,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} պտույտում - ռադիաններ + ռադիան {0} ռադիան {0} ռադիանից {0} ռադիանին @@ -4929,7 +4948,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ռադիանում - աստիճաններ {0} աստիճան {0} աստիճանից {0} աստիճանին @@ -4942,6 +4960,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} աստիճանում + րոպե {0} րոպե {0} րոպեից {0} րոպեին @@ -4954,6 +4973,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} րոպեում + վայրկյան {0} վայրկյան {0} վայրկյանից {0} վայրկյանին @@ -4966,7 +4986,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} վայրկյանում - քառակուսի կիլոմետրեր + քառակուսի կիլոմետր {0} քառակուսի կիլոմետր {0} քառակուսի կիլոմետրից {0} քառակուսի կիլոմետրին @@ -4980,7 +5000,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} քառակուսի կիլոմետրի վրա - հեկտարներ + հեկտար {0} հեկտար {0} հեկտարից {0} հեկտարին @@ -4993,7 +5013,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} հեկտարում - քառակուսի մետրեր + քառակուսի մետր {0} քառակուսի մետր {0} քառակուսի մետրից {0} քառակուսի մետրին @@ -5007,7 +5027,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} քառակուսի մետրի վրա - քառակուսի սանտիմետրեր + քառակուսի սանտիմետր {0} քառակուսի սանտիմետր {0} քառակուսի սանտիմետրից {0} քառակուսի սանտիմետրին @@ -5021,33 +5041,27 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} քառակուսի սանտիմետրի վրա - քառակուսի մղոններ + քառակուսի մղոն {0} քառակուսի մղոն {0} քառակուսի մղոն {0} քառակուսի մղոնի վրա - - ակրեր - - քառակուսի յարդեր + քառակուսի յարդ {0} քառակուսի յարդ {0} քառակուսի յարդ - քառակուսի ֆուտեր + քառակուսի ֆուտ {0} քառակուսի ֆուտ {0} քառակուսի ֆուտ - քառակուսի մատնաչափեր + քառակուսի մատնաչափ {0} քառակուսի մատնաչափ {0} քառակուսի մատնաչափ {0} քառակուսի մատնաչափի վրա - - դունամներ - կարատ {0} կարատ @@ -5062,12 +5076,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} կարատում - միլիգրամներ դեցիլիտրի վրա + միլիգրամ դեցիլիտրի վրա {0} միլիգրամ դեցիլիտրի վրա + {0} միլիգրամից դեցիլիտրի վրա + {0} միլիգրամին դեցիլիտրի վրա + {0} միլիգրամով դեցիլիտրի վրա + {0} միլիգրամում դեցիլիտրի վրա {0} միլիգրամ դեցիլիտրի վրա + {0} միլիգրամից դեցիլիտրի վրա + {0} միլիգրամին դեցիլիտրի վրա + {0} միլիգրամով դեցիլիտրի վրա + {0} միլիգրամում դեցիլիտրի վրա - միլիմոլներ լիտրի վրա + միլիմոլ լիտրի վրա {0} միլիմոլ լիտրի վրա {0} միլիմոլից լիտրի վրա {0} միլիմոլին լիտրի վրա @@ -5092,17 +5114,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} միույթում - մասնիկներ միլիոնի վրա - {0} մասնիկ միլիոնի վրա - {0} մասնիկից միլիոնի վրա - {0} մասնիկին միլիոնի վրա - {0} մասնիկով միլիոնի վրա - {0} մասնիկում միլիոնի վրա - {0} մասնիկ միլիոնի վրա - {0} մասնիկից միլիոնի վրա - {0} մասնիկին միլիոնի վրա - {0} մասնիկով միլիոնի վրա - {0} մասնիկում միլիոնի վրա + մաս միլիոնի վրա + {0} մաս միլիոնի վրա + {0} մասից միլիոնի վրա + {0} մասին միլիոնի վրա + {0} մասով միլիոնի վրա + {0} մասում միլիոնի վրա + {0} մաս միլիոնի վրա + {0} մասից միլիոնի վրա + {0} մասին միլիոնի վրա + {0} մասով միլիոնի վրա + {0} մասում միլիոնի վրա {0} տոկոս @@ -5142,7 +5164,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} պերմիրիադում - մոլեր {0} մոլ {0} մոլից {0} մոլին @@ -5155,7 +5176,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} մոլում - լիտրեր կիլոմետրի վրա + լիտր կիլոմետրի վրա {0} լիտր կիլոմետրի վրա {0} լիտրից կիլոմետրի վրա {0} լիտրին կիլոմետրի վրա @@ -5168,7 +5189,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} լիտրում կիլոմետրի վրա - լիտրեր 100 կիլոմետրի վրա + լիտր 100 կիլոմետրի վրա {0} լիտր 100 կիլոմետրի վրա {0} լիտրից 100 կիլոմետրի վրա {0} լիտրին 100 կիլոմետրի վրա @@ -5181,17 +5202,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} լիտրում 100 կիլոմետրի վրա - մղոններ գալոնի վրա + մղոն գալոնի վրա {0} մղոն գալոնի վրա {0} մղոն գալոնի վրա - մղոններ անգլիական գալոնի վրա + մղոն անգլիական գալոնի վրա {0} մղոն անգլիական գալոնի վրա {0} մղոն անգլիական գալոնի վրա - պետաբայթեր + պետաբայթ {0} պետաբայթ {0} պետաբայթից {0} պետաբայթին @@ -5204,7 +5225,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} պետաբայթում - տերաբայթեր + տերաբայթ {0} տերաբայթ {0} տերաբայթից {0} տերաբայթին @@ -5217,7 +5238,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} տերաբայթում - տերաբիթեր + տերաբիթ {0} տերաբիթ {0} տերաբիթից {0} տերաբիթին @@ -5230,7 +5251,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} տերաբիթում - գիգաբայթեր + գիգաբայթ {0} գիգաբայթ {0} գիգաբայթից {0} գիգաբայթին @@ -5243,7 +5264,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} գիգաբայթում - գիգաբիթեր + գիգաբիթ {0} գիգաբիթ {0} գիգաբիթից {0} գիգաբիթին @@ -5256,7 +5277,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} գիգաբիթում - մեգաբայթեր + մեգաբայթ {0} մեգաբայթ {0} մեգաբայթից {0} մեգաբայթին @@ -5269,7 +5290,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} մեգաբայթում - մեգաբիթեր + մեգաբիթ {0} մեգաբիթ {0} մեգաբիթից {0} մեգաբիթին @@ -5282,7 +5303,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} մեգաբիթում - կիլոբայթեր + կիլոբայթ {0} կիլոբայթ {0} կիլոբայթից {0} կիլոբայթին @@ -5295,7 +5316,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} կիլոբայթում - կիլոբիթեր + կիլոբիթ {0} կիլոբիթ {0} կիլոբիթից {0} կիլոբիթին @@ -5308,7 +5329,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} կիլոբիթում - բայթեր + բայթ {0} բայթ {0} բայթից {0} բայթին @@ -5321,7 +5342,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} բայթում - բիթեր {0} բիթ {0} բիթից {0} բիթին @@ -5334,7 +5354,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} բիթում - դարեր + դար {0} դար {0} դարից {0} դարին @@ -5347,7 +5367,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} դարում - տասնամյակներ + տասնամյակ {0} տասնամյակ {0} տասնամյակից {0} տասնամյակին @@ -5360,7 +5380,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} տասնամյակում - տարիներ + տարի {0} տարի {0} տարուց {0} տարուն @@ -5374,7 +5394,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ տարեկան {0} - եռամսյակներ + եռամսյակ {0} եռամսյակ {0} եռամսյակից {0} եռամսյակին @@ -5387,7 +5407,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} եռամսյակում - ամիսներ + ամիս {0} ամիս {0} ամսից {0} ամսին @@ -5401,7 +5421,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ամսական {0} - շաբաթներ + շաբաթ {0} շաբաթ {0} շաբաթից {0} շաբաթվան @@ -5415,7 +5435,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ շաբաթական {0} - օրեր {0} օր {0} օրից {0} օրվան @@ -5429,7 +5448,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ օրական {0} - ժամեր + ժամ {0} ժամ {0} ժամից {0} ժամին @@ -5443,7 +5462,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ժամում - րոպեներ + րոպե {0} րոպե {0} րոպեից {0} րոպեին @@ -5457,7 +5476,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} րոպեում - վայրկյաններ + վայրկյան {0} վայրկյան {0} վայրկյանից {0} վայրկյանին @@ -5471,7 +5490,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} վայրկյանում - միլիվայրկյաններ + միլիվայրկյան {0} միլիվայրկյան {0} միլիվայրկյանից {0} միլիվայրկյանին @@ -5484,7 +5503,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} միլիվայրկյանում - միկրովայրկյաններ + միկրովայրկյան {0} միկրովայրկյան {0} միկրովայրկյանից {0} միկրովայրկյանին @@ -5497,7 +5516,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} միկրովայրկյանում - նանովայրկյաններ + նանովայրկյան {0} նանովայրկյան {0} նանովայրկյանից {0} նանովայրկյանին @@ -5510,7 +5529,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} նանովայրկյանում - ամպերներ + ամպեր {0} ամպեր {0} ամպերից {0} ամպերին @@ -5523,7 +5542,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ամպերում - միլիամպերներ + միլիամպեր {0} միլիամպեր {0} միլիամպերից {0} միլիամպերին @@ -5536,6 +5555,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} միլիամպերում + օհմ {0} օհմ {0} օհմից {0} օհմին @@ -5548,7 +5568,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} օհմում - վոլտեր + վոլտ {0} վոլտ {0} վոլտից {0} վոլտին @@ -5561,12 +5581,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} վոլտում - կիլոկալորիաներ + կիլոկալորիա {0} կիլոկալորիա + {0} կիլոկալորիայից + {0} կիլոկալորիային + {0} կիլոկալորիայով + {0} կիլոկալորիայում {0} կիլոկալորիա + {0} կիլոկալորիայից + {0} կիլոկալորիային + {0} կիլոկալորիայով + {0} կիլոկալորիայում - կալորիաներ + կալորիա {0} կալորիա {0} կալորիայից {0} կալորիային @@ -5579,12 +5607,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} կալորիայում - կալորիաներ + կալորիա {0} կալորիա {0} կալորիա - կիլոջոուլներ + կիլոջոուլ {0} կիլոջոուլ {0} կիլոջոուլից {0} կիլոջոուլին @@ -5597,7 +5625,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} կիլոջոուլում - ջոուլներ + ջոուլ {0} ջոուլ {0} ջոուլից {0} ջոուլին @@ -5610,7 +5638,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ջոուլում - կիլովատտեր-ժամեր + կիլովատտ-ժամ {0} կիլովատտ-ժամ {0} կիլովատտ-ժամից {0} կիլովատտ-ժամին @@ -5623,25 +5651,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} կիլովատտ-ժամում - էլեկտրոն-վոլտեր + էլեկտրոն-վոլտ {0} էլեկտրոն-վոլտ {0} էլեկտրոն-վոլտ - բրիտանական ջերմային միավորներ + բրիտանական ջերմային միավոր {0} բրիտանական ջերմային միավոր {0} բրիտանական ջերմային միավոր - - ԱՄՆ ջերմեր - - ֆունտ-ուժեր + ֆունտ-ուժ {0} ֆունտ-ուժ {0} ֆունտ-ուժ - նյուտոններ + նյուտոն {0} նյուտոն {0} նյուտոնից {0} նյուտոնին @@ -5667,7 +5692,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} կիլովատտ-ժամում 100 կիլոմետրի վրա - գիգահերցեր + գիգահերց {0} գիգահերց {0} գիգահերցից {0} գիգահերցին @@ -5680,7 +5705,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} գիգահերցում - մեգահերցեր + մեգահերց {0} մեգահերց {0} մեգահերցից {0} մեգահերցին @@ -5693,7 +5718,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} մեգահերցում - կիլոհերցեր + կիլոհերց {0} կիլոհերց {0} կիլոհերցից {0} կիլոհերցին @@ -5706,7 +5731,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} կիլոհերցում - հերցեր + հերց {0} հերց {0} հերցից {0} հերցին @@ -5720,8 +5745,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ տպագրական em + {0} em + {0} em-ից + {0} em-ին + {0} em-ով + {0} em-ում + {0} em + {0} em-ից + {0} em-ին + {0} em-ով + {0} em-ում + փիքսել {0} փիքսել {0} փիքսելից {0} փիքսելին @@ -5734,6 +5770,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} փիքսելում + մեգափիքսել {0} մեգափիքսել {0} մեգափիքսելից {0} մեգափիքսելին @@ -5746,7 +5783,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} մեգափիքսելում - փիքսելներ սանտիմետրի վրա + փիքսել սանտիմետրի վրա {0} փիքսել սանտիմետրի վրա {0} փիքսելից սանտիմետրի վրա {0} փիքսելին սանտիմետրի վրա @@ -5759,17 +5796,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} փիքսելում սանտիմետրի վրա - փիքսելներ մատնաչափի վրա + փիքսել մատնաչափի վրա {0} փիքսել մատնաչափի վրա {0} փիքսել մատնաչափի վրա - կետեր սանտիմետրի վրա + կետ սանտիմետրի վրա {0} կետ սանտիմետրի վրա {0} կետ սանտիմետրի վրա - կետեր մատնաչափի վրա + կետ մատնաչափի վրա {0} կետ մատնաչափի վրա {0} կետ մատնաչափի վրա @@ -5779,7 +5816,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} երկրի շառավիղ - կիլոմետրեր + կիլոմետր {0} կիլոմետր {0} կիլոմետրից {0} կիլոմետրին @@ -5793,7 +5830,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} կիլոմետրի վրա - մետրեր + մետր {0} մետր {0} մետրից {0} մետրին @@ -5807,7 +5844,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} մետրի վրա - դեցիմետրեր + դեցիմետր {0} դեցիմետր {0} դեցիմետրից {0} դեցիմետրին @@ -5820,7 +5857,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} դեցիմետրում - սանտիմետրեր + սանտիմետր {0} սանտիմետր {0} սանտիմետրից {0} սանտիմետրին @@ -5834,7 +5871,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} սանտիմետրի վրա - միլիմետրեր + միլիմետր {0} միլիմետր {0} միլիմետրից {0} միլիմետրին @@ -5847,7 +5884,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} միլիմետրում - միկրոմետրեր + միկրոմետր {0} միկրոմետր {0} միկրոմետրից {0} միկրոմետրին @@ -5860,7 +5897,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} միկրոմետրում - նանոմետրեր + նանոմետր {0} նանոմետր {0} նանոմետրից {0} նանոմետրին @@ -5873,7 +5910,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} նանոմետրում - պիկոմետրեր + պիկոմետր {0} պիկոմետր {0} պիկոմետրից {0} պիկոմետրին @@ -5886,39 +5923,39 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} պիկոմետրում - մղոններ + մղոն {0} մղոն {0} մղոն - յարդեր + յարդ {0} յարդ {0} յարդ - ֆուտեր + ֆուտ {0} ֆուտ {0} ֆուտ {0} ֆուտի վրա - մատնաչափեր + մատնաչափ {0} մատնաչափ {0} մատնաչափ {0} մատնաչափի վրա - պարսեկներ + պարսեկ {0} պարսեկ {0} պարսեկ - լուսատարիներ + լուսատարի {0} լուսատարի {0} լուսատարի - աստղագիտական միավորներ + աստղագիտական միավոր {0} աստղագիտական միավոր {0} աստղագիտական միավոր @@ -5927,17 +5964,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ֆուրլոնգ - ծովային սաժեններ {0} ծովային սաժեն {0} ծովային սաժեն - ծովային մղոններ + ծովային մղոն {0} ծովային մղոն {0} ծովային մղոն - սկանդինավյան մղոններ + սկանդինավյան մղոն {0} սկանդինավյան մղոն {0} սկանդինավյան մղոնից {0} սկանդինավյան մղոնին @@ -5949,13 +5985,26 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} սկանդինավյան մղոնով {0} սկանդինավյան մղոնում + + կտ + {0} կտ + {0} կտ + {0} կտ + {0} կտ + {0} կտ + {0} կտ + {0} կտ + {0} կտ + {0} կտ + {0} կտ + - արեգակնային շառավիղներ + արեգակնային շառավիղ {0} արեգակնային շառավիղ {0} արեգակնային շառավիղ - լյուքսեր + լյուքս {0} լյուքս {0} լյուքսից {0} լյուքսին @@ -5994,12 +6043,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} լյումենում - արեգակնային լուսատվություններ + արեգակնային լուսատվություն {0} արեգակնային լուսատվություն {0} արեգակնային լուսատվություն - տոննաներ + տոննա {0} տոննա {0} տոննայից {0} տոննային @@ -6012,7 +6061,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} տոննայում - կիլոգրամներ + կիլոգրամ {0} կիլոգրամ {0} կիլոգրամից {0} կիլոգրամին @@ -6026,7 +6075,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} կիլոգրամի վրա - գրամներ + գրամ {0} գրամ {0} գրամից {0} գրամին @@ -6040,7 +6089,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} գրամի վրա - միլիգրամներ + միլիգրամ {0} միլիգրամ {0} միլիգրամից {0} միլիգրամին @@ -6053,7 +6102,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} միլիգրամում - միկրոգրամներ + միկրոգրամ {0} միկրոգրամ {0} միկրոգրամից {0} միկրոգրամին @@ -6066,27 +6115,26 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} միկրոգրամում - ամերիկյան տոննաներ + ամերիկյան տոննա {0} ամերիկյան տոննա {0} ամերիկյան տոննա - ֆունտեր {0} ֆունտի վրա - ունկիներ + ունկի {0} ունկի {0} ունկի {0} ունկիի վրա - տրոյական ունկիներ + տրոյական ունկի {0} տրոյական ունկի {0} տրոյական ունկի - կարատներ + կարատ {0} կարատ {0} կարատից {0} կարատին @@ -6099,22 +6147,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} կարատում - դալտոններ + դալտոն {0} դալտոն {0} դալտոն - երկրային զանգվածներ + երկրային զանգված {0} երկրային զանգված {0} արևային զանգված - արեգակնային զանգվածներ + արեգակնային զանգված {0} արեգակնային զանգված {0} արեգակնային զանգված - գիգավատտեր + գիգավատտ {0} գիգավատտ {0} գիգավատտից {0} գիգավատտին @@ -6127,7 +6175,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} գիգավատտում - մեգավատտեր + մեգավատտ {0} մեգավատտ {0} մեգավատտից {0} մեգավատտին @@ -6140,7 +6188,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} մեգավատտում - կիլովատտեր + կիլովատտ {0} կիլովատտ {0} կիլովատտից {0} կիլովատտին @@ -6153,7 +6201,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} կիլովատտում - վատտեր + վատտ {0} վատտ {0} վատտից {0} վատտին @@ -6166,7 +6214,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} վատտում - միլիվատտեր + միլիվատտ {0} միլիվատտ {0} միլիվատտից {0} միլիվատտին @@ -6179,27 +6227,34 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} միլիվատտում - ձիաուժեր + ձիաուժ {0} ձիաուժ {0} ձիաուժ - սնդիկի սյան միլիմետրեր - {0} միլիմետր սնդիկի սյուն - {0} միլիմետր սնդիկի սյուն + միլիմետր՝ սնդիկի սյան + {0} միլիմետր՝ սնդիկի սյան + {0} միլիմետրից՝ սնդիկի սյան + {0} միլիմետրին՝ սնդիկի սյան + {0} միլիմետրով՝ սնդիկի սյան + {0} միլիմետրում՝ սնդիկի սյան + {0} միլիմետր՝ սնդիկի սյան + {0} միլիմետրից՝ սնդիկի սյան + {0} միլիմետրին՝ սնդիկի սյան + {0} միլիմետրով՝ սնդիկի սյան + {0} միլիմետրում՝ սնդիկի սյան - ֆունտեր քառակուսի դյույմի վրա + ֆունտ քառակուսի դյույմի վրա {0} ֆունտ քառակուսի դյույմի վրա {0} ֆունտ քառակուսի դյույմի վրա - սնդիկի սյան դյույմեր - {0} դյույմ սնդիկի սյուն - {0} դյույմ սնդիկի սյուն + մատնաչափ՝ սնդիկի սյան + {0} մատնաչափ՝ սնդիկի սյան + {0} մատնաչափ՝ սնդիկի սյան - բարեր {0} բար {0} բարից {0} բարին @@ -6212,7 +6267,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} բարում - միլիբարեր + միլիբար {0} միլիբար {0} միլիբարից {0} միլիբարին @@ -6225,7 +6280,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} միլիբարում - մթնոլորտներ + մթնոլորտ {0} մթնոլորտ {0} մթնոլորտից {0} մթնոլորտին @@ -6238,7 +6293,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} մթնոլորտում - պասկալներ + պասկալ {0} պասկալ {0} պասկալից {0} պասկալին @@ -6264,7 +6319,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} հեկտոպասկալում - կիլոպասկալներ + կիլոպասկալ {0} կիլոպասկալ {0} կիլոպասկալից {0} կիլոպասկալին @@ -6277,7 +6332,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} կիլոպասկալում - մեգապասկալներ + մեգապասկալ {0} մեգապասկալ {0} մեգապասկալից {0} մեգապասկալին @@ -6290,7 +6345,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} մեգապասկալում - կիլոմետրեր ժամում + կիլոմետր ժամում {0} կիլոմետր ժամում ժամում {0} կիլոմետրից ժամում {0} կիլոմետրին @@ -6303,7 +6358,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ժամում {0} կիլոմետրում - մետրեր վայրկյանում + մետր վայրկյանում {0} մետր վայրկյանում վայրկյանում {0} մետրից վայրկյանում {0} մետրին @@ -6316,12 +6371,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ վայրկյանում {0} մետրում - մղոններ ժամում + մղոն ժամում {0} մղոն ժամում {0} մղոն ժամում - հանգույցներ + հանգույց {0} հանգույց {0} հանգույց @@ -6331,6 +6386,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Բոֆորտ {0} + ջերմաստիճան {0}° {0} աստիճանից {0} աստիճանին @@ -6343,7 +6399,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} աստիճանում - աստիճաններ ըստ Ցելսիուսի + աստիճան ըստ Ցելսիուսի {0} աստիճան ըստ Ցելսիուսի {0} աստիճանից ըստ Ցելսիուսի {0} աստիճանին ըստ Ցելսիուսի @@ -6356,12 +6412,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} աստիճանում ըստ Ցելսիուսի - աստիճաններ ըստ Ֆարենհայթի + աստիճան ըստ Ֆարենհայթի {0} աստիճան ըստ Ֆարենհայթի {0} աստիճան ըստ Ֆարենհայթի - կելվիններ + կելվին {0} կելվին {0} կելվինից {0} կելվինին @@ -6374,12 +6430,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} կելվինում - ֆունտ-ֆուտեր + ֆունտ-ֆուտ {0} ֆունտ-ֆուտ {0} ֆունտ-ֆուտ - նյուտոն-մետրեր + նյուտոն-մետր {0} նյուտոն-մետր {0} նյուտոն-մետրից {0} նյուտոն-մետրին @@ -6392,7 +6448,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} նյուտոն-մետրում - խորանարդ կիլոմետրեր + խորանարդ կիլոմետր {0} խորանարդ կիլոմետր {0} խորանարդ կիլոմետրից {0} խորանարդ կիլոմետրին @@ -6405,7 +6461,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} խորանարդ կիլոմետրում - խորանարդ մետրեր + խորանարդ մետր {0} խորանարդ մետր {0} խորանարդ մետրից {0} խորանարդ մետրին @@ -6419,7 +6475,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} խորանարդ մետրի վրա - խորանարդ սանտիմետրեր + խորանարդ սանտիմետր {0} խորանարդ սանտիմետր {0} խորանարդ սանտիմետրից {0} խորանարդ սանտիմետրին @@ -6433,12 +6489,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} խորանարդ սանտիմետրի վրա - խորանարդ մղոններ + խորանարդ մղոն {0} խորանարդ մղոն {0} խորանարդ մղոն - խորանարդ յարդեր + խորանարդ յարդ {0} խորանարդ յարդ {0} խորանարդ յարդ @@ -6448,12 +6504,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} խորանարդ ֆուտ - խորանարդ մատնաչափեր + խորանարդ մատնաչափ {0} խորանարդ մատնաչափ {0} խորանարդ մատնաչափ - մեգալիտրեր + մեգալիտր {0} մեգալիտր {0} մեգալիտրից {0} մեգալիտրին @@ -6466,7 +6522,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} մեգալիտրում - հեկտոլիտրեր + հեկտոլիտր {0} հեկտոլիտր {0} հեկտոլիտրից {0} հեկտոլիտրին @@ -6479,7 +6535,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} հեկտոլիտրում - լիտրեր + լիտր {0} լիտր {0} լիտրից {0} լիտրին @@ -6493,7 +6549,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} լիտրի վրա - դեցիլիտրեր + դեցիլիտր {0} դեցիլիտր {0} դեցիլիտրից {0} դեցիլիտրին @@ -6506,7 +6562,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} դեցիլիտրում - սանտիլիտրեր + սանտիլիտր {0} սանտիլիտր {0} սանտիլիտրից {0} սանտիլիտրին @@ -6519,7 +6575,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} սանտիլիտրում - միլիլիտրեր + միլիլիտր {0} միլիլիտր {0} միլիլիտրից {0} միլիլիտրին @@ -6532,7 +6588,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} միլիլիտրում - մետրիկ փինթեր + մետրիկ փինթ {0} մետրիկ փինթ {0} մետրիկ փինթից {0} մետրիկ փինթին @@ -6545,7 +6601,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} մետրիկ փինթում - մետրիկ բաժակներ + մետրիկ բաժակ {0} մետրիկ բաժակ {0} մետրիկ բաժակից {0} մետրիկ բաժակին @@ -6558,7 +6614,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} մետրիկ բաժակում - ակրոֆուտեր + ակրոֆուտ {0} ակրոֆուտ {0} ակրոֆուտ @@ -6568,31 +6624,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} բուշել - գալոններ + գալոն {0} գալոն {0} գալոն {0} գալոնի վրա - անգլիական գալոններ + անգլիական գալոն {0} անգլիական գալոն {0} անգլիական գալոն {0} անգլիական գալոնի վրա - - քվարտեր + + փինթ + բաժակ {0} բաժակ {0} բաժակ - հեղուկ ունկիներ + հեղուկ ունկի {0} հեղուկ ունկի {0} հեղուկ ունկի - անգլիական հեղուկ ունկիներ + անգլիական հեղուկ ունկի {0} անգլիական հեղուկ ունկի {0} անգլիական հեղուկ ունկի @@ -6607,7 +6664,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} թեյի գդալ - տակառներ {0} տակառ {0} տակառ @@ -6626,6 +6682,33 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} դրամ {0} դրամ + + մաս միլիարդի վրա + {0} մաս միլիարդի վրա + {0} մասից միլիարդի վրա + {0} մասին միլիարդի վրա + {0} մասով միլիարդի վրա + {0} մասում միլիարդի վրա + {0} մաս միլիարդի վրա + {0} մասից միլիարդի վրա + {0} մասին միլիարդի վրա + {0} մասով միլիարդի վրա + {0} մասում միլիարդի վրա + + + գիշեր + {0} գիշեր + {0} գիշերից + {0} գիշերին + {0} գիշերով + {0} գիշերում + {0} գիշեր + {0} գիշերից + {0} գիշերին + {0} գիշերով + {0} գիշերում + գիշերը {0} + արևելյան երկարության {0} {0} հյուսիսային լայնության @@ -6731,7 +6814,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Յի{0} - g + g-ուժ {0} g {0} g @@ -6754,10 +6837,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ աստիճան - րոպեներ + րոպե - վայրկյաններ + վայրկյան կմ² @@ -6794,9 +6877,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ակր - յրդ² - {0} յրդ² - {0} յրդ² + յդ² + {0} յդ² + {0} յդ² ֆտ² @@ -6835,7 +6918,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} միույթ - մասնիկ/միլիոն + մաս/միլիոն {0} մմվ {0} մմվ @@ -6917,7 +7000,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Բ - {0} Բայթ + {0} բայթ {0} Բ @@ -6936,7 +7019,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} 10-ամյակ - տ + տարի {0} տ {0} տ {0}/տ @@ -6966,7 +7049,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}/օր - ժ + ժամ {0} ժ {0} ժ {0}/ժ @@ -7009,9 +7092,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} մԱ - օհմեր - {0} Օհմ - {0} Օհմ + օհմ + {0} Ω + {0} Ω Վ @@ -7099,7 +7182,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Հց - փիքսելներ + փիքսել {0} փքս {0} փքս @@ -7182,9 +7265,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} մղ - յրդ - {0} յրդ - {0} յրդ + յարդ + {0} յդ + {0} յդ ֆտ @@ -7233,6 +7316,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} սկանդ․ մղ {0} սկանդ․ մղ + + կտ + լք {0} լք @@ -7282,8 +7368,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ սթոուն - {0} սթոուն - {0} սթոուն + {0} սթ + {0} սթ ֆունտ @@ -7292,15 +7378,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}/ֆունտ - ունկ. - {0} ունկ. - {0} ունկ. - {0}/ունկ. + ու + {0} ու + {0} ու + {0}/ու - տրոյ․ ունկ. - {0} տրոյ․ ունկ. - {0} տրոյ․ ունկ. + տրոյ․ ու + {0} տ․ ու + {0} տ․ ու կար @@ -7358,9 +7444,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ֆ./քառ․ դյմ - դյույմ ս.ս. - {0} դյմ. ս.ս. - {0} դյմ. ս.ս. + մատ. ս.ս. + {0} մատ. ս.ս. + {0} մատ. ս.ս. բար @@ -7524,6 +7610,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ակր ֆտ {0} ակր ֆտ + + բուշել + {0} բու + {0} բու + գալ {0} գալ @@ -7542,19 +7633,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} քվարտ - փինթեր + փինթ {0} փինթ {0} փինթ - բաժակներ + բաժակ {0} բաժ․ {0} բաժ․ - հղ․ ունկ․ - {0} հղ. ունկ․ - {0} հղ. ունկ․ + հղ․ ու + {0} հղ. ու + {0} հղ. ու ա․ հ․ ու․ @@ -7592,7 +7683,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} կաթիլ - հեղուկ դրամ + դրամ {0} հեղուկ դրամ {0} հեղուկ դրամ @@ -7611,6 +7702,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} անգլիական քվարտ {0} անգլիական քվարտ + + մաս/միլիարդ + {0} մմլրդվ + {0} մմլրդվ + + + գիշեր + {0} գիշեր + {0} գիշեր + {0}/գիշեր + ուղղություն {0} ավ․ ե․ @@ -7621,12 +7723,43 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + g-ուժ {0}G {0}G + + {0}պտ + {0}պտ + + + {0}ռադ + {0}ռադ + + + աստ + րոպե + + վայրկյան + + + {0}կմ² + {0}կմ² + + + {0}հա + {0}հա + + + {0}մ² + {0}մ² + + + {0}սմ² + {0}սմ² + {0}մղ² {0}մղ² @@ -7635,14 +7768,31 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}ակր {0}ակր + + յդ² + {0}յդ² + {0}յդ² + {0}ֆտ² {0}ֆտ² + + {0}դունամ + {0}դունամ + + + {0}կար + {0}կար + {0}մմոլ/լ {0}մմոլ/լ + + {0}միույթ + {0}միույթ + մմվ {0}մմվ @@ -7662,23 +7812,57 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}լ/կմ {0}լ/կմ + + {0}ՊԲ + {0}ՊԲ + + + {0}ՏԲ + {0}ՏԲ + + + {0}Տբիթ + {0}Տբիթ + ԳԲ + {0}ԳԲ + {0}ԳԲ + + + {0}Գբիթ + {0}Գբիթ ՄԲ + {0}ՄԲ + {0}ՄԲ + + + {0}Մբիթ + {0}Մբիթ կԲ + {0}կԲ + {0}կԲ + + + {0}կբիթ + {0}կբիթ - {0} Բ - {0} Բ + {0}Բ + {0}Բ + + + {0}բիթ + {0}բիթ ա - {0} ա - {0} ա + {0}ա + {0}ա {0}/ա @@ -7693,20 +7877,81 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} օ {0}/օ + + {0}ժ + {0}ժ + + + {0}ր + {0}ր + վ {0} վ {0} վ {0}/վ + + {0}Ա + {0}Ա + + + {0}մԱ + {0}մԱ + + + օհմ + {0} Ω + {0}Ω + + + {0}Վ + {0}Վ + + + {0}կկալ + {0}կկալ + {0} կալ {0}կալ + + {0}կՋ + {0}կՋ + + + {0}էՎ + {0}էՎ + + + {0}Բջմ + {0}Բջմ + {0} կՎտժ/100 կմ {0} կՎտժ/100 կմ + + {0}ԳՀց + {0}ԳՀց + + + {0}ՄՀց + {0}ՄՀց + + + {0}կՀց + {0}կՀց + + + {0}Հց + {0}Հց + + + {0}em + {0}em + կտ @@ -7716,8 +7961,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}կսմվ - {0} յդ. - {0} յդ. + յդ + {0}յդ + {0}յդ {0}′ @@ -7737,17 +7983,55 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ֆատոմ + + կտ + + + {0}լք + {0}լք + {0}տ {0}տ + + {0}մգ + {0}մգ + + + {0}մկգ + {0}մկգ + + + {0}սթ + {0}սթ + {0}# {0}# - {0} ունց - {0} ունց + ու + {0}ու + {0}ու + {0}/ու + + + տ․ ու + {0}տ․ու + {0}տ․ու + + + {0}կար + {0}կար + + + {0}M⊕ + {0}M⊕ + + + {0}M☉ + {0}M☉ {0}կՎ @@ -7757,17 +8041,46 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}Վ {0}Վ + + {0}մՎտ + {0}մՎտ + {0}ձ/ու {0}ձ/ու + մատ. ս.ս. {0}" ս.ս. {0}" ս. ս. + + {0}բար + {0}բար + - {0} մբ - {0} մբ + {0}մբ + {0}մբ + + + {0}մթն + {0}մթն + + + {0}Պա + {0}Պա + + + {0}հՊա + {0}հՊա + + + {0}կՊա + {0}կՊա + + + {0}ՄՊա + {0}ՄՊա {0}մ/վ @@ -7781,6 +8094,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Բ{0} Բ{0} + + {0}Կ + {0}Կ + {0}կմ³ {0}կմ³ @@ -7789,9 +8106,103 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}մղ³ {0}մղ³ + + {0}յրդ³ + {0}յրդ³ + + + {0}ֆտ³ + {0}ֆտ³ + + + {0}մատ³ + {0}մատ³ + + + {0}Մլ + {0}Մլ + + + {0}հլ + {0}հլ + + + {0}դլ + {0}դլ + + + {0}սլ + {0}սլ + մետր․ փինթեր + + բուշել + {0}բու + {0}բու + + + {0}գալ + {0}գալ + + + {0}քվարտ + {0}քվարտ + + + փինթ + {0}փինթ + {0}փինթ + + + բաժ․ + {0}բաժ․ + {0}բաժ․ + + + {0}հղ.ու + {0}հղ.ու + + + {0}ճգ. + {0}ճգ. + + + {0}տկռ + {0}տկռ + + + {0}ագ․ + {0}ագ․ + + + {0}կթլ + {0}կթլ + + + {0}հեղ. դր. + {0}հեղ. դր. + + + {0}ջիգեր + {0}ջիգեր + + + {0}պտղունց + {0}պտղունց + + + մմլրդվ + {0}մմլրդվ + {0}մմլրդվ + + + գիշեր + {0}/գ․ + {0}/գ․ + {0}/գ․ + ուղղ․ diff --git a/make/data/cldr/common/main/ia.xml b/make/data/cldr/common/main/ia.xml index ce130ba71f2..fed06caad47 100644 --- a/make/data/cldr/common/main/ia.xml +++ b/make/data/cldr/common/main/ia.xml @@ -27,6 +27,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic aragonese obolo angika + arabe levantin arabe arabe standard moderne mapuche @@ -42,26 +43,35 @@ CLDR data files are interpreted according to the LDML specification (http://unic azerbaidzhano azeri bashkir + baluchi balinese basaa bielorusso bemba + betawi bena bulgaro + haryanvi + baluchi occidental bhojpuri bislama bini siksika + anii + tai dam bambara bengalese tibetano breton bodo bosniaco + akoose buginese blin catalano + caddo cayuga + atsam chakma checheno cebuano @@ -73,6 +83,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic chipewyan cherokee cheyenne + chickasaw kurdo central kurdo sorani chilcotin @@ -174,7 +185,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic iban ibibio indonesiano - Interlingue + interlingue igbo yi de Sichuan inuktitut del west canadian @@ -190,6 +201,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic machame javanese georgiano + kara-kalpak kabylo kachin jju @@ -198,6 +210,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic tyap makonde capoverdiano + kenyang koro kaingang khasi @@ -227,16 +240,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic komi cornico kwakwala + kuvi kirghizo latino - ladino + judeo-espaniol langi luxemburgese lezghiano luganda limburgese + ligure lillooet lakota + ladino + lombardo lingala laotiano creolo louisianese @@ -244,10 +261,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic luri del nord samia lithuano + latgaliano luba-katanga luba-lulua lunda - luo mizo luyia letton @@ -261,9 +278,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic meri creolo mauritian malgache - makhuwa-meetto + macua de Metto metaʼ marshallese + mocheno maori micmac minangkabau @@ -290,6 +308,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic norvegiano bokmål ndebele del nord basse germano + basse saxone nepalese newari ndonga @@ -318,6 +337,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic oromo oriya osseto + osage punjabi pangasinan pampanga @@ -334,9 +354,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic portugese de Portugal quechua kʼicheʼ + rajasthani rapanui rarotongano rohingya + rifeno romanche rundi romaniano @@ -357,15 +379,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic siciliano scotese sindhi + kurdo del sud sami del nord sena koyraboro senni sango - serbocroate + serbocroato tachelhit shan cingalese + sidamo slovaco + saraiki sloveno lushootseed del sud samoano @@ -390,6 +415,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic swahili del Congo comoriano syriaco + silesiano tamil tutchone del sud telugu @@ -429,10 +455,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic lingua incognite urdu uzbeko - vai venda venetiano vietnamese + macua volapük vunjo wallon @@ -444,6 +470,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic wu calmuco xhosa + kangri soga yangben yemba @@ -452,6 +479,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic nheengatu cantonese chinese cantonese + zhuang tamazight marocchin standard chinese chinese mandarin @@ -505,6 +533,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic + @@ -513,7 +542,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Mundo + mundo Africa America del Nord America del Sud @@ -598,6 +627,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic China Colombia Insula Clipperton + Sark Costa Rica Cuba Capo Verde @@ -840,18 +870,34 @@ CLDR data files are interpreted according to the LDML specification (http://unic calendario ethiope Amete Alem calendario gregorian calendario hebraic - calendario islamic - calendario islamic (tabular, epocha civil) - calendario islamic (Umm al-Qura) + calendario national indian + calendario hegiric + calendario hegiric (tabular, epocha civil) + calendario hegiric (Arabia Saudita, observation) + calendario hegiric (tabular, epocha astronomic) + calendario hegiric (Umm al-Qura) calendario ISO-8601 calendario japonese calendario persa calendario del Republica de China formato de moneta pro contabilitate formato de moneta standard + ordinamento traditional chinese - Big5 + ordinamento previe, pro compatibilitate + ordinamento de dictionario ordinamento Unicode predefinite + ordinamento de emoji + regulas europee de ordinamento + ordinamento chinese simplificate - GB2312 + ordinamento de annuario telephonic + ordinamento pinyin recerca generic + recerca per consonante initial hangul ordinamento standard + ordinamento de tractos + ordinamento traditional + ordinamento de tractos radical + ordinamento zhuyin systema de 12 horas (0–11) systema de 12 horas (1–12) systema de 24 horas (0–23) @@ -862,19 +908,29 @@ CLDR data files are interpreted according to the LDML specification (http://unic systema metric systema de mesura imperial systema de mesura statounitese + cifras ahom cifras indo-arabe cifras indo-arabe extendite cifras armenie cifras armenie minuscule + cifras balinese cifras bengalese + cifras brahmi cifras chakma + cifras cham + cifras cyrillic cifras devanagari + cifras dives akuru cifras ethiope cifras in plen largor + cifras garay cifras georgian + cifras gunjala gondi + cifras masaram gondi cifras grec cifras grec minuscule cifras gujarati + cifras gurung khema cifras gurmukhi cifras decimal chinese cifras chinese simplificate @@ -882,6 +938,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic cifras chinese traditional cifras financiari chinese traditional cifras hebraic + cifras pahawh hmong + cifras nyiakeng puachue hmong cifras javanese cifras japonese cifras financiari japonese @@ -1275,7 +1333,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - {1} {0} + {1}, {0} {1} 'a' {0} @@ -1283,7 +1341,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - {1} {0} + {1}, {0} {1} 'a' {0} @@ -1291,12 +1349,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic - {1} {0} + {1}, {0} + + + {1}, {0} - {1} {0} + {1}, {0} + + + {1}, {0} @@ -1953,9 +2017,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Capo Verde - - Curaçao - Natal @@ -2047,9 +2108,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Lisbona - - Réunion - Bucarest @@ -2068,9 +2126,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Sachalin - - São Tomé - Damasco @@ -2316,13 +2371,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic hora estive de China - - - hora de Choibalsan - hora standard de Choibalsan - hora estive de Choibalsan - - hora del Insula de Natal @@ -2561,6 +2609,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic hora estive de Japon + + + hora de Kazakhstan + + hora de Kazakhstan del Est @@ -3076,8 +3129,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ¤ 000 bln - {0} {1} - {0} {1} @@ -4037,6 +4088,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} pollices quadrate {0} per pollice quadrate + + dunames + {0} dunams + {0} dunams + carates {0} carat @@ -4226,9 +4282,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} calorias - kilocalorias - {0} kilocaloria - {0} kilocalorias + kilocalorias + {0} kilocaloria + {0} kilocalorias kilojoules @@ -4676,6 +4732,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} pinciata {0} pinciatas + + Quartos imperial + {0} quarto imperial + {0} quartos imperial + direction cardinal {0} est @@ -4703,6 +4764,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic ac + + dunames + {0} dunams + {0} dunams + mi/gal {0} mi/gal @@ -4915,6 +4981,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} dr liq {0} dr liq + + pinciata + {0} pn + {0} pn + + + Quarto imp. + {0} quarto imp + {0} quartos imp + {0} E {0} N @@ -5116,6 +5192,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}jigger {0}jigger + + pn + {0}pn + {0}pn + + + qt imp + {0}qt imp + {0}qt imp + dir. {0}E diff --git a/make/data/cldr/common/main/id.xml b/make/data/cldr/common/main/id.xml index db130766d0f..33cad514796 100644 --- a/make/data/cldr/common/main/id.xml +++ b/make/data/cldr/common/main/id.xml @@ -80,6 +80,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Banjar Kom Siksika + Anii Bambara Bengali Tibet @@ -126,7 +127,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Moose Cree Carolina Algonquian Seselwa Kreol Prancis - Cheska + Ceko Kashubia Cree Rawa Bahasa Gereja Slavonia @@ -166,7 +167,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Esperanto Spanyol Spanyol (Eropa) - Esti + Estonia Basque Ewondo Persia @@ -301,6 +302,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Komi Kornish Kwakʼwala + Kuvi Kirgiz Latin Ladino @@ -314,7 +316,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Liguria Lillooet Lakota - Lombard + Lombard Lingala Lao Mongo @@ -322,7 +324,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Lozi Luri Utara Saamia - Lituavi + Lituania Luba-Katanga Luba-Lulua Luiseno @@ -330,7 +332,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Luo Mizo Luyia - Latvi + Latvia Laz Madura Mafa @@ -482,7 +484,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Sinhala Sidamo Slovak - Sloven + Slovenia Lushootseed Selatan Silesia Rendah Selayar @@ -568,6 +570,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Venda Venesia Vietnam + Makhuwa Volapuk Votia Vunjo @@ -581,6 +584,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Wu Tionghoa Kalmuk Xhosa + Kangri Soga Yao Yapois @@ -609,7 +613,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -676,7 +679,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -780,7 +782,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -1214,7 +1215,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kalender Nasional India Kalender Islam Kalender Sipil Islam - Kalender Islam (Arab Saudi, penglihatan) + Kalender Islam (Arab Saudi, penglihatan) Kalender Astronomi Islam Kalender Islam (Umm al-Qura) Kalender ISO-8601 @@ -1385,7 +1386,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2819,6 +2820,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Waktu {0} Waktu Musim Panas {0} Waktu Standar {0} + + Honolulu + Waktu Universal Terkoordinasi @@ -2960,9 +2964,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kiev - - Honolulu - Beulah, Dakota Utara @@ -3260,13 +3261,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Waktu Musim Panas Tiongkok - - - Waktu Choibalsan - Waktu Standar Choibalsan - Waktu Musim Panas Choibalsan - - Waktu Pulau Natal @@ -3541,6 +3535,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Waktu Musim Panas Petropavlovsk-Kamchatski + + + Waktu Kazakhstan + + Waktu Kazakhstan Timur @@ -4073,7 +4072,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 T ¤ - {0} {1} @@ -5759,6 +5757,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ quart Imp. {0} quart Imp. + + cahaya + {0} cahaya + + + bagian per miliar + {0} bagian per miliar + + + malam + {0} malam + {0} per malam + arah mata angin {0} timur @@ -6127,6 +6138,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ qt Imp. + + cahaya + {0} cahaya + + + bagian/miliar + + + malam + {0} malam + {0}/malam + arah {0} T @@ -6355,6 +6378,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ qt Imp + + cahaya + {0} cahaya + + + malam + {0} malam + {0}/malam + {0}T {0}U diff --git a/make/data/cldr/common/main/ie.xml b/make/data/cldr/common/main/ie.xml index e40e8fad0c7..cee5d7192f9 100644 --- a/make/data/cldr/common/main/ie.xml +++ b/make/data/cldr/common/main/ie.xml @@ -19,7 +19,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic sud-altaic amharesi aragonesi - arabic + arabic mapuche arabic najdi assamesi @@ -53,19 +53,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic nordost-cree cree de Moose algonquinesi de Carolina - tchec + tchec paludan cree chuvash vallesi - danesi + danesi dakota - german - austrian german - sviss alt-german + german + austrian german + sviss alt-german platt sorbic dzongkha - grec - anglesi + grec + anglesi australian anglesi canadian anglesi britannic anglesi @@ -73,21 +73,21 @@ CLDR data files are interpreted according to the LDML specification (http://unic american anglesi anglesi de USA Esperanto - hispan - hispan del latin America - europan hispan - mexican hispan - estonian + hispan + hispan del latin America + europan hispan + mexican hispan + estonian basc - persian + persian dari finn filipinesi fidjian feroesi - francesi + francesi canadian francesi - sviss francesi + sviss francesi cadjun-francesi nord-frisian west-frisian @@ -106,22 +106,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic croatian montan sorbic haitian creol - hungarian + hungarian armenian Interlingua - indonesian - Interlingue + indonesian + Interlingue yi de Sichuan ingush Ido islandesi - italian - japanesi + italian + japanesi Lojban javan georgian kazakh - korean + korean karelian kashmiran kölnesi @@ -130,12 +130,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic latin ladino luxemburgic + ligurian lakota creol de Louisiana nord-lurian lituan luo - lettonian + lettonian maduran macassaresi mokshan @@ -146,7 +147,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic malayalam mongolian malayesi - maltesi + maltesi multiplic lingues mirandesi birman @@ -156,8 +157,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic nord-ndebele bass-german nepalesi - hollandesi - flandrian + hollandesi + flandrian neo-norvegian norvegian sud-ndebele @@ -171,16 +172,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic Papiamento palauan pidgin-nigerian - polonesi + polonesi + prussian pashto - portugalesi - brasilian portugalesi - europan portugalesi + portugalesi + brasilian portugalesi + europan portugalesi quechua rapanuic reto-romanch rumanian - russ + russ sanscrit yakutan santalesi @@ -189,8 +191,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Scots nord-samian sinhalesi - slovac - slovenian + slovac + slovenian samoan shonan somalian @@ -201,8 +203,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic sud-sotho salishan del Straits sundan - sved - swahili + sved + swahili maoresi comoran sirian tadjic @@ -211,7 +213,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Klingon tlingit Toki Pona - turc + turc tataric tahitian tuvan @@ -219,7 +221,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic udmurtan uyghur ukrainan - ínconosset lingue + ínconosset lingue urdu uzbec venda @@ -231,22 +233,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic cantonesi chinesi, cantonesi standard maroccan tamazight - chinesi - chinesi, mandarin + chinesi + chinesi, mandarin chinesi simplificat chinesi traditional zulu sin linguistic contenete - + - + @@ -256,21 +258,21 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - - - + + + + - + - + - + @@ -281,24 +283,24 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + - + - munde - Africa + munde + Africa septentrional America - Sud-America - Oceania + Sud-America + Oceania West-Africa - central America + central America Ost-Africa Nord-Africa central Africa meridional Africa - Americas - Nord-America + Americas + Nord-America Caribes Ost-Asia Sud-Asia @@ -308,38 +310,38 @@ CLDR data files are interpreted according to the LDML specification (http://unic Melanesia region de Micronesia Polinesia - Asia + Asia Central Asia West-Asia - Europa + Europa Ost-Europa Nord-Europa West-Europa Sub-Saharan Africa - latin America + latin America Insul de Ascension Andorra Unit Arab Emiratus Afghanistan Antigua e Barbuda Anguilla - Albania + Albania Armenia Angola - Antarctica + Antarctica Argentinia American Samoa - Austria + Austria Australia Aruba Insules Åland Azerbaidjan - Bosnia e Herzegovina + Bosnia e Herzegovina Barbados Bangladesh - Belgia + Belgia Burkina-Faso - Bulgaria + Bulgaria Bahrain Burundi Benin @@ -362,7 +364,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Central African Republica Congo (Brazzaville) Congo - Svissia + Svissia Coste de Ivor Insules Cook Chile @@ -376,34 +378,34 @@ CLDR data files are interpreted according to the LDML specification (http://unic Curaçao Insul Christmas Cypria - Tchekia - Germania + Tchekia + Germania Diego-Garcia Djibuti - Dania + Dania Dominica Dominican Republica Algeria Ceuta e Melilla Ecuador - Estonia + Estonia Egiptia West-Sahara - Eritrea - Hispania - Etiopia - Union Europan - Zone de euro - Finland - Fidji + Eritrea + Hispania + Etiopia + Union Europan + Zone de euro + Finland + Fidji Insules Falkland Insules Falkland (Malvinas) Micronesia Insulas Feroe - Francia + Francia Gabon - Unit Reyia - UR + Unit Reyia + UR Grenada Georgia Francesi Guiana @@ -415,39 +417,39 @@ CLDR data files are interpreted according to the LDML specification (http://unic Guinea Guadelup Equatoral Guinea - Grecia + Grecia Insules Sud-Georgia e Sud-Sandwich Guatemala Guam Guinea-Bissau - Guyana + Guyana Hong-Kong (SAR de China) Hong-Kong Insules Heard e McDonald Islands Hondura - Croatia + Croatia Haiti - Hungaria + Hungaria Insules Canarias - Indonesia - Irland + Indonesia + Irland Israel Insul de Man - India + India Chagos (BTIO) Britanic Territoria del Indian Ocean Archipelago Chagos Irak - Iran - Island - Italia + Iran + Island + Italia Jersey Jamaica Jordania Japan Kenia Kirgizstan - Cambodja + Cambodja Kiribati Comoros St. Kitts e Nevis @@ -460,33 +462,33 @@ CLDR data files are interpreted according to the LDML specification (http://unic Liban St.-Lucia Liechtenstein - Sri-Lanka + Sri-Lanka Liberia Lesotho Lituania - Luxemburg + Luxemburg Lettonia Libia Marocco - Mónaco + Mónaco Moldova - Montenegro + Montenegro St.-Martin Madagascar Insules Marshall - Nord-Macedonia + Nord-Macedonia Mali Myanmar (Birmania) Mongolia Macao (SAR de China) Macao Insules Nord Mariana - Martinica + Martinica Mauretania Montserrat - Malta - Mauricio - Maldivas + Malta + Mauricio + Maldivas Malawi Mexico Malaysia @@ -494,81 +496,81 @@ CLDR data files are interpreted according to the LDML specification (http://unic Namibia Nov-Caledonia Niger - Insul Norfolk + Insul Norfolk Nigeria Nicaragua Nederland Norvegia Nepal - Nauru + Nauru Niue - Nov-Zeland + Nov-Zeland Oman Panama - Perú + Perú Francesi Polinesia Papua Nov-Guinea - Filipines - Pakistan - Polonia + Filipines + Pakistan + Polonia St.-Pierre e Miquelon Insules Pitcairn - Porto-Rico + Porto-Rico Territorias de Palestina Palestina - Portugal - Palau + Portugal + Palau Paraguay Qatar periferic Oceania Reunion - Rumania - Serbia - Russia + Rumania + Serbia + Russia Rwanda Sauditic Arabia Insules Solomon Seychelles Sudan - Svedia + Svedia Singapur Sant-Helena - Slovenia + Slovenia Svalbard e Jan Mayen - Slovakia + Slovakia Sierra-Leone - San-Marino + San-Marino Senegal Somalia Surinam Sud-Sudan São-Tomé e Príncipe El-Salvador - Sint-Maarten + Sint-Maarten Siria Eswatini Swaziland Tristan-da-Cunha - Turks e Caicos - Tchad + Turks e Caicos + Tchad Territorias meridional de Francia Togo Thailand Tadjikistan - Tokelau - Ost-Timor + Tokelau + Ost-Timor Turkmenistan Tunisia Tonga Turcia - Trinidad e Tobago - Tuvalu + Trinidad e Tobago + Tuvalu Taiwan Tanzania - Ukraina + Ukraina Uganda Insules periferic de USA - Unit Nationes + Unit Nationes Unit States US Uruguay @@ -579,18 +581,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic Insules Vírginas (UR) Insules Vírginas (USA) Vietnam - Vanuatu + Vanuatu Wallis e Futuna - Samoa + Samoa pseudo-diacritica pseudo-bidi - Kosovo + Kosovo Yemen Mayotte Sud-Africa Zambia Zimbabwe - ínconosset region + ínconosset region ortografie post-1901 @@ -677,7 +679,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic chinesi calendare coptic calendare etiopic calendare - gregorian calendare + gregorian calendare hebreic calendare calendare hejra calendare ISO-8601 @@ -693,7 +695,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic órdine de numerarium órdine pinyin órdine por sercha - standard órdine + standard órdine órdine de strecs órdine de radicales sistema 12-hor (0..11) @@ -729,7 +731,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ciffres khmer kannadan ciffres laotic ciffres - occidental ciffres + occidental ciffres ciffres malayalam birmesi ciffres roman ciffres @@ -742,14 +744,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic ciffres vai - metric - anglesi - american + metric + anglesi + american - Lingue: {0} - Scritura: {0} - Region: {0} + Lingue: {0} + Scritura: {0} + Region: {0} @@ -759,10 +761,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic [\- ‐‑ – — , ; \: ! ? . … '‘’ "“”„ « » ( ) \[ \] § @ * / \& † ‡] - « - » - - + « + » + + @@ -952,90 +954,90 @@ CLDR data files are interpreted according to the LDML specification (http://unic - jan. - febr. - mar. - apr. - may - jun. - julí - aug. - sept. - oct. - nov. - dec. + jan. + febr. + mar. + apr. + may + jun. + julí + aug. + sept. + oct. + nov. + dec. - januar - februar - marte - april - may - junio - julí - august - septembre - octobre - novembre - decembre + januar + februar + marte + april + may + junio + julí + august + septembre + octobre + novembre + decembre - J - F - M - A - M - J - J - A - S - O - N - D + J + F + M + A + M + J + J + A + S + O + N + D - sol. - lun. - mar. - mer. - jov. - ven. - sat. + sol. + lun. + mar. + mer. + jov. + ven. + sat. - So - Lu - Ma - Me - Jo - Ve - Sa + So + Lu + Ma + Me + Jo + Ve + Sa - soledí - lunedí - mardí - mercurdí - jovedí - venerdí - saturdí + soledí + lunedí + mardí + mercurdí + jovedí + venerdí + saturdí - S - L - M - M - J - V - S + S + L + M + M + J + V + S @@ -1058,16 +1060,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic - a.m. - p.m. + a.m. + p.m. a. p. - ante midí - pos midí + ante midí + pos midí @@ -1076,124 +1078,124 @@ CLDR data files are interpreted according to the LDML specification (http://unic p. - ante midí - pos midí + ante midí + pos midí - ante Crist - ante era comun - era Cristan - era comun + ante Crist + ante era comun + era Cristan + era comun - a.C. - a.e.c. - e.C. - e.c. + a.C. + a.e.c. + e.C. + e.c. - EEEE d MMMM y + EEEE d MMMM y - d MMMM y + d MMMM y - d MMM y + d MMM y - d.M.yy + d.M.yy - HH:mm:ss zzzz + HH:mm:ss zzzz - HH:mm:ss z + HH:mm:ss z - HH:mm:ss + HH:mm:ss - HH:mm + HH:mm - {1} {0} + {1} {0} - {1} 'ye' {0} + {1} 'ye' {0} - {1} {0} + {1} {0} - {1} 'ye' {0} + {1} 'ye' {0} - {1} {0} + {1} {0} - {1} {0} + {1} {0} - d. - E d - y G - d.M.y G - LLL y G - d MMM y G - E d MMM y G + d. + E d + y G + d.M.y G + LLL y G + d MMM y G + E d MMM y G H 'h'. - d.M - E d.M - d MMM - E d MMM - d MMMM - W-'im' 'semane' 'de' MMMM - M.y - d.M.y - E d.M.y - MMM y - d MMM y - EEEE d MMM y - LLLL y - QQQ y - QQQQ y - w-'im' 'semane' 'de' Y + d.M + E d.M + d MMM + E d MMM + d MMMM + W-'im' 'semane' 'de' MMMM + M.y + d.M.y + E d.M.y + MMM y + d MMM y + EEEE d MMM y + LLLL y + QQQ y + QQQQ y + w-'im' 'semane' 'de' Y - {0} til {1} + {0} til {1} h – h B @@ -1203,7 +1205,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic h:mm – h:mm B - d. – d. + d. – d. y G 'til' y G @@ -1244,7 +1246,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic E d MMM y – E d MMM y G - H – H 'h'. + H – H 'h'. HH:mm – HH:mm @@ -1258,7 +1260,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic HH – HH v - M – M + M – M d. – d.M @@ -1280,7 +1282,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic E d MMM – E d MMM - y – y + y – y M.y – M.y @@ -1320,13 +1322,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic - era + era - annu - ultim annu - ho-annu - sequent annu + annu + ultim annu + ho-annu + sequent annu pos {0} annus @@ -1340,7 +1342,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic seq. annu - a + a ult. a. ho-a. seq. a. @@ -1352,7 +1354,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - trimestre + trimestre ultim trimestre ho-trimestre sequent trimestre @@ -1376,7 +1378,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic tr - mensu + mensu ultim mensu ho-mensu sequent mensu @@ -1406,7 +1408,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - semane + semane ultim semane ho-semane sequent semane @@ -1444,10 +1446,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic sem/mn - die - yer - hodie - deman + die + anteyer + yer + hodie + deman + posdeman pos {0} dies @@ -1456,7 +1460,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - d + d pos {0} d @@ -1696,10 +1700,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic - midídie + midídie - hor + hor ti hor pos {0} hores @@ -1709,7 +1713,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - h + h pos {0} h @@ -1718,7 +1722,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - minute + minute ti minute pos {0} minutes @@ -1728,7 +1732,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - min + min pos {0} min @@ -1737,7 +1741,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - m + m pos {0} m @@ -1746,7 +1750,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - seconde + seconde nu pos {0} secondes @@ -1756,7 +1760,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - sec + sec pos {0} sec @@ -1765,7 +1769,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - s + s pos {0} s @@ -1774,18 +1778,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic - zone horari + zone horari zone - TMG{0} - TMG - témpor de {0} - témpor estival de {0} - témpor standard de {0} + TMG{0} + TMG + témpor de {0} + témpor estival de {0} + témpor standard de {0} universal témpor coordinat @@ -2203,7 +2207,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - témpore medial de Greenwich + témpore medial de Greenwich @@ -2293,10 +2297,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic - 2 + 2 - , -   + , +   @@ -2335,7 +2339,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - ¤ #,##0.00;¤ -#,##0.00 + ¤ #,##0.00;¤ -#,##0.00 @@ -3011,8 +3015,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}..{1} - {0} dies - Li {0}-im edition + {0} dies + Li {0}-im edition @@ -3791,7 +3795,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - {0} e {1} + {0} e {1} {0} o {1} diff --git a/make/data/cldr/common/main/ig.xml b/make/data/cldr/common/main/ig.xml index 4727e79a5fb..bd305223871 100644 --- a/make/data/cldr/common/main/ig.xml +++ b/make/data/cldr/common/main/ig.xml @@ -12,6 +12,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic + Afar Abkaziani Achinisi Adangme @@ -20,12 +21,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic Aghem Ainu Akan - Alụt - Sọutarn Altai + Aleut + Southern Altai Amariikị Aragonisị - Obolọ + Obolo Angika + apcc Arabiikị Ụdị Arabiikị nke oge a Mapuche @@ -34,81 +36,91 @@ CLDR data files are interpreted according to the LDML specification (http://unic Asamisị Asụ Asturianị - Atikamekwe + Atikamekw Avarịk - Awadị - Ayịmarà - Azerbajanị + Awadhi + Aymara + Azerbaijani Azeri - Bashki - Balinisị + Bashkir + Baluchi + Balinese Basaà - Belarusianụ + Belarusian Bembà + Betawi Bena - Bọlụgarịa + Bulgarian Haryanvi + Western Balochi Bojpuri Bislama Bini Siksikà + Anii + Tai Dam Bambara - Bengali + Bangla Tibetan Breton - Bọdọ - Bosnia - Buginisị + Bodo + Bosnian + Akoose + Buginese Blin Catalan + Caddo Cayuga + Atsam Chakma Chechen - Cebụanọ + Cebuano Chiga - Chamoro - Chukisị + Chamorro + Chuukese Mari - Choctawu - Chipewan - Cheroke + Choctaw + Chipewyan + Cherokee Cheyene - Kurdish ọsote - Kurdish ọzọ - Chilcotinị - Kọsịan - Mịchif - Sọutarn East kree - Plains kree - Nọrtan Eastị Kree - Moọse kree - Carolina Algonịkwan - Cheekị - Swampi kree + Chickasaw + Central Kurdish + Kurdish, Central + Kurdish, Sorani + Chilcotin + Corsican + Michif + Southern East Cree + Plains Cree + Northern East Cree + Moose Cree + Carolina Algonquian + Czech + Asụsụ Swampy Kree Church slavic Chuvash - Wesh - Danịsh + Welsh + Danish Dakota - Dagwa - Taịta - Jamanị - Jaman ndị Austria - Jaman Izugbe ndị Switzerland - Dogribụ + Dargwa + Taita + German + Austrian German + Swiss High German + Dogrib Zarma Dogri - Lowa Sorbịan - Dụala + Lower Sorbian + Duala Divehi - Jọla-Fọnyị + Jola-Fonyi Dọzngọka Dazaga - Ebụm + Embu Ewe Efik - Ekajukụ - Giriikị + Ekajuk + Grik Bekee Bekee ndị Australia Bekee ndị Canada @@ -116,395 +128,554 @@ CLDR data files are interpreted according to the LDML specification (http://unic Bekee ndị UK Bekee ndị America Bekee ndị US - Ndị Esperantọ - Spanishi - Spanishi ndị Latin America - Spanishi ndị Europe - Spanishi ndị Mexico - Ndị Estọnịa - Baskwe - Ewọndọ - Peshianụ + Esperanto + Spanish + Spanish ndị Latin America + Spanish ndị Europe + Spanish ndị Mexico + Estonian + Basque + Ewondo + Asụsụ Persia + Dari Fula - Fịnịsh - Fịlịpịnọ + Finnish + Filipino Fijanị - Farọse + Faroese Fon - Fụrenchị - Fụrench ndị Canada - Fụrench ndị Switzerland - Kajun Furenchị - Nọrtan Frisian - Frụlịan - Westan Frịsịan - Ịrịsh + French + Canadian French + Swiss French + Cajun French + Northern Frisian + Friulian + Ọdịda anyanwụ Frisian + Irish Ga - Sụkọtịs Gelị - Gịzị - Gilbertisị - Galịcịan - Gwarani + Asụsụ Scottish Gaelic + Geez + Gilbertese + Galician + Guarani Gorontalo German Swiss - Gụaratị - Gụshị + Gujarati + Gusii Mansị - Gwichin + Gwichʼin Hausa Haida Hawaịlịan - Sọutarn Haida + Southern Haida Hebrew - Hindị + Hindi + Hinglish Hiligayanon Hmong - Kọrọtịan - Ụpa Sọrbịa + Hmong Njua + Croatian + Upper Sorbian Haịtịan ndị Cerọle - Hụngarian + Hungarian Hupa Halkomelem Armenianị Herero - Intalịgụa - Ibanị + Interlingua + Iban Ibibio - Indonisia + Indonesian + Interlingue Igbo - Sịchụayị + Sichuan Yi Westarn Canadian Inuktitut Iloko Ingush Ido - Icịlandịk - Italịanu - Inuktitutị - Japaniisi + Icelandic + Italian + Inuktitut + Japanese Lojban - Ngọmba + Ngomba Machame - Java - Geọjịan + Javanese + Georgian + Kara-Kalpak Kabyle Kachin - Ju + Jju Kamba Kabadian - Tịyap - Makọnde + Tyap + Makonde Kabụverdịanụ + Kenyang Koro - Kainganga + Kaingang Khasi - Kọyra Chịnị - Kịkụyụ - Kwanyama - Kazak - Kakọ - Kalaalịsụt - Kalenjịn - Keme - Kimbundụ - Kanhada - Korịa - Kọnkanị - Kpele + Koyra Chiini + Kikuyu + Kuanyama + Kazakh + Kako + Kalaallisut + Kalenjin + Khmer + Kimbundu + Kannada + Korean + Konkani + Kpelle Kanuri - Karaché-Balka + Karachay-Balkar Karelian - Kuruk - Kashmịrị - Shabala + Kurukh + Kashmiri + Shambala Bafịa - Colognịan - Ndị Kụrdịsh + Colognian + Kurdish Kumik Komi - Kọnịsh - Kwakwala - Kyrayz - Latịn + Cornish + Kwakʼwala + Kuvi + Kyrgyz + Latin Ladino Langị - Lụxenbọụgịsh - Lezgian + Luxembourgish + Lezghian Ganda Limburgish + Ligurian Liloetị Lakota - Lịngala - Laọ - Louisiana Kreole + ID + Lombard + Lingala + Lao + Louisiana Creole Lozi - Nọrtụ Lụrị - Samia - Lituanian - Lịba-Katanga + Northern Luri + Saamia + Lithuanian + Latgalian + Luba-Katanga Luba-Lulua Lunda Mizo - Lụyịa - Latviani + Luyia + Latvian Madurese Magahi - Maịtịlị - Makasa - Masaị + Maithili + Makasar + Masai Moksha Mende - Merụ - Mọrịsye - Malagasị - Makụwa Metọ + Meru + Morisyen + Malagasy + Makhuwa-Meetto Meta - Marshalese - Maọrị - Mịkmak - Mịnangkabau - Masedọnịa + Marshallese + mhnn + Māori + Mi'kmaw + Minangkabau + Macedonian Malayalam Mọngolịan - Manịpụrị - Inu-imun - Mohọk + Asụsụ Manipuri + Innu-aimun + Mohawk Mossi - Maratị - Maleyi - Matịse - Mụdang + Asụsụ Marathi + Malay + Asụsụ Malta + Mundang Ọtụtụ asụsụ Muscogee - Mịrandisị - Bụrmese - Erzaya - Mazandaranị + Mirandese + Burmese + Erzya + Mazanderani Nauru - Nịapolitan + Neapolitan Nama - Nọrweyịan Bọkmal - Nọrtụ Ndabede - Lowa German + Norwegian Bokmål + North Ndebele + Low German + Low Saxon Nepali - Nịwari + Newari Ndonga Nias - Niwan - Dọchị - Kwasịọ - Nọrweyịan Nynersk - Nglembọn - Nọrweyịan + Niuean + Dutch + Flemish + Kwasio + Norwegian Nynorsk + Ngiemboon + Norwegian Nogai - Nkọ - Sọut Ndebele - Nọrtan Sotọ - Nụer + N’Ko + South Ndebele + Northern Sotho + Nuer Navajo Nyanja - Nyakọle - Osịtan - Nọrtwestan Ojibwa - Ojibwa ọsote - Oji-kree + Nyankole + Asụsụ Osịtan + Northwestern Ojibwa + Central Ojibwa + Oji-Cree Westarn Ojibwa Okanagan - Ọromo + Oromo Ọdịa - Osetik + Ossetic + Osage Punjabi Pangasinan Pampanga - Papịamento - Palawan - Pidgịn - Pijịn - Poliishi - Maliset-Pasamakwodị + Papiamento + Palauan + Pidgin ndị Naijirịa + Pijin + Asụsụ Polish + Maliseet-Passamaquoddy Prụssịan Pashọ Pọrtụgụese - Pọrtụgụese ndị Brazil + Asụsụ Portugese ndị Brazil Asụsụ Portuguese ndị Europe - Qụechụa + Asụsụ Quechua + Kʼicheʼ Rajastani - Rapunwị - Rarotonganị - Rohinga - Rọmansị - Rụndị - Romania - Rọmbọ - Rọshian + Rapanui + Rarotongan + Rohingya + Riffian + Asụsụ Romansh + Rundi + Asụsụ Romanian + Moldavian + Rombo + Asụsụ Russia Aromanian Kinyarwanda Rwa - Sansịkịt + Asụsụ Sanskrit Sandawe - Saka - Sambụrụ - Santalị - Nkambé - Sangụ - Sardinian - Sisịlian + Yakut + Samburu + Asụsụ Santali + Ngambay + Sangu + Asụsụ Sardini + Sicilian Scots - Sịndh - Nọrtan Samị + Asụsụ Sindhi + Southern Kurdish + Northern Sami Sena - Kọyraboro Senị - Sangọ + Koyraboro Senni + Sango Tachịkịt Shan Sinhala - Slova - Slovịan - Sọutarn Lushoọtseed - Samọa - Inarị Samị + Sidamo + Asụsụ Slovak + skrr + Asụsụ Slovenia + Southern Lushootseed + Samoan + Southern Sami + Lule Sami + Inari Sami Skolt sami - Shọna - Soninké + Shona + Soninke Somali - Albanianị - Sebịan + Asụsụ Albania + Asụsụ Serbia Sranan Tongo Swati - Sọụth Soto + Saho + Southern Sotho Straits Salish - Sudanese + Asụsụ Sundan Sukuma Sụwidiishi - Swahili - Komorịan + Asụsụ Swahili + Comorian Sirịak + Asụsụ Sileshia Tamil - Sọutarn Tuchone - Telụgụ + Southern Tutchone + Telugu Timne - Tesọ + Teso Tetum - Tajịk + Tajik Tagish - Taị + Thai Tahitan - Tịgrịnya - Tịgre - Turkịs + Tigrinya + Tigre + Turkmen Klingon - Tlịngịt - Swana - Tọngan - Tokị pọna + Tlingit + Tswana + Tongan + Toki Pona Tok pisin - Tọkiishi - Tarokọ - Songa - Tata - Nọrtan Tuchone + Turkish + Taroko + Torwali + Tsonga + Asụsụ Tatar + Northern Tutchone Tumbuka Tuvalu - Tasawa + Tasawaq Tahitian Tuvinian - Central Atlas - Udumụrt - Ụyghụr - Ukureenị - Umbụndụ - Asụsụ amaghị - Urdụ - Ụzbek - Val + Central Atlas Tamazight + Udmurt + Uyghur + Asụsụ Ukrain + Umbundu + Asụsụ a na-amaghị + Urdu + Uzbek Venda - Vietnamisi - Volapụ - Vụnjọ - Waloọn - Wasa - Woleịta - Waraị - Wolọf - Wụ Chainisị - Kalmik - Xhọsa - Sọga + Asụsụ Veneshia + Vietnamese + Makhuwa + Volapük + Vunjo + Walloon + Walser + Wolaytta + Waray + Warlpiri + Wolof + Wu Chinese + Kalmyk + Xhosa + Kangri + Soga Yangben Yemba - Yịdịsh + Yiddish Yoruba - Nheengatụ - Katọnịse - Chinese,Cantonese - Standard Moroccan Tamazait - Chainisi - Asụsụ Chinese dị mfe - Asụsụ Chinese Izugbe + Asụsụ Nheengatu + Cantonese + Chaịniiz,Cantonese + Zhuang + Standard Moroccan Tamazight + Chaịniiz + Chaịniiz, Mandarin + Asụsụ Chaịniiz dị mfe + Asụsụ Mandarin Chaịniiz dị mfe + Asụsụ ọdịnala Chaịniiz + Asụsụ ọdịnala Mandarin Chaịniiz Zulu Zuni - Ndị ọzọ abụghị asụsụ + Enweghị asụsụ dịnaya Zaza + - + + + + + + + + - + + + + - - + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + - + + + + + + - - - + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + - + - - - + + + Uwa @@ -520,7 +691,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Mpaghara Mgbada Ugwu Afrịka Amerịka Mpaghara Ugwu America - Onye Carrabean + Caribbean Mpaghara Ọwụwa Anyanwụ Asia Mpaghara Mgbada Ugwu Asia Mpaghara Mgbada Ugwu Asia dị na Ọwụwa Anyanwụ @@ -553,7 +724,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Austria Australia Aruba - Agwaetiti Aland + Åland Islands Azerbaijan Bosnia & Herzegovina Barbados @@ -563,8 +734,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Bulgaria Bahrain Burundi - Binin - Barthélemy Dị nsọ + Benin + St. Barthélemy Bemuda Brunei Bolivia @@ -572,11 +743,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Brazil Bahamas Bhutan - Agwaetiti Bouvet + Bouvet Island Botswana Belarus Belize - Kanada + Canada Agwaetiti Cocos (Keeling) Congo - Kinshasa Congo (DRC) @@ -592,6 +763,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic China Colombia Agwaetiti Clipperton + Sark Kosta Rika Cuba Cape Verde @@ -600,11 +772,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Cyprus Czechia Czech Republik - Jamanị + Germany Diego Garcia Djibouti Denmark - Dominika + Dominica Dominican Republik Algeria Ceuta & Melilla @@ -619,16 +791,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic Gburugburu Euro Finland Fiji - Agwaetiti Falkland + Falkland Islands + Falkland Islands (Islas Malvinas) Micronesia - Agwaetiti Faroe + Faroe Islands France Gabon United Kingdom UK Grenada Georgia - Frenchi Guiana + French Guiana Guernsey Ghana Gibraltar @@ -638,18 +811,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic Guadeloupe Equatorial Guinea Greece - South Georgia na Agwaetiti South Sandwich + South Georgia & South Sandwich Islands Guatemala Guam Guinea-Bissau Guyana Hong Kong SAR China + Hong Kong Agwaetiti Heard na Agwaetiti McDonald Honduras Croatia - Hati + Haiti Hungary - Agwaetiti Kanarị + Canary Islands Indonesia Ireland Israel @@ -669,16 +843,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kyrgyzstan Cambodia Kiribati - Comorosu - Kitts na Nevis Dị nsọ - Ugwu Korea + Comoros + St. Kitts & Nevis + North Korea South Korea Kuwait - Agwaetiti Cayman + Cayman Islands Kazakhstan Laos Lebanon - Lucia Dị nsọ + St. Lucia Liechtenstein Sri Lanka Liberia @@ -691,8 +865,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Monaco Moldova Montenegro - Martin Dị nsọ - Madagaskar + St. Martin + Madagascar Agwaetiti Marshall North Macedonia Mali @@ -710,7 +884,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Malawi Mexico Malaysia - Mozambik + Mozambique Namibia New Caledonia Niger @@ -723,18 +897,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic Nauru Niue New Zealand + Aotearoa New Zealand Oman Panama Peru - Frenchi Polynesia + French Polynesia Papua New Guinea Philippines Pakistan Poland - Pierre na Miquelon Dị nsọ + St. Pierre & Miquelon Agwaetiti Pitcairn Puerto Rico - Palestinian Territories + Mpaghara ndị Palestine + Palestine Portugal Palau Paraguay @@ -743,7 +919,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Réunion Romania Serbia - Rụssịa + Russia Rwanda Saudi Arabia Agwaetiti Solomon @@ -768,7 +944,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Eswatini Swaziland Tristan da Cunha - Agwaetiti Turks na Caicos + Turks & Caicos Islands Chad Ụmụ ngalaba Frenchi Southern Togo @@ -780,7 +956,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Turkmenistan Tunisia Tonga - Turkey + Türkiye Trinidad na Tobago Tuvalu Taiwan @@ -793,10 +969,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic Uruguay Uzbekistan Vatican City - Vincent na Grenadines Dị nsọ + St. Vincent & Grenadines Venezuela - Agwaetiti British Virgin - Agwaetiti Virgin nke US + British Virgin Islands + U.S. Virgin Islands Vietnam Vanuatu Wallis & Futuna @@ -809,62 +985,77 @@ CLDR data files are interpreted according to the LDML specification (http://unic South Africa Zambia Zimbabwe - Mpaghara Amaghị + Mpaghara A na-amaghị - Kalịnda + Kalenda Ụsọrọ egọ Ụsọrọ Nhazị Egọ - Ọge ọkịrịkịrị + Okịrịkịrị Awa (12 vs 24) Akara akanka nkwụsị Ụsọrọ Mmeshọ Nọmba - Kalịnda Bụddịst - Kalịnda Chinese + Kalenda Bụddịst + Kalenda Chinese Kalenda Koptic - Kalịnda Dang - Kalịnda Etopịa + Kalenda Dang + Kalenda Etopịa Etiopic Amete Alem Kalenda Kalenda Gregory - Kalịnda Hebrew + Kalenda Hebrew + Kalenda India Kalenda Hijri Kalenda Hijri + Kalenda Hijri (Saudi Arabia, sighting) + Kalenda Hijri (tabular, astronomical epoch) Kalenda Hijri (Umm al-Qura) Kalenda ISO-8601 - Kalịnda Japanese - Kalịnda Persian - Kalịnda repụblic nke China + Kalenda Japanese + Kalenda Persian + Kalenda repụblic nke China Ụsọrọ akantụ egọ Ụsọrọ egọ nzụgbe Default Unicode ụsọrọ nhazị + Nhazị akwụkwọ ebe a na-ede nọmba fon + Pinyin ụsọrọ nhazị Ọchụchụ nịle Usoro Nhazi - Ụsọrọ Ọge ọkịrịkịri 12 - Ụsọrọ Oge okịrịkịri 12 - Ụsọrọ Oge okịrịkịrị 24 - Ụsọrọ Ọge okịrịkịrị 24 + Ụsọrọ Okịrịkịrị awa iri na abụọ (0–11) + Ụsọrọ Okịrịkịrị awa iri na abụọ (0–12) + Ụsọrọ Okịrịkịrị (0–23) + Ụsọrọ Okịrịkịrị (1–24) Akara akanka nkwụsị esịghị ịke Akara akanka nkwụsị kwesịrị Akara akanka nkwụsị sịrị ịke - Ụsọrọ Metịrịk + Ụsọrọ Metric Ụsọrọ Mmeshọ ịmperịa Ụsọrọ Mmeshọ US + Ọnụ ọgụgụ Ahom Ọnụ ọgụgụ Arab na Indị Ọnụ ọgụgụ Arab na Indị agbatịrị - Ọnụ ọgụgụ Armenịan - ọbere ọnụ ọgụgụ Armenịan - Ọnụ ọgụgụ Bang + Ọnụ ọgụgụ Armenịa + ọbere ọnụ ọgụgụ Armenịa + Balinese Digits + Ọnụ ọgụgụ Bangla + Brahmi Digits Ọnụ ọgụgụ Chakma + Cham Digits + Ọnụ ọgụgụ Cyrillic Ọnụ ọgụgụ Devanagarị + Ọnụ ọgụgụ Dives Akuru Ọnụ ọgụgụ Etọpịa Ọnụ ọgụgụ ọbọsara - Ọnụ ọgụgụ Geọjịan - Ọnụ ọgụgụ Greek - Ọbere ọnụ ọgụgụ Greek + Ọnụ ọgụgụ Garay + Ọnụ ọgụgụ Georgian + Ọnụ ọgụgụ Gunjala Gondi + Ọnụ ọgụgụ Masaram Gondi + Ọnụ ọgụgụ Grik + Ọbere ọnụ ọgụgụ Grik Ọnụ ọgụgụ Gụjaratị + Ọnụ ọgụgụ Gurung Khema Onụ ọgụgụ Gụmụkh Ọnụ ọgụgụ ntụpọ Chịnese Ọnụ ọgụgụ mfe Chịnese @@ -872,26 +1063,66 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ọnụ ọgụgụ ọdinala chinese Ọnụ ọgụgụ akantụ ọdịnala Chinese Ọnụ ọgụgụ Hebrew + Ọnụ ọgụgụ Pahawh Hmong + Ọnụ ọgụgụ Nyiakeng Puachue Hmong Ọnụ ọgụgụ Javanịsị Ọnụ ọgụgụ Japanese Ọnụ ọgụgụ akantụ Japanese + Ọnụ ọgụgụ Kayah Li + Ọnụ ọgụgụ Kawi Ọnụ ọgụgụ Khmer - Ọnụ ọgụgụ Kanada - Ọnụ ọgụgụ Laọ + Ọnụ ọgụgụ Kannada + Ọnụ ọgụgụ Kirat Rai + Ọnụ ọgụgụ Tai Tham Hora + Ọnụ ọgụgụ Tai Tham Tham + Ọnụ ọgụgụ Lao Ọnụ Ọgụgụ Mpaghara Ọdịda Anyanwụ + Ọnụ ọgụgụ Lepcha + Ọnụ ọgụgụ Limbu + Ọnụ ọgụgụ Mathematical Bold + Ọnụ ọgụgụ Mathematical Double-Struck + Ọnụ ọgụgụ Mathematical Monospace + Ọnụ ọgụgụ Mathematical Sans-Serif Bold + Ọnụ ọgụgụ Mathematical Sans-Serif Ọnụ ọgụgụ Malayala + Ọnụ ọgụgụ Modi + Ọnụ ọgụgụ Mongolian + Ọnụ ọgụgụ Mro Ọnụ ọgụgụ Meetei Mayek Ọnụ ọgụgụ Myamar + Ọnụ ọgụgụ Myanmar Eastern Pwo Karen + Ọnụ ọgụgụ Myanmar Pao + Ọnụ ọgụgụ Myanmar Shan + Ọnụ ọgụgụ Myanmar Tai Laing + Ọnụ ọgụgụ Nag Mundari + Ọnụ ọgụgụ N’Ko Ọnụ ọgụgụ Ochiki + Ọnụ ọgụgụ Ol Onal Ọnụ ọgụgụ Ọdịa + Ọnụ ọgụgụ Osmanya + Ọnụ ọgụgụ Outlined + Ọnụ ọgụgụ Hanifi Rohingya Ọnụ ọgụgụ Roman Ọbere Ọnụ ọgụgụ Roman + Ọnụ ọgụgụ Saurashtra + Ọnụ ọgụgụ Sharada + Ọnụ ọgụgụ Khudawadi + Ọnụ ọgụgụ Sinhala Lith + Ọnụ ọgụgụ Sora Sompeng + Ọnụ ọgụgụ Sundanese + Ọnụ ọgụgụ Sunuwar + Ọnụ ọgụgụ Takri + Ọnụ ọgụgụ New Tai Lue Ọnụ ọgụgụ ọdịnala Tamịl Ọnụ ọgụgụ Tamị Ọnụ ọgụgụ Telụgụ Ọnụ ọgụgụ Taị Ọnụ ọgụgụ Tịbeta + Ọnụ ọgụgụ Tirhuta + Ọnụ ọgụgụ Tangsa Ọnụ ọgụgụ Vai + Ọnụ ọgụgụ Warang Citi + Ọnụ ọgụgụ Wancho Metriik @@ -903,9 +1134,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic - [a b {ch} d eẹ f g {gb} {gh} {gw} h i ị j k {kp} {kw} l m n ṅ {nw} {ny} o ọ p r s {sh} t u ụ v w y z] + [a b {ch} d e f g {gb} {gh} {gw} h i ị j k {kp} {kw} l m n ṅ {nw} {ny} o ọ p r s {sh} t u ụ v w y z] [áàā c éèē íìī {ị́}{ị̀} ḿ{m̀} ńǹ óòō {ọ́}{ọ̀} q úùū {ụ́}{ụ̀} x] - [A B C D E F G H I J K L M N O P Q R S T U V W X Y Z] + [A B {CH} C D E F G {GB} {GH} {GW} H I Ị J K {KP} {KW} L M N Ṅ {NW} {NY} O Ọ P Q R S {SH} T U Ụ V W X Y Z] [\- ‑ , ; \: ! ? . ‘’ “” ( ) \[ \] \{ \}] @@ -975,6 +1206,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic QQQ y QQQQ y + + + MMM – MMM + + @@ -1000,7 +1236,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Maachị Epreel Mee - Juun + Jun Julaị Ọgọọst Septemba @@ -1024,6 +1260,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic N D + + Jenụwarị + Febrụwarị + Maachị + Epreel + Mee + Jun + Julaị + Ọgọọst + Septemba + Ọktoba + Novemba + Disemba + @@ -1051,10 +1301,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Ọ1 - Ọ2 - Ọ3 - Ọ4 + Q1 + Q2 + Q3 + Q4 Ọkara 1 @@ -1063,18 +1313,44 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ọkara 4 + + + Q1 + Q2 + Q3 + Q4 + + - A.M. - P.M. + N’ụtụtụ + N’abalị + + + N’ụtụtụ + N’abalị N’ụtụtụ N’abali + + + N’ụtụtụ + N’abalị + + + N’ụtụtụ + N’abalị + + + N’ụtụtụ + N’abalị + + @@ -1084,10 +1360,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic Oge Afọ - T.K. - TOA - A.K. - OA + BC + BCE + AD + CE BCE @@ -1207,14 +1483,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic h a – h a v h–h a v + + M – M + - MM/dd – MM/dd - MM/dd – MM/dd + M/d – M/d + M/d – M/d - E, MM/dd – E, MM/dd + E, M/d – E, M/d MM-dd, E – MM-dd, E + + MMM – MMM + MMM d – MMM d @@ -1257,25 +1539,76 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Agba + Oge + + + Oge + + + Oge Afọ Afọ gara aga Afọ a - Afọ ọzọ + Afọ na-abịa + + + Afọ gara aga + Afọ a + afọ na-abịa + + + Afọ gara aga + Afọ a + afọ na-abịa + + Afọ {0} gara aga + Ọnwa atọ n’afọ Nkejị keanọ gara aga nkejị keanọ a nkejị keanọ na abịa + + Nkejị keanọ {0} + + + Nkejị keanọ {0} gara aga + + + + + Nkejị keanọ {0} + + + Nkejị keanọ {0} gara aga + + + + + Nkejị keanọ {0} + + + Nkejị keanọ {0} gara aga + Ọnwa Ọnwa gara aga Ọnwa a - Ọnwa ọzọ + Ọnwa na-abịa + + + Ọnwa gara aga + Ọnwa a + Ọnwa na-abịa + + + Ọnwa gara aga + Ọnwa a + Ọnwa na-abịa Izu @@ -1297,6 +1630,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ụnyaahụ Taata Echi + + n’ụbọchị {0} + + + n’ụbọchị {0} gara aga + + + + + n’ụbọchị {0} + + + n’ụbọchị {0} gara aga + ụbọchị na afọ @@ -1324,9 +1671,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic ụbọchị ụka na abịa - ụbọchị ụka gara aga - ụbọchị ụka a - ụbọchị ụka na abịa + ụbọchị Sọnde gara aga + ụbọchị Sọnde a + ụbọchị Sọnde na abịa ụbọchị Mọnde gara aga @@ -1344,19 +1691,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic ụbọchị Monde na abịa - ụbọchị Tuesde gara aga - ụbọchị Tuesde a - ụbọchị Tuesde na abịa + ụbọchị Tuzde gara aga + ụbọchị Tuzde a + ụbọchị Tuzde na abịa ụbọchị Tụesde gara aga - ụbọchị Tuesde a - ụbọchị Tuesde na abịa + ụbọchị Tuzde a + ụbọchị Tuzde na abịa - ụbọchị Tuesde gara aga - ụbọchị Tuesde a - ụbọchị Tuesde na abịa + ụbọchị Tuzde gara aga + ụbọchị Tuzde a + ụbọchị Tuzde na abịa ụbọchị wednesde gara aga @@ -1397,21 +1744,39 @@ CLDR data files are interpreted according to the LDML specification (http://unic ụbọchị Faraịde gara aga ụbọchị Faraịde a ụbọchị na abịa + + n’ụbọchị Faraịde {0} + + + n’ụbọchị Faraịde gara aga {0} + ụbọchị Faraịde gara aga ụbọchị Faraịde a ụọchị Faraịde na abịa + + n’ụbọchị Faraịde {0} + + + n’ụbọchị Faraịde gara aga {0} + ụbọchị Satụde gara aga ụbọchị Satụde a ụbọchị Satụde na abịa + + Ụbọchị Satụde {0} gara aga + Ụbọchị Satụde gara aga ụbọchị Satụde a ụbọchị Satụde na abịa + + Ụbọchị Satụde {0} gara aga + ụbọchị Satụde gara aga @@ -1430,9 +1795,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic nkejị a - Tịm kọm ụgbụa + + sekọnd + + + sekọnd + Mpaghara oge @@ -1459,6 +1829,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Oge Okpomọkụ Ireland + + Enderbury + Oge Afghanistan @@ -1674,13 +2047,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Oge Ihe China - - - Oge Choibals - Oge Izugbe Choibals - Oge Okpomọkụ Choibals - - Oge Ekeresimesi Island @@ -1919,6 +2285,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Oge Ihe Japan + + + Oge Kazakhstan + + Oge Mpaghara Ọwụwa Anyanwụ Kazakhstan @@ -2406,7 +2777,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} ¤¤ - {0} {1} @@ -2764,7 +3134,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ego Kina obodo Papua New Guinea - Ego piso obodo Philippine + Ego Piso obodo Philippine Ego Rupee obodo Pakistan @@ -2938,37 +3308,58 @@ CLDR data files are interpreted according to the LDML specification (http://unic ubochi {0} - Si uzo aka nri {0} + Si uzo aka nri nke {0}th + + deci{0} + + + obere{0} + ronto{0} kwekto{0} + + mega{0} + + + giga{0} + + + tera{0} + ronna{0} kwetta{0} + + {0} per {1} + - {0} square + {0} sukwia - {0} cubic + {0} kubik Ọtụtụ nari afọ + {0} Ọtụtụ nari afọ Ọtụtụ afọ iri + {0} Ọtụtụ afọ iri Ọtụtụ Afọ + {0} Ọtụtụ Afọ Nkeji Nkeano @@ -2976,17 +3367,50 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ọtụtụ Ọnwa + {0} Ọnwa + {0} kwa Ọnwa Ọtụtụ Izu + {0} Ọtụtụ Izu + {0} kwa Izu Ọtụtụ Ubochi + {0} Ọtụtụ Ubochi + + + Ọtụtụ awa + {0} Ọtụtụ awa + + + nkeji + {0} nkeji + {0} kwa nkeji + + + sekọnd + {0} sekọnd + {0} kwa sekọnd Kalori {0} Kalori + + {0} pixels + + + megapixels + + + pixels per centimeter + {0} pixels per centimeter + + + pixels per inch + {0} pixels per inch + ntụpọ kwa sentimita {0} ntụpọ kwa sentimita @@ -3008,6 +3432,25 @@ CLDR data files are interpreted according to the LDML specification (http://unic mmiri dram + + ìhè + {0} ìhè + + + akụkụ kwa ijeri + {0} akụkụ kwa ijeri + + + Ọtụtụ abali + {0} Ọtụtụ abali + {0} kwa abali + + + cardinal direction + {0} north + {0} south + {0} west + @@ -3017,25 +3460,54 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} qtrs + + {0} mths + + + {0} wks + + + Ọtụtụ Ubochi + {0} Ọtụtụ Ubochi + + + Ọtụtụ awa + {0} awa + Kal {0} Kal - nksm - {0} nksm + dpcm + {0} dpcm - nki + dpi {0} nki ntụpọ {0} ntụpọ + + ngaji mégharia onu + dobé + + ìhè + {0} ìhè + + + akụkụ/ijeri + + + Ọtụtụ abali + {0} Ọtụtụ abali + {0}/abali + @@ -3050,6 +3522,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}q + + Ubochi + {0} Ọtụtụ Ubochi + + + awa + {0} awa + μsec {0}μs @@ -3076,19 +3556,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}MP - - pksm - {0}pksm - - - pki - {0}pki - - {0}nksm + dpcm + {0}dpcm - {0}nki + dpi + {0}dpi {0}ntụpọ @@ -3096,6 +3570,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic B{0} + + ìhè + {0}ìhè + + + akụkụ/ijeri + + + Ọtụtụ abali + {0}Ọtụtụ abali + {0}/abali + @@ -3103,7 +3589,32 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}, na {1} {0} na {1} + + {0}, ma ọ bụ {1} + {0} ma ọ bụ {1} + + + {0}, ma ọ bụ {1} + {0} ma ọ bụ {1} + + + {0}, ma ọ bụ {1} + {0} ma ọ bụ {1} + + {0}, {1} + {0}, {1} + + + {0}, {1} + {0}, {1} + + + {0} {1} + {0} {1} + + + {0}, {1} {0}, {1} @@ -3324,7 +3835,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Amadi - Mr. + Maazị Christopher Chris Chukwudike diff --git a/make/data/cldr/common/main/ii.xml b/make/data/cldr/common/main/ii.xml index 36a24a5f767..a5c31ffea7f 100644 --- a/make/data/cldr/common/main/ii.xml +++ b/make/data/cldr/common/main/ii.xml @@ -11,30 +11,52 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + {0}({1}) + {0},{1} + + ꀊꇁꀨꉙ + ꀊꇁꀨꉙ(ꋧꃅ) ꄓꇩꉙ ꑱꇩꉙ ꑭꀠꑸꉙ ꃔꇩꉙ + ꑴꄃꉙ + ꑴꐛꑱꉙ ꆈꌠꉙ ꑴꄊꆺꉙ ꏝꀪꉙ + ꃅꄷꀁꂥꄓꉙ + ꉿꇂꉙ ꁍꄨꑸꉙ + ꇆꂷꆀꑸꉙ ꊉꇩꉙ + ꌖꑟꆺꉙ ꅉꀋꌠꅇꂷ ꍏꇩꉙ - - - + + + + + ꋧꃅ + ꃏꍏ + ꀙꂰꍏ + ꆆꂰꍏ + ꄊꑸꍏ + ꂰꍏ + ꑸꍏ + ꉩꍏ + ꀘꆹꏃ ꀠꑭ ꍏꇩ ꄓꇩ @@ -43,21 +65,27 @@ CLDR data files are interpreted according to the LDML specification (http://unic ꑴꄗ ꑴꄊꆺ ꏝꀪ + ꃀꑭꇬ ꊉꇆꌦ ꂰꇩ ꃅꄷꅉꀋꐚꌠ + + ꈎꌗ + ꄉꉻꃅꑍ ꑳꌦꇂꑍꉖ + ꀊꆿꀙꃷꁨꁱꂷ ꂰꌬꌠ + ꑱꇩ ꂰꇩ ꅇꉙ: {0} - ꇇꁱ: {0} + ꁱꂷꑵ:{0} ꃅꄷ: {0} @@ -65,10 +93,48 @@ CLDR data files are interpreted according to the LDML specification (http://unic [ꀀ ꀁ ꀂ ꀃ ꀄ ꀅ ꀆ ꀇ ꀈ ꀉ ꀊ ꀋ ꀌ ꀍ ꀎ ꀏ ꀐ ꀑ ꀒ ꀓ ꀔ ꀕ ꀖ ꀗ ꀘ ꀙ ꀚ ꀛ ꀜ ꀝ ꀞ ꀟ ꀠ ꀡ ꀢ ꀣ ꀤ ꀥ ꀦ ꀧ ꀨ ꀩ ꀪ ꀫ ꀬ ꀭ ꀮ ꀯ ꀰ ꀱ ꀲ ꀳ ꀴ ꀵ ꀶ ꀷ ꀸ ꀹ ꀺ ꀻ ꀼ ꀽ ꀾ ꀿ ꁀ ꁁ ꁂ ꁃ ꁄ ꁅ ꁆ ꁇ ꁈ ꁉ ꁊ ꁋ ꁌ ꁍ ꁎ ꁏ ꁐ ꁑ ꁒ ꁓ ꁔ ꁕ ꁖ ꁗ ꁘ ꁙ ꁚ ꁛ ꁜ ꁝ ꁞ ꁟ ꁠ ꁡ ꁢ ꁣ ꁤ ꁥ ꁦ ꁧ ꁨ ꁩ ꁪ ꁫ ꁬ ꁭ ꁮ ꁯ ꁰ ꁱ ꁲ ꁳ ꁴ ꁵ ꁶ ꁷ ꁸ ꁹ ꁺ ꁻ ꁼ ꁽ ꁾ ꁿ ꂀ ꂁ ꂂ ꂃ ꂄ ꂅ ꂆ ꂇ ꂈ ꂉ ꂊ ꂋ ꂌ ꂍ ꂎ ꂏ ꂐ ꂑ ꂒ ꂓ ꂔ ꂕ ꂖ ꂗ ꂘ ꂙ ꂚ ꂛ ꂜ ꂝ ꂞ ꂟ ꂠ ꂡ ꂢ ꂣ ꂤ ꂥ ꂦ ꂧ ꂨ ꂩ ꂪ ꂫ ꂬ ꂭ ꂮ ꂯ ꂰ ꂱ ꂲ ꂳ ꂴ ꂵ ꂶ ꂷ ꂸ ꂹ ꂺ ꂻ ꂼ ꂽ ꂾ ꂿ ꃀ ꃁ ꃂ ꃃ ꃄ ꃅ ꃆ ꃇ ꃈ ꃉ ꃊ ꃋ ꃌ ꃍ ꃎ ꃏ ꃐ ꃑ ꃒ ꃓ ꃔ ꃕ ꃖ ꃗ ꃘ ꃙ ꃚ ꃛ ꃜ ꃝ ꃞ ꃟ ꃠ ꃡ ꃢ ꃣ ꃤ ꃥ ꃦ ꃧ ꃨ ꃩ ꃪ ꃫ ꃬ ꃭ ꃮ ꃯ ꃰ ꃱ ꃲ ꃳ ꃴ ꃵ ꃶ ꃷ ꃸ ꃹ ꃺ ꃻ ꃼ ꃽ ꃾ ꃿ ꄀ ꄁ ꄂ ꄃ ꄄ ꄅ ꄆ ꄇ ꄈ ꄉ ꄊ ꄋ ꄌ ꄍ ꄎ ꄏ ꄐ ꄑ ꄒ ꄓ ꄔ ꄕ ꄖ ꄗ ꄘ ꄙ ꄚ ꄛ ꄜ ꄝ ꄞ ꄟ ꄠ ꄡ ꄢ ꄣ ꄤ ꄥ ꄦ ꄧ ꄨ ꄩ ꄪ ꄫ ꄬ ꄭ ꄮ ꄯ ꄰ ꄱ ꄲ ꄳ ꄴ ꄵ ꄶ ꄷ ꄸ ꄹ ꄺ ꄻ ꄼ ꄽ ꄾ ꄿ ꅀ ꅁ ꅂ ꅃ ꅄ ꅅ ꅆ ꅇ ꅈ ꅉ ꅊ ꅋ ꅌ ꅍ ꅎ ꅏ ꅐ ꅑ ꅒ ꅓ ꅔ ꅕ ꅖ ꅗ ꅘ ꅙ ꅚ ꅛ ꅜ ꅝ ꅞ ꅟ ꅠ ꅡ ꅢ ꅣ ꅤ ꅥ ꅦ ꅧ ꅨ ꅩ ꅪ ꅫ ꅬ ꅭ ꅮ ꅯ ꅰ ꅱ ꅲ ꅳ ꅴ ꅵ ꅶ ꅷ ꅸ ꅹ ꅺ ꅻ ꅼ ꅽ ꅾ ꅿ ꆀ ꆁ ꆂ ꆃ ꆄ ꆅ ꆆ ꆇ ꆈ ꆉ ꆊ ꆋ ꆌ ꆍ ꆎ ꆏ ꆐ ꆑ ꆒ ꆓ ꆔ ꆕ ꆖ ꆗ ꆘ ꆙ ꆚ ꆛ ꆜ ꆝ ꆞ ꆟ ꆠ ꆡ ꆢ ꆣ ꆤ ꆥ ꆦ ꆧ ꆨ ꆩ ꆪ ꆫ ꆬ ꆭ ꆮ ꆯ ꆰ ꆱ ꆲ ꆳ ꆴ ꆵ ꆶ ꆷ ꆸ ꆹ ꆺ ꆻ ꆼ ꆽ ꆾ ꆿ ꇀ ꇁ ꇂ ꇃ ꇄ ꇅ ꇆ ꇇ ꇈ ꇉ ꇊ ꇋ ꇌ ꇍ ꇎ ꇏ ꇐ ꇑ ꇒ ꇓ ꇔ ꇕ ꇖ ꇗ ꇘ ꇙ ꇚ ꇛ ꇜ ꇝ ꇞ ꇟ ꇠ ꇡ ꇢ ꇣ ꇤ ꇥ ꇦ ꇧ ꇨ ꇩ ꇪ ꇫ ꇬ ꇭ ꇮ ꇯ ꇰ ꇱ ꇲ ꇳ ꇴ ꇵ ꇶ ꇷ ꇸ ꇹ ꇺ ꇻ ꇼ ꇽ ꇾ ꇿ ꈀ ꈁ ꈂ ꈃ ꈄ ꈅ ꈆ ꈇ ꈈ ꈉ ꈊ ꈋ ꈌ ꈍ ꈎ ꈏ ꈐ ꈑ ꈒ ꈓ ꈔ ꈕ ꈖ ꈗ ꈘ ꈙ ꈚ ꈛ ꈜ ꈝ ꈞ ꈟ ꈠ ꈡ ꈢ ꈣ ꈤ ꈥ ꈦ ꈧ ꈨ ꈩ ꈪ ꈫ ꈬ ꈭ ꈮ ꈯ ꈰ ꈱ ꈲ ꈳ ꈴ ꈵ ꈶ ꈷ ꈸ ꈹ ꈺ ꈻ ꈼ ꈽ ꈾ ꈿ ꉀ ꉁ ꉂ ꉃ ꉄ ꉅ ꉆ ꉇ ꉈ ꉉ ꉊ ꉋ ꉌ ꉍ ꉎ ꉏ ꉐ ꉑ ꉒ ꉓ ꉔ ꉕ ꉖ ꉗ ꉘ ꉙ ꉚ ꉛ ꉜ ꉝ ꉞ ꉟ ꉠ ꉡ ꉢ ꉣ ꉤ ꉥ ꉦ ꉧ ꉨ ꉩ ꉪ ꉫ ꉬ ꉭ ꉮ ꉯ ꉰ ꉱ ꉲ ꉳ ꉴ ꉵ ꉶ ꉷ ꉸ ꉹ ꉺ ꉻ ꉼ ꉽ ꉾ ꉿ ꊀ ꊁ ꊂ ꊃ ꊄ ꊅ ꊆ ꊇ ꊈ ꊉ ꊊ ꊋ ꊌ ꊍ ꊎ ꊏ ꊐ ꊑ ꊒ ꊓ ꊔ ꊕ ꊖ ꊗ ꊘ ꊙ ꊚ ꊛ ꊜ ꊝ ꊞ ꊟ ꊠ ꊡ ꊢ ꊣ ꊤ ꊥ ꊦ ꊧ ꊨ ꊩ ꊪ ꊫ ꊬ ꊭ ꊮ ꊯ ꊰ ꊱ ꊲ ꊳ ꊴ ꊵ ꊶ ꊷ ꊸ ꊹ ꊺ ꊻ ꊼ ꊽ ꊾ ꊿ ꋀ ꋁ ꋂ ꋃ ꋄ ꋅ ꋆ ꋇ ꋈ ꋉ ꋊ ꋋ ꋌ ꋍ ꋎ ꋏ ꋐ ꋑ ꋒ ꋓ ꋔ ꋕ ꋖ ꋗ ꋘ ꋙ ꋚ ꋛ ꋜ ꋝ ꋞ ꋟ ꋠ ꋡ ꋢ ꋣ ꋤ ꋥ ꋦ ꋧ ꋨ ꋩ ꋪ ꋫ ꋬ ꋭ ꋮ ꋯ ꋰ ꋱ ꋲ ꋳ ꋴ ꋵ ꋶ ꋷ ꋸ ꋹ ꋺ ꋻ ꋼ ꋽ ꋾ ꋿ ꌀ ꌁ ꌂ ꌃ ꌄ ꌅ ꌆ ꌇ ꌈ ꌉ ꌊ ꌋ ꌌ ꌍ ꌎ ꌏ ꌐ ꌑ ꌒ ꌓ ꌔ ꌕ ꌖ ꌗ ꌘ ꌙ ꌚ ꌛ ꌜ ꌝ ꌞ ꌟ ꌠ ꌡ ꌢ ꌣ ꌤ ꌥ ꌦ ꌧ ꌨ ꌩ ꌪ ꌫ ꌬ ꌭ ꌮ ꌯ ꌰ ꌱ ꌲ ꌳ ꌴ ꌵ ꌶ ꌷ ꌸ ꌹ ꌺ ꌻ ꌼ ꌽ ꌾ ꌿ ꍀ ꍁ ꍂ ꍃ ꍄ ꍅ ꍆ ꍇ ꍈ ꍉ ꍊ ꍋ ꍌ ꍍ ꍎ ꍏ ꍐ ꍑ ꍒ ꍓ ꍔ ꍕ ꍖ ꍗ ꍘ ꍙ ꍚ ꍛ ꍜ ꍝ ꍞ ꍟ ꍠ ꍡ ꍢ ꍣ ꍤ ꍥ ꍦ ꍧ ꍨ ꍩ ꍪ ꍫ ꍬ ꍭ ꍮ ꍯ ꍰ ꍱ ꍲ ꍳ ꍴ ꍵ ꍶ ꍷ ꍸ ꍹ ꍺ ꍻ ꍼ ꍽ ꍾ ꍿ ꎀ ꎁ ꎂ ꎃ ꎄ ꎅ ꎆ ꎇ ꎈ ꎉ ꎊ ꎋ ꎌ ꎍ ꎎ ꎏ ꎐ ꎑ ꎒ ꎓ ꎔ ꎕ ꎖ ꎗ ꎘ ꎙ ꎚ ꎛ ꎜ ꎝ ꎞ ꎟ ꎠ ꎡ ꎢ ꎣ ꎤ ꎥ ꎦ ꎧ ꎨ ꎩ ꎪ ꎫ ꎬ ꎭ ꎮ ꎯ ꎰ ꎱ ꎲ ꎳ ꎴ ꎵ ꎶ ꎷ ꎸ ꎹ ꎺ ꎻ ꎼ ꎽ ꎾ ꎿ ꏀ ꏁ ꏂ ꏃ ꏄ ꏅ ꏆ ꏇ ꏈ ꏉ ꏊ ꏋ ꏌ ꏍ ꏎ ꏏ ꏐ ꏑ ꏒ ꏓ ꏔ ꏕ ꏖ ꏗ ꏘ ꏙ ꏚ ꏛ ꏜ ꏝ ꏞ ꏟ ꏠ ꏡ ꏢ ꏣ ꏤ ꏥ ꏦ ꏧ ꏨ ꏩ ꏪ ꏫ ꏬ ꏭ ꏮ ꏯ ꏰ ꏱ ꏲ ꏳ ꏴ ꏵ ꏶ ꏷ ꏸ ꏹ ꏺ ꏻ ꏼ ꏽ ꏾ ꏿ ꐀ ꐁ ꐂ ꐃ ꐄ ꐅ ꐆ ꐇ ꐈ ꐉ ꐊ ꐋ ꐌ ꐍ ꐎ ꐏ ꐐ ꐑ ꐒ ꐓ ꐔ ꐕ ꐖ ꐗ ꐘ ꐙ ꐚ ꐛ ꐜ ꐝ ꐞ ꐟ ꐠ ꐡ ꐢ ꐣ ꐤ ꐥ ꐦ ꐧ ꐨ ꐩ ꐪ ꐫ ꐬ ꐭ ꐮ ꐯ ꐰ ꐱ ꐲ ꐳ ꐴ ꐵ ꐶ ꐷ ꐸ ꐹ ꐺ ꐻ ꐼ ꐽ ꐾ ꐿ ꑀ ꑁ ꑂ ꑃ ꑄ ꑅ ꑆ ꑇ ꑈ ꑉ ꑊ ꑋ ꑌ ꑍ ꑎ ꑏ ꑐ ꑑ ꑒ ꑓ ꑔ ꑕ ꑖ ꑗ ꑘ ꑙ ꑚ ꑛ ꑜ ꑝ ꑞ ꑟ ꑠ ꑡ ꑢ ꑣ ꑤ ꑥ ꑦ ꑧ ꑨ ꑩ ꑪ ꑫ ꑬ ꑭ ꑮ ꑯ ꑰ ꑱ ꑲ ꑳ ꑴ ꑵ ꑶ ꑷ ꑸ ꑹ ꑺ ꑻ ꑼ ꑽ ꑾ ꑿ ꒀ ꒁ ꒂ ꒃ ꒄ ꒅ ꒆ ꒇ ꒈ ꒉ ꒊ ꒋ ꒌ] [꒐ ꒑ ꒒ ꒓ ꒔ ꒕ ꒖ ꒗ ꒘ ꒙ ꒚ ꒛ ꒜ ꒝ ꒞ ꒟ ꒠ ꒡ ꒢ ꒣ ꒤ ꒥ ꒦ ꒧ ꒨ ꒩ ꒪ ꒫ ꒬ ꒭ ꒮ ꒯ ꒰ ꒱ ꒲ ꒳ ꒴ ꒵ ꒶ ꒷ ꒸ ꒹ ꒺ ꒻ ꒼ ꒽ ꒾ ꒿ ꓀ ꓁ ꓂ ꓃ ꓄ ꓅ ꓆] [A B {BB} C {CH} D {DD} E F G {GG} H {HL} {HM} {HN} {HX} I {IE} J {JJ} K L M {MG} N {NB} {ND} {NG} {NJ} {NR} {NY} {NZ} O P Q R {RR} S {SH} {SS} T {UO} V W X Y Z {ZH} {ZZ}] + [\- ‑ , . {\\\-} % ‰ + 0 1 2 3 4 5 6 7 8 9 {ꋍꑍꌕꇖꉬꃘꏃꉆꈬ}] [﹉﹊﹋﹌ __﹍﹎﹏︳︴ \--﹣ ‐‑ – —︱ ― ,,﹐ 、﹑ ;;﹔ \::﹕ !!﹗ ??﹖ ..﹒ ‥︰ … 。 · '‘’ "“”〝〞 ((﹙︵ ))﹚︶ \[[ \]] \{{﹛︷ \}}﹜︸ 〈︿ 〉﹀ 《︽ 》︾ 「﹁ 」﹂ 『﹃ 』﹄ 【︻ 】︼ 〔﹝︹ 〕﹞︺ 〖 〗 ‖ § @@﹫ **﹡ // \\\﹨ \&&﹠ ##﹟ %%﹪ ‰ ′ ″ ‵ 〃 ※] + + + + + G y MMMM dꑍ,EEEE + + + + + G y MMMM dꑍ + + + + + G y MMM dꑍ + + + + + + dꑍ + dꑍ,E + G y MMM dꑍ + G y MMMM dꑍ,E + MMM dꑍ + MMM dꑍ,E + MMMM dꑍ + G y MMM dꑍ + G y MMM dꑍ,E + + + + G y MMM dꑍ, E – y MMM dꑍ, E + + + + @@ -83,7 +149,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ꉆꆪ ꈬꆪ ꊰꆪ - ꊰꊪꆪ + ꊯꊪꆪ ꊰꑋꆪ @@ -91,7 +157,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - ꑭꆏ + ꑬꆏ ꆏꋍ ꆏꑍ ꆏꌕ @@ -100,7 +166,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ꆏꃘ - ꑭꆏꑍ + ꑬꆏꑍ ꆏꊂꋍ ꆏꊂꑍ ꆏꊂꌕ @@ -123,11 +189,25 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + 1ꄮꐰ + 2ꄮꐰ + 3ꄮꐰ + 4ꄮꐰ + - ꃅꑌ - ꃅꎸ - ꃅꍵ - ꃅꋆ + ꄮꐰꋍꂷꂶꌠ + ꄮꐰꑍꂷꂶꌠ + ꄮꐰꌕꂷꂶꌠ + ꄮꐰꇖꂷꂶꌠ + + + + + 1 + 2 + 3 + 4 @@ -214,8 +294,43 @@ CLDR data files are interpreted according to the LDML specification (http://unic {1} {0} + + dꑍ + dꑍ, E + G y MMM dꑍ + G y MMM dꑍ,E + ah:mm + ah:mm:ss + v ah:mm:ss + v HH:mm:ss + MMꆪ-ddꑍ + MMꆪ-ddꑍ,E + MMM dꑍ + MMMM dꑍ,E + MMMM dꑍ + yꈎMꆪdꑍ + y MMM dꑍ,E + {0} – {1} + + MMM dꑍ–dꑍ + MMM dꑍ – MMM dꑍ + + + MMM dꑍ, E – MMM dꑍ, E + MMM dꑍ, E – MMM dꑍ, E + + + y MMM dꑍ–dꑍ + y MMM dꑍ – MMM dꑍ + y MMM dꑍ – y MMM dꑍ + + + y MMM dꑍ, E – MMM dꑍ, E + y MMM dꑍ, E – MMM dꑍ, E + y MMM dꑍ, E – y MMM dꑍ, E + @@ -225,45 +340,73 @@ CLDR data files are interpreted according to the LDML specification (http://unic ꃅꋊ - + ꃅꈎ + ꀋꉊꄹꈎ + ꀋꃋꎼꈎ + ꑎꉐꄻꈎ + + + ꀋꉊꄹꈎ + ꎼꈎ + ꑎꉐꄻꈎ + + + ꄮꐰ - + ꃅꆪ + ꂴꁮꆪ + ꀋꃋꋋꁮꆪ + ꊁꁮꆪ - ꑭꆏ + ꆏꊂ + ꆏꊂꂴꂶꌠ + ꀋꃋꋋꆏꊂ + ꆏꊂꊁꂶꌠ - + ꃅꑍ ꎴꂿꋍꑍ - ꀋꅔꉈ + ꀋꅔꉇ ꀃꑍ ꃆꏂꑍ ꌕꀿꑍ - ꆏꑍ + ꆏꑍꃅꑍ ꎸꄑ/ꁯꋒ - ꄮꈉ + ꄮꈉꂷ - + ꄮꈉꃏ - + ꄮꈉꇅ - ꃅꄷꄮꈉ + ꄮꈉꎖꌐꅉ + ꋧꃅꎕꏦꄮꈉ{0} + ꋧꃅꎕꏦꄮꈉ + {0}ꄮꈉ + {0}ꃅꎸꄮꈉ + {0}ꎕꏦꄮꈉ + {1}({0}) ꅉꀋꐚꌠ + + + ꋧꃅꎕꏦꄮꈉ + + @@ -278,7 +421,24 @@ CLDR data files are interpreted according to the LDML specification (http://unic ꅉꀋꐚꌠꌋꆀꎆꃀꀋꈁꀐꌠ + + {0} ꑍ + + + + {0}、{1} + {0}、{1} + {0}ꌋꆀ{1} + {0}ꌋꆀ{1} + + + {0}、{1} + {0}、{1} + {0}ꅀ{1} + {0}ꅀ{1} + + diff --git a/make/data/cldr/common/main/is.xml b/make/data/cldr/common/main/is.xml index ef7d71d4f7f..5d815a076b0 100644 --- a/make/data/cldr/common/main/is.xml +++ b/make/data/cldr/common/main/is.xml @@ -59,13 +59,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bemba bena búlgarska - haryanví + haryanví vesturbalotsí bojpúrí bíslama bíkol bíní siksika + anii bambara bengalska tíbeska @@ -288,6 +289,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komíska kornbreska kwakʼwala + kúví kirgiska latína ladínska @@ -298,8 +300,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lesgíska ganda limbúrgíska + lígúríska lillooet lakóta + lombardíska lingala laó mongó @@ -488,6 +492,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ shimaoríska klassísk sýrlenska sýrlenska + slesíska tamílska suður-tutchone telúgú @@ -536,7 +541,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ úsbekska vaí venda + feneyska víetnamska + makúva volapyk votíska vunjó @@ -550,6 +557,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ wu-kínverska kalmúkska sósa + kangrí sóga jaó japíska @@ -663,9 +671,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + - + @@ -835,8 +843,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ísrael Mön Indland - Bresku Indlandshafseyjar - Chagos-eyjaklasinn + Bresku Indlandshafseyjar + Chagos-eyjaklasinn Írak Íran Ísland @@ -947,7 +955,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ El Salvador Sint Maarten Sýrland - Svasíland + Esvatíní Tristan da Cunha Turks- og Caicoseyjar Tsjad @@ -1035,9 +1043,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Gregorískt tímatal Hebreskt tímatal indverskt dagatal - Íslamskt tímatal - Íslamskt borgaradagatal - Íslamskt dagatal (Umm al-Qura) + Íslamskt tímatal + Íslamskt borgaradagatal + Íslamskt dagatal (Umm al-Qura) ISO-8601 tímatal Japanskt tímatal Persneskt tímatal @@ -1152,13 +1160,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [a á b d ð e é f g h i í j k l m n o ó p r s t u ú v x y ý þ æ ö] [c q w z] - [A Á B C D Ð E É F G H I Í J K L M N O Ó P Q R S T U Ú V W X Y Ý Z Þ Æ Ö] + [A Á B C D Ð E É F G H I Í J K L M N O Ó P Q R S T U Ú V W X Y Ý Z Þ Æ Ö] [\- ‐‑ – — , ; \: ! ? . … '‘‚ "“„ ( ) \[ \] § @ * / \& # † ‡ ′ ″] [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2008,12 +2016,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ fyrir {0} árum - - - fyrir {0} árum - fyrir {0} árum - - ársfjórðungur síðasti ársfjórðungur @@ -2140,7 +2142,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ síðasta sun. - þessi sun. + á sun. næsta sun. eftir {0} sun. @@ -2184,7 +2186,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ síðasta mán. - þessi mán. + á mán. nk. mán. @@ -2201,8 +2203,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - síðasti þri. - þessi þri. + síðasta þri. + á þri. næstkomandi þri. eftir {0} þri. @@ -2214,8 +2216,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - síðasti þri. - þessi þri. + síðasta þri. + á þri. nk. þri. @@ -2232,8 +2234,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - síðasti mið. - þessi mið. + síðasta mið. + á mið. næstkomandi mið. eftir {0} mið. @@ -2245,8 +2247,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - síðasti mið. - þessi mið. + síðasta mið. + á mið. nk. mið. @@ -2263,8 +2265,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - síðasti fim. - þessi fim. + síðasta fim. + á fim. næstkomandi fim. eftir {0} fim. @@ -2276,8 +2278,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - síðasti fim. - þessi fim. + síðasta fim. + á fim. nk. fim. @@ -2444,6 +2446,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} (sumartími) {0} (staðaltími) + + Honolulu + Samræmdur alþjóðlegur tími @@ -2464,6 +2469,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Tírana + + Jerevan + Vín @@ -2733,15 +2741,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Palá - - Asunción - Katar - - Réunion - Búkarest @@ -2784,9 +2786,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kænugarður - - Honolulu - Vatíkanið @@ -3027,13 +3026,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Sumartími í Kína - - - Tími í Choibalsan - Staðaltími í Choibalsan - Sumartími í Choibalsan - - Jólaeyjartími @@ -3279,6 +3271,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Sumartími í Petropavlovsk-Kamchatski + + + Tími í Kasakstan + + Tími í Austur-Kasakstan @@ -3531,9 +3528,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Tími í Sakhalin - Staðaltími í Sakhalin - Sumartími í Sakhalin + Tími á Sakhalin + Staðaltími á Sakhalin + Sumartími á Sakhalin @@ -3799,8 +3796,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 bn ¤ - {0} {1} - {0} {1} @@ -3980,6 +3975,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Chilean Unidades de Fomento + síleskt Unidad de Fomento + síleskt Unidad de Fomento síleskur pesi @@ -5017,10 +5014,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} þyngdarhröðun {0} þyngdarhröðun {0} þyngdarhröðunar - {0} þyngdarhröðun - {0} þyngdarhröðun - {0} þyngdarhröðun - {0} þyngdarhröðunar + {0} þyngdarhraðanir + {0} þyngdarhraðanir + {0} þyngdarhröðunum + {0} þyngdarhraðana masculine @@ -5173,9 +5170,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} karata + neuter milligrömm á desílítra {0} milligramm á desílítra + {0} milligramm á desílítra + {0} milligrammi á desílítra + {0} milligramms á desílítra {0} milligrömm á desílítra + {0} milligrömm á desílítra + {0} milligrömmum á desílítra + {0} milligramma á desílítra neuter @@ -5237,12 +5241,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ neuter {0} permyriad {0} permyriad - {0} permyriad - {0} permyriad + {0} permyriadi + {0} permyriads {0} permyriad {0} permyriad - {0} permyriad - {0} permyriad + {0} permyriadum + {0} permyriada neuter @@ -5637,9 +5641,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} volta + feminine kílókaloríur {0} kílókaloría + {0} kílókaloríu + {0} kílókaloríu + {0} kílókaloríu {0} kílókaloríur + {0} kílókaloríur + {0} kílókaloríum + {0} kílókaloría feminine @@ -5738,36 +5749,36 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ gígahertz {0} gígahertz {0} gígahertz - {0} gígahertz + {0} gígahertzi {0} gígahertz {0} gígahertz {0} gígahertz - {0} gígahertz - {0} gígahertz + {0} gígahertzum + {0} gígahertza neuter megahertz {0} megahertz {0} megahertz - {0} megahertz + {0} megahertzi {0} megahertz {0} megahertz {0} megahertz - {0} megahertz - {0} megahertz + {0} megahertzum + {0} megahertza neuter kílóhertz {0} kílóhertz {0} kílóhertz - {0} kílóhertz + {0} kílóhertzi {0} kílóhertz {0} kílóhertz {0} kílóhertz - {0} kílóhertz - {0} kílóhertz + {0} kílóhertzum + {0} kílóhertza neuter @@ -5834,7 +5845,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} pixlar á tommu - pixlar {0} pixill {0} pixlar @@ -5992,6 +6002,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} sænskum mílum {0} sænskra mílna + + neuter + {0} stig + {0} stig + {0} stigi + {0} stigs + {0} stig + {0} stig + {0} stigum + {0} stiga + {0} sólarradíus {0} sólarradíusar @@ -6172,7 +6193,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kílóvött {0} kílóvatt {0} kílóvatt - {0} kílóvatt + {0} kílóvatti {0} kílóvatts {0} kílóvött {0} kílóvött @@ -6208,9 +6229,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} hestöfl + masculine millimetrar af kvikasilfri - {0} millimetrar af kvikasilfri + {0} millimetri af kvikasilfri + {0} millimetra af kvikasilfri + {0} millimetra af kvikasilfri + {0} millimetra af kvikasilfri {0} millimetrar af kvikasilfri + {0} millimetra af kvikasilfri + {0} millimetrum af kvikasilfri + {0} millimetra af kvikasilfri pund á fertommu @@ -6239,7 +6267,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ millibör {0} millibar {0} millibar - {0} millibar + {0} millibari {0} millibars {0} millibör {0} millibör @@ -6612,6 +6640,31 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ klípur + + masculine + hlutar á milljarð + {0} hluti á milljarð + {0} hluta á milljarð + {0} hluta á milljarð + {0} hluta á milljarð + {0} hlutar á milljarð + {0} hluta á milljarð + {0} hlutum á milljarð + {0} hluta á milljarð + + + feminine + nætur + {0} nótt + {0} nótt + {0} nótt + {0} nætur + {0} nætur + {0} nætur + {0} nóttum + {0} nótta + {0}/nótt + höfuðátt {0} austur @@ -7189,6 +7242,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} lagarmál {0} lagarmál + + næt. + {0} nótt + {0} næt. + {0}/nótt + átt {0} A @@ -7446,6 +7505,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} l.mál {0} l.mál + + n. + {0} n. + {0} n. + {0}/n. + {0}A {0}N diff --git a/make/data/cldr/common/main/it.xml b/make/data/cldr/common/main/it.xml index 0dce0245bf4..a893098a2d3 100644 --- a/make/data/cldr/common/main/it.xml +++ b/make/data/cldr/common/main/it.xml @@ -84,6 +84,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ banjar kom siksika + anii bambara bengalese tibetano @@ -226,7 +227,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ tedesco medio alto guaraní tedesco antico alto - konkani goano gondi gorontalo gotico @@ -333,6 +333,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komi cornico kwakʼwala + kuvi kirghiso latino giudeo-spagnolo @@ -348,6 +349,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lillooet livone lakota + ladino lombardo lingala lao @@ -362,7 +364,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ luba-lulua luiseno lunda - luo lushai luyia lettone @@ -621,12 +622,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lingua imprecisata urdu uzbeco - vai venda veneto vepso vietnamita fiammingo occidentale + macua volapük voto võro @@ -642,6 +643,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kalmyk xhosa mengrelio + kangri soga yao (bantu) yapese @@ -883,7 +885,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Angola Antartide Argentina - Samoa americane + Samoa Americane Austria Australia Aruba @@ -902,7 +904,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Bermuda Brunei Bolivia - Caraibi olandesi + Caraibi Olandesi Brasile Bahamas Bhutan @@ -945,7 +947,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ecuador Estonia Egitto - Sahara occidentale + Sahara Occidentale Eritrea Spagna Etiopia @@ -991,7 +993,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Israele Isola di Man India - Territorio britannico dell’Oceano Indiano + Territorio Britannico dell’Oceano Indiano Arcipelago Chagos Iraq Iran @@ -1036,7 +1038,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Mongolia RAS di Macao Macao - Isole Marianne settentrionali + Isole Marianne Settentrionali Martinica Mauritania Montserrat @@ -1063,7 +1065,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Oman Panama Perù - Polinesia francese + Polinesia Francese Papua Nuova Guinea Filippine Pakistan @@ -1071,7 +1073,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Saint-Pierre e Miquelon Isole Pitcairn Portorico - Territori palestinesi + Territori Palestinesi Palestina Portogallo Palau @@ -1108,7 +1110,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Tristan da Cunha Isole Turks e Caicos Ciad - Terre australi francesi + Terre Australi Francesi Togo Thailandia Tagikistan @@ -1329,6 +1331,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Cifre occidentali Cifre lepcha Cifre limbu + Cifre matematiche a spaziatura fissa Cifre malayalam Numeri mongoli Cifre Meetei Mayek @@ -1389,15 +1392,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - [aà b c d eéè f g h iì j k l m n oóò p q r s t uù v w x y z] - [ªáâåäã æ ç êë íîï ñ ºôöõø œ ß úûü ÿ] + [aà b c d eéè f g h iì j k l m n oò p q r s t uù v w x y z] + [ªáâåäã æ ç êë íîï ñ ºóôöõø œ ß úûü ÿ] [A B C D E F G H I J K L M N O P Q R S T U V W X Y Z] [\- ‑ — , ; \: ! ? . … '’ "“” « » ( ) \[ \] \{ \} @ /] [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -1806,7 +1809,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ aC + aEV dC + EV @@ -2465,6 +2470,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ora {0} Ora legale: {0} Ora standard: {0} + + Honolulu + Tempo coordinato universale @@ -2512,9 +2520,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Capo Verde - - Curaçao - Famagosta @@ -2665,9 +2670,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Lisbona - - Asunción - La Riunione @@ -2728,9 +2730,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Giuba - - São Tomé - Damasco @@ -2749,9 +2748,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Sinferopoli - - Honolulu - Beulah, Dakota del nord @@ -2995,13 +2991,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ora legale della Cina - - - Ora di Choibalsan - Ora standard di Choibalsan - Ora legale di Choibalsan - - Ora dell’Isola Christmas @@ -3262,6 +3251,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ora legale di Petropavlovsk-Kamchatski + + + Ora del Kazakistan + + Ora del Kazakistan orientale @@ -3693,6 +3687,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + 2 , . @@ -3740,12 +3735,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 00 Mln 000 Mln 000 Mln - 0 Mrd - 0 Mrd - 00 Mrd - 00 Mrd - 000 Mrd - 000 Mrd + 0 Mld + 0 Mld + 00 Mld + 00 Mld + 000 Mld + 000 Mld 0 Bln 0 Bln 00 Bln @@ -3775,12 +3770,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 00 Mln ¤ 000 Mln ¤ 000 Mln ¤ - 0 Mrd ¤ - 0 Mrd ¤ - 00 Mrd ¤ - 00 Mrd ¤ - 000 Mrd ¤ - 000 Mrd ¤ + 0 Mld ¤ + 0 Mld ¤ + 00 Mld ¤ + 00 Mld ¤ + 000 Mld ¤ + 000 Mld ¤ 0 Bln ¤ 0 Bln ¤ 00 Bln ¤ @@ -3789,8 +3784,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 Bln ¤ - {0} {1} - {0} {1} @@ -5086,9 +5079,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} cubi {0} cubiche - - {0} {1} - feminine {0} forza g @@ -5191,6 +5181,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} carati + masculine milligrammi per decilitro {0} milligrammo per decilitro {0} milligrammi per decilitro @@ -5670,6 +5661,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} miglia scandinave + masculine punti tipografici {0} punto tipografico {0} punti tipografici @@ -5827,6 +5819,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} cavalli vapore + masculine millimetri di mercurio {0} millimetro di mercurio {0} millimetri di mercurio @@ -6142,6 +6135,24 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} quarto imperiale {0} quarti imperiali + + feminine + {0} alla velocità della luce + {0} alla velocità della luce + + + feminine + parti per miliardo + {0} parte per miliardo + {0} parti per miliardo + + + feminine + notti + {0} notte + {0} notti + {0} a notte + punti cardinali {0} est @@ -6465,6 +6476,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} imp qt {0} imp qt + + {0} luce + {0} luce + + + notti + {0} notte + {0} notti + {0}/notte + punto {0}O @@ -7058,8 +7079,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}K - {0}lb-ft - {0}lb-ft + {0}lb-ft + {0}lb-ft {0}Nm @@ -7209,6 +7230,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}imp qt {0}imp qt + + {0}l + {0}l + + + {0}ppb + {0}ppb + + + notti + {0} notte + {0} notti + {0}/notte + diff --git a/make/data/cldr/common/main/ja.xml b/make/data/cldr/common/main/ja.xml index 7a43fd77aba..1828cb83f78 100644 --- a/make/data/cldr/common/main/ja.xml +++ b/make/data/cldr/common/main/ja.xml @@ -88,6 +88,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ バンジャル語 コム語 シクシカ語 + アニ語 (blo) バンバラ語 ベンガル語 チベット語 @@ -225,7 +226,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 中高ドイツ語 グアラニー語 古高ドイツ語 - ゴア・コンカニ語 ゴーンディー語 ゴロンタロ語 ゴート語 @@ -336,6 +336,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ コミ語 コーンウォール語 クヮキゥワラ語 + クーヴィンガ語 キルギス語 ラテン語 ラディノ語 @@ -632,6 +633,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ベトナム語 西フラマン語 マインフランク語 + マクア語 ヴォラピュク語 ヴォート語 ヴォロ語 @@ -647,6 +649,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ カルムイク語 コサ語 メグレル語 + カーングリー語 ソガ語 ヤオ語 ヤップ語 @@ -1400,7 +1403,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -3624,6 +3627,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}夏時間 {0}標準時 {1}({0}) + + ホノルル + 協定世界時 @@ -4361,9 +4367,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ウランバートル - - チョイバルサン - マカオ @@ -4763,9 +4766,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ノーム - - ホノルル - アンカレッジ @@ -5150,13 +5150,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 中国夏時間 - - - チョイバルサン時間 - チョイバルサン標準時 - チョイバルサン夏時間 - - クリスマス島時間 @@ -5412,6 +5405,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ペトロパブロフスク・カムチャツキー夏時間 + + + カザフスタン時間 + + 東カザフスタン時間 @@ -6579,7 +6577,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ レイ - ディナール (セルビア) + セルビア ディナール + セルビア ディナール ロシア ルーブル @@ -6699,7 +6698,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ タンザニア シリング - ウクライナ グリブナ + ウクライナ フリヴニャ + ウクライナ フリヴニャ ウクライナ カルボバネツ @@ -7516,6 +7516,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} 英クォート + + + {0} 光 + + + + {0} 泊 + {0}/泊 + @@ -8072,10 +8081,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} 石 + + + {0} 光 + 分 - 質量 {0} 分 - 質量 + + + {0} 泊 + {0}/泊 + 方位 東経{0} @@ -8739,10 +8757,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}石 + + + {0}光 + {0}分 + + {0}ppb + + + + {0}泊 + {0}/泊 + {0}E {0}N diff --git a/make/data/cldr/common/main/jv.xml b/make/data/cldr/common/main/jv.xml index 23fc8fdb8be..12a77c0b9fa 100644 --- a/make/data/cldr/common/main/jv.xml +++ b/make/data/cldr/common/main/jv.xml @@ -51,6 +51,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Bislama Bini Siksiká + Anii Bambara Bengali Tibet @@ -123,7 +124,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Basque Ewondo Persia - Fulah + Fula Suomi Tagalog Fijian @@ -169,6 +170,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Iban Ibibio Indonesia + Interlingue Iqbo Sichuan Yi Kanada Inuktitut Sisih Kulon @@ -221,6 +223,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Komi Kernowek Kwakʼwala + Kuvi Kirgis Latin Ladino @@ -229,6 +232,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Lesghian Ganda Limburgish + Liguria Lillooet Lakota Lombard @@ -342,12 +346,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic Rwa Sanskerta Sandawe - Sakha + Yakut Samburu Santali Ngambai Sangu - Sardinian + Sardinia Sisilia Skots Sindhi @@ -379,6 +383,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Swahili Komorian Siriak + Silesia Tamil Tutkhone Sisih Kidul Telugu @@ -418,7 +423,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Uzbek Vai Venda + Venesia Vietnam + Makhuwa Volapuk Vunjo Walloon @@ -429,6 +436,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Tyonghwa Wu Kalmik Xhosa + Kangri Soga Yangben Yemba @@ -437,6 +445,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Nheengatu Kanton Tyonghwa, Kanton + Zhuang Tamazight Moroko Standar Tyonghwa Tyonghwa, Mandarin @@ -500,7 +509,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + @@ -574,7 +583,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Bolivia Karibia Walanda Brasil - Bahamas + Bahama Bhutan Pulo Bovèt Botswana @@ -925,7 +934,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2262,13 +2271,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Wektu Ketigo Cina - - - Wektu Choibalsan - Wektu Standar Choibalsan - WEktu Ketigo Choibalsan - - Wektu Pulo Natal @@ -2507,6 +2509,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Wektu Ketigo Jepang + + + Wektu Kazakhstan + + Wektu Kazakhstan Wetan @@ -3242,8 +3249,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Dolar Liberia - Lesotho Loti - Lesotho lotis + Loti Lesotho + Loti Lesotho Dinar Libya @@ -3325,7 +3332,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kina Papua Nugini - Piso Filipina + Peso Filipina + Peso Filipina Rupee Pakistan @@ -4125,7 +4133,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} barel - sak juwit + jiwit + {0} jiwit + + + cahya + {0} cahya + + + wengi + {0} wengi + {0}/wengi arah kardinal @@ -4409,7 +4427,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic kandela - {0} kandela luminositas srengenge @@ -4581,13 +4598,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} banyu dram - juwit - {0} sak juwit + jiwit + {0} jiwit Imp. seprapat galon {0} Imp. seprapat galon + + cahya + {0} cahya + + + wengi + {0} wengi + {0}/wengi + arah {0} wetan @@ -4643,6 +4669,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}tpi + + {0} cd + {0}t @@ -4683,11 +4712,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}by.dr. - {0}juwit + jiwit + {0}jiwit {0}spt-lmp. + + cahya + {0} cahya + + + wengi + diff --git a/make/data/cldr/common/main/ka.xml b/make/data/cldr/common/main/ka.xml index 1d6f9f3d17d..8e07d0714f1 100644 --- a/make/data/cldr/common/main/ka.xml +++ b/make/data/cldr/common/main/ka.xml @@ -64,6 +64,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ბისლამა ბინი სიკსიკა + ანიი ბამბარა ბენგალური ტიბეტური @@ -271,6 +272,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ კომი კორნული კვაკვალა + კუვი ყირგიზული ლათინური ლადინო @@ -281,8 +283,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ლეზგიური განდა ლიმბურგული + ლიგურიული ლილიეტი ლაკოტა + ლომბარდიული ლინგალა ლაოსური მონგო @@ -466,6 +470,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ კომორული კლასიკური სირიული სირიული + სილესიური ტამილური სამხრეთ ტუჩონი ტელუგუ @@ -507,7 +512,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ უზბეკური ვაი ვენდა + ვენეციური ვიეტნამური + მაკჰუვა ვოლაპუკი ვუნჯო ვალონური @@ -519,6 +526,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ვუ ყალმუხური ქჰოსა + კანგრი სოგა იანგბენი იემბა @@ -527,6 +535,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ნენგატუ კანტონური ჩინური, კანტონური + ზჰუანგი ბლისსიმბოლოები ზენაგა სტანდარტული მაროკოული ტამაზიგხტი @@ -2109,6 +2118,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ დრო: {0} {0} ზაფხულის დრო {0} სტანდარტული დრო + + ჰონოლულუ + მსოფლიო კოორდინირებული დრო @@ -2846,9 +2858,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ულანბატარი - - ჩოიბალსანი - მაკაო @@ -3248,9 +3257,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ნომი - - ჰონოლულუ - ენქორაჯი @@ -3595,13 +3601,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ჩინეთის დროის სარტყელი - - - ჩოიბალსანის დრო - ჩოიბალსანის სტანდარტული დრო - ჩოიბალსანის ზაფხულის დრო - - შობის კუნძულის დრო @@ -3840,6 +3839,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ იაპონიის ზაფხულის დრო + + + ყაზახეთის დრო + + აღმოსავლეთ ყაზახეთის დრო @@ -4359,8 +4363,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 ტრლ'.' ¤ - {0} {1} - {0} {1} @@ -5991,6 +5993,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ბრიტანული კვარტი {0} ბრიტანული კვარტი + + ნაწილი მილიარდზე + {0} ნაწილი მილიარდზე + {0} ნაწილი მილიარდზე + + + ღამე + {0} ღამე + {0} ღამე + {0}/ღამე + კარდინალური მიმართულება {0} აღმოსავლეთით @@ -6961,6 +6974,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ბრიტ. კვარტი {0} ბრიტ. კვარტი + + ნაწილი/მილიარდზე + {0} ნ/მ + {0} ნ/მ + + + ღამე + {0} ღამე + {0} ღამე + {0}/ღამე + მიმართულება {0}აღმ. @@ -7039,6 +7063,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}ლ {0}ლ + + ნ/მ + + + ღამე + {0} ღამე + {0} ღამე + {0}/ღამე + diff --git a/make/data/cldr/common/main/kaa.xml b/make/data/cldr/common/main/kaa.xml new file mode 100644 index 00000000000..58b4ba82f03 --- /dev/null +++ b/make/data/cldr/common/main/kaa.xml @@ -0,0 +1,712 @@ + + + + + + + + + + + немецше + немецше (Австрия) + немецше (Швейцария) + Англичанша + французша + французша (Канада) + французша (Швейцария) + ҳиндше (латын) + ҳинглиш (латын) + итальянша + японша + қарақалпақша + корейсше + түрк тили + белгисиз тил + қытайша + қытайша (аңсатластырылған) + + + + + + + + + + + + + + + + дүнья + Африка + Арқа Америка + Қубла Америка + Океания + Батыс Африка + Орайлық Америка + Шығыс Африка + Арқа Африка + Орайлық Африка + Қубла Африка + Америка + Арқа Америка – AҚШ ҳәм Канада + Кариб бассейни + Шығыс Азия + Қубла Азия + Қубла-шығыс Азия + Қубла Европа + Австралазия + Меланезия + Микронезия + Полинезия + Азия + Орайлық Азия + Батыс Азия + Европа + Шығыс Европа + Арқа Европа + Батыс Европа + Тропикалық Африка + Латын Америкасы + Андорра + Бирлескен Араб Әмирликлери + Аўғанстан + Антигуа ҳәм Барбуда + Ангилья + Албания + Армения + Ангола + Аргентина + Австрия + Австралия + Аруба + Аланд атаўлары + Әзербайжан + Босния ҳәм Герцеговина + Барбадос + Бангладеш + Бельгия + Буркина-Фасо + Болгария + Бахрейн + Бурунди + Бенин + Сен-Бартелеми + Бермуд атаўлары + Бруней + Боливия + Бонэйр, Синт-Эстатиус ҳәм Саба + Бразилия + Багама атаўлары + Бутан + Буве атаўы + Ботсвана + Беларусь + Белиз + Канада + Кокос атаўлары + Конго - Киншаса + Конго (КДР) + Орайлық Африка Республикасы + Конго - Браззавиль + Конго Республикасы + Швейцария + Кот-дИвуар + Кот-д’Ивуар + Кук атаўлары + Чили + Камерун + Қытай + Колумбия + Коста-Рика + Куба + Кабо-Верде + Кюрасао + Кипр + Чехия + Чехия Республикасы + Германия + Джибути + Дания + Доминика + Доминикана Республикасы + Алжир + Сеута ҳәм Мелилья + Эквадор + Эстония + Мысыр + Батыс Сахара + Эритрея + Испания + Эфиопия + Европа Аўқамы + Еврозона + Финляндия + Фиджи + Фолкленд атаўлары + Фолкленд (Мальвин) атаўлары + Микронезия Федеративлик Штатлары + Фарер атаўлары + Франция + Габон + Уллы Британия + Британия + Гренада + Грузия + Француз Гвианасы + Гернси + Гана + Гибралтар + Гренландия + Гамбия + Гвинея + Гваделупа + Экваториальлық Гвинея + Греция + Қубла Георгия ҳәм Қубла Сэндвич атаўлары + Гватемала + Гуам + Гвинея-Бисау + Гайана + Гонконг ААР + Гонконг + Гондурас + Хорватия + Гаити + Венгрия + Канар атаўлары + Индонезия + Ирландия + Израиль + Мэн атаўы + Ҳиндстан + Британияныӊ Ҳинд океанындағы территориясы + Чагос архипелагы + Ирак + Иран + Исландия + Италия + Джерси + Ямайка + Иордания + Япония + Кения + Қырғызстан + Камбоджа + Кирибати + Комор атаўлары + Сент-Китс ҳәм Невис + Арқа Корея + Қубла Корея + Кувейт + Кайман атаўлары + Қазақстан + Лаос + Ливан + Сент-Люсия + Лихтенштейн + Шри-Ланка + Либерия + Лесото + Литва + Люксембург + Латвия + Ливия + Марокко + Монако + Молдова + Черногория + Сен-Мартен + Мадагаскар + Маршалл атаўлары + Арқа Македония + Мали + Мьянма (Бирма) + Монголия + Макао ААР + Макао + Мартиника + Мавритания + Монтсеррат + Мальта + Маврикий + Мальдив + Малави + Мексика + Малайзия + Мозамбик + Намибия + Жаӊа Каледония + Нигер + Нигерия + Никарагуа + Нидерландия + Норвегия + Непал + Науру + Жаӊа Зеландия + Оман + Панама + Перу + Папуа — Жаӊа Гвинея + Филиппин + Пакистан + Польша + Сен-Пьер ҳәм Микелон + Питкэрн атаўлары + Пуэрто-Рико + Палестина территориялары + Палестина + Португалия + Палау + Парагвай + Қатар + Сыртқы Океания + Реюньон + Румыния + Сербия + Россия + Руанда + Саудия Арабстаны + Соломон атаўлары + Сейшель атаўлары + Судан + Швеция + Сингапур + Словения + Шпицберген ҳәм Ян-Майен + Словакия + Сьерра-Леоне + Сан-Марино + Сенегал + Сомали + Суринам + Қубла Судан + Сан-Томе ҳәм Принсипи + Сальвадор + Синт-Мартен + Сирия + Эсватини + Свазиленд + Тёркс ҳәм Кайкос атаўлары + Чад + Француз Қубла территориялары + Того + Таиланд + Тәжикстан + Токелау + Шығыс Тимор + Тимор-Лесте + Түркменстан + Тунис + Тонга + Түркия + Тринидад ҳәм Тобаго + Тувалу + Тайвань + Танзания + Украина + Уганда + Бирлескен Миллетлер Шөлкеми + Америка Қурама Штатлары + АҚШ + Уругвай + Өзбекстан + Ватикан + Сент-Винсент ҳәм Гренадин атаўлары + Венесуэла + Британия Виргин атаўлары + Америка Виргин атаўлары + Вьетнам + Вануату + Самоа + қалпеки пәт + қалпеки Bidi + Косово + Йемен + Майотта + Қубла Африка Республикасы + Замбия + Зимбабве + белгисиз аймақ + + + григориан календарь + кестели ҳижрий календарь + кестели ҳижрий календарь (астрономиялық дәўир) + ISO-8601 календары + стандарт саралаў + + + Тил: {0} + Жазыў: {0} + Аймақ: {0} + + + + [а ә б в г ғ д её ж з и й к қ л м н ң о ө п р с т уў ү ф х ҳ ц ч ш щ ъ ы ь э ю я] + [А Ә Б В Г Ғ Д ЕЁ Ж З И Й К Қ Л М Н Ң О Ө П Р С Т УЎ Ү Ф Х Ҳ Ц Ч Ш Щ Ъ Ы Ь Э Ю Я] + [\- ‑ , % ‰ + 0 1 2 3 4 5 6 7 8 9] + [\- ‐‑ – — , ; \: ! ? . … '‘’ "“” ( ) \[ \] § @ * / \& # † ‡ ′ ″] + + + + + + + + янв + фев + мар + апр + май + июн + июл + авг + сен + окт + ноя + дек + + + Я + Ф + М + А + М + И + И + А + С + О + Н + Д + + + январь + февраль + март + апрель + май + июнь + июль + август + сентябрь + октябрь + ноябрь + декабрь + + + + + Янв + Фев + Мар + Апр + Май + Июн + Июл + Авг + Сен + Окт + Ноя + Дек + + + Я + Ф + М + А + М + И + И + А + С + О + Н + Д + + + Январь + Февраль + Март + Апрель + Май + Июнь + Июль + Август + Сентябрь + Октябрь + Ноябрь + Декабрь + + + + + + + Екш + Дүй + Сий + Сәр + Пий + Жум + Шем + + + Е + Д + С + С + П + Ж + Ш + + + Ек + Дү + Си + Сә + Пи + Жу + Ше + + + екшемби + дүйшемби + сийшемби + сәршемби + пийшемби + жума + шемби + + + + + Екш + Дүй + Сий + Сәр + Пий + Жум + Шем + + + Е + Д + С + С + П + Ж + Ш + + + Ек + Дү + Си + Сә + Пи + Жу + Ше + + + екшемби + дүйшемби + сийшемби + сәршемби + пийшемби + жума + шемби + + + + + + + I ш. + II ш. + III ш. + IV ш. + + + I + II + III + IV + + + I шерек + II шерек + III шерек + IV шерек + + + + + I ш. + II ш. + III ш. + IV ш. + + + I + II + III + IV + + + I шерек + II шерек + III шерек + IV шерек + + + + + + бизиӊ эрамызға шекемги + бизиӊ эрамызға шекемги + бизиӊ эрамыздыӊ + бизиӊ эрамыздыӊ + + + б. э. ш. + б. э. + + + + + + + эра + + + жыл + өткен жыл + усы жыл + кейинги жыл + + + ж. + өткен ж. + усы ж. + кейинги ж. + + + ж + өтк. ж. + усы ж. + кей. ж. + + + шерек + + + шер. + + + шер + + + ай + өткен ай + усы ай + кейинги ай + + + ай + өткен ай + усы ай + кейинги ай + + + ай + өтк. ай + усы ай + кей. ай + + + ҳәпте + өткен ҳәпте + усы ҳәпте + кейинги ҳәпте + {0}-ҳәпте + + + ҳәп. + өткен ҳәп. + усы ҳәп. + кейинги ҳәп. + {0}-ҳәпте + + + ҳәп + өтк. ҳәп. + усы ҳәп. + кей. ҳәп. + {0}-ҳәпте + + + күн + кеше + бүгин + ертең + + + күн + кеше + бүгин + ертең + + + күн + кеше + бүгин + ертең + + + ҳәпте күни + + + AM/PM + + + саат + + + ст. + + + ст + + + минут + + + мин. + + + мин + + + секунд + + + сек. + + + сек + + + ўақыт зонасы + + + + diff --git a/make/data/cldr/common/main/kaa_Cyrl.xml b/make/data/cldr/common/main/kaa_Cyrl.xml new file mode 100644 index 00000000000..b00e1fc739d --- /dev/null +++ b/make/data/cldr/common/main/kaa_Cyrl.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + الەم + افريكا + سولتۇستىك امەريكا + وڭتۇستىك امەريكا + وكەانيا + باتىس افريكا + ورتالىق امەريكا + شىعىس افريكا + سولتۇستىك افريكا + ورتالىق افريكا + وڭتۇستىك افريكا ايماعى + امەريكا + سولتۇستىك امەريكا (ايماق) + كاريب + شىعىس ازيا + وڭتۇستىك ازيا + وڭتۇستىك-شىعىس ازيا + وڭتۇستىك ەۋروپا + اۋسترالازيا + مەلانەزيا + ميكرونەزيا ايماعى + پولينەزىا + ازيا + ورتالىق ازيا + باتىس ازيا + ەۋروپا + شىعىس ەۋروپا + سولتۇستىك ەۋروپا + باتىس ەۋروپا + سۋبساحارالىق افريكا + لاتىن امەريكا + اسكەنجىن ارالى + اندوررا + بىرىككەن اراب امىرلىكتەرى + اۋعانستان + انتيگۋا جانە باربۋدا + انگيليا + البانيا + ارمەنيا + انگولا + انتاركتيدا + ارگەنتينا + امەريكالىق ساموا + اۋستريا + اۋستراليا + ارۋبا + الاند ارالدارى + ءازىربايجان + بوسنيا جانە گەرتسەگوۆينا + باربادوس + بانگلادەش + بەلگيا + بۋركينا-فاسو + بولگاريا + باحرەين + بۋرۋندي + بەنين + سان-بارتەمەلي + بەرمۋد ارالدارى + برۋنەي + بوليۆيا + بونەير، سينت-ەستاتيۋس جانە سابا + برازيليا + باگام ارالدارى + بۋتان + بۋۆە ارالى + بوتسۆانا + بەلارۋس + بەليز + كانادا + كوكوس (كيليڭ) ارالدارى + كونگو + كونگو دەموكراتيالىق رەسپۋبليكاسى + ورتالىق افريكا رەسپۋبليكاسى + كونگو-براززاۆيل رەسپۋبليكاسى + كونگو رەسپۋبليكاسى + شۆەيساريا + كوت-ديۆۋار + كۋك ارالدارى + چيلي + كامەرۋن + قىتاي + كولۋمبيا + كليپپەرتون ارالى + سارك + كوستا-ريكا + كۋبا + كابو-ۆەردە + كيۋراساو + حريستماس ارالى + كيپر + چەحيا + چەح رەسپۋبليكاسى + گەرمانيا + ديەگو-گارسيا + دجيبۋتي + دانيا + دومينيكا + دومينيكان رەسپۋبليكاسى + الجىر + سەۋتا جانە مەليليا + ەكۆادور + ەستونيا + مىسىر + باتىس ساحارا + ەريترەيا + يسپانيا + ەفيوپيا + ەۋروپالىق وداق + ەۋرو ايماق + فينليانديا + فيجي + فولكلەند ارالدارى + فولكلەند ارالدارى (مالۆين ارالدارى) + ميكرونەزيا + فارەر ارالدارى + فرانسيا + گابون + ۇلىبريتانيا + گرەنادا + گرۋزيا + فرانسۋز گۆياناسى + گەرنسي + گانا + گيبرالتار + گرەنلانديا + گامبيا + گۆەنيا + گۆادەلۋپا + ەكۆاتورلىق گۆينەيا + گرەكيا + وڭتۇستىك گەورگيا جانە وڭتۇستىك ساندۆيچ ارالدارى + گۆاتەمالا + گۋان + گۆەنيا-بيساۋ + گايانا + حوڭكوڭ + حەرد ارالى جانە ماكدونالد ارالدارى + گوندۋراس + حورۆاتيا + گايتي + ماجارستان + كانار ارالدارى + يندونەزيا + يرلانديا + يزرايل + مەن ارالى + ءۇندىستان + ءۇندى مۇحيتىنداعى بريتان ايماعى + چاگوس ارحيپەلاگى + يراك + يران + يسلانديا + يتاليا + جەرسي + يامايكا + يوردانيا + جاپونيا + كەنيا + قىرعىزستان + كامباجا + كيريباتي + كومور ارالدارى + سەنت-كيتس جانە نەۆيس + سولتۇستىك كورەيا + وڭتۇستىك كورەيا + كۋۆەيت + كايمان ارالدارى + قازاق ەلى + لاوس + ليۆان + سەنت-ليۋسيا + ليحتەنشتەين + شري-لانكا + ليبەريا + لەسوتو + ليتۆا + ليۋكسەمبۋرگ + لاتۆيا + ليۆيا + ماروككو + موناكو + مولدوۆا + چەرنوگوريا + سەن-مارتەن + ماداگاسكار + مارشال ارالدارى + سولتۇستىك ماكەدونيا + مالي + ميانما (بيرما) + موڭعوليا + ماكاو + سولتۇستىك ماريانا ارالدارى + مارتينيكا + ماۆريتانيا + مونتسەررات + مالتا + ماۆريكي + مالديۆ ارالدارى + مالاۆي + مەكسيكا + مالايزيا + موزامبيك + ناميبيا + جاڭا كالەدونيا + نيگەر + نورفولك ارالى + نيگەريا + نيكاراگۋا + نيدەرلاند + نورۆەگيا + نەپال + ناۋرۋ + نيۋە + جاڭا زەلانديا + اوتەاروا، جاڭا زەلانديا + ومان + پاناما + پەرۋ + فرانتسۋز پولينەزياسى + پاپۋا — جاڭا گۆينەيا + فيليپين ارالدارى + پاكىستان + پولشا + سەن-پەر جانە ميكەلون + پيتكەرن ارالدارى + پۋەرتو-ريكو + پالەستينا ايماقتارى + پالەستينا + پورتۋگاليا + پالاۋ + پاراگۆاي + كاتار + سىرتقى وكەانيا + رەيۋنيون + رۋمىنيا + سەربيا + حەسەي + رۋاندا + ساۋد ارابياسى + سولومون ارالدارى + سەيشەل ارالدارى + سۋدان + شۆەسيا + سينگاپۋر + اۋليە ەلەنا ارالى + سلوۆەنيا + شپيتسبەرگەن جانە يان-مايەن + سلوۆاكيا + سەررا-لەونە + سان-مارينو + سەنەگال + سومالي + سۋرينام + وڭتۇستىك سۋدان + سان-تومە جانە پرينسيپي + سالۆادور + سينت-مارتەن + سيريا + ەسۆاتيني + سۆازيلەند + تريستان-دا-كۋنيا + تەركس جانە كايكوس ارالدارى + چاد + فرانتسيانىڭ وڭتۇستىك ايماقتارى + توگو + تايلاند + تاجىكستان + توكەلاۋ + تيمور-لەستە + شىعىس تيمور + تۇرىكمەنستان + تۋنيس + تونگا + تۇركيا + ترينيداد جانە توباگو + تۋۆالۋ + تايۋان + تانزانيا + ۋكراينا + ۋگاندا + ا ق ش-تىڭ سىرتقى كىشى ارالدارى + بىرىككەن ۇلتتار ۇيىمى + امەريكا قۇراما شتاتتارى + ا ق ش + ۋرۋگۆاي + وزبەكستان + ۆاتيكان + سەنت-ۆينسەنت جانە گرەنادين ارالدارى + ۆەنەسۋەلا + بريتاندىق ۆيرگين ارالدارى + ا ق ش-تىڭ ۆيرگين ارالدارى + ۆيەتنام + ۆانۋاتۋ + ۋولليس جانە فۋتۋنا + ساموا + جالعان اكسەنت + جالعان Bidi + كوسوۆو + يەمەن + مايوتتا + وڭتۇستىك افريكا + زامبيا + زيمبابۆە + بەلگىسىز ايماق + + + ءداستۇرلى نەمىس جازۋى + ستاندارتتى رەزيا جازۋى + 1996 جىلعا دەيىنگى نەمىس جازۋى + 1606 جىلعا دەيىنگى بەرگى ورتا فرانتسۋز ءتىلى + ەرتە ورتا فرانتسۋز ءتىلى + اكادەميالىق + 1943 جىلعى جازۋدىڭ قالىپتاسۋى + اكۋاپەم + ALA-LC رومانيزاتسياسى، 1997 جىلعى نۇسقا + الۋكۋ ديالەكتىسى + انپەزو + پورتۋگال ءتىلىنىڭ 1990 جىلعى جازۋ كەلىسىمى + اران + شىعىس ارميان + باتىس ارميان + وۆەرن + جالپى تۇركى ءالىپبيى + انيي بالانكا ديالەكتىسى + كابۋۆەرديانۋ بارلاۆەنتو ديالەكت توبى + بەيسيك-ەنگليش + باددا + بسياۆ + بسيزبل + بيسكاي + سان-جورجو/ديلا ديالەكتىسى + بلاسل + بوحوريچا ءالىپبيى + بۋنتلينگ + بورنحولم + سيزاۋپ + 1945 جىلعى برازيليالىق پورتۋگال ءتىلى كونۆەنتسياسى + كورنۋ + كرەيس + داينكو ءالىپبيى + سەرب ءتىلىنىڭ ەكاۆ ايتىلىمى + ەرتە ورتا اعىلشىن ءتىلى + فاسكيا + فودوم + حالىقارالىق فونەتيكالىق ءالىپبي + فونكيرش + فونناپا + ورال فونەتيكالىق ءالىپبي + فونكسامپ + گاللو + گاسكون + گحەرد + گ ر ك ل ا س س + گريتال + گ ر م ي س ت ر + حەپبيورن جۇيەسى + حەگنورسك + ح جۇيەسى + سەرب ءتىلىنىڭ يەكاۆ ايتىلىمى + يتيحاسا + يۆانچوۆ + ياۋەر + يۋتپيڭ + جالپى جازۋ + كوچەۋە + ستاندارتتى جازۋ + لاۋكيكا + ليمۋزەن + لانگەدوك + رەزيا ءتىلىنىڭ ليپوۆاز ديالەكتىسى + لتگ1929 + لتگ2007 + لۋنا1998 + مەتەلكو + مونوتوندى + نديۋكا + ناتيسون ديالەكتىسى + نيۋفاۋند + نيكارد + گنيۆا/نجيۆا ديالەكتىسى + زاماناۋي ۆولاپيۋك + وسەاككو/وسوجانە ديالەكتىسى + اعىلشىن ءتىلىنىڭ وكسفورد سوزدىگىندەگى ەملەسى + پاحاۋح2 + پاحاۋح3 + پاحاۋح4 + پاماكا ديالەكتىسى + پەانو + پەحوەيي + پەتر1708 + پينين رومانيزاسياسى + پوليتوندى + كومپيۋتەر + پروۆانس + پۋتەر + قايتا قارالعان جازۋ + كلاسسيكالىق ۆولاپيۋك + رەزيا + رۋمگر + ساحو + شوتلانديانىڭ ستاندارتتى اعىلشىن ءتىلى + سكاۋس + قاراپايىم + ستولۆيتسا/سولبيكا ديالەكتىسى + كابۋۆەرديانۋدىڭ سوتاۆەنتو ديالەكت توبى + سپانگليش + سۋرميران + سۋرسيلۆ + سۋتسيلۆ + سيننەجيل + تايلو + تاراشكەۆيتسا + توڭيوڭ + تۋنۋمييت + بىرىڭعاي جازۋ + بىرىڭعاي قايتا قارالعان جازۋ + ولستەر + يۋنيفون فونەتيكالىق ءالىپبيى + ۆايديكا + ۆالباديا + ۆالەنسيا + ۆاللادەر + ۆەچدرۋكا + ۆيۆارو-ءالپى + ۋەيد-جايىلس جۇيەسى + X جۇيەسى + + + كۇنتىزبە + اقشا ءپىشىمى + سۇرىپتاۋ رەتى + اقشا + ۋاقىت فورماتى (12 نە 24) + جولدى تاسىمالداۋ ءستيلى + ولشەمدەر جۇيەسى + ساندار + + + بۋددا كۇنتىزبەسى + قىتاي كۇنتىزبەسى + كوپت كۇنتىزبەسى + دانگي كۇنتىزبەسى + ەفيوپيا كۇنتىزبەسى + ەفيوپيانىڭ امەتە-الەم كۇنتىزبەسى + گرەگورياندىق كۇنتىزبە + كونە ەۆرەي كۇنتىزبەسى + ءۇندىستاننىڭ ۇلتتىق كۇنتىزبەسى + يسلام كۇنتىزبەسى + يسلام كۇنتىزبەسى (كەستەلىك، ازاماتتىق ءداۋىر) + يسلام كۇنتىزبەسى (ساۋد ارابياسى، جاڭا اي) + يسلام كۇنتىزبەسى (كەستەلىك، استرونوميالىق ءداۋىر) + يسلام كۇنتىزبەسى (ۋمم ءال-قۇرا) + ISO-8601 كۇنتىزبەسى + جاپون كۇنتىزبەسى + پارسى كۇنتىزبەسى + مينگۋو كۇنتىزبەسى + ەسەپتىك اقشا ءپىشىمى + ستاندارتتى اقشا ءپىشىمى + ءداستۇرلى قىتاي ءتىلىنىڭ سۇرىپتاۋ رەتى - Big5 + سايكەستىككە ارنالعان الدىڭعى سۇرىپتاۋ رەتى + سوزدىك بويىنشا سۇرىپتاۋ رەتى + ادەپكى ۋنيكود سۇرىپتاۋ رەتى + ەموجي سۇرىپتاۋ رەتى + ەۋروپالىق رەتتەۋ ەرەجەلەرى + جەڭىلدەتىلگەن قىتاي ءتىلىنىڭ سۇرىپتاۋ رەتى - GB2312 + تەلەفون كىتاپشاسىنىڭ سۇرىپتاۋ رەتى + پينين سۇرىپتاۋ رەتى + جالپى ماقساتتاعى ىزدەۋ + كورەي ءتىلىنىڭ باستاپقى داۋىسسىزى بويىنشا ىزدەۋ + ستاندارتتى سۇرىپتاۋ رەتى + يەروگليفتەر سىزىقتارىن سۇرىپتاۋ رەتى + ءداستۇرلى سۇرىپتاۋ رەتى + يەروگليفتەر سىزىقتارىن تۇبەگەيلى سۇرىپتاۋ رەتى + جۋين سۇرىپتاۋ رەتى + 12 ساعاتتىق جۇيە (0–11) + 12 ساعاتتىق جۇيە (0–12) + 24 ساعاتتىق جۇيە (0–23) + 24 ساعاتتىق جۇيە (0–24) + جولدى تاسىمالداۋدىڭ ەركىن ءستيلى + جولدى تاسىمالداۋدىڭ قالىپتى ءستيلى + جولدى تاسىمالداۋدىڭ قاتاڭ ءستيلى + مەترلىك جۇيە + بريتانيالىق ولشەمدەر جۇيەسى + امەريكالىق ولشەمدەر جۇيەسى + احوم تسيفرلارى + ءۇندى-اراب ساندارى + ءۇندى-اراب ساندارىنىڭ كەڭەيتىلگەن جۇيەسى + ارميان ساندارى + كىشى ارىپپەن بەرىلگەن ارميان ساندارى + بالي ساندارى + بەنگال ساندارى + براحمي ساندارى + چاكما ساندارى + چام ساندارى + كيريل ساندارى + دەۆاناگاري ساندارى + دەۆيس اكۋرۋ ساندارى + ەفيوپيا ساندارى + تولىق ەندى ساندار + گاراي ساندارى + گرۋزين ساندارى + گۋنجالا گوندي ساندارى + ماساراما گوندي ساندارى + گرەك ساندارى + كىشى ارىپپەن بەرىلگەن گرەك ساندارى + گۋجاراتي ساندارى + گۋرۋڭ حەما ساندارى + گۋرمۋكحي ساندارى + قىتاي وندىق ساندارى + جەڭىلدەتىلگەن قىتاي ساندارى + قارجى سالاسىنداعى جەڭىلدەتىلگەن قىتاي ساندارى + ءداستۇرلى قىتاي ساندارى + قارجى سالاسىنداعى ءداستۇرلى قىتاي ساندارى + يۆريت ساندارى + پاحاۋ ساندارى + نياكەڭ پۋاچۋە حموڭ ساندارى + ياۆا ساندارى + جاپون ساندارى + قارجى سالاسىنداعى جاپون ساندارى + كاياح لي ساندارى + كاۋي ساندارى + كحمەر ساندارى + كاننادا ساندارى + كيرات راي ساندارى + تاي تحام حورا ساندارى + تاي تحام تحام ساندارى + لاوس ساندارى + باتىس ساندارى + لەپچا ساندارى + ليمبۋ ساندارى + ماتەماتيكالىق قالىڭ قارىپتى ساندار + ماتەماتيكالىق قوس سىزىقتى ساندار + ەنى بەكىتىلگەن ماتەماتيكالىق ساندار + ماتەماتيكالىق قالىڭ قارىپتى سانسەريف ساندار + ماتەماتيكالىق سانسەريف ساندار + مالايالام ساندارى + مودي ساندارى + موڭعول ساندارى + مرو ساندارى + مەيتەي-مايەك ساندارى + ميانمار ساندارى + ميانمار شىعىس پحو كارەن ساندارى + ميانمار پاو ساندارى + ميانمار شان ساندارى + ميانمار تاي لايڭ ساندارى + ناگ مۋنداري ساندارى + نكو ساندارى + ول-چيكي ساندارى + ول-ونال ساندارى + وريا ساندارى + يسمانيا ساندارى + سىزىلعان ساندار + حانيفي ساندارى + ريم ساندارى + كىشى ارىپپەن بەرىلگەن ريم ساندارى + ساۋراشترا ساندارى + شارادا ساندارى + كحۋدابادي ساندارى + سينگالا ليت ساندارى + سورا سومپەڭ ساندارى + سۋندا ساندارى + سۋنۋار ساندارى + تاكري ساندارى + جاڭا لۋ جازۋىنىڭ ساندارى + ءداستۇرلى تاميل ساندارى + تاميل ساندارى + تەلۋگۋ ساندارى + تاي ساندارى + تيبەر ساندارى + تيرحۋتا ساندارى + تاڭسا ساندارى + ۆاي ساندارى + ۋاراڭ سيتي ساندارى + ۋانچو ساندارى + + + مەترلىك + اعىلشىن + امەريكالىق + + + ءتىل: {0} + جازۋ: {0} + ايماق: {0} + + + + + right-to-left + top-to-bottom + + + + [ء ا ە ب پ ت ج چ ح د ر ز س ش ع ف ق ك گ ڭ ل م ن ھ و ۇ ۆ ۋ ى ي] + [ء ا ە ب پ ت ج چ ح د ر ز س ش ع ف ق ك گ ڭ ل م ن ھ و ۇ ۆ ۋ ى ي] + [\- ‐‑ – — ، ؛ \: ! ؟ . … '‘’ "“” « » ( ) \[ \] \{ \} § @ * / \& #] + ؟ + + + » + « + + + + + + + + + + قاڭ + اقپ + ناۋ + ساۋ + مام + ماۋ + شىل + تام + قىر + قاز + قار + جەل + + + قاڭتار + اقپان + ناۋرىز + ءساۋىر + مامىر + ماۋسىم + شىلدە + تامىز + قىركۇيەك + قازان + قاراشا + جەلتوقسان + + + + + قاڭ + اقپ + ناۋ + ساۋ + مام + ماۋ + شىل + تام + قىر + قاز + قار + جەل + + + قاڭتار + اقپان + ناۋرىز + ءساۋىر + مامىر + ماۋسىم + شىلدە + تامىز + قىركۇيەك + قازان + قاراشا + جەلتوقسان + + + + + + + EEEE، MMMM d، r(U) + + + + + MMMM d، r(U) + + + + + MMM d، r + + + + + M/d/yy + + + + + + + + + EEEE، MMMM d، y G + + + + + MMMM d، y G + + + + + MMM d، y G + + + + + M/d/y GGGGG + + + + + + + {1} {0} + + + + + {1} {0} + + + + + {1}، {0} + + + {1}، {0} + + + + + {1}، {0} + + + {1}، {0} + + + + d E + y G + M/d/y GGGGG + MMM y G + MMM d، y G + E، MMM d، y G + M/d + E، M/d + E، MMM d + y G + y G + M/y GGGGG + M/d/y GGGGG + E، M/d/y GGGGG + MMM y G + MMM d، y G + E، MMM d، y G + MMMM y G + QQQ y G + QQQQ y G + + + + y G – y G + y – y G + + + M/y GGGGG – M/y GGGGG + M/y – M/y GGGGG + M/y – M/y GGGGG + + + M/d/y – M/d/y GGGGG + M/d/y GGGGG – M/d/y GGGGG + M/d/y – M/d/y GGGGG + M/d/y – M/d/y GGGGG + + + E، M/d/y – E، M/d/y GGGGG + E، M/d/y GGGGG – E، M/d/y GGGGG + E، M/d/y – E، M/d/y GGGGG + E، M/d/y – E، M/d/y GGGGG + + + MMM y G – MMM y G + MMM – MMM y G + MMM y – MMM y G + + + MMM d – d، y G + MMM d، y G – MMM d، y G + MMM d – MMM d، y G + MMM d، y – MMM d، y G + + + E، MMM d – E، MMM d، y G + E، MMM d، y G – E، MMM d، y G + E، MMM d – E، MMM d، y G + E، MMM d، y – E، MMM d، y G + + + M – M + + + M/d – M/d + M/d – M/d + + + E، M/d – E، M/d + E، M/d – E، M/d + + + MMM – MMM + + + MMM d – d + + + E، MMM d – E، MMM d + E، MMM d – E، MMM d + + + y – y G + + + M/y – M/y GGGGG + M/y – M/y GGGGG + + + M/d/y – M/d/y GGGGG + M/d/y – M/d/y GGGGG + M/d/y – M/d/y GGGGG + + + E، M/d/y – E، M/d/y GGGGG + E، M/d/y – E، M/d/y GGGGG + E، M/d/y – E، M/d/y GGGGG + + + MMM – MMM y G + MMM y – MMM y G + + + MMM d – d، y G + MMM d – MMM d، y G + MMM d، y – MMM d، y G + + + E، MMM d – E، MMM d، y G + E، MMM d – E، MMM d، y G + E، MMM d، y – E، MMM d، y G + + + MMMM – MMMM y G + MMMM y – MMMM y G + + + + + + + + + قاڭتار + اقپان + ناۋرىز + ءساۋىر + مامىر + ماۋسىم + شىلدە + تامىز + قىركۇيەك + قازان + قاراشا + جەلتوقسان + + + قاڭتار + اقپان + ناۋرىز + ءساۋىر + مامىر + ماۋسىم + شىلدە + تامىز + قىركۇيەك + قازان + قاراشا + جەلتوقسان + + + + + قاڭتار + اقپان + ناۋرىز + ءساۋىر + مامىر + ماۋسىم + شىلدە + تامىز + قىركۇيەك + قازان + قاراشا + جەلتوقسان + + + قاڭتار + اقپان + ناۋرىز + ءساۋىر + مامىر + ماۋسىم + شىلدە + تامىز + قىركۇيەك + قازان + قاراشا + جەلتوقسان + + + + + + + جەك + دۇي + سەي + سار + بەي + جۇم + سەن + + + ج + د + س + س + ب + ج + س + + + جە + دۇ + سە + سا + بە + جۇ + سن + + + جەكسەنبى + دۇيسەنبى + سەيسەنبى + سارسەنبى + بەيسەنبى + جۇما + سەنبى + + + + + جەك + دۇي + سەي + سار + بەي + جۇم + سەن + + + ج + د + س + س + ب + ج + س + + + جە + دۇ + سە + سا + بە + جۇ + سن + + + جەكسەنبى + دۇيسەنبى + سەيسەنبى + سارسەنبى + بەيسەنبى + جۇما + سەنبى + + + + + + + 1-توقسان + 2-توقسان + 3-توقسان + 4-توقسان + + + ءبىرىنشى توقسان + ەكىنشى توقسان + ءۇشىنشى توقسان + ءتورتىنشى توقسان + + + + + 1-توقسان + 2-توقسان + 3-توقسان + 4-توقسان + + + ءبىرىنشى توقسان + ەكىنشى توقسان + ءۇشىنشى توقسان + ءتورتىنشى توقسان + + + + + + + ءتۇن جارىمى + ت د + تۇسكى + ت ك + تاڭعى + تۇستەن كەيىنگى + كەش + تۇنگى + + + تۇنگى + ت د + تۇسكى + ت ك + تاڭعى + تۇستەن كەيىنگى + كەشكى + تۇنگى + + + ءتۇن جارىمى + ت د + تۇسكى + ت ك + تاڭعى + تۇستەن كەيىنگى + كەشى + تۇنگى + + + + + ءتۇن جارىمى + ت د + ءتالتۇس + ت ك + تاڭ + تۇستەن كەيىن + كەش + ءتۇن + + + ءتۇن جارىمى + ت د + تال ءتۇس + ت ك + تاڭ + تۇستەن كەيىن + كەش + ءتۇن + + + ءتۇن جارىمى + ت د + تال ءتۇس + ت ك + تاڭ + تۇستەن كەيىن + كەش + ءتۇن + + + + + + ءبىزدىڭ زامانىمىزعا دەيىن + ءبىزدىڭ زامانىمىزعا دەيىن + ءبىزدىڭ زامانىمىز + ءبىزدىڭ زامانىمىز + + + ب ز د + ب ز + + + ب ز د + ب ز د + ب ز + ب ز + + + + + + y d-MMMM، EEEE + + + + + d-MMMM، y + + + + + d-MMM، y + + + + + dd-MM-y + + + + + + + HH:mm:ss zzzz + + + + + HH:mm:ss z + + + + + HH:mm:ss + + + + + HH:mm + + + + + + + {1}، {0} + + + {1}, {0} + + + + + {1}، {0} + + + {1}, {0} + + + + + {1}, {0} + + + {1}, {0} + + + + + {1}, {0} + + + {1}, {0} + + + + d E + y G + G d-M-y + y MMM G + y d-MMM G + y d-MMM، E G + d-M + d-M، E + d-MMM + d-MMM، E + d-MMMM + اپتاسى-W ايىنىڭ MMMM + اپتاسى-W ايىنىڭ MMMM + M-y + y-d-M + y-d-M، E + y d-MMM + y d-MMM، E + اپتاسى-w جىلدىڭ Y + اپتاسى-w جىلدىڭ Y + + + + G y-M – G y-M + G y-M – y-M + G y-M – y-M + + + G y-M-d – y-M-d + G y-M-d – G y-M-d + G y-M-d – y-M-d + G y-M-d – y-M-d + + + G y-M-d، E – y-M-d، E + G y-M-d، E – G y-M-d، E + G y-M-d، E – y-M-d، E + G y-M-d، E – y-M-d، E + + + G y، MMM d–d + G y، MMM d – G y، MMM d + G y، MMM d – MMM d + G y، MMM d – y، MMM d + + + G y، d MMM، E – d MMM، E + G y، d MMM، E – G y، d MMM، E + G y، d MMM، E – d MMM، E + G y، d MMM، E – y d MMM، E + + + M – M + + + M-d – M-d + M-d – M-d + + + M-d، E – M-d، E + M-d، E – M-d، E + + + MMM–MMM + + + MMM d، E – MMM d، E + MMM d، E – MMM d، E + + + y-M – y-M + y-M – y-M + + + y-M-d – y-M-d + y-M-d – y-M-d + y-M-d – y-M-d + + + y-M-d، E – y-M-d، E + y-M-d، E – y-M-d، E + y-M-d، E – y-M-d، E + + + y، MMM d–d + y، MMM d – MMM d + y، MMM d – y، MMM d + + + y MMM d، E – MMM d، E + y MMM d، E – MMM d، E + y MMM d، E – y MMM d، E + + + + + + + + ءداۋىر + + + ءداۋىر + + + ءداۋىر + + + جىل + بىلتىرعى جىل + بيىلعى جىل + كەلەسى جىل + + {0} جىلدان كەيىن + {0} جىلدان كەيىن + + + {0} جىل بۇرىن + {0} جىل بۇرىن + + + + جىل + بىلتىرعى جىل + بيىلعى جىل + كەلەسى جىل + + {0} جىلدان كەيىن + {0} جىلدان كەيىن + + + {0} جىل بۇرىن + {0} جىل بۇرىن + + + + جىل + بىلتىرعى جىل + بيىلعى جىل + كەلەسى جىل + + {0} جىلدان كەيىن + {0} جىلدان كەيىن + + + {0} جىل بۇرىن + {0} جىل بۇرىن + + + + شيرەك + وتكەن توقسان + وسى توقسان + كەلەسى توقسان + + {0} توقساننان كەيىن + {0} توقساننان كەيىن + + + {0} توقسان بۇرىن + {0} توقسان بۇرىن + + + + شيرەك + وتكەن توقسان + وسى توقسان + كەلەسى توقسان + + {0} توقساننان كەيىن + {0} توقساننان كەيىن + + + {0} توقسان بۇرىن + {0} توقسان بۇرىن + + + + شيرەك + وتكەن توقسان + وسى توقسان + كەلەسى توقسان + + {0} توقساننان كەيىن + {0} توقساننان كەيىن + + + {0} توقسان بۇرىن + {0} توقسان بۇرىن + + + + اي + وتكەن اي + وسى اي + كەلەسى اي + + {0} ايدان كەيىن + {0} ايدان كەيىن + + + {0} اي بۇرىن + {0} اي بۇرىن + + + + اي + وتكەن اي + وسى اي + كەلەسى اي + + {0} ايدان كەيىن + {0} ايدان كەيىن + + + {0} اي بۇرىن + {0} اي بۇرىن + + + + اي + وتكەن اي + وسى اي + كەلەسى اي + + {0} ايدان كەيىن + {0} ايدان كەيىن + + + {0} اي بۇرىن + {0} اي بۇرىن + + + + اپتا + وتكەن اپتا + وسى اپتا + كەلەسى اپتا + + {0} اپتادان كەيىن + {0} اپتادان كەيىن + + + {0} اپتا بۇرىن + {0} اپتا بۇرىن + + {0} اپتاسى + + + اپتا + وتكەن اپتا + وسى اپتا + كەلەسى اپتا + + {0} اپتادان كەيىن + {0} اپتادان كەيىن + + + {0} اپتا بۇرىن + {0} اپتا بۇرىن + + {0} اپتاسى + + + اپتا + وتكەن اپتا + وسى اپتا + كەلەسى اپتا + + {0} اپتادان كەيىن + {0} اپتادان كەيىن + + + {0} اپتا بۇرىن + {0} اپتا بۇرىن + + {0} اپتاسى + + + ايداعى اپتا + + + ايداعى اپتا + + + ايداعى اپتا + + + كۇن + كەشە + بۇگىن + ەرتەڭ + + {0} كۇننەن كەيىن + {0} كۇننەن كەيىن + + + {0} كۇن بۇرىن + {0} كۇن بۇرىن + + + + كۇن + كەشە + بۇگىن + ەرتەڭ + + {0} كۇننەن كەيىن + {0} كۇننەن كەيىن + + + {0} كۇن بۇرىن + {0} كۇن بۇرىن + + + + كۇن + كەشە + بۇگىن + ەرتەڭ + + {0} كۇننەن كەيىن + {0} كۇننەن كەيىن + + + {0} كۇن بۇرىن + {0} كۇن بۇرىن + + + + جىلداعى كۇن + + + جىلداعى كۇن + + + جىلداعى كۇن + + + اپتا كۇنى + + + اپتا كۇنى + + + اپتا كۇنى + + + ايداعى اپتا كۇنى + + + ايداعى اپتا كۇنى + + + ايداعى اپتا كۇنى + + + وتكەن جەكسەنبى + وسى جەكسەنبى + كەلەسى جەكسەنبى + + {0} جەكسەنبىدەن كەيىن + {0} جەكسەنبىدەن كەيىن + + + {0} جەكسەنبى بۇرىن + {0} جەكسەنبى بۇرىن + + + + وتكەن جەكسەنبى + وسى جەكسەنبى + كەلەسى جەكسەنبى + + {0} جەكسەنبىدەن كەيىن + {0} جەكسەنبىدەن كەيىن + + + {0} جەكسەنبى بۇرىن + {0} جەكسەنبى بۇرىن + + + + وتكەن جەكسەنبى + وسى جەكسەنبى + كەلەسى جەكسەنبى + + {0} جەكسەنبىدەن كەيىن + {0} جەكسەنبىدەن كەيىن + + + {0} جەكسەنبى بۇرىن + {0} جەكسەنبى بۇرىن + + + + وتكەن دۇيسەنبى + وسى دۇيسەنبى + كەلەسى دۇيسەنبى + + {0} دۇيسەنبىدەن كەيىن + {0} دۇيسەنبىدەن كەيىن + + + {0} دۇيسەنبى بۇرىن + {0} دۇيسەنبى بۇرىن + + + + وتكەن دۇيسەنبى + وسى دۇيسەنبى + كەلەسى دۇيسەنبى + + {0} دۇيسەنبىدەن كەيىن + {0} دۇيسەنبىدەن كەيىن + + + {0} دۇيسەنبى بۇرىن + {0} دۇيسەنبى بۇرىن + + + + وتكەن دۇيسەنبى + وسى دۇيسەنبى + كەلەسى دۇيسەنبى + + {0} دۇيسەنبىدەن كەيىن + {0} دۇيسەنبىدەن كەيىن + + + {0} دۇيسەنبى بۇرىن + {0} دۇيسەنبى بۇرىن + + + + وتكەن سەيسەنبى + وسى سەيسەنبى + كەلەسى سەيسەنبى + + {0} سەيسەنبىدەن كەيىن + {0} سەيسەنبىدەن كەيىن + + + {0} سەيسەنبى بۇرىن + {0} سەيسەنبى بۇرىن + + + + وتكەن سەيسەنبى + وسى سەيسەنبى + كەلەسى سەيسەنبى + + {0} سەيسەنبىدەن كەيىن + {0} سەيسەنبىدەن كەيىن + + + {0} سەيسەنبى بۇرىن + {0} سەيسەنبى بۇرىن + + + + وتكەن سەيسەنبى + وسى سەيسەنبى + كەلەسى سەيسەنبى + + {0} سەيسەنبىدەن كەيىن + {0} سەيسەنبىدەن كەيىن + + + {0} سەيسەنبى بۇرىن + {0} سەيسەنبى بۇرىن + + + + وتكەن سارساەنبى + وسى سارسەنبى + كەلەسى سارسەنبى + + {0} سارسەنبىدەن كەيىن + {0} سارسەنبىدەن كەيىن + + + {0} سارسەنبى بۇرىن + {0} سارسەنبى بۇرىن + + + + وتكەن سارساەنبى + وسى سارسەنبى + كەلەسى سارسەنبى + + {0} سارسەنبىدەن كەيىن + {0} سارسەنبىدەن كەيىن + + + {0} سارسەنبى بۇرىن + {0} سارسەنبى بۇرىن + + + + وتكەن سارساەنبى + وسى سارسەنبى + كەلەسى سارسەنبى + + {0} سارسەنبىدەن كەيىن + {0} سارسەنبىدەن كەيىن + + + {0} سارسەنبى بۇرىن + {0} سارسەنبى بۇرىن + + + + وتكەن بەيسەنبى + وسى بەيسەنبى + كەلەسى بەيسەنبى + + {0} بەيسەنبىدەن كەيىن + {0} بەيسەنبىدەن كەيىن + + + {0} بەيسەنبى بۇرىن + {0} بەيسەنبى بۇرىن + + + + وتكەن بەيسەنبى + وسى بەيسەنبى + كەلەسى بەيسەنبى + + {0} بەيسەنبىدەن كەيىن + {0} بەيسەنبىدەن كەيىن + + + {0} بەيسەنبى بۇرىن + {0} بەيسەنبى بۇرىن + + + + وتكەن بەيسەنبى + وسى بەيسەنبى + كەلەسى بەيسەنبى + + {0} بەيسەنبىدەن كەيىن + {0} بەيسەنبىدەن كەيىن + + + {0} بەيسەنبى بۇرىن + {0} بەيسەنبى بۇرىن + + + + وتكەن جۇما + وسى جۇما + كەلەسى جۇما + + {0} جۇمادان كەيىن + {0} جۇمادان كەيىن + + + {0} جۇما بۇرىن + {0} جۇما بۇرىن + + + + وتكەن جۇما + وسى جۇما + كەلەسى جۇما + + {0} جۇمادان كەيىن + {0} جۇمادان كەيىن + + + {0} جۇما بۇرىن + {0} جۇما بۇرىن + + + + وتكەن جۇما + وسى جۇما + كەلەسى جۇما + + {0} جۇمادان كەيىن + {0} جۇمادان كەيىن + + + {0} جۇما بۇرىن + {0} جۇما بۇرىن + + + + وتكەن سەنبى + وسى سەنبى + كەلەسى سەنبى + + {0} سەنبىدەن كەيىن + {0} سەنبىدەن كەيىن + + + {0} سەنبى بۇرىن + {0} سەنبى بۇرىن + + + + وتكەن سەنبى + وسى سەنبى + كەلەسى سەنبى + + {0} سەنبىدەن كەيىن + {0} سەنبىدەن كەيىن + + + {0} سەنبى بۇرىن + {0} سەنبى بۇرىن + + + + وتكەن سەنبى + وسى سەنبى + كەلەسى سەنبى + + {0} سەنبىدەن كەيىن + {0} سەنبىدەن كەيىن + + + {0} سەنبى بۇرىن + {0} سەنبى بۇرىن + + + + تۇسكە دەيىن/تۇستەن كەيىن + + + تۇسكە دەيىن/تۇستەن كەيىن + + + تۇسكە دەيىن/تۇستەن كەيىن + + + ساعات + وسى ساعات + + {0} ساعاتتان كەيىن + {0} ساعاتتان كەيىن + + + {0} ساعات بۇرىن + {0} ساعات بۇرىن + + + + ساعات + وسى ساعات + + {0} ساعاتتان كەيىن + {0} ساعاتتان كەيىن + + + {0} ساعات بۇرىن + {0} ساعات بۇرىن + + + + ساعات + وسى ساعات + + {0} ساعاتتان كەيىن + {0} ساعاتتان كەيىن + + + {0} ساعات بۇرىن + {0} ساعات بۇرىن + + + + مينۋت + وسى مينۋت + + {0} مينۋتتان كەيىن + {0} مينۋتتان كەيىن + + + {0} مينۋت بۇرىن + {0} مينۋت بۇرىن + + + + مينۋت + وسى مينۋت + + {0} مينۋتتان كەيىن + {0} مينۋتتان كەيىن + + + {0} مينۋت بۇرىن + {0} مينۋت بۇرىن + + + + مينۋت + وسى مينۋت + + {0} مينۋتتان كەيىن + {0} مينۋتتان كەيىن + + + {0} مينۋت بۇرىن + {0} مينۋت بۇرىن + + + + سەكۋند + قازىر + + {0} سەكۋندتان كەيىن + {0} سەكۋندتان كەيىن + + + {0} سەكۋند بۇرىن + {0} سەكۋند بۇرىن + + + + سەكۋند + قازىر + + {0} سەكۋندتان كەيىن + {0} سەكۋندتان كەيىن + + + {0} سەكۋند بۇرىن + {0} سەكۋند بۇرىن + + + + سەكۋند + قازىر + + {0} سەكۋندتان كەيىن + {0} سەكۋندتان كەيىن + + + {0} سەكۋند بۇرىن + {0} سەكۋند بۇرىن + + + + ۋاقىت بەلدەۋى + + + ۋاقىت بەلدەۋى + + + ۋاقىت بەلدەۋى + + + + {0} ۋاقىتى + {0} جازعى ۋاقىتى + {0} ستاندارتتى ۋاقىتى + + + دۇنيەجۇزىلىك ۇيلەستىرىلگەن ۋاقىت + + + + بەلگىسىز قالا + + + اندوررا + + + دۋباي + + + كابۋل + + + انتيگۋا + + + انگيليا + + + تيرانا + + + يەرەۆان + + + لۋاندا + + + روتەرا + + + پالمەر + + + ترول + + + سەۆا + + + موۋسون + + + دەيۆيس + + + ۆوستوك + + + كەيسي + + + ديۋمون-ديۋرۆيل + + + ماك-مەردو + + + ريو-گالەگوس + + + مەندوزا + + + سان-حۋان + + + ۋشۋايا + + + لا-ريوحا + + + سان-لۋيس + + + كاتاماركا + + + سالتا + + + جۋجۋي + + + تۋكۋمان + + + كوردوبا + + + بۋەنوس-ايروس + + + پاگو-پاگو + + + ۆەنا + + + پەرت + + + يۋكلا + + + دارۆين + + + ادەلايدا + + + بروكەن-حيل + + + مەلبۋرن + + + حوبارت + + + ليندەمان + + + سيدنەي + + + بريسبەن + + + ماككۋوري + + + لورد-حاۋ + + + ارۋبا + + + ماريەحامن + + + باكۋ + + + ساراەۆو + + + باربادوس + + + داككا + + + بريۋسەل + + + ۋاگادۋگۋ + + + سوفيا + + + باحرەين + + + بۋجۋمبۋرا + + + پورتو-نوۆو + + + سەن-بارتەلەمي + + + بەرمۋد ارالدارى + + + برۋنەي + + + لا-پاس + + + كرالەندەيك + + + ەيرۋنەپە + + + ريۋ-برانكۋ + + + پورتو-ۆەليۋ + + + باو-ۆيستا + + + ماناۋس + + + كۋيابا + + + سانتارەن + + + كامپۋ-گراندە + + + بەلەم + + + اراگۋاينا + + + سان-پۋالۋ + + + بايا + + + فورتالەزا + + + ماسەيو + + + رەسيفي + + + نورونيا + + + ناسساۋ + + + تحيمپحۋ + + + گابورونە + + + مينسك + + + بەليز + + + دوۋسون + + + ۋايتحورس + + + ينۋۆيك + + + ۆانكۋۆەر + + + فورت-نەلسون + + + دوۋسون-كريك + + + كرەستون + + + ەدمونتون + + + سۋيات-كاررەنت + + + كەمبريج-بەي + + + رەجاينا + + + ۆيننيپەگ + + + رەزوليۋت + + + رانكين-ينلەت + + + اتيكوكان + + + تورونتو + + + يكالۋيت + + + مونكتون + + + گاليفاكس + + + گۋس-بەي + + + گلەيس-بەي + + + بلانك-سابلون + + + سەنت-جونس + + + كوكوس ارالدارى + + + كينشاسا + + + لۋبۋمباشي + + + بانگي + + + براززاۆيل + + + سيۋريح + + + ابيدجان + + + راروتونگا + + + پاسحا ارالى + + + پۋنتا-ارەناس + + + سانتياگو + + + دۋالا + + + ءۇرىمشى + + + شانحاي + + + بوگوتا + + + كوستا-ريكا + + + گاۆانا + + + كابو-ۆەردە + + + كيۋراساو + + + كريستماس ارالدارى + + + نيكوسيا + + + فاماگۋستا + + + پراگا + + + بيۋزينگەن + + + بەرلين + + + جيبۋتي + + + كوپەنگاگەن + + + دومينيكا + + + سانتو-دومينگو + + + الجير + + + گالاپاگوس + + + گۋاياكيل + + + تاللين + + + كاير + + + ەل-ايۋن + + + اسمارا + + + كانار ارالدارى + + + سەۋتا + + + مادريد + + + ادديس-ابەبا + + + حەلسينكي + + + فيجي + + + ستەنلي + + + ترۋك + + + پوناپە + + + كۋسايە + + + فارەر ارالدارى + + + پاريج + + + ليبرەۆيل + + + + ۇلىبريتانيا جازعى ۋاقىتى + + لوندون + + + گرەنادا + + + تبيليسي + + + كايەننا + + + گەرنسي + + + اككرا + + + گيبرالتال + + + تۋلە + + + نۋۋك + + + يللوككورتوورميۋت + + + دانماركسحاۆن + + + بانجۋل + + + كوناكري + + + گۆادەلۇپا + + + مالابو + + + افينا + + + وڭتۇستىك گەورگيا + + + گۆاتەمالا + + + گۋام + + + بيساۋ + + + گايانا + + + حوڭكوڭ + + + تەگۋسيگالپا + + + زاگرەب + + + پورت-وف-پرەنس + + + بۋداپەشت + + + جاكارتا + + + پونتياناك + + + ماكاسار + + + جاياپۋرا + + + + يرلانديا ستاندارتتى ۋاقىتى + + دۋبلين + + + يەرۋساليم + + + مەن ارالى + + + كالكۋتا + + + چاگوس + + + باگدات + + + تەگەران + + + رەيكياۆيك + + + ريم + + + جەرسەي + + + يامايكا + + + اممان + + + توكيو + + + نايروبي + + + بىشكەك + + + پنومپەن + + + كانتون + + + كيريتيماتي + + + تاراۋا + + + كومور ارالدارى + + + سەنت-كيتس + + + پحەنيان + + + سەۋل + + + كۋۆەيت + + + كايمان ارالدارى + + + اقتاۋ + + + ورال + + + اتىراۋ + + + اقتوبە + + + قوستاناي + + + قىزىلوردا + + + الماتى + + + ۆەنتيان + + + بەيرۋت + + + سەنت-ليۋسيا + + + ۆادۋس + + + كولومبو + + + مونروۆيا + + + ماسەرۋ + + + ۆينيۋس + + + ليۋكسەمبۋرگ + + + ريگا + + + تريپولي + + + كاسابلانكا + + + موناكو + + + كيشينەۆ + + + پودگوريسا + + + ماريگو + + + انتاناناريۆۋ + + + كۆاجالەيىن + + + ماجۋرو + + + سكوپيە + + + باماكو + + + يانگون + + + حوۆد + + + ۇلانباتىر + + + ماكاو + + + سايپان + + + مارتينيكا + + + نۋاكشوت + + + مونتسەررات + + + مالتا + + + ماۆريكي + + + مالديۆ ارالدارى + + + بلانتاير + + + تيحۋانا + + + ەرموسيلو + + + سيۋداد-حۋارەس + + + ماساتلان + + + چيۋاۋا + + + بايا-دە-باندەراس + + + وحيناگا + + + مونتەررەي + + + مەحيكو + + + ماتاموروس + + + مەريدا + + + كانكۋن + + + كۋالا-لۋمپۋر + + + كۋچيڭ + + + ماپۋتۋ + + + ۆيندحۋك + + + نۋمەا + + + نيامەي + + + نورفولك + + + لاگوس + + + ماناگۋا + + + امستەردام + + + وسلو + + + كاتماندۋ + + + ناۋرۋ + + + نيۋە + + + چاتەم + + + وكلەند + + + ماسكات + + + پاناما + + + ليما + + + تايتي + + + ماركيز ارالدارى + + + گامبيە + + + پورت-مورسبي + + + بۋگەنۆيل + + + مانيلا + + + كاراچا + + + ۆارشاۆا + + + ميكەلون + + + پيتكەرن + + + پۋەرتو-ريكو + + + گازا + + + حەۆرون + + + ازور ارالدارى + + + مادەيرا + + + ليسابون + + + پالاۋ + + + اسۋنسيون + + + كاتار + + + رەيۋنيون + + + بۋحارەست + + + بەلگراد + + + كالينينگراد + + + ماسكەۋ + + + ۆولگوگراد + + + سارىتاۋ + + + استراحان + + + ۋليانوۆسك + + + كيروۆ + + + سامارا + + + ەكاتەرينبۋرگ + + + ومبى + + + جاڭاسىبىر + + + بارناۋىل + + + تۋمەن + + + نوۆوكۋزنەتسك + + + كراسنويارسك + + + يركۋتسك + + + چيتا + + + ياكۋتسك + + + ۆلاديۆاستوك + + + حاندىگا + + + ساحالين + + + ۋست-نەرا + + + ماگادان + + + سرەدنەكولىمسك + + + كامچاتكا + + + انادىر + + + كيگالي + + + ەر-رياد + + + گۋادالكانال + + + ماە + + + حارتۋم + + + ستوكگولىم + + + سينگاپۋر + + + اۋليە ەلەنا ارالى + + + ليۋبليانا + + + لونگير + + + براتيسلاۆا + + + فريتاۋن + + + سان-مارينو + + + داكار + + + موگاديشۋ + + + پاراماريبو + + + جۋبا + + + سان-تومە + + + سالۆادور + + + لوۋەر-پرينس-كۋوتەر + + + داماسك + + + مبابەنە + + + گراند-تەرك + + + ندجامەنا + + + كەرگەلەن + + + لومە + + + باڭكوك + + + دۋشانبە + + + فاكاوفو + + + ديلي + + + اشحابات + + + تۋنيس + + + تونگاتاپۋ + + + ستامبۇل + + + پورت-وف-سپاين + + + فۋنافۋتي + + + تايبەي + + + دار-ەس-سالام + + + كيەۆ + + + سيمفەرول + + + كامپالا + + + ميدۋەي + + + ۋەيك + + + اداك + + + نوم + + + انكوريج + + + ياكۋتات + + + سيتكا + + + جۋنو + + + مەتلاكاتلا + + + لوس-انجەلەس + + + بويسە + + + فينيكس + + + دەنۆەر + + + بويلا، سولتۇستىك داكوتا + + + نيۋ-سەيلەم، سولتۇستىك داكوتا + + + سەنتەر، سولتۇستىك داكوتا + + + چيكاگو + + + مەنوميني + + + ۆينسەننەس، ينديانا + + + پيتەرسبەرگ، ينديانا + + + تەلل-سيتي، ينديانا + + + نوكس، ينديانا + + + ۋيناماك، ينديانا + + + مارەنگو، ينديانا + + + يندياناپوليس + + + لۋيسۆيل + + + ۆيۆەي، ينديانا + + + مونتيسەللو، كەنتۋككي + + + دەترويد + + + نيۋ-يورك + + + مونتەۆيدەو + + + سامارقاند + + + تاشكەنت + + + ۆاتيكان + + + سەنت-ۆينسەنت + + + كاراكاس + + + تورتولا + + + سەنت-توماس + + + حوشيمين + + + ەفاتە + + + ۋولليس + + + اپيا + + + ادەن + + + مايوتتا + + + يوحاننەسبۋرگ + + + لۋساكا + + + حارارە + + + + اۋعانستان ۋاقىتى + + + + + ورتالىق افريكا ۋاقىتى + + + + + شىعىس افريكا ۋاقىتى + + + + + وڭتۇستىك افريكا ستاندارتتى ۋاقىتى + + + + + باتىس افريكا ۋاقىتى + باتىس افريكا ستاندارتتى ۋاقىتى + باتىس افريكا جازعى ۋاقىتى + + + + + الاسكا ۋاقىتى + الاسكا ستاندارتتى ۋاقىتى + الاسكا جازعى ۋاقىتى + + + + + الماتى ۋاقىتى + الماتى ستاندارتتى ۋاقىتى + الماتى جازعى ۋاقىتى + + + الماتى + الماتى + الماتى قالاسى + + + + + امازون ۋاقىتى + امازون ستاندارتتى ۋاقىتى + امازون جازعى ۋاقىتى + + + + + سولتۇستىك امەريكا ورتالىق ۋاقىتى + سولتۇستىك امەريكا ستاندارتتى ورتالىق ۋاقىتى + ولتۇستىك امەريكا جازعى ورتالىق ۋاقىتى + + + + + سولتۇستىك امەريكا شىعىس ۋاقىتى + سولتۇستىك امەريكا ستاندارتتى شىعىس ۋاقىتى + سولتۇستىك امەريكا جازعى شىعىس ۋاقىتى + + + + + سولتۇستىك امەريكا تاۋ ۋاقىتى + سولتۇستىك امەريكا ستاندارتتى تاۋ ۋاقىتى + سولتۇستىك امەريكا جازعى تاۋ ۋاقىتى + + + + + سولتۇستىك امەريكا تىنىق مۇحيتى ۋاقىتى + سولتۇستىك امەريكا ستاندارتتى تىنىق مۇحيتى ۋاقىتى + سولتۇستىك امەريكا جازعى تىنىق مۇحيتى ۋاقىتى + + + + + اپيا ۋاقىتى + اپيا ستاندارتتى ۋاقىتى + اپيا جازعى ۋاقىتى + + + + + اقتاۋ ۋاقىتى + اقتاۋ ستاندارتتى ۋاقىتى + اقتاۋ جازعى ۋاقىتى + + + اقتاۋ + اقتاۋ + اقتاۋ قالاسى + + + + + اقتوبە ۋاقىتى + اقتوبە ستاندارتتى ۋاقىتى + اقتوبە جازعى ۋاقىتى + + + اقتوبە + اقتوبە + اقتوبە قالاسى + + + + + ساۋد ارابياسى ۋاقىتى + ساۋد ارابياسى ستاندارتتى ۋاقىتى + ساۋد ارابياسى جازعى ۋاقىتى + + + + + ارگەنتينا ۋاقىتى + ارگەنتينا ستاندارتتى ۋاقىتى + ارگەنتينا جازعى ۋاقىتى + + + + + باتىس ارگەنتينا ۋاقىتى + باتىس ارگەنتينا ستاندارتتى ۋاقىتى + باتىس ارگەنتينا جازعى ۋاقىتى + + + + + ارمەنيا ۋاقىتى + ارمەنيا ستاندارتتى ۋاقىتى + ارمەنيا جازعى ۋاقىتى + + + + + اتلانتيكا ۋاقىتى + اتلانتيكا ستاندارتتى ۋاقىتى + اتلانتيكا جازعى ۋاقىتى + + + + + ورتالىق اۋستراليا ۋاقىتى + اۋستراليا ستاندارتتى ورتالىق ۋاقىتى + اۋستراليا جازعى ورتالىق ۋاقىتى + + + + + اۋستراليا ورتالىق-باتىس ۋاقىتى + اۋستراليا ستاندارتتى ورتالىق-باتىس ۋاقىتى + اۋستراليا جازعى ورتالىق-باتىس ۋاقىتى + + + + + شىعىس اۋستراليا ۋاقىتى + اۋستراليا ستاندارتتى شىعىس ۋاقىتى + اۋستراليا جازعى شىعىس ۋاقىتى + + + + + باتىس اۋستراليا ۋاقىتى + اۋستراليا ستاندارتتى باتىس ۋاقىتى + اۋستراليا جازعى باتىس ۋاقىتى + + + + + ءازىربايجان ۋاقىتى + ءازىربايجان ستاندارتتى ۋاقىتى + ءازىربايجان جازعى ۋاقىتى + + + + + ازور ارالدارى ۋاقىتى + ازور ارالدارى ستاندارتتى ۋاقىتى + ازور ارالدارى جازعى ۋاقىتى + + + + + بانگلادەش ۋاقىتى + بانگلادەش ستاندارتتى ۋاقىتى + بانگلادەش جازعى ۋاقىتى + + + + + بۋتان ۋاقىتى + + + + + بوليۆيا ۋاقىتى + + + + + برازيليا ۋاقىتى + برازيليا ستاندارتتى ۋاقىتى + برازيليا جازعى ۋاقىتى + + + + + برۋنەي-دارۋسسالام ۋاقىتى + + + + + كابو-ۆەردە ۋاقىتى + كابو-ۆەردە ستاندارتتى ۋاقىتى + كابو-ۆەردە جازعى ۋاقىتى + + + + + چاموررو ستاندارتتى ۋاقىتى + + + + + چاتەم ۋاقىتى + چاتەم ستاندارتتى ۋاقىتى + چاتەم جازعى ۋاقىتى + + + + + چيلي ۋاقىتى + چيلي ستاندارتتى ۋاقىتى + چيلي جازعى ۋاقىتى + + + + + قىتاي ۋاقىتى + قىتاي ستاندارتتى ۋاقىتى + قىتاي جازعى ۋاقىتى + + + + + كريستماس ارالىنىڭ ۋاقىتى + + + + + كوكوس ارالدارىنىڭ ۋاقىتى + + + + + كولۋمبيا ۋاقىتى + كولۋمبيا ستاندارتتى ۋاقىتى + كولۋمبيا جازعى ۋاقىتى + + + + + كۋك ارالدارىنىڭ ۋاقىتى + كۋك ارالدارىنىڭ ستاندارتتى ۋاقىتى + كۋك ارالدارىنىڭ جازعى ۋاقىتى + + + + + كۋبا ۋاقىتى + كۋبا ستاندارتتى ۋاقىتى + كۋبا جازعى ۋاقىتى + + + + + دەيۆيس ۋاقىتى + + + + + ديۋمون-ديۋرۆيل ۋاقىتى + + + + + شىعىس تيمور ۋاقىتى + + + + + پاسحا ارالى ۋاقىتى + پاسحا ارالى ستاندارتتى ۋاقىتى + پاسحا ارالى جازعى ۋاقىتى + + + + + ەكۆادور ۋاقىتى + + + + + ورتالىق ەۋروپا ۋاقىتى + ورتالىق ەۋروپا ستاندارتتى ۋاقىتى + ورتالىق ەۋروپا جازعى ۋاقىتى + + + + + شىعىس ەۋروپا ۋاقىتى + شىعىس ەۋروپا ستاندارتتى ۋاقىتى + شىعىس ەۋروپا جازعى ۋاقىتى + + + + + قيىر شىعىس ەۋروپا ۋاقىتى + + + + + باتىس ەۋروپا ۋاقىتى + باتىس ەۋروپا ستاندارتتى ۋاقىتى + باتىس ەۋروپا جازعى ۋاقىتى + + + + + فولكلەند ارالدارى ۋاقىتى + فولكلەند ارالدارى ستاندارتتى ۋاقىتى + فولكلەند ارالدارى جازعى ۋاقىتى + + + + + فيجي ۋاقىتى + فيجي ستاندارتتى ۋاقىتى + فيجي جازعى ۋاقىتى + + + + + فرانتسۋز گۆياناسى ۋاقىتى + + + + + فرانتسيانىڭ وڭتۇستىك ايماعى جانە انتاركتيكا ۋاقىتى + + + + + گالاپاگوس ۋاقىتى + + + + + گامبە ۋاقىتى + + + + + گرۋزيا ۋاقىتى + گرۋزيا ستاندارتتى ۋاقىتى + گرۋزيا جازعى ۋاقىتى + + + + + گيلبەرت ارالدارىنىڭ ۋاقىتى + + + + + گرينۆيچ ۋاقىتى + + + + + شىعىس گرەنلانديا ۋاقىتى + شىعىس گرەنلانديا ستاندارتتى ۋاقىتى + شىعىس گرەنلانديا جازعى ۋاقىتى + + + + + باتىس گرەنلانديا ۋاقىتى + باتىس گرەنلانديا ستاندارتتى ۋاقىتى + باتىس گرەنلانديا جازعى ۋاقىتى + + + + + پارسى شىعاناعى ستاندارتتى ۋاقىتى + + + + + گايانا ۋاقىتى + + + + + گاۆاي جانە الەۋت ارالدارى ۋاقىتى + گاۆاي جانە الەۋت ارالدارى ستاندارتتى ۋاقىتى + گاۆاي جانە الەۋت ارالدارى جازعى ۋاقىتى + + + + + حوڭكوڭ ۋاقىتى + حوڭكوڭ ستاندارتتى ۋاقىتى + حوڭكوڭ جازعى ۋاقىتى + + + + + حوۆد ۋاقىتى + حوۆد ستاندارتتى ۋاقىتى + حوۆد جازعى ۋاقىتى + + + + + ءۇندىستان ستاندارتتى ۋاقىتى + + + + + ءۇندى مۇحيتى ۋاقىتى + + + + + ءۇندى-قىتاي ۋاقىتى + + + + + ورتالىق يندونەزيا ۋاقىتى + + + + + شىعىس يندونەزيا ۋاقىتى + + + + + باتىس يندونەزيا ۋاقىتى + + + + + يران ۋاقىتى + يران ستاندارتتى ۋاقىتى + يران جازعى ۋاقىتى + + + + + يركۋتسك ۋاقىتى + يركۋتسك ستاندارتتى ۋاقىتى + يركۋتسك جازعى ۋاقىتى + + + + + يزرايل ۋاقىتى + يزرايل ستاندارتتى ۋاقىتى + يزرايل جازعى ۋاقىتى + + + + + جاپونيا ۋاقىتى + جاپونيا ستاندارتتى ۋاقىتى + جاپونيا جازعى ۋاقىتى + + + + + قازاق ەلى ۋاقىتى + + + قازاق ەلى + + + + + شىعىس قازاق ەلى ۋاقىتى + + + شىعىش قازاق ەلى + + + + + باتىس قازاق ەلى ۋاقىتى + + + باتىس قازاق ەلى + + + + + كورەيا ۋاقىتى + كورەيا ستاندارتتى ۋاقىتى + كورەيا جازعى ۋاقىتى + + + + + كۋسايە ۋاقىتى + + + + + كراسنويارسك ۋاقىتى + كراسنويارسك ستاندارتتى ۋاقىتى + كراسنويارسك جازعى ۋاقىتى + + + + + قىرعىزستان ۋاقىتى + + + قىرعىزستان + + + + + لاين ارالدارى ۋاقىتى + + + + + لورد-حاۋ ۋاقىتى + لورد-حاۋ ستاندارتتى ۋاقىتى + لورد-حاۋ جازعى ۋاقىتى + + + + + ماگادان ۋاقىتى + ماگادان ستاندارتتى ۋاقىتى + ماگادان جازعى ۋاقىتى + + + + + مالايزيا ۋاقىتى + + + + + مالديۆ ارالدارى ۋاقىتى + + + + + ماركيز ارالدارى ۋاقىتى + + + + + مارشال ارالدارى ۋاقىتى + + + + + ماۆريكيي ۋاقىتى + ماۆريكيي ستاندارتتى ۋاقىتى + ماۆريكيي جازعى ۋاقىتى + + + + + موۋسون ۋاقىتى + + + + + مەكسيكا تىنىق مۇحيت ۋاقىتى + مەكسيكا ستاندارتتى تىنىق مۇحيت ۋاقىتى + مەكسيكا جازعى تىنىق مۇحيت ۋاقىتى + + + + + ۇلانباتىر ۋاقىتى + ۇلانباتىر ستاندارتتى ۋاقىتى + ۇلانباتىر جازعى ۋاقىتى + + + + + ماسكەۋ ۋاقىتى + ماسكەۋ ستاندارتتى ۋاقىتى + ماسكەۋ جازعى ۋاقىتى + + + + + ميانما ۋاقىتى + + + + + ناۋرۋ ۋاقىتى + + + + + نەپال ۋاقىتى + + + + + جاڭا كالەدونيا ۋاقىتى + جاڭا كالەدونيا ستاندارتتى ۋاقىتى + جاڭا كالەدونيا جازعى ۋاقىتى + + + + + جاڭا زەلانديا ۋاقىتى + جاڭا زەلانديا ستاندارتتى ۋاقىتى + جاڭا زەلانديا جازعى ۋاقىتى + + + + + نيۋفاۋندلەند ۋاقىتى + نيۋفاۋندلەند ستاندارتتى ۋاقىتى + نيۋفاۋندلەند جازعى ۋاقىتى + + + + + نيۋە ۋاقىتى + + + + + نورفولك ارالى ۋاقىتى + نورفولك ارالى ستاندارتتى ۋاقىتى + نورفولك ارالى جازعى ۋاقىتى + + + + + فەرناندۋ-دي-نورونيا ۋاقىتى + فەرناندۋ-دي-نورونيا ستاندارتتى ۋاقىتى + فەرناندۋ-دي-نورونيا جازعى ۋاقىتى + + + + + جاڭاسىبىر ۋاقىتى + جاڭاسىبىر ستاندارتتى ۋاقىتى + جاڭاسىبىر جازعى ۋاقىتى + + + + + ومبى ۋاقىتى + ومبى ستاندارتتى ۋاقىتى + ومبى جازعى ۋاقىتى + + + + + پاكىستان ۋاقىتى + پاكىستان ستاندارتتى ۋاقىتى + پاكىستان جازعى ۋاقىتى + + + + + پالاۋ ۋاقىتى + + + + + پاپۋا – جاڭا گۆينەيا ۋاقىتى + + + + + پاراگۆاي ۋاقىتى + پاراگۆاي ستاندارتتى ۋاقىتى + پاراگۆاي جازعى ۋاقىتى + + + + + پەرۋ ۋاقىتى + پەرۋ ستاندارتتى ۋاقىتى + پەرۋ جازعى ۋاقىتى + + + + + فيليپين ارالدارى ۋاقىتى + فيليپين ارالدارى ستاندارتتى ۋاقىتى + فيليپين ارالدارى جازعى ۋاقىتى + + + + + فەنيكس ارالدارى ۋاقىتى + + + + + سەن-پەر جانە ميكەلون ۋاقىتى + سەن-پەر جانە ميكەلون ستاندارتتى ۋاقىتى + سەن-پەر جانە ميكەلون جازعى ۋاقىتى + + + + + پيتكەرن ۋاقىتى + + + + + پونپەي ۋاقىتى + + + + + پحەنيان ۋاقىتى + + + + + قىزىلوردا ۋاقىتى + قىزىلوردا ستاندارتتى ۋاقىتى + قىزىلوردا جازعى ۋاقىتى + + + قىزىلوردا + قىزىلوردا + قىزىلوردا قالاسى + + + + + رەيۋنون ۋاقىتى + + + + + روتەرا ۋقىتى + + + + + ساحالين ۋاقىتى + ساحالين ستاندارتتى ۋاقىتى + ساحالين جازعى ۋاقىتى + + + + + ساموا ۋاقىتى + ساموا ستاندارتتى ۋاقىتى + ساموا جازعى ۋاقىتى + + + + + سەيشەل ارالدارى ۋاقىتى + + + + + سينگاپۋر ستاندارتتى ۋاقىتى + + + + + سولومون ارالدارى ۋاقىتى + + + + + وڭتۇستىك گەورگيا ۋاقىتى + + + + + سۋرينام ۋاقىتى + + + + + سەۆا ۋاقىتى + + + + + تايتي ۋاقىتى + + + + + تايبەي ۋاقىتى + تايبەي ستاندارتتى ۋاقىتى + تايبەي جازعى ۋاقىتى + + + + + تاجىكستان ۋاقىتى + + + + + توكەلاۋ ۋاقىتى + + + + + تونگا ۋاقىتى + تونگا ستاندارتتى ۋاقىتى + تونگا كازعى ۋاقىتى + + + + + ترۋك ۋاقىتى + + + + + تۇرىكمەنستان ۋاقىتى + تۇرىكمەنستان ستاندارتتى ۋاقىتى + تۇرىكمەنستان جازعى ۋاقىتى + + + + + تۋۆالۋ ۋاقىتى + + + + + ۋرۋگۆاي ۋاقىتى + ۋرۋگۆاي ستاندارتتى ۋاقىتى + ۋرۋگۆاي جازعى ۋاقىتى + + + + + وزبەكستان ۋاقىتى + وزبەكستان ستاندارتتى ۋاقىتى + وزبەكستان جازعى ۋاقىتى + + + + + ۆانۋاتۋ ۋاقىتى + ۆانۋاتۋ ستاندارتتى ۋاقىتى + ۆانۋاتۋ جازعى ۋاقىتى + + + + + ۆەنەسۋەلا ۋاقىتى + + + + + ۆلاديۆوستوك ۋاقىتى + ۆلاديۆوستوك ستاندارتتى ۋاقىتى + ۆلاديۆوستوك جازعى ۋاقىتى + + + + + ۆولگوگراد ۋاقىتى + ۆولگوگراد ستاندارتتى ۋاقىتى + ۆولگوگراد جازعى ۋاقىتى + + + + + ۆوستوك ۋاقىتى + + + + + ۋەيك ارالى ۋاقىتى + + + + + ۋولليس جانە فۋتۋنا ۋاقىتى + + + + + ياكۋتسك ۋاقىتى + ياكۋتسك ستاندارتتى ۋاقىتى + ياكۋتسك جازعى ۋاقىتى + + + + + ەكاتەرينبۋرگ ۋاقىتى + ەكاتەرينبۋرگ ستاندارتتى ۋاقىتى + ەكاتەرينبۋرگ جازعى ۋاقىتى + + + + + يۋكون ۋاقىتى + + + + + + + سان ەمەس + + + + + 0 مىڭ + 0 مىڭ + 00 مىڭ + 00 مىڭ + 000 مىڭ + 000 مىڭ + 0 ميلليون + 0 ميلليون + 00 ميلليون + 00 ميلليون + 000 ميلليون + 000 ميلليون + 0 ميلليارد + 0 ميلليارد + 00 ميلليارد + 00 ميلليارد + 000 ميلليارد + 000 ميلليارد + 0 تريلليون + 0 تريلليون + 00 تريلليون + 00 تريلليون + 000 تريلليون + 000 تريلليون + + + + + 0 مىڭ + 0 مىڭ + 00 مىڭ + 00 مىڭ + 000 مىڭ + 000 مىڭ + 0 ميلليون + 0 ميلليون + 00 ميلليون + 00 ميلليون + 000 ملن + 000 ملن + 0 ميلليارد + 0 ميلليارد + 00 ملرد + 00 ملرد + 000 ملرد + 000 ملرد + 0 تريلليون + 0 تريلليون + 00 ترلن + 00 ترلن + 000 ترلن + 000 ترلن + + + + + + + 0 مىڭ ¤ + 0 مىڭ ¤ + 00 مىڭ ¤ + 00 مىڭ ¤ + 000 مىڭ ¤ + 000 مىڭ ¤ + 0 ميلليون ¤ + 0 ميلليون ¤ + 00 ميلليون ¤ + 00 ميلليون ¤ + 000 ميلليون ¤ + 000 ميلليون ¤ + 0 ميلليارد ¤ + 0 ميلليارد ¤ + 00 ميلليارد ¤ + 00 ميلليارد ¤ + 000 ميلليارد ¤ + 000 ميلليارد ¤ + 0 تريلليون ¤ + 0 تريلليون ¤ + 00 تريلليون ¤ + 00 تريلليون ¤ + 000 تريلليون ¤ + 000 تريلليون ¤ + + + + + + بىرىككەن اراب امىرلىكتەرىنىڭ ديرحامى + ب ا ءا ديرحامى + ب ا ءا ديرحامى + + + اۋعانستان افگانيى + اۋعانستان افگانيى + اۋعانستان افگانيى + + + البانيا لەگى + البانيا لەگى + البانيا لەگى + + + ارمەنيا درامى + ارمەنيا درامى + ارمەنيا درامى + + + نيدەرلاند انتيل گۋلدەنى + نيدەرلاند انتيل گۋلدەنى + نيدەرلاند انتيل گۋلدەنى + + + انگولا كۆانزاسى + انگولا كۆانزاسى + انگولا كۆانزاسى + + + ارگەنتينا پەسوسى + ارگەنتينا پەسوسى + ارگەنتينا پەسوسى + + + اۋستراليا دوللارى + اۋستراليا دوللارى + اۋستراليا دوللارى + + + ارۋبا فلورينى + ارۋبا فلورينى + ارۋبا فلورينى + + + ءازىربايجان ماناتى + ءازىربايجان ماناتى + ءازىربايجان ماناتى + + + بوسنيا جانە گەرتسەگوۆينا ايىرباستالمالى ماركاسى + بوسنيا جانە گەرتسەگوۆينا ايىرباستالمالى ماركاسى + بوسنيا جانە گەرتسەگوۆينا ايىرباستالمالى ماركاسى + + + باربادوس دوللارى + باربادوس دوللارى + باربادوس دوللارى + + + بانگلادەش تاكاسى + بانگلادەش تاكاسى + بانگلادەش تاكاسى + + + ڭولگاريا لەۆى + ڭولگاريا لەۆى + ڭولگاريا لەۆى + + + باحرەين دينارى + باحرەين دينارى + باحرەين دينارى + + + بۋرۋندي فرانكى + بۋرۋندي فرانكى + بۋرۋندي فرانكى + + + بەرمۋد دوللارى + بەرمۋد دوللارى + بەرمۋد دوللارى + + + برۋنەي دوللارى + برۋنەي دوللارى + برۋنەي دوللارى + + + بوليۆيا بوليۆيانوسى + بوليۆيا بوليۆيانوسى + بوليۆيا بوليۆيانوسى + + + برازيليا رەالى + برازيليا رەالى + برازيليا رەالى + + + باگام دوللارى + باگام دوللارى + باگام دوللارى + + + بۋتان نگۋلترۋمى + بۋتان نگۋلترۋمى + بۋتان نگۋلترۋمى + + + بوتسۆانا پۋلاسى + بوتسۆانا پۋلاسى + بوتسۆانا پۋلاسى + + + بەلارۋس رۋبىلى + بەلارۋس رۋبىلى + بەلارۋس رۋبىلى + + + بەليز دوللارى + بەليز دوللارى + بەليز دوللارى + + + كانادا دوللارى + كانادا دوللارى + كانادا دوللارى + + + كونگو فرانكى + كونگو فرانكى + كونگو فرانكى + + + شۆەيساريا فرانكى + شۆەيساريا فرانكى + شۆەيساريا فرانكى + + + چيلي پەسوسى + چيلي پەسوسى + چيلي پەسوسى + + + قىتاي يۋانى (وفشور) + قىتاي يۋانى (وفشور) + قىتاي يۋانى (وفشور) + + + قىتاي يۋانى + قىتاي يۋانى + قىتاي يۋانى + + + كولۋمبيا پەسوسى + كولۋمبيا پەسوسى + كولۋمبيا پەسوسى + + + كوستا-ريكا كولونى + كوستا-ريكا كولونى + كوستا-ريكا كولونى + + + كۋبا ايىرباستالمالى پەسوسى + كۋبا ايىرباستالمالى پەسوسى + كۋبا ايىرباستالمالى پەسوسى + + + كۋبا پەسوسى + كۋبا پەسوسى + كۋبا پەسوسى + + + كابو-ۆەردە ەسكۋدوسى + كابو-ۆەردە ەسكۋدوسى + كابو-ۆەردە ەسكۋدوسى + + + چەح كرونى + چەح كرونى + چەح كرونى + + + جيبۋتي فرانكى + جيبۋتي فرانكى + جيبۋتي فرانكى + + + دار كرونى + دار كرونى + دار كرونى + + + دومينيكان پەسوسى + دومينيكان پەسوسى + دومينيكان پەسوسى + + + الجير دينارى + الجير دينارى + الجير دينارى + + + مىسىر فۋنتى + مىسىر فۋنتى + مىسىر فۋنتى + + + ەريترەيا ناكفاس + ەريترەيا ناكفاس + ەريترەيا ناكفاس + + + ەفيوپيا بىرى + ەفيوپيا بىرى + ەفيوپيا بىرى + + + ەۋرو + ەۋرو + ەۋرو + + + فيجي دوللارى + فيجي دوللارى + فيجي دوللارى + + + فولكلەند ارالدارىنىڭ فۋنتى + فولكلەند ارالدارىنىڭ فۋنتى + فولكلەند ارالدارىنىڭ فۋنتى + + + بريتاندىق فۋنت + بريتاندىق فۋنت + بريتاندىق فۋنت + + + گرۋزيا لاريى + گرۋزيا لاريى + گرۋزيا لاريى + + + گانا سەديى + گانا سەديى + گانا سەديى + + + گيبراتال فۋنتى + گيبراتال فۋنتى + گيبراتال فۋنتى + + + گامبيا دالاسيى + گامبيا دالاسيى + گامبيا دالاسيى + + + گۆينەيا فرانكى + گۆينەيا فرانكى + گۆينەيا فرانكى + + + گۆاتەمالا كەتسالى + گۆاتەمالا كەتسالى + گۆاتەمالا كەتسالى + + + گايانا دوللارى + گايانا دوللارى + گايانا دوللارى + + + حوڭكوڭ دوللارى + حوڭكوڭ دوللارى + حوڭكوڭ دوللارى + + + گوندۋراس ليمپيراسى + گوندۋراس ليمپيراسى + گوندۋراس ليمپيراسى + + + حورۆاتيا كۋناسى + حورۆاتيا كۋناسى + حورۆاتيا كۋناسى + + + گايتي گۋردى + گايتي گۋردى + گايتي گۋردى + + + ماجار فورينتى + ماجار فورينتى + ماجار فورينتى + + + يندونەزيا رۋپياسى + يندونەزيا رۋپياسى + يندونەزيا رۋپياسى + + + يزرايل جاڭا شەكەلى + يزرايل جاڭا شەكەلى + يزرايل جاڭا شەكەلى + + + ءۇندىستان رۋپياسى + ءۇندىستان رۋپياسى + ءۇندىستان رۋپياسى + + + يراك دينارى + يراك دينارى + يراك دينارى + + + يران ريالى + يران ريالى + يران ريالى + + + يسلانديا كروناسى + يسلانديا كروناسى + يسلانديا كروناسى + + + يامايكا دوللارى + يامايكا دوللارى + يامايكا دوللارى + + + يوردانيا دينارى + يوردانيا دينارى + يوردانيا دينارى + + + جاپون يەناسى + جاپون يەناسى + جاپون يەناسى + + + Vote كەنيا شيللينگى + Vote كەنيا شيللينگى + Vote كەنيا شيللينگى + + + قىرعىس سومى + قىرعىس سومى + قىرعىس سومى + + + كامبودجا ريەلى + كامبودجا ريەلى + كامبودجا ريەلى + + + كومور ارالدارى فرانكى + كومور ارالدارى فرانكى + كومور ارالدارى فرانكى + + + سولتۇستىك كورەيا ۆونى + سولتۇستىك كورەيا ۆونى + سولتۇستىك كورەيا ۆونى + + + وڭتۇستىك كورەيا ۆونى + وڭتۇستىك كورەيا ۆونى + وڭتۇستىك كورەيا ۆونى + + + كۋۆەيت دينارى + كۋۆەيت دينارى + كۋۆەيت دينارى + + + كايمان ارالدارى دوللارى + كايمان ارالدارى دوللارى + كايمان ارالدارى دوللارى + + + قازاق تەڭگەسى + قازاق تەڭگەسى + قازاق تەڭگەسى + + + + لاوس كيپى + لاوس كيپى + لاوس كيپى + + + ليۆان فۋنتى + ليۆان فۋنتى + ليۆان فۋنتى + + + شري-لانكا رۋپياسى + شري-لانكا رۋپياسى + شري-لانكا رۋپياسى + + + ليبەريا دوللارى + ليبەريا دوللارى + ليبەريا دوللارى + + + لەسوتو ءلوتيى + لەسوتو ءلوتيى + لەسوتو ءلوتيى + + + ليۆيا دينارى + ليۆيا دينارى + ليۆيا دينارى + + + ماروككو دينارى + ماروككو دينارى + ماروككو دينارى + + + مولدوۆا لەيى + مولدوۆا لەيى + مولدوۆا لەيى + + + مالاگاسي ءارياريى + مالاگاسي ءارياريى + مالاگاسي ءارياريى + + + ماكەدونيا دينارى + ماكەدونيا دينارى + ماكەدونيا دينارى + + + ميانما كياتى + ميانما كياتى + ميانما كياتى + + + موڭعوليا تۋگريكى + موڭعوليا تۋگريكى + موڭعوليا تۋگريكى + + + ماكاو پاتاكاسى + ماكاو پاتاكاسى + ماكاو پاتاكاسى + + + ماۆريتانيا ۋگياسى + ماۆريتانيا ۋگياسى + ماۆريتانيا ۋگياسى + + + ماۆريكيي رۋپياسى + ماۆريكيي رۋپياسى + ماۆريكيي رۋپياسى + + + مالديۆ رۋفياسى + مالديۆ رۋفياسى + مالديۆ رۋفياسى + + + مالاۆي كۆاچاسى + مالاۆي كۆاچاسى + مالاۆي كۆاچاسى + + + مەكسيكا پەسوسى + مەكسيكا پەسوسى + مەكسيكا پەسوسى + + + مالايزيا رينگگيتى + مالايزيا رينگگيتى + مالايزيا رينگگيتى + + + موزامبيك مەتيكالى + موزامبيك مەتيكالى + موزامبيك مەتيكالى + + + ناميبيا دوللارى + ناميبيا دوللارى + ناميبيا دوللارى + + + نيگەريا نايراسى + نيگەريا نايراسى + نيگەريا نايراسى + + + نيكاراگۋا كوردوباسى + نيكاراگۋا كوردوباسى + نيكاراگۋا كوردوباسى + + + نورۆەگيا كرونى + نورۆەگيا كرونى + نورۆەگيا كرونى + + + نەپال رۋپياسى + نەپال رۋپياسى + نەپال رۋپياسى + + + جاڭا زەلانديا دوللارى + جاڭا زەلانديا دوللارى + جاڭا زەلانديا دوللارى + + + ومان ريالى + ومان ريالى + ومان ريالى + + + پاناما بالبواسى + پاناما بالبواسى + پاناما بالبواسى + + + پەرۋ سولى + پەرۋ سولى + پەرۋ سولى + + + پاپۋا - جاڭا گۆينەيا كيناسى + پاپۋا - جاڭا گۆينەيا كيناسى + پاپۋا - جاڭا گۆينەيا كيناسى + + + فيليپپين پەسوسى + فيليپپين پەسوسى + فيليپپين پەسوسى + + + پاكىستان رۋپياسى + پاكىستان رۋپياسى + پاكىستان رۋپياسى + + + پولشا زلوتىسى + پولشا زلوتىسى + پولشا زلوتىسى + + + پاراگۆاي گۋارانيى + پاراگۆاي گۋارانيى + پاراگۆاي گۋارانيى + + + كاتار ريالى + كاتار ريالى + كاتار ريالى + + + رۋمىنيا لەيى + رۋمىنيا لەيى + رۋمىنيا لەيى + + + سەربيا دينارى + سەربيا دينارى + سەربيا دينارى + + + رەسەي رۋبىلى + رەسەي رۋبىلى + رەسەي رۋبىلى + + + رۋاندا فرانكى + رۋاندا فرانكى + رۋاندا فرانكى + + + ساۋد ارابياسىنىڭ ريالى + ساۋد ارابياسىنىڭ ريالى + ساۋد ارابياسىنىڭ ريالى + + + سولومون ارالدارى دوللارى + سولومون ارالدارى دوللارى + سولومون ارالدارى دوللارى + + + سەيشەل رۋپياسى + سەيشەل رۋپياسى + سەيشەل رۋپياسى + + + سۋدان فۋنتى + سۋدان فۋنتى + سۋدان فۋنتى + + + شۆەسيا كرونى + شۆەسيا كرونى + شۆەسيا كرونى + + + سينگاپۋر دوللارى + سينگاپۋر دوللارى + سينگاپۋر دوللارى + + + اۋليە ەلەنا ارالى فۋنتى + اۋليە ەلەنا ارالى فۋنتى + اۋليە ەلەنا ارالى فۋنتى + + + سەررا-لەونە لەونەسى + سەررا-لەونە لەونەسى + سەررا-لەونە لەونەسى + + + سەررا-لەونە لەونەسى (1964—2022) + سەررا-لەونە لەونەسى (1964—2022) + سەررا-لەونە لەونەسى (1964—2022) + + + سومالي شيللينگى + سومالي شيللينگى + سومالي شيللينگى + + + سۋرينام دوللارى + سۋرينام دوللارى + سۋرينام دوللارى + + + وڭتۇستىك سۋدان فۋنتى + وڭتۇستىك سۋدان فۋنتى + وڭتۇستىك سۋدان فۋنتى + + + سانت-تومە مەن پرينسيپي دوبراسى + سانت-تومە مەن پرينسيپي دوبراسى + سانت-تومە مەن پرينسيپي دوبراسى + + + سيريا فۋنتى + سيريا فۋنتى + سيريا فۋنتى + + + سۆازيلەند ليلانگەنيى + سۆازيلەند ليلانگەنيى + سۆازيلەند ليلانگەنيى + + + تاي باتى + تاي باتى + تاي باتى + + + تاجىك سومونيى + تاجىك سومونيى + تاجىك سومونيى + + + تۇىكمەن ماناتى + تۇىكمەن ماناتى + تۇىكمەن ماناتى + + + تۋنيس دينارى + تۋنيس دينارى + تۋنيس دينارى + + + تونگا پاانگاسى + تونگا پاانگاسى + تونگا پاانگاسى + + + تۇرىك ليراسى + تۇرىك ليراسى + تۇرىك ليراسى + + + ترينيداد جانە توباگو دوللارى + ترينيداد جانە توباگو دوللارى + ترينيداد جانە توباگو دوللارى + + + جاڭا تايبەي دوللارى + جاڭا تايبەي دوللارى + جاڭا تايبەي دوللارى + + + تانزانيا شيللينگى + تانزانيا شيللينگى + تانزانيا شيللينگى + + + ۋكراينا گريۆناسى + ۋكراينا گريۆناسى + ۋكراينا گريۆناسى + + + ۋگاندا شيللينگى + ۋگاندا شيللينگى + ۋگاندا شيللينگى + + + ا ق ش دوللارى + ا ق ش دوللارى + ا ق ش دوللارى + + + ۋرۋگۆاي پەسوسى + ۋرۋگۆاي پەسوسى + ۋرۋگۆاي پەسوسى + + + وزبەك سومى + وزبەك سومى + وزبەك سومى + + + ۆەنەسۋەلا بوليۆارى + ۆەنەسۋەلا بوليۆارى + ۆەنەسۋەلا بوليۆارى + + + ۆەتنام دونگى + ۆەتنام دونگى + ۆەتنام دونگى + + + ۆانۋاتۋ ۆاتۋى + ۆانۋاتۋ ۆاتۋى + ۆانۋاتۋ ۆاتۋى + + + ساموا تالاسى + ساموا تالاسى + ساموا تالاسى + + + ورتالىق افريكانىڭ فرانكى + ورتالىق افريكانىڭ فرانكى + ورتالىق افريكانىڭ فرانكى + + + شىعىس كاريب دوللارى + شىعىس كاريب دوللارى + شىعىس كاريب دوللارى + + + باتىس افريكانىڭ فرانكى + باتىس افريكانىڭ فرانكى + باتىس افريكانىڭ فرانكى + + + فرانسۋز پولينەزيا فرانكى + فرانسۋز پولينەزيا فرانكى + فرانسۋز پولينەزيا فرانكى + + + بەلگىسىز اقشا + (بەلگىسىز اقشا بىرلىگى) + (بەلگىسىز اقشا) + + + يەمەن ريالى + يەمەن ريالى + يەمەن ريالى + + + وڭتۇستىك افريكا ءرەندى + وڭتۇستىك افريكا ءرەندى + وڭتۇستىك افريكا ءرەندى + + + زامبيا كۆاچاسى + زامبيا كۆاچاسى + زامبيا كۆاچاسى + + + + ناۋرىزعا {0} كۇن قالدي. + ناۋرىز مەيرامىنا {0} كۇن قالدى. + مۇرات {0}- سىنىپقا كوشتى. + + + + + + دەسي{0} + + + سانتي{0} + + + ميلي{0} + + + ميكرو{0} + + + نانو{0} + + + پيكو{0} + + + فەمتو{0} + + + اتتو{0} + + + زەپتو{0} + + + يوكتو{0} + + + رونتو{0} + + + كۆەكتو{0} + + + دەكا{0} + + + گەكتو{0} + + + كيلو{0} + + + مەگا{0} + + + گيگا{0} + + + تەرا{0} + + + پەتا{0} + + + ەكسا{0} + + + زەتا{0} + + + يوتا{0} + + + رونا{0} + + + كۋەتا{0} + + + كيبي{0} + + + مەبي{0} + + + گيبي{0} + + + تەبي{0} + + + پەبي{0} + + + ەكسبي{0} + + + زەبي{0} + + + يوبي{0} + + + شارشى {0} + شارشى {0} + + + تەكشە {0} + تەكشە {0} + + + تارتىلىس كۇشى + {0} تارتىلىس كۇشى + {0} تارتىلىس كۇشى + + + مەتىر/شارشى سەكۋند + {0} مەتىر/شارشى سەكۋند + {0} مەتىر/شارشى سەكۋند + + + اينالىم + {0} اينالىم + {0} اينالىم + + + راديان + {0} راديان + {0} راديان + + + گرادۋس + {0} گرادۋس + {0} گرادۋس + + + اركمينۋت + {0} اركمينۋت + {0} اركمينۋت + + + اركسەكۋند + {0} اركسەكۋند + {0} اركسەكۋند + + + شارشى كيلومەتىر + {0}/شارشى كيلومەتىر + {0}/شارشى كيلومەتىر + {0}/شارشى كيلومەتىر + + + گەكتار + {0} گەكتار + {0} گەكتار + + + شارشى مەتىر + {0} شارشى مەتىر + {0} شارشى مەتىر + {0}/شارشى مەتىر + + + شارشى سانتيمەتىر + {0} شارشى سانتيمەتىر + {0} شارشى سانتيمەتىر + {0}/شارشى سانتيمەتىر + + + شارشى ميل + {0} شارشى ميل + {0} شارشى ميل + {0}/شارشى ميل + + + اكر + {0} اكر + {0} اكر + + + شارشى يارد + {0} شارشى يارد + {0} شارشى يارد + + + شارشى فۋت + {0} شارشى فۋت + {0} شارشى فۋت + + + شارشى ديۋيم + {0} شارشى ديۋيم + {0} شارشى ديۋيم + {0} شارشى ديۋيم + + + دۋنام + {0} دۋنام + {0} دۋنام + + + كارات + {0} كارات + {0} كارات + + + ميليگرام/دەسيليتىر + {0} ميليگرام/دەسيمەتىر + {0} ميليگرام/دەسيمەتىر + + + ميليمول/ليتىر + {0} ميليمول/ليتىر + {0} ميليمول/ليتىر + + + ەلەمەنت + {0} ەلەمەنت + {0} ەلەمەنت + + + ميلليوندىق ۇلەس + {0} ميلليوندىق ۇلەس + {0} ميلليوندىق ۇلەس + + + پايىز + {0} پايىز + {0} پايىز + + + پروميللە + {0} پروميللە + {0} پروميللە + + + پروميرياد + {0} پروميرياد + {0} پروميرياد + + + مول + {0} مول + {0} مول + + + ليتىر/كيلومەتىر + {0} ليتىر/كيلومەتىر + {0} ليتىر/كيلومەتىر + + + ليتىر/100 كيلومەتىر + {0} ليتىر/100 كيلومەتىر + {0} ليتىر/100 كيلومەتىر + + + ميل/گاللون + {0} ميل/گاللون + {0} ميل/گاللون + + + ميل/يمپ گاللون + {0} ميل/يمپ گاللون + {0} ميل/يمپ گاللون + + + پەتابايت + {0} پەتابايت + {0} پەتابايت + + + تەرابايت + {0} تەرابايت + {0} تەرابايت + + + تەرابيت + {0} تەرابيت + {0} تەرابيت + + + گيگابايت + {0} گيگابايت + {0} گيگابايت + + + گيگابيت + {0} گيگابيت + {0} گيگابيت + + + مەگابايت + {0} مەگابايت + {0} مەگابايت + + + مەگابيت + {0} مەگابيت + {0} مەگابيت + + + كيلوبايت + {0} كيلوبايت + {0} كيلوبايت + + + كيلوبيت + {0} كيلوبيت + {0} كيلوبيت + + + بايت + {0} بايت + {0} بايت + + + بيت + {0} بيت + {0} بيت + + + عاسىر + {0} عاسىر + {0} عاسىر + + + ون جىلدىق + {0} ون جىلدىق + {0} ون جىلدىق + + + جىل + {0} جىل + {0} جىل + جىلىنا {0} + + + توقسان + {0} توقسان + {0} توقسان + {0}/توقسان + + + اي + {0} اي + {0} اي + ايىنا {0} + + + اپتا + {0} اپتا + {0} اپتا + اپتاسىنا {0} + + + كۇن + {0} كۇن + {0} كۇن + كۇنىنە {0} + + + ساعات + {0} ساعات + {0} ساعات + ساعاتىنا {0} + + + مينۋت + {0} مينۋت + {0} مينۋت + مينۋتىنا {0} + + + سەكۋند + {0} سەكۋند + {0} سەكۋند + سەكۋندىنا {0} + + + ميليسەكۋند + {0} ميليسەكۋند + {0} ميليسەكۋند + + + ميكروسەكۋند + {0} ميكروسەكۋند + {0} ميكروسەكۋند + + + نانوسەكۋند + {0} نانوسەكۋند + {0} نانوسەكۋند + + + امپەر + {0} امپەر + {0} امپەر + + + ميليامپەر + {0} ميليامپەر + {0} ميليامپەر + + + وم + {0} وم + {0} وم + + + ۆولت + {0} ۆولت + {0} ۆولت + + + كيلوكالوريا + {0} كيلوكالوريا + {0} كيلوكالوريا + + + كالوريا + {0} كالوريا + {0} كالوريا + + + كيلوجوۋل + {0} كىلوجوۋل + {0} كىلوجوۋل + + + جوۋل + {0} جوۋل + {0} جوۋل + + + كيلوۆات-ساعات + {0} كيلوۆات-ساعات + {0} كيلوۆات-ساعات + + + ەلەكتونۆولت + {0} ەلەكترونۆولت + {0} ەلەكترونۆولت + + + بريتاندىق جىلۋ بىرلىگى + {0} بريتاندىق جىلۋ بىرلىگى + {0} بريتاندىق جىلۋ بىرلىگى + + + ا ق ش تەرمى + {0} ا ق ش تەرمى + {0} ا ق ش تەرمى + + + فۋنت-كۇش + {0} فۋنت-كۇش + {0} فۋنت-كۇش + + + نيۋتون + {0} نيۋتون + {0} نيۋتون + + + كيلوۆات-ساعات/100 كيلومەتىر + {0} كيلوۆات-ساعات/100 كيلومەتىر + {0} كيلوۆات-ساعات/100 كيلومەتىر + + + گيگاگەرس + {0} گيگاگەرس + {0} گيگاگەرس + + + مەگاگەرس + {0} مەگاگەرس + {0} مەگاگەرس + + + كيلوگەرس + {0} كيلوگەرس + {0} كيلوگەرس + + + گەرس + {0} گەرس + {0} گەرس + + + باسپالىق em + + + پيكسەل + + + مەگاپيكسەل + + + پيكسەل/سانتيمەتىر + + + پيكسەل/ديۋيم + + + جەر راديۋسى + {0} جەر راديۋسى + {0} جەر راديۋسى + + + كيلومەتىر + {0} كيلومەتىر + {0} كيلومەتىر + {0}/كيلومەتىر + + + مەتىر + {0}/مەتىر + {0}/مەتىر + {0}/مەتىر + + + دەسيمەتىر + {0}/دەسيمەتىر + {0}/دەسيمەتىر + + + سانتيمەتىر + {0}/سانتيمەتىر + {0}/سانتيمەتىر + {0}/سانتيمەتىر + + + ميليمەتىر + {0} ميليمەتىر + {0} ميليمەتىر + + + ميكرومەتىر + {0} ميكرومەتىر + {0} ميكرومەتىر + + + نانومەتىر + {0} نانومەتىر + {0} نانومەتىر + + + پيكومەتىر + {0} پيكومەتىر + {0} پيكومەتىر + + + ميل + {0} ميل + {0} ميل + + + يارد + {0} يارد + {0} يارد + + + فۋت + {0}/فۋت + {0}/فۋت + {0}/فۋت + + + ديۋيم + {0} ديۋيم + {0} ديۋيم + {0}/ديۋيم + + + پارسەك + {0} پارسەك + {0} پارسەك + + + جارىق جىلى + {0} جارىق جىلى + {0} جارىق جىلى + + + استرونوميالىق بىرلىك + {0} استرونوميالىق بىرلىك + {0} استرونوميالىق بىرلىك + + + فۋرلوڭ + {0} فۋرلوڭ + {0} فۋرلوڭ + + + فاتوم + {0} فاتوم + {0} فاتوم + + + تەڭىز ميلى + {0} تەڭىز ميلى + {0} تەڭىز ميلى + + + سكانديناۆيالىق ميل + {0} سكانديناۆيالىق ميلى + {0} سكانديناۆيالىق ميلى + + + پۋنكت + {0} پۋنكت + {0} پۋنكت + + + كۇن راديۋسى + {0} كۇن راديۋسى + {0} كۇن راديۋسى + + + ليۋكس + {0} ليۋكس + {0} ليۋكس + + + كاندەلا + {0} كاندەلا + {0} كاندەلا + + + ليۋمەن + {0} ليۋمەن + {0} ليۋمەن + + + كۇن جارىقتىعى + {0} كۇن جارىقتىعى + {0} كۇن جارىقتىعى + + + مەتىرلىك توننا + {0} مەتىرلىك توننا + {0} مەتىرلىك توننا + + + كيلوگرام + {0} كيلوگرام + {0} كيلوگرام + {0}/كيلوگرام + + + گرام + {0} گرام + {0} گرام + {0}/گرام + + + ميليگرام + {0} ميليگرام + {0} ميليگرام + + + ميكروگرام + {0} ميكروگرام + {0} ميكروگرام + + + توننا + {0} تن + {0} تن + + + ستوۋن + {0} ستوۋن + {0} ستوۋن + + + فۋنت + {0} فۋنت + {0} فۋنت + {0}/فۋنت + + + ۋنسيا + {0} ۋنسيا + {0} ۋنسيا + {0}/ۋنسيا + + + تروي ۋنسياسى + {0} تروۋ ۋنسياسى + {0} تروۋ ۋنسياسى + + + كارات + {0} كارات + {0} كارات + + + دالتون + {0} دالتون + {0} دالتون + + + جەر ماسساسى + {0} جەر ماسساسى + {0} جەر ماسساسى + + + كۇن ماسساسى + {0} كۇن ماسساسى + {0} كۇن ماسساسى + + + گران + {0} گران + {0} گران + + + گيگاۆات + {0} گيگاۆات + {0} گيگاۆات + + + مەگاۆات + {0} مەگاۆات + {0} مەگاۆات + + + كيلوۆات + {0} كيلوۆات + {0} كيلوۆات + + + ۆات + {0} ۆات + {0} ۆات + + + ميليۆات + {0} ميليۆات + {0} ميليۆات + + + ات كۇشى + {0} ات كۇشى + {0} ات كۇشى + + + ميليمەتىر سىناپ باعاناسى + {0} ميليمەتىر سىناپ باعاناسى + {0} ميليمەتىر سىناپ باعاناسى + + + فۋنت-كۇش/شارشى ديۋيم + {0} فۋنت-كۇش/شارشى ديۋيم + {0} فۋنت-كۇش/شارشى ديۋيم + + + ديۋيم سىناپ باعاناسى + {0} ديۋيم سىناپ باعاناسى + {0} ديۋيم سىناپ باعاناسى + + + بار + {0} بار + {0} بار + + + ميليبار + {0} ميليبار + {0} ميليبار + + + اتموسفەرا + {0} اتموسفەرا + {0} اتموسفەرا + + + پاسكال + {0} پاسكال + {0} پاسكال + + + گەكتوپاسكال + {0} گەكتوپاسكال + {0} گەكتوپاسكال + + + كيلوپاسكال + {0} كيلوپاسكال + {0} كيلوپاسكال + + + مەگاپاسكال + {0} مەگاپاسكال + {0} مەگاپاسكال + + + كيلومەتىر/ساعات + {0} كيلومەتىر/ساعات + {0} كيلومەتىر/ساعات + + + مەتىر/سەكۋند + {0} مەتىر/سەكۋند + {0} مەتىر/سەكۋند + + + ميل/ساعات + {0} ميل/ساعات + {0} ميل/ساعات + + + ءتۇيىن + {0} ءتۇيىن + {0} ءتۇيىن + + + بوفورت + {0} بوفورت + {0} بوفورت + + + تەمپەراتۋرا گرادۋسى + {0} گرادۋس + {0} گرادۋس + + + سەلسي گرادۋسى + {0} سەلسي گرادۋسى + {0} سەلسي گرادۋسى + + + فارانگەيت گرادۋسى + {0} فارانگەيت گرادۋسى + {0} فارانگەيت گرادۋسى + + + كەلۆين + {0} كەلۆين + {0} كەلۆين + + + فۋنت-كۇش-فۋت + {0} فۋنت-كۇش-فۋت + {0} فۋنت-كۇش-فۋت + + + نيۋتون-مەتىر + {0} نيۋتون-مەتىر + {0} نيۋتون-مەتىر + + + تەكشە كيلومەتىر + {0} تەكشە كيلومەتىر + {0} تەكشە كيلومەتىر + + + تەكشە مەتىر + {0} تەكشە مەتىر + {0} تەكشە مەتىر + {0}/تەكشە مەتىر + + + تەكشە سانتيمەتىر + {0} تەكشە سانتيمەتىر + {0} تەكشە سانتيمەتىر + {0}/تەكشە سانتيمەتىر + + + تەكشە ميل + {0} تەكشە ميل + {0} تەكشە ميل + + + تەكشە يارد + {0} تەكشە يارد + {0} تەكشە يارد + + + تەكشە فۋت + {0} تەكشە فۋت + {0} تەكشە فۋت + + + تەكشە ديۋيم + {0} تەكشە ديۋيم + {0} تەكشە ديۋيم + + + مەگاليتر + {0} مەگاليتر + {0} مەگاليتر + + + گەكتوليتىر + {0} گەكتوليرىر + {0} گەكتوليرىر + + + ليتىر + {0} ليتىر + {0} ليتىر + {0}/ليتىر + + + دەسيليتىر + {0} دەسيليتىر + {0} دەسيليتىر + + + سانتيليتىر + {0} سانتيليتىر + {0} سانتيليتىر + + + ميليليتىر + {0} ميليليتىر + {0} ميليليتىر + + + مەتىرلىك پينتا + {0} مەتىرلىك پينتا + {0} مەتىرلىك پينتا + + + مەتىرلىك كەسە + {0} مەتىرلىك كەسە + {0} مەتىرلىك كەسە + + + اكر-فۋت + {0} اكر-فۋت + {0} اكر-فۋت + + + بۋشەل + {0} بۋشەل + {0} بۋشەل + + + گاللون + {0} گاللون + {0} گاللون + {0}/گاللون + + + يمپ گاللون + {0} يمپ گاللون + {0} يمپ گاللون + {0} يمپ گاللون + + + كۆارتا + {0} كۆارتا + {0} كۆارتا + + + پينتا + {0} پينتا + {0} پينتا + + + كەسە + {0} كەسە + {0} كەسە + + + سۇيىق ۋنسيا + {0} سۇيىق ۋنسيا + {0} سۇيىق ۋنسيا + + + يمپ سۇيىق ۋنسيا + يمپ سۇيىق ۋنسيا + {0} يمپ سۇيىق ۋنسيا + + + اس قاسىق + {0} اس قاسىق + {0} اس قاسىق + + + شاي قاسىق + {0} شاي قاسىق + {0} شاي قاسىق + + + باررەل + {0} باررەل + {0} باررەل + + + دەسەرت قاسىعى + {0} دەسەرت قاسىعى + {0} دەسەرت قاسىعى + + + يمپ دەسەرت قاسىعى + {0} يمپ دەسەرت قاسىعى + {0} يمپ دەسەرت قاسىعى + + + تامشى + {0} تامشى + {0} تامشى + + + دراحما + {0} دراحما + {0} دراحما + + + جيگگەر + {0} جيگگەر + {0} جيگگەر + + + شوكىم + {0} شوكىم + {0} شوكىم + + + يمپ كۆارتا + {0} يمپ كۆارتا + {0} يمپ كۆارتا + + + جارىق + {0} جارىق + {0} جارىق + + + ميللياردتىق ۇلەس + {0} ميىللياردتىق ۇلەس + {0} ميللياردتىق ۇلەس + + + ءتۇن + {0} ءتۇن + {0} ءتۇن + {0}/ءتۇن + + + نەگىزگى باعىت + {0} شىعىس + {0} سولتۇستىك + {0} وڭتۇستىك + {0} باتىس + + + + + د{0} + + + س{0} + + + مل{0} + + + مك{0} + + + ن{0} + + + پ{0} + + + ف{0} + + + ا{0} + + + ز{0} + + + ي{0} + + + ر{0} + + + ك{0} + + + دا{0} + + + گ{0} + + + كل{0} + + + مگ{0} + + + گگ{0} + + + ت{0} + + + پت{0} + + + ە{0} + + + زت{0} + + + يت{0} + + + رن{0} + + + كت{0} + + + كي{0} + + + مب{0} + + + گي{0} + + + تب{0} + + + پب{0} + + + ەب{0} + + + زب{0} + + + يب{0} + + + تارتىلىس كۇشى + {0} تارتىلىس كۇشى + {0} تارتىلىس كۇشى + + + مەتىر/شارشى سەكۋند + {0} مەتىر/شارشى سەكۋند + {0} مەتىر/شارشى سەكۋند + + + اينالىم + {0} اينالىم + {0} اينالىم + + + راديان + {0} راديان + {0} راديان + + + گرادۋس + {0} گرادۋس + {0} گرادۋس + + + اركمينۋت + {0} اركمينۋت + {0} اركمينۋت + + + اركسەكۋند + {0} اركسەكۋند + {0} اركسەكۋند + + + شارشى كيلومەتىر + {0}/شارشى كيلومەتىر + {0}/شارشى كيلومەتىر + {0}/شارشى كيلومەتىر + + + گەكتار + {0} گەكتار + {0} گەكتار + + + شارشى مەتىر + {0} شارشى مەتىر + {0} شارشى مەتىر + {0}/شارشى مەتىر + + + شارشى سانتيمەتىر + {0} شارشى سانتيمەتىر + {0} شارشى سانتيمەتىر + {0}/شارشى سانتيمەتىر + + + شارشى ميل + {0} شارشى ميل + {0} شارشى ميل + {0}/شارشى ميل + + + اكر + {0} اكر + {0} اكر + + + شارشى يارد + {0} شارشى يارد + {0} شارشى يارد + + + شارشى فۋت + {0} شارشى فۋت + {0} شارشى فۋت + + + شارشى ديۋيم + {0} شارشى ديۋيم + {0} شارشى ديۋيم + {0} شارشى ديۋيم + + + دۋنام + {0} دۋنام + {0} دۋنام + + + كارات + {0} كارات + {0} كارات + + + ميليگرام/دەسيليتىر + + + ميليمول/ليتىر + + + ەلەمەنت + {0} ەلەمەنت + {0} ەلەمەنت + + + ميلليوندىق ۇلەس + + + پايىز + + + پروميللە + + + پروميرياد + + + مول + {0} مول + {0} مول + + + ليتىر/كيلومەتىر + + + ليتىر/100 كيلومەتىر + + + ميل/گاللون + {0} ميل/گاللون + {0} ميل/گاللون + + + ميل/يمپ گاللون + {0} ميل/يمپ گاللون + {0} ميل/يمپ گاللون + + + پەتابايت + + + تەرابايت + + + تەرابيت + + + گيگابايت + + + گيگابيت + + + مەگابايت + + + مەگابيت + + + كيلوبايت + + + كيلوبيت + + + بايت + + + بيت + + + عاسىر + {0} عاسىر + {0} عاسىر + + + ون جىلدىق + {0} ون جىلدىق + {0} ون جىلدىق + + + جىل + {0} جىل + {0} جىل + جىلىنا {0} + + + توقسان + {0} توقسان + {0} توقسان + {0}/توقسان + + + اي + {0} اي + {0} اي + {0}/اي + + + اپتا + {0} اپتا + {0} اپتا + {0}/اپتا + + + كۇن + {0} كۇن + {0} كۇن + {0}/كۇن + + + ساعات + {0} ساعات + {0} ساعات + {0}/ساعات + + + مينۋت + {0} مينۋت + {0} مينۋت + {0}/مينۋت + + + سەكۋند + {0} سەكۋند + {0} سەكۋند + {0}/سەكۋند + + + ميليسەكۋند + {0} ميليسەكۋند + {0} ميليسەكۋند + + + ميكروسەكۋند + {0} ميكروسەكۋند + {0} ميكروسەكۋند + + + نانوسەكۋند + {0} نانوسەكۋند + {0} نانوسەكۋند + + + امپەر + {0} امپەر + {0} امپەر + + + ميليامپەر + {0} ميليامپەر + {0} ميليامپەر + + + وم + {0} وم + {0} وم + + + ۆولت + {0} ۆولت + {0} ۆولت + + + كيلوكالوريا + {0} كيلوكالوريا + {0} كيلوكالوريا + + + كالوريا + {0} كالوريا + {0} كالوريا + + + كيلوجوۋل + {0} كىلوجوۋل + {0} كىلوجوۋل + + + جوۋل + {0} جوۋل + {0} جوۋل + + + كيلوۆات-ساعات + {0} كيلوۆات-ساعات + {0} كيلوۆات-ساعات + + + ەلەكتونۆولت + {0} ەلەكترونۆولت + {0} ەلەكترونۆولت + + + بريتاندىق جىلۋ بىرلىگى + {0} بريتاندىق جىلۋ بىرلىگى + {0} بريتاندىق جىلۋ بىرلىگى + + + ا ق ش تەرمى + {0} ا ق ش تەرمى + {0} ا ق ش تەرمى + + + فۋنت-كۇش + {0} فۋنت-كۇش + {0} فۋنت-كۇش + + + نيۋتون + + + كيلوۆات-ساعات/100 كيلومەتىر + + + گيگاگەرس + {0} گيگاگەرس + {0} گيگاگەرس + + + مەگاگەرس + {0} مەگاگەرس + {0} مەگاگەرس + + + كيلوگەرس + {0} كيلوگەرس + {0} كيلوگەرس + + + گەرس + {0} گەرس + {0} گەرس + + + جەر راديۋسى + {0} جەر راديۋسى + {0} جەر راديۋسى + + + كيلومەتىر + {0} كيلومەتىر + {0} كيلومەتىر + {0}/كيلومەتىر + + + مەتىر + {0}/مەتىر + {0}/مەتىر + {0}/مەتىر + + + دەسيمەتىر + {0}/دەسيمەتىر + {0}/دەسيمەتىر + + + سانتيمەتىر + {0}/سانتيمەتىر + {0}/سانتيمەتىر + {0}/سانتيمەتىر + + + ميليمەتىر + {0} ميليمەتىر + {0} ميليمەتىر + + + ميكرومەتىر + {0} ميكرومەتىر + {0} ميكرومەتىر + + + نانومەتىر + {0} نانومەتىر + {0} نانومەتىر + + + پيكومەتىر + {0} پيكومەتىر + {0} پيكومەتىر + + + ميل + {0} ميل + {0} ميل + + + يارد + {0} يارد + {0} يارد + + + فۋت + {0}/فۋت + {0}/فۋت + {0}/فۋت + + + ديۋيم + {0} ديۋيم + {0} ديۋيم + {0}/ديۋيم + + + پارسەك + {0} پارسەك + {0} پارسەك + + + جارىق جىلى + {0} جارىق جىلى + {0} جارىق جىلى + + + استرونوميالىق بىرلىك + {0} استرونوميالىق بىرلىك + {0} استرونوميالىق بىرلىك + + + فۋرلوڭ + {0} فۋرلوڭ + {0} فۋرلوڭ + + + فاتوم + {0} فاتوم + {0} فاتوم + + + تەڭىز ميلى + {0} تەڭىز ميلى + {0} تەڭىز ميلى + + + سكانديناۆيالىق ميل + {0} سكانديناۆيالىق ميلى + {0} سكانديناۆيالىق ميلى + + + پۋنكت + {0} پۋنكت + {0} پۋنكت + + + كۇن راديۋسى + {0} كۇن راديۋسى + {0} كۇن راديۋسى + + + ليۋكس + + + كاندەلا + + + ليۋمەن + + + كۇن جارىقتىعى + {0} كۇن جارىقتىعى + {0} كۇن جارىقتىعى + + + مەتىرلىك توننا + {0} توننا + {0} توننا + + + كيلوگرام + {0} كيلوگرام + {0} كيلوگرام + {0}/كيلوگرام + + + گرام + {0} گرام + {0} گرام + {0}/گرام + + + ميليگرام + {0} ميليگرام + {0} ميليگرام + + + ميكروگرام + {0} ميكروگرام + {0} ميكروگرام + + + توننا + {0} تن + {0} تن + + + ستوۋن + {0} ستوۋن + {0} ستوۋن + + + فۋنت + {0} فۋنت + {0} فۋنت + {0}/فۋنت + + + ۋنسيا + {0} ۋنسيا + {0} ۋنسيا + {0}/ۋنسيا + + + تروي ۋنسياسى + {0} تروۋ ۋنسياسى + {0} تروۋ ۋنسياسى + + + كارات + {0} كارات + {0} كارات + + + دالتون + {0} دالتون + {0} دالتون + + + جەر ماسساسى + {0} جەر ماسساسى + {0} جەر ماسساسى + + + كۇن ماسساسى + {0} كۇن ماسساسى + {0} كۇن ماسساسى + + + گران + {0} گران + {0} گران + + + گيگاۆات + {0} گيگاۆات + {0} گيگاۆات + + + مەگاۆات + {0} مەگاۆات + {0} مەگاۆات + + + كيلوۆات + {0} كيلوۆات + {0} كيلوۆات + + + ۆات + {0} ۆات + {0} ۆات + + + ميليۆات + {0} ميليۆات + {0} ميليۆات + + + ات كۇشى + {0} ات كۇشى + {0} ات كۇشى + + + ميليمەتىر سىناپ باعاناسى + {0} ميليمەتىر سىناپ باعاناسى + {0} ميليمەتىر سىناپ باعاناسى + + + فۋنت-كۇش/شارشى ديۋيم + {0} فۋنت-كۇش/شارشى ديۋيم + {0} فۋنت-كۇش/شارشى ديۋيم + + + ديۋيم سىناپ باعاناسى + {0} ديۋيم سىناپ باعاناسى + {0} ديۋيم سىناپ باعاناسى + + + بار + {0} بار + {0} بار + + + ميليبار + {0} ميليبار + {0} ميليبار + + + اتموسفەرا + {0} اتموسفەرا + {0} اتموسفەرا + + + پاسكال + {0} پاسكال + {0} پاسكال + + + گەكتوپاسكال + {0} گەكتوپاسكال + {0} گەكتوپاسكال + + + كيلوپاسكال + {0} كيلوپاسكال + {0} كيلوپاسكال + + + مەگاپاسكال + {0} مەگاپاسكال + {0} مەگاپاسكال + + + كيلومەتىر/ساعات + {0} كيلومەتىر/ساعات + {0} كيلومەتىر/ساعات + + + مەتىر/سەكۋند + {0} مەتىر/سەكۋند + {0} مەتىر/سەكۋند + + + ميل/ساعات + {0} ميل/ساعات + {0} ميل/ساعات + + + ءتۇيىن + {0} ءتۇيىن + {0} ءتۇيىن + + + بوفورت + {0} بوفورت + {0} بوفورت + + + سەلسي گرادۋسى + + + فارانگەيت گرادۋسى + + + كەلۆين + + + فۋنت-كۇش-فۋت + {0} فۋنت-كۇش-فۋت + {0} فۋنت-كۇش-فۋت + + + نيۋتون-مەتىر + + + تەكشە كيلومەتىر + {0} تەكشە كيلومەتىر + {0} تەكشە كيلومەتىر + + + تەكشە مەتىر + {0} تەكشە مەتىر + {0} تەكشە مەتىر + {0}/تەكشە مەتىر + + + تەكشە سانتيمەتىر + {0} تەكشە سانتيمەتىر + {0} تەكشە سانتيمەتىر + {0}/تەكشە سانتيمەتىر + + + تەكشە ميل + {0} تەكشە ميل + {0} تەكشە ميل + + + تەكشە يارد + {0} تەكشە يارد + {0} تەكشە يارد + + + تەكشە فۋت + {0} تەكشە فۋت + {0} تەكشە فۋت + + + تەكشە ديۋيم + {0} تەكشە ديۋيم + {0} تەكشە ديۋيم + + + مەگاليتر + {0} مەگاليتر + {0} مەگاليتر + + + گەكتوليتىر + {0} گەكتوليرىر + {0} گەكتوليرىر + + + ليتىر + {0} ليتىر + {0} ليتىر + {0}/ليتىر + + + دەسيليتىر + {0} دەسيليتىر + {0} دەسيليتىر + + + سانتيليتىر + {0} سانتيليتىر + {0} سانتيليتىر + + + ميليليتىر + {0} ميليليتىر + {0} ميليليتىر + + + مەتىرلىك پينتا + {0} مەتىرلىك پينتا + {0} مەتىرلىك پينتا + + + مەتىرلىك كەسە + {0} مەتىرلىك كەسە + {0} مەتىرلىك كەسە + + + اكر-فۋت + {0} اكر-فۋت + {0} اكر-فۋت + + + بۋشەل + {0} بۋشەل + {0} بۋشەل + + + گاللون + {0} گاللون + {0} گاللون + {0}/گاللون + + + يمپ گاللون + {0} يمپ گاللون + {0} يمپ گاللون + {0} يمپ گاللون + + + كۆارتا + {0} كۆارتا + {0} كۆارتا + + + پينتا + {0} پينتا + {0} پينتا + + + كەسە + {0} كەسە + {0} كەسە + + + سۇيىق ۋنسيا + {0} سۇيىق ۋنسيا + {0} سۇيىق ۋنسيا + + + يمپ سۇيىق ۋنسيا + {0} يمپ سۇيىق ۋنسيا + {0} يمپ سۇيىق ۋنسيا + + + اس قاسىق + {0} اس قاسىق + {0} اس قاسىق + + + شاي قاسىق + {0} شاي قاسىق + {0} شاي قاسىق + + + باررەل + {0} باررەل + {0} باررەل + + + دەسەرت قاسىعى + {0} دەسەرت قاسىعى + {0} دەسەرت قاسىعى + + + يمپ دەسەرت قاسىعى + {0} يمپ دەسەرت قاسىعى + {0} يمپ دەسەرت قاسىعى + + + تامشى + {0} تامشى + {0} تامشى + + + دراحما + {0} دراحما + {0} دراحما + + + جيگگەر + {0} جيگگەر + {0} جيگگەر + + + شوكىم + {0} شوكىم + {0} شوكىم + + + يمپ كۆارتا + {0} يمپ كۆارتا + {0} يمپ كۆارتا + + + جارىق + {0} جارىق + {0} جارىق + + + ميللياردتىق ۇلەس + + + ءتۇن + {0} ءتۇن + {0} ءتۇن + {0}/ءتۇن + + + باعىت + {0} ش + {0} س + {0} و + {0} ب + + + + + د{0} + + + س{0} + + + مل{0} + + + مك{0} + + + ن{0} + + + پ{0} + + + ف{0} + + + ا{0} + + + ز{0} + + + ي{0} + + + ر{0} + + + ك{0} + + + دا{0} + + + گ{0} + + + كل{0} + + + مگ{0} + + + گگ{0} + + + ت{0} + + + پت{0} + + + ە{0} + + + زت{0} + + + يت{0} + + + رن{0} + + + كت{0} + + + كي{0} + + + مب{0} + + + گي{0} + + + تب{0} + + + پب{0} + + + ەب{0} + + + زب{0} + + + يب{0} + + + تارتىلىس كۇشى + {0} تارتىلىس كۇشى + {0} تارتىلىس كۇشى + + + مەتىر/شارشى سەكۋند + {0} مەتىر/شارشى سەكۋند + {0} مەتىر/شارشى سەكۋند + + + اينالىم + {0} اينالىم + {0} اينالىم + + + راديان + {0} راديان + {0} راديان + + + گرادۋس + + + اركمينۋت + + + اركسەكۋند + + + شارشى كيلومەتىر + {0}/شارشى كيلومەتىر + {0}/شارشى كيلومەتىر + {0}/شارشى كيلومەتىر + + + گەكتار + {0} گەكتار + {0} گەكتار + + + شارشى مەتىر + {0} شارشى مەتىر + {0} شارشى مەتىر + {0}/شارشى مەتىر + + + شارشى سانتيمەتىر + {0} شارشى سانتيمەتىر + {0} شارشى سانتيمەتىر + {0}/شارشى سانتيمەتىر + + + شارشى ميل + {0} شارشى ميل + {0} شارشى ميل + {0}/شارشى ميل + + + اكر + {0} اكر + {0} اكر + + + شارشى يارد + {0} شارشى يارد + {0} شارشى يارد + + + شارشى فۋت + {0} شارشى فۋت + {0} شارشى فۋت + + + شارشى ديۋيم + {0} شارشى ديۋيم + {0} شارشى ديۋيم + {0} شارشى ديۋيم + + + دۋنام + {0} دۋنام + {0} دۋنام + + + كارات + {0} كارات + {0} كارات + + + ميليگرام/دەسيليتىر + + + ميليمول/ليتىر + + + ەلەمەنت + {0} ەلەمەنت + {0} ەلەمەنت + + + ميلليوندىق ۇلەس + + + مول + {0} مول + {0} مول + + + ليتىر/كيلومەتىر + + + ليتىر/100 كيلومەتىر + + + ميل/گاللون + {0} ميل/گاللون + {0} ميل/گاللون + + + ميل/يمپ گاللون + {0} ميل/يمپ گاللون + {0} ميل/يمپ گاللون + + + B + + + عاسىر + {0} عاسىر + {0} عاسىر + + + ون جىلدىق + {0} ون جىلدىق + {0} ون جىلدىق + + + جىل + {0} جىل + {0} جىل + جىلىنا {0} + + + توقسان + {0} توقسان + {0} توقسان + {0}/توقسان + + + اي + {0} اي + {0} اي + {0}/اي + + + اپتا + {0} اپتا + {0} اپتا + {0}/اپتا + + + كۇن + {0} كۇن + {0} كۇن + {0}/كۇن + + + ساعات + {0} ساعات + {0} ساعات + {0}/ساعات + + + مينۋت + {0} مينۋت + {0} مينۋت + {0}/مينۋت + + + سەكۋند + {0} سەكۋند + {0} سەكۋند + {0}/سەكۋند + + + ميليسەكۋند + {0} ميليسەكۋند + {0} ميليسەكۋند + + + ميكروسەكۋند + {0} ميكروسەكۋند + {0} ميكروسەكۋند + + + نانوسەكۋند + {0} نانوسەكۋند + {0} نانوسەكۋند + + + امپەر + {0} امپەر + {0} امپەر + + + ميليامپەر + {0} ميليامپەر + {0} ميليامپەر + + + وم + {0} وم + {0} وم + + + ۆولت + {0} ۆولت + {0} ۆولت + + + كيلوكالوريا + {0} كيلوكالوريا + {0} كيلوكالوريا + + + كالوريا + {0} كالوريا + {0} كالوريا + + + كيلوجوۋل + {0} كىلوجوۋل + {0} كىلوجوۋل + + + جوۋل + {0} جوۋل + {0} جوۋل + + + كيلوۆات-ساعات + {0} كيلوۆات-ساعات + {0} كيلوۆات-ساعات + + + ەلەكتونۆولت + {0} ەلەكترونۆولت + {0} ەلەكترونۆولت + + + بريتاندىق جىلۋ بىرلىگى + {0} بريتاندىق جىلۋ بىرلىگى + {0} بريتاندىق جىلۋ بىرلىگى + + + ا ق ش تەرمى + {0} ا ق ش تەرمى + {0} ا ق ش تەرمى + + + فۋنت-كۇش + {0} فۋنت-كۇش + {0} فۋنت-كۇش + + + كيلوۆات-ساعات/100 كيلومەتىر + + + گيگاگەرس + {0} گيگاگەرس + {0} گيگاگەرس + + + مەگاگەرس + {0} مەگاگەرس + {0} مەگاگەرس + + + كيلوگەرس + {0} كيلوگەرس + {0} كيلوگەرس + + + گەرس + {0} گەرس + {0} گەرس + + + جەر راديۋسى + {0} جەر راديۋسى + {0} جەر راديۋسى + + + كيلومەتىر + {0} كيلومەتىر + {0} كيلومەتىر + {0}/كيلومەتىر + + + مەتىر + {0}/مەتىر + {0}/مەتىر + {0}/مەتىر + + + دەسيمەتىر + {0}/دەسيمەتىر + {0}/دەسيمەتىر + + + سانتيمەتىر + {0}/سانتيمەتىر + {0}/سانتيمەتىر + {0}/سانتيمەتىر + + + ميليمەتىر + {0} ميليمەتىر + {0} ميليمەتىر + + + ميكرومەتىر + {0} ميكرومەتىر + {0} ميكرومەتىر + + + نانومەتىر + {0} نانومەتىر + {0} نانومەتىر + + + پيكومەتىر + {0} پيكومەتىر + {0} پيكومەتىر + + + ميل + {0} ميل + {0} ميل + + + يارد + {0} يارد + {0} يارد + + + فۋت + {0}/فۋت + {0}/فۋت + {0}/فۋت + + + ديۋيم + {0} ديۋيم + {0} ديۋيم + {0}/ديۋيم + + + پارسەك + {0} پارسەك + {0} پارسەك + + + جارىق جىلى + {0} جارىق جىلى + {0} جارىق جىلى + + + استرونوميالىق بىرلىك + {0} استرونوميالىق بىرلىك + {0} استرونوميالىق بىرلىك + + + فۋرلوڭ + {0} فۋرلوڭ + {0} فۋرلوڭ + + + فاتوم + {0} فاتوم + {0} فاتوم + + + تەڭىز ميلى + {0} تەڭىز ميلى + {0} تەڭىز ميلى + + + سكانديناۆيالىق ميل + {0} سكانديناۆيالىق ميلى + {0} سكانديناۆيالىق ميلى + + + پۋنكت + {0} پۋنكت + {0} پۋنكت + + + كۇن راديۋسى + {0} كۇن راديۋسى + {0} كۇن راديۋسى + + + ليۋكس + + + كاندەلا + + + ليۋمەن + + + كۇن جارىقتىعى + {0} كۇن جارىقتىعى + {0} كۇن جارىقتىعى + + + مەتىرلىك توننا + {0} توننا + {0} توننا + + + كيلوگرام + {0} كيلوگرام + {0} كيلوگرام + {0}/كيلوگرام + + + گرام + {0} گرام + {0} گرام + {0}/گرام + + + ميليگرام + {0} ميليگرام + {0} ميليگرام + + + ميكروگرام + {0} ميكروگرام + {0} ميكروگرام + + + توننا + {0} توننا + {0} توننا + + + ستوۋن + {0} ستوۋن + {0} ستوۋن + + + فۋنت + {0} فۋنت + {0} فۋنت + {0}/فۋنت + + + ۋنسيا + {0} ۋنسيا + {0} ۋنسيا + {0}/ۋنسيا + + + تروي ۋنسياسى + {0} تروۋ ۋنسياسى + {0} تروۋ ۋنسياسى + + + كارات + {0} كارات + {0} كارات + + + دالتون + {0} دالتون + {0} دالتون + + + جەر ماسساسى + {0} جەر ماسساسى + {0} جەر ماسساسى + + + كۇن ماسساسى + {0} كۇن ماسساسى + {0} كۇن ماسساسى + + + گران + {0} گران + {0} گران + + + گيگاۆات + {0} گيگاۆات + {0} گيگاۆات + + + مەگاۆات + {0} مەگاۆات + {0} مەگاۆات + + + كيلوۆات + {0} كيلوۆات + {0} كيلوۆات + + + ۆات + {0} ۆات + {0} ۆات + + + ميليۆات + {0} ميليۆات + {0} ميليۆات + + + ات كۇشى + {0} ات كۇشى + {0} ات كۇشى + + + ميليمەتىر سىناپ باعاناسى + {0} ميليمەتىر سىناپ باعاناسى + {0} ميليمەتىر سىناپ باعاناسى + + + فۋنت-كۇش/شارشى ديۋيم + {0} فۋنت-كۇش/شارشى ديۋيم + {0} فۋنت-كۇش/شارشى ديۋيم + + + ديۋيم سىناپ باعاناسى + {0} ديۋيم سىناپ باعاناسى + {0} ديۋيم سىناپ باعاناسى + + + بار + {0} بار + {0} بار + + + ميليبار + {0} ميليبار + {0} ميليبار + + + اتموسفەرا + {0} اتموسفەرا + {0} اتموسفەرا + + + پاسكال + {0} پاسكال + {0} پاسكال + + + گەكتوپاسكال + {0} گەكتوپاسكال + {0} گەكتوپاسكال + + + كيلوپاسكال + {0} كيلوپاسكال + {0} كيلوپاسكال + + + مەگاپاسكال + {0} مەگاپاسكال + {0} مەگاپاسكال + + + كيلومەتىر/ساعات + {0} كيلومەتىر/ساعات + {0} كيلومەتىر/ساعات + + + مەتىر/سەكۋند + {0} مەتىر/سەكۋند + {0} مەتىر/سەكۋند + + + ميل/ساعات + {0} ميل/ساعات + {0} ميل/ساعات + + + ءتۇيىن + {0} ءتۇيىن + {0} ءتۇيىن + + + بوفورت + {0} بوفورت + {0} بوفورت + + + سەلسي گرادۋسى + + + فارانگەيت گرادۋسى + + + كەلۆين + + + فۋنت-كۇش-فۋت + {0} فۋنت-كۇش-فۋت + {0} فۋنت-كۇش-فۋت + + + نيۋتون-مەتىر + + + تەكشە كيلومەتىر + {0} تەكشە كيلومەتىر + {0} تەكشە كيلومەتىر + + + تەكشە مەتىر + {0} تەكشە مەتىر + {0} تەكشە مەتىر + {0}/تەكشە مەتىر + + + تەكشە سانتيمەتىر + {0} تەكشە سانتيمەتىر + {0} تەكشە سانتيمەتىر + {0}/تەكشە سانتيمەتىر + + + تەكشە ميل + {0} تەكشە ميل + {0} تەكشە ميل + + + تەكشە يارد + {0} تەكشە يارد + {0} تەكشە يارد + + + تەكشە فۋت + {0} تەكشە فۋت + {0} تەكشە فۋت + + + تەكشە ديۋيم + {0} تەكشە ديۋيم + {0} تەكشە ديۋيم + + + مەگاليتر + {0} مەگاليتر + {0} مەگاليتر + + + گەكتوليتىر + {0} گەكتوليرىر + {0} گەكتوليرىر + + + ليتىر + {0} ليتىر + {0} ليتىر + {0}/ليتىر + + + دەسيليتىر + {0} دەسيليتىر + {0} دەسيليتىر + + + سانتيليتىر + {0} سانتيليتىر + {0} سانتيليتىر + + + ميليليتىر + {0} ميليليتىر + {0} ميليليتىر + + + مەتىرلىك پينتا + {0} مەتىرلىك پينتا + {0} مەتىرلىك پينتا + + + مەتىرلىك كەسە + {0} مەتىرلىك كەسە + {0} مەتىرلىك كەسە + + + اكر-فۋت + {0} اكر-فۋت + {0} اكر-فۋت + + + بۋشەل + {0} بۋشەل + {0} بۋشەل + + + گاللون + {0} گاللون + {0} گاللون + {0}/گاللون + + + يمپ گاللون + {0} يمپ گاللون + {0} يمپ گاللون + {0} يمپ گاللون + + + كۆارتا + {0} كۆارتا + {0} كۆارتا + + + پينتا + {0} پينتا + {0} پينتا + + + كەسە + {0} كەسە + {0} كەسە + + + سۇيىق ۋنسيا + {0} سۇيىق ۋنسيا + {0} سۇيىق ۋنسيا + + + يمپ سۇيىق ۋنسيا + {0} يمپ سۇيىق ۋنسيا + {0} يمپ سۇيىق ۋنسيا + + + اس قاسىق + {0} اس قاسىق + {0} اس قاسىق + + + شاي قاسىق + {0} شاي قاسىق + {0} شاي قاسىق + + + باررەل + {0} باررەل + {0} باررەل + + + دەسەرت قاسىعى + {0} دەسەرت قاسىعى + {0} دەسەرت قاسىعى + + + يمپ دەسەرت قاسىعى + {0} يمپ دەسەرت قاسىعى + {0} يمپ دەسەرت قاسىعى + + + تامشى + {0} تامشى + {0} تامشى + + + دراحما + {0} دراحما + {0} دراحما + + + جيگگەر + {0} جيگگەر + {0} جيگگەر + + + شوكىم + {0} شوكىم + {0} شوكىم + + + يمپ كۆارتا + {0} يمپ كۆارتا + {0} يمپ كۆارتا + + + جارىق + {0} جارىق + {0} جارىق + + + ميللياردتىق ۇلەس + + + ءتۇن + {0} ءتۇن + {0} ءتۇن + {0}/ءتۇن + + + باعىت + {0} ش + {0} س + {0} و + {0} ب + + + + + + {0}، {1} + {0}، {1} + {0} جانە {1} + {0} جانە {1} + + + {0}، {1} + {0}، {1} + {0} نە {1} + {0} نە {1} + + + {0}، {1} + {0}، {1} + {0} نە {1} + {0} نە {1} + + + {0}، {1} + {0}، {1} + {0} نە {1} + {0} نە {1} + + + {0}، {1} + {0}، {1} + {0} جانە {1} + {0} جانە {1} + + + {0}، {1} + {0}، {1} + {0} جانە {1} + {0} جانە {1} + + + {0}، {1} + {0}، {1} + {0}، {1} + {0}، {1} + + + {0} {1} + {0} {1} + {0} {1} + {0} {1} + + + {0}، {1} + {0}، {1} + {0}، {1} + {0}، {1} + + + + + ءيا:ءيا + جوق:جوق + + + + {0} — بارلىعى + {0} — ۇيلەسىمدى + {0} — ەنگىزىلگەن + {0} — كەڭەيتىلگەن + {0} سولعا قاراتىلعان + {0} وڭعا قاراتىلعان + {0} — تاريحي + {0} — ءارتۇرلى + {0} — باسقا + {0} — جازۋلار + {0} سىزىق + {0} سىزىق + {0} — جول استى تاڭبا + {0} — جول ءۇستى تاڭبا + ارەكەت + افريكا جازۋلارى + امەريكا جازۋلارى + جانۋار + جانۋار نە تابيعات + كورسەتكى + دەنە + جالعان ءپىشىن + برايل جازۋى + عيمارات + ءتىزىم ماركەرلەرى/جۇلدىزدار + داۋىسسىز چامو + اقشا تاڭبالارى + سىزىقشا/بايلانىس + سان + دينگبات + سىرلى بەلگى + تومەن باعىتتالعان كورسەتكىلەر + تومەن جانە جوعارى باعىتتالعان كورسەتكىلەر + شىعىس ازيا جازۋلارى + ەموجي + ەۋروپا جازۋلارى + ايەل + تۋ + تۋلار + تاماق پەن سۋسىن + ءپىشىم + ءپىشىم جانە بوس ورىن + تولىق ەندى ءپىشىم نۇسقالارى + گەومەتريالىق ءپىشىن + جارتى ەندى ءپىشىم نۇسقالارى + قىتاي جازۋى + قىتاي جازۋىنىڭ كىلتتەرى + حانچا + قىتاي جازۋى (جەڭىلدەتىلگەن) + قىتاي جازۋى (ءداستۇرلى) + جۇرەك + كونە جازۋلار + قىتاي جازۋىن سيپاتتاۋ تاڭبالارى + جاپون كانا جازۋى + كانبۋن + كانجي + پەرنە + سولعا باعىتتالعان كورسەتكىلەر + سولعا جانە وڭعا باعىتتالعان كورسەتكىلەر + ارىپتىك تاڭبالار + قولدانىسى شەكتەۋلى + ەركەك + ماتەماتيكالىق تاڭبالار + تاياۋ شىعىس جازۋلارى + ءارتۇرلى + قازىرگى زامان جازۋلارى + وزگەرتكىۋ + مۋزىكالىق تاڭبالار + تابيعات + بوس ورىنسىز + ساندار + نىساندار + باسقا + جۇپتاسقان + ادام + فونەتيكالىق ءالىپبي + پىشىندىك جازۋ + ورىن + وسىمدىك + تىنىس بەلگىلەرى + وڭعا باعىتتالعان كورسەتكىلەر + بەلگىلەر/تاڭبالار + كىشى نۇسقالارى + سمايىل + سمايىلدار مەن ادامدار + وڭتۇستىك ازيا جازۋلارى + وڭتۇستىك-شىعىس ازيا جازۋلارى + بوس ورىن + سپورت + تاڭبالار + تەحنيكالىق تاڭبالار + ەكپىن بەلگىلەرى + ساياحات + ساياحات جانە ورىندار + جوعارى باعىتتالعان كورسەتكىلەر + وزگەرمەلى پىشىندەر + داۋىستى چامو + اۋا رايى + باتىس ازيا جازۋلارى + بوس ورىن + + + قيعاش + وپتيكالىق ولشەم + قيعاشتالعان + ەنى + سالماق + قيعاش + جازۋ + ءماتىن + تاقىرىپشا + كورسەتۋ + حابارلاندىۋ + كەرى قيعاشتالعان + تىك + قيعاشتالعان + قاتتى قيعاش + قاتتى تۇرلەنگەن + قوسىمشا تۇرلەنگەن + تۇرلەنگەن + جارتىلاي سىزىلعان + قالىپتى + جارتىلاي كەڭەيتىلگەن + كەڭەيتىلگەن + قوسىمشا كەڭەيتىلگەن + قاتتى كەڭەيتىلگەن + جۇقا + تىم اشىق + جارىق + جاتىلاي جارىق + كىتاپ + تۇراقتى + ورتاشا + جارتىلاي قالىڭ + جۋان + وتە جۋان + قارا + قاپ-قارا + تىك بولشەكتەر + باس ارىپتەر اراسى + تاڭداۋلى ليگاتۋرالار + قيعاش سىزىقتى بولشەكتەر + قاتار ساندار + ەسكى تاڭبالار + تاق ساندار + سالىستىرمالى ساندار + كىشى باس ارىپتەر + كەستەلىك ساندار + جولاقتى ءنول + + + und kk + + {given} {surname} {generation}، {credentials} + + + {given-informal} + + + {surname} + + + {given-informal} + + + {given-monogram-allCaps}{surname-monogram-allCaps} + + + {given-informal-monogram-allCaps} + + + {given} {surname} {generation}، {credentials} + + + {given-informal} + + + {surname} + + + {given-informal} + + + {surname-monogram-allCaps} + + + {given-informal-monogram-allCaps} + + + {given-initial} {surname} + + + {given-informal} + + + {surname} + + + {given-informal} + + + {surname-monogram-allCaps} + + + {given-informal-monogram-allCaps} + + + {surname} {given} + + + {surname} {given-informal} + + + {surname} + + + {given-informal} + + + {surname-monogram-allCaps}{given-monogram-allCaps} + + + {surname-monogram-allCaps}{given-informal-monogram-allCaps} + + + {surname} {given} + + + {surname} {given-informal} + + + {surname} + + + {given-informal} + + + {surname-monogram-allCaps} + + + {given-informal-monogram-allCaps} + + + {surname} {given-initial} + + + {surname} {given-initial} + + + {surname} + + + {given-informal} + + + {surname-monogram-allCaps} + + + {given-informal-monogram-allCaps} + + + {surname-core}، {given} {given2} {surname-prefix} + + + {surname}، {given-informal} + + + {surname-core}، {given} {surname-prefix} + + + {surname}، {given-informal} + + + {surname}، {given} + + + {surname}، {given-informal} + + + اسەم + + + مۇرات + كارىباي + + + قالاجان + ∅∅∅ + قايرات + + + مىرزا + ماقسات + ماكە + توقماحامبەتۇلى + ∅∅∅ + بالقىباي + ∅∅∅ + ∅∅∅ + ∅∅∅ + + + سينباد + + + كەيت + مۇللەر + + + سەسيليا + حەمىش + شتوبەر + + + پروءەسسوت + ادا كورنەليا + نەلي + سەزار مارتين + فون + بريۋل + گونسالەس + جۋنيور + ءتىس دارىگەرى + + + diff --git a/make/data/cldr/common/main/kk_Arab_CN.xml b/make/data/cldr/common/main/kk_Arab_CN.xml new file mode 100644 index 00000000000..0444f3c9ddc --- /dev/null +++ b/make/data/cldr/common/main/kk_Arab_CN.xml @@ -0,0 +1,15 @@ + + + + + + + + + @@ -1117,6 +1125,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 니바 방언 오세아코/오소가네 방언 파마카 방언 + 백화자 병음 로마자 표기법 복음 Computer @@ -1129,6 +1138,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 스톨비자/솔비카 방언 서미안 타라쉬키에비샤 표기법 + 통용 병음 통합 표기법 통합 개정 표기법 얼스터 @@ -1303,7 +1313,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -1343,18 +1353,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - 1월 - 2월 - 3월 - 4월 - 5월 - 6월 - 7월 - 8월 - 9월 - 10월 - 11월 - 12월 + 1월 + 2월 + 3월 + 4월 + 5월 + 6월 + 7월 + 8월 + 9월 + 10월 + 11월 + 12월 @@ -2025,21 +2035,56 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 자정 정오 - 새벽 + 아침 + 오전 + 오후 + 저녁 + + + + 자정 + 정오 + 아침 오전 오후 저녁 + 자정 오전 + 정오 오후 + 아침 + 오전 + 오후 + 저녁 + + + 아침 + 오전 + 오후 + 저녁 + + + + 아침 + 오전 + 오후 + 저녁 + + 오전 오후 + 아침 + 오전 + 오후 + 저녁 + @@ -2271,8 +2316,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ M월~M월 - M. d ~ M. d - M. d ~ M. d + M/d ~ M/d + M/d ~ M/d M. d (E) ~ M. d (E) @@ -2931,6 +2976,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} 하계 표준시 {0} 표준시 {1}({0}) + + 호놀룰루 + 협정 세계시 @@ -3668,9 +3716,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 울란바토르 - - 초이발산 - 마카오 @@ -4070,9 +4115,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - - 호놀룰루 - 앵커리지 @@ -4457,13 +4499,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 중국 하계 표준시 - - - 초이발산 시간 - 초이발산 표준시 - 초이발산 하계 표준시 - - 크리스마스섬 시간 @@ -4714,6 +4749,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 페트로파블롭스크-캄차츠키 하계 표준시 + + + 카자흐스탄 시간 + + 동부 카자흐스탄 시간 @@ -5224,7 +5264,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ 000조 - {0} {1} @@ -5947,7 +5986,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 터키 리라(1922~2005) - 터키 리라 + 튀르키예 리라 + 튀르키예 리라 트리니다드 토바고 달러 @@ -6901,6 +6941,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 영국 쿼트 {0}영국 쿼트 + + {0}ppb + + + + {0}박 + 1박당 {0} + 방향 동경 {0} @@ -7478,6 +7526,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}qt Imp. + + {0}ppb + + + + {0}박 + {0}/박 + @@ -7520,6 +7576,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ dsp Imp {0}dsp-Imp + + {0}ppb + + + + {0}박 + {0}/박 + @@ -7627,7 +7691,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 오른쪽 방향 화살표 상징/표준 기호 작은 부호 변형 - 스마일 + 스마일리 스마일리 및 사람 남아시아 문자 동남아시아 문자 diff --git a/make/data/cldr/common/main/kok.xml b/make/data/cldr/common/main/kok.xml index f7dc54d0c5a..4e33acab233 100644 --- a/make/data/cldr/common/main/kok.xml +++ b/make/data/cldr/common/main/kok.xml @@ -53,6 +53,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic बिसलमा बिनी सिकसिका + अनी बंबारा बांग्ला तिबेटी @@ -161,6 +162,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic दक्षिणी हैदा हिब्रू हिन्दी + हिंग्लीश हिलीगायनॉन मोंग क्रोएशियन @@ -229,6 +231,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic कोमी कोर्निश क्वाकवाला + कुवी किर्गिझ लॅटिन लाडिनो @@ -237,6 +240,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic लेझघियान गांडा लिंबर्गिश + लिगुरियन लल्युएत लाकोटा लोमबार्ड @@ -394,6 +398,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic काँगो स्वाहिली कोमोरियन सिरियाक + सिलेसियान तमिळ दक्षिणी तुत्चोने तेलुगू @@ -435,7 +440,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic उझबेक वाई वेंदा + वेनेशियन व्हिएतनामीज + माखुवा ओलापुक वुंजो वालून @@ -446,6 +453,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic व्हु चिनी कालमायक खोसा + कांग्री सोगा यांगबेन येम्बा @@ -1062,6 +1070,38 @@ CLDR data files are interpreted according to the LDML specification (http://unic E, d MMM y G – E, d MMM E, d MMM y G – E, d MMM y + + a h – a h + a h – h + + + HH – HH + + + a h:mm – a h:mm + a h:mm – h:mm + a h:mm – h:mm + + + HH:mm – HH:mm + HH:mm – HH:mm + + + a h:mm – a h:mm v + a h:mm – h:mm v + a h:mm – h:mm v + + + HH:mm – HH:mm v + HH:mm – HH:mm v + + + a h – a h v + a h – h v + + + HH – HH v + M–M @@ -1222,8 +1262,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic p - सकाळ - सांज + सकाळीं + सांजे @@ -1239,6 +1279,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic क्रि.श. CE + + क्रि.आ. + BC + AD + @@ -1325,11 +1370,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic d-M d-M, E + d MMM E, d MMM d MMMM M-y d-M-y d-M-y, E + MMM, y + d MMM, y MMMM, y @@ -1475,6 +1523,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} त्रैमासीकां आदीं + + फाटलें तिम्ह. + हें तिम्ह. + फुडलें तिम्ह. + + + फाटलें तिम्ह + हें तिम्ह + फुडलें तिम्ह + म्हयनो फाटलो म्हयनो @@ -1530,7 +1588,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic म्हयन्यातलो सप्तकीय दीस - निमाणो आयतार + फाटलो आयतार हो आयतार फुडलो आयतार @@ -1578,12 +1636,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic फुडलो मंगळ. - निमाणो मं. + फाटलो मं. हो मं. फुडलो मं. - निमाणो बुधवार + फाटलो बुधवार हो बुधवार फुडलो बुधवार @@ -1664,7 +1722,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic निमाणो शे. हो शे. - फुडलो शे. + फुडलो शेन. AM/PM @@ -1689,6 +1747,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} मिन्टां आदीं + + हो मिन. + + + हो मिन + सेकंद आतां @@ -2452,9 +2516,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic उलानबतार - - चोईबाल्सन - मकाव @@ -3198,13 +3259,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic चीन डेलायट वेळ - - - चोईबाल्सन वेळ - चोईबाल्सन प्रमाणित वेळ - चोईबाल्सन ग्रीष्म वेळ - - क्रिसमस आयलँड वेळ @@ -3446,6 +3500,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic जपान डेलायट वेळ + + + कझाखस्तान वेळ + + उदेंत कझाकस्तान वेळ @@ -3866,6 +3925,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic deva + + 0/0 + @@ -3894,7 +3956,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - ¤#,##0.00 + ¤#,##,##0.00 @@ -3934,7 +3996,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ¤ 000T - {0} {1} @@ -5286,6 +5347,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic इंपिरियल क्वार्त {0} इंप. क्वार्त + + प्रकाश + {0} प्रकाश + + + राती + {0} राती + दर रात {0} + मुख्य दिका {0} उदेंत @@ -5298,6 +5368,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic मि{0} + + नॅ{0} + + + पि{0} + peta{0} @@ -5770,6 +5846,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic क्वार्त इंप + + प्रकाश + {0} प्रकाश + + + राती + {0} राती + {0}/रात + दिका {0} उदें @@ -5782,6 +5867,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic मि {0} + + नॅ{0} + + + पि{0} + {0}Gs @@ -6346,6 +6437,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic qt Imp {0}qt-Imp. + + प्रकाश + {0} प्रकाश + + + राती + {0}राती + {0}/रात + {0}उदें {0}उत्त diff --git a/make/data/cldr/common/main/kok_Deva.xml b/make/data/cldr/common/main/kok_Deva.xml new file mode 100644 index 00000000000..b60131657be --- /dev/null +++ b/make/data/cldr/common/main/kok_Deva.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + Chin + Siprus + Jermon + Ejipt + Ispania + Frans + Gres + Bharot + Italia + Libia + Ut’tor Masedonia + Roxya + + + Bhas: {0} + Lipi: {0} + Prant: {0} + + + + [aã b cç d eêẽ f g h iĩ j k l m nñ oôõ p q r s t u v w x y z] + [áàăâåäā æ éèĕëē íìĭîïī óòŏöøō œ úùŭûüū ÿ] + [\- ‐‑ – — , ; \: ! ? . … '‘’ "“” ( ) \[ \] § @ * / \& # † ‡ ′ ″] + + + + + + + + EEEE, d MMMM, y G + + + + + d MMMM, y G + + + + + d MMM, y G + + + + + d-M-y GGGGG + + + + + + + {1}, {0} + + + {1}, {0} 'vaztam' + + + + + {1}, {0} + + + {1}, {0} 'vaztam' + + + + + {1}, {0} + + + {1}, {0} + + + + + {1}, {0} + + + {1}, {0} + + + + E a h:mm:ss + y G + d-M-y GGGGG + MMM y G + d MMM, y G + E, d MMM, y G + a h + a h:mm + a h:mm:ss + d-M + E, d-M + d MMM + E, d MMM + d MMMM + y G + y G + M-y GGGGG + d-M-y GGGGG + E, d-M-y GGGGG + MMM y G + d MMM, y G + E, d MMM, y G + MMMM y G + QQQ y G + QQQQ y G + + + + h – h B + + + h:mm B – h:mm B + h:mm – h:mm B + h:mm – h:mm B + + + d – d + + + y G – y G + y – y G + + + M/y GGGGG – M/y GGGGG + M/y – M/y GGGGG + M/y – M/y GGGGG + + + d/M/y – d/M/y GGGGG + d/M/y GGGGG – d/M/y GGGGG + d/M/y – d/M/y GGGGG + d/M/y – d/M/y GGGGG + + + E, d/M/y – E, d/M/y GGGGG + E, d/M/y GGGGG – E, d/M/y GGGGG + E, d/M/y – E, d/M/y GGGGG + E, d/M/y – E, d/M/y GGGGG + + + MMM y G – MMM y G + MMM – MMM y G + MMM y – MMM y G + + + d – d MMM, y G + d MMM, y G – d MMM, y G + d MMM – d MMM, y G + d MMM, y – d MMM, y G + + + E, d MMM – E, d MMM, y G + E, d MMM, y G – E, d MMM, y G + E, d MMM – E, d MMM, y G + E, d MMM, y – E, d MMM, y G + + + a h – a h + a h – h + + + HH – HH + + + a h:mm – a h:mm + a h:mm – h:mm + a h:mm – h:mm + + + HH:mm – HH:mm + HH:mm – HH:mm + + + a h:mm – a h:mm v + a h:mm – h:mm v + a h:mm – h:mm v + + + HH:mm – HH:mm v + HH:mm – HH:mm v + + + a h – a h v + a h – h v + + + HH – HH v + + + M – M + + + d/M – d/M + d/M – d/M + + + E, d/M – E, d/M + E, d/M – E, d/M + + + MMM – MMM + + + d – d MMM + d MMM – d MMM + + + E, d MMM – E, d MMM + E, d MMM – E, d MMM + + + y – y G + + + M/y – M/y GGGGG + M/y – M/y GGGGG + + + d/M/y – d/M/y GGGGG + d/M/y – d/M/y GGGGG + d/M/y – d/M/y GGGGG + + + E, d/M/y – E, d/M/y GGGGG + E, d/M/y – E, d/M/y GGGGG + E, d/M/y – E, d/M/y GGGGG + + + MMM – MMM y G + MMM y – MMM y G + + + d – d MMM, y G + d MMM – d MMM, y G + d MMM, y – d MMM, y G + + + E, d MMM – E, d MMM, y G + E, d MMM – E, d MMM, y G + E, d MMM, y – E, d MMM, y G + + + MMMM – MMMM y G + MMMM y – MMMM y G + + + + + + + + + Jan + Feb + Mar + Abr + Mai + Jul + Ago + Set + Otu + Nov + Dez + + + J + F + M + A + M + J + J + A + S + O + N + D + + + Janer + Febrer + Mars + Abril + Mai + Jun + Julai + Agost + Setembr + Otubr + Novembr + Dezembr + + + + + J + F + M + A + M + J + J + A + S + O + N + D + + + + + + + Ait + Som + Mon + Bud + Bre + Suk + Son + + + A + S + M + B + B + S + S + + + Ai + Sm + Mg + Bu + Br + Su + Sn + + + Aitar + Somar + Mongllar + Budhvar + Birestar + Sukrar + Sonvar + + + + + A + S + M + B + B + S + S + + + + + + + Timh1 + Timh2 + Timh3 + Timh4 + + + 1lem timhoinallem + 2rem timhoinallem + 3rem timhoinallem + 4tem timhoinallem + + + + + + + sokallim + sanje + + + + + sokallim + sanje + + + + + + Krista Adim + KA + Anno Domini + AD + + + KA + AD + + + K + A + + + + + + EEEE, d MMMM, y + + + + + d MMMM, y + + + + + d MMM, y + + + + + d-M-yy + + + + + + + a h:mm:ss zzzz + + + + + a h:mm:ss z + + + + + a h:mm:ss + + + + + a h:mm + + + + + + + {1}, {0} + + + {1}, {0} 'vaztam' + + + + + {1}, {0} + + + {1}, {0} 'vaztam' + + + + + {1}, {0} + + + {1}, {0} + + + + + {1}, {0} + + + {1}, {0} + + + + B h + B h:mm + B h:mm:ss + E B h:mm + E B h:mm:ss + E a h:mm + E a h:mm:ss + y G + d-M-y G + MMM y G + d MMM, y G + E, d MMM, y G + a h + a h:mm + a h:mm:ss + a h:mm:ss v + a h:mm v + d/M + dd-MM, E + d MMM + E, d MMM + d MMMM + MMMM -'acho' 'suman' W + M-y + d-M-y + E, d-M-y + MMM y + d MMM, y + E, d MMM, y + MMMM y + QQQ y + QQQQ y + Y -'acho' 'suman' w + + + + B h – B h + B h – h + + + B h:mm – B h:mm + B h:mm – h:mm + B h:mm–h:mm + + + d – d + + + y G – y G + y – y G + + + M/y G – M/y G + M/y – M/y G + M/y – M/y G + + + d/M/y – d/M/y G + d/M/y G – d/M/y G + d/M/y – d/M/y G + d/M/y – d/M/y G + + + E, d/M/y – E, d/M/y G + E, d/M/y G – E, d/M/y G + E, d/M/y – E, d/M/y G + E, d/M/y – E, d/M/y G + + + MMM y G – MMM y G + MMM – MMM y G + MMM y – MMM y G + + + d – d MMM, y G + d MMM, y G – d MMM, y G + d MMM – d MMM, y G + d MMM, y – d MMM, y G + + + E, d MMM – E, d MMM, y G + E, d MMM, y G – E, d MMM, y G + E, d MMM – E, d MMM, y G + E, d MMM, y – E, d MMM, y G + + + a h – a h + a h–h + + + HH – HH + + + a h:mm – a h:mm + a h:mm–h:mm + a h:mm–h:mm + + + HH:mm – HH:mm + HH:mm – HH:mm + + + a h:mm – a h:mm v + a h:mm–h:mm v + a h:mm–h:mm v + + + HH:mm – HH:mm v + HH:mm – HH:mm v + + + a h – a h v + a h–h v + + + HH – HH v + + + M – M + + + d/M – d/M + d/M – d/M + + + E, d/M – E, d/M + E, d/M – E, d/M + + + MMM – MMM + + + d – d MMM + d MMM – d MMM + + + E, d MMM – E, d MMM + E, d MMM – E, d MMM + + + y – y + + + M/y – M/y + M/y – M/y + + + d/M/y – d/M/y + d/M/y – d/M/y + d/M/y – d/M/y + + + E, d/M/y – E, d/M/y + E, d/M/y – E, d/M/y + E, d/M/y – E, d/M/y + + + MMM – MMM y + MMM y – MMM y + + + d – d MMM, y + d MMM – d MMM, y + d MMM, y – d MMM, y + + + E, d MMM – E, d MMM, y + E, d MMM – E, d MMM, y + E, d MMM, y – E, d MMM, y + + + MMMM – MMMM y + MMMM y – MMMM y + + + + + + + + yug + + + yug + + + yug + + + voros + fattlem voros + hem voros + fuddlem voros + + {0} vorsanim + + + {0} vorsam adim + + + + voros + fattlem voros + hem voros + fuddlem voros + + {0} vorsanim + + + {0} vorsam adim + + + + voros + fattlem voros + hem voros + fuddlem voros + + {0}vorsanim + + + {0}vorsam adim + + + + timhoinallem + fattlem timhoinallem + hem timhoinallem + fuddlem timhoinallem + + {0} timhoinalleanim + + + {0} timhoinalle adim + + + + timho. + fattlem timho. + hem timho. + fuddlem timho. + + {0} timhoinalleanim + + + {0} timho. adim + + + + timh + fattlem timh + hem timh + fuddlem timh + + {0}timhoinalleanim + + + {0}timh adim + + + + mhoino + fattlo mhoino + ho mhoino + fuddlo mhoino + + {0} mhoineanim + + + {0} mhoine adim + + + + mho. + fattlo mho. + ho mho. + fuddlo mho. + + {0} mhoineanim + + + {0} mho. adim + + + + mh + fattlo mh + ho mh + fuddlo mh + + {0}mhoineanim + + + {0}mh adim + + + + suman + fattlo suman + ho suman + fuddlo suman + + {0} sumananim + + + {0} suman adim + + {0} cho suman + + + suman + fattlo suman + ho suman + fuddlo suman + + {0} sumananim + + + {0} suman adim + + {0} cho suman + + + sum + fattlo sum + ho sum + fuddlo sum + + {0}sumananim + + + {0}sum adim + + {0} cho sum + + + mhoineacho suman + + + mhoineacho suman + + + mhoineacho sum. + + + dis + kal + aiz + faleam + + {0} disanim + + + {0} dis adim + + + + dis + kal + aiz + faleam + + {0} disanim + + + {0} dis adim + + + + d + kal + aiz + fal + + {0}disanim + + + {0}d adim + + + + vorsacho dis + + + vorsacho dis + + + vorsacho d. + + + sumanacho dis + + + sumanacho dis + + + sumanacho d. + + + fattlo Aitar + ho Aitar + fuddlo Aitar + + {0} Aitaranim + + + {0} Aitaram adim + + + + fattlo Ait. + ho Ait. + fuddlo Ait. + + {0} Aitaranim + + + {0} Ait. adim + + + + fattlo Ai + ho Ai + fuddlo Ai + + {0} Aitaranim + + + {0} Ai adim + + + + fattlo Somar + ho Somar + fuddlo Somar + + {0} Somaranim + + + {0} Somaram adim + + + + fattlo Som. + ho Som. + fuddlo Som. + + {0} Somaranim + + + {0} Som. adim + + + + fattlo Sm + ho Sm + fuddlo Sm + + {0} Somaranim + + + {0} Sm adim + + + + fattlo Mongllar + ho Mongllar + fuddlo Mongllar + + {0} Mongllaranim + + + {0} Mongllaram adim + + + + fattlo Mon. + ho Mon. + fuddlo Mon. + + {0} Mongllaranim + + + {0} Mon. adim + + + + fattlo Mg + ho Mg + fuddlo Mg + + {0} Mongllaranim + + + {0} Mg adim + + + + fattlo Budhvar + ho Budhvar + fuddlo Budhvar + + {0} Budhvaranim + + + {0} Budhvaram adim + + + + fattlo Bud. + ho Bud. + fuddlo Bud. + + {0} Budhvaranim + + + {0} Bud. adim + + + + fattlo Bu + ho Bu + fuddlo Bu + + {0} Budhvaranim + + + {0} Bu adim + + + + fattlo Birestar + ho Birestar + fuddlo Birestar + + {0} Birestaranim + + + {0} Birestaram adim + + + + fattlo Bre. + ho Bre. + fuddlo Bre. + + {0} Birestaranim + + + {0} Bre. adim + + + + fattlo Br + ho Br + fuddlo Br + + {0} Birestaranim + + + {0} Br adim + + + + fattlo Sukrar + ho Sukrar + fuddlo Sukrar + + {0} Sukraranim + + + {0} Sukraram adim + + + + fattlo Suk. + ho Suk. + fuddlo Suk. + + {0} Sukraranim + + + {0} Suk. adim + + + + fattlo Su + ho Su + fuddlo Su + + {0} Sukraranim + + + {0} Su adim + + + + fattlo Sonvar + ho Sonvar + fuddlo Sonvar + + {0} Sonvaranim + + + {0} Sonvaram adim + + + + fattlo Son. + ho Son. + fuddlo Son. + + {0} Sonvaranim + + + {0} Son. adim + + + + fattlo Sn + ho Sn + fuddlo Sn + + {0} Sonvaranim + + + {0} Sn adim + + + + AM/PM + + + AM/PM + + + AM/PM + + + vor + hem vor + + {0} voranim + + + {0} voram adim + + + + vor + hem vor + + {0} voranim + + + {0} voram adim + + + + vor + hem vor + + {0}voranim + + + {0}voram adim + + + + minut + ho minut + + {0} mintanim + + + {0} mintam adim + + + + min. + ho min. + + {0} min. + + + {0} min. adim + + + + min + ho min + + {0}min + + + {0}min adim + + + + sekond + atam + + {0} sekondanim + + + {0} sekond adim + + + + sek. + atam + + {0} sekondanim + + + {0} sek. adim + + + + sek + atam + + {0}sekondanim + + + {0}sek adim + + + + vell kxetr + + + kxetr + + + kxetr + + + + {0} Vell + {0} Dis-uzvadd vachovp Vell + {0} Promann Vell + + + Greenwich Mean Time + + + + + + + + + #,##,##0.### + + + + + + + #,##,##0.### + + + + + 0 hozar + 00 hozar + 0 lakh + 00 lakh + 0 kotti + 00 kotti + 0 obz + 00 obz + 0 nikhorv + 00 nikhorv + 000 nikhorv + 0 hozar nikhorv + + + + + 0hoz + 00hoz + 0lak + 00lak + 0ko + 00ko + 0obz + 00obz + 0nikh + 00nikh + 000nikh + 0hoz'.'nikh'.' + + + + + + + ¤#,##,##0.00 + + + + + + + ¤#,##,##0.00 + + + + + ¤0hoz + ¤00hoz + ¤0lak + ¤00lak + ¤0ko + ¤00ko + ¤0obz + ¤00obz + ¤0nikh + ¤00nikh + ¤000nikh + ¤0hoz'.'nikh'.' + + + + + + + + xekdde + {0} xekdde + + + doskam + {0} doskam + + + vorsam + {0} vorsam + dor voros {0} + + + timhoinalle + {0} timhoinalle + {0}/timhoinallem + + + mhoine + {0} mhoine + dor mhoino {0} + + + suman + {0} suman + dor sumanak {0} + + + dis + {0} dis + dor disa {0} + + + voram + {0} voram + dor vora {0} + + + mintam + {0} mintam + dor minut {0} + + + sekond + {0} sekond + dor sekond {0} + + + milisekond + {0} milisekond + + + maikrosekond + {0} maikrosekond + + + nanosekond + {0} nanosekond + + + rati + {0} rati + dor rat {0} + + + + + x + {0} x + + + dos + {0} dos + + + vorsam + {0} vorsam + {0}/voros + + + timho + {0} timho + {0}/timho + + + mho + {0} mho + {0}/mho + + + suman + {0} suman + {0}/suman + + + dis + {0} dis + {0}/dis + + + voram + {0} vor + {0}/vor + + + sek + {0} sek + {0}/sek + + + msek + {0} msek + + + μsek + {0} μsek + + + nanosek + {0} nsek + + + rati + {0} rati + {0}/rat + + + + + x + {0}x + + + dos + {0}dos + + + vorsam + {0}vorsam + {0}/voros + + + timho + {0}timho + {0}/timho + + + mho + {0}mho + {0}/mho + + + sum + {0}sum + {0}/sum + + + d + {0}d + + + vor + {0}vor + {0}/vor + + + {0}min + + + sek + {0}sek + {0}/sek + + + msek + {0}msek + + + μsek + {0}μsek + + + nsek + {0}nsek + + + rati + {0}rati + {0}/rat + + + + diff --git a/make/data/cldr/common/main/kok_Latn_IN.xml b/make/data/cldr/common/main/kok_Latn_IN.xml new file mode 100644 index 00000000000..ef922fa7dd8 --- /dev/null +++ b/make/data/cldr/common/main/kok_Latn_IN.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + - + + - + - + - + @@ -500,7 +512,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + @@ -508,12 +520,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic + - + dinya @@ -521,32 +534,32 @@ CLDR data files are interpreted according to the LDML specification (http://unic Amerîkaya Bakur Amerîkaya Başûr Okyanûsya - Afrîkaya Rojava + Rojavayê Afrîkayê Amerîkaya Navîn - Afrîkaya Rojhilat - Afrîkaya Bakur + Rojhilatê Afrîkayê + Bakurê Afrîkayê Afrîkaya Navîn Başûrê Afrîkayê Amerîka Bakurê Amerîkayê Karayîb - Asyaya Rojhilat - Asyaya Başûr - Asyaya Başûrrojhilat - Ewropaya Başûr + Rojhilatê Asyayê + Başûrê Asyayê + Başûrrojhilatê Asyayê + Başûrê Ewropayê Awistralasya Melanezya Herêma Mîkronezyayê Polînezya Asya Asyaya Navîn - Asyaya Rojava + Rojavayê Asyayê Ewropa - Ewropaya Rojhilat - Ewropaya Bakur - Ewropaya Rojava + Rojhilatê Ewropayê + Bakurê Ewropayê + Rojavayê Ewropayê Afrîkaya Jêra Sahrayê - Amerîkaya Latînî + Amerîkaya Latîn Girava Ascensionê Andorra Mîrgehên Erebî yên Yekbûyî @@ -564,7 +577,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Arûba Giravên Alandê Azerbeycan - Bosniya û Hersek + Bosna û Hersek Barbados Bengladeş Belçîka @@ -589,17 +602,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic Giravên Kokosê (Keeling) Kongo - Kînşasa Kongo (KDK) - Komara Afrîkaya Navend + Komara Afrîkaya Navîn Kongo - Brazzaville Kongo (Komar) Swîsre Côte d’Ivoire Perava Ivoryê - Giravên Cook + Giravên Cookê Şîle Kamerûn Çîn - Kolombiya + Kolombîya Girava Clippertonê Sark Kosta Rîka @@ -609,7 +622,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Girava Christmasê Qibris Çekya - Komara Çekî Almanya Diego Garcia Cîbûtî @@ -624,8 +636,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Sahraya Rojava Erître Spanya - Etiyopya - Yekîtiya Ewropayê + Etîyopya + Yekîtîya Ewropayê Herêma Ewroyê Fînlenda Fîjî @@ -635,21 +647,21 @@ CLDR data files are interpreted according to the LDML specification (http://unic Giravên Faroeyê Fransa Gabon - Keyaniya Yekbûyî - KY + Qiralîyeta Yekbûyî + QY Grenada Gurcistan Guyanaya Fransî Guernsey Gana - Cîbraltar + Cebelîtariq Grînlanda - Gambiya + Gambîya Gîne Guadeloupe Gîneya Ekwadorê - Yewnanistan - Giravên Georgiyaya Başûr û Sandwicha Başûr + Yûnanistan + Giravên Georgîyaya Başûr û Sandwicha Başûr Guatemala Guam Gîne-Bissau @@ -658,7 +670,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Hong Kong Giravên Heard û MacDonaldê Hondûras - Kroatya + Xirwatistan Haîtî Macaristan Giravên Kanaryayê @@ -668,8 +680,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Girava Manê Hindistan Herêma Okyanûsa Hindî ya Brîtanyayê - Komgiravên Archilpelagoyê - Iraq + Komgiravên Çagosê + Îraq Îran Îslanda Îtalya @@ -683,8 +695,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kirîbatî Komor Saint Kitts û Nevîs - Korêya Bakur - Korêya Başûr + Koreya Bakur + Koreya Başûr Kuweyt Giravên Kaymanê Qazaxistan @@ -699,17 +711,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic Luksembûrg Letonya Lîbya - Maroko + Fas Monako Moldova Montenegro Saint Martin Madagaskar - Giravên Marşal + Giravên Marşalê Makendonyaya Bakur Malî - Myanmar (Birmanya) - Mongolya + Myanmar (Bûrma) + Moxolistan Makaoya Hît ya Çînê Makao Giravên Bakurê Marianan @@ -717,7 +729,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Morîtanya Montserat Malta - Maurîtius + Mauritius Maldîva Malawî Meksîka @@ -739,13 +751,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic Oman Panama Perû - Polînezyaya Fransî + Polînezyaya Fransizî Papua Gîneya Nû Fîlîpîn Pakistan Polonya Saint-Pierre û Miquelon - Giravên Pitcairn + Giravên Pitcairnê Porto Rîko Herêmên Filîstînî Filistîn @@ -778,7 +790,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Sao Tome û Prînsîpe El Salvador Sint Marteen - Sûrî + Sûrîye Eswatînî Swazîlenda Tristan da Cunha @@ -794,7 +806,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Tirkmenistan Tûnis Tonga - Tirkiye + Tirkîye Türkiye Trînîdad û Tobago Tûvalû @@ -803,17 +815,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ûkrayna Ûganda Giravên Biçûk ên Derveyî DYAyê - Neteweyên Yekbûyî + Miletên Yekbûyî Dewletên Yekbûyî yên Amerîkayê DYA Ûrûguay - Ûzbêkistan + Ozbekistan Vatîkan Saint Vincent û Giravên Grenadînê Venezuela Giravên Vîrjînê yên Brîtanyayê Giravên Vîrjînê yên Amerîkayê - Viyetnam + Vîetnam Vanûatû Wallis û Futuna Samoa @@ -823,7 +835,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Yemen Mayotte Afrîkaya Başûr - Zambiya + Zambîya Zîmbabwe Herêma Nenas @@ -831,27 +843,33 @@ CLDR data files are interpreted according to the LDML specification (http://unic Akademîk - salname - rêzkirin + Salname + Rêzkirin diwîz - salnameya budîst - salnameya çînî + Salnameya Budîst + Salnameya Çînî + Salnameya Qiptî + Salnameya Dangî + Salnameya Etîyopîk + Salnameya Amete Alem ya Etîyopîk Salnameya Mîladî salnameya îbranî - salnameya neteweyî ya hindî - salnameya koçî + Salnameya Milî ya Hindî + Salnameya Hicrî Salnameya Hicrî (16ê tîrmeha 622yan) + Salnameya Hicrî (Siudî) Salnameya Hicrî (15ê tîrmeha 622yan) + Salnameya Hicrî (Um el-Qura) Salnameya ISO-8601ê - salnameya japonî - salnameya îranî - salnameya Komara Çînê + Salnameya Japonî + Salnameya Îranî + Salnameya Komara Çînê Awayê Rêzkirina Standard Reqemên hindo-erebî - reqemên rojavayê - hejmarên romî + Reqemên Rojavayî + Reqemên Romayî metrîk @@ -869,12 +887,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic [áàăâåäãā æ èĕëē é ìĭïī í ñ óòŏôøō œ ß ŭū úù ÿ] [A B C Ç D E Ê F G H I Î J K L M N O P Q R S Ş T U Û V W X Y Z] [\- ‐‑ – — , ; \: ! ? . … '‘’ "“” ( ) \[ \] § @ * / \& # † ‡ ′ ″] - - [\: ∶] - - - [£ ₤] - [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -1133,15 +1145,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Î Ş - - - - - çş - - în - şm - @@ -1464,7 +1467,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - piştî salekê + piştî {0} salan piştî {0} salan @@ -1474,6 +1477,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic çaryek + çaryeka dawî + ev çaryek + çaryeka were çrk. @@ -1481,24 +1487,39 @@ CLDR data files are interpreted according to the LDML specification (http://unic meh meha borî - vê mehê + ev meh + meha bê + + + meha borî + ev meh + meha bê + + + meha borî + ev meh meha bê hefte hefteya borî - vê hefteyê + ev hefte hefteya bê - hefteya {0}(y)ê + hefteya {0} hf. hft. borî - vê hft. + ev hft. hft. bê + hefteya {0} hf + hft. borî + ev hft. + hft. bê + hefteya {0} hefteya mehê @@ -1561,7 +1582,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - saniye + sanîye vêga @@ -1577,7 +1598,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Saeta {0}(y)ê Saeta Havînê ya {0}(y)ê - Saeta Standard ya {0}(y)ê + Saeta Standard a {0}(y)ê Saeta Gerdûnî ya Hevdemî @@ -1655,9 +1676,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Zûrîh - - Girava Paskalyayê - Ûrûmçî @@ -1723,7 +1741,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Saeta Havînê ya Birîtanyayê + Saeta Havînê ya Brîtanyayê Londra @@ -1734,7 +1752,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Akra - Gîbraltar + Cebelîtariq Konakrî @@ -1847,9 +1865,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ûlanbatar - - Çoybalsan - Makao @@ -1964,9 +1979,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Mogadîşû - - Cuba - Şam @@ -2087,9 +2099,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Saeta Çiyayî ya Amerîkaya Bakur - Saeta Standard a Çiyayî ya Amerîkaya Bakur - Saeta Havînê ya Çiyayî ya Amerîkaya Bakur + Saeta Çîyayî ya Amerîkaya Bakur + Saeta Standard a Çîyayî ya Amerîkaya Bakur + Saeta Havînê ya Çîyayî ya Amerîkaya Bakur @@ -2248,9 +2260,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Saeta Şîliyê - Saeta Standard a Şîliyê - Saeta Havînê ya Şîliyê + Saeta Şîlîyê + Saeta Standard a Şîlîyê + Saeta Havînê ya Şîlîyê @@ -2260,13 +2272,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Saeta Havînê ya Çînê - - - Saeta Choibalsanê - Saeta Standard a Choibalsanê - Saeta Havînê ya Choibalsanê - - Saeta Girava Christmasê @@ -2279,9 +2284,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Saeta Kolombiyayê - Saeta Standard a Kolombiyayê - Saeta Havînê ya Kolombiyayê + Saeta Kolombîyayê + Saeta Standard a Kolombîyayê + Saeta Havînê ya Kolombîyayê @@ -2365,9 +2370,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Saeta Fîjiyê - Saeta Standard a Fîjiyê - Saeta Havînê ya Fîjiyê + Saeta Fîjîyê + Saeta Standard a Fîjîyê + Saeta Havînê ya Fîjîyê @@ -2525,6 +2530,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Saeta Havşnê ya Japonyayê + + + Saeta Qazaxistanê + + Saeta Qazaxistana Rojhilat @@ -2826,14 +2836,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Saeta Tahîtiyê + Saeta Tahîtîyê - Saeta Taîpeiyê - Saeta Standard a Taîpeiyê - Saeta Havînê ya Taîpeiyê + Saeta Taîpeîyê + Saeta Standard a Taîpeîyê + Saeta Havînê ya Taîpeîyê @@ -2954,6 +2964,64 @@ CLDR data files are interpreted according to the LDML specification (http://unic , . + + + + 0 hezar + 0 hezar + 00 hezar + 00 hezar + 000 hezar + 000 hezar + 0 milyon + 0 milyon + 00 milyon + 00 milyon + 000 milyon + 000 milyon + 0 milyar + 0 milyar + 00 milyar + 00 milyar + 000 milyar + 000 milyar + 0 trilyon + 0 trilyon + 00 trilyon + 00 trilyon + 000 trilyon + 000 trilyon + + + + + 0H + 0H + 00H + 00H + 000H + 000H + 0MN + 0MN + 00MN + 00MN + 000MN + 000MN + 0MR + 0MR + 00MR + 00MR + 000MR + 000MR + 0TN + 0TN + 00TN + 00TN + 000TN + 000TN + + + @@ -2971,8 +3039,34 @@ CLDR data files are interpreted according to the LDML specification (http://unic #,##0.00;(#,##0.00) - {0} {1} - {0} {1} + + + 0H ¤ + 0H ¤ + 00H ¤ + 00H ¤ + 000H ¤ + 000H ¤ + 0MN ¤ + 0MN ¤ + 00MN ¤ + 00MN ¤ + 000MN ¤ + 000MN ¤ + 0MR ¤ + 0MR ¤ + 00MR ¤ + 00MR ¤ + 000MR ¤ + 000MR ¤ + 0TN ¤ + 0TN ¤ + 00TN ¤ + 00TN ¤ + 000TN ¤ + 000TN ¤ + + @@ -2981,9 +3075,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic dîrhemên MEYî - efxaniyê efxanistanî - efxaniyê efxanistanî - efxaniyên efxanistanî + efxanîyê efxanistanî + efxanîyê efxanistanî + efxanîyên efxanistanî lekê arnawidî @@ -3049,9 +3143,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic dînarên behreynê - frenkê birûndiyî - frenkê birûndiyî - frenkên birûndiyî + frankê birûndîyî + frankê birûndîyî + frankên birûndîyî dolarê bermûdayî @@ -3086,7 +3180,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic pulayê botswanayî pulayê botswanayî - pulayê nbotswanayî + pulayên botswanayî rûbleyê belarûsî @@ -3114,9 +3208,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic frankên swîsrî - pesoyê şîliyê - pesoyê şîliyê - pesoyên şîliyê + pesoyê şîlîyê + pesoyê şîlîyê + pesoyên şîlîyê yûanê çînî (offshore) @@ -3129,9 +3223,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic yûanên çînî - pesoyê kolombiyayî - pesoyê kolombiyayî - pesoyên kolombiyayî + pesoyê kolombîyayî + pesoyê kolombîyayî + pesoyên kolombîyayî kolonê kosta rîkayî @@ -3159,9 +3253,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic kronên çekî - frankê cîbûtiyî - frankê cîbûtiyî - frankên cîbûtiyî + frankê cîbûtîyî + frankê cîbûtîyî + frankên cîbûtîyî kronê danîmarkî @@ -3197,9 +3291,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic ewro - dolarê fîjiyî - dolarê fîjiyî - dolarên fîjiyî + dolarê fîjîyî + dolarê fîjîyî + dolarên fîjîyî paundê giravên falklandê @@ -3212,14 +3306,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic sterlînên brîtanî - lariyê gurcistanî - lariyê gurcistanî - lariyên gurcistanî + larîyê gurcistanî + larîyê gurcistanî + larîyên gurcistanî - cediyê ganayî - cediyê ganayî - cediyên ganayî + cedîyê ganayî + cedîyê ganayî + cedîyên ganayî poundê gîbraltarê @@ -3227,9 +3321,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic poundên gîbraltarê - dalasiyê gambiyayî - dalasiyê gambiyayî - dalasiyên gambiyayî + dalasîyê gambîyayî + dalasîyê gambîyayî + dalasîyên gambîyayî frankê gîneyî @@ -3262,9 +3356,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic kûnayên xirwatî - gûrdeyê haîtiyî - gûrdeyê haîtiyî - gûrdeyên haîtiyî + gûrdeyê haîtîyî + gûrdeyê haîtîyî + gûrdeyên haîtîyî forîntê macarî @@ -3272,9 +3366,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic forîntên macarî - rûpiyê endonezî - rûpiyê endonezî - rûpiyên endonezî + rûpîyê endonezî + rûpîyê endonezî + rûpîyên endonezî şekelê nû yê îsraîlî @@ -3282,9 +3376,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic şekelên nû yê îsraîlî - rûpiyê hindistanî - rûpiyê hindistanî - rûpiyên hindistanî + rûpîyê hindistanî + rûpîyê hindistanî + rûpîyên hindistanî dînarê îraqî @@ -3292,9 +3386,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic dînarên îraqî - riyalê îranî - riyalê îranî - riyalên îranî + rîyalê îranî + rîyalê îranî + rîyalên îranî kronê îslandayî @@ -3372,9 +3466,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic lîreyên libnanî - rûpiyê srî lankayî - rûpiyê srî lankayî - rûpiyên srî lankayî + rûpîyê srî lankayî + rûpîyê srî lankayî + rûpîyên srî lankayî dolarê lîberyayî @@ -3382,9 +3476,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic dolarên lîberyayî - lotiyê lesothoyî - lotiyê lesothoyî - lotiyên lesothoyî + lotîyê lesothoyî + lotîyê lesothoyî + lotîyên lesothoyî dînarê lîbyayî @@ -3432,19 +3526,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic ouguîayên morîtanyayî - rûpiyê maûrîtîûsê - rûpiyê maûrîtîûsê - rûpiyên maûrîtîûsê + rûpîyê maûrîtîûsê + rûpîyê maûrîtîûsê + rûpîyên maûrîtîûsê - rûfiyaayê maldîvayî - rûfiyaayê maldîvayî - rûfiyaayên maldîvayî + rûfîyaayê maldîvayî + rûfîyaayê maldîvayî + rûfîyaayên maldîvayî - kwaçayê malawiyê - kwaçayê malawiyê - kwaçayên malawiyê + kwaçayê malawîyê + kwaçayê malawîyê + kwaçayên malawîyê pesoyê meksîkayî @@ -3482,9 +3576,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic kronên norweçî - rûpiyê nepalî - rûpiyê nepalî - rûpiyên nepalî + rûpîyê nepalî + rûpîyê nepalî + rûpîyên nepalî dolarê zelandayî @@ -3492,9 +3586,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic dolarên zelandayî - riyalê umanî - riyalê umanî - riyalên umanî + rîyalê umanî + rîyalê umanî + rîyalên umanî balboayê panamayî @@ -3517,24 +3611,24 @@ CLDR data files are interpreted according to the LDML specification (http://unic pesoyên fîlîpînî - rûpiyê pakistanî - rûpiyê pakistanî - rûpiyên pakistanî + rûpîyê pakistanî + rûpîyê pakistanî + rûpîyên pakistanî - zlotiyê polonyayî - zlotiyê polonyayî - zlotiyên polonyayî + zlotîyê polonyayî + zlotîyê polonyayî + zlotîyên polonyayî - gûaraniyê paragûayî - gûaraniyê paragûayî - gûaraniyên paragûayî + gûaranîyê paragûayî + gûaranîyê paragûayî + gûaranîyên paragûayî - riyalê qeterî - riyalê qeterî - riyalên qeterî + rîyalê qeterî + rîyalê qeterî + rîyalên qeterî leyê romanyayî @@ -3557,9 +3651,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic frankên rwandayî - riyalê siûdî - riyalê siûdî - riyalên siûdî + rîyalê siûdî + rîyalê siûdî + rîyalên siûdî dolarê giravên solomonî @@ -3567,9 +3661,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic dolarên giravên solomonî - rûpiyê seyşelerî - rûpiyê seyşelerî - rûpiyên seyşelerî + rûpîyê seyşelerî + rûpîyê seyşelerî + rûpîyên seyşelerî lîreyê sûdanî @@ -3627,9 +3721,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic lîreyên sûrî - lîlangeniyê swazîlî - lîlangeniyê swazîlî - lîlangeniyên swazîlî + lîlangenîyê swazîlî + lîlangenîyê swazîlî + lîlangenîyên swazîlî bahtê taylandî @@ -3744,14 +3838,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic frankên CFPî - (yekeya pereyê nenas) - (yekeya pereyê nenas) - (yekeyên pereyê nenas) + (yekeya pereyî ya nenas) + yekeya pereyî ya nenas + (yekeyên pereyî yên nenas) - riyalê yemenî - riyalê yemenî - riyalên yemenî + rîyalê yemenî + rîyalê yemenî + rîyalên yemenî randê afrîkaya başûrî @@ -3759,9 +3853,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic randên afrîkaya başûrî - kwaçayê zambiyayî - kwaçayê zambiyayî - kwaçayên zambiyayî + kwaçayê zambîyayî + kwaçayê zambîyayî + kwaçayên zambîyayî @@ -3789,14 +3883,67 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} derece - xuleka kevanî - {0} xuleka kevanî - {0} xulekên kevanî + deqîqeya kevanî + {0} deqîqeya kevanî + {0} deqîqeyên kevanî - çirkeya kevanî - {0} çirkeya kevanî - {0} çirkeyên kevanî + sanîyeya kevanî + {0} sanîyeya kevanî + {0} sanîyeyên kevanî + + + kîlometre kare + {0} kîlometre kare + {0} kîlometre kare + {0} serê kîlometre kareyê + + + hektar + + + metre kare + {0} metre kare + {0} metre kare + {0} serê metre kareyê + + + santîmetre kare + {0} santîmetre kare + {0} santîmetre kare + {0} serê santîmetre kareyê + + + mîl kare + {0} mîl kare + {0} mîl kare + {0} serê mîl kareyê + + + akre + {0} akre + {0} akre + + + yarda kare + {0} yarda kare + {0} yarda kare + + + fît kare + {0} fît kare + {0} fît kare + + + înç kare + {0} înç kare + {0} înç kare + {0} serê înç kareyê + + + donim + {0} donim + {0} donim {0} qerat @@ -3807,6 +3954,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic ji sedî {0} ji sedî {0} + + ss + {0} ss + {0} ss + + + dehsal + {0} dehsal + {0} dehsal + + + çaryek + {0} çaryek + {0} çaryek + {0}/çaryek + {0} meh {0} meh @@ -3831,9 +3994,133 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} deqîqe - sanî - {0} saniye + sanîye + {0} sanîye {0} saniye + {0}/sn + + + nîvçapa dinyayê + {0} nîvçapa dinyayê + {0} nîvçapa dinyayê + + + kîlometre + {0} kîlometre + {0} kîlometre + {0} serê kîlometreyê + + + metre + {0} metre + {0} metre + {0} serê metreyê + + + decîmetre + {0} decîmetre + {0} decîmetre + + + santîmetre + {0} serê santîmetreyê + + + mîlîmetre + {0} mîlîmetre + {0} mîlîmetre + + + mîkrometre + {0} mîkrometre + {0} mîkrometre + + + nanometre + {0} nanometre + {0} nanometre + + + pîkometre + {0} pîkometre + {0} pîkometre + + + mîl + {0} mîl + {0} mîl + + + yarda + + + fît + {0} fît + {0} fît + {0} serê fîtê + + + înç + {0} înç + {0} înç + {0} serê înçê + + + parsek + {0} parsek + {0} parsek + + + sala ronahîyê + {0} sala ronahîyê + {0} sala ronahîyê + + + yekeya astronomîk + {0} yekeya astronomîk + {0} yekeya astronomîk + + + furlong + {0} furlong + {0} furlong + + + fathom + {0} fathom + {0} fathom + + + mîla behrê + {0} mîla behrê + {0} mîla behrê + + + punto + {0} punto + {0} punto + + + nîvçapa rojê + {0} nîvçapa rojê + {0} nîvçapa rojê + + + kîlogram + + + kîlometreya serê saetê + {0} km/st + {0} km/st + + + lître + + + şev + {0} şev + {0} şev + {0}/şev hêlên sereke @@ -3856,10 +4143,36 @@ CLDR data files are interpreted according to the LDML specification (http://unic derece - xlk. kevanî + dq. kevanî - çrk. kevanî + sn. kevanî + + + hektar + + + metre kare + + + mîl kare + + + akre + + + yarda kare + + + fît kare + + + înç kare + + + donim + {0} donim + {0} donim qerat @@ -3878,12 +4191,28 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} l/100 km {0} l/100 km + + ss + {0} ss + {0} ss + + + dehsal + {0} dehsal + {0} dehsal + sal {0} sal {0} sal {0}/sal + + çaryek + {0} çaryek + {0} çaryek + {0}/çaryek + meh @@ -3912,7 +4241,62 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}/d - s + sn + {0} sn + {0} sn + {0}/sn + + + nîvçapa dinyayê + + + m + + + mîl + + + yarda + + + fît + + + înç + + + parsek + + + sala rnh + {0} sala rnh + {0} sala rnh + + + furlong + + + fathom + + + punto + + + nîvçapa rojê + + + km/st + {0} km/st + {0} km/st + + + lître + + + şev + {0} şev + {0} şev + {0}/şev hêl @@ -3923,16 +4307,67 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + rad + + + dq. kevanî + + + sn. kevanî + + + hektar + + + metre kare + + + mîl kare + + + akre + + + yarda kare + + + fît kare + + + înç kare + + + donim + {0} donim + {0} donim + l/100km {0}l/100km {0}l/100km + + ss + {0} ss + {0} ss + + + dehsal + {0} dehsal + {0} dehsal + sl {0}sl {0}sl + + çaryek + {0} çaryek + {0} çaryek + {0}/çaryek + {0}m {0}m @@ -3954,8 +4389,91 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}d - {0}s - {0}s + sn + {0}sn + {0}sn + {0}/sn + + + nîvçapa dinyayê + + + m + {0}m + {0}m + + + {0}dm + {0}dm + + + {0}cm + {0}cm + + + {0}mm + {0}mm + + + {0}μm + {0}μm + + + {0}nm + {0}nm + + + {0}pm + {0}pm + + + mîl + {0}mi + {0}mi + + + yarda + + + fît + {0}′ + {0}′ + + + înç + {0}″ + {0}″ + + + parsek + + + sala rnh + {0} sala rnh + {0} sala rnh + + + furlong + + + fathom + + + nîvçapa rojê + + + km/st + {0} km/st + {0} km/st + + + lître + + + şev + {0} şev + {0} şev + {0}/şev {0}Rh @@ -3988,7 +4506,50 @@ CLDR data files are interpreted according to the LDML specification (http://unic + {0} — hemû + {0} — hevahengî + {0} — dorlêpêçayî + {0} — berfirehkirî + {0} ber bi çepê ve + {0} ber bi rastê ve + {0} — tarîxî + {0} — curbicur + {0} — yên din + alfabe — {0} + {0} xêz + {0} xêz + îndeks {0} + jorîndeks {0} + aktîvîte + alfabeya Afrîkayê + alfabeya Amerîkayê heywan heywan an xweza + tîr + beden + avahî + sembola pereyan + reqam + jin + ala + ala + xwarin û vexwarin + format û valahî + dil + mêr + reqam + niqteşanî + spor + sembol + seyahat + hewa + + îtalîk + panî + giranî + xweşnivîsîna destî + nivîs + sernav + diff --git a/make/data/cldr/common/main/kxv.xml b/make/data/cldr/common/main/kxv.xml index 94057d326aa..027b144fdeb 100644 --- a/make/data/cldr/common/main/kxv.xml +++ b/make/data/cldr/common/main/kxv.xml @@ -12,12 +12,28 @@ CLDR data files are interpreted according to the LDML specification (http://unic + aprikaans + aarmenia arabic punijuga mānānka arabic + aasamis + ajerbaijani + ājeri + belarusiati + bulgeriati bangali + tibetī + boḍo + bajniati + keṭelan + cerokī + cek + denis jerman ausṭriati jerman svis high jerman + ḍogri + grīk ingrajī ausṭreliati ingarjī kanaḍati ingarjī @@ -29,41 +45,106 @@ CLDR data files are interpreted according to the LDML specification (http://unic laṭin americati spenis yuropīyati spenis meksikoti spenis + esṭoniyati + bask + persiati + ḍari + pinnis + pilipino prenc kanaḍati prenc svis prenc + galesiati + gujraṭī + hibru hindi + kroesiati + hngeriyati + aarmeniati inḍonesiyati + aislanḍik iṭaliti japanij + jorjiati + kjaak + kmer + knnaḍa koriati + konkanī + kasmīrī kuvi + kyrgyj + lao + lituaniyati + laṭviati + maitilī + mesiḍoniyati + malyalam + mongoliyati + maṇipurī + maraṭi + malei + burmij + norvejiati būkmal + nepaḷī ḍc vlaams + oḍiaa + pnjabī polis portugīj brajilian portugīj yuropīyati portugīj + romaniyati + molḍaviati rusiyati + sanskrit + santalī + sindi + sinhali + slovak + sloveniyati + albaniyati + sarbiyati + sviḍis + svahili + kongo svahili + tamiḷ + telugu tae turkis + yukraniyati + urdu + ujbek + vietnaamti + kangri cainati cainati, manḍarin sahaj cainati sahaj manḍarin cainati hirudlu cainati hirudlu manḍarin cainati + julu + + + + + + + + + @@ -335,13 +416,45 @@ CLDR data files are interpreted according to the LDML specification (http://unic jambiya jimbabve + + kelenḍr + ṭakã pormat + mila krm + ṭakã + veḍiti gila (12 vrses 24) + daḍi ḍikihin aaḍa + laṭini leka + sṅkya + gregoriyan kelenḍr barat jatiya kelenḍr + mānānka takã + ḍepalt yunikoḍ baga lẽ + pnbhi baga lẽ + samani udesya parin mānānka baga lẽ + 12 gṇṭati pddti (0 - 11) + 12 gṇṭati pddti (1–12) + 24 gṇṭati pddti (0 - 23) + 24 gṇṭati pddti (1 - 24) + meṭrik pddti + samrajyti aaṭini map pddti + aamerikati map pddti + arabic-bartiya nmbr + nkiaati arabic - bartiya nmbr + bngalī nmbr devnagrī nmbr + gujraṭī nmbr + gurumukī nmbr + knnaḍ nmbr veḍa kuṇpu nmbr + malayalam nmbr oḍiya nmbr + roman nmbr + roman mila kase nmbr + hirudulu tamiḷ nmbr + tamiḷ nmbr telugū nmbr @@ -412,6 +525,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic + B h + B h:mm + B h:mm:ss + E B h:mm + E B h:mm:ss GGGGG d/M/y G d MMM y G E, d MMM y @@ -431,6 +549,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic QQQQ G y + + B h – B h + B h–h + + + B h:mm – B h:mm + B h:mm–h:mm + B h:mm–h:mm + M–M @@ -597,14 +724,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 4th kuarṭr - - - Q1 - Q2 - Q3 - Q4 - - @@ -711,7 +830,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic B h - >B h:mm + B h:mm B h:mm:ss E B h:mm E B h:mm:ss @@ -728,6 +847,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic d MMM E, d MMM d MMMM + MMMM 'tã' 'vara' W M/y d/M/y E, d/M/y @@ -737,6 +857,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic MMMM y QQQ y QQQQ y + Y 'tã' 'vara' w @@ -1594,9 +1715,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ulanbaṭar - - koibalsan - mkao @@ -2337,13 +2455,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic cin delāiṭ belā - - - koibālsn belā - koibālsn mānānka belā - koibālsn kār~ā belā - - krismās dīp belā @@ -2582,6 +2693,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic jāpān ḍelāiṭ belā + + + kājākstān belā + + weḍāhapu kājākstān belā @@ -3000,6 +3116,38 @@ CLDR data files are interpreted according to the LDML specification (http://unic #,##,##0.### + + + 0 hjar + 00 hjar + 000 hjar + 0 million + 00 million + 000 million + 0 billion + 00 billion + 000 billion + 0 trillion + 00 trillion + 000 trillion + + + + + 0 h + 00 h + 000 h + 0 mi + 00 mi + 000 mi + 0 bi + 00 bi + 000 bi + 0 tri + 00 tri + 000 tri + + @@ -3011,7 +3159,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic #,##0.00;(#,##0.00) - {0} {1} + + + ¤0h + ¤00h + ¤000h + ¤0mi + ¤00mi + ¤000mi + ¤0bi + ¤00bi + ¤000bi + ¤0tri + ¤00tri + ¤000tri + + @@ -3052,10 +3215,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}, aadtẽ {1} {0} aaḍẽ {1} - - {0}, {1} - {0}, {1} - {0} {1} {0} {1} diff --git a/make/data/cldr/common/main/kxv_Deva.xml b/make/data/cldr/common/main/kxv_Deva.xml index 70a746e6a45..de14aea4c20 100644 --- a/make/data/cldr/common/main/kxv_Deva.xml +++ b/make/data/cldr/common/main/kxv_Deva.xml @@ -13,18 +13,450 @@ CLDR data files are interpreted according to the LDML specification (http://unic + आप्रिकान्स + अम्हेरी + आरॉबिक + पुनिजुगो मानांकॉ आरॉबिक + आसामीस् + अज़रबेजानी + अज़ेरी + बेलारूसी + बुल्गारियाति + बंगाली + तिब्बती + बोडो + बाॅस्नियाती + कातालान + चेरोकी + चेक + डेनिस + जर्मन + ऑस्ट्रियाति जर्मन + स्विस हाइ ति जर्मन + डोगरी + ग्रीक इंराजी + ऑस्ट्रेलियाति इंराजी + कनाडाति इंराजी + ब्रिटिस इंराजी + यू॰के॰ राज्यॉ ति इंराजी + अमेरिकी इंराजी + स्पानिस + लातिन आमेरिका ति स्पेनिस + यूरोपीय ति स्पेनिस + मेक्सिको ति स्पेनिस + एस्टोनियाति + बास्क + पर्सियन + डॉरि + प़िनिस + प़िलिपीनो + प़्रेंच + कनाडाति प़्रेंच + स्विस प़्रेंच + ग्यालिसियन + गुजराटी + हिब्रू + हिन्दी + हिन्दी (लातिन) + क्रोएसियाति + हंगेरियाति + आर्मेनियाति + इंडोनेसियाति + आइसलेंड िक + इताली ती + जापानीज + जॉर्जियाति + कज़ाक़ + कमेर + कन्नड़ + कोरियाति + कोंकणी + कस्मीरी कुवि + किर्गीज़ + लाओ + लितुआनियाति + लातवियाति + मेतिली + मकदूनियाति + मलयालम + मंगोलियाति + मणिपुरी + मराठी + मलय + बर्मीज़ + नॉर्वेजियाति बोकमाल + नेपाली + डच + प़्लेमिस + उड़िया + पंजाबी + पोलिस + पुर्तगाली + ब्राज़ीली पुर्तगाली + यूरोपीय पुर्तगाली + रोमानियाति + मोलडावियन + रुसिया ति + संस्कृत + संताली + सिंधी + सिंहली + स्लोवाक + स्लोवेनियाति + अल्बानियाति + सर्बियाति + स्वीडिस + स्वाहिली + कांगो स्वाहिली + तमिल + तेलुगू + ताई + तुर्की + यूक्रेनियाति + उर्दू + उज़्बेक + वियतनामी + चीनी + चीनी, मेंडेरिन + साॅहाॅजाॅ चीनी + साॅहाॅजाॅ मेंडेरिन चीनी + हिरूदोल्लु चीनी + हिरूदोल्लु मेंडेरिन चीनी + ज़ुलू + + + + + + + + + + + + + + + + + + राजि, पृती + लातिन आमेरिका ति + अंडोरा + आण्डी ति अरब एमिरेट्स + अप़गानिस्तान + एंटिगुआ ऑड़े बरबुडा + एंग्विला + अल्बानिया + आर्मेनिया + अंगोला + अंटार्कटिका + अर्जेंटीना + आमेरिका-ति समोआ + ऑस्ट्रिया + ऑस्ट्रेलिया + अरूबा + एलेंड द्वीप + अज़रबेजान + बोस्निया ऑड़े हर्ज़ेगोविना + बारबाडोस + बांग्लादेस + बेल्जियम + बुर्किना प़ासो + बुल्गारिया + बहरीन + बुरुंडी + बेनिन + सेंट बार्तेलेमी + बरमूडा + ब्रूनेई + बोलीविया + केरिबियन नीदरलेंड + ब्राज़ील + बहामास + बुटान + बोत्स्वाना + बेलारूस + बेलीज़ + कानाडा + कोकोस (कीलिंग) द्वीप + कांगो - किंसासा + कांगो (डीआरसी) + मध्य अप़्रीकी गणराज्य + कांगो – ब्राज़ाविल + कांगो (गणराज्य) + स्विट्ज़रलेंड + कोट डी वोआ + आइवरी कोस्ट + कुक द्वीप + चिली + केमरून + चीन + कोलंबिया + कोस्टारिका + क्यूबा + केप वर्ड + क्यूरासाओ + क्रिसमस द्वीप + साइप्रस + चेकिया + चेक गणराज्य + जर्मनी + डिएगो गार्सिया + जिबूती + डेनमार्क + डोमिनिका + डोमिनिकन गणराज्य + अल्जीरिया + सेउटा ऑड़े मेलिला + इक्वाडोर + एस्टोनिया + मिस्र + वेड़ा कुण्पु सहारा + इरिट्रिया + स्पेन + इतियोपिया + प़िनलेंड + प़िजी + प़ॉकलेंड द्वीप + प़ॉकलेंड द्वीप (इज़्लास माल्विनास) + माइक्रोनेसिया + पेरो दीप + प़्रांस + ग्याबॉन + यूनाइटेड किंगडम + यू॰के॰ + ग्रेनाडा + जॉर्जिया + प़्रेंच गुयाना + गर्नसी + गाना + जिब्राल्टर + ग्रीनलेंड + गाम्बिया + गिनी + ग्वाडेलूप + इक्वेटोरियल गिनी + यूनान + दकिण जॉर्जिया अड़े दकिण सैंडविच दीप + ग्वाटेमाला + गुआम + गिनी-बिसाउ + गुयाना + हाँग काँग (एस ए आर चीन) + हाँग काँग + होंडूरास + क्रोएसिया + हाइती + हंगरी + केनेरी द्वीप + इंडोनेसिया + आयरलेंड + इज़राइल + आइल ऑप़ मेन बारत + ब्रिटिस हिंद सामुद्रि हांडि + इराक + ईरान + आइसलेंड + इटली + जर्सी + जमेका + जॉर्डन + जापान + केन्या + किर्गिज़स्तान + कंबोडिया + किरिबाती + कोमोरोस + सेंट किट्स ऑड़े नेविस + उतर कोरिया + दॉकिण कोरिया + कुवेत + केमेन द्वीप + कज़ाकस्तान + लाओस + लेबनान + सेंट लूसिया + लिक्टेन्स्टीन + स्रीलंका + लाइबेरिया + लेसोतो + लितुआनिया + लग्ज़मबर्ग + लातविया + लीबिया + मोरक्को + मोनाको + मॉल्डोवा + मोंटेनेग्रो + सेंट मार्टिन + मेडागास्कर + मार्सल द्वीप + उतॉरॉ मकदूनिया + माली + म्यांमार (बर्मा) + मंगोलिया + मकाऊ (एस ए आर चीन) + मकाऊ + उतॉरॉ मारियाना द्वीप + मार्टीनिक + मॉरिटानिया + मोंटसेरात + माल्टा + मॉरीसस + मालदीप + मलावी + मेक्सिको + मलेसिया + मोज़ांबिक + नामीबिया + न्यू केलेडोनिया + नाइजर + नॉरप़ॉक द्वीप + नाइजीरिया + निकारागुआ + नीदरलेंड + नॉर्वे + नेपाल + नाउरु + नीयू + न्यूज़ीलेंड + ओमान + पनामा + पेरू + प़्रेंच पोलिनेसिया + पापुआ न्यू गिनी + प़िलिपींस + पाकिस्तान + पोलेंड + सेंट पिएरे ऑड़े मिक्वेलान + पिटकेर्न द्वीप + पोर्टो रिको + प़िलिस्तीनी क्षेत्र + प़िलिस्तीन + पुर्तगाल + पलाऊ + पराग्वे + क़तर + रियूनियन + रोमानिया + सर्बिया + रूस + र्-वांडा + सऊदी अरब + सोलोमन द्वीप + सेसेल्स + सूडान + स्वीडन + सिंगापुर + सेंट हेलेना + स्लोवेनिया + स्वालबार्ड ऑड़े जान मायेन + स्लोवाकिया + सिएरा लियोन + सेन मेरीनो + सेनेगल + सोमालिया + सूरीनाम + दॉकिण सूडान + साओ टोम ऑड़े प्रिंसिपे + अल सल्वाडोर + सिंट माऽरतेन + सीरिया + एस्वाटिनी + स्वाज़ीलेंड + तुर्क ऑड़े केकोज़ द्वीप + चाड + प्रेंच दकिनी टेरिटोरी + टोगो + ताईलेंड + तजाकिस्तान + तोकेलाउ + तिमोर-लेस्त + वेड़ा हॉपु तिमोर + तुर्कमेनिस्तान + ट्यूनीसिया + टोंगा + तुर्की + त्रिनिदाद ऑड़े टोबेगो + तुवालू + ताइवान + तंज़ानिया + यूक्रेन + युगांडा + यू॰एस॰ आउटलाइंग द्वीप + आण्डि ति राज्यॉ + यू॰एस॰ + उरूग्वे + उज़्बेकिस्तान + बाटिकान सिटी + सेंट विंसेंट ऑड़े ग्रेनाडाइंस + वेनेज़ुएला + ब्रिटिस वर्जिन द्वीप + यू॰एस॰ वर्जिन द्वीप + वियतनाम + वनुआतू + वालिस ऑड़े प़्यूचूना + समोआ + कोसोवो + यमन + मायोते + दॉकिण आप़्रीका + ज़ाम्बिया + ज़िम्बाब्वे + + केलेंडर + टाकाँ पॉरॉमाटो + मिला क्रॉमॉ + टाकाँ + वेड़ाति गिला (१२ ऑड़े २४) + धाड़ी लिनी आड़ा + लाटिनि लेका + सॉङ्क्या + + + ग्रेगोरियन केलेंडर + बारॉतॉ जातियॉ केलेंडर + मानांकॉ टाकाँ रुपॉ + डिप़ॉल्ट यूनिकोड सॉर्ट लेँ + फॉन्-वॉहि सॉर्ट लेँ + सामानि-उद्देस्य पारिनॉ + मानांकॉ सॉर्ट लेँ + १२ गॉन्ता ति पॉद्दॉति (0–११) + १२ गॉन्ता ति पॉद्दॉति (१–१२) + २४ गॉन्ता ति पॉद्दॉति (0–२३) + २४ गॉन्ता ति पॉद्दॉति (१–२४) + मेट्रिक पॉद्दॉति + सामराज्यॉ ति आटिनि मापॉ पॉद्दॉति + आमेरिका ति मापॉ पॉद्दॉति + आरॉबिक-बारतीय नॉम्बर + नॉकि-आति आरॉबिक-बारतीय नॉम्बर + बंगाली नॉम्बर + देवनागरी नॉम्बर + गुजराती नॉम्बर + गुरमुकी नॉम्बर + कन्नड़ नॉम्बर + वेड़ा कुण्पु नॉम्बर + मलयालम नॉम्बर + ऑड़िया नॉम्बर + रोमन नॉम्बर + रोमन मिला गिरा नॉम्बर + हिरूदोल्लु तामिल नॉम्बर + तामिल नॉम्बर + तेलुगू नॉम्बर + मीट्रिक यूके @@ -43,9 +475,161 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + + + EEEE, MMMM d, y G + + + + + G d MMMM y + + + + + G d MMM y + + + + + G d/M/y + + + + + + + {1} आँ {0} + + + + + {1} आँ {0} + + + + + {1}, {0} + + + + + {1}, {0} + + + + B h + B h:mm + B h:mm:ss + E B h:mm + E B h:mm:ss + d E + G d MMM y + G E, d MMM y + M + d/M + E, d/M + MMM + d MMM + E, d MMM + GGGGG M/y + G d/M/y + G E, d/M/y + G MMM y + G d MMM y + G E, d MMM y + QQQ G y + QQQQ G y + + + + B h – B h + B h–h + + + B h:mm – B h:mm + B h:mm–h:mm + B h:mm–h:mm + + + M–M + + + d/M – d/M + d/M – d/M + + + E, d/M – E, d/M + E, d/M – E, d/M + + + MMM–MMM + + + d–d MMM + d MMM – d MMM + + + E, d MMM – E, d MMM + E, d MMM – E, d MMM + + + y–y G + + + M/y – M/y G + M/y – M/y G + + + d/M/y – d/M/y G + d/M/y – d/M/y G + d/M/y – d/M/y G + + + E, d/M/y – E, d/M/y G + E, d/M/y – E, d/M/y G + E, d/M/y – E, d/M/y G + + + MMM–MMM y G + MMM y – MMM y G + + + d – d MMM y G + d MMM – d MMM y G + d MMM y – d MMM y G + + + E, d MMM – E, d MMM y G + E, d MMM – E, d MMM y G + E, d MMM y – E, d MMM y G + + + MMMM–MMMM y G + MMMM y – MMMM y G + + + + + + पुसु + माहा + पागु + हिर्रे + बेसे + जाट्टा + आसाड़ी + स्राबाँ + बाॅदो + दासारा + दिवी + पान्डे + पुसु लेञ्जु माहाका लेञ्जु @@ -61,9 +645,52 @@ CLDR data files are interpreted according to the LDML specification (http://unic पान्डे लेञ्जु + + + पु + मा + पा + हि + बे + जा + + स्रा + बाॅ + दा + दि + पा + + + + आदि + साॅम्मा + मान्गा + पूदा + लाक्की + सुकुरु + सान्नि + + + + साॅ + मा + पू + ला + सु + सा + + + + साॅ + मा + पू + ला + सु + सा + आदि वारा साॅम्वारा @@ -74,32 +701,2423 @@ CLDR data files are interpreted according to the LDML specification (http://unic सान्नि वारा + + + + साॅ + मा + पू + ला + सु + सा + + + + + + क १ + क २ + क ३ + क ४ + + + १स्ट क्वाटर + २ क्वाटर + ३र्ड क्वाटर + ४थ क्वाटर + + + + + ए एम + पी एम + + + ए एम + पी एम + + + ए एम + पी एम + + + + + ए एम + पी एम + ए एम पी एम + + + बिफोर क्राइस्ट + बिफोर कॉमन एरा + अन्नो डोमिनी + कॉमन एरा + + + बिसि + बिसि-इ + ए-डि + सि-इ + + + + + + EEEE, d MMMM y + + + + + d MMMM y + + + + + d MMM y + + + + + d/M/yy + + + + + + + h:mm:ss a zzzz + ahmmsszzzz + + + + + h:mm:ss a z + ahmmssz + + + + + h:mm:ss a + ahmmss + + + + + h:mm a + ahmm + + + + + + {1} आँ {0} + + + + + {1} आँ {0} + + + + + {1}, {0} + + + + + {1}, {0} + + + B h + B h:mm + B h:mm:ss + E B h:mm + E B h:mm:ss + E d + y G + MMM G y + d MMM y G + E, d MMM y G + d/M + E, d/M + d MMM + E, d MMM + d MMMM + MMMM ताँ वारा W + M/y d/M/y + E, d/M/y + MMM y d MMM y + E, d MMM y + MMMM y + QQQ y + QQQQ y + Y ताँ वारा w + + + B h – B h + B h–h + + + B h:mm – B h:mm + B h:mm–h:mm + B h:mm–h:mm + + + M–M + + + d/M – d/M + d/M – d/M + + + E, d/M – E, d/M + E, d/M – E, d/M + + + MMM–MMM + + + d–d MMM + d MMM – d MMM + + + E, d MMM – E, d MMM + E, d MMM – E, d MMM + + + M/y – M/y + M/y – M/y + + + d/M/y – d/M/y + d/M/y – d/M/y + d/M/y – d/M/y + + + E, d/M/y – E, d/M/y + E, d/M/y – E, d/M/y + E, d/M/y – E, d/M/y + + + MMM–MMM y + MMM y – MMM y + + + d–d MMM y + d MMM – d MMM y + d MMM y – d MMM y + + + E, d MMM – E, d MMM y + E, d MMM – E, d MMM y + E, d MMM y – E, d MMM y + + + MMMM – MMMM y + MMMM y – MMMM y + + + + + जुगाॅ + + + बार्सा + + + बार्सा + + + तिनिमासा + + + तिनिमासा + + + लेञ्जु + + + ले + + + वारा + + + वा + + + दिना + रा-आला + इञ्जु + वि-ए + + + दिना + + + वारा ति दिना + + + ए-एम/पी-एम + + + बेला + + + बे + + + मिनिट + + + मि + + + सेकेन्ड + + + से + + + बेला मुट्हा + + {0} बेला {0} मानांकॉ बेला {0} डेलाइट बेला + + पुण्-आँऽ ति गाड़ा + + + अंडोरा + + + दुबति + + + काबुल + + + एंटीगुआ + + + एंग्विला + + + टाइरेन + + + येरेवान + + + लुआंडा + + + रोथेरा + + + पॉमर + + + ट्रोल + + + स्योवा + + + मॉसन + + + डेविस + + + वोस्तोक + + + केसी + + + ड्यूमोंट डी अर्विले + + + म्याकमुर्डो + + + रियो गालेगोस + + + मेंडोज़ा + + + स्यान ह्वान + + + उसुआइया + + + ला रिओजा + + + स्यान लूति + + + काटामार्का + + + साल्टा + + + जुजोए + + + टोकूमन + + + कोर्डोबा + + + ब्यूनस आयरस + + + पागो पागो + + + विएना + + + पर्थ + + + यूक्ला + + + डार्विन + + + एडिलेड + + + ब्रोकन हिल + + + मेलबोर्न + + + होबार्ट + + + लिंडेमान + + + सिडनी + + + ब्रिस्बन + + + मक्वारी + + + लॉर्ड होव + + + अरूबा + + + मारियाहैम + + + बाकु + + + साराजेवो + + + बारबाडोस + + + ढाका + + + ब्रूसेल्स + + + औगाडोगू + + + सोप़िया + + + बहरीन + + + बुजुंबूरा + + + पोर्टो-नोवो + + + सेंट बार्तेलेमि + + + बरमूडा + + + ब्रूनेति + + + ला पाज़ + + + क्रालेन्डिजिक + + + तिरुनेपे + + + रियो ब्रांको + + + पोर्टो वेल्हो + + + बोआ विस्ता + + + मनोस + + + क्यूआबा + + + सेन्टारेम + + + क्याम्पो ग्रांडे + + + बेलेम + + + आराग्वेना + + + साओ पाउलो + + + बहिया + + + प़ोर्टालेज़ा + + + मेसीओ + + + रेसाइप़ + + + नोरोन्हा + + + नासाउ + + + थिंपू + + + गाबोरोन + + + मिंस्क + + + बेलीज़ + + + डॉसन + + + व्हाइटहोर्स + + + इनूविक + + + व्यान्कूवर + + + प़ोर्ट नेल्सन + + + डॉसन क्रीक + + + क्रेस्टन + + + एडमंटन + + + स्विप़्ट करंट + + + केम्ब्रिज बे + + + रेजिना + + + विनीपेग + + + रिसोल्यूट + + + रेंकिन इनलेट + + + अटिकोकान + + + टोरंटो + + + इकालुतिट + + + मोंकटन + + + हेलिपेक्स + + + गूस बे + + + ग्लेस बे + + + ब्लां-सेबलोन + + + सेंट जॉन्स + + + कोकोस + + + किंसासा + + + लुबुमबासी + + + बांगुइ + + + ब्राज़ाविले + + + ज़्यूरिक़ + + + अबिदजान + + + रारोटोंगा + + + तिस्टर + + + पुंटा एरिनास + + + सेंतिआगो + + + डूआला + + + उरूम्की + + + संघाति + + + बोगोटा + + + कोस्टा रिका + + + हवाना + + + केप वर्ड + + + कुराकाओ + + + क्रिसमस + + + निकोसिया + + + प़ामागुस्ता + + + प्राग + + + ब्यूसिनजेन + + + बर्लिन + + + जिबूती + + + कोपेनहेगन + + + डोमिनिका + + + सेंटो डोमिंगो + + + अल्जीयर्स + + + गेलापागोस + + + ग्वायाकील + + + तेलिन + + + कायरो + + + अल आइयून + + + अस्मारा + + + क्यानेरी + + + सेउटा + + + म्याड्रिड + + + अदीस अबाबा + + + हेलसिंकी + + + प़िजी + + + स्ट्यानली + + + चक + + + पोनपेति + + + कोसराए + + + प्यारो + + + पेरिस + + + लिब्रेविले + + + लंदन + + + ग्रेनाडा + + + ट्-बिलिसि + + + कायेन + + + गर्नसी + + + एक्रा + + + जिब्राल्टर + + + तुले + + + नुक + + + इटोकोर्टोरमिट + + + डेनमार्कसॉन + + + ब्यान्जुल + + + कोनाक्री + + + ग्वाडेलोप + + + मलाबो + + + एतेन्स + + + दाॅकिणाॅ जाॅर्जिया + + + ग्वाटेमाला + + + गुआम + + + बिसाऊ + + + गयाना + + + हाँग काँग + + + टेगुसिगल्पा + + + ज़ाग्रेब + + + पोर्ट-ऑ-प्रिंस + + + बुडापेस्ट + + + जकार्ता + + + पोंटीयांक + + + मकस्सर + + + जयापुरा + + + डबलिन + + + येरुसलेम + + + आइल ऑप् म्यान + + + कोलकाता + + + चागोस + + + बगदाद + + + तेहरान + + + रेक्याविक + + + रोम + + + जर्सी + + + जमाइका + + + अम्मान + + + टोक्यो + + + नाइरोबि + + + बिस्केक + + + पनॉम पेन्ह + + + केंटन + + + किरीतिमाति + + + टारावा + + + कोमोरो + + + सेंट किट्स + + + प्योंगयांग + + + सिओल + + + कुवेत + + + केम्यान + + + अक्ताउ + + + ओरल + + + एतराउ + + + अक्टोबे + + + कोस्टाने + + + किजिलॉर्डा + + + अल्माटी + + + विएनतियान + + + बेरुत + + + सेंट लूसिया + + + वादुज़ + + + कोलंबो + + + मोनरोविया + + + मासेरू + + + विल्नियस + + + लक्ज़मबर्ग + + + रीगा + + + त्रिपोली + + + कासाब्लांका + + + मोनाको + + + चिसीनाउ + + + पोड्गोरिका + + + मेरिगोट + + + एंटानानरीवो + + + क्वाज़ालीन + + + माजुरो + + + स्कोप्ये + + + बामाको + + + यांगॉन + + + होव्ड + + + उलानबातर + + + मकाऊ + + + सायपान + + + मार्टिनिक + + + नुआकचॉट + + + मोंटसेरात + + + माल्टा + + + मॉरीसस + + + मालदीव + + + ब्लांटायर + + + तिजुआना + + + हर्मोसिल्लो + + + माज़ाटलान + + + चिहुआहुआ + + + बेहिया बांडेरास + + + ओकाजीनागा + + + मोंटेरेरी + + + मेक्सिको सिटी + + + माटामोरोस + + + मेरिडा + + + क्यानकुन + + + कुआलालंपुर + + + कूचिंग + + + मापुटो + + + विंडहोक + + + नॉमिया + + + नियामी + + + नॉरप़ॉक + + + लागोस + + + मानागुआ + + + एम्स्टर्डम + + + ओस्लो + + + काठमांडू + + + नाॅउरु + + + नीयू + + + च्याथम + + + ऑकलेंड + + + मस्कट + + + पनामा + + + लीमा + + + ताहिती + + + मार्केसस + + + ग्यामबियर + + + पोर्ट मोरेस्बी + + + बोगनविले + + + मनीला + + + कराची + + + वॉरसॉ + + + मिकेलॉन + + + पिटकेर्न + + + पोर्टो रिको + + + गाज़ा + + + हेब्रोन + + + अज़ोरेस + + + मडेरा + + + लिस्बन + + + पलाऊ + + + एसनसियॉन + + + कतर + + + रीयूनियन + + + बुकारेस्ट + + + बेलग्रेड + + + कालीनिनग्राड + + + मॉस्को + + + वोल्गोग्राड + + + सारातोव + + + आस्ट्राकान + + + उल्यानोव्स्क + + + किरोव + + + समारा + + + येकातेरिनबर्ग + + + ओम्स्क + + + नोवोसिबिर्स्क + + + बर्नोल + + + तोम्स्क + + + नोवोकुज़्नेत्स्क + + + क्रास्नोयार्स्क + + + इर्कुत्स्क + + + त्सिता + + + याकूत्स्क + + + व्लादिवोस्तोक + + + काडिंगा + + + साकालिन + + + यूस्ट–नेरा + + + मागादान + + + स्रेद्निकोलिमस्क + + + कमचत्का + + + अनाडिर + + + किगाली + + + रियाद + + + ग्वाडलकनाल + + + माहे + + + कार्तुम + + + स्टॉकहोम + + + सिंगापुर + + + सेंट हेलेना + + + ल्यूबेलजाना + + + लॉन्गयरब्येन + + + ब्रातिस्लावा + + + प़्रीटाउन + + + सैन मारीनो + + + डकार + + + मोगादिसु + + + पारामारिबो + + + जुबा + + + साओ टोम + + + अल सल्वाडोर + + + लोअर प्रिंसेस क्वार्टर + + + दमास्कस + + + म्-बाबाने + + + ग्रांड टर्क + + + द्जामीना + + + करगुलेन + + + लोम + + + ब्यांगकॉक + + + दुसांबे + + + प़ाकाओप़ो + + + डिलि + + + अस्गाबात + + + ट्यूनिस + + + टोंगाटापू + + + इस्तांबुल + + + पोर्ट ऑप़ स्पेन + + + प़्यूनाप़ुटी + + + तातिपेति + + + दार अस सलाम + + + कीव + + + सिम्प़ेरोपोल + + + कंपाला + + + मिडवे + + + वेक + + + अडक + + + नोम + + + एंकरेज + + + याकूटाट + + + सिट्का + + + ज्यूनाउ + + + मेट्लेकाट्ला + + + लॉस एंजिल्स + + + बॉइसी + + + प़ीनिक्स + + + डेनवर + + + ब्यूला, उतॉरॉ डकोटा + + + न्यू सालेम, उतॉरॉ डकोटा + + + मादिनी उतॉरॉ डकोटा + + + सिकागो + + + मेनोमिनी + + + विंसेनेस, इंडियाना + + + पीटर्सबर्ग, इंडियाना + + + टेल सिटी, इंडियाना + + + नॉक्स, इंडियाना + + + विनामेक, इंडियाना + + + मारेंगो, इंडियाना + + + इंडियानापोलिस + + + लुइसविले + + + वेवे, इंडियाना + + + मोंटीसेलो, केंटकी + + + डेट्रॉयट + + + न्यूयॉर्क + + + मोंटेवीडियो + + + समरकंद + + + तासकंत + + + वेटिकन + + + सेंट विंसेंट + + + काराकस + + + टोर्टोला + + + सेंट तॉमस + + + हो ची मिन्ह सिटी + + + एप़ेट + + + वालिस + + + एपिया + + + आदेन + + + मायोत्ते + + + जोहांसबर्ग + + + लुसाका + + + हरारे + + + + आपगानिस्तान बेला + + + + + मादिनी आप्रिका बेला + + + + + वेड़ा हॉपु आप्रिका बेला + + + + + दक्षिण आप्रिका मानांकॉ बेला + + + + + पस्चिम आप्रिका बेला + पस्चिम आप्रिका मानांकॉ बेला + पस्चिम आप्रिका काराँ मासा बेला + + + + + अलास्का बेला + अलास्‍का मानांकॉ बेला + अलास्‍का डेलाइट बेला + + + + + अमेज़न बेला + अमेज़न मानांकॉ बेला + अमेज़न काराँ मासा बेला + + + + + मादिनी बेला + मादिनी मानांकॉ बेला + मादिनी डेलाइट बेला + + + + + वेड़ा हॉपु बेला + वेड़ा हॉपु मानांकॉ बेला + वेड़ा हॉपु डेलाइट बेला + + + + + हॉर्का बेला + हॉर्का मानांकॉ बेला + हॉर्का डेलाइट बेला + + + + + पेसिपिक बेला + पेसिपिक मानांकॉ बेला + पेसिपिक डेलाइट बेला + + + + + एपिआ बेला + एपिआ मानांकॉ बेला + एपिआ डेलाइट बेला + + + + + अरब बेला + अरब मानांकॉ बेला + अरब डेलाइट बेला + + + + + अर्जेंटीना बेला + अर्जेंटीना मानांकॉ बेला + अर्जेंटीना काराँ मासा बेला + + + + + वेड़ा कुण्पु अर्जेंटीना बेला + वेड़ा कुण्पु अर्जेंटीना मानांकॉ बेला + वेड़ा कुण्पु अर्जेंटीना काराँ मासा बेला + + + + + आर्मेनिया बेला + आर्मेनिया मानांकॉ बेला + आर्मेनिया काराँ मासा बेला + + + + + अटलांटिक बेला + अटलांटिक मानांकॉ बेला + अटलांटिक डेलाइट बेला + + + + + मादिनी ऑस्ट्रेलियाति बेला + ऑस्‍ट्रेलियाति मादिनी मानांकॉ बेला + ऑस्‍ट्रेलियाति मादिनी डेलाइट बेला + + + + + ऑस्‍ट्रेलियाति मादिनी वेड़ा कुण्पु बेला + ऑस्‍ट्रेलियाति मादिनी वेड़ा कुण्पु मानांकॉ बेला + ऑस्‍ट्रेलियाति मादिनी वेड़ा कुण्पु डेलाइट बेला + + + + + वेड़ा हॉपु ऑस्ट्रेलिया बेला + ऑस्‍ट्रेलियाति वेड़ा हॉपु मानांकॉ बेला + ऑस्‍ट्रेलियाति वेड़ा हॉपु डेलाइट बेला + + + + + वेड़ा कुण्पु ऑस्ट्रेलिया बेला + ऑस्ट्रेलियाति वेड़ा कुण्पु मानांकॉ बेला + ऑस्ट्रेलियाति वेड़ा कुण्पु डेलाइट बेला + + + + + अजरबाइजान बेला + अजरबाइजान मानांकॉ बेला + अजरबाइजान काराँ मासा बेला + + + + + अज़ोरेस बेला + अज़ोरेस मानांकॉ बेला + अज़ोरेस काराँ मासा बेला + + + + + बांग्लादेस बेला + बांग्लादेस मानांकॉ बेला + बांग्लादेस काराँ मासा बेला + + + + + बुटान बेला + + + + + बोलीविया बेला + + + + + ब्राज़ीलिया बेला + ब्राज़ीलिया मानांकॉ बेला + ब्राज़ीलिया काराँ मासा बेला + + + + + ब्रूनेति दारूस्सलम बेला + + + + + केप वर्ड बेला + केप वर्ड मानांकॉ बेला + केप वर्ड काराँ मासा बेला + + + + + चामोरो मानांकॉ बेला + + + + + च्याताम बेला + च्याताम मानांकॉ बेला + च्याताम डेलाइट बेला + + + + + चिली बेला + चिली मानांकॉ बेला + चिली काराँ मासा बेला + + + + + चीन बेला + चीन मानांकॉ बेला + चीन डेलाइट बेला + + + + + क्रिसमस द्वीप बेला + + + + + कोकोस द्वीप बेला + + + + + कोलंबिया बेला + कोलंबिया मानांकॉ बेला + कोलंबिया काराँ मासा बेला + + + + + कुक द्वीप बेला + कुक द्वीप मानांकॉ बेला + कुक द्वीप आधा काराँ मासा बेला + + + + + क्यूबा बेला + क्यूबा मानांकॉ बेला + क्यूबा डेलाइट बेला + + + + + डेविस बेला + + + + + ड्यूमोंट डी अर्विले बेला + + + + + वेड़ा हॉपु तिमोर बेला + + + + + ईस्टर द्वीप बेला + ईस्टर द्वीप मानांकॉ बेला + ईस्टर द्वीप काराँ मासा बेला + + + + + इक्वाडोर बेला + + + + + मादिनी युरोप-ति बेला + मादिनी युरोप-ति मानांकॉ बेला + मादिनी युरोप-ति काराँ मासा बेला + + + + + वेड़ा हॉपु युरोप-ति बेला + वेड़ा हॉपु युरोप-ति मानांकॉ बेला + वेड़ा हॉपु युरोप-ति काराँ मासा बेला + + + + + ऑरॉ वेड़ा हॉपु युरोप-ति बेला + + + + + वेड़ा कुण्पु युरोप-ति बेला + वेड़ा कुण्पु युरोप-ति मानांकॉ बेला + वेड़ा कुण्पु युरोप-ति काराँ मासा बेला + + + + + पाक -लेंड द्वीप बेला + पाक -लेंड द्वीप मानांकॉ बेला + पाक -लेंड द्वीप काराँ मासा बेला + + + + + प़िजी बेला + प़िजी मानांकॉ बेला + प़िजी काराँ मासा बेला + + + + + प़्रेंच गुयाना बेला + + + + + दॉकिणॉ प़्रांस ऑड़े अंटार्कटिक बेला + + + + + ग्यालापागोस ति बेला + + + + + ग्याम्बीयर बेला + + + + + जॉर्जिया बेला + जॉर्जिया मानांकॉ बेला + जॉर्जिया काराँ मासा बेला + + + + + गिल्बर्ट द्वीप बेला + + ग्रीनविच मीन बेला + + + वेड़ा हॉपु ग्रीनलेंड बेला + वेड़ा हॉपु ग्रीनलेंड मानांकॉ बेला + वेड़ा हॉपु ग्रीनलेंड काराँ मासा बेला + + + + + वेड़ा कुण्पु ग्रीनलेंड बेला + वेड़ा कुण्पु ग्रीनलेंड मानांकॉ बेला + वेड़ा कुण्पु ग्रीनलेंड काराँ मासा बेला + + + + + गल्प मानांकॉ बेला + + + + + गुयाना बेला + + + + + हवाति–आल्यूसन बेला + हवाति–आल्यूसन मानांकॉ बेला + हवाति–आल्यूसन डेलाइट बेला + + + + + हाँग काँग बेला + हाँग काँग मानांकॉ बेला + हाँग काँग काराँ मासा बेला + + + + + होव्ड बेला + होव्ड मानांकॉ बेला + होव्ड काराँ मासा बेला + + + + + बारतीय मानांकॉ बेला + + + + + बारॉत काजा सामुद्री बेला + + + + + इंडोचाइना बेला + + + + + मध्य इंडोनेसिया बेला + + + + + वेड़ा हॉपु इंडोनेसिया बेला + + + + + वेड़ा कुण्पु इंडोनेसिया बेला + + + + + इरान बेला + इरान मानांकॉ बेला + तिरान डेलाइट बेला + + + + + इर्कुत्स्क बेला + इर्कुत्स्क मानांकॉ बेला + इर्कुत्स्क काराँ मासा बेला + + + + + इज़राइल बेला + इज़राइल मानांकॉ बेला + इज़राइल डेलाइट बेला + + + + + जापान बेला + जापान मानांकॉ बेला + जापान डेलाइट बेला + + + + + कज़ाकस्तान बेला + + + + + वेड़ा हॉपु कज़ाकस्तान बेला + + + + + वेड़ा कुण्पु कज़ाकस्तान बेला + + + + + कोरियाति बेला + कोरियाति मानांकॉ बेला + कोरियाति डेलाइट बेला + + + + + कोसराए बेला + + + + + क्रास्नोयार्स्क बेला + क्रास्नोयार्स्क मानांकॉ बेला + क्रास्नोयार्स्क काराँ मासा बेला + + + + + किर्गिस्‍तान बेला + + + + + लाइन द्वीप बेला + + + + + लॉर्ड होवे बेला + लॉर्ड होवे मानांकॉ बेला + लॉर्ड होवे डेलाइट बेला + + + + + मागादान बेला + मागादान मानांकॉ बेला + मागादान काराँ मासा बेला + + + + + मलेसिया बेला + + + + + मालदीव बेला + + + + + मार्केसस बेला + + + + + मार्सल द्वीप बेला + + + + + मॉरीसस बेला + मॉरीसस मानांकॉ बेला + मॉरीसस काराँ मासा बेला + + + + + माव्सन बेला + + + + + मेक्सिकोति पेसिपिक बेला + मेक्सिकोति पेसिपिक मानांकॉ बेला + मेक्सिकोति पेसिपिक डेलाइट बेला + + + + + उलान बटोर बेला + उलान बटोर मानांकॉ बेला + उलान बटोर काराँ मासा बेला + + + + + मॉस्को बेला + मॉस्को मानांकॉ बेला + मॉस्को काराँ मासा बेला + + + + + म्यांमार बेला + + + + + नॉउरु बेला + + + + + नेपाल बेला + + + + + न्यू केलेडोनिया बेला + न्यू केलेडोनिया मानांकॉ बेला + न्यू केलेडोनिया काराँ मासा बेला + + + + + न्यूज़ीलेंड बेला + न्यूज़ीलेंड मानांकॉ बेला + न्यूज़ीलेंड डेलाइट बेला + + + + + न्यूप़ाउंडलेंड बेला + न्यूप़ाउंडलेंड मानांकॉ बेला + न्यूप़ाउंडलेंड डेलाइट बेला + + + + + नीयू बेला + + + + + नॉरप़ॉक द्वीप बेला + नॉरप़ॉक द्वीप मानांकॉ बेला + नॉरप़ॉक द्वीप डेलाइट बेला + + + + + प़र्नांर्डो डे नोरोन्हा बेला + प़र्नांर्डो डे नोरोन्हा मानांकॉ बेला + प़र्नांर्डो डे नोरोन्हा काराँ मासा बेला + + + + + नोवोसिबिर्स्क बेला + नोवोसिबिर्स्क मानांकॉ बेला + नोवोसिबिर्स्क काराँ मासा बेला + + + + + ओम्स्क बेला + ओम्स्क मानांकॉ बेला + ओम्स्क काराँ मासा बेला + + + + + पाकिस्तान बेला + पाकिस्तान मानांकॉ बेला + पाकिस्तान काराँ मासा बेला + + + + + पलाउ बेला + + + + + पापुआ न्यू गिनी बेला + + + + + पैराग्वे बेला + पैराग्वे मानांकॉ बेला + पैराग्वे काराँ मासा बेला + + + + + पेरू बेला + पेरू मानांकॉ बेला + पेरू काराँ मासा बेला + + + + + प़िलिपीन बेला + प़िलिपीन मानांकॉ बेला + प़िलिपीन काराँ मासा बेला + + + + + प़ीनिक्स द्वीप बेला + + + + + सेंट पिएरे ऑड़े मिक्वेलान बेला + सेंट पिएरे ऑड़े मिक्वेलान मानांकॉ बेला + सेंट पिएरे ऑड़े मिक्वेलान डेलाइट बेला + + + + + पिटकेर्न बेला + + + + + पोनापे बेला + + + + + प्योंगयांग बेला + + + + + रीयूनियन बेला + + + + + रोथेरा बेला + + + + + सकालिन बेला + सकालिन मानांकॉ बेला + सकालिन काराँ मासा बेला + + + + + समोआ बेला + समोआ मानांकॉ बेला + समोआ डेलाइट बेला + + + + + सेसेल्स बेला + + + + + सिंगापुर बेला + + + + + सोलोमन द्वीप बेला + + + + + दक्षिणी जॉर्जिया बेला + + + + + सूरीनाम बेला + + + + + स्योवा बेला + + + + + ताहिती बेला + + + + + ताइपे बेला + ताइपे मानांकॉ बेला + ताइपे डेलाइट बेला + + + + + ताजिकिस्तान बेला + + + + + टोकेलाऊ बेला + + + + + टोंगा बेला + टोंगा मानांकॉ बेला + टोंगा काराँ मासा बेला + + + + + चुक बेला + + + + + तुर्कमेनिस्तान बेला + तुर्कमेनिस्तान मानांकॉ बेला + तुर्कमेनिस्तान काराँ मासा बेला + + + + + तुवालू बेला + + + + + उरुग्वे बेला + उरुग्वे मानांकॉ बेला + उरुग्वे काराँ मासा बेला + + + + + उज़्बेकिस्तान बेला + उज़्बेकिस्तान मानांकॉ बेला + उज़्बेकिस्तान काराँ मासा बेला + + + + + वनुआतू बेला + वनुआतू मानांकॉ बेला + वनुआतू काराँ मासा बेला + + + + + वेनेज़ुएला बेला + + + + + व्लादिवोस्तोक बेला + व्लादिवोस्तोक मानांकॉ बेला + व्लादिवोस्तोक काराँ मासा बेला + + + + + वोल्गोग्राड बेला + वोल्गोग्राड मानांकॉ बेला + वोल्गोग्राड काराँ मासा बेला + + + + + वोस्तोक बेला + + + + + वेक द्वीप बेला + + + + + वालिस ऑड़े प़्यूचूना बेला + + + + + याकुत्स्क बेला + याकुत्स्क मानांकॉ बेला + याकुत्स्क काराँ मासा बेला + + + + + येकातेरिनबर्ग बेला + येकातेरिनबर्ग मानांकॉ बेला + येकातेरिनबर्ग काराँ मासा बेला + + @@ -120,5 +3138,59 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + चीन ति युआन + चीन ति युआन + + + यूरो + यूरो + + + ब्रिटिस पाउंड स्टर्लिंग + ब्रिटिस पाउंड स्टर्लिंग + + + बारत ति टाकाँ + बारत ति टाकाँ + + + जापान ति येन + जापान ति येन + + + रूस ति रूबल + रूस ति रूबल + + + यूएस डॉलर + यूएस डॉलर + + + पुण्-आँऽति लेबुँ + पुण्-आँऽति लेबुँ + + + + + {0}, ऑड़े {1} + {0} ऑड़े {1} + + + {0}, आआतेँ {1} + {0} आआतेँ {1} + + + {0}, ऑड़े {1} + {0} ऑड़े {1} + + + {0} {1} + {0} {1} + {0} {1} + {0} {1} + + diff --git a/make/data/cldr/common/main/kxv_Orya.xml b/make/data/cldr/common/main/kxv_Orya.xml index 948e43892dd..13c2c599790 100644 --- a/make/data/cldr/common/main/kxv_Orya.xml +++ b/make/data/cldr/common/main/kxv_Orya.xml @@ -13,18 +13,447 @@ CLDR data files are interpreted according to the LDML specification (http://unic + ଆପ୍ରୀକାନ୍‍ସ + ଆମ୍‍ହେରି + ଆରବିକ + ପୁନି ଜୁଗ ମାନାଙ୍କ ଆରବିକ୍ + ଆସାମିଜ୍ + ଆଜେରବେଇଜାନି + ଅଜେରି + ବେଲାରୁଷିଆନ୍ + ବୁଲଗାରିଆନ୍ + ବଙ୍ଗାଲି + ତିବତି + ବଡ + ବସନିଆନ୍ + କାଟଲାନ୍ + ଚେରକୀ + ଚେକ୍ + ଡେନିସ୍ + ଜର୍ମାନ୍ + ଅଷ୍ଟ୍ରିଆ ତି ଜର୍ମାନ + ସ୍ୱିସ୍‌ ହାଇ ତି ଜର୍ମାନ + ଡଗ୍ରୀ + ଗ୍ରୀକ୍ ଇଂରାଜୀ + ଅଷ୍ଟ୍ରେଲିୟାତି ଇଂରାଜୀ + କାନାଡିୟାତି ଇଂରାଜୀ + ବ୍ରିଟିଶ୍‌ତି ଇଂରାଜୀ + ଯୁକ୍ତରାଜ୍ୟତି ଇଂରାଜୀ + ଆମେରିକାତି ଇଂରାଜୀ + ଯୁକ୍ତରାଷ୍ଟ୍ରତି ଇଂରାଜୀ + ସ୍ପାନିସ୍ + ଲାଟିନ୍‌ ଆମେରିକା ତି ସ୍ପେନିସ୍ + ୟୁରପୀୟାତି ସ୍ପେନିସ୍‌ + ମେକ୍ସିକତି ସ୍ପେନିସ୍‌ + ଏସ୍ଟନିଆ + ବାସ୍କ + ପର୍ସିୟାନ୍ + ଡରି + ପିନିସ୍ + ପିଲିପିନ + ପ୍ରେଞ୍ଚ‍ + କାନାଡାତି ପ୍ରେଞ୍ଚ‍ + ସ୍ୱିସ୍ ପ୍ରେଞ୍ଚ‍ + ଗଲସିଆତି + ଗୁଜୁରାଟି + ହିବ୍ରୁ + ହିନ୍ଦି + କ୍ରଏସିଆତି + ହଙ୍ଗେରୀୟାତି + ଆର୍ମେନିଆତି + ଇଣ୍ଡନେସୀୟା ତି + ଆଇସଲାଣ୍ଡିକ୍ + ଇଟାଲି ତି + ଜାପାନିଜ୍ + ଜର୍ଜିୟାତି + କାଜାକ୍ + କାମେର୍ + କାନ୍ନାଡ଼ା + କରିଆନ୍ ତି + କଂଙ୍କଣି + କାସ୍ମିର କୁୱି + କୀରଗୀଜ୍ + ଲାଅ + ଲିଥୁଆନିଆତି + ଲାଟବିଆତି + ମଇତିଲୀ + ମାସେଡୋନିଆ ତି + ମାଲାୟଲମ୍ + ମଙ୍ଗଲିୟ ତି + ମଣିପୁରୀ + ମରାଟୀ + ମଲୟ + ବର୍ମୀଜ୍ + ନରୱେଜିଆନ୍ ବୋକମଲ୍ + ନେପାଳୀ + ଡଚ୍ + ପେ୍ଲମିସ୍ + ଅଡ଼ିଆ + ପଞ୍ଜାବୀ + ପଲିସ୍ + ପର୍ତୁଗୀଜ୍‌ + ବ୍ରାଜିଲିଆନ୍ ପର୍ତୁଗୀଜ୍ + ୟୁରପ୍ ତି ପର୍ତୁଗୀଜ୍ + ରମାନିଆ ତି + ମଲଡୋଭିଆନ୍ ତି + ରୁଷିଆ ତି + ସଂସ୍କୃତ + ସାନ୍ତାଲି + ସିନ୍ଦୀ + ସିଂହଲା + ସ୍ଲବାକ୍ + ସ୍ଲବେନିଆ ତି + ଆଲବାନିଆନ୍ ତି + ସର୍ବିୟ ତି + ସ୍ୱିଡିସ୍ + ସ୍ୱାହିଲି + କଙ୍ଗ ସ୍ୱାହିଲି + ତାମିଲ୍ + ତେଲୁଗୁ + ତାଇ + ତୁର୍କିସ୍ + ୟୁକ୍ରାନିଆତି + ଉର୍ଦୁ + ଉଜବେକ୍ + ୱିଏତନାମ ତି + ଚାଇନା ତି + ଚାଇନା ତି, ମାଣ୍ଡାରିନ୍ + ସହଜ ଚୀନ + ସହଜ ମାଣ୍ଡାରିନ୍ ଚାଇନିଜ୍ + ହିରୁଦଲୁ ଚାଇନିଜ୍‌ + ହିରୁଦଲୁ ମାଣ୍ଡାରିନ୍ ଚାଇନିଜ୍ + ଜୁଲୁ + + + + + + + + + + + + + + + + ଲାଟିନ୍‌ ଆମେରିକା + ଆଣ୍ଡୋରା + ଆଣ୍ଡିତି ଆରବ ଏମିରେଟସ୍ + ଆପଗାନିସ୍ତାନ୍ + ଏଣ୍ଟିଗୁଆ ଅଡ଼େ ବାରବୁଦା + ଏଙ୍ଗ୍ୱିଲା + ଆଲବାନିଆ + ଆର୍ମେନିଆ + ଅଙ୍ଗଲା + ଆଣ୍ଟାର୍କଟିକା + ଅର୍ଜେଣ୍ଟିନା + ଅମେରିକା ତି ସମୱା + ଅଷ୍ଟ୍ରିଆ + ଅଷ୍ଟ୍ରେଲିଆ + ଅରୁବା + ଏଲେଣ୍ଡ + ଅଜେର୍‍‍ବାଇଜାନ୍ + ବସ୍ନିଆ ଅଡ଼େ ହର୍ଜଗୱିନା + ବାର୍‍ବଡସ + ବାଂଲାଦେଶ + ବେଲଜିୟମ୍ + ବୁର୍କିନା ପାସ୍ୱ + ବୁଲ୍‍ଗାରିଆ + ବହରେନ୍ + ବୁରୁନ୍ଦି + ବେନିନ୍ + ସେଣ୍ଟ ବାର୍ତେଲେମି + ବର୍‍ମୁଣ୍ଡା + ବ୍ରୂନେଇ + ବଲିୱିୟା + କାରିବିୟନ ନେଦରଲ୍ୟାଣ୍ଡସ୍ + ବ୍ରାଜିଲ୍ + ବାହାମାସ୍ + ବୁଟାନ + ବସ୍ଟୱାନା + ବେଲାରୂସ୍ + ବେଲିଜ୍ + କାନାଡା + କକସ୍ (କିଲିଂ) ଦିପ + କଙ୍ଗ-କିଂସାସା + କଙ୍ଗ(ଡିଆର୍‍ସି) + ମାଦିନି ଆପ୍ରିକା ରିପବ୍ଲିକ୍ + କଂଙ୍ଗ- ବ୍ରାଜାୱିଲି + କଂଙ୍ଗ (ରିପବ୍ଲିକ୍) + ସ୍ୱୀଜଅର୍‍ଲାଣ୍ଡ + କଟ ଡି ୱା + ଆଇୱରି କସ୍ଟ + କୁକ ଦିପ + ଚିଲି + କାମେରନ୍ + ଚିନ୍ + କଲମ୍ବିଆ + କସ୍ଟା ରିକା + କ୍ୟୁବା + କେପ୍ ୱଡ଼ + କ୍ୟୁରାସାଅ + କ୍ରିସ୍ଟମାସ୍ ଦିପ + ସାଇପ୍ରସ୍ + ଚେକିଆ + ଚେକ୍ ରିପବ୍ଲିକ୍ + ଜର୍ମାନି + ଡିଏଗ ଗାର୍ସିଆ + ଜିବୁତି + ଡେନମାର୍କ + ଡମିନିକା + ଡମିନିକା ତି ରିପବ୍ଲିକ୍ + ଅଲଜେରିଆ + ସେଅଟା ଅଡ଼େ ମେଲିଲା + ଇକ୍ୱାଡର + ଏସ୍ଟନିଆ + ଇଜିପ୍ଟ + ୱେଡ଼ାକୁଣ୍ପୁ ସାହାରା + ଇରିଟ୍ରିଆ + ସ୍ପେନ୍ + ଇତିୟପିଆ + ପିନ୍‍ଲାଣ୍ଡ + ପିଜି + ପାକ୍‍ଲାଣ୍ଡ ଦିପ + ପାକ୍‍ଲାଣ୍ଡ ଦିପ (ଇଜ୍ଲାସ ମାଲୱିନାସ) + ମାକ୍ରନେସିଆ + ପେରୋ ଦୀପ + ପ୍ରାନ୍ସ + ଗାବନ + ଇଉନାଇଟେଡ୍ କିଂଡମ୍ + ୟୁକେ + ଗ୍ରେନାଡା + ଜର୍ଜିଆ + ପ୍ରେଞ୍ଚ୍ ଗୁୟାନା + ଗର୍ନସି + ଗାନା + ଜିବ୍ରାଲଟର + ଗ୍ରୀନ୍ ଲାଣ୍ଡ + ଗାମ୍ବିଆ + ଗିନି + ଗ୍ୱାଡେଲୁପ + ଇକ୍ୟୁଏଟେରିୟଲ ଗିନି + ଗ୍ରିସ୍ + ଦକିନ ଜର୍ଜିଆ ଅଡ଼େ ଦକିନ ସାଣ୍ଡୱିଚ୍ ଦୀପ + ଗ୍ୱାଟେମାଲା + ଗୁଆମ୍ + ଗିନି ବିସାଉ + ଗୁୟାନା + ହଂଗ କଂଗ (ଏସଏଆର୍ ଚିନା) + ହଂଗ କଂଗ + ହଣ୍ଡୁରାସ + କ୍ରସିଆ + ହାଇତି + ହଙ୍ଗେରି + କେନାରି ଦିପ + ଇଣ୍ଡନେସିୟା + ଅଇରଲାଣ୍ଡ + ଇସରାଇଲ + ମାଣିସି ତା ଦିପ ବାରତ + ବ୍ରିଟିସ୍ ହିନ୍ଦ ସାମୁଦ୍ରି ହାନ୍ଦି + ଇରାକ + ଇରାନ + ଆଇସଲାଣ୍ଡ + ଇଟାଲି + ଜରସି + ଜାମାଇକା + ଜର୍ଡାନ + ଜାପାନ + କେନ୍ୟା + କିରଗିସ୍ତାନ + କମ୍ବଡିଆ + କିରିବାତି + କମରସ + ସେଣ୍ଟ. କିଟ୍ସ ଅଡ଼େ ନେବିସ + ଉତର କରିୟା + ଦକିଣ କରିୟା + କୁୱେତ୍ + କାଇମାନ ଦିପ + କାଜାକସ୍ତାନ + ଲାଅସ୍ + ଲେବନାନ + ସେଣ୍ଟ. ଲୁସିଆ + ଲିକ୍‍ଟନ୍‍ସ୍ଟାଇନ୍ + ସ୍ରି ଲଙ୍କା + ଲାଇବେରିଆ + ଲେସତ + ଲିତୁଆନିଆ + ଲଗ୍ଜମବର୍ଗ + ଲାତ୍‍ୱିୟା + ଲିବିୟା + ମରକ + ମନାକ + ମଲ୍‍ଡୱା + ମଣ୍ଟେନେଗ୍ର + ସେଣ୍ଟ ମାର୍ଟିନ + ମାଡ଼ାଗାସ୍କାର + ମାର୍ସାଲ ଦିପ + ଉତର ମାସାଡନିୟା + ମାଲି + ମିୟାଁମାର (ବର୍ମା) + ମଙ୍ଗଲିୟା + ମକାଉ ଏସଏଆର ଚିନା + ମକାଉ + ଉତର ମାରିୟାନ ଦିପ + ମାର୍ଟିନିକ୍ + ମଉରିଟାନିୟା + ମଣ୍ଟସେରେଟ + ମାଲ୍ଟା + ମରିସସ୍ + ମାଲଦୀପି + ମଲାୱି + ମେକ୍ସିକ + ମାଲେସିଆ + ମଜାମ୍ବିକ + ନାମିବିୟା + ନ୍ୟୁ କେଲେଡନିୟା + ନାଇଜର + ନର୍‍ପକ୍ ଦିପ + ନାଇଜେରିଆ + ନିକାରଗୁଆ + ନେଦରଲାଣ୍ଡ + ନରୱେ + ନେପାଲ + ନାଉରୁ + ନିୟୁ + ନିୟୁଜିଲାଣ୍ଡ + ଅମାନ + ପନମା + ପେରୁ + ପ୍ରେଞ୍ଚ୍ ପଲିନେସିୟା + ପପୁଆ ନିୟୁ ଗିନି + ପିଲିପାଇନ୍ସ + ପାକିସ୍ତାନ + ପଲାଣ୍ଡ + ସେଣ୍ଟ ପିଏରେ ଅଡ଼େ ମିକ୍ୱେଲାନ + ପିଟ୍‍କଇର୍ନ୍ ଦିପ + ପର୍ଟ ରିକ + ପାଲେସ୍ଟିଆତି ହାନ୍ଦି + ପାଲେସ୍ଟାଇନ + ପର୍ତୁଗାଲ + ପଲାଉ + ପରଗ୍ୱେ + କତର + ରିୟୁନିୟନ + ରମାନିଆ + ସର୍ବିୟା + ରୁସିଆ + ର୍‍ୱାଣ୍ଡା + ସାଉଦି ଆରବ + ସଲମନ ଦିପ + ସିସେଲ୍ସ + ସୁଡାନ + ସ୍ୱିଡେନ + ସିଙ୍ଗାପୁର + ସେଣ୍ଟ ହେଲେନ + ସ୍ଲବେନିଆ + ସ୍ୱାଲବାର୍ଡ ଅଡ଼େ ଜାନ ମାୟେନ + ସ୍ଲବାକିୟା + ସିଏରା ଲିୟନ + ସନ ମାରିନ + ସେନେଗାଲ + ସମାଲିଆ + ସୁରିନାମ + ଦକିଣ ସୁଡାନ + ସାଅ ଟମ ଅଡ଼େ ପ୍ରିନ୍ସିପେ + ଅଲ ସଲବାଡର + ସିଣ୍ଟ ମାର୍ଟିନ + ସିରିୟା + ଏସ୍ୱାଟିନି + ସ୍ୱାଜିଲାଣ୍ଡ + ତୁର୍କ ଅଡ଼େ କାଇକସ ଦିପ + ଚାଡ + ପ୍ରେଞ୍ଚ ଦକିନୀୟ ଟେରିଟୋରୀ + ଟଗ + ତାଇଲାଣ୍ଡ + ତାଜିକିସ୍ତାନ + ତକେଲାଉ + ତିମର-ଲେସ୍ତେ + ଇସ୍ଟ ତିମର + ତୁର୍କମେନିସ୍ତାନ + ଟ୍ୟୁନିସିୟା + ଟଙ୍ଗ + ତୁର୍କି + ତ୍ରିନିଡାଡ ଅଡ଼େ ଟବାଗ + ତୁୱାଲୁ + ତାଇୱାନ + ତାଞ୍ଜାନିୟା + ୟୁକ୍ରେନ୍ + ଉଗାଣ୍ଡା + ୟୁ ଏସ୍ ଆଉଟଲାଇଙ୍କ ଦିପ + ଆଣ୍ଡିତି ରାଜ୍ୟ + ୟୁ ଏସ୍ + ଉରୁଗ୍ୱେ + ଉଜବେକିସ୍ତାନ + ବାଟିକାନ୍ ସିଟି + ସେଣ୍ଟ ୱିନସେଣ୍ଟ ଅଡ଼େ ଗ୍ରିନାଡାଇନ୍ସ + ୱେନେଜୁଏଲ + ବ୍ରିଟିସ୍ ୱିରଜିନ ଦିପ + ୟୁ ଏସ ୱିରଜିନ ଦିପ + ୱିଏତନାମ + ୱାନୁଆତୁ + ୱାଲିସ ଅଡ଼େ ପୁଟୁନା + ସମୱା + କସୱ + ୟମନ + ମାୟତେ + ଦକିଣ ଆପ୍ରିକା + ଜାମ୍ବିୟା + ଜିମ୍ବାୱେ + + କେଲେଣ୍ଡର + ଟାକାଁ ପରମାଟ + ମିଲା କ୍ରମ + ଟାକାଁ + ୱେଡ଼ାତି ଗିଲା (୧୨ ଅଡ଼େ ୨୪) + ଦାଡ଼ି ଡିକିହିନ ଆଡା + ଲାଚିନି ଲେକା + ସଂକ୍ୟା + + + ଗ୍ରେଗରିୟାନ କେଲେଣ୍ଡର + ବାରତ ଜାତିୟ କେଲେଣ୍ଡର + ମାନାଙ୍କ ଟାକାଁ ରୁପ + ଡିପଲଟ ୟୁନିକଡ ସର୍ଟ ଲେଁ + ପନ୍‍ବହି ବାଗା ଅର୍ଡର + ସାମାନି-ଉଦେସ୍ୟ ପାରିନ + ମାନାଙ୍କ ସର୍ଟ ଲେଁ + ୧୨ ଗଣ୍ଟା ତି ପଦ୍ଦତି (0–୧୧) + ୧୨ ଗଣ୍ଟା ତି ପଦ୍ଦତି (୧–୧୨) + ୨୪ ଗଣ୍ଟା ତି ପଦ୍ଦତି (0–୨୩) + ୨୪ ଗଣ୍ଟା ତି ପଦ୍ଦତି (୧–୨୪) + ମେଟ୍ରକି ପଦ୍ଦତି + ସାମ୍ରାଜ୍ୟତି ଆଟିନି ମାପ ପଦ୍ଦତି + ଆମେରିକାତି ମାପ ପଦ୍ଦତି + ଆରବିକ୍-ବାରତୀୟ ନମ୍ବର + ନକିଆତି ଆରବିକ୍-ବାରତୀୟ ନମ୍ବର + ବଙ୍ଗାଲୀ ନମ୍ବର + ଦେବନାଗରୀ ନମ୍ବର + ଗୁଜରାଟି ନମ୍ବର + ଗୁରୁମୁକି ନମ୍ବର + କନଡ ନମ୍ବର + ୱେସ୍ଟେନ୍ ନମ୍ବର + ମାଲାୟାଲମ୍ ନମ୍ବର + ଅଡ଼ିଆ ନମ୍ବର + ରମାନ ନମ୍ବର + ରମାନ ମିଲା ଅରା ନମ୍ବର + ହିରୁଦୁଲୁ ତାମିଲ ନମ୍ବର + ତାମିଲ୍ ନମ୍ବର + ତେଲୁଗୁ ନମ୍ବର + ମେଟ୍ରିକ ୟୁକେ @@ -43,9 +472,161 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + + + EEEE, MMMM d, y G + + + + + G d MMMM y + + + + + G d MMM y + + + + + G d/M/y + + + + + + + {1} ଆଁ {0} + + + + + {1} ଆଁ {0} + + + + + {1}, {0} + + + + + {1}, {0} + + + + B h + B h:mm + B h:mm:ss + E B h:mm + E B h:mm:ss + d E + G d MMM y + G E, d MMM y + M + d/M + E, d/M + MMM + d MMM + E, d MMM + GGGGG M/y + G d/M/y + G E, d/M/y + G MMM y + G d MMM y + G E, d MMM y + QQQ G y + QQQQ G y + + + + B h – B h + B h–h + + + B h:mm – B h:mm + B h:mm–h:mm + B h:mm–h:mm + + + M–M + + + d/M – d/M + d/M – d/M + + + E, d/M – E, d/M + E, d/M – E, d/M + + + MMM–MMM + + + d–d MMM + d MMM – d MMM + + + E, d MMM – E, d MMM + E, d MMM – E, d MMM + + + y–y G + + + M/y – M/y G + M/y – M/y G + + + d/M/y – d/M/y G + d/M/y – d/M/y G + d/M/y – d/M/y G + + + E, d/M/y – E, d/M/y G + E, d/M/y – E, d/M/y G + E, d/M/y – E, d/M/y G + + + MMM–MMM y G + MMM y – MMM y G + + + d – d MMM y G + d MMM – d MMM y G + d MMM y – d MMM y G + + + E, d MMM – E, d MMM y G + E, d MMM – E, d MMM y G + E, d MMM y – E, d MMM y G + + + MMMM–MMMM y G + MMMM y – MMMM y G + + + + + + ପୁସୁ + ମାହା + ପାଗୁ + ହିରେ + ବେସେ + ଜାଟା + ଆସାଡ଼ି + ସ୍ରାବାଁ + ବଦ + ଦାସାରା + ଦିୱି + ପାଣ୍ଡେ + ପୁସୁ ଲେଞ୍ଜୁ ମାହାକା ଲେଞ୍ଜୁ @@ -61,9 +642,43 @@ CLDR data files are interpreted according to the LDML specification (http://unic ପାଣ୍ଡେ ଲେଞ୍ଜୁ + + + ପୁ + ମା + ପା + ହି + ବେ + ଜା + + ସ୍ରା + + ଦା + ଦି + ପା + + + + ଆଦି + ସମ୍ବା + ମାଙ୍ଗା + ପୁଦା + ଲାକି + ସୁକ୍ରୁ + ସାନି + + + + + ମା + ପୁ + ଲା + ସୁ + ସାନି + ଆଦି ୱାରା ସମ୍ବାରା @@ -74,32 +689,2438 @@ CLDR data files are interpreted according to the LDML specification (http://unic ସାନି ୱାରା + + + + + ମା + ପୁ + ଲା + ସୁ + ସା + + + + + + କ ୧ + କ ୨ + କ ୩ + କ ୪ + + + ୧ମ କ୍ୱାଟର + ୨ୟ କ୍ୱାଟର + ୩ୟ କ୍ୱାଟର + ୪ର୍ଥ କ୍ୱାଟର + + + + + ଏ ଏମ + ପି ଏମ + + + + ପି + + + ଏ ଏମ + ପି ଏମ + + + + + ଏ ଏମ + ପି ଏମ + + + ଏ ଏମ + ପି ଏମ + ଏ ଏମ ପି ଏମ + + + ବିଫୋର କ୍ରାଇଷ୍ଟ + ବିଫୋର କମନ ଏରା + ଆନ୍ନା ଡୋମିନି + କମନ ଏରା + + + ବିସି + ବିସିଇ + ଏଡି + ସିଇ + + + + + + EEEE, d MMMM y + + + + + d MMMM y + + + + + d MMM y + + + + + d/M/yy + + + + + + + h:mm:ss a zzzz + ahmmsszzzz + + + + + h:mm:ss a z + ahmmssz + + + + + h:mm:ss a + ahmmss + + + + + h:mm a + ahmm + + + + + + {1} ଆଁ {0} + + + + + {1} ଆଁ {0} + + + + + {1}, {0} + + + + + {1}, {0} + + + B h + B h:mm + B h:mm:ss + E B h:mm + E B h:mm:ss + E d + y G + MMM G y + d MMM y G + E, d MMM y G + d/M + E, d/M + d MMM + E, d MMM + d MMMM + MMMM ତାଁ ୱାରା W + M/y d/M/y + E, d/M/y + MMM y d MMM y + E, d MMM y + MMMM y + QQQ y + QQQQ y + Y ତାଁ ୱାରା w + + + B h – B h + B h–h + + + B h:mm – B h:mm + B h:mm–h:mm + B h:mm–h:mm + + + M–M + + + d/M – d/M + d/M – d/M + + + E, d/M – E, d/M + E, d/M – E, d/M + + + MMM–MMM + + + d–d MMM + d MMM – d MMM + + + E, d MMM – E, d MMM + E, d MMM – E, d MMM + + + M/y – M/y + M/y – M/y + + + d/M/y – d/M/y + d/M/y – d/M/y + d/M/y – d/M/y + + + E, d/M/y – E, d/M/y + E, d/M/y – E, d/M/y + E, d/M/y – E, d/M/y + + + MMM–MMM y + MMM y – MMM y + + + d–d MMM y + d MMM – d MMM y + d MMM y – d MMM y + + + E, d MMM – E, d MMM y + E, d MMM – E, d MMM y + E, d MMM y – E, d MMM y + + + MMMM – MMMM y + MMMM y – MMMM y + + + + + ଜୁଗ + + + ବାର୍ସା + + + ବା. + + + କ୍ୱାଟର + + + କ୍ୱାଟର + + + ଲେଞ୍ଜୁ + + + ଲେ + + + ୱାରା + + + ୱା + + + ଦିନା + ରାଆଲା + ଇଞ୍ଜୁ + ୱି ଏ + + + ଦିନା + + + ୱାରା ତି ଦିନା + + + AM/PM + + + ବେଲା + + + ବେ + + + ମିନିଟ + + + ମି + + + ସେକେଣ୍ଡ + + + ସେ + + + ବେଲା ମୁଟ୍ହା + + {0} ବେଲା {0} ଡେଲାଇଟ ବେଲା {0} ମାନାଙ୍କ ବେଲା + + + ସମାନି ଜାଗା ପ୍ରୁତି ବେଲା + + + + ପୁଣ୍ଆଁ ତି ଗାଡ଼ା + + + ଆଣ୍ଡରା + + + ଦୁବାଇ + + + କବୁଲ୍ + + + ଆଣ୍ଟିଗୁଆ + + + ଆଙ୍ଗୁଇଲା + + + ଟାଇରେନ୍ + + + ୟେରେବାନ୍ + + + ଲୁଆଣ୍ଡା + + + ରୋତେରା + + + ପାଁମର + + + ଟୋଲ୍ + + + ସୋୱା + + + ମାଁସନ + + + ଡେୱିସ୍ + + + ୱୋସ୍ତକୋ + + + କେସି + + + ଡ୍ୟୁମାଣ୍ଟ ଡି ଉରୱିଲେ + + + ମ୍ୟାକମୁର୍ଡ + + + ରିୟୋ ଗାଲେଗୋସ + + + ମେଣ୍ଡଜା + + + ସାୟାନ୍ ୱାନ୍ + + + ଉସୁଆଇୟା + + + ଲା ରି୍ଅଜା + + + ସୟାନ ଲୁଇସ + + + କା଼ଟାମାକାଁ + + + ସାଲ୍ଟା + + + ଜୁଜୋଏ + + + ଟୋକୁମନ + + + କୋଡୋବା + + + ବୁଏନସ୍ ଆଇରେସ୍ + + + ପାଗୋ ପାଗୋ + + + ୱିଏନା + + + ପର୍ତ + + + ୟୁକଲା + + + ଡାର୍ୱିନ୍ + + + ଏଡିଲେଡ୍ + + + ବ୍ରୋକନ ହିଲ + + + ମେଲବୋନଁ + + + ହୋବାର୍ଟ + + + ଲିଣ୍ଡେମାନ + + + ସିଡନୀ + + + ବ୍ରିସବନ୍ + + + ମକ୍ୱାରି + + + ଲର୍‍ଡ ହାୱେ + + + ଅରୁବା + + + ମାରିୟାହେମ + + + ବାକୁ + + + ସାରାଜେବ + + + ବାରବାଡସ + + + ଡାକା + + + ବ୍ରୁସିଲ୍‍ସ + + + ଅଗାଡଗୁ + + + ସପିୟା + + + ବହାରେନ + + + ବୁଜୂମ୍ବୁରା + + + ପର୍ଟ-ନୱ + + + ସେଣ୍ଟ ବାର୍ତେଲେମି + + + ବରମୁଡା + + + ବ୍ରୁନେଇ + + + ଲା ପାଜ + + + କ୍ରାଲେଣ୍ଡିଜିକ + + + ଇରୁନେପେ + + + ରିୟ ବ୍ରାଙ୍କ + + + ପୋର୍ଟୋ ଭେଲୋ + + + ବୋଆ ୱିସ୍ଟା + + + ମାନାଉସ୍‌ + + + କୁଇବା + + + ସାନ୍ତରେମ୍ + + + କାମ୍ପ ଗ୍ରାଣ୍ଡେ + + + ବେଲେମ + + + ଆରାଗୁଆନା + + + ସାଓ ପାଓଲୋ + + + ବାହିଆ + + + ପର୍ଟଲେଜା + + + ମାସିଅ + + + ରେସିପି + + + ନରହ୍ନ + + + ନାସାଉ + + + ତିମ୍ପୁ + + + ଗାବର୍ଣ୍ଣ + + + ମିନସ୍କ + + + ବେଲିଜେ + + + ଡସନ୍‌ + + + ହ୍ଵାଇଟହର୍ସ୍ + + + ଇନୁୱିକ୍ + + + ୱାଙ୍କୁୱର୍ + + + ପର୍ଟ ନେଲସନ୍ + + + ଡୱସନ୍ କ୍ରିକ୍ + + + କ୍ରେସ୍‍ଟନ + + + ଏଡ୍‍ମନଟନ୍ + + + ସୁଇଫ୍ଟ୍ କରେଣ୍ଟ୍ + + + କେମ୍ଵ୍ରିଜ୍ ବେ + + + ରେଗିନା + + + ୱିନିପେଗ୍ + + + ରିସୋଲୁଟେ + + + ରାନକିନ୍ ଇନଲେଟ୍ + + + ଆଟିକୋକାନ୍ + + + ଟରଣ୍ଟ + + + ଇକ୍ଵାଲୁଇଟ୍ + + + ମାନକଟନ୍ + + + ହାଲିଫ୍ୟାକ୍ସ୍ + + + ଗୁସ୍ ବେ + + + ଗ୍ଲାସେ ବେ + + + ବ୍ଲାଙ୍କ-ସାବଲନ୍ + + + ସେଣ୍ଟ୍. ଜନସ୍ + + + କକସ୍‌ + + + କିନସାସ୍‌ + + + ଲୁବୁମ୍ବାଶି + + + ବାଙ୍ଗୁଇ + + + ବ୍ରାଜାୱିଲ୍ଲେ + + + ଜୁରିକ୍ + + + ଆବିଦଜାନ + + + ରାରଟଙ୍ଗା + + + ଇଷ୍ଟର୍‌ + + + ପୁଣ୍ଟା ଏରିନାସ୍‌ + + + ସାଣ୍ଟିଆଗ + + + ଡଉଲା + + + ଉରୁମକି + + + ସଂଗାଇ + + + ବଗଟା + + + କଷ୍ଟା ରିକା + + + ହାୱନା + + + କେପ୍‌ ୱର୍ଦେ + + + କୁରାକ + + + ଖ୍ରୀସ୍‍ଟ ମାସ + + + ନିକସିଆ + + + ପାମାଗୁସ୍ଟା + + + ପ୍ରାଗ୍ + + + ବୁସିନଗେନ୍ + + + ବର୍ଲିନ୍ + + + ଜିବଟି + + + କପେନହାଗେନ୍ + + + ଡମିନିକା + + + ସାଣ୍ଟ ଡମିଙ୍ଗ + + + ଅଲଜିୟର୍ସ + + + ଗାଲାପାଗସ + + + ଗୁୟାକ୍ୱିଲ + + + ଟାଲିନ୍ନ + + + କାଇର + + + ଏଲ୍‌ ଏୟନ୍ + + + ଅସମରା + + + କାନାରେ + + + ସେଉଟା + + + ମାଡ୍ରିଡ୍ + + + ଆଦିସ୍‌ ଆବାବା + + + ହେଲସିନକି + + + ପିଜି + + + ସ୍‍ଟାଲିନ + + + ଚୂକ୍‌ + + + ପହନପେଇ + + + କୋସରେଇ + + + ପରଏ + + + ପେରିସ୍ + + + ଲିବ୍ରେୱିଲ୍ଲେ + + + + ବ୍ରିଟିଶ୍‌ କାରାଁ ବେଲା + + ଲଣ୍ଡନ୍ + + + ଗ୍ରେନାଡା + + + ଟିବିଲିସି + + + କେୟେନ୍ନି + + + ଗୁଏରନସେ + + + ଏକ୍ରା + + + ଜିବ୍ରାଲଟର୍‌ + + + ତୁଲେ + + + ନୁଉକ୍ + + + ଇଟ୍ଟକ୍ଵରଟରମିଟ୍ + + + ଡାନମାର୍କସାଭନ୍ + + + ବାଞ୍ଜୁଲ + + + କନାକ୍ରି + + + ଗୁଆଡେଲଉପେ + + + ମାଲାବ + + + ଏତେନ୍ସ + + + ଦକ୍ଷିଣ ଜର୍ଜିଆ + + + ଗୁଆତେମାଲା + + + ଗୁଆମ + + + ବିସାଉ + + + ଗୁଏନା + + + ହଂ କଂ + + + ଟେଗୁସିଗାଲପା + + + ଜାଗ୍ରେବ୍ + + + ପର୍ଟ-ଏୟୁ-ପ୍ରିନ୍‍ସ + + + ବୁଡାପେସ୍ଟ + + + ଜାକର୍ତା + + + ପଣ୍ଟିଆନାକ୍‌ + + + ମାକାସାର୍‌ + + + ଜୟପୁରା + + + + ଆଇରିସ୍ ମାନାଙ୍କ ବେଲା + + ଡବଲିନ୍ + + + ଜେରୁଜେଲମ + + + ଆଇଲ୍ ଅପ୍ ମ୍ୟାନ୍ + + + କୋଲକାତା + + + ଚାଗୋସ୍‌ + + + ବାଗଦାଦ୍‌ + + + ତେହେରାନ୍ + + + ରେକ୍ୟାବିକ + + + ରମ୍ + + + ଜର୍ସି + + + ଜାମାଇକା + + + ଅମ୍ମାନ + + + ଟକିଅ + + + ନାଇରବି + + + ବିସକେକ୍‌ + + + ପନମ୍‌ ପେନହ + + + କେଣ୍ଟନ + + + କିରିତିମାଟି + + + ତାରୱା + + + କମର + + + ସେଣ୍ଟ୍ କିଟ୍‍ସ + + + ପୋୟଙ୍ଗୟାଙ୍ଗ + + + ସିଅଲ + + + କୁଏତ + + + କାୟମ୍ୟାନ୍ + + + ଆକଟାଉ + + + ଅରାଲ୍‌ + + + ଅତିରାଉ + + + ଆକ୍ଟବେ + + + କଷ୍ଟନେ + + + କୀଜିଲର୍ଡା + + + ଅଲମାଟି + + + ୱିଏଣ୍ଟିଏନ୍‌ + + + ବୀରୁଟ୍‌ + + + ସେଣ୍ଟ୍. ଲୁସିଆ + + + ବାଡୁଜ + + + କଲମ୍ବୋ + + + ମନରୋବିଆ + + + ମେସେରୁ + + + ୱିଲନିଉସ୍ + + + ଲକ୍ସମବର୍ଗ + + + ରିଗା + + + ତ୍ରିପଲି + + + କାସାବ୍ଲାଙ୍କା + + + ମନାକ + + + ଚିସିନାଉ + + + ପଡଗରିକା + + + ମାରିଗଟ୍ + + + ଆଣ୍ଟାନାନାରିଭ + + + କ୍ୱାଜାଲେଇନ୍ + + + ମାଜୁର + + + ସ୍କପୟେ + + + ବାମାକ + + + ୟାଙ୍ଗୁନ୍‌ + + + ହୋୱଡ୍‌ + + + ଉଲାନ୍‌ବାଟର୍‌ + + + ମାକାଉ + + + ସାଇପାନ୍ + + + ମାର୍ଟିନିକ୍ୟୁ + + + ନୁଆକଚଟ + + + ମନଟସେରରାଟ୍ + + + ମାଲଟା + + + ମରିସସ୍ + + + ମାଳଦ୍ୱୀପ + + + ବ୍ଲାଣ୍ଟାୟାର୍‌ + + + ତିଜୁଆନା + + + ହେରମସିଲୋ + + + ମାଜାଟଲାନ୍ + + + ଚିହୁଆହୁଆ + + + ବାହିଆ ବ୍ୟାଣ୍ଡେରାସ୍ + + + ଅଜିନାଗା + + + ମନଟେରିଏ + + + ମେକ୍ସିକୋ ସିଟି + + + ମାଟାମରସ୍ + + + ମେରିଡା + + + କାନକୁନ୍ + + + କ୍ୱାଲାଲମ୍ପୁର + + + କୁଚିଂ + + + ମାପୁତୋ + + + ୱିଣ୍ଡହକ୍ + + + ନଉମିୟ + + + ନିଆମି + + + ନରପକ୍‌ + + + ଲାଗସ୍‌ + + + ମାନାଗୁଆ + + + ଆମଷ୍ଟ୍ରେଡାମ୍ + + + ଅସଲୋ + + + କାଟମାଣ୍ଡୁ + + + ନାଉରୁ + + + ନିୟୂ + + + ଚାତାମ୍‌ + + + ଅକଲାଣ୍ଡ + + + ମସ୍କାଟ୍‌ + + + ପାନାମା + + + ଲିମା + + + ତାହିତି + + + ମାର୍କ୍ୱେସାସ୍‌ + + + ଗାମ୍ବିୟର୍‌ + + + ପର୍ଟ୍‌ ମରେସବି + + + ବଗେନ୍‌ୱିଲ୍ଲେ + + + ମାନିଲା + + + କରାଚି + + + ୱାରସୱା + + + ମିକ୍ଵେଲନ୍ + + + ପିଟକାରିନ୍‌ + + + ପୁଏର୍ତ ରିକ + + + ଗାଜା + + + ହେବ୍ରନ୍‌ + + + ଆଜରେସ୍ + + + ମାଡେଇରା + + + ଲିସବୋନ୍ + + + ପାଲାଉ + + + ଆସନସିଅନ୍‌ + + + କତାର୍ + + + ରିୟୁନିଅନ୍‌ + + + ବୁଚାରେସ୍ଟ + + + ବେଲଗ୍ରେଡେ + + + କାଲିନିନଗ୍ରାଡ୍ + + + ମସ୍କ + + + ୱଲଗଗ୍ରାଡ୍ + + + ସାରାଟୱ୍ + + + ଆସ୍‍ଟରାକାନ + + + ୟୁଲୟାନୱସ୍କ + + + କିରୱ + + + ସାମାରା + + + ୟେକାଟେରିନବର୍ଗ୍ + + + ଓମସ୍କ + + + ନୱସିବିରସ୍କ + + + ବାରନାଉଲ୍ + + + ଟମସ୍କ + + + ନୱକୁଜନେଟସ୍କ + + + କ୍ରାସନୟାରସ୍କ + + + ଇରକୁଟସ୍କ + + + ଚିଟା + + + ୟାକୁଟସ୍କ + + + ୱ୍ଲାଡିୱଷ୍ଟୋକ୍ + + + କାନଡ୍ୟାଗା + + + ସକାଲିନ୍ + + + ୟୁସ୍‍ଟ-ନେରା + + + ମାଗାଡାନ୍ + + + ସ୍ରେଡନେକଲୟମସ୍କ + + + କାମଚାଟକା + + + ଆନାଡୟାର୍ + + + କିଗାଲି + + + ରିଆଦ + + + ଗୁଆଡାଲକାନାଲ + + + ମାହେ + + + କରଟଉମ୍‌ + + + ସ୍ଟକ୍ ହମ୍‌ + + + ସିଙ୍ଗାପୁର୍‌ + + + ସେଣ୍ଟ୍‌ ହେଲିନା + + + ଲଜୁବ୍ଲଜାନ୍ + + + ଳଙ୍ଖୟାରବେନ + + + ବ୍ରାଟିସଲାୱା + + + ପ୍ରିଟାଉନ୍‌ + + + ସାନ୍ ମାରିନୋ + + + ଡକାର + + + ମୋଗାଡିସୁ + + + ପାରାମାରିବ + + + ଜୁବା + + + ସାଅ ଟମେ + + + ଏଲ୍ ସାଲୱାଡୋର୍ + + + ନିମ୍ନ ପ୍ରିନ୍ସ’ର କ୍ଵାଟର୍ + + + ଡାମାସକସ୍‌ + + + ମ୍-ବାବାନେ + + + ଗ୍ରାଣ୍ଡ୍ ଟର୍କ୍ + + + ଜାମେନା + + + କେରଗୁଲେନ + + + ଲମ୍‌ + + + ବ୍ୟାଙ୍ଗକକ୍‌ + + + ଦୁସାନବେ + + + ପକାଅପ + + + ଦିଲ୍ଲୀ + + + ଆସ୍‍ଗାବଟ୍ + + + ଟୁନିସ୍‌ + + + ଟଙ୍ଗାଟାପୁ + + + ଇସ୍ତାନବୁଲ + + + ପର୍ଟ୍ ଅଫ୍ ସ୍ପେନ୍ + + + ଫୁନାଫୁଟି + + + ତାଇପେଇ + + + ଡର୍‌ ଇସ୍‌ ସାଲାମ + + + କିଏଭ୍ + + + ସିମଫେରପଲ୍ + + + କାମ୍ପାଲା + + + ମିଡ୍‌ୱେ + + + ୱେକ୍ + + + ଆଡାକ୍ + + + ନୋମେ + + + ଆଙ୍କରେଜ୍ + + + ୟାକୁଟାଟ୍ + + + ସିଟକା + + + ଜୁନେଆଉ + + + ମାଟଲାକାଟଲା + + + ଲସ୍ ଏଞ୍ଜେଲେସ୍ + + + ବଇସେ + + + ପଇନିକ୍ସ + + + ଡେନୱିର୍ + + + ବେଉଲାହ, ଉତ୍ତର ଡାକଟା + + + ନ୍ୟୁ ସାଲେମ୍, ଉତ୍ତର ଡାକଟା + + + କେନ୍ଦ୍ର, ଉତ୍ତର ଡାକଟା + + + ସିକାଗ + + + ମେନୋମିନି + + + ଭିନସେନ୍ନେସ୍, ଇଣ୍ଡିଆନା + + + ପେଟେର୍ସବର୍ଗ୍, ଇଣ୍ଡିଆନା + + + ଟେଲ୍ ସିଟି, ଇଣ୍ଡିଆନା + + + କ୍ନୋକ୍ସ, ଇଣ୍ଡିଆନା + + + ୱିନାମାକ୍, ଇଣ୍ଡିଆନା + + + ମାରେନଗ, ଇଣ୍ଡିଆନା + + + ଇଣ୍ଡିଆନାପଲିସ୍ + + + ଲଉଇସୱିଲ୍ଲେ + + + ୱେୱାୟ, ଇଣ୍ଡିଆନା + + + ମଣ୍ଟିସେଲ, କେଣ୍ଟଉକିକେ + + + ଡେଟ୍ରଇଟ୍ + + + ନ୍ୟୁ ୟର୍କ୍ + + + ମଣ୍ଟେଭିଡିଅ + + + ସମରକନ୍ଦ + + + ତାସକେଣ୍ଟ + + + ୱାଟିକାନ୍ + + + ସେଣ୍ଟ୍. ୱିନସେଣ୍ଟ୍ + + + କାରକାସ୍‌ + + + ଟରଟଲା + + + ସେଣ୍ଟ୍. ଥମାସ୍ + + + ହ ଚି ମିନ୍‌ ସିଟି + + + ଇଫେଟ୍‌ + + + ୱାଲିସ୍‌ + + + ଆପିଆ + + + ଏଡେନ୍‌ + + + ମାୟଟେ + + + ଜହାନ୍ସବର୍ଗ + + + ଲୁସାକା + + + ହରାରେ + + + + ଆପଗାନିସ୍ତାନ ବେଲା + + + + + ମାଦିନି ଆପ୍ରିକା ବେଲା + + + + + ୱେଡ଼ା ହପୁ ଆପ୍ରିକା ବେଲା + + + + + ଦକିଣ ଆପ୍ରିକା ମାନାଙ୍କ ବେଲା + + + + + ୱେଡ଼ା କୁଣ୍‍ପୁ ଆପ୍ରିକା ବେଲା + ୱେଡ଼ା କୁଣ୍‍ପୁ ଆପ୍ରିକା ମାନାଙ୍କ ବେଲା + ୱେଡ଼ା କୁଣ୍‍ପୁ ଆପ୍ରିକା କାରାଁ ବେଲା + + + + + ଆଲାସ୍କା ବେଲା + ଆଲାସ୍କା ମାନାଙ୍କ ବେଲା + ଆଲାସ୍କା ଡେଲାଇଟ୍ ବେଲା + + + + + ଆମେଜନ ବେଲା + ଆମେଜନ ମାନାଙ୍କ ବେଲା + ଆମେଜନ କାରାଁ ବେଲା + + + + + ମାଦିନି ବେଲା + ମାଦିନି ମାନାଙ୍କ ବେଲା + ମାଦିନି ଡେଲାଇଟ୍ ବେଲା + + + + + ୱେଡ଼ାହପୁତି ଜାଗା ବେଲା + ୱେଡ଼ାହପୁ ଜାଗାତି ମାନାଙ୍କ ବେଲା + ୱେଡ଼ାହପୁ ଜାଗାତି ଡେଲାଇଟ୍ ବେଲା + + + + + ହର୍କା ବେଲା + ହର୍କା ମାନାଙ୍କ ବେଲା + ହର୍କା ଡେଲାଇଟ୍ ବେଲା + + + + + ପେସିପିକ୍ ବେଲା + ପେସିପିକ୍ ମାନାଙ୍କ ବେଲା + ପେସିପିକ୍ ଡେଲାଇଟ୍ ବେଲା + + + + + ଏପିଆ ବେଲା + ଏପିଆ ମାନାଙ୍କ ବେଲା + ଏପିଆ ଡେଲାଇଟ୍ ବେଲା + + + + + ଆରବିଆତି ବେଲା + ଆରବିଆତି ମାନାଙ୍କ ବେଲା + ଆରବିଆତି ମେଦାଣା ବେଲା + + + + + ଆରଜେଣ୍ଟିନା ବେଲା + ଆରଜେଣ୍ଟିନା ମାନାଙ୍କ ବେଲା + ଆର୍ଜେଣ୍ଟିନା କାରା ବେଲା + + + + + ୱେଡ଼ା କୁଣ୍‍ପୁ ଆର୍ଜେଣ୍ଟିନା ବେଲା + ୱେଡ଼ା କୁଣ୍‍ପୁ ଆର୍ଜେଣ୍ଟିନା ମାନାଙ୍କ ବେଲା + ୱେଡ଼ା କୁଣ୍‍ପୁ ଆର୍ଜେଣ୍ଟିନା କାରାଁ ବେଲା + + + + + ଆରମେନିୟା ବେଲା + ଆରମେନିୟା ମାନାଙ୍କ ବେଲା + ଆରମେନିୟା କାରାଁ ବେଲା + + + + + ଆଟ୍ଲାଣ୍ଟିକ ବେଲା + ଆଟ୍ଲାଣ୍ଟିକ ମାନାଙ୍କ ବେଲା + ଆଟ୍ଲାଣ୍ଟିକ ଡେଲାଇଟ ବେଲା + + + + + ମାଦିନି ଅସ୍ଟ୍ରେଲିଆ ବେଲା + ଅସ୍ଟ୍ରେଲିଆତି ମାଦିନି ମାନାଙ୍କ ବେଲା + ଅସ୍ଟ୍ରେଲିଆତି ମାଦିନି ଡେଲାଇଟ ବେଲା + + + + + ଅସ୍ଟ୍ରେଲିଆତି ମାଦିନି ୱେଡ଼ାକୁଣ୍‍ପୁ ବେଲା + ଅସ୍ଟ୍ରେଲିଆତି ମାଦିନି ୱେଡ଼ାକୁଣ୍‍ପୁ ମାନାଙ୍କ ବେଲା + ଅସ୍ଟ୍ରେଲିଆତି ମାଦିନି ୱେଡ଼ାକୁଣ୍‍ପୁ ଡେଲାଇଟ ବେଲା + + + + + ୱେଡ଼ାହପୁ ଅସ୍ଟ୍ରେଲିଆ ବେଲା + ଅସ୍ଟ୍ରେଲିଆତି ୱେଡ଼ାହପୁ ମାନାଙ୍କ ବେଲା + ଅସ୍ଟ୍ରେଲିଆତି ୱେଡ଼ାହପୁ ଡେଲାଇଟ ବେଲା + + + + + ୱେଡ଼ାକୁଣ୍‍ପୁ ଅସ୍ଟ୍ରେଲିଆ ବେଲା + ଅସ୍ଟ୍ରେଲିଆତି ୱେଡ଼ାକୁଣ୍‍ପୁ ମାନାଙ୍କ ବେଲା + ଅସ୍ଟ୍ରେଲିଆତି ୱେଡ଼ାକୁଣ୍‍ପୁ ଡେଲାଇଟ ବେଲା + + + + + ଅଜେରବାଇଜାନ ବେଲା + ଅଜେରବାଇଜାନ ମାନାଙ୍କ ବେଲା + ଅଜେରବାଇଜାନ କାରାଁ ବେଲା + + + + + ଅଜରେସ ବେଲା + ଅଜରେସ ମାନାଙ୍କ ବେଲା + ଅଜରେସ କାରାଁ ବେଲା + + + + + ବାଙ୍ଗଲାଦେସ୍ ବେଲା + ବାଙ୍ଗଲାଦେସ୍ ମାନାଙ୍କ ବେଲା + ବାଙ୍ଗଲାଦେସ୍ କାରାଁ ବେଲା + + + + + ବୁଟାନ ବେଲା + + + + + ବଲୱିଆ ବେଲା + + + + + ବ୍ରାଜିଲିୟା ବେଲା + ବ୍ରାଜିଲିୟା ମାନକ ବେଲା + ବ୍ରାଜିଲିୟା କାରାଁ ବେଲା + + + + + ବ୍ରୁନେଇ ଦାରୁସାଲାମ ବେଲା + + + + + କେପ ବର୍ଡ ବେଲା + କେପ ବର୍ଡ ମାନାଙ୍କ ବେଲା + କେପ ବର୍ଡ କାରାଁ ବେଲା + + + + + ଚମର ମାନାଙ୍କ ବେଲା + + + + + ଚାତାମ ବେଲା + ଚାତାମ ମାନାଙ୍କ ବେଲା + ଚାତାମ ଡେଲାଇଟ୍ ବେଲା + + + + + ଚିଲି ବେଲା + ଚିଲି ମାନାଙ୍କ ବେଲା + ଚିଲି କାରାଁ ବେଲା + + + + + ଚିନ ବେଲା + ଚିନ ମାନାଙ୍କ ବେଲା + ଚିନ ଡେଲାଇଟ ବେଲା + + + + + କ୍ରିସମାସ ଦିପ ବେଲା + + + + + କକସ ଦିପ ବେଲା + + + + + କଲମ୍ବିୟା ବେଲା + କଲମ୍ବିୟା ମାନାଙ୍କ ବେଲା + କଲମ୍ବିୟା କାରାଁ ବେଲା + + + + + କୁକ ଦିପ ବେଲା + କୁକ ଦିପ ମାନାଙ୍କ ବେଲା + କୁକ ଦିପ ଆଦ୍ଦା କାରାଁ ବେଲା + + + + + କ୍ୱୁବା ବେଲା + କ୍ୱୁବା ମାନାଙ୍କ ବେଲା + କ୍ୱୁବା ଡେଲାଇଟ୍ ବେଲା + + + + + ଡେବିସ୍ ବେଲା + + + + + ଡ୍ୟୁମାଣ୍ଟ ଡି ଅରୱିଲେ ବେଲା + + + + + ୱେଡ଼ାହପୁ ତିମର ବେଲା + + + + + ଇସ୍ଟର ଦିପ ବେଲା + ଇସ୍ଟର ଦିପ ମାନାଙ୍କ ବେଲା + ଇସ୍ଟର ଦିପ କାରାଁ ବେଲା + + + + + ଇକ୍ୱାଡର ବେଲା + + + + + ମାଦିନି ୟୁରପିଆ ତି ବେଲା + ମାଦିନି ୟୁରପିଆ ତି ମାନାଙ୍କ ବେଲା + ମାଦିନା ୟୁରପିଆ ତି କାରାଁ ବେଲା + + + + + ୱେଡ଼ା ହପୁ ୟୁରପତି ବେଲା + ୱେଡ଼ାହପୁ ୟୁରପିଆତି ମାନାଙ୍କ ବେଲା + ୱେଡ଼ାହପୁ ୟୁରପିଆତି କାରାଁ ବେଲା + + + + + ଅର ୱେଡ଼ାହପୁ ୟୁରପତି ବେଲା + + + + + ୱେଡ଼ାକୁଣ୍‍ପୁ ୟୁରପତି ବେଲା + ୱେଡ଼ାକୁଣ୍‍ପୁ ୟୁରପିଆତି ମାନାଙ୍କ ବେଲା + ୱେଡ଼ାକୁଣ୍‍ପୁ ୟୁରପତି କାରାଁ ବେଲା + + + + + ପାକଲାଣ୍ଡ ଦିପ ବେଲା + ପାକଲାଣ୍ଡ ଦିପତି ମାନାଙ୍କ ବେଲା + ପାକଲାଣ୍ଡ ଦିପତି କାରାଁ ବେଲା + + + + + ପିଜି ବେଲା + ପିଜି ମାନାଙ୍କ ବେଲା + ପିଜି କାରାଁ ବେଲା + + + + + ପ୍ରେଞ୍ଚ୍ ଗୁୟାନା ବେଲା + + + + + ପ୍ରେଞ୍ଚ ଦକିଣ ଅଡ଼େ ଆଣ୍ଟାରଟିକ ବେଲା + + + + + ଗଲାପଗସ ତି ବେଲା + + + + + ଗମ୍ବିୟର ବେଲା + + + + + ଜର୍ଜିୟା ବେଲା + ଜର୍ଜିୟା ମାନାଙ୍କ ବେଲା + ଜର୍ଜିୟା କାରା ବେଲା + + + + + ଗିଲ୍‍ବେର୍ଟ ଦିପତି ବେଲା + + ଗ୍ରିନୱିଚ ମିନ ବେଲା + + + ୱେଡ଼ା ହପୁ ଗ୍ରିନଲାଣ୍ଡ ବେଲା + ୱେଡ଼ା ହପୁ ଗ୍ରିନଲାଣ୍ଡ ମାନାଙ୍କ ବେଲା + ୱେଡ଼ା ହପୁ ଗ୍ରିନଲାଣ୍ଡ କାରାଁ ବେଲା + + + + + ୱେଡ଼ା କୁଣ୍‍ପୁ ଗ୍ରିନଲାଣ୍ଡ ବେଲା + ୱେଡ଼ା କୁଣ୍‍ପୁ ଗ୍ରିନଲାଣ୍ଡ ମାନାଙ୍କ ବେଲା + ୱେଡ଼ା କୁଣ୍‍ପୁ ଗ୍ରିନଲାଣ୍ଡ କାରାଁ ବେଲା + + + + + ଗଲ୍ପ ମାନାଙ୍କ ବେଲା + + + + + ଗୁୟାନା ବେଲା + + + + + ହାୱାଇ-ଆଲ୍ୟୁସାନ ବେଲା + ହାୱାଇ-ଆଲ୍ୟୁସାନ ମାନାଙ୍କ ବେଲା + ହାୱାଇ-ଆଲ୍ୟୁସାନ ଡେ ଲାଇଟ ବେଲା + + + + + ହଙ୍ଗ କଙ୍ଗ ବେଲା + ହଙ୍ଗ କଙ୍ଗ ମାନାଙ୍କ ବେଲା + ହଙ୍ଗ କଙ୍କ କାରାଁ ବେଲା + + + + + ହୱଡ ବେଲା + ହୱଡ ମାନାଙ୍କ ବେଲା + ହୱଡ କାରାଁ ବେଲା + + + + + ବାରତ ମାନାଙ୍କ ବେଲା + + + + + ବାରତ କାଜା ସାମୁଦ୍ରି ବେଲା + + + + + ଇଣ୍ଡଚିନା ବେଲା + + + + + ମାଦିନି ଇଣ୍ଡନେସିଆ ବେଲା + + + + + ୱେଡ଼ାହପୁ ଇଣ୍ଡନେସିଆ ବେଲା + + + + + ୱେଡ଼ାକୁଣ୍ପୁ ଇଣ୍ଡନେସିଆ ବେଲା + + + + + ଇରାନ ବେଲା + ଇରାନ ମାନାଙ୍କ ବେଲା + ଇରାନ ଡେ ଲାଇଟ୍ ବେଲା + + + + + ଇରକୁସ୍ତକ ବେଲା + ଇରକୁସ୍ତକ ମାନାଙ୍କ ବେଲା + ଇରକୁସ୍ତକ କାରାଁ ବେଲା + + + + + ଇଜରାଇଲ ବେଲା + ଇଜରାଇଲ ମାନାଙ୍କ ବେଲା + ଇଜରାଇଲ ଡେଲାଇଟ ବେଲା + + + + + ଜାପାନ ବେଲା + ଜାପାନ ମାନାଙ୍କ ବେଲା + ଜାପାନ ଡେଲାଇଟ ବେଲା + + + + + କଜାକାସ୍ତାନ ବେଲା + + + + + ୱେଡ଼ାହପୁ କଜାକାସ୍ତାନ ବେଲା + + + + + ୱେଡ଼ାକୁଣ୍ପୁ କଜାକାସ୍ତାନ ବେଲା + + + + + କରିୟା ବେଲା + କରିୟା ମାନାଙ୍କ ବେଲା + କରିୟା ଡେଲାଇଟ ବେଲା + + + + + କସରାଏ ବେଲା + + + + + କ୍ରାସ୍ନୟାର୍ସ୍କ ବେଲା + କ୍ରାସ୍ନୟାର୍ସ୍କ ମାନାଙ୍କ ବେଲା + କ୍ରାସ୍ନାର୍ସ୍କ କାରାଁ ବେଲା + + + + + କିର୍ଗିସ୍ତାନ ବେଲା + + + + + ଲାଇନ ଦିପତି ବେଲା + + + + + ଲର୍ଡ ହୱେ ବେଲା + ଲର୍ଡ ହୱେ ମାନାଙ୍କ ବେଲା + ଲର୍ଡ ହୱେ ଡେଲାଇଟ୍ ବେଲା + + + + + ମାଗାଦାନ ଦିପ ବେଲା + ମାଗାଦାନ ମାନଙ୍କ ବେଲା + ମାଗାଦାନ କାରାଁ ବେଲା + + + + + ମାଲେସିୟା ବେଲା + + + + + ମାଲଡ୍ୱିସ୍ ବେଲା + + + + + ମାର୍କସସ ବେଲା + + + + + ମାର୍ସାଲ ଦିପ ବେଲା + + + + + ମରିସସ୍ ବେଲା + ମରିସସ୍ ମାନାଙ୍କ ବେଲା + ମରିସସ୍ କାରାଁ ବେଲା + + + + + ମାୱସନ ବେଲା + + + + + ମେକ୍ସିକତି ପେସିପିକ ବେଲା + ମେକ୍ସିକତି ପେସିପିକ ମାନାଙ୍କ ବେଲା + ମେକ୍ସିକତି ପେସିପିକ ଡେଲାଇଟ ବେଲା + + + + + ଉଲାନ ବଟର ବେଲା + ଉଲାନ ବଟର ମାନାଙ୍କ ବେଲା + ଉଲାନ ବଟର କାରାଁ ବେଲା + + + + + ମସ୍କ ବେଲା + ମସ୍କ ମାନାଙ୍କ ବେଲା + ମସ୍କ କାରାଁ ବେଲା + + + + + ମ୍ୟାଁମାର ବେଲା + + + + + ନଉରୁ ବେଲା + + + + + ନେପାଲ ବେଲା + + + + + ନ୍ୟୁ କେଲେଡନିୟା ବେଲା + ନ୍ୟୁ କେଲେଡନିୟା ମାନାଙ୍କ ବେଲା + ନ୍ୟୁ କେଲେଡନିୟା କାରାଁ ବେଲା + + + + + ନ୍ୟୁଜିଲାଣ୍ଡ ବେଲା + ନ୍ୟୁଜିଲାଣ୍ଡ ମାନାଙ୍କ ବେଲା + ନ୍ୟୁଜିଲାଣ୍ଡ ଡେଲାଇଟ ବେଲା + + + + + ନ୍ୟୁପାଉଣ୍ଡଲାଣ୍ଡ ବେଲା + ନ୍ୟୁପାଉଣ୍ଡଲାଣ୍ଡ ମାନାଙ୍କ ବେଲା + ନ୍ୟୁପାଉଣ୍ଡଲାଣ୍ଡ ଡେଲାଇଟ ବେଲା + + + + + ନିୟୁ ବେଲା + + + + + ନରପାଁକ ଦିପ ବେଲା + ନରପାଁକ ଦିପ ମାନାଙ୍କ ବେଲା + ନରପାଁକ ଦିପ ଡେଲାଇଟ ବେଲା + + + + + ପେର୍ନାଡ ଡେ ନରହ୍ନ ବେଲା + ପର୍ନାଡ ଡେ ନରହ୍ନ ମାନାଙ୍କା ବେଲା + ପର୍ନାଡ ଡେ ନରହ୍ନ କାରାଁ ବେଲା + + + + + ନୱସିବିର୍ସ୍କ ବେଲା + ନୱସିବିର୍ସ୍କ ମାନାଙ୍କ ବେଲା + ନୱସିବର୍ସ୍କ କାରାଁ ବଲା + + + + + ଅମସ୍କ ବେଲା + ଅମସ୍କ ମାନାଙ୍କ ବେଲା + ଅମସ୍କ କାରାଁ ବେଲା + + + + + ପାକିସ୍ତାନ ବେଲା + ପାକିସ୍ତାନ ମାନାଙ୍କ ବେଲା + ପାକିସ୍ତାନ କାରାଁ ବେଲା + + + + + ପଲାଉ ବେଲା + + + + + ପାପୁୟା ପୁନି ଗିନି ବେଲା + + + + + ପେରାଗ୍ୱେ ବେଲା + ପେରାଗ୍ୱେ ମାନାଙ୍କ ବେଲା + ପେରାଗ୍ୱେ କାରାଁ ବେଲା + + + + + ପେରୁ ବେଲା + ପେରୁ ମାନାଙ୍କ ବେଲା + ପେରୁ କାରାଁ ବେଲା + + + + + ପିଲିପିନ ବେଲା + ପିଲିପିନ ମାନାଙ୍କ ବେଲା + ପିଲିପିନ କାରାଁ ବେଲା + + + + + ପିନିକ୍ସ ଦିପତି ବେଲା + + + + + ସେଣ୍ଟ ପିଏରେ ଅଡ଼େ ମିକ୍ୱେଲାନ ବେଲା + ସେଣ୍ଟ ପିଏରେ ଅଡ଼େ ମିକ୍ୱେଲାନ ମାନାଙ୍କ ବେଲା + ସେଣ୍ଟ ପିଏରେ ଅଡ଼େ ମିକ୍ୱେଲାନ ଡେଲାଇଟ ବେଲା + + + + + ପିଟକଇରନ ବେଲା + + + + + ପନାପେ ବେଲା + + + + + ପ୍ୟଙ୍ଗୟାଙ୍କ ବେଲା + + + + + ରିୟୁନିୟନ ବେଲା + + + + + ରତେରା ବେଲା + + + + + ସକାଲିନ ବେଲା + ସକାଲିନ ମାନାଙ୍କ ବେଲା + ସକାଲିନ କାରାଁ ବେଲା + + + + + ସାମଆ ବେଲା + ସାମଆ ମାନାଙ୍କ ବେଲା + ସାମଆ ଡେଲାଇଟ ବେଲା + + + + + ସେସେଲ୍ସ ବେଲା + + + + + ସାଙ୍ଗାପୁର ମାନାଙ୍କ ବେଲା + + + + + ସଲମନ ଦିପତି ବେଲା + + + + + ଦକିଣ ଜର୍ଜିୟା ବେଲା + + + + + ସୁରିନାମ ବେଲା + + + + + ସୱା ବେଲା + + + + + ତାହିତି ବେଲା + + + + + ତାଇପେ ବେଲା + ତାଇପେ ମାନଙ୍କ ବେଲା + ତାଇପେ ଡେଲାଇଟ ବେଲା + + + + + ତାଜିକିସ୍ତାନ ବେଲା + + + + + ଟକେଲାଉ ବେଲା + + + + + ଟଙ୍ଗା ବେଲା + ଟଙ୍ଗା ମାନାଙ୍କ ବେଲା + ଟଙ୍ଗା କାରାଁ ବେଲା + + + + + ଚୁକ ବେଲା + + + + + ତୁର୍କମେନିସ୍ତାନ ବେଲା + ତୁର୍କମେନିସ୍ତାନ ମାନାଙ୍କ ବେଲା + ତୁର୍କମେନିସ୍ତାନ କାରାଁ ବେଲା + + + + + ତୁୱାଲୁ ବେଲା + + + + + ଉରୁଗ୍ୱେ ବେଲା + ଉରୁଗ୍ୱେ ମାନାଙ୍କ ବେଲା + ଉରୁଗ୍ୱେ କାରାଁ ବେଲା + + + + + ଉଜ୍ୱେକିସ୍ତାନ ବେଲା + ଉଜ୍ୱେକିସ୍ତାନ ମାନାଙ୍କ ବେଲା + ଉଜ୍ୱେକିସ୍ତାନ କାରାଁ ବେଲା + + + + + ୱନୁଆତୁ ବେଲା + ୱନୁଆତୁ ମାନାଙ୍କ ବେଲା + ୱନୁଆତୁ କାରାଁ ବେଲା + + + + + ୱେନେଜୁଏଲା ବେଲା + + + + + ୱ୍ଲାଦିୱସ୍ତକ ବେଲା + ୱ୍ଲାଦିୱସ୍ତକ ମାନାଙ୍କ ବେଲା + ୱ୍ଲାଦିୱସ୍ତକ କାରାଁ ବେଲା + + + + + ୱାଲଗଗ୍ରାଡ ବେଲା + ୱାଲଗଗ୍ରାଡ ମାନାଙ୍କ ବେଲା + ୱାଲଗଗ୍ରାଡ କାରାଁ ବେଲା + + + + + ୱସ୍ତକ ବେଲା + + + + + ୱେକ ଦିପ ବେଲା + + + + + ୱାଲିସ ଅଡ଼େ ପୁଟୁନା ବେଲା + + + + + ୟାକୁତ୍ସକ ବେଲା + ୟାକୁତ୍ସକ ମାନାଙ୍କ ବେଲା + ୟାକୁତ୍ସକ କାରାଁ ବେଲା + + + + + ୟେକାତେରିନବର୍ଗ ବେଲା + ୟେକାତେରିନବର୍ଗ ମାନାଙ୍କ ବେଲା + ୟେକାତେରିନବର୍ଗ କାରାଁ ବେଲା + + @@ -120,5 +3141,63 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + ବ୍ରାଜିଲ୍ ତି ରିଏଲ୍ + ବ୍ରାଜିଲ୍ ତି ରିଏଲ୍ + + + ଚିନି ତି ୟୁଆନ + ଚିନି ତି ୟୁଆନ + + + ୟୁର + ୟୁରସ୍ + + + ବ୍ରିଟିସ୍ ପାଉଣ୍ଡ୍ + ବ୍ରିଟିସ୍ ପାଉଣ୍ଡ୍ + + + ବାରତ ତି ଟାକାଁ + ବାରତ ତି ଟାକାଁ + + + ଜାପାନ ତି ୟେନ + ଜାପାନ ତି ୟେନ + + + ରୁସିଆ ତି ରୁବଲ୍ + ରୁସିଆ ତି ରୁବଲ୍ସ + + + ୟୁ ଏସ ଡଲାର + ୟୁ ଏସ ଡଲାର୍‍ସ୍ + + + ପୁଣ୍‍ଆତି ଲେବୁଁ + ପୁଣ୍ଆତି ଲେବୁଁ + + + + + {0}, ଅଡ଼େ {1} + {0} ଅଡ଼େ {1} + + + {0}, ଆଆତେଁ {1} + {0} ଆଆତେଁ {1} + + + {0}, ଅଡ଼େ {1} + {0} ଅଡ଼େ {1} + + + {0} {1} + {0} {1} + {0} {1} + {0} {1} + + diff --git a/make/data/cldr/common/main/kxv_Telu.xml b/make/data/cldr/common/main/kxv_Telu.xml index 349281b4273..d8ea57b48e4 100644 --- a/make/data/cldr/common/main/kxv_Telu.xml +++ b/make/data/cldr/common/main/kxv_Telu.xml @@ -13,18 +13,450 @@ CLDR data files are interpreted according to the LDML specification (http://unic + ఆప్రికాన్స్ + ఆమ్హెరి + ఆరబిక్ + అదునిక ప్రామాణిక్ అరబిక్ + ఆసమీజ్ + అజరబైజాని + ఆజెరి + బెలారుసియన్ + బుల్గారియన్ + బంగ్లా + తిబ్బతన్ + బొడొ + బొస్ నిఆన్ + కాటాలాన్ + చెరొకీ + చెక్ + డెనిస్ + జర్మన్ + అస్ట్రీయన్ జర్మన్ + స్విస్ హఇ జర్మన్ + డోగ్రి + గ్రిక్ ఇంగ్లిస్ + అస్ట్రె లియన్ ఇంగ్లిస్ + కనెడయన్ ఇంగ్లిస్ + బ్రిటిస్ ఇంగ్లిస్ + యు.కె. ఇంగ్లిస్ + అమెరికాన్ ఇంగ్లిస్ + యు.ఎస్. ఇంగ్లిస్ + స్పెనిస్ + లాటిన్ అమెరికన్ స్పెనిస్ + యురోపియన్ స్పెనిస్ + మెక్సికాన్ స్పాస్పెనిస్ + ఎస్టొ నియన్ + బాస్క్ + పర్సియన్ + డారి + పినిస్ + పిలిపినో + ప్రెంచ్ + కానడియెన్ ప్రేంచ్ + స్విస్ ప్రెంచ్ + గాలసియన్ + గుజరాటి + హిబ్రూ + హిందీ + క్రొయేసియన్ + హంగేరియన్ + అర్మేనియన్ + ఇండోనేసియన్ + అఇస్లెండిక్ + ఇటాలియన్ + జపనిస్ + జర్జియన్ + కజక్ + కమెర్ + కన్నడ + కొరియన్ + కొంకణి + కాస్మిరి కువి + కిర్గజ్ + లావో + లితువేనియన్ + లాట్వియన్ + మైతలి + మాసిడోనియన్ + మలయాలం + మగోంలియన్ + మణిపురి + మరాటి + మలయ్ + బర్మీస్ + సార్వేజియన్ బొకమల్ + సేపాలి + డచ్ + ప్లెమిస్ + ఒడియా + పంజాబి + పోలిస్ + పోర్తుగీస్ + బ్రెజిలియన్ పోర్తుగీస్ + యురోపియన్ పోర్తుగిస్ + రోమేనియన్ + మెల్డావియన్ + రస్వన్ + సంస్కృతం + సంతాలి + సిందీ + సింహళం + స్లోవక్ + స్లోవేనియన్ + అల్బేనియన్ + సెర్బియన్ + స్విడిస్ + స్వాహిలి + కాగోం స్వాహిలి + తమిళము + తెలుగు + తాఇ + టర్కిస్ + యుక్రెయనియన్ + ఉర్దూ + ఉజ్బెక్ + వియత్నామీస్ + చైనీస్ + చైనీస్, మాండరిన్ + సరళీకృత చైనీస్ + సరళీకృత మాండరిన్ చైనీస్ + సాంప్రదాయక చైనీస్ + సాంప్రదాయకా మాండరిన్ చైనీస్ + జాలూ + + + + + + + + + + + + + + + + + + ప్రపంచం + లాటిన్ ఆమెరిక + ఆండొర + యునైటెడ్ ఆరబ్ ఎమిరేబ్స్ + ఆప్గనిస్తాన్ + ఆంటిగ్వా మరియు బార్బుడా + ఆంగ్విల్లా + ఆల్లేనియా + ఆర్మేనియా + ఆంగోలా + ఆంటార్కటికా + ఆర్జెంటినా + ఆమెరికన్ సమూవా + ఆస్ట్రీయా + ఆస్ట్రేలియా + ఆరుబా + ఆలాండ్ దీపులు + ఆజర్బైజాన్ + బోస్నియా మరియు బెర్జిగోవినా + బార్బడోస్ + బంగ్లాదేస్ + బెల్జియం + బుర్కినా పాసో + బుల్గేరియ + బహరిన్ + బురుండి + బెనిన్ + సెంట్ బర్తెలిమి + బర్ముడా + బ్రునేఇ + బొలివియా + కరీబియన్ నెదర్లాండ్స + బ్రాజిల్ + బహామాస్ + బుటాన్ + బోట్స్వానా + బెలారస్ + బెలిజ్ + కెనడా + కోకోస్ (కీలింగ్) దీవులు + కాంగో కిన్సాసా + కాంగో (DRC) + సెంట్రల్ ఆప్రికన్ రిపబ్లిక్ + కాంగో- బ్రాజావిల్లి + కాంగో (రిపబ్లిక్) + స్విజర్లాండ్ + కోట్ డి ఐవోర్ + ఐవరీ కోస్ట్ + కుక్ దీపులు + చిలి + కామెరూన్ + చినా + కొలంబియా + కోస్టా రికా + క్యూబా + కేప్ వడ్ + క్వురసో + క్రిస్ట మాస్ దీపుపు + సైప్రస్ + చెకియా + చెక్ రిపబ్లిక్ + జర్మనీ + డియాగో గార్సియా + జిబుతి + డెన్మార్క + డొమినికా + డొమినికాన్ రిపబ్లిక్ + ఆల్జిరియా + స్యూటా & మెలిల్లా + ఈక్వడార్ + ఎస్టోనియా + ఈజిప్ట్ + పడమటి సహారా + ఇరిట్రియా + స్పెన్ + ఇతియోపియా + పిన్లాండ్ + పిజీ + ఫాక్‌ల్యాండ్ దీవులు + ఫాక్‌ల్యాండ్ దీవులు (ఇస్లాస్ మాల్వినాస్) + మైక్రోనేసియా + పెరొ దీప + ప్రాన్స్ + గాబన్ + యునైటెడ్ కింగ్‌డమ్ + యు.కె. + గ్రెనడా + జార్జియా + ప్రెంచ్ గుయానా + గర్నసీ + గనా + జిబ్రాల్టర్ + గ్రీన్లండ్ + గంబియా + గినియా + గ్వడెలుప్ + ఈక్వటోరియల్ గినియా + గ్రీస్ + దకిన జర్జిఆ అదే దకిన సండవిచ్ దిప + గ్వటెమాలా + గ్వమ్ + గినియా-బిస్సావ్ + గుయానా + హాంకాంగ్ ఎస్ఎఆర్ చినా + హంకం + హండురాస్ + క్రొయేసియా + హైటి + హంగేరీ + కేనరీ దీపులు + ఇండోనేసియా + ఐర్లాండ్ + ఇజ్రాయెల్ + ఐల్ ఆప్ మాన్ బారతదెసాం + బ్రిటిస్ హీందూ మహాసముద్ర ప్రాంతం + ఇరాక్ + ఇరాన్ + ఐస్లాండ్ + ఇటలి + జెర్సీ + జమైకా + జోర్డాన్ + జపాన్ + కెన్యా + కిర్గజిస్తాన్ + కంబోడియా + కీరిబాటి + కొమొరోస్ + సెయింట్ కిట్స్ మరియు నెవిస్ + ఉత్తర కొరియా + దకిణ కొరియా + కువైట్ + కేమాన్ దీపులు + కజకిస్తాన్ + లావోస్ + లెబనాన్ + సెయింట్ లూసియా + లిక్టెన్‌స్టెయిన్ + స్రీ లంక + లైబీరియా + లెసోతో + లీతువేనియ + లక్సెంబర్గ్ + లాత్వియా + లిబియా + మొరాకో + మొనాకో + మోల్డొవా + మాంటెనెగ్రో + సెయింట్ మార్టిన్ + మడగాస్కర్ + మార్సాల్ దీపులు + ఉత్తర మాసిడోనియా + మాలి + మయన్మార్ (బర్మా) + మంగోలియా + మకావ్ ఎస్ఏఆర్ చైనా + మకాఉ + ఉత్తర మరియానా దీవులు + మార్ర్టనీక్ + మౌరిటేనియా + మాంట్సెరాట్ + మాల్డా + మారిసస్ + మాలదిపి + మలావీ + మెక్సికో + మలేసియా + మొజాంబిక్ + నమీబియా + క్రొత్త కెలెడోనియా + నఇజర్ + నార్పోక్ దీవ + నౌజీరియా + నికరాగువా + నెదర్లాండ్స్ + నార్వే + నేపాల్ + నౌరు + నియూ + న్యూజిలాండ్ + ఓమన్ + పనామా + పెరూ + ప్రెంచ్ పోలినిసియా + పాపువా న్యూ గనియా + పిలిప్పైన్స్ + పాకిస్తాన్ + పోలాండ్ + సెయింట్ పియెర్ మరియు మికెలాన్ + పిట్‌కెయిర్న్ దీవులు + ప్యూర్టో రికో + పాలస్తీనియన్ ప్రాంతాలు + పాలస్తీనా + పోర్చుగల్ + పాలావ్ + పరాగ్వే + కతార + రీయూనియన్ + రోమేనియా + సెర్బియా + రస్యా + రువాండా + సౌదీ అరేబియా + సోలమన్ దీవులు + సీషెల్స్ + సూడాన్ + స్వీడన్ + సింగపూర్ + సెయింట్ హెలెనా + స్లోవేనియా + స్వాల్‌బార్డ్ మరియు జాన్ మాయెన్ + స్లొవేకియా + సియెర్రా లియాన్ + సస్ మారిసో + సెనెగల్ + సోమలియా + సూరినామ్ + దక్షిణ సూడాన్ + సావో టోమ్ మరియు ప్రిన్సిపి + ఎల్ సాల్వడోర్ + సింట్ మార్టెన్ + సిరియా + ఈస్వాటిని + స్వాజిల్యాండ్ + టర్క్స్ మరియు కైకోస్ దీవులు + చాద్ + ప్రెంచ్ దకినియ టెరిటొరి + టోగో + తయిలాండ్ + తాజాకిస్తాన + టోకెలావ్ + టిమోర్-లెస్టె + తూర్పు టిమోర్ + తుర్క్‍మెనిస్తన్ + ట్యునీషియా + టోంగా + టర్కీ + ట్రినిడాడ్ మరియు టొబాగో + టువాలు + తైవాన్ + టాంజానియా + ఉక్రెయిన్ + ఉగాండా + సంయుక్త రాజ్య అమెరికా బయట ఉన్న దీవులు + యునైటెడ్ స్టేట్స్ + యు.ఎస్. + ఉరుగ్వే + ఉజ్బెకిస్తాన్ + బాటికాన్ సిటి + సెయింట్ విన్సెంట్ మరియు గ్రెనడీన్స్ + వెనిజులా + బ్రిటిష్ వర్జిన్ దీవులు + యు.ఎస్. వర్జిన్ దీవులు + వియత్నాం + వనాటు + వాల్లిస్ మరియు ఫుటునా + సమోవా + కొసోవో + యెమెన్ + మాయొట్ + దకిణ అప్రికా + జంబియా + జింబాబ్వే + + క్యాలెండర్ + కరెన్సీ ఫార్మాట్ + క్రమబద్ధీకరణ క్రమం + కరెన్సీ + గంటల పద్ధతి (౧౨ వర్సెస్౨౪) + లైన్ బ్రేక్ సైలి + కొలమాన పద్ధతి + సంక్యాలు + + + గ్రేగోరియన్ క్యాలెండర్ + భారతీయ జాతీయ క్యాలెండర్ + ప్రామాణిక కరెన్సీ ఫార్మాట్ + డిపాల్ట్ యూనీకోడ్ క్రమబద్ధీకరణ క్రమం + పోన్‌బుక్ క్రమబద్ధీకరణ క్రమం + సాధారణ-ప్రయోజన సోధన + ప్రామాణిక క్రమబద్ధీకరణ క్రమం + ౧౨ గంటల పద్ధతి (0–౧౧) + ౧౨ గంటల పద్ధతి (౧–౧౨) + ౨౪ గంటల పద్ధతి (0–౨౩) + ౨౪ గంటల పద్ధతి (౧–౨౪) + మెట్రిక్ పద్ధతి + ఇంపీరియల్ కొలమాన పద్ధతి + యు.ఎస్. కొలమాన పద్ధతి + అరబిక్-ఇండిక్ అంకెలు + పొడిగించబడిన అరబిక్-ఇండిక్ అంకెలు + బెంగాలీ అంకెలు + దేవనాగరి అంకెలు + గుజరాతీ అంకెలు + గుర్ముకి అంకెలు + కన్నడ అంకెలు + పస్చిమ అంకెలు + మలయాళం అంకెలు + ఒరియా అంకెలు + రోమన్ సంఖ్యలు + రోమన్ చిన్నబడి సంఖ్యలు + సాంప్రదాయ తమిళ సంక్యలు + తమిళ అంకెలు + తెలుగు అంకెలు + దసాంసం యుకె @@ -43,6 +475,144 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + + + EEEE, MMMM d, y G + + + + + G d MMMM y + + + + + G d MMM y + + + + + G d/M/y + + + + + + + {1} త {0} + + + + + {1} త {0} + + + + + {1}, {0} + + + + + {1}, {0} + + + + B h + B h:mm + B h:mm:ss + E B h:mm + E B h:mm:ss + d E + G d MMM y + G E, d MMM y + M + d/M + E, d/M + MMM + d MMM + E, d MMM + GGGGG M/y + G d/M/y + G E, d/M/y + G MMM y + G d MMM y + G E, d MMM y + QQQ G y + QQQQ G y + + + + B h – B h + B h–h + + + B h:mm – B h:mm + B h:mm–h:mm + B h:mm–h:mm + + + M–M + + + d/M – d/M + d/M – d/M + + + E, d/M – E, d/M + E, d/M – E, d/M + + + MMM–MMM + + + d–d MMM + d MMM – d MMM + + + E, d MMM – E, d MMM + E, d MMM – E, d MMM + + + y–y G + + + M/y – M/y G + M/y – M/y G + + + d/M/y – d/M/y G + d/M/y – d/M/y G + d/M/y – d/M/y G + + + E, d/M/y – E, d/M/y G + E, d/M/y – E, d/M/y G + E, d/M/y – E, d/M/y G + + + MMM–MMM y G + MMM y – MMM y G + + + d – d MMM y G + d MMM – d MMM y G + d MMM y – d MMM y G + + + E, d MMM – E, d MMM y G + E, d MMM – E, d MMM y G + E, d MMM y – E, d MMM y G + + + MMMM–MMMM y G + MMMM y – MMMM y G + + + + @@ -61,6 +631,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic పుసు + + + మా + గు + హి + బె + + రా + బా + బా + + ది + పా + పు + + @@ -74,32 +660,2436 @@ CLDR data files are interpreted according to the LDML specification (http://unic సానివరా + + + వా + + మా + వు + + ను + సా + + + + + + త్రై౧ + త్రై౨ + త్రై౩ + త్రై౪ + + + ౧వ త్రైమాసికం + ౨వ త్రైమాసికర + ౩వ త్రైమాసికర + ౪వ త్రైమాసికర + + + + + ఎ ఎమ్ + పి ఎమ్ + + + + పి + + + ఎ ఎమ్ + పి ఎమ్ + + + + + ఎ ఎమ్ + పి ఎమ్ + + + ఎ ఎమ్ + పి ఎమ్ + ఎ ఎమ్ పి ఎమ్ + + + క్రీన్తు వూర్వం + ప్రస్తుత సకానికి పూర్వం + క్రీస్తు సకం + ప్రస్తుత సకం + + + క్రీపూ + క్రీశ + + + + + + EEEE, d MMMM y + + + + + d MMMM y + + + + + d MMM y + + + + + d/M/yy + + + + + + + h:mm:ss a zzzz + ahmmsszzzz + + + + + h:mm:ss a z + ahmmssz + + + + + h:mm:ss a + ahmmss + + + + + h:mm a + ahmm + + + + + + {1} త {0} + + + + + {1} త {0} + + + + + {1}, {0} + + + + + {1}, {0} + + + B h + B h:mm + B h:mm:ss + E B h:mm + E B h:mm:ss + E d + y G + MMM G y + d MMM y G + E, d MMM y G + d/M + E, d/M + d MMM + E, d MMM + d MMMM + MMMM తి వారా W + M/y d/M/y + E, d/M/y + MMM y d MMM y + E, d MMM y + MMMM y + QQQ y + QQQQ y + Y తి వారా w + + + B h – B h + B h–h + + + B h:mm – B h:mm + B h:mm–h:mm + B h:mm–h:mm + + + M–M + + + d/M – d/M + d/M – d/M + + + E, d/M – E, d/M + E, d/M – E, d/M + + + MMM–MMM + + + d–d MMM + d MMM – d MMM + + + E, d MMM – E, d MMM + E, d MMM – E, d MMM + + + M/y – M/y + M/y – M/y + + + d/M/y – d/M/y + d/M/y – d/M/y + d/M/y – d/M/y + + + E, d/M/y – E, d/M/y + E, d/M/y – E, d/M/y + E, d/M/y – E, d/M/y + + + MMM–MMM y + MMM y – MMM y + + + d–d MMM y + d MMM – d MMM y + d MMM y – d MMM y + + + E, d MMM – E, d MMM y + E, d MMM – E, d MMM y + E, d MMM y – E, d MMM y + + + MMMM – MMMM y + MMMM y – MMMM y + + + + + యుగం + + + సంవత్సరం + + + సం. + + + త్రైమాసికం + + + త్రై. + + + నెల + + + నెల + + + వారము + + + వా + + + దినం + నిన్న + ఈ రోజు + రేపు + + + దినం + + + వారంలో రోజు + + + AM/PM + + + గంట + + + గం. + + + నిమిషము + + + నిమి. + + + సెకను + + + సెక. + + + సమయ మండలి + + {0} సమయం {0} పగటి వెలుతురు సమయం {0} ప్రామాణిక సమయం + + + సమన్వయ సార్వజనీన సమయం + + + + తెలియని నగరం + + + అండోరా + + + దుబాయి + + + కాబుల్ + + + ఆంటిగ్వా + + + ఎంగ్విల్లా + + + టిరేన్ + + + యెరెవన్ + + + లువాండా + + + రొతేరా + + + పాల్మర్ + + + ట్రోల్ + + + స్యోవా + + + మాసన్ + + + డెవిస్ + + + వోస్టోక్ + + + కేసీ + + + డ్యూమాంట్ డి’ఉర్విల్లే + + + మెక్‌ముర్డో + + + రియో గల్లేగోస్ + + + మెండోజా + + + శాన్ జ్యూన్ + + + ఉష్యూయ + + + లా రియోజ + + + శాన్ లూయిస్ + + + కటమార్కా + + + సాల్టా + + + జుజుయ్ + + + టుకుమన్ + + + కోర్డోబా + + + బ్యూనోస్ ఎయిర్స్ + + + పాగో పాగో + + + వియన్నా + + + పెర్త్ + + + యుక్లా + + + డార్విన్ + + + <exemplarCity>అడెలైడ్</exemplarCity> + + + బ్రోకెన్ హిల్ + + + మెల్బోర్న్ + + + హోబర్ట్ + + + లిండెమాన్ + + + సిడ్నీ + + + బ్రిస్‌బెయిన్ + + + మకారీ + + + లార్డ్ హౌ + + + అరుబా + + + మారీయుహమ్ + + + బాకు + + + సరాజోవో + + + బార్బడోస్ + + + ఢాకా + + + బ్రస్సెల్స్ + + + ఔగాడౌగోవ్ + + + సోఫియా + + + బహ్రెయిన్ + + + బుజమ్బురా + + + పోర్టో-నోవో + + + సెయింట్ బర్తెలెమీ + + + బెర్ముడా + + + బ్రూనై + + + లా పాజ్ + + + క్రలెండ్జిక్ + + + ఇరునెప్ + + + రియో బ్రాంకో + + + పోర్టో వెల్హో + + + బోవా విస్టా + + + మనాస్ + + + కుయబా + + + సాంటరెమ్ + + + కాంపో గ్రాండ్ + + + బెలెమ్ + + + అరాగ్వేయీనా + + + సావో పాలో + + + బహియ + + + ఫోర్టలేజా + + + మాసియో + + + రెసిఫీ + + + నరోన్హా + + + నాస్సావ్ + + + థింఫు + + + గబోరోన్ + + + మిన్స్క్ + + + బెలీజ్ + + + డాసన్ + + + వైట్‌హార్స్ + + + ఇనువిక్ + + + వాన్కూవర్ + + + ఫోర్ట్ నెల్సన్ + + + డాసన్ క్రీక్ + + + క్రెస్టన్ + + + ఎడ్మోంటన్ + + + స్విఫ్ట్ కరెంట్ + + + కేంబ్రిడ్జ్ బే + + + రెజీనా + + + విన్నిపెగ్ + + + రిజల్యూట్ + + + రన్‌కిన్ ఇన్‌లెట్ + + + అటికోకన్ + + + టొరంటో + + + ఇక్వాలిట్ + + + మోన్‌క్టోన్ + + + హాలిఫాక్స్ + + + గూస్ బే + + + గ్లేస్ బే + + + బ్లాంక్-సబ్లోన్ + + + సెయింట్ జాన్స్ + + + కోకోస్ + + + కిన్షాసా + + + లుబంబాషి + + + బాంగుయ్ + + + బ్రాజావిల్లే + + + జ్యూరిచ్ + + + అబిడ్జాన్ + + + రరోటోంగా + + + ఈస్టర్ + + + పుంటా అరీనస్ + + + శాంటియాగో + + + డౌలా + + + ఉరుమ్‌కీ + + + షాంఘై + + + బగోటా + + + కోస్టా రికా + + + హవానా + + + కేప్ వెర్డె + + + కురాకవో + + + క్రిస్మస్ + + + నికోసియా + + + ఫామగుస్టా + + + ప్రాగ్ + + + బసింజన్ + + + బెర్లిన్ + + + డిజ్బౌటి + + + కోపెన్హాగన్ + + + డొమినికా + + + శాంటో డోమింగో + + + అల్జియర్స్ + + + గాలాపాగోస్ + + + గయాక్విల్ + + + తాల్లిన్ + + + కైరో + + + ఎల్ ఎయున్ + + + అస్మారా + + + కెనరీ + + + స్యూటా + + + మాడ్రిడ్ + + + యాడిస్ అబాబా + + + హెల్సింకి + + + ఫీజీ + + + స్టాన్లీ + + + చుక్ + + + పోన్‌పై + + + కోస్రే + + + ఫారో + + + ప్యారిస్ + + + లెబర్విల్లే + + + + బ్రిటీష్ వేసవి సమయం + + లండన్ + + + గ్రెనడా + + + టిబిలిసి + + + కయేన్ + + + గ్వెర్న్సే + + + అక్రా + + + జిబ్రాల్టర్ + + + థులే + + + నూక్ + + + ఇటోక్కోర్టూర్మిట్ + + + డెన్మార్క్‌షాన్ + + + బంజూల్ + + + కోనాక్రీ + + + గ్వాడెలోప్ + + + మలాబో + + + ఏథెన్స్ + + + దక్షిణ జార్జియా + + + గ్వాటిమాలా + + + గ్వామ్ + + + బిస్సావ్ + + + గయానా + + + హాంకాంగ్ + + + తెగుసిగల్పా + + + జాగ్రెబ్ + + + పోర్ట్-అవ్-ప్రిన్స్ + + + బుడాపెస్ట్ + + + జకార్తా + + + పొన్టియనాక్ + + + మకాస్సర్ + + + జయపుర + + + + ఐరిష్ ప్రామాణిక సమయం + + డబ్లిన్ + + + జరూసలేం + + + ఐల్ ఆఫ్ మేన్ + + + కోల్‌కతా + + + చాగోస్ + + + బాగ్దాద్ + + + టెహ్రాన్ + + + రెక్జావిక్ + + + రోమ్ + + + జెర్సీ + + + జమైకా + + + అమ్మన్ + + + టోక్యో + + + నైరోబీ + + + బిష్కెక్ + + + నోమ్‌పెన్హ్ + + + కాంటన్ + + + కిరీటిమాటి + + + టరావా + + + కొమోరో + + + సెయింట్ కిట్స్ + + + ప్యోంగాంగ్ + + + సియోల్ + + + కువైట్ + + + కేమాన్ + + + అక్టావ్ + + + ఓరల్ + + + ఆటిరా + + + అక్టోబ్ + + + కోస్తానే + + + క్విజిలోర్డా + + + ఆల్మాటి + + + వియన్టైన్ + + + బీరట్ + + + సెయింట్ లూసియా + + + వాడుజ్ + + + కొలంబో + + + మోన్రోవియా + + + మసేరు + + + విల్నియస్ + + + లక్సెంబర్గ్ + + + రీగా + + + ట్రిపోలి + + + కాసాబ్లాంకా + + + మొనాకో + + + చిసినావ్ + + + పోడ్గోరికా + + + మారిగోట్ + + + అంటానానారివో + + + క్వాజాలైన్ + + + మజురో + + + స్కోప్‌యే + + + బామాకో + + + యాంగన్ + + + హోవ్డ్ + + + ఉలాన్బాటర్ + + + మకావ్ + + + సాయ్పాన్ + + + మార్టినీక్ + + + న్వాక్షోట్ + + + మాంట్సెరాట్ + + + మాల్టా + + + మారిషస్ + + + మాల్దీవులు + + + బ్లాన్టైర్ + + + టిజువానా + + + హెర్మోసిల్లో + + + మాసట్‌లాన్ + + + చువావా + + + బహియా బండరాస్ + + + ఒజినగ + + + మోంటెర్రే + + + మెక్సికో నగరం + + + మాటమొరోస్ + + + మెరిడా + + + కన్‌కూన్ + + + కౌలాలంపూర్ + + + కుచింగ్ + + + మాపుటో + + + విండ్హోక్ + + + నౌమియా + + + నియామే + + + నోర్ఫోక్ + + + లాగోస్ + + + మనాగువా + + + ఆమ్‌స్టర్‌డామ్ + + + ఓస్లో + + + ఖాట్మండు + + + నౌరు + + + నియూ + + + చాథమ్ + + + ఆక్లాండ్ + + + మస్కట్ + + + పనామా + + + లిమా + + + తహితి + + + మార్క్వేసాస్ + + + గాంబియేర్ + + + పోర్ట్ మోరెస్బే + + + బొగెయిన్‌విల్లే + + + మనీలా + + + కరాచీ + + + వార్షా + + + మికెలాన్ + + + పిట్‌కైర్న్ + + + ప్యూర్టో రికో + + + గాజా + + + హెబ్రాన్ + + + అజోర్స్ + + + మదైరా + + + లిస్బన్ + + + పాలావ్ + + + అసున్సియోన్ + + + ఖతార్ + + + రీయూనియన్ + + + బుకారెస్ట్ + + + బెల్‌గ్రేడ్ + + + కలినిన్‌గ్రద్ + + + మాస్కో + + + వోల్గోగ్రాడ్ + + + సరాటవ్ + + + అస్ట్రఖాన్ + + + ఉల్యనోవ్స్క్ + + + కిరోవ్ + + + సమార + + + యెకటెరింబర్గ్ + + + ఓమ్స్క్ + + + నవోసిబిర్స్క్ + + + బార్నాల్ + + + టామ్స్క్ + + + నొవొకుజ్‌నెట్‌స్క్ + + + క్రసనోయార్స్క్ + + + ఇర్కుట్స్క్ + + + చితా + + + యకుట్స్క్ + + + వ్లాడివోస్టోక్ + + + కంద్యాగ + + + సఖాలిన్ + + + అస్ట్-నెరా + + + మగడాన్ + + + స్రెడ్నెకొలిమ్స్క్ + + + కమ్‌చత్కా + + + అనడైర్ + + + కీగలి + + + రియాధ్ + + + గ్వాడల్కెనాల్ + + + మాహె + + + ఖార్టోమ్ + + + స్టాక్హోమ్ + + + సింగపూర్ + + + సెయింట్ హెలెనా + + + ల్యూబ్ల్యానా + + + లాంగ్‌యియర్‌బైయన్ + + + బ్రాటిస్లావా + + + ఫ్రీటౌన్ + + + శాన్ మారినో + + + డకార్ + + + మోగాదిషు + + + పరామారిబో + + + జుబా + + + సావో టోమ్ + + + ఎల్ సాల్వడోర్ + + + లోయర్ ప్రిన్స్ క్వార్టర్ + + + డమాస్కస్ + + + బాబెన్ + + + గ్రాండ్ టర్క్ + + + డ్జామెనా + + + కెర్గ్యూలెన్ + + + లోమ్ + + + బ్యాంకాక్ + + + డుషన్బీ + + + ఫాకోఫో + + + డిలి + + + యాష్గాబాట్ + + + ట్యునిస్ + + + టోంగాటాపు + + + ఇస్తాంబుల్ + + + పోర్ట్ ఆఫ్ స్పెయిన్ + + + ఫునాఫుటి + + + తైపీ + + + దార్ ఎస్ సలామ్ + + + కీవ్ + + + సిమ్‌ఫెరోపోల్ + + + కంపాలా + + + మిడ్వే + + + వేక్ + + + అడాక్ + + + నోమ్ + + + యాంకరేజ్ + + + యకుటాట్ + + + సిట్కా + + + జూనో + + + మెట్లకట్ల + + + లాస్ ఏంజల్స్ + + + బొయిసీ + + + ఫినిక్స్ + + + డెన్వెర్ + + + బ్యులా, ఉత్తర డకోట + + + న్యూ సలేమ్, ఉత్తర డకోట + + + సెంటర్, ఉత్తర డకోటా + + + చికాగో + + + మెనోమినీ + + + విన్‌సెన్నెస్, ఇండియాన + + + పీటర్స్‌బర్గ్, ఇండియాన + + + టెల్ నగరం, ఇండియాన + + + నోక్స్, ఇండియాన + + + వినామాక్, ఇండియాన + + + మరెంగో, ఇండియాన + + + ఇండియానపోలిస్ + + + లూయివిల్ + + + వెవయ్, ఇండియాన + + + మోంటిసెల్లో, కెన్‌టుక్కీ + + + డిట్రోయిట్ + + + న్యూయార్క్ + + + మోంటెవీడియో + + + సమర్కాండ్ + + + తాష్కెంట్ + + + వాటికన్ + + + సెయింట్ విన్సెంట్ + + + కారాకస్ + + + టోర్టోలా + + + సెయింట్ థామస్ + + + హో చి మిన్హ్ నగరం + + + ఇఫేట్ + + + వాల్లిస్ + + + ఏపియా + + + ఎడెన్ + + + మయోట్ + + + జొహెన్స్‌బర్గ్ + + + లుసాకా + + + హరారే + + + + ఆఫ్ఘనిస్తాన్ సమయం + + + + + సెంట్రల్ ఆఫ్రికా సమయం + + + + + తూర్పు ఆఫ్రికా సమయం + + + + + దక్షిణ ఆఫ్రికా ప్రామాణిక సమయం + + + + + పశ్చిమ ఆఫ్రికా సమయం + పశ్చిమ ఆఫ్రికా ప్రామాణిక సమయం + పశ్చిమ ఆఫ్రికా వేసవి సమయం + + + + + అలాస్కా సమయం + అలాస్కా ప్రామాణిక సమయం + అలాస్కా పగటి వెలుతురు సమయం + + + + + అమెజాన్ సమయం + అమెజాన్ ప్రామాణిక సమయం + అమెజాన్ వేసవి సమయం + + + + + మధ్యమ సమయం + మధ్యమ ప్రామాణిక సమయం + మధ్యమ పగటి వెలుతురు సమయం + + + + + తూర్పు సమయం + తూర్పు ప్రామాణిక సమయం + తూర్పు పగటి వెలుతురు సమయం + + + + + మౌంటెయిన్ సమయం + మౌంటెయిన్ ప్రామాణిక సమయం + మౌంటెయిన్ పగటి వెలుతురు సమయం + + + + + పసిఫిక్ సమయం + పసిఫిక్ ప్రామాణిక సమయం + పసిఫిక్ పగటి వెలుతురు సమయం + + + + + ఏపియా సమయం + ఏపియా ప్రామాణిక సమయం + ఏపియా పగటి సమయం + + + + + అరేబియన్ సమయం + అరేబియన్ ప్రామాణిక సమయం + అరేబియన్ పగటి వెలుతురు సమయం + + + + + అర్జెంటీనా సమయం + అర్జెంటీనా ప్రామాణిక సమయం + ఆర్జెంటీనా వేసవి సమయం + + + + + పశ్చిమ అర్జెంటీనా సమయం + పశ్చిమ అర్జెంటీనా ప్రామాణిక సమయం + పశ్చిమ అర్జెంటీనా వేసవి సమయం + + + + + ఆర్మేనియా సమయం + ఆర్మేనియా ప్రామాణిక సమయం + ఆర్మేనియా వేసవి సమయం + + + + + అట్లాంటిక్ సమయం + అట్లాంటిక్ ప్రామాణిక సమయం + అట్లాంటిక్ పగటి వెలుతురు సమయం + + + + + ఆస్ట్రేలియా మధ్యమ సమయం + ఆస్ట్రేలియా మధ్యమ ప్రామాణిక సమయం + ఆస్ట్రేలియా మధ్యమ పగటి వెలుతురు సమయం + + + + + ఆస్ట్రేలియా మధ్యమ పశ్చిమ సమయం + మధ్యమ ఆస్ట్రేలియన్ పశ్చిమ ప్రామాణిక సమయం + ఆస్ట్రేలియా మధ్యమ పశ్చిమ పగటి వెలుతురు సమయం + + + + + తూర్పు ఆస్ట్రేలియా సమయం + ఆస్ట్రేలియన్ తూర్పు ప్రామాణిక సమయం + ఆస్ట్రేలియన్ తూర్పు పగటి వెలుతురు సమయం + + + + + పశ్చిమ ఆస్ట్రేలియా సమయం + ఆస్ట్రేలియన్ పశ్చిమ ప్రామాణిక సమయం + ఆస్ట్రేలియన్ పశ్చిమ పగటి వెలుతురు సమయం + + + + + అజర్బైజాన్ సమయం + అజర్బైజాన్ ప్రామాణిక సమయం + అజర్బైజాన్ వేసవి సమయం + + + + + అజోర్స్ సమయం + అజోర్స్ ప్రామాణిక సమయం + అజోర్స్ వేసవి సమయం + + + + + బంగ్లాదేశ్ సమయం + బంగ్లాదేశ్ ప్రామాణిక సమయం + బంగ్లాదేశ్ వేసవి సమయం + + + + + భూటాన్ సమయం + + + + + బొలీవియా సమయం + + + + + బ్రెజిలియా సమయం + బ్రెజిలియా ప్రామాణిక సమయం + బ్రెజిలియా వేసవి సమయం + + + + + బ్రూనే దరుసలామ్ సమయం + + + + + కేప్ వెర్డె సమయం + కేప్ వెర్డె ప్రామాణిక సమయం + కేప్ వెర్డె వేసవి సమయం + + + + + చామర్రో ప్రామాణిక సమయం + + + + + చాథమ్ సమయం + చాథమ్ ప్రామాణిక సమయం + చాథమ్ పగటి వెలుతురు సమయం + + + + + చిలీ సమయం + చిలీ ప్రామాణిక సమయం + చిలీ వేసవి సమయం + + + + + చైనా సమయం + చైనా ప్రామాణిక సమయం + చైనా పగటి వెలుతురు సమయం + + + + + క్రిస్మస్ దీవి సమయం + + + + + కోకోస్ దీవుల సమయం + + + + + కొలంబియా సమయం + కొలంబియా ప్రామాణిక సమయం + కొలంబియా వేసవి సమయం + + + + + కుక్ దీవుల సమయం + కుక్ దీవుల ప్రామాణిక సమయం + కుక్ దీవుల అర్ధ వేసవి సమయం + + + + + క్యూబా సమయం + క్యూబా ప్రామాణిక సమయం + క్యూబా పగటి వెలుతురు సమయం + + + + + డేవిస్ సమయం + + + + + డ్యూమాంట్-డి’ఉర్విల్లే సమయం + + + + + తూర్పు తైమూర్ సమయం + + + + + ఈస్టర్ దీవి సమయం + ఈస్టర్ దీవి ప్రామాణిక సమయం + ఈస్టర్ దీవి వేసవి సమయం + + + + + ఈక్వడార్ సమయం + + + + + సెంట్రల్ యూరోపియన్ సమయం + సెంట్రల్ యూరోపియన్ ప్రామాణిక సమయం + సెంట్రల్ యూరోపియన్ వేసవి సమయం + + + + + తూర్పు యూరోపియన్ సమయం + తూర్పు యూరోపియన్ ప్రామాణిక సమయం + తూర్పు యూరోపియన్ వేసవి సమయం + + + + + సుదూర-తూర్పు యూరోపియన్ సమయం + + + + + పశ్చిమ యూరోపియన్ సమయం + పశ్చిమ యూరోపియన్ ప్రామాణిక సమయం + పశ్చిమ యూరోపియన్ వేసవి సమయం + + + + + ఫాక్‌ల్యాండ్ దీవుల సమయం + ఫాక్‌ల్యాండ్ దీవుల ప్రామాణిక సమయం + ఫాక్‌ల్యాండ్ దీవుల వేసవి సమయం + + + + + ఫిజీ సమయం + ఫిజీ ప్రామాణిక సమయం + ఫిజీ వేసవి సమయం + + + + + ఫ్రెంచ్ గయానా సమయం + + + + + ఫ్రెంచ్ దక్షిణ మరియు అంటార్కిటిక్ సమయం + + + + + గాలాపాగోస్ సమయం + + + + + గాంబియర్ సమయం + + + + + జార్జియా సమయం + జార్జియా ప్రామాణిక సమయం + జార్జియా వేసవి సమయం + + + + + గిల్బర్ట్ దీవుల సమయం + + గ్రీన్‌విచ్ సగటు సమయం + + + తూర్పు గ్రీన్‌ల్యాండ్ సమయం + తూర్పు గ్రీన్‌ల్యాండ్ ప్రామాణిక సమయం + తూర్పు గ్రీన్‌ల్యాండ్ వేసవి సమయం + + + + + పశ్చిమ గ్రీన్‌ల్యాండ్ సమయం + పశ్చిమ గ్రీన్‌ల్యాండ్ ప్రామాణిక సమయం + పశ్చిమ గ్రీన్‌ల్యాండ్ వేసవి సమయం + + + + + గల్ఫ్ ప్రామాణిక సమయం + + + + + గయానా సమయం + + + + + హవాయ్-అల్యూషియన్ సమయం + హవాయ్-అల్యూషియన్ ప్రామాణిక సమయం + హవాయ్-అల్యూషియన్ పగటి వెలుతురు సమయం + + + + + హాంకాంగ్ సమయం + హాంకాంగ్ ప్రామాణిక సమయం + హాంకాంగ్ వేసవి సమయం + + + + + హోవ్డ్ సమయం + హోవ్డ్ ప్రామాణిక సమయం + హోవ్డ్ వేసవి సమయం + + + + + భారతదేశ ప్రామాణిక సమయం + + + + + హిందూ మహా సముద్ర సమయం + + + + + ఇండోచైనా సమయం + + + + + సెంట్రల్ ఇండోనేషియా సమయం + + + + + తూర్పు ఇండోనేషియా సమయం + + + + + పశ్చిమ ఇండోనేషియా సమయం + + + + + ఇరాన్ సమయం + ఇరాన్ ప్రామాణిక సమయం + ఇరాన్ పగటి వెలుతురు సమయం + + + + + ఇర్కుట్స్క్ సమయం + ఇర్కుట్స్క్ ప్రామాణిక సమయం + ఇర్కుట్స్క్ వేసవి సమయం + + + + + ఇజ్రాయిల్ సమయం + ఇజ్రాయిల్ ప్రామాణిక సమయం + ఇజ్రాయిల్ పగటి వెలుతురు సమయం + + + + + జపాన్ సమయం + జపాన్ ప్రామాణిక సమయం + జపాన్ పగటి వెలుతురు సమయం + + + + + కజకి‌స్తాన్ సమయం + + + + + తూర్పు కజకి‌స్తాన్ సమయం + + + + + పశ్చిమ కజకిస్తాన్ సమయం + + + + + కొరియన్ సమయం + కొరియన్ ప్రామాణిక సమయం + కొరియన్ పగటి వెలుతురు సమయం + + + + + కోస్రాయి సమయం + + + + + క్రాస్నోయార్స్క్ సమయం + క్రాస్నోయార్స్క్ ప్రామాణిక సమయం + క్రాస్నోయార్స్క్ వేసవి సమయం + + + + + కిర్గిస్తాన్ సమయం + + + + + లైన్ దీవుల సమయం + + + + + లార్డ్ హోవ్ సమయం + లార్డ్ హోవ్ ప్రామాణిక సమయం + లార్డ్ హోవ్ పగటి సమయం + + + + + మగడాన్ సమయం + మగడాన్ ప్రామాణిక సమయం + మగడాన్ వేసవి సమయం + + + + + మలేషియా సమయం + + + + + మాల్దీవుల సమయం + + + + + మార్క్వేసాస్ సమయం + + + + + మార్షల్ దీవుల సమయం + + + + + మారిషస్ సమయం + మారిషస్ ప్రామాణిక సమయం + మారిషస్ వేసవి సమయం + + + + + మాసన్ సమయం + + + + + మెక్సికన్ పసిఫిక్ సమయం + మెక్సికన్ పసిఫిక్ ప్రామాణిక సమయం + మెక్సికన్ పసిఫిక్ పగటి వెలుతురు సమయం + + + + + ఉలన్ బతోర్ సమయం + ఉలన్ బతోర్ ప్రామాణిక సమయం + ఉలన్ బతోర్ వేసవి సమయం + + + + + మాస్కో సమయం + మాస్కో ప్రామాణిక సమయం + మాస్కో వేసవి సమయం + + + + + మయన్మార్ సమయం + + + + + నౌరు సమయం + + + + + నేపాల్ సమయం + + + + + న్యూ కాలెడోనియా సమయం + న్యూ కాలెడోనియా ప్రామాణిక సమయం + న్యూ కాలెడోనియా వేసవి సమయం + + + + + న్యూజిల్యాండ్ సమయం + న్యూజిల్యాండ్ ప్రామాణిక సమయం + న్యూజిల్యాండ్ పగటి వెలుతురు సమయం + + + + + న్యూఫౌండ్‌ల్యాండ్ సమయం + న్యూఫౌండ్‌ల్యాండ్ ప్రామాణిక సమయం + న్యూఫౌండ్‌ల్యాండ్ పగటి వెలుతురు సమయం + + + + + నియూ సమయం + + + + + నార్ఫోక్ దీవి సమయం + నార్ఫోక్ దీవి ప్రామాణిక సమయం + నార్ఫోక్ దీవి పగటి సమయం + + + + + ఫెర్నాండో డి నొరోన్హా సమయం + ఫెర్నాండో డి నొరోన్హా ప్రామాణిక సమయం + ఫెర్నాండో డి నొరోన్హా వేసవి సమయం + + + + + నోవోసిబిర్స్క్ సమయం + నోవోసిబిర్క్స్ ప్రామాణిక సమయం + నోవోసిబిర్స్క్ వేసవి సమయం + + + + + ఓమ్స్క్ సమయం + ఓమ్స్క్ ప్రామాణిక సమయం + ఓమ్స్క్ వేసవి సమయం + + + + + పాకిస్తాన్ సమయం + పాకిస్తాన్ ప్రామాణిక సమయం + పాకిస్తాన్ వేసవి సమయం + + + + + పాలావ్ సమయం + + + + + పాపువా న్యూ గినియా సమయం + + + + + పరాగ్వే సమయం + పరాగ్వే ప్రామాణిక సమయం + పరాగ్వే వేసవి సమయం + + + + + పెరూ సమయం + పెరూ ప్రామాణిక సమయం + పెరూ వేసవి సమయం + + + + + ఫిలిప్పైన్ సమయం + ఫిలిప్పైన్ ప్రామాణిక సమయం + ఫిలిప్పైన్ వేసవి సమయం + + + + + ఫినిక్స్ దీవుల సమయం + + + + + సెయింట్ పియెర్ మరియు మిక్వెలాన్ సమయం + సెయింట్ పియెర్ మరియు మిక్వెలాన్ ప్రామాణిక సమయం + సెయింట్ పియర్ మరియు మిక్వెలాన్ పగటి వెలుతురు సమయం + + + + + పిట్‌కైర్న్ సమయం + + + + + పొనేప్ సమయం + + + + + ప్యోంగాంగ్ సమయం + + + + + రీయూనియన్ సమయం + + + + + రొతేరా సమయం + + + + + సఖాలిన్ సమయం + సఖాలిన్ ప్రామాణిక సమయం + సఖాలిన్ వేసవి సమయం + + + + + సమోవా సమయం + సమోవా ప్రామాణిక సమయం + సమోవా పగటి వెలుతురు సమయం + + + + + సీషెల్స్ సమయం + + + + + సింగపూర్ ప్రామాణిక సమయం + + + + + సోలమన్ దీవుల సమయం + + + + + దక్షిణ జార్జియా సమయం + + + + + సూరినామ్ సమయం + + + + + స్యోవా సమయం + + + + + తహితి సమయం + + + + + తైపీ సమయం + తైపీ ప్రామాణిక సమయం + తైపీ పగటి వెలుతురు సమయం + + + + + తజికిస్తాన్ సమయం + + + + + టోకెలావ్ సమయం + + + + + టాంగా సమయం + టాంగా ప్రామాణిక సమయం + టాంగా వేసవి సమయం + + + + + చక్ సమయం + + + + + తుర్క్‌మెనిస్తాన్ సమయం + తుర్క్‌మెనిస్తాన్ ప్రామాణిక సమయం + తుర్క్‌మెనిస్తాన్ వేసవి సమయం + + + + + తువాలు సమయం + + + + + ఉరుగ్వే సమయం + ఉరుగ్వే ప్రామాణిక సమయం + ఉరుగ్వే వేసవి సమయం + + + + + ఉజ్బెకిస్తాన్ సమయం + ఉజ్బెకిస్తాన్ ప్రామాణిక సమయం + ఉజ్బెకిస్తాన్ వేసవి సమయం + + + + + వనౌటు సమయం + వనౌటు ప్రామాణిక సమయం + వనౌటు వేసవి సమయం + + + + + వెనిజులా సమయం + + + + + వ్లాడివోస్టోక్ సమయం + వ్లాడివోస్టోక్ ప్రామాణిక సమయం + వ్లాడివోస్టోక్ వేసవి సమయం + + + + + వోల్గోగ్రాడ్ సమయం + వోల్గోగ్రాడ్ ప్రామాణిక సమయం + వోల్గోగ్రాడ్ వేసవి సమయం + + + + + వోస్టోక్ సమయం + + + + + వేక్ దీవి సమయం + + + + + వాలీస్ మరియు ఫుటునా సమయం + + + + + యాకుట్స్క్ సమయం + యాకుట్స్క్ ప్రామాణిక సమయం + యాకుట్స్క్ వేసవి సమయం + + + + + యెకటెరిన్‌బర్గ్ సమయం + యెకటెరిన్‌బర్గ్ ప్రామాణిక సమయం + యెకటెరిన్‌బర్గ్ వేసవి సమయం + + @@ -120,5 +3110,59 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + బ్రెజిలియన్ రియల్ + బ్రెజిలియన్ రియల్‌లు + + + చైనా దేశ యువాన్ + చైనా దేశ యువాన్ + + + యురొ + యురోలు + + + బ్రిటిష్ పౌండ్ + బ్రిటిష్ పౌండ్‌లు + + + భారతదేశ రూపాయి + భారతదేశ రూపాయలు + + + జపాను దేశ యెన్ + జపాను దేశ యెన్ + + + రష్యన్ రూబల్ + రష్యన్ రూబల్‌లు + + + అమెరికా డాలర్ + అమెరికా డాలర్‌లు + + + తెలియని కరెన్సీ + తెలియని కరెన్సీ + + + + + {0}, మరియు {1} + {0} మరియు {1} + + + {0}, లేదా {1} + {0} లేదా {1} + + + {0} {1} + {0} {1} + {0} {1} + {0} {1} + + diff --git a/make/data/cldr/common/main/ky.xml b/make/data/cldr/common/main/ky.xml index 60781875fb6..35592fdb428 100644 --- a/make/data/cldr/common/main/ky.xml +++ b/make/data/cldr/common/main/ky.xml @@ -56,6 +56,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ бисламача биниче сиксикача + анииче бамбарача бангладешче тибетче @@ -172,6 +173,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ибанча ибибиочо индонезияча + интерлинг игбочо сычуань йиче инуктитутча (Канада) @@ -225,6 +227,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ комиче корнишче кваквалача (индей тили) + куви кыргызча латынча ладиночо @@ -233,8 +236,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ лезгинче гандача лимбургиче + лигурча лиллуэтче (индей тили) лакотача + ломбардча лингалача лаочо луизиана креолчо @@ -390,6 +395,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ конго суахаличе коморчо сирияча + силесче тамилче түштүк тутчонече (индей тили) телугуча @@ -430,7 +436,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ өзбекче вайиче вендача + венециянча вьетнамча + махувача волапюкча вунжочо валлончо @@ -442,6 +450,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ "У" диалектинде (Кытай) калмыкча косача + кангри согача янгбенче йембача @@ -450,6 +459,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ньенгатуча (түштүк америка тилдери) кантончо кытайча (кантончо) + чжуанча марокко тамазигт адабий тилинде кытайча кытайча (мандарин) @@ -645,7 +655,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ УБ Гренада Грузия - Француздук Гвиана + Франция Гвианасы Гернси Гана Гибралтар @@ -681,7 +691,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Жерси Ямайка Иордания - Япония + Жапония Кения Кыргызстан Камбоджа @@ -940,7 +950,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -1954,6 +1964,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} убактысы + + Гонолулу + Бирдиктүү дүйнөлүк убакыт @@ -2691,9 +2704,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Улан-Батор - - Чойбалсан - Макау @@ -3093,9 +3103,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ном - - Гонолулу - Анкориж @@ -3440,13 +3447,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Кытай жайкы убакыты - - - Чойбалсан убактысы - Чойбалсан кышкы убакыты - Чойбалсан жайкы убактысы - - Крисмас аралынын убактысы @@ -3685,6 +3685,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Жапон жайкы убактысы + + + Казакстан убактысы + + Чыгыш Казакстан убактысы @@ -4199,8 +4204,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 трлн ¤ - {0} {1} - {0} {1} @@ -5519,6 +5522,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} драм {0} драм + + жарык + {0} жарык + {0} жарык + + + мкг/л + {0} мкг/л + {0} мкг/л + + + түн + {0}/түн + {0}/түн + {0}/түнүнө + негизги багыт {0} чыгыш @@ -6329,6 +6348,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} пинч {0} пинч + + жарык + {0} жарык + {0} жарык + + + мкг/л + {0} мкг/л + {0} мкг/л + + + түн + {0}/түн + {0}/түн + {0}/түн + багыт {0}Ч @@ -6505,6 +6540,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}qt-Imp. {0}qt-Imp. + + жарык + {0} жарык + {0} жарык + + + мкг/л + {0} мкг/л + {0} мкг/л + + + түн + {0}/түн + {0}/түн + {0}/түн + {0}Тн {0}Тш diff --git a/make/data/cldr/common/main/lb.xml b/make/data/cldr/common/main/lb.xml index 3088a99f343..8f97285338c 100644 --- a/make/data/cldr/common/main/lb.xml +++ b/make/data/cldr/common/main/lb.xml @@ -205,7 +205,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Mëttelhéichdäitsch Guarani Alhéichdäitsch - Goan-Konkani Gondi-Sprooch Mongondou Gotesch @@ -2582,13 +2581,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Chinesesch Summerzäit - - - Choibalsan-Zäit - Choibalsan-Normalzäit - Choibalsan-Summerzäit - - Chrëschtdagsinsel-Zäit diff --git a/make/data/cldr/common/main/lij.xml b/make/data/cldr/common/main/lij.xml index 5ab1baa0174..a92575e8b64 100644 --- a/make/data/cldr/common/main/lij.xml +++ b/make/data/cldr/common/main/lij.xml @@ -2422,13 +2422,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ oa de stæ da Ciña - - - oa de Choibalsan - oa standard de Choibalsan - oa de stæ de Choibalsan - - oa de l’isoa Christmas diff --git a/make/data/cldr/common/main/lld.xml b/make/data/cldr/common/main/lld.xml new file mode 100644 index 00000000000..c16a51f45fd --- /dev/null +++ b/make/data/cldr/common/main/lld.xml @@ -0,0 +1,3744 @@ + + + + + + + + + + + afar + abkhasich + afrikaans + akan + amarich + aragonesc + arabich + arabich modern standard + assamesc + azerbaijan + bashkir + belarus + bulgar + bambara + bengalesc + tibetan + breton + bosniach + catalan + cecen + cherokee + corsich + cech + slav eclesiastich + ciuvascich + galesc + danesc + todësch + todësch dl’Austria + todësch standard dla Svizera + divehi + dzongkha + ewe + grech + inglesc + inglesc australian + inglesc canadesc + inglesc (UK) + inglesc (USA) + esperanto + spagnol + spagnol latin american + spagnol (ES) + spagnol (MX) + eston + basch + persian + dari + fula + finlandesc + filipin + faroesc + franzesc + franzesc (CA) + franzesc (CH) + furlan + frison dl vest + irlandesc + gaelich scozesc + galizian + guaraní + gujarati + manx + haussa + ebraich + hindi + hindi (latin) + hinglish + croat + ungaresc + armenich + interlingua + indonesian + interlingue + igbo + sichuan yi + ido + islandesc + talian + inuktitut + iapanesc + giavanesc + georgian + kaingang + kikuyu + kazakh + groenlandesc + khmer + kannada + corean + kashmiri + curdich + cornich + kyrgyz + latin + lussemburghesc + ganda + ladin + lingala + lao + lituan + luba-katanga + leton + malgasich + maori + macedonich + malayalam + mongolich + marathi + malesc + maltesc + birmanich + norvegesc bokmål + ndebele dl nord + nepalesc + neerlandesc + flamesc + norvegesc nynorsk + norvegesc + ndebele dl süd + navajan + nyanja + ocitan + oromo + odia + ossetich + punjabi + polach + pashto + portoghesc + portoghesc (BR) + portoghesc (PT) + quechua + rumanc + rundi + rumen + moldavich + rus + kinyarwanda + sanscrit + sard + sindhi + sami dl nord + sango + singalesc + slovach + sloven + shona + somalich + albanesc + serb + swati + sotho dl süd + sundanesc + svedesc + swahili + swahili dl Congo + tamilich + telugu + tajich + thailandesc + tigrin + turcmenich + tswana + tongaich + türch + tsonga + tatarich + uigurich + ucrainich + lingaz nia conesciü + urdu + uzbech + venda + vietnamesc + volapük + valonesc + wolof + xhosa + yiddish + yoruba + nheengatu + zhuang + cinesc + cinesc (mandarin) + cinesc scemplifiché + cinesc mandarin scemplifiché + cinesc tradizional + cinesc mandarin tradizional + zulu + + + + + + + + + + + + + + + + monn + Africa + Nord America + America dl Süd + Ozeania + Africa ozidentala + America Zentrala + Africa orientala + Africa dl Nord + Africa zentrala + Africa dl Süd + Americhes + America dl Nord + Caraibi + Asia orientala + Asia dl Süd + Asia dl Süd-Ost + Europa dl Süd + Australasia + Melanesia + Isoles dla Micronesia + Polinesia + Asia + Asia zentrala + Asia ozidentala + Europa + Europa orientala + Europa dl Nord + Europa ozidentala + Africa sot-sahariana + America latina + Isola dl’Ascensiun + Andorra + Emirac Arabics Unis + Afghanistan + Antigua y Barbuda + Anguilla + Albania + Armenia + Angola + Antartida + Argentina + Samoa americana + Austria + Australia + Aruba + Isoles Åland + Azerbaijan + Bosnia y Herzegovina + Barbados + Bangladesc + Belgio + Burkina Faso + Bulgaria + Bahrain + Burundi + Benin + St. Barthélemy + Bermuda + Brunei + Bolivia + Caraibi olandesc + Brasil + Bahamas + Bhutan + Isola Bouvet + Botswana + Belaruscia + Belize + Canada + Isoles Cocos (Keeling) + Congo - Kinshasa + Congo (Republica Democratica) + Republica Zentrafricana + Congo - Brazzaville + Congo (Republica) + Svizera + Costa d’Avore + Isoles Cook + Cile + Camerun + Cina + Colombia + Isola de Clipperton + Costa Rica + Cuba + Capo Verde + Curaçao + Isola dl Nadé + Ziper + Cechia + Repubblica Ceca + Paisc Todësc + Diego Garcia + Djibouti + Danimarca + Dominica + Republica Dominicana + Algeria + Ceuta y Melilla + Ecuador + Estonia + Egit + Sahara ozidentala + Eritrea + Spagna + Etiopia + Uniun Europeica + Zona Euro + Finlandia + Fiji + Isoles Falkland + Isoles Falkland (Isoles Malvines) + Micronesia + Isoles Faroer + Francia + Gabun + Rëgn Uní + UK + Grenada + Georgia + Guiana franzeja + Guernsey + Ghana + Gibraltar + Groenlandia + Gambia + Guinea + Guadeloupe + Guinea ecuatoriala + Grecia + Georgia dl Süd y Isoles Sandwich dl Süd + Guatemala + Guam + Guinea-Bissau + Guyana + Regiun aministrativa speziala de Hong Kong + Hong Kong + Isoles Heard y McDonald + Honduras + Croazia + Haiti + Ungaria + Isoles Canaries + Indonesia + Irlanda + Israel + Isola de Man + India + Teritore britanich dl Ozean Indian + Irak + Iran + Islanda + Talia + Jersey + Giamaica + Iordania + Iapan + Kenia + Kyrgystan + Cambogia + Kiribati + Comores + St. Kitts y Nevis + Corea dl Nord + Corea dl Süd + Kuwait + Isoles Cayman + Kazakhstan + Laos + Libanon + St. Lucia + Liechtenstein + Sri Lanka + Liberia + Lesotho + Lituania + Lussemburgh + Letonia + Libia + Maroco + Monaco + Moldavia + Montenegro + St. Martin + Madagascar + Isoles Marshall + Macedonia dl Nord + Mali + Myanmar (Burma) + Mongolia + Regiun aministrativa speziala de Macao + Macao + Isoles Marianes dl Nord + Martinica + Mauritania + Montserrat + Malta + Mauritius + Maldives + Malawi + Messich + Malesia + Mozambich + Namibia + Nöia Caledonia + Niger + Isola Norfolk + Nigeria + Nicaragua + Paisc Basc + Norvegia + Nepal + Nauru + Niue + Nöia Zelanda + Aotearoa (Nöia Zelanda) + Oman + Panama + Perú + Polinesia franzeja + Papua Nöia Guinea + Filipines + Pakistan + Polonia + St. Pierre y Miquelon + Isoles Pitcairn + Puerto Rico + Teritori palestinesc + Palestina + Portugal + Palau + Paraguay + Qatar + Ozeania dlafora + Réunion + Romania + Serbia + Ruscia + Ruanda + Arabia Saudita + Isoles Salomon + Seychelles + Sudan + Svezia + Singapur + St. Helena + Slovenia + Svalbard y Jan Mayen + Slovachia + Sierra Leone + San Marino + Senegal + Somalia + Surinam + Sudan dl Süd + São Tomé y Príncipe + El Salvador + Sint Maarten + Siria + Eswatini + Swaziland + Tristan da Cunha + Isoles Turks y Caicos + Ciad + Teritori franzesc dl Süd y dl’Antartica + Togo + Thailandia + Tajikistan + Tokelau + Timor-Leste + Timor Ost + Turkmenistan + Tunisia + Tonga + Turchia + Trinidad y Tobago + Tuvalu + Taiwan + Tanzania + Ucraina + Uganda + Isoles mëndres dlafora di Stac Unis + Naziuns Unides + Stac Unis + Uruguay + Uzbekistan + Cité dl Vatican + St. Vincent y Grenadines + Venezuela + Isoles Vergines britaniches + Isoles Vergines americanes + Vietnam + Vanuatu + Wallis y Futuna + Samoa + Pseudo-azënc + Pseudo-bidi + Kosovo + Yemen + Mayotte + Südafrica + Zambia + Zimbabwe + Raiun nia conesciü + + + Calënder gregorian + Calënder ISO-8601 + Ordinamënt standard + Zifres ozidentales + + + metrich + Gran Bretagna + Stac Unis + + + Lingaz: {0} + Scritöra: {0} + Area geografica: {0} + + + + [aáàâ b cć d eéèêë f g h iíî j k l m n oóôö p q r s t uúü v w x y z] + [ăåäãąā ĉčċç ð ěėē ğ ìïī ńňñ òŏőõō ŕř śŝş ß ùûůűū ýÿ źžż] + [\- ‑ . % ‰ + 0 1 2 3 4 5 6 7 8 9] + [\- ‑ , ; \: ! ? . '’ “”„ « » ( ) \[ \] \{ \} @ * / \& # < >] + + + + + + + + + + + + + + EEEE, d MMMM 'dl' y G + + + + + dd MMMM y G + + + + + dd MMM y G + + + + + dd.MM.yy GGGGG + + + + + + + {1}, {0} + + + {1} 'dales' {0} + + + + + {1}, {0} + + + {1} 'dales' {0} + + + + + {1}, {0} + + + {1}, {0} + + + + + {1}, {0} + + + {1}, {0} + + + + E, h:mm B + E, h:mm:ss B + E, 'ai' d + E, h:mm a + E, HH:mm + E, h:mm:ss a + E, HH:mm:ss + y G + d.M.y GGGGG + MMM y G + d MMM y G + E, d MMM y G + hh a + hh:mm a + hh:mm:ss a + d.M. + E, d.M. + d. MMM + E, d. MMM + d MMMM + y G + y G + M.y GGGGG + d.M.y GGGGG + E, d.M.y GGGGG + MMM y G + d MMM y G + E, d MMM y G + MMMM 'dl' y G + QQQ y G + QQQQ y G + + + + M.y – M.y GGGGG + M.y – M.y GGGGG + + + d.M.y – d.M.y GGGGG + d.M.y GGGGG – d.M.y GGGGG + d.M.y – d.M.y GGGGG + d.M.y – d.M.y GGGGG + + + E, d.M.y – E, d.M.y GGGGG + E, d.M.y – E, d.M.y GGGGG + E, d.M.y – E, d.M.y GGGGG + E, d.M.y – E, d.M.y GGGGG + + + MMM y G – MMM y G + MMM – MMM y G + MMM y – MMM y G + + + d–d MMM y G + d MMM y G – d MMM y G + d MMM – d MMM y G + d MMM y – d MMM y G + + + E, d MMM – E, d MMM y G + E, d MMM y G – E, d MMM y G + E, d MMM – E, d MMM y G + E, d MMM y – E, d MMM y G + + + M–M + + + dd.MM. – dd.MM. + dd.MM. – dd.MM. + + + E, dd.MM. – E, dd.MM. + E, dd.MM. – E, dd.MM. + + + MMM–MMM + + + dd–dd MMM + dd MMM – dd MMM + + + E, dd – E, dd MMM + E, dd MMM – E, dd MMM + + + y–y G + + + MM.y – MM.y G + MM.y – MM.y G + + + dd.MM.y – dd.MM.y G + dd.MM.y – dd.MM.y G + dd.MM.y – dd.MM.y G + + + E, dd.MM.y – E, dd.MM.y G + E, dd.MM.y – E, dd.MM.y G + E, dd.MM.y – E, dd.MM.y G + + + MMM–MMM y G + MMM y – MMM y G + + + dd–dd MMM y G + dd MMM – dd MMM y G + dd MMM y – dd MMM y G + + + E, d – E, d MMM y G + E, d MMM – E d MMM y G + E, d MMM y – E, d MMM y G + + + MMMM–MMMM y G + MMMM y – MMMM y G + + + + + + + + + de jená + de forá + de merz + d’aurí + de ma + de jügn + de messé + d’aost + de set + d’oto + de nov + de dez + + + J + F + M + A + M + J + M + A + S + O + N + D + + + de jená + de forá + de merz + d’aurí + de ma + de jügn + de messé + d’aost + de setëmber + d’otober + de novëmber + de dezëmber + + + + + jená + forá + merz + aurí + ma + jügn + messé + aost + set + oto + nov + dez + + + J + F + M + A + M + J + M + A + S + O + N + D + + + jená + forá + merz + aurí + ma + jügn + messé + aost + setëmber + otober + novëmber + dezëmber + + + + + + + dom + lön + mert + merc + jöb + vën + sab + + + D + L + M + M + J + V + S + + + dom + lön + mert + merc + jöb + vën + sab + + + domënia + lönesc + mertesc + mercui + jöbia + vëndres + sabeda + + + + + dom + lön + mert + merc + jöb + vën + sab + + + D + L + M + M + J + V + S + + + dom + lön + mert + merc + jöb + vën + sab + + + domënia + lönesc + mertesc + mercui + jöbia + vëndres + sabeda + + + + + + + T1 + T2 + T3 + T4 + + + pröm trimester + secundo trimester + terzo trimester + cuarto trimester + + + + + T1 + T2 + T3 + T4 + + + pröm trimester + secundo trimester + terzo trimester + cuarto trimester + + + + + + dan Gejú Crist + dan le tëmp cristian + A.D. + Tëmp cristian + + + dan G.C. + dan t.c. + AD + t.c. + + + + + + EEEE, d MMMM 'dl' y + + + + + d MMMM y + + + + + d MMM y + + + + + dd.MM.yy + + + + + + + HH:mm:ss zzzz + + + + + HH:mm:ss z + + + + + HH:mm:ss + + + + + HH:mm + + + + + + + {1} {0} + + + {1} 'dales' {0} + + + + + {1} {0} + + + {1} 'dales' {0} + + + + + {1}, {0} + + + {1}, {0} + + + + + {1}, {0} + + + {1}, {0} + + + + E, h:mm B + E, h:mm:ss B + E, d + E, h:mm a + E, HH:mm + E, h:mm:ss a + E, HH:mm:ss + y G + d.M.y GGGGG + LLL y G + d MMM y G + E, d MMM y G + d.M. + E, d.M. + d MMM + E, d MMM + d MMMM + 'edema' W MMMM + 'edema' W MMMM + MM.y + d.M.y + E, d.M.y + LLL y + d MMM y + E, d MMM y + LLLL y + QQQ y + QQQQ y + 'edema' w 'dl' Y + 'edema' w 'dl' Y + + + + y G – y G + y – y G + + + MM.y GGGGG – MM.y GGGGG + MM.y – MM.y GGGGG + MM.y – MM.y GGGGG + + + d.M.y – d.M.y GGGGG + d.M.y GGGGG – d.M.y GGGGG + d.M.y – d.M.y GGGGG + d.M.y – d.M.y GGGGG + + + E, d.M.y – E, d.M.y GGGGG + E, d.M.y – E, d.M.y GGGGG + E, d.M.y – E, d.M.y GGGGG + E, d.M.y – E, d.M.y GGGGG + + + LLL y G – LLL y G + LLL – LLL y G + LLL y – LLL y G + + + d – d MMM y G + d MMM y G – d MMM y G + d MMM – d MMM y G + d MMM y – d MMM y G + + + E, d MMM – E, d MMM y G + E, d MMM y G – E, d MMM y G + E, d MMM – E, d MMM y G + E, d MMM y – E, d MMM y G + + + M–M + + + dd.MM. – dd.MM. + dd.MM. – dd.MM. + + + E, dd.MM. – E, dd.MM. + E, dd.MM. – E, dd.MM. + + + d–d MMM + d MMM – d MMM + + + E, d – E, d MMM + E, d MMM – E, d MMM + + + MM.y – MM.y + MM.y – MM.y + + + dd.MM.y – dd.MM.y + dd.MM.y – dd.MM.y + dd.MM.y – dd.MM.y + + + E, dd.MM.y – E, dd.MM.y + E, dd.MM.y – E, dd.MM.y + E, dd.MM.y – E, dd.MM.y + + + LLL–LLL y + LLL y – LLL y + + + d–d MMM y + d MMM – d MMM y + d MMM y – d MMM y + + + E, d – E, d MMM y + E, d MMM – E, d MMM y + E, d MMM y – E, d MMM y + + + LLLL–LLLL y + LLLL y – LLLL y + + + + + + + + epoca + + + epoca + + + ann + l’ann passé + chësc ann + l’ann che vëgn + + te {0} n ann + te {0} agn + + + dan da {0} n ann + dan da {0} agn + + + + ann + l’ann passé + chësc ann + l’ann che vëgn + + te {0} n ann + te {0} agn + + + dan da {0} n ann + dan da {0} agn + + + + ann + l’ann passé + chësc ann + l’ann che vëgn + + + trimester + trimester da denant + chësc trimester + trimester che vëgn + + te {0} n trimester + te {0} trimestri + + + dan da {0} n trimester + dan da {0} trimestri + + + + trim. + + te {0} n trim. + te {0} trim. + + + dan da {0} n trim. + dan da {0} trim. + + + + trim. + + te {0} n trim. + te {0} trim. + + + dan da {0} n trim. + dan da {0} trim. + + + + mëis + le mëis da denant + chësc mëis + le mëis che vëgn + + te {0} n mëis + te {0} mëisc + + + dan da {0} n mëis + dan da {0} mëisc + + + + mëis + le mëis da denant + chësc mëis + le mëis che vëgn + + te {0} n mëis + te {0} mëisc + + + dan da {0} n mëis + dan da {0} mëisc + + + + mëis + le mëis da denant + chësc mëis + le mëis che vëgn + + + edema + l’edema da denant + chësta edema + l’edema che vëgn + + te {0} n’edema + te {0} edemes + + + dan da {0} n’edema + dan da {0} edemes + + l’edema dl {0} + + + ede. + edema da denant + chësta edema + edema che vëgn + + te {0} n’ede. + te {0} ede. + + + dan da {0} n’ede. + dan da {0} ede. + + l’edema dl {0} + + + ede + edema da denant + chësta edema + edema che vëgn + l’edema dl {0} + + + edema dl mëis + + + ede. dl mëis + + + de + inier + incö + indoman + + te {0} n de + te {0} dis + + + dan da {0} n de + dan da {0} dis + + + + de + inier + incö + indoman + + te {0} n de + te {0} dis + + + dan da {0} n de + dan da {0} dis + + + + de + inier + incö + indoman + + + de dl ann + + + de dl ann + + + de dl’edema + + + de dl’ede. + + + de dl mëis + + + de dl mëis + + + l’ultima domënia + chësta domënia + la domënia che vëgn + + domënia te {0} n’edema + domënia te {0} edemes + + + dan da {0} na domënia + dan da {0} domënies + + + + l’ultima dom. + chësta dom. + la dom. che vëgn + + dom. te {0} n’edema + dom. te {0} edemes + + + dan da {0} na dom. + dan da {0} dom. + + + + + dom te {0} n’ede. + dom te {0} ede. + + + dan da {0} na dom + dan da {0} dom + + + + ultimo lönesc + chësc lönesc + le lönesc che vëgn + + lönesc te {0} n’edema + lönesc te {0} edemes + + + lönesc dan da {0} n’edema + lönesc dan da {0} edemes + + + + l’ultimo lön. + chësc lön. + le lön. che vëgn + + lön. te {0} n’edema + lön. te {0} edemes + + + lön. dan da {0} n’edema + lön. dan da {0} edemes + + + + l’ultimo lön + chësc lön + le lön che vëgn + + lön te {0} n’ede. + lön te {0} ede. + + + lön dan da {0} n’ede. + lön dan da {0} ede. + + + + l’ultimo mertesc + chësc mertesc + le mertesc che vëgn + + mertesc te {0} n’edema + mertesc te {0} edemes + + + mertesc dan da {0} n’edema + mertesc dan da {0} edemes + + + + l’ultimo mert. + chësc mert. + le mert. che vëgn + + mert. te {0} n’edema + mert. te {0} edemes + + + mert. dan da {0} n’edema + mert. dan da {0} edemes + + + + l’ultimo mert + chësc mert + le mert che vëgn + + mert. te {0} n’ede. + mert. te {0} ede. + + + mert dan da {0} n’ede. + mert dan da {0} ede. + + + + l’ultimo mercui + chësc mercui + le mercui che vëgn + + mercui te {0} n’edema + mercui te {0} edemes + + + mercui dan da {0} n’edema + mercui dan da {0} edemes + + + + l’ultimo merc. + chësc merc. + le merc. che vëgn + + merc. te {0} n’edema + merc. te {0} edemes + + + merc. dan da {0} n’edema + merc. dan da {0} edemes + + + + l’ultimo merc + chësc merc + le merc che vëgn + + merc te {0} n’ede. + merc te {0} ede. + + + merc dan da {0} n’ede. + merc dan da {0} ede. + + + + l’ultima jöbia + chësta jöbia + la jöbia che vëgn + + jöbia te {0} n’edema + jöbia te {0} edemes + + + jöbia dan da {0} n’edema + jöbia dan da {0} edemes + + + + l’ultima jöb. + chësta jöb. + la jöb. che vëgn + + jöb. te {0} n’edema + jöb. te {0} edemes + + + jöb. dan da {0} n’edema + jöb. dan da {0} edemes + + + + l’ultima jöb + chësta jöb + la jöb che vëgn + + jöb te {0} n’ede. + jöb te {0} ede. + + + jöb dan da {0} n’ede. + jöb dan da {0} ede. + + + + l’ultimo vëndres + chësc vëndres + le vëndres che vëgn + + vëndres te {0} n’edema + vëndres te {0} edemes + + + vëndres dan da {0} n’edema + vëndres dan da {0} edemes + + + + l’ultimo vën. + chësc vën. + le vën. che vëgn + + vën. te {0} n’edema + vën. te {0} edemes + + + vën. dan da {0} n’edema + vën. dan da {0} edemes + + + + l’ultimo vën + chësc vën + le vën che vëgn + + vën te {0} n’ede. + vën te {0} ede. + + + vën dan da {0} n’ede. + vën dan da {0} ede. + + + + l’ultima sabeda + chësta sabeda + la sabeda che vëgn + + sabeda te {0} n’edema + sabeda te {0} edemes + + + sabeda dan da {0} n’edema + sabeda dan da {0} edemes + + + + l’ultima sab. + chësta sab. + la sab. che vëgn + + sab. te {0} n’edema + sab. te {0} edemes + + + sab. dan da {0} n’edema + sab. dan da {0} edemes + + + + l’ultima sab + chësta sab + la sab che vëgn + + sab te {0} n’ede. + sab te {0} ede. + + + sab dan da {0} n’ede. + sab dan da {0} ede. + + + + AM/PM + + + AM/PM + + + ora + chësta ora + + te {0} n’ora + te {0} ores + + + dan da {0} n’ora + dan da {0} ores + + + + h. + + + h + + + menüt + chësc menüt + + te {0} n menüt + te {0} menüc + + + dan da {0} n menüt + dan da {0} menüc + + + + min. + + te {0} n min. + te {0} min. + + + dan da {0} n min. + dan da {0} min. + + + + min + + te {0} m + te {0} m + + + dan da {0} m + dan da {0} m + + + + secunt + sëgn + + te {0} n secunt + te {0} secunc + + + dan da {0} n secunt + dan da {0} secunc + + + + sec. + + te {0} n sec. + te {0} sec. + + + dan da {0} n sec. + dan da {0} sec. + + + + sec + + te {0} s + te {0} s + + + dan da {0} s + dan da {0} s + + + + zona orara + + + zona orara + + + + Ora: {0} + Ora da d’isté: {0} + Ora standard: {0} + + + Tëmp coordiné universal + + + + Cité nia conesciüda + + + Tirana + + + Viena + + + Brüssel + + + Porto Novo + + + Turic + + + Isola de Pasca + + + Bogotá + + + Praga + + + Büsingen + + + Algier + + + Canaries + + + Faroer + + + + Ora da d’isté britanica + + Londra + + + Tiflis + + + Atene + + + Georgia dl Süd + + + Giacarta + + + + Ora da d’isté dl’Irlanda + + + + Ierusalem + + + Isola de Man + + + Calcuta + + + Bagdad + + + Teheran + + + Reykjavík + + + Roma + + + Giamaica + + + Tokio + + + Isoles Comores + + + Pjöngjang + + + Lussemburgh + + + Tripolis + + + Rangun + + + Ulan Bator + + + Cité dl Messich + + + Isoles Marchejes + + + Varsavia + + + Lisbona + + + Bucarest + + + Belgrad + + + Mosca + + + Cita + + + Iakutsk + + + Sachalin + + + Riad + + + Khartum + + + Singapur + + + Lubiana + + + Lomé + + + Daressalam + + + Kiev + + + Iakutat + + + Beulah, Dakota dl Nord + + + New Salem, Dakota dl Nord + + + Center, Dakota dl Nord + + + Samarcanda + + + Ho Chi Minh City + + + + Ora dl Afghanistan + + + + + Ora dl’Africa zentrala + + + + + Ora dl’Africa orientala + + + + + Ora dl’Africa dl Süd + + + + + Ora dl’Africa ozidentala + Ora standard dl’Africa ozidentala + Ora da d’isté dl’Africa ozidentala + + + + + Ora dl’Alaska + Ora standard dl’Alaska + Ora da d’isté dl’Alaska + + + + + Ora dl’Amazonia + Ora standard dl’Amazonia + Ora da d’isté dl’Amazonia + + + + + Ora dl’America dl Nord zentrala + Ora standard dl’America dl Nord zentrala + Ora da d’isté dl’America dl Nord zentrala + + + + + Ora dl’America dl Nord orientala + Ora standard dl’America dl Nord orientala + Ora da d’isté dl’America dl Nord orientala + + + + + Ora dles Rocky Mountains + Ora standard dles Rocky Mountains + Ora da d’isté dles Rocky Mountains + + + + + Ora dl’America dl Nord ozidentala + Ora standard dl’America dl Nord ozidentala + Ora da d’isté dl’America dl Nord ozidentala + + + + + Ora de Apia + Ora standard de Apia + Ora da d’isté de Apia + + + + + Ora dl’Arabia + Ora standard dl’Arabia + Ora da d’isté dl’Arabia + + + + + Ora dl’Argentina + Ora standard dl’Argentina + Ora da d’isté dl’Argentina + + + + + OraOra dl’Argentina ozidentala dl’Argentina ozidentala + Ora standard dl’Argentina ozidentala + Ora da d’isté dl’Argentina ozidentala + + + + + Ora dl’Armenia + Ora standard dl’Armenia + Ora da d’isté dl’Armenia + + + + + Ora dl Atlantich + Ora standard dl Atlantich + Ora da d’isté dl Atlantich + + + + + Ora dl’Australia zentrala + Ora standard dl’Australia zentrala + Ora da d’isté dl’Australia zentrala + + + + + Ora dl’Australia zënter-ozidentala + Ora standard dl’Australia zënter-ozidentala + Ora da d’isté dl’Australia zënter-ozidentala + + + + + Ora dl’Australia orientala + Ora standard dl’Australia orientala + Ora da d’isté dl’Australia orientala + + + + + Ora dl’Australia ozidentala + Ora standard dl’Australia ozidentala + Ora da d’isté dl’Australia ozidentala + + + + + Ora dl Azerbaijan + Ora standard dl Azerbaijan + Ora da d’isté dl Azerbaijan + + + + + Ora dles Azores + Ora standard dles Azores + Ora da d’isté dles Azores + + + + + Ora dl Bangladesc + Ora standard dl Bangladesc + Ora da d’isté dl Bangladesc + + + + + Ora dl Bhutan + + + + + Ora dla Bolivia + + + + + Ora de Brasilia + Ora standard de Brasilia + Ora da d’isté de Brasilia + + + + + Ora dl Brunei Darussalam + + + + + Ora de Capo Verde + Ora standard de Capo Verde + Ora da d’isté de Capo Verde + + + + + Ora standard de Chamorro + + + + + Ora dles Isoles Chatham + Ora standard dles Isoles Chatham + Ora da d’isté dles Isoles Chatham + + + + + Ora dl Cile + Ora standard dl Cile + Ora da d’isté dl Cile + + + + + Ora dla Cina + Ora standard dla Cina + Ora da d’isté dla Cina + + + + + Ora dla Isola dl Nadé + + + + + Ora dles Isoles Cocos + + + + + Ora dla Colombia + Ora standard dla Colombia + Ora da d’isté dla Colombia + + + + + Ora dles Isoles Cook + Ora standard dles Isoles Cook + Ora da d’isté mesana dles Isoles Cook + + + + + Ora de Cuba + Ora standard de Cuba + Ora da d’isté de Cuba + + + + + Ora de Davis + + + + + Ora de Dumont-d’Urville + + + + + Ora de Timor Ost + + + + + Ora dl’Isola de Pasca + Ora standard dl’Isola de Pasca + Ora da d’isté dl’Isola de Pasca + + + + + Ora dl Ecuador + + + + + Ora dl’Europa zentrala + Ora standard dl’Europa zentrala + Ora da d’isté dl’Europa zentrala + + + + + Ora dl’Europa orientala + Ora standard dl’Europa orientala + Ora da d’isté dl’Europa orientala + + + + + Ora de Kaliningrad + + + + + Ora dl’Europa ozidentala + Ora standard dl’Europa ozidentala + Ora da d’isté dl’Europa ozidentala + + + + + Ora dles Isoles Falkland + Ora standard dles Isoles Falkland + Ora da d’isté dles Isoles Falkland + + + + + Ora dles Fiji + Ora standard dles Fiji + Ora da d’isté dles Fiji + + + + + Ora dla Guyana franzeja + + + + + Ora di Teritori franzesc dl Süd y dl’Antartica + + + + + Ora dles Galapagos + + + + + Ora dles Isoles Gambier + + + + + Ora dla Georgia + Ora standard dla Georgia + Ora da d’isté dla Georgia + + + + + Ora dles Isoles Gilbert + + + + + Ora mesana de Greenwich + + + + + Ora dla Groenlandia orientala + Ora standard dla Groenlandia orientala + Ora da d’isté dla Groenlandia orientala + + + + + Ora dla Groenlandia ozidentala + Ora standard dla Groenlandia ozidentala + Ora da d’isté dla Groenlandia ozidentala + + + + + Ora standard dl Golf + + + + + Ora dla Guyana + + + + + Ora dles Isoles Hawaii-Aleutines + Ora standard dles Isoles Hawaii-Aleutines + Ora da d’isté dles Isoles Hawaii-Aleutines + + + + + Ora de Hong Kong + Ora standard de Hong Kong + Ora da d’isté de Hong Kong + + + + + Ora de Hovd + Ora standard de Hovd + Ora da d’isté de Hovd + + + + + Ora standard dl’India + + + + + Ora dl Ozean indian + + + + + Ora dl’Indocina + + + + + Ora dl’Indonesia zentrala + + + + + Ora dl’Indonesia orientala + + + + + Ora dl’Indonesia ozidentala + + + + + Ora dl Iran + Ora standard dl Iran + Ora da d’isté dl Iran + + + + + Ora de Irkutsk + Ora standard de Irkutsk + Ora da d’isté de Irkutsk + + + + + Ora d’Israel + Ora standard d’Israel + Ora da d’isté d’Israel + + + + + Ora dl Iapan + Ora standard dl Iapan + Ora da d’isté dl Iapan + + + + + Ora dl Kazakhstan + + + + + Ora dl Kazakhstan oriental + + + + + Ora dl Kazakhstan ozidental + + + + + Ora dla Corea + Ora standard dla Corea + Ora da d’isté dla Corea + + + + + Ora dl’Isola Kosrae + + + + + Ora de Krasnoyarsk + Ora standard de Krasnoyarsk + Ora da d’isté de Krasnoyarsk + + + + + Ora dl Kyrgystan + + + + + Ora dles Isoles Line + + + + + Ora de Lord Howe + Ora standard de Lord Howe + Ora da d’isté de Lord Howe + + + + + Ora de Magadan + Ora standard de Magadan + Ora da d’isté de Magadan + + + + + Ora dla Malesia + + + + + Ora dles Maldives + + + + + Ora dles Isoles Marchejes + + + + + Ore dles Isoles Marshall + + + + + Ora de Mauritius + Ora standard de Mauritius + Ora da d’isté de Mauritius + + + + + Ora de Mawson + + + + + Ora dla spona pazifica dl Messich + Ora standard dla spona pazifica dl Messich + Ora da d’isté dla spona pazifica dl Messich + + + + + Ora de Ulan Bator + Ora standard de Ulan Bator + Ora da d’isté de Ulan Bator + + + + + Ora de Mosca + Ora standard de Mosca + Ora da d’isté de Mosca + + + + + Ora dl Myanmar + + + + + Ora de Nauru + + + + + Ora dl Nepal + + + + + Ora dla Nöia Caledonia + Ora standard dla Nöia Caledonia + Ora da d’isté dla Nöia Caledonia + + + + + Ora dla Nöia Zelanda + Ora standard dla Nöia Zelanda + Ora da d’isté dla Nöia Zelanda + + + + + Ora de Newfoundland + Ora standard de Newfoundland + Ora da d’isté de Newfoundland + + + + + Ora de Niue + + + + + Ora dl’Isola Norfolk + Ora standard dl’Isola Norfolk + Ora da d’isté dl’Isola Norfolk + + + + + Ora de Fernando de Noronha + Ora standard de Fernando de Noronha + Ora da d’isté de Fernando de Noronha + + + + + Ora de Novosibirsk + Ora standard de Novosibirsk + Ora da d’isté de Novosibirsk + + + + + Ora de Omsk + Ora standard de Omsk + Ora da d’isté de Omsk + + + + + Ora dl Pakistan + Ora standard dl Pakistan + Ora da d’isté dl Pakistan + + + + + Ora de Palau + + + + + Ora dla Papua Nöia Guinea + + + + + Ora dl Paraguay + Ora standard dl Paraguay + Ora da d’isté dl Paraguay + + + + + Ora dl Perú + Ora standard dl Perú + Ora da d’isté dl Perú + + + + + Ora dles Filipines + Ora standard dles Filipines + Ora da d’isté dles Filipines + + + + + Ora dles Isoles Phoenix + + + + + Ora de St. Pierre y Miquelon + Ora standard de St. Pierre y Miquelon + Ora da d’isté de St. Pierre y Miquelon + + + + + Ora dles Isoles Pitcairn + + + + + Ora de Ponape + + + + + Ora de Pjöngjang + + + + + Ora de Réunion + + + + + Ora de Rothera + + + + + Ora de Sachalin + Ora standard de Sachalin + Ora da d’isté de Sachalin + + + + + Ora de Samoa + Ora standard de Samoa + Ora da d’isté de Samoa + + + + + Ora dles Seychelles + + + + + Ora standard de Singapur + + + + + Ora dles Isoles Salomon + + + + + Ora dla Georgia dl Süd + + + + + Ora dl Surinam + + + + + Ora de Syowa + + + + + Ora de Tahiti + + + + + Ora de Taipei + Ora standard de Taipei + Ora da d’isté de Taipei + + + + + Ora dl Tajikistan + + + + + Ora de Tokelau + + + + + Ora de Tonga + Ora standard de Tonga + Ora da d’isté de Tonga + + + + + Ora dl Chuuk + + + + + Ora dl Turkmenistan + Ora standard dl Turkmenistan + Ora da d’isté dl Turkmenistan + + + + + Ora de Tuvalu + + + + + Ora dl Uruguay + Ora standard dl Uruguay + Ora da d’isté dl Uruguay + + + + + Ora dl Uzbekistan + Ora standard dl Uzbekistan + Ora da d’isté dl Uzbekistan + + + + + Ora dl Vanuatu + Ora standard dl Vanuatu + Ora da d’isté dl Vanuatu + + + + + Ora dl Venezuela + + + + + Ora de Vladivostok + Ora standard de Vladivostok + Ora da d’isté de Vladivostok + + + + + Ora de Volgograd + Ora standard de Volgograd + Ora da d’isté de Volgograd + + + + + Ora de Vostok + + + + + Ora dl’Isola de Wake + + + + + Ora de Wallis y Futuna + + + + + Ora de Iakutsk + Ora standard de Iakutsk + Ora da d’isté de Iakutsk + + + + + Ora de Yekaterinburg + Ora standard de Yekaterinburg + Ora da d’isté de Yekaterinburg + + + + + Ora dl Yukon + + + + + + + , + . + + + + + mile + 0 mile + 00 mile + 00 mile + 000 mile + 000 mile + 0 miliun + 0 miliuns + 00 miliuns + 00 miliuns + 000 miliuns + 000 miliuns + 0 miliard + 0 miliarg + 00 miliarg + 00 miliarg + 000 miliarg + 000 miliarg + 0 biliun + 0 biliuns + 00 biliuns + 00 biliuns + 000 biliuns + 000 biliuns + + + + + 0m + 0m + 00m + 00m + 000m + 000m + 0 Mln + 0 Mln + 00 Mln + 00 Mln + 000 Mln + 000 Mln + 0 Mlg + 0 Mlg + 00 Mlg + 00 Mlg + 000 Mlg + 000 Mlg + 0 Bln + 0 Bln + 00 Bln + 00 Bln + 000 Bln + 000 Bln + + + + + + + #,##0.00 ¤ + + + #,##0.00 ¤ + + + + + 0m ¤ + 0m ¤ + 00m ¤ + 00m ¤ + 000m ¤ + 000m ¤ + 0 Mln ¤ + 0 Mln ¤ + 00 Mln ¤ + 00 Mln ¤ + 000 Mln ¤ + 000 Mln ¤ + 0 Mlg ¤ + 0 Mlg ¤ + 00 Mlg ¤ + 00 Mlg ¤ + 000 Mlg ¤ + 000 Mlg ¤ + 0 Bln ¤ + 0 Bln ¤ + 00 Bln ¤ + 00 Bln ¤ + 000 Bln ¤ + 000 Bln ¤ + + + + + + Dirham di Emirac Arabics Unis + dirham di EAU + dirhams di EAU + + + Afghani dl Afghanistan + Afghani dl Afghanistan + Afghanis dl Afghanistan + + + Lek dl’Albania + lek dl’Albania + lekë dl’Albania + + + Dram dl’Armenia + dram dl’Armenia + drams dl’Armenia + + + Rainesc dles Antiles neerlandejes + rainesc dles Antiles neerlandejes + rainesc dles Antiles neerlandejes + + + Kwanza dl Angola + kwanza dl Angola + kwanzas dl Angola + + + Peso dl’Argentina + peso dl’Argentina + pesos dl’Argentina + + + Dolar dl’Australia + dolar dl’Australia + dolars dl’Australia + + + Florin d’Aruba + florin d’Aruba + florins d’Aruba + + + Manat dl Azerbaijan + manat dl Azerbaijan + manats dl Azerbaijan + + + March convertibl dla Bosnia y Herzegovina + march convertibl dla Bosnia y Herzegovina + marcs convertibli dla Bosnia y Herzegovina + + + Dolar de Barbados + dolar de Barbados + dolars de Barbados + + + Taka dl Bangladesc + taka dl Bangladesc + takas dl Bangladesc + + + Lev dla Bulgaria + lev dla Bulgaria + levs dla Bulgaria + + + Dinar dl Bahrain + dinar dl Bahrain + dinars dl Bahrain + + + Franch dl Burundi + franch dl Burundi + francs dl Burundi + + + Bermudan Dollar + dolar dles Bermuda + dolars dles Bermuda + + + Dolar dl Brunei + dolar dl Brunei + dolars dl Brunei + + + Boliviano dla Bolivia + boliviano dla Bolivia + bolivianos dla Bolivia + + + Real dl Brasil + real dl Brasil + reai dl Brasil + + + Dolar dles Bahamas + dolar dles Bahamas + dolars dles Bahamas + + + Ngultrum dl Bhutan + ngultrum dl Bhutan + ngultrums dl Bhutan + + + Pula dl Botswana + pula dl Botswana + pulas dl Botswana + + + Rubl dla Belaruscia + rubl dla Belaruscia + rubli dla Belaruscia + + + Dolar dl Belize + dolar dl Belize + dolars dl Belize + + + Dolar dl Canada + dolar dl Canada + dolars dl Canada + + + Franch dl Congo + franch dl Congo + francs dl Congo + + + Franch dla Svizera + franch dla Svizera + francs dla Svizera + + + Peso dl Cile + peso dl Cile + pesos dl Cile + + + Yuan dla Cina (offshore) + yuan dla Cina (offshore) + yuans dla Cina (offshore) + + + Yuan dla Cina + yuan dla Cina + yuans dla Cina + + + Peso dla Colombia + peso dla Colombia + pesos dla Colombia + + + Colón dl Costa Rica + colón dl Costa Rica + colóns dl Costa Rica + + + Peso convertibl de Cuba + peso convertibl de Cuba + pesos convertibli de Cuba + + + Peso de Cuba + peso de Cuba + pesos de Cuba + + + Escudo de Capo Verde + escudo de Capo Verde + escudos de Capo Verde + + + Corona dla Cechia + corona dla Cechia + corones dla Cechia + + + Franch dl Djibouti + franch dl Djibouti + francs dl Djibouti + + + Corona dla Danimarca + corona dla Danimarca + corones dla Danimarca + + + Peso dla Republica Dominicana + peso dla Republica Dominicana + pesos dla Republica Dominicana + + + Dinar dl’Algeria + dinar dl’Algeria + dinars dl’Algeria + + + Sterlina dl Egit + sterlina dl Egit + sterlines dl Egit + + + Nakfa dl’Eritrea + nakfa dl’Eritrea + nakfas dl’Eritrea + + + Birr dl’Etiopia + birr dl’Etiopia + birrs dl’Etiopia + + + Euro + euro + euro + + + Dolar dles Fiji + dolar dles Fiji + dolars dles Fiji + + + Sterlina dles Isoles Falkland + sterlina dles Isoles Falkland + sterlines dles Isoles Falkland + + + Sterlina Britanica + sterlina britanica + sterlines britaniches + + + Lari dla Georgia + lari dla Georgia + laris dla Georgia + + + Cedi dl Ghana + cedi dl Ghana + cedis dl Ghana + + + Sterlina de Gibiltera + sterlina de Gibiltera + sterlines de Gibiltera + + + Dalasi dl Gambia + dalasi dl Gambia + dalasis dl Gambia + + + Franch dla Guinea + franch dla Guinea + francs dla Guinea + + + Quetzal dl Guatemala + quetzal dl Guatemala + quetzai dl Guatemala + + + Dolar dla Guyana + dolar dla Guyana + dolars dla Guyana + + + Dolar de Hong Kong + dolar de Hong Kong + dolars de Hong Kong + + + Lempira dl Honduras + lempira dl Honduras + lempiras dl Honduras + + + Kuna dla Croazia + kuna dla Croazia + kunas dla Croazia + + + Gourde de Haiti + gourde de Haiti + gourdes de Haiti + + + Forint dl’Ungaria + forint dl’Ungaria + forints dl’Ungaria + + + Rupia dla Indonesia + rupia dla Indonesia + rupies dla Indonesia + + + Shekel Nü d’Israel + shekel nü d’Israel + shekli nüs d’Israel + + + Rupia dl’India + rupia dl’India + rupies dl’India + + + Dinar dl Irak + dinar dl Irak + dinars dl Irak + + + Rial dl Iran + rial dl Iran + riai dl Iran + + + Corona dl’Islanda + corona dl’Islanda + corones dl’Islanda + + + Dolar dla Giamaica + dolar dla Giamaica + dolars dla Giamaica + + + Dinar dla Iordania + dinar dla Iordania + dinars dla Iordania + + + Yen dl Iapan + yen dl Iapan + yens dl Iapan + + + Shilling dl Kenia + shilling dl Kenia + shillings dl Kenia + + + Som dl Kyrgystan + som dl Kyrgystan + soms dl Kyrgystan + + + Riel dla Cambogia + riel dla Cambogia + riei dla Cambogia + + + Franch dles Comores + franch dles Comores + francs dles Comores + + + Won dla Corea dl Nord + won dla Corea dl Nord + wons dla Corea dl Nord + + + Won dla Corea dl Süd + won dla Corea dl Süd + wons dla Corea dl Süd + + + Dinar dl Kuwait + dinar dl Kuwait + dinars dl Kuwait + + + Dolar dles Isoles Cayman + dolar dles Isoles Cayman + dolars dles Isoles Cayman + + + Tenge dl Kazakhstan + tenge dl Kazakhstan + tenges dl Kazakhstan + + + Kip dl Laos + kip dl Laos + kips dl Laos + + + Lira dl Libanon + lira dl Libanon + lires dl Libanon + + + Rupia dl Sri Lanka + rupia dl Sri Lanka + rupies dl Sri Lanka + + + Dolar dla Liberia + dolar dla Liberia + dolars dla Liberia + + + Loti dl Lesotho + loti dl Lesotho + lotis dl Lesotho + + + Dinar dla Libia + dinar dla Libia + dinars dla Libia + + + Dirham dl Maroco + dirham dl Maroco + dirhams dl Maroco + + + Leu dla Moldavia + leu dla Moldavia + lei dla Moldavia + + + Ariary dl Madagascar + ariary dl Madagascar + ariarys dl Madagascar + + + Denar dla Macedonia + denar dla Macedonia + denars dla Macedonia + + + Kyat dl Myanmar + kyat dl Myanmar + kyats dl Myanmar + + + Tugrik dla Mongolia + tugrik dla Mongolia + tugriks dla Mongolia + + + Pataca de Macao + pataca de Macao + pataches de Macao + + + Ouguiya dla Mauritania + ouguiya dla Mauritania + ouguiyas dla Mauritania + + + Rupia de Mauritius + rupia de Mauritius + rupies de Mauritius + + + Rufiyaa dles Maldives + rufiyaa dles Maldives + rufiyaas dles Maldives + + + Kwacha dl Malawi + kwacha dl Malawi + kwachas dl Malawi + + + Peso dl Messich + peso dl Messich + pesos dl Messich + + + Ringgit dla Malesia + ringgit dla Malesia + ringgits dla Malesia + + + Metical dl Mozambich + metical dl Mozambich + meticai dl Mozambich + + + Dolar dla Namibia + dolar dla Namibia + dolars dla Namibia + + + Naira dl Nigeria + naira dl Nigeria + nairas dl Nigeria + + + Cordoba dl Nicaragua + cordoba dl Nicaragua + cordobas dl Nicaragua + + + Corona dla Norvegia + corona dla Norvegia + corones dla Norvegia + + + Rupia dl Nepal + rupia dl Nepal + rupes dl Nepal + + + Dolar dla Nöia Zelanda + dolar dla Nöia Zelanda + dolars dla Nöia Zelanda + + + Rial dl Oman + rial dl Oman + riai dl Oman + + + Balboa de Panama + balboa de Panama + balboas de Panama + + + Sol dl Perú + sol dl Perú + soles dl Perú + + + Kina dla Papua Nöia Guinea + kina dla Papua Nöia Guinea + kinas dla Papua Nöia Guinea + + + Peso dles Filipines + peso dles Filipines + pesos dles Filipines + + + Rupia dl Pakistan + rupia dl Pakistan + rupies dl Pakistan + + + Zloty dla Polonia + zloty dla Polonia + zlotys dla Polonia + + + Guaraní dl Paraguay + guaraní dl Paraguay + guaranis dl Paraguay + + + Rial dl Qatar + rial dl Qatar + riai dl Qatar + + + Leu dla Romania + leu dla Romania + lei dla Romania + + + Dinar dla Serbia + dinar dla Serbia + dinars dla Serbia + + + Rubl dla Ruscia + rubl dla Ruscia + rubli dla Ruscia + + + Franch dla Ruanda + franch dla Ruanda + francs dla Ruanda + + + Rial dl’Arabia Saudita + rial dl’Arabia Saudita + riai dl’Arabia Saudita + + + Dolar dles Isoles Salomon + dolar dles Isoles Salomon + dolars dles Isoles Salomon + + + Rupia dles Seychelles + rupia dles Seychelles + rupies dles Seychelles + + + Sterlina dl Sudan + sterlina dl Sudan + sterlines dl Sudan + + + Corona dla Svezia + corona dla Svezia + corones dla Svezia + + + Dolar de Singapur + dolar de Singapur + dolars de Singapur + + + Sterlina de St. Helena + sterlina de St. Helena + sterlines de St. Helena + + + Leone dla Sierra Leone + leone dla Sierra Leone + leones dla Sierra Leone + + + Leone dla Sierra Leone (1964–2022) + leone dla Sierra Leone (1964–2022) + leones dla Sierra Leone (1964–2022) + + + Shilling dla Somalia + shilling dla Somalia + shillings dla Somalia + + + Dolar dl Surinam + dolar dl Surinam + dolars dl Surinam + + + Sterlina dl Sudan dl Süd + sterlina dl Sudan dl Süd + sterlines dl Sudan dl Süd + + + Dobra de São Tomé y Príncipe + dobra de São Tomé y Príncipe + dobras de São Tomé y Príncipe + + + Lira dla Siria + lira dla Siria + lira dla Siria + + + Lilangeni dl Eswatini + lilangeni dl Eswatini + emalangeni dl Eswatini + + + Bath dla Thailandia + bath dla Thailandia + baths dla Thailandia + + + Somoni dl Tajikistan + somoni dl Tajikistan + somonis dl Tajikistan + + + Manat dl Turkmenistan + manat dl Turkmenistan + manats dl Turkmenistan + + + Dinar dla Tunisia + dinar dla Tunisia + dinars dla Tunisia + + + Paʻanga dl Tonga + paʻanga dl Tonga + paʻangas dl Tonga + + + Lira türca + lira türca + lires türches + + + Dolar de Trinidad y Tobago + dolar de Trinidad y Tobago + dolars Trinidad y Tobago + + + Dolar Nü dl Taiwan + dolar nü dl Taiwan + dolars nüs dl Taiwan + + + Shilling dla Tanzania + shilling dla Tanzania + shillings dla Tanzania + + + Grivnia dl’Ucraina + grivnia dl’Ucraina + grivnias dl’Ucraina + + + Shilling dl’Uganda + shilling dl’Uganda + shillings dl’Uganda + + + Dolar di USA + dolar di USA + dolars di USA + + + Peso dl Uruguay + peso dl Uruguay + pesos dl Uruguay + + + Sum dl Uzbekistan + sum dl Uzbekistan + sums dl Uzbekistan + + + bolívar dl Venezuela + bolivar dl Venezuela + bolivars dl Venezuela + + + Dong dl Vietnam + dong dl Vietnam + dongs dl Vietnam + + + Vatu de Vanuatu + vatu de Vanuatu + vatus de Vanuatu + + + Tala de Samoa + tala de Samoa + tala de Samoa + + + Franch CFA dl’Africa zentrala + franch CFA dl’Africa zentrala + francs CFA dl’Africa zentrala + + + Dolar di Caraibi orientai + dolar di Caraibi orientai + dolars di Caraibi orientai + + + Franch CFA dl’Africa ozidentala + franch CFA dl’Africa ozidentala + francs CFA dl’Africa ozidentala + + + Franch CFP + franch CFP + francs CFP + + + Valüta nia conesciüda + (monëda nia conesciüda) + (valüta nia conesciüda) + + + Rial dl Yemen + rial dl Yemen + riai dl Yemen + + + Rand dl Südafrica + rand dl Südafrica + rands dl Südafrica + + + Kwacha dl Zambia + kwacha dl Zambia + kwachas dl Zambia + + + + {0} de + {0} dis + Té la {0} a man dërta. + + + + + + punt cardinal + {0} ost + {0} nord + {0} süd + {0} vest + + + + + direziun + {0}O + {0}V + + + + + direziun + {0} O + {0} N + {0} S + {0} V + + + + + + {0} y {1} + {0} y {1} + + + {0} o {1} + {0} o {1} + + + {0} o {1} + {0} o {1} + + + {0} o {1} + {0} o {1} + + + {0} y {1} + {0} y {1} + + + {0} y {1} + + + {0} y {1} + + + diff --git a/make/data/cldr/common/main/lld_IT.xml b/make/data/cldr/common/main/lld_IT.xml new file mode 100644 index 00000000000..997a460bcf4 --- /dev/null +++ b/make/data/cldr/common/main/lld_IT.xml @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/make/data/cldr/common/main/lo.xml b/make/data/cldr/common/main/lo.xml index 4bad8dcdf54..1f9337282ae 100644 --- a/make/data/cldr/common/main/lo.xml +++ b/make/data/cldr/common/main/lo.xml @@ -70,6 +70,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ບີນີ ກົມ ຊິກຊິກາ + ອານີ ບາມບາຣາ ເບັງກາລີ ທິເບທັນ @@ -291,6 +292,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ໂຄມິ ຄໍນິຊ ຄວາກຄວາກລາ + ຄູວີ ເກຍກີສ ລາຕິນ ລາດີໂນ @@ -301,8 +303,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ລີຊຽນ ແກນດາ ລິມເບີກີຊ + ລີກູຣຽນ ລິນລູເອັດ ລາໂກຕາ + ລອມບາດ ລິງກາລາ ລາວ ແມັງໂກ້ @@ -495,6 +499,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ໂຄໂນຣຽນ ຊີເລຍແບບດັ້ງເດີມ ຊີເລຍ + ຊີເລສຊຽນ ທາມິລ ທຸດຊອນໃຕ້ ເຕລູກູ @@ -543,7 +548,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ອຸສເບກ ໄວ ເວນດາ + ເວເນຊຽນ ຫວຽດນາມ + ມາຄູວາ ໂວລາພັກ ໂວຕິກ ວັນໂຈ @@ -557,6 +564,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ຈີນອູ ການມິກ ໂຮຊາ + ຄັງຣີ ໂຊກາ ເຢົ້າ ຢັບ @@ -1049,8 +1057,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ວານົວຕູ ວາລລິສ ແລະ ຟູຕູນາ ຊາມົວ - Pseudo-Accents - Pseudo-Bidi + ສຳນຽງຊູໂດ + ຊູໂດບີດີ ໂຄໂຊໂວ ເຢເມນ ມາຢັອດ @@ -1771,12 +1779,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ທ່ຽງ​ຄືນ ທ່ຽງ ​ເຊົ້າ - ສວຍ + ສວາຍ ແລງ ​ກາງ​ຄືນ - ຕອນທ່ຽງ ​ເຊົ້າ ແລງ @@ -1797,7 +1804,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ກ່ອນ ຄ.ສ. - ກ່ອນຍຸກ ຄ.ສ ຄ.ສ. ຍຸກ ຄ.ສ @@ -1805,7 +1811,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - EEEE ທີ d MMMM G y + EEEE, d MMMM y GyMMMMEEEEd @@ -1900,38 +1906,38 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} – {1} - GGGGG MM/y – GGGGG MM/y - GGGGG MM/y – MM/y - GGGGG MM/y – MM/y + M/G y – M/G y + M/y – M/G y + M/y – M/G y - GGGGG dd/MM/y – dd/MM/y - GGGGG dd/MM/y – GGGGG dd/MM/y - GGGGG dd/MM/y – dd/MM/y - GGGGG dd/MM/y – dd/MM/y + d/M/y – d/M/G y + d/M/G y – d/M/G y + d/M/y – d/M/G y + d/M/y – d/M/G y - GGGGG E, dd/MM/y – E, dd/MM/y - GGGGG E, dd/MM/y – GGGGG E, dd/MM/y - GGGGG E, dd/MM/y – E, dd/MM/y - GGGGG E, dd/MM/y – E, dd/MM/y + E, d/M/G y – E, d/M/G y + E, d/M/G y – E, d/M/G y + E, d/M/y – E, d/M/G y + E, d/M/G y – E, d/M/G y - G MM/y – G MM/y - G MM – MM/y - G MM/y – MM/y + MMM G y – MMM G y + MMM – MMM G y + MMM G y– MMM G y - G d–d/MM/y - G dd/MM/y– G dd/MM/y - G dd/MM/y – dd/MM - G dd/MM/y – dd/MM/y + d–d MMM G y + d MMM G y – d MMM G y + d MMM – d MMM G y + d MMM G y – d MMM G y - G E, dd/MM/y – E, dd/MM/y - G E, dd/MM/y – G E, dd/MM/y - G E, dd/MM/y – E, dd/MM/y - G E, dd/MM/y – E, dd/MM/y + E, d MMM – E, d MMM G y + E, d MMM G y – E, d MMM G y + E, d MMM – E, d MMM G y + E, d MMM G y – E, d MMM G y M–M @@ -2753,6 +2759,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ເວລາ {0} ເວລາກາງເວັນ {0} ເວລາມາດຕະຖານ {0} + + ໂຮໂນລູລູ + ເວລາສາກົນເຊີງພິກັດ @@ -3490,9 +3499,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ອູລານບາຕາຣ໌ - - ຊອຍບອລຊານ - ມາເກົາ @@ -3653,7 +3659,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ເຮບຣອນ - ອາຊໍເຣສ + ອາ​ໂຊ​ເຣ​ສ ມາເດຣາ @@ -3892,9 +3898,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ນອມ - - ໂຮໂນລູລູ - ແອນເຄີເຣກ @@ -4272,13 +4275,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ​ເວ​ລາ​ຕອນ​ທ່ຽງ​ຈີນ - - - ເວ​ລາ​ໂຊຍ​ບາ​ຊັນ - ເວລາມາດຕະຖານໂຊຍບາຊັນ - ເວລາລະ​ດູ​ຮ້ອນໂຊຍບາຊັນ - - ເວ​ລາ​ເກາະ​ຄ​ຣິສ​ມາສ @@ -4471,7 +4467,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - ເວລາຫມະຫາສະຫມຸດອິນເດຍ + ເວລາມະຫາສະຫມຸດອິນເດຍ @@ -4522,6 +4518,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ເວ​ລາ​ຕອນ​ທ່ຽງ​ຍີ່​ປຸ່ນ + + + ເວລາຄາຊັກສຖານ + + ເວ​ລາ​ຄາ​ຊັກ​ສ​ຖານ​ຕາ​ເວັນ​ອອກ @@ -5026,7 +5027,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 0 ພັນ 00 ພັນ - 000 ກີບ + 000 ພັນ 0 ລ້ານ 00 ລ້ານ 000 ລ້ານ @@ -5059,7 +5060,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ 0 ພັນ ¤00 ພັນ ¤ 00 ພັນ - ¤000 ກີບ + ¤000 ພັນ ¤ 000 ພັນ ¤0 ລ້ານ ¤ 0 ລ້ານ @@ -5081,7 +5082,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ 000 ລ້ານລ້ານ - {0} {1} @@ -6515,6 +6515,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ແດຣມ {0} ແດຣມ + + ແສງ + {0} ແສງ + + + ສ່ວນໃນພັນລ້ານສ່ວນ + {0} ສ່ວນໃນພັນລ້ານສ່ວນ + + + ຄືນ + {0} ຄືນ + {0}/ຄືນ + ທິດທາງຕາມລຳດັບ @@ -6689,6 +6702,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ PByte + + ສຕວ + {0} ສຕວ + ທົດສະວັດ {0} ທົດສະວັດ @@ -6949,6 +6966,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ຢິບ {0} ຢິບ + + ແສງ + {0} ແສງ + + + ສ່ວນ/ພັນລ້ານສ່ວນ + + + ຄືນ + {0} ຄືນ + {0}/ຄືນ + ທິດທາງ @@ -6981,6 +7010,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ % + + + {0} ລ / 100 ກມ @@ -6988,6 +7020,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ mpg UK {0} m/gUK + + ສຕວ + {0} ສຕວ + {0} ປ @@ -6999,7 +7035,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ມລວ - {0} ມລ. ວິ. {0}ຄລ @@ -7055,6 +7090,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ fl.dr. + + ແສງ + {0} ແສງ + + + ສ່ວນ/ພັນລ້ານສ່ວນ + {0}ppb + + + ຄືນ + {0} ຄືນ + {0}/ຄືນ + diff --git a/make/data/cldr/common/main/lrc.xml b/make/data/cldr/common/main/lrc.xml index fc5ef7c2fe8..93aac31823a 100644 --- a/make/data/cldr/common/main/lrc.xml +++ b/make/data/cldr/common/main/lrc.xml @@ -450,9 +450,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic : - - {0} {1} - رئال بئرئزیل diff --git a/make/data/cldr/common/main/lt.xml b/make/data/cldr/common/main/lt.xml index 3e2e2951e0a..3a9bf521049 100644 --- a/make/data/cldr/common/main/lt.xml +++ b/make/data/cldr/common/main/lt.xml @@ -84,6 +84,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bandžarų komų siksikų + guanų bambarų bengalų tibetiečių @@ -179,9 +180,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Vidurio Anglijos esperanto ispanų - Lotynų Amerikos ispanų - Europos ispanų - Meksikos ispanų centrinės Aliaskos jupikų estų baskų @@ -223,7 +221,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Vidurio Aukštosios Vokietijos gvaranių senoji Aukštosios Vokietijos - Goa konkanių gondi gorontalo gotų @@ -333,6 +330,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komi kornų kvakvalų + kuvi kirgizų lotynų ladino @@ -362,7 +360,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ luba lulua luiseno Lundos - luo mizo luja latvių @@ -481,8 +478,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ senovės provansalų puštūnų portugalų - Brazilijos portugalų - Europos portugalų kečujų kičių Čimboraso aukštumų kečujų @@ -622,13 +617,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ nežinoma kalba urdų uzbekų - vai vendų venetų vepsų vietnamiečių vakarų flamandų pagrindinė frankonų + makua volapiuko Votik veru @@ -644,6 +639,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kalmukų kosų megrelų + kangri sogų jao japezų @@ -1224,8 +1220,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ nacionalinis indų kalendorius islamo kalendorius Islamo kalendorius (lentelinis, pilietinė era) - Islamo kalendorius (Saudo Arabija) - Islamo kalendorius (lentelinis, astronominė era) + Islamo kalendorius (Saudo Arabija) + Islamo kalendorius (lentelinis, astronominė era) Islamo kalendorius (Umm al-Qura) ISO 8601 kalendorius japonų kalendorius @@ -1365,7 +1361,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2057,21 +2053,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ h a – h a - hh–hh a - - - hh:mm a–hh:mm a - hh:mm–hh:mm a - hh:mm–hh:mm a - - - hh:mm a–hh:mm a v - hh:mm–hh:mm a v - h:mm–h:mm a v h a – h a v - hh–hh a v MM-dd – MM-dd @@ -2895,6 +2879,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Laikas: {0} Vasaros laikas: {0} Žiemos laikas: {0} + + Honolulu + pasaulio suderintasis laikas @@ -3581,9 +3568,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ulan Batoras - - Čoibalsanas - Makao @@ -3950,9 +3934,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Nomas - - Honolulu - Ankoridžas @@ -4322,13 +4303,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kinijos vasaros laikas - - - Čoibalsano laikas - Čoibalsano žiemos laikas - Čoibalsano vasaros laikas - - Kalėdų Salos laikas @@ -4579,6 +4553,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kamčiatkos Petropavlovsko vasaros laikas + + + Kazachstano laikas + + Rytų Kazachstano laikas @@ -5181,10 +5160,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 trln'.' ¤ - {0} {1} - {0} {1} - {0} {1} - {0} {1} @@ -7872,11 +7847,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} karatų + masculine miligramai decilitre {0} miligramas decilitre + {0} miligramą decilitre + {0} miligramui decilitre + {0} miligramo decilitre + {0} miligramu decilitre + {0} miligrame decilitre {0} miligramai decilitre + {0} miligramus decilitre + {0} miligramams decilitre + {0} miligramų decilitre + {0} miligramais decilitre + {0} miligramuose decilitre {0} miligramo decilitre + {0} miligramo decilitre + {0} miligramo decilitre + {0} miligramo decilitre + {0} miligramo decilitre + {0} miligramo decilitre {0} miligramų decilitre + {0} miligramų decilitre + {0} miligramų decilitre + {0} miligramų decilitre + {0} miligramų decilitre + {0} miligramų decilitre masculine @@ -8899,11 +8895,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} voltų + feminine kilokalorijos {0} kilokalorija + {0} kilokaloriją + {0} kilokalorijai + {0} kilokalorijos + {0} kilokalorija + {0} kilokalorijoje {0} kilokalorijos + {0} kilokalorijas + {0} kilokalorijoms + {0} kilokalorijų + {0} kilokalorijomis + {0} kilokalorijose {0} kilokalorijos + {0} kilokalorijos + {0} kilokalorijos + {0} kilokalorijos + {0} kilokalorijos + {0} kilokalorijos {0} kilokalorijų + {0} kilokalorijų + {0} kilokalorijų + {0} kilokalorijų + {0} kilokalorijų + {0} kilokalorijų feminine @@ -9673,11 +9690,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ilgųjų mylių + masculine punktai {0} punktas + {0} punktą + {0} punktui + {0} punkto + {0} punktu + {0} punkte {0} punktai - {0} punktų - {0} punkto + {0} punktus + {0} punktams + {0} punktų + {0} punktais + {0} punktuose + {0} punkto + {0} punkto + {0} punkto + {0} punkto + {0} punkto + {0} punkto + {0} punktų + {0} punktų + {0} punktų + {0} punktų + {0} punktų + {0} punktų saulės spinduliuotė @@ -10133,11 +10171,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} arklio galių + masculine gysidabrio stulpelio milimetrai {0} gysidabrio stulpelio milimetras + {0} gysidabrio stulpelio milimetrą + {0} gysidabrio stulpelio milimetrui + {0} gysidabrio stulpelio milimetro + {0} gysidabrio stulpelio milimetru + {0} gysidabrio stulpelio milimetre {0} gysidabrio stulpelio milimetrai + {0} gysidabrio stulpelio milimetrus + {0} gysidabrio stulpelio milimetrams + {0} gysidabrio stulpelio milimetrų + {0} gysidabrio stulpelio milimetrais + {0} gysidabrio stulpelio milimetruose {0} gysidabrio stulpelio milimetro + {0} gysidabrio stulpelio milimetro + {0} gysidabrio stulpelio milimetro + {0} gysidabrio stulpelio milimetro + {0} gysidabrio stulpelio milimetro + {0} gysidabrio stulpelio milimetro {0} gysidabrio stulpelio milimetrų + {0} gysidabrio stulpelio milimetrų + {0} gysidabrio stulpelio milimetrų + {0} gysidabrio stulpelio milimetrų + {0} gysidabrio stulpelio milimetrų + {0} gysidabrio stulpelio milimetrų svarai kv. colyje @@ -10973,6 +11032,63 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} imp. kvortos {0} imp. kvortų + + feminine + milijoninės dalelytės + {0} milijoninė dalelytė + {0} milijoninę dalelytę + {0} milijoninei dalelytei + {0} milijoninės dalelytės + {0} milijonine dalelyte + {0} milijoninėje dalelytėje + {0} milijoninės dalelytės + {0} milijonines dalelytes + {0} milijoninėms dalelytėms + {0} milijoninių dalelyčių + {0} milijoninėmis dalelytėmis + {0} milijoninėse dalelytėse + {0} milijoninės dalelytės + {0} milijoninės dalelytės + {0} milijoninės dalelytės + {0} milijoninės dalelytės + {0} milijoninės dalelytės + {0} milijoninės dalelytės + {0} milijoninių dalelyčių + {0} milijoninių dalelyčių + {0} milijoninių dalelyčių + {0} milijoninių dalelyčių + {0} milijoninių dalelyčių + {0} milijoninių dalelyčių + + + feminine + naktis + {0} naktis + {0} naktis + {0} nakčiai + {0} nakties + {0} naktimi + {0} naktyje + {0} naktys + {0} naktis + {0} naktims + {0} naktų + {0} naktimis + {0} naktyse + {0} nakties + {0} nakties + {0} nakties + {0} nakties + {0} nakties + {0} nakties + {0} naktų + {0} naktų + {0} naktų + {0} naktų + {0} naktų + {0} naktų + {0}/nakt. + pagrindinė kryptis {0} rytų @@ -11577,6 +11693,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} imp. kv. {0} imp. kv. + + dalelytė/mln. + {0} dalelytė/mln. + {0} dalelytės/mln. + {0} dalelytės/mln. + {0} dalelyčių/mln. + + + nakt. + {0} nakt. + {0} nakt. + {0} nakt. + {0} nakt. + {0}/nakt. + kryptis {0} R @@ -11677,6 +11808,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} fl oz {0} fl oz + + dalelytė/mln. + {0} dalelytė/mln. + {0} dalelytės/mln. + {0} dalelytės/mln. + {0} dalelyčių/mln. + + + nakt. + {0} nakt. + {0} nakt. + {0} nakt. + {0} nakt. + {0}/nakt. + hh:mm diff --git a/make/data/cldr/common/main/ltg.xml b/make/data/cldr/common/main/ltg.xml new file mode 100644 index 00000000000..88bd51e61a7 --- /dev/null +++ b/make/data/cldr/common/main/ltg.xml @@ -0,0 +1,163 @@ + + + + + + + + + + + angļu + latgalīšu + latvīšu + + + Latveja + + + Volūda: {0} + Raksteiba: {0} + Regions: {0} + + + + [aā b cč d eē f gģ h iī j kķ lļ m nņ oō p r sš t uū v y zž] + [q ŗ w x] + [\- ‑ , % ‰ + − 0 1 2 3 4 5 6 7 8 9] + [\- ‐‑ – — , ; \: ! ? . … '‘’‚ "“”„ ( ) \[ \] § @ * / \& # † ‡ ′ ″] + + + + + + + + janvars + februars + marts + apreļs + majs + juņs + juļs + augusts + septembris + oktobris + novembris + decembris + + + + + janvars + februars + marts + apreļs + majs + juņs + juļs + augusts + septembris + oktobris + novembris + decembris + + + + + + + svātdīne + pyrmūdīne + ūtardīne + trešdīne + catūrtdīne + pīktdīne + sastdīne + + + + + + + 1. catūrksnis + 2. catūrksnis + 3. catūrksnis + 4. catūrksnis + + + + + 1. + 2. + 3. + 4. + + + + + + + prīškpušdīnē + piecpušdīnē + + + + + + pyrma myusu erys + pyrma myusu erys + myusu erā + myusu erā + + + p.m.e. + m.e. + + + + + h:mm a + h:mm:ss a + h:mm:ss a v + d.MM.y. + y. 'g'. d. MMM + + + + + + Laika jūsla: {0} + {0}: vosorys laiks + {0}: standarta laiks + + + Griničys laiks + + + + + + + , +   + + + + eiro + eiro + + + Latvejis lats + Latvejis lati + + + Latvejis rublis + + + + diff --git a/make/data/cldr/common/main/ltg_LV.xml b/make/data/cldr/common/main/ltg_LV.xml new file mode 100644 index 00000000000..f3be553096f --- /dev/null +++ b/make/data/cldr/common/main/ltg_LV.xml @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/make/data/cldr/common/main/lv.xml b/make/data/cldr/common/main/lv.xml index c8009e5b1dd..17c90c6336b 100644 --- a/make/data/cldr/common/main/lv.xml +++ b/make/data/cldr/common/main/lv.xml @@ -70,6 +70,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ binu komu siksiku + anī bambaru bengāļu tibetiešu @@ -284,6 +285,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komiešu korniešu kvakvala + kuvi kirgīzu latīņu ladino @@ -294,8 +296,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lezgīnu gandu limburgiešu + ligūriešu lilluetu lakotu + lombardiešu lingala laosiešu mongu @@ -308,7 +312,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lubalulva luisenu lundu - luo lušeju luhju latviešu @@ -327,7 +330,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Maurīcijas kreolu malagasu vidusīru - makua + makua-mīto metu māršaliešu maoru @@ -487,6 +490,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komoru klasiskā sīriešu sīriešu + silēziešu tamilu dienvidtutčonu telugu @@ -535,7 +539,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ uzbeku vaju vendu + venēciešu vjetnamiešu + makua volapiks votu vundžo @@ -549,6 +555,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ vu ķīniešu kalmiku khosu + kangri sogu jao japiešu @@ -1157,7 +1164,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2461,6 +2468,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}: vasaras laiks {0}: standarta laiks {0} ({1}) + + Honolulu + Universālais koordinētais laiks @@ -3129,9 +3139,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ulanbatora - - Čoibalsana - Makao @@ -3468,9 +3475,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Noma - - Honolulu - Ankurāža @@ -3801,13 +3805,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ķīnas vasaras laiks - - - Čoibalsanas laiks - Čoibalsanas ziemas laiks - Čoibalsanas vasaras laiks - - Ziemsvētku salas laiks @@ -4068,6 +4065,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Petropavlovskas-Kamčatskas vasaras laiks + + + Kazahstānas laiks + + Austrumkazahstānas laiks @@ -4614,9 +4616,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 trilj'.' ¤ - {0} {1} - {0} {1} - {0} {1} @@ -6173,10 +6172,23 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} karātos + masculine miligrami uz decilitru {0} miligramu uz decilitru + {0} miligramu uz decilitru + {0} miligramu uz decilitru + {0} miligramu uz decilitru + {0} miligramu uz decilitru {0} miligrams uz decilitru + {0} miligramu uz decilitru + {0} miligramam uz decilitru + {0} miligrama uz decilitru + {0} miligramā uz decilitru {0} miligrami uz decilitru + {0} miligramus uz decilitru + {0} miligramiem uz decilitru + {0} miligramu uz decilitru + {0} miligramos uz decilitru masculine @@ -6574,7 +6586,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} gadsimtu {0} gadsimtu {0} gadsimts - {0} gadsimts + {0} gadsimtu {0} gadsimtam {0} gadsimta {0} gadsimtā @@ -6893,10 +6905,23 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} voltos + feminine kilokalorijas {0} kilokaloriju + {0} kilokaloriju + {0} kilokaloriju + {0} kilokaloriju + {0} kilokaloriju {0} kilokalorija + {0} kilokaloriju + {0} kilokalorijai + {0} kilokalorijas + {0} kilokalorijā {0} kilokalorijas + {0} kilokalorijas + {0} kilokalorijām + {0} kilokaloriju + {0} kilokalorijās feminine @@ -6914,7 +6939,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} kalorijas {0} kalorijas {0} kalorijām - {0} kalorijas + {0} kaloriju {0} kalorijās @@ -7006,11 +7031,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine ņūtoni - {0} N - {0} N - {0} N - {0} N - {0} N + {0} ņūtonu + {0} ņūtonu + {0} ņūtonu + {0} ņūtonu + {0} ņūtonu {0} ņūtons {0} ņūtonu {0} ņūtonam @@ -7122,11 +7147,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine - {0} px - {0} px - {0} px - {0} px - {0} px + {0} pikseļu + {0} pikseļu + {0} pikseļu + {0} pikseļu + {0} pikseļu {0} pikselis {0} pikseli {0} pikselim @@ -7140,11 +7165,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine - {0} MP - {0} MP - {0} MP - {0} MP - {0} MP + {0} megapikseļu + {0} megapikseļu + {0} megapikseļu + {0} megapikseļu + {0} megapikseļu {0} megapikselis {0} megapikseli {0} megapikselim @@ -7159,11 +7184,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine pikseļi centimetrā - {0} ppcm - {0} ppcm - {0} ppcm - {0} ppcm - {0} ppcm + {0} pikseļu centimetrā + {0} pikseļu centimetrā + {0} pikseļu centimetrā + {0} pikseļu centimetrā + {0} pikseļu centimetrā {0} pikselis centimetrā {0} pikseli centimetrā {0} pikselim centimetrā @@ -7423,9 +7448,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} skandināvu jūdzēs + masculine {0} punktu + {0} punktu + {0} punktu + {0} punktu + {0} punktu {0} punkts + {0} punktu + {0} punktam + {0} punkta + {0} punktā {0} punkti + {0} punktus + {0} punktiem + {0} punktu + {0} punktos {0} R☉ @@ -7754,10 +7792,23 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} zirgspēki + masculine dzīvsudraba stabiņa milimetri {0} dzīvsudraba stabiņa milimetru + {0} dzīvsudraba stabiņa milimetru + {0} dzīvsudraba stabiņa milimetru + {0} dzīvsudraba stabiņa milimetru + {0} dzīvsudraba stabiņa milimetru {0} dzīvsudraba stabiņa milimetrs + {0} dzīvsudraba stabiņa milimetru + {0} dzīvsudraba stabiņa milimetram + {0} dzīvsudraba stabiņa milimetra + {0} dzīvsudraba stabiņa milimetrā {0} dzīvsudraba stabiņa milimetri + {0} dzīvsudraba stabiņa milimetrus + {0} dzīvsudraba stabiņa milimetriem + {0} dzīvsudraba stabiņa milimetru + {0} dzīvsudraba stabiņa milimetros mārciņas uz kvadrātcollu @@ -7824,7 +7875,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} atmosfērā {0} atmosfēras {0} atmosfēras - {0} atmosfēras + {0} atmosfērām {0} atmosfēru {0} atmosfērās @@ -7869,11 +7920,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine kilopaskāli - {0} kPa - {0} kPa - {0} kPa - {0} kPa - {0} kPa + {0} kilopaskālu + {0} kilopaskālu + {0} kilopaskālu + {0} kilopaskālu + {0} kilopaskālu {0} kilopaskāls {0} kilopaskālu {0} kilopaskālam @@ -8180,7 +8231,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} litra {0} litrā {0} litri - {0} litri + {0} litrus {0} litriem {0} litru {0} litros @@ -8390,6 +8441,64 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} britu kvarta {0} britu kvartas + + feminine + gaisma + {0} gaismas + {0} gaismas + {0} gaismas + {0} gaismas + {0} gaismas + {0} gaisma + {0} gaismu + {0} gaismai + {0} gaismas + {0} gaismā + {0} gaismas + {0} gaismas + {0} gaismām + {0} gaismu + {0} gaismās + + + feminine + miljarddaļas + {0} miljarddaļu + {0} miljarddaļu + {0} miljarddaļu + {0} miljarddaļu + {0} miljarddaļu + {0} miljarddaļa + {0} miljarddaļu + {0} miljarddaļai + {0} miljarddaļas + {0} miljarddaļā + {0} miljarddaļas + {0} miljarddaļas + {0} miljarddaļām + {0} miljarddaļu + {0} miljarddaļās + + + feminine + naktis + {0} nakšu + {0} nakšu + {0} nakšu + {0} nakšu + {0} nakšu + {0} nakts + {0} nakti + {0} naktij + {0} nakti + {0} naktī + {0} naktis + {0} naktis + {0} naktīm + {0} nakšu + {0} naktīs + {0}/nakts + @@ -8891,6 +9000,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} IQT {0} IQT + + gaisma + {0} gaismu + {0} gaisma + {0} gaismas + + + miljarddaļas + + + naktis + {0} nakšu + {0} nakts + {0} naktis + {0}/nakts + debespuse {0}A @@ -8901,7 +9026,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Brīvās krišanas paātrinājums: {0}G {0}G {0}G @@ -8980,11 +9104,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}cm {0} cm - - {0} mm - {0}mm - {0} mm - {0}pm {0}pm @@ -9141,6 +9260,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}mi³ {0}mi³ + + gaisma + {0} gaismu + {0} gaisma + {0} gaismas + + + miljarddaļas + + + naktis + {0} nakšu + {0} nakts + {0} naktis + {0}/nakts + diff --git a/make/data/cldr/common/main/mai.xml b/make/data/cldr/common/main/mai.xml index 2920468139f..a6aec70c7bf 100644 --- a/make/data/cldr/common/main/mai.xml +++ b/make/data/cldr/common/main/mai.xml @@ -155,6 +155,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic दक्षिणी हैदा हीब्रू हिन्दी + हिन्दी (ल्याटिन) हिलिगेनन मौंग क्रोशियाई @@ -433,6 +434,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic एनहींगाटु केंटोनी चीनी, केंटोनी + जा मानक मोरोक्कन टेमेजिग्थ चीनी चीनी, मैंडेरिन @@ -658,7 +660,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic इजरायल आइल ऑफ मैन भारत - ब्रिटिश हिंद महासागरीय क्षेत्र + ब्रिटिश हिंद महासागरीय क्षेत्र इराक ईरान आइसलैंड @@ -834,9 +836,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic ग्रेगोरियन कैलेंडर हीब्रू कैलेंडर भारतीय राष्ट्रीय कैलेंडर - इस्लामिक कैलेंडर - इस्लामिक कैलेंडर (टैबुलर, सिविल एपेक) - इस्लामिक कैलेंडर (उम अल कुरा) + इस्लामिक कैलेंडर + इस्लामिक कैलेंडर (टैबुलर, सिविल एपेक) + इस्लामिक कैलेंडर (उम अल कुरा) ISO-8601 कैलेंडर जापानी कैलेंडर फारसी कैलेंडर @@ -1057,15 +1059,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic शुक्र शनि - - रवि - सोम - मंगल - बुध - बृहस्पति - शुक्र - शनि - रवि दिन सोम दिन @@ -2153,9 +2146,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic उलनबटोर - - चोइबलसेन - मकाऊ @@ -2824,13 +2814,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic चीनी डेलाइट टाइम - - - चोइबलसेन टाइम - चोइबलसेन मानक टाइम - चोइबलसेन समर टाइम - - क्रिसमस द्वीप टाइम @@ -3338,9 +3321,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - {0} {1} - ब्राज़ीली रियाल diff --git a/make/data/cldr/common/main/mgo.xml b/make/data/cldr/common/main/mgo.xml index 66ac0625620..e75e0804623 100644 --- a/make/data/cldr/common/main/mgo.xml +++ b/make/data/cldr/common/main/mgo.xml @@ -136,13 +136,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic - 1 - 2 - 3 - 4 - 5 - 6 - 7 + A1 + A2 + A3 + A4 + A5 + A6 + A7 Aneg 1 @@ -156,13 +156,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic - A1 - A2 - A3 - A4 - A5 - A6 - A7 + 1 + 2 + 3 + 4 + 5 + 6 + 7 diff --git a/make/data/cldr/common/main/mhn.xml b/make/data/cldr/common/main/mhn.xml new file mode 100644 index 00000000000..f1220801953 --- /dev/null +++ b/make/data/cldr/common/main/mhn.xml @@ -0,0 +1,18 @@ + + + + + + + + + + [aáà b c d eéèë f g h iíì j k l m n oóò p q r s t uúù v w x y z] + [\- ‑ , + 0 1 2 3 4 5 6 7 8 9] + [, ; ! ? . ' "] + + diff --git a/make/data/cldr/common/main/mhn_IT.xml b/make/data/cldr/common/main/mhn_IT.xml new file mode 100644 index 00000000000..a3ab1373298 --- /dev/null +++ b/make/data/cldr/common/main/mhn_IT.xml @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/make/data/cldr/common/main/mi.xml b/make/data/cldr/common/main/mi.xml index f06a7132a63..5f32c630f23 100644 --- a/make/data/cldr/common/main/mi.xml +++ b/make/data/cldr/common/main/mi.xml @@ -27,7 +27,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ōporo Anahika Ārapi - Ārapi Moroko + Ārapi Moroki Mapūte Arapaho Arapika Nahāri @@ -158,6 +158,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Haira ki te Tonga Hīperu Hīni + Hīngarihi Hirikaina Mōnga Koroātiana @@ -521,7 +522,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Āwherika ki te Raki Te Pokapū o Āwherika Āwherika Whakatetonga - Amerika + Ngā Amerika Te Raki o Amerika Karapīana Āhia ki te Rāwhiti @@ -1295,9 +1296,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic +{0} Hwh - - -{0} hwh - marama @@ -1350,7 +1348,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic -{0} w - t w o {0} w @@ -2308,13 +2305,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Wā Haina Awatea - - - Wā Choibalsan - Wā Choibalsan Arowhānui - Wā Choibalsan Raumati - - Wā o Te Moutere Kirihimete @@ -2553,6 +2543,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Wā Hapani Awatea + + + Wā Katatānga + + Wā Katatānga ki te Rāwhiti @@ -2970,9 +2965,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - {0} {1} - Dirham UAE @@ -3530,7 +3522,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Tāra Taiwana Hou - tāra Taiwana hou + tāra Taiwana Hou Hereni Tānahia @@ -4048,7 +4040,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}, {1} rānei - {0} {1} rānei + {0}, {1} rānei + + + {0}, {1} rānei + + + {0}, {1} rānei {0}, {1} diff --git a/make/data/cldr/common/main/mk.xml b/make/data/cldr/common/main/mk.xml index 638e9972a4b..590aaf380f2 100644 --- a/make/data/cldr/common/main/mk.xml +++ b/make/data/cldr/common/main/mk.xml @@ -84,6 +84,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ банџарски ком сиксика + ании бамбара бенгалски тибетски @@ -221,12 +222,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ шкотски гелски гиз гилбертански - галициски + галисиски гилански средногорногермански гварански старогорногермански - гоански конкани гонди горонтало готски @@ -265,7 +265,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ибан ибибио индонезиски - окцидентал + интерлингве игбо сичуан ји инупијачки @@ -337,6 +337,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ коми корнски кваквала + куви киргиски латински ладино @@ -627,11 +628,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ узбечки вај венда - венетски + венецијански вепшки виетнамски западнофламански мајнскофранконски + макуа волапик вотски виру @@ -647,6 +649,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ калмички коса мегрелски + кангри сога јао јапски @@ -1189,8 +1192,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Индиски национален календар Исламски календар Исламски граѓански календар - Исламски календар (Саудиска Арабија) - Исламски календар (астрономска епоха) + Исламски календар (Саудиска Арабија) + Исламски календар (астрономска епоха) Исламски календар (Ум ал-Кура) Календар ISO-8601 Јапонски календар @@ -1282,7 +1285,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [а б в г д ѓ е ж з ѕ и ј к л љ м н њ о п р с т ќ у ф х ц ч џ ш] [ѐ ѝ] [А Б В Г Д Ѓ Е Ж З Ѕ И Ј К Л Љ М Н Њ О П Р С Т Ќ У Ф Х Ц Ч Џ Ш] - [\- ‐‑ – — , ; \: ! ? . … ‘‚ “„ ( ) \[ \] \{ \}] + [\- ‐‑ – — , ; \: ! ? . … '‘‚ “„ ( ) \[ \] \{ \}] {0}… …{0} {0}… {1} @@ -1290,7 +1293,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -1540,13 +1543,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - d.M.y G + d.M.y 'г'. G GyMdd - d.M.y GGGGG + d.M.y 'г'. GGGGG GGGGGyMdd @@ -1583,7 +1586,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ E h:mm:ss a E H:mm:ss y 'г'. G - d.M.y GGGGG + d.M.y 'г'. GGGGG MMM y 'г'. G d MMM y 'г'. G E, d MMM y 'г'. G @@ -1601,15 +1604,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ E, d MMMM y 'г'. G y 'г'. G - M.y G - d.M.y G - E, d.M.y G + M.y 'г'. G + d.M.y 'г'. G + E, d.M.y 'г'. G MMM y 'г'. G d MMM y 'г'. G E, d MMM y 'г'. G MMMM y 'г'. G - QQQ y G - QQQ y G + QQQ y 'г'. G + QQQ y 'г'. G @@ -1623,42 +1626,42 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ d – d - y G – y G - y – y G + y 'г'. G – y 'г'. G + y 'г'. – y 'г'. G - M.y GGGGG – M.y GGGGG - M.y – M.y GGGGG - M.y – M.y GGGGG + M.y 'г'. GGGGG – M.y 'г'. GGGGG + M.y 'г'. – M.y 'г'. GGGGG + M.y 'г'. – M.y 'г'. GGGGG - d.M.y – d.M.y GGGGG - d.M.y GGGGG – d.M.y GGGGG - d.M.y – d.M.y GGGGG - d.M.y – d.M.y GGGGG + d.M.y 'г'. – d.M.y 'г'. GGGGG + d.M.y 'г'. GGGGG – d.M.y 'г'. GGGGG + d.M.y 'г'. – d.M.y 'г'. GGGGG + d.M.y 'г'. – d.M.y 'г'. GGGGG - E, d.M.y – E, d.M.y GGGGG - E, d.M.y GGGGG – E, d.M.y GGGGG - E, d.M.y – E, d.M.y GGGGG - E, d.M.y – E, d.M.y GGGGG + E, d.M.y 'г'. – E, d.M.y 'г'. GGGGG + E, d.M.y 'г'. GGGGG – E, d.M.y 'г'. GGGGG + E, d.M.y 'г'. – E, d.M.y 'г'. GGGGG + E, d.M.y 'г'. – E, d.M.y 'г'. GGGGG - MMM y G – MMM y G - MMM – MMM y G - MMM y – MMM y G + MMM y 'г'. G – MMM y 'г'. G + MMM – MMM y 'г'. G + MMM y 'г'. – MMM y 'г'. G - d – d MMM y G - d MMM y G – d MMM y G - d MMM – d MMM y G - d MMM y – d MMM y G + d – d MMM y 'г'. G + d MMM y 'г'. G – d MMM y 'г'. G + d MMM – d MMM y 'г'. G + d MMM y 'г'. – d MMM y 'г'. G - E, d MMM – E, d MMM y G - E, d MMM y G – E, d MMM y G - E, d MMM – E, d MMM y G - E, d MMM y – E, d MMM y G + E, d MMM – E, d MMM y 'г'. G + E, d MMM y 'г'. G – E, d MMM y 'г'. G + E, d MMM – E, d MMM y 'г'. G + E, d MMM y 'г'. – E, d MMM y 'г'. G h a – h a @@ -1704,39 +1707,39 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ LLLL – LLLL - y – y G + y 'г'. – y 'г'. G - M.y – M.y G - M.y – M.y G + M.y 'г'. – M.y 'г'. G + M.y 'г'. – M.y 'г'. G - d.M.y – d.M.y G - d.M.y – d.M.y G - d.M.y – d.M.y G + d.M.y 'г'. – d.M.y 'г'. G + d.M.y 'г'. – d.M.y 'г'. G + d.M.y 'г'. – d.M.y 'г'. G - E, d.M.y – E, d.M.y G - E, d.M.y – E, d.M.y G - E, d.M.y – E, d.M.y G + E, d.M.y 'г'. – E, d.M.y 'г'. G + E, d.M.y 'г'. – E, d.M.y 'г'. G + E, d.M.y 'г'. – E, d.M.y 'г'. G - MMM – MMM y G - MMM y – MMM y G + MMM – MMM y 'г'. G + MMM y 'г'. – MMM y 'г'. G - d – d MMM y G - d MMM – d MMM y G - d MMM y – d MMM y G + d – d MMM y 'г'. G + d MMM – d MMM y 'г'. G + d MMM y 'г'. – d MMM y 'г'. G - E, d – E, d MMM y G - E, d MMM – E, d MMM y G - E, d MMM y – E, d MMM y G + E, d – E, d MMM y 'г'. G + E, d MMM – E, d MMM y 'г'. G + E, d MMM y 'г'. – E, d MMM y 'г'. G - MMMM – MMMM y G - MMMM y – MMMM y G + MMMM – MMMM y 'г'. G + MMMM y 'г'. – MMMM y 'г'. G @@ -1826,10 +1829,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - јан – мар - апр – јун - јул – сеп - окт – дек + јан. – мар. + апр. – јун. + јул. – сеп. + окт. – дек. прво тримесечје @@ -1838,6 +1841,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ четврто тримесечје + + + јан. – мар. + апр. – јун. + јул. – сеп. + окт. – дек. + + @@ -1883,29 +1894,29 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ пред нашата ера - пр. н.е. + пр. н. е. од нашата ера нашата ера - п.н.е. - н.е. + пр. н. е. + н. е. - EEEE, d MMMM y + EEEE, d MMMM y 'г'. - d MMMM y + d MMMM y 'г'. - d.M.y + d.M.y 'г'. yMd @@ -1975,11 +1986,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ E, d E h:mm a E h:mm:ss a - y G - d.M.y GGGGG - MMM y G - d MMM y G - E, d MMM y G + y 'г'. G + d.M.y 'г'. G + MMM y 'г'. G + d MMM y 'г'. G + E, d MMM y 'г'. G h a h:mm a h:mm:ss a @@ -1994,9 +2005,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ E, d MMMM W. 'седмица' 'од' MMMM W. 'седмица' 'од' MMMM - M.y - d.M.y - E, d.M.y + y 'г'. + M.y 'г'. + d.M.y 'г'. + E, d.M.y 'г'. MMM y 'г'. d MMM y 'г'. E, d MMM y 'г'. @@ -2018,42 +2030,42 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ d – d - y G – y G - y – y G + y 'г'. G – y 'г'. G + y 'г'. – y 'г'. G - M.y GGGGG – M.y GGGGG - M.y – M.y GGGGG - M.y – M.y GGGGG + M.y 'г'. G – M.y 'г'. G + M.y 'г'. – M.y 'г'. G + M.y 'г'. – M.y 'г'. G - d.M.y – d.M.y GGGGG - d.M.y GGGGG – d.M.y GGGGG - d.M.y – d.M.y GGGGG - d.M.y – d.M.y GGGGG + d.M.y 'г'. – d.M.y 'г'. G + d.M.y 'г'. G – d.M.y 'г'. G + d.M.y 'г'. – d.M.y 'г'. G + d.M.y 'г'. – d.M.y 'г'. G - E, d.M.y – E, d.M.y GGGGG - E, d.M.y GGGGG – E, d.M.y GGGGG - E, d.M.y – E, d.M.y GGGGG - E, d.M.y – E, d.M.y GGGGG + E, d.M.y 'г'. – E, d.M.y 'г'. G + E, d.M.y 'г'. G – E, d.M.y 'г'. G + E, d.M.y 'г'. – E, d.M.y 'г'. G + E, d.M.y 'г'. – E, d.M.y 'г'. G - MMM y G – MMM y G - MMM – MMM y G - MMM y – MMM y G + MMM y 'г'. G – MMM y 'г'. G + MMM – MMM y 'г'. G + MMM y 'г'. – MMM y 'г'. G - d – d MMM y G - d MMM y G – d MMM y G - d MMM – d MMM y G - d MMM y – d MMM y G + d – d MMM y 'г'. G + d MMM y 'г'. G – d MMM y 'г'. G + d MMM – d MMM y 'г'. G + d MMM y 'г'. – d MMM y 'г'. G - E, d MMM – E, d MMM y G - E, d MMM y G – E, d MMM y G - E, d MMM – E, d MMM y G - E, d MMM y – E, d MMM y G + E, d MMM – E, d MMM y 'г'. G + E, d MMM y 'г'. G – E, d MMM y 'г'. G + E, d MMM – E, d MMM y 'г'. G + E, d MMM y 'г'. – E, d MMM y 'г'. G h a – h a @@ -2113,39 +2125,39 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ LLLL – LLLL - y – y + y 'г'. – y 'г'. - M.y – M.y - M.y – M.y + M.y 'г'. – M.y 'г'. + M.y 'г'. – M.y 'г'. - d.M.y – d.M.y - d.M.y – d.M.y - d.M.y – d.M.y + d.M.y 'г'. – d.M.y 'г'. + d.M.y 'г'. – d.M.y 'г'. + d.M.y 'г'. – d.M.y 'г'. - E, d.M.y – E, d.M.y - E, d.M.y – E, d.M.y - E, d.M.y – E, d.M.y + E, d.M.y 'г'. – E, d.M.y 'г'. + E, d.M.y 'г'. – E, d.M.y 'г'. + E, d.M.y 'г'. – E, d.M.y 'г'. - MMM – MMM y - MMM y – MMM y + MMM – MMM y 'г'. + MMM y 'г'. – MMM y 'г'. - d – d MMM y - d MMM – d MMM y - d MMM y – d MMM y + d – d MMM y 'г'. + d MMM – d MMM y 'г'. + d MMM y 'г'. – d MMM y 'г'. - E, d – E, d MMM y - E, d MMM – E, d MMM y - E, d MMM y – E, d MMM y + E, d MMM – E, d MMM y 'г'. + E, d MMM – E, d MMM y 'г'. + E, d MMM y 'г'. – E, d MMM y 'г'. - MMMM – MMMM y - MMMM y – MMMM y + MMMM – MMMM y 'г'. + MMMM y 'г'. – MMMM y 'г'. @@ -2884,6 +2896,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Време во {0} + + Хонолулу + Координирано универзално време @@ -3621,9 +3636,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Улан Батор - - Чојбалсан - Макао @@ -4023,9 +4035,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ном - - Хонолулу - Енкориџ @@ -4384,13 +4393,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Летно сметање на времето во Кина - - - Време во Чојбалсан - Стандардно време во Чојбалсан - Летно време во Чојбалсан - - Време во Божиќен Остров @@ -4644,6 +4646,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Летно сметање на времето во Јапонија + + + Време во Казахстан + + Време во Источен Казахстан @@ -5172,8 +5179,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 бил'.' ¤ - {0} {1} - {0} {1} @@ -5958,9 +5963,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Сиералеонски леони - Сиералеонско леоне (1964—2022) - Сиералеонско леоне (1964—2022) - Сиералеонски леони (1964—2022) + Сиералеонско леоне (1964 – 2022) + Сиералеонско леоне (1964 – 2022) + Сиералеонски леони (1964 – 2022) Сомалијски шилинг @@ -7199,6 +7204,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} имп. четвртина {0} имп. четвртини + + светлина + {0} светлина + {0} светлини + + + делови на милијарда + {0} дел на милијарда + {0} дела на милијарда + + + ноќи + {0} ноќ + {0} ноќи + {0}/ноќ + {0} исток {0} север @@ -7522,6 +7543,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ џигер + + светлина + {0} светлина + {0} светлини + + + ноќи + {0} ноќ + {0} ноќи + {0}/ноќ + насока {0}И @@ -7782,6 +7814,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} qt-Imp. {0} qt-Imp. + + светлина + {0} светлина + {0} светлини + + + ноќи + {0} н. + {0} н. + {0}/ноќ + diff --git a/make/data/cldr/common/main/ml.xml b/make/data/cldr/common/main/ml.xml index f71f5745bf8..ff6deca0b01 100644 --- a/make/data/cldr/common/main/ml.xml +++ b/make/data/cldr/common/main/ml.xml @@ -70,6 +70,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ബിനി കോം സിക്സിക + അനി ബംബാറ ബംഗ്ലാ ടിബറ്റൻ @@ -298,6 +299,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ കോമി കോർണിഷ് ക്വാക്വല + കുവി കിർഗിസ് ലാറ്റിൻ ലഡീനോ @@ -308,9 +310,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ലസ്ഗിയൻ ഗാണ്ട ലിംബർഗിഷ് + ലിഗൂറിയൻ ലില്ലുവെറ്റ് ലകൗട്ട - ലൊംബാർഡ് + ലൊംബാർഡ് ലിംഗാല ലാവോ മോങ്കോ @@ -506,6 +509,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ കൊമോറിയൻ പുരാതന സുറിയാനിഭാഷ സുറിയാനി + സൈലേഷ്യൻ തമിഴ് സതേൺ ടറ്റ്ഷോൺ തെലുങ്ക് @@ -555,7 +559,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ഉസ്‌ബെക്ക് വൈ വെന്ദ + വെനീഷ്യൻ വിയറ്റ്നാമീസ് + മഖുവ വോളാപുക് വോട്ടിക് വുൻജോ @@ -569,6 +575,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ വു ചൈനീസ് കാൽമിക് ഖോസ + കാങ്ടി സോഗോ യാവോ യെപ്പീസ് @@ -930,7 +937,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ മാലി മ്യാൻമാർ (ബർമ്മ) മംഗോളിയ - മക്കാവു SAR ചൈന + മക്കാവു എസ്.എ.ആർ. ചൈന മക്കാവു ഉത്തര മറിയാനാ ദ്വീപുകൾ മാർട്ടിനിക്ക് @@ -1098,8 +1105,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ശകവർഷ കലണ്ടർ ഇസ്‌ലാമിക് കലണ്ടർ ഇസ്ലാമിക് കലണ്ടർ - ഇസ്ലാം-അറബിക് കലണ്ടർ - ഇസ്ലാം-ജ്യോതിഷ കലണ്ടർ + ഇസ്ലാം-അറബിക് കലണ്ടർ + ഇസ്ലാം-ജ്യോതിഷ കലണ്ടർ ഇസ്‌ലാമിക് കലണ്ടർ (ഉം അൽ ഖുറ) ഐഎസ്ഓ 8601 കലണ്ടർ ജാപ്പനീസ് കലണ്ടർ @@ -1153,8 +1160,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ അനിയന്ത്രിത രേഖാ വിഭാജി ശൈലി സാധാരണ രേഖ വിഭാജി ശൈലി നിയന്ത്രിത രേഖ വിഭാജി ശൈലി - യു.എസ്. BGN ലിപ്യന്തരണം - യു.എൻ. GEGN ലിപ്യന്തരണം + യു.എസ്. ബി.ജി.എൻ. ലിപ്യന്തരണം + യു.എൻ. ജി.ഇ.ജി.എൻ. ലിപ്യന്തരണം മെട്രിക്ക് സംവിധാനം ബ്രിട്ടീഷ് അളക്കൽ സംവിധാനം യുഎസ് അളക്കൽ സംവിധാനം @@ -1248,10 +1255,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - [അ ആ ഇ ഈ ഉ ഊ ഋ എ ഏ ഐ ഒ ഓ ഔ ക ഖ ഗ ഘ ങ ച ഛ ജ ഝ ഞ ട ഠ ഡ ഢ ണ ൺ ത ഥ ദ ധ ന ൻ പ ഫ ബ ഭ മ ം യ ര ർ ല ൽ വ ശ ഷ സ ഹ ള ൾ ഴ റ ാ ി ീ ു ൂ ൃ െ േ ൈ ൊ ോ ൌ ൗ ്] - [\u200C\u200Dഃ ൠ ഌ ൡ ൿ] + [അ{അഃ} {അം} ആ ഇ ഈ ഉ ഊ ഋ എ ഏ ഐ ഒ ഓ ഔ ക ഖ ഗ ഘ ങ ച ഛ ജ ഝ ഞ ട ഠ ഡ ഢ ണ ത ഥ ദ ധ ന പ ഫ ബ ഭ മ യ ര ല വ ശ ഷ സ ഹ ള ഴ റ] + [\u200C\u200Dഃ ൠ ഌ ൡ ൿ ൺ ൻ ം ർ ൽ ൾ ാ ി ീ ു ൂ ൃ െ േ ൈ ൊ ോ ൗ ്] [അ ആ ഇ ഈ ഉ ഊ ഋ എ ഏ ഐ ഒ ഓ ഔ ക ഖ ഗ ഘ ങ ച ഛ ജ ഝ ഞ ട ഠ ഡ ഢ ണ ത ഥ ദ ധ ന പ ഫ ബ ഭ മ യ ര ല വ ശ ഷ സ ഹ ള ഴ റ] - [\- ‑ , . % ‰ + 0൦ 1൧ 2൨ 3൩ 4൪ 5൫ 6൬ 7൭ 8൮ 9൯] [\- ‐‑ – — , ; \: ! ? . … '‘’ "“” ( ) \[ \] § @ * / \& # † ‡ ′ ″] [,,﹐︐ ، ٫ 、﹑、︑] @@ -1600,7 +1606,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ സി.ഇ. - ക്രി.മു. + ബി.സി. ബിസിഇ എഡി സിഇ @@ -1682,7 +1688,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ B h:mm:ss E, B h:mm E, B h:mm:ss - M/d/y GGGGG + M/d/y G d/M d/M, E dd/MM @@ -1836,6 +1842,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ മാഘം ഫൽഗുനം + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + ചൈത്രം വൈശാഖം @@ -1851,22 +1871,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ഫാൽഗുനം - - - ചൈ - വൈ - ജ്യേ - - ശ്രാ - ഭാ - - കാ - മാ - പൗ - മാ - - - @@ -2291,6 +2295,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} സമയം {0} ഡേലൈറ്റ് സമയം {0} സ്റ്റാൻഡേർഡ് സമയം + + ഹോണലൂലു + കോർഡിനേറ്റഡ് യൂണിവേഴ്‌സൽ സമയം @@ -3028,9 +3035,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ഉലാൻബാത്തർ - - ചൊയ്ബൽസൻ - മക്കാവു @@ -3430,9 +3434,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ നോം - - ഹോണലൂലു - ആങ്കറേജ് @@ -3812,13 +3813,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ചൈന ഡേലൈറ്റ് സമയം - - - ചോയി‍ബൽസാൻ സമയം - ചോയ്‌ബൽസാൻ സ്റ്റാൻഡേർഡ് സമയം - ചോയിബൽസാൻ ഗ്രീഷ്‌മകാല സമയം - - ക്രിസ്‌മസ് ദ്വീപ് സമയം @@ -4072,6 +4066,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ പെട്രോപാവ്‌ലോസ്ക് കംചാസ്കി വേനൽക്കാല സമയം + + + കസാഖിസ്ഥാൻ സമയം + + കിഴക്കൻ കസാഖിസ്ഥാൻ സമയം @@ -4543,12 +4542,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 00 ദശലക്ഷം 000 ദശലക്ഷം 000 ദശലക്ഷം - 0 ലക്ഷം കോടി - 0 ലക്ഷം കോടി - 00 ലക്ഷം കോടി - 00 ലക്ഷം കോടി - 000 ലക്ഷം കോടി - 000 ലക്ഷം കോടി + 0 ബില്യൺ + 0 ബില്യൺ + 00 ബില്യൺ + 00 ബില്യൺ + 000 ബില്യൺ + 000 ബില്യൺ 0 ട്രില്യൺ 0 ട്രില്യൺ 00 ട്രില്യൺ @@ -4633,8 +4632,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ¤¤ - {0} {1} - {0} {1} @@ -5804,8 +5801,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ യോബൈ{0} - വർഗ്ഗം {0} - വർഗ്ഗം {0} + ചതുരശ്ര {0} + ചതുരശ്ര {0} + ചതുരശ്ര {0} + ചതുരശ്ര {0} + ചതുരശ്ര {0} + ചതുരശ്ര {0} + ചതുരശ്ര {0} + ചതുരശ്ര {0} + ചതുരശ്ര {0} + ചതുരശ്ര {0} + ചതുരശ്ര {0} + ചതുരശ്ര {0} + ചതുരശ്ര {0} + ചതുരശ്ര {0} ക്യുബിക് {0} @@ -5819,7 +5828,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ജി-ഫോഴ്‌സിന്റെ {0} ജി-ഫോഴ്‌സിനാൽ {0} ജി-ഫോഴ്‌സിൽ - {0} ജി-ഫോഴ്‌സ് + {0} ജി-ഫോഴ്‌സിനോട് {0} ജി-ഫോഴ്‌സ് {0} ജി-ഫോഴ്‌സിനെ {0} ജി-ഫോഴ്‌സിന് @@ -5853,7 +5862,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ neuter {0} റേഡിയൻ - {0} റേഡിയൻ + {0} റേഡിയനിനെ {0} റേഡിയന് {0} റേഡിയന്റെ {0} റേഡിയനാൽ @@ -5986,20 +5995,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ neuter - {0} ക്യാരറ്റ് - {0} ക്യാരറ്റിനെ - {0} ക്യാരറ്റിന് - {0} ക്യാരറ്റിന്റെ - {0} ക്യാരറ്റിനാൽ - {0} ക്യാരറ്റിൽ - {0} ക്യാരറ്റിനോട് - {0} ക്യാരറ്റ് - {0} ക്യാരറ്റിനെ - {0} ക്യാരറ്റിന് - {0} ക്യാരറ്റിന്റെ - {0} ക്യാരറ്റിനാൽ - {0} ക്യാരറ്റിൽ - {0} ക്യാരറ്റിനോട് + കാരറ്റ് + {0} കാരറ്റ് + {0} കാരറ്റിനെ + {0} കാരറ്റിന് + {0} കാരറ്റിന്റെ + {0} കാരറ്റിനാൽ + {0} കാരറ്റിൽ + {0} കാരറ്റിനോട് + {0} കാരറ്റ് + {0} കാരറ്റിനെ + {0} കാരറ്റിന് + {0} കാരറ്റിന്റെ + {0} കാരറ്റിനാൽ + {0} കാരറ്റിൽ + {0} കാരറ്റിനോട് മില്ലിഗ്രാം / ഡെസിലിറ്റർ @@ -6019,7 +6029,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ neuter പാർട്‌സ് / മില്ല്യൺ - പാർട്ട് / മില്ല്യൺ + {0} പാർട്ട് / മില്ല്യൺ {0} പാർട്ട് / മില്ല്യണിനെ {0} പാർട്ട് / മില്ല്യണിന് {0} പാർട്ട് / മില്ല്യണിന്റെ @@ -6086,21 +6096,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ neuter - മോളുകൾ - {0} മോൾ {0} മോളിനെ {0} മോളിന് {0} മോളിന്റെ {0} മോളിനാൽ {0} മോളിൽ {0} മോളിനോട് - {0} മോളുകൾ - {0} മോളുകളെ - {0} മോളുകൾക്ക് - {0} മോളുകളുടെ - {0} മോളുകളാൽ - {0} മോളുകളിൽ - {0} മോളുകളോട് + {0} മോളിനെ + {0} മോളിന് + {0} മോളിന്റെ + {0} മോളിനാൽ + {0} മോളിൽ + {0} മോളിനോട് ലിറ്റർ/കിലോമീറ്റർ @@ -6204,26 +6211,26 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} നൂറ്റാണ്ടിനെ {0} നൂറ്റാണ്ടിന് {0} നൂറ്റാണ്ടിന്റെ + {0} നൂറ്റാണ്ട് കൊണ്ട് {0} നൂറ്റാണ്ടിൽ {0} നൂറ്റാണ്ടിനോട് {0} നൂറ്റാണ്ടുകൾ {0} നൂറ്റാണ്ടുകളുടെ {0} നൂറ്റാണ്ടിലെ {0} നൂറ്റാണ്ടിന്റെ - {0} നൂറ്റാണ്ടുകൾ - {0} നൂറ്റാണ്ടുകൾ + {0} നൂറ്റാണ്ട് കൊണ്ട് + {0} നൂറ്റാണ്ടിൽ + {0} നൂറ്റാണ്ടിനോട് neuter ദശാബ്‌ദം - ദശാബ്‌ദം - ദശാബ്‌ദത്തിനെ + {0} ദശാബ്‌ദത്തിനെ {0} ദശാബ്‌ദത്തിന് {0} ദശാബ്‌ദത്തിന്റെ - {0} ദശാബ്‌ദം + {0} ദശാബ്‌ദം കൊണ്ട് {0} ദശാബ്‌ദത്തിൽ {0} ദശാബ്‌ദത്തിനോട് - {0} ദശാബ്‌ദം {0} ദശാബ്‌ദങ്ങളിലെ {0} ദശാബ്‌ദങ്ങളിലെ {0} ദശാബ്‌ദത്തിന്റെ @@ -6237,10 +6244,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} വർഷത്തെ {0} വർഷത്തിന് {0} വർഷത്തിന്റെ + {0} വർഷം കൊണ്ട് + {0} വർഷത്തിൽ + {0} വർഷത്തോട് {0} വർഷം - {0} വർഷം - {0} വർഷം - {0} വർഷം + {0} വർഷത്തെ + {0} വർഷത്തിന് + {0} വർഷത്തിന്റെ + {0} വർഷം കൊണ്ട് + {0} വർഷത്തിൽ + {0} വർഷത്തോട് {0} / വർഷം @@ -6248,37 +6261,109 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ neuter + {0} മാസത്തെ + {0} മാസത്തിന് + {0} മാസത്തിന്റെ + {0} മാസം കൊണ്ട് + {0} മാസത്തിൽ + {0} മാസത്തോട് + {0} മാസത്തെ + {0} മാസത്തിന് + {0} മാസത്തിന്റെ + {0} മാസം കൊണ്ട് + {0} മാസത്തിൽ + {0} മാസത്തോട് {0} / മാസം neuter {0} ആഴ്ച + {0} ആഴ്ചയെ + {0} ആഴ്ചയ്ക്ക് + {0} ആഴ്ചയുടെ + {0} ആഴ്ച കൊണ്ട് + {0} ആഴ്ചയിൽ + {0} ആഴ്ചയോട് {0} ആഴ്ച + {0} ആഴ്ചയെ + {0} ആഴ്ചയ്ക്ക് + {0} ആഴ്ചയുടെ + {0} ആഴ്ച കൊണ്ട് + {0} ആഴ്ചയിൽ + {0} ആഴ്ചയോട് {0} / ആഴ്ച neuter {0} ദിവസം + {0} ദിവസത്തെ + {0} ദിവസത്തിന് + {0} ദിവസത്തിന്റെ + {0} ദിവസം കൊണ്ട് + {0} ദിവസത്തിൽ + {0} ദിവസത്തോട് {0} ദിവസം + {0} ദിവസത്തെ + {0} ദിവസത്തിന് + {0} ദിവസത്തിന്റെ + {0} ദിവസം കൊണ്ട് + {0} ദിവസത്തിൽ + {0} ദിവസത്തോട് {0} / ദിവസം neuter {0} മണിക്കൂർ + {0} മണിക്കൂറിനെ + {0} മണിക്കൂറിന് + {0} മണിക്കൂറിന്റെ + {0} മണിക്കൂർ കൊണ്ട് + {0} മണിക്കൂറിൽ + {0} മണിക്കൂറിനോട് {0} മണിക്കൂർ + {0} മണിക്കൂറിനെ + {0} മണിക്കൂറിന് + {0} മണിക്കൂറിന്റെ + {0} മണിക്കൂർ കൊണ്ട് + {0} മണിക്കൂറിൽ + {0} മണിക്കൂറിനോട് {0} / മണിക്കൂർ neuter മിനിറ്റ് {0} മിനിറ്റ് + {0} മിനിറ്റിനെ + {0} മിനിറ്റിന് + {0} മിനിറ്റിന്റെ + {0} മിനിറ്റ് കൊണ്ട് + {0} മിനിറ്റിൽ + {0} മിനിറ്റിനോട് {0} മിനിറ്റ് + {0} മിനിറ്റിനെ + {0} മിനിറ്റിന് + {0} മിനിറ്റിന്റെ + {0} മിനിറ്റ് കൊണ്ട് + {0} മിനിറ്റിൽ + {0} മിനിറ്റിനോട് {0} / മിനിറ്റ് neuter {0} സെക്കൻഡ് + {0} സെക്കൻഡിനെ + {0} സെക്കൻഡിന് + {0} സെക്കൻഡിന്റെ + {0} സെക്കൻഡ് കൊണ്ട് + {0} സെക്കൻഡിൽ + {0} സെക്കൻഡിനോട് {0} സെക്കൻഡ് + {0} സെക്കൻഡിനെ + {0} സെക്കൻഡിന് + {0} സെക്കൻഡിന്റെ + {0} സെക്കൻഡ് കൊണ്ട് + {0} സെക്കൻഡിൽ + {0} സെക്കൻഡിനോട് {0} / സെക്കൻഡ് @@ -6420,7 +6505,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ neuter - ന്യൂട്ടൻസ് {0} ന്യൂട്ടൻ {0} ന്യൂട്ടനെ {0} ന്യൂട്ടന് @@ -6428,7 +6512,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ന്യൂട്ടനാൽ {0} ന്യൂട്ടനിൽ {0} ന്യൂട്ടനോട് - {0} ന്യൂട്ടൻസ് + {0} ന്യൂട്ടൻ {0} ന്യൂട്ടനെ {0} ന്യൂട്ടന് {0} ന്യൂട്ടന്റെ @@ -6478,7 +6562,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ neuter ടൈപോഗ്രഫിക്ക് ems {0} em + {0} em-നെ + {0} em-ന് + {0} em-ന്റെ + {0} em കൊണ്ട് + {0} em-ൽ + {0} em-നോട് {0} ems + {0} ems-നെ + {0} ems-ന് + {0} ems-ന്റെ + {0} ems കൊണ്ട് + {0} ems-ൽ + {0} ems-നോട് neuter @@ -6490,13 +6586,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} പിക്സൽ കൊണ്ട് {0} പിക്സലിൽ {0} പിക്സലിനോട് - {0} px - {0} px - {0} px - {0} px - {0} px - {0} px - {0} px + {0} പിക്സൽ + {0} പിക്സലിനെ + {0} പിക്സലിന് + {0} പിക്സലിന്റെ + {0} പിക്സൽ കൊണ്ട് + {0} പിക്സലിൽ + {0} പിക്സലിനോട് മെഗാപിക്സൽസ് @@ -6532,7 +6628,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ neuter {0} മീറ്റർ + {0} മീറ്ററിനെ + {0} മീറ്ററിന് + {0} മീറ്ററിന്റെ + {0} മീറ്റർ കൊണ്ട് + {0} മീറ്ററിൽ + {0} മീറ്ററിനോട് {0} മീറ്റർ + {0} മീറ്ററിനെ + {0} മീറ്ററിന് + {0} മീറ്ററിന്റെ + {0} മീറ്റർ കൊണ്ട് + {0} മീറ്ററിൽ + {0} മീറ്ററിനോട് {0} / മീറ്റർ @@ -6601,7 +6709,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ neuter സ്കാൻഡിനേവിയൻ മൈൽ {0} സ്കാൻഡിനേവിയൻ മൈൽ + {0} സ്കാൻഡിനേവിയൻ മൈലിനെ + {0} സ്കാൻഡിനേവിയൻ മൈലിന് + {0} സ്കാൻഡിനേവിയൻ മൈലിന്റെ + {0} സ്കാൻഡിനേവിയൻ മൈൽ കൊണ്ട് + {0} സ്കാൻഡിനേവിയൻ മൈലിൽ + {0} സ്കാൻഡിനേവിയൻ മൈലിനോട് {0} സ്കാൻഡിനേവിയൻ മൈൽ + {0} സ്കാൻഡിനേവിയൻ മൈലിനെ + {0} സ്കാൻഡിനേവിയൻ മൈലിന്റെ + {0} സ്കാൻഡിനേവിയൻ മൈലിന് + {0} സ്കാൻഡിനേവിയൻ മൈൽ കൊണ്ട് + {0} സ്കാൻഡിനേവിയൻ മൈലിൽ + {0} സ്കാൻഡിനേവിയൻ മൈലിനോട് {0} പോയിന്റ് @@ -6742,23 +6862,24 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ neuter - {0} ക്യാരറ്റ് - {0} ക്യാരറ്റിനെ - {0} ക്യാരറ്റിന് - {0} ക്യാരറ്റിന്റെ - {0} ക്യാരറ്റിനാൽ - {0} ക്യാരറ്റിൽ - {0} ക്യാരറ്റിനോട് - {0} ക്യാരറ്റ് - {0} ക്യാരറ്റിനെ - {0} ക്യാരറ്റിന് - {0} ക്യാരറ്റിന്റെ - {0} ക്യാരറ്റിനാൽ - {0} ക്യാരറ്റിൽ - {0} ക്യാരറ്റിനോട് + കാരറ്റ് + {0} കാരറ്റ് + {0} കാരറ്റിനെ + {0} കാരറ്റിന് + {0} കാരറ്റിന്റെ + {0} കാരറ്റിനാൽ + {0} കാരറ്റിൽ + {0} കാരറ്റിനോട് + {0} കാരറ്റ് + {0} കാരറ്റിനെ + {0} കാരറ്റിന് + {0} കാരറ്റിന്റെ + {0} കാരറ്റിനാൽ + {0} കാരറ്റിൽ + {0} കാരറ്റിനോട് - ഡാൽട്ടൻ + {0} ഡാൽട്ടൺ {0} ഡാൽട്ടണുകൾ @@ -6829,20 +6950,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ neuter ബാറുകൾ - {0} ബാർ {0} ബാറിനെ {0} ബാറിന് {0} ബാറിന്റെ {0} ബാറിനാൽ {0} ബാറിൽ {0} ബാറിനോട് - {0} ബാറുകൾ {0} ബാറിനെ {0} ബാറിന് {0} ബാറിന്റെ - {0} ബാറുകളാൽ - {0} ബാറുകളിൽ - {0} ബാറുകളോട് + {0} ബാറിനാൽ + {0} ബാറിൽ + {0} ബാറിനോട് മില്ലിബാർ @@ -6869,7 +6988,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ neuter - പാസ്കൽസ് + പാസ്കൽ {0} പാസ്കൽ {0} പാസ്‌കലിനെ {0} പാസ്‌കലിന് @@ -6886,9 +7005,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} പാസ്‌കലിനോട് - ഹെക്‌ടോപാസ്‌ക്കൽ - {0} ഹെക്‌ടോപാസ്‌ക്കൽ - {0} ഹെക്‌ടോപാസ്‌ക്കൽ + ഹെക്‌ടോപാസ്‌കൽ + {0} ഹെക്‌ടോപാസ്‌കൽ + {0} ഹെക്‌ടോപാസ്‌കൽ കിലോപാസ്കൽ @@ -6898,7 +7017,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ മെഗാപാസ്കൽ {0} മെഗാപാസ്കൽ - {0} മെഗാപാസ്കലുകൾ + {0} മെഗാപാസ്കൽ കിലോമീറ്റർ/മണിക്കൂർ @@ -6979,7 +7098,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ന്യൂട്ടൺ മീറ്റർ {0} ന്യൂട്ടൺ മീറ്റർ - {0} ന്യൂട്ടൺ മീറ്ററുകൾ + {0} ന്യൂട്ടൺ മീറ്റർ ക്യൂബിക് കിലോമീറ്റർ @@ -7031,7 +7150,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ neuter {0} ലിറ്റർ + {0} ലിറ്ററിനെ + {0} ലിറ്ററിന് + {0} ലിറ്ററിന്റെ + {0} ലിറ്റർ കൊണ്ട് + {0} ലിറ്ററിൽ + {0} ലിറ്ററിനോട് {0} ലിറ്റർ + {0} ലിറ്ററിനെ + {0} ലിറ്ററിന് + {0} ലിറ്ററിന്റെ + {0} ലിറ്റർ കൊണ്ട് + {0} ലിറ്ററിൽ + {0} ലിറ്ററിനോട് {0} / ലിറ്റർ @@ -7053,13 +7184,37 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ neuter മെട്രിക് പൈന്റ് {0} മെട്രിക് പൈന്റ് + {0} മെട്രിക് പൈന്റിനെ + {0} മെട്രിക് പൈന്റിന് + {0} മെട്രിക് പൈന്റിന്റെ + {0} മെട്രിക് പൈന്റ് കൊണ്ട് + {0} മെട്രിക് പൈന്റിൽ + {0} മെട്രിക് പൈന്റിനോട് {0} മെട്രിക് പൈന്റ് + {0} മെട്രിക് പൈന്റിനെ + {0} മെട്രിക് പൈന്റിന് + {0} മെട്രിക് പൈന്റിന്റെ + {0} മെട്രിക് പൈന്റ് കൊണ്ട് + {0} മെട്രിക് പൈന്റിൽ + {0} മെട്രിക് പൈന്റിനോട് neuter മെട്രിക് കപ്പ് {0} മെട്രിക് കപ്പ് + {0} മെട്രിക് കപ്പിനെ + {0} മെട്രിക് കപ്പിന് + {0} മെട്രിക് കപ്പിന്റെ + {0} മെട്രിക് കപ്പ് കൊണ്ട് + {0} മെട്രിക് കപ്പിൽ + {0} മെട്രിക് കപ്പിനോട് {0} മെട്രിക് കപ്പ് + {0} മെട്രിക് കപ്പിനെ + {0} മെട്രിക് കപ്പിന് + {0} മെട്രിക് കപ്പിന്റെ + {0} മെട്രിക് കപ്പ് കൊണ്ട് + {0} മെട്രിക് കപ്പിൽ + {0} മെട്രിക് കപ്പിനോട് ഏക്കർ അടി @@ -7116,6 +7271,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} dram {0} dram + + പാർട്‌സ്/ബില്ല്യൺ + {0} പാർട്ട്/ബില്ല്യൺ + {0} പാർട്‌സ്/ബില്ല്യൺ + + + രാത്രികൾ + {0} രാത്രി + {0} രാത്രികൾ + {0}/രാത്രി + കാർഡിനൽ ദിശ {0} കിഴക്ക് @@ -7131,6 +7297,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ യോ{0} + + കി.{0} + ജി-ഫോഴ്‌സ് {0} ജി @@ -7222,9 +7391,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ദുനം - ക്യാരറ്റ് - {0} ക്യാ. - {0} ക്യാ. + കാരറ്റ് + {0} കാ. + {0} കാ. മി.ഗ്രാം/ഡെ.ലി. @@ -7666,7 +7835,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ട്രോ.ഔ. - ക്യാരറ്റ് + കാരറ്റ് ഡാൽട്ടണുകൾ @@ -7926,6 +8095,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} നുള്ള് {0} നുള്ള് + + പാർട്‌സ്/ബില്ല്യൺ + {0} പി.പി.ബി. + {0} പി.പി.ബി. + + + രാത്രികൾ + {0} രാത്രി + {0} രാത്രികൾ + {0}/രാത്രി + ദിശ {0} കി. @@ -7978,6 +8158,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ദുനം + + കാരറ്റ് + {0} കാ. + {0}കാ. + @@ -8123,6 +8308,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ഔ + കാരറ്റ് {0}CD {0}CD @@ -8228,6 +8414,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}fl.dr. {0}fl.dr. + + പി.പി.ബി. + {0}പി.പി.ബി. + {0}പി.പി.ബി. + + + രാത്രികൾ + {0}രാത്രി + {0}രാത്രികൾ + {0}/രാത്രി + {0}കി. {0}വ. diff --git a/make/data/cldr/common/main/mn.xml b/make/data/cldr/common/main/mn.xml index 23d8dc9c83c..d170cd28ba3 100644 --- a/make/data/cldr/common/main/mn.xml +++ b/make/data/cldr/common/main/mn.xml @@ -50,11 +50,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ бемба бена болгар - Харьянви + харьянви божпури бислам бини сиксика + Ани бамбара бенгал төвд @@ -98,8 +99,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ даргва тайта герман - австри-герман - швейцарь-герман + герман (Швейцар) догриб зарма догри @@ -135,8 +135,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ фарер фон франц - канад-франц - швейцари-франц + франц (Швейцар) франц, кажун хойд фриз фриулан @@ -230,6 +229,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ коми корн квак вала + куви киргиз латин ладин @@ -238,9 +238,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ лезги ганда лимбург - Лигури + лигури лиллуэт лакота + ломбард лингала лаос луизиана креоле @@ -395,6 +396,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ конгогийн свахили комори сири + силез тамил өмнөд тутчоне тэлүгү @@ -430,13 +432,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ уйгур украин умбунду - Үл мэдэгдэх хэл + үл мэдэгдэх хэл урду узбек вай венда венец вьетнам + макуа волапюк вунжо уоллун @@ -447,6 +450,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ хятад, ву хэл халимаг хоса + кангри сога янгбен емба @@ -455,6 +459,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ньенгату кантон хятад, кантон + чжуанг стандарт тамазайт (Морокко) хятад хятад, мандарин @@ -682,7 +687,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Латин Америк Асенсион арал Андорра - Арабын Нэгдсэн Эмирт Улс + Арабын Нэгдсэн Эмират Улс Афганистан Антигуа ба Барбуда Ангилья @@ -697,7 +702,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Аруба Аландын арлууд Азербайжан - Босни-Герцеговин + Босни-Херцеговин Барбадос Бангладеш Бельги @@ -725,9 +730,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Төв Африкийн Бүгд Найрамдах Улс Конго-Браззавиль Конго (Бүгд Найрамдах улс) - Швейцарь + Швейцар Кот-д’Ивуар - Зааны ясан эрэг Күүкийн арлууд Чили Камерун @@ -759,7 +763,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Этиоп Европын Холбоо Евро бүс - Финлянд + Финланд Фижи Фолклендийн арлууд Фолклендийн арлууд (Мальвины арлууд) @@ -786,7 +790,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Гуам Гвиней-Бисау Гайана - БНХАУ-ын Тусгай захиргааны бүс Хонг Конг + БНХАУ-ын Тусгай захиргааны бүс Хонг-Конг Хонг Конг Херд ба Макдональдийн арлууд Гондурас @@ -796,7 +800,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Канарын арлууд Индонез Ирланд - Израиль + Израил Мэн Арал Энэтхэг Британийн харьяа Энэтхэгийн далай дахь нутаг дэвсгэр @@ -810,7 +814,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Йордан Япон Кени - Кыргызстан + Киргиз Камбож Кирибати Коморын арлууд @@ -823,7 +827,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Лаос Ливан Сент Люсиа - Лихтенштейн + Лихтенштайн Шри-Ланка Либери Лесото @@ -862,7 +866,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Нигери Никарагуа Нидерланд - Норвеги + Норвег Балба Науру Ниуэ @@ -986,8 +990,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ энэтхэгийн үндэсний цаглавар исламын цаглавар исламын цаглавар (хүснэгт, иргэний эрин үе) - исламийн цаглавар (саудын араб, газарзүйн) - исламийн цаглавар (хүснэгтэн, одон орны эрин) + исламийн цаглавар (саудын араб, газарзүйн) + исламийн цаглавар (хүснэгтэн, одон орны эрин) исламын цаглавар (Umm al-Qura) ISO-8601 цаглавар япон цаглавар @@ -1222,9 +1226,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ E. h:mm:ss a E. HH:mm:ss GGGGG y.MM.dd - G y 'оны' MMM - G y 'оны' MMM'ын' d - G y 'оны' MMM'ын' d. E + G y 'оны' MM-'р' 'сар' + G y 'оны' MM-'р' 'сарын' d + G y 'оны' MM-'р' 'сарын' d, E h 'ц' a HH 'ц' h:mm a @@ -1232,16 +1236,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ LLLLL MMMMM/dd MMMMM/dd. E - MMM'ын' d - MMM'ын' d. E - MMMM'ын' d + MM-'р' 'сарын' d + MM-'р' 'сарын' d, E + MM-'р' 'сарын' d GGGGG y MMMMM GGGGG y.MM.dd GGGGG y.MM.dd. E - G y 'оны' MMM - G y 'оны' MMM'ын' d - G y 'оны' MMM'ын' d. E - G y 'оны' MMMM + G y 'оны' MM-'р' 'сар' + G y 'оны' MM-'р' 'сарын' d + G y 'оны' MM-'р' 'сарын' d, E + G y 'оны' MM-'р' 'сар' G y 'оны' QQQ G y 'оны' QQQQ @@ -2060,6 +2064,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}-н цаг {0}-н зуны цаг {0}-н стандарт цаг + + Хонолулу + Олон улсын зохицуулалттай цаг @@ -2225,7 +2232,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Уагадугу - София + Софи Бахрейн @@ -2312,7 +2319,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Минск - Белизе + Белиз Доусон @@ -2462,10 +2469,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Жибути - Копенгаген + Копенхаген - Доминика + Доминик Санто Доминго @@ -2630,7 +2637,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Дублин - Ерусалем + Йерусалим Мэн Арал @@ -2797,9 +2804,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Улаанбаатар - - Чойбалсан - Макао @@ -2819,7 +2823,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Мальта - Маврикий + Маврики Мальдив @@ -2966,7 +2970,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Мадейра - Лиссабон + Лисбон Палау @@ -3080,7 +3084,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Хартум - Стокольм + Стокхолм Сингапур @@ -3199,9 +3203,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ном - - Хонолулу - Анкораж @@ -3546,13 +3547,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Хятадын зуны цаг - - - Чойбалсангийн цаг - Чойбалсангийн стандарт цаг - Чойбалсангийн зуны цаг - - Крисмас арлын цаг @@ -3791,6 +3785,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Японы зуны цаг + + + Казахстаны цаг + + Зүүн Казахстаны цаг @@ -4208,6 +4207,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + , +   + @@ -4266,90 +4269,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - @@ -4394,100 +4313,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ 000 их наяд - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} @@ -5007,7 +4832,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - деси{0} + деци{0} сенти{0} @@ -5399,6 +5224,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} пиксель/инч {0} пиксель/инч + + цэг/инч + {0} цэг/инч + {0} цэг/инч + дэлхийн радиус {0} дэлхийн радиус @@ -5461,9 +5291,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} гэрлийн жил - сансрын нэгж - {0} сансрын нэгж - {0} сансрын нэгж + одон орны нэгж + {0} одон орны нэгж + {0} одон орны нэгж {0} фурлонг @@ -5822,6 +5652,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Том куарт + + мкг/кг + {0} мкг/кг + {0} мкг/кг + + + шөнө + {0} шөнө + {0} шөнө + {0}/шөнөдөө + зүг чиг зүүн уртрагийн {0} @@ -6024,7 +5865,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ хувь/сая - {0}x10⁻⁶ + саяны {0} хувь {0}x10⁻⁶ @@ -6288,6 +6129,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} цэг/см {0} цэг/см + + цэг/инч + {0} цэг/инч + {0} цэг/инч + цэг {0} цэг @@ -6369,9 +6215,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} гэрл.жил - сн - {0} сн - {0} сн + о.о.н + {0} о.о.н + {0} о.о.н фурлонг @@ -6402,6 +6248,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} люкс {0} люкс + + люмен + {0} люмен + {0} люмен + нарны гэрлийн урсгал @@ -6765,6 +6616,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} том куарт {0} том куарт + + мкг/кг + {0} мкг/кг + {0} мкг/кг + + + шөнө + {0} шөнө + {0} шөнө + {0}/шөнө + зүг {0} з.у @@ -6874,9 +6736,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}″ - au - {0}au - {0}au + о.о.н + {0}о.о.н + {0}о.о.н {0} фурлонг @@ -6965,6 +6827,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} аяга {0} аяга + + мкг/кг + {0} мкг/кг + {0} мкг/кг + + + шөнө + {0}шөнө + {0}шөнө + {0}/шөнө + hh:mm @@ -6996,6 +6869,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} - нийцэл {0} — хавсаргасан {0} — өргөтгөсөн + {0} зүүн тийш харсан + {0} баруун тийш харсан {0} — түүхэн {0} — янз бүр {0} — бусад diff --git a/make/data/cldr/common/main/mn_Mong_MN.xml b/make/data/cldr/common/main/mn_Mong_MN.xml index d512403c7e1..187e493c3a5 100644 --- a/make/data/cldr/common/main/mn_Mong_MN.xml +++ b/make/data/cldr/common/main/mn_Mong_MN.xml @@ -390,9 +390,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ᠣᠯᠠᠭᠠᠨᠪᠠᠭᠠᠳᠣᠷ - - ᠴᠥᠢᠪᠠᠯᠰᠨᠩ - ᠲᠥᠪ ᠴᠠᠭ @@ -457,9 +454,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - , - diff --git a/make/data/cldr/common/main/mr.xml b/make/data/cldr/common/main/mr.xml index d19b803f5ce..27186ff06c0 100644 --- a/make/data/cldr/common/main/mr.xml +++ b/make/data/cldr/common/main/mr.xml @@ -66,6 +66,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ बिकोल बिनी सिक्सिका + ॲनीआय बाम्बारा बंगाली तिबेटी @@ -222,13 +223,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ हंगेरियन हूपा हॉल्कमेलम - आर्मेनियन + अर्मेनियन हरेरो इंटरलिंग्वा इबान इबिबिओ इंडोनेशियन - इन्टरलिंग + इंटरलिंग ईग्बो सिचुआन यी इनूपियाक @@ -291,6 +292,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ कोमी कोर्निश क्वक्क्वाला + कुवी किरगीझ लॅटिन लादीनो @@ -301,8 +303,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ लेझ्घीयन गांडा लिंबूर्गिश + लिगुरिअन लिलूएट लाकोटा + लोंबार्ड लिंगाला लाओ मोंगो @@ -375,7 +379,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ क्वासिओ नॉर्वेजियन न्योर्स्क जिएम्बून - नोर्वेजियन + नॉर्वेजियन नोगाई पुरातन नॉर्स एन्को @@ -493,6 +497,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ कोमोरियन अभिजात सिरियाक सिरियाक + सिलेशियन तामिळ दक्षिणात्य टचोन तेलगू @@ -541,7 +546,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ उझ्बेक वाई व्हेंदा + व्हेनेशियन व्हिएतनामी + मखुवा ओलापुक वॉटिक वुंजो @@ -555,6 +562,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ व्हू चिनी काल्मिक खोसा + कांगरी सोगा याओ यापीस @@ -723,7 +731,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - विश्व + जग आफ्रिका उत्तर अमेरिका दक्षिण अमेरिका @@ -1186,8 +1194,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - [़ ॐ ं ँ ः अ आ इ ई उ ऊ ऋ ऌ ऍ ए ऐ ऑ ओ औ क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य रऱ ल व श ष स ह ळ ऽ ा ि ी ु ू ृ ॅ े ै ॉ ो ौ ्] - [\u200C\u200D ॄ] + [ॐ ं ः अ आ इ ई उ ऊ ऋ ऌ ए ऐ ऑ ओ औ क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल व श ष स ह ळ {क्ष} {ज्ञ} ऽ ा ि ी ु ू ृ ॅ े ै ॉ ो ौ ्] + [\u200C\u200D ़ ँ ऍ ऱ ॄ] [\u200D ॐ ं ः अ आ इ ई उ ऊ ऋ ऌ ए ऐ ऑ ओ औ क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल व श ष स ह ळ ऽ ॅ ्] [\- ‑ , . % ‰ + 0० 1१ 2२ 3३ 4४ 5५ 6६ 7७ 8८ 9९] [\- ‐‑ – — , ; \: ! ? . … '‘’ "“” ( ) \[ \] @ * / \& # ′ ″] @@ -1195,7 +1203,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -1613,7 +1621,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ई. स. पू. - ई. स. पू. युग + ई. पू. युग इ. स. ख्रि. यु. @@ -1872,13 +1880,27 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + चैत्र + वैशाख + ज्येष्ठ + आषाढ + श्रावण + भाद्रपद + अश्विन + कार्तिक + मार्गशीर्ष + पौष + माघ + फाल्गुन + चैत्र वैशाख ज्येष्ठ आषाढ श्रावण - भाद्र + भाद्रपद आश्विन कार्तिक मार्गशीर्ष @@ -1888,6 +1910,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + चैत्र + वैशाख + ज्येष्ठ + आषाढ + श्रावण + भाद्रपद + अश्विन + कार्तिक + मार्गशीर्ष + पौष + माघ + फाल्गुन + @@ -1902,6 +1938,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ११ १२ + + चैत्र + वैशाख + ज्येष्ठ + आषाढ + श्रावण + भाद्रपद + आश्विन + कार्तिक + मार्गशीर्ष + पौष + माघ + फाल्गुन + @@ -2424,6 +2474,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} वेळ {0} सूर्यप्रकाश वेळ {0} प्रमाण वेळ + + होनोलुलू + समन्वित वैश्विक वेळ @@ -2592,7 +2645,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ सोफिया - बेहरीन + बहारिन बुजुंबुरा @@ -3161,9 +3214,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ उलानबातर - - चोईबाल्सन - मकाऊ @@ -3563,9 +3613,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ नोम - - होनोलुलू - अँकरेज @@ -3945,13 +3992,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ चीनी सूर्यप्रकाश वेळ - - - चोईबाल्सन वेळ - चोईबाल्सन प्रमाण वेळ - चोईबाल्सन उन्हाळी वेळ - - ख्रिसमस बेट वेळ @@ -4147,7 +4187,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - हिंदमहासागर वेळ + हिंद महासागर वेळ @@ -4205,6 +4245,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ पेट्रोपाव्हलोस्क- कामचाट्स्की ग्रीष्मकालीन वेळ + + + कझाकस्तान वेळ + + पूर्व कझाकस्तान वेळ @@ -4791,8 +4836,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ 00 पद्म - {0} {1} - {0} {1} @@ -5978,9 +6021,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} कॅरेट्सचा + neuter मिलीग्रामस् पर डेसीलिटर - {0} मिलीग्राम पर डेसीलिटर - {0} मिलीग्रामस् पर डेसीलिटर + {0} मिलीग्रॅम प्रति डेसीलिटर + {0} मिलीग्रॅम प्रति डेसीलिटरनी + {0} मिलीग्रॅम प्रति डेसीलिटरला + {0} मिलीग्रॅम प्रति डेसीलिटरसाठी + {0} मिलीग्रॅम प्रति डेसीलिटरने + {0} मिलीग्रॅम प्रति डेसीलिटरचे + {0} मिलीग्रॅम प्रति डेसीलिटरहून + {0} मिलीग्रॅम्स प्रति डेसीलिटर + {0} मिलीग्रॅम्स प्रति डेसीलिटरहून + {0} मिलीग्रॅम्स प्रति डेसीलिटरना + {0} मिलीग्रॅम्स प्रति डेसीलिटरसाठी + {0} मिलीग्रॅम्स प्रति डेसीलिटरने + {0} मिलीग्रॅम्स प्रति डेसीलिटरचे + {0} मिलीग्रॅम्स प्रति डेसीलिटरहून neuter @@ -6649,9 +6705,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} व्होल्टचा - किलोकॅलोरी - {0} किलोकॅलोरी - {0} किलोकॅलोरी + feminine + किलोकॅलरी + {0} किलोकॅलरी + {0} किलोकॅलरीतून + {0} किलोकॅलरीला + {0} किलोकॅलोरीसाठी + {0} किलोकॅलरीने + {0} किलोकॅलरीचा + {0} किलोकॅलरीला + {0} किलोकॅलरी + {0} किलोकॅलरीहून + {0} किलोकॅलरींना + {0} किलोकॅलरीसाठी + {0} किलोकॅलरी + {0} किलोकॅलरीची + {0} किलोकॅलरीतून feminine @@ -7138,6 +7207,23 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} मैल-स्कॅन्डीनेव्हियनचे {0} मैल-स्कॅन्डीनेव्हियनचा + + masculine + {0} बिंदु + {0} बिंदुपासून + {0} बिंदूला + {0} बिंदूसाठी + {0} बिंदुने + {0} बिंदूच्या + बिंदूचा + {0} बिंदु + {0} बिंदुपासून + {0} बिंदुला + {0} बिंदुस + {0} बिंदुने + {0} बिंदुच्या + {0} बिंदुचा + {0} सौर त्रिज्या {0} सौर त्रिज्या @@ -7421,9 +7507,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} हॉर्सपॉवर + neuter मर्क्यूरी मिलिमीटर {0} मर्क्यूरी मिलिमीटर + {0} मर्क्यूरी मिलिमीटरहून + {0} मर्क्यूरी मिलिमीटरला + {0} मर्क्यूरी मिलिमीटरसाठी + {0} मर्क्यूरी मिलिमीटरने + {0} मर्क्यूरी मिलिमीटरचे + {0} मर्क्यूरी मिलिमीटरचा {0} मर्क्यूरी मिलिमीटर + {0} मर्क्यूरी मिलिमीटरहून + {0} मर्क्यूरी मिलिमीटरना + {0} मर्क्यूरी मिलिमीटरला + {0} मर्क्यूरी मिलिमीटरने + {0} मर्क्यूरी मिलिमीटरच्या + {0} मर्क्यूरी मिलिमीटरपासून प्रति चौरस इंच पाउंड @@ -7490,20 +7589,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine पास्काल - {0} पास्काल - {0} पास्कालपासून - {0} पास्कालला - {0} पास्कालला - {0} पास्कालने - {0} पास्कालचा - {0} पास्कालशी - {0} पास्काल - {0} पास्कालहून - {0} पास्कालना - {0} पास्कालसाठी - {0} पास्कालनी - {0} पास्कालचे - {0} पास्कालचा + {0} पास्कल + {0} पास्कलपासून + पास्कलला + {0} पास्कलला + {0} पास्कलने + {0} पास्कलचा + {0} पास्कलशी + {0} पास्कल + {0} पास्कल + {0} पास्कलहून + {0} पास्कलना + {0} पास्कलसाठी + {0} पास्कलनी + {0} पास्कल + {0} पास्कलचा masculine @@ -7987,6 +8087,61 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} इंपि. क्वार्ट {0} इंपि. क्वार्ट + + masculine + प्रकाश + प्रकाश + प्रकाशापासून + प्रकाशाला + प्रकाशासाठी + प्रकाशाने + प्रकाशाचे + प्रकाशामध्ये + {0} प्रकाश + {0} प्रकाशापासून + {0} प्रकाशाला + {0} प्रकाशासाठी + {0} प्रकाश + {0} प्रकाशांचे + {0} प्रकाशामध्ये + + + neuter + भाग प्रति अब्ज + {0} भाग प्रति अब्ज + {0} भाग प्रति अब्जाहून + {0} भाग प्रति अब्जना + {0} भाग प्रति अब्जासाठी + {0} भाग प्रति अब्जाने + {0} भाग प्रति अब्जचे + {0} भाग प्रति अब्जहून + {0} भाग प्रति अब्ज + {0} भाग प्रति अब्जांहून + {0} भाग प्रति अब्जांना + {0} भाग प्रति अब्जांसाठी + {0} भाग प्रति अब्जांनी + {0} भाग प्रति अब्जांचे + {0} भाग प्रति अब्जांहून + + + feminine + रात्री + रात्र + {0} रात्रीपासून + रात्री + रात्री + {0} रात्रीने + रात्रीचा + रात्री + {0} रात्री + {0} रात्रीपासून + {0} रात्री + {0} रात्री + {0} रात्रीने + {0} रात्रीला + {0} रात्रीस + {0}/रात्र + मुख्य दिशा {0} पूर्व @@ -8307,6 +8462,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ व्होल्ट + + किकॅ + {0} किकॅ + {0} किकॅ + + + कॅ + Cal {0} Cal @@ -8655,6 +8818,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} आकुंचन {0} आकुंचन + + प्र + {0} प्रकाश + {0} प्रकाश + + + भाग/अब्ज + {0} भाग प्रति अब्ज + {0} भाप्रअ + + + रात्री + {0} रात्र + {0} रात्र + {0}/रात्र + दिशा {0}पू @@ -8848,6 +9027,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ नॅसे + + किकॅल + {0} किकॅ + {0} किकॅ + {0}Btu {0}Btu @@ -8897,10 +9081,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}पिमी {0}पिमी - - {0}मैल - {0}मैल - {0}यार्ड {0}यार्ड @@ -9035,6 +9215,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}qt-Imp. {0}qt-Imp. + + प्र + {0} प्रकाश + {0} प्रकाश + + + भाग/अब्ज + {0} भाग/अब्ज + {0} भाग/अब्ज + + + रात्री + {0} रात्र + {0} रात्र + {0}/रात्र + @@ -9071,8 +9267,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} — सुसंगतपणा {0} — समाविष्ट {0} — विस्तारित - {0} डावीकडे - {0} उजवीकडे + {0} डावीकडे + {0} उजवीकडे {0} — ऐतिहासिक {0} — नानाविध {0} — अन्य diff --git a/make/data/cldr/common/main/ms.xml b/make/data/cldr/common/main/ms.xml index c1382176e51..501ceb897f8 100644 --- a/make/data/cldr/common/main/ms.xml +++ b/make/data/cldr/common/main/ms.xml @@ -68,6 +68,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Bini Kom Siksika + Anii Bambara Benggali Tibet @@ -264,6 +265,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Komi Cornish Kwak’wala + Kuvi Kirghiz Latin Ladino @@ -273,8 +275,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Lezghian Ganda Limburgish + Liguria Lillooet Lakota + Lombard Lingala Laos Kreol Louisiana @@ -438,6 +442,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Congo Swahili Comoria Syriac + Silesia Tamil Tutchone Selatan Telugu @@ -480,7 +485,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Uzbekistan Vai Venda + Venetia Vietnam + Makhuwa Volapük Vunjo Walloon @@ -492,6 +499,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Cina Wu Kalmyk Xhosa + Kangri Soga Yangben Yemba @@ -500,6 +508,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Nheengatu Kantonis Cina, Kantonis + Zhuang Tamazight Maghribi Standard Cina Cina, Mandarin @@ -515,7 +524,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -573,7 +581,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -613,7 +620,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -662,7 +668,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -1006,51 +1011,99 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Awal Pertengahan Era Perancis Akademik Perumusan sistem ejaan 1943 + AKUAPEM TWI Perumian ALA-LC, edisi 1997 Dialek Aluku Perjanjian Sistem Ejaan Bahasa Portugis 1990 + ARAN + ASANTE TWI + AUVERGNAT Abjad Latin Turki Disatukan Dialek Balanka Anii Kumpulan dialek Barlavento Kabuverdianu + ASAS INGGERIS + BUDDHA + BISCAYAN BISQUE Dialek San Giorgio/Bila Abjad Bohoric Boontling + CISALPINE Konvensyen Sistem Ejaan Portugis-Brazil 1945 + INGGERIS CORNISH + OCCITAN CROISSANT Abjad Dajnko Serbia dengan sebutan Ekavia Inggeris Moden Awal Fonetik IPA + ABJAD FONETIK ANTARABANGSA + ABJAD FONETIK AMERIKA UTARA Fonetik UPA + TRANSKRIP X-SAMPA + OCCITAN GASCON + OCCITAN KLASIK + ORTOGRAFI OCCITAN-ITALI + ORTOGRAFI MISTRALIA Perumian Hepburn + NORWAY TINGGI + SERBIA IJEKAVIAN Fon Serbia dengan sebutan Ijekavia + SANSKRIT EPIK + ORTOGRAFI BULGARIA 1899 + ROMANSH JAUER + KANTONIS ROMAN Sistem Ejaan Lazim + POLAND KOCIEWIE Sistem Ejaan Standard + SANSKRIT KLASIK + PERANCIS LIMOUSIN + OCCITAN LANGUEDOC Dialek Lipovaz Resia + ORTOGRAFI RUSIA SELEPAS 1917 Abjad Metelko Ekanada Dialek Ndyuka Dialek Natisone + INGGERIS NEWFOUNDLAND + OCCITAN NICARD Dialek Gniva/Njiva Volapuk Moden Dialek Oseacco/Osojane Ejaan Kamus Inggeris Oxford + PAHAWH HMONG PERINGKAT KE-2 + PAHAWH HMONG PERINGKAT KE-3 + PAHAWH HMONG VERSI AKHIR Dialek Pamaka + ORTOGRAFI PETRINE Perumian Pinyin Banyak Nada Komputer + OCCITAN PROVENCE + ROMANSH PUTER Sistem Ejaan Semakan Vopaluk Klasik Resia + RUMANTSCH GRISCHUN Saho Inggeris Standard Scotland + INGGERIS LIVERPOOL + RINGKAS Dialek Stolvizza/Solbica Kumpulan dialek Sotavento Kabuverdianu + iNGGERIS SEPANYOL + ROMANSH SURMIRAN + ROMANSH SURSILVAN + ROMANSH SUTSILVAN Sistem ejaan Taraskievica Sistem Ejaan Bersatu Sistem Ejaan Semakan Bersatu + SCOTS ULSTER Abjad fonetik Unifon + VEDIC SANSKRIT Valencia + ROMANSH VALLADER + VIVARO-ALPINE Perumian Wade-Giles + X-SISTEM ESPERANTO Kalendar @@ -1084,7 +1137,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kalendar Kebangsaan India Kalendar Islam Kalendar Sivil Islam - Kalendar Islam (Arab Saudi, cerapan) + Kalendar Islam (Arab Saudi, cerapan) Kalendar Islam (jadual, zaman astronomi) Kalendar Islam (Umm Al-Quran) Kalendar ISO-8601 @@ -1243,7 +1296,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -1676,10 +1729,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ petang malam - - a - p - tengah malam pagi @@ -1697,8 +1746,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ malam - a - p pagi pagi tengah hari @@ -1808,6 +1855,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ d MMM E, d MMM d MMMM + 'minggu' W 'daripada' MMMM M-y d/M/y E, d/M/y @@ -1817,6 +1865,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ MMMM y QQQ y QQQQ y + 'minggu' w 'daripada' Y @@ -2160,6 +2209,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} mgu lalu + + Minggu dalam Bulan + + + Minggu dlm bulan + + + Minggu dalam Bulan + hari kelmarin @@ -2184,9 +2242,27 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ hari ini esok + + Hari dalam Tahun + + + Hari dlm Thn + + + Hari dlm Thn + Hari dalam Minggu + + Hari dalam Bulan + + + Hari dlm bln + + + Hari dlm bln + Ahad lalu Ahad ini @@ -2424,6 +2500,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Waktu {0} Waktu Siang {0} Waktu Piawai {0} + + Honolulu + Waktu Universal Selaras @@ -2487,9 +2566,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kiev - - Honolulu - Waktu Acre @@ -2740,13 +2816,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Waktu Siang China - - - Waktu Choibalsan - Waktu Piawai Choibalsan - Waktu Musim Panas Choibalsan - - Waktu Pulau Christmas @@ -2995,6 +3064,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Waktu Musim Panas Petropavlovsk-Kamchatski + + + Waktu Kazakhstan + + Waktu Kazakhstan Timur @@ -3445,7 +3519,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - . + . @@ -3515,7 +3589,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ 000T - {0} {1} @@ -4797,6 +4870,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kuart Imp. {0} kuart Imp. + + cahaya + {0} cahaya + + + bahagian per bilion + {0} bahagian per bilion + + + malam + {0} malam + {0} setiap malam + arah mata angin {0} timur @@ -5124,6 +5210,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ cubit {0} cubit + + cahaya + {0} cahaya + + + bahagian/bilion + + + malam + {0} malam + {0}/malam + arah @@ -5212,9 +5310,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ thn - - {0}q - {0} h @@ -5393,6 +5488,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}dr.fl. + + cahaya + {0} cahaya + + + malam + {0} malam + {0}/malam + diff --git a/make/data/cldr/common/main/mt.xml b/make/data/cldr/common/main/mt.xml index b9d33c5e0c7..21a937ed4e8 100644 --- a/make/data/cldr/common/main/mt.xml +++ b/make/data/cldr/common/main/mt.xml @@ -852,6 +852,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kalendarju Buddist Kalendarju Ċiniż + Kalendarju Koptiku Kalendarju Dangi Kalendarju Etjopiku Kalendarju Gregorjan @@ -1711,6 +1712,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ħin ta’ {0} {0} Ħin Standard + + Honolulu + Belt Mhux Magħruf @@ -1804,9 +1808,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Damasku - - Honolulu - il-Belt tal-Vatikan diff --git a/make/data/cldr/common/main/my.xml b/make/data/cldr/common/main/my.xml index 7fb0996ea9c..360e5e56301 100644 --- a/make/data/cldr/common/main/my.xml +++ b/make/data/cldr/common/main/my.xml @@ -61,6 +61,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ဘစ်စ်လာမာ ဘီနီ စစ္စီကာ + အန်နီ ဘန်ဘာရာ ဘင်္ဂါလီ တိဘက် @@ -178,7 +179,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ဟာဝိုင်ယီ တောင် ဟိုင်ဒါ ဟီဘရူး - ဟိန်ဒူ + ဟိန္ဒီ + ဟိန္ဒီ (လက်တင်) ဟီလီဂေနွန် မုံ ခရိုအေးရှား @@ -193,6 +195,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ အီဗန် အီဘီဘီယို အင်ဒိုနီးရှား + အင်တာလင်း အစ္ဂဘို စီချွမ် ရီ အနောက် ကနေဒီယန် အီနုတီတွတ် @@ -249,6 +252,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ကိုမီ ခိုနီရှ် ကွပ်ခ်ဝါလာ + ကူဗီ ကာဂျစ် လက်တင် လာဒီနို @@ -257,8 +261,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ လက်ဇ်ဂီးယား ဂန်ဒါ လင်ဘာဂစ်ရှ် + လက်ဂါးရီရန် လာလူးဝစ်တ် လာကိုတာ + လန်းဘတ် လင်ဂါလာ လာအို လူဝီဇီယားနား ခရီးယို @@ -418,6 +424,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ကွန်ဂို ဆွာဟီလီ ကိုမိုရီးယန်း ဆီးရီးယား + စလီရှန် တမီးလ် တောင် တပ်ချွန် တီလီဂူ @@ -457,7 +464,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ဥဇဘတ် ဗိုင် ဗင်န်ဒါ + ဗနီးရှန် ဗီယက်နမ် + မတ်ကူးဝါး ဗိုလာပိုက် ဗွန်ဂျို ဝါလူးန် @@ -469,6 +478,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ဝူ တရုတ် ကာလ်မိုက် ဇိုစာ + ခန်းဂရီ ဆိုဂါ ရန်ဘဲန် ရမ်ဘာ @@ -477,6 +487,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ အန်ဟင်းဂတူ ကွမ်းတုံ တရုတ်/ ကွမ်းတုံ + ဂျွမ် မိုရိုကို တမဇိုက် တရုတ် ပြည်ကြီးတရုတ် @@ -988,7 +999,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -1062,7 +1073,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ a h:mm a h:mm:ss d/M - MMM d၊ E + MMM d E MMMM d Eနေ့ G M/y GGGGG dd/MM/Y @@ -1194,6 +1205,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + နွေ + လာ + ဂါ + ဟူး + တေး + ကြာ + နေ + တနင်္ဂနွေ တနင်္လာ @@ -1227,6 +1247,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + Q1 + Q2 + Q3 + Q4 + ပထမ သုံးလပတ် ဒုတိယ သုံးလပတ် @@ -1235,6 +1261,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + Q1 + Q2 + Q3 + Q4 + ဒု @@ -1274,17 +1306,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - y၊ MMMM d၊ EEEE + y MMMM d EEEE - y၊ MMMM d + y MMMM d - y၊ MMM d + y MMM d @@ -1345,30 +1377,25 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ E B h:mm E B h:mm:ss d ရက် E - E B h:mm - E B h:mm:ss + E a h:mm + E a h:mm:ss G y/M/d - G y၊ MMM d - G y၊ MMM d၊ E - B h - B h:mm - B h:mm:ss + G y/ MMM d/ E + a h + a h:mm + a h:mm:ss v a h:mm:ss v HH:mm:ss v a h:mm v HH:mm d/M - d/M၊ E - d MMM - MMM d၊ E - MMMM d ရက် E + d/M E + MMM d E + MMMM d E MMMM လ W ပတ်မြောက် - M/y d/M/y - d/M/y၊ E - MMM y - y၊ MMM d - y၊ MMM d၊ E + d/M/y E + y MMM d E Y ခု w ပတ်မြောက် @@ -1401,19 +1428,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ G y/M/d – y/M/d - G y/M/d၊ E – y/M/d၊ E - G y/M/d၊ E – G y/M/d၊ E - G y/M/d၊ E – y/M/d၊ E - G y/M/d၊ E – y/M/d၊ E + G y/M/d E – y/M/d E + G y/M/d E – G y/M/d E + G y/M/d E – y/M/d E + G y/M/d E – y/M/d E G y MMM d – d - G y MMM d၊ E – MMM d၊ E - G y MMM d၊ E – G y MMM d၊ E - G y MMM d၊ E – MMM d၊ E - G y MMM d၊ E – y MMM d၊ E + G y MMM d E – MMM d E + G y MMM d E – G y MMM d E + G y MMM d E – MMM d E + G y MMM d E – y MMM d E a h – a h @@ -1455,7 +1482,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ d/M – d/M - d/M၊ EEEE – d/M၊ EEEE + d/M EEEE – d/M EEEE d/M- EEEE – d/M- EEEE @@ -1465,8 +1492,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ MMM d – d - MMM d၊ E – MMM d၊ E - MMM d၊ E – MMM d၊ E + MMM d E – MMM d E + MMM d E – MMM d E y – y @@ -1481,22 +1508,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ d/M/y – d/M/y - d/M/y၊ EEEE – d/M/y၊ EEEE - d/M/y၊ EEEE – d/M/y၊ EEEE - d/M/y၊ EEEE – d/M/y၊ EEEE + d/M/y EEE – d/M/y EEEE + d/M/y EEEE – d/M/y EEEE + d/M/y EEEE – d/M/y EEEE y MMM – MMM - y၊ MMM d – d - y၊ MMM d – MMM d - y၊ MMM d – y၊ MMM d + y MMM d – d - y၊ MMM d၊ EEEE – MMM d၊ EEEE - y၊ MMM d၊ EEEE – MMM d၊ EEEE - y၊ MMM d၊ EEEE – y၊ MMM d၊ EEEE + y MMM d EEEE – MMM d EEEE + y MMM d EEEE – MMM d EEEE + y MMM d EEEE – y MMM d EEEE y MMMM – MMMM @@ -1710,6 +1735,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} အချိန် {0} နွေရာသီ စံတော်ချိန် {0} စံတော်ချိန် + + ဟိုနိုလူလူ + ညှိထားသည့် ကမ္ဘာ့ စံတော်ချိန် @@ -1725,7 +1753,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ဒူဘိုင်း - ကဘူးလျ + ကာဘူးလ် အန်တီဂွါ @@ -2447,9 +2475,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ဥလန်ဘာတော - - ချွဲဘောဆန် - မကာအို @@ -2849,9 +2874,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ နိုမီ - - ဟိုနိုလူလူ - အန်ကာရေ့ဂျ် @@ -3196,13 +3218,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ တရုတ် နွေရာသီ အချိန် - - - ချွဲဘော်ဆန်း အချိန် - ချွဲဘော်ဆန်း စံတော်ချိန် - ချွဲဘော်ဆန်း နွေရာသီ အချိန် - - ခရစ်စမတ်ကျွန်း အချိန် @@ -3441,6 +3456,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ဂျပန် နွေရာသီ အချိန် + + + ကာဇက်စတန် အချိန် + + အရှေ့ကာဇက်စတန် အချိန် @@ -3905,9 +3925,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 0 သန်း 0 ကုဋေ 00 ကုဋေ - 000 ကုဋေ - ကုဋေ 0 ထ - ကုဋေ 0 သ + 000 ဋေ + ဋေ 0 ထ + ဋေ 0 သ ဋေ 0 သိန်း ဋေ 0 သန်း 0 ကောဋိ @@ -4320,7 +4340,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ဖိလစ်ပိုင် ပီဆို - PHP ပါကစ္စတန် ရူပီး @@ -4377,7 +4396,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ဆီယာရာလီယွန်း လီအိုနီ - ဆီယာရာလီယွန်း လီအိုနီ (1964—2022) + ဆီယာရာလီယွန်း လီအိုနီ (၁၉၆၄—၂၀၂၂) + ဆီယာရာလီယွန်း လီအိုနီ (၁၉၆၄—၂၀၂၂) ဆိုမာလီ သျှီလင် @@ -4945,8 +4965,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ပါစက်ခ် - နက်ခတ်တဗဒေယူနဈ - {0} နက်ခတ်တဗဒေယူနဈ + နက္ခတဗေဒ ယူနစ် + {0} နက္ခတဗေဒ ယူနစ် {0} ဖာလုံ @@ -5194,6 +5214,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ဗြိတိသျှသုံး အချိုပွဲဇွန်း {0} ဇွန်း + + အလင်း + {0} အလင်း + + + သန်းတစ်ထောင်ပုံ တစ်ပုံ + သန်းတစ်ထောင်ပုံ {0} ပုံ + + + + {0} ည + {0}/ည + အရပ် လေးမျက်နှာ {0} အရှေ့ @@ -5231,9 +5264,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ စတုရန်းမီတာ - - စတုရန်းစင်တီမီတာ - စတုရန်းမိုင် @@ -5662,6 +5692,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ဗြိတိသျှသုံး ကွတ် ဗြိတိသျှသုံး {0} ကွတ် + + အလင်း + {0} အလင်း + + + သန်းတစ်ထောင်ပုံ တစ်ပုံ + + + + {0} ည + {0}/ည + လမ်းကြောင်း {0} E @@ -5674,6 +5716,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}° + + cm² + L/km @@ -5796,6 +5841,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ စက် + + အလင်း + {0}အလင်း + + + {0}ppb + + + + {0} ည + {0}/ည + {0}E {0}N diff --git a/make/data/cldr/common/main/ne.xml b/make/data/cldr/common/main/ne.xml index d48508040b6..86c770993f8 100644 --- a/make/data/cldr/common/main/ne.xml +++ b/make/data/cldr/common/main/ne.xml @@ -83,6 +83,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ बन्जार कोम सिक्सिका + अनी बाम्बारा बंगाली तिब्बती @@ -220,7 +221,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ मध्य उच्च जर्मन गुवारानी पुरातन उच्च जर्मन - गोवा कोन्कानी गोन्डी गोरोन्टालो गोथिक @@ -330,6 +330,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ कोमी कोर्निस क्वाकवाला + कुभी किर्गिज ल्याटिन लाडिनो @@ -543,6 +544,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ कोमोरी परम्परागत सिरियाक सिरियाक + सिलेसियाली तामिल दक्षिनी टुट्चोन तेलुगु @@ -584,8 +586,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ उज्बेकी भाइ भेन्डा + भेनेसियाली भियतनामी मुख्य-फ्राङ्कोनियाली + मखुवा भोलापिक भुन्जो वाल्लुन @@ -598,6 +602,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ काल्मिक खोसा मिनग्रेलियाली + काङ्ग्री सोगा याङ्बेन येम्बा @@ -606,6 +611,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ न्हिनगातु क्यान्टोनिज चिनियाँ, क्यान्टोनिज + झुुआङ्ग ब्लिससिम्बोल्स मानक मोरोक्कोन तामाजिघट चिनियाँ @@ -1803,6 +1809,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} समय {0} (+१) {0} (+०) + + होनोलुलु + समन्वित विश्व समय @@ -2540,9 +2549,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ उलानबटार - - चोइबाल्सान - मकाउ @@ -2942,9 +2948,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ नोम - - होनोलुलु - एङ्कोरेज @@ -3289,13 +3292,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ चीन दिवा समय - - - चोइबाल्सन समय - चोइबाल्सन मानक समय - चोइबाल्सन ग्रीष्मकालीन समय - - क्रिस्मस टापु समय @@ -3534,6 +3530,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ जापान दिवा समय + + + काजकस्तानको समय + + पूर्वी काजकस्तान समय @@ -4061,8 +4062,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ¤¤ - {0} {1} - {0} {1} @@ -4505,7 +4504,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ सियरा लियोनेन लियोन - सियरा लियोनेन लियोन (1964—2022) + सियरा लियोनेन लियोन (१९६४—२०२२) + सियरा लियोनेन लियोन (१९६४—२०२२) + सियरा लियोनेन लियोन (१९६४—२०२२) सोमाली शिलिङ @@ -5363,6 +5364,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} इम्पिरियल चौथाइ {0} इम्पिरियल चौथाइ + + प्रकाश + प्रकाश + {0} प्रकाश + + + अंश प्रति बरब + {0} अंश प्रति अरब + {0} अंश प्रति अरब + + + रात + {0} रात + {0} रात + {0} प्रति रात + मुख्य दिशा @@ -6010,6 +6027,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} चुटकी {0} चुटकी + + प्रकाश + {0} प्रकाश + {0} प्रकाश + + + अंश/अरब + + + रात + {0} रात + {0} रात + {0}/रात + दिशा {0}पूर्व @@ -6502,6 +6533,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}qt-Imp. {0}qt-Imp. + + प्रकाश + {0}प्रकाश + {0}प्रकाशा + + + {0}ppb + {0}ppb + + + रात + {0}रात + {0}रात + {0}/रात + diff --git a/make/data/cldr/common/main/nl.xml b/make/data/cldr/common/main/nl.xml index 8ff890e6dd5..fc9b9ec7ac5 100644 --- a/make/data/cldr/common/main/nl.xml +++ b/make/data/cldr/common/main/nl.xml @@ -87,6 +87,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Banjar Kom Siksika + Anii Bambara Bengaals Tibetaans @@ -216,7 +217,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Middelhoogduits Guaraní Oudhoogduits - Goa Konkani Gondi Gorontalo Gothisch @@ -327,6 +327,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Komi Cornish Kwakʼwala + Kuvi Kirgizisch Latijn Ladino @@ -620,6 +621,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Vietnamees West-Vlaams Opperfrankisch + Makhuwa Volapük Votisch Võro @@ -635,6 +637,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kalmuks Xhosa Mingreels + Kangri Soga Yao Yapees @@ -663,7 +666,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -685,7 +687,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -733,7 +734,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -772,7 +772,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -841,7 +840,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -1328,8 +1326,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Indiase nationale kalender Islamitische kalender Islamitische kalender (cyclisch) - Islamitische kalender (Saudi–Arabië) - Islamitische kalender (epoche) + Islamitische kalender (Saudi–Arabië) + Islamitische kalender (epoche) Islamitische kalender (Umm al-Qura) ISO-8601-kalender Japanse kalender @@ -3560,6 +3558,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ tijd in {0} zomertijd in {0} standaardtijd in {0} + + + HST + HST + HDT + + Honolulu + gecoördineerde wereldtijd @@ -3628,9 +3634,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kaapverdië - - Curaçao - Christmaseiland @@ -3732,9 +3735,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Rangoon - - Tsjojbalsan - Macau @@ -3771,12 +3771,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Lissabon - - Asunción - - - Réunion - Boekarest @@ -3840,14 +3834,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kiev - - - HST - HST - HDT - - Honolulu - Beulah, Noord-Dakota @@ -4157,13 +4143,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Chinese zomertijd - - - Tsjojbalsan-tijd - Tsjojbalsan-standaardtijd - Tsjojbalsan-zomertijd - - Christmaseilandse tijd @@ -4437,6 +4416,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Petropavlovsk-Kamtsjatski-zomertijd + + + Kazachse tijd + + Oost-Kazachse tijd @@ -4948,90 +4932,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - @@ -5064,100 +4964,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ 000 bln'.' - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} @@ -6358,6 +6164,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} karaat + neuter milligram per deciliter {0} milligram per deciliter {0} milligram per deciliter @@ -6371,7 +6178,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ neuter onderdelen - {0} onderdeel + {0} ond. {0} onderdelen @@ -6828,6 +6635,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Scandinavische mijl + neuter {0} punt {0} punten @@ -6980,6 +6788,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} paardenkrachten + neuter millimeter-kwikdruk {0} millimeter-kwikdruk {0} millimeter-kwikdruk @@ -7051,6 +6860,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} knoop {0} knopen + + neuter + common @@ -7277,6 +7089,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} imp. quart {0} imp. quarts + + neuter + licht + {0} licht + {0} licht + + + common + + + common + nachten + {0} nacht + {0} nachten + {0} per nacht + hoofdwindstreek {0} oosterlengte @@ -7286,9 +7114,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - - {0}{1} - G @@ -7345,7 +7170,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ onderdeel - {0} onderdeel + {0} ond. {0} ond. @@ -7623,6 +7448,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} imp. qt {0} imp. qt + + licht + {0} licht + {0} licht + + + nachten + {0} nacht + {0} nachten + {0}/nacht + windstreek {0} OL @@ -7731,7 +7567,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} gr - ° {0}° {0}° @@ -7771,6 +7606,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} sn {0} sn + + licht + {0}licht + {0}licht + + + nachten + {0} nacht + {0} nachten + {0}/nacht + diff --git a/make/data/cldr/common/main/nn.xml b/make/data/cldr/common/main/nn.xml index 3bdbc291fa5..46e6d522bee 100644 --- a/make/data/cldr/common/main/nn.xml +++ b/make/data/cldr/common/main/nn.xml @@ -30,7 +30,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic embu gammalegyptisk elamite - filippinsk gammalfransk austfrisisk friulisk @@ -120,7 +119,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - @@ -176,7 +174,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Aust-Timor Aust-Timor USAs ytre småøyar - Sameinte nasjonar + Dei sameinte nasjonane SN St. Vincent og Grenadinane Dei britiske Jomfruøyane @@ -270,31 +268,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic britisk - - [áǎ čç đ èê ńñ ŋ š ŧ ü ž ä ö] - - - E d.–E d. MMM - - - MM.y–MM.y G - MM.y–MM.y G - - - dd.MM.y–dd.MM.y G - dd.MM.y–dd.MM.y G - dd.MM.y–dd.MM.y G - - - E dd.MM.y–E dd.MM.y G - E dd.MM.y–E dd.MM.y G - E dd.MM.y–E dd.MM.y G - E d.–E d. MMM y G @@ -573,14 +551,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic v. - +{0} v. - +{0} v. + om {0} v. + om {0} v. - –{0} v. - –{0} v. + for {0} v. sidan + for {0} v. sidan - v. m. {0} + veka med {0} veke i månaden @@ -997,9 +975,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Khovd - - Tsjojbalsan - Maldivane @@ -1049,7 +1024,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic tidssone for den nordamerikanske austkysten normaltid for den nordamerikanske austkysten - sommartid for den nordamerikansk austkysten + sommartid for den nordamerikanske austkysten @@ -1192,13 +1167,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic kinesisk sommartid - - - tidssone for Tsjojbalsan - normaltid for Tsjojbalsan - sommartid for Tsjojbalsan - - tidssone for Kokosøyane @@ -1656,14 +1624,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - - - #,##0.00 ¤ - #,##0.00 - - - andorranske peseta @@ -1744,8 +1704,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic nye belarusiske rublar - ny belarusisk rubel - nye belarusiske rublar belarusiske rublar (2000–2016) @@ -1810,7 +1768,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Guinea-Bissau-peso - Guinea-Bissau-peso kroatiske dinar @@ -1946,8 +1903,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic russiske rublar (1991–1998) - russisk rubel (1991–1998) - russiske rublar (1991–1998) saudiarabiske rial @@ -1967,11 +1922,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic gammalt sudansk pund gamle sudanske pund - - sierraleonske leonar - - sierraleonske leonar (1964—2022) + sierraleonsk leone (1964—2022) sovjetiske rublar @@ -2192,9 +2144,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic delar per million - {0} milliondel + {0} del per million {0} del per millions - {0} milliondelar + {0} delar per million {0} delar per millions @@ -2281,7 +2233,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic kilokaloriar {0} kilokalori + {0} kilokaloris {0} kilokaloriar + {0} kilokaloriers kaloriar @@ -2385,7 +2339,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic typografiske punkt {0} typografisk punkt + {0} typografisk punkts {0} typografiske punkt + {0} typografiske punkts solradius @@ -2513,14 +2469,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic feminine + + feminine + {0} aust - - {0}{1} - m/s² @@ -2672,6 +2628,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic stones + + jordmassar + solmassar @@ -2735,6 +2694,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} b. quart {0} b. quart + + delar/milliard + @@ -2900,6 +2862,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic tekniske symbol tonemerke reise og stadar + piler som peiker oppover variantar vêr vestasiatiske skriftsystem diff --git a/make/data/cldr/common/main/no.xml b/make/data/cldr/common/main/no.xml index d92734444e5..45b1615d26a 100644 --- a/make/data/cldr/common/main/no.xml +++ b/make/data/cldr/common/main/no.xml @@ -85,6 +85,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ banjar kom siksika + anii bambara bengali tibetansk @@ -214,7 +215,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ mellomhøytysk guarani gammelhøytysk - goansk konkani gondi gorontalo gotisk @@ -325,6 +325,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komi kornisk kwak̓wala + kuvi kirgisisk latin ladinsk @@ -354,7 +355,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ luba-lulua luiseno lunda - luo mizo luhya latvisk @@ -613,13 +613,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ukjent språk urdu usbekisk - vai venda venetiansk vepsisk vietnamesisk vestflamsk Main-frankisk + makhuwa volapyk votisk sørestisk @@ -635,6 +635,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kalmukkisk xhosa mingrelsk + kangri soga yao yapesisk @@ -1256,8 +1257,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ indisk nasjonalkalender hijrikalender hijrikalender (tabell, sivil) - islamsk kalender (Saudi-Arabia, observasjon) - islamsk kalender (tabell, astronomisk) + islamsk kalender (Saudi-Arabia, observasjon) + islamsk kalender (tabell, astronomisk) hijrikalender (Umm al-Qura) ISO 8601-kalender japansk kalender @@ -2735,15 +2736,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ u. - - +{0} u. - +{0} u. - - - -{0} u. - -{0} u. - - u. {0} uke i måneden @@ -3202,6 +3194,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ tidssone for {0} sommertid – {0} normaltid – {0} + + + HST + HST + HDT + + Honolulu + koordinert universaltid @@ -3270,9 +3270,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kapp Verde - - Curaçao - Christmasøya @@ -3385,9 +3382,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ulan Bator - - Choybalsan - Maldivene @@ -3418,12 +3412,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Lisboa - - Asunción - - - Réunion - București @@ -3454,9 +3442,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Mahé - - São Tomé - Damaskus @@ -3472,14 +3457,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Dar-es-Salaam - - - HST - HST - HDT - - Honolulu - Beulah, Nord-Dakota @@ -3783,13 +3760,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kinesisk sommertid - - - tidssone for Tsjojbalsan - normaltid for Tsjojbalsan - sommertid for Tsjojbalsan - - tidssone for Christmasøya @@ -4063,6 +4033,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Russisk (Petropavlovsk-Kamtsjatskij) sommertid + + + kasakhstansk tid + + østkasakhstansk tid @@ -4617,8 +4592,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4629,8 +4602,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4641,8 +4612,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4653,8 +4622,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4665,8 +4632,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4677,8 +4642,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4689,8 +4652,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4701,8 +4662,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4713,8 +4672,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4725,8 +4682,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4737,8 +4692,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4749,8 +4702,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4761,8 +4712,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4773,8 +4722,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4785,8 +4732,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4797,8 +4742,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4809,8 +4752,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4821,8 +4762,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4862,8 +4801,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ 000 bill'.' - {0} {1} - {0} {1} @@ -4874,8 +4811,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4886,8 +4821,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4898,8 +4831,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4910,8 +4841,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4922,8 +4851,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4934,8 +4861,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4946,8 +4871,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4958,8 +4881,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4970,8 +4891,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4982,8 +4901,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -4994,8 +4911,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -5006,8 +4921,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -5018,8 +4931,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -5030,8 +4941,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -5042,8 +4951,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -5054,8 +4961,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -5066,8 +4971,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -5078,8 +4981,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -5090,8 +4991,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -5102,8 +5001,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -5114,8 +5011,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -5126,8 +5021,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ #,##0.00 - {0} {1} - {0} {1} @@ -5429,8 +5322,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ WIR euro - WIR-euro - WIR-euro + WIR-euro + WIR-euro sveitsiske franc @@ -5439,8 +5332,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ WIR franc - WIR-franc - WIR-franc + WIR-franc + WIR-franc chilenske escudo @@ -6254,14 +6147,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ slovakiske koruna - sierraleonske leone + sierraleonsk leone sierraleonsk leone - sierraleonske leone + sierraleonske leoner - sierraleonske leone (1964—2022) - sierraleonsk leone (1964—2022) - sierraleonske leone (1964—2022) + sierraleonsk leone (1964–2022) + sierraleonsk leone (1964–2022) + sierraleonske leoner (1964–2022) somaliske shilling @@ -6892,32 +6785,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kvadrat{0} kvadrat{0} - kvadrat{0} + kvadrat{0}s kvadrat{0} - kvadrat{0} + kvadrat{0}s kvadrat{0} - kvadrat{0} + kvadrat{0}s kvadrat{0} - kvadrat{0} + kvadrat{0}s kvadrat{0} kvadrat{0}s kvadrat{0} - kvadrat{0} + kvadrat{0}s kubikk{0} kubikk{0} - kubikk{0} + kubikk{0}s kubikk{0} kubikk{0}s kubikk{0} - kubikk{0} + kubikk{0}s kubikk{0} - kubikk{0} + kubikk{0}s kubikk{0} kubikk{0}s kubikk{0} - kubikk{0} + kubikk{0}s masculine @@ -7041,9 +6934,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} karats + neuter milligram per desiliter {0} milligram per desiliter + {0} milligram per desiliters {0} milligram per desiliter + {0} milligram per desiliters masculine @@ -7062,11 +6958,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine - milliondeler - {0} milliondel - {0} milliondels + deler per million + {0} del per million + {0} del per millions {0} deler per million - {0} milliondelers + {0} deler per millions masculine @@ -7348,7 +7244,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine kilokalorier {0} kilokalori + {0} kilokaloris {0} kilokalorier + {0} kilokaloriers masculine @@ -7613,9 +7511,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} mils + neuter typografiske punkter {0} typografisk punkt + {0} typografisk punkts {0} typografiske punkter + {0} typografiske punkters masculine @@ -7782,9 +7683,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} hestekrefter + masculine millimeter kvikksølv {0} millimeter kvikksølv + {0} millimeter kvikksølvs {0} millimeter kvikksølv + {0} millimeter kvikksølvs pund per kvadrattomme @@ -8132,7 +8036,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine - {0} klype + {0} klyper {0} klyper @@ -8141,6 +8045,31 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} britisk quart {0} britiske quart + + neuter + lys + {0} lys + {0} lys' + {0} lys + {0} lys' + + + masculine + deler per milliard + {0} del per milliard + {0} del per milliards + {0} deler per milliard + {0} deler per milliards + + + masculine + netter + {0} natt + {0} natts + {0} netter + {0} netters + {0} per natt + himmelretning {0} øst @@ -8617,14 +8546,28 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ klype - {0} klype - {0} klype + {0} klyper + {0} klyper imp. quart {0} imp. quart {0} imp. quart + + lys + {0} lys + {0} lys + + + deler/milliard + + + netter + {0} natt + {0} netter + {0}/natt + retning {0} Ø @@ -8705,12 +8648,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ % + {0}% + {0}% + {0}‰ + {0}‰ + {0}‱ + {0}‱ {0}mol @@ -8723,8 +8672,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ l/100km - {0} l/100km - {0} l/100km + {0}l/100km + {0}l/100km {0}mpg @@ -8816,7 +8765,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}m {0}m - {0}/m {0}s @@ -9139,6 +9087,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ dram fl + kl. {0} kl. {0} kl. @@ -9146,6 +9095,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} qt. Imp. {0} qt. Imp. + + lys + {0}lys + {0}lys + + + {0}ppb + {0}ppb + + + netter + {0} natt + {0} netter + {0}/natt + {0}Ø {0}N diff --git a/make/data/cldr/common/main/nqo.xml b/make/data/cldr/common/main/nqo.xml index b6b0d597d69..1d3c603e210 100644 --- a/make/data/cldr/common/main/nqo.xml +++ b/make/data/cldr/common/main/nqo.xml @@ -26,11 +26,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic ߊߛߑߕߎߙߌߞߊ߲ ߊߖߍߙߑߓߊߦߌߖߊߞߊ߲ ߊߖߋߙߌߞߊ߲ + ߓߊߟߎߗߌߞߊ߲ ߓߛߊߞߊ߲ ߓߌߟߏߙߎ߳ߛߌߞߊ߲ ߓߋ߲ߓߊߞߊ߲ + ߓߋߕߊߥߌߞߊ߲ ߓߋߣߊߞߊ߲ ߓߌߟߑߜ߭ߊߙߌߞߊ߲ + ߊߣߌ߯ߞߊ߲ ߒߞߏ ߡߊߟߌ ߓߍ߲ߜ߭ߊߟߌߞߊ߲ ߕߌߓߋߕߌߞߊ߲ @@ -195,6 +198,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ߏߖߊߞߊ߲ ߏߛߍߕߌߞߊ߲ ߔߍ߲ߖߊߓߌߞߊ߲ + ߔߊߔߌߦߊߡߊ߲ߕߏߞߊ߲ ߖߋ߬ߟߌ߬ߓߊߟߊ߫ ߔߌߘߑߜ߭ߍ߲ߞߊ߲ ߔߟߏߣߍߞߊ߲ ߔߎߙߛߌߞߊ߲ @@ -217,6 +221,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ߛߊ߲ߓߙߎߞߊ߲ ߛߊ߲ߕߊߟߌߞߊ߲ ߌߛߊ߲ߜ߭ߎߞߊ߲ + ߛߌߛߟߌߦߊߞߊ߲ ߛߌ߲ߘߌߞߊ߲ ߛߋߡߌ߫ ߕߟߋ߬ߓߐ߬ߞߊ߲ ߛߌߛߋߣߊߞߊ߲ @@ -242,6 +247,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ߕߊߖߞߌߞߊ߲ ߕߊߦߌߞߊ߲ ߕߜ߭ߌߙߌߢߊߞߊ߲ + ߕߌߜ߭ߙߋߞߊ߲ ߕߎߙߞߌߡߍߣߌߞߊ߲ ߕߏ߲ߖ߭ߌߞߊ߲ ߕߙߎߞߌߞߊ߲ @@ -254,6 +260,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ߎߙߘߎߞߊ߲ ߎߖ߭ߑߓߋߞߌߞߊ߲ ߒߝ߭ߊߦߌ߲ߞߊ߲ + ߝ߭ߣߋߛߌߦߊߞߊ߲ ߝ߭ߌߦߋߕߌߣߊߡߌߞߊ߲ ߝ߭ߏߟߊߔߎߞߊ߲ ߝ߭ߎߖߏߞߊ߲ @@ -952,27 +959,469 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + ߕߎ߬ߡߊ + + + ߕߎ߬ߡߊ + + + ߕߎ߬ߡߊ + + + ߛߊ߲߭ + ߛߊߙߏ߲߬ + ߢߌ߬ߣߊ߲߬ + ߛߊ߲߬ߘߐ߫ + + + ߛߊ߲߭ + ߛߊ߲߬ ߕߊ߬ߡߌ߲߬ߣߍ߲ + ߢߌ߬ߣߊ߲߬ + ߛߊ߲߬ߘߐ + + + ߛߊ߲߭ + ߛߊ߲߬ߘߐ߫ + ߢߌ߬ߣߊ߲߬ + ߛߊ߲߬ߘߐ߫ + + + ߣߊ߯ߣߌ߲ߢߐ߲߮ + + + ߞߊߙߏ + ߞߊߙߏ߫ ߕߊ߬ߡߌ߲߬ߣߍ߲ + ߞߊߙߏ ߣߌ߲߬ + ߞߊߙߏ߫ ߣߊ߬ߕߐ + + + ߞߊߙߏ + ߞߊߙߏ߫ ߕߊߡߌ߲߬ߣߍ߲ + ߞߊߙߏ ߣߌ߲߬ + ߞߊߙߏ߫ ߣߊ߬ߕߐ + + + ߞߊߙߏ + ߞߊߙߏ߫ ߕߊ߬ߡߌ߲߬ߣߍ߲ + ߞߊߙߏ ߣߌ߲߬ + ߞߊߙߏ߫ ߣߊ߬ߕߐ + + + ߟߐ߯ߕߍ + ߟߐ߯ߕߍ߫ ߕߊ߬ߡߌ߲߬ߣߍ߲ + ߟߐ߯ߕߍ ߣߌ߲߬ + ߟߐ߯ߕߍ߫ ߣߊ߬ߕߐ + + + ߟߐ߯ߕߍ߫ ߕߊ߬ߡߌ߲߬ߣߍ߲ + ߟߐ߯ߕߍ ߣߌ߲߬ + ߟߐ߯ߕߍ߫ ߣߊ߬ߕߐ + ߞߊ߬ ߓߐ߫ ߟߐ߯ߕߍ߫ {0} + + + ߟߐ߯ߕߍ߫ ߕߊ߬ߡߌ߲߬ߣߍ߲ + ߟߐ߯ߕߍ ߣߌ߲߬ + ߟߐ߯ߕߍ߫ ߣߊ߬ߕߐ + ߞߊ߬ߓߐ߫ ߟߐ߯ߕߍ {0} + + + ߟߏ߲ + ߞߎߣߎ߲߬ + ߓߌ߬ + ߛߌߣߌ߲߫ + + + ߟߏ߲ + ߞߎߣߎ߲߬ + ߓߌ߬ + ߛߌߣߌ߲߫ + + + ߟߏ߲ + ߞߎߣߎ߲߬ + ߓߌ߬ + ߛߌߣߌ߲߫ + + ߊ߬ ߟߐ߯ߕߍ߫ {0} ߟߋ߫ ߣߌ߲߬ + + + + ߟߐ߯ߕߍ ߟߏ߲ ߠߎ߬ + + + ߛ/ߥ + + + ߛ/ߥ + + + ߛ/ߥ + + + ߕߎ߬ߡߊ߬ߙߋ߲ + + + ߕ. + + + ߕ. + + + ߡߌ߬ߛߍ߲ + + + ߡ. + + + ߡ. + + + ߝߌ߬ߟߊ߲ + + + ߝ. + + + ߝ. + + + ߝߊ߲߬ߕߙߊ߬ ߕߎߡߊ + + ߜ߭ߕߖ{0} ߜ߭ߕߖ {0} ߕߎ߬ߡߊ {0} ߕߎ߬ߡߊ߬-ߦߟߍߡߊ߲ {0} ߕߎ߬ߡߊ߬-ߦߟߍߡߊ߲ߓߊߟߌ + + + ߖߊ߯ߓߊ߫ ߕߎߡߘߊ߫ ߘߏ߲߬ߖߟߎ߬ߡߊ߬ߣߍ߲ + + + + ߛߏ߫ ߟߐ߲ߓߊߟߌ߫ + + + ߊ߲ߘߏߙߋ߫ + + + ߘߎ߬ߓߊߦߌ߬ + + + ߞߊߓߎߟ + + + ߊ߲ߕߌߜ߭ߊ߫ + + + ߊ߲ߜ߭ߌߟߊ߫ + + + ߕߌߙߣߊ߫ + + + ߦߙߋߝ߭ߊ߲߫ + ߟߎߥߊ߲ߘߊ߫ + + ߙߏߕߋߙߊ߫ + + + ߔߊߟߑߡߍߙ + + + ߕߙߏߟ + + + ߛߏߥߊ߫ + + + ߡߊߥߑߛߐ߲߫ + + + ߘߊߝ߭ߌߛ + + + ߝ߭ߏߛߑߕߏߞ + + + ߞߊߛߋߦߌ߫ ߕߎ߬ߡߊ߬ߘߊ + + + ߘߎߡߐ߲-ߎߙߑߝ߭ߌߟ + + + ߡߞߑߡߎߙߑߘߏ߫ + + + ߙߌߦߏ߫ ߜ߭ߊߟߟߋߜ߭ߐߛ + + + ߡߊ߲ߘߏߖ߭ߊ + + + ߛߊ߲߫ ߖߎߥߊ߲߫ + + + ߎߛߑߥߦߊ߫ + + + ߟߊ ߙߌߦߏߖߊ߫ + + + ߛߊ߲߫ ߟߎߥߌߛ + + + ߞߕߊߡߊߙߑߞߊ߫ + + + ߛߊߟߑߕߊ߫ + + + ߖߎߖߎߦߌ߫ + + + ߕߞߎߡߊ߲߫ + + + ߞߐߙߑߘߏߓߊ߫ + + + ߓߌߦߣߏߛߍߙ + + + ߔߊߜ߭ߏ߫ ߡߏߜ߭ߏ߫ + + + ߝ߭ߌߦߍߣ + + + ߔߍߙߕ + + + ߋߞߑߟߊ߫ + + + ߘߊߙߑߥߌ߲߫ + + + ߊߘߋߟߊߦߘ + + + ߓߑߙߏߞߍ߲߫ ߤߌߟ + + + ߡߋߟߑߓߎߙߣ + + + ߤߏߓߊߙߕ + + + ߟߌ߲ߘߋߡߊ߲߫ + + + ߛߌߘߑߣߋ߫ + + + ߓߑߙߌߛߑߓߊ߲߫ + + + ߡߞߊߙߌ߫ + + + ߟߐߙߘ ߤߏߥߋ߫ + + + ߊߙߎߓߊ߫ + + + ߡߊߙߌߤߊߡ + + + ߓߊߞߎ߫ + + + ߛߙߊߖ߭ߋߝ߭ߏ߫ + + + ߓߊߙߑߓߘ + + + ߘߞߊ߫ + + + ߓߑߙߎߞߑߛߍߟ + ߥߜ߭ߊ߬ߘߜ߭ߎ߫ + + ߛߏߝߌߦߊ߫ + + + ߓߤߊߙߍ߲߫ + ߓߎߖ߭ߎ߲ߓߎߙߊ߫ ߔߐߙߑߕߏ߫-ߣߝ߭ߏ߫ + + ߛߍ߲-ߓߊߙߕߑߤߟߋߡߌ߫ + + + ߓߍߙ߸ߡߎߘߍߛ + + + ߓߙߎߣߋߦߌ߫ + + + ߟߊ ߔߊߖ߭ + + + ߞߑߙߊߟߊ߲ߘߌߖߞ + + + ߋߙߎߣߔߋ + + + ߙߌߦߏ߫ ߓߑߙߊ߲ߞߏ߫ + + + ߔߐߙߑߕߏ߫ ߝ߭ߋߟߏ߫ + + + ߓߏߥߊ߫ ߝ߭ߌߛߑߕߊ߫ + + + ߡߣߊߥߐߛ + + + ߞߎߦߌߦߓߊ߫ + + + ߛߊ߲ߕߊߙߍߡ + + + ߞߊ߲ߔߏ߫ ߜ߭ߑߙߊ߲ߘ + + + ߓߟߋߡ + + + ߊߙߊߜ߭ߎߥߊߦߌߣߊ߫ ߕߎ߬ߡߊ߬ߘߊ + + + ߛߊ߲ߔߊߥߟߏ߫ + + + ߓߊߤߌߦߊ߫ + + + ߝߐߙߑߕߊߟߋߖ߭ߊ߫ + + + ߡߊߛߋߦߏ߫ + + + ߙߋߛߌߝ + + + ߣߐߙߐ߲ߤߊ߲߫ + + + ߣߊߛߊߥߏ߫ + + + ߕߌ߲ߔߎ߫ + ߜ߭ߊߓߏߙߐߣ + + ߡߌ߲ߛߞ + + + ߓߋߟߋߌߖ߭ߊ߫ + + + ߘߊߥߎߛߐ߲߫ + + + ߥߌߕߋߤߐߙߛ + + + ߌߣߎߝ߭ߌߞ + + + ߝ߭ߊ߲ߞߎߝ߭ߍߙ + + + ߝߐߙߕ ߣߋߟߑߛߐ߲߫ + + + ߘߊߥߎߛߐ߲߫ ߞߙߌߞ + + + ߞߙߌߛߑߕߐ߲߫ + + + ߋߘߑߡߐ߲ߕߐ߲߫ + + + ߛߥߌߝ ߞߎߙߊ߲߫ + + + ߞߊ߲ߓߙߌߘߖ ߓߊߦ + + + ߙߋߖ߭ߌߣߊ߫ + + + ߥߌ߲ߣߌߔߋߜ߭ + + + ߙߋߖ߭ߏߟߎߕ + + + ߙߊ߲ߞߌ߲߫ ߌ߲ߟߍߕ + + + ߊߕߌߞߏߞߊ߲߫ + + + ߕߏߙߏ߲ߕߏ߫ + + + ߌߞߊߟߎߦߌߕ + + + ߡߐ߲ߞߑߕߐ߲߫ + + + ߤߊߟߌߝߊߞߛ + + + ߜ߭ߏߛߋ߫ ߕߌ߲ + + + ߜ߭ߑߟߊߛ ߕߌ߲ + + + ߓߑߟߊ߲ߛ-ߛߊߓߑߟߐ߲߫ + + + ߛߍ߲-ߖ߭ߊ߲ ߕߋ ߕߍߚ-ߣߋߝ߭ + + + ߞߏߞߏߛ + ߞߌ߲ߛߊߛߊ߫ @@ -985,21 +1434,90 @@ CLDR data files are interpreted according to the LDML specification (http://unic ߓߙߖ߭ߊߝ߭ߌߟ + + ߖ߭ߎߙߌߞ + ߊߓߌߖߊ߲߬ + + ߙߊߙߏߕߏ߲ߜ߭ߊ߫ + + + ߍߛߑߕߍߙ + + + ߔߎ߲ߕߊ߫ ߊߙߋߣߊ߫ + + + ߛߊ߲ߕߌߦߊߜ߭ߏ߫ + ߘߎߥߟߊ߫ + + ߎߙߎ߲ߞߌ߫ + + + ߛߊ߲ߜ߭ߊߦߌ߫ + + + ߓߜ߭ߏߕߊ߫ + + + ߞߏߛߑߕߊߙߌߞߊ߫ + + + ߤߝ߭ߊߣߊ߫ + ߜߦߋߞߎ߲߫-ߝߙߌߛߌ߫ + + ߞߎߙߛߊߥߏ߫ + + + ߞߙߌߛߑߡߊߛ + + + ߣߌߞߏߛߌߦߊ߫ + + + ߝߡߊߜ߭ߎߛߑߕߊ߫ + + + ߔߙߊߜ߭ + + + ߓߎߛߍ߲ߜ߭ߍ߲߫ + + + ߓߍߙߑߟߍ߲߫ + ߖߌߓߎߕߌ߫ + + ߞߏߔߋߣߊߜ߭ + + + ߘߏߡߋߣߌߞ + + + ߛߊ߲ߕߏ-ߘߏߡߌ߲ߜ߭ + ߊߟߑߖ߭ߋ + + ߜ߭ߟߊߔߊߜ߭ߐߛ + + + ߜ߭ߎߥߦߊߞߌߟ + + + ߕߊߟߌ߲ߣ + ߞߍ߯ߙ @@ -1009,108 +1527,642 @@ CLDR data files are interpreted according to the LDML specification (http://unic ߊߛߑߡߙߊ߫ + + ߞߣߊߙߌ߫ + + + ߛߋߥߎߕߊ߫ + + + ߡߊߘߙߌߘ + ߊ߬ߘߌ߫ ߛߊ߬ߓߋߓߊ߫ + + ߤߍߟߑߛߌ߲ߞߌ߫ + + + ߝߖߌ߫ + + + ߛߑߕߊ߲ߟߋߦ + + + ߗߎ߯ߞ + + + ߝߏ߲ߔߋߦߌ߫ + + + ߞߐߛ.ߙߊ߫ + + + ߝߊߙߏߋ߫ + + + ߔߊ߬ߙߌ߫ + ߟߌߓߙߋߝ߭ߌߟ + + + ߓߙߌߕߊ߲߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + ߟߐ߲ߘߙߍߛ + + + ߜ߭ߙߋߣߘߊ߫ + + + ߕߓߌߟߛߌ߫ + + + ߞߊߦߑߣߋ߫ + + + ߜ߭ߍߙߑߣߛߋߦ + ߊߞߙߊ߫ + + ߖ߭ߌߓߙߊߟߑߕߊ߫ + + + ߕߎߟߋ߫ + + + ߣߎ߯ߞ + + + ߌߕߕߏߞߞߏߙߑߕߏߙߑߟߜߕ + + + ߘߊ߲ߡߊߙߞߛߑߤߊߝ߭ߣ + ߓߊ߲ߖߎߟ ߞߐߣߊߞߙߌ߫ + + ߜ߭ߑߥߊߘߌߟߎߔ + ߡߟߊߓߏ߫ + + ߊߕߍߣ + + + ߞߐ߰ߘߎ߮ ߖ߭ߐߙߑߖ߭ߌߟߊ߫ + + + ߜ߭ߊ߬ߕߌ߬ߡߊ߬ߟߊ߫ + + + ߜ߭ߎߥߊ߲߫ + ߓߌߛߊߥߏ߫ + + ߜ߭ߎߦߣߊ߫ + + + ߤߐ߲ߜ߭ ߞߐ߲ߜ߭ + + + ߕߋߜ߭ߎߛߌߜ߭ߊߟߑߔߊ߫ + + + ߗ߭ߊߜ߭ߙߍߓ + + + ߔߐߙߕ-ߏ-ߔߑߙߍ߲ߛ + + + ߓߎߘߊߓߍߛߕ + + + ߖߞߊߙߑߕߊ߫ + + + ߔߐ߲ߕߌߦߊߣߊߞ + + + ߡߞߊߛߊߙ + + + ߖߦߊߔߎߙߊ߫ + + + + ߌߙߑߟߊ߲ߘ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + + ߘߎߓߑߟߍ߫ + + + ߖ߭ߋߙߎߖ߭ߊߟߍߡ + + + ߡߊ߲߫ ߕߌ߲ + + + ߞߊߟߑߞߎߕߊ߫ + ߛߊߜ߭ߐߛ + + ߓߊߜ߭ߑߘߊߘ + + + ߕߤߋߙߊ߲߫ + + + ߙߋߦߑߞߌߦߊߝ߭ߍߞ + + + ߙߐߡ + + + ߖߋߙߑߛߌ߫ + + + ߖߡߊߦߌߞߊ߫ + + + ߊߡߡߊ߲߫ + + + ߕߏߞߌߦߏ߫ + ߣߊߦߙߏߓߌ߫ + + ߓߌߗߍߞ + + + ߔߑߣߐ߲߫ ߔߍ߲߫ + + + ߞߊ߲ߕߐ߲߫ + + + ߞߙߌߕߌߡߊߕߌ߫ + + + ߕߙߊߥߊ߫ + ߞߐߡߐ߯ߙ + + ߛߍ߲-ߞߙߌߛߑߕߐߝ + + + ߔߌߦߐ߲ߜ߭ߦߊ߲ߜ߭ + + + ߛߋߎߟ + + + ߞߎߥߍߦߌߕ + + + ߞߊߦߌߡߊ߲߫ + + + ߊߞߑߕߊߥߎ߫ + + + ߏߙߊߟ + + + ߊߕߌߙߊߎ߫ + + + ߊߞߑߕߏߓߌ߲ߛߞ + + + ߞߏߛߑߕߣߊߦ + + + ߞߖ߭ߌߟߏߙߑߘߊ߫ + + + ߊߟߑߡߊ ߊߕߊ߫ + + + ߝ߭ߌߦߍߕߌߣߊߡ + + + ߓߋߦߌߙߎߕ + + + ߛߍ-ߟߎߥߌߛ + + + ߝ߭߮ߊߘߎߖ߭ + + + ߞߏߟߏ߲ߓߏ߫ + ߡߏ߬ߙߏߝ߭ߌߦߊ߫ ߡߊߛߋߙߎ߫ + + ߝ߭ߌߟߑߣߌߦߎߛ + + + ߟߎߞߑߛߊ߲ߓߎߙߜ߭ + + + ߙߌߜ߭ߊ߫ + ߕߙߌߔߟߌ߫ ( ߟߓߌ߫ ) ߞߛߊߓߎߟߊ߲ߞߊ߫ + + ߡߏߣߊߞߏ߫ + + + ߗߛߌߣߊߥ + + + ߔߏߘߜ߭ߢߙߌߞߊ߫ + + + ߡߊߙߌߜ߭ߐߕ + ߊ߲ߕߣߊߣߊߙߌߝ߭ߏ߫ + + ߞߑߥߖߊߟߋߦߌ߲߫ + + + ߡߊߖߎߙߏ߫ + + + ߛߑߞߏߔߑߖߋ߫ + ߓߡߊ߬ߞߐ߫ + + ߙߊ߲ߜ߭ߎ߲߫ + + + ߤߏߝ߭ߘ + + + ߎߟߊ߲ߓߊߕߐߙ + + + ߡߞߊߥߏ߫ + + + ߛߍ߲ߔߊ߲߫ + + + ߡߊߙߑߕߣߌߞ + ߣߎߥߊߞߑߛߐߕ + + ߡߐ߲ߕߛߑߚߊߕ + + + ߡߊߟߑߕ + ߡߏߙߌߛ + + ߡߊߟߑߘߌߝ߭ + ߓߑߟߊ߲ߕߌ߯ߙ + + ߕߌߖߎߥߣߊ߫ + + + ߤߋߙߑߡߏߛߌߟߏ߫ + + + ߛߌߦߎߘߊߘ ߖߎߥߊߙߋ߫ + + + ߡߖ߭ߊߕߑߟߊ߲߫ + + + ߛߌߤߎߥߊߤߎ߫ + + + ߓߊߤߌߦߊ ߘߋ߬ ߓߊ߲ߘߋߙߊ߫ + + + ߏߖߌߣߜ߭ߊ߫ + + + ߡߐ߲ߕߋߚߋߦ + + + ߡߍߞߛߌߞߏ߫ + + + ߡߕߊߡߙߏߛ + + + ߡߋߙߌߘߊ߫ + + + ߞߊ߲ߞߎ߲߫ + + + ߞߎߥߟߊ ߟߎ߲ߔߎߙ + + + ߞߎߗߌ߲ߜ߭ + ߡߊߔߎߕߏ߫ ߥߌ߲ߘߐߞ + + ߣߎߡߋߦߊ߫ + ߢߊߡߋ߫ + + ߣߐߙߑߝߐߟߞ + ߟߋߜ߭ߐߛ - - ߙߋߣߌߦߐ߲߫ + + ߡߣߊߜ߭ߎߥߊ߫ - - ߞߌߜ߭ߊߟߌ߫ + + ߊߡߛߑߕߍߙߑߘߊߡ - - ߡߊߤߋ߫ + + ߏߛߑߟߏ߫ - + + ߞߊߕߑߡߊ߲ߘߎ߫ + + + ߣߊߥߙߎ߫ + + + ߣߌߦߎߋ߫ + + + ߗߕߊߡ + + + ߏߞߑߟߊ߲ߘ + + + ߡߊߛߑߞߊߕ + + + ߔߣߊߡߊ߬ + + + ߟߌߡߊ߫ + + + ߕߊߤߕߌ߫ + + + ߡߊߙߞߌߛ + + + ߜ߭ߊ߲ߓߌߦߋߙ + + + ߡߏߙߍߛߑߓߌ߫ ߘߊ߲ߞߊ߲ + + + ߓߎߜ߭ߍ߲ߝ߭ߌߟ + + + ߡߊߣߌߟ + + + ߞߙߊߛߌ߫ + + + ߝ߭ߊߙߑߛߏߝ߭ߌ߫ + + + ߡߌߞߋߟߐ߲߫ + + + ߔߌߕߞߍߙߣ + + + ߔߐߙߕ-ߏ-ߙߌߞߏ߫ + + + ߜ߭ߊߖ߭ߊ߫ + + + ߤߋߓߑߙߐ߲߫ + + + ߊߗ߭ߏߙߍߛ + + + ߡߊߘߍߙ + + + ߟߌߛߑߓߐ߲߫ + + + ߔߟߊߏߛ + + + ߊߛߎ߲ߛߌߦߐ߲߫ + + + ߞߕߊߙ + + + ߙߋߣߌߦߐ߲߫ + + + ߓߎߞߊߙߍߛ + + + ߓߍߟߑߜ߭ߙߊߘ + + + ߞߊߟߌߣߌ߲ߜ߭ߙߊߘ + + + ߡߏߛߑߞߎ߫ + + + ߝ߭ߏߟߜ߭ߏߜ߭ߙߊߘ + + + ߛߙߊߕߐߝ߭ + + + ߊߛߑߕߙߊߞߑߤߊ߲߫ + + + ߎߟߌߦߊߣߏߝ߭ߑߛߞ + + + ߞߌߙߐߝ߭ + + + ߛߡߊߙߊ߫ + + + ߦߋߞߊߕߋߙߌ߲ߓߎߙߜ߭ + + + ߏߡߑߛߞ + + + ߣߝ߭ߏߞߛߓߌߙߑߛߞߌ߫ + + + ߓߊߙߑߣߐߟ + + + ߕߏߡߑߛߞ + + + ߣߝ߭ߏߞߎߖ߭ߣߍߕߑߛߞߌ߫ + + + ߞߙߊߛߑߟߏߦߑߦߊߙߑߛߞߌ߫ + + + ߌߙߑߞߎߕߑߘߞߌ߫ + + + ߗߌߕߊ߫ + + + ߦߊߞߎߕߑߛߞ + + + ߝ߭ߑߟߊߘߌߝ߭ߏߛߑߕߐߞ + + + ߞ߭ߊ߲ߘߌߜ߭ߊ߫ + + + ߛߞߊߟߌߣ + + + ߎߛߕ-ߣߋߙߊ߫ + + + ߡߜ߭ߊߘߊ߲߫ + + + ߛߙߋߘߑߣߏߞߐߟߌߡߑߛߞߌ߫ + + + ߞߊ߲ߦߑߗߊߕߑߞߌ߫ + + + ߊߣߊߘߌߙ + + + ߞߌߜ߭ߊߟߌ߫ + + + ߙߌߦߊߘ + + + ߜ߭ߎߥߘߊߟߑߞߣߊߟ + + + ߡߊߤߋ߫ + + ߞߊߙߑߕߎߡ + + ߛߑߕߏߞߐߟߡ + + + ߛߍ߲ߜ߭ߊߔߎߙ + ߛߍ߲ߕ ߤߋߟߍߣ + + ߟߑߖߎߓߑߖߣߊ߫ + + + ߟߐ߲ߜ߭ߌߋߦߊߙߑߓߌߦߍ߲߫ + + + ߓߑߙߊߕߌߛߑߟߝ߭ߊ߫ + ߝߙߌߕߐ߲߬ + + ߛߍ߲-ߡߊߙߌߦߏ߫ + ߘߊ߬ߞߊ߯ߙߎ߫ ߡߏߜ߭ߊߘߌߛߏ߫ + + ߔߙߊߡߊߙߌߓߏ߫ + ߖߎߓߊ߫ ߛߊߏ-ߕߏߡߋ߫ + + ߛߊߟߑߝ߭ߊߘߐߙ + + + ߟߏߥߍ ߔߑߙߍ߲ߛ ߞߊߙߑߕߋ߫ + + + ߘߡߊߛ + ߒߓߊߓߊߣ + + ߜ߭ߑߙߊ߲ߘ ߕߎߙߞ + ߒߖߊߡߋߣߊ߫ @@ -1120,15 +2172,180 @@ CLDR data files are interpreted according to the LDML specification (http://unic ߟߏߡߋ߫ + + ߓߊ߲ߞߐߞ + + + ߘߎߛߊ߲ߓߋ߫ + + + ߝߞߊߏߝߏ߫ + + + ߘߟߌ߫ + + + ߊߛߑߜ߭ߊߓߊߕ + ߕߎߣߌߛ + + ߕߏ߲ߜ߭ߕߊߔߎ߫ + + + ߌߛߑߕߊ߲ߓߎߟ + + + ߔߐߙߕ ߊߛߑߔߊ߲߫ + + + ߝߎߣߊߝߎߕߌ߫ + + + ߕߊߦߌߔߋ߫ + ߘߊ߯ߙ-ߛߊ߬ߟߊ߯ߡ + + ߞߌߦߍߝ߭ + + + ߛߌ߲ߝߋߙߔߏߟ + ߞߊ߲ߔߟߊ߫ + + ߡߌߘߑߥߊߦ + + + ߥߊߞߋ߫ + + + ߊߘߊߞ + + + ߣߏߡߋ߫ + + + ߊ߲ߞߏߙߊߖ߭ + + + ߦߊߞߎߕߊ߫ + + + ߛߌߕߑߞߊ߫ + + + ߖߎߣߋߥߏ߫ + + + ߡߋߕߑߟߞߊߦߑߟߊ߫ + + + ߟߐߛ ߊ߲ߖ߭ߋߟߍߛ + + + ߓߎߥߊߛ + + + ߝߏߋߣߌߞߛ + + + ߘߊ߲ߝ߭ߍߙ + + + ߓߋߦߎߟߊ߫ (ߞߐ߰ߘߎ߮ ߘߊߞߏߕߊ߫) + + + ߣߋߥ ߛߊߟߋߡ (ߞߐ߰ߘߎ߮ ߘߊߞߏߕߊ߫) + + + ߛߊ߲ߕߙߌ߫ (ߞߐ߰ߘߎ߮ ߘߊߞߏߕߊ߫) + + + ߛߌߞߊߜ߭ߏ߫ + + + ߡߋߣߏߡߌ߲߫ + + + ߝ߭ߍ߲ߛߊ߲߫ [ߌ߲ߘߌߦߣߊ߫] + + + ߔߋߕߍߙߛߑߓߎߙߜ߭ [ߌ߲ߘߌߦߣߊ߫] + + + ߕߍߟ ߛߕߌ߫ [ߌ߲ߘߌߦߣߊ߫] + + + ߞߑߣߏߞߛ [ߌ߲ߘߌߦߣߊ߫] + + + ߥߌߣߡߊߞ [ߌ߲ߘߌߦߣߊ߫] + + + ߡߊߙߌ߲ߜ߭ߏ߫ [ߌ߲ߘߌߦߣߊ߫] + + + ߌ߲ߘߌߦߊߣߊߔߏߟߌߛ + + + ߟߎߦߌߛߝ߭ߌߟ + + + ߝ߭ߋߝ߭ߊߦ [ߌ߲ߘߌߦߣߊ߫] + + + ߡߐ߲ߕߌߛߋߟߏ߬ [ߞߊ߲ߕߎߞߌ߫] + + + ߘߋߕߙߏߥߊ + + + ߣߋߥ ߦߐߙߞ + + + ߡߐ߲ߕߋߝ߭ߌߘߋߥߏ߫ + + + ߛߡߊߙߑߞߊ߲ߘ + + + ߕߊߛߗߑߞߍ߲ߕ + + + ߝ߭ߊߕߌߞߊ߲߫ + + + ߛߍ߲-ߝ߭ߍ߲ߛߊ߲߫ + + + ߞߙߊߞߊߛ + + + ߕߏߙߑߕߏߟߊ߫ + + + ߛߍ߲-ߕߏߡߊߛ + + + ߤߐ߯-ߗߌ-ߡߌ߲-ߘߎ߱ + + + ߋߝߊߕߋ߫ + + + ߥߊߟߟߌߛ + + + ߊߔߌߦߊ߫ + + + ߊߘߍ߲߫ + ߡߊߦߐߕ @@ -1141,55 +2358,702 @@ CLDR data files are interpreted according to the LDML specification (http://unic ߤߙߊߙߋ߫ + + + ߊߝߑߜ߭ߊߣߌߛߑߕߊ߲߫ ߕߎ߬ߡߊ߬ߘߊ + + - ߝߘߊ߬ߝߌ߲߬ߠߊ߫ ߕߊ߲ߓߊ߲ ߕߎ߬ߡߊ߬ߙߋ߲ ߢߊߓߘߍ + ߝߘߊ߬ߝߌ߲߬ߠߊ߫ ߕߊ߲ߓߊ߲ ߕߎ߬ߡߊ߬ߙߋ߲ ߢߊߓߘߍ + + + + + ߝߘߊ߬ߌ߲߬ߠߊ߫ ߓߟߋ߬ߓߐ ߕߎ߬ߡߊ߬ߙߋ߲ ߢߊߓߘߍ + + + + + ߝߘߌ߬ߝߌ߲߬ߠߊ߫ ߥߙߏ߬ߘߎ߮ ߕߎ߬ߡߊ߬ߙߋ߲ ߢߊߓߘߍ + + + + + ߝߘߊ߬ߝߌ߲߬ߠߊ߫ ߕߟߋ߬ߓߋ ߕߎ߬ߡߊ߬ߙߋ߲ + ߝߘߊ߬ߝߌ߲߬ߠߊ߫ ߕߟߋ߬ߓߋ ߕߎ߬ߡߊ߬ߙߋ߲ ߢߊߓߘߍ + ߝߘߊ߬ߝߌ߲߬ߠߊ߫ ߕߟߋ߬ߓߋ ߕߟߋ߬ߡߊ߬ ߕߎߡߊߙߋ߲ + + + + + ߊߟߊߛߑߞߊ߫ ߕߎ߬ߡߊ߬ߘߊ + ߊߟߊߛߑߞߊ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߊߟߊߛߑߞߊ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߊߡߊߖ߭ߏ߲߫ ߕߎ߬ߡߊ߬ߘߊ + ߊߡߊߖ߭ߏߣ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߊߡߊߖ߭ߏ߲߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߊߡߋߙߌߞߌ߬ ߕߊ߲ߓߊ߲ ߕߎ߬ߡߊ߬ߘߊ + ߞߐ߰ߘߎ߮ ߊߡߋߙߌߞߌ߬ ߕߎ߬ߡߘߊ߬ ߕߊ߲ߓߊ߲߫ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߞߐ߰ߘߎ߮ ߊߡߋߙߌߞߌ߬ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߞߐ߰ߘߎ߰ ߊߡߋߙߌߞߌ߬ ߕߟߋ߬ߓߐ߬ ߕߎ߬ߡߊ߬ߘߊ + ߞߐ߰ߘߎ߰ ߊߡߋߙߌߞߌ߬ ߕߟߋ߬ߓߐ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߞߐ߰ߘߎ߰ ߊߡߋߙߌߞߌ߬ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߞߙߎ߬ߞߊ߲߬ߠߊ ߕߎ߬ߡߊ߬ߘߊ + ߞߙߎ߬ߞߊ߲߬ߠߊ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߞߙߎ߬ߞߊ߲߬ߠߊ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߞߐ߰ߘߎ߰ ߊߡߋߙߌߞߌ߬ ߣߌ߫ ߖߐ߫ ߟߌ߲ߓߊ߲ ߕߎ߬ߡߊ߬ߘߊ + ߞߐ߰ߘߎ߰ ߊߡߋߙߌߞߌ߬ ߣߌ߫ ߖߐ߫ ߟߌ߲ߓߊ߲ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߞߐ߰ߘߎ߰ ߊߡߋߙߌߞߌ߬ ߣߌ߫ ߖߐ߫ ߟߌ߲ߓߊ߲ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߊߔߌߦߊ߫ ߕߎ߬ߡߊ߬ߘߊ + ߊߔߌߦߊ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߊߔߌߦߊ߫ ߕߟߋ߬ߡߊ߬ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + + + + + ߊߙߊߓߎߟߊ߫ ߕߎ߬ߡߊ߬ߘߊ + ߊߙߊߓߎߟߊ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߊߙߊߓߎߟߊ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ ߛߎߡߊ߲ߘߊ߲ߕߊ + + + + + ߊߙߑߖ߭ߊ߲ߕߌ߲߫ ߕߎ߬ߡߊ߬ߘߊ + ߊߙߑߖ߭ߊ߲ߕߌ߲߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߊߙߑߖ߭ߊ߲ߕߌ߲߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߕߟߋ߬ߓߋ ߊߙߑߖ߭ߊ߲ߕߌ߲߫ ߕߎ߬ߡߊ߬ߘߊ + ߕߟߋ߬ߓߋ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߕߟߋ߬ߓߋ ߊߙߑߖ߭ߊ߲ߕߌ߲߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߊߙߑߡߋߣߌ߫ ߕߎ߬ߡߊ߬ߘߊ + ߊߙߑߡߋߣߌ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߊߙߑߡߋߣߌ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ ߛߎߡߊ߲ߘߊ߲ߕߊ + + + + + ߟߌ߲ߓߊ߲-ߡߊ߲ߞߊ߲ ߕߎ߬ߡߊ߬ߘߊ + ߟߌ߲ߓߊ߲-ߡߊ߲ߞߊ߲ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߟߌ߲ߓߊ߲-ߡߊ߲ߞߊ߲ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߕߍߡߟߊ ߏߛߑߕߙߊߟߌ߫ ߕߎ߬ߡߊ߬ߘߊ + ߕߍߡߟߊ ߏߛߑߕߙߊߟߌ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߕߍߡߟߊ ߏߛߑߕߙߊߟߌ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߏߛߑߕߙߊߟߌ߫ ߕߟߋ߬ߓߋ߬-ߕߍߡߟߊ ߕߎ߬ߡߊ߬ߘߊ + ߏߛߑߕߙߊߟߌ߫ ߕߟߋ߬ߓߋ߬-ߕߍߡߟߊ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߏߛߑߕߙߊߟߌ߫ ߕߟߋ߬ߓߋ߬-ߕߍߡߟߊ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߕߟߋ߬ߓߐ ߏߛߑߕߙߊߟߌ߫ ߕߎ߬ߡߊ߬ߘߊ + ߕߟߋ߬ߓߐ ߏߛߑߕߙߊߟߌ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߕߟߋ߬ߓߐ ߏߛߑߕߙߊߟߌ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߕߟߋ߬ߓߋ ߏߛߑߕߙߊߟߌ߫ ߕߎ߬ߡߊ߬ߘߊ + ߕߟߋ߬ߓߋ ߏߛߑߕߙߊߟߌ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߕߟߋ߬ߓߋ ߏߛߑߕߙߊߟߌ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߊߖ߭ߍߙߑߓߊߦߑߖߊ߲߫ ߕߎ߬ߡߊ߬ߘߊ + ߊߖ߭ߍߙߑߓߊߦߑߖߊ߲߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߊߖ߭ߍߙߑߓߊߦߑߖߊ߲߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ ߛߎߡߊ߲ߘߊ߲ߕߊ + + + + + ߊߗ߭ߐߙߛ ߕߎ߬ߡߊ߬ߘߊ + ߊߗ߭ߐߙߛ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߊߗ߭ߐߙߛ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߓߊ߲ߜ߭ߑߟߊߘߍߛ ߕߎ߬ߡߊ߬ߘߊ + ߓߊ߲ߜ߭ߑߟߊߘߍߛ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߓߊ߲ߜ߭ߑߟߊߘߍߛ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߓߎߕߊ߲߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߓߏߟߝ߭ߌ߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߓߙߋߖ߭ߟߌߟߊ߫ ߕߎ߬ߡߊ߬ߘߊ + ߓߙߋߖ߭ߟߌߟߊ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߓߙߋߖ߭ߟߌߟߊ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߓߙߎߣߋߦߌ߫ ߘߊߙߎߛߑߛߟߊߡ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߜߙߋߞߎ߲߫-ߝߙߌߛߌ߫ ߕߎ߬ߡߊ߬ߙߋ߲ + ߜߙߋߞߎ߲߫-ߝߙߌߛߌ߫ ߕߎ߬ߡߊ߬ߙߋ߲ ߢߊߓߘߍ + ߜߙߋߞߎ߲߫-ߝߙߌߛߌ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߊߙߋ߲ + + + + + ߛ߭ߊߡߏߙߏ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + + + + + ߗߕߊߡ ߕߎ߬ߡߊ߬ߘߊ + ߗߕߊߡ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߗߕߊߡ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߛߟߌ߫ ߕߎ߬ߡߊ߬ߘߊ + ߛߟߌ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߛߟߌ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߛߌߣ ߕߎ߬ߡߊ߬ߘߊ + ߛߌߣ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߛߌߣ ߕߟߋ߬ߡߊ߬ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߞߑߙߌߛߑߡߊߛ ߕߌ߲ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߞߏߞߏߛ ߕߌ߲ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߞߐߟߐ߲ߓߌ߫ ߕߎ߬ߡߊ߬ߘߊ + ߞߐߟߐ߲ߓߌ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߞߐߟߐ߲ߓߌ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߞߏߞ ߕߎ߬ߡߊ߬ߘߊ + ߞߏߞ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߞߏߞ ߕߟߋ߬ߡߊ߬ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + + + + + ߞߎ߳ߓߊ߫ ߕߎ߬ߡߊ߬ߘߊ + ߞߎ߳ߓߊ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߞߎ߱ߓߊ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߘߊߝ߭ߌߛ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߘߎߡߐ߲-ߘߎߙߑߝ߭ߌߟ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߕߟߋ߬ߓߐ ߕߌߡߐߙ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߌߛߑߟߊ߲ߘ ߕߌ߲ ߕߎ߬ߡߊ߬ߘߊ + ߌߛߑߟߊ߲ߘ ߕߌ߲ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߌߛߑߟߊ߲ߘ ߕߌ߲ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߌߞߑߥߊߘߐߙ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߕߍߡߊ߫ ߋߙߐߔߎ߫ ߕߎ߬ߡߊ߬ߘߊ + ߕߍߡߊ߫ ߋߙߐߔߎ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߕߍߡߊ߫ ߋߙߐߔߎ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߕߟߋ߬ߓߐ ߋߙߐߔߎ߫ ߕߎ߬ߡߊ߬ߘߊ + ߕߟߋ߬ߓߐ ߋߙߐߔߎ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߕߟߋ߬ߓߐ ߋߙߐߔߎ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߞߊߟߌߣߌ߲ߜ߭ߙߊߘ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߕߟߋ߬ߓߋ ߋߙߐߔߎ߫ ߕߎ߬ߡߊ߬ߘߊ + ߕߟߋ߬ߓߋ ߋߙߐߔߎ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߕߟߋ߬ߓߋ ߋߙߐߔߎ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߝߊߟߞߑߟߊ߲ߘ ߕߌ߲ ߕߎ߬ߡߊ߬ߘߊ + ߝߊߟߞߑߟߊ߲ߘ ߕߌ߲ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߝߊߟߞߑߟߊ߲ߘ ߕߌ߲ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߝߖߌ߫ ߕߎ߬ߡߊ߬ߘߊ + ߝߖߌ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߝߖߌ߫ ߕߟߋ߬ߡߊ߬ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + + + + + ߝߊ߬ߙߊ߲߬ߛߌ߬ ߜ߭ߎߦߣߊ߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߐߛߑߕߙߊߟߌ߫ ߘߎ߰ߞߟߏ ߣߌ߫ ߝߊ߬ߙߊ߲߬ߛߌ߫ ߊ߲ߕߊߙߑߕߌߞ ߕߎ߬ߡߊ߬ߙߋ + + + + + ߜ߭ߟߊߔߊߜ߭ߐߛ ߕߎ߬ߡߊ߬ߘߊ߫ + + + + + ߜ߭ߊ߲ߓߌߦߍߙ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߖ߭ߐߙߑߖ߭ߌ߫ ߕߎ߬ߡߊ߬ߘߊ + ߖ߭ߐߙߑߖ߭ߌ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߖ߭ߐߙߑߖ߭ߌ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ ߛߎߡߊ߲ߘߊ߲ߕߊ + + + + + ߖ߭ߌߟߑߓߍߙߕ ߕߌ߲ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߜ߭ߙߋߣߍߕ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߕߟߋ߬ߓߐ ߜ߭ߌߙߌ߲ߟߊ߲ߘ ߕߎ߬ߡߊ߬ߘߊ + ߕߟߋ߬ߓߐ ߜ߭ߌߙߌ߲ߟߊ߲ߘ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߕߟߋ߬ߓߐ ߜ߭ߌߙߌ߲ߟߊ߲ߘ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߕߟߋ߬ߓߋ ߜ߭ߌߙߌ߲ߟߊ߲ߘ ߕߎ߬ߡߊ߬ߘߊ + ߕߟߋ߬ߓߋ ߜ߭ߌߙߌ߲ߟߊ߲ߘ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߕߟߋ߬ߓߋ ߜ߭ߌߙߌ߲ߟߊ߲ߘ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߖߌߘߏ߮ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߜ߭ߎߦߣߊ߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߤߥߊߦ - ߊߟߋߦߎߕߌߦߊ߲߫ ߕߎ߬ߡߊ߬ߘߊ + ߤߥߊߦ - ߊߟߋߦߎߕߌߦߊ߲߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߤߥߊߦ - ߊߟߋߦߎߕߌߦߊ߲߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߤߐ߲ߜ߭ ߞߐ߲ߜ߭ ߕߎ߬ߡߊ߬ߘߊ + ߤߐ߲ߜ߭ ߞߐ߲ߜ߭ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߤߐ߲ߜ߭ ߞߐ߲ߜ߭ ߕߟߋ߬ߡߊ߬ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߤߏߝ߭ߘ ߕߎ߬ߡߊ߬ߘߊ + ߤߏߝ߭ߘ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߤߏߝ߭ߘ ߕߟߋ߬ߡߊ߬ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߤߌ߲ߘߌ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + + + + + ߍ߲ߘߎ߫ ߟߌ߲ߓߊ߲ߘߎ߯ ߕߎ߬ߡߊ߬ߙߋ߲ + + + + + ߤߌ߲ߘߏ߫ ߛߌߣ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߕߍߡߊ߫ ߍ߲ߘߋߣߏߛߌ߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߕߟߋ߬ߓߐ ߍ߲ߘߋߣߏߛߌ߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߕߟߋ߬ߓߋ ߍ߲ߘߋߣߏߛߌ߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߌߙߊ߲߫ ߕߎ߬ߡߊ߬ߘߊ + ߌߙߊ߲߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߌߙߊ߲߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߌߙߑߞߎߕߑߛߞ ߕߎ߬ߡߊ߬ߘߊ + ߌߙߑߞߎߕߑߛߞ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߌߙߑߞߎߕߑߛߞ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߌߛߌ߬ߙߊ߬ߦߌߟߊ߫ ߕߎ߬ߡߊ߬ߘߊ + ߌߛߌ߬ߙߊ߬ߦߌߟߊ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߌߛߌ߬ߙߊ߬ߦߌߟߊ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ ߛߎߡߊ߲ߘߊ߲ߕߊ + + + + + ߖ߭ߊߔߐ߲߫ ߕߎ߬ߡߊ߬ߘߊ + ߖ߭ߊߔߐ߲߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߖ߭ߊߔߐ߲߫ ߕߟߋ߬ߡߊ߬ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߞߖ߭ߊߞߌߛߑߕߊ߲߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߕߟߋ߬ߓߐ ߞߖ߭ߊߞߌߛߑߕߊ߲߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߕߟߋ߬ߓߋ ߞߖ߭ߊߞߌߛߑߕߊ߲߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߞߏߙߋ߫ ߕߎ߬ߡߊ߬ߘߊ + ߞߏߙߋ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߞߏߙߋ߫ ߕߟߋ߬ߡߊ߬ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߞߏߛߑߙߊ߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߞߙߊߛߑߣߏߦߌߦߊߙߑߛߞ ߕߎ߬ߡߊ߬ߘߊ + ߞߙߊߛߑߣߏߦߌߦߊߙߑߛߞ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߞߙߊߛߑߣߏߦߌߦߊߙߑߛߞ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߜ߭ߌߙߑߜ߭ߌߛߑߕߊ߲߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߌߛߑߟߊ߲ߘ ߞߍ߬ߙߍ߲߬ߘߍ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߟߐߙߘ ߕߎ߬ߡߊ߬ߘߊ + ߟߐߙߘ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߟߐߙߘ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߡߜ߭ߊߘߊ߲߫ ߕߎ߬ߡߊ߬ߘߊ + ߡߜ߭ߊߘߊ߲߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߡߜ߭ߊߘߊ߲߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߡߊߟߍߘߎ߯ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߡߊߟߑߘߌߝ߭ ߕߌ߲ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߡߊߙߞߌߛߊߛ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߡߊߙߑߛߊߟ ߕߌ߲ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߡߏߙߌߛ ߕߎ߬ߡߊ߬ߙߋ߲ + ߡߏߙߌߛ ߕߎ߬ߡߊ߬ߙߋ߲ ߢߊߓߘߍ + ߡߏߙߌߛ ߕߟߋ߬ߡߊ߬ ߕߎߡߊߙߋ߲ + + + + + ߡߊߥߑߛߐ߲߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߖߐ߫ ߟߌ߲ߓߊ߲ ߡߍ߲ߞߛߌߞߌ߬ ߕߎ߬ߡߊ߬ߘߊ + ߖߐ߫ ߟߌ߲ߓߊ߲ ߡߍ߲ߞߛߌߞߌ߬ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߖߐ߫ ߟߌ߲ߓߊ߲ ߡߍ߲ߞߛߌߞߌ߬ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߎߟߊ߲ߓߕߐߙ ߕߎ߬ߡߊ߬ߘߊ + ߎߟߊ߲ߓߕߐߙ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߎߟߊ߲ߓߕߐߙ ߕߟߋ߬ߡߊ߬ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߡߏߛߑߞߎ߫ ߕߎ߬ߡߊ߬ߘߊ + ߡߏߛߑߞߎ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߡߏߛߑߞߎ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߡߌߦߊߣߑߡߊߙ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߣߊߥߙߎ߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߣߋߔߊߟ ߕߎ߬ߡߊ߬ߘߊ - + - ߝߘߊ߬ߌ߲߬ߠߊ߫ ߓߟߋ߬ߓߐ ߕߎ߬ߡߊ߬ߙߋ߲ ߢߊߓߘߍ + ߞߊߟߌߘߏߣߌ߫ ߞߎߘߊ߫ ߕߎ߬ߡߊ߬ߘߊ + ߞߊߟߌߘߏߣߌ߫ ߞߎߘߊ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߞߊߟߌߘߏߣߌ߫ ߞߎߘߊ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ - + - ߝߘߌ߬ߝߌ߲߬ߠߊ߫ ߥߙߏ߬ߘߎ߮ ߕߎ߬ߡߊ߬ߙߋ߲ ߢߊߓߘߍ + ߣߌߦߎ-ߖ߭ߋߟߊ߲ߘ ߕߎ߬ߡߊ߬ߘߊ + ߣߌߦߎ-ߖ߭ߋߟߊ߲ߘ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߣߌߦߎ-ߖ߭ߋߟߊ߲ߘ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ - + - ߝߘߊ߬ߝߌ߲߬ߠߊ߫ ߕߟߋ߬ߓߋ ߕߎ߬ߡߊ߬ߙߋ߲ - ߝߘߊ߬ߝߌ߲߬ߠߊ߫ ߕߟߋ߬ߓߋ ߕߎ߬ߡߊ߬ߙߋ߲ ߢߊߓߘߍ - ߝߘߊ߬ߝߌ߲߬ߠߊ߫ ߕߟߋ߬ߓߋ ߕߟߋ߬ߡߊ߬ ߕߎߡߊߙߋ߲ + ߝߎ߲ߘߑߟߊ߲ߘ ߞߎߘߊ߫ ߕߎ߬ߡߊ߬ߘߊ + ߝߎ߲ߘߑߟߊ߲ߘ ߞߎߘߊ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߝߎ߲ߘߑߟߊ߲ߘ ߞߎߘߊ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ - + - ߜߙߋߞߎ߲߫-ߝߙߌߛߌ߫ ߕߎ߬ߡߊ߬ߙߋ߲ - ߜߙߋߞߎ߲߫-ߝߙߌߛߌ߫ ߕߎ߬ߡߊ߬ߙߋ߲ ߢߊߓߘߍ - ߜߙߋߞߎ߲߫-ߝߙߌߛߌ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߊߙߋ߲ + ߣߌߦߋ߫ ߕߎ߬ߡߊ߬ߘߊ - + - ߐߛߑߕߙߊߟߌ߫ ߘߎ߰ߞߟߏ ߣߌ߫ ߝߊ߬ߙߊ߲߬ߛߌ߫ ߊ߲ߕߊߙߑߕߌߞ ߕߎ߬ߡߊ߬ߙߋ + ߣߐߙ ߝߐߟߞ ߕߌ߲ ߕߎ߬ߡߊ߬ߘߊ + ߣߐߙ ߝߐߟߞ ߕߌ߲ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߣߐߙ ߝߐߟߞ ߕߌ߲ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ - + - ߜ߭ߙߋߣߍߕ ߕߎ߬ߡߊ߬ߘߊ + ߝߍߙߑߣߊ߲ߘߏ߫ ߘߋ߬ ߣߏߙߏ߲ߤߊ߫ ߕߎ߬ߡߊ߬ߘߊ + ߝߍߙߑߣߊ߲ߘߏ߫ ߘߋ߬ ߣߏߙߏ߲ߤߊ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߝߍߙߑߣߊ߲ߘߏ߫ ߘߋ߬ ߣߏߙߏ߲ߤߊ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ - + - ߍ߲ߘߎ߫ ߟߌ߲ߓߊ߲ߘߎ߯ ߕߎ߬ߡߊ߬ߙߋ߲ + ߣߝ߭ߏߛߓߌߙߑߛߞ ߕߎ߬ߡߊ߬ߘߊ + ߣߝ߭ߏߛߓߌߙߑߛߞ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߣߝ߭ߏߛߓߌߙߑߛߞ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ - + - ߡߏߙߌߛ ߕߎ߬ߡߊ߬ߙߋ߲ - ߡߏߙߌߛ ߕߎ߬ߡߊ߬ߙߋ߲ ߢߊߓߘߍ - ߡߏߙߌߛ ߕߟߋ߬ߡߊ߬ ߕߎߡߊߙߋ߲ + ߏߡߑߛߞ ߕߎ߬ߡߊ߬ߘߊ + ߏߡߑߛߞ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߏߡߑߛߞ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߔߊߞߌߛߑߕߊ߲߫ ߕߎ߬ߡߊ߬ߘߊ + ߔߊߞߌߛߑߕߊ߲߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߔߊߞߌߛߑߕߊ߲߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߔߟߊߐߛ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߔߊߓߎߥߊ߫ ߖߌ߬ߣߍ߬ ߞߎߘߊ߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߔߙߊߜ߭ߎߥߋ߫ ߕߎ߬ߡߊ߬ߘߊ + ߔߙߊߜ߭ߎߥߋ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߔߙߊߜ߭ߎߥߋ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߔߋߙߎ߫ ߕߎ߬ߡߊ߬ߘߊ + ߔߋߙߎ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߔߋߙߎ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߝߟߌߔߌ߲߫ ߕߎ߬ߡߊ߬ߘߊ + ߝߟߌߔߌ߲߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߝߟߌߔߌ߲߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߝߏߣߌߞߛ ߕߌ߲ ߠߎ߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߛߍ߲-ߔߌߦߍߙ-ߋ-ߡߌߞߋߟߐ߲߫ ߕߎ߬ߡߊ߬ߘߊ + ߛߍ߲-ߔߌߦߍߙ-ߋ-ߡߌߞߋߟߐ߲߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߛߍ߲-ߔߌߦߍߙ-ߋ-ߡߌߞߋߟߐ߲߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߔߌߕߑߞߍߙߣ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߔߏ߲ߔߍ߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߔߌߦߐ߲ߜ߭ߦߊ߲ߜ߭ ߕߎ߬ߡߊ߬ߘߊ @@ -1197,11 +3061,175 @@ CLDR data files are interpreted according to the LDML specification (http://unic ߙߋߣߌߦߐ߲߫ ߕߎ߬ߡߊ߬ߙߋ߲ + + + ߙߏߕߋߙߊ߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߛߊߞߑߤߊߟߌߣ ߕߎ߬ߡߊ߬ߘߊ + ߛߊߞߑߤߊߟߌߣ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߛߊߞߑߤߊߟߌߣ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߛߊߡߏߥߊ߫ ߕߎ߬ߡߊ߬ߘߊ + ߛߊߡߏߥߊ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߛߊߡߏߥߊ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + ߛߋߦߌߛߌߟ ߕߎ߬ߡߊ߬ߙߋ߲ + + + ߛߍ߲ߜ߭ߊߔߎߙ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + + + + + ߛߟߏ߬ߡߣߊ߬ ߕߌ߲ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߥߙߏ߬ߘߎ߮ ߖ߭ߐߙߑߖ߭ߌߟߊ߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߛߎߙߌߣߊߡ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߛߦߏߥߊ߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߕߊߤߕߌ߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߕߊߦߌߔߋ߫ ߕߎ߬ߡߊ߬ߘߊ + ߕߊߦߌߔߋ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߕߊߦߌߔߋ߫ ߕߟߋ߬ߡߊ߬ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߕߊߖߞߌߛߑߕߊ߲߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߕߏߞߋߟߏ߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߕߏ߲ߜ߭ߊ߫ ߕߎ߬ߡߊ߬ߘߊ + ߕߏ߲ߜ߭ߊ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߕߏ߲ߜ߭ߊ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߗߎߞ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߕߎߙߞߌߡߋߣߌߛߑߕߊ߲߫ ߕߎ߬ߡߊ߬ߘߊ + ߕߎߙߞߌߡߋߣߌߛߑߕߊ߲߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߕߎߙߞߑߡߋߣߌߛߑߕߊ߲߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߕߎߝ߭ߊߟߎ߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߎ߳ߙߑߜ߭ߋߦߌ߫ ߕߎ߬ߡߊ߬ߘߊ + ߎ߳ߙߑߜ߭ߋߦߌ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߎ߳ߙߑߜ߭ߋߦߌ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߏߖ߭ߑߓߊߞߌߛߑߕߊ߲߫ ߕߎ߬ߡߊ߬ߘߊ + ߏߖ߭ߑߓߊߞߌߛߑߕߊ߲߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߏߖ߭ߑߓߊߞߌߛߑߕߊ߲߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߝ߭ߊߣߎߥߊߕߎ߫ ߕߎ߬ߡߊ߬ߘߊ + ߝ߭ߊߣߎߥߊߕߎ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߝ߭ߊߣߎߥߊߕߎ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߝ߭ߣߋߖ߭ߎߦߋߟߊ߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߝ߭ߟߊߘߑߝ߭ߏߛߑߕߏߞ ߕߎ߬ߡߊ߬ߘߊ + ߝ߭ߟߊߘߑߝ߭ߏߛߑߕߏߞ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߝ߭ߟߊߘߑߝ߭ߏߛߑߕߏߞ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߝ߭ߏߟߑߜ߭ߏߜ߭ߙߊߘ ߕߎ߬ߡߊ߬ߘߊ + ߝ߭ߏߟߑߜ߭ߏߜ߭ߙߊߘ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߝ߭ߏߟߑߜ߭ߏߜ߭ߙߊߘ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߝ߭ߐߛߑߕߐߞ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߥߊߞ ߕߌ߲ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߥߊߟߌߛ ߣߌ߫ ߝߕߎߣߊ߫ ߕߎ߬ߡߊ߬ߘߊ + + + + + ߦߊߞߎߕߑߛߞߌ߫ ߕߎ߬ߡߊ߬ߘߊ + ߦߊߞߎߕߑߛߞߌ߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߦߊߞߎߕߑߛߞߌ߫ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߦߋߞߊߕߋߙߌ߲ߓߎߙߜ߭ ߕߎ߬ߡߊ߬ߘߊ + ߦߋߞߊߕߋߙߌ߲ߓߎߙߜ߭ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + ߦߋߞߊߕߋߙߌ߲ߓߎߙߜ߭ ߕߟߋ߬ߡߊ߬ ߕߎߡߘߊ + + + + + ߦߎߞߐ߲߫ ߕߎ߬ߡߘߊ߬ ߛߎߡߊ߲ߘߊ߲ߕߊ + + @@ -1212,7 +3240,35 @@ CLDR data files are interpreted according to the LDML specification (http://unic ، + + ، + + + ߊߙߊߓߎߟߊ߫ ߡߊ߲߬ߛߊ߬ߙߋ߬ߠߊ ߟߊߘߍ߬ߣߍ߲ ߘߌ߬ߙߑߤߊߡ + ߊߙߊߓߎߟߊ߫ ߡߊ߲߬ߛߊ߬ߙߋ߬ߠߊ ߟߊߘߍ߬ߣߍ߲ ߘߌ߬ߙߑߤߊߡ + ߊߐߘ + + + ߊߝߎߜ߭ߊߣߌߛߑߕߊ߲߫ ߊߝߑߜ߭ߊߣߌߛ + ߊߝߎߜ߭ߊߣߌߛߑߕߊ߲߫ ߊߝߑߜ߭ߊߣߌߛ + ߊߝߊ + + + ߊߟߑߓߊߣߌ߫ ߟߍߞ + ߊߟߑߓߊߣߌ߫ ߟߍߞ + ߊߟߟ + + + ߊߙߑߡߋߣߌ߫ ߘߌ߬ߙߑߤߊߡ + ߊߙߑߡߋߣߌ߫ ߘߌ߬ߙߑߤߊߡ + ߊߡߘ + + + ߞߎߙߊߛߊߥߏ߫ ߊ߲ߕߌ߫ ߝߑߟߏߙߌ߲ߛ + ߞߎߙߊߛߊߥߏ߫ ߊ߲ߕߌ߫ ߝߑߟߏߙߌ߲ߛ + ߊ߲ߕߝ + ߊ߲ߜ߭ߏߟߞߊ ߟߎ߬ ߟߊ߫ ߞߎߥߊ߲ߖ߭ߊ ߊ߲ߜ߭ߎ @@ -1229,27 +3285,165 @@ CLDR data files are interpreted according to the LDML specification (http://unic ߊ߲ߜ߭ߏߟߊ߫ ߞߎߥߊߖ߭ߊ ߝߊ߲߬ߞߊߘߏ߲߬ߣߍ߲ ( ߁߉߉߅–߁߉߉߉ ) ߊߜ߭ߝ + + ߊߙߑߖ߭ߊ߲ߕߌ߲߫ ߔߋߛߏ + ߊߙߑߖ߭ߊ߲ߕߌ߲߫ ߔߋߛߏ + ߊߖ߭ߔ + + + ߐߛߑߕߙߊߟߌ߫ ߘߟߊ + ߐߛߑߕߙߊߟߌ߫ ߘߟߊ + + + + ߊߙߎߓߊ߫ ߝߑߟߏߙߌ߲ߛ + ߊߙߎߓߊ߫ ߝߑߟߏߙߌ߲ߛ + ߊߥߖ߭ + + + ߊߖߍߙߑߓߊߦߌߖߊ߲߫ ߊߗ߭ߋߙߌ + ߊߖߍߙߑߓߊߦߌߖߊ߲߫ ߊߗ߭ߋߙߌ + ߊߖߣ + + + ߓߐߛߑߣߌ߫ ߍߙߑߗ߭ߋߜ߭ߏߝ߭ߌߣ ߡߊߙߞ ߝߊ߬ߟߋ߲߬ߕߊ + ߓߐߛߑߣߌ߫ ߍߙߑߗ߭ߋߜ߭ߏߝ߭ߌߣ ߡߊߙߞ ߝߊ߬ߟߋ߲߬ߕߊ + ߓߍߡ + + + ߓߊߙߑߓߊߘߐߛ ߘߟߊ + ߓߊߙߑߓߊߘߐߛ ߘߟߊ + ߓߓߘ + + + ߓߊ߲ߜ߭ߑߟߊߘߍߛ ߕߞߊ + ߓߊ߲ߜ߭ߑߟߊߘߍߛ ߕߞߊ + ߓߘߕ + + + ߓߎ߳ߟߑߜ߭ߊߙߌ߫ ߟߍߝ߭ + ߓߎ߳ߟߑߜ߭ߊߙߌ߫ ߟߍߝ߭ + ߓߜ߭ߟ + + + ߓߤߊ߬ߙߊߦߌߣ ߘߌ߬ߣߊߙ + ߓߤߊ߬ߙߊߦߌߣ ߘߌ߬ߣߊߙ + ߓߤߘ + ߓߎߙߎ߲ߘߌߞߊ ߟߎ߬ ߟߊ߫ ߝߊߙߊ߲ ߓߙߝ + + ߓߍߙߑߡߎߘߊ߫ ߘߟߊ + ߓߍߙߑߡߎߘߊ߫ ߘߟߊ + ߓߡߘ + + + ߓߙߎߣߌ߫ ߘߟߊ + ߓߙߎߣߌ߫ ߘߟߊ + ߓߣߘ + + + ߓߏߟߝ߭ߌ߫ ߓߏߟߝ߭ߌߦߊߣߏ߬ + ߓߏߟߝ߭ߌ߫ ߓߏߟߝ߭ߌߦߊߣߏ߬ + ߓߏߓ + + + ߓߙߋߖ߭ߌߟ ߙߋߦߊߟ + ߓߙߋߖ߭ߌߟ ߙߋߦߊߟ + + + ߓߤߊߡߊߛ ߘߟߊ + ߓߤߊߡߊߛ ߘߟߊ + ߓߛߘ + + + ߓߎߕߊ߲߫ ߒߜ߭ߎߟߑߕߙߎߡ + ߓߎߕߊ߲߫ ߒߜ߭ߎߟߑߕߙߎߡ + ߓߕߒ + ߓߐߛߎߥߣߊߞߊ ߟߎ߬ ߟߊ߫ ߔߎߟߊ ߓߥߔ ߔ + + ߓߌߟߏߙߌߛ ߙߓߎߟ + ߓߌߟߏߙߌߛ ߙߓߎߟ + ߓߌߙ + + + ߓߙߋߖ߭ߌߟ ߘߟߊ + ߓߙߋߖ߭ߌߟ ߘߟߊ + ߞߏ߲߬ߜ߭ߏ߬ߞߊ ߟߎ߬ ߟߊ߫ ߝߊߙߊ߲ ߞߝ + + ߛߎߥߌߛ ߝߊߙߊ߲ + ߛߎߥߌߛ ߝߊߙߊ߲ + ߛߥߝ + + + ߛ߭ߟߌ߫ ߔߋߛߏ + ߛ߭ߟߌ߫ ߔߋߛߏ + ߛߟߔ + + + ߛߌߣ ߦߎߥߊߣ (ߝߊ߲߬ߕߙߊ ߖߌߘߊ) + ߛߌߣ ߦߎߥߊߣ (ߝߊ߲߬ߕߙߊ ߖߌߘߊ) + ߛߦߤ + + + ߦߎߥߊߣ ߙߊ߲ߡߌ߲ߓߌ߫ + ߦߎߥߊߣ ߙߊ߲ߡߌ߲ߓߌ߫ + ߛߣߦ + + + ߞߐߟߐ߲ߓߌ߫ ߔߋߛߏ + ߞߐߟߐ߲ߓߌ߫ ߔߋߛߏ + ߞߐߔ + + + ߞߐߛߑߕߊߙߌߞߊ߫ ߞߐߟߐߣ + ߞߐߛߑߕߊߙߌߞߊ߫ ߞߐߟߐߣ + ߞߙߞ + + + ߞߎ߳ߓߊ߫ ߔߋߛߏ߫ ߝߊ߬ߟߋ߲߬ߕߊ + ߞߎ߳ߓߊ߫ ߔߋߛߏ߫ ߝߊ߬ߟߋ߲߬ߕߊ + ߞߎ߳ߞ + + + ߞߎ߳ߓߊ߫ ߔߋߛߏ߫߫ + ߞߎ߳ߓߊ߫ ߔߋߛߏ߫߫ + ߞߎ߳ߔ + ߜߙߋߞߎ߲߫ ߝߙߌߛߌߞߊ ߟߎ߬ ߍߛߑߞߎߘߐߛ ߍߛߞ + + ߗߋߞߏߛߟߏߝ߭ߊߞߌ߫ ߞߎߙߐߣ + ߗߋߞߏߛߟߏߝ߭ߊߞߌ߫ ߞߎߙߐߣ + ߗߞߞ + ߖߌߓߎߕߌߞߊ ߟߎ߬ ߟߊ߫ ߝߊߙߊ߲ ߖߓߝ + + ߘߊߣߌߡߊߙߞ ߞߎߙߐߣ + ߘߊߣߌߡߊߙߞ ߞߎߙߐߣ + ߘߞߞ + + + ߘߏߡߣߌߞ ߞߊ߲ߓߍ߲ ߔߋߛߏ + ߘߏߡߣߌߞ ߞߊ߲ߓߍ߲ ߔߋߛߏ + ߘߏߔ + ߊߟߌߖ߭ߋߙߌߞߊ ߟߎ߬ ߟߊ߫ ߘߌ߬ߣߊ߯ߙߌ ߊߟߘ @@ -1266,6 +3460,29 @@ CLDR data files are interpreted according to the LDML specification (http://unic ߋߗߏߔߌߞߊ ߟߎ߬ ߟߊ߫ ߓߌߙߑߛ ߋߗߓ + + ߋߙߏ + ߋߙߏ + + + ߝߖߌ߫ ߘߟߊ + ߝߖߌ߫ ߘߟߊ + $ ߝߖ + + + ߝߊߟߞߑߟߊ߲ߘ ߌߛߑߟߊ߲ߘ ߔߐߣߌ߬ + ߝߊߟߞߑߟߊ߲ߘ ߌߛߑߟߊ߲ߘ ߔߐߣߌ߬ + ߝߞߔ + + + ߡߊ߬ߛߊ߬ߟߊ߫-ߘߍ߬ߣߍ߲ ߔߐߣߌ߬ + ߡߊ߬ߛߊ߬ߟߊ߫-ߘߍ߬ߣߍ߲ ߔߐߣߌ߬ + + + ߖ߭ߐߙߑߖߌ߫ ߟߊߙߌ + ߖ߭ߐߙߑߖߌ߫ ߟߊߙߌ + ߖ߭ߐߟ + ߛߘߌ ߜ߭ߊ߯ߣߊ߫ ߛߘߌ ( ߁߉߆߇–߂߀߀߇ ) @@ -1275,6 +3492,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic ߜ߭ߊ߯ߣߞߊ ߟߎ߬ ߛߘߌ ߜ߭ߛߘ + + ߖ߭ߌߓߑߙߊߟߑߕߊ߫ ߔߐߣߌ߬ + ߖ߭ߌߓߑߙߊߟߑߕߊ߫ ߔߐߣߌ߬ + ߖ߭ߓߔ£ + ߜ߭ߊ߲ߓߌߞߊ ߟߎ߬ ߟߊ߫ ߘߟߊߛߌ߫ ߜ߭ߓߘ @@ -1292,6 +3514,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic ߕߍߡߊߓߊ߲߮ ߖߌ߬ߣߍ߬ߞߊ ߟߎ߬ ߟߊ߫ ߋߞߥߋߟߋ ߕߖߋ + + ߜ߭ߎߥߊߕߋߡߟߊ߫ ߞߋߕߑߗ߭ߊߟ + ߜ߭ߎߥߊߕߋߡߟߊ߫ ߞߋߕߑߗ߭ߊߟ + ߜ߭ߕߞ + ߖߌߣߍ߫ ߓߌߛߊߥߏߞߊ ߟߎ߬ ߟߊ߫ ߍߛߑߞߎߘߐߛ ߖߓߍ @@ -1300,15 +3527,137 @@ CLDR data files are interpreted according to the LDML specification (http://unic ߖߌߣߍ߫ ߓߌߛߊߥߏߞߊ ߟߎ߬ ߟߊ߫ ߔߋߖ߭ߏ ߖߓߔ + + ߜ߭ߎ߳ߦߊߣ ߘߟߊ + ߜ߭ߎ߳ߦߊߣ ߘߟߊ + ߜ߭ߎ߳ߘ + + + ߤߐ߲ߞߐ߲߫ ߘߟߊ + ߤߐ߲ߞߐ߲߫ ߘߟߊ + ߤߞߘ + + + ߤߐ߲ߘߎߙߊ߫ ߟߋ߲ߔߌߙߊ + ߤߐ߲ߘߎߙߊ߫ ߟߋ߲ߔߌߙߊ + ߤߘߟ + + + ߞߙߏߥߊߛߌ߫ ߞߎߣߊ߬ + ߞߙߏߥߊߛߌ߫ ߞߎߣߊ߬ + ߞߛߞ + + + ߤߊߦߕߌ߫ ߜ߭ߎߙߑߘ + ߤߊߦߕߌ߫ ߜ߭ߎߙߑߘ + ߤߕߜ߭ + + + ߢߐ߲ߜ߭ߙߌ߫ ߝߏߙߍ߲ߕ + ߢߐ߲ߜ߭ߙߌ߫ ߝߏߙߍ߲ߕ + ߤߜ߭ߝ + + + ߍ߲ߘߣߏߛߌ߫ ߙߎߔߌ + ߍ߲ߘߣߏߛߌ߫ ߙߎߔߌ + ߍ߲ߘߙ + + + ߌߛߑߙߊߍߟ ߛߌߞߍߟ ߞߎߘߊ + ߌߛߑߙߊߍߟ ߛߌߞߍߟ ߞߎߘߊ + + + ߤߌ߲ߘߎ߬ ߙߎߔߌ + ߤߌ߲ߘߎ߬ ߙߎߔߌ + + + ߌߙߊߞߌ߬ ߘߌ߬ߣߊߙ + ߌߙߊߞߌ߬ ߘߌ߬ߣߊߙ + ߌߞߘ + + + ߌߙߊ߲߫ ߙߌ߬ߦߊߟ + ߌߙߊ߲߫ ߙߌ߬ߦߊߟ + ߌߙߙ + + + ߌߛߑߟߊ߲ߘ ߞߎߙߐߣ + ߌߛߑߟߊ߲ߘ ߞߎߙߐߣ + ߌߛߞ + + + ߖߡߊߦߌߞ ߘߟߊ + ߖߡߊߦߌߞ ߘߟߊ + ߖߡߘ + + + ߖߐߙߑߘߊߣߌ߫ ߘߌ߬ߣߊߙ + ߖߐߙߑߘߊߣߌ߫ ߘߌ߬ߣߊߙ + ߖߐߘ + + + ߣߌߔߐ߲߫ ߦߍߣ + ߣߌߔߐ߲߫ ߦߍߣ + ߗ߭ߔߦ + ߝߋߣߌߦߞߊ ߟߎ߬ ߟߊ߫ ߛߌߟߌ߲ߜ߭ ߞߋߛ + + ߞߌߙߜ߭ߌߛߑߕߊ߲߫ ߛߐߡ + ߞߌߙߜ߭ߌߛߑߕߊ߲߫ ߛߐߡ + ߞߜ߭ߛ + + + ߞߊ߲ߓߐߘߑߖ ߙߌߦߍߟ + ߞߊ߲ߓߐߘߑߖ ߙߌߦߍߟ + ߞߓߙ + ߞߐߡ߲߯ߙߌߞߊ ߟߎ߬ ߟߊ߫ ߝߊߙߊ߲ ߞߡߝ ߝߛ + + ߞߐ߬ߘߎ߮-ߞߏߙߋ߫ ߥߐߣ + ߞߐ߬ߘߎ߮-ߞߏߙߋ߫ ߥߐߣ + ߞߞߥ + + + ߥߙߏ߬ߘߎ߮-ߞߏߙߋ߫ ߥߐߣ + ߥߙߏ߬ߘߎ߮-ߞߏߙߋ߫ ߥߐߣ + + + ߞߎ߬ߥߍߕ ߘߌ߬ߣߊߙ + ߞߎ߬ߥߍߕ ߘߌ߬ߣߊߙ + ߞߥߘ + + + ߞߊߦߌߡߊ߲߫ ߌߛߑߟߊ߲ߘ ߘߟߊ + ߞߊߦߌߡߊ߲߫ ߌߛߑߟߊ߲ߘ ߘߟߊ + ߞߌߘ + + + ߞߗ߭ߊߞߌߛߑߕߊ߲߫ ߕߊ߲ߖ߭ + ߞߗ߭ߊߞߌߛߑߕߊ߲߫ ߕߊ߲ߖ߭ + ߞߗ߭ߕ + + + ߟߊߏߕߌ߫ ߞߌߔ + ߟߊߏߕߌ߫ ߞߌߔ + ߟߊߞ + + + ߟߌߓߊ߲߫ ߔߐߣߌ߬ + ߟߌߓߊ߲߫ ߔߐߣߌ߬ + ߟߓ£ + + + ߛߙߌ߫ ߟߊ߲ߞߊ߫ ߙߎߔߌ + ߛߙߌ߫ ߟߊ߲ߞߊ߫ ߙߎߔߌ + ߟߞߙ + ߟߌߓߋߙߌߦߞߊ ߟߎ߬ ߟߊ߫ ߘߏߟߊߙ ߟ߾ @@ -1331,6 +3680,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic ߡߊ߬ߙߐ߬ߞߎߞߊ ߟߎ߬ ߟߊ߫ ߝߊߙߊ߲ ߡߙߝ + + ߝߐߟߑߘߊߝ߭ߌ߫ ߟߋ߳ + ߝߐߟߑߘߊߝ߭ߌ߫ ߟߋ߳ + ߡߘߟ + ߡߘߊߜ߭ߊߛߑߞߊ߯ߙߌߞߊ ߟߎ߬ ߟߊ߫ ߊߙߌߦߊߙߌ ߡߘߙ @@ -1340,10 +3694,30 @@ CLDR data files are interpreted according to the LDML specification (http://unic ߡߘߊߜ߭ߊߑߞߊ߯ߙߌߞߊ ߟߎ߬ ߟߊ߫ ߝߊߙߊ߲ ߡߘߝ + + ߡߊߛߋߘߏߣߌ߫ ߘߋߣߊߙ + ߡߊߛߋߘߏߣߌ߫ ߘߋߣߊߙ + ߡߞߘ + ߡߊߟߌߞߊ ߟߎ߬ ߟߊ߫ ߝߊߙߊ߲ ߡߝ + + ߡߌߦߊ߲ߡߊߙ ߞߌߦߊߕ + ߡߌߦߊ߲ߡߊߙ ߞߌߦߊߕ + ߡߡߞ + + + ߡߐ߲ߜ߭ߐߟߌ߫ ߕߎߜ߭ߙߌߞ + ߡߐ߲ߜ߭ߐߟߌ߫ ߕߎߜ߭ߙߌߞ + ߡߣߕ + + + ߡߞߊߥߏ߫ ߔߕߊߞߊ߫ + ߡߞߊߥߏ߫ ߔߕߊߞߊ߫ + ߡߏߔ + ߡߏߙߌߕߊߣߌߞߊ ߟߎ߬ ߟߊ߫ ߎ߬ߜ߭ߌߦߊ ( ߁߉߇߃–߂߀߁߇ ) ߡߙߏ @@ -1357,10 +3731,25 @@ CLDR data files are interpreted according to the LDML specification (http://unic ߡߙߔ ߙߛ + + ߡߊߟߑߘߝ߭ߌ߫ ߙߎߝߌߦߊ + ߡߊߟߑߘߝ߭ߌ߫ ߙߎߝߌߦߊ + ߡߝ߭ߙ + ߡߟߊߥߌߞߊ ߟߎ߬ ߟߊ߫ ߞߎߥߛߊ ߡߟߞ + + ߡߍߞߑߛߌߞ ߔߋߛߏ + ߡߍߞߑߛߌߞ ߔߋߛߏ + ߡߞ$ + + + ߡߊߟߍߘߎ߯ ߙߌ߲ߖ߭ߌ + ߡߊߟߍߘߎ߯ ߙߌ߲ߖ߭ߌ + ߡߦߙ + ߡߏߖ߭ߊ߲ߓߞߌߞߊ ߟߎ߬ ߟߊ߫ ߍߛߑߞߎߘߏߛ ߡߖ߭ߋ @@ -1382,15 +3771,104 @@ CLDR data files are interpreted according to the LDML specification (http://unic ߖߋ߬ߟߌ߬ߓߊ߬ߞߊ ߟߎ߬ ߟߊ߫ ߣߍߙߊ ߖߣ + + ߣߌߞߙߊߜ߭ߎߥߊ߫ ߞߐߙߑߘߏߓߊ߫ ߏߙߏ߫ + ߣߌߞߙߊߜ߭ߎߥߊ߫ ߞߐߙߑߘߏߓߊ߫ ߏߙߏ߫ + ߣߌߏ + + + ߣߐߙߑߝ߭ߍߛ ߞߎߙߐߣ + ߣߐߙߑߝ߭ߍߛ ߞߎߙߐߣ + ߣߐߞ + + + ߣߋߔߊߟ ߙߎߔߌ + ߣߋߔߊߟ ߙߎߔߌ + ߣߔߙ + + + ߣߌߦߎߖ߭ߌߟߊ߲ߘߌ߫ ߘߟߊ + ߣߌߦߎߖ߭ߌߟߊ߲ߘߌ߫ ߘߟߊ + $ߣߖ߭ + + + ߏߡߊߣ ߙߌ߬ߦߊߟ + ߏߡߊߣ ߙߌ߬ߦߊߟ + ߏߡߙ + + + ߔߣߊߡߊ߫ ߓߊߟߑߓߏߥߊ߫ + ߔߣߊߡߊ߫ ߓߊߟߑߓߏߥߊ߫ + ߔߊߓ + + + ߔߋߙߎ߫ ߛߐߟ + ߔߋߙߎ߫ ߛߐߟ + ߔߋߛ + + + ߔߊߔߎߥߊ߫ ߖߌ߬ߣߍ߬ ߞߎߘߊ߫ ߞߌߣߊ + ߔߊߔߎߥߊ߫ ߖߌ߬ߣߍ߬ ߞߎߘߊ߫ ߞߌߣߊ + ߔߖߞ + + + ߝߟߌߔߌߣ ߔߋߛߏ + ߝߟߌߔߌߣ ߔߋߛߏ + + + ߔߊߞߌߛߑߕߊ߲߫ ߙߎߔߌ + ߔߊߞߌߛߑߕߊ߲߫ ߙߎߔߌ + ߔߞߙ + + + ߔߏߟߐߢ ߗ߭ߑߟߏߕߌ߫ + ߔߏߟߐߢ ߗ߭ߑߟߏߕߌ߫ + ߔߟߗ߭ + + + ߔߙߊߜ߭ߏߦߋ߫ ߜ߭ߎߙߊߣߊߛ + ߔߙߊߜ߭ߏߦߋ߫ ߜ߭ߎߙߊߣߊߛ + ߔߙߜ߭ + + + ߞߕߊߙ ߙߌ߬ߦߊߟ + ߞߕߊߙ ߙߌ߬ߦߊߟ + ߞߊߙ + ߖ߭ߌ߲ߓߊߓߏߦߋߞߊ ߟߎ߬ ߟߊ߫ ߘߏߟߊ߯ߙ ߖ߭ߓߘ + + ߙߎߡߊߣߌ߫ ߟߋ߳ + ߙߎߡߊߣߌ߫ ߟߋ߳ + ߙߎߟ + + + ߛߍߙߑߓߌ߫ ߘߋߣߊߙ + ߛߍߙߑߓߌ߫ ߘߋߣߊߙ + ߙߛߘ + + + ߌ߬ߙߌ߬ߛߌ߫ ߙߎߓߎߟ + ߌ߬ߙߌ߬ߛߌ߫ ߙߎߓߎߟ + ߌߎߙ + ߙߎߥߊ߲ߘߞߊ ߟߎ߬ ߟߊ߫ ߝߊߙߊ߲ ߙߥߝ ߝߙ + + ߛߎ߰ߘߎ߬ߟߊ߫ ߙߌ߬ߦߊߟ + ߛߎ߰ߘߎ߬ߟߊ߫ ߙߌ߬ߦߊߟ + ߛߊߙ + + + ߛߟߏ߬ߡߣߊ߬ ߕߌ߲ ߠߎ߬ ߘߟߊ + ߛߟߏ߬ߡߣߊ߬ ߕߌ߲ ߠߎ߬ ߘߟߊ + ߛߓߘ + ߛߋߦߌߛߍߟߌߞߊ ߟߎ߬ ߟߊ߫ ߙߎߔߌ ߛߛߥ @@ -1407,6 +3885,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic ߛߎ߬ߘ߲ߊ߬ߞߊ ߟߊ߫ ߔߐߣߌ߬ ( ߁߉߅߆–߂߀߀߇ ) ߛߘߔ + + ߛߎߥߍߘ ߞߎߙߐߣ + ߛߎߥߍߘ ߞߎߙߐߣ + ߛߥߞ + + + ߛߍ߲ߜ߭ߊߔߎߙ ߘߟߊ + ߛߍ߲ߜ߭ߊߔߎߙ ߘߟߊ + ߛߜ߭ߘ + ߛߍ߲ߕ ߤߌߟߋߣߞߊ ߟߎ߬ ߟߊ߫ ߔߐߣߌ߬ ߛߤߔ @@ -1417,11 +3905,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic ߛߙߊ߬ߟߏ߲߬ߞߊ ߟߎ߬ ߟߊ߫ ߔߐߣߌ߬ - 1964-2022 + ߛߟߟ ߛߏߡߊߟߌߞߊ ߟߎ߬ ߟߊ߫ ߛߌߟߌ߲ߜ߭ ߛߡߛ + + ߛߎߙߌߣߊߡߍߛ ߘߟߊ + ߛߎߙߌߣߊߡߍߛ ߘߟߊ + ߛߎߘ + ߛߎ߬ߘߊ߲߬ߞߊ ߟߎ߬ ߟߊ߫ ߔߐߣߌ߬ ߛߛߔ @@ -1435,18 +3929,64 @@ CLDR data files are interpreted according to the LDML specification (http://unic ߛߔߘ ߛߓ + + ߛߌ߯ߙߌ߫ ߔߐߣߌ߬ + ߛߌ߯ߙߌ߫ ߔߐߣߌ߬ + ߛߌߔ + ߛߑߥߊߕߣߞߊ ߟߎ߬ ߟߌߟߊ߲ߖ߭ߋߣߌߛ ߛߖ߭ߟ + + ߕߊߦߌߘߎ߯ ߓߊߘ + ߕߊߦߌߘߎ߯ ߓߊߘ + ߕߘߓ + + + ߕߊߖߞߌߛߑߕߊ߲߫ ߛߡߏߣߌ + ߕߊߖߞߌߛߑߕߊ߲߫ ߛߡߏߣߌ + ߕߖߛ + + + ߕߎߙߑߞߌߡߋߣߌߛߑߕߊ߲߫ ߡߣߊ߫ ߞߎߘߊ + ߕߎߙߑߞߌߡߋߣߌߛߑߕߊ߲߫ ߡߣߊ߫ ߞߎߘߊ + ߕߡߕ + ߕߎߣߛߌߞߊ ߟߎ߬ ߟߊ߫ ߘߌ߬ߣߊ߯ߙ ߕߣߘ + + ߕߏ߲ߜ߭ߊ߲߫ ߓߊ߲ߜ߭ߊ߫ + ߕߏ߲ߜ߭ߊ߲߫ ߓߊ߲ߜ߭ߊ߫ + ߕߏߔ + + + ߕߎߙߑߞߌ߫ ߟߌߙߊ߬ + ߕߎߙߑߞߌ߫ ߟߌߙߊ߬ + ߕߎߟ + ߟߕ + + + ߕߙߌߘߊߘ ߣߌ߫ ߕߏߓߊߜ߭ߏ߫ ߘߟߊ + ߕߙߌߘߊߘ ߣߌ߫ ߕߏߓߊߜ߭ߏ߫ ߘߟߊ + ߕߕߘ + + + ߕߊߦߌߥߊ߲߫ ߘߟߊ߫ ߞߎߘߊ + ߕߊߦߌߥߊ߲߫ ߘߟߊ߫ ߞߎߘߊ + ߕߥߘ + ߕߊ߲ߖ߭ߊ߯ߣߌߞߊ ߟߎ߬ ߟߊ߫ ߛߌߟߌ߲ߜ߭ ߕߖ߭ߛ + + ߌߞߑߙߍߣ ߤߙߌߝ߭ߣߌߦߊߛ + ߌߞߑߙߍߣ ߤߙߌߝ߭ߣߌߦߊߛ + ߌߞߤ + ߎߜ߭ߊ߲ߘߞߊ ߟߎ߬ ߟߊ߫ ߛߌߟߌ߲ߜ߭ ( ߁߉߆߆–߁߉߈߇ ) ߎߜ߭ߥ @@ -1455,14 +3995,67 @@ CLDR data files are interpreted according to the LDML specification (http://unic ߎߜ߭ߊ߲ߘߞߊ ߟߎ߬ ߟߊ߫ ߛߌߟߌ߲ߜ߭ ߎߜ߭ߛ + + ߊߡߋߙߌߞߌ߬߬ ߞߊ߬ߝߏ߫ ߘߍ߬ߣߍ߲ ߘߟߊ + ߊߡߋߙߌߞߌ߬߬ ߞߊ߬ߝߏ߫ ߘߍ߬ߣߍ߲ ߘߟߊ + ߊߞߘ$ + + + ߎ߳ߜ߭ߋߦߌ߫ ߔߋߛߏ + ߎ߳ߜ߭ߋߦߌ߫ ߔߋߛߏ + ߎ߳ߔ + + + ߎߗ߭ߑߓߋߞߌߛߑߕߊ߲߫ ߛߎߡ + ߎߗ߭ߑߓߋߞߌߛߑߕߊ߲߫ ߛߎߡ + ߎߗ߭ߛ + + + ߝ߭ߣߋߗ߭ߎߦߋߟߊ߫ ߓߏߟߌߝ߭ߊߙ + ߝ߭ߣߋߗ߭ߎߦߋߟߊ߫ ߓߏߟߌߝ߭ߊߙ + ߝ߭ߋߓ + + + ߝ߭ߌߦߍߕߑߣߊߡ ߘߐ߲ߜ߭ + ߝ߭ߌߦߍߕߑߣߊߡ ߘߐ߲ߜ߭ + + + ߝ߭ߊߣߎߦߊߕߎ߫ ߝ߭ߊߕߎ + ߝ߭ߊߣߎߦߊߕߎ߫ ߝ߭ߊߕߎ + ߝ߭ߕߝ߭ + + + ߛߊߡߏߥߊ߲߫ ߕߟߊ + ߛߊߡߏߥߊ߲߫ ߕߟߊ + $ߥߛ + ߝߘߊ߬ߝߌ߲߬ߠߊ߫ ߕߊ߲ߓߊ߲ ߠߎ߬ ߝߊߙߊ߲߫ ߛߍߝߊ ߝߛߝ + + ߛߍߕ ߟߎߛߌߦߊ߫ + ߛߍߕ ߟߎߛߌߦߊ߫ + ߛߟߘ + ߝߊߙߊ߲߫ ߛߍߝߊ ߾ + + ߝߑߙߊ߲߫ ߛߍߝߊ + ߝߑߙߊ߲߫ ߛߍߝߊ + ߾ ߝߛߝ + + + ߝߊ߬ߘߊ߲߬ߞߊ߫ ߟߐ߲ߓߊߟߌ + ߝߊ߬ߘߊ߲߬ߞߊ߫ ߟߐ߲ߓߊߟߌ + + + ߦߡߊߣߌ߲߫ ߙߌ߬ߦߊߟ + ߦߡߊߣߌ߲߫ ߙߌ߬ߦߊߟ + ߦߡߙ + ߥߙߏ߬ߘߎ߮ ߝߘߊ߬ߝߌ߲߬ߠߞߊ ߟߎ߬ ߟߊ߫ ߙߊ߲ߘ ߥߝߙ diff --git a/make/data/cldr/common/main/nso.xml b/make/data/cldr/common/main/nso.xml index 2861eaab685..630aa9ecd8f 100644 --- a/make/data/cldr/common/main/nso.xml +++ b/make/data/cldr/common/main/nso.xml @@ -12,11 +12,23 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Sesotho sa Leboa + Seisimane + Sesotho sa Leboa + + + Afrika Borwa + + Metriki + + + Polelo: {0} + Mongwalo: {0} + Tikologo: {0} + [a b d e ê f g h i j k l m n o ô p r s š t u w x y] @@ -24,10 +36,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic [A B C D E F G H I J K L M N O P Q R S T U V W X Y Z] - - - - + + + + @@ -39,28 +51,28 @@ CLDR data files are interpreted according to the LDML specification (http://unic Dibo Hlak Mora - Mopi - Phupu + Mei + June Mose - Phato + Agosetose Lewe Dipha Diba Manth - Pherekgong - Dibokwane - Hlakola - Moranang - Mopitlo - Phupu - Mosegemanye - Phato - Lewedi - Diphalane - Dibatsela - Manthole + Janeware + Febereware + Matšhe + Aporele + Mei + June + Julae + Agosetose + Setemere + Oktobore + Nofemere + Disemere @@ -93,7 +105,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Lamorena - Musopologo + Mošupologo Labobedi Laboraro Labone @@ -285,6 +297,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + + Nako Palogare ya Greenwich + + + diff --git a/make/data/cldr/common/main/oc.xml b/make/data/cldr/common/main/oc.xml index 9112d362b15..ad78fdf64a5 100644 --- a/make/data/cldr/common/main/oc.xml +++ b/make/data/cldr/common/main/oc.xml @@ -761,7 +761,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - d/MM/yy + dd/MM/yy yyMMd @@ -775,13 +775,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic - H'h'mm:ss z + HH:mm:ss z Hmmssz - H'h'mm:ss + HH:mm:ss Hmmss @@ -807,18 +807,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic {1}, {0} + + {1} 'a' {0} + {1}, {0} + + {1} 'a' {0} + h'h' B h'h'mm B - h'h'mm:ss B E h'h'mm B - E h'h'mm:ss B ccc d E h'h'mm a E HH'h'mm @@ -973,7 +977,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic MMM y – MMM y - d – d MMM y + MMM d – d 'de' y d MMM – d MMM 'de' y d LLL 'de' y – d LLL 'de' y @@ -1420,13 +1424,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ora d’estiu de China - - - ora de Choibalsan - ora estandarda de Choibalsan - ora d’estiu de Choibalsan - - ora de l’illa de Nadau diff --git a/make/data/cldr/common/main/oc_ES.xml b/make/data/cldr/common/main/oc_ES.xml index 98fc4cca45e..13df9cb8a5a 100644 --- a/make/data/cldr/common/main/oc_ES.xml +++ b/make/data/cldr/common/main/oc_ES.xml @@ -241,7 +241,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic … {0} [''’ ՚ ᾽᾿ ʼ ߴ] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -595,7 +595,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - d/MM/yy + dd/MM/yy @@ -1431,13 +1431,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ora d’estiu de China - - - ora de Choibalsan - ora estandard de Choibalsan - ora d’estiu de Choibalsan - - ora dera isla de Nadau diff --git a/make/data/cldr/common/main/om.xml b/make/data/cldr/common/main/om.xml index 673379b1e8a..56921842657 100644 --- a/make/data/cldr/common/main/om.xml +++ b/make/data/cldr/common/main/om.xml @@ -13,25 +13,50 @@ CLDR data files are interpreted according to the LDML specification (http://unic Afrikoota - Afaan Sidaamaa + Afaan Amaaraa Arabiffaa + Arabiffa Istaandaardii Ammayyaa + Assamese + Astuuriyaan Afaan Azerbaijani + Afaan Azeerii Afaan Belarusia Afaan Bulgariya + Haryanvi + Bihoojpuurii + Anii Afaan Baangladeshi + Bireetoon + Bodo Afaan Bosniyaa Afaan Katalaa + Kubuwanoo + Cherokee Afaan Czech + Chuvash Welishiffaa Afaan Deenmaark Afaan Jarmanii + Jarmanii Awustiriyaa + Jarmanii Siwiiz Haay + Dogri Afaan Giriiki - Ingliffa + Afaan Ingilizii + Ingiliffa Awustiraaliyaa + Ingiliffa Kanaadaa + Ingliffa Biritishii + Ingliffa UK + Ingliffa Ameekiraa + Ingliffa US Afaan Esperantoo Afaan Ispeen + Laatinii Ispaanishii Ameerikaa + Ispaanishii Awurooppaa + Ispaanishii Meeksiikoo Afaan Istooniya Afaan Baskuu Afaan Persia + Fula Afaan Fiilaandi Afaan Filippinii Afaan Faroese @@ -42,10 +67,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic Afaan Galishii Afaan Guarani Afaan Gujarati + Hawusaa Afaan Hebrew Afaan Hindii + Hindii (Laatiin) + Hinglishii Afaan Croatian Afaan Hangaari + Armeeniyaa Interlingua Afaan Indoneziya Ayiislandiffaa @@ -63,8 +92,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic Afaan Maratii Malaayiffaa Afaan Maltesii + Burmeesee Afaan Nepalii Afaan Dachii + Flemish Afaan Norwegian Afaan Norweyii Afaan Occit @@ -92,37 +123,438 @@ CLDR data files are interpreted according to the LDML specification (http://unic Afaan Kilingon Afaan Turkii Afaan Ukreenii + Afaan hin beekamne Afaan Urdu Afaan Uzbek Afaan Veetinam Afaan Xhosa + Kantonoosee + Chaayinisee Kantonoosee Chinese + Chinese Mandariin + Chinese Salphifame + Mandariinii Chinese Salphifame + Chinese Durii + Mandariinii Chinese Durii Afaan Zuulu - + + + + + + + + + + + - Brazil - China - Germany + addunyaa + Afrikaa + Ameerikaa Kaabaa + Ameerikaa Kibbaa + Oshiiniyaa + Afrikaa Dhihaa + Ameerikaa Gidduugaleessaa + Afrikaa Bahaa + Afrikaa Kabaa + Afrikaa Gidduugaleessaa + Kibba Afrikaa + Ameerikaa + Ameerikaa Kaaba + Kariibiyaan + Eeshiyaa Bahaa + Eeshiyaa Kibbaa + Kibba baha Eeshiyaa + Awurooppaa Kibbaa + Awustiralashiyaa + Melaaneeshiyaa + Naannoo Maleeshiyaa + Poolineeshiyaa + Eeshiyaa + Eeshiyaa Gidduugaleessaa + Eeshiyaa Dhihaa + Awurooppaa + Awurooppaa Bahaa + Awurooppaa Kaabaa + Awurooppaa Dhihaa + Afrikaa Sahaaraan Gadii + Laatin Ameerikaa + Odola Asenshiin + Andooraa + Yuunaatid Arab Emereet + Afgaanistaan + Antiiguyaa fi Barbuudaa + Anguyilaa + Albaaniyaa + Armeeniyaa + Angoolaa + Antaarkitikaa + Arjentiinaa + Saamowa Ameerikaa + Awustiriyaa + Awustiraaliyaa + Arubaa + Odoloota Alaand + Azerbaajiyaan + Bosiiniyaa fi Herzoogovinaa + Barbaaros + Banglaadish + Beeljiyeem + Burkiinaa Faasoo + Bulgaariyaa + Baahireen + Burundii + Beenii + St. Barzeleemii + Beermudaa + Biruniyee + Boliiviyaa + Neezerlaandota Kariibaan + Biraazil + Bahaamas + Bihuutan + Odola Bowuvet + Botosowaanaa + Beelaarus + Belize + Kanaadaa + Odoloota Kokos (Keeliing) + Koongoo - Kinshaasaa + Koongoo (DRC) + Rippaablika Afrikaa Gidduugaleessaa + Koongoo - Biraazaavil + Koongoo (Rippaabilik) + Siwizerlaand + Koti divoor + Ayivoorii Koost + Odoloota Kuuk + Chiilii + Kaameruun + Chaayinaa + Kolombiyaa + Odola Kilippertoo + Kostaa Rikaa + Kuubaa + Keeppi Vaardee + Kurakowaa + Odola Kirismaas + Qoophiroos + Cheechiya + Cheek Rippaablik + Jarmanii + Diyeegoo Gaarshiyaa + Jibuutii + Deenmaark + Dominiikaa + Dominikaa Rippaabilik + Aljeeriyaa + Kewuta fi Mililaa + Ekuwaador + Istooniyaa + Missir + Sahaaraa Dhihaa + Eertiraa + Ispeen Itoophiyaa - France + Gamtaa Awurooppaa + Zooniiyuuroo + Fiinlaand + Fiijii + Odoloota Faalklaand + Odoloota Faalklaand (Islaas Malviinas) + Maayikirooneeshiyaa + Odoloota Fafo’ee + Faransaay + Gaaboon United Kingdom - India - Italy - Japan + UK + Girinaada + Joorjiyaa + Faransaay Guyiinaa + Guwernisey + Gaanaa + Gibraaltar + Giriinlaand + Gaambiyaa + Giinii + Gowadelowape + Ikkuwaatooriyaal Giinii + Giriik + Joorjikaa Kibba fi Odoloota Saanduwiich Kibbaa + Guwaatimaalaa + Guwama + Giinii-Bisaawoo + Guyaanaa + Hoong Koong SAR Chaayinaa + Hoong Koong + Odoloota Herdii fi MaakDoonaald + Hondurus + Kirooshiyaa + Haayitii + Hangaarii + Odoloota Kanaarii + Indooneeshiyaa + Ayeerlaand + Israa’eel + Islee oof Maan + Hindii + Daangaa Galaana Hindii Biritish + Chagos Arkipeloog + Iraaq + Iraan + Ayeslaand + Xaaliyaan + Jeersii + Jamaayikaa + Jirdaan + Jaappaan Keeniyaa - Russia - United States + Kiyirigiyizistan + Kamboodiyaa + Kiribaatii + Komoroos + St. Kiitis fi Neevis + Kooriyaa Kaaba + Kooriyaa Kibbaa + Kuweet + Odoloota Saaymaan + Kazakistaan + Laa’oos + Libaanoon + St. Suusiyaa + Lichistensteyin + Siri Laankaa + Laayibeeriyaa + Leseettoo + Lutaaniyaa + Luksembarg + Lativiyaa + Liibiyaa + Morookoo + Moonaakoo + Moldoovaa + Montenegiroo + St. Martiin + Madagaaskaar + Odoloota Maarshaal + Maqdooniyaa Kaabaa + Maalii + Maayinaamar (Burma) + Mongoliyaa + Maka’oo SAR Chaayinaa + Maka’oo + Odola Maariyaanaa Kaabaa + Martinikuwee + Mawuritaaniyaa + Montiseerat + Maaltaa + Moorishiyees + Maaldiivs + Maalaawwii + Meeksiikoo + Maleeshiyaa + Moozaambik + Namiibiyaa + Neewu Kaaleedoniyaa + Niijer + Odola Noorfoolk + Naayijeeriyaa + Nikaraguwaa + Neezerlaand + Noorwey + Neeppal + Naawuruu + Niwu’e + Neewu Zilaand + Awoteyarowa Neewu Zilaand + Omaan + Paanamaa + Peeruu + Polineeshiyaa Faransaay + Papuwa Neawu Giinii + Filippiins + Paakistaan + Poolaand + Ql. Piyeeree fi Mikuyelon + Odoloota Pitikaayirin + Poortaar Riikoo + Daangaawwan Paalestaayin + Paalestaayin + Poorchugaal + Palaawu + Paaraguwaay + Kuwaatar + Ooshiiniyaa Alaa + Riyuuniyeen + Roomaaniyaa + Serbiyaa + Raashiyaa + Ruwwandaa + Saawud Arabiyaa + Odoloota Solomoon + Siisheels + Sudaan + Siwiidin + Singaapoor + St. Helenaa + Islooveeniyaa + Isvaalbaard fi Jan Mayeen + Isloovaakiyaa + Seeraaliyoon + Saan Mariinoo + Senegaal + Somaaliyaa + Suriname + Sudaan Kibbaa + Sa’oo Toomee fi Prinsippee + El Salvaadoor + Siint Maarteen + Sooriyaa + Iswaatinii + Siwaazilaand + Tiristaan da Kanhaa + Turkis fi Odoloota Kaayikos + Chaad + Daangaawwan Kibbaa Faransaay + Toogoo + Taayilaand + Tajikistaan + Tokelau + Tiimoor-Leestee + Tiimoor Bahaa + Turkimenistaan + Tuniiziyaa + Tonga + Tarkiye + Turkii + Tirinidan fi Tobaagoo + Tuvalu + Taayiwwan + Taanzaaniyaa + Yuukireen + Ugaandaa + U.S. Odoloota Alaa + Mootummoota Gamtooman + Yiinaayitid Isteet + US + Yuraagaay + Uzbeekistaan + Vaatikaan Siitii + St. Vinseet fi Gireenadines + Veenzuweelaa + Odoloota Varjiin Biritish + U.S. Odoloota Varjiin + Veetinaam + Vanuwaatu + Waalis fi Futtuuna + Saamowa + Loqoda Sobaa + Biidii Sobaa + Kosoovoo + Yemen + Maayootee + Afrikaa Kibbaa + Zaambiyaa + Zimbaabuwee + Naannoo Hin Beekamne + + Dhaha Baraa Itoophiyaa + Dhaha Baraa Gorgooriyaa + Dhaba Baraa ISO-8601 + Ajaja Calallii Istaandaardii + Dijiitiiwwan Warra Dhihaa + + + Meetirikii + Inglizi + Ameerikaa + + + Afaan: {0} + Barreeffama: {0} + Naannoo: {0} + [a b c d e f g h i j k l m n o p q r s t u v w x y z] [A B C D E F G H I J K L M N O P Q R S T U V W X Y Z] + [\- ‐‑ – — , ; \: ! ? . … '‘’ "“” ( ) \[ \] @ * / # ′ ″] + + + + + Ful + Onk + Sad + Mud + Ama + Gur + Bit + Ebi + Cam + Wax + Ado + Hag + Qam + + + Fulbaana + Guraandhala + Sadaasa + Mudde + Amajji + Waxabajjii + Bitootessa + Eebila + Caamsaa + Onkoloolessa + Adoolessa + Hagayya + Qaam’ee + + + + + F + O + S + M + Am + G + B + E + C + W + Ad + H + Q + + + Fulbaana + Guraandhala + Sadaasa + Mudde + Amajji + Waxabajjii + Bitootessa + Eebila + Caamsaa + Onkoloolessa + Adoolessa + Hagayya + Qaam’ee + + + + @@ -132,31 +564,175 @@ CLDR data files are interpreted according to the LDML specification (http://unic - dd MMMM y G + MMMM d, y G GyMMMMdd - dd-MMM-y G + MMM d, y G GyMMMdd - dd/MM/yy GGGGG + M/d/y GGGGG GGGGGyyMMdd + + + {1}, {0} + + + {1} {0} 'tti' + + + + + {1}, {0} + + + {1} {0} 'tti' + + + + + {1}, {0} + + + {1}, {0} + + + + + {1}, {0} + + + {1}, {0} + + + y G + M/d/y GGGGG + MMM y G + MMM d, y G + E, MMM d, y G + M/d + E, M/d dd/MM + E, MMM d dd MMMM + y G MM/y MMMM y QQQ y + y G + M/y GGGGG + M/d/y GGGGG + E, M/d/y GGGGG + MMM y G + MMM d, y G + E, MMM d, y G + MMMM y G + QQQ y G + QQQQ y G + + + y G – y G + y – y G + + + M/y GGGGG – M/y GGGGG + M/y – M/y GGGGG + M/y – M/y GGGGG + + + M/d/y – M/d/y GGGGG + M/d/y GGGGG – M/d/y GGGGG + M/d/y – M/d/y GGGGG + M/d/y – M/d/y GGGGG + + + E, M/d/y – E, M/d/y GGGGG + E, M/d/y GGGGG – E, M/d/y GGGGG + E, M/d/y – E, M/d/y GGGGG + E, M/d/y – E, M/d/y GGGGG + + + MMM y G – MMM y G + MMM – MMM y G + MMM y – MMM y G + + + MMM d – d, y G + MMM d, y G – MMM d, y G + MMM d – MMM d, y G + MMM d, y – MMM d, y G + + + E, MMM d – E, MMM d, y G + E, MMM d, y G – E, MMM d, y G + E, MMM d – E, MMM d, y G + E, MMM d, y – E, MMM d, y G + + + M – M + + + M/d – M/d + M/d – M/d + + + E, M/d – E, M/d + E, M/d – E, M/d + + + MMM – MMM + + + E, MMM d – E, MMM d + E, MMM d – E, MMM d + + + y – y G + + + M/y – M/y GGGGG + M/y – M/y GGGGG + + + M/d/y – M/d/y GGGGG + M/d/y – M/d/y GGGGG + M/d/y – M/d/y GGGGG + + + E, M/d/y – E, M/d/y GGGGG + E, M/d/y – E, M/d/y GGGGG + E, M/d/y – E, M/d/y GGGGG + + + MMM – MMM y G + MMM y – MMM y G + + + MMM d – d, y G + MMM d – MMM d, y G + MMM d, y – MMM d, y G + + + E, MMM d – E, MMM d, y G + E, MMM d – E, MMM d, y G + E, MMM d, y – E, MMM d, y G + + + MMMM – MMMM y G + MMMM y – MMMM y G + + @@ -165,7 +741,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ama Gur - Bit + Bitootessa Elb Cam Wax @@ -173,38 +749,80 @@ CLDR data files are interpreted according to the LDML specification (http://unic Hag Ful Onk - Sad + Sadaasa Mud + + A + G + B + E + C + W + A + H + F + O + S + M + Amajjii Guraandhala - Bitooteessa - Elba - Caamsa + Bitootessa + Eebila + Caamsaa Waxabajjii - Adooleessa + Adoolessa Hagayya - Fuulbana - Onkololeessa + Fulbaana + Onkoloolessa Sadaasa - Muddee + Mudde + + Ama + Gur + Bitootessa + Elb + Cam + Wax + Ado + Hag + Ful + Onk + Sadaasa + Mud + - J - F - M - A - M - J - J - A - S + A + G + B + E + C + W + A + H + F O - N - D + S + M + + + Amajjii + Guraandhala + Bitootessa + Eebila + Caamsaa + Waxabajjii + Adoolessa + Hagayya + Fulbaana + Onkoloolessa + Sadaasa + Mudde @@ -213,7 +831,63 @@ CLDR data files are interpreted according to the LDML specification (http://unic Dil Wix - Qib + Kib + Rob + Kam + Jim + San + + + D + W + K + R + K + J + S + + + Dil + Wix + Kib + Rob + Kam + Jim + San + + + Dilbata + Wiixata + Kibxata + Roobii + Kamisa + Jimaata + Sanbata + + + + + Dil + Wix + Kib + Rob + Kam + Jim + San + + + D + W + K + R + K + J + S + + + Dil + Wix + Kib Rob Kam Jim @@ -222,9 +896,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Dilbata Wiixata - Qibxata + Kibxata Roobii - Kamiisa + Kamisa Jimaata Sanbata @@ -233,16 +907,30 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Q1 - Q2 - Q3 - Q4 + K1 + K2 + K3 + K4 - Kurmaana 1 - Kurmaana 2 - Kurmaana 3 - Kurmaana 4 + Kurmaana 1ffaa + Kurmaana 2ffaa + Kurmaana 3ffaa + Kurmaana 4ffaa + + + + + K1 + K2 + K3 + K4 + + + Kurmaana 1ffaa + Kurmaana 2ffaa + Kurmaana 3ffaa + Kurmaana 4ffaa @@ -256,8 +944,23 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Dheengadda Jeesu + Dhaloota Kiristoos Dura + Bara Waloo Dura + Bara Araaraa + Bara Waloo + + DhKD + BWD + BA + BW + + + Dh + BWD + B + BW + @@ -267,19 +970,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic - dd MMMM y + MMMM d, y yMMMMdd - dd-MMM-y + MMM d, y yMMMdd - dd/MM/yy + M/d/yy yyMMdd @@ -313,41 +1016,106 @@ CLDR data files are interpreted according to the LDML specification (http://unic - {1} {0} + {1}, {0} + + + {1} {0} 'tti' - {1} {0} + {1}, {0} + + + {1} {0} 'tti' - {1} {0} + {1}, {0} + + + {1}, {0} - {1} {0} + {1}, {0} + + + {1}, {0} E h:mm a E h:mm:ss a + MMM y G + MMM d, y G + E, MMM d, y G h a h:mm a h:mm:ss a h:mm:ss a v - h:mm a v + E, M/d dd/MM - dd MMMM + E, MMM d + MMMM dd + 'torbee' W 'kan' MMMM + 'torbee' W 'kan' MMMM + M/y + M/d/y + E, M/d/y MM/y + MMM y + MMM d, y + E, MMM d, y MMMM y QQQ y + QQQQ y + 'torbee' w 'kan' Y + 'torbee' w 'kan' Y + + y G – y G + y – y G + + + M/y G – M/y G + M/y – M/y G + M/y – M/y G + + + M/d/y – M/d/y G + M/d/y G – M/d/y G + M/d/y – M/d/y G + M/d/y – M/d/y G + + + E, M/d/y – E, M/d/y G + E, M/d/y G – E, M/d/y G + E, M/d/y – E, M/d/y G + E, M/d/y – E, M/d/y G + + + MMM y G – MMM y G + MMM – MMM y G + MMM y – MMM y G + + + MMM d – d, y G + MMM d, y G – MMM d, y G + MMM d – MMM d, y G + MMM d, y – MMM d, y G + + + E, MMM d – E, MMM d, y G + E, MMM d, y G – E, MMM d, y G + E, MMM d – E, MMM d, y G + E, MMM d, y – E, MMM d, y G + - h a – h a + h a – h a  h–h a @@ -364,59 +1132,1695 @@ CLDR data files are interpreted according to the LDML specification (http://unic h a – h a v h–h a v + + M – M + - MM-dd – MM-dd - MM-dd – MM-dd + M/d – M/d + M/d – M/d - MM-dd, E – MM-dd, E - MM-dd, E – MM-dd, E + E, M/d – E, M/d + E, M/d – E, M/d MMM d – MMM d MMM d, E – MMM d, E - MMM d, E – MMM d, E + E, MMM d – E, MMM d - y-MM – y-MM - y-MM – y-MM + M/y – M/y + M/y – M/y - y-MM-dd – y-MM-dd - y-MM-dd – y-MM-dd - y-MM-dd – y-MM-dd + M/d/y – M/d/y + M/d/y – M/d/y + M/d/y – M/d/y - y-MM-dd, E – y-MM-dd, E - y-MM-dd, E – y-MM-dd, E - y-MM-dd, E – y-MM-dd, E + E, M/d/y – E, M/d/y + E, M/d/y – E, M/d/y + E, M/d/y – E, M/d/y - y MMM – y MMM + MMM – MMM y + MMM y – MMM y - y MMM d – MMM d - y MMM d – y MMM d + MMM d – d, y + MMM d – MMM d, y + MMM d, y – MMM d, y - y MMM d, E – MMM d, E - y MMM d, E – MMM d, E - y MMM d, E – y MMM d, E + E, MMM d – E, MMM d, y + E, MMM d – E, MMM d, y + E, MMM d, y – E, MMM d, y - y MMMM – y MMMM + MMMM–MMMM y + MMMM y – MMMM y + + + bara + + + bara + + + bara + + + waggaa + waggaa darbe + waggaa kana + waggaa dhufu + + waggaa {0} keessatti + waggoota {0} keessatti + + + waggaa {0} dura + waggoota {0} dura + + + + wg. + wg. darbe + wg. kana + wg. dhufu + + wg. {0} keessatti + wg. {0} keessatti + + + wg. {0} dura + wg. {0} dura + + + + wg + wg. darbe + wg. kana + wg. dhufu + + w {0} keessatti + w {0} keessatti + + + w {0} dura + w {0} dura + + + + kurmaana + kurmaana darbe + kurmaana kana + kurmaana dhufu + + kurmaana {0} keessatti + kurmaanota {0} keessatti + + + kurmaana {0} darbe + kurmaanota {0} darban + + + + kr. + kr. darbe + kr. kana + kr. dhufu + + kr. {0} keessatti + kr. {0} keessatti + + + kr. {0} darbe + kr. {0} darbe + + + + kr + q darbe + q kana + q dhufu + + q {0} keessatti + q {0} keessatti + + + q {0} darbe + q {0} darbe + + + + ji’a + ji’a darbe + ji’a kana + ji’a dhufu + + ji’a {0} keessatti + ji’oota {0} keessatti + + + ji’a {0} darbe + ji’oota {0} darban + + + + ji. + ji. darbe + ji. kana + ji. dhufu + + ji. {0} keessatti + ji. {0} keessatti + + + ji. {0} darbe + ji. {0} darbe + + + + ji + ji. darbe + ji. kana + ji. dhufu + + ji {0} keessatti + ji {0} keessatti + + + ji {0} darbe + ji {0} darbe + + + + torbee + torbee darbe + torbee kana + torbee dhufu + + torbee {0} keessatti + torbanoota {0} keessatti + + + torbee {0} darbe + torbanoota {0} darban + + torban {0} + + + tr. + tr. darbe + tr. kana + tr. dhufu + + tr. {0} keessatti + tr. {0} keessatti + + + tr. {0} darbe + tr. {0} darbe + + torban {0} + + + tr + tr. darbe + tr. kana + tr. dhufu + + w {0} keessatti + w {0} keessatti + + + w {0} darbe + w {0} darbe + + torban {0} + + + torbrr ji’aa + + + tr. kan ji. + + + tr kan ji + + + guyyaa + kaleessa + har’a + boru + + guyyaa {0} keessatti + guyyoota {0} keessatti + + + guyyaa {0} darbe + guyyoota {0} darban + + + + guyyaa + kaleessa + har’a + boru + + guyyaa {0} keessatti + guyyoota {0} keessatti + + + guyyaa {0} darbe + guyyoota {0} darban + + + + guyyaa + kaleessa + har’a + boru + + g {0} keessatti + g {0} keessatti + + + g {0} darbe + g {0} darbe + + + + guyyaa waggaa + + + guyyaa kan wg. + + + guyyaa kan wg. + + + guyyaa kan torbee + + + guyyaa kan tr. + + + guyyaa kan tr. + + + guyyaatorbee kan ji’aa + + + gytr. kan ji. + + + gytr. kan ji. + + + Dilbata darbe + Dilbata kana + Dilbata dhufu + + Dilbata {0} keessatti + Dilbatoota {0} keessatti + + + Dilbata {0} darbe + Dilbatoota {0} darban + + + + Dil. darbe + Dil. kana + Dil. dhufu + + Dil. {0} keessatti + Dil. {0} keessatti + + + Dil. {0} darbe + Dil. {0} darbe + + + + Di darbe + Di kana + Di dhufu + + Dil {0} keessatti + Dil {0} keessatti + + + Dil {0} darbe + Dil {0} darbe + + + + Wiixata darbe + Wiixata kana + Wiixata dhufu + + Wiixata {0} keessatti + Wiixatoota {0} keessatti + + + Wiixata {0} darbe + Wiixatoota {0} darban + + + + Wix. darbe + Wix. kana + Wix. dhufu + + Wix. {0} keessatti + Wix. {0} keessatti + + + Wix. {0} darbe + Wix. {0} darbe + + + + W darbe + W kana + W dhufu + + W {0} keessatti + W {0} keessatti + + + W {0} darbe + W {0} darbe + + + + Kibxata darbe + Kibxata kana + Kibxata dhufu + + Kibxata {0} keessatti + Kibxatoota {0} keessatti + + + Kibxata {0} darbe + Kibxatoota {0} darban + + + + Kib. darbe + Kib. kana + Kib. dhufu + + Kin. {0} keessatti + Kin. {0} keessatti + + + Kin. {0} darbe + Kin. {0} darbe + + + + Ki darbe + Ki kana + Ki dhufu + + Ki {0} keessatti + Ki {0} keessatti + + + Ki {0} darbe + Ki {0} darbe + + + + Roobii darbe + Roobii kana + Roobii dhufu + + Roobii {0} keessatti + Roobiiwwan {0} keessatti + + + Roobii {0} dura + Roobiiwwan {0} dura + + + + Rob. darbe + Rob. kana + Rob. dhufu + + Rob. {0} keessatti + Rob. {0} keessatti + + + Rob. {0} darbe + Rob. {0} darbe + + + + R darbe + R kana + R dhufu + + R {0} keessatti + R {0} keessatti + + + R {0} darbe + R {0} darbe + + + + Kamisa darbe + Kamisa kana + Kamisa dhufu + + Kamisa {0} keessatti + Kamisoota {0} keessatti + + + Kamisa {0} darbe + Kamisoota {0} darban + + + + Kam. darbe + Kam. kana + Kam. dhufu + + Kam. {0} keessatti + Kam. {0} keessatti + + + Kam. {0} darbe + Kam. {0} darbe + + + + Ka darbe + Ka kana + Ka dhufu + + Ka {0} keessatti + Ka {0} keessatti + + + Ka {0} darbe + Ka {0} darbe + + + + Jimaata darbe + Jimaata kana + Jimaata dhufu + + Jimaata {0} keessatti + Jimaatota {0} keessatti + + + Jimaata {0} dura + Jimaatota {0} dura + + + + Jim. darbe + Jim. kana + Jim. dhufu + + Jim. {0} keessatti + Jim. {0} keessatti + + + Jim. {0} dura + Jim. {0} dura + + + + J darbe + J kana + J dhufu + + J {0} keessatti + J {0} keessatti + + + J {0} dura + J {0} dura + + + + Sanbata darbe + Sanbata kana + Sanbata dhufu + + Sanbata {0} keessatti + Sanbatoota {0} keessatti + + + Sanbata {0} dura + Sanbatoota {0} dura + + + + San. darbe + San. kana + San. dhufu + + San. {0} keessatti + San. {0} kkeessatti + + + San. {0} dura + San. {0} dura + + + + sa darbe + sa kana + sa dhufu + + sa {0} keessatti + sa {0} keessatti + + + sa {0} dura + sa {0} dura + + + + WD/WB + + + WD/WB + + + WD/WB + + + sa’aatii + sa’aatii kana + + sa’aatii {0} keessatti + sa’aatiiwwan {0} keessatti + + + sa’aatii {0} darbe + sa’aatiiwwan {0} darban + + + + sa. + sa’aatii kana + + sa. {0} keessatti + sa. {0} keessatti + + + sa. {0} darbe + sa. {0} darbe + + + + sa + sa’aatii kana + + h {0} keessatti + h {0} keessatti + + + h {0} darbe + h {0} darbe + + + + daqiiqaa + + daqiiqaa {0} keessatti + daqiiqaawwan {0} keessatti + + + daqiiqaa {0} darbe + daqiiqaawwan {0} darban + + + + dq. + daqiiqaa kana + + daq. {0} keessatti + daq. {0} keessatti + + + daq. {0} darbe + daq. {0} darbe + + + + dq + daqiiqaa kana + + d {0} keessatti + d {0} keessatti + + + d {0} darbe + d {0} darbe + + + + sekoondii + amma + + sekoondii {0} keessatti + sekoondiiwwan {0} keessatti + + + sekoondii {0} darbe + sekoondiiwwan {0} darban + + + + sek. + amma + + sek. {0} keessatti + sek. {0} keessatti + + + sek. {0} darbe + sek. {0} darbe + + + + sek + amma + + s {0} keessatti + s {0} keessatti + + + s {0} darbe + s {0} darbe + + + + zoonii yeroo + + + zoonii + + + zoonii + + + + Sa’aatii {0} + Sa’aatii Guyyaa {0} + Sa’aatii Istaandardii {0} + + + Sa’aatii Idil-Addunyaa Qindaa’e + + + + + Sa’aatii Bonaa Biritish + + + + + Sa’aatii Istaandaardii Aayiriish + + + + + Sa’aatii Afgaanistaan + + + + + Sa’aatii Afrikaa Gidduugaleessaa + + + + + Sa’aatii Baha Afrikaa + + + + + Sa’aatii Istaandaardii Afrikaa Kibbaa + + + + + Sa’aatii Afrikaa Dhihaa + Sa’aatii Istaandaardii Afrikaa Dhihaa + Sa’aatii Bonaa Afrikaa Dhihaa + + + + + Sa’aatii Alaaskaa + Sa’aatii Istaandaardii Alaaskaa + Sa’aatii Guyyaa Alaaskaa + + + AKT + AKST + AKDT + + + + + Sa’aatii Amazoon + Sa’aatii Istaandaardii Amazoon + Sa’aatii Bonaa Amazoon + + + + + Sa’aatii Gidduugaleessaa + Sa’aatii Istaandaardii Gidduugaleessaa + Sa’aatii Guyyaa Gidduugaleessaa + + + CT + CST + CDT + + + + + Sa’aatii Bahaa + Sa’aatii Istaandaardii Bahaa + Sa’aatii Guyyaa Bahaa + + + ET + EST + EDT + + + + + Sa’aatii Maawonteen + Sa’aatii Istaandaardii Maawonteen + Sa’aatii Guyyaa Maawonteen + + + MT + MST + MDT + + + + + Sa’aatii Paasfiik + Sa’aatii Istaandaardii Paasfiik + Sa’aatii Guyyaa Paasfiik + + + PT + PST + PDT + + + + + Sa’aatii Apia + Sa’aatii Istaandaardii Apia + Sa’aatii Guyyaa Apia + + + + + Sa’aatii Arabaa + Sa’aatii Istaandaardii Arabaa + Sa’aatii Guyyaa Arabaa + + + + + Sa’aatii Arjentiinaa + Sa’aatii Istaandaardii Arjentiinaa + Sa’aatii Bonaa Arjentiinaa + + + + + Sa’aatii Arjentiinaa Dhihaa + Sa’aatii Istaandaardii Arjentiinaa Dhihaa + Sa’aatii Bonaa Arjentiinaa Dhihaa + + + + + Sa’aatii Armaaniyaa + Sa’aatii Istaandaardii Armaaniyaa + Sa’aatii Bonaa Armaaniyaa + + + + + Sa’aatii Atilaantiik + Sa’aatii Istaandaardii Atilaantiik + Sa’aatii Guyyaa Atilaantiik + + + AT + AST + ADT + + + + + Sa’aatii Awustiraaliyaa Gidduugaleessaa + Sa’aatii Istaandaardii Awustiraaliyaa Gidduugaleessaa + Sa’aatii Guyyaa Awustiraaliyaa Gidduugaleessaa + + + + + Sa’aatii Dhiha Awustiraaliyaa Gidduugaleessaa + Sa’aatii Istaandaardii Dhiha Awustiraaliyaa Gidduugaleessaa + Sa’aatii Guyyaa Dhiha Awustiraaliyaa Gidduugaleessaa + + + + + Sa’aatii Awustiraaliyaa Bahaa + Sa’aatii Istaandaardii Awustiraaliyaa Bahaa + Sa’aatii Guyyaa Awustiraaliyaa Bahaa + + + + + Sa’aatii Awustiraaliyaa Dhihaa + Sa’aatii Sa’aatii Istaandaardii Awustiraaliyaa DhihaaDhiha Awustiraaliyaa + Sa’aatii Guuyyaa Awustiraaliyaa Dhihaa + + + + + Sa’aatii Azerbaajiyaan + Sa’aatii Istaandaardii Azerbaajiyaan + Sa’aatii Bonaa Azerbaajiyaan + + + + + Sa’aatii Azeeroos + Sa’aatii Istaandaardii Azeeroos + Sa’aatii Bonaa Azeeroos + + + + + Sa’aatii Baangilaadish + Sa’aatii Istaandaardii Baangilaadish + Sa’aatii Bonaa Baangilaadish + + + + + Sa’aatii Bihutaan + + + + + Sa’aatii Boliiviyaa + + + + + Sa’aatii Biraaziliyaa + Sa’aatii Istaandaardii Biraaziliyaa + Sa’aatii Bonaa Biraaziliyaa + + + + + Sa’aatii Bruunee Darusalaam + + + + + Sa’aatii Keep Veerdee + Sa’aatii Istaandaardii Keep Veerdee + Sa’aatii Bonaa Keep Veerdee + + + + + Sa’aatii Istaandaardii Kamoroo + + + + + Sa’aatii Chatham + Sa’aatii Istaandaardii Chatham + Sa’aatii Guyyaa Chatham + + + + + Sa’aatii Chiilii + Sa’aatii Istaandaardii Chiilii + Sa’aatii Bonaa Chiilii + + + + + Sa’aatii Chaayinaa + Sa’aatii Istaandaardii Chaayinaa + Sa’aatii Guyyaa Chaayinaa + + + + + Sa’aatii Odola Kirismaas + + + + + Sa’aatii Odoloota Kokos + + + + + Sa’aatii Kolombiyaa + Sa’aatii Istaandaardii Kolombiyaa + Sa’aatii Bonaa Kolombiyaa + + + + + Sa’aatii Odoloota Kuuk + Sa’aatii Istaandaardii Odoloota Kuuk + Sa’aatii Bona Walakkaa Odoloota Kuuk + + + + + Sa’aatii Kuubaa + Sa’aatii Istaandaardii Kuubaa + Sa’aatii Guyyaa Kuubaa + + + + + Sa’aatii Daaviis + + + + + Sa’aatii Dumont-d’Urville + + + + + Sa’aatii Tiimoor Bahaa + + + + + Sa’aatii Odola Bahaa + Sa’aatii Istaandaardii Odola Bahaa + Sa’aatii Bonaa Odola Bahaa + + + + + Sa’aatii Ikkuwaadoor + + + + + Sa’aatii Awurooppaa Gidduugaleessaa + Sa’aatii Istaandaardii Awurooppaa Gidduugaleessaa + Sa’aatii Bonaa Awurooppaa Gidduugaleessaa + + + + + Saaatii Awurooppaa Bahaa + Sa’aatii Istaandaardii Awurooppaa Bahaa + Sa’aatii Bonaa Awurooppaa Bahaa + + + + + Sa’aatii Awurooppaa Bahaa Dabalataa + + + + + Sa’aatii Awurooppaa Dhihaa + Sa’aatii Istaandaardii Awurooppaa Dhihaa + Sa’aatii Bonaa Awurooppaa Dhihaa + + + + + Sa’aatii Odoloota Faalklaand + Sa’aatii Istaandaardii Odoloota Faalklaand + Sa’aatii Bonaa Odoloota Faalklaand + + + + + Sa’aatii Fiijii + Sa’aatii Istaandaardii Fiijii + Sa’aatii Bonaa Fiijii + + + + + Sa’aatii Fireench Guyinaa + + + + + Sa’aatii Firaans Kibbaa fi Antaarktikaa + + + + + Sa’aatii Galaapagoos + + + + + Sa’aatii Gaambiyeer + + + + + Sa’aatii Joorjiyaa + Sa’aatii Istaandaardii Joorjiyaa + Sa’aatii Bonaa Joorjiyaa + + + + + Sa’aatii Odoloota Giilbert + + + + + Sa’aatii Giriinwiich Gidduugaleessaa + + + + + Sa’aatii Giriinlaand Bahaa + Sa’aatii Istaandaardii Giriinlaand Bahaa + Sa’aatii Bonaa Giriinlaand Bahaa + + + + + Sa’aatii Giriinlaand Dhihaa + Sa’aatii Istaandaardii Giriinlaand Dhihaa + Sa’aatii Bonaa Giriinlaand Dhihaa + + + + + Sa’aatii Istaandaardii Guwaam + + + + + Sa’aatii Istaandaardii Gaalfii + + + + + Sa’aatii Guyaanaa + + + + + Sa’aatii Haawayi-Alewutiyan + Sa’aatii Istaandaardii Haawayi-Alewutiyan + Sa’aatii Guyyaa Haawayi-Alewutiyan + + + HAT + HAS + HADT + + + + + Sa’aatii Hoong Koong + Sa’aatii Istaandaardii Hoong Koong + Sa’aatii Bonaa Hoong Koong + + + + + Sa’aatii Hoovd + Sa’aatii Istaandaardii Hoovd + Sa’aatii Bonaa Hoovd + + + + + Sa’aatii Istaandaardii Hindii + + + + + Sa’aatii Galaana Hindii + + + + + Sa’aatii IndooChaayinaa + + + + + Sa’aatii Indooneeshiyaa Gidduugaleessaa + + + + + Sa’aatii Indooneshiyaa Bahaa + + + + + Sa’aatii Indooneeshiyaa Dhihaa + + + + + Sa’aatii Iraan + Sa’aatii Istaandaardii Iraan + Sa’aatii Guyyaa Iraan + + + + + Sa’aatii Irkutsk + Sa’aatii Istaandaardii Irkutsk + Sa’aatii Bonaa Irkutsk + + + + + Sa’aatii Israa’eel + Sa’aatii Istaandaardii Israa’eel + Sa’aatii Guyyaa Israa’eel + + + + + Sa’aatii Jaappaan + Sa’aatii Istaandaardii Jaappaan + Sa’aatii Guyyaa Jaappaan + + + + + Sa’aatii Kaazaakistaan + + + + + Sa’aatii Kaazaakistaan Bahaa + + + + + Sa’aatii Kaazaakistaan Dhihaa + + + + + Sa’aatii Kooriyaa + Sa’aatii Istaandaardii Kooriyaa + Sa’aatii Guyyaa Kooriyaa + + + + + Sa’aatii Koosreyaa + + + + + Sa’aatii Krasnoyarsk + Sa’aatii Istaandaardii Krasnoyarsk + Sa’aatii Bonaa Krasnoyarsk + + + + + Sa’aatii Kiyirigiyistan + + + + + Sa’aatii Laankaa + + + + + Sa’aatii Odoloota Line + + + + + Sa’aatii Lord Howe + Sa’aatii Istaandaardii Lord Howe + Sa’aatii Guyyaa Lord Howe + + + + + Sa’aatii Magadan + Sa’aatii Istaandaardii Magadan + Sa’aatii Bonaa Magadan + + + + + Sa’aatii Maaleeshiyaa + + + + + Sa’aatii Maaldiivs + + + + + Sa’aatii Marquesas + + + + + Sa’aatii Odoloota Maarshaal + + + + + Sa’aatii Mooriishiyees + Sa’aatii Istaandaardii Moorishiyees + Sa’aatii Bonaa Moorishiyees + + + + + Sa’aatii Mawson + + + + + Sa’aatii Paasfiik Meksiikaan + Sa’aatii Istaandaardii Paasfiik Meksiikaan + Sa’aatii Guyyaa Paasfiik Meksiikaan + + + + + Sa’aatii Ulaanbaatar + Sa’aatii Istaandaardii Ulaanbaatar + Sa’aatii Bonaa Ulaanbaatar + + + + + Sa’aatii Mooskoo + Sa’aatii Istaandaardii Mooskoo + Sa’aatii Bonaa Mooskoo + + + + + Sa’aatii Maayinaamaar + + + + + Sa’aatii Naawuruu + + + + + Sa’aatii Neeppaal + + + + + Sa’aatii Kaaledooniyaa Haaraa + Sa’aatii Istaandaardii Kaaledooniyaa Haaraa + Sa’aatii Bonaa Kaaledooniyaa Haaraa + + + + + Sa’aatii New Zealand + Sa’aatii Istaandaardii New Zealand + Sa’aatii Guyyaa New Zealand + + + + + Sa’aatii Newufaawondlaand + Sa’aatii Istaandaardii Newufaawondlaand + Sa’aatii Guyyaa Newufaawondlaand + + + + + Sa’aatii Niue + + + + + Sa’aatii Norfolk Island + Sa’aatii Istaandaardii Norfolk Island + Sa’aatii Guyyaa Norfolk Island + + + + + Sa’aatii Fernando de Noronha + Sa’aatii Istaandaardii Fernando de Noronha + Sa’aatii Bonaa Fernando de Noronha + + + + + Sa’aatii Odoloota Maariyaanaa Kaabaa + + + + + Sa’aatii Novosibirisk + Sa’aatii Istaandaardii Novosibirisk + Sa’aatii Bonaa Novosibirisk + + + + + Sa’aatii Omsk + Sa’aatii Istaandaardii Omsk + Sa’aatii Bonaa Omsk + + + + + Sa’aatii Paakistaan + Sa’aatii Istaandaardii Paakistaan + Sa’aatii Bonaa Paakistaan + + + + + Sa’aatii Palawu + + + + + Sa’aatii Paapuwaa Giinii Haaraa + + + + + Sa’aatii Paaraaguwaayi + Sa’aatii Istaandaardii Paaraaguwaayi + Sa’aatii Bonaa Paaraaguwaayi + + + + + Sa’aatii Peeruu + Sa’aatii Istaandaardii Peeruu + Sa’aatii Bonaa Peeruu + + + + + Sa’aatii Filippiins + Sa’aatii Istaandaardii Filippiins + Sa’aatii Bonaa Filippiins + + + + + Sa’aatii Odoloota Fooneeks + + + + + Sa’aatii Ql. Piyeeree fi Mikuyelo + Sa’aatii Istaandaardii Ql. Piyeeree fi Mikuyelo + Sa’aatii Guyyaa Ql. Piyeeree fi Mikuyelo + + + + + Sa’aatii Pitcairn + + + + + Sa’aatii Ponape + + + + + Sa’aatii Piyoongyaang + + + + + Sa’aatii Riiyuuniyeen + + + + + Sa’aatii Rothera + + + + + Sa’aatii Sakhalin + Sa’aatii Istaandaardii Sakhalin + Sa’aatii Bonaa Sakhalin + + + + + Sa’aatii Saamowaa + Sa’aatii Istaandaardii Saamowaa + Sa’aatii Guyyaa Saamowaa + + + + + Sa’aatii Siisheels + + + + + Sa’aatii Istaandaardii Singaapoor + + + + + Sa’aatii Odoloota Solomoon + + + + + Sa’aatii Joorjiyaa Kibbaa + + + + + Sa’aatii Surinaame + + + + + Sa’aatii Syowa + + + + + Sa’aatii Tahiti + + + + + Sa’aatii Tayipeyi + Sa’aatii Istaandaardii Tayipeyi + Sa’aatii Guyyaa Tayipeyi + + + + + Sa’aatii Tajikistaan + + + + + Sa’aatii Takelawu + + + + + Sa’aatii Tonga + Sa’aatii Istaandaardii Tonga + Sa’aatii Bonaa Tonga + + + + + Sa’aatii Chuuk + + + + + Sa’aatii Turkemenistaan + Sa’aatii Istaandaardii Turkemenistaan + Sa’aatii Bonaa Turkemenistaan + + + + + Sa’aatii Tuvalu + + + + + Sa’aatii Yuraagaayi + Sa’aatii Istaandaardii Yuraagaayi + Sa’aatii Bonaa Yuraagaayi + + + + + Sa’aatii Uzbeekistaan + Sa’aatii Istaandaardii Uzbeekistaan + Sa’aatii Bonaa Uzbeekistaan + + + + + Sa’aatii Vanuwatu + Sa’aatii Istaandaardii Vanuwatu + Sa’aatii Bonaa Vanuwatu + + + + + Sa’aatii Veenzuweelaa + + + + + Sa’aatii Vladivostok + Sa’aatii Istaandaardii Vladivostok + Sa’aatii Bonaa Vladivostok + + + + + Sa’aatii Volgograd + Sa’aatii Istaandaardii Volgograd + Sa’aatii Bonaa Volgograd + + + + + Sa’aatii Vostok + + + + + Sa’aatii Odola Wake + + + + + Sa’aatii Wallis fi Futuna + + + + + Sa’aatii Yakutsk + Sa’aatii Istaandardii Yakutsk + Sa’aatii Bonaa Yakutsk + + + + + Sa’aatii Yekaterinburg + Sa’aatii Istaandaardii Yekaterinburg + Sa’aatii Bonaa Yekaterinburg + + + + + Sa’aatii Yuukoon + + + ethi + + + + Kuma 0 + kuma 0 + kuma 00 + kuma 00 + kuma 000 + kuma 000 + miiliyoona 0 + miiliyoona 0 + miiliyoona 00 + miiliyoona 00 + miiliyoona 000 + miiliyoona 000 + biiliyoona 0 + biiliyoona 0 + biiliyoona 00 + biiliyoona 00 + biiliyoona 000 + biiliyoona 000 + tiriiliyoona 0 + tiriiliyoona 0 + tiriiliyoona 00 + tiriiliyoona 00 + tiriiliyoona 000 + tiriiliyoona 000 + + + @@ -426,66 +2830,84 @@ CLDR data files are interpreted according to the LDML specification (http://unic - ¤0K + ¤0K ¤ 0K - ¤0K + ¤0K ¤ 0K - ¤00K + ¤00K ¤ 00K - ¤00K + ¤00K ¤ 00K - ¤000K + ¤000K ¤ 000K - ¤000K + ¤000K ¤ 000K - ¤0M + ¤0M ¤ 0M - ¤0M + ¤0M ¤ 0M - ¤00M + ¤00M ¤ 00M - ¤00M + ¤00M ¤ 00M - ¤000M + ¤000M ¤ 000M - ¤000M + ¤000M ¤ 000M - ¤0G + ¤0G ¤ 0G - ¤0G + ¤0G ¤ 0G - ¤00G + ¤00G ¤ 00G - ¤00G + ¤00G ¤ 00G - ¤000G + ¤000G ¤ 000G - ¤000G + ¤000G ¤ 000G - ¤0T + ¤0T ¤ 0T - ¤0T + ¤0T ¤ 0T - ¤00T + ¤00T ¤ 00T - ¤00T + ¤00T ¤ 00T - ¤000T + ¤000T ¤ 000T - ¤000T + ¤000T ¤ 000T - {0} {1} - {0} {1} + + Doolaara Beermudaa + Doolaara Beermudaa + Doolaarota Beermudaa + Brazilian Real + + Doolaara Beliizee + Doolaara Beliizee + Doolaarota Beliizee + + + Doolaara Kanaadaa + Doolaara Kanaadaa + Doolaarota Kanaadaa + Chinese Yuan Renminbi + + Koloonii Kostaa Rikaa + Koloonii Kostaa Rikaa + Koloonota Kostaa Rikaa + Itoophiyaa Birrii Br @@ -506,7 +2928,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Russian Ruble - US Dollar + Doolaara Ameerikaa + Doolaara Ameerikaa + Doolarota Ameerikaa diff --git a/make/data/cldr/common/main/om_KE.xml b/make/data/cldr/common/main/om_KE.xml index 5a9d5b20192..e9af9f89a91 100644 --- a/make/data/cldr/common/main/om_KE.xml +++ b/make/data/cldr/common/main/om_KE.xml @@ -14,24 +14,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - - - A - G - B - E - C - W - A - H - F - O - S - M - - - @@ -45,16 +27,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - - - K1 - K2 - K3 - K4 - - - KD diff --git a/make/data/cldr/common/main/or.xml b/make/data/cldr/common/main/or.xml index a5680dfbb82..ff7b8e643ca 100644 --- a/make/data/cldr/common/main/or.xml +++ b/make/data/cldr/common/main/or.xml @@ -35,7 +35,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଅବୋଲା ଅଁଗୀକା ଆରବିକ୍ - ଆଧୁନିକ ମାନାଙ୍କ ଆରବୀୟ + ଆଧୁନିକ ମାନକ ଆରବିକ୍‌ ଆରାମାଇକ୍ ମାପୁଚେ ଆରାପାହୋ @@ -65,6 +65,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ବିକୋଲ୍ ବିନି ସିକସିକା + ବ୍ଲୋ ବାମ୍ବାରା ବଙ୍ଗଳା ତିବ୍ବତୀୟ @@ -113,7 +114,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଚର୍ଚ୍ଚ ସ୍ଲାଭିକ୍ ଚୁଭାଶ୍ ୱେଲ୍ସ - ଡାନ୍ନିସ୍ + ଡାନିସ୍‌ ଡାକୋଟା ଡାରାଗ୍ୱା ତାଇତି @@ -150,7 +151,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଯୁକ୍ତରାଷ୍ଟ୍ର ଇଂରାଜୀ ମଧ୍ୟ ଇଁରାଜୀ ଏସ୍ପାରେଣ୍ଟୋ - ସ୍ପେନିୟ + ସ୍ପାନିସ୍‌ ଲାଟିନ୍‌ ଆମେରିକୀୟ ସ୍ପାନିସ୍‌ ୟୁରୋପୀୟ ସ୍ପାନିସ୍‌ ମେକ୍ସିକାନ ସ୍ପାନିସ୍‌ @@ -165,7 +166,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଫିନ୍ନିସ୍ ଫିଲିପିନୋ ଫିଜି - ଫାରୋଏସେ + ଫାରୋଇଜ୍‌ ଫନ୍ ଫରାସୀ କାନାଡିୟ ଫ୍ରେଞ୍ଚ @@ -177,14 +178,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ପୂର୍ବ ଫ୍ରିସିୟାନ୍ ଫ୍ରିୟୁଲୀୟାନ୍ ପାଶ୍ଚାତ୍ୟ ଫ୍ରିସିଆନ୍ - ଇରିସ୍ + ଆଇରିସ୍‌ ଗା ଗାୟୋ ଗବାୟା ସ୍କଟିସ୍ ଗାଏଲିକ୍ ଗୀଜ୍ ଜିବ୍ରାଟୀଜ୍ - ଗାଲସିଆନ୍ + ଗାଲିସିଆନ୍‌ ମିଡିଲ୍ ହାଇ ଜର୍ମାନ୍ ଗୁଆରାନୀ ପୁରୁଣା ହାଇ ଜର୍ମାନ୍ @@ -194,7 +195,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଗ୍ରେବୋ ପ୍ରାଚୀନ୍ ୟୁନାନୀ ସୁଇସ୍ ଜର୍ମାନ୍ - ଗୁଜୁରାଟୀ + ଗୁଜରାଟୀ ଗୁସି ମାଁକ୍ସ ଗୱିଚ’ଇନ୍ @@ -202,14 +203,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ହାଇଡା ହାୱାଇନ୍ ସାଉଥ୍ ହାଇଡା - ହେବ୍ର୍ୟୁ + ହିବ୍ରୁ ହିନ୍ଦୀ ହିଂଲିସ ହିଲିଗୈନନ୍ ହିତୀତେ ହଁଙ୍ଗ ହିରି ମୋଟୁ - କ୍ରୋଆଟିଆନ୍ + କ୍ରୋଏସୀୟ ଉପର ସର୍ବିଆନ୍ ହୈତାୟିନ୍ ହଙ୍ଗେରୀୟ @@ -238,8 +239,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ମାଚେମେ ଜୁଡେଓ-ପର୍ସିଆନ୍ ଜୁଡେଓ-ଆରବୀକ୍ - ଜାଭାନୀଜ୍ - ଜର୍ଜିୟ + ଜାଭାନିଜ୍‌ + ଜର୍ଜିଆନ୍‌ କାରା-କଲ୍ପକ୍ କବାଇଲ୍ କଚିନ୍ @@ -258,7 +259,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ କୋୟରା ଚିନି କୀକୁୟୁ କ୍ୱାନ୍ୟାମ୍ - କାଜାକ୍ + କାଜାଖ୍‌ କାକୋ କାଲାଲିସୁଟ୍ କାଲେନଜିନ୍ @@ -283,6 +284,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ କୋମି କୋର୍ନିସ୍ କ୍ଵାକୱାଲା + କୁୱି କୀରଗୀଜ୍ ଲାଟିନ୍ ଲାଦିନୋ @@ -293,8 +295,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଲେଜଗିୟାନ୍ ଗନ୍ଦା ଲିମ୍ବୁର୍ଗିସ୍ + ଲିଗୁରିଆନ୍‌ ଲିଲ୍ଲୁଏଟ ଲାକୋଟା + ଲୋମ୍ବାର୍ଡ୍‌ ଲିଙ୍ଗାଲା ଲାଓ ମଙ୍ଗୋ @@ -332,7 +336,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ମିନାଙ୍ଗାବାଉ ମାସେଡୋନିଆନ୍ ମାଲାୟଲମ୍ - ମଙ୍ଗୋଳିୟ + ମଙ୍ଗୋଲୀୟ ମାଞ୍ଚୁ ମଣିପୁରୀ ଇନ୍ନୁ-ଏମୁନ @@ -342,7 +346,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ମାଲୟ ମାଲଟୀଜ୍ ମୁନଡାଂ - ବିବିଧ ଭାଷାମାନ + ବିବିଧ ଭାଷା କ୍ରୀକ୍ ମିରାଣ୍ଡିଜ୍ ମାରୱାରୀ @@ -363,7 +367,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଡଚ୍ ଫ୍ଲେମିଶ୍ କୱାସିଓ - ନରୱେଜିଆନ୍ ନିୟୋର୍ସ୍କ + ନରୱେଜିଆନ୍ ନିନର୍ସ୍କ୍‌ ନାଗିମବୋନ୍ ନରୱେଜିଆନ୍ ନୋଗାଇ @@ -429,14 +433,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଆରଡବ୍ୟୁଏ ସଂସ୍କୃତ ସଣ୍ଡାୱେ - ସାଖା + ୟାକୂଟ୍‌ ସାମୌରିଟନ୍ ଆରମାଇକ୍ ସମବୁରୁ ସାସାକ୍ ସାନ୍ତାଳି ନଗାମବେ ସାନଗୁ - ସର୍ଦିନିଆନ୍ + ସାର୍ଡିନିଆନ୍‌ ସିଶିଲିଆନ୍ ସ୍କଟସ୍ ସିନ୍ଧୀ @@ -476,11 +480,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଶୁଶୁ ସୁମେରିଆନ୍ ସ୍ୱେଡିସ୍ - ସ୍ୱାହିଲ୍ + ସ୍ୱାହିଲି କଙ୍ଗୋ ସ୍ୱାହିଲି କୋମୋରିୟ କ୍ଲାସିକାଲ୍ ସିରିକ୍ - ସିରିକ୍ + ସିରିଆକ୍‌ + ସାଇଲେସିଆନ୍‌ ତାମିଲ୍ ସାଉଥ୍ ଟଚୋନ୍ ତେଲୁଗୁ @@ -492,7 +497,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ତାଗିଶ ଥାଇ ତହଲତାନ୍ - ଟ୍ରିଗିନିଆ + ଟାଇଗ୍ରିନିଆ ଟାଇଗ୍ରେ ତୀଭ୍ ତୁର୍କମେନ୍ @@ -522,14 +527,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଉଦମୂର୍ତ୍ତ ୟୁଘୁର୍ ୟୁଗୋରଟିକ୍ - ୟୁକ୍ରାନିଆନ୍ + ୟୁକ୍ରେନିଆନ୍ ଉମ୍ବୁଣ୍ଡୁ ଅଜଣା ଭାଷା ଉର୍ଦ୍ଦୁ ଉଜବେକ୍ ଭାଇ ଭେଣ୍ଡା + ଭନିଶନ୍‌ ଭିଏତନାମିଜ୍ + ମାଖୁୱା ବୋଲାପୁକ ଭୋଟିକ୍ ଭୁନଜୋ @@ -542,6 +549,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ୱୁ ଚାଇନିଜ କାଲ୍ମୀକ୍ ଖୋସା + କାଙ୍ଗ୍ରି ସୋଗା ୟାଓ ୟାପୀସ୍ @@ -550,16 +558,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ୟିଡିସ୍ ୟୋରୁବା ନିଙ୍ଗାଟୁ - କାନଟୋନେସେ - ଚାଇନିଜ୍‌, କାନଟୋନେସେ - ଜୁଆଙ୍ଗ + କାଣ୍ଟୋନିଜ୍‌ + ଚାଇନିଜ୍‌, କାଣ୍ଟୋନିଜ୍‌ + ଜୁଆଙ୍ଗ୍‌ ଜାପୋଟେକ୍ ବ୍ଲିସିମ୍ବଲସ୍ ଜେନାଗା ମାନାଙ୍କ ମରୋକିୟ ତାମାଜିଘାଟ୍ ଚାଇନିଜ୍‌ ଚାଇନିଜ୍, ମାଣ୍ଡାରିନ୍ - ସରଳୀକୃତ ଚାଇନିଜ୍‌ + ସରଳୀକୃତ ଚାଇନିଜ ସରଳୀକୃତ ମାଣ୍ଡାରିନ୍ ଚାଇନିଜ୍ ପାରମ୍ପରିକ ଚାଇନିଜ୍‌ ପାରମ୍ପରିକ ମାଣ୍ଡାରିନ୍ ଚାଇନିଜ୍ @@ -571,7 +579,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -594,7 +602,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -605,7 +613,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -647,14 +655,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + - + @@ -667,7 +675,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -676,7 +684,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -689,7 +697,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -769,7 +777,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ସେଣ୍ଟ ବାର୍ଥେଲେମି ବର୍ମୁଡା ବ୍ରୁନେଇ - ବୋଲଭିଆ + ବୋଲିଭିଆ କାରବିୟନ୍‌ ନେଦରଲ୍ୟାଣ୍ଡ ବ୍ରାଜିଲ୍ ବାହାମାସ୍ @@ -788,13 +796,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ କୋତ୍ ଡି ଭ୍ଵାର୍ ଆଇଭରୀ କୋଷ୍ଟ କୁକ୍‌ ଦ୍ୱୀପପୁଞ୍ଜ - ଚିଲ୍ଲୀ + ଚିଲି କାମେରୁନ୍ - ଚିନ୍ - କୋଲମ୍ବିଆ + ଚୀନ୍‌ + କଲମ୍ବିଆ କ୍ଲିପରଟନ୍‌ ଦ୍ୱୀପ କୋଷ୍ଟା ରିକା - କ୍ୱିବା + କ‍୍ୟୁବା କେପ୍ ଭର୍ଦେ କୁରାକାଓ ଖ୍ରୀଷ୍ଟମାସ ଦ୍ୱୀପ @@ -809,7 +817,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଡୋମିନିକାନ୍‌ ସାଧାରଣତନ୍ତ୍ର ଆଲଜେରିଆ ସିଉଟା ଏବଂ ମେଲିଲା - ଇକ୍ୱାଡୋର୍ + ଇକ୍ୱେଡର୍‌ ଏସ୍ତୋନିଆ ଇଜିପ୍ଟ ପଶ୍ଚିମ ସାହାରା @@ -821,7 +829,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଫିନଲ୍ୟାଣ୍ଡ ଫିଜି ଫକ୍‌ଲ୍ୟାଣ୍ଡ ଦ୍ଵୀପପୁଞ୍ଜ - ଫକଲ୍ୟାଣ୍ଡ ଦ୍ୱୀପପୁଞ୍ଜ (ଇସଲାସ୍‌ ମାଲଭିନାସ୍‌) + ଫକ୍‌ଲ୍ୟାଣ୍ଡ ଦ୍ଵୀପପୁଞ୍ଜ (ଇସଲାସ୍‌ ମାଲଭିନାସ୍‌) ମାଇକ୍ରୋନେସିଆ ଫାରୋଇ ଦ୍ୱୀପପୁଞ୍ଜ ଫ୍ରାନ୍ସ @@ -838,7 +846,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଗାମ୍ବିଆ ଗୁଇନିଆ ଗୁଆଡେଲୋପ୍ - ଇକ୍ବାଟେରିଆଲ୍ ଗୁଇନିଆ + ଇକ୍ବାଟୋରିଆଲ୍ ଗୁଇନିଆ ଗ୍ରୀସ୍ ଦକ୍ଷିଣ ଜର୍ଜିଆ ଏବଂ ଦକ୍ଷିଣ ସାଣ୍ଡୱିଚ୍ ଦ୍ୱୀପପୁଞ୍ଜ ଗୁଏତମାଲା @@ -858,7 +866,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଇସ୍ରାଏଲ୍ ଆଇଲ୍‌ ଅଫ୍‌ ମ୍ୟାନ୍‌ ଭାରତ - ବ୍ରିଟିଶ୍‌ ଭାରତ ମାହାସାଗର କ୍ଷେତ୍ର + ବ୍ରିଟିଶ୍‌ ଭାରତୀୟ ମହାସାଗର କ୍ଷେତ୍ର + ଚାଗୋସ୍ ଆର୍କିପେଲାଗୋ ଇରାକ୍ ଇରାନ ଆଇସଲ୍ୟାଣ୍ଡ @@ -877,11 +886,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଦକ୍ଷିଣ କୋରିଆ କୁଏତ୍ କେମ୍ୟାନ୍‌ ଦ୍ୱୀପପୁଞ୍ଜ - କାଜାକାସ୍ତାନ + କାଜାଖସ୍ତାନ୍‌ ଲାଓସ୍ ଲେବାନନ୍ ସେଣ୍ଟ ଲୁସିଆ - ଲିଚେଟନଷ୍ଟେଇନ୍ + ଲିକ୍ଟନ୍‌ଷ୍ଟାଇନ୍‌ ଶ୍ରୀଲଙ୍କା ଲାଇବେରିଆ ଲେସୋଥୋ @@ -930,7 +939,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ପାନାମା ପେରୁ ଫ୍ରେଞ୍ଚ ପଲିନେସିଆ - ପପୁଆ ନ୍ୟୁ ଗୁଏନିଆ + ପପୁଆ ନ୍ୟୁ ଗିନି ଫିଲିପାଇନସ୍ ପାକିସ୍ତାନ ପୋଲାଣ୍ଡ @@ -953,7 +962,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ସୋଲୋମନ୍‌ ଦ୍ୱୀପପୁଞ୍ଜ ସେଚେଲସ୍ ସୁଦାନ - ସ୍ୱେଡେନ୍ + ସ୍ୱିଡେନ୍‌ ସିଙ୍ଗାପୁର୍ ସେଣ୍ଟ ହେଲେନା ସ୍ଲୋଭେନିଆ @@ -998,10 +1007,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଉରୁଗୁଏ ଉଜବେକିସ୍ତାନ ଭାଟିକାନ୍ ସିଟି - ସେଣ୍ଟ ଭିନସେଣ୍ଟ ଏବଂ ଦି ଗ୍ରେନାଡିସ୍ + ସେଣ୍ଟ ଭିନସେଣ୍ଟ ଏବଂ ଗ୍ରେନାଡାଇନ୍ସ ଭେନେଜୁଏଲା ବ୍ରିଟିଶ୍‌ ଭର୍ଜିନ୍ ଦ୍ୱୀପପୁଞ୍ଜ - ଯୁକ୍ତରାଷ୍ଟ୍ର ଭିର୍ଜିନ୍ ଦ୍ଵୀପପୁଞ୍ଜ + ଯୁକ୍ତରାଷ୍ଟ୍ର ଭର୍ଜିନ୍ ଦ୍ଵୀପପୁଞ୍ଜ ଭିଏତନାମ୍ ଭାନୁଆତୁ ୱାଲିସ୍ ଏବଂ ଫୁତୁନା @@ -1037,20 +1046,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ସର୍ଟ୍‌ କ୍ରମ ମୁଦ୍ରା ଘଣ୍ଟା ଚକ୍ର (12 ବନାମ 24) - ଧାଡ଼ି ବିରତି ଶୈଳୀ + ଲାଇନ୍‌ ବ୍ରେକ୍‌ ଷ୍ଟାଇଲ୍‌ ମାପ ପଦ୍ଧତି - ସଂଖ୍ୟାଗୁଡ଼ିକ + ସଂଖ୍ୟା - ବୌଦ୍ଧଧର୍ମାଲମ୍ବୀଙ୍କ କ୍ୟାଲେଣ୍ଡର୍‌ + ବୌଦ୍ଧ କ୍ୟାଲେଣ୍ଡର୍‌ ଚାଇନିଜ୍‌ କ୍ୟାଲେଣ୍ଡର୍‌ - କପ୍ଟିକ୍ + କପ୍ଟିକ୍ କ୍ୟାଲେଣ୍ଡର୍‌ ଦାଙ୍ଗି କ୍ୟାଲେଣ୍ଡର୍‌ ଇଥିଓପିକ୍‌ କ୍ୟାଲେଣ୍ଡର୍‌ ଏଥିଓପିକ୍-ଆମେଟ୍-ଆଲେମ୍ ଗ୍ରେଗୋରିୟ କ୍ୟାଲେଣ୍ଡର୍ ହିବୃ କ୍ୟାଲେଣ୍ଡର୍‌ - ଇଣ୍ତିଆନ୍ + ଭାରତୀୟ ରାଷ୍ଟ୍ରୀୟ କ୍ୟାଲେଣ୍ଡର୍‌ ହିଜ୍ରି କ୍ୟାଲେଣ୍ଡର ହିଜ୍ରି କ୍ୟାଲେଣ୍ଡର (ଟାବୁଲାର୍, ନାଗରିକ ଯୁଗ) ହିଜ୍ରି କ୍ୟାଲେଣ୍ଡର (ଉମ୍ ଅଲ୍-କୁରା) @@ -1062,16 +1071,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ମାନାଙ୍କ ମୁଦ୍ରା ଫର୍ମାଟ୍‌ ଡିଫଲ୍ଟ ୟୁନିକୋଡ୍‌ ସର୍ଟ୍‌ କ୍ରମ ସାଧାରଣ ଉଦ୍ଦେଶ୍ୟ-ବିଶିଷ୍ଟ ସନ୍ଧାନ - ମାନାଙ୍କ ସର୍ଟ୍‌ କ୍ରମ + ଷ୍ଟାଣ୍ଡାର୍ଡ୍‌ ସର୍ଟ୍‌ କ୍ରମ 12 ଘଣ୍ଟିଆ ପଦ୍ଧତି (0–11) 12 ଘଣ୍ଟିଆ ପଦ୍ଧତି (1–12) 24 ଘଣ୍ଟିଆ ପଦ୍ଧତି (0–23) 24 ଘଣ୍ଟିଆ ପଦ୍ଧତି (1–24) - ଢିଲା ଧାଡ଼ି ବିରତି ଶୈଳୀ - ସାଧାରଣ ଧାଡ଼ି ବିରତି ଶୈଳୀ + କୋହଳ ଲାଇନ୍‌ ବ୍ରେକ୍‌ ଷ୍ଟାଇଲ୍‌ + ସାଧାରଣ ଲାଇନ୍‌ ବ୍ରେକ୍‌ ଷ୍ଟାଇଲ୍‌ କଠୋର ଧାଡ଼ି ବିରତି ଶୈଳୀ ମେଟ୍ରିକ୍‌ ପଦ୍ଧତି - ସାମ୍ରାଜ୍ୟ ସମ୍ବନ୍ଧୀୟ ମାପ ପଦ୍ଧତି + ଇମ୍ପେରିଆଲ୍‌ ମାପ ପଦ୍ଧତି ୟୁଏସ୍‌ ମାପ ପଦ୍ଧତି ଆରବିକ୍‌-ଇଣ୍ଡିକ୍‌ ଅଙ୍କଗୁଡ଼ିକ ପରିବର୍ଦ୍ଧିତ ଆରବିକ୍‌-ଇଣ୍ଡିକ୍‌ ଅଙ୍କଗୁଡ଼ିକ @@ -1087,7 +1096,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଗ୍ରୀକ୍‌ ଛୋଟ ଅକ୍ଷର ସଂଖ୍ୟାଗୁଡ଼ିକ ଗୁଜରାଟୀ ଅଙ୍କଗୁଡ଼ିକ ଗୁରମୁଖୀ ଅଙ୍କଗୁଡ଼ିକ - ଚିନି ଦଶମିକ ସଂଖ୍ୟାଗୁଡ଼ିକ + ଚାଇନିଜ୍‌ ଦଶମିକ ସଂଖ୍ୟା ସରଳୀକୃତ ଚିନି ସଂଖ୍ୟାଗୁଡ଼ିକ ସରଳୀକୃତ ଚିନି ଆର୍ଥିକ ସଂଖ୍ୟାଗୁଡ଼ିକ ପାରମ୍ପରିକ ଚିନି ସଂଖ୍ୟାଗୁଡ଼ିକ @@ -1127,13 +1136,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - [଼ ଅ ଆ ଇ ଈ ଉ ଊ ଋ ଏ ଐ ଓ ଔ ଁ ଂ ଃ କ ଖ ଗ ଘ ଙ ଚ ଛ ଜ ଝ ଞ ଟ ଠ ଡ{ଡ଼} ଢ{ଢ଼} ଣ ତ ଥ ଦ ଧ ନ ପ ଫ ବ ଭ ମ ଯୟ ର ଲ ଳ ଵ ୱ ଶ ଷ ସ ହ ା ି ୀ ୁ ୂ ୃ େ ୈ ୋ ୌ ୍] + [଼ ଅ ଆ ଇ ଈ ଉ ଊ ଋ ଏ ଐ ଓ ଔ ଁ ଂ ଃ କ ଖ ଗ ଘ ଙ ଚ ଛ ଜ ଝ ଞ ଟ ଠ ଡ{ଡ଼} ଢ{ଢ଼} ଣ ତ ଥ ଦ ଧ ନ ପ ଫ ବ ଭ ମ ଯୟ ର ଲ ଳ ଵ ୱ ଶ ଷ ସ ହ {କ୍ଷ} ା ି ୀ ୁ ୂ ୃ େ ୈ ୋ ୌ ୍] [\u200C\u200D] [ଅ ଆ ଇ ଈ ଉ ଊ ଋ ଏ ଐ ଓ ଔ କ ଖ ଗ ଘ ଙ ଚ ଛ ଜ ଝ ଞ ଟ ଠ ଡ ଢ ଣ ତ ଥ ଦ ଧ ନ ପ ଫ ବ ଭ ମ ଯ ର ଲ ଳ ଶ ଷ ସ ହ {କ୍ଷ}] [\- ‑ , . % ‰ + 0୦ 1୧ 2୨ 3୩ 4୪ 5୫ 6୬ 7୭ 8୮ 9୯] [\- ‐‑ – — , ; \: ! ? . … '‘’ "“” ( ) \[ \] § @ * / \& # † ‡ ′ ″] - [£ ₤] + [££ ₤] + [₹ {ଟ.} {ଟଙ୍କା} {Rp} {Rs}₨] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -1220,6 +1230,40 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} – {1} + + M/y GGGGG – M/y GGGGG + M/y – M/y GGGGG + M/y – M/y GGGGG + + + M/d/y – M/d/y GGGGG + M/d/y GGGGG – M/d/y GGGGG + M/d/y – M/d/y GGGGG + M/d/y – M/d/y GGGGG + + + E, M/d/y – E, M/d/y GGGGG + E, M/d/y GGGGG – E, M/d/y GGGGG + E, M/d/y – E, M/d/y GGGGG + E, M/d/y – E, M/d/y GGGGG + + + MMM y G – MMM y G + MMM – MMM y G + MMM y – MMM y G + + + MMM d – d, y G + MMM d, y G – MMM d, y G + MMM d – MMM d, y G + MMM d, y – MMM d, y G + + + E, MMM d – E, MMM d, y G + E, MMM d, y G – E, MMM d, y G + E, MMM d – E, MMM d, y G + E, MMM d, y – E, MMM d, y G + M – M @@ -1348,6 +1392,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + Q1 + Q2 + 3ୟ ତ୍ରୟମାସ + 4ର୍ଥ ତ୍ରୟମାସ + 1ମ ତ୍ରୟମାସ 2ୟ ତ୍ରୟମାସ @@ -1378,7 +1428,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ AM - ଅପରାହ୍ନ + PM @@ -1475,6 +1525,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ d E y G + M/d/y G MMM y G MMM d, y G E, MMM d, y G @@ -1499,22 +1550,151 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} – {1} + + y G – y G + y – y G + + + M/y G – M/y G + M/y – M/y G + M/y – M/y G + + + M/d/y G – M/d/y G + M/d/y G – M/d/y G + M/d/y – M/d/y G + M/d/y – M/d/y G + + + E, M/d/y – E, M/d/y G + E, M/d/y G – E, M/d/y G + E, M/d/y – E, M/d/y G + E, M/d/y – E, M/d/y G + + + MMM y G – MMM y G + MMM – MMM y G + MMM y – MMM y G + + + MMM d – d, y G + MMM d, y G – MMM d, y G + MMM d – MMM d, y G + MMM d, y – MMM d, y G + + + E, MMM d – E, MMM d, y G + E, MMM d, y G – E, MMM d, y G + E, MMM d – E, MMM d, y G + E, MMM d, y – E, MMM d, y G + + + M/d – M/d + M/d – M/d + + + E, M/d – E, M/d + E, M/d – E, M/d + + + MMM – MMM + + + E, MMM d – E, MMM d + E, MMM d – E, MMM d + + + M/y – M/y + M/y – M/y + + + M/d/y – M/d/y + M/d/y – M/d/y + M/d/y – M/d/y + + + E, M/d/y – E, M/d/y + E, M/d/y – E, M/d/y + E, M/d/y – E, M/d/y + + + MMM – MMM y + MMM y – MMM y + + + MMM d – d, y + MMM d – MMM d, y + MMM d, y – MMM d, y + + + E, MMM d – E, MMM d, y + E, MMM d – E, MMM d, y + E, MMM d, y – E, MMM d, y + + + MMMM – MMMM y + MMMM y – MMMM y + + + ଚୈତ୍ର + ବୈଶାଖ + ଜ୍ୟେଷ୍ଠ + ଆଷାଢ଼ + ଶ୍ରାବଣ + ଭାଦ୍ରବ + ଆଶ୍ଵିନ + କାର୍ତ୍ତିକ + ମାର୍ଗଶିର + ପୌଷ + ମାଘ + ଫାଲଗୁନ + + + ଚୈତ୍ର + ବୈଶାଖ + ଜ୍ୟେଷ୍ଠ + ଆଷାଢ଼ + ଶ୍ରାବଣ + ଭାଦ୍ରବ + ଆଶ୍ଵିନ + କାର୍ତ୍ତିକ + ମାର୍ଗଶିର + ପୌଷ + ମାଘ + ଫାଲଗୁନ + + + + + ଚୈତ୍ର + ବୈଶାଖ + ଜ୍ୟେଷ୍ଠ + ଆଷାଢ଼ + ଶ୍ରାବଣ + ଭାଦ୍ରବ + ଆଶ୍ଵିନ + କାର୍ତ୍ତିକ + ମାର୍ଗଶିର + ପୌଷ + ମାଘ + ଫାଲଗୁନ + ଚୈତ୍ର ବୈଶାଖ - ଜ୍ୟୋଷ୍ଠ + ଜ୍ୟେଷ୍ଠ ଆଷାଢ଼ ଶ୍ରାବଣ ଭାଦ୍ରବ ଆଶ୍ଵିନ କାର୍ତ୍ତିକ - ଆଗ୍ରାହୟଣ + ମାର୍ଗଶିର ପୌଷ ମାଘ ଫାଲଗୁନ @@ -1560,7 +1740,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ତ୍ରୟମାସ ଗତ ତ୍ରୟମାସ - ଗତ ତ୍ରୟମାସ + ଏହି ତ୍ରୟମାସ ଆଗାମୀ ତ୍ରୟମାସ {0} ତ୍ରୟମାସରେ @@ -1671,10 +1851,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ସ. ର ଦିନ - ସାପ୍ତାହିକ ଦିନର ମାସ + ମାସର ସାପ୍ତାହିକ ଦିନ - ସା. ଦିନର ମା. + ମାସର ସାପ୍ତାହିକ ଦି. + + + ମାସର ସାପ୍ତାହିକ ଦି. ଗତ ରବିବାର @@ -1882,8 +2065,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ଶନି. ପୂର୍ବେ + + AM/PM + - ପୂର୍ବାହ୍ନ/ଅପରାହ୍ନ + AM/PM + + + AM/PM ଘଣ୍ଟା @@ -1967,6 +2156,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ସମୟ {0} ଦିବାଲୋକ ସମୟ {0} ମାନାଙ୍କ ସମୟ + + ହୋନୋଲୁଲୁ + ସମନ୍ୱିତ ସାର୍ବଜନୀନ ସମୟ @@ -2141,7 +2333,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ବୁଜୁମ୍ବୁରା - ପୋଟୋ-ନୋଭୋ + ପୋର୍ଟୋ-ନୋଭୋ ସେଣ୍ଟ୍. ବାର୍ଥେଲେମି @@ -2330,7 +2522,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଉରୁମକି - ସଂଘାଇ + ସାଂଘାଇ ବୋଗୋଟା @@ -2480,7 +2672,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ କୋନାକ୍ରି - ଗୁଆଡେଲୋଉପେ + ଗୁଆଡେଲୋପ୍‌ ମାଲାବୋ @@ -2492,7 +2684,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଦକ୍ଷିଣ ଜର୍ଜିଆ - ଗୁଆତେମାଲା + ଗୁଆଟେମାଲା ଗୁଆମ @@ -2532,7 +2724,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - ଆଇରିଶ୍‌ ମାନାଙ୍କ ସମୟ + ଆଇରିଶ୍‌ ମାନକ ସମୟ ଡବଲିନ୍ @@ -2704,9 +2896,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଉଲାନ୍‌ବାଟର୍‌ - - ଚୋଇବାଲସାନ୍‌ - ମାକାଉ @@ -2798,7 +2987,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ମାନାଗୁଆ - ଆମଷ୍ଟ୍ରେଡାମ୍ + ଆମଷ୍ଟରଡାମ୍ ଓସଲୋ @@ -2891,7 +3080,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ବୁଚାରେଷ୍ଟ୍ - ବେଲଗ୍ରେଡେ + ବେଲଗ୍ରେଡ୍‌ କାଲିନିନଗ୍ରାଡ୍ @@ -3014,7 +3203,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଡକାର - ମୋଗାଡିଶୁ + ମୋଗାଦିଶୁ ପାରାମାରିବୋ @@ -3106,9 +3295,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ନୋମେ - - ହୋନୋଲୁଲୁ - ଆଙ୍କରେଜ୍ @@ -3173,7 +3359,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଇଣ୍ଡିଆନାପୋଲିସ୍ - ଲୌଇସଭିଲ୍ଲେ + ଲୁଇଭିଲ୍ଲେ ଭେଭାୟ, ଇଣ୍ଡିଆନା @@ -3422,7 +3608,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଆଜୋରେସ୍ ସମୟ - ଆଜୋରେସ୍ ମାନାଙ୍କ ସମୟ + ଆଜୋରେସ୍ ମାନକ ସମୟ ଆଜୋରେସ୍ ଗ୍ରୀଷ୍ମକାଳ ସମୟ @@ -3430,7 +3616,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ବାଂଲାଦେଶ ସମୟ ବାଂଲାଦେଶ ମାନାଙ୍କ ସମୟ - ବାଂଲାଦେଶ ଗ୍ରୀଷ୍ମକାଳ ସମୟ + ବାଂଲାଦେଶ ଗ୍ରୀଷ୍ମକାଳୀନ ସମୟ @@ -3459,12 +3645,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ କେପ୍‌ ଭର୍ଦେ ସମୟ କେପ୍‌ ଭର୍ଦେ ମାନାଙ୍କ ସମୟ - କେପ୍‌ ଭର୍ଦେ ଖରାଦିନ ସମୟ + କେପ୍‌ ଭର୍ଦେ ଗ୍ରୀଷ୍ମକାଳୀନ ସମୟ - ଚାମୋରୋ ମାନାଙ୍କ ସମୟ + ଚାମୋରୋ ମାନକ ସମୟ @@ -3484,17 +3670,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଚୀନ ସମୟ - ଚୀନ ମାନାଙ୍କ ସମୟ + ଚୀନ ମାନକ ସମୟ ଚୀନ ଦିବାଲୋକ ସମୟ - - - ଚୋଇବାଲସାନ ସମୟ - ଚୋଇବାଲସାନ ମାନାଙ୍କ ସମୟ - ଚୋଇବାଲସାନ ଗ୍ରୀଷ୍ମକାଳ ସମୟ - - ଖ୍ରୀଷ୍ଟମାସ ଦ୍ୱୀପ ସମୟ @@ -3508,14 +3687,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ କଲମ୍ବିଆ ସମୟ - କଲମ୍ବିଆ ମାନାଙ୍କ ସମୟ + କଲମ୍ବିଆ ମାନକ ସମୟ କଲମ୍ବିଆ ଗ୍ରୀଷ୍ମକାଳ ସମୟ କୁକ୍‌ ଦ୍ୱୀପପୁଞ୍ଜ ସମୟ - କୁକ୍‌ ଦ୍ୱୀପପୁଞ୍ଜ ମାନାଙ୍କ ସମୟ + କୁକ୍‌ ଦ୍ୱୀପପୁଞ୍ଜ ମାନକ ସମୟ କୁକ୍‌ ଦ୍ୱୀପପୁଞ୍ଜ ଅର୍ଦ୍ଧ ଗୀଷ୍ମକାଳୀନ ସମୟ @@ -3556,7 +3735,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ କେନ୍ଦ୍ରୀୟ ୟୁରୋପୀୟ ସମୟ - କେନ୍ଦ୍ରୀୟ ୟୁରୋପୀୟ ମାନାଙ୍କ ସମୟ + କେନ୍ଦ୍ର ୟୁରୋପୀୟ ମାନକ ସମୟ କେନ୍ଦ୍ରୀୟ ୟୁରୋପୀୟ ଗ୍ରୀଷ୍ମକାଳ ସମୟ @@ -3582,15 +3761,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଫକଲ୍ୟାଣ୍ଡ ଦ୍ୱୀପପୁଞ୍ଜ ସମୟ - ଫକଲ୍ୟାଣ୍ଡ ଦ୍ୱୀପପୁଞ୍ଜ ମାନାଙ୍କ ସମୟ + ଫକଲ୍ୟାଣ୍ଡ ଦ୍ୱୀପପୁଞ୍ଜ ମାନକ ସମୟ ଫକଲ୍ୟାଣ୍ଡ ଦ୍ୱୀପପୁଞ୍ଜ ଗ୍ରୀଷ୍ମକାଳ ସମୟ ଫିଜି ସମୟ - ଫିଜି ମାନାଙ୍କ ସମୟ - ଫିଜି ଗ୍ରୀଷ୍ମକାଳ ସମୟ + ଫିଜି ମାନକ ସମୟ + ଫିଜି ଗ୍ରୀଷ୍ମକାଳୀନ ସମୟ @@ -3667,20 +3846,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ହଂ କଂ ସମୟ - ହଂ କଂ ମାନାଙ୍କ ସମୟ + ହଂ କଂ ମାନକ ସମୟ ହଂ କଂ ଗ୍ରୀଷ୍ମକାଳ ସମୟ ହୋଭଡ୍‌ ସମୟ - ହୋଭଡ୍‌ ମାନାଙ୍କ ସମୟ + ହୋଭଡ୍‌ ମାନକ ସମୟ ହୋଭଡ୍‌ ଗ୍ରୀଷ୍ମକାଳ ସମୟ - ଭାରତ ମାନାଙ୍କ ସମୟ + ଭାରତୀୟ ମାନକ ସମୟ IST @@ -3714,14 +3893,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଇରାନ ସମୟ - ଇରାନ ମାନାଙ୍କ ସମୟ + ଇରାନ ମାନକ ସମୟ ଇରାନ ଦିବାଲୋକ ସମୟ ଇଅରକୁଟସ୍କ ସମୟ - ଇଅରକୁଟସ୍କ ମାନାଙ୍କ ସମୟ + ଇର୍କୁଟସ୍କ୍ ମାନକ ସମୟ ଇର୍କୁଟସ୍କ୍ ଗ୍ରୀଷ୍ମକାଳୀନ ସମୟ @@ -3735,7 +3914,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଜାପାନ ସମୟ - ଜାପାନ ମାନାଙ୍କ ସମୟ + ଜାପାନ ମାନକ ସମୟ ଜାପାନ ଦିବାଲୋକ ସମୟ @@ -3746,6 +3925,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ପେଟ୍ରୋପାଭଲୋଭ୍ସକ-କମଚଟସ୍କି ଗ୍ରୀଷ୍ମ ସମୟ + + + କାଜାକସ୍ତାନ୍ ସମୟ + + ପୂର୍ବ କାଜାକସ୍ତାନ୍ ସମୟ @@ -3759,7 +3943,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ କୋରିୟ ସମୟ - କୋରିୟ ମାନାଙ୍କ ସମୟ + କୋରିୟ ମାନକ ସମୟ କୋରିୟ ଦିବାଲୋକ ସମୟ @@ -3853,8 +4037,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଉଲାନ୍‌ବାଟର୍‌ ସମୟ - ଉଲାନ୍‌ବାଟର୍‌ ମାନାଙ୍କ ସମୟ - ଉଲାନ୍‌ ବାଟର୍‌ ଗ୍ରୀଷ୍ମକାଳ ସମୟ + ଉଲାନ୍‌ବାଟର୍‌ ମାନକ ସମୟ + ଉଲାନ୍‌ବାଟର୍‌ ଗ୍ରୀଷ୍ମକାଳୀନ ସମୟ @@ -3941,7 +4125,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ପାକିସ୍ତାନ ସମୟ - ପାକିସ୍ତାନ ମାନାଙ୍କ ସମୟ + ପାକିସ୍ତାନ ମାନକ ସମୟ ପାକିସ୍ତାନ ଗ୍ରୀଷ୍ମକାଳ ସମୟ @@ -3952,7 +4136,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - ପପୁଆ ନ୍ୟୁ ଗୁନିଆ ସମୟ + ପପୁଆ ନ୍ୟୁ ଗିନି ସମୟ @@ -3978,7 +4162,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - ଫୋନିକ୍ସ ଦ୍ୱୀପପୁଞ୍ଜ ସମୟ + ଫିନିକ୍ସ ଦ୍ୱୀପପୁଞ୍ଜ ସମୟ @@ -3990,7 +4174,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - ପିଟକାରିନ୍‌ ସମୟ + ପିଟକେର୍ନ୍‌ ସମୟ @@ -4037,7 +4221,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ସାମୋଆ ସମୟ - ସାମୋଆ ମାନାଙ୍କ ସମୟ + ସାମୋଆ ମାନକ ସମୟ ସାମୋଆ ଦିବାଲୋକ ସମୟ @@ -4048,7 +4232,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - ସିଙ୍ଗାପୁର୍‌ ମାନାଙ୍କ ସମୟ + ସିଙ୍ଗାପୁର୍‌ ମାନକ ସମୟ @@ -4079,7 +4263,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ତାଇପେଇ ସମୟ - ତାଇପେଇ ମାନାଙ୍କ ସମୟ + ତାଇପେଇ ମାନକ ସମୟ ତାଇପେଇ ଦିବାଲୋକ ସମୟ @@ -4096,8 +4280,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଟୋଙ୍ଗା ସମୟ - ଟୋଙ୍ଗା ମାନାଙ୍କ ସମୟ - ଟୋଙ୍ଗା ଗ୍ରୀଷ୍ମକାଳ ସମୟ + ଟୋଙ୍ଗା ମାନକ ସମୟ + ଟୋଙ୍ଗା ଗ୍ରୀଷ୍ମକାଳୀନ ସମୟ @@ -4127,15 +4311,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଉଜବେକିସ୍ତାନ ସମୟ - ଉଜବେକିସ୍ତାନ ମାନାଙ୍କ ସମୟ - ଉଜବେକିସ୍ତାନ ଖରାଦିନ ସମୟ + ଉଜବେକିସ୍ତାନ ମାନକ ସମୟ + ଉଜବେକିସ୍ତାନ ଗ୍ରୀଷ୍ମକାଳୀନ ସମୟ ଭାନୁଆଟୁ ସମୟ - ଭାନୁଆଟୁ ମାନାଙ୍କ ସମୟ - ଭାନୁଆଟୁ ଖରାଦିନ ସମୟ + ଭାନୁଆଟୁ ମାନକ ସମୟ + ଭାନୁଆଟୁ ଗ୍ରୀଷ୍ମକାଳୀନ ସମୟ @@ -4324,8 +4508,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ 000T - {0} {1} - {0} {1} @@ -4401,7 +4583,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ବେଲାରୁସି ରୁବଲ୍ - р. + р. ବେଲିଜ୍ ଡଲାର୍ @@ -4539,7 +4721,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଜାପାନୀ ୟେନ୍ - ¥ + ¥ କେନିୟ ଶିଲିଂ @@ -4665,7 +4847,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଫିଲିପିନି ପେସୋ - PHP + PHP ପାକିସ୍ତାନୀ ରୁପି @@ -4780,7 +4962,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଯୁକ୍ତରାଷ୍ଟ୍ର ଡଲାର୍ - $ + $ ଉରୁଗୁଇୟାନ୍ ପେସୋ @@ -4811,6 +4993,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ପଶ୍ଚିମ ଆଫ୍ରିକିୟ CFA ଫ୍ରାଙ୍କ୍ + ପଶ୍ଚିମ ଆଫ୍ରିକୀୟ CFA ଫ୍ରାଙ୍କ୍ + ପଶ୍ଚିମ ଆଫ୍ରିକିୟ CFA ଫ୍ରାଙ୍କ୍ CFP ଫ୍ରାଙ୍କ୍ @@ -5067,7 +5251,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ମାଇଲ୍ ପ୍ରତି ଇମ୍ପେରିଆଲ୍ ଗ୍ୟାଲନ୍ - PB + ପେଟାବାଇଟ୍‌ ଟେରାବାଇଟ୍ @@ -5119,7 +5303,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ଦଶନ୍ଧି - ବର୍ଷକୁ {0} + {0} ପ୍ରତି ବର୍ଷ {0} କ୍ୱାର୍ଟର୍ @@ -5383,8 +5567,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ପଏଣ୍ଟ୍ + ସୋଲାର ବ୍ୟାସାର୍ଦ୍ଧ {0} ସୋଲାର ବ୍ୟାସାର୍ଦ୍ଧ - {0} ସୋଲାର ରାଡି + {0} ସୋଲାର ବ୍ୟାସାର୍ଦ୍ଧ candela @@ -5559,7 +5744,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ପାଉଣ୍ଡ-ଫିଟ - {0} ପାଉଣ୍ଡ-ଫୁଟ + {0} ପାଉଣ୍ଡ୍-ଫୋର୍ସ୍‌-ଫୁଟ୍‌ {0} ପାଉଣ୍ଡ-ଫିଟ @@ -5684,6 +5869,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ଡିଜଟ୍ ସ୍ପୁନ୍ {0} ଡିଜଟ୍ ସ୍ପୁନ୍ + + ଆଲୋକ + {0} ଆଲୋକ + {0} ଆଲୋକ + + + ବିଲିୟନ ପ୍ରତି ଅଂଶଗୁଡିକ + {0} ପାର୍ଟ୍ସ ପ୍ରତି ବିଲିୟନ୍ + {0} ପାର୍ଟ୍ସ ପ୍ରତି ବିଲିୟନ୍ + + + ରାତି + {0} ରାତି + {0} ରାତି + {0} ପ୍ରତି ରାତି + ପ୍ରଧାନ ଦିଶା {0} ପୂର୍ବ @@ -5935,7 +6136,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ଦଶନ୍ଧି - {0} dec + {0} ଦଶନ୍ଧି ବର୍ଷ @@ -6145,8 +6346,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଆୟୁ - {0} ଆୟୁ - {0} ଆୟୁ + {0} au + {0} au ଫର୍ଲଙ୍ଗସ୍ @@ -6159,8 +6360,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ନୌମି - {0} ନୌମି - {0} ନୌମି + {0} nmi + {0} nmi ସମି @@ -6173,7 +6374,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ପ - ସୋଲାର ରାଡି + ସୋଲାର ବ୍ୟାସାର୍ଦ୍ଧ ଲକ୍ସ @@ -6354,8 +6555,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ୟାର୍ଡ୍³ - {0} ୟାର୍ଡ୍³ - {0} ୟାର୍ଡ୍³ + {0} yd³ + {0} yd³ ଫିଟ୍³ @@ -6400,11 +6601,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ମେପା - {0} ମେପା - {0} ମେପା + {0} mpt + {0} mpt - ମେକ {0} ମେକ {0} ମେକ @@ -6455,12 +6655,30 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଛୋଟ ଚାମଚ - {0} ଛୋଟ ଚାମଚ - {0} ଛୋଟ ଚାମଚ + {0} tsp + {0} tsp ବାରେଲ + + {0} dsp-Imp. + {0} dsp-Imp. + + + ଆଲୋକ + {0} ଆଲୋକ + {0} ଆଲୋକ + + + ପାର୍ଟ୍ସ/ବିଲିୟନ୍ + + + ରାତି + {0} ରାତି + {0} ରାତି + {0}/ରାତି + ଦିଗ {0} ପୂ @@ -6758,8 +6976,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଖଗୋ. ଇକା. - {0} ଖଗୋ. ଇକା. - {0} ଖଗୋ. ଇକା. + {0}au + {0}au ଫର୍ଲଙ୍ଗ୍ @@ -6768,6 +6986,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ଫେଦମ୍ + {0}fth + {0} fth nmi @@ -6779,6 +6999,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}smi {0}smi + + R☉ + ମେଟ୍ରିକଟନ {0} ମେଟ୍ରିକଟନ @@ -6872,32 +7095,46 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ନ୍ୟୁ.ମି. - ଘନକି.ମି. {0}ଘନକି.ମି. {0}ଘନକି.ମି. - ଘନମି {0}/ ଘନମି {0}/ ଘନମି - {0}/ ଘନମି - ଘନସେମି {0}/ଘନସେମି {0}/ଘନସେମି - {0}/ଘନସେମି ଘନମାଇଲ୍ {0}ଘନମାଇଲ୍ {0}ଘନମାଇଲ୍ + + yd³ + {0}yd³ + {0}yd³ + + + ft³ + {0}ft³ + {0}ft³ + ଘନଇଞ୍ଚ {0} ଘନଇଞ୍ଚ {0} ଘନଇଞ୍ଚ + + ML + {0}ML + {0}ML + + + {0}hL + {0} ହେଲି + {0}ଲି {0}ଲି @@ -6917,6 +7154,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ମି. ଲି. {0} ମି. ଲି. + + pt + {0}mpt + {0}mpt + + + mcup + {0}mc + {0}mc + ଏକରଫୁଟ {0} ଏକରଫୁଟ @@ -6938,19 +7185,59 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} କପ {0} କପ + + fl oz + + + tsp + {0}tsp + {0}tsp + ବ୍ୟାରେଲ୍ {0} ବ୍ୟାରେଲ୍ {0} ବ୍ୟାରେଲ୍ + + dsp + {0}dsp + {0}dsp + + + dsp Imp + {0}dsp-Imp + {0}dsp-Imp + dr + {0}dr + {0}dr + + + fl.dr. + {0}fl.dr. + {0}fl.dr. ଚିମୁଟ {0} ଚିମୁଟ {0} ଚିମୁଟ + + ଆଲୋକ + {0} ଆଲୋକ + {0} ଆଲୋକ + + + {0}ppb + {0}ppb + + + ରାତି + {0} ରାତି + {0} ରାତି + {0}/ରାତି + {0}ଉ diff --git a/make/data/cldr/common/main/pa.xml b/make/data/cldr/common/main/pa.xml index 7e4c316934e..0b39cc4113d 100644 --- a/make/data/cldr/common/main/pa.xml +++ b/make/data/cldr/common/main/pa.xml @@ -59,6 +59,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ਬਿਸਲਾਮਾ ਬਿਨੀ ਸਿਕਸਿਕਾ + ਅਨੀ ਬੰਬਾਰਾ ਬੰਗਾਲੀ ਤਿੱਬਤੀ @@ -185,6 +186,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ਇਬਾਨ ਇਬੀਬੀਓ ਇੰਡੋਨੇਸ਼ੀਆਈ + ਇੰਟਰਲਿੰਗੁਈ ਇਗਬੋ ਸਿਚੁਆਨ ਯੀ ਪੱਛਮੀ ਕੈਨੇਡੀਅਨ ਇਨੂਕਟੀਟੂਟ @@ -238,6 +240,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ਕੋਮੀ ਕੋਰਨਿਸ਼ ਕਵਾਕ’ਵਾਲਾ + ਕੁਵੀ ਕਿਰਗੀਜ਼ ਲਾਤੀਨੀ ਲੈਡੀਨੋ @@ -246,10 +249,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ਲੈਜ਼ਗੀ ਗਾਂਡਾ ਲਿਮਬੁਰਗੀ - ਲਿਗੁਰੀ + ਲਿਗੂਰੀ ਲਿਲੂਏਟ ਲਕੋਟਾ - ਲੰਬਾਰਡ + ਲੰਬਾਰਡ ਲਿੰਗਾਲਾ ਲਾਓ ਲੇਉ @@ -407,6 +410,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ਕਾਂਗੋ ਸਵਾਇਲੀ ਕੋਮੋਰੀਅਨ ਸੀਰੀਆਈ + ਸਿਲੇਸੀਅਨ ਤਮਿਲ ਦੱਖਣੀ ਟਚੋਨ ਤੇਲਗੂ @@ -447,7 +451,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ਉਜ਼ਬੇਕ ਵਾਈ ਵੇਂਡਾ + ਵੇਨੇਸ਼ੀਅਨ ਵੀਅਤਨਾਮੀ + ਮਖੂਵਾ ਵੋਲਾਪੂਕ ਵੂੰਜੋ ਵਲੂਨ @@ -459,6 +465,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ਚੀਨੀ ਵੂ ਕਾਲਮਿਕ ਖੋਸਾ + ਕਾਂਗੜੀ ਸੋਗਾ ਯਾਂਗਬੇਨ ਯੇਂਬਾ @@ -467,6 +474,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ਨਹੀਂਗਾਤੂ ਕੈਂਟੋਨੀਜ਼ ਚੀਨੀ, ਕੈਂਟੋਨੀਜ਼ + ਜ਼ੁਆਂਗ ਮਿਆਰੀ ਮੋਰੋਕੇਨ ਟਾਮਾਜ਼ਿਕ ਚੀਨੀ ਚੀਨੀ, ਮੈਂਡਰਿਨ @@ -639,7 +647,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ਚੈੱਕ ਗਣਰਾਜ ਜਰਮਨੀ ਡੀਇਗੋ ਗਾਰਸੀਆ - ਜ਼ੀਬੂਤੀ + ਜਿਬੂਤੀ ਡੈਨਮਾਰਕ ਡੋਮੀਨਿਕਾ ਡੋਮੀਨਿਕਾਈ ਗਣਰਾਜ @@ -694,7 +702,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ਇਜ਼ਰਾਈਲ ਆਇਲ ਆਫ ਮੈਨ ਭਾਰਤ - ਬਰਤਾਨਵੀ ਹਿੰਦ ਮਹਾਂਸਾਗਰ ਖਿੱਤਾ + ਬਰਤਾਨਵੀ ਹਿੰਦ ਮਹਾਂਸਾਗਰ ਖਿੱਤਾ ਚਗੋਸ ਟਾਪੂ ਇਰਾਕ ਈਰਾਨ @@ -881,7 +889,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ਭਾਰਤੀ ਕੌਮੀ ਕੈਲੰਡਰ ਇਸਲਾਮੀ ਕੈਲੰਡਰ ਇਸਲਾਮੀ ਕੈਲੰਡਰ (ਸਾਰਨੀਬੱਧ, ਸਮਾਜਿਕ ਯੁੱਗ) - ਇਸਲਾਮੀ ਕੈਲੰਡਰ (ਸਾਊਦੀ ਅਰਬ, ਚੰਨ ਦਿਖਣਾ) + ਇਸਲਾਮੀ ਕੈਲੰਡਰ (ਸਾਊਦੀ ਅਰਬ, ਚੰਨ ਦਿਖਣਾ) ਇਸਲਾਮੀ ਕੈਲੰਡਰ (ਟੇਬਲਰ, ਖਗੋਲੀ ਯੁੱਗ) ਇਸਲਾਮੀ ਕੈਲੰਡਰ (ਅਮ ਅਲ-ਕੁਰਾ) (ISO-8601) ਕੈਲੰਡਰ @@ -962,7 +970,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [ੱ ੰ ਼ ੦ ੧ ੨ ੩ ੪ ੫ ੬ ੭ ੮ ੯ ੴ ੳ ਉ ਊ ਓ ਅ ਆ ਐ ਔ ੲ ਇ ਈ ਏ ਸ{ਸ਼} ਹ ਕ ਖ{ਖ਼} ਗ{ਗ਼} ਘ ਙ ਚ ਛ ਜ{ਜ਼} ਝ ਞ ਟ ਠ ਡ ਢ ਣ ਤ ਥ ਦ ਧ ਨ ਪ ਫ{ਫ਼} ਬ ਭ ਮ ਯ ਰ ਲ ਵ ੜ ੍ ਾ ਿ ੀ ੁ ੂ ੇ ੈ ੋ ੌ] - [\u200C\u200Dਃ ਂ ਁ {ਲ਼}] + [\u200C\u200Dਃ ਂ {ਲ਼}] [ੳ ਅ ੲ ਸ ਹ ਕ ਖ ਗ ਘ ਙ ਚ ਛ ਜ ਝ ਞ ਟ ਠ ਡ ਢ ਣ ਤ ਥ ਦ ਧ ਨ ਪ ਫ ਬ ਭ ਮ ਯ ਰ ਲ ਵ ੜ] [\- ‑ , . % ‰ + 0੦ 1੧ 2੨ 3੩ 4੪ 5੫ 6੬ 7੭ 8੮ 9੯] [\- ‐‑ – — , ; \: ! ? . '‘’ "“” ( ) \[ \] / \& ′ ″] @@ -970,7 +978,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -1129,6 +1137,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ E, d/M d MMM E, d MMM + d MMMM y G MMM y G QQQ y G @@ -1957,6 +1966,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ਵੇਲਾ {0} ਪ੍ਰਕਾਸ਼ ਵੇਲਾ {0} ਮਿਆਰੀ ਵੇਲਾ + + ਹੋਨੋਲੁਲੂ + ਕੋਔਰਡੀਨੇਟੇਡ ਵਿਆਪਕ ਵੇਲਾ @@ -2356,7 +2368,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ਬਰਲਿਨ - ਜ਼ੀਬੂਤੀ + ਜਿਬੂਤੀ ਕੋਪਨਹੇਗਨ @@ -2694,9 +2706,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ਉਲਾਨਬਾਤਰ - - ਚੋਇਲਬਾਲਸਨ - ਮਕਾਉ @@ -3096,9 +3105,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ਨੋਮ - - ਹੋਨੋਲੁਲੂ - ਐਂਕਰੇਜ @@ -3469,13 +3475,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ਚੀਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ - - - ਚੌਇਬਾਲਸਨ ਵੇਲਾ - ਚੌਇਬਾਲਸਨ ਮਿਆਰੀ ਵੇਲਾ - ਚੌਇਬਾਲਸਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ - - ਕ੍ਰਿਸਮਸ ਆਈਲੈਂਡ ਵੇਲਾ @@ -3722,6 +3721,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ਜਪਾਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ + + + ਕਜ਼ਾਖ਼ਸਤਾਨ ਵੇਲਾ + + ਪੂਰਬੀ ਕਜ਼ਾਖ਼ਸਤਾਨ ਵੇਲਾ @@ -4166,6 +4170,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ guru + + . + , + % + + + - + E + + , + @@ -4248,6 +4261,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + + ¤#,##,##0.00 + #,##,##0.00 + + + @@ -4295,8 +4316,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ¤¤ - {0} {1} - {0} {1} @@ -5107,9 +5126,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine + masculine ਮਿਲੀਗ੍ਰਾਮ ਪ੍ਰਤੀ ਡੈਸੀਲਿਟਰ {0} ਮਿਲੀਗ੍ਰਾਮ ਪ੍ਰਤੀ ਡੈਸੀਲਿਟਰ + {0} ਮਿਲੀਗ੍ਰਾਮ ਪ੍ਰਤੀ ਡੈਸੀਲਿਟਰ {0} ਮਿਲੀਗ੍ਰਾਮ ਪ੍ਰਤੀ ਡੈਸੀਲਿਟਰ + {0} ਮਿਲੀਗ੍ਰਾਮ ਪ੍ਰਤੀ ਡੈਸੀਲਿਟਰ masculine @@ -5369,9 +5391,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ਵੋਲਟ + feminine ਕਿਲੋਕੈਲੋਰੀਆਂ {0} ਕਿਲੋਕੈਲੋਰੀ + {0} ਕਿਲੋਕੈਲੋਰੀ {0} ਕਿਲੋਕੈਲੋਰੀਆਂ + {0} ਕਿਲੋਕੈਲੋਰੀਆਂ feminine @@ -5608,8 +5633,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ਮੀਲ-ਸਕੈਂਡਿਨੇਵਿਆਈ + masculine {0} ਪੁਆਇੰਟ + {0} ਪੁਆਇੰਟ {0} ਪੁਆਇੰਟ + {0} ਪੁਆਇੰਟ {0} ਸੋਲਰ ਰੇਡੀਅਸ @@ -5739,9 +5767,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ਹੌਰਸਪਾਵਰ + masculine ਮਿਲੀਮੀਟਰ ਪਾਰਾ {0} ਮਿਲੀਮੀਟਰ ਪਾਰਾ + {0} ਮਿਲੀਮੀਟਰ ਪਾਰਾ {0} ਮਿਲੀਮੀਟਰ ਪਾਰਾ + {0} ਮਿਲੀਮੀਟਰ ਪਾਰਾ ਪੌਂਡ ਪ੍ਰਤੀ ਵਰਗ ਇੰਚ @@ -6007,6 +6038,31 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ਇੰਪੀਰੀਅਲ ਚੁਥਾਈ ਗੈਲਨ {0} ਇੰਪੀਰੀਅਲ ਚੁਥਾਈ ਗੈਲਨ + + masculine + ਪ੍ਰਕਾਸ਼ + {0} ਪ੍ਰਕਾਸ਼ + {0} ਪ੍ਰਕਾਸ਼ + {0} ਪ੍ਰਕਾਸ਼ + {0} ਪ੍ਰਕਾਸ਼ + + + masculine + ਹਿੱਸਾ ਪ੍ਰਤੀ ਅਰਬ + {0} ਹਿੱਸਾ ਪ੍ਰਤੀ ਅਰਬ + {0} ਹਿੱਸਾ ਪ੍ਰਤੀ ਅਰਬ + {0} ਹਿੱਸਾ ਪ੍ਰਤੀ ਅਰਬ + {0} ਹਿੱਸਾ ਪ੍ਰਤੀ ਅਰਬ + + + feminine + ਰਾਤਾਂ + {0} ਰਾਤ + {0} ਰਾਤ + {0} ਰਾਤਾਂ + {0} ਰਾਤਾਂ + {0} ਪ੍ਰਤੀ ਰਾਤ + ਮੁੱਖ ਦਿਸ਼ਾ {0} ਪੂਰਬ @@ -6694,8 +6750,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ਕਿ.ਮੀ./ਘੰਟਾ - {0} ਕਿ.ਪ੍ਰ.ਘੰ. - {0} ਕਿ.ਪ੍ਰ.ਘੰ. + {0} ਕਿ.ਮੀ./ਘੰ. + {0} ਕਿ.ਮੀ./ਘੰ. ਮੀਟਰ/ਸਕਿੰਟ @@ -6704,8 +6760,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ਮੀਲ/ਘੰਟਾ - {0} ਮੀ.ਪ੍ਰ.ਘੰ. - {0} ਮੀ.ਪ੍ਰ.ਘੰ. + {0} ਮੀਲ/ਘੰ. + {0} ਮੀਲ/ਘੰ. ਡਿ. ਸੈਲਸੀਅਸ @@ -6893,6 +6949,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ਇੰਪ. ਚੁ. ਗੈ. {0} ਇੰਪ. ਚੁ. ਗੈ. + + ਪ੍ਰਕਾਸ਼ + {0} ਪ੍ਰਕਾਸ਼ + {0} ਪ੍ਰਕਾਸ਼ + + + ਹਿੱਸਾ/ਅਰਬ + + + ਰਾਤਾਂ + {0} ਰਾਤ + {0} ਰਾਤਾਂ + {0}/ਰਾਤ + ਦਿਸ਼ਾ {0}ਪੂ @@ -7118,10 +7188,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ਮਿ.ਬਾ. {0} ਮਿ.ਬਾ. + + {0} ਕਿ.ਮੀ./ਘੰ. + {0} ਕਿ.ਮੀ./ਘੰ. + {0}ਮੀ/ਸ {0}ਮੀ/ਸ + + {0} ਮੀਲ/ਘੰ. + {0} ਮੀਲ/ਘੰ. + °C @@ -7203,6 +7281,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ਇ.ਚੁ.ਗੈ. {0} ਇ.ਚੁ.ਗੈ. + + ਪ੍ਰਕਾਸ਼ + {0} ਪ੍ਰਕਾਸ਼ + {0} ਪ੍ਰਕਾਸ਼ + + + ਰਾਤਾਂ + {0} ਰਾਤ + {0} ਰਾਤਾਂ + {0}/ਰਾਤ + @@ -7243,8 +7332,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} — ਅਨੁਰੂਪਤਾ {0} — ਨੱਥੀ ਕੀਤਾ {0} — ਵਿਸਤ੍ਰਿਤ - {0} ਖੱਬੇ ਪਾਸੇ - {0} ਸੱਜੇ ਪਾਸੇ + {0} ਖੱਬੇ ਪਾਸੇ + {0} ਸੱਜੇ ਪਾਸੇ {0} — ਇਤਿਹਾਸਕ {0} — ਫੁਟਕਲ {0} — ਹੋਰ diff --git a/make/data/cldr/common/main/pap.xml b/make/data/cldr/common/main/pap.xml index c3fd361f473..dc4b0aec8a3 100644 --- a/make/data/cldr/common/main/pap.xml +++ b/make/data/cldr/common/main/pap.xml @@ -12,21 +12,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic + arabir + arabir (mundu) alemán - alemán (AT) - alemán (CH) ingles - ingles (AU) - ingles (CA) - ingles (GB) - ingles (US) spañó spañó di latino amérika - spañó (ES) - spañó (MX) franses - franses (CA) - franses (CH) hebreo hindi hmong @@ -38,23 +30,27 @@ CLDR data files are interpreted according to the LDML specification (http://unic koreano latin hulandes - hulandes (BE) Papiamentu polaco portugues - portugues (BR) - portugues (PT) + ruso + tailandes + turko + idioma deskonosí chines + + + mundu - Afrika + Áfrika Nort Amérika Zùit Amérika Wèst Afrika @@ -82,20 +78,26 @@ CLDR data files are interpreted according to the LDML specification (http://unic Nort Europa Wèst Europa Latino Amérika + Afghanistan + Antigua & Barbuda Anguilla + Albania Angola Argentina Austria Australia Aruba + Bosnia i Herzegowina Barbados Bèlgika Bulgaria + Saint Bathélemy Bermuda Bolivia - Antilla Hulandes + Antia Hulandes Brazil Bahamas + Isla Bouvet Botswana Belarus Belize @@ -112,35 +114,46 @@ CLDR data files are interpreted according to the LDML specification (http://unic Colombia Costa Rica Cuba - Cape Verde + Kabo Verde Kòrsou + Cheko + Repúblika di Cheko Alemania Dinamarka Dominica Repúblika Dominikano + Algeria Ecuador Estonia Egipto + Western Sahara Eritrea Spaña Etiopia Union Europeo Finlandia Fiji + Islanan Falkland + Islanan Falkland (Islas Malvinas) Micronesia Fransia Gran Bretaña Grenada + Guyana Franses Ghana Grunlandia Gambia Guinea Guadeloupe + Guinea Ekuatorial Gresia Guatemala Guam + Guinea-Bissau + Guyana Hong Kong Honduras + Kroasia Haiti Hungria Indonesia @@ -156,16 +169,28 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kenya Cambodia Comóros + St. Kitts i Nevis Nort Korea Surkorea + Islanan Caiman + Sint Lucia + Liechtenstein Sri Lanka Liberia Luxemburg Morocco + Monaco Moldavia + Montenegro + Saint Martin Madagascar Mali + Mongolia + Macao + Martinique + Montserrat Malta + Maldives Malawi México Mozambique @@ -180,21 +205,32 @@ CLDR data files are interpreted according to the LDML specification (http://unic Polinesia Franses Filipinas Polonia + St. Pierre & Miquelon Puerto Rico Portugal Paraguay Qatar + Romania + Servia Rusia Rwanda + Seychelles Sudan Suesia + Singapore + Sint Helena + Slovenia Slovakia Sierra Leone + San Marino Senegal Somalia Surinam El Salvador Sint Maarten + Turks i Caicos + Chad + Tailandia Turkia Trinidad i Tobago Taiwan @@ -203,7 +239,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic Nashonnan Uní Merka Uruguay + Sint Vicent i Grenadines Venezuela + Virgin Islands (Britániko) + Virgin Islands (Merikano) Vietnam Suráfrika Zambia @@ -266,11 +305,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic {1} {0} + + {1}, {0} + {1} {0} + + {1}, {0} + E, d @@ -423,7 +468,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - jan + yan feb mar apr @@ -462,6 +507,36 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + + 1 kuartal + 2 kuartal + 3 kuartal + 4 kuartal + + + di promé kuartal + di dos kuartal + di tres kuartal + di kuanter kuartal + + + + + 1 kuartal + 2 kuartal + 3 kuartal + 4 kuartal + + + di promé kuartal + di dos kuartal + di tres kuartal + di kuanter kuartal + + + Promé ku Kristu @@ -711,12 +786,21 @@ CLDR data files are interpreted according to the LDML specification (http://unic Sint John’s + + Kabo Verde + Kòrsou Repúblka Dominicana + + Lònden + + + Aténas + Herúsalèm @@ -732,12 +816,53 @@ CLDR data files are interpreted according to the LDML specification (http://unic Panamá + + Azóres + Sint Vincent Sint Thomas + + + Ora di Áfrika Sentral + + + + + Ora di Ost Áfrika + + + + + Ora di Azóres + Ora Normal di Azóres + Ora di Azóres Temporada di Zomer + + + + + Ora di Europa Sentral + Ora Normal di Europa Sentral + Ora di Europa Sentral Temporada di Zomer + + + + + Ora di Ost Europa + Ora Normal di Ost Europa + Ora di Ost Europa Temporada di Zomer + + + + + Ora di Wèst Europa + Ora Normal di Wèst Europa + Ora di Wèst Europa Temporada di Zomer + + Greenwich Mean Time @@ -746,6 +871,94 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + + 0 mil + 0 mil + 00 mil + 00 mil + 000 mil + 000 mil + 0 mion + 0 mion + 00 mion + 00 mion + 000 mion + 000 mion + 0 bion + 0 bion + 00 bion + 00 bion + 000 bion + 000 bion + 0 trion + 0 trion + 00 trion + 00 trion + 000 trion + 000 trion + + + + + 0mil + 0mil + 00mil + 00mil + 000mil + 000mil + 0mion + 0mion + 00mion + 00mion + 000mion + 000mion + 0bion + 0bion + 00bion + 00bion + 000bion + 000bion + 0trion + 0trion + 00trion + 00trion + 000trion + 000trion + + + + + + + ¤0mil + ¤0mil + ¤00mil + ¤00mil + ¤000mil + ¤000mil + ¤0mion + ¤0mion + ¤00mion + ¤00mion + ¤000mion + ¤000mion + ¤0bion + ¤0bion + ¤00bion + ¤00bion + ¤000bion + ¤000bion + ¤0trion + ¤0trion + ¤00trion + ¤00trion + ¤000trion + ¤000trion + + + Florin @@ -767,49 +980,263 @@ CLDR data files are interpreted according to the LDML specification (http://unic + {0} dia + {0} dianan di {0} + + + {0} pa {1} + + + {0}-{1} + + + {0} ost + {0} nort + {0} suit + {0} wèst + + direkshon + {0} ost + {0} nort + {0} suit + {0} wèst + + + + + {0} ost + {0} nort + {0} suit + {0} wèst - {0} i {1} + {0}, i {1} + {0} i {1} {0} òf {1} {0} òf {1} + + {0}, i {1} + {0} & {1} + + + {0}, i {1} + {0} i {1} + {0} i {1} + + {0} — tur + {0} — históriko + {0} — otro + bestia + bestia òf naturalesa + flecha + kurpa + edifisio + bullet òf strea + muhé + bandera + bandera + kuminda òf bebida + kurason + hòmber + símbolo musikal + naturalesa + number + opheto + otro + persona + lugá + planchi + puntuashon + señal òf símbolo + smiley òf persona + deporte + símbolo + biaha + biaha òf lugá + wer + + und pap + {0}{1} {title} {given} {given2} {surname} {surname2} + + {given} {surname} + + + {title} {given} {surname} + + + {given} {surname} + + + {given-informal-monogram-allCaps}{surname-monogram-allCaps} + + + {given} {surname} + + + {title} {surname} + + + {given-informal} + + + {given-monogram-allCaps}{surname-monogram-allCaps} + + + {given-monogram-allCaps}{surname-monogram-allCaps} + + + {given-initial}{given2-initial} {surname} + + + {given-informal} {surname-initial} + + + {title} {surname} + + + {given-informal} + + + {surname-monogram-allCaps} + + + {given-informal-monogram-allCaps} + {title} {surname} {surname2} {given} {given2} + + {surname} {given-informal} + + + {title} {surname} + + + {given-informal} + + + {surname-monogram-allCaps}{given-informal-monogram-allCaps} + + + {surname} {given} {given2-initial} {generation}, {credentials} + + + {surname} {given-informal} + + + {title} {surname} {given} + + + {given-informal} + + + {surname-monogram-allCaps} + + + {given-informal-monogram-allCaps} + + + {surname} {given-initial}{given2-initial} + + + {surname} {given-initial} + + + {title} {surname} + + + {given-informal} + + + {surname-monogram-allCaps} + + + {given-informal-monogram-allCaps} + + + {surname-core}, {given} + + + {surname}, {given-informal} + + + {surname-core}, {given} {given2-initial} {surname-prefix} + + + {surname}, {given-informal} + + + {surname-core}, {given-initial}{given2-initial} {surname-prefix} + + + {surname}, {given-informal} + - Zendaya + Jurriey - Irene + Jurriey + Martina Mari-Sue + Matilda + Martha + sr. Jackson Martina + Sontje + Henry Robert + ∅∅∅ + Martha + Vapor + Jr. + MP + + + Johnny + + + Käthe + Müller + + + Zäzilia + Hamish + Stöber + Prof. Dr. Ada Kornelia + Neele + César Martín + von + Brühl + González Domingo + Jr. + MD DDS diff --git a/make/data/cldr/common/main/pcm.xml b/make/data/cldr/common/main/pcm.xml index c35230097e0..a831a8400dd 100644 --- a/make/data/cldr/common/main/pcm.xml +++ b/make/data/cldr/common/main/pcm.xml @@ -46,10 +46,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic Bẹ́mba Lángwej Bẹ́na Lángwej Bọlgériá Lángwej + Haryanvi Lángwej Bhojpúri Bisláma Biní Siksíká Lángwej + Anii Lángwej Bambára Lángwej Bángla Lángwej Tibẹ́tan @@ -96,7 +98,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Swítzaland Haí Jámán Dọgríb Lángwej Zármá - Dogri + Dọgri Lówá Sorbiá Duála Lángwej Divẹhí @@ -173,6 +175,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Iban Lángwej Ibibio Lángwej Indoníshia Lángwej + Intalíngwe Lángwej Igbo Lángwej Síchuan Yi Wẹ́stán Kánádá Inuktítut @@ -225,6 +228,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Komi Lángwej Kọ́nish Lángwej Kwakwála Lángwej + Kuvi Lángwej Kiẹ́gíz Lángwej Látín Lángwej Ladíno Lángwej @@ -233,8 +237,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic Lẹzghián Lángwej Gánda Lángwej Limbógísh Lángwej + Ligurián Lángwej Lillooẹ́t Lángwej Lakótá Lángwej + Lombárd Lángwej Lingálá Lángwej Láo Lángwej Kriol fọ Luisiána @@ -331,6 +337,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Brazíl Pọtiugíz Yúróp Pọtiugíz Kẹchuá + Rajástháni Lángwej Rapánui Lángwej Rarotóngan Rohínjia @@ -381,6 +388,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Swahíli Komória Lángwej Síriák Lángwej + Silesián Lángwej tàmil Saútán Tutchónẹ Lángwej Tẹlugu @@ -420,7 +428,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Úzbẹk Vaí Vẹ́nda Lángwej + Venetián Lángwej Viẹ́tnám Lángwej + Mákhuwá Lángwej Vólapiuk Vúnjo Wálun Lángwej @@ -431,6 +441,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Wu Chainiz Kalmik Kọ́sa + Kangri Lángwej sóga Yangbẹn Yẹmba Lángwej @@ -439,6 +450,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Nhiingátu Lángwej Kántọn Lángwej Chainiz Kántọniz + Zhuáng Lángwej Gẹ́nárál Morókó Támazígt Lángwej Mandarín Chainíz Lángwej Chainiz, Mandarin @@ -482,14 +494,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + - + @@ -645,7 +657,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Gris Saút Jọ́jia an Saút Sándwích Aílands Guátẹmála - Guam + Guám Gíní-Bisáu Gayána Họng Kọng SAR @@ -661,15 +673,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ízrẹl Aíl ọf Man Índia - Brítísh Índián Óshen Tẹ́rẹ́tri + Brítísh Índián Óshen Tẹ́rẹ́tri + Chágos Archipelágo Irak - Iran + Irán Aísland Ítáli Jẹ́si Jamaíka Jọ́dan - Japan + Japán Kẹ́nya Kẹjístan Kambódia @@ -681,7 +694,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kuwét Kéman Aílands Kazakstan - Laos + Láos Lẹ́bánọn Sent Lúshia Líktẹ́nstain @@ -728,7 +741,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Náuru Niúẹ Niú Zíland - Oman + Omán Pánáma Pẹ́ru Frẹ́nch Poliníshia @@ -742,7 +755,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Pálẹ́staín Éria-dẹm Pálẹ́stain Pọ́túgal - Palau + Paláu Párágwue Kata Rimót Pát ọf Oshẹ́nia @@ -754,7 +767,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Saúdí Arébia Sólómọ́n Aílands Sẹ́chẹls - Sudan + Sudán Swídẹn Singapọ Sent Hẹlẹ́na @@ -775,7 +788,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Swáziland Trístán da Kúna Tọks an Kaíkọ́s Aílands - Chad + Chád Frẹ́nch Saútán Tẹ́rẹ́tris Tógo Taíland @@ -788,7 +801,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Tọ́ki Trínídad & Tobágo Tuválu - Taiwan + Taíwán Tanzánia Yukrein Yugánda @@ -836,9 +849,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ẹtiópiá Amẹtẹ́ Álẹ́m Kalénda Grẹ́górí Kalẹ́nda Híbrú Kalẹ́nda - Íslám Kalẹ́nda - Íslám Kalẹ́nda (Tébúlá Taip an Sívúl Taip) - Íslám Kalẹ́nda (Úmm al-Kúra) + Íslám Kalẹ́nda + Íslám Kalẹ́nda (Tébúlá Taip an Sívúl Taip) + Íslám Kalẹ́nda (Úmm al-Kúrá) ISO-8601 Kalẹ́nda Japán Kalẹ́nda Pẹ́shia Kalẹ́nda @@ -1729,7 +1742,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Mẹndóza - San Hwan + Sán Hwán Usuáya @@ -1737,6 +1750,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic La Riókha + + Sán Luis + Katamáka @@ -1803,6 +1819,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Maríahámn + + Báku + Sarayẹ́vo @@ -2361,9 +2380,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ulanbáta - - Choibálsan - Makáo @@ -3092,13 +3108,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Chaína Délaít Taim - - - Choibálsan Taim - Choibálsan Fíksd Taim - Choibálsan Họ́t Sízin Taim - - Krísmás Aíland Taim @@ -3337,6 +3346,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Japan Délaít Taim + + + Kazékstan Taim + + Íst Kazékstan Taim @@ -3853,8 +3867,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ¤ 000T - {0} {1} - {0} {1} @@ -4921,9 +4933,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} Kálọ́ri - Kálọ́ri-dẹm - {0} Kálọ́ri - {0} Kálọ́ri + Kálọ́ri-dẹm + {0} Kálọ́ri + {0} Kálọ́ri Kílojul-dẹm @@ -5014,18 +5026,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} Píksẹl Fọ Ẹ́vrí Inch - Pọint-dẹm fọ ích sẹntímíta - {0} Pọint fọ ích sẹntímíta - {0} Pọint fọ ích sẹntímíta + Pọint-dẹm fọ ích sẹntímíta + {0} Pọint fọ ích sẹntímíta + {0} Pọint fọ ích sẹntímíta - Pọint-Dẹm Fọ Ẹ́vrí Inch - {0} Pọint Fọ Ẹ́vrí Inch - {0} Pọint Fọ Ẹ́vrí Inch + Pọint-Dẹm Fọ Ẹ́vrí Inch + {0} Pọint Fọ Ẹ́vrí Inch + {0} Pọint Fọ Ẹ́vrí Inch - {0}dọt - {0}dọt + {0}dọt + {0}dọt Wọ́ld Rédiọs @@ -5508,6 +5520,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} Impẹ́riál Kwọt {0} Impẹ́riál Kwọt + + laít + {0} laít + {0} laít + + + pat fọ ích bíliọn + {0} pat fọ ích bíliọn + {0} pat fọ ích bíliọn + + + nait + {0} nait + {0} nait + {0}/nait + Kádínál Pọint {0} Ist @@ -5814,9 +5842,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} kal - Kal - {0} Kal - {0} Kal + Kal + {0} Kal + {0} Kal Kílojul @@ -5871,19 +5899,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} PFI - Pọints fọ ích sẹntímíta - {0} PFIS - {0} PFIS + Pọints fọ ích sẹntímíta + {0} PFIS + {0} PFIS - Pọints Fọ Ẹ́vrí Inch - {0} PFẸI - {0} PFẸI + Pọints Fọ Ẹ́vrí Inch + {0} PFẸI + {0} PFẸI - dọt - {0} dọt - {0} dọt + dọt + {0} dọt + {0} dọt m @@ -6187,6 +6215,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} Kt Imp {0} Kt Imp + + laít + {0} laít + {0} laít + + + pat/bíliọn + {0} pfib + {0} pfib + + + nait + {0} nait + {0} nait + {0}/nait + Pọint {0} E @@ -6385,6 +6429,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}dzp-Imp {0}dzp-Imp + + laít + {0}laít + {0}laít + + + pfib + {0}pfib + {0}pfib + + + nait + {0}nait + {0}nait + {0}/nait + {0}E {0}N @@ -6605,6 +6665,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic und pcm ko si ta te vi yue zh + {0}{1} {given} {given2} {surname} {credentials} @@ -6633,7 +6694,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {given-informal-monogram-allCaps} - {given-initial} {given2-initial} {surname} + {given-initial}{given2-initial} {surname} {given-informal} {surname-initial} @@ -6678,7 +6739,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {given-informal-monogram-allCaps} - {surname} {given-initial} {given2-initial} + {surname} {given-initial}{given2-initial} {surname} {given-initial} @@ -6702,7 +6763,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {surname}, {given-informal} - {surname}, {given-initial} {given2-initial} + {surname-core}, {given-initial}{given2-initial} {surname-prefix} {surname}, {given-informal} diff --git a/make/data/cldr/common/main/pl.xml b/make/data/cldr/common/main/pl.xml index 81ae0f081be..37e2116c208 100644 --- a/make/data/cldr/common/main/pl.xml +++ b/make/data/cldr/common/main/pl.xml @@ -84,6 +84,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ banjar kom siksika + anii bambara bengalski tybetański @@ -225,7 +226,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ średnio-wysoko-niemiecki guarani staro-wysoko-niemiecki - konkani (Goa) gondi gorontalo gocki @@ -337,6 +337,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komi kornijski kwakiutl + kuvi kirgiski łaciński ladyński @@ -366,7 +367,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ luba-lulua luiseno lunda - luo mizo luhya łotewski @@ -387,7 +387,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kreolski Mauritiusa malgaski średnioirlandzki - makua + makua-meetto meta marszalski maoryjski @@ -634,6 +634,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ wietnamski zachodnioflamandzki meński frankoński + makua wolapik wotiacki võro @@ -649,6 +650,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kałmucki khosa megrelski + kangri soga yao japski @@ -1228,8 +1230,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ narodowy kalendarz hinduski kalendarz muzułmański kalendarz muzułmański (metoda obliczeniowa) - kalendarz islamski (Arabia Saudyjska, metoda wzrokowa) - kalendarz islamski (metoda obliczeniowa, epoka astronomiczna) + kalendarz islamski (Arabia Saudyjska, metoda wzrokowa) + kalendarz islamski (metoda obliczeniowa, epoka astronomiczna) kalendarz muzułmański (Umm al-Kura) kalendarz ISO-8601 kalendarz japoński @@ -1376,7 +1378,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2336,6 +2338,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} tyg. temu {0} tyg. temu + tydz. {0} + + + tydz. {0} tydzień miesiąca @@ -2661,6 +2667,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ czas: {0} {0} (czas letni) {0} (czas standardowy) + + Honolulu + uniwersalny czas koordynowany @@ -2768,9 +2777,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Republika Zielonego Przylądka - - Curaçao - Wyspa Bożego Narodzenia @@ -2986,9 +2992,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ułan Bator - - Czojbalsan - Makau @@ -3049,15 +3052,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Lizbona - - Asunción - Katar - - Réunion - Bukareszt @@ -3154,9 +3151,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Dżuba - - São Tomé - Salwador @@ -3193,9 +3187,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Symferopol - - Honolulu - Beulah, Dakota Północna @@ -3205,9 +3196,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Center, Dakota Północna - - Monticello - Nowy Jork @@ -3472,13 +3460,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Chiny (czas letni) - - - czas Czojbalsan - Czojbalsan (czas standardowy) - Czojbalsan (czas letni) - - czas Wyspa Bożego Narodzenia @@ -3739,6 +3720,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ czas Pietropawłowsk Kamczacki letni + + + czas Kazachstan + + czas Kazachstan Wschodni @@ -4319,10 +4305,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 bln ¤ - {0} {1} - {0} {1} - {0} {1} - {0} {1} @@ -5108,11 +5090,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ dolara liberyjskiego - loti lesotyjskie - loti lesotyjskie - loti lesotyjskie - loti lesotyjskich - loti lesotyjskiego + loti sotyjskie + loti sotyjskie + loti sotyjskie + loti sotyjskich + loti sotyjskiego lit litewski @@ -6147,7 +6129,35 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ neuter - stała grawitacji + przyspieszenie ziemskie + przyspieszenie ziemskie + przyspieszenie ziemskie + przyspieszeniu ziemskiemu + przyspieszenia ziemskiego + przyspieszeniem ziemskim + przyspieszeniu ziemskim + przyspieszenie ziemskie + {0} przyspieszenia ziemskie + {0} przyspieszenia ziemskie + {0} przyspieszeniom ziemskim + {0} przyspieszeń ziemskich + {0} przyspieszeniami ziemskimi + {0} przyspieszeniach ziemskich + {0} przyspieszenia ziemskie + {0} przyspieszeń ziemskich + {0} przyspieszeń ziemskich + {0} przyspieszeniami ziemskimi + {0} przyspieszeń ziemskich + {0} przyspieszeniami ziemskimi + {0} przyspieszeniach ziemskich + {0} przyspieszeń ziemskich + {0} przyspieszenia ziemskiego + {0} przyspieszenia ziemskiego + {0} przyspieszenia ziemskiego + {0} przyspieszenia ziemskiego + {0} przyspieszenia ziemskiego + {0} przyspieszenia ziemskiego + {0} przyspieszenia ziemskiego inanimate @@ -6460,11 +6470,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} karata + inanimate miligramy na decylitr {0} miligram na decylitr + {0} miligram na decylitr + {0} miligrama na decylitr {0} miligramy na decylitr + {0} miligramy na decylitr + {0} miligramów na decylitr {0} miligramów na decylitr + {0} miligramów na decylitr + {0} miligramów na decylitr {0} miligrama na decylitr + {0} miligrama na decylitr + {0} miligrama na decylitr inanimate @@ -6814,7 +6833,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kilobity {0} kilobit {0} kilobit - {0} kilobita + {0} kilobitu {0} kilobity {0} kilobity {0} kilobitów @@ -6985,45 +7004,45 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} na tydzień - feminine - {0} doba - {0} dobę - {0} dobie - {0} doby - {0} dobą - {0} dobie - {0} dobo - {0} doby - {0} doby - {0} dobom - {0} dób - {0} dobami - {0} dobach - {0} dób - {0} dób - {0} dobom - {0} dób - {0} dobami - {0} dobach - {0} doby - {0} doby - {0} doby + inanimate + {0} dzień + {0} dzień + {0} dniowi + {0} dnia + {0} dniem + {0} dniu + {0} dniu + {0} dni + {0} dni + {0} dniom + {0} dni + {0} dniami + {0} dniach + {0} dni + {0} dni + {0} dniom + {0} dni + {0} dniami + {0} dniach + {0} dnia + {0} dnia + {0} dnia {0} na dobę - feminine - {0} doba - {0} dobę - {0} doby - {0} doby - {0} doby - {0} dób - {0} dób - {0} dób - {0} dób - {0} doby - {0} doby - {0} doby + inanimate + {0} dzień + {0} dzień + {0} dnia + {0} dni + {0} dni + {0} dni + {0} dni + {0} dni + {0} dni + {0} dnia + {0} dnia + {0} dnia feminine @@ -7911,11 +7930,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} mili skandynawskiej + inanimate punkty {0} punkt + {0} punkt + {0} punktu {0} punkty + {0} punkty + {0} punktów {0} punktów + {0} punktów + {0} punktów {0} punktu + {0} punktu + {0} punktu inanimate @@ -8402,11 +8430,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} konia mechanicznego + inanimate milimetry słupa rtęci {0} milimetr słupa rtęci + {0} milimetr słupa rtęci + {0} milimetra słupa rtęci {0} milimetry słupa rtęci + {0} milimetry słupa rtęci + {0} milimetrów słupa rtęci {0} milimetrów słupa rtęci + {0} milimetrów słupa rtęci + {0} milimetrów słupa rtęci {0} milimetra słupa rtęci + {0} milimetra słupa rtęci + {0} milimetra słupa rtęci funty na cal kwadratowy @@ -8441,18 +8478,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ inanimate milibary - {0} millibar - {0} millibar + {0} milibar + {0} milibar {0} milibara - {0} millibary - {0} millibary + {0} milibary + {0} milibary {0} milibarów - {0} millibarów - {0} millibarów - {0} millibarów - {0} millibara - {0} millibara - {0} millibara + {0} milibarów + {0} milibarów + {0} milibarów + {0} milibara + {0} milibara + {0} milibara feminine @@ -9279,7 +9316,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ feminine {0} łyżeczka {0} łyżeczkę - {0} łyżeczkce + łyżeczce {0} łyżeczki {0} łyżeczką {0} łyżeczce @@ -9337,7 +9374,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ imperialna łyżeczka deserowa {0} imperialna łyżeczka deserowa {0} imperialną łyżeczkę deserową - {0} imperialnej łyżeczkce deserowej + {0} imperialnej łyżeczce deserowej {0} imperialnej łyżeczki deserowej {0} imperialną łyżeczką deserową {0} imperialnej łyżeczce deserowej @@ -9376,7 +9413,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} kropli {0} kropli {0} kroplom - {0} kropel + {0} kropli {0} kroplami {0} kroplach {0} kropli @@ -9486,6 +9523,55 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} kwarty angielskiej {0} kwarty angielskiej + + neuter + światło + {0} światło + {0} światło + {0} światła + {0} światła + {0} światła + {0} świateł + {0} świateł + {0} świateł + {0} świateł + {0} światła + {0} światła + {0} światła + + + feminine + części na miliard + {0} część na miliard + {0} część na miliard + {0} części na miliard + {0} części na miliard + {0} części na miliard + {0} części na miliard + {0} części na miliard + {0} części na miliard + {0} części na miliard + {0} części na miliard + {0} części na miliard + {0} części na miliard + + + feminine + noce + {0} noc + {0} noc + {0} nocy + {0} noce + {0} noce + {0} nocy + {0} nocy + {0} nocy + {0} nocy + {0} nocy + {0} nocy + {0} nocy + {0}/noc + kierunek świata {0} długości geograficznej wschodniej @@ -9680,11 +9766,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}/tydz. - doby - {0} doba - {0} doby - {0} dób - {0} doby + dzień + {0} dzień + {0} dni + {0} dni + {0} dnia {0}/dobę @@ -10072,6 +10158,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} kwart ang. {0} kwarty ang. + + św. + {0} św. + {0} św. + {0} św. + {0} św. + + + noce + {0} noc + {0} noce + {0} nocy + {0} nocy + {0}/noc + kierunek {0}°E @@ -10135,7 +10236,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}/t. - doba {0} d. {0} d. {0} d. @@ -10185,6 +10285,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} u + km/h {0} km/h {0} km/h {0} km/h @@ -10238,6 +10339,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bbl + + św. + {0} św. + {0} św. + {0} św. + {0} św. + + + noce + {0} noc + {0} noce + {0} nocy + {0} nocy + {0}/noc + diff --git a/make/data/cldr/common/main/ps.xml b/make/data/cldr/common/main/ps.xml index 6ab37082d49..631e86a17e5 100644 --- a/make/data/cldr/common/main/ps.xml +++ b/make/data/cldr/common/main/ps.xml @@ -54,6 +54,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic بسلاما بینی سکسيکا + انۍ بمبارا بنگالي تبتي @@ -175,7 +176,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ابن ابیبیو انډونېزي - آسا نا جبة + آسا نا جبة اګبو سیچیان یی مغربی کینیډین انوکټیټ @@ -200,7 +201,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ميکونډي کابوورډیانو کورو - kgg + کینګا خاسې کویرا چینی ککوؤو @@ -228,6 +229,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic کومی کورنيشي Vote kwk + کووئ کرغيزي لاتیني لاډینو @@ -236,6 +238,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic لیګغیان ګانده لمبرگیانی + لینګورین lill لکوټا لومبارډ @@ -393,6 +396,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic کانګو سواهلی کومورياني سوریاني + سیلیسیان تامل جنوبي توچون تېليګو @@ -433,7 +437,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic اوزبکي وای ویندا + وینټیان وېتنامي + مکوه والاپوک وونجو والون @@ -444,6 +450,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic وو چینایی کالمک خوسا + کانګرو سوګا ینګبین یمبا @@ -452,6 +459,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic نینګاتو کانټوني چايني، کانټونيز + ژوانګ معياري مراکشي تمازيټ چیني چيني، ماندرين @@ -946,7 +954,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -1156,14 +1164,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic غ.م. غ.و. - - غ.م. - غ.و. - - - غ.م. - غ.و. - @@ -1301,7 +1301,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic صفر ربيع ربيع II - جماد ۱ + جماد جماد ۲ رجب شعبان @@ -1371,7 +1371,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic - پېر + دور + + + دور + + + دور کال @@ -1737,6 +1743,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic د {0} په وخت {0} رڼا ورځ وخت {0} معیاری وخت + + هینولولو + همغږى نړیوال وخت @@ -2471,9 +2480,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic اولان باټر - - چويبلسان - مکاو @@ -2873,9 +2879,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic نوم - - هینولولو - اینکریج @@ -3220,13 +3223,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic د چين د رڼا ورځې وخت - - - چوئیبیلسن وخت - چوئیبیلسن معیاری وخت - چوئیبیلسن اوړي وخت - - کريسمس ټاپو وخت @@ -3465,6 +3461,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic جاپان د ورځې روښانه وخت + + + قزاقستان وخت + + ختيځ قازقستان وخت @@ -3886,6 +3887,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic arabext + + ^ + : @@ -3956,8 +3960,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} ¤¤ - {0} {1} - {0} {1} @@ -5047,23 +5049,33 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} مياشتې - اونۍ + {0} اونۍ {0} اونۍ {0} په هره اونۍ کې {0} په هره ورځ کې + + {0} ساعت + {0} h + {0} په ساعت + {0} دقیقه {0} دقیقې {0} په دقیقه کې - {0} s + {0} ثانیه {0} ثانیې {0} هره ثانیه + + ملی ثانیې + {0} ملی ثانیه + {0} ملی ثانیې + مايکرو ثانيې @@ -5624,6 +5636,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} Imp. quart {0} Imp. quart + + شپي + {0}/شپه + {0}/شپه + {0}/شپه + کارډنل اړخ {0} ختيځ @@ -5780,6 +5798,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} sec {0} sec + + μsecs + amps @@ -5819,6 +5840,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic dpcm + + {0} ppi + {0} dpi + ټکي @@ -5974,6 +5999,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} چنه {0} چنه + + p/b + + + شپي + {0}/شپه + {0}/شپه + {0}/شپه + اړخ {0} خ @@ -5986,12 +6020,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic mpg UK - - {0} لسیز - {0} لسیز - - yr + کال {0} y {0} y @@ -6010,7 +6040,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}d - hr + ساعت دقیق @@ -6021,6 +6051,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} s {0} s + + μsec + {0} kWh/100km {0}kWh/100km @@ -6106,6 +6139,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}dsp-Imp {0}dsp-Imp + + p/b + + + شپي + {0}/شپه + {0}/شپه + {0}/شپه + {0}خ {0}ش diff --git a/make/data/cldr/common/main/pt.xml b/make/data/cldr/common/main/pt.xml index 83930b83c24..8f3936a6c0d 100644 --- a/make/data/cldr/common/main/pt.xml +++ b/make/data/cldr/common/main/pt.xml @@ -70,6 +70,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bini kom siksika + anii bambara bengali tibetano @@ -205,6 +206,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ haida do sul hebraico híndi + hinglish hiligaynon hitita hmong @@ -286,6 +288,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komi córnico kwakʼwala + kuvi quirguiz latim ladino @@ -296,9 +299,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lezgui luganda limburguês + ligure lillooet lacota - lombardo + lombardo lingala laosiano mongo @@ -311,7 +315,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ luba-lulua luiseno lunda - luo lushai luyia letão @@ -330,7 +333,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ morisyen malgaxe irlandês médio - macua + macua-mêto meta’ marshalês maori @@ -492,6 +495,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ comoriano siríaco clássico siríaco + silesiano tâmil tutchone do sul télugo @@ -538,9 +542,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ idioma desconhecido urdu uzbeque - vai venda + vêneto vietnamita + macua volapuque vótico vunjo @@ -554,6 +559,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ wu kalmyk xhosa + kandri lusoga yao yapese @@ -734,7 +740,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ África Ocidental América Central África Oriental - África do Norte + África Setentrional África Central África Meridional Américas @@ -1260,7 +1266,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2087,8 +2093,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ em {0} domingos - há {0} domigo - há {0} domigos + há {0} domingo + há {0} domingos @@ -2309,6 +2315,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ há {0} min. + + min + segundo agora @@ -2343,6 +2352,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Horário {0} Horário de Verão: {0} Horário Padrão: {0} + + Honolulu + Horário Universal Coordenado @@ -2435,9 +2447,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Cabo Verde - - Curaçao - Nicósia @@ -2716,9 +2725,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Mogadíscio - - São Tomé - Damasco @@ -2743,9 +2749,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kiev - - Honolulu - Beulah, Dakota do Norte @@ -3053,13 +3056,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Horário de Verão da China - - - Horário de Choibalsan - Horário Padrão de Choibalsan - Horário de Verão de Choibalsan - - Horário da Ilha Christmas @@ -3310,14 +3306,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Horário de Verão de Petropavlovsk-Kamchatski + + + Horário do Cazaquistão + + - Horário do Casaquistão Oriental + Horário do Cazaquistão Oriental - Horário do Casaquistão Ocidental + Horário do Cazaquistão Ocidental @@ -3849,8 +3850,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ 000 tri - {0} {1} - {0} {1} @@ -5584,6 +5583,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} kilates + masculine miligramas por decilitro {0} miligrama por decilitro {0} miligramas por decilitro @@ -6054,6 +6054,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} milhas escandinavas + masculine pontos tipográficos {0} ponto tipográfico {0} pontos @@ -6200,6 +6201,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} cavalos-vapor + masculine milímetros de mercúrio {0} milímetro de mercúrio {0} milímetros de mercúrio @@ -6276,6 +6278,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ nós + masculine Beaufort {0} Beaufort {0} Beaufort @@ -6498,6 +6501,25 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} quarto imperial {0} quartos imperiais + + feminine + luz + {0} luz + {0} luzes + + + feminine + partes por bilhão + {0} parte por bilhão + {0} partes por bilhão + + + feminine + noites + {0} noite + {0} noites + {0} por noite + direção cardeal {0} leste @@ -7021,6 +7043,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} impqt {0} impqt + + luz + {0} luz + {0} luzes + + + partes/bilhão + + + noites + {0} noite + {0} noites + {0}/noite + direção {0} L @@ -7311,6 +7347,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} fl. oz. {0} fl. oz. + + luz + {0} luz + {0} luzes + + + noites + {0} noite + {0} noites + {0}/noite + {0}L {0}O diff --git a/make/data/cldr/common/main/pt_PT.xml b/make/data/cldr/common/main/pt_PT.xml index 54bbe87de2a..21fc8f99113 100644 --- a/make/data/cldr/common/main/pt_PT.xml +++ b/make/data/cldr/common/main/pt_PT.xml @@ -65,7 +65,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ alemão suíço haúça hindi - hinglish arménio inuktitut canadiano ocidental cabardiano @@ -118,8 +117,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ tutchone do norte tamazigue do Atlas Central usbeque + véneto uólofe xosa + kangri soga ioruba tamazight marroquino padrão @@ -575,17 +576,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ sáb. - - - dom. - seg. - ter. - qua. - qui. - sex. - sáb. - - @@ -846,9 +836,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - trim. passado - este trim. - próximo trim. +{0} trim. +{0} trim. @@ -918,10 +905,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ dentro de {0} domingo dentro de {0} domingos - - há {0} domingo - há {0} domingos - domingo passado @@ -1706,13 +1689,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Hora de verão da China - - - Hora de Choibalsan - Hora padrão de Choibalsan - Hora de verão de Choibalsan - - Hora da Ilha do Natal @@ -1978,6 +1954,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Hora de verão de Petropavlovsk-Kamchatski + + + Hora do Cazaquistão + + Hora do Cazaquistão Oriental @@ -2948,9 +2929,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ dólares liberianos - loti lesotiano - loti lesotiano - lotis lesotianos + loti lesotiano + loti lesotiano + lotis lesotianos Litas da Lituânia @@ -3407,8 +3388,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}.º lugar - a {0} - o {0} + a {0} + o {0} @@ -3548,9 +3529,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} eletrões-volts - quilowatt-hora por 100 quilómetros - {0} quilowatt-hora por 100 quilómetros - {0} quilowatts-hora por 100 quilómetros + quilowatt-hora por 100 quilómetros + {0} quilowatt-hora por 100 quilómetros + {0} quilowatts-hora por 100 quilómetros {0} píxel @@ -3650,6 +3631,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} dracma {0} dracmas + + partes por mil milhões + {0} parte por mil milhões + {0} partes por mil milhões + {0} este {0} Oeste @@ -3733,9 +3719,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ eletrão-volt - kWh/100 km - {0} kWh/100 km - {0} kWh/100 km + kWh/100 km + {0} kWh/100 km + {0} kWh/100 km píxeis @@ -3880,6 +3866,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} quarto imp. {0} quartos imp. + + partes/mil milhões + {0} ppmm + {0} ppmm + {0} E @@ -3890,18 +3881,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}° - in² - {0}/in² + in² + {0}/in² - quilates + quilates {0}l/100km {0}l/100km - mpg imp. + mpg imp. {0}/d @@ -3910,13 +3901,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ min - {0}kWh/100 km - {0}kWh/100 km - - - ppp - {0} ppp - {0} ppp + {0}kWh/100 km + {0}kWh/100 km {0} pt @@ -3926,12 +3912,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ metro - milha + {0} mi + {0} mi pés {0}/pé + + pol. + pc @@ -3944,11 +3934,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} g - {0} ct - {0} ct + {0} ct + {0} ct - ″ Hg + ″ Hg {0}″ Hg {0}″ Hg @@ -3959,10 +3949,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ mi/h - - {0} B - {0} B - {0}°C {0}°C @@ -3975,18 +3961,23 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} l - chávena + chávena - fl oz - {0} fl oz - {0} fl oz + fl oz + {0} fl oz + {0} fl oz bbl - dram fl + dram fl + + + ppmm + {0} ppmm + {0} ppmm diff --git a/make/data/cldr/common/main/qu.xml b/make/data/cldr/common/main/qu.xml index f6994d2832b..40c46d2bf63 100644 --- a/make/data/cldr/common/main/qu.xml +++ b/make/data/cldr/common/main/qu.xml @@ -27,6 +27,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Obolo Simi Angika Arabe Simi + Musuq Estandar Arabe Simi Mapuche Simi Arapaho Árabe Najdi Simi @@ -472,7 +473,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - @@ -1362,40 +1362,211 @@ CLDR data files are interpreted according to the LDML specification (http://unic + wata qayna wata kunan wata hamuq wata + + wata + + {0} watapi + + + {0} qipa watapi + + + + wata + + {0} hamuq watapi + + + {0} ñawpaq watapi + + + trimestral nisqa qayna kimsa killa kunan kimsa killa hamuq kimsa killa + + {0} kimsa killapi + + + {0} qipa kimsa killa + + + + trimestral nisqa + + {0} kimsa killapi + + + {0} qipa kimsa killa + + + + trimestral nisqa + + {0} kimsa killapi + + + {0} qipa kimsa killa + + killa qayna killa kunan killa hamuq killa + + {0} killapi + + + {0} qipa killa + + + + killa + + {0} killapi + + + {0} qipa killa + + + + killa + + {0} killapi + + + {0} qipa killa + + simana qayna semana kunan semana hamuq semana + + {0} semanapi + + + {0} qipa semana + {0} semanapi + + simana + + {0} semanapi + + + {0} qipa semana + + + + simana + + {0} semanapi + + + {0} qipa semana + + + + killamanta simana + + + killamanta simana + + + killamanta simana + + punchaw qayna punchaw kunan punchaw paqarin + + {0} punchawpi + + + {0} qipa punchaw + + + + punchaw + + {0} punchawpi + + + {0} qipa punchaw + + + + punchaw + + {0} punchawpi + + + {0} qipa punchaw + + + + watamanta punchaw + + + watamanta punchaw + + + watamanta punchaw + + + simanamanta punchaw + + + simanamanta punchaw + + + simanamanta punchaw + + + killamanta llamkaypa punchawnin + + + killamanta llamkaypa punchawnin + + + killamanta llamkaypa punchawnin qayna domingo kunan domingo hamuq domingo - +{0} Domingopi + {0} Domingopi + + + {0} Qipa domingo + + + + + {0} Domingopi + + + {0} Qipa domingo + + + + + {0} Domingopi - -{0} Domingopi + {0} Qipa domingo @@ -1403,26 +1574,53 @@ CLDR data files are interpreted according to the LDML specification (http://unic kunan Lunes hamuq Lunes - +{0} Lunes + {0} Lunespi - -{0} Lunes + {0} Qipa lunes + + + + + {0} Lunespi + + + {0} Qipa lunes - qayna Lunes - kunan Lunes - next Monday + + {0} Lunespi + + + {0} Qipa lunes + qayna Martes kunan Martes hamuq Martes - +{0} Martes + {0} Martespi + + + {0} Qipa martes + + + + + {0} Martespi + + + {0} Qipa martes + + + + + {0} Martespi - -{0} Martes + {0} Qipa martes @@ -1430,10 +1628,26 @@ CLDR data files are interpreted according to the LDML specification (http://unic kunan Miércoles hamuq Miércoles - +{0} Miércoles + {0} Miércolespi + + + {0} Qipa miércoles + + + + + {0} Miércolespi + + + {0} Qipa miércoles + + + + + {0} Miércolespi - -{0} Miércoles + {0} Qipa miércoles @@ -1447,15 +1661,47 @@ CLDR data files are interpreted according to the LDML specification (http://unic -{0} Jueves + + + {0} Juevespi + + + {0} Qipa jueves + + + + + {0} Juevespi + + + {0} Qipa jueves + + Qayna Viernes kunan Viernes hamuq Viernes - +{0} Viernes + {0} Viernespi - -{0} Viernes + {0} Qipa viernes + + + + + {0} Viernespi + + + {0} Qipa viernes + + + + + {0} Viernespi + + + {0} Qipa viernes @@ -1463,25 +1709,134 @@ CLDR data files are interpreted according to the LDML specification (http://unic kunan Sábado hamuq Sábado - +{0} Sábado + {0} Sábadopi - -{0} Sábado + {0} Qipa sábado + + + + + {0} Sábadopi + + + {0} Qipa sábado - qayna Sábado - kunan Sábado - next Saturday + + {0} Sábadopi + + + {0} Qipa sábado + + + + a. m. / p. m. + + + a. m. / p. m. + + + a. m. / p. m. + ura kay hora + + {0} urapi + + + {0} qipa ura + + + + ura + + {0} urapi + + + {0} qipa ura + + + + ura + + {0} urapi + + + {0} qipa ura + + minutu kay minuto + + {0} minutupi + + + {0} qipa minutu + + + + minutu + + {0} minutupi + + + {0} qipa minutu + + + + minutu + + {0} minutupi + + + {0} qipa minutu + + + + segundu + + {0} segundupi + + + {0} qipa segundu + + + + segundu + + {0} segundupi + + + {0} qipa segundu + + + + segundu + + {0} segundupi + + + {0} qipa segundu + + + + ura pachapi + + + ura pachapi + + + ura pachapi + + Honolulu + Tiqsimuyuntin Tupachisqa Hora @@ -1741,9 +2096,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kiev - - Honolulu - Samarcanda @@ -1977,13 +2329,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Hora de Verano de China - - - Hora de Choybalsan - Hora Estandar de Choybalsan - Hora de Verano de Choybalsan - - Hora de Isla Christmas @@ -2222,6 +2567,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Hora de Verano de Japón + + + Hora de Kazajistán + + Hora de Kazajistán Oriental @@ -2657,7 +3007,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic #,##0.00;(#,##0.00) - {0} {1} @@ -3146,12 +3495,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic Libra de santa helena - Leone de Sierra Leona - Leone de sierra leona + Leone qullqi de Sierra Leona + Leone qullqi de Sierra Leona - Leone de Sierra Leona (1964—2022) - Leone de sierra leona (1964—2022) + Leone qullqi de Sierra Leona (1964–2022) + Leones qullqi de Sierra Leona (1964–2022) Chelín Somalí diff --git a/make/data/cldr/common/main/rif.xml b/make/data/cldr/common/main/rif.xml index f76062cca82..cb6718452cd 100644 --- a/make/data/cldr/common/main/rif.xml +++ b/make/data/cldr/common/main/rif.xml @@ -16,20 +16,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic taɛrabt tamaynut tabanɣaliyt talimant - talimant (AT) - talimant (CH) taglinzit - taglinzit (AU) - taglinzit (CA) - taglinzit (GB) - taglinzit (US) + taglinzit (UK) taseppanyut - taseppanyut talatinit - taseppanyut (ES) - taseppanyut (MX) tafransist - tafransist (CA) - tafransist (CH) tahindawiyt tayindusiyt tatayalt @@ -38,12 +28,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic tahulandiyt taflamant tapulandiyt - tapuruɣaliyt - tapuruɣaliyt (BR) - tapuruɣaliyt (PT) + tapurtuɣaliyt + tapurtuɣaliyt (brazil) + tapurtuɣaliyt (uruppa) Tarifit tarusiyt - taṭayiyt + taṭayit taṭurkiyt tutlayt nneɣni tatcinwiyt @@ -376,7 +366,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic taklindart tameslemt (ayur) kalandar n ISO-8601 asettef sṭandar - nnurwat irumiyyen + nnumrawat irumiyyen amitrik @@ -880,7 +870,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic E dd/MM – E dd/MM - E dd/MM + E dd/MM – E dd/MM MMM – MMM @@ -1101,63 +1091,967 @@ CLDR data files are interpreted according to the LDML specification (http://unic akud agraɣlan amezday + + andura + + + dubay + + + antigwa + + + angwiya + + + tiran + + + yiriban + + + lwanda + + + riyugayyigus + + + minduza + + + sanxwan + + + ucwaya + + + lariyuxa + + + sanluwis + + + katamarka + + + salṭa + + + jujuy + + + tutcuman + + + qurṭuba + + + bwinusayris + + + byinna + aruba + + maryaham + + + batci + + + sarayubu + barbadus + + bruksil + + + wagadugu + + + sufya + + + baḥrin + + + bujumbura + + + purtunubu + + + sanbartilimi + birmuda + + lappaz + + + kralendik + + + irunippi + + + riyubranku + + + purtubilhu + + + buwabista + + + manaws + + + kiyaba + + + santarim + + + campugrandi + + + bilim + + + aragwayna + + + sawpawlu + + + bahiya + + + furṭaliza + + + masiyu + + + risifi + + + nurunha + + + nassaw + + + gaburun + + + minsk + + + biliz + + + dawsun + + + waythurs + + + inuvik + + + fankufer + + + furt nilsun + + + dawsun krik + + + kristun + + + idmunṭun + + + swiftkurrent + + + kambridj bay + rigina + + winippig + + + rizulṭ + + + rankinilit + atikukan + + ṭurunṭu + + + ikaluwit + + + muktun + + + halifax + + + guzbay + + + glasbay + + + blank-sablun + + + sanjuns + + + kincasa + + + lubumbaci + + + bangi + + + brazabil + + + zyurix + + + abidjan + + + ister + + + puntarinas + + + santyagu + + + diwala + + + buguṭa + kustarika havana + + qabubirdi + + + kuracaw + + + nikuzya + + + famagusṭa + + + pprag + + + buzingen + + + birlin + + + djibuti + + + kuppenhagen + duminika + + santudumingu + + + ddzayer + + + galapagus + + + gwayakil + + + talin + + + lqahira + + + leɛyun + + + asmara + + + kanari + + + sebta + + + madri + + + adisababa + + + hilsinki + + + sṭanli + + + faraw + + + pari + + + liberbil + + + + akud n uzil n uglinzi + + lundun + + + grinada + + + tbilisi + + + kayen + + + girensiy + + + akra + + + jabalṭariq + + + tula + nuk + + iṭukurturmit + + + danmarkshaven + + + banjul + + + kunakri + + + gwadlup + + + malabu + + + atina + + + sawtgyurgya + gwatimala + + bisaw + + + guyana + + + tigicigalpa + + + zagreb + + + ppurtuprins + + + budabist + + + + akud anaway ayirlandi + + dablin + + + lquds + + + tagzirt n man + + + ttcagus + + + baɣdad + + + reykjavik + + + ruma + + + jirsiy + + + jamayka + + + ɛamman + + + nayrubi + + + kumuru + + + sankits + + + kuwit + sayman + + bayrut + + + sanlucya + + + vaduts + + + munrubya + + + maziru + + + filinyus + + + lluksemburg + + + riga + + + ṭarablus + + + ddarbida + + + munaku + + + cisinaw + + + pudgurisa + + + mariguṭ + + + antananaribu + + + skupya + + + bamaku + + + martinik + + + nwakcuṭ + + + muntsirat + + + malta + + + muriṭanya + + + blanṭayr + + + tiywana + + + hirmusiyyu + + + tidad xwaris + + + mazatlan + + + ciwawa + + + bayya di bandiras + + + ujinaga + + + muntiri + + + miksiku siti + + + matamurus + + + mirida + + + kankun + + + maputu + + + binhuwk + + + nyamiy + + + lagus + + + mangwa + + + amesterdem + + + uslu + + + masqaṭ + panama + + lima + + + warsaw + + + mikilon + + + ppurturiku + + + ɣezza + + + lxalil + + + azures + + + madiyra + + + licbuna + + + asuntyun + + + qaṭar + + + riyunyun + + + buxarist + + + bilgrad + + + kaliningrad + + + musku + + + bulgugrad + + + saratub + + + astraxan + + + ulyanubesk + + + kirub + + + samara + + + yekaterinburg + + + omsek + + + nubusibiresk + + + barnul + + + tumsek + + + nubukuznitesk + + + krasnuyarsk + + + irkutsek + + + cita + + + yatutsek + + + bladibustuk + + + xandiga + + + saxalin + + + ustnira + + + magadan + + + sridnikulimsek + + + kamcatka + + + anadic + + + kigali + + + riyad + + + mahi + + + xarṭum + + + sṭukhulm + + + santhilina + + + lyubliyana + + + lunyabyan + + + bratislaba + + + fritawn + + + sanmarinu + + + dakar + + + mugadicu + + + paramaribu + + + juba + + + sawtumi + + + ssalbadur + + + bariyyu n luwerprans + + + dimacq + + + mbaban + + + grandṭurk + + + njamina + + + kergilan + + + lumi + + + tunes + + + sṭanbul + + + ppurtufspin + + + daressalam + + + kyib + + + simfarupul + + + kampala + adak + + num + + + ancuraj + yakutat sitka + + junaw + + + mitlakatla + + + lusanjlus + + + boysi + + + finiks + dinver + + bulah, nurtdakuṭa + + + nyusalem, nurtdakuṭa + + + santer, nurtdakuṭa + cikagu + + minumini + + + vinsanz, indyana + + + pitersburg, indyana + + + tilsiti, indyana + + + nux, indyana + + + winamak, indyana + + + maringu, indyana + indyanapulis + + lwisvil + + + vivi, indyana + + + muntitcilu, kinṭaki + ditruyd + + nyuyurk + + + muntibidyu + + + lbatikan + + + sanvinsint + + + karakas + + + ṭurṭula + + + sanṭumas + + + ɛadan + + + mayuṭ + + + djuhanasburg + + + lusaka + + + harari + + + + akud n tefriqt n lwesṭ + + + + + akud n tefriqt n ccerq + + + + + akud n tefriqt n wadday + + + + + akud n tefriqt n lɣerb + akud anaway n tefriqt n lɣerb + akud n uzil n tefriqt n lɣerb + + akud n alaska @@ -1200,6 +2094,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic akud n uzil n pasifik + + + akud n waɛrab + akud anaway n waɛrab + akud n uzil n waɛrab + + akud n arjentina @@ -1207,6 +2108,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic akud n uzil n arjentina + + + akud n lɣerb n arjentina + akud anaway n lɣerb n arjentina + akud n uzil n lɣerb n arjentina + + + + + akud n arminya + akud anaway n arminya + akud n uzil n arminya + + akud n atlantik @@ -1214,6 +2129,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic akud n uzil n atlantik + + + akud n azrabidjan + akud anaway n azrabidjan + akud n uzil n azrabidjan + + + + + akud n azures + akud anaway n azuresn azures + akud n uzil n azures + + akud n bulivya @@ -1226,6 +2155,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic akud n uzil n brazilya + + + akud n qabubirdi + akud anaway n qabubirdi + akud n uzil n qabubirdi + + akud n cili @@ -1233,6 +2169,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic akud n uzil n cili + + + akud n tcina + akud anaway n tcina + akud n uzil n tcina + + akud n kulumbya @@ -1247,16 +2190,73 @@ CLDR data files are interpreted according to the LDML specification (http://unic akud n uzil n kuba + + + akud n isterayland + akud anaway n isterayland + akud n uzil n isterayland + + akud n ikwadur + + + akud n wuruppa n lwesṭ + akud anaway n wuruppa n lwesṭ + akud n uzil n wuruppa n lwesṭ + + + + + akud n wuruppa n ccerq + akud anaway n wuruppa n ccerq + akud n uzil n wuruppa n ccerq + + + + + akud n wuruppa tacerqect qaɛ + + + + + akud n wuruppa n lɣerb + akud anaway n wuruppa n lɣerb + akud n uzil n wuruppa n lɣerb + + + + + akud n falkland + akud anaway n falkland + akud n uzil n falkland + + akud n ɣana tafransist + + + akud n tiwaddayin tifransisin + + + + + akud n galappagus + + + + + akud n jyurjya + akud anaway n jyurjya + akud n uzil n jyurjya + + GMT @@ -1276,6 +2276,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic akud n uzil n lwesṭ n grinland + + + akud n lxalij + + akud n guyana @@ -1288,6 +2293,39 @@ CLDR data files are interpreted according to the LDML specification (http://unic akud n uzil n haway-alucyan + + + akud n hungkung + akud anaway n hungkung + akud n uzil n hungkung + + + + + akud n hubd + akud anaway n hubd + akud n uzil n hubd + + + + + akud n lebḥer ahindi + + + + + akud n yisrayil + akud anaway n yisrayil + akud n uzil n yisrayil + + + + + akud n mawritus + akud anaway n mawritus + akud n uzil n mawritus + + akud n pasifik amiksikan @@ -1295,6 +2333,73 @@ CLDR data files are interpreted according to the LDML specification (http://unic akud n uzil n pasifik amiksikan + + + akud n nyuw fawemd land + akud anaway n nyuw fawemd land + akud n uzil n nyuw fawemd land + + + + + akud n firnardu dinurunha + akud anaway n firnardu dinurunha + akud n uzil n firnardu dinurunha + + + + + akud n pparagway + akud anaway n pparagway + akud n uzil n pparagway + + + + + akud n ppiru + akud anaway n ppiru + akud n uzil n ppiru + + + + + akud n sant-pyiɣ d mikilun + akud anaway n sant-pyiɣ d mikilun + akud n uzil n sant-pyiɣ d mikilun + + + + + akud n riyunyun + + + + + akud n saycal + + + + + akud n jyurjya n wadday + + + + + akud n surinam + + + + + akud n urugway + akud anaway n urugway + akud n uzil n urugway + + + + + akud n vinzwila + + akud n yukun @@ -1307,6 +2412,24 @@ CLDR data files are interpreted according to the LDML specification (http://unic ,   + + + + 0 alaf + 00 alaf + 000 alaf + 0 melyun + 00 melyun + 000 melyun + 0 melyar + 00 melyar + 000 melyar + 0 trilyun + 00 trilyun + 000 trilyun + + + @@ -1320,7 +2443,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic #,##0.00 ¤ - {0} {1} @@ -1404,7 +2526,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - {0} xef {1} + {0} di {1} amnad akardinal @@ -1442,10 +2564,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}, {1} {0} niɣ {1} - - {0}, {1} - {0}, {1} - {0} {1} {0} {1} diff --git a/make/data/cldr/common/main/rm.xml b/make/data/cldr/common/main/rm.xml index 0b7bc117042..fb1b4f6dd93 100644 --- a/make/data/cldr/common/main/rm.xml +++ b/make/data/cldr/common/main/rm.xml @@ -1879,9 +1879,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Luxemburg - - Tschoibalsan - Brades diff --git a/make/data/cldr/common/main/ro.xml b/make/data/cldr/common/main/ro.xml index 633dacc18c1..2bef5272eca 100644 --- a/make/data/cldr/common/main/ro.xml +++ b/make/data/cldr/common/main/ro.xml @@ -69,6 +69,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bini kom siksika + anii bambara bengaleză tibetană @@ -288,6 +289,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komi cornică kwakʼwala + kuvi kârgâză latină ladino @@ -298,9 +300,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lezghian ganda limburgheză - liguriană + liguriană lillooet lakota + lombardă lingala laoțiană mongo @@ -313,7 +316,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ luba-lulua luiseno lunda - luo mizo luyia letonă @@ -494,6 +496,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ comoreză siriacă clasică siriacă + sileziană tamilă tutchone de sud telugu @@ -540,10 +543,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ limbă necunoscută urdu uzbecă - vai venda - venetă + venetă vietnameză + makhuwa volapuk votică vunjo @@ -557,6 +560,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ chineză wu calmucă xhosa + kangri soga yao yapeză @@ -1409,7 +1413,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2875,6 +2879,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ora din {0} Ora de vară din {0} Ora standard din {0} + + Honolulu + Timpul universal coordonat @@ -2913,9 +2920,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Capul Verde - - Curaçao - Praga @@ -3056,12 +3060,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Lisabona - - Asunción - - - Réunion - București @@ -3134,9 +3132,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kiev - - Honolulu - Beulah, Dakota de Nord @@ -3402,13 +3397,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ora de vară a Chinei - - - Ora din Choibalsan - Ora standard din Choibalsan - Ora de vară din Choibalsan - - Ora din Insula Christmas @@ -3672,6 +3660,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ora de vară din Petropavlovsk-Kamciațki + + + Ora din Kazahstan + + Ora din Kazahstanul de Est @@ -5802,7 +5795,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ feminine {0} forță g - {0} forță g + unei forțe g {0} forță g {0} forță g {0} forță g @@ -5957,10 +5950,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} de carate + neuter miligrame pe decilitru {0} miligram pe decilitru + unui miligram pe decilitru {0} miligrame pe decilitru + {0} miligrame pe decilitru {0} de miligrame pe decilitru + {0} de miligrame pe decilitru masculine @@ -6345,10 +6342,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} de volți + feminine kilocalorii {0} kilocalorie + unei kilocalorii {0} kilocalorii + {0} kilocalorii {0} de kilocalorii + {0} de kilocalorii feminine @@ -6483,6 +6484,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine em tipografic + {0} em + unui em + {0} em + {0} em + {0} de em + {0} de em masculine @@ -6695,10 +6702,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} de mile scandinave + neuter puncte {0} punct tipografic + unui punct tipografic {0} puncte tipografice + {0} puncte tipografice {0} de puncte tipografice + {0} de puncte tipografice raze solare @@ -6914,10 +6925,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} de cai putere + masculine milimetri coloană de mercur {0} milimetru coloană de mercur + unui milimetru coloană de mercur {0} milimetri coloană de mercur + {0} milimetri coloană de mercur {0} de milimetri coloană de mercur + {0} de milimetri coloană de mercur livre pe inch pătrat @@ -7330,6 +7345,37 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} quarte imperiale {0} de quarte imperiale + + feminine + lumină + {0} lumină + {0} lumină + {0} lumină + {0} lumină + {0} lumină + {0} lumină + + + feminine + părți pe miliard + {0} parte pe miliard + unei părți pe miliard + {0} părți pe miliard + {0} părți pe miliard + {0} de părți pe miliard + {0} de părți pe miliard + + + feminine + noapte + {0}/noapte + unei nopți + {0} nopți + {0} nopți + {0} de nopți + {0} de nopți + {0}/noapte + punct cardinal {0} E @@ -7742,6 +7788,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} qt imp. {0} qt imp. + + lumină + {0} lumină + {0} lumină + {0} lumină + + + părți/miliard + + + nopți + {0} noapte + {0} nopți + {0} de nopți + {0}/noapte + direcție {0}V @@ -7920,6 +7982,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} qt im {0} qt im + + lumină + {0} lumină + {0} lumină + {0} lumină + + + părți/miliard + + + nopți + {0} noapte + {0} nopți + {0} de nopți + {0}/noapte + @@ -7954,8 +8032,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} – compatibilitate {0} – încadrate {0} – set extins - {0} orientate spre stânga - {0} orientate spre dreapta + {0} orientate spre stânga + {0} orientate spre dreapta {0} – istorice {0} – diverse {0} – altele diff --git a/make/data/cldr/common/main/root.xml b/make/data/cldr/common/main/root.xml index 12c883da38f..5c87d314864 100644 --- a/make/data/cldr/common/main/root.xml +++ b/make/data/cldr/common/main/root.xml @@ -64,7 +64,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [££ ₤] [¥¥] [₩₩] - [₹ ₨ {Rp} {Rs}] + [₹ {Rp} {Rs}₨] [\--﹣ ‐‑ ‒ – −⁻₋ ➖] @@ -453,7 +453,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ U MMM U MMM d r(U) - r-MM-dd r(U) r-MM r-MM-dd @@ -483,11 +482,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} – {1} - h B – h B + h B – h B h–h B - h:mm B – h:mm B + h:mm B – h:mm B h:mm–h:mm B h:mm–h:mm B @@ -495,14 +494,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ d–d - h a – h a - h–h a + h a – h a + h–h a HH–HH - h:mm a – h:mm a + h:mm a – h:mm a h:mm–h:mm a h:mm–h:mm a @@ -511,7 +510,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ HH:mm–HH:mm - h:mm a – h:mm a v + h:mm a – h:mm a v h:mm–h:mm a v h:mm–h:mm a v @@ -520,8 +519,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ HH:mm–HH:mm v - h a – h a v - h–h a v + h a – h a v + h–h a v HH–HH v @@ -530,58 +529,58 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ MM–MM - MM-dd – MM-dd - MM-dd – MM-dd + MM-dd – MM-dd + MM-dd – MM-dd - MM-dd, E – MM-dd, E - MM-dd, E – MM-dd, E + MM-dd, E – MM-dd, E + MM-dd, E – MM-dd, E LLL–LLL MMM d–d - MMM d – MMM d + MMM d – MMM d - MMM d, E – MMM d, E - MMM d, E – MMM d, E + MMM d, E – MMM d, E + MMM d, E – MMM d, E U–U - y-MM – y-MM - y-MM – y-MM + y-MM – y-MM + y-MM – y-MM - y-MM-dd – y-MM-dd - y-MM-dd – y-MM-dd - y-MM-dd – y-MM-dd + y-MM-dd – y-MM-dd + y-MM-dd – y-MM-dd + y-MM-dd – y-MM-dd - y-MM-dd, E – y-MM-dd, E - y-MM-dd, E – y-MM-dd, E - y-MM-dd, E – y-MM-dd, E + y-MM-dd, E – y-MM-dd, E + y-MM-dd, E – y-MM-dd, E + y-MM-dd, E – y-MM-dd, E U MMM–MMM - U MMM – U MMM + U MMM – U MMM U MMM d–d - U MMM d – MMM d - U MMM d – U MMM d + U MMM d – MMM d + U MMM d – U MMM d - U MMM d, E – MMM d, E - U MMM d, E – MMM d, E - U MMM d, E – U MMM d, E + U MMM d, E – MMM d, E + U MMM d, E – MMM d, E + U MMM d, E – U MMM d, E U MMMM–MMMM - U MMMM – U MMMM + U MMMM – U MMMM @@ -957,7 +956,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ G y MMM G y MMM d G y MMM d, E - h a + h a HH h:mm a HH:mm @@ -999,11 +998,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} – {1} - h B – h B + h B – h B h–h B - h:mm B – h:mm B + h:mm B – h:mm B h:mm–h:mm B h:mm–h:mm B @@ -1011,52 +1010,52 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ d–d - G y – G y + G y – G y G y–y - GGGGG y-MM – GGGGG y-MM - GGGGG y-MM – y-MM - GGGGG y-MM – y-MM + GGGGG y-MM – GGGGG y-MM + GGGGG y-MM – y-MM + GGGGG y-MM – y-MM - GGGGG y-MM-dd – y-MM-dd - GGGGG y-MM-dd – GGGGG y-MM-dd - GGGGG y-MM-dd – y-MM-dd - GGGGG y-MM-dd – y-MM-dd + GGGGG y-MM-dd – y-MM-dd + GGGGG y-MM-dd – GGGGG y-MM-dd + GGGGG y-MM-dd – y-MM-dd + GGGGG y-MM-dd – y-MM-dd - GGGGG y-MM-dd, E – y-MM-dd, E - GGGGG y-MM-dd, E – GGGGG y-MM-dd, E - GGGGG y-MM-dd, E – y-MM-dd, E - GGGGG y-MM-dd, E – y-MM-dd, E + GGGGG y-MM-dd, E – y-MM-dd, E + GGGGG y-MM-dd, E – GGGGG y-MM-dd, E + GGGGG y-MM-dd, E – y-MM-dd, E + GGGGG y-MM-dd, E – y-MM-dd, E - G y MMM – G y MMM + G y MMM – G y MMM G y MMM–MMM - G y MMM – y MMM + G y MMM – y MMM G y MMM d–d - G y MMM d – G y MMM d - G y MMM d – MMM d - G y MMM d – y MMM d + G y MMM d – G y MMM d + G y MMM d – MMM d + G y MMM d – y MMM d - G y MMM d, E – MMM d, E - G y MMM d, E – G y MMM d, E - G y MMM d, E – MMM d, E - G y MMM d, E – y MMM d, E + G y MMM d, E – MMM d, E + G y MMM d, E – G y MMM d, E + G y MMM d, E – MMM d, E + G y MMM d, E – y MMM d, E - h a – h a - h–h a + h a – h a + h–h a HH–HH - h:mm a – h:mm a + h:mm a – h:mm a h:mm–h:mm a h:mm–h:mm a @@ -1065,7 +1064,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ HH:mm–HH:mm - h:mm a – h:mm a v + h:mm a – h:mm a v h:mm–h:mm a v h:mm–h:mm a v @@ -1074,8 +1073,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ HH:mm–HH:mm v - h a – h a v - h–h a v + h a – h a v + h–h a v HH–HH v @@ -1084,58 +1083,58 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ MM–MM - MM-dd – MM-dd - MM-dd – MM-dd + MM-dd – MM-dd + MM-dd – MM-dd - MM-dd, E – MM-dd, E - MM-dd, E – MM-dd, E + MM-dd, E – MM-dd, E + MM-dd, E – MM-dd, E LLL–LLL MMM d–d - MMM d – MMM d + MMM d – MMM d - MMM d, E – MMM d, E - MMM d, E – MMM d, E + MMM d, E – MMM d, E + MMM d, E – MMM d, E G y–y - GGGGG y-MM – y-MM - GGGGG y-MM – y-MM + GGGGG y-MM – y-MM + GGGGG y-MM – y-MM - GGGGG y-MM-dd – y-MM-dd - GGGGG y-MM-dd – y-MM-dd - GGGGG y-MM-dd – y-MM-dd + GGGGG y-MM-dd – y-MM-dd + GGGGG y-MM-dd – y-MM-dd + GGGGG y-MM-dd – y-MM-dd - GGGGG y-MM-dd, E – y-MM-dd, E - GGGGG y-MM-dd, E – y-MM-dd, E - GGGGG y-MM-dd, E – y-MM-dd, E + GGGGG y-MM-dd, E – y-MM-dd, E + GGGGG y-MM-dd, E – y-MM-dd, E + GGGGG y-MM-dd, E – y-MM-dd, E G y MMM–MMM - G y MMM – y MMM + G y MMM – y MMM G y MMM d–d - G y MMM d – MMM d - G y MMM d – y MMM d + G y MMM d – MMM d + G y MMM d – y MMM d - G y MMM d, E – MMM d, E - G y MMM d, E – MMM d, E - G y MMM d, E – y MMM d, E + G y MMM d, E – MMM d, E + G y MMM d, E – MMM d, E + G y MMM d, E – y MMM d, E G y MMMM–MMMM - G y MMMM – y MMMM + G y MMMM – y MMMM @@ -1399,7 +1398,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ G y MMM G y MMM d G y MMM d, E - h a + h a HH h:mm a HH:mm @@ -1446,11 +1445,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} – {1} - h B – h B + h B – h B h–h B - h:mm B – h:mm B + h:mm B – h:mm B h:mm–h:mm B h:mm–h:mm B @@ -1458,52 +1457,52 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ d–d - G y – G y + G y – G y G y–y - GGGGG y-MM – GGGGG y-MM - GGGGG y-MM – y-MM - GGGGG y-MM – y-MM + GGGGG y-MM – GGGGG y-MM + GGGGG y-MM – y-MM + GGGGG y-MM – y-MM - GGGGG y-MM-dd – y-MM-dd - GGGGG y-MM-dd – GGGGG y-MM-dd - GGGGG y-MM-dd – y-MM-dd - GGGGG y-MM-dd – y-MM-dd + GGGGG y-MM-dd – y-MM-dd + GGGGG y-MM-dd – GGGGG y-MM-dd + GGGGG y-MM-dd – y-MM-dd + GGGGG y-MM-dd – y-MM-dd - GGGGG y-MM-dd, E – y-MM-dd, E - GGGGG y-MM-dd, E – GGGGG y-MM-dd, E - GGGGG y-MM-dd, E – y-MM-dd, E - GGGGG y-MM-dd, E – y-MM-dd, E + GGGGG y-MM-dd, E – y-MM-dd, E + GGGGG y-MM-dd, E – GGGGG y-MM-dd, E + GGGGG y-MM-dd, E – y-MM-dd, E + GGGGG y-MM-dd, E – y-MM-dd, E - G y MMM – G y MMM + G y MMM – G y MMM G y MMM–MMM - G y MMM – y MMM + G y MMM – y MMM G y MMM d–d - G y MMM d – G y MMM d - G y MMM d – MMM d - G y MMM d – y MMM d + G y MMM d – G y MMM d + G y MMM d – MMM d + G y MMM d – y MMM d - G y MMM d, E – MMM d, E - G y MMM d, E – G y MMM d, E - G y MMM d, E – MMM d, E - G y MMM d, E – y MMM d, E + G y MMM d, E – MMM d, E + G y MMM d, E – G y MMM d, E + G y MMM d, E – MMM d, E + G y MMM d, E – y MMM d, E - h a – h a - h–h a + h a – h a + h–h a HH–HH - h:mm a – h:mm a + h:mm a – h:mm a h:mm–h:mm a h:mm–h:mm a @@ -1512,7 +1511,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ HH:mm–HH:mm - h:mm a – h:mm a v + h:mm a – h:mm a v h:mm–h:mm a v h:mm–h:mm a v @@ -1521,8 +1520,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ HH:mm–HH:mm v - h a – h a v - h–h a v + h a – h a v + h–h a v HH–HH v @@ -1531,58 +1530,58 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ MM–MM - MM-dd – MM-dd - MM-dd – MM-dd + MM-dd – MM-dd + MM-dd – MM-dd - MM-dd, E – MM-dd, E - MM-dd, E – MM-dd, E + MM-dd, E – MM-dd, E + MM-dd, E – MM-dd, E LLL–LLL MMM d–d - MMM d – MMM d + MMM d – MMM d - MMM d, E – MMM d, E - MMM d, E – MMM d, E + MMM d, E – MMM d, E + MMM d, E – MMM d, E y–y - y-MM – y-MM - y-MM – y-MM + y-MM – y-MM + y-MM – y-MM - y-MM-dd – y-MM-dd - y-MM-dd – y-MM-dd - y-MM-dd – y-MM-dd + y-MM-dd – y-MM-dd + y-MM-dd – y-MM-dd + y-MM-dd – y-MM-dd - y-MM-dd, E – y-MM-dd, E - y-MM-dd, E – y-MM-dd, E - y-MM-dd, E – y-MM-dd, E + y-MM-dd, E – y-MM-dd, E + y-MM-dd, E – y-MM-dd, E + y-MM-dd, E – y-MM-dd, E y MMM–MMM - y MMM – y MMM + y MMM – y MMM y MMM d–d - y MMM d – MMM d - y MMM d – y MMM d + y MMM d – MMM d + y MMM d – y MMM d - y MMM d, E – MMM d, E - y MMM d, E – MMM d, E - y MMM d, E – y MMM d, E + y MMM d, E – MMM d, E + y MMM d, E – MMM d, E + y MMM d, E – y MMM d, E y MMMM–MMMM - y MMMM – y MMMM + y MMMM – y MMMM @@ -1937,6 +1936,313 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + + + + + + + + + + + + + + + + + + y MMMM d, EEEE + yMMMMEEEEd + + + + + y MMMM d + yMMMMd + + + + + y MMM d + yMMMd + + + + + y-MM-dd + yMMdd + + + + + + + HH:mm:ss zzzz + HHmmsszzzz + + + + + HH:mm:ss z + HHmmssz + + + + + HH:mm:ss + HHmmss + + + + + HH:mm + HHmm + + + + + + + {1} {0} + + + + + + + + {1} {0} + + + + + + + + {1} {0} + + + + + + + + {1} {0} + + + + + + + h B + h:mm B + h:mm:ss B + d + ccc + E h:mm B + E h:mm:ss B + d, E + E h:mm a + E HH:mm + E h:mm:ss a + E HH:mm:ss + G y + G y-MM-dd + G y MMM + G y MMM d + G y MMM d, E + h a + HH + h:mm a + HH:mm + h:mm:ss a + HH:mm:ss + h:mm:ss a v + HH:mm:ss v + h:mm a v + HH:mm v + L + MM-dd + MM-dd, E + LLL + MMM d + MMM d + MMMM d + MMMM 'week' W + mm:ss + y + y-MM + y-MM-dd + y-MM-dd, E + y MMM + y MMM d + y MMM d, E + y MMMM + y QQQ + y QQQQ + Y 'week' w + + + {0} ({2}: {1}) + {0} {1} + {1} {0} + {0} ({2}: {1}) + {0} ({2}: {1}) + {0} ({2}: {1}) + {0} ({2}: {1}) + {0} ({2}: {1}) + {0} {1} + {0} ({2}: {1}) + {1} {0} + + + {0} – {1} + + h B – h B + h–h B + + + h:mm B – h:mm B + h:mm–h:mm B + h:mm–h:mm B + + + d–d + + + G y – G y + y–y + + + G y-MM – G y-MM + G y-MM – y-MM + G y-MM – y-MM + + + G y-MM-dd – y-MM-dd + G y-MM-dd – G y-MM-dd + G y-MM-dd – y-MM-dd + G y-MM-dd – y-MM-dd + + + G y-MM-dd, E – y-MM-dd, E + G y-MM-dd, E – G y-MM-dd, E + G y-MM-dd, E – y-MM-dd, E + G y-MM-dd, E – y-MM-dd, E + + + G y MMM – G y MMM + G y MMM–MMM + G y MMM – y MMM + + + G y MMM d–d + G y MMM d – G y MMM d + G y MMM d – MMM d + G y MMM d – y MMM d + + + G y MMM d, E – MMM d, E + G y MMM d, E – G y MMM d, E + G y MMM d, E – MMM d, E + G y MMM d, E – y MMM d, E + + + h a – h a + h–h a + + + HH–HH + + + h:mm a – h:mm a + h:mm–h:mm a + h:mm–h:mm a + + + HH:mm–HH:mm + HH:mm–HH:mm + + + h:mm a – h:mm a v + h:mm–h:mm a v + h:mm–h:mm a v + + + HH:mm–HH:mm v + HH:mm–HH:mm v + + + h a – h a v + h–h a v + + + HH–HH v + + + MM–MM + + + MM-dd – MM-dd + MM-dd – MM-dd + + + MM-dd, E – MM-dd, E + MM-dd, E – MM-dd, E + + + LLL–LLL + + + MMM d–d + MMM d – MMM d + + + MMM d, E – MMM d, E + MMM d, E – MMM d, E + + + y–y + + + y-MM – y-MM + y-MM – y-MM + + + y-MM-dd – y-MM-dd + y-MM-dd – y-MM-dd + y-MM-dd – y-MM-dd + + + y-MM-dd, E – y-MM-dd, E + y-MM-dd, E – y-MM-dd, E + y-MM-dd, E – y-MM-dd, E + + + y MMM–MMM + y MMM – y MMM + + + y MMM d–d + y MMM d – MMM d + y MMM d – y MMM d + + + y MMM d, E – MMM d, E + y MMM d, E – MMM d, E + y MMM d, E – y MMM d, E + + + y MMMM–MMMM + y MMMM – y MMMM + + + + @@ -3092,6 +3398,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -3101,6 +3410,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -3128,6 +3440,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -3191,6 +3506,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + + + + @@ -3209,12 +3530,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + + + + @@ -3239,6 +3566,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -3314,6 +3644,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -3323,6 +3656,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -3350,6 +3686,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -3424,6 +3763,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + + + + @@ -3442,12 +3787,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + + + + @@ -3472,6 +3823,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -3547,6 +3901,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -3556,6 +3913,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -3583,6 +3943,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -3638,6 +4001,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + + + + @@ -3656,12 +4025,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + + + + @@ -3686,6 +4061,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -3765,6 +4143,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -3774,6 +4155,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -3801,6 +4185,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -3856,6 +4243,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + + + + @@ -3874,12 +4267,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + + + + @@ -3904,6 +4303,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -3990,6 +4392,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -3999,6 +4404,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -4026,6 +4434,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -4115,6 +4526,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + + + + @@ -4133,12 +4550,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + + + + @@ -4163,6 +4586,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -4574,6 +5000,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -4583,6 +5012,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -4610,6 +5042,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -4664,6 +5099,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + + + + @@ -4682,12 +5123,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + + + + @@ -4712,6 +5159,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + @@ -5636,6 +6086,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ qt Imp {0} qt Imp. + + light + {0} light + + + ppb + {0} ppb + + + night + {0} night + {0}/night + direction {0}E diff --git a/make/data/cldr/common/main/ru.xml b/make/data/cldr/common/main/ru.xml index 5041858c92b..56e0e603d8a 100644 --- a/make/data/cldr/common/main/ru.xml +++ b/make/data/cldr/common/main/ru.xml @@ -59,6 +59,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ белорусский беджа бемба + батавский бена бафут болгарский @@ -70,6 +71,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ бини ком сиксика + ании бамбара бенгальский тибетский @@ -296,6 +298,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ коми корнский квакиутль + куви киргизский латинский ладино @@ -306,8 +309,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ лезгинский ганда лимбургский + лигурский лиллуэт лакота + ломбардский лингала лаосский монго @@ -502,6 +507,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ коморский классический сирийский сирийский + силезский тамильский южный тутчоне телугу @@ -551,7 +557,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ узбекский ваи венда + венецианский вьетнамский + макуа волапюк водский вунджо @@ -565,6 +573,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ у калмыцкий коса + кангри сога яо яп @@ -1142,8 +1151,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Национальный календарь Индии календарь хиджры гражданский календарь хиджры (табличный) - исламский календарь (Саудовская Аравия) - исламский календарь (табличный, астрономическая эпоха) + исламский календарь (Саудовская Аравия) + исламский календарь (табличный, астрономическая эпоха) календарь хиджры (Умм аль-Кура) календарь ISO-8601 японский календарь @@ -1334,7 +1343,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2040,24 +2049,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} – {1} - - h:mm – h:mm B - h:mm – h:mm B - y 'г'. G – y 'г'. G y–y 'гг'. G MM.y G – MM.y G - MM.y – MM.y G - MM.y – MM.y G + MM.y–MM.y G + MM.y–MM.y G - dd.MM.y – dd.MM.y G + dd.MM.y–dd.MM.y G dd.MM.y G – dd.MM.y G - dd.MM.y – dd.MM.y G - dd.MM.y – dd.MM.y G + dd.MM.y–dd.MM.y G + dd.MM.y–dd.MM.y G ccc, dd.MM.y – ccc, dd.MM.y G @@ -2104,8 +2109,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ M–M - dd.MM – dd.MM - dd.MM – dd.MM + dd.MM–dd.MM + dd.MM–dd.MM E, dd.MM – E, dd.MM @@ -2126,13 +2131,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ LLLL – LLLL - MM.y – MM.y - MM.y – MM.y + MM.y–MM.y + MM.y–MM.y - dd.MM.y – dd.MM.y - dd.MM.y – dd.MM.y - dd.MM.y – dd.MM.y + dd.MM.y–dd.MM.y + dd.MM.y–dd.MM.y + dd.MM.y–dd.MM.y ccc, dd.MM.y – ccc, dd.MM.y @@ -3324,6 +3329,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}, летнее время {0}, стандартное время + + Гонолулу + Всемирное координированное время @@ -4061,9 +4069,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Улан-Батор - - Чойбалсан - Макао @@ -4463,9 +4468,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ном - - Гонолулу - Анкоридж @@ -4850,13 +4852,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Китай, летнее время - - - Чойбалсан - Чойбалсан, стандартное время - Чойбалсан, летнее время - - о-в Рождества @@ -5107,6 +5102,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Петропавловск-Камчатский, летнее время + + + Казахстан + + Восточный Казахстан @@ -5708,10 +5708,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 трлн ¤ - {0} {1} - {0} {1} - {0} {1} - {0} {1} @@ -7944,11 +7940,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} карата + masculine миллиграммы на децилитр {0} миллиграмм на децилитр + {0} миллиграмм на децилитр + {0} миллиграмму на децилитр + {0} миллиграмма на децилитр + {0} миллиграммом на децилитр + {0} миллиграмме на децилитр {0} миллиграмма на децилитр + {0} миллиграмма на децилитр + {0} миллиграммам на децилитр + {0} миллиграммов на децилитр + {0} миллиграммами на децилитр + {0} миллиграммах на децилитр {0} миллиграммов на децилитр + {0} миллиграммов на децилитр + {0} миллиграммам на децилитр + {0} миллиграммов на децилитр + {0} миллиграммами на децилитр + {0} миллиграммах на децилитр {0} миллиграмма на децилитр + {0} миллиграмма на децилитр + {0} миллиграмма на децилитр + {0} миллиграмма на децилитр + {0} миллиграмма на децилитр + {0} миллиграмма на децилитр masculine @@ -8065,7 +8082,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} процента - feminine + neuter промилле {0} промилле {0} промилле @@ -9133,6 +9150,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} килокалории {0} килокалории {0} килокалории + {0} килокалории feminine @@ -10050,11 +10068,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} скандинавской мили + masculine пункты {0} пункт + {0} пункт + {0} пункту + {0} пункта + {0} пунктом + {0} пункте {0} пункта + {0} пункта + {0} пунктам + {0} пунктов + {0} пунктами + {0} пунктах {0} пунктов + {0} пунктов + {0} пунктам + {0} пунктов + {0} пунктами + {0} пунктах {0} пункта + {0} пункта + {0} пункта + {0} пункта + {0} пункта + {0} пункта masculine @@ -10722,11 +10761,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} лошадиной силы + masculine миллиметры ртутного столба {0} миллиметр ртутного столба + {0} миллиметр ртутного столба + {0} миллиметру ртутного столба + {0} миллиметра ртутного столба + {0} миллиметром ртутного столба + {0} миллиметре ртутного столба {0} миллиметра ртутного столба + {0} миллиметра ртутного столба + {0} миллиметрам ртутного столба + {0} миллиметров ртутного столба + {0} миллиметрами ртутного столба + {0} миллиметрах ртутного столба {0} миллиметров ртутного столба + {0} миллиметров ртутного столба + {0} миллиметрам ртутного столба + {0} миллиметров ртутного столба + {0} миллиметрами ртутного столба + {0} миллиметрах ртутного столба {0} миллиметра ртутного столба + {0} миллиметра ртутного столба + {0} миллиметра ртутного столба + {0} миллиметра ртутного столба + {0} миллиметра ртутного столба + {0} миллиметра ртутного столба фунты на квадратный дюйм @@ -12106,6 +12166,63 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} имп. кварты {0} имп. кварты + + feminine + миллиардные доли + {0} миллиардная доля + {0} миллиардную долю + {0} миллиардной доле + {0} миллиардной доли + {0} миллиардной долей + {0} миллиардной доле + {0} миллиардные доли + {0} миллиардные доли + {0} миллиардным долям + {0} миллиардных долей + {0} миллиардными долями + {0} миллиардных долях + {0} миллиардных долей + {0} миллиардных долей + {0} миллиардным долям + {0} миллиардных долей + {0} миллиардными долями + {0} миллиардных долях + {0} миллиардной доли + {0} миллиардной доли + {0} миллиардной доли + {0} миллиардной доли + {0} миллиардной доли + {0} миллиардной доли + + + feminine + ночи + {0} ночь + {0} ночь + {0} ночи + {0} ночи + {0} ночью + {0} ночи + {0} ночи + {0} ночи + {0} ночам + {0} ночей + {0} ночами + {0} ночах + {0} ночей + {0} ночей + {0} ночам + {0} ночей + {0} ночами + {0} ночах + {0} ночи + {0} ночи + {0} ночи + {0} ночи + {0} ночи + {0} ночи + {0}/ночь + {0} восточной долготы {0} северной широты @@ -13445,6 +13562,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} имп. кварт. {0} имп. кварт. + + ноч. + {0} ноч. + {0} ноч. + {0} ноч. + {0} ноч. + {0}/ноч. + направление {0} в. д. @@ -13544,6 +13669,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}°F {0}°F + + ноч. + {0} ноч. + {0} ноч. + {0} ноч. + {0} ноч. + {0}/ноч. + напр. diff --git a/make/data/cldr/common/main/rw.xml b/make/data/cldr/common/main/rw.xml index b2e103528ac..8ae77785edc 100644 --- a/make/data/cldr/common/main/rw.xml +++ b/make/data/cldr/common/main/rw.xml @@ -87,7 +87,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Inyeporutigali (Igiporutigali) Ikinyarumaniya Ikirusiya - Kinyarwanda + Ikinyarwanda Igisansikiri Igisindi Inyeseribiya na Korowasiya @@ -118,6 +118,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Inyeyidishi Inyezulu + + + Masedoniya y’Amajyaruguru U Rwanda @@ -186,7 +189,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kamena Nyakanga Kanama - Nzeli + Nzeri Ukwakira Ugushyingo Ukuboza @@ -240,6 +243,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic h:mm:ss a h:mm:ss a v h:mm a v + dd-MM-y + d MMMM y @@ -308,6 +313,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + + Greenwich Mean Time + + + diff --git a/make/data/cldr/common/main/sa.xml b/make/data/cldr/common/main/sa.xml index d65097b3366..e7772d6aba9 100644 --- a/make/data/cldr/common/main/sa.xml +++ b/make/data/cldr/common/main/sa.xml @@ -271,15 +271,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic शुक्र शनि - - Sun - Mon - Tue - Wed - Thu - Fri - Sat - रविवासरः सोमवासरः @@ -616,7 +607,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ¤ #,##0.00 - {0} {1} diff --git a/make/data/cldr/common/main/sah.xml b/make/data/cldr/common/main/sah.xml index 5d89d39f07b..a83da9acfe1 100644 --- a/make/data/cldr/common/main/sah.xml +++ b/make/data/cldr/common/main/sah.xml @@ -721,9 +721,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Улан Баатар - - Чойбалсан - Калининград @@ -844,13 +841,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Кытай сайыҥҥы кэмэ - - - Чойбалсан кэмэ - Чойбалсан сүрүн кэмэ - Чойбалсан сайыҥҥы кэмэ - - Курусуун кэмэ diff --git a/make/data/cldr/common/main/sat.xml b/make/data/cldr/common/main/sat.xml index 49b72a15b46..e990b1d29c6 100644 --- a/make/data/cldr/common/main/sat.xml +++ b/make/data/cldr/common/main/sat.xml @@ -12,6 +12,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic + ᱚᱯᱷᱚᱨ ᱟᱹᱵᱠᱷᱟᱡᱤᱭᱟᱹᱱ ᱟᱠᱷᱤᱱᱤᱡᱽ ᱟᱹᱰᱟᱱᱜᱽᱢᱮ @@ -53,12 +54,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic ᱵᱤᱥᱞᱟᱢᱟ ᱵᱤᱱᱤ ᱥᱤᱠᱥᱤᱠᱟ + ᱟᱱᱤ ᱵᱟᱢᱵᱟᱨᱟ ᱵᱟᱝᱞᱟ ᱛᱤᱵᱮᱛᱟᱱ ᱵᱽᱨᱚᱴᱚᱱ ᱵᱳᱰᱳ ᱵᱚᱥᱱᱤᱭᱟᱹᱱ + ᱟᱠᱩᱥ ᱵᱩᱜᱤᱱᱤᱡᱽ ᱵᱞᱤᱱ ᱠᱟᱴᱟᱞᱟᱱ @@ -1218,7 +1221,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic ᱥᱟᱫ ᱥᱮᱨᱢᱟ ᱥᱚᱱ - ᱥᱮᱨᱢᱟ ᱞᱟᱦᱟ + ᱵᱤ ᱥᱤ + ᱵᱤ ᱥᱤ ᱤ ᱤᱥᱣᱤ @@ -1903,9 +1907,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ¤ 000 ᱜᱮᱞᱥᱟᱭ - {0} {1} - {0} {1} - {0} {1} diff --git a/make/data/cldr/common/main/sc.xml b/make/data/cldr/common/main/sc.xml index 90a1d00f3f5..10c68109e4f 100644 --- a/make/data/cldr/common/main/sc.xml +++ b/make/data/cldr/common/main/sc.xml @@ -53,6 +53,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic bislama bini pees nieddos + anii bambara bengalesu tibetanu @@ -176,6 +177,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic iban ibibio indonesianu + interlìngue igbo sichuan yi inuktitut canadesu otzidentale @@ -228,6 +230,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic komi còrnicu kwakʼwala + kuvi chirghisu latinu giudeu-ispagnolu @@ -250,7 +253,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic luba-katanga tshiluba lunda - luo mizo luyia lètone @@ -391,6 +393,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic swahili de su Congo comorianu sirìacu + silesianu tamil tutchone meridionale telugu @@ -428,10 +431,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic limba disconnota urdu uzbecu - vai venda vènetu vietnamita + macua volapük vunjo vallonu @@ -442,6 +445,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic wu calmucu xhosa + kangri soga yangben yemba @@ -450,6 +454,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic nheengatu cantonesu tzinesu, cantonesu + zhuang tamazight istandard marochinu tzinesu tzinesu, mandarinu @@ -2945,6 +2950,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ora {0} Ora legale: {0} Ora istandard: {0} + + + OIH + OIH + OLH + + Tempus coordinadu universale @@ -2989,9 +3001,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Cabu Birde - - Curaçao - Natividade @@ -3175,9 +3184,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Mogadìsciu - - São Tomé - Damascu @@ -3190,13 +3196,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Portu de Ispagna - - - OIH - OIH - OLH - - Beulah, Dakota de su Nord @@ -3512,13 +3511,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ora legale de sa Tzina - - - Ora de Choibalsan - Ora istandard de Choibalsan - Ora legale de Choibalsan - - Ora de s’Ìsula de sa Natividade @@ -3772,6 +3764,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ora legale de Petropavlovsk-Kamchatski + + + Ora de su Kazàkistan + + Ora de su Kazàkistan orientale @@ -4282,90 +4279,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - @@ -4400,100 +4313,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 000 Bln ¤ - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} @@ -7040,6 +6859,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} cuartu imperiale {0} cuartos imperiales + + lughe + {0} a sa velotzidade de sa lughe + {0} a sa velotzidade de sa lughe + + + partes pro milliardu + {0} parte pro milliardu + {0} partes pro milliardu + + + notes + {0} note + {0} notes + {0} pro note + puntu cardinale {0} est @@ -7372,6 +7207,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} qt imp. {0} qt imp. + + lughe + {0} lughe + {0} lughe + + + partes/milliardu + + + notes + {0} note + {0} notes + {0}/note + puntu {0} E @@ -8092,6 +7941,21 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}qtI {0}qtI + + lughe + {0}l + {0}l + + + {0}ppb + {0}ppb + + + notes + {0} note + {0} notes + {0}/note + {0}O diff --git a/make/data/cldr/common/main/scn.xml b/make/data/cldr/common/main/scn.xml index a9a1c3499b3..fd6f4109412 100644 --- a/make/data/cldr/common/main/scn.xml +++ b/make/data/cldr/common/main/scn.xml @@ -12,25 +12,74 @@ CLDR data files are interpreted according to the LDML specification (http://unic + afar + abkhasu + afrikaans + aghem + akan amàricu + aragunisi + àrabbu livantinu di tramuntana àrabbu + àrabbu nadaru mudernu + mapuche + assamisi + asu asturianu + azzeru + bashkir + baluchi + basaa + belurrussu + bemba + betawi + bena bùrgaru + haryanvi + bhojipuri + anii + bambara + bangladisi brètuni + bodu + busnìacu + akoose + blin catalanu + caddu + atsam + chakma + cicenu + cebbuanu + chiga + choctaw + cherokee + chickasaw curdu cintrali + curdu Sorani corsu cecu + swampy cree + slavu dâ cresia + ciuvasciu gallisi danisi tidiscu tidiscu austrìacu tidiscu autu sbìzziru + dogri + sorbu suttanu + duala + divehi + jola-fonyi + dzongkha + embu + ewe grecu ngrisi ngrisi australianu ngrisi canadisi - ngridi britànnicu + ngrisi britànnicu ngrisi miricanu spirantu spagnolu @@ -39,75 +88,263 @@ CLDR data files are interpreted according to the LDML specification (http://unic spagnolu missicanu èstuni bascu + ewondo + pirsianu + fula + fillannisi filippinu + faruisi francisi francisi canadisi francisi sbìzziru + francisi Cajun friulanu frìsuni uccidintali irlannisi + ga + gaèlicu scuzzisi + geez galizzianu + guarani tidiscu sbìzziru + gujarati + gusii + mannisi + hausa + hawaiianu ebbràicu + innianu + innianu (latinu) + innianu ngrisi + hmong njua cruatu + surbu supranu unghirisi armenu ntirlingua + innunisianu + ntirlingui + igbo + idu + islannisi talianu + inuktitut giappunisi + lojban + ngomba + machame + giavanisi + giurgianu + kara-kalpak + kabyle + jiu + kamba + makonde + capuvirdianu + kenyang + kaingang + koyra chiini + kikuyu + kazaku + kako + kalaallisut + kalenjin + khmer + kannada curianu + konkani + kpelle + kashmiri + bafia + culunisi curdu + còrnicu + kuvi + kirghizu latinu + langi + lussimmurghisi + ganda + lìguri + lakota + ild + lummardu + lingala + lau + criolu dâ Louisiana lituanu + latgallisi + luba-katanga + luyia lèttuni + maithili + masai + moksha + meru + murisianu + margasciu + makhuwa-meetto + metaʼ + muchenu + māori + mi'kmaw macèduni + malayalam mòngulu - martisi + manipuri + mohawk + marathi + malisi + mautisi + mundang assai lingui + muscogee + burmisi + erzya + mazanderani + nama nurviggisi Bokmål + tidiscu suttanu + sàssuni suttanu + nipalisi ulannisi + ciammingu + kwasio nurviggisi Nynorsk + ngiemboon + nurviggisi + n’ko + navajo + uccitanu + odia + punjabi + pidgin niggirianu pulaccu prussianu + pashto purtughisi purtughisi brasilianu purtughisi eurupeu + quechua + kʼicheʼ + rajasthani + rumanciu rumenu murdavu russu - sànscritu + kinyarwanda + sàscritu + yakut + santali + sardu sicilianu + sindhi + koyraboro senni + sinhala sluvaccu sluvenu + lule sami + inari sami sòmalu arbanisi serbu + sunnanisi svidisi swahili + sirìacu + silisianu + tamil + telugu + tajik + tailannisi + tigrinya + turkmenu + tunganu turcu + tàtaru + tamazight di l’Atlanti Cintrali + uyghur + ucrainu lingua scanusciuta urdu uzbeku + vènitu + vietnamisi + makhuwa volapük + wolof + xhosa + kangri + yoruba + nheengatu cantunisi + cinisi cantunisi + zhuang cinisi + cinisi, mannarinu + cinisi simprificatu + cinisi mannarinu simprificatu cinisi tradizziunali + cinisi mannarinu tradizziunali zulu nuḍḍu cuntinutu linguìsticu + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + @@ -117,79 +354,181 @@ CLDR data files are interpreted according to the LDML specification (http://unic Munnu Àfrica - Uciania - Àfrica uccidintali + Mèrica di tramuntana cuntinintali + Mèrica di sciroccu + Uciània + Àfrica punintina Mèrica cintrali - Àfrica urintali + Àfrica livantina + Àfrica di tramuntana Àfrica di menzu + Àfrica di sciroccu Mèrichi - Asia urintali + Mèrica di tramuntana + Caràibbi + Asia livantina + Asia di sciroccu + Asia di sciroccu-livantina + Europa di sciroccu + Australasia + Milanesia + Riggiuni dâ Micrunesia + Pulinesia Asia Asia cintrali - Asia uccidintali + Asia punintina Europa - Europa urintali - Europa uccidintali + Europa livantina + Europa di tramuntana + Europa punintina + Àfrica sutta-sahariana Mèrica latina + Ìsula d’Ascinziuni + Annorra + Emirati Àrabbi Junciuti + Afghànistan Antigua e Barbuda Anguilla Arbanìa + Armenia + Angola Antàrtidi Argintina + Samoa Miricani Austria Australia Aruba + Ìsuli Åland + Azerbaijan + Bosnia e Herzegòvina Barbados + Bàngladesh Bergiu - Burkina Faso + Burkina Fasu Burgarìa + Bahrain + Burundi Benin + St. Barthélemy + Birmuda + Brunei Bulivia + Caràibbi ulannisi Brasili Bahamas - Belize + Bhutan + Ìsula Bouvet + Botswana + Belurussia + Bilisi + Cànada + Ìsuli Cocos (Keeling) + Congu - Kinshasa + Congu (RDC) + Ripùbblica Centrafricana + Congu - Brazzaville + Congu (Ripùbblica) Sbìzzira + Custa d’Avoriu + Ìsuli Cook Cili + Càmerun Cina Culommia + Ìsula di Clipperton + Custa Rica Cubba Capu Virdi + Curaçao + Ìsula di Natali + Cipru Cechia Ripùbblica Ceca Girmania + Diego Garcia + Gibbuti Danimarca + Dumìnica Ripùbblica Duminicana + Algirìa + Ceuta e Miliḍḍa Ècuador Estonia - Egittu - Sahara uccidintali + Eggittu + Sahara punintinu + Eritrea Spagna + Etiopia Uniuni Eurupea Zuna Euru - Francia - Regnu Unitu - RU + Fillannia + Figi + Ìsuli Falkland + Ìsuli Falkland (Ìsuli Marvini) + Micrunisia + Ìsuli Faroe + Franza + Gabon + Regnu Junciutu + RJ + Grenada + Giorgia Guiana Francisi + Guernsey Ghana + Gibbirterra + Gruillannia + Gammia + Guinìa + Guadalupa + Guinìa Equaturiali Grecia + Giorgia di sciroccu e Ìsuli Sandwich australi + Guatimala + Guam + Guinìa-Bissau Guiana - Honduras + Hong Kong RAS dâ Cina + Hong Kong + Ìsuli Heard e McDonald + Hunnuras Cruazzia Haiti Ungarìa Ìsuli Canari + Innunesia Irlanna - Ìnnia + Isdraeli + Ìsula di Man + Innia + Tirritoriu Ucianicu di l’Innia Britànnica + Arcipèlagu Chagos + Iraq + Iran Islanna Italia + Jersey Giamàica Giurdania Giappuni + Kenya + Kyrgyzistan Camboggia + Kiribati + Còmoros + S. Kitts e Nevis + Curìa di Tramuntana + Curìa di Sciroccu Kuwait + Ìsuli Cayman + Kazzàkistan + Laos Lìbbanu + Santa Lucìa Liechtenstein + Sri Lanka Libberia + Lisothu Lituania Lussimmurgu Littonia @@ -197,41 +536,128 @@ CLDR data files are interpreted according to the LDML specification (http://unic Maroccu Mònacu Murdova + Muntinegru + San Martinu + Madagascàr + Ìsuli Marshall + Macidonia di tramuntana Mali + Myanmar (Burma) + Mungolia + Macau RAS dâ Cina + Macau + Ìsuli Marianna di Tramuntana + Martinica Mauritania - Marta + Munzirratu + Mauta + Mauritius Mardivi + Malawi Mèssicu + Malesia + Muzzammicu + Namibbia + Nova Calidonia Niger + Ìsula Norfolk Niggeria Nicaragua Paisi Vasci Nurveggia + Nepal + Nauru + Niue + Nova Zilannia + Aotearoa Nova Zilannia + Oman Pànama Pirù + Pulinisia Francisi + Papua Nova Guinìa + Filippini + Pàkistan Pulonia + S. Pierre e Miquelon + Ìsuli Pitcairn + Portu Ricu + Tirritori Palistinesi + Palistina Purtugallu + Palau Paraguay + Qatar + Uciània di fora + Réunion Rumanìa Serbia Russia + Ruanna + Arabbia Saudita + Ìsuli Salumuni + Seychelles + Sudan Sbezzia + Singapuri + Sant’Èlina Sluvenia + Svalbard e Jan Mayen Sluvacchia + Sierra Liuni San Marinu Sènigal + Sumalia + Surinami + Sudan di sciroccu + São Tomé e Príncipe El Salvador + Sint Maarten + Siria + Eswatini + Swazilannia + Tristan da Cunha + Ìsuli Turks e Càicos + Chad + Tirritori Francisi di Sciroccu Togu + Tailannia + Tajìkistan + Tukilau + Timor-Leste + Timor di Livanti + Turkmènistan Tunisìa + Tonga Turchìa - Nazziuna Uniti - Stati Uniti - SUM + Trinidad e Tobago + Tuvalu + Taiwan + Tanzania + Ucraina + Uganna + Ìsuli Miricani di Fora + Nazziuna Junciuti + Stati Junciuti + SJM Uruguay + Uzbèkistan Città dû Vaticanu + S. Vincent e Grenadine + Vinizzuela + Ìsuli Vìrgini Britànnichi + Ìsuli Vìrgini Miricani + Vietnam + Vanuatu + Wallis e Futuna + Samoa Accenti fausi Bidirizziunali fausu - Kossovo + Kòssuvu + Yemen + Mayotte + Africa di sciroccu + Zammia + Zimbabwe Riggiuni scanusciuta @@ -242,23 +668,218 @@ CLDR data files are interpreted according to the LDML specification (http://unic Calannariu buddista Calannariu cinisi + Calannariu coptu + Calannariu dangi + Calannariu etìupi + Calannariu etìupi Amete-Alem Calannariu grigurianu Calannariu ebbràicu + Calannariu slàmicu + Calannariu slàmicu civili + Calannariu slàmicu Umm Al-Qura Calannariu ISO-8601 Calannariu giappunisi + Calannariu pirsianu + Calannariu minguo + Arringu Pridifinitu Sistema mètricu Sistema mpiriali Sistema miricanu + Nùmmari di Punenti + + mètricu + ngrisi + miricanu + + + Lingua: {0} + Scrittura: {0} + Riggiuni: {0} + - [aàâ b c dḍ eèê f g h iíî j l m n oòô p q r s t uúû v z] - [ç đ éë ə ḥ ì k š ù w x y] + [aàâ b c dḍ eèê f g h iìî j l m n oòô p q r s t uùû v z] + [ç đ éë ə ḥ k š w x y] [A B C D E F G H I J L M N O P Q R S T U V Z] [\- ‐‑ – — , ; \: ! ? . … '‘’ "“” ( ) \[ \] § @ * / \& # † ‡ ′ ″] + + + + + EEEE d MMMM y G + + + + + d MMMM y G + + + + + d MMM y G + + + + + dd/MM/y GGGGG + + + + + + + {1} {0} + + + {1} 'a' 'l''''uri' {0} + + + + + {1} {0} + + + {1} 'a' 'l''''uri' {0} + + + + + {1} {0} + + + + + {1} {0} + + + + E d + E hh:mm a + E hh:mm:ss a + y G + d/M/y GGGGG + MMM y G + d MMM y G + E d MMM y G + hh:mm a + hh:mm:ss a + d/M + E d/M + d MMM + E d MMM + d MMMM + y G + y G + M/y GGGGG + d/M/y GGGGG + E d/M/y GGGGG + MMMM y G + d MMM y G + E d MMM y G + MMMM y G + QQQ/y G + QQQQ 'dû' y G + + + + y G – y G + y–y G + + + M/y GGGGG – M/y GGGGG + M/y – M/y GGGGG + M/y – M/y GGGGG + + + d/M/y – d/M/y GGGGG + d/M/y GGGGG – d/M/y GGGGG + d/M/y – d/M/y GGGGG + d/M/y – d/M/y GGGGG + + + E d/M/y – E d/M/y GGGGG + E dd/MM/y GGGGG – E dd/MM/y GGGGG + E d/M/y – E d/M/y GGGGG + E d/M/y – E d/M/y GGGGG + + + MMM y G – MMM y G + MMM–MMM y G + MMM y – MMM y G + + + d–d MMM y G + d MMM y G – d MMM y G + d MMM – d MMM y G + d MMM y – d MMM y G + + + E d MMM – E d MMM y G + E d MMM y G – E d MMM y G + E d MMM – E d MMM y G + E d MMM y – E d MMM y G + + + M – M + + + d/M – d/M + d/M – d/M + + + E d/M – E d/M + E d/M – E d/M + + + d–d MMM + d MMM – d MMM + + + E d MMM – E d MMM + E d MMM – E d MMM + + + y–y G + + + M/y – M/y GGGGG + M/y – M/y GGGGG + + + d/M/y – d/M/y GGGGG + d/M/y – d/M/y GGGGG + d/M/y – d/M/y GGGGG + + + E d/M/y – E d/M/y GGGGG + E d/M/y – E d/M/y GGGGG + E d/M/y – E d/M/y GGGGG + + + MMM–MMM y G + MMM y – MMM y G + + + d–d MMM y G + d MMM – d MMM y G + d MMM y – d MMM y G + + + E d MMM – E d MMM y G + E d MMM – E d MMM y G + E d MMM y – E d MMM y G + + + MMMM–MMMM y G + MMMM y – MMMM y G + + + + @@ -286,7 +907,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic giugnettu agustu sittèmmiru - uttòviru + uttùviru nuvèmmiru dicèmmiru @@ -306,32 +927,371 @@ CLDR data files are interpreted according to the LDML specification (http://unic N D + + jinnaru + frivaru + marzu + aprili + maju + giugnu + giugnettu + agustu + sittèmmiru + uttùviru + nuvèmmiru + dicèmmiru + + + dum + lun + mar + mer + jov + ven + sab + + + d + l + m + m + j + v + s + + + du + lu + ma + me + jo + ve + sa + + + dumìnica + lunnidìa + martidìa + mercuridìa + jovidìa + venniridìa + sàbbatu + + + + + dum + lun + mar + mer + jov + ven + sab + + + d + l + m + m + j + v + s + + + du + lu + ma + me + jo + ve + sa + dumìnica lunnidìa martidìa mercuridìa jovidìa - vennidìa + venniridìa sàbbatu + + + + 1T + 2T + 3T + 4T + + + 1ᵘ trimestri + 2ᵘ trimestri + 3ᵘ trimestri + 4ᵘ trimestri + + + + + 1T + 2T + 3T + 4T + + + 1ᵘ trimestri + 2ᵘ trimestri + 3ᵘ trimestri + 4ᵘ trimestri + + + + + + prima di Cristu + prima di l’èbbica cumuni + doppu di Cristu + èbbica cumuni + + + p.C. + p.E.C. + d.C. + E.C. + + + pC + pEC + dC + EC + + + + + + EEEE d MMMM y + + + + + d MMMM y + + + + + d MMM y + + + + + d/M/yy + + + + + + + HH:mm:ss zzzz + + + + + HH:mm:ss z + + + + + HH:mm:ss + + + + + HH:mm + + + + + + + {1} {0} + + + + + {1} {0} + + + + + {1} {0} + + + + + {1} {0} + + + + E d + E h:mm a + E h:mm:ss a + y G + d/M/y G + MMM y G + d MMM y G + E d MMM y G + h:mm a + h:mm:ss a + h:mm:ss a v + h:mm a v + d/M + E d/M + d MMM + E d MMM + d MMMM + 'simana' W 'di' MMMM + 'simana' W 'di' MMMM + M/y + d/M/y + E d/M/y + MMM y + d MMM y + E d MMM y + MMMM y + QQQ y + QQQQ 'dû' y + 'simana' w 'dû' Y + 'simana' w 'dû' Y + + + + h:mm B – h:mm B + h:mm – h:mm B + h:mm – h:mm B + + + y G – y G + y – y G + + + M/y G – M/y G + M/y – M/y G + M/y – M/y G + + + d/M/y – d/M/y G + d/M/y G – d/M/y G + d/M/y – d/M/y G + d/M/y – d/M/y G + + + E d/M/y – E d/M/y G + E d/M/y G – E d/M/y G + E d/M/y – E d/M/y G + E d/M/y – E d/M/y G + + + MMM y – MMM y G + MMM–MMM y G + MMM y – MMM y G + + + d–d MMM y G + d MMM y G – d MMM y G + d MMM – d MMM y G + d MMM y – d MMM y G + + + E d MMM – E d MMM y G + E d MMM y G – E d MMM y G + E d MMM – E d MMM y G + E d MMM y – E d MMM y G + + + h:mm a – h:mm a + h:mm – h:mm a + h:mm – h:mm a + + + h:mm a – h:mm a v + h:mm – h:mm a v + h:mm – h:mm a v + + + M/d – M/d + M/d – M/d + + + E M/d – E M/d + E M/d – E M/d + + + d–d MMM + d MMM – d MMM + + + E d MMM – E d MMM + E d MMM – E d MMM + + + M/y – M/y + M/y – M/y + + + d/M/y – d/M/y + d/M/y – d/M/y + d/M/y – d/M/y + + + E d/M/y – E d/M/y + E d/M/y – E d/M/y + E d/M/y – E d/M/y + + + MMM–MMM y + MMM y – MMM y + + + d–d MMM y + d MMM – d MMM y + d MMM y – d MMM y + + + E d MMM – E d MMM y + E d MMM – E d MMM y + E d MMM y – E d MMM y + + + MMMM–MMMM y + MMMM y – MMMM y + + + + + èbbica + + + èbb. + + + èbb + annu l’annu passatu st’annu - l’annu vinturu + l’annu pròssimu - nna n’annu - nna {0} anni + ntra n’annu + ntra {0} anni n’annu nnarrè @@ -340,18 +1300,127 @@ CLDR data files are interpreted according to the LDML specification (http://unic a. + l’a. passatu + st’a. + l’a. pròssimu + + ntra n’annu + ntra {0} anni + + + + l’a. passatu + st’.a + u pròssimu annu + + ntra n’annu + ntra {0} anni + + + + trimestri + l’ùrtimu trimestri + stu trimestri + u pròssimu trimestri + + ntra un trimestri + ntra {0} trimestri + + + un trimestri nnarrè + {0} trimestri nnarrè + + + + tri. + + ntra un tri. + ntra {0} tri. + + + un tri. nnarrè + {0} tri. nnarrè + + + + tri + + ntra un t. + ntra {0} t. + + + un t. nnarrè + {0} t. nnarrè + misi + u misi passatu + stu misi + u pròssimu misi + + ntra un misi + ntra {0} misi + + + un misi nnarrè + {0} misi nnarrè + m. + u m. passatu + stu m. + u pròssimu m. + + ntra un m. + ntra {0} m. + + + un m. nnarrè + {0} m. nnarrè + + + + u m. passatu + stu m. + u pròssimu m. + + ntra un m. + ntra {0} m. + + + un m. nnarrè + {0} m. nnarrè + simana + a simana passata + sta simana + a pròssima simana + + ntra na simana + ntra {0} simani + + + na simana nnarrè + {0} simani nnarrè + + a simana di {0} smn. + a smn. passata + sta smn. + a pròssima smn. + a smn. di {0} + + + a smn. passata + sta smn. + a pròssima smn. + a smn. di {0} simana dû misi @@ -362,8 +1431,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic jornu ajeri - stjornu + oji dumani + + ntra un jornu + ntra {0} jorna + + + un jornu nnarrè + {0} jorna nnarrè + j. @@ -383,6 +1460,58 @@ CLDR data files are interpreted according to the LDML specification (http://unic j. dâ smn. + + l’ùrtima dumìnica + sta dumìnica + a pròssima dumìnica + + ntra na dumìnica + ntra {0} dumìnichi + + + na dumìnica nnarrè + {0} dumìnichi nnarrè + + + + l’ùrtima dum. + sta dum. + a pròssima dum. + + ntra na dum. + ntra {0} dum. + + + na dum. nnarrè + {0} dum. nnarrè + + + + l’ùrtima dum. + sta dum. + a pròssima dum. + + ntra na dum. + ntra {0} dum. + + + na dum. nnarrè + {0} dum. nnarrè + + + + l’ùrtimu lùnnidi + stu lùnnidi + u pròssimu lùnnidi + + ntra un lùnnidi + ntra {0} lùnnidi + + + un lùnnidi nnarrè + {0} lùnnidi nnarrè + + ura @@ -409,13 +1538,2120 @@ CLDR data files are interpreted according to the LDML specification (http://unic fusu + + {0} (ura ligali) + {0} (ura sulari) + + + Ura Curdinata Univirsali + + + + Scanusciutu + + + Tirana + + + Còrduba + + + Adilaidi + + + Sarajevu + + + Brusseli + + + Birmuda + + + Campu Ranni + + + San Paulu + + + Bilisi + + + Riggina + + + Torontu + + + Zurigu + + + Custa Rica + + + Capu Virdi + + + Natali + + + Nicusìa + + + Praga + + + Birlinu + + + Gibbuti + + + Dumìnica + + + Santu Dumingu + + + Algeri + + + Galàpagos + + + Cairu + + + Canari + + + Cèuta + + + Hèlsinki + + + Figi + + + Pariggi + + + + Ura ligali Britànnica + + Lònnira + + + Gibbirterra + + + Guadalupa + + + Ateni + + + Giorgia di sciroccu + + + Guatimala + + + Guiana + + + Zagabbria + + + Giacarta + + + + Ura sulari Irlannisi + + Dubblinu + + + Girusalemmi + + + Ìsula di Man + + + Kurkata + + + Roma + + + Giamaica + + + Ammàn + + + Nairobbi + + + Siul + + + Santa Lucìa + + + Culummu + + + Lussimburgu + + + Trìpuli + + + Casabblanca + + + Mònacu + + + Macau + + + Martinica + + + Munzirratu + + + Mauta + + + Mardivi + + + Muntirrei + + + Cità dû Mèssicu + + + Mascati + + + Pànama + + + Marchesi + + + Varsavia + + + Portu Ricu + + + Gazza + + + Azzorri + + + Lisbona + + + Belgradu + + + Mosca + + + Vòlgugrad + + + Yekatirimmurgu + + + Vladìvustok + + + Stuccorma + + + Singapuri + + + Sant’Èlina + + + San Marinu + + + Mugadisciu + + + Damascu + + + Tùnisi + + + Ìstanbul + + + Portu di Spagna + + + Kiev + + + Beulah, Dakota di Tramuntana + + + New Salem, Dakota di Tramuntana + + + Centru, Dakota di Tramuntana + + + Ditroit + + + Nova Jorca + + + Samarcanna + + + Vaticanu + + + + Ura di l’Afghànistan + + + + + Ura di l’Àfrica Cintrali + + + + + Ura di l’Àfrica di Livanti + + + + + Ura Nurmali di l’Àfrica di Sciroccu + + + + + Ura di l’Àfrica di Punenti + Ura sulari di l’Àfrica di Punenti + Ura ligali di l’Àfrica di Punenti + + + + + Ura di l’Alaska + Ura sulari di l’Alaska + Ura ligali di l’Alaska + + + AKT + AKST + AKDT + + + + + Ura di l’Amazzonia + Ura sulari di l’Amazzonia + Ura ligali di l’Amazzonia + + + + + Ura cintrali + Ura sulari cintrali + Ura ligali cintrali + + + CT + CST + CDT + + + + + Ura livantina + Ura sulari livantina + Ura ligali livantina + + + ET + EST + EDT + + + + + Ura dî muntagni + Ura sulari dî muntagni + Ura ligali dî muntagni + + + MT + MST + MDT + + + + + Ura dû Pacìficu + Ura sulari dû Pacìficu + Ura ligali dû Pacìficu + + + PT + PST + PDT + + + + + Ura di Apia + Ura sulari di Apia + Ura ligali di Apia + + + + + Ura Àrabba + Ura sulari Àrabba + Ura ligali Àrabba + + + + + Ura di l’Argintina + Ura sulari di l’Argintina + Ura ligali di l’Argintina + + + + + Ura di l’Argintina di punenti + Ura sulari di l’Argintina di punenti + Ura ligali di l’Argintina di punenti + + + + + Ura di l’Armenia + Ura sulari di l’Armenia + Ura ligali di l’Armenia + + + + + Ura di l’Atlànticu + Ura sulari di l’Atlànticu + Ura ligali di l’Atlànticu + + + AT + AST + ADT + + + + + Ura di l’Australia cintrali + Ura sulari di l’Australia cintrali + Ura ligali di l’Australia cintrali + + + + + Ura di l’Australia cintrali di punenti + Ura sulari di l’Australia cintrali di punenti + Ura ligali di l’Australia cintrali di punenti + + + + + Ura di l’Australia di livanti + Ura sulari di l’Australia di livanti + Ura ligali di l’Australia di livanti + + + + + Ura di l’Australia di punenti + Ura sulari di l’Australia di punenti + Ura ligali di l’Australia di punenti + + + + + Ura di l’Azerbaijan + Ura sulari di l’Azerbaijan + Ura ligali di l’Azerbaijan + + + + + Ura di l’Azzorri + Ura sulari di l’Azzorri + Ura ligali di l’Azzorri + + + + + Ura dû Bàngladesh + Ura sulari dû Bàngladesh + Ura ligali dû Bàngladesh + + + + + Ura dû Bhutan + + + + + Ura dâ Bulivia + + + + + Ura di Brasilia + Ura sulari di Brasilia + Ura ligali di Brasilia + + + + + Ura dû Brunei + + + + + Ura di Capu Virdi + Ura sulari di Capu Virdi + Ura ligali di Capu Virdi + + + + + Ura di Chamorro + + + + + Ura di Chatham + Ura sulari di Chatham + Ura ligali di Chatham + + + + + Ura dû Cili + Ura sulari dû Cili + Ura ligali dû Cili + + + + + Ura dâ Cina + Ura sulari dâ Cina + Ura ligali dâ Cina + + + + + Ura di l’Ìsula di Natali + + + + + Ura di l’Ìsuli Cocos + + + + + Ura dâ Culummia + Ura sulari dâ Culummia + Ura ligali dâ Culummia + + + + + Ura di l’Ìsuli Cook + Ura sulari di l’Ìsuli Cook + Ura ligali di l’Ìsuli Cook + + + + + Ura di Cubba + Ura sulari di Cubba + Ura ligali di Cubba + + + CuT + CuST + CuDT + + + + + Ura di Davis + + + + + Ura di Dumont-d’Urville + + + + + Ura di Timor di Livanti + + + + + Ura di l’Ìsula di Pasca + Ura sulari di l’Ìsula di Pasca + Ura ligali di l’Ìsula di Pasca + + + + + Ura di l’Ècuador + + + + + Ura Cintrali Eurupea + Ura sulari Cintrali Eurupea + Ura ligali Cintrali Eurupea + + + + + Ura di l’Europa di Livanti + Ura sulari di l’Europa di Livanti + Ura ligali di l’Europa di Livanti + + + + + Ura di l’Europa cchiù a Livanti + + + + + Ura di l’Europa di Punenti + Ura sulari di l’Europa di Punenti + Ura ligali di l’Europa di Punenti + + + + + Ura di l’Ìsuli Falkland + Ura sulari di l’Ìsuli Falkland + Ura ligali di l’Ìsuli Falkland + + + + + Ura dî Figi + Ura sulari dî Figi + Ura ligali dî Figi + + + + + Ura dâ Guiana Francisi + + + + + Ura Francisi di Sciroccu e di l’Antàrtidi + + + + + Ura dî Galàpagos + + + + + Ura di Gambier + + + + + Ura dâ Giorgia + Ura sulari dâ Giorgia + Ura ligali dâ Giorgia + + + + + Ura di l’Ìsuli Gilbert + + + + + Ura Minzana di Greenwich + + + + + Ura dâ Gruillannia + Ura sulari dâ Gruillannia + Ura ligali dâ Gruillannia + + + + + Ura dâ Gruillannia livantina + Ura sulari dâ Gruillannia livantina + Ura livantina dâ Gruillannia livantina + + + + + Ura dâ Gruillannia punintina + Ura sulari dâ Gruillannia punintina + Ura ligali dâ Gruillannia punintina + + + + + Ura Nurmali dû Gurfu + + + + + Ura dâ Guiana + + + + + Ura di l’Hawaai + Ura sulari di l’Hawaai + Ura ligali di l’Hawaai + + + HAT + HAST + HADT + + + + + Ura di Hong Kong + Ura sulari di Hong Kong + Ura ligali di Hong Kong + + + + + Ura di Hovd + Ura sulari di Hovd + Ura ligali di Hovd + + + + + Ura sulari di l’Ìnnia + + + + + Ura di l’Ucianu Innianu + + + + + Ura di l’Innucina + + + + + Ura di l’Innunesia cintrali + + + + + Ura di l’Innunesia di livanti + + + + + Ura di l’Innunesia di punenti + + + + + Ura di l’Iran + Ura sulari di l’Iran + Ura ligali di l’Iran + + + + + Ura di Irtkutsk + Ura sulari di Irtkutsk + Ura ligali di Irtkutsk + + + + + Ura di Isdraeli + Ura sulari di Isdraeli + Ura ligali di Isdraeli + + + + + Ura dû Giappuni + Ura sulari dû Giappuni + Ura ligali dû Giappuni + + + + + Ura dû Kazzàkistan + + + + + Ura dû Kazzàkistan di Livanti + + + + + Ura dû Kazzàkistan di Punenti + + + + + Ura dâ Curìa + Ura sulari dâ Curìa + Ura ligali dâ Curìa + + + + + Ura di Kosrae + + + + + Ura di Krasnoyarsk + Ura sulari di Krasnoyarsk + Ura ligali di Krasnoyarsk + + + + + Ura dû Kirghìzzistan + + + + + Ura di l’Ìsuli Line + + + + + Ura di Lord Howe + Ura sulari di Lord Howe + Ura ligali di Lord Howe + + + + + Ura di Magdan + Ura sulari di Magdan + Ura ligali di Magdan + + + + + Ura dâ Malisia + + + + + Ura dî Mardivi + + + + + Ura dî Marchesi + + + + + Ura di l’Ìsuli Marshall + + + + + Ura di Mauritius + Ura sulari di Mauritius + Ura ligali di Mauritius + + + + + Ura di Mawson + + + + + Ura dû Mèssicu Pacìficu + Ura sulari dû Mèssicu Pacìficu + Ura ligali dû Mèssicu Pacìficu + + + + + Ura di Ulaanbaatar + Ura sulari di Ulaanbaatar + Ura ligali di Ulaanbaatar + + + + + Ura di Mosca + Ura sulari di Mosca + Ura ligali di Mosca + + + + + Ura di Myanmar + + + + + Ura di Nauru + + + + + Ura dû Nepal + + + + + Ura dâ Nova Calidonia + Ura sulari dâ Nova Calidonia + Ura ligali dâ Nova Calidonia + + + + + Ura dâ Nova Zilannia + Ura sulari dâ Nova Zilannia + Ura ligali dâ Nova Zilannia + + + + + Ura di Tirranova + Ura sulari di Tirranova + Ura ligali di Tirranova + + + + + Ura di Niue + + + + + Ura di l’Ìsula Norfolk + Ura sulari di l’Ìsula Norfolk + Ura ligali di l’Ìsula Norfolk + + + + + Ura di Fernando di Noronha + Ura sulari di Fernando di Noronha + Ura ligali di Fernando di Noronha + + + + + Ura di Novosibirsk + Ura sulari di Novosibirsk + Ura ligali di Novosibirsk + + + + + Ura di Omsk + Ura sulari di Omsk + Ura ligali di Omsk + + + + + Ura dû Pàkistan + Ura sulari dû Pàkistan + Ura ligali dû Pàkistan + + + + + Ura di Palau + + + + + Ura dâ Papua Nova Guinìa + + + + + Ura dû Paraguay + Ura sulari dû Paraguay + Ura ligali dû Paraguay + + + + + Ura dû Pirù + Ura sulari dû Pirù + Ura ligali dû Pirù + + + + + Ura dî Filippini + Ura sulari dî Filippini + Ura ligali dî Filippini + + + + + Ura di l’Ìsuli Phoenix + + + + + Ura di S. Pierre e Miquelon + Ura sulari di S. Pierre e Miquelon + Ura ligali di S. Pierre e Miquelon + + + + + Ura di Pitcairn + + + + + Ura di Ponape + + + + + Ura di Pyongyang + + + + + Ura di Réunion + + + + + Ura di Rothera + + + + + Ura di Sakhalin + Ura sulari di Sakhalin + Ura ligali di Sakhalin + + + + + Ura dî Samoa + Ura sulari dî Samoa + Ura ligali dî Samoa + + + + + Ura dî Seychelles + + + + + Ura di Singapuri + + + + + Ura di l’Ìsuli Salumuni + + + + + Ura dâ Giorgia di sciroccu + + + + + Ura dû Surinami + + + + + Ura di Syowa + + + + + Ura di Tahiti + + + + + Ura di Taipei + Ura sulari di Taipei + Ura ligali di Taipei + + + + + Ura dû Taggìkistan + + + + + Ura di Tukilau + + + + + Ura di Tonga + Ura sulari di Tonga + Ura ligali di Tonga + + + + + Ura di Chuuk + + + + + Ura dû Turkmènistan + Ura sulari dû Turkmènistan + Ura ligali dû Turkmènistan + + + + + Ura di Tuvalu + + + + + Ura di l’Uruguay + Ura sulari di l’Uruguay + Ura ligali di l’Uruguay + + + + + Ura di l’Uzbèkistan + Ura sulari di l’Uzbèkistan + Ura ligali di l’Uzbèkistan + + + + + Ura di Vanuatu + Ura sulari di Vanuatu + Ura ligali di Vanuatu + + + + + Ura dû Vinizzuela + + + + + Ura di Vladìvustok + Ura sulari di Vladìvustok + Ura ligali di Vladìvustok + + + + + Ura di Vòlgugrad + Ura sulari di Vòlgugrad + Ura ligali di Vòlgugrad + + + + + Ura di Vostok + + + + + Ura di l’Ìsula Wake + + + + + Ura di Wallis e Futuna + + + + + Ura di Yakutsk + Ura sulari di Yakutsk + Ura ligali di Yakutsk + + + + + Ura di Yekatirimmurgu + Ura sulari di Yekatirimmurgu + Ura ligali di Yekatirimmurgu + + + + + Ura dû Yukon + + + , . + + + + 0 migghiaru + 0 mila + 00 mila + 00 mila + 000 mila + 000 mila + 0 miliuni + 0 miliuna + 00 miliuna + 00 miliuna + 000 miliuna + 000 miliuna + 0 miliardu + 0 miliardi + 00 miliardi + 00 miliardi + 000 miliardi + 000 miliardi + 0 biliuni + 0 biliuna + 00 biliuna + 00 biliuna + 000 biliuna + 000 biliuna + + + + + + Dirham di l’Emirati Àrabbi Junciuti + dirham EAJ + dirham EAJ + + + Afghani afghanu + afghani afghanu + afghani afghani + + + Lek arbanisi + lek arbanisi + lek arbanisi + + + Dram armenu + dram armenu + dram armeni + + + Ciurinu di l’Antiḍḍi Ulannisi + ciurinu di l’Antiḍḍi Ulannisi + ciurini di l’Antiḍḍi Ulannisi + + + Kwanza angulisi + kwanza angulisi + kwanza angulisi + + + Pesu argintinu + pesu argintinu + pesi argintini + + + Dòllaru australianu + dòllaru australianu + dòllari australiani + + + Ciurinu d’Arubba + ciurinu d’Arubba + ciurini d’Arubba + + + Manat azzeru + manat azzeru + manat azzeri + + + Marcu cummirtìbbili dâ Bosnia-Herzegòvina + marcu cummirtìbbili dâ Bosnia-Herzegòvina + marchi cummirtìbbili dâ Bosnia-Herzegòvina + + + Dòllaru dî Barbados + dòllaru dî Barbados + dòllari dî Barbados + + + Taka dû Bàngladesh + taka dû Bàngladesh + taka dû Bàngladesh + + + Lev bùrgaru + lev bùrgaru + lev bùrgari + + + Dìnaru dû Bahrain + dìnaru dû Bahrain + dìnari dû Bahrain + + + Francu dû Burundi + francu dû Burundi + franchi dû Burundi + + + Dòllaru dî Birmuda + dòllaru dî Birmuda + dòllari dî Birmuda + + + Dòllaru dû Brunei + dòllaru dû Brunei + dòllari dû Brunei + + + Bulivianu + bulivianu + buliviani + + + Riali brasilianu + riali brasilianu + riali brasiliani + + + Dòllaru dî Bahamas + dòllaru dî Bahamas + dòllari dî Bahamas + + + Ngultrum butanisi + ngultrum butanisi + ngultrum butanisi + + + Pula dû Botswana + pula dû Botswana + pula dû Botswana + + + Rubblu belurrussu + rubblu belurrussu + rubbli belurrussi + + + Dòllaru dû Bilisi + dòllaru dû Bilisi + dòllari dû Bilisi + + + Dòllaru canadisi + dòllaru canadisi + dòllari canadisi + + + Francu cungulisi + francu cungulisi + franchi cungulisi + + + Francu sbìzziru + francu sbìzziru + franchi sbìzziri + + + Pesu cilenu + pesu cilenu + pesi cileni + + + Yuan cinisi (di fora) + yuan cinisi (di fora) + yuan cinisi (di fora) + + + Yuan cinisi + yuan cinisi + yuan cinisi + + + Pesu culummianu + pesu culummianu + pesi culummiani + + + Culón dâ Custa Rica + culón dâ Custa Rica + culoni dâ Custa Rica + + + Pesu cubbanu cummirtìbbili + pesu cubbanu cummirtìbbili + pesi cubbani cummirtìbbili + + + Pesu cubbanu + pesu cubbanu + pesi cubbani + + + Scudu capuvirdisi + scudu capuvirdisi + scudi capuvirdisi + + + Curuna ceca + curuna ceca + curuni cechi + + + Francu di Gibbuti + francu di Gibbuti + franchi di Gibbuti + + + Curuna danisi + curuna danisi + curuni danisi + + + Pesu duminicanu + pesu duminicanu + pesi duminicani + + + Dìnaru argirinu + dìnaru argirinu + dìnari argirini + + + Stirlina eggizziana + stirlina eggizziana + stirlini eggizziani + + + Nafka eritreu + nafka eritreu + nafka eritrei + + + Birr etiupi + birr etiupi + birr etiupi + + + Euru + euru + euru + + + Dòllaru dî Figi + dòllaru dî Figi + dòllari dî Figi + + + Stirlina di l’Ìsuli Falkland + stirlina di l’Ìsuli Falkland + stirlini di l’Ìsuli Falkland + + + Stirlina Britànnica + stirlina Britànnica + stirlini Britànnica + + + Lari giurgianu + lari giurgianu + lari giurgiani + + + Cedi ganisi + cedi ganisi + cedi ganisi + + + Stirlina di Gibbirterra + stirlina di Gibbirterra + stirlini di Gibbirterra + + + Dalasi dû Gammia + dalasi dû Gammia + dalasi dû Gammia + + + Francu dâ Guinìa + francu dâ Guinìa + franchi dâ Guinìa + + + Quetzal dâ Guatimala + quetzal dâ Guatimala + quetzal dâ Guatimala + + + Dòllaru dâ Guiana + dòllaru dâ Guiana + dòllari dâ Guiana + + + Dòllaru di Hong Kong + dòllaru di Hong Kong + dòllari di Hong Kong + + + Limpira di l’Hunnuras + limpira di l’Hunnuras + limpira di l’Hunnuras + + + Kuna cruata + kuna cruata + kuni cruati + + + Gordu d’Haiti + gordu d’Haiti + gordi d’Haiti + + + Ciurinu unghirisi + ciurinu unghirisi + ciurini unghirisi + + + Rupìa innunisiana + rupìa innunisiana + rupìi innunisiani + + + Novu siclu isdraelianu + novu siclu isdraelianu + novi sicli isdraeliani + + + Rupìa inniana + rupìa inniana + rupìi inniani + + + Dìnaru irachenu + dìnaru irachenu + dìnari iracheni + + + Riali iranianu + riali iranianu + riali iraniani + + + Curuna islannisi + curuna islannisi + curuni islannisi + + + Dòllaru giamaicanu + dòllaru giamaicanu + dòllari giamaicanu + + + Dìnaru giurdanu + dìnaru giurdanu + dìnari giurdani + + + Yen giappunisi + yen giappunisi + yen giappunisi + + + Scillinu dû Kenya + scillinu dû Kenya + scillini dû Kenya + + + Som dû Kyrgyzistan + som dû Kyrgyzistan + som dû Kyrgyzistan + + + Riel cambuggianu + riel cambuggianu + riel cambuggianI + + + Francu dî Cumori + francu dî Cumori + franchi dî Cumori + + + Won dâ Curìa di Tramuntana + won dâ Curìa di Tramuntana + won dâ Curìa di Tramuntana + + + Won dâ Curìa di Sciroccu + won dâ Curìa di Sciroccu + won dâ Curìa di Sciroccu + + + Dìnaru dû Kuwait + dìnaru dû Kuwait + dìnari dû Kuwait + + + Dòllaru di l’Ìsuli Cayman + dòllaru di l’Ìsuli Cayman + dòllari di l’Ìsuli Cayman + + + Tenge dû Kazzàkistan + tenge dû Kazzàkistan + tenge dû Kazzàkistan + + + Kip lauisi + kip lauisi + kip lauisi + + + Stirlina libbanisi + stirlina libbanisi + stirlini libbanisi + + + Rupìa dû Sri Lanka + rupìa dû Sri Lanka + rupìi dû Sri Lanka + + + Dòllaru dâ Libberia + dòllaru dâ Libberia + dòllari dâ Libberia + + + Loti dû Lisothu + loti dû Lisothu + loti dû Lisothu + + + Dìnaru lìbbicu + dìnaru lìbbicu + dìnari lìbbichi + + + Dirham marucchinu + dirham marucchinu + dirham marucchini + + + Leu murdavu + leu murdavu + lei murdavi + + + Ariary margasciu + ariary margasciu + ariary margasci + + + Dìnaru macèduni + dìnaru macèduni + dìnari macèduni + + + Kyat dû Myanmar + kyat dû Myanmar + kyat dû Myanmar + + + Tugrik mòngulu + tugrik mòngulu + tugrik mònguli + + + Pataca di Macau + pataca di Macau + patachi di Macau + + + Ouguiya mauritanu + ouguiya mauritanu + ouguiya mauritani + + + Rupìa di Mauritius + rupìa di Mauritius + rupìi di Mauritius + + + Rufiyaa dî Mardivi + rufiyaa dî Mardivi + rufiyaa dî Mardivi + + + Kwacha dû Malawi + kwacha dû Malawi + kwacha dû Malawi + + + Pesu missicanu + pesu missicanu + pesi missicani + + + Ringgit malisi + ringgit malisi + ringgit malisi + + + Mètical dû Muzzammicu + mètical dû Muzzammicu + mètical dû Muzzammicu + + + Dòllaru dâ Namibbia + dòllaru dâ Namibbia + dòllari dâ Namibbia + + + Naira niggirianu + naira niggirianu + naira niggiriani + + + Còrdubba dâ Nicaragua + còrdubba dâ Nicaragua + còrdubba dâ Nicaragua + + + Curuna nurviggisi + curuna nurviggisi + curuni nurviggisi + + + Rupìa nipalisi + rupìa nipalisi + rupìi nipalisi + + + Dòllaru dâ Nova Zilannia + dòllaru dâ Nova Zilannia + dòllari dâ Nova Zilannia + + + Riali di l’Oman + riali di l’Oman + riali di l’Oman + + + Barboa di Pànama + barboa di Pànama + barboa di Pànama + + + Suli piruvianu + suli piruvianu + suli piruvianu + + + Kina dâ Papua Nova Guinìa + kina dâ Papua Nova Guinìa + kina dâ Papua Nova Guinìa + + + Pesu filippinu + pesu filippinu + pesi filippini + + + Rupìa pakistana + rupìa pakistana + rupìi pakistani + + + Zloty pulaccu + zloty pulaccu + zloty pulacchi + + + Guaranì dû Paraguay + guaranì dû Paraguay + guaranì dû Paraguay + + + Riali dû Qatar + riali dû Qatar + riali dû Qatar + + + Leu rumenu + leu rumenu + lei rumeni + + + Dìnaru serbu + dìnaru serbu + dìnari serbi + + + Rubblu russu + rubblu russu + rubbli russi + + + Francu dû Ruanna + francu dû Ruanna + franchi dû Ruanna + + + Riali di l’Arabbia Saudita + riali di l’Arabbia Saudita + riali di l’Arabbia Saudita + + + Dòllaru di l’Ìsuli Salumuni + dòllaru di l’Ìsuli Salumuni + dòllari di l’Ìsuli Salumuni + + + Rupìa dî Seychelles + rupìa dî Seychelles + rupìi dî Seychelles + + + Stirlina sudanisi + stirlina sudanisi + stirlini sudanisi + + + Curuna svidisi + curuna svidisi + curuni svidisi + + + Dòllaru di Singapuri + dòllaru di Singapuri + dòllari di Singapuri + + + Stirlina di Sant’Èlina + stirlina di Sant’Èlina + stirlini di Sant’Èlina + + + Liuni dâ Sierra Liuni + liuni dâ Sierra Liuni + liuna dâ Sierra Liuni + + + Liuni dâ Sierra Liuni (1964—2022) + liuni dâ Sierra Liuni (1964—2022) + liuna dâ Sierra Liuni (1964—2022) + + + Scillinu sòmalu + scillinu sòmalu + scillini sòmali + + + Dòllaru dû Surinami + dòllaru dû Surinami + dòllari dû Surinami + + + Stirlina dû Sudan di sciroccu + stirlina dû Sudan di sciroccu + stirlini dû Sudan di sciroccu + + + Dobra di São Tomé & Príncipe + dobra di São Tomé & Príncipe + dobra di São Tomé & Príncipe + + + Stirlina siriana + stirlina siriana + stirlini siriani + + + Lilangeni di Eswatini + lilangeni di Eswatini + lilangeni di Eswatini + + + Baht tailannisi + baht tailannisi + baht tailannisi + + + Somoni dû Tajìkistan + somoni dû Tajìkistan + somoni dû Tajìkistan + + + Manat turkmenu + manat turkmenu + manat turkmeni + + + Dìnaru tunisinu + dìnaru tunisinu + dìnari tunisini + + + Tongan Paʻanga + Tongan paʻanga + Tongan paʻanga + + + Lira turca + lira turca + liri turchi + + + Dòllaru di Trinidad e Tobago + dòllaru di Trinidad e Tobago + dòllari di Trinidad e Tobago + + + Novu dòllaru taiwanisi + novu dòllaru taiwanisi + novi dòllari taiwanisi + + + Scillinu dâ Tanzania + scillinu dâ Tanzania + scillini dâ Tanzania + + + Grivnia ucràina + grivnia ucràina + grivni ucràini + + + Scillinu di l’Uganna + scillinu di l’Uganna + scillini di l’Uganna + + + Dòllaru miricanu + dòllaru miricanu + dòllari miricani + + + Pesu di l’Uruguay + pesu di l’Uruguay + pesi di l’Uruguay + + + Som di l’Uzbèkistan + som di l’Uzbèkistan + som di l’Uzbèkistan + + + Bulivar dû Vinizzuela + bulivar dû Vinizzuela + bulivar dû Vinizzuela + + + Dong vietnamisi + dong vietnamisi + dong vietnamisi + + + Vatu di Vanuatu + vatu di Vanuatu + vatu di Vanuatu + + + Tala samuanu + Tala samuanu + Tala samuani + + + Francu CFA di l’Àfrica cintrali + francu CFA di l’Àfrica cintrali + franchi CFA di l’Àfrica cintrali + + + Dòllaru dî Caraibbi di livanti + dòllaru dî Caraibbi di livanti + dòllari dî Caraibbi di livanti + + + Francu CFA di l’Àfrica di punenti + francu CFA di l’Àfrica di punenti + franchi CFA di l’Àfrica di punenti + + + Francu CFP + francu CFP + franchi CFP + + + Munita Scanusciuta + (munita scanusciuta) + (munita scanusciuta) + + + Riali dû Yemen + riali dû Yemen + riali dû Yemen + + + Rand di l’Àfrica di Sciroccu + rand di l’Àfrica di Sciroccu + rand di l’Àfrica di Sciroccu + + + Kwacha dâ Zammia + kwacha dâ Zammia + kwacha dâ Zammia + + + + {0} jornu + {0} di jorna + {0} jorna + + + + + dirizzioni + {0}L + {0}T + {0}P + + + + + dirizzioni + {0}L + {0}T + {0}P + + + + + dirizzioni + {0}L + {0}T + {0}P + + + + hh:mm + + + hh:mm:ss + + + mm:ss + + + + + {0} e {1} + {0} e {1} + + + {0} o {1} + {0} o {1} + + + {0} o {1} + {0} o {1} + + + {0} o {1} + {0} o {1} + + + {0} e {1} + {0} e {1} + + + {0} e {1} + {0} e {1} + + + {0} e {1} + {0} e {1} + + + {0} e {1} + {0} e {1} + + + {0} e {1} + {0} e {1} + + se:s diff --git a/make/data/cldr/common/main/sd.xml b/make/data/cldr/common/main/sd.xml index 80e51753dc4..fe0b269052c 100644 --- a/make/data/cldr/common/main/sd.xml +++ b/make/data/cldr/common/main/sd.xml @@ -53,6 +53,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic بسلاما بني سڪسڪا + آنيائي بمبارا بنگلا تبيتائي @@ -172,6 +173,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ايبن ابيبيو انڊونيشي + انٽرلنگئي اگبو سچوان يي مغربي ڪينيڊين انوڪٽيٽ @@ -224,6 +226,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ڪومي ڪورنش ڪئاڪ ولا + ڪووي ڪرغيز لاطيني لڊينو @@ -232,8 +235,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic ليزگهين گاندا لمبرگش + لگيوريئن ليلوئيٽ لڪوٽا + لامبارڊ لنگالا لائو لوئيزيانا ڪريئول @@ -387,6 +392,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ڪونگو سواحيلي ڪمورين شامي + سليسيئن تامل ڏاکڻي ٽچون تلگو @@ -406,7 +412,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic تونگن توڪي پونا تاڪ پسن - ترڪش + ترڪي تاروڪو سونگا تاتار @@ -426,7 +432,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic ازبڪ يا وينڊا + ونيشن ويتنامي + مکووا والپڪ ونجو ولون @@ -437,6 +445,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic وو چيني ڪيلمڪ زھوسا + ڪينگري سوگا يانگ بين ييمبا @@ -445,6 +454,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic نھين گاٽو ڪينٽونيز چيني، ڪينٽونيز + جوئنگ معياري مراڪشي تامازائيٽ چيني چيني، مندارن @@ -463,7 +473,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + @@ -644,7 +654,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic گبون برطانيہ برطانيه - گرينڊا + گريناڊا جارجيا فرانسيسي گيانا گورنسي @@ -859,10 +869,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic جارجيائي ڪئلينڊر عبراني ڪئلينڊر هندوستاني قومي ڪئلينڊر - اسلامي ڪئلينڊر - اسلامي ڪئلينڊر (ٽيبلر، مدني دور) - اسلامي ڪئلينڊر (ٽيبلر، فلڪياتي دور) - اسلامي ڪئلينڊر (اُم القرا) + هجري ڪئلينڊر + هجري ڪئلينڊر (ٽيبل وارو، شهري دور) + هجري ڪئلينڊر (ٽيبلر، فلڪياتي دور) + هجري ڪئلينڊر (اُم القرا) ISO-8601 ڪئلينڊر جاپاني ڪئلينڊر فارسي ڪئلينڊر @@ -1157,7 +1167,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - M/d/y GGGGG + M/d/y G ھفتو W جو MMMM ھفتو W جو MMMM ھفتو w جو Y @@ -1517,6 +1527,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} وقت {0} ڏينهن جو وقت {0} معياري وقت + + هونو لولو + گڏيل دنياوي وقت @@ -2257,9 +2270,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic اولان باتر - - چوئي بيلسن - مڪائو @@ -2659,9 +2669,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic نوم - - هونو لولو - اينڪريج @@ -3006,13 +3013,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic چائنا جي ڏينهن جو وقت - - - چوئي بيلسن جو وقت - چوئي بيلسن جو معياري وقت - چوئي بيلسن جي اونهاري جو وقت - - ڪرسمس آئي لينڊ جو وقت @@ -3251,6 +3251,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic جاپان جي ڏينهن جو وقت + + + قزاقستان وقت + + اوڀر قزاقستان جو وقت @@ -3672,6 +3677,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic arab + + . + + + . + ، + + + ، + @@ -3789,8 +3804,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ¤ 000ٽرلين - {0} {1} - {0} {1} @@ -4189,7 +4202,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic سیرا لیونيائي لیون - سیرا لیونيائي لیون - 1964-2022 + سیرا لیونيائي لیون (1964—2022) + سیرا لیونيائي لیون (1964—2022) + سیرا لیونيائي لیون (1964—2022) سومالي شلنگ @@ -4435,7 +4450,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} دنامز - {0} mg/dL + {0} مليگرام في ڊيسيليٽر {0} ملي گرامز في ڊيسي ليٽر @@ -4522,9 +4537,25 @@ CLDR data files are interpreted according to the LDML specification (http://unic صديون - {0} c + {0} صدي {0} صديون + + ٽه ماهيون + {0} ٽه ماهيون + {0} ٽه ماهيون + {0}/ٽه ماهي + + + {0} مهينو + {0} مهينا + {0} في مهينو + + + {0} هفتو + {0} هفتا + {0} في هفتو + {0} في سيڪنڊ {0} سيڪنڊ @@ -4809,6 +4840,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} بيريلز {0} بيريلز + + نوري + {0} نوري + {0} نوري + + + حصا في ارب + {0} حصو في ارب + {0} حصا في ارب + + + راتيون + {0} رات + {0} راتيون + {0} في رات + ڪارڊينل ڊائريڪشن @@ -4962,40 +5009,45 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} بٽ {0} بٽ + + ص + {0} ص + {0} ص + ڏهاڪا {0} ڏهاڪو - {0} ڏهاڪا + {0} ڏهاڪ سال {0} سال {0} سال - {0} في سال + {0}/س ٽه ماهي - {0} ٽه ماهي - {0} ٽه ماهي - {0} في ٽه ماهي + {0} ٽه ماهيون + {0} ٽه ماهيون + {0}/ٽه ماهي مهينا - {0} مهينا + {0} مهينو {0} مهينا - {0} في مهيني + {0}/مهينو هفتا - {0} هفتا + {0} هفتو {0} هفتا - {0} في هفتي + {0}/هفتو ڏينهن {0} ڏينهن {0} ڏينهن - {0} في ڏينهن + {0}/ڏينهن ڪلاڪ @@ -5472,6 +5524,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic بيريل + + نوري + {0} نوري + {0} نوري + + + حصا/ارب + {0} ح ف ا + {0} ح ف ا + + + راتيون + {0} رات + {0} راتيون + {0}/رات + ڊائريڪشن {0} اوڀر @@ -5500,22 +5568,54 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}m² {0}m² + + ص + {0}ص + {0}ص + + + {0}ڏهاڪ + {0}ڏهاڪ + + + {0}س + {0}س + {0}/س + + + {0}ٽه ماهي + {0}ٽه ماهي + {0}/ٽه ماهي + مهينو + {0}مهينو + {0}مهينا + {0}/مهينو هفتو - {0} هفتا - {0} هفتي + {0}هفتو + {0}هفتا + {0}/هفتو + + + {0}ڏينهن + {0}ڏينهن + {0}/ڏينهن - {0} s - {0} سيڪنڊ + {0}سيڪنڊ + {0}سيڪنڊ {0} ms {0} ms + + {0}مائڪرو سيڪنڊ + {0}مائڪرو سيڪنڊ + {0}ڪ و آ/100 ڪ م {0}ڪ و آ/100 ڪ م @@ -5598,10 +5698,28 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} km/h {0} km/h + + نوري + {0}نوري + {0}نوري + + + ح ف ا + {0}ح ف ا + {0}ح ف ا + + + راتيون + {0}رات + {0}راتيون + {0}/رات + + {0}، {1} + {0}، {1} {0}، ۽ {1} {0} ۽ {1} @@ -5610,12 +5728,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} يا {1} + {0}، {1} {0}, {1} - {0}, {1} + {0}، {1} + + + {0}، {1} + {0}، {1} {0}, {1} - {0}, {1} + {0}، {1} diff --git a/make/data/cldr/common/main/sd_Deva.xml b/make/data/cldr/common/main/sd_Deva.xml index 741db721386..517a2db3f2e 100644 --- a/make/data/cldr/common/main/sd_Deva.xml +++ b/make/data/cldr/common/main/sd_Deva.xml @@ -183,15 +183,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic जनवरी - फरवरी + फेबरवरी मार्चु - अप्रैल + अप्रेल मई जून जुलाई - अगस्ट + आगस्ट सप्टेंबर - ओक्टोबर + आक्टोबर नवंबर डिसंबर @@ -227,13 +227,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic जनवरी - फरवरी + फेबरवरी मार्चु - अप्रैल + अप्रेल मई जून जुलाई - अगस्ट + आगस्ट सप्टेंबर ऑक्टोबर नवंबर @@ -256,7 +256,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic आर्तवार सूमर मंगलु - बु॒धर + ॿुधर विस्पत जुमो छंछर @@ -472,9 +472,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic जीएमटी{0} जीएमटी - {0} वक्त + {0} वक़्तु {0} दीं॒ह जो वक्त - {0} मअयारी वक्त + {0} मइयारी वक़्तु गदि॒यल आलमी वक्तु @@ -541,20 +541,29 @@ CLDR data files are interpreted according to the LDML specification (http://unic - ग्रीनविच मीन वक्तु + ग्रीनविच मीन वक़्तु - - {0} {1} - {0} {1} - - - {0} {1} - {0} {1} - + + . + + + + + 0% + + + + + + + 0% + + + ब्राज़ीली रियालु diff --git a/make/data/cldr/common/main/se_FI.xml b/make/data/cldr/common/main/se_FI.xml index 2683caed235..fd6d2ee1644 100644 --- a/make/data/cldr/common/main/se_FI.xml +++ b/make/data/cldr/common/main/se_FI.xml @@ -1383,13 +1383,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kiinná geasseáigi - - - Choibolsana áigi - Choibolsana dálveáigi - Choibolsana geasseáigi - - Juovlasullo áigi diff --git a/make/data/cldr/common/main/si.xml b/make/data/cldr/common/main/si.xml index 86ef2737c6e..e9310faf1b5 100644 --- a/make/data/cldr/common/main/si.xml +++ b/make/data/cldr/common/main/si.xml @@ -57,6 +57,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ බිස්ලමා බිනි සික්සිකා + අනී බම්බරා බෙංගාලි ටිබෙට් @@ -184,6 +185,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ඉබන් ඉබිබියො ඉන්දුනීසියානු + ඉන්ටර්ලින්ග් ඉග්බෝ සිචුආන් යී බටහිර කැනේඩියානු ඉනුක්ටිටුට් @@ -237,6 +239,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ කොමි කෝනීසියානු ක්වාක්වාලා + කුවි කිර්ගිස් ලතින් ලඩිනො @@ -245,8 +248,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ලෙස්ගියන් ගන්ඩා ලිම්බර්ගිශ් + ලිගුරියන් ලිලූට් ලකොට + ලොම්බාර්ඩ් ලින්ගලා ලාඕ ලුසියානා ක්‍රියෝල් @@ -403,6 +408,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ කොංගෝ ස්වාහිලි කොමොරියන් ස්‍රයෑක් + සිලේසියානු දෙමළ දකුණු ටචෝන් තෙළිඟු @@ -442,7 +448,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ උස්බෙක් වයි වෙන්ඩා + වැනේසියානු වියට්නාම් + මකුවා වොලපූක් වුන්ජෝ වෑලූන් @@ -454,6 +462,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ වූ චයිනිස් කල්මික් ශෝසා + කැන්ග්‍රි සොගා යන්ග්බෙන් යෙම්බා @@ -462,6 +471,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ නොහීඟටු කැන්ටොනීස් චීන, කැන්ටොනීස් + ෂුවාං සම්මත මොරොක්කෝ ටමසිග්ත් චීන චීන, මැන්ඩරීන් @@ -1048,7 +1058,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ HH.mm–HH.mm - a h.mm – a hhh.mm v + a h.mm – a h.mm v a h.mm – h.mm v a h.mm – h.mm v @@ -1058,7 +1068,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ a h – a h v - a h – h vv + a h – h v M–M @@ -1791,6 +1801,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} වේලාව {0} දිවාආලෝක වේලාව {0} සම්මත වේලාව + + හොනොලුලු + සමකක්ෂ සාර්ව වේලාව @@ -2528,9 +2541,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ උලාන්බාටර් - - චොයිබල්සාන් - මැකාවු @@ -2930,9 +2940,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ නෝම් - - හොනොලුලු - ඇනකොරාජ් @@ -3277,13 +3284,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ චීන දහවල් වේලාව - - - චොයිබල්සාන් වේලාව - චොයිබල්සාන් සම්මත වේලාව - චොයිබල්සාන් ග්‍රීෂ්ම වේලාව - - ක්‍රිස්මස් දුපත් වේලාව @@ -3522,6 +3522,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ජපාන දහවල් වේලාව + + + කසකස්තාන වේලාව + + නැගෙනහිර කසකස්තාන වේලාව @@ -4077,7 +4082,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ¤¤ - {0} {1} + {1}{0} {1}{0} @@ -5475,6 +5480,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ඉම්පීරියල් නැළිය ඉම්පීරියල් නැළි {0} + + ආලෝකය + {0} ආලෝකය + ආලෝකය {0} + + + බිලියනයකට කොටස් + බිලියනයකට කොටස් {0} + බිලියනයකට කොටස් {0} + + + රාත්‍රිය + {0} රාත්‍රිය + රාත්‍රිය {0} + {0}/රාත්‍රිය + කාර්ඩිනල් දිශාව @@ -6478,6 +6499,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ඉම්පීරියල් නැළි {0} ඉම්පීරියල් නැළි {0} + + ආලෝකය + ආලෝකය {0} + ආලෝකය {0} + + + කොටස්/බිලියනය + බිකො {0} + බිකො {0} + + + රාත්‍රිය + රාත්‍රිය {0} + රාත්‍රිය {0} + {0}/රාත්‍රිය + දිශාව {0}නැ @@ -6751,6 +6788,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ඉම්පී. අතුරුපස හැඳි + + ආලෝකය + ආලෝකය {0} + ආලෝකය {0} + + + බිකො + බිකො {0} + බිකො {0} + + + රාත්‍රිය + රාත්‍රිය {0} + රාත්‍රිය {0} + {0}/රාත්‍රිය + h.mm diff --git a/make/data/cldr/common/main/sk.xml b/make/data/cldr/common/main/sk.xml index 3fbeec27ddb..649e0b2a83f 100644 --- a/make/data/cldr/common/main/sk.xml +++ b/make/data/cldr/common/main/sk.xml @@ -69,6 +69,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bini kom siksika + anii bambarčina bengálčina tibetčina @@ -211,7 +212,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ haida (juh) hebrejčina hindčina - hingliš + hingličtina hiligajnončina chetitčina hmongčina @@ -292,6 +293,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komijčina kornčina kwakʼwala + kuvi kirgizština latinčina židovská španielčina @@ -302,8 +304,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lezginčina gandčina limburčina + ligurčina lillooet lakotčina + lombardčina lingalčina laoština mongo @@ -316,7 +320,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lubčina (luluánska) luiseňo lunda - luo mizorámčina luhja lotyština @@ -497,6 +500,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komorčina sýrčina (klasická) sýrčina + sliezština tamilčina tutchone (juh) telugčina @@ -543,9 +547,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ neznámy jazyk urdčina uzbečtina - vai vendčina + benátčina vietnamčina + makhuwčina volapük vodčina vunjo @@ -559,6 +564,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ čínština (wu) kalmyčtina xhoština + kángrí soga jao japčina @@ -1025,15 +1031,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Najprv radiť veľké písmená Pri radení nerozlišovať veľké a malé písmená Pri radení rozlišovať veľké a malé písmená - tradičný čínsky Big5 + tradičné čínske zoradenie – Big5 predchádzajúce zoradenie, kompatibilita slovníkové zoradenie predvolené zoradenie unicode európske zoradenie - zjednodušený čínsky GB2312 + zjednodušené čínske zoradenie – GB2312 lexikografické zoradenie fonetické zoradenie - zoradenie pinyin + zoradenie pchin-jin všeobecné vyhľadávanie Hľadať podľa počiatočnej spoluhlásky písma Hangul štandardné zoradenie @@ -1149,7 +1155,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2629,6 +2635,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ časové pásmo {0} + + + HST + HST + HDT + + Honolulu + koordinovaný svetový čas @@ -2718,9 +2732,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kapverdy - - Curaçao - Vianočný ostrov @@ -2778,9 +2789,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Londýn + + Akkra + Gibraltár + + Konakry + Atény @@ -2870,6 +2887,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kyzylorda + + Alma‑Ata + Vientian @@ -2903,9 +2923,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ulanbátar - - Čojbalsan - Martinik @@ -2954,15 +2971,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Lisabon - - Asunción - Katar - - Réunion - Bukurešť @@ -3062,14 +3073,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kyjev - - - HST - HST - HDT - - Honolulu - Beulah, Severná Dakota @@ -3349,13 +3352,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ čínsky letný čas - - - čojbalsanský čas - čojbalsanský štandardný čas - čojbalsanský letný čas - - čas Vianočného ostrova @@ -3611,6 +3607,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Petropavlovsk-Kamčatskijský letný čas + + + kazachstanský čas + + východokazachstanský čas @@ -4215,10 +4216,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 bil'.' ¤ - {0} {1} - {0} {1} - {0} {1} - {0} {1} @@ -5812,11 +5809,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ sierraleonských leone - sierraleonský leone (1964—2022) - sierraleonský leone (1964—2022) - sierraleonské leone (1964—2022) - sierraleonského leone (1964—2022) - sierraleonských leone (1964—2022) + sierraleonský leone (1964 – 2022) + sierraleonský leone (1964 – 2022) + sierraleonské leone (1964 – 2022) + sierraleonského leone (1964 – 2022) + sierraleonských leone (1964 – 2022) somálsky šiling @@ -6366,10 +6363,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} dní Na {0}. križovatke odbočte doprava. Namerali sme {0} - Vďaka {0} naviac to bol rekord - Bez {0} sa obídeme. - Uspokojíme sa s {0}. - Po {0} sa zastavil. + Vďaka {0} navyše to bol rekord + Bez {0} sa obídeme + Uspokojíme sa s {0} + Po {0} sa zastavil Chýba ešte {0} Jedna {0} stála 5 eur. Jeden {0} stál 5 eur. @@ -7006,11 +7003,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} karátoch + inanimate miligramy na deciliter {0} miligram na deciliter + {0} miligram na deciliter + {0} miligramu na deciliter + {0} miligramu na deciliter + {0} miligramom na deciliter + {0} miligrame na deciliter {0} miligramy na deciliter + {0} miligramy na deciliter + {0} miligramom na deciliter + {0} miligramov na deciliter + {0} miligramami na deciliter + {0} miligramoch na deciliter {0} miligramu na deciliter + {0} miligramu na deciliter + {0} miligramu na deciliter + {0} miligramu na deciliter + {0} miligramu na deciliter + {0} miligramu na deciliter {0} miligramov na deciliter + {0} miligramov na deciliter + {0} miligramom na deciliter + {0} miligramov na deciliter + {0} miligramami na deciliter + {0} miligramoch na deciliter inanimate @@ -8088,11 +8106,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} voltoch + feminine kilokalórie {0} kilokalória + {0} kilokalóriu + {0} kilokalórii + {0} kilokalórie + {0} kilokalóriou + {0} kilokalórii {0} kilokalórie + {0} kilokalórie + {0} kilokalóriám + {0} kilokalórií + {0} kilokalóriami + {0} kilokalóriách {0} kilokalórie + {0} kilokalórie + {0} kilokalórie + {0} kilokalórie + {0} kilokalórie + {0} kilokalórie {0} kilokalórií + {0} kilokalórii + {0} kilokalóriám + {0} kilokalórii + {0} kilokalóriami + {0} kilokalóriách feminine @@ -8271,6 +8310,31 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ feminine + kilowatthodiny na 100 kilometrov + {0} kilowatthodina na 100 kilometrov + {0} kilowatthodinu na 100 kilometrov + {0} kilowatthodine na 100 kilometrov + {0} kilowatthodiny na 100 kilometrov + {0} kilowatthodinou na 100 kilometrov + {0} kilowatthodine na 100 kilometrov + {0} kilowatthodiny na 100 kilometrov + {0} kilowatthodiny na 100 kilometrov + {0} kilowatthodinám na 100 kilometrov + {0} kilowatthodín na 100 kilometrov + {0} kilowatthodinami na 100 kilometrov + {0} kilowatthodinách na 100 kilometrov + {0} kilowatthodiny na 100 kilometrov + {0} kilowatthodiny na 100 kilometrov + {0} kilowatthodiny na 100 kilometrov + {0} kilowatthodiny na 100 kilometrov + {0} kilowatthodiny na 100 kilometrov + {0} kilowatthodiny na 100 kilometrov + {0} kilowatthodín na 100 kilometrov + {0} kilowatthodín na 100 kilometrov + {0} kilowatthodinám na 100 kilometrov + {0} kilowatthodín na 100 kilometrov + {0} kilowatthodinami na 100 kilometrov + {0} kilowatthodinách na 100 kilometrov inanimate @@ -8498,6 +8562,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} bodu {0} bodov + + polomer Zeme + {0} polomer Zeme + {0} polomery Zeme + {0} polomeru Zeme + {0} polomerov Zeme + inanimate kilometre @@ -8826,11 +8897,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} škandinávskych míľach + inanimate typografické body {0} typografický bod + {0} typografický bod + {0} typografickému bodu + {0} typografického bodu + {0} typografickým bodom + {0} typografickom bode {0} typografické body + {0} typografické body + {0} typografickým bodom + {0} typografických bodov + {0} typografickými bodmi + {0} typografických bodoch {0} typografického bodu + {0} typografického bodu + {0} typografického bodu + {0} typografického bodu + {0} typografického bodu + {0} typografického bodu {0} typografických bodov + {0} typografických bodov + {0} typografickým bodom + {0} typografických bodov + {0} typografickými bodmi + {0} typografických bodoch polomer Slnka @@ -9306,11 +9398,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} konských síl + inanimate milimetre ortuťového stĺpca {0} milimeter ortuťového stĺpca + {0} milimeter ortuťového stĺpca + {0} milimetru ortuťového stĺpca + {0} milimetra ortuťového stĺpca + {0} milimetrom ortuťového stĺpca + {0} milimetri ortuťového stĺpca {0} milimetre ortuťového stĺpca + {0} milimetre ortuťového stĺpca + {0} milimetrom ortuťového stĺpca + {0} milimetrov ortuťového stĺpca + {0} milimetrami ortuťového stĺpca + {0} milimetroch ortuťového stĺpca {0} milimetra ortuťového stĺpca + {0} milimetra ortuťového stĺpca + {0} milimetra ortuťového stĺpca + {0} milimetra ortuťového stĺpca + {0} milimetra ortuťového stĺpca + {0} milimetra ortuťového stĺpca {0} milimetrov ortuťového stĺpca + {0} milimetrov ortuťového stĺpca + {0} milimetrom ortuťového stĺpca + {0} milimetrov ortuťového stĺpca + {0} milimetrami ortuťového stĺpca + {0} milimetroch ortuťového stĺpca libry sily na štvorcový palec @@ -10185,11 +10298,65 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} britského kvartu {0} britských kvartov + + feminine + častice na miliardu + {0} častica na miliardu + {0} časticu na miliardu + {0} častici na miliardu + {0} častice na miliardu + {0} časticou na miliardu + {0} častici na miliardu + {0} častice na miliardu + {0} častice na miliardu + {0} časticiam na miliardu + {0} častíc na miliardu + {0} časticami na miliardu + {0} časticiach na miliardu + {0} častice na miliardu + {0} častice na miliardu + {0} častice na miliardu + {0} častice na miliardu + {0} častice na miliardu + {0} častice na miliardu + {0} častíc na miliardu + {0} častíc na miliardu + {0} časticiam na miliardu + {0} častíc na miliardu + {0} časticami na miliardu + {0} časticiach na miliardu + + + feminine + noci + {0} noc + {0} noc + noci + noci + nocou + noci + {0} noci + {0} noci + {0} nociam + {0} nocí + {0} nocami + {0} nociach + {0} noci + {0} noci + {0} noci + {0} noci + {0} noci + {0} noci + {0} nocí + {0} nocí + {0} nociam + {0} nocí + {0} nocami + {0} nociach + {0}/noc + - - {0}{1} - jednotka preťaženia @@ -10395,6 +10562,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} thm {0} thm + + kWh/100 km + {0} kWh/100 km + {0} kWh/100 km + {0} kWh/100 km + {0} kWh/100 km + Mpx {0} Mpx @@ -10603,6 +10777,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} qt Imp {0} qt Imp + + noci + {0} noc + {0} noci + {0} noci + {0} nocí + {0}/noc + svetová strana {0} E @@ -10655,6 +10837,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} d. {0}/d. + + kWh/100 km + {0} kWh/100 km + {0} kWh/100 km + {0} kWh/100 km + {0} kWh/100 km + bod @@ -10676,6 +10865,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} mb {0} mb + + noci + {0} noc + {0} noci + {0} noci + {0} nocí + {0}/noc + @@ -10862,7 +11059,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ rozstup veľkých písmen voliteľné ligatúry šikmé zlomky - veľk´´é číslice + veľké číslice skákavé číslice radové číslovky proporcionálne číslice diff --git a/make/data/cldr/common/main/sl.xml b/make/data/cldr/common/main/sl.xml index b0fb8038a8b..ce2c42632ea 100644 --- a/make/data/cldr/common/main/sl.xml +++ b/make/data/cldr/common/main/sl.xml @@ -66,6 +66,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bikolski jezik edo siksika + anii bambarščina bengalščina tibetanščina @@ -286,6 +287,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komijščina kornijščina kvakvala + kuvi kirgiščina latinščina ladinščina @@ -296,8 +298,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lezginščina ganda limburščina + ligurščina lilovetščina lakotščina + lombardščina lingala laoščina mongo @@ -310,7 +314,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ luba-lulua luisenščina lunda - luo mizojščina luhijščina latvijščina @@ -485,6 +488,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ šikomor klasična sirščina sirščina + šlezijščina tamilščina južna tučonščina telugijščina @@ -532,7 +536,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ uzbeščina vajščina venda + beneščina vietnamščina + makuva volapik votjaščina vunjo @@ -546,6 +552,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ wu-kitajščina kalmiščina koščina + kangri sogščina jaojščina japščina @@ -556,6 +563,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ nheengatu kantonščina kitajščina (kantonščina) + džuangščina zapoteščina znakovni jezik Bliss zenaščina @@ -1088,8 +1096,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ indijanski koledar islamski koledar islamski civilni koledar - islamski koledar ( Saudova Arabija, opazovalni) - islamski koledar (tabelarni, astronomska epoha) + islamski koledar ( Saudova Arabija, opazovalni) + islamski koledar (tabelarni, astronomska epoha) islamski koledar Umm al-Qura koledar ISO-8601 japonski koledar @@ -1246,8 +1254,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] - [₹ ₨ {Rs}] + [££ ₤] + [₹ {Rs}₨] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2541,6 +2549,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} čas {0} poletni čas {0} standardni čas + + Honolulu + univerzalni koordinirani čas @@ -2621,9 +2632,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Zelenortski otoki - - Curaçao - Božični otok @@ -2668,7 +2676,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - britanski poletni čas + Britanski poletni čas @@ -2700,7 +2708,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - irski standardni čas + Irski standardni čas @@ -2799,9 +2807,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ulan Bator - - Čojbalsan - Martinik @@ -2841,9 +2846,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Lizbona - - Asunción - Katar @@ -2904,9 +2906,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Mogadišu - - São Tomé - Salvador @@ -2925,9 +2924,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kijev - - Honolulu - Beulah, Severna Dakota @@ -3174,13 +3170,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kitajski poletni čas - - - Čojbalsanski čas - Čojbalsanski standardni čas - Čojbalsanski poletni čas - - Božičnootoški čas @@ -3426,6 +3415,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Petropavlovsk-Kamčatski poletni čas + + + Kazahstanski čas + + Vzhodni kazahstanski čas @@ -3850,6 +3844,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + 2 , . @@ -3952,7 +3947,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ #,##0.00 ¤;(#,##0.00 ¤) - #,##0.00;(#,##0.00) + #,##0.00;(#,##0.00) @@ -4007,10 +4002,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 bil'.' ¤ - {0} {1} - {0} {1} - {0} {1} - {0} {1} @@ -4159,11 +4150,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bolgarskih levov - bahranski dinar - bahranski dinar - bahranska dinarja - bahranski dinarji - bahranskih dinarjev + bahrajnski dinar + bahrajnski dinar + bahrajnska dinarja + bahrajnski dinarji + bahrajnskih dinarjev burundski frank @@ -4496,7 +4487,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ gruzijski lari gruzijski lari gruzijska larija - gruzijski lari + gruzijski lariji gruzijskih larijev @@ -4584,11 +4575,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ hrvaških kun - haitski gurd - haitski gurd - haitska gurda - haitski gurdi - haitskih gurdov + haitijski gurd + haitijski gurd + haitijska gurda + haitijski gurdi + haitijskih gurdov madžarski forint @@ -4763,7 +4754,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lesotski loti - lesotski lot + lesotski loti lesotska lota lesotski loti lesotskih lotov @@ -4807,18 +4798,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ maroški frank - moldavijski leu - moldavijski leu - moldavijska leua - moldavijski leu - moldavijskih leuov + moldavski lev + moldavski lev + moldavska leva + moldavski levi + moldavskih levov - malgaški ariarij - malgaški ariarij - malgaška ariarija - malgaški ariariji - malgaških ariarijev + madagaskarski ariari + madagaskarski ariari + madagaskarska ariarija + madagaskarski ariariji + madagaskarskih ariarijev malgaški frank @@ -4848,11 +4839,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ mongolskih tugrikov - makavska pataka - makavska pataka - makavski pataki - makavske patake - makavskih patak + macajska pataka + macajska pataka + macajski pataki + macajske patake + macajskih patak mavretanska uguija (1973–2017) @@ -4947,11 +4938,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ nikaraška kordova - nikaraška zlata kordova - nikaraška zlata kordova - nikaraški zlati kordovi - nikaraške zlate kordove - nikaraških zlatih kordov + nikaragovska kordova + nikaragovska kordova + nikaragovski kordovi + nikaragovske kordove + nikaragovskih kordov nizozemski gulden @@ -5032,11 +5023,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ pakistanskih rupij - poljski novi zlot - poljski novi zlot - poljska nova zlota - poljski novi zloti - poljskih novih zlotov + poljski zlot + poljski zlot + poljska zlota + poljski zloti + poljskih zlotov stari poljski zlot (1950–1995) @@ -5065,11 +5056,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ stari romunski leu - romunski leu - romunski leu - romunska leua - romunski leu - romunskih leuov + romunski lev + romunski lev + romunska leva + romunski levi + romunskih levov srbski dinar @@ -5165,18 +5156,18 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ slovaških kron - sieraleonski leone - sieraleonski leone - sieraleonska leona - sieraleonski leoni - sieraleonskih leonov + sierraleonski leone + sierraleonski leone + sierraleonska leona + sierraleonski leoni + sierraleonskih leonov - sieraleonski leone (1964—2022) - sieraleonski leone (1964—2022) - sieraleonska leona (1964—2022) - sieraleonski leoni (1964—2022) - sieraleonskih leonov (1964—2022) + sierraleonski leone (1964—2022) + sierraleonski leone (1964—2022) + sierraleonska leona (1964—2022) + sierraleonski leoni (1964—2022) + sierraleonskih leonov (1964—2022) somalski šiling @@ -5210,11 +5201,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ saotomejskih dober (1977–2017) - saotomejska dobra - saotomejska dobra - saotomejski dobri - saotomejske dobre - saotomejskih dober + dobra Svetega Tomaža in Princa + dobra Svetega Tomaža in Princa + dobri Svetega Tomaža in Princa + dobre Svetega Tomaža in Princa + dober Svetega Tomaža in Princa sovjetski rubelj @@ -5230,11 +5221,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ sirijskih funtov - svazijski lilangeni - svazijski lilangeni - svazijska lilangenija - svazijski lilangeni - svazijskih lilangenijev + esvatinski lilangeni + esvatinski lilangeni + esvatinska lilangenija + esvatinski lilangeni + esvatinskih lilangenijev tajski baht @@ -5257,11 +5248,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ turkmenski manat - turkmenistanski novi manat - turkmenistanski novi manat - turkmenistanska nova manata - turkmenistanski novi manati - turkmenistanskih novih manatov + turkmenistanski manat + turkmenistanski manat + turkmenistanska manata + turkmenistanski manati + turkmenistanskih manatov tunizijski dinar @@ -5284,11 +5275,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ stara turška lira - nova turška lira - nova turška lira - novi turški liri - nove turške lire - novih turških lir + turška lira + turška lira + turški liri + turške lire + turških lir dolar Trinidada in Tobaga @@ -6173,11 +6164,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} karatih + masculine miligrami na deciliter {0} miligram na deciliter + {0} miligram na deciliter + {0} miligramu na deciliter + {0} miligrama na deciliter + {0} miligramom na deciliter + {0} miligramu na deciliter {0} miligrama na deciliter + {0} miligrama na deciliter + {0} miligramoma na deciliter + {0} miligramov na deciliter + {0} miligramoma na deciliter + {0} miligramih na deciliter {0} miligrami na deciliter + {0} miligrami na deciliter + {0} miligramom na deciliter + {0} miligramov na deciliter + {0} miligrami na deciliter + {0} miligramih na deciliter {0} miligramov na deciliter + {0} miligramov na deciliter + {0} miligramom na deciliter + {0} miligramov na deciliter + {0} miligrami na deciliter + {0} miligramih na deciliter masculine @@ -6833,33 +6845,33 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} na leto - neuter - četrtletje - {0} četrtletje - {0} četrtletje - {0} četrtletju - {0} četrtletja - {0} četrtletjem - {0} četrtletju - {0} četrtletji - {0} četrtletji - {0} četrtletjem - {0} četrtletij - {0} četrtletjema - {0} četrtletjih - {0} četrtletja - {0} četrtletja - {0} četrtletjem - {0} četrtletij - {0} četrtletji - {0} četrtletjih - {0} četrtletij - {0} četrtletij - {0} četrtletjem - {0} četrtletij - {0} četrtletji - {0} četrtletjih - {0}/četrtletje + neuter + četrtletje + {0} četrtletje + {0} četrtletje + {0} četrtletju + {0} četrtletja + {0} četrtletjem + {0} četrtletju + {0} četrtletji + {0} četrtletji + {0} četrtletjem + {0} četrtletij + {0} četrtletjema + {0} četrtletjih + {0} četrtletja + {0} četrtletja + {0} četrtletjem + {0} četrtletij + {0} četrtletji + {0} četrtletjih + {0} četrtletij + {0} četrtletij + {0} četrtletjem + {0} četrtletij + {0} četrtletji + {0} četrtletjih + {0}/četrtletje masculine @@ -7227,11 +7239,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} voltih + feminine kilokalorije {0} kilokalorija + {0} kilokalorijo + {0} kilokaloriji + {0} kilokalorije + {0} kilokalorijo + {0} kilokaloriji {0} kilokaloriji + {0} kilokaloriji + {0} kilokalorijama + {0} kilokalorij + {0} kilokalorijama + {0} kilokalorijah {0} kilokalorije + {0} kilokalorije + {0} kilokalorijam + {0} kilokalorij + {0} kilokalorijami + {0} kilokalorijah {0} kilokalorij + {0} kilokalorij + {0} kilokalorijam + {0} kilokalorij + {0} kilokalorijami + {0} kilokalorijah feminine @@ -7543,8 +7576,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine - {0} em - {0} em + {0} emov + {0} emov {0} emu {0} ema {0} emom @@ -7662,8 +7695,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ pik na palec {0} pika na palec - {0} dpi - {0} dpi + {0} piki na palec + {0} pike na palec {0} pik na palec @@ -7999,11 +8032,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} skandinavskih miljah + feminine točke {0} točka + {0} točko + {0} točki + {0} točke + {0} točko + {0} točki {0} točki + {0} točki + {0} točkama + {0} točk + {0} točkama + {0} točkah {0} točke + {0} točke + {0} točkam + {0} točk + {0} točkami + {0} točkah {0} točk + {0} točk + {0} točkam + {0} točk + {0} točkami + {0} točkah polmeri sonca @@ -8478,11 +8532,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} konjskih moči + masculine milimetri živega srebra {0} milimeter živega srebra + {0} milimeter živega srebra + {0} milimetru živega srebra + {0} milimetra živega srebra + {0} milimetrom živega srebra + {0} milimetru živega srebra {0} milimetra živega srebra + {0} milimetra živega srebra + {0} milimetroma živega srebra + {0} milimetrov živega srebra + {0} milimetroma živega srebra + {0} milimetrih živega srebra {0} milimetri živega srebra + {0} milimetre živega srebra + {0} milimetrom živega srebra + {0} milimetrov živega srebra + {0} milimetri živega srebra + {0} milimetrih živega srebra {0} milimetrov živega srebra + {0} milimetrov živega srebra + {0} milimetrom živega srebra + {0} milimetrov živega srebra + {0} milimetri živega srebra + {0} milimetrih živega srebra funti na kvadratni palec @@ -9011,7 +9086,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} kubičnih palcev - masculine + masculine megalitri {0} megaliter {0} megaliter @@ -9334,6 +9409,91 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} imp. kvarti {0} imp. kvartov + + feminine + svetloba + {0} svetloba + {0} svetlobo + {0} svetlobi + {0} svetlobe + {0} svetlobo + {0} svetlobi + {0} svetlobi + {0} svetlobi + {0} svetlobama + {0} svetlob + {0} svetlobama + {0} svetlobah + {0} svetlobe + {0} svetlobe + {0} svetlobam + {0} svetlob + {0} svetlobami + {0} svetlobah + {0} svetlob + {0} svetlob + {0} svetlobam + {0} svetlob + {0} svetlobami + {0} svetlobah + + + masculine + delci na milijardo + {0} delec na milijardo + {0} delec na milijardo + {0} delcu na milijardo + {0} delca na milijardo + {0} delcem na milijardo + {0} delcu na milijardo + {0} delca na milijardo + {0} delca na milijardo + {0} delcema na milijardo + {0} delcev na milijardo + {0} delcema na milijardo + {0} delcih na milijardo + {0} delci na milijardo + {0} delce na milijardo + {0} delcem na milijardo + {0} delcev na milijardo + {0} delci na milijardo + {0} delcih na milijardo + {0} delcev na milijardo + {0} delcev na milijardo + {0} delcem na milijardo + {0} delcev na milijardo + {0} delci na milijardo + {0} delcih na milijardo + + + feminine + noči + {0} noč + {0} noč + {0} noči + {0} noči + {0} nočjo + {0} noči + {0} noči + {0} noči + {0} nočema + {0} noči + {0} nočema + {0} nočeh + {0} noči + {0} noči + {0} nočem + {0} noči + {0} nočmi + {0} nočeh + {0} noči + {0} noči + {0} nočem + {0} noči + {0} nočmi + {0} nočeh + {0} na noč + stran neba {0} vzhodno @@ -9477,12 +9637,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}/l - četrt - {0} četrtl. - {0} četrtl. - {0} četrtl. - {0} četrtl. - {0}/četrt + četrt + {0} četrtl. + {0} četrtl. + {0} četrtl. + {0} četrtl. + {0}/četrt meseci @@ -9525,6 +9685,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ J + + {0} emov + {0} ema + {0} emi + {0} emov + dpcm {0} dpcm @@ -9569,6 +9735,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ sežnji + + točke + g @@ -9769,6 +9938,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} imp. qt {0} imp. qt + + svetloba + {0} svetloba + {0} svetlobi + {0} svetlobe + {0} svetlob + + + noči + {0} noč + {0} noči + {0} noči + {0} noči + {0}/noč + smer {0} V @@ -9792,31 +9976,31 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ st. - {0} st - {0} st - {0} st - {0} st + {0} st + {0} st + {0} st + {0} st let - {0} čl. - {0} čl. - {0} čl. - {0} čl. + {0} čl. + {0} čl. + {0} čl. + {0} čl. - mesecev + mesec - tednov + t - {0}/dan. + {0}/dan. - ur + ura s @@ -9825,6 +10009,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} s {0} s + + {0} emov + {0} ema + {0} emi + {0} emov + pika @@ -9863,16 +10053,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} imp. des. žl. {0} imp. des. žl. + + svetloba + {0} svetloba + {0} svetlobi + {0} svetlobe + {0} svetlob + + + noči + {0} n + {0} n + {0} n + {0} n + {0}/noč + - - h.mm - - - h.mm.ss - - - m.ss - diff --git a/make/data/cldr/common/main/so.xml b/make/data/cldr/common/main/so.xml index f2d5323c230..6d916fa8de5 100644 --- a/make/data/cldr/common/main/so.xml +++ b/make/data/cldr/common/main/so.xml @@ -39,7 +39,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Awa U dhashay Aymar Asarbayjan - Aseeri Bashkir U dhashay Baline Basaa @@ -48,10 +47,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Bena Bulgeeriyaan Haryanvi - U dhashay Bhohp + Bhojpuri U dhashay Bislam U dhashay Bin Siksiká + Anii Bambaara Bangladesh Tibeetaan @@ -119,7 +119,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Isberaanto Isbaanish Isbaanishka Laatiin Ameerika - Isbaanish (Isbayn) + Isbaanish Yurub Isbaanishka Mexico Istooniyaan Basquu @@ -174,7 +174,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Iban Ibibio Indunusiyaan - Interlingue + Interlingue Igbo Sijuwan Yi Western Canadian Inuktitut @@ -227,6 +227,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Komi Kornish Kwakʼwala + Kufi Kirgiis Laatiin Ladino @@ -235,8 +236,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic Lezghian Gandha Limburgish + Liguuriyaan Lillooet Laakoota + Lombard Lingala Lao Louisiana Creole @@ -253,7 +256,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Laatfiyaan Madurese Magahi - Dadka Maithili + Maithili Makasar Masaay Moksha @@ -261,7 +264,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Meeru Moorisayn Malagaasi - Makhuwa + Luuqadda Makhuwa-Meetto Meetaa Marshallese Maaoori @@ -278,7 +281,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Malaay Maltiis Miyundhaang - Luuqado kala duwan + Luuqaddo badan Muscogee Mirandese Burmese @@ -327,12 +330,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic Pijin Boolish Maliseet-Passamaquoddy - Brashiyaanki Hore + Brashiyaan Bashtuu Boortaqiis Boortaqiiska Baraasiil - Boortaqiis (Boortuqaal) - Quwejuwa + Boortaqiiska Yurub + Quechua Rajasthani Rapanui Rarotongan @@ -347,7 +350,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Raawa Sanskrit Sandawe - Saaqa + Yakut Sambuuru Santali Ngambay @@ -363,7 +366,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Serbiyaan Shilha Shan - Sinhaleys + Sinhala Isloofaak Islofeeniyaan Southern Lushootseed @@ -384,7 +387,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Iswiidhish Sawaaxili Comorian - Syria + Af-Siriyak + Sileshiyaan Tamiil Southern Tutchone Teluugu @@ -425,7 +429,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Usbakis Faayi Venda + Dadka Fenaays Fiitnaamays + Af-Makhuwa Folabuuk Fuunjo Walloon @@ -435,7 +441,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Woolof Wu Chinese Kalmyk - Hoosta + Xhosa + Kangri Sooga Yaangbeen Yemba @@ -444,10 +451,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic Nheengatu Kantoneese Shiinays, Cantonese + Zhuang Morokaanka Tamasayt Rasmiga - Shiinaha Mandarin + Shinees + Af-Shiineeska Mandarin Shiinaha Rasmiga ah - Shiinahii Hore + Shiineeska Mandarin ee Rasmiga ah + Af-Shiineeska Qadiimiga ah + Af-Shiineeska Mandarin ee Qadiimiga ah Zuulu Zuni Luuqad Looma Hayo @@ -578,7 +589,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + @@ -628,7 +639,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Dunida + dunida Afrika Waqooyi Ameerika Koonfur Ameerika @@ -856,7 +867,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Bitkairn Bueerto Riiko Dhulka Falastiiniyiinta daanta galbeed iyo marinka qasa - Falastiin + Falastiin Bortugaal Balaaw Baraguaay @@ -897,7 +908,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Taylaand Tajikistan Tokelaaw - Timoor + Timor-Leste Bariga Timor Turkmenistan Tuniisiya @@ -914,7 +925,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Maraykanka Uruguwaay Usbakistan - Faatikaan + Magaalada Faatikaan St. Finsent & Girenadiins Fenisuweela Biritish Farjin Island @@ -1144,7 +1155,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -1611,18 +1622,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic Dis - Bisha Koobaad - Bisha Labaad - Bisha Saddexaad - Bisha Afraad - Bisha Shanaad - Bisha Lixaad - Bisha Todobaad - Bisha Sideedaad - Bisha Sagaalaad - Bisha Tobnaad - Bisha Kow iyo Tobnaad - Bisha Laba iyo Tobnaad + Janaayo + Febraayo + Maarso + Abriil + Maayo + Juun + Luulyo + Agosto + Sebtembar + Oktoobar + Noofeembar + Diseembar @@ -1645,9 +1656,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Febraayo Maarso Abriil - May + Maayo Juun - Luuliyo + Luulyo Ogosto Sebteembar Oktoobar @@ -1687,15 +1698,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic J S - - Axd - Isn - Tldo - Arbaco - Khms - Jmc - Sbti - @@ -1726,8 +1728,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - AM + + GH GD @@ -2220,7 +2222,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic saman - Sannad + sannad Sannadkii hore Sannadkan Sannadka danbe @@ -2251,7 +2253,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Sannadka xiga - Rubuc + rubuc Rubucii hore Rubucan Rubuca danbe @@ -3285,9 +3287,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Hofud - - Joybalsan - Makow @@ -3985,13 +3984,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Waqtiga Dharaarta ee Shiinaha - - - Waqtiga Joybalsan - Waqtiga Caadiga Ah ee Joybalsan - Waqtiga Xagaaga ee Joybalsan - - Waqtiga Kirismas Aylaan @@ -4242,6 +4234,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Wakhtiga Kulka ee Petropavlovsk-Kamchatski + + + Wakhtiga Kazakhistan + + Waqtiga Bariga Kasakhistaan @@ -5838,12 +5835,54 @@ CLDR data files are interpreted according to the LDML specification (http://unic senti{0} + + milli{0} + + + mikro{0} + + + nano{0} + + + pico{0} + + + femto{0} + + + atto{0} + + + zepto{0} + + + yocto{0} + ronto{0} quecto{0} + + deka{0} + + + hecto{0} + + + kilo{0} + + + mega{0} + + + giga{0} + + + tera{0} + peta{0} @@ -5862,8 +5901,32 @@ CLDR data files are interpreted according to the LDML specification (http://unic quetta{0} + + kibi{0} + + + mebi{0} + + + gibi{0} + + + tebi{0} + + + pebi{0} + + + exbi{0} + + + zebi{0} + - dheer{0} + yobi{0} + + + {0} kiiba {1} laba-jibaar {0} @@ -6053,7 +6116,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic bitis - qarni + qarniyo {0} qarni {0} qarniyo @@ -6306,6 +6369,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} unuga xidigiska {0} unuga xidigiska + + furlongs + {0} furlong + {0} furlongs + + + fathoms + {0} fathom + {0} fathoms + Nuutikal meyl nuutika meyl @@ -6328,6 +6401,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} laks {0} laks + + candela + {0} candela + {0} candela + + + lumen + {0} lumen + {0} lumen + iftiinnada qorraxda {0} iftiinka qorraxda @@ -6363,6 +6446,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} tan {0} tan + + dhagaxo + {0} dhagax + {0} dhagaxo + {0} bownd {0} bownd @@ -6657,6 +6745,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} dram {0} dram + + nal + {0} nal + {0} nal + + + qeybaha bilyankiiba + {0} qeybaha bilyankiiba + {0} qeybaha bilyankiiba + + + habeeno + {0} habeen + {0} habeeno + {0} halkii habeen + afarta Jiho {0} Bari @@ -6979,6 +7083,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} ux {0} ux + + furlongs + + + fathoms + nmy {0} nmy @@ -7000,6 +7110,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic laks + + candela + + + lumen + iftiinada qorraxda @@ -7009,6 +7125,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic tan + + dhagaxo + {0} dx + {0} dx + bownd {0} bw @@ -7200,6 +7321,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic dareere dram + + nal + {0} nal + {0} nal + + + qeybaha/bilyan + {0} qb + {0} qb + + + habeeno + {0} habeen + {0} habeeno + {0}/habeen + jiho {0} B @@ -7322,11 +7459,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}mm {0}mm + + furlong + + + fathom + {0}cd {0}cd + lumen {0}lm {0}lm @@ -7338,6 +7482,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}g {0}g + + dx + {0}dx + {0}dx + gr {0}gr @@ -7359,6 +7508,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic km/s + + {0}nt + {0}nt + °C @@ -7409,6 +7562,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}qt-Imp. {0}qt-Imp. + + nal + {0}nal + {0}nal + + + qb + {0}qb + {0}qb + + + habeeno + {0}habeen + {0}habeeno + {0}/habeen + {0}B {0}W @@ -7753,11 +7922,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Mudane - Abdi Taban - Shermake - Nadifa Maxamed + Bertram Wilberforce + Bertie + Henry Robert ∅∅∅ - Iman + Wooster ∅∅∅ Jr MP diff --git a/make/data/cldr/common/main/sq.xml b/make/data/cldr/common/main/sq.xml index ccffdff0a04..16b64b166fb 100644 --- a/make/data/cldr/common/main/sq.xml +++ b/make/data/cldr/common/main/sq.xml @@ -56,6 +56,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bislamisht binisht siksikaisht + anisht bambarisht bengalisht tibetisht @@ -163,6 +164,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ haidaishte jugore hebraisht indisht + hindisht (latine) + hinglisht hiligajnonisht hmongisht kroatisht @@ -231,6 +234,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komisht kornisht kuakualaisht + kuvisht kirgizisht latinisht ladinoisht @@ -399,6 +403,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ suahilishte kongoleze kamorianisht siriakisht + silesisht tamilisht tatshonishte jugore teluguisht @@ -441,6 +446,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ vendaisht venetisht vietnamisht + makuvaisht volapykisht vunxhoisht ualunisht @@ -452,6 +458,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kinezishte vu kalmikisht xhosaisht + kangrisht sogisht jangbenisht jembaisht @@ -460,6 +467,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ nejengatuisht kantonezisht kinezishte kantoneze + zhuangisht tamaziatishte standarde marokene kinezisht kinezishte mandarine @@ -990,7 +998,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kalendari Kombëtar Indian kalendar islam kalendar islam (tabelor, epoka civile) - kalendar islamik (Arabi Saudite, shikim) + kalendar islamik (Arabi Saudite, shikim) kalendar islam (tabelor, epoka astronomike) kalendar islam (um al-qura) kalendar ISO-8601 @@ -1612,7 +1620,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ E, d MMM d MMMM E, d MMMM - 'java' W 'e' MMMM + 'java' W 'e' 'muajit' MMMM 'java' W 'e' MMMM M.y d.M.y @@ -2124,6 +2132,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ora: {0} Ora verore: {0} Ora standarde: {0} + + Honolulu + Ora universale e koordinuar @@ -2677,9 +2688,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ulanbatar - - Çoibalsan - Makao @@ -2911,9 +2919,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Uejk - - Honolulu - Ankorejxh @@ -3256,13 +3261,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ora verore e Kinës - - - Ora e Çoibalsanit - Ora standarde e Çoibalsanit - Ora verore e Çoibalsanit - - Ora e Ishullit të Krishtlindjeve @@ -3513,6 +3511,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ora verore e Petropavllovsk-Kamçatkës + + + Ora e Kazakistanit + + Ora e Kazakistanit Lindor @@ -4064,8 +4067,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ¤¤ - {0} {1} - {0} {1} @@ -4790,14 +4791,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ SHP - Leoni i Sierra-Leones - leon i Sierra-Leones - leonë të Sierra-Leones + Leoni i Siera-Leones + leon i Siera-Leones + leonë të Siera-Leones - Leoni i Sierra-Leones (1964—2022) - leon i Sierra-Leones (1964—2022) - leonë të Sierra-Leones (1964—2022) + Leoni i Siera-Leones (1964–2022) + leon i Siera-Leones (1964–2022) + leonë të Siera-Leones (1964–2022) Shilinga somaleze @@ -5741,9 +5742,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} atmosferë - paskalë + paskal {0} paskal - {0} paskalë + {0} paskal hektopaskal @@ -5977,9 +5978,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ çerekë imperialë - {0} çerek imperialë + {0} çerek imperial {0} çerekë imperialë + + pjesë për miliard + {0} pjesë për miliard + {0} pjesë për miliard + + + net + {0} natë + {0} net + {0}/natë + drejtimi kardinal {0} Lindje @@ -6241,6 +6253,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} pisk {0} pinch + + net + {0} natë + {0} net + {0}/natë + drejtimi {0} L @@ -6255,12 +6273,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} g-forcë - hark-min {0}′ {0}′ - hark-sek {0}″ {0}″ @@ -6268,7 +6284,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ akër - molë {0} mol {0} molë @@ -6335,7 +6350,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ dpi - pika + pikë {0} pikë {0} pika @@ -6394,6 +6409,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} pisk {0} piska + + net + {0} natë + {0} net + {0}/natë + diff --git a/make/data/cldr/common/main/sr.xml b/make/data/cldr/common/main/sr.xml index 3b6e777f96b..b544b269658 100644 --- a/make/data/cldr/common/main/sr.xml +++ b/make/data/cldr/common/main/sr.xml @@ -57,6 +57,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ белоруски беџа бемба + бетави бена бугарски харијански @@ -66,6 +67,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ бикол бини сисика + ании бамбара бенгалски тибетански @@ -73,6 +75,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ брај бодо босански + акосе бурјатски бугијски блински @@ -95,6 +98,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ чипевјански чероки чејенски + чикасо централни курдски чилкотин корзикански @@ -204,6 +208,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ хилигајнонски хетитски хмоншки + хмонг нџуа хири моту хрватски горњолужичкосрпски @@ -281,6 +286,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ коми корнволски кваквала + куви киргиски латински ладино @@ -291,9 +297,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ лезгински ганда лимбуршки + лигурски лилут лакота - ломбард + ломбард лингала лаоски монго @@ -472,7 +479,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ сахо сесото стреицсалиш - сундански + сундски сукума сусу сумерски @@ -482,6 +489,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ коморски сиријачки сиријски + силежански тамилски јужни тачон телугу @@ -530,7 +538,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ узбечки ваи венда + венецијански вијетнамски + макува волапик водски вунџо @@ -544,6 +554,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ву кинески калмички коса + кангри сога јао јапски @@ -770,7 +781,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Бурунди Бенин Свети Бартоломеј - Бермуда + Бермуди Брунеј Боливија Карипска Холандија @@ -862,8 +873,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Израел Острво Ман Индија - Британска територија Индијског океана - архипелаг Чагос + Британска територија Индијског океана + архипелаг Чагос Ирак Иран Исланд @@ -947,7 +958,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Палау Парагвај Катар - Океанија (удаљена острва) + удаљена острва Океаније Реинион Румунија Србија @@ -1010,7 +1021,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Вануату Валис и Футуна Самоа - Псеудоакценти + симулиране дијакритике Псеудобиди Косово Јемен @@ -1018,7 +1029,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Јужноафричка Република Замбија Зимбабве - Непознат регион + непознат регион Енглеска @@ -1193,9 +1204,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ваи цифре - Метрички - УК - САД + метрички + британски + амерички Језик: {0} @@ -1207,12 +1218,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [а б в г д ђ е ж з и ј к л љ м н њ о п р с т ћ у ф х ц ч џ ш] [{а̂} {е̂} {и̂} {о̂} {у̂}] [А Б В Г Д Ђ Е Ж З И Ј К Л Љ М Н Њ О П Р С Т Ћ У Ф Х Ц Ч Џ Ш] - [\- ‐‑ – , ; \: ! ? . … ‘‚ “„ ( ) \[ \] \{ \} * #] + [\- ‐‑ – , ; \: ! ? . … ’ ”„ ( ) \[ \] \{ \} * / #] [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -1220,8 +1231,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - - + @@ -1558,7 +1568,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ поноћ подне - ујутро + ујутру по подне увече ноћу @@ -1571,6 +1581,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ увече ноћу + + поноћ + подне + ујутру + по подне + увече + ноћу + @@ -1579,10 +1597,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ вече ноћ - - пре подне - по подне - @@ -1622,7 +1636,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - d.M.yy. + d. M. y. yyMd @@ -1674,8 +1688,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ hh:mm B hh:mm:ss B E - E hh:mm B - E hh:mm:ss B + E, hh:mm:ss B E d. E h:mm a E h:mm:ss a @@ -1697,9 +1710,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ E d. MMM d. MMMM E, d. MMMM - W. 'седмица' 'у' MMMM. - W. 'седмица' 'у' MMMM. - W. 'седмица' 'у' MMMM. + MMMM: W. 'недеља' + MMMM: W. 'недеља' + MMMM: W. 'недеља' y. M. y. d. M. y. @@ -1712,9 +1725,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ MMMM y. QQQ y. QQQQ y. - w. 'седмица' 'у' Y. - w. 'седмица' 'у' Y. - w. 'седмица' 'у' Y. + w. 'недеља' 'у' Y. + w. 'недеља' 'у' Y. + w. 'недеља' 'у' Y. {0} – {1} @@ -2672,6 +2685,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}, летње време {0}, стандардно време + + Хонолулу + Координисано универзално време @@ -3409,9 +3425,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Улан Батор - - Чојбалсан - Макао @@ -3811,9 +3824,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ном - - Хонолулу - Енкориџ @@ -4193,13 +4203,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Кина, летње време - - - Чојбалсан време - Чојбалсан, стандардно време - Чојбалсан, летње време - - Божићно острво време @@ -4468,6 +4471,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Петропавловско-камчатско летње рачунање времена + + + Казахстанско време + + Источно-казахстанско време @@ -5040,9 +5048,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 бил'.' ¤ - {0} {1} - {0} {1} - {0} {1} @@ -5184,10 +5189,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ босанско-херцеговачких динара - босанско-херцеговачка конвертибилна марка - босанско-херцеговачка конвертибилна марка - босанско-херцеговачке конвертибилне маркe - босанско-херцеговачких конвертибилних марака + босанскохерцеговачка конвертибилна марка + босанскохерцеговачка конвертибилна марка + босанскохерцеговачке конвертибилне маркe + босанскохерцеговачких конвертибилних марака КМ @@ -5606,7 +5611,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ етиопских бира - Евро + евро евро евра евра @@ -6523,10 +6528,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ турских лира - Тринидад-тобагошки долар - тринидад-тобагошки долар - тринидад-тобагошка долара - тринидад-тобагошких долара + тринидадскотобашки долар + тринидадскотобашки долар + тринидадскотобашка долара + тринидадскотобашких долара нови тајвански долар @@ -6759,7 +6764,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ кодова тестиране валуте - Непозната валута + непозната валута непозната јединица валуте непознате валуте непознатих валута @@ -6973,7 +6978,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ квадратни {0} квадратни {0} квадратни {0} - квадратни {0} + квадратна {0} квадратни {0} квадратни {0} квадратни {0} @@ -7266,10 +7271,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} карата + inanimate милиграми по децилитру {0} милиграм по децилитру + {0} милиграм по децилитру + {0} милиграма по децилитру + {0} милиграмом по децилитру {0} милиграма по децилитру + {0} милиграма по децилитру + {0} милиграма по децилитру + {0} милиграма по децилитру {0} милиграма по децилитру + {0} милиграма по децилитру + {0} милиграма по децилитру + {0} милиграма по децилитру inanimate @@ -7614,7 +7629,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} деценије {0} деценије {0} деценије - {0} деценије + {0} деценијом {0} деценија {0} деценија {0} деценија @@ -7866,10 +7881,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} волти + feminine килокалорије {0} килокалорија + {0} килокалорију + {0} килокалорије + {0} килокалоријом {0} килокалорије + {0} килокалорије + {0} килокалорије + {0} килокалорије {0} килокалорија + {0} килокалорија + {0} килокалорија + {0} килокалорија feminine @@ -7977,6 +8002,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ inanimate + киловат-сати на 100 километара + {0} киловат-сат на 100 километара + {0} киловат-сат на 100 километара + {0} киловат-сата на 100 километара + {0} киловат-сатом на 100 километара + {0} киловат-сата на 100 километара + {0} киловат-сата на 100 километара + {0} киловат-сата на 100 километара + {0} киловат-сата на 100 километара + {0} киловат-сати на 100 километара + {0} киловат-сати на 100 километара + {0} киловат-сати на 100 километара + {0} киловат-сати на 100 километара inanimate @@ -8313,6 +8351,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} скандинавских миља {0} скандинавских миља + + feminine + типографске тачке + {0} типографска тачка + {0} типографску тачку + {0} типографске тачке + {0} типографском тачком + {0} типографске тачке + {0} типографске тачке + {0} типографских тачака + {0} типографске тачке + {0} типографских тачака + {0} типографских тачака + {0} типографских тачака + {0} типографских тачака + сунчеви полупречници {0} сунчев полупречник @@ -8605,10 +8659,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} коњских снага + inanimate милиметри живиног стуба {0} милиметар живиног стуба + {0} милиметар живиног стуба + {0} милиметра живиног стуба + {0} милиметром живиног стуба {0} милиметра живиног стуба + {0} милиметра живиног стуба + {0} милиметра живиног стуба + {0} милиметра живиног стуба {0} милиметара живиног стуба + {0} милиметара живиног стуба + {0} милиметара живиног стуба + {0} милиметара живиног стуба фунте по квадратном инчу @@ -9140,8 +9204,61 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} империјске четвртине {0} империјских четвртина + + neuter + светло + {0} светло + {0} светло + {0} светла + {0} светлом + {0} светла + {0} светла + {0} светла + {0} светла + {0} светала + {0} светала + {0} светала + {0} светала + + + inanimate + делови на милијарду + {0} део на милијарду + {0} део на милијарду + {0} дела на милијарду + {0} делом на милијарду + {0} дела на милијарду + {0} дела на милијарду + {0} дела на милијарду + {0} дела на милијарду + {0} делова на милијарду + {0} делова на милијарду + {0} делова на милијарду + {0} делова на милијарду + + + feminine + ноћ + {0} ноћ + {0} ноћ + {0} ноћи + {0} ноћи + {0} ноћи + {0} ноћи + {0} ноћи + {0} ноћи + {0} ноћи + {0} ноћи + {0} ноћи + {0} ноћи + {0}/ноћ + - главни правац + страна света + {0} E + {0} N + {0} S + {0} W @@ -9371,6 +9488,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ хв + + типографске тачке + грами @@ -9465,12 +9585,28 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} прстохвата {0} прстохвата + + светло + {0} светло + {0} светла + {0} светала + + + делови/милијарда + + + ноћ + {0} ноћ + {0} ноћи + {0} ноћи + {0}/ноћ + правац - {0}И - {0}С - {0}Ј - {0}З + {0} E + {0} N + {0} S + {0} W @@ -9607,6 +9743,25 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} qt Imp {0} qt Imp + + светло + {0} светло + {0} светла + {0} светала + + + ноћ + {0} ноћ + {0} ноћи + {0} ноћи + {0}/ноћ + + + {0}E + {0}N + {0}S + {0}W + h.mm diff --git a/make/data/cldr/common/main/sr_Cyrl_BA.xml b/make/data/cldr/common/main/sr_Cyrl_BA.xml index 18516d2272d..ab0c793f680 100644 --- a/make/data/cldr/common/main/sr_Cyrl_BA.xml +++ b/make/data/cldr/common/main/sr_Cyrl_BA.xml @@ -795,13 +795,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Кина, љетње вријеме - - - Чојбалсан вријеме - Чојбалсан, стандардно вријеме - Чојбалсан, љетње вријеме - - Божићно острво вријеме @@ -1035,6 +1028,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Јапанско љетње вријеме + + + Казахстанско вријеме + + Источно-казахстанско вријеме @@ -1450,9 +1448,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Босанскохерцеговачка конвертибилна марка - босанскохерцеговачка конвертибилна марка - босанскохерцеговачке конвертибилне маркe - босанскохерцеговачких конвертибилних марака Бјелоруска рубља @@ -1585,6 +1580,36 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} gal Imp. {0} имп. галона + + свјетло + {0} свјетло + {0} свјетло + {0} свјетла + {0} свјетлом + {0} свјетла + {0} свјетла + {0} свјетла + {0} свјетла + {0} свјетла + {0} свјетла + {0} свјетала + {0} свјетала + + + дијелови на милијарду + {0} дио на милијарду + {0} дио на милијарду + {0} дијела на милијарду + {0} дијелом на милијарду + {0} дијела на милијарду + {0} дијела на милијарду + {0} дијела на милијарду + {0} дијела на милијарду + {0} дијелова на милијарду + {0} дијелова на милијарду + {0} дијелова на милијарду + {0} дијелова на милијарду + @@ -1607,6 +1632,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic B {0} Б {0} + + свјетло + {0} свјетло + {0} свјетла + {0} свјетала + + + дијелови/милијарда + @@ -1662,6 +1696,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} и. д. к. {0} и. д. к. + + свјетло + {0} свјетло + {0} свјетла + {0} свјетала + + + дијелови/милијарда + diff --git a/make/data/cldr/common/main/sr_Cyrl_ME.xml b/make/data/cldr/common/main/sr_Cyrl_ME.xml index 038894034b8..54d72b35ace 100644 --- a/make/data/cldr/common/main/sr_Cyrl_ME.xml +++ b/make/data/cldr/common/main/sr_Cyrl_ME.xml @@ -129,11 +129,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic - W. 'сједмица' 'у' MMMM - W. 'сједмица' 'у' MMMM + MMMM: W. 'недеља' + MMMM: W. 'недеља' W. 'сједмица' 'у' MMMM - w. 'сједмица' 'у' Y. - w. 'сједмица' 'у' Y. + w. 'недеља' 'у' Y. + w. 'недеља' 'у' Y. w. 'сједмица' 'у' Y. diff --git a/make/data/cldr/common/main/sr_Latn.xml b/make/data/cldr/common/main/sr_Latn.xml index 277db9469f7..32686ee0998 100644 --- a/make/data/cldr/common/main/sr_Latn.xml +++ b/make/data/cldr/common/main/sr_Latn.xml @@ -56,6 +56,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic beloruski bedža bemba + betavi bena bugarski harijanski @@ -65,6 +66,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic bikol bini sisika + anii bambara bengalski tibetanski @@ -72,6 +74,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic braj bodo bosanski + akose burjatski bugijski blinski @@ -94,6 +97,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic čipevjanski čeroki čejenski + čikaso centralni kurdski čilkotin korzikanski @@ -203,6 +207,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic hiligajnonski hetitski hmonški + hmong ndžua hiri motu hrvatski gornjolužičkosrpski @@ -280,6 +285,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic komi kornvolski kvakvala + kuvi kirgiski latinski ladino @@ -290,9 +296,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic lezginski ganda limburški + ligurski lilut lakota - lombard + lombard lingala laoski mongo @@ -471,7 +478,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic saho sesoto streicsališ - sundanski + sundski sukuma susu sumerski @@ -481,6 +488,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic komorski sirijački sirijski + siležanski tamilski južni tačon telugu @@ -529,7 +537,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic uzbečki vai venda + venecijanski vijetnamski + makuva volapik vodski vundžo @@ -543,6 +553,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic vu kineski kalmički kosa + kangri soga jao japski @@ -769,7 +780,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Burundi Benin Sveti Bartolomej - Bermuda + Bermudi Brunej Bolivija Karipska Holandija @@ -861,8 +872,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Izrael Ostrvo Man Indija - Britanska teritorija Indijskog okeana - arhipelag Čagos + Britanska teritorija Indijskog okeana + arhipelag Čagos Irak Iran Island @@ -946,7 +957,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Palau Paragvaj Katar - Okeanija (udaljena ostrva) + udaljena ostrva Okeanije Reinion Rumunija Srbija @@ -1009,7 +1020,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Vanuatu Valis i Futuna Samoa - Pseudoakcenti + simulirane dijakritike Pseudobidi Kosovo Jemen @@ -1017,7 +1028,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Južnoafrička Republika Zambija Zimbabve - Nepoznat region + nepoznat region Engleska @@ -1192,9 +1203,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic vai cifre - Metrički - UK - SAD + metrički + britanski + američki Jezik: {0} @@ -1212,7 +1223,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -1220,8 +1231,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - + @@ -1558,7 +1568,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ponoć podne - ujutro + ujutru po podne uveče noću @@ -1571,6 +1581,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic uveče noću + + ponoć + podne + ujutru + po podne + uveče + noću + @@ -1579,10 +1597,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic veče noć - - pre podne - po podne - @@ -1622,7 +1636,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - d.M.yy. + d. M. y. yyMd @@ -1674,8 +1688,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic hh:mm B hh:mm:ss B E - E hh:mm B - E hh:mm:ss B + E, hh:mm:ss B E d. E h:mm a E h:mm:ss a @@ -1697,9 +1710,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic E d. MMM d. MMMM E, d. MMMM - W. 'sedmica' 'u' MMMM. - W. 'sedmica' 'u' MMMM. - W. 'sedmica' 'u' MMMM. + MMMM: W. 'nedelja' + MMMM: W. 'nedelja' + MMMM: W. 'nedelja' y. M. y. d. M. y. @@ -1712,9 +1725,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic MMMM y. QQQ y. QQQQ y. - w. 'sedmica' 'u' Y. - w. 'sedmica' 'u' Y. - w. 'sedmica' 'u' Y. + w. 'nedelja' 'u' Y. + w. 'nedelja' 'u' Y. + w. 'nedelja' 'u' Y. {0} – {1} @@ -2672,6 +2685,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}, letnje vreme {0}, standardno vreme + + Honolulu + Koordinisano univerzalno vreme @@ -3409,9 +3425,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ulan Bator - - Čojbalsan - Makao @@ -3811,9 +3824,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Nom - - Honolulu - Enkoridž @@ -4193,13 +4203,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kina, letnje vreme - - - Čojbalsan vreme - Čojbalsan, standardno vreme - Čojbalsan, letnje vreme - - Božićno ostrvo vreme @@ -4468,6 +4471,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Petropavlovsko-kamčatsko letnje računanje vremena + + + Kazahstansko vreme + + Istočno-kazahstansko vreme @@ -5040,9 +5048,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 000 bil'.' ¤ - {0} {1} - {0} {1} - {0} {1} @@ -5184,10 +5189,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic bosansko-hercegovačkih dinara - bosansko-hercegovačka konvertibilna marka - bosansko-hercegovačka konvertibilna marka - bosansko-hercegovačke konvertibilne marke - bosansko-hercegovačkih konvertibilnih maraka + bosanskohercegovačka konvertibilna marka + bosanskohercegovačka konvertibilna marka + bosanskohercegovačke konvertibilne marke + bosanskohercegovačkih konvertibilnih maraka KM @@ -5606,7 +5611,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic etiopskih bira - Evro + evro evro evra evra @@ -6523,10 +6528,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic turskih lira - Trinidad-tobagoški dolar - trinidad-tobagoški dolar - trinidad-tobagoška dolara - trinidad-tobagoških dolara + trinidadskotobaški dolar + trinidadskotobaški dolar + trinidadskotobaška dolara + trinidadskotobaških dolara novi tajvanski dolar @@ -6759,7 +6764,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic kodova testirane valute - Nepoznata valuta + nepoznata valuta nepoznata jedinica valute nepoznate valute nepoznatih valuta @@ -6970,8 +6975,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic kvadratni {0} kvadratni {0} + kvadratna {0} kvadratna {0} + kvadratna {0} kvadratnih {0} + kvadratnih {0} kubni {0} @@ -7170,10 +7178,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} karata + inanimate miligrami po decilitru {0} miligram po decilitru + {0} miligrama po decilitru + {0} miligramom po decilitru {0} miligrama po decilitru + {0} miligrama po decilitru + {0} miligrama po decilitru {0} miligrama po decilitru + {0} miligrama po decilitru + {0} miligrama po decilitru inanimate @@ -7464,7 +7479,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} decenije {0} decenije {0} decenije - {0} decenije + {0} decenijom {0} decenija {0} decenija {0} decenija @@ -7680,10 +7695,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} volti + feminine kilokalorije {0} kilokalorija + {0} kilokaloriju + {0} kilokalorije + {0} kilokalorijom {0} kilokalorije + {0} kilokalorije + {0} kilokalorije + {0} kilokalorije {0} kilokalorija + {0} kilokalorija + {0} kilokalorija + {0} kilokalorija feminine @@ -7779,6 +7804,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic inanimate + kilovat-sati na 100 kilometara + {0} kilovat-sat na 100 kilometara + {0} kilovat-sat na 100 kilometara + {0} kilovat-sata na 100 kilometara + {0} kilovat-satom na 100 kilometara + {0} kilovat-sata na 100 kilometara + {0} kilovat-sata na 100 kilometara + {0} kilovat-sata na 100 kilometara + {0} kilovat-sata na 100 kilometara + {0} kilovat-sati na 100 kilometara + {0} kilovat-sati na 100 kilometara + {0} kilovat-sati na 100 kilometara + {0} kilovat-sati na 100 kilometara inanimate @@ -8070,6 +8108,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} skandinavskih milja {0} skandinavskih milja + + feminine + tipografske tačke + {0} tipografska tačka + {0} tipografsku tačku + {0} tipografske tačke + {0} tipografskom tačkom + {0} tipografske tačke + {0} tipografske tačke + {0} tipografskih tačaka + {0} tipografske tačke + {0} tipografskih tačaka + {0} tipografskih tačaka + {0} tipografskih tačaka + {0} tipografskih tačaka + sunčevi poluprečnici {0} sunčev poluprečnik @@ -8332,10 +8386,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} konjskih snaga + inanimate milimetri živinog stuba {0} milimetar živinog stuba + {0} milimetra živinog stuba + {0} milimetrom živinog stuba {0} milimetra živinog stuba + {0} milimetra živinog stuba + {0} milimetra živinog stuba {0} milimetara živinog stuba + {0} milimetara živinog stuba + {0} milimetara živinog stuba funte po kvadratnom inču @@ -8807,8 +8868,61 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} imperijske četvrtine {0} imperijskih četvrtina + + neuter + svetlo + {0} svetlo + {0} svetlo + {0} svetla + {0} svetlom + {0} svetla + {0} svetla + {0} svetla + {0} svetla + {0} svetala + {0} svetala + {0} svetala + {0} svetala + + + inanimate + delovi na milijardu + {0} deo na milijardu + {0} deo na milijardu + {0} dela na milijardu + {0} delom na milijardu + {0} dela na milijardu + {0} dela na milijardu + {0} dela na milijardu + {0} dela na milijardu + {0} delova na milijardu + {0} delova na milijardu + {0} delova na milijardu + {0} delova na milijardu + + + feminine + noć + {0} noć + {0} noć + {0} noći + {0} noći + {0} noći + {0} noći + {0} noći + {0} noći + {0} noći + {0} noći + {0} noći + {0} noći + {0}/noć + - glavni pravac + strana sveta + {0} E + {0} N + {0} S + {0} W @@ -9038,6 +9152,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic hv + + tipografske tačke + grami @@ -9132,12 +9249,28 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} prstohvata {0} prstohvata + + svetlo + {0} svetlo + {0} svetla + {0} svetala + + + delovi/milijarda + + + noć + {0} noć + {0} noći + {0} noći + {0}/noć + pravac - {0}I - {0}S - {0}J - {0}Z + {0} E + {0} N + {0} S + {0} W @@ -9274,6 +9407,25 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} qt Imp {0} qt Imp + + svetlo + {0} svetlo + {0} svetla + {0} svetala + + + noć + {0} noć + {0} noći + {0} noći + {0}/noć + + + {0}E + {0}N + {0}S + {0}W + h.mm diff --git a/make/data/cldr/common/main/sr_Latn_BA.xml b/make/data/cldr/common/main/sr_Latn_BA.xml index 9dd83baddbb..497ee36926b 100644 --- a/make/data/cldr/common/main/sr_Latn_BA.xml +++ b/make/data/cldr/common/main/sr_Latn_BA.xml @@ -795,13 +795,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kina, ljetnje vrijeme - - - Čojbalsan vrijeme - Čojbalsan, standardno vrijeme - Čojbalsan, ljetnje vrijeme - - Božićno ostrvo vrijeme @@ -1035,6 +1028,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Japansko ljetnje vrijeme + + + Kazahstansko vrijeme + + Istočno-kazahstansko vrijeme @@ -1450,9 +1448,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Bosanskohercegovačka konvertibilna marka - bosanskohercegovačka konvertibilna marka - bosanskohercegovačke konvertibilne marke - bosanskohercegovačkih konvertibilnih maraka Bjeloruska rublja @@ -1585,6 +1580,36 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} gal Imp. {0} imp. galona + + svjetlo + {0} svjetlo + {0} svjetlo + {0} svjetla + {0} svjetlom + {0} svjetla + {0} svjetla + {0} svjetla + {0} svjetla + {0} svjetla + {0} svjetla + {0} svjetala + {0} svjetala + + + dijelovi na milijardu + {0} dio na milijardu + {0} dio na milijardu + {0} dijela na milijardu + {0} dijelom na milijardu + {0} dijela na milijardu + {0} dijela na milijardu + {0} dijela na milijardu + {0} dijela na milijardu + {0} dijelova na milijardu + {0} dijelova na milijardu + {0} dijelova na milijardu + {0} dijelova na milijardu + @@ -1607,6 +1632,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic B {0} B {0} + + svjetlo + {0} svjetlo + {0} svjetla + {0} svjetala + + + dijelovi/milijarda + @@ -1662,6 +1696,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} i. d. k. {0} i. d. k. + + svjetlo + {0} svjetlo + {0} svjetla + {0} svjetala + + + dijelovi/milijarda + diff --git a/make/data/cldr/common/main/sr_Latn_ME.xml b/make/data/cldr/common/main/sr_Latn_ME.xml index be0b66fc070..886b9cdba07 100644 --- a/make/data/cldr/common/main/sr_Latn_ME.xml +++ b/make/data/cldr/common/main/sr_Latn_ME.xml @@ -129,11 +129,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic - W. 'sjedmica' 'u' MMMM - W. 'sjedmica' 'u' MMMM + MMMM: W. 'nedelja' + MMMM: W. 'nedelja' W. 'sjedmica' 'u' MMMM - w. 'sjedmica' 'u' Y. - w. 'sjedmica' 'u' Y. + w. 'nedelja' 'u' Y. + w. 'nedelja' 'u' Y. w. 'sjedmica' 'u' Y. diff --git a/make/data/cldr/common/main/st.xml b/make/data/cldr/common/main/st.xml index 6ecdf2d3a01..1bf19d3f9dc 100644 --- a/make/data/cldr/common/main/st.xml +++ b/make/data/cldr/common/main/st.xml @@ -27,7 +27,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Se-dutch Se-jeremane Se-greek - Senyesemane + Senyesemane Se-esperanto Sespain Se-estonia @@ -85,7 +85,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Se-slovania Se-albanian Se-serbian - Sesotho + Sesotho Se-sundanese Se-sweden Se-swahili @@ -105,17 +105,29 @@ CLDR data files are interpreted according to the LDML specification (http://unic Yiddish se Zulu + + + + + Lesotho + Afrika Borwa + + + Puo: {0} + Skripte: {0} + Tikoloho: {0} + [a b d e f g h i j k l m n o p q r s t u w y] [c v x z] [A B C D E F G H I J K L M N O P Q R S T U V W X Y Z] + [\- ‐‑ – — , ; \: ! ? . … '‘’ "“” ( ) \[ \] § @ * / \& # † ‡ ′ ″] - - - - + + + @@ -137,17 +149,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic Tsh - Phesekgong + Pherekgong Hlakola Hlakubele - Mmese + Mmesa Motsheanong Phupjane Phupu - Phata - Leotshe + Phato + Lwetse Mphalane - Pundungwane + Pudungwana Tshitwe @@ -165,15 +177,23 @@ CLDR data files are interpreted according to the LDML specification (http://unic Sontaha - Mmantaha + Mantaha Labobedi - Laboraru + Laboraro Labone - Labohlane + Labohlano Moqebelo + + + + Hoseng + Thapama + + + E h:mm a @@ -253,12 +273,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + {0} Nako + {0} Nako ya Motshehare + {0} Nako ya Tlwaelo + + + Greenwich Mean Time + + + - - , -   - diff --git a/make/data/cldr/common/main/su.xml b/make/data/cldr/common/main/su.xml index 57eec539131..9a39f1f0262 100644 --- a/make/data/cldr/common/main/su.xml +++ b/make/data/cldr/common/main/su.xml @@ -544,7 +544,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ¤ #,##0.00 - {0} {1} diff --git a/make/data/cldr/common/main/sv.xml b/make/data/cldr/common/main/sv.xml index 72eabf6da6a..bed41efa47c 100644 --- a/make/data/cldr/common/main/sv.xml +++ b/make/data/cldr/common/main/sv.xml @@ -76,7 +76,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bafut bagada bulgariska - hariyanvi + hariyanvi västbaluchiska bhojpuri bislama @@ -85,6 +85,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ banjariska bamekon siksika + anii bambara bengali tibetanska @@ -217,7 +218,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ gayo gbaya zoroastrisk dari - skotsk gäliska + skotsk gaeliska etiopiska gilbertiska galiciska @@ -225,7 +226,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ medelhögtyska guaraní fornhögtyska - Goa-konkani gondi gorontalo gotiska @@ -337,6 +337,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kome korniska kwakʼwala + kuvi kirgiziska latin ladino @@ -366,7 +367,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ luba-lulua luiseño lunda - luo lushai luhya lettiska @@ -635,6 +635,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ vietnamesiska västflamländska Main-frankiska + makua volapük votiska võru @@ -650,6 +651,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kalmuckiska xhosa mingrelianska + kangri lusoga kiyao japetiska @@ -680,7 +682,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -887,7 +889,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Centralafrika södra Afrika Nord- och Sydamerika - Norra Amerika + norra Amerika Karibien Östasien Sydasien @@ -1322,8 +1324,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ indisk kalender islamisk kalender islamisk civil kalender - islamisk kalender, Saudi-Arabien - islamisk kalender, astronomisk + islamisk kalender, Saudi-Arabien + islamisk kalender, astronomisk islamisk kalender, Umm al-Qura ISO 8601-kalender japansk kalender @@ -1871,7 +1873,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {1} {0} - {1} 'kl'. {0} + {1} 'kl'. {0} @@ -1879,7 +1881,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {1} {0} - {1} 'kl'. {0} + {1} 'kl'. {0} @@ -1966,10 +1968,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ d MMM y G – d MMM d y - E d MMM – E d MMM y G - E d MMM y G – E d MMM y G - E d MMM – E d MMM y G - E d MMM y – E d MMM y G + E d MMM – E d MMM y G + E d MMM y G – E d MMM y G + E d MMM – E d MMM y G + E d MMM y – E d MMM y G h a – h a @@ -2866,7 +2868,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - m + mån förra mån. denna mån. nästa mån. @@ -2880,7 +2882,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - mån +{0} mån. +{0} mån. @@ -2906,7 +2907,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ veckan för {0} - v + v. förra v. denna v. nästa v. @@ -2933,10 +2934,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ vecka i månaden - vk. i mån. + v. i mån. - vk.i mån. + v i mån dag @@ -2955,6 +2956,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + d. om {0} d om {0} d @@ -2965,6 +2967,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + d igår idag imorgon @@ -2980,15 +2983,30 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ dag under året + + d. under å. + + + d u å + veckodag + + veckod. + + + vd + veckodag i månad veckodag i mån. + + vd i m + söndag förra veckan söndag denna vecka @@ -3373,6 +3391,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}tid {0} (sommartid) {0} (normaltid) + + + Honolulutid + Honolulunormaltid + Honolulusommartid + + Honolulu + koordinerad universell tid @@ -3456,9 +3482,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kap Verde - - Curaçao - Julön @@ -3562,18 +3585,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Chovd - - Tjojbalsan - Maldiverna Mazatlán - - Mexiko City - Nouméa @@ -3601,12 +3618,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Lissabon - - Asunción - - - Réunion - Bukarest @@ -3646,9 +3657,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Sankt Helena - - São Tomé - Damaskus @@ -3676,14 +3684,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Midwayöarna - - - Honolulutid - Honolulunormaltid - Honolulusommartid - - Honolulu - Tasjkent @@ -3957,13 +3957,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kinesisk sommartid - - - Tjojbalsantid - Tjojbalsan, normaltid - Tjojbalsan, sommartid - - Julöns tid @@ -4232,6 +4225,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kamtjatkasommartid + + + kazakstansk tid + + östkazakstansk tid @@ -4393,7 +4391,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - Norfolköns tid + Norfolköns tid Norfolköns normaltid Norfolköns sommartid @@ -4801,8 +4799,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 bn ¤ - {0} {1} - {0} {1} @@ -6346,7 +6342,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ nano{0} - pico{0} + piko{0} femto{0} @@ -6505,9 +6501,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ common kvadratkilometer {0} kvadratkilometer - {0} kvadratkilometers + {0} kvadratkilometers {0} kvadratkilometer - {0} kvadratkilometers + {0} kvadratkilometers {0} per kvadratkilometer @@ -6572,9 +6568,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} karats + neuter milligram per deciliter {0} milligram per deciliter + {0} milligram per deciliters {0} milligram per deciliter + {0} milligram per deciliters common @@ -6769,11 +6768,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ common - kvartar - {0} kvart - {0} kvarts - {0} kvartar - {0} kvarts + kvartar + {0} kvart + {0} kvarts + {0} kvartar + {0} kvarts common @@ -6889,7 +6888,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ common kilokalorier {0} kilokalori + {0} kilokaloris {0} kilokalorier + {0} kilokaloriers common @@ -6900,10 +6901,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} kaloriers - common - kilokalorier - {0} kilokalori - {0} kilokalorier + common + kilokalorier + {0} kilokalori + {0} kilokalorier common @@ -7152,6 +7153,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} mil {0} mils + + common + {0} pkt + {0} punkts + {0} pkt + {0} punkters + common solradier @@ -7322,9 +7330,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} hästkrafter + common millimeter kvicksilver {0} millimeter kvicksilver + {0} millimeter kvicksilvers {0} millimeter kvicksilver + {0} millimeter kvicksilvers pund per kvadrattum @@ -7665,6 +7676,31 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} brittisk quart {0} brittiska quarts + + neuter + ljus + {0} ljus + {0} ljus + {0} ljus + {0} ljus + + + common + miljarddelar + {0} miljarddel + {0} miljarddels + {0} miljarddelar + {0} miljarddelars + + + common + nätter + {0} natt + {0} natts + {0} nätter + {0} nätters + {0} per natt + kompassriktning {0} öst @@ -7800,10 +7836,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}/år - k - {0} k + k + {0} k {0} k - {0}/k + {0}/k mån @@ -8161,6 +8197,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} br. qt {0} br. qt + + ljus + {0} ljus + {0} ljus + + + nätter + {0} natt + {0} nätter + {0}/natt + väderstreck {0} Ö @@ -8171,13 +8218,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - G + G {0}G {0}G - {0}m/s² - {0}m/s² + {0}m/s² + {0}m/s² {0}varv @@ -8299,8 +8346,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}TB - {0}Tb - {0}Tb + {0}Tb + {0}Tb {0}GB @@ -8327,7 +8374,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}kb - B + B {0}B {0}B @@ -8348,8 +8395,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}å - {0}k - {0}k + {0}k + {0}k m @@ -8420,8 +8467,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}cal - {0}kcal - {0}kcal + {0}kcal + {0}kcal {0}kJ @@ -8906,6 +8953,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}br.qt {0}br.qt + + ljs + {0}ljs + {0}ljs + + + {0}ppb + {0}ppb + + + nttr + {0}ntt + {0}nttr + {0}/ntt + riktning {0}Ö @@ -9272,12 +9334,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Prof. dr. - Ann-Christine - Anki - Eva Sofia - van den - Karlsson - Beck Strand + Ada Cornelia + Neele + César Martín + von + Brühl + González Domingo jr. med. dr. fil. dr. jur. dr. diff --git a/make/data/cldr/common/main/sw.xml b/make/data/cldr/common/main/sw.xml index 163277ea1d7..4d118b02822 100644 --- a/make/data/cldr/common/main/sw.xml +++ b/make/data/cldr/common/main/sw.xml @@ -66,6 +66,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kibini Kikom Kisiksika + Kianii Kibambara Kibengali Kitibeti @@ -247,6 +248,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kikomi Kikorni Kikwakʼwala + Kikuvi Kikyrgyz Kilatini Kiladino @@ -256,8 +258,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kilezighian Kiganda Limburgish + Kiliguria Kilillooet Kilakota + Kilongobardi Kilingala Kilaosi Kimongo @@ -424,6 +428,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kiswahili Shikomor Lugha ya Syriac + Kisilesia Kitamili Kitutchone cha Kusini Kitelugu @@ -464,7 +469,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kiuzbeki Kivai Kivenda + Kivenisi Kivietinamu + Kimakhuwa Kivolapuk Kivunjo Kiwaloon @@ -476,6 +483,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kichina cha Wu Kikalmyk Kixhosa + Kikangri Kisoga Kiyao Kiyangben @@ -485,6 +493,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kinheengatu Kikantoni Kichina, Kikantoni + Kizhuang Kiberber Sanifu cha Moroko Kichina Kichina sanifu @@ -1022,7 +1031,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [A B {CH} D E F G H I J K L M N O P R S T U V W Y Z] [\- ‑ , ; \: ! ? . ' " ( ) \[ \] \{ \}] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -1502,6 +1511,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ d MMM y E, d MMM y MMMM y + QQQ y QQQQ y 'wiki' w 'ya' Y 'wiki' w 'ya' Y @@ -1882,6 +1892,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Saa za {0} Saa za Mchana za {0} Saa za wastani za {0} + + Honolulu + Mfumo wa kuratibu saa ulimwenguni @@ -1933,9 +1946,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kiev - - Honolulu - Saa za Afghanistan @@ -2158,13 +2168,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Saa za Mchana za Uchina - - - Saa za Choibalsan - Saa za Wastani za Choibalsan - Saa za Majira ya joto za Choibalsan - - Saa za Kisiwa cha Krismasi @@ -2410,6 +2413,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Saa za Kiangazi za Petropavlovsk-Kamchatski + + + Saa za Kazakhstan + + Saa za Kazakhstan Mashariki @@ -3960,14 +3968,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ pikseli {0} kwa kila inchi - vitone kwa kila sentimita - kitone {0} kwa kila sentimita - vitone {0} kwa kila sentimita + vitone kwa kila sentimita + kitone {0} kwa kila sentimita + vitone {0} kwa kila sentimita - vitone kwa kila inchi - kitone {0} kwa kila inchi - vitone {0} kwa kila inchi + vitone kwa kila inchi + kitone {0} kwa kila inchi + vitone {0} kwa kila inchi nusu kipenyo cha dunia @@ -4220,6 +4228,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kwati {0} ya Uingereza kwati {0} za Uingereza + + mwanga + mwanga {0} + mianga {0} + + + sehemu kwa kila bilioni + sehemu {0} kwa kila bilioni + sehemu {0} kwa kila bilioni + + + usiku + usiku {0} + usiku {0} + {0} kila usiku + sehemu kuu za dira @@ -4602,9 +4626,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kalori {0} - kalori - kalori {0} - kalori {0} + kalori + kalori {0} + kalori {0} kilojuli @@ -4697,13 +4721,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ dpcm {0} - dpi {0} - dpi {0} + dpi {0} + dpi {0} - kitone - kitone {0} - vitone {0} + kitone + kitone {0} + vitone {0} R⊕ {0} @@ -5189,6 +5213,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ qt Imp. {0} qt Imp. {0} + + mwanga + mwanga {0} + mianga {0} + + + sehemu kwa bilioni + + + usiku + usiku {0} + usiku {0} + {0}/usiku + mwelekeo {0} Mashariki @@ -5263,10 +5301,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ kWh {0} kwa km 100 - dpcm + dpcm - dpi + dpi km @@ -5320,6 +5358,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ °C + + mwanga + mwanga {0} + mianga {0} + + + sehemu kwa kila bilioni + + + usiku + usiku {0} + usiku {0} + {0}/usiku + @@ -5349,8 +5401,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} — uwiano {0} — finyu {0} — pana - {0} inayoangalia kushoto - {0} inayoangalia kulia + {0} inayoangalia kushoto + {0} inayoangalia kulia {0} — ya kihistoria {0} — ziada {0} — nyingine @@ -5658,25 +5710,25 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ MB - Kevin + Kevin - John - Mkwawa + John + Mkwawa - Zamara - Imani - Bukenya + Zamara + Imani + Bukenya Prof. Dk. - Salima - Sarah - Farida - mwana - Hamisi - Musa + Salima + Sarah + Farida + mwana + Hamisi + Musa Jr M.D. Ph.D. diff --git a/make/data/cldr/common/main/sw_KE.xml b/make/data/cldr/common/main/sw_KE.xml index cae0a900b0e..d146d4dc4a0 100644 --- a/make/data/cldr/common/main/sw_KE.xml +++ b/make/data/cldr/common/main/sw_KE.xml @@ -587,13 +587,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Saa za Majira ya Joto za Kepuvede - - - Saa za Choibalsan - Saa za Wastani za Choibalsan - Saa za Majira ya Joto za Choibalsan - - Saa za Kolombia diff --git a/make/data/cldr/common/main/syr.xml b/make/data/cldr/common/main/syr.xml index a3c6a63ea11..0704b2d4d31 100644 --- a/make/data/cldr/common/main/syr.xml +++ b/make/data/cldr/common/main/syr.xml @@ -253,7 +253,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ܐܝܣܪܐܝܠ ܓܙܪܬܐ ܕܡܐܢ ܗܢܕܘ - ܩܠܝܡܐ ܕܒܪܝܛܢܝܐ ܓܘ ܐܘܩܝܢܘܣ ܗܢܕܘܝܐ + ܩܠܝܡܐ ܕܒܪܝܛܢܝܐ ܓܘ ܐܘܩܝܢܘܣ ܗܢܕܘܝܐ ܥܝܪܩ ܐܝܪܐܢ ܐܝܣܠܢܕ @@ -425,8 +425,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic ܣܘܪܓܕܐ ܓܪܝܓܘܪܝܐ ܣܘܪܓܕܐ ܝܗܘܕܝܐ ܣܘܪܓܕܐ ܐܘܡܬܢܝܐ ܗܢܕܘܝܐ - ܣܘܪܓܕܐ ܡܫܠܡܢܝܐ - ܣܘܪܓܕܐ ܡܫܠܡܢܝܐ ܡܕܝܢܝܐ + ܣܘܪܓܕܐ ܡܫܠܡܢܝܐ + ܣܘܪܓܕܐ ܡܫܠܡܢܝܐ ܡܕܝܢܝܐ ܣܘܪܓܕܐ ISO-8601 ܣܘܪܓܕܐ ܝܦܢܝܐ ܣܘܪܓܕܐ ܦܪܣܝܐ @@ -482,7 +482,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -932,7 +932,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ܫܒܘܥܐ w ܕܫܢܬܐ Y - {0} – {1} y G – y G y – y G @@ -2009,9 +2008,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ܐܘܠܐܢܒܐܬܘܪ - - ܟܘܝܒܠܣܢ - ܡܐܟܐܘ @@ -2795,13 +2791,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ܥܕܢܐ ܕܒܗܪ ܝܘܡܐ ܕܨܝܢ - - - ܥܕܢܐ ܕܟܘܝܒܠܣܢ - ܥܕܢܐ ܡܫܘܚܬܢܝܬܐ ܕܟܘܝܒܠܣܢ - ܥܕܢܐ ܕܒܗܪ ܝܘܡܐ ܕܟܘܝܒܠܣܢ - - ܥܕܢܐ ܕܓܙܪܬܐ ܕܟܪܝܣܬܡܣ diff --git a/make/data/cldr/common/main/szl.xml b/make/data/cldr/common/main/szl.xml index 232e3f91bb5..8bbc34de5d5 100644 --- a/make/data/cldr/common/main/szl.xml +++ b/make/data/cldr/common/main/szl.xml @@ -1912,9 +1912,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ułan Bator - - Czojbalsan - Makau @@ -2395,13 +2392,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Chiny (latowy czas) - - - Czojbalsan - Czojbalsan (sztandardowy czas) - Czojbalsan (latowy czas) - - Godnio Wyspa diff --git a/make/data/cldr/common/main/ta.xml b/make/data/cldr/common/main/ta.xml index 922853f2c13..63769051703 100644 --- a/make/data/cldr/common/main/ta.xml +++ b/make/data/cldr/common/main/ta.xml @@ -68,6 +68,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ பிகோல் பினி சிக்சிகா + அனீ பம்பாரா வங்காளம் திபெத்தியன் @@ -293,6 +294,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ கொமி கார்னிஷ் குவாக்வாலா + குவி கிர்கிஸ் லத்தின் லடினோ @@ -306,7 +308,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ லிகூரியன் லில்லூயிட் லகோடா - லொம்பார்டு + லொம்பார்டு லிங்காலா லாவோ மோங்கோ @@ -499,6 +501,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ கொமோரியன் பாரம்பரிய சிரியாக் சிரியாக் + சிலேசியன் தமிழ் தெற்கு டட்சோன் தெலுங்கு @@ -547,7 +550,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ உஸ்பெக் வை வென்டா + வினிசியன் வியட்நாமீஸ் + மகுவா ஒலாபூக் வோட்க் வுன்ஜோ @@ -561,6 +566,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ வூ சீனம் கல்மிக் ஹோசா + காங்கிரி சோகா யாவ் யாபேசே @@ -879,7 +885,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ இஸ்ரேல் ஐல் ஆஃப் மேன் இந்தியா - பிரிட்டிஷ் இந்தியப் பெருங்கடல் பிரதேசம் + பிரிட்டிஷ் இந்தியப் பெருங்கடல் பிரதேசம் சாகோஸ் தீவுக்கூட்டம் ஈராக் ஈரான் @@ -1201,7 +1207,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -1420,16 +1426,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ E B h:mm E B h:mm:ss d E - E h:mm a - E h:mm:ss a y G d/M/y GGGGG MMM y G d MMM, y G E, d MMM, y G - h a - h:mm a - h:mm:ss a d/M E, d/M dd-MM @@ -1626,13 +1627,27 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - காலா.1 - காலா.2 - காலா.3 - காலா.4 + கா.1 + கா.2 + கா.3 + கா.4 - ஒன்றாம் காலாண்டு + முதல் காலாண்டு + இரண்டாம் காலாண்டு + மூன்றாம் காலாண்டு + நான்காம் காலாண்டு + + + + + கா.1 + கா.2 + கா.3 + கா.4 + + + முதல் காலாண்டு இரண்டாம் காலாண்டு மூன்றாம் காலாண்டு நான்காம் காலாண்டு @@ -1773,17 +1788,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ E B h:mm E B h:mm:ss d E - E h:mm a - E h:mm:ss a d/M/y G - h a - h:mm a - h:mm:ss a - h:mm:ss a v - h:mm a v d/M dd-MM, E dd-MM + d MMM d MMMM MMMM W -ஆம் வாரம் MMMM W -ஆம் வாரம் @@ -1802,24 +1811,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} – {1} - - h a – h a - h–h a - HH – HH - - h:mm a – h:mm a - h:mm–h:mm a - h:mm–h:mm a - HH:mm – HH:mm HH:mm – HH:mm - h:mm a – h:mm a v h:mm – h:mm a v h:mm – h:mm a v @@ -1828,7 +1827,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ HH:mm – HH:mm v - h a – h a v h – h a v @@ -2567,6 +2565,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} நேரம் {0} பகலொளி நேரம் {0} நிலையான நேரம் + + ஹோனோலூலூ + ஒருங்கிணைந்த சர்வதேச நேரம் @@ -3304,9 +3305,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ உலான்பாட்டர் - - சோய்பால்சான் - மகாவு @@ -3706,9 +3704,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ நோம் - - ஹோனோலூலூ - அங்கோரேஜ் @@ -4088,13 +4083,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ சீன பகலொளி நேரம் - - - சோய்பால்சன் நேரம் - சோய்பால்சன் நிலையான நேரம் - சோய்பால்சன் கோடை நேரம் - - கிறிஸ்துமஸ் தீவு நேரம் @@ -4348,6 +4336,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ பெட்ரோபவ்லோவ்ஸ்க் கம்சட்ஸ்கி கோடை நேரம் + + + கஜகஸ்தான் நேரம் + + கிழக்கு கஜகஸ்தான் நேரம் @@ -4913,8 +4906,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ 000டி - {0} {1} - {0} {1} @@ -5994,7 +5985,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ மில்லிகிராம்கள்/டெசிலிட்டர் {0} மில்லிகிராம்/டெசிலிட்டர் + {0} மில்லிகிராம்/டெசிலிட்டரில் + {0} மில்லிகிராம்/டெசிலிட்டரை + {0} மில்லிகிராம்/டெசிலிட்டருக்கு {0} மில்லிகிராம்கள்/டெசிலிட்டர் + {0} மில்லிகிராம்கள்/டெசிலிட்டரில் + {0} மில்லிகிராம்கள்/டெசிலிட்டரை + {0} மில்லிகிராம்கள்/டெசிலிட்டருக்கு மில்லிமோல்கள்/லிட்டர் @@ -6426,7 +6423,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ கிலோகலோரிகள் {0} கிலோகலோரி + {0} கிலோகலோரியில் + {0} கிலோகலோரியை + {0} கிலோகலோரிக்கு {0} கிலோகலோரிகள் + {0} கிலோ கலோரிகளில் + {0} கிலோ கலோரிகளை + {0} கிலோ கலோரிகளுக்கு கலோரிகள் @@ -6778,7 +6781,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ அச்சுப் புள்ளிகள் {0} அச்சுப் புள்ளி + {0} அச்சுப் புள்ளியில் + {0} அச்சுப் புள்ளியை + {0} அச்சுப் புள்ளிக்கு {0} அச்சுப் புள்ளிகள் + {0} அச்சுப் புள்ளிகளில் + {0} அச்சுப் புள்ளிகளை + {0} அச்சுப் புள்ளிகளுக்கு {0} சூரிய ஆரம் @@ -6994,7 +7003,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ பாதரச மில்லிமீட்டர்கள் {0} பாதரச மில்லிமீட்டர் + {0} மில்லிமீட்டர் பாதரசத்தில் + {0} மில்லிமீட்டர் பாதரசத்தை + {0} மில்லிமீட்டர் பாதரசத்திற்கு {0} பாதரச மில்லிமீட்டர்கள் + {0} மில்லிமீட்டர் பாதரசத்தில் + {0} மில்லிமீட்டர் பாதரசத்தை + {0} மில்லிமீட்டர் பாதரசத்திற்கு பவுண்டுகள்/சதுர அங்குலம் @@ -7411,6 +7426,40 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} இம்பீரியல் குவார்ட் {0} இம்பீரியல் குவார்ட்ஸ் + + ஒளிவேகம் + {0} ஒளிவேகம் + {0} ஒளிவேகத்தில் + {0} ஒளிவேகத்தை + {0} ஒளிவேகத்திற்கு + {0} ஒளிவேகம் + {0} ஒளிவேகத்தில் + {0} ஒளிவேகத்தை + {0} ஒளிவேகத்திற்கு + + + பார்ட்ஸ்/பில்லியன் + {0} பார்ட்ஸ்/பில்லியன் + {0} பார்ட்ஸ்/பில்லியனில் + {0} பார்ட்ஸ்/பில்லியனை + {0} பார்ட்ஸ்/பில்லியனுக்கு + {0} பார்ட்ஸ்/பில்லியன் + {0} பார்ட்ஸ்/பில்லியனில் + {0} பார்ட்ஸ்/பில்லியனை + {0} பார்ட்ஸ்/பில்லியனுக்கு + + + இரவுகள் + {0} இரவு + {0} இரவில் + {0} இரவை + {0} இரவுக்கு + {0} இரவுகள் + {0} இரவுகளில் + {0} இரவுகளை + {0} இரவுகளுக்கு + {0}/இரவு + கார்டினல் திசை {0}கிழக்கு @@ -8396,6 +8445,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} குவாட். இம்பீ. {0} குவாட். இம்பீ. + + ஒளிவேகம் + {0} ஒளிவேகம் + {0} ஒளிவேகம் + + + பார்ட்ஸ்/பில்லியன் + {0} பார்ட்ஸ்/பில்லியன் + {0} பார்ட்ஸ்/பில்லியன் + + + இரவுகள் + {0} இரவு + {0} இரவுகள் + {0}/இரவு + திசை {0}கி @@ -9097,6 +9162,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}கு. இம். {0}கு. இம். + + ஒளிவேகம் + {0}ஒ.வே + {0}ஒ.வே + + + பா/பி + {0} பா/பி + {0} பா/பி + + + இரவுகள் + {0} இ + {0} இ + {0}/இரவு + diff --git a/make/data/cldr/common/main/te.xml b/make/data/cldr/common/main/te.xml index 91e75e220ee..d433c4432f3 100644 --- a/make/data/cldr/common/main/te.xml +++ b/make/data/cldr/common/main/te.xml @@ -61,13 +61,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ బెంబా బెనా బల్గేరియన్ - హర్యాన్వి + హర్యాన్వి పశ్చిమ బలూచీ భోజ్‌పురి బిస్లామా బికోల్ బిని సిక్సికా + అని బంబారా బంగ్లా టిబెటన్ @@ -202,7 +203,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ గ్రేబో ప్రాచీన గ్రీక్ స్విస్ జర్మన్ - గుజరాతి + గుజరాతీ గుస్సీ మాంక్స్ గ్విచిన్ @@ -225,7 +226,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ హంగేరియన్ హుపా హల్కోమెలెమ్ - ఆర్మేనియన్ + ఆర్మీనియన్ హెరెరో ఇంటర్లింగ్వా ఐబాన్ @@ -294,6 +295,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ కోమి కోర్నిష్ క్వాక్‌వాలా + కువి కిర్గిజ్ లాటిన్ లాడినో @@ -304,8 +306,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ లేజ్ఘియన్ గాండా లిమ్బర్గిష్ + లిగూరియన్ లిలూయెట్ లకొటా + లొంబార్ద్ లింగాల లావో మొంగో @@ -368,7 +372,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ఉత్తర దెబెలె లో జర్మన్ లో సాక్సన్ - నేపాలి + నేపాలీ నెవారి డోంగా నియాస్ @@ -410,7 +414,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ పంపన్గా పపియమేంటో పలావెన్ - నైజీరియా పిడ్గిన్ + నైజీరియన్ పిడ్గిన్ ప్రాచీన పర్షియన్ ఫోనికన్ పాలీ @@ -433,7 +437,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ రోహింగ్యా రోమన్ష్ రుండి - రోమేనియన్ + రొమేనియన్ మొల్డావియన్ రోంబో రోమానీ @@ -496,7 +500,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ కొమొరియన్ సాంప్రదాయ సిరియాక్ సిరియాక్ - తమిళము + సైలీషియన్ + తమిళం దక్షిణ టుట్చోన్ తుళు తెలుగు @@ -545,7 +550,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ఉజ్బెక్ వాయి వెండా + వెనీషియన్ వియత్నామీస్ + మఖువా వోలాపుక్ వోటిక్ వుంజొ @@ -559,6 +566,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ వు చైనీస్ కల్మిక్ షోసా + కాంగ్‌డీ సొగా యాయే యాపిస్ @@ -599,14 +607,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + - + @@ -633,7 +641,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -642,7 +650,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -669,7 +677,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -720,7 +728,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -731,28 +739,28 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ఆఫ్రికా ఉత్తర అమెరికా దక్షిణ అమెరికా - ఓషినియా + ఓషియానియా పశ్చిమ ఆఫ్రికా భూభాగం - మధ్యమ అమెరికా + మధ్య అమెరికా తూర్పు ఆఫ్రికా ఉత్తర ఆఫ్రికా - మధ్యమ ఆఫ్రికా + మధ్య ఆఫ్రికా దక్షిణ ఆఫ్రికా భూభాగం అమెరికాస్ ఉత్తర అమెరికా భూభాగం - కరిబ్బియన్ + కరీబియన్ తూర్పు ఆసియా దక్షిణ ఆసియా ఆగ్నేయ ఆసియా దక్షిణ యూరోప్ ఆస్ట్రేలేసియా మెలనేశియ - మైక్రోనేశియ ప్రాంతం + మైక్రోనేసియన్ ప్రాంతం పాలినేషియా ఆసియా మధ్య ఆసియా పశ్చిమ ఆసియా - యూరోప్ + యూరప్ తూర్పు యూరోప్ ఉత్తర యూరోప్ పశ్చిమ యూరోప్ @@ -869,7 +877,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ హెర్డ్ దీవి మరియు మెక్‌డొనాల్డ్ దీవులు హోండురాస్ క్రొయేషియా - హైటి + హైతీ హంగేరీ కేనరీ దీవులు ఇండోనేషియా @@ -877,7 +885,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ఇజ్రాయెల్ ఐల్ ఆఫ్ మాన్ భారతదేశం - బ్రిటిష్ హిందూ మహాసముద్ర ప్రాంతం + బ్రిటిష్ హిందూ మహాసముద్ర ప్రాంతం ఇరాక్ ఇరాన్ ఐస్లాండ్ @@ -923,7 +931,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ మకావ్ ఉత్తర మరియానా దీవులు మార్టినీక్ - మౌరిటేనియా + మారిటేనియా మాంట్సెరాట్ మాల్టా మారిషస్ @@ -1079,12 +1087,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ఎథియోపిక్ క్యాలెండర్ ఎథోపిక్ అమేటే అలెమ్ క్యాలెండర్ గ్రేగోరియన్ క్యాలెండర్ - హిబ్రూ క్యాలెండర్ + హీబ్రూ క్యాలెండర్ భారతీయ జాతీయ క్యాలెండర్ - ఇస్లామిక్ క్యాలెండర్ - ఇస్లామిక్-సివిల్ క్యాలెండర్ - ఇస్లామిక్ క్యాలెండర్ (సౌదీ అరేబియా) - ఇస్లామిక్ క్యాలెండర్ + ఇస్లామిక్ క్యాలెండర్ + ఇస్లామిక్-సివిల్ క్యాలెండర్ + ఇస్లామిక్ క్యాలెండర్ (సౌదీ అరేబియా) + ఇస్లామిక్ క్యాలెండర్ ఇస్లామిక్ క్యాలెండర్ (ఉమ్ అల్-ఖురా) ISO-8601 క్యాలెండర్ జపానీయుల క్యాలెండర్ @@ -1135,8 +1143,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ అపక్రమ లైన్ బ్రేక్ శైలి సాధారణ లైన్ బ్రేక్ శైలి క్రమ లైన్ బ్రేక్ శైలి - US BGN ట్రాన్స్‌లిట్రేషన్ - UN GEGN ట్రాన్స్‌లిట్రేషన్ + US BGN ట్రాన్స్‌లిటరేషన్ + UN GEGN ట్రాన్స్‌లిటరేషన్ మెట్రిక్ పద్ధతి ఇంపీరియల్ కొలమాన పద్ధతి యు.ఎస్. కొలమాన పద్ధతి @@ -1201,16 +1209,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\u200C\u200D ౦ ౧ ౨ ౩ ౪ ౫ ౬ ౭ ౮ ౯] [అ ఆ ఇ ఈ ఉ ఊ ఋ ౠ ఎ ఏ ఐ ఒ ఓ ఔ క ఖ గ ఘ ఙ చ ఛ జ ఝ ఞ ట ఠ డ ఢ ణ త థ ద ధ న ప ఫ బ భ మ య ర ఱ ల వ శ ష స హ ళ] [\- ‑ , . % ‰ + 0౦ 1౧ 2౨ 3౩ 4౪ 5౫ 6౬ 7౭ 8౮ 9౯] - [\- ‑ , ; \: ! ? . '‘’ "“” ( ) \[ \] \{ \}] + [\- ‑ , ; \: ! ? . '‘’ "“” ( ) \[ \] \{ \} \& #] - [£ ₤] + [₹ {రూ} {రూ.} {Rp} {Rs}₨] - [\--﹣ ‑ ‒ −⁻₋ ➖] - [,,﹐︐ ، ٫ 、﹑、︑] + [\--﹣ ‑ ‒ −⁻₋ ➖] + [,,﹐︐ ، ٫ 、﹑、︑] - [,,﹐︐ ٫] + [,,﹐︐ ٫] @@ -2297,6 +2305,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} సమయం {0} పగటి వెలుతురు సమయం {0} ప్రామాణిక సమయం + + హోనోలులు + సమన్వయ సార్వజనీన సమయం @@ -3034,9 +3045,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ఉలాన్బాటర్ - - చోయిబాల్సన్ - మకావ్ @@ -3436,9 +3444,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ నోమ్ - - హోనోలులు - యాంకరేజ్ @@ -3818,13 +3823,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ చైనా పగటి వెలుతురు సమయం - - - చోయిబల్సాన్ సమయం - చోయిబల్సాన్ ప్రామాణిక సమయం - చోయిబల్సాన్ వేసవి సమయం - - క్రిస్మస్ దీవి సమయం @@ -4078,6 +4076,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ పెట్రోపావ్లోవ్స్క్-కామ్ఛాట్స్కి వేసవి సమయం + + + కజకిస్తాన్ సమయం + + తూర్పు కజకి‌స్తాన్ సమయం @@ -4664,8 +4667,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ 000ట్రి - {0} {1} - {0} {1} @@ -5073,7 +5074,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ లెసోధో లోటి లెసోధో లోటి - లెసోధో లోటిలు + లెసోధో లోటిలు లిథోనియన్ లీటాస్ @@ -5300,9 +5301,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ సెయింట్ హెలెనా పౌండ్‌లు - సీయిరు లియోనియన్ లీయోన్ - సీయిరు లియోనియన్ లీయోన్ - సీయిరు లియోనియన్ లీయోన్‌లు + సియెరా లియోనియన్ లియోన్ + సియెరా లియోనియన్ లియోన్ + సియెరా లియోనియన్ లియోన్స్ సీయిరు లియోనియన్ లీయోన్ (1964—2022) @@ -6468,6 +6469,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ఇంపీరియల్ చతుర్ధాంశం {0} ఇంపీరియల్ చతుర్ధాంశం + + లైట్ + {0} లైట్ + {0} లైట్ + + + ప్రతి బిలియన్‌కి భాగాలు + ప్రతి బిలియన్‌కి {0} భాగం + ప్రతి బిలియన్‌కి {0} భాగాలు + + + రాత్రి + {0} రాత్రి + {0} రాత్రులు + ఒక రాత్రికి {0} + కార్డినల్ దిశ {0} తూర్పు @@ -7443,6 +7460,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} చతు. ఇంపీరియల్ {0} చతు. ఇంపీరియల్ + + లైట్ + {0} లైట్ + {0} లైట్ + + + భాగాలు/బిలియన్ + + + రాత్రులు + {0} రాత్రి + {0} రాత్రులు + రాత్రికి {0} + దిశ {0} తూ. @@ -7794,6 +7825,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}చతు.ఇం. {0}చతు.ఇం. + + లైట్ + {0} లైట్ + {0} లైట్ + + + రాత్రులు + {0}రాత్రి + {0}రాత్రులు + రాత్రికి {0} + diff --git a/make/data/cldr/common/main/tg.xml b/make/data/cldr/common/main/tg.xml index b721ac4f440..0e6392f854c 100644 --- a/make/data/cldr/common/main/tg.xml +++ b/make/data/cldr/common/main/tg.xml @@ -15,6 +15,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic африкаанс амҳарӣ арабӣ + Стандарти муосири арабӣ ассомӣ озарбойҷонӣ бошқирдӣ @@ -43,7 +44,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic дивеҳӣ дзонгха юнонӣ - Англисӣ + англисӣ англисии австралиягӣ англисии канадагӣ англисии британӣ @@ -122,6 +123,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic непалӣ ниуэӣ голландӣ + Фламандӣ норвегӣ нянҷа окситанӣ @@ -367,6 +369,37 @@ CLDR data files are interpreted according to the LDML specification (http://unic + ҷаҳонӣ + Африқо + Америкаи Шимолӣ + Америкаи Ҷанубӣ + Уқёнус + Африқои Ғарбӣ + Америкаи Марказӣ + Африқои Шимолӣ + Африқои Шарқӣ + Африқои Миёна + Африқои Ҷанубӣ + Америка + Амрикои Шимолӣ + Кариб + Осиёи Шарқӣ + Осиёи Ҷанубӣ + Осиёи Ҷанубу Шарқӣ + Аврупои Ҷанубӣ + Австралияву Осиё + Меланезия + Минтақаи Микронезия + Полинезия + Осиё + Осиёи Марказӣ + Осиёи Ғарбӣ + Аврупо + Аврупои Шарқӣ + Аврупои Шимолӣ + Аврупои Ғарбӣ + Африқои Суб-Сахара + Америкаи Лотинӣ Асунсон Андорра Аморатҳои Муттаҳидаи Араб @@ -397,6 +430,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Бермуда Бруней Боливия + Кариби Нидерланд Бразилия Багам Бутон @@ -406,9 +440,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic Белиз Канада Ҷазираҳои Кокос (Килинг) - Конго (ҶДК) + Конго - Киншаса Ҷумҳурии Африқои Марказӣ - Конго + Конго - Браззавил + Конго (Ҷумҳурии) Швейтсария Кот-д’Ивуар Ҷазираҳои Кук @@ -416,6 +451,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Камерун Хитой Колумбия + Ҷазираи Клиппертон Коста-Рика Куба Кабо-Верде @@ -424,17 +460,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic Кипр Ҷумҳурии Чех Германия + Диего-Гарсия Ҷибути Дания Доминика Ҷумҳурии Доминикан Алҷазоир + Сеута ва Мелилла Эквадор Эстония Миср + Сахараи Ғарбӣ Эритрея Испания Эфиопия + Иттиҳоди Аврупо + Минтақаи Аврупо Финляндия Фиҷи Ҷазираҳои Фолкленд @@ -467,12 +508,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic Хорватия Гаити Маҷористон + Ҷазираҳои Канария Индонезия Ирландия Исроил Ҷазираи Мэн Ҳиндустон Қаламрави Британия дар уқёнуси Ҳинд + Галаҷазираи Чагос Ироқ Эрон Исландия @@ -488,6 +531,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Комор Сент-Китс ва Невис Кореяи Шимолӣ + Кореяи Ҷанубӣ Қувайт Ҷазираҳои Кайман Қазоқистон @@ -538,6 +582,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Науру Ниуэ Зеландияи Нав + Аотеароа Зеландияи Нав Умон Панама Перу @@ -549,10 +594,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic Сент-Пер ва Микелон Ҷазираҳои Питкейрн Пуэрто-Рико + Қаламравҳои Фаластинӣ + Фаластин Португалия Палау Парагвай Қатар + Уқёнуси Дур Реюнион Руминия Сербия @@ -578,7 +626,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Эл-Салвадор Синт-Маартен Сурия - Свазиленд + Эсватини Тристан-да-Куня Ҷазираҳои Теркс ва Кайкос Чад @@ -588,6 +636,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Тоҷикистон Токелау Тимор-Лесте + Тимори Шарқӣ Туркманистон Тунис Тонга @@ -599,6 +648,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Украина Уганда Ҷазираҳои Хурди Дурдасти ИМА + Созмони Милали Муттаҳид Иёлоти Муттаҳида ИМ Уругвай @@ -612,6 +662,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Вануату Уоллис ва Футуна Самоа + Псевдо-аксентҳо + Псевдо-бидӣ Косово Яман Майотта @@ -622,6 +674,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Тақвими грегорианӣ + Тақвими ҳиҷрӣ (ҷадвал, давраи шаҳрвандӣ) + Тақвими ҳиҷрӣ (ҷадвал, давраи ситорашиносӣ) + Тақвими ISO-8601 Тартиби мураттабсозии стандартӣ Рақамҳои ҳинду-арабӣ Рақамҳои ғарбӣ @@ -633,7 +688,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Забон: {0} - Скрипт: {0} + Алифбо: {0} Минтақа: {0} @@ -643,10 +698,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic [А Б В Г Ғ Д ЕЁ Ж З ИӢ Й К Қ Л М Н О П Р С Т УӮ Ф Х Ҳ Ч Ҷ Ш Ъ Э Ю Я] [\- ‐‑ – — , ; \: ! ? . … '‘’ "“” » ( ) \[ \] § @ * / \& # † ‡ ′ {″«}] - - » - « - @@ -681,26 +732,39 @@ CLDR data files are interpreted according to the LDML specification (http://unic {1} {0} + + {1} 'соати' {0} + {1} {0} + + {1} 'соати' {0} + {1} {0} + + {1}, {0} + {1} {0} + + {1}, {0} + E h:mm a E h:mm:ss a y G + M/d/y GGGGG MMM y G d MMM y G E, d MMM y G @@ -992,21 +1056,33 @@ CLDR data files are interpreted according to the LDML specification (http://unic {1} {0} + + {1} 'соати' {0} + {1} {0} + + {1} 'соати' {0} + {1} {0} + + {1}, {0} + {1} {0} + + {1}, {0} + E h:mm a @@ -1027,10 +1103,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic d MMMM 'ҳафтаи' W, MMMM MM-y - d/M/y + d.M.y E, d/M/y MMM y - d MMM, y + d MMM y E, d MMM, y MMMM y QQQ y @@ -1195,8 +1271,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Дхул-Ҳ. - муҳаррам - сафар + Муҳаррам + Сафар Рабеъ I Рабеъ II ҷимоди-ул-уло @@ -1211,16 +1287,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic - муҳаррам - сафар + Муҳаррам + Сафар Рабеъ I Рабеъ II - ҷимоди-ул-уло - ҷимоди-ул-сони - раҷаб - Шабан - Рамадан - Шаввал + Ҷимоди-ул-уло + Ҷимоди-ул-сони + Раҷаб + Шаъбон + Рамазон + Шаавол Дхул-Қидаҳ Дхул-Ҳиҷҷаҳ @@ -1638,7 +1714,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic шнб о. - AM/PM + субҳ/бегоҳ соат @@ -1702,7 +1778,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Вақти GMT Вақти {0} Вақти рӯзонаи {0} Вақти стандартии {0} @@ -1714,71 +1789,2133 @@ CLDR data files are interpreted according to the LDML specification (http://unic Шаҳри номаълум - - Душанбе + + Андорра - - - Вақти марказӣ - Вақти стандартии марказӣ - Вақти рӯзонаи марказӣ - - - - - Вақти шарқӣ - Вақти стандартии шарқӣ - Вақти рӯзонаи шарқӣ - - - - - Вақти кӯҳӣ - Вақти стандартии кӯҳӣ - Вақти рӯзонаи кӯҳӣ - - - - - Вақти Уқёнуси Ором - Вақти стандартии Уқёнуси Ором - Вақти рӯзонаи Уқёнуси Ором - - - - - Вақти атлантикӣ - Вақти стандартии атлантикӣ - Вақти рӯзонаи атлантикӣ - - - - - Вақти аврупоии марказӣ - Вақти стандартии аврупоии марказӣ - Вақти тобистонаи аврупоии марказӣ - - - - - Вақти аврупоии шарқӣ - Вақти стандартии аврупоии шарқӣ - Вақти тобистонаи аврупоии шарқӣ - - - + + Дубай + + + Кобул + + + Антигуа + + + Ангиля + + + Тиран + + + Ереван + + + Луанда + + + Ротера + + + Палмер + + + Тролл + + + Сёва + + + Мавсон + + + Дэвис + + + Восток + + + Кейси + + + Дюмон д’Урвилл + + + Макмердо + + + Рио Галлегос + + + Мендоза + + + Сан-Хуан + + + Ушуайя + + + Ла Риоха + + + Сан Луис + + + Катамарка + + + Салта + + + Ҷуҷуй + + + Тукуман + + + Кордоба + + + Буэнос-Айрес + + + Паго Паго + + + Вена + + + Перт + + + Эукла + + + Дарвин + + + Аделаида + + + Брокен-Хилл + + + Мелбурн + + + Хобарт + + + Линдеман + + + Сидней + + + Брисбен + + + Маккуари + + + Лорд Хоу + + + Аруба + + + Марихамн + + + Боку + + + Сараево + + + Барбадос + + + Дакка + + + Брюссел + + + Уагадугу + + + София + + + Баҳрайн + + + Буҷумбура + + + Порто-Ново + + + Сент Бартелеми + + + Бермуда + + + Бруней + + + Ла-Пас + + + Кралендйк + + + Эйрунепе + + + Рио Бранко + + + Порту Велхо + + + Боа Виста + + + Манаус + + + Куяба + + + Сантарем + + + Кампо Гранде + + + Белем + + + Арагуайна + + + Сан-Паулу + + + Бахия + + + Форталеза + + + Масейо + + + Ресифи + + + Норонха + + + Нассау + + + Тимфу + + + Габороне + + + Минск + + + Белиз + + + Доусон + + + Уайтхорс + + + Инувик + + + Ванкувер + + + Форт Нелсон + + + Доусон Крик + + + Крестон + + + Эдмонтон + + + Свифт-Каррент + + + Кембриҷ Бэй + + + Регина + + + Виннипег + + + Резолют + + + Ранкин Инлет + + + Атикокан + + + Торонто + + + Икалуит + + + Монктон + + + Галифакс + + + Гус Бэй + + + Глэйс Бэй + + + Блан-Саблон + + + Сент Ҷонс + + + Кокос + + + Киншаса + + + Лубумбаши + + + Бангуи + + + Браззавил + + + Сюрих + + + Абидҷон + + + Раротонга + + + Истер + + + Пунта Аренас + + + Сантьяго + + + Дуала + + + Урумчи + + + Шанхай + + + Богота + + + Коста Рика + + + Ҳавана + + + Кабо-Верде + + + Кюрасао + + + Кристмас + + + Никосия + + + Фамагуста + + + Прага + + + Бусинген + + + Берлин + + + Ҷибути + + + Копенгаген + + + Доминика + + + Санто Доминго + + + Алҷазоир + + + Галапагос + + + Гуаякил + + + Таллин + + + Қоҳира + + + Эл Аиун + + + Асмара + + + Канария + + + Сеута + + + Мадрид + + + Аддис-Абеба + + + Хелсинки + + + Фиҷи + + + Стэнли + + + Чук + + + Понпей + + + Косрае + + + Фарер + + + Париж + + + Либревиль + + - Вақти аврупоии ғарбӣ - Вақти стандартии аврупоии ғарбӣ - Вақти тобистонаи аврупоии ғарбӣ + Вақти тобистонаи Британия - - + Лондон + + + Гренада + + + Тбилиси + + + Кайен + + + Гернси + + + Аккра + + + Гибралтар + + + Туле + + + Нуук + + + Иттоккортоормиит + + + Данмаркшавн + + + Банҷул + + + Конакри + + + Гваделупа + + + Малабо + + + Афина + + + Ҷорҷияи Ҷанубӣ + + + Гватемала + + + Гуам + + + Бисау + + + Гайана + + + Ҳонконг + + + Тегусигалпа + + + Загреб + + + Порт-о-Пренс + + + Будапешт + + + Ҷакарта + + + Понтианак + + + Макасар + + + Ҷаяпура + + - Вақти миёнаи Гринвич + Вақти стандартии Ирландия - - + Дублин + + + Йерусалим + + + Ҷазираи Ман + + + Колката + + + Чагос + + + Багдод + + + Теҳрон + + + Рейкявик + + + Рим + + + Ҷерси + + + Ямайка + + + Аммон + + + Токио + + + Найроби + + + Бишкек + + + Пномпен + + + Кантон + + + Киритимати + + + Тарава + + + Коморо + + + Сент Китс + + + Пхенян + + + Сеул + + + Кувайт + + + Кайман + + + Актау + + + Орал + + + Атирау + + + Актобе + + + Кустанай + + + Қизилорда + + + Алмаато + + + Вьентян + + + Бейрут + + + Сент-Люсия + + + Вадуз + + + Коломбо + + + Монровия + + + Масеру + + + Вилнюс + + + Люксембург + + + Рига + + + Триполи + + + Касабланка + + + Монако + + + Кишинёв + + + Подгоритса + + + Мариго + + + Антананариву + + + Кважалейн + + + Мажуро + + + Скопйе + + + Бамако + + + Янгон + + + Ховд + + + Улан-Батор + + + Макао + + + Сайпан + + + Мартиника + + + Нуакшот + + + Монсеррат + + + Малта + + + Маврикий + + + Малдив + + + Блантайр + + + Тихуана + + + Эрмосилло + + + Сюдад Хуарес + + + Мазатлан + + + Чихуахуа + + + Бахия де Бандерас + + + Ожинага + + + Монтеррей + + + Мехико + + + Матаморос + + + Мерида + + + Канкун + + + Куала Лумпур + + + Кучинг + + + Мапуту + + + Виндхук + + + Нумеа + + + Ниамей + + + Норфолк + + + Лагос + + + Манагуа + + + Амстердам + + + Осло + + + Катманду + + + Науру + + + Ниуэ + + + Чатам + + + Окленд + + + Маскат + + + Панама + + + Лима + + + Таити + + + Маркес + + + Гамбир + + + Порт Морсби + + + Бугенвилл + + + Манила + + + Карачи + + + Варшава + + + Микелон + + + Питкэрн + + + Пуэрто-Рико + + + Ғазза + + + Хеброн + + + Ҷазираҳои Азор + + + Мадейра + + + Лиссабон + + + Палау + + + Асунсион + + + Қатар + + + Реюнион + + + Бухарест + + + Белград + + + Калининград + + + Москва + + + Волгоград + + + Саратов + + + Астрахань + + + Уляновск + + + Киров + + + Самара + + + Екатеринбург + + + Омск + + + Новосибирск + + + Барнаул + + + Томск + + + Новокузнетск + + + Красноярск + + + Иркутск + + + Чита + + + Якутск + + + Владивосток + + + Хандига + + + Сахалин + + + Уст-Нера + + + Магадан + + + Среднеколимск + + + Камчатка + + + Анадир + + + Кигали + + + Риёз + + + Гвадалканал + + + Махе + + + Хартум + + + Стокголм + + + Сингапур + + + Сент Елена + + + Любляна + + + Лонгйербён + + + Братислава + + + Фритаун + + + Сан-Марино + + + Дакар + + + Могадишо + + + Парамарибо + + + Ҷуба + + + Сан-Томе + + + Сальвадор + + + Квартали Поёни Принс + + + Димишқ + + + Мбабане + + + Гранд Терк + + + Нҷамена + + + Кергулен + + + Ломе + + + Бангкок + + + Душанбе + + + Факаофо + + + Дили + + + Ашхобод + + + Тунис + + + Тонгатапу + + + Истанбул + + + Порти Испания + + + Фунафути + + + Тайбэй + + + Доруссалом + + + Киев + + + Симферопол + + + Кампала + + + Мидвей + + + Вейк + + + Адак + + + Ном + + + Анкорич + + + Якутат + + + Ситка + + + Ҷуно + + + Метлакатла + + + Лос-Анҷелес + + + Бойз + + + Финикс + + + Денвер + + + Бейла, Дакотаи Шимолӣ + + + Ню Салем, Дакотаи Шимолӣ + + + Сентр, Дакотаи Шимолӣ + + + Чикаго + + + Меномин + + + Винсенс, Индиана + + + Петербург, Индиана + + + Тел Сити, Индиана + + + Нокс, Индиана + + + Винамак, Индиана + + + Маренго, Индиана + + + Индианаполис + + + Луисвилл + + + Вевай, Индиана + + + Монтичелло, Кентукки + + + Детройт + + + Ню-Йорк + + + Монтевидео + + + Самарқанд + + + Тошкент + + + Ватикан + + + Сент Винсент + + + Каракас + + + Тортола + + + Сент Томас + + + Хо Ши Мин + + + Эфате + + + Уоллис + + + Апиа + + + Адан + + + Майотта + + + Йоханнесбург + + + Лусака + + + Хараре + + + + Вақти Афғонистон + + + + + Вақти Африқои Марказӣ + + + + + Вақти Африқои Шарқӣ + + + + + Вақти стандартии Африқои Ҷанубӣ + + + + + Вақти Африқои Ғарбӣ + Вақти стандартии Африқои Ғарбӣ + Вақти тобистонаи Африқои Ғарбӣ + + + + + Вақти Аляска + Вақти стандартии Аляска + Вақти рӯзонаи Аляска + + + + + Вақти Амазон + Вақти стандартии Амазон + Вақти тобистонаи Амазон + + + + + Вақти марказӣ + Вақти стандартии марказӣ + Вақти рӯзонаи марказӣ + + + + + Вақти шарқӣ + Вақти стандартии шарқӣ + Вақти рӯзонаи шарқӣ + + + + + Вақти кӯҳӣ + Вақти стандартии кӯҳӣ + Вақти рӯзонаи кӯҳӣ + + + + + Вақти Уқёнуси Ором + Вақти стандартии Уқёнуси Ором + Вақти рӯзонаи Уқёнуси Ором + + + + + Вақти Апиа + Вақти стандартии Апиа + Вақти рӯзонаи Апиа + + + + + Вақти Арабистон + Вақти стандартии Арабистон + Вақти рӯзонаи Арабистон + + + + + Вақти Аргентина + Вақти стандартии Аргентина + Вақти тобистонаи Аргентина + + + + + Вақти Аргентинаи Ғарбӣ + Вақти стандартии Аргентинаи Ғарбӣ + Вақти тобистонаи Аргентинаи Ғарбӣ + + + + + Вақти Арманистон + Вақти стандартии Арманистон + Вақти рӯзонаи Арманистон + + + + + Вақти атлантикӣ + Вақти стандартии атлантикӣ + Вақти рӯзонаи атлантикӣ + + + + + Вақти Австралияи Марказӣ + Вақти стандартии Австралияи Марказӣ + Вақти рӯонаи Австралияи Марказӣ + + + + + Вақти Ғарбии Марказии Австралия + Вақти стандартии Ғарбии Австралия Марказӣ + Вақти рӯзонаи Ғарбии Австралия Марказӣ + + + + + Вақти Австралияи Шарқӣ + Вақти стандартии шарқии Австралия + Вақти рӯзонаи шарқии Австралия + + + + + Вақти Австралияи Ғарбӣ + Вақти стандартии Австралияи Ғарбӣ + Вақти рӯзонаи Австралияи Ғарбӣ + + + + + Вақти Озарбойҷон + Вақти стандартии Озарбойҷон + Вақти тобистонаи Озарбойҷон + + + + + Вақти Азор + Вақти стандартии Азор + Вақти тобистонаи Азор + + + + + Вақти Бангладеш + Вақти стандартии Бангладеш + Вақти тобистонаи Бангладеш + + + + + Вақти Бутан + + + + + Вақти Боливия + + + + + Вақти Бразилия + Вақти стандартии Бразилия + Вақти тобистонаи Бразилия + + + + + Вақти Бруней Доруссалом + + + + + Вақти Кабо Верде + Вақти стандартии Кабо-Верде + Вақти тобистонаи Кабо-Верде + + + + + Вақти стандартии Чаморро + + + + + Вақти Чатам + Вақти стандартии Чатам + Вақти рӯзонаи Чатам + + + + + Вақти Чили + Вақти стандартии Чили + Вақти тобистонаи Чили + + + + + Вақти Чин + Вақти стандартии Чин + Вақти рӯзонаи Чин + + + + + Вақти ҷазираи Мавлуди Исо + + + + + Вақти Ҷазираҳои Кокос + + + + + Вақти Колумбия + Вақти стандартии Колумбия + Вақти тобистонаи Колумбия + + + + + Вақти ҷазираҳои Кук + Вақти стандартии Ҷазираҳои Кук + Вақти нимаи тобистонаи Ҷазираҳои Кук + + + + + Вақти Куба + Вақти стандартии Куба + Вақти рӯзонаи Куба + + + + + Вақти Давис + + + + + Вақти Дюмон-д’Урвил + + + + + Вақти Тимори Шарқӣ + + + + + Вақти ҷазираи Пасха + Вақти стандартии ҷазираи Пасха + Вақти тобистонаи ҷазираи Пасха + + + + + Вақти Эквадор + + + + + Вақти Аврупоии Марказӣ + Вақти стандартии аврупоии марказӣ + Вақти тобистонаи аврупоии марказӣ + + + + + Вақти аврупоии шарқӣ + Вақти стандартии аврупоии шарқӣ + Вақти тобистонаи аврупоии шарқӣ + + + + + Вақти Аврупои Шарқӣ + + + + + Вақти аврупоии ғарбӣ + Вақти стандартии аврупоии ғарбӣ + Вақти тобистонаи аврупоии ғарбӣ + + + + + Вақти Ҷазираҳои Фолкленд + Вақти стандартии Ҷазираҳои Фолкленд + Вақти тобистонаи Ҷазираҳои Фолкленд + + + + + Вақти Фиҷи + Вақти стандартии Фиҷи + Вақти тобистонаи Фиҷи + + + + + Вақти Гвианаи Фаронса + + + + + Вақти ҷанубӣ ва Антарктидаи Фаронса + + + + + Вақти Галапагос + + + + + Вақти Гамбир + + + + + Вақти Гурҷистон + Вақти стандартии Гурҷистон + Вақти тобистонаи Гурҷистон + + + + + Вақти Ҷазираҳои Гилберт + + + + + Вақти миёнаи Гринвич + + + + + Вақти Гренландияи Шарқӣ + Вақти стандартии Гренландияи Шарқӣ + Вақти тобистонаи Гренландияи Шарқӣ + + + + + Вақти Гренландияи Ғарбӣ + Вақти стандартии Гренландияи Ғарбӣ + Вақти тобистонаи Гренландияи Ғарбӣ + + + + + Вақти стандартии Халиҷи Форс + + + + + Вақти Гайана + + + + + Вақти Ҳавайӣ-Алеутӣ + Вақти стандартии Ҳавайӣ-Алеутӣ + Вақти рӯзонаи Ҳавайӣ-Алеутӣ + + + + + Вақти Ҳонконг + Вақти стандартии Ҳонконг + Вақти тобистонаи Ҳонконг + + + + + Вақти Ховд + Вақти стандартии Ҳовд + Вақти тобистонаи Ховд + + + + + Вақти стандартии Ҳиндустон + + + + + Вақти уқёнуси Ҳинд + + + + + Вақти Ҳиндучин + + + + + Вақти Индонезияи Марказӣ + + + + + Вақти шарқии Индонезия + + + + + Вақти Индонезияи Ғарбӣ + + + + + Вақти Эрон + Вақти стандартии Эрон + Вақти рӯзонаи Эрон + + + + + Вақти Иркутск + Вақти стандартии Иркутск + Вақти тобистонаи Иркутск + + + + + Вақти Исроил + Вақти стандартии Исроил + Вақти рӯзонаи Исроил + + + + + Вақти Ҷопон + Вақти стандартии Ҷопон + Вақти равшании Ҷопон + + + + + Вақти Қазоқистон + + + + + Вақти Қазоқистони Шарқӣ + + + + + Вақти Қазоқистони Ғарбӣ + + + + + Вақти Корея + Вақти стандартии Корея + Вақти рӯзонаи Корея + + + + + Вақти Косрае + + + + + Вақти Красноярск + Вақти стандартии Красноярск + Вақти тобистонаи Красноярск + + + + + Вақти Қирғизистон + + + + + Вақти Ҷазираҳои Лин + + + + + Лорд Хоу Time + Вақти стандартии Лорд Хоу + Вақти рӯзонаи Лорд Хоу + + + + + Вақти Магадан + Вақти стандартии Магадан + Вақти тобистонаи Магадан + + + + + Вақти Малайзия + + + + + Вақти Малдив + + + + + Вақти Маркес + + + + + Вақти Ҷазираҳои Маршалл + + + + + Вақти Маврикий + Вақти стандартии Маврикий + Вақти тобистонаи Маврикий + + + + + Вақти Мавсон + + + + + Вақти Уқёнуси Ором Мексика + Вақти стандартии Уқёнуси Ором Мексика + Вақти рӯзонаи Уқёнуси Ором Мексика + + + + + Вақти Улан-Батор + Вақти стандартии Улан-Батор + Вақти тобистонаи Улан-Батор + + + + + Вақти Москва + Вақти стандартии Маскав + Вақти тобистонаи Маскав + + + + + Вақти Мянма + + + + + Вақти Науру + + + + + Вақти Непал + + + + + Вақти Каледонияи Нав + Вақти стандартии Каледонияи Нав + Вақти тобистонаи Каледонияи Нав + + + + + Вақти Зеландияи Нав + Вақти стандартии Зеландияи Нав + Вақти рӯзонаи Зеландияи Нав + + + + + Вақти Нюфаундленд + Вақти стандартии Нюфаундленд + Вақти рӯзонаи Нюфаундленд + + + + + Вақти Ниуэ + + + + + Вақти ҷазираи Норфолк + Вақти стандартии ҷазираи Норфолк + Вақти рӯзонаи ҷазираи Норфолк + + + + + Вақти Фернандо де Норонха + Вақти стандартии Фернандо де Норонха + Вақти тобистонаи Фернандо де Норонха + + + + + Вақти Новосибирск + Вақти стандартии Новосибирск + Вақти тобистонаи Новосибирск + + + + + Вақти Омск + Омск вақти стандартӣ + Вақти тобистонаи Омск + + + + + Вақти Покистон + Вақти стандартии Покистон + Вақти тобистонаи Покистон + + + + + Вақти Палау + + + + + Вақти Папуа Гвинеяи Нав + + + + + Вақти Парагвай + Вақти стандартии Парагвай + Вақти тобистонаи Парагвай + + + + + Вақти Перу + Вақти стандартии Перу + Вақти тобистонаи Перу + + + + + Вақти Филиппин + Вақти стандартии Филиппин + Вақти тобистонаи Филиппин + + + + + Вақти Ҷазираҳои Финикс + + + + + Вақти Сент-Пиер ва Микелон + Вақти стандартии Сент-Пиер ва Микелон + Вақти рӯзонаи Сент-Пиер ва Микелон + + + + + Вақти Питкэрн + + + + + Ponape Time + + + + + Вақти Пхенян + + + + + Вақти Реюнион + + + + + Вақти Ротера + + + + + Вақти Сахалин + Вақти стандартии Сахалин + Вақти тобистонаи Сахалин + + + + + Вақти Самоа + Вақти стандартии Самоа + Вақти рӯзонаи Самоа + + + + + Вақти Сейшел + + + + + Вақти стандартии Сингапур + + + + + Вақти Ҷазираҳои Соломон + + + + + Вақти Ҷорҷияи Ҷанубӣ + + + + + Вақти Суринам + + + + + Вақти Сёва + + + + + Вақти Таити + + + + + Вақти Тайбэй + Вақти стандартии Тайбэй + Вақти рӯзонаи Тайбэй + + + + + Вақти Тоҷикистон + + + + + Вақти Токелау + + + + + Вақти Тонга + Вақти стандартии Тонга + Вақти тобистонаи Тонга + + + + + Вақти Чук + + + + + Вақти Туркманистон + Вақти стандартии Туркманистон + Вақти тобистонаи Туркманистон + + + + + Вақти Тувалу + + + + + Вақти Уругвай + Вақти стандартии Уругвай + Вақти тобистонаи Уругвай + + + + + Вақти Ӯзбекистон + Вақти стандартии Ӯзбекистон + Вақти тобистонаи Ӯзбекистон + + + + + Вақти Вануату + Вақти стандартии Вануату + Вақти тобистонаи Вануату + + + + + Вақти Венесуэла + + + + + Вақти Владивосток + Вақти стандартии Владивосток + Вақти тобистонаи Владивосток + + + + + Вақти Волгоград + Вақти стандартии Волгоград + Вақти тобистонаи Волгоград + + + + + Вақти Восток + + + + + Вақти бедории ҷазира + + + + + Вақти Уоллис ва Футуна + + + + + Вақти Якутск + Якутск вақти стандартӣ + Якутск вақти тобистона + + + + + Вақти Екатеринбург + Вақти стандартии Екатеринбург + Вақти тобистонаи Екатеринбург + + + + + Вақти Юкон + + + @@ -1824,15 +3961,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic #,##0.00 ¤ + + #,##0.00;(#,##0.00) + - 0 ҳзр'.' ¤ - 00 ҳзр'.' ¤ - 000 ҳзр'.' ¤ - 0 млн'.' ¤ - 00 млн'.' ¤ - 000 млн'.' ¤ + ¤0 ҳазор + ¤00 ҳазор + ¤000 ҳазор + ¤0 млн + ¤00 млн + ¤000 млн 0 млрд'.' ¤ 00 млрд'.' ¤ 000 млрд'.' ¤ @@ -1841,55 +3981,709 @@ CLDR data files are interpreted according to the LDML specification (http://unic 000 трлн'.' ¤ - {0} {1} + + Дирҳами АМА + дирҳами АМА + + + Афғонии Афғонистон + афғонии Афғонистон + + + Леки албанӣ + леки албанӣ + + + Драми Арманистон + драми Арманистон + + + Гулдени Антилии Нидерланд + гулдени Антилии Нидерланд + + + Кванзаи Ангола + кванзаи Ангола + + + Песои Аргентина + песои Аргентина + + + Доллари Австралия + доллари Австралия + + + Флорини Арубан + флорини Арубан + + + Манати Озарбойҷон + манати Озарбойҷон + + + Маркаҳои конвертатсияшавандаи Босния-Герсеговина + Маркаҳои конвертатсияшавандаи Босния-Герсеговина + + + Доллари Барбад + доллари Барбад + + + Такаси Бангладеши + такаси Бангладеши + + + Леви Болгария + леви Болгария + + + Динори Баҳрайн + динори Баҳрайн + + + Франки Бурунди + франки Бурунди + + + Доллари Бермуд + доллари Бермуд + + + Доллари Бруней + доллари Бруней + + + Боливянои Боливия + боливянои Боливия + Реали бразилиягӣ реали бразилиягӣ + + Доллари Багама + доллари Багама + + + Нгултруми Бутан + нгултруми Бутан + + + Пулаи Ботсвана + пулаи Ботсвана + + + Рубли Беларус + рубли Беларус + + + Доллари Белиз + доллари Белиз + + + Доллари Канада + доллари Канада + + + Франки Конго + франки Конго + + + Франки Швейтсария + франки Швейтсария + + + Песои Чили + песои Чили + + + Юани Хитой (офшорӣ) + юани Хитой (офшорӣ) + Иенаи хитоӣ иенаи хитоӣ + + Песои Колумбия + песои Колумбия + + + Колони Коста-Рика + Колони Коста-Рика + + + Песои конвертшавандаи Куба + песои конвертшавандаи Куба + + + Песои Куба + песои Куба + + + Эскудои Кабо Верде + эскудои Кабо Верде + + + Крони Чехия + крони Чехия + + + Франки Ҷибутӣ + франки Ҷибутӣ + + + Крони Дания + крони Дания + + + Песои Доминикан + песои Доминикан + + + Динори Алҷазоир + динори Алҷазоир + + + Фунти мисрӣ + фунти мисрӣ + + + Накфаи Эритрея + накфаи Эритрея + + + Бирри Эфиопия + бирри Эфиопия + Евро евро + + Доллари Фиҷи + доллари Фиҷи + + + Фунти Ҷазираҳои Фолкленд + фунти Ҷазираҳои Фолкленд + Фунт стерлинги британӣ фунт стерлинги британӣ + + Лариси гурҷӣ + лариси гурҷӣ + + + Седи Гана + седи Гана + + + Фунти Гибралтар + фунти Гибралтар + + + Даласи Гамбия + даласи Гамбия + + + Франки Гвинея + франки Гвинея + + + Кветзали Гватемала + кветзали Гватемала + + + Доллари Гайана + доллари Гайана + + + Доллари Гонконг + доллари Гонконг + + + Лемпираи Гондурас + лемпираи Гондурас + + + Кунаи Хорватия + кунаи Хорватия + + + Гурди Ҳаити + гурди Ҳаити + + + Форинти Венгрия + форинти Венгрия + + + Рупияи Индонезия + рупияи Индонезия + + + Шекелҳои нави Исроил + шекелҳои нави Исроил + Рупияи ҳиндустонӣ рупияи ҳиндустонӣ + + Динори Ироқ + динори Ироқ + + + Риёли Эрон + риёли Эрон + + + Кронури Исландия + кронури Исландия + + + Доллари Ямайка + доллари Ямайка + + + Динори Иордания + динори Иордания + Иенаи японӣ иенаи японӣ + + Шиллинги Кения + шиллинги Кения + + + Соми Қирғизистон + соми Қирғизистон + + + Риэли Камбоҷа + риэли Камбоҷа + + + Франки Комория + франки Комория + + + Вони Кореяи Шимолӣ + вони Кореяи Шимолӣ + + + Вони Кореяи Ҷанубӣ + вони Кореяи Ҷанубӣ + + + Динори Кувайт + динори Кувайт + + + Доллари Ҷазираҳои Кайман + доллари Ҷазираҳои Кайман + + + Тангаи Казокистон + тангаи Казокистон + + + Кипи Лаосй + кипи Лаос + + + Фунти Лубнон + фунти Лубнон + + + Рупи Шри-Ланка + рупи Шри-Ланка + + + Доллари Либерия + доллари Либерия + + + Лотиси Лесото + лотиси Лесото + + + Динори Либия + динори Либия + + + Дирхами Марокаш + дирхами Марокаш + + + Лейи Молдова + лейи Молдова + + + Ариарии Малагасий + ариарии Малагасий + + + Денори Македония + денори Македония + + + киати Мянмар + киати Мянмар + + + Тугрики Муғулистон + тугрики Муғулистон + + + Патакаи Макао + патакаи Макао + + + Огуияи Мавритания + Огуияи Мавритания + + + Рупияи Маврикий + рупияи Маврикий + + + Руфияи Малдив + руфияи Малдив + + + Квачаи Малавия + квачаи Малавия + + + Песои Мексика + песои Мексика + + + Ринггити Малайзия + ринггити Малайзия + + + Метикали Мозамбик + метикали Мозамбик + + + Доллари Намибия + доллари Намибия + + + Найраи Нигерия + Найраи Нигерия + + + Кордобаи Никарагуа + кордобаи Никарагуа + + + Кронаи Норвегия + кронаи Норвегия + + + Рупияи Непал + рупияи Непал + + + Доллари Зеландияи Нав + доллари Зеландияи Нав + + + Риёли Уммон + риёли Уммон + + + Балбоаи Панама + балбоаи Панама + + + Соли Перу + соли Перу + + + Кинаи Гвинеяи Папуа + кинаи Гвинеяи Папуа + + + Песои Филиппин + песои Филиппин + + + Рупияи Покистон + рупияи Покистон + + + Злотии Польша + злотии Польша + + + Гуарании Парагвай + гуарании Парагвай + + + Риёли Қатар + риёли Қатар + + + Лейи Руминия + лейи Руминия + + + Динори Сербия + динори Сербия + Рубли русӣ рубли русӣ + + Франки Руанда + франки Руанда + + + Риёли Саудӣ + риёли Саудӣ + + + Доллари Ҷазираҳои Соломон + доллари Ҷазираҳои Соломон + + + Рупии Сейшел + рупии Сейшел + + + Фунти Судон + фунти Судон + + + Крони шведӣ + крони шведӣ + + + Доллари Сингапур + доллари Сингапур + + + Фунти Сент Елена + фунти Сент Елена + + + Леони Серра-Леоне + леони Серра-Леоне + + + Леони Серра-Леоне (1964—2022) + леони Серра-Леоне (1964—2022) + + + Шиллинги Сомали + шиллинги Сомали + + + Доллари Суринам + доллари Суринам + + + Фунти Судони Ҷанубӣ + фунти Судони Ҷанубӣ + + + Добраи Сан-Томе ва Принсипи + добраи Сан-Томе ва Принсипи + + + Фунти Сурия + фунти Сурия + + + Эмалангени Свази + эмалангени Свази + + + Бати Таиланд + бати Таиланд + - Сомонӣ + Сомонии Тоҷикистон + сомонии Тоҷикистон сом. + + манати Туркманистон + манати Туркманистон + + + Динори Тунис + динори Тунис + + + Паангаи Тонга + паангаи Тонга + + + Лираи Туркия + лираи Туркия + + + Доллари Тринидад ва Тобаго + доллари Тринидад ва Тобаго + + + Доллари нави Тайван + доллари нави Тайван + + + Шиллинги Танзания + шиллинги Танзания + + + Гривнаи украинӣ + гривнаи украинӣ + + + Шилинги Уганда + шиллинги Уганда + Доллари ИМА доллари ИМА $ + + Песои Уругвай + песои Уругвай + + + Сўми Ӯзбекистон + сўми Ӯзбекистон + + + Боливари Венесуэла + боливари Венесуэла + + + Донги Ветнам + донги Ветнам + + + Ватуи Вануату + ватуи Вануату + + + Талаи Самоа + талаи Самоа + + + Франки CFA Африқои Марказӣ + франки CFA Африқои Марказӣ + + + Доллари Кариби Шарқӣ + доллари Кариби Шарқӣ + + + Франки Африқои Ғарбӣ + франки Африқои Ғарбӣ + + + Франки CFP + франки CFP + Асъори номаълум (асъори номаълум) + + Риали Яман + риали Яман + + + Рэнди Африқои Ҷанубӣ + рэнди Африқои Ҷанубӣ + + + Квачаи Замбия + квачаи Замбия + ⩾{0} + + {0} рӯз + {0}-умро рост кунед. + + + + + {0} барои {1} + + + самти кардиналӣ + {0} Шм + {0} Шр + {0} ҷануб + {0} ғарб + + + + + самт + {0} Шм + {0} Шр + {0} Ҷ + {0} Ғ + + + + + самт + {0} Шм + {0} Шр + {0}Ҷ + {0}Ғ + + + + + + {0} ва {1} + + + {0}, ё {1} + {0}, ё {1} + + + {0}, ё {1} + {0}, ё {1} + + + {0}, ё {1} + {0}, ё {1} + + + {0} ва {1} + + + {0} {1} + {0} {1} + {0} {1} + {0} {1} + + und tg ko vi yue zh diff --git a/make/data/cldr/common/main/th.xml b/make/data/cldr/common/main/th.xml index 21624f3245b..0a627fd42e0 100644 --- a/make/data/cldr/common/main/th.xml +++ b/make/data/cldr/common/main/th.xml @@ -84,6 +84,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ บันจาร์ กม สิกสิกา + อานี บัมบารา บังกลา ทิเบต @@ -225,7 +226,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ เยอรมันสูงกลาง กัวรานี เยอรมันสูงโบราณ - กอนกานีของกัว กอนดิ กอรอนทาโล โกธิก @@ -336,6 +336,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ โกมิ คอร์นิช ควักวาลา + กูวี คีร์กีซ ละติน ลาดิโน @@ -573,7 +574,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ โคเมอเรีย ซีเรียแบบดั้งเดิม ซีเรีย - ไซลีเซีย + ไซลีเซีย ทมิฬ ทัชโชนใต้ ตูลู @@ -633,6 +634,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ เวียดนาม เฟลมิชตะวันตก เมน-ฟรานโกเนีย + มากัววา โวลาพึค โวทิก โวโร @@ -648,6 +650,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ คัลมืยค์ คะห์โอซา เมเกรเลีย + กังกรี โซกา เย้า ยัป @@ -1405,7 +1408,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [.․﹒.。︒。] - [£ ₤] + [££ ₤] [\-﹣-‑‒ −⁻₋ ➖] @@ -2268,6 +2271,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ MMM – MMM + d–d MMM d MMM – d MMM @@ -3081,6 +3085,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ เวลา{0} เวลาออมแสง{0} เวลามาตรฐาน{0} + + โฮโนลูลู + เวลาสากลเชิงพิกัด @@ -3818,9 +3825,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ อูลานบาตอร์ - - ชอยบาลซาน - มาเก๊า @@ -4220,9 +4224,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ นอม - - โฮโนลูลู - แองเคอเรจ @@ -4607,13 +4608,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ เวลาออมแสงจีน - - - เวลาชอยปาลชาน - เวลามาตรฐานชอยปาลชาน - เวลาฤดูร้อนชอยปาลชาน - - เวลาเกาะคริสต์มาส @@ -4864,6 +4858,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ เวลาฤดูร้อนเปโตรปัฟลอฟสค์-คัมชัตสกี + + + เวลาคาซัคสถาน + + เวลาคาซัคสถานตะวันออก @@ -5380,7 +5379,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ 000T - {0} {1} @@ -6779,6 +6777,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ควอร์ตอังกฤษ {0} ควอร์ตอังกฤษ + + แสง + {0} แสง + + + ส่วนต่อพันล้าน + {0} ส่วนต่อพันล้าน + + + คืน + {0} คืน + {0}/คืน + สี่ทิศหลัก {0}ตะวันออก @@ -7498,6 +7509,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ หยิบมือ {0} หยิบมือ + + แสง + {0} แสง + + + ส่วน/พันล้าน + {0} สตพล. + + + คืน + {0} คืน + {0}/คืน + ทิศหลัก {0} ตอ @@ -8078,6 +8102,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}qt-Imp. + + แสง + {0}แสง + + + สตพล. + {0}สตพล. + + + คืน + {0}คืน + {0}/คืน + ทิศ {0}ต diff --git a/make/data/cldr/common/main/ti.xml b/make/data/cldr/common/main/ti.xml index cec0852764d..77738b234b1 100644 --- a/make/data/cldr/common/main/ti.xml +++ b/make/data/cldr/common/main/ti.xml @@ -16,6 +16,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}፦ {1} + አፋር ኣብካዝኛ ኣቸኒዝኛ ኣዳንግሜ @@ -30,9 +31,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic ኣራጎንኛ ኦቦሎ ኣንጂካ - ሌቫንቲናዊ ዓረብ - ዓረብ - ዘመናዊ ምዱብ ዓረብ + ሌቫንቲናዊ ዓረብኛ + ዓረብኛ + ዘመናዊ ምዱብ ዓረብኛ ማፑቺ ኣራፓሆ ናጅዲ ዓረብኛ @@ -40,33 +41,41 @@ CLDR data files are interpreted according to the LDML specification (http://unic ኣሱ ኣስቱርያን ኣቲካመክ - ኣቫር + ኣቫርኛ ኣዋዲ ኣይማራ ኣዘርባጃንኛ ኣዘሪ ባሽኪር + ባሉቺ ባሊንኛ ባሳ ቤላሩስኛ ቤምባ + ቤታዊ በና ቡልጋርኛ ሃርያንቪ + ምዕራባዊ ባሎቺ ቦጅፑሪ ቢስላማ ቢኒ ሲክሲካ + ኣኒ + ታይ ዳም ባምባራ በንጋሊ ቲበታንኛ ብረቶንኛ ቦዶ ቦዝንኛ + ኣኮስ ቡጊንኛ ብሊን ካታላን + ካድዶ ካዩጋ + ኣትሳም ቻክማ ቸቸንይና ሰብዋኖ @@ -78,8 +87,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic ቺፐውያን ቸሮኪ ሻያን - ሶራኒ ኩርዲሽ - ማእከላይ ኩርዲሽ + ቺካሳው + ማእከላይ ኩርዲሽ + ኩርዲሽ፣ ማእከላይ + ኩርዲሽ፣ ሶራኒ ቺልኮቲን ኮርስኛ ሚቺፍ @@ -87,7 +98,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ክሪ ፕሌንስ ሰሜናዊ ምብራቕ ክሪ ሙስ ክሪ - ካቶሊና አልጎንጉያኛ + ካሮሊና አልጎንጉያኛ ቸክኛ ክሪ ረግረግ ቤተ-ክርስትያን ስላቭኛ @@ -113,10 +124,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic ኤካጁክ ግሪኽኛ እንግሊዝኛ - እንግሊዝኛ (ሕቡራት መንግስታት) እንግሊዝኛ (ሕ.መ.) ኤስፐራንቶ ስጳንኛ + ስጳንኛ (ኤውሮጳዊ) ኤስቶንኛ ባስክኛ ኤዎንዶ @@ -155,6 +166,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ሂንግሊሽ ሂሊጋይኖን ህሞንግ + ህሞንግ ንጁዋ ክሮኤሽያን ላዕለዋይ ሶርብኛ ክርዮል ሃይትኛ @@ -167,6 +179,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ኢባን ኢቢብዮ ኢንዶነዥኛ + ኢንተርሊንጔ ኢግቦ ሲችዋን ዪ ምዕራባዊ ካናዳዊ ኢናክቲቱት @@ -182,6 +195,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ማኬም ጃቫንኛ ጆርጅያንኛ + ካራ-ካልፓክ ካቢልኛ ካቺን ጅጁ @@ -190,6 +204,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ታያፕ ማኮንደ ክርዮል ኬፕ ቨርድኛ + ኬንያንግ ኮሮ ካይንጋንግ ካሲ @@ -213,12 +228,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic ካሽሚሪ ሻምባላ ባፍያ - ኮልሽ + ኮሎግኒያን ኩርዲሽ ኩሚይክ ኮሚ ኮርንኛ ክዋክዋላ + ኩቪ ኪርጊዝኛ ላቲን ላዲኖ @@ -238,6 +254,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ሰሜናዊ ሉሪ ሳምያ ሊትዌንኛ + ላትጋላዊ ሉባ-ካታንጋ ሉባ-ሉልዋ ሉንዳ @@ -279,7 +296,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ኤርዝያ ማዛንደራኒ ናውርዋንኛ - ናፖሊታንኛ + ኒያፖሊታንኛ ናማ ኖርወያዊ ቦክማል ሰሜን ኤንደበለ @@ -313,6 +330,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ኦሮሞ ኦድያ ኦሰትኛ + ኦሳጌ ፑንጃቢ ፓንጋሲናን ፓምፓንጋ @@ -326,6 +344,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ፓሽቶ ፖርቱጊዝኛ ቀችዋ + ኪቼ ራጃስታኒ ራፓኑይ ራሮቶንጋንኛ @@ -351,36 +370,42 @@ CLDR data files are interpreted according to the LDML specification (http://unic ሲሲልኛ ስኮትኛ ሲንድሂ + ደቡባዊ ኩርዲሽ ሰሜናዊ ሳሚ ሰና ኮይራቦሮ ሰኒ ሳንጎ - ሰርቦ-ክሮኤሽያን + ሰርቦ-ክሮኤሽያኛ ታቸልሂት ሻን ሲንሃላ + ሲዳመኛ ስሎቫክኛ ስሎቬንኛ ደቡባዊ ሉሹትሲድ ሳሞእኛ + ደቡባዊ ሳሚ + ሉለ ሳሚ ሳሚ ኢናሪ ሳሚ ስኮልት ሾና ሶኒንከ ሶማሊ ኣልባንኛ - ቃንቃ ሰርቢያ + ሰርቢያኛ ስራናን ቶንጎ ስዋዚ + ሳሆ ደቡባዊ ሶቶ ሳሊሽ መጻብቦታት - ሱንዳንኛ + ሱዳንኛ ሱኩማ ስዊድንኛ ስዋሂሊ ስዋሂሊ (ኮንጎ) ኮሞርኛ - ሱርስት + ሶርያኛ + ሲሌሲያን ታሚል ደቡባዊ ታትቾን ተሉጉ @@ -402,6 +427,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ቶክ ፒሲን ቱርክኛ ታሮኮ + ቶርዋሊኛ ሶንጋ ታታር ሰሜናዊ ታትቾን @@ -423,16 +449,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic ቨንዳ ቬንቲያንኛ ቬትናምኛ + ማክሁዋ ቮላፑክ ቩንጆ ዋሎን ዋልሰር ዎላይታኛ ዋራይ + ዋርልፒሪ ዎሎፍ ቻይናዊ ዉ ካልምይክ ኮሳ + ካንጋሪኛ ሶጋ ያንግበን የምባ @@ -441,6 +470,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ኒንጋቱ ካንቶንኛ ቻይናዊ ካንቶንኛ + ዙኣንግ ሞሮካዊ ምዱብ ታማዛይት ቻይንኛ ማንዳሪን ቻይንኛ @@ -454,11 +484,66 @@ CLDR data files are interpreted according to the LDML specification (http://unic ዛዛኪ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ዓለም @@ -581,7 +666,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ፈረንሳ ጋቦን ብሪጣንያ - ዩ.ኪ. ግረናዳ ጆርጅያ ፈረንሳዊት ጊያና @@ -612,7 +696,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic እስራኤል ኣይል ኦፍ ማን ህንዲ - ብሪጣንያዊ ህንዳዊ ውቅያኖስ ግዝኣት + ብሪጣንያዊ ህንዳዊ ውቅያኖስ ግዝኣት ዒራቕ ኢራን ኣይስላንድ @@ -726,7 +810,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ስዋዚላንድ ትሪስታን ዳ ኩንያ ደሴታት ቱርካትን ካይኮስን - ጫድ + ቻድ ፈረንሳዊ ደቡባዊ ግዝኣታት ቶጎ ታይላንድ @@ -775,9 +859,86 @@ CLDR data files are interpreted according to the LDML specification (http://unic ዓውደ-ኣዋርሕ ቅርጺ ባጤራ + ስርዓት ምድላው ባጤራ + ዑደት ሰዓት (12 ኣንጻር 24) + ቅዲ ምብታኽ መስመር + ስርዓት መለክዒ ቁጽርታት + + ናይ ቡድሃ ዓውደ ኣዋርሕ + ናይ ቻይናዊ ዓውደ ኣዋርሕ + ናይ ቅብጣዊ ዓውደ ኣዋርሕ + ናይ ዳንጊ ዓውደ ኣዋርሕ + ናይ ግእዝ ዓውደ ኣዋርሕ + ግእዝ ኣመተ ኣለም ዓውደ ኣዋርሕ + ጎርጎርዮሳዊ ዓውደ ኣዋርሕ + ናይ እብራይስጢ ዓውደ ኣዋርሕ + ናይ ሂጅሪ ዓውደ ኣዋርሕ + ናይ ሂጅሪ ዓውደ ኣዋርሕ (ሰንጠረዥ፣ ሲቪላዊ ዘመን) + ናይ ሂጅሪ ዓውደ ኣዋርሕ (ሰንጠረዥ፣ ስነ-ፍልጠታዊ ዘመን) + ናይ ሂጅሪ ዓውደ ኣዋርሕ (ኡም ኣል-ቁራ) + ISO-8601 ዓውደ ኣዋርሕ + ናይ ጃፓናዊ ዓውደ ኣዋርሕ + ናይ ፋርስ ዓውደ ኣዋርሕ + ናይ ሪፓብሊክ ቻይና ዓውደ ኣዋርሕ + ቅርጺ ባጤራ ሕሳብ + መደበኛ ቅርጺ ባጤራ + ነባሪ ዩኒኮድ ስርዓት ምድላው + ሓፈሻዊ-ዕላማ ምድላይ + መደበኛ ምድላው ስርዓት + ስርዓት 12 ሰዓታት (0–11) + ስርዓት 12 ሰዓታት (1–12) + ናይ 24 ሰዓታት ስርዓት (0–23) + ናይ 24 ሰዓታት ስርዓት (1–24) + ልሕሉሕ መስመር ምብታኽ ቅዲ + ንቡር ቅዲ ምብታኽ መስመር + ቅዲ ስጡም መስመር ምብታኽ + ሜትሪክ ስርዓት + ስርዓተ መለክዒ ሃጸያዊ + ስርዓት መለክዒ ኣሜሪካ + ዓረብ-ህንዳዊ ኣሃዛት + ዝተዘርግሐ ኣሃዛት ዓረብ-ህንዳዊ + ኣርመንያዊ ቁጽርታት + ኣርመንያ ንኣሽቱ ቁጽርታት + ባንግላ ኣሃዛት + ቻክማ ኣሃዛት + ደቫናጋሪ ኣሃዛት + ግእዝ ቁጽርታት + ምሉእ ስፍሓት ዘለዎም ኣሃዛት + ጆርጅያዊ ቁጽርታት + ናይ ግሪኽ ቁጽርታት + ናይ ግሪኽ ንኣሽቱ ቁጽርታት + ናይ ጉጃራቲ ኣሃዛት + ናይ ጉርሙኪ ኣሃዛት + ቻይናዊ ዓስራይ ቁጽርታት + ዝተቐለለ ቻይናዊ ቁጽርታት + ዝተቐለለ ቻይናዊ ፋይናንሳዊ ቁጽርታት + ባህላዊ ቁጽርታት ቻይና + ባህላዊ ቻይናዊ ፋይናንሳዊ ቁጽርታት + ናይ እብራይስጢ ቁጽርታት + ጃቫናዊ ኣሃዛት + ጃፓናዊ ቁጽርታት + ጃፓናዊ ፋይናንሳዊ ቁጽርታት + ኣሃዛት ክመር + ካናዳ ኣሃዛት + ላኦ ዲጂትስ + ምዕራባዊ ኣሃዛት + ማላያላም ኣሃዛት + ሜተይ ማየክ ኣሃዛት + ናይ ሚያንማር ኣሃዛት + ኦል ቺኪ ኣሃዛት + ኦድያ አሃዛት + ሮማዊ ቁጽርታት + ሮማዊ ንኣሽቱ ቁጽርታት + ባህላዊ ቁጽርታት ታሚል + ናይ ታሚል አሃዛት + ናይ ተለጉ አሃዛት + ናይ ታይላንዳዊ ኣሃዛት + ናይ ትቤቲ ኣሃዛት + ቫይ ኣሃዛት + ሜትሪክ ብሪጣንያ @@ -802,28 +963,96 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + + + መስከረም + ጥቅምቲ + ሕዳር + ታሕሳስ + ጥሪ + ለካቲት + መጋቢት + ሚያዚያ + ጉንበት + ሰነ + ሓምለ + ነሓሰ + ጷጉሜ + + + መስከረም + ጥቅምቲ + ሕዳር + ታሕሳስ + ጥሪ + ለካቲት + መጋቢት + ሚያዚያ + ጉንበት + ሰነ + ሓምለ + ነሓሰ + ጷጉሜ + + + + + መስከረም + ጥቅምቲ + ሕዳር + ታሕሳስ + ጥሪ + ለካቲት + መጋቢት + ሚያዚያ + ጉንበት + ሰነ + ሓምለ + ነሓሰ + ጷጉሜ + + + መስከረም + ጥቅምቲ + ሕዳር + ታሕሳስ + ጥሪ + ለካቲት + መጋቢት + ሚያዚያ + ጉንበት + ሰነ + ሓምለ + ነሓሰ + ጷጉሜ + + + + - EEEE፣ d MMMM y G + EEEE, MMMM d, y G - d MMMM y G + MMMM d, y G GyMMMMdd - d MMM y G + MMM d, y G GyMMMdd - dd/MM/yy GGGGG + M/d/y GGGGG GGGGGyyMMdd @@ -856,17 +1085,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic - E d + d E y G - d/M/y GGGGG + M/d/y GGGGG MMM y G - d MMM y G + MMM d, y G E፣ d MMM y G - d/M + M/d E፣ d/M dd/MM d MMM - E፣ d MMM + E, MMM d d MMMM dd MMMM y G @@ -875,23 +1104,114 @@ CLDR data files are interpreted according to the LDML specification (http://unic QQQ y y G M/y GGGGG - d/M/y GGGGG + M/d/y GGGGG E፣ d/M/y GGGGG MMM y G - d MMM y G - E፣ d MMM y G + MMM d, y G + E, MMM d, y G MMMM y G QQQ y G QQQQ y G {0} – {1} + + y G – y G + y – y G + + + M/y GGGGG – M/y GGGGG + M/y – M/y GGGGG + M/y – M/y GGGGG + + + M/d/y – M/d/y GGGGG + M/d/y GGGGG – M/d/y GGGGG + M/d/y – M/d/y GGGGG + M/d/y – M/d/y GGGGG + + + E, M/d/y – E, M/d/y GGGGG + E, M/d/y GGGGG – E, M/d/y GGGGG + E, M/d/y – E, M/d/y GGGGG + E, M/d/y – E, M/d/y GGGGG + + + MMM y G – MMM y G + MMM – MMM y G + MMM y – MMM y G + + + MMM d – d, y G + MMM d, y G – MMM d, y G + MMM d – MMM d, y G + MMM d, y – MMM d, y G + + + E, MMM d – E, MMM d, y G + E, MMM d, y G – E, MMM d, y G + E, MMM d – E, MMM d, y G + E, MMM d, y – E, MMM d, y G + h:mm – h:mm a M–M + + M/d – M/d + M/d – M/d + + + E, M/d – E, M/d + E, M/d – E, M/d + + + MMM – MMM + + + MMM d – MMM d + + + E, MMM d – E, MMM d + E, MMM d – E, MMM d + + + y – y G + + + M/y – M/y GGGGG + M/y – M/y GGGGG + + + M/d/y – M/d/y GGGGG + M/d/y – M/d/y GGGGG + M/d/y – M/d/y GGGGG + + + E, M/d/y – E, M/d/y GGGGG + E, M/d/y – E, M/d/y GGGGG + E, M/d/y – E, M/d/y GGGGG + + + MMM – MMM y G + MMM y – MMM y G + + + MMM d – d, y G + MMM d – MMM d, y G + MMM d, y – MMM d, y G + + + E, MMM d – E, MMM d, y G + E, MMM d – E, MMM d, y G + E, MMM d, y – E, MMM d, y G + + + MMMM – MMMM y G + MMMM y – MMMM y G + @@ -917,7 +1237,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ለካቲት መጋቢት ሚያዝያ - ግንቦት + ጉንበት ሰነ ሓምለ ነሓሰ @@ -942,6 +1262,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + ጥሪ + ለካቲት + መጋቢት + ሚያዝያ + ጉንበት + ሰነ + ሓምለ + ነሓሰ + መስከረም + ጥቅምቲ + ሕዳር + ታሕሳስ + @@ -1022,19 +1356,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic - d MMMM y + MMMM d, y yMMMMdd - d MMM y + MMM d, y yMMMdd - dd/MM/yy + M/d/yy yyMMdd @@ -1093,15 +1427,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic - E d + d E E፣ h:mm a E፣ HH:mm E፣ h:mm:ss a E፣ HH:mm:ss y G - d/M/y GGGGG + M/d/y G MMM y G - d MMM y G + MMM d, y G E፣ d MMM y G d/M E፣ d/M @@ -1113,11 +1447,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic ሰሙን W ናይ MMMM ሰሙን W ናይ MMMM M/y - d/M/y + M/d/y E፣ d/M/y M/y MMM y d MMM y + E, MMM d, y MMMM y QQQ y QQQQ y @@ -1225,6 +1560,44 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + + + EEEE, MMMM d, y G + + + + + MMMM d, y G + + + + + MMM d, y G + + + + + M/d/y GGGGG + + + + + + d E + M/d/y GGGGG + MMM d, y G + M/d + MMM d + E, MMM d + MMMM d + M/d/y GGGGG + MMM d, y G + E, MMM d, y G + + + @@ -1232,9 +1605,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic ዓመት - ዓሚ + ዝሓለፈ ዓመት ሎሚ ዓመት - ንዓመታ + ዝመጽእ ዓመት ኣብ {0} ዓ ኣብ {0} ዓ @@ -1245,12 +1618,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic + ዝሓለፈ ዓመት + ሎሚ ዓመት + ዝመጽእ ዓመት ቅድሚ -{0} ዓ ቅድሚ {0} ዓ + ዝሓለፈ ዓመት + ሎሚ ዓመት + ዝመጽእ ዓመት ቅድሚ {0} ዓ ቅድሚ {0} ዓ @@ -1417,7 +1796,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ኣብ {0} ዓርቢ - ኣብ {0} ዓርቢ + ቅድሚ {0} ዓርቢ ቅድሚ {0} ዓርቢ @@ -1471,7 +1850,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ደቒ. - ካልኢት + ሴኮንድ ሕጂ ኣብ {0} ካልኢት @@ -1482,6 +1861,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic ቅድሚ {0} ካልኢት + + ሴኮንድ + + + ሴኮንድ + ዞባ ግዜ @@ -1490,9 +1875,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic - ግዜ {0} - ግዜ ክረምቲ {0} - ምዱብ ግዜ {0} + ግዘ {0} + ናይ {0} መዓልቲ ግዘ + ናይ መደበኛ ጊዜ {0} ግዘ + + ሆኖሉሉ + ዝተሳነየ ኣድማሳዊ ግዜ @@ -2058,7 +2446,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Irish Standard Time + ናይ መደበኛ አይሪሽ ግዘ ደብሊን @@ -2230,9 +2618,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ኡላን ባቶር - - ቾይባልሳን - ማካው @@ -2632,9 +3017,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ነውም - - ሆኖሉሉ - ኣንኮረጅ @@ -2735,7 +3117,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ቶርቶላ - ሰይንት ቶማስ + ቅዱስ ቶማስ ከተማ ሆ ቺ ሚን @@ -2766,11 +3148,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic - ግዜ ኣክሪ - ምዱብ ግዜ ኣክሪ + ግዘ አክሪ + ናይ መደበኛ ግዘ ኣክሪ ግዜ ክረምቲ ኣክሪ + + + ናይ አፍጋኒስታን ግዘ + + ግዜ ማእከላይ ኣፍሪቃ @@ -2789,36 +3176,146 @@ CLDR data files are interpreted according to the LDML specification (http://unic ግዜ ምዕራብ ኣፍሪቃ - ምዱብ ግዜ ምዕራብ ኣፍሪቃ + ናይ መደበኛ ግዘ ምዕራብ ኣፍሪቃ ግዜ ክረምቲ ምዕራብ ኣፍሪቃ - ግዜ ኣላስካ - ምዱብ ግዜ ኣላስካ - ግዜ ክረምቲ ኣላስካ + ግዘ አላስካ + ናይ መደበኛ ግዘ አላስካ + ናይ መዓልቲ ግዘ አላስካ ግዜ ኣማዞን - ምዱብ ግዜ ኣማዞን + ናይ መደበኛ ግዘ ኣማዞን ግዜ ክረምቲ ኣማዞን + + + ማእከላይ አመሪካ ግዘ + ናይ መደበኛ ግዘ ማእከላይ አመሪካ + ናይ መዓልቲ ግዘ ማእከላይ አመሪካ + + + + + ናይ ምብራቓዊ ግዘ + ናይ መደበኛ ግዘ ምብራቓዊ ኣመሪካ + ናይ መዓልቲ ግዘ ምብራቓዊ አመሪካ + + + + + ናይ ጎቦ ግዘ + ናይ መደበኛ ግዘ ጎቦ ኣመሪካ + ናይ መዓልቲ ግዘ ጎቦ አመሪካ + + + + + ናይ ፓስፊክ ግዘ + ናይ መደበኛ ግዘ ፓስፊክ + ናይ መዓልቲ ግዘ ፓስፊክ + + + + + ናይ አፒያ ግዘ + ናይ መደበኛ አፒያ ግዘ + ናይ መዓልቲ አፒያ ግዘ + + + + + ናይ አረብ ግዘ + ናይ መደበኛ አረብ ግዘ + ናይ መዓልቲ አረብ ግዘ + + ግዜ ኣርጀንቲና - ምዱብ ግዜ ኣርጀንቲና + ናይ መደበኛ ግዘ ኣርጀንቲና ግዜ ክረምቲ ኣርጀንቲና + + + ግዜ ምዕራባዊ ኣርጀንቲና + ናይ መደበኛ ግዘ ምዕራባዊ ኣርጀንቲና + ግዜ ክረምቲ ምዕራባዊ ኣርጀንቲና + + + + + ናይ አርሜኒያ ግዘ + ናይ መደበኛ አርሜኒያ ግዘ + ናይ ክረምቲ አርሜኒያ ግዘ + + + + + ናይ አትላንቲክ ግዘ + ናይ መደበኛ ግዘ አትላንቲክ + ናይ መዓልቲ ግዘ አትላንቲክ + + + + + ናይ አውስራሊያ ግዘ + ናይ ማዕከላይ መደበኛ አውስራሊያ ግዘ + ናይ ማዕከላይ መዓልቲ አውስራሊያ ግዘ + + + + + ናይ ምዕራባዊ አውስራሊያ ግዘ + ናይ ምዕራባዊ መደበኛ አውስራሊያ ግዘ + ናይ ምዕራባዊ መዓልቲ አውስራሊያ ግዘ + + + + + ናይ ምብራቓዊ ኣውስትራልያ ግዘ + ናይ ምብራቓዊ መደበኛ ኣውስትራልያ ግዘ + ናይ ምብራቓዊ መዓልቲ ኣውስትራልያ ግዘ + + + + + ናይ ምዕራባዊ አውስትራሊያ ግዘ + ናይ ምዕራባዊ መደበኛ አውስትራሊያ ግዘ + ናይ ምዕራባዊ መዓልቲ አውስትራሊያ ግዘ + + + + + ናይ አዘርባዣን ግዘ + ናይ መደበኛ አዘርባዣን ግዘ + ናይ ክረምቲ አዘርባዣን ግዘ + + - ግዜ ኣዞረስ - ምዱብ ግዜ ኣዞረስ - ግዜ ክረምቲ ኣዞረስ + ናይ አዞረስ ግዘ + ናይ መደበኛ ግዘ ኣዞረስ + ናይ ክረምቲ አዞረስ ግዘ + + + + + ናይ ባንግላዲሽ ግዘ + ናይ መደበኛ ባንግላዲሽ ግዘ + ናይ ክረምቲ ባንግላዲሽ ግዘ + + + + + ናይ ቡህታን ግዘ @@ -2829,35 +3326,98 @@ CLDR data files are interpreted according to the LDML specification (http://unic ግዜ ብራዚልያ - ምዱብ ግዜ ብራዚልያ + ናይ መደበኛ ግዘ ብራዚልያ ግዜ ክረምቲ ብራዚልያ + + + ናይ ብሩኔ ዳሩሳሌም ግዘ + + ግዜ ኬፕ ቨርደ - ምዱብ ግዜ ኬፕ ቨርደ + ናይ መደበኛ ግዘ ኬፕ ቨርደ ግዜ ክረምቲ ኬፕ ቨርደ + + + ናይ መደበኛ ቻሞሮ ግዘ + + + + + ናይ ቻትሃም ግዘ + ናይ መደበኛ ቻትሃም ግዘ + ናይ መዓልቲ ቻትሃም ግዘ + + ግዜ ቺሌ - ምዱብ ግዜ ቺሌ + ናይ መደበኛ ግዘ ቺሌ ግዜ ክረምቲ ቺሌ + + + ናይ ቻይና ግዘ + ናይ መደበኛ ቻይና ግዘ + ናይ መዓልቲ ቻይና ግዘ + + + + + ናይ ልደት ደሴት ግዘ + + + + + ናይ ኮኮስ ደሴት ግዘ + + ግዜ ኮሎምብያ - ምዱብ ግዜ ኮሎምብያ + ናይ መደበኛ ግዘ ኮሎምብያ ግዜ ክረምቲ ኮሎምብያ + + + ናይ ኩክ ደሴት ግዘ + ናይ መደበኛ ኩክ ደሴት ግዘ + ናይ ፍርቂ ክረምቲ ኩክ ደሴት ግዘ + + + + + ናይ ኩባ ግዘ + ናይ መደበኛ ግዘ ኩባ + ናይ መዓልቲ ግዘ ኩባ + + + + + ናይ ዴቪስ ግዘ + + + + + ናይ ዱሞ-ዱርቪል ግዘ + + + + + ናይ ምብራቅ ቲሞር ግዘ + + ግዜ ደሴት ፋሲካ - ምዱብ ግዜ ደሴት ፋሲካ + ናይ መደበኛ ግዘ ደሴት ፋሲካ ግዜ ክረምቲ ደሴት ፋሲካ @@ -2868,25 +3428,44 @@ CLDR data files are interpreted according to the LDML specification (http://unic - ግዜ ማእከላይ ኤውሮጳ - ምዱብ ግዜ ማእከላይ ኤውሮጳ + ናይ ማእከላይ ኤውሮጳ ግዘ + ናይ መደበኛ ግዘ ማእከላይ ኤውሮጳ ግዜ ክረምቲ ኤውሮጳ - ግዜ ምብራቕ ኤውሮጳ - ምዱብ ግዜ ምብራቕ ኤውሮጳ + ናይ ምብራቕ ኤውሮጳ ግዘ + ናይ መደበኛ ግዘ ምብራቕ ኤውሮጳ ግዜ ክረምቲ ምብራቕ ኤውሮጳ + + + ናይ ርሑቕ-ምብራቕ ኤውሮጳዊ ግዘ + + + + + ናይ ምዕራባዊ ኤውሮጳዊ ግዘ + ናይ መደበኛ ምዕራባዊ ኤውሮጳዊ ግዘ + ናይ ክረምቲ ምዕራባዊ ኤውሮጳዊ ግዘ + + ግዜ ደሴታት ፎክላንድ - ምዱብ ግዜ ደሴታት ፎክላንድ + ናይ መደበኛ ግዘ ደሴታት ፎክላንድ ግዜ ከረምቲ ደሴታት ፎክላንድ + + + ናይ ፊጂ ግዘ + ናይ መደበኛ ፊጂ ግዘ + ናይ ክረምቲ ፊጂ ግዘ + + ግዜ ፈረንሳዊት ጊያና @@ -2894,7 +3473,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - ግዜ ፈረንሳዊ ደቡባዊ ግዝኣታትን ኣንታርቲክን + ናይ ደቡባዊን ኣንታርቲክ ግዘ @@ -2902,99 +3481,495 @@ CLDR data files are interpreted according to the LDML specification (http://unic ግዜ ጋላፓጎስ + + + ናይ ጋምቢየር ግዘ + + + + + ናይ ጆርጂያ ግዘ + ናይ መደበኛ ጆርጂያ ግዘ + ናይ ክረምቲ ጆርጂያ ግዘ + + + + + ናይ ጊልበርት ደሴታት ግዘ + + GMT + + + ናይ ምብራቓዊ ግዘ ግሪንላንድ + ናይ መደበኛ ምብራቓዊ ግዘ ግሪንላንድ + ናይ መዓልቲ ምብራቓዊ ግዘ ግሪንላንድ + + + + + ናይ ምዕራብ ግሪንላንድ ግዘ + ናይ መደበኛ ምዕራብ ግሪንላንድ ግዘ + ናይ መዓልቲ ምዕራብ ግሪንላንድ ግዘ + + + + + ናይ መደበኛ ገልፍ ግዘ + + ግዜ ጉያና + + + ናይ ሃዋይ-ኣሌውቲያን ግዘ + ናይ መደበኛ ሃዋይ-ኣሌውቲያን ግዘ + ናይ መዓልቲ ሃዋይ-ኣሌውቲያን ግዘ + + + + + ናይ ሆንግ ኮንግ ግዘ + ናይ መደበኛ ሆንግ ኮንግ ግዘ + ናይ ክረምቲ ሆንግ ኮንግ ግዘ + + + + + ናይ ሆቭድ ግዘ + ናይ መደበኛ ሆቭድ ግዘ + ናይ ክረምቲ ሆቭድ ግዘ + + + + + ናይ መደበኛ ህንድ ግዘ + + ግዜ ህንዳዊ ውቅያኖስ + + + ናይ ኢንዶቻይና ግዘ + + - ግዜ ማእከላይ ኢንዶነዥያ + ናይ ማእከላይ ኢንዶነዥያ ግዘ - ግዜ ምብራቓዊ ኢንዶነዥያ + ናይ ምብራቓዊ ኢንዶነዥያ ግዘ - ግዜ ምዕራባዊ ኢንዶነዥያ + ናይ ምዕራባዊ ኢንዶነዥያ ግዘ - + - ግዜ ማለዥያ + ናይ ኢራን ግዘ + ናይ መደበኛ ኢራን ግዘ + ናይ መዓልቲ ኢራን ግዘ - + - ግዜ ማውሪሸስ - ምዱብ ግዜ ማውሪሸስ - ግዜ ክረምቲ ማውሪሸስ + ናይ ኢርኩትስክ ግዘ + ናይ መደበኛ ኢርኩትስክ ግዘ + ናይ ክረምቲ ኢርኩትስክ ግዘ - + - ግዜ ፈርናንዶ ደ ኖሮንያ - ምዱብ ግዜ ፈርናንዶ ደ ኖሮንያ - ግዜ ክረምቲ ፈርናንዶ ደ ኖሮንያ + ናይ እስራኤል ግዘ + ናይ መደበኛ እስራኤል ግዘ + ናይ መዓልቲ እስራኤል ግዘ - + - ግዜ ፓራጓይ - ምዱብ ግዜ ፓራጓይ - ግዜ ክረምቲ ፓራጓይ + ናይ ጃፓን ግዘ + ናይ መደበኛ ጃፓን ግዘ + ናይ መዓልቲ ጃፓን ግዘ - + - ግዜ ፔሩ - ምዱብ ግዜ ፔሩ - ግዜ ክረምቲ ፔሩ + ናይ ካዛኪስታን ግዘ - + - ግዜ ርዩንየን + ናይ ምብራቅ ካዛኪስታን ግዘ - + - ግዜ ሲሸልስ + ናይ ምዕራብ ካዛኪስታን ግዘ - + - ግዜ ሲንጋፖር + ናይ ኮሪያን ግዘ + ናይ መደበኛ ኮሪያን ግዘ + ናይ መዓልቲ ኮሪያን ግዘ - + - ግዜ ደቡብ ጆርጅያ + ናይ ኮርሳይ ግዘ - + - ግዜ ሱሪናም + ናይ ክራንስኖያርክ ግዘ + ናይ መደበኛ ክራንስኖያርክ ግዘ + ናይ ክረምቲ ክራንስኖያርክ ግዘ - + - ግዜ ኡራጓይ - ምዱብ ግዜ ኡራጓይ - ግዜ ክረምቲ ኡራጓይ + ናይ ክርጅስታን ግዘ + + + + + ናይ ላይን ደሴታት ግዘ + + + + + ናይ ሎርድ ሆው ግዘ + ናይ መድበኛ ሎርድ ሆው ግዘ + ናይ መዓልቲ ሎርድ ሆው ግዘ + + + + + ናይ ሜጋዳን ግዘ + ናይ መደበኛ ሜጋዳን ግዘ + ናይ ክረምቲ ሜጋዳን ግዘ + + + + + ናይ ማሌዢያ ግዘ + + + + + ናይ ሞልዲቭስ ግዘ + + + + + ናይ ማርኩዌሳስ ግዘ + + + + + ናይ ማርሻል ደሴታት ግዘ + + + + + ግዜ ማውሪሸስ + ናይ መደበኛ ግዘ ማውሪሸስ + ግዜ ክረምቲ ማውሪሸስ + + + + + ናይ ማውሶን ግዘ + + + + + ናይ ሜክሲኮ ፓስፊክ ግዘ + ናይ መደበኛ ሜክሲኮ ፓስፊክ ግዘ + ናይ መዓልቲ ሜክሲኮ ፓስፊክ ግዘ + + + + + ናይ ኡላንባታር ግዘ + ናይ መደበኛ ኡላንባታር ግዘ + ናይ ክረምቲ ኡላንባታር ግዘ + + + + + ናይ ሞስኮው ግዘ + ናይ መደበኛ ሞስኮው ግዘ + ናይ ክረምቲ ሞስኮው ግዘ + + + + + ናይ ምያንማር ግዘ + + + + + ናይ ናውሩ ግዘ + + + + + ናይ ኔፓል ግዘ + + + + + ናይ ኒው ካሌዶኒያ ግዘ + ናይ መደበኛ ኒው ካሌዶኒያ ግዘ + ናይ ክረምቲ ኒው ካሌዶኒያ ግዘ + + + + + ናይ ኒው ዚላንድ ግዘ + ናይ መደበኛ ኒው ዚላንድ ግዘ + ናይ መዓልቲ ኒው ዚላንድ ግዘ + + + + + ናይ ኒውፋውንድላንድ ግዘ + ናይ መደበኛ ኒውፋውንድላንድ ግዘ + ናይ መዓልቲ ኒውፋውንድላንድ ግዘ + + + + + ናይ ኒዌ ግዘ + + + + + ናይ ኖርፎልክ ደሴት ግዘ + ናይ መደበኛ ኖርፎልክ ደሴት ግዘ + ናይ መዓልቲ ኖርፎልክ ደሴት ግዘ + + + + + ግዜ ፈርናንዶ ደ ኖሮንያ + ናይ መደበኛ ግዘ ፈርናንዶ ደ ኖሮንያ + ግዜ ክረምቲ ፈርናንዶ ደ ኖሮንያ + + + + + ናይ ኖቮሲሪስክ ግዘ + ናይ መደበኛ ኖቮሲሪስክ ግዘ + ናይ ክረምቲ ኖቮሲሪስክ ግዘ + + + + + ናይ ኦምስክ ግዘ + ናይ መደበኛ ኦምስክ ግዘ + ናይ ክረምቲ ኦምስክ ግዘ + + + + + ናይ ፓኪስታን ግዘ + ናይ መደበኛ ፓኪስታን ግዘ + ናይ ክረምቲ ፓኪስታን ግዘ + + + + + ናይ ፓላው ግዘ + + + + + ናይ ፓፗ ኒው ጊኒ ግዘ + + + + + ግዜ ፓራጓይ + ናይ መደበኛ ግዘ ፓራጓይ + ግዜ ክረምቲ ፓራጓይ + + + + + ግዜ ፔሩ + ናይ መደበኛ ግዘ ፔሩ + ግዜ ክረምቲ ፔሩ + + + + + ናይ ፊሊፒን ግዘ + ናይ መደበኛ ፊሊፒን ግዘ + ናይ ክረምቲ ፊሊፒን ግዘ + + + + + ናይ ፊኒክስ ደሴታት ግዘ + + + + + ናይ ቅዱስ ፒየርን ሚከሎን ግዘ + ናይ መደበኛ ቅዱስ ፒየርን ሚከሎን ግዘ + ናይ መዓልቲ ቅዱስ ፒየርን ሚከሎን ግዘ + + + + + ናይ ፒትቻይርን ግዘ + + + + + ናይ ፖናፔ ግዘ + + + + + ናይ ፕዮንግያንግ ግዘ + + + + + ግዜ ርዩንየን + + + + + ናይ ሮቴራ ግዘ + + + + + ናይ ሳክሃሊን ግዘ + ናይ መደበኛ ሳክሃሊን ግዘ + ናይ ክረምቲ ሳክሃሊን ግዘ + + + + + ናይ ሳሞዋ ግዘ + ናይ መደበኛ ሳሞዋ ግዘ + ናይ መዓልቲ ሳሞዋ ግዘ + + + + + ግዜ ሲሸልስ + + + + + ናይ መደበኛ ሲጋፖር ግዘ + + + + + ናይ ሶሎሞን ደሴታት ግዘ + + + + + ግዜ ደቡብ ጆርጅያ + + + + + ግዜ ሱሪናም + + + + + ናይ ስዮዋ ግዘ + + + + + ናይ ቲሂቲ ግዘ + + + + + ናይ ቴፒ ግዘ + ናይ መደበኛ ቴፒ ግዘ + ናይ መዓልቲ ቴፒ ግዘ + + + + + ናይ ታጃክስታን ግዘ + + + + + ናይ ቶኬላው ግዘ + + + + + ናይ ቶንጋ ግዘ + ናይ መደበኛ ቶንጋ ግዘ + ናይ ክረምቲ ቶንጋ ግዘ + + + + + ናይ ቹክ ግዘ + + + + + ናይ ቱርክሜኒስታን ግዘ + ናይ መደበኛ ቱርክሜኒስታን ግዘ + ናይ ክረምቲ ቱርክሜኒስታን ግዘ + + + + + ናይ ቱቫሉ ግዘ + + + + + ግዜ ኡራጓይ + ናይ መደበኛ ግዘ ኡራጓይ + ግዜ ክረምቲ ኡራጓይ + + + + + ናይ ኡዝቤኪስታን ግዘ + ናይ መደበኛ ኡዝቤኪስታን ግዘ + ናይ ክረምቲ ኡዝቤኪስታን ግዘ + + + + + ናይ ቫኗታው ግዘ + ናይ መደበኛ ቫኗታው ግዘ + ናይ ክረምቲ ቫኗታው ግዘ @@ -3002,6 +3977,54 @@ CLDR data files are interpreted according to the LDML specification (http://unic ግዜ ቬኔዝዌላ + + + ናይ ቭላዲቮስቶክ ግዘ + ናይ መደበኛ ቭላዲቮስቶክ ግዘ + ናይ ክረምቲ ቭላዲቮስቶክ ግዘ + + + + + ናይ ቮልጎግራድ ግዘ + ናይ መደበኛ ቮልጎግራድ ግዘ + ናይ ክረምቲ ቮልጎግራድ ግዘ + + + + + ናይ ቮስቶክ ግዘ + + + + + ናይ ዌክ ደሴት ግዘ + + + + + ናይ ዌልስን ፉቷ ግዘ + + + + + ናይ ያኩትስክ ግዘ + ናይ መደበኛ ያኩትስክ ግዘ + ናይ ክረምቲ ያኩትስክ ግዘ + + + + + ናይ ያክተርኒበርግ ግዘ + ናይ መደበኛ ያክተርኒበርግ ግዘ + ናይ ክረምቲ ያክተርኒበርግ ግዘ + + + + + ናይ ዩኮን ግዘ + + @@ -3070,109 +4093,878 @@ CLDR data files are interpreted according to the LDML specification (http://unic ¤#,##0.00 - ¤ #,##0.00 + ¤ #,##0.00 ¤0 ሽ - ¤ 0 ሽ + ¤ 0 ሽ ¤0 ሽ - ¤ 0 ሽ + ¤ 0 ሽ ¤00 ሽ - ¤ 00 ሽ + ¤ 00 ሽ ¤00 ሽ - ¤ 00 ሽ + ¤ 00 ሽ ¤000 ሽ - ¤ 000 ሽ + ¤ 000 ሽ ¤000 ሽ - ¤ 000 ሽ + ¤ 000 ሽ ¤0 ሚ - ¤ 0 ሚ + ¤ 0 ሚ ¤0 ሚ - ¤ 0 ሚ + ¤ 0 ሚ ¤00 ሚ - ¤ 00 ሚ + ¤ 00 ሚ ¤00 ሚ - ¤ 00 ሚ + ¤ 00 ሚ ¤000 ሚ - ¤ 000 ሚ + ¤ 000 ሚ ¤000 ሚ - ¤ 000 ሚ + ¤ 000 ሚ ¤0 ቢ - ¤ 0 ቢ + ¤ 0 ቢ ¤0 ቢ - ¤ 0 ቢ + ¤ 0 ቢ ¤00 ቢ - ¤ 00 ቢ + ¤ 00 ቢ ¤00 ቢ - ¤ 00 ቢ + ¤ 00 ቢ ¤000 ቢ - ¤ 000 ቢ + ¤ 000 ቢ ¤000 ቢ - ¤ 000 ቢ + ¤ 000 ቢ ¤0 ት - ¤ 0 ት + ¤ 0 ት ¤0 ት - ¤ 0 ት + ¤ 0 ት ¤00 ት - ¤ 00 ት + ¤ 00 ት ¤00 ት - ¤ 00 ት + ¤ 00 ት ¤000 ት - ¤ 000 ት + ¤ 000 ት ¤000 ት - ¤ 000 ት + ¤ 000 ት - {0} {1} - {0} {1} + + ሕቡራት ኢማራት ዓረብ ዲርሃም + ኢማራት ዲርሃም + ኢማራት ዲርሃም + + + ኣፍጋኒስታናዊ ኣፍጋን + ኣፍጋኒስታናዊ ኣፍጋን + ኣፍጋኒስታናዊ ኣፍጋን + + + ኣልባናዊ ሌክ + ኣልባናዊ ሌክ + ኣልባናዊ ሌኬ + + + ኣርመንያዊ ድራም + ኣርመንያዊ ድራም + ኣርመንያዊ ድራም + + + ሆላንድ ኣንቲለያን ጊልደር + ሆላንድ ኣንቲለያን ጊልደር + ሆላንድ ኣንቲለያን ጊልደር + + + ኣንጎላዊ ክዋንዛ + ኣንጎላዊ ክዋንዛ + ኣንጎላዊ ክዋንዛ + + + ኣርጀንቲናዊ ፔሶ + ኣርጀንቲናዊ ፔሶ + ኣርጀንቲናዊ ፔሶ + + + ኣውስትራልያዊ ዶላር + ኣውስትራልያዊ ዶላር + ኣውስትራልያዊ ዶላር + + + ኣሩባን ፍሎሪን + ኣሩባን ፍሎሪን + ኣሩባን ፍሎሪን + + + ኣዘርባጃናዊ ማናት + ኣዘርባጃናዊ ማናት + ኣዘርባጃናዊ ማናት + + + ቦዝንያ-ሄርዘጎቪና ተቐያሪ ምልክት + ቦዝንያ-ሄርዘጎቪና ተቐያሪ ምልክት + ቦዝንያ-ሄርዘጎቪና ተቐያሪ ምልክታት + + + ባርባዲያን ዶላር + ባርባዲያን ዶላር + ባርባዲያን ዶላር + + + ባንግላደሻዊ ታካ + ባንግላደሻዊ ታካ + ባንግላደሻዊ ታካ + + + ቡልጋርያዊ ሌቭ + ቡልጋርያዊ ሌቭ + ቡልጋርያዊ ሌቫ + + + ባሕሬናዊ ዲናር + ባሕሬናዊ ዲናር + ባሕሬናዊ ዲናር + + + ብሩንዳዊ ፍራንክ + ብሩንዳዊ ፍራንክ + ብሩንዳዊ ፍራንክ + + + በርሙዳን ዶላር + በርሙዳን ዶላር + በርሙዳን ዶላር + + + ብሩነይ ዶላር + ብሩነይ ዶላር + ብሩነይ ዶላር + + + ቦሊቭያዊ ቦሊቭያኖ + ቦሊቭያዊ ቦሊቭያኖ + ቦሊቭያዊ ቦሊቭያኖ + የብራዚል ሪል + + ባሃማዊ ዶላር + ባሃማዊ ዶላር + ባሃማዊ ዶላር + + + ቡታናዊ ንጉልትሩም + ቡታናዊ ንጉልትሩም + ቡታናዊ ንጉልትሩም + + + ቦትስዋናዊ ፑላ + ቦትስዋናዊ ፑላ + ቦትስዋናዊ ፑላ + + + ናይ ቤላሩስ ሩብል + ናይ ቤላሩስ ሩብል + ናይ ቤላሩስ ሩብል + + + ቤሊዝ ዶላር + ቤሊዝ ዶላር + ቤሊዝ ዶላር + + + ካናዳ ዶላር + ካናዳ ዶላር + ካናዳ ዶላር + + + ኮንጎ ፍራንክ + ኮንጎ ፍራንክ + ኮንጎ ፍራንክ + + + ስዊስ ፍራንክ + ስዊስ ፍራንክ + ስዊስ ፍራንክ + + + ቺለዊ ፔሶ + ቺለዊ ፔሶ + ቺለዊ ፔሶ + + + ቻይናዊ ዩዋን (ካብ ባሕሪ ወጻኢ) + ቻይናዊ ዩዋን (ካብ ባሕሪ ወጻኢ) + ቻይናዊ ዩዋን (ካብ ባሕሪ ወጻኢ) + ዩዋን ቻይና - CNY + CNY + + + ኮሎምብያዊ ፔሶ + ኮሎምብያዊ ፔሶ + ኮሎምብያዊ ፔሶ + + + ኮስታሪካ ኮሎን + ኮስታሪካ ኮሎን + ኮስታሪካ ኮሎን + + + ኩባውያን ተቐያሪ ፔሶ + ኩባውያን ተቐያሪ ፔሶ + ኩባውያን ተቐያሪ ፔሶ + + + ኩባዊ ፔሶ + ኩባዊ ፔሶ + ኩባዊ ፔሶ + + + ናይ ኬፕ ቨርዲ ኤስኩዶ + ናይ ኬፕ ቨርዲ ኤስኩዶ + ናይ ኬፕ ቨርዲ ኤስኩዶ + + + ናይ ቸክ ኮሩና + ናይ ቸክ ኮሩና + ናይ ቸክ ኮሩና + + + ናይ ጅቡቲ ፍራንክ + ናይ ጅቡቲ ፍራንክ + ናይ ጅቡቲ ፍራንክ + + + ናይ ዴንማርክ ክሮነር + ናይ ዴንማርክ ክሮነር + ናይ ዴንማርክ ክሮነር + + + ዶሚኒካን ፔሶ + ዶሚኒካን ፔሶ + ዶሚኒካን ፔሶ + + + ኣልጀርያዊ ዲናር + ኣልጀርያዊ ዲናር + ኣልጀርያዊ ዲናር + + + ግብጻዊ ፓውንድ + ግብጻዊ ፓውንድ + ግብጻዊ ፓውንድ - ናቕፋ + ኤርትራዊ ናቕፋ + ኤርትራዊ ናቕፋ + ኤርትራዊ ናቕፋ ብር + ናይ ኢትዮጵያ ብር + ናይ ኢትዮጵያ ብር Br ዩሮ + + ዶላር ፊጂ + ዶላር ፊጂ + ዶላር ፊጂ + + + ደሴታት ፎክላንድ ፓውንድ + ደሴታት ፎክላንድ ፓውንድ + ደሴታት ፎክላንድ ፓውንድ + የእንግሊዝ ፓውንድ ስተርሊንግ + + ጆርጅያዊ ላሪ + ጆርጅያዊ ላሪ + ጆርጅያዊ ላሪ + + + ጋናዊ ሴዲ + ጋናዊ ሴዲ + ጋናዊ ሴዲስ + + + ጂብራልተር ፓውንድ + ጂብራልተር ፓውንድ + ጂብራልተር ፓውንድ + + + ጋምብያዊ ዳላሲ + ጋምብያዊ ዳላሲ + ጋምብያዊ ዳላሲስ + + + ናይ ጊኒ ፍራንክ + ናይ ጊኒ ፍራንክ + ናይ ጊኒ ፍራንክ + + + ጓቲማላ ኲትዛል + ጓቲማላ ኲትዛል + ጓቲማላ ኲትዛል + + + ጓያናኛ ዶላር + ጓያናኛ ዶላር + ጓያናኛ ዶላር + + + ሆንግ ኮንግ ዶላር + ሆንግ ኮንግ ዶላር + ሆንግ ኮንግ ዶላር + + + ሆንዱራስ ለምፒራ + ሆንዱራስ ለምፒራ + ሆንዱራስ ለምፒራ + + + ክሮኤሽያዊ ኩና + ክሮኤሽያዊ ኩና + ክሮኤሽያዊ ኩና + + + ናይ ሃይቲ ጎርደ + ናይ ሃይቲ ጎርደ + ናይ ሃይቲ ጎርደ + + + ሃንጋርያዊ ፎርንት + ሃንጋርያዊ ፎርንት + ሃንጋርያዊ ፎርንት + + + ኢንዶነዥያዊ ሩፒያ + ኢንዶነዥያዊ ሩፒያ + ኢንዶነዥያዊ ሩፒያ + + + እስራኤላዊ ሓድሽ ሸቃል + እስራኤላዊ ሓድሽ ሸቃል + እስራኤላዊ ሓድሽ ሸቃል + - የሕንድ ሩፒ + ናይ ሕንድ ሩፒ + ናይ ሕንድ ሩፒ + ናይ ሕንድ ሩፒ + + + ዒራቂ ዲናር + ናይ ዒራቕ ዲናር + ዒራቂ ዲናር + + + ናይ ኢራን ርያል + ናይ ኢራን ርያል + ናይ ኢራን ርያል + + + ናይ ኣይስላንድ ክሮና + ናይ ኣይስላንድ ክሮና + ናይ ኣይስላንድ ክሮና + + + ጃማይካ ዶላር + ጃማይካ ዶላር + ጃማይካ ዶላር + + + ዮርዳኖሳዊ ዲናር + ዮርዳኖሳዊ ዲናር + ዮርዳኖሳዊ ዲናር የን ጃፓን - JPY + JPY + + + ኬንያዊ ሽልንግ + ኬንያዊ ሽልንግ + ኬንያዊ ሽልንግ + + + ኪርጊስታናዊ ሶም + ኪርጊስታናዊ ሶም + ኪርጊስታናዊ ሶም + + + ካምቦድያዊ ሪኤል + ካምቦድያዊ ሪኤል + ካምቦድያዊ ሪኤል + + + ኮሞርያዊ ፍራንክ + ኮሞርያዊ ፍራንክ + ኮሞርያዊ ፍራንክ + + + ሰሜን ኮርያዊ ዎን + ሰሜን ኮርያዊ ዎን + ሰሜን ኮርያዊ ዎን + + + ደቡብ ኮርያዊ ዎን + ደቡብ ኮርያዊ ዎን + ደቡብ ኮርያዊ ዎን + + + ኩዌቲ ዲናር + ኩዌቲ ዲናር + ኩዌቲ ዲናር + + + ደሴታት ካይመን ዶላር + ደሴታት ካይመን ዶላር + ደሴታት ካይመን ዶላር + + + ካዛኪስታናዊ ተንገ + ካዛኪስታናዊ ተንገ + ካዛኪስታናዊ ተንገ + + + ላኦስያዊ ኪፕ + ላኦስያዊ ኪፕ + ላኦስያዊ ኪፕ + + + ሊባኖሳዊ ፓውንድ + ሊባኖሳዊ ፓውንድ + ሊባኖሳዊ ፓውንድ + + + ስሪላንካ ሩፒ + ስሪላንካ ሩፒ + ስሪላንካ ሩፒ + + + ላይበርያዊ ዶላር + ላይበርያዊ ዶላር + ላይበርያዊ ዶላር + + + ሌሶቶ ሎቲ + ሌሶቶ ሎቲ + ሌሶቶ ሎቲ + + + ናይ ሊብያ ዲናር + ናይ ሊብያ ዲናር + ናይ ሊብያ ዲናር + + + ሞሮካዊ ዲርሃም + ሞሮካዊ ዲርሃም + ሞሮካዊ ዲርሃም + + + ሞልዶቫን ሌው + ሞልዶቫን ሌው + ሞልዶቫን ሌይ + + + ማላጋሲ ኣሪያሪ + ማላጋሲ ኣሪያሪ + ማላጋሲ ኣሪያሪ + + + ናይ መቄዶንያ ዲናር + ናይ መቄዶንያ ዲናር + ናይ መቄዶንያ ዲናሪ + + + ሚያንማር ክያት + ሚያንማር ክያት + ሚያንማር ክያት + + + ሞንጎላዊ ቱግሪክ + ሞንጎላዊ ቱግሪክ + ሞንጎላዊ ቱግሪክ + + + ማካኒዝ ፓታካ + ማካኒዝ ፓታካ + ማካኒዝ ፓታካ + + + ሞሪታናዊ ኡጉዋያ + ሞሪታናዊ ኡጉዋያ + ሞሪታናዊ ኡጉዋያ + + + ሞሪሸስ ሩፒ + ሞሪሸስ ሩፒ + ሞሪሸስ ሩፒ + + + ማልዲቭያዊ ሩፍያ + ማልዲቭያዊ ሩፍያ + ማልዲቭያዊ ሩፍያ + + + ማላዊያዊ ኳቻ + ማላዊያዊ ኳቻ + ማላዊያዊ ኳቻ + + + ሜክሲካዊ ፔሶ + ሜክሲካዊ ፔሶ + ሜክሲካዊ ፔሶ + + + ሜክሲካዊ ብሩር ፔሶ (1861–1992) + ሜክሲካዊ ብሩር ፔሶ (1861–1992) + ሜክሲካዊ ብሩር ፔሶ (1861–1992) + + + ኣሃዱ ወፍሪ ሜክሲኮ + ኣሃዱ ወፍሪ ሜክሲኮ + ኣሃዱ ወፍሪ ሜክሲኮ + + + ማሌዥያዊ ሪንግጊት + ማሌዥያዊ ሪንግጊት + ማሌዥያዊ ሪንግጊት + + + ሞዛምቢካዊ ሜቲካል + ሞዛምቢካዊ ሜቲካል + ሞዛምቢካዊ ሜቲካል + + + ናሚብያ ዶላር + ናሚብያ ዶላር + ናሚብያ ዶላር + + + ናይጀርያዊ ናይራ + ናይጀርያዊ ናይራ + ናይጀርያዊ ናይራስ + + + ኒካራጓ ካርዶባ (1988–1991) + ኒካራጓ ካርዶባ (1988–1991) + ኒካራጓ ካርዶባ (1988–1991) + + + ኒካራጓ ኮርዶባ + ኒካራጓ ኮርዶባ + ኒካራጓ ኮርዶባ + + + ናይ ኖርወይ ክሮነር + ናይ ኖርወይ ክሮነር + ናይ ኖርወይ ክሮነር + + + ኔፓላዊ ሩፒ + ኔፓላዊ ሩፒ + ኔፓላዊ ሩፒ + + + ኒውዚላንዳዊ ዶላር + ኒውዚላንዳዊ ዶላር + ኒውዚላንዳዊ ዶላር + + + ኦማን ርያል + ኦማን ርያል + ኦማን ርያል + + + ፓናማያን ባልቦኣ + ፓናማያን ባልቦኣ + ፓናማያን ባልቦኣ + + + ፔሩቪያን ሶል + ፔሩቪያን ሶል + ፔሩቪያን ሶል + + + ፓፑዋ ኒው ጊኒ ኪና + ፓፑዋ ኒው ጊኒ ኪና + ፓፑዋ ኒው ጊኒ ኪና + + + ፊሊፒንስ ፔሶ + ፊሊፒንስ ፔሶ + ፊሊፒንስ ፔሶ + + + ፓኪስታናዊ ሩፒ + ፓኪስታናዊ ሩፒ + ፓኪስታናዊ ሩፒ + + + ፖላንዳዊ ዝሎቲ + ፖላንዳዊ ዝሎቲ + ፖላንዳዊ ዝሎቲ + + + ፓራጓያዊ ጓራኒ + ፓራጓያዊ ጓራኒ + ፓራጓያዊ ጓራኒ + + + ቀጠሪ ሪያል + ቀጠሪ ሪያል + ቀጠሪ ሪያል + + + ሮማንያዊ ሌው + ሮማንያዊ ሌው + ሮማንያዊ ሌይ + + + ናይ ሰርብያን ዲናር + ናይ ሰርብያን ዲናር + ናይ ሰርብያን ዲናር የራሻ ሩብል + + ፍራንክ ሩዋንዳ + ፍራንክ ሩዋንዳ + ፍራንክ ሩዋንዳ + + + ስዑዲ ዓረብ ሪያል + ስዑዲ ዓረብ ሪያል + ስዑዲ ዓረብ ሪያል + + + ደሴታት ሰሎሞን ዶላር + ደሴታት ሰሎሞን ዶላር + ደሴታት ሰሎሞን ዶላር + + + ሲሸሎ ሩፒ + ሲሸሎ ሩፒ + ሲሸሎ ሩፒ + + + ሱዳናዊ ፓውንድ + ሱዳናዊ ፓውንድ + ሱዳናዊ ፓውንድ + + + ሽወደናዊ ክሮና + ሽወደናዊ ክሮና + ሽወደናዊ ክሮና + + + ሲንጋፖር ዶላር + ሲንጋፖር ዶላር + ሲንጋፖር ዶላር + + + ቅድስቲ ሄለና ፓውንድ + ቅድስቲ ሄለና ፓውንድ + ቅድስቲ ሄለና ፓውንድ + + + ሴራሊዮን ልዮን + ሴራሊዮን ልዮን + ሴራሊዮን ልዮንስ + + + ሴራሊዮን ልዮን (1964—2022) + ሴራሊዮን ልዮን (1964—2022) + ሴራሊዮን ልዮንስ (1964—2022) + + + ሶማልያዊ ሽልንግ + ሶማልያዊ ሽልንግ + ሶማልያዊ ሽልንግ + + + ሱሪናማዊ ዶላር + ሱሪናማዊ ዶላር + ሱሪናማዊ ዶላር + + + ደቡብ ሱዳን ፓውንድ + ደቡብ ሱዳን ፓውንድ + ደቡብ ሱዳን ፓውንድ + + + ሳኦ ቶሜን ፕሪንሲፐ ዶብራ + ሳኦ ቶሜን ፕሪንሲፐ ዶብራ + ሳኦ ቶሜን ፕሪንሲፐ ዶብራ + + + ሳልቫዶራን ኮሎን + ሳልቫዶራን ኮሎን + ሳልቫዶራን ኮሎን + + + ሶርያዊ ፓውንድ + ሶርያዊ ፓውንድ + ሶርያዊ ፓውንድ + + + ስዋዚ ሊላንገኒ + ስዋዚ ሊላንገኒ + ስዋዚ ሊላንገኒ + + + ታይላንዳዊ ባህ + ታይላንዳዊ ባህ + ታይላንዳዊ ባህ + + + ታጂኪስታናዊ ሶሞኒ + ታጂኪስታናዊ ሶሞኒ + ታጂኪስታናዊ ሶሞኒ + + + ቱርክመኒስታናዊ ማናት + ቱርክመኒስታናዊ ማናት + ቱርክመኒስታናዊ ማናት + + + ቱኒዝያዊ ዲናር + ቱኒዝያዊ ዲናር + ቱኒዝያዊ ዲናር + + + ቶንጋዊ ፓ`ኣንጋ + ቶንጋዊ ፓ`ኣንጋ + ቶንጋዊ ፓ`ኣንጋ + + + ቱርካዊ ሊራ + ቱርካዊ ሊራ + ቱርካዊ ሊራ + + + ትሪኒዳድን ቶባጎ ዶላር + ትሪኒዳድን ቶባጎ ዶላር + ትሪኒዳድን ቶባጎ ዶላር + + + ኒው ታይዋን ዶላር + ኒው ታይዋን ዶላር + ኒው ታይዋን ዶላር + + + ታንዛንያዊ ሽልንግ + ታንዛንያዊ ሽልንግ + ታንዛንያዊ ሽልንግ + + + ዩክሬናዊት ሪቭንያ + ዩክሬናዊት ሪቭንያ + ዩክሬናዊት ሪቭንያ + + + ኡጋንዳዊ ሽልንግ + ኡጋንዳዊ ሽልንግ + ኡጋንዳዊ ሽልንግ + ዶላር ኣመሪካ + + ዶላር ኣመሪካ (ዝቕጽል መዓልቲ) + ዶላር ኣመሪካ (ዝቕጽል መዓልቲ) + ዶላር ኣመሪካ (ዝቕጽል መዓልቲ) + + + ዶላር ኣመሪካ (ተመሳሳሊ መዓልቲ) + ዶላር ኣመሪካ (ተመሳሳሊ መዓልቲ) + ዶላር ኣመሪካ (ተመሳሳሊ መዓልቲ) + + + ኡራጋያዊ ፔሶ + ኡራጋያዊ ፔሶ + ኡራጋያዊ ፔሶ + + + ኡዝቤኪስታናዊ ሶም + ኡዝቤኪስታናዊ ሶም + ኡዝቤኪስታናዊ ሶም + + + ቬንዙዌላዊ ቦሊቫር + ቬንዙዌላዊ ቦሊቫር + ቬንዙዌላዊ ቦሊቫር + + + ቬትናማዊ ዶንግ + ቬትናማዊ ዶንግ + ቬትናማዊ ዶንግ + + + ቫኑኣቱ ቫቱ + ቫኑኣቱ ቫቱ + ቫኑኣቱ ቫቱ + + + ሳሞኣዊ ታላ + ሳሞኣዊ ታላ + ሳሞኣዊ ታላ + + + ማእከላይ ኣፍሪቃ ሲኤፍኤ ፍራንክ + ማእከላይ ኣፍሪቃ ሲኤፍኤ ፍራንክ + ማእከላይ ኣፍሪቃ ሲኤፍኤ ፍራንክ + ብሩር ወርቂ + + ምብራቕ ካሪብያን ዶላር + ምብራቕ ካሪብያን ዶላር + ምብራቕ ካሪብያን ዶላር + + + ምዕራብ ኣፍሪቃ CFA ፍራንክ + ምዕራብ ኣፍሪቃ ሲኤፍኤ ፍራንክ + ምዕራብ ኣፍሪቃ CFA ፍራንክ + + + ሲኤፍፒ ፍራንክ + ሲኤፍፒ ፍራንክ + ሲኤፍፒ ፍራንክ + ዘይተፈልጠ ባጤራ (ዘይተፈልጠ ባጤራ) (ዘይተፈልጠ ባጤራ) + + የመኒ ርያል + የመኒ ርያል + የመኒ ርያል + + + ናይ ደቡብ ኣፍሪቃ ራንድ + ናይ ደቡብ ኣፍሪቃ ራንድ + ናይ ደቡብ ኣፍሪቃ ራንድ + + + ዛምብያዊ ኳቻ + ዛምብያዊ ኳቻ + ዛምብያዊ ኳቻ + ⩾{0} @@ -3180,47 +4972,2923 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} መዓልቲ {0} መዓልታት + መበል {0}ይ መሰል ውሰድ። + + ዴሲ{0} + + + ሴንቲ{0} + + + ሚሊ{0} + + + ማይክሮ{0} + + + ናኖ{0} + + + ፒኮ{0} + + + ፌምቶ{0} + + + አቶ{0} + + + ዜፕቶ{0} + + + ዮክቶ{0} + + + ሮንቶ{0} + + + ክዌክቶ{0} + + + ዴካ{0} + + + ሄክቶ{0} + + + ኪሎ{0} + + + ሜጋ{0} + + + ጊጋ{0} + + + ቴራ{0} + + + ፔታ{0} + + + ኤግዛ{0} + + + ዜታ{0} + + + ዮታ{0} + + + ሮና{0} + + + ክዌታ{0} + + + ኪቢ{0} + + + ሜቢ{0} + + + ጊቢ{0} + + + ቴቢ{0} + + + ፔቢ{0} + + + ኤግዚቢ{0} + + + ዜቢ{0} + + + ዮቢ{0} + + + {0} አብ {1} + - ትርብዒት {0} - ትርብዒት {0} + ካሬ {0} + ካሬ {0} ኪዩቢክ {0} ኪዩቢክ {0} + + {0}-{1} + + + ሓይሊ ስሕበት + {0} ሓይሊ ስሕበት + {0} ሓይሊ ስሕበት + + + ሜትሮ ኣብ ሰከንድ ኣብ ካሬ + {0} ሜትሮ ኣብ ሰከንድ ኣብ ካሬ + {0} ሜትሮ ኣብ ሰከንድ ኣብ ካሬ + + + ሬቮልዩሽን + {0} ሬቮልዩሽን + {0} ሬቮልዩሽን + + + ራድያን + {0} ራድያን + {0} ራድያን + + + ዲግሪ + {0} ዲግሪ + {0} ዲግሪ + + + ኣርክ ደቓይቕ + {0} ኣርክ ደቒቓ + {0} ኣርክ ደቓይቕ + + + ኣርክ ሰከንድ + {0} ኣርክ ሰከንድ + {0} ኣርክ ሰከንድ + + + ኪሜ² + {0} ኪሜ² + {0} ኪሜ² + {0}/ኪሜ² + + + ሄክታር + {0} ሄክታር + {0} ሄክታር + + + ሜተር² + {0} ሜተር² + {0} ሜትር² + {0} ብሜተር² + + + ካሬ ሴንቲሜትር + {0} ካሬ ሴንቲሜትር + {0} ካሬ ሴንቲሜትር + {0} ብካሬ ሴንቲሜትር + + + ካሬ ማይል + {0} ካሬ ማይል + {0} ካሬ ማይል + {0} ብካሬ ማይል + + + ካሬ ያርድ + {0} ካሬ ያርድ + {0} ካሬ ያርድ + + + ካሬ ጫማ + {0} ካሬ ጫማ + {0} ካሬ ጫማ + + + ካሬ ኢንች + {0} ካሬ ኢንች + {0} ካሬ ኢንች + {0} ብካሬ ኢንች + + + ዱናም + {0} ዱናም + {0} ዱናም + + + ካራት + {0} ካራት + {0} ካራት + + + ሚሊግራም ኣብ ሓደ ዲሲሊተርትሮ + {0} ሚሊግራም ኣብ ሓደ ዲሲሊተርትሮ + {0} ሚሊግራም ኣብ ሓደ ዲሲሊተርትሮ + + + ሚሊሞል ኣብ ሊትሮ + {0} ሚሊሞል ኣብ ሊትሮ + {0} ሚሊሞል ኣብ ሊትሮ + + + ኣቕሑ + {0} ኣቕሓ + {0} ኣቕሑ + + + ክፍልታት ኣብ ሚልዮን + {0} ክፍልታት ኣብ ሚልዮን + {0} ክፍልታት ኣብ ሚልዮን + + + ሚእታዊ + {0} ሚእታዊ + {0} ሚእታዊ + + + አብ ሚሌ + {0} አብ ሚሌ + {0} አብ ሚሌ + + + አብ ሚርያድ + {0} አብ ሚርያድ + {0} አብ ሚርያድ + + + ሞል + {0} ሞል + {0} ሞል + + + ሊትሮ ኣብ ኪሎሜትር + {0} ሊትሮ አብ ኪሎሜትር + {0} ሊትሮ አብ ኪሎሜትር + + + ሊትሮ አብ 100 ኪሎሜትር + {0} ሊትሮ አብ 100 ኪሎሜትር + {0} ሊትሮ አብ 100 ኪሎሜትር + + + ማይል ኣብ ሓደ ጋሎን + {0} ማይልስ ኣብ ሓደ ጋሎን + {0} ማይልስ ኣብ ሓደ ጋሎን + + + ማይል ኣብ ሓደ ኢምፕ. ጋሎን + {0} ማይል ኣብ ሓደ ኢምፕ. ጋሎን + {0} ማይል ኣብ ሓደ ኢምፕ. ጋሎን + + + ፔታባይት + {0} ፔታባይት + {0} ፔታባይት + + + ቴራባይት + {0} ቴራባይት + {0} ቴራባይት + + + ቴራቢት + {0} ቴራቢት + {0} ቴራቢት + + + ጊጋባይት + {0} ጊጋባይት + {0} ጊጋባይት + + + ጊጋቢት + {0} ጊጋቢት + {0} ጊጋቢት + + + ሜጋባይት + {0} ሜጋባይት + {0} ሜጋባይት + + + ሜጋቢት + {0} ሜጋቢት + {0} ሜጋቢት + + + ኪሎባይት + {0} ኪሎባይት + {0} ኪሎባይት + + + ኪሎቢት + {0} ኪሎቢት + {0} ኪሎቢት + + + ባይት + {0} ባይት + {0} ባይት + + + ቢት + {0} ቢት + {0} ቢት + ዘመናት - - ዓሰርተታት ዓመታት - {0} ዓሰርተ ዓመት - {0} ዓሰርተታት ዓመታት + + ዓሰርተታት ዓመታት + {0} ዓሰርተ ዓመት + {0} ዓሰርተታት ዓመታት + + + ዓመታት + {0} ዓመት + {0} ዓመታት + {0}/ዓመታት + + + ርብዒ + {0}/ርብዒ + {0} ርብዒ + {0}/ርብዒ + + + ኣዋርሕ + {0}/ወርሒ + {0}/ኣዋርሕ + {0}/ወርሒ + + + ሰሙናት + {0} ሰሙን + {0} ሰሙናት + {0}/ሰሙን + + + መዓልታት + {0} መዓልቲ + {0} መዓልታት + {0}/መዓልቲ + + + ሰዓታት + {0} ሰዓት + {0} ሰዓታት + {0}/ሰዓት + + + ደቒቓታት + {0} ደቒቓ + {0} ደቒቓታት + {0}/ደቒቓ + + + ሴኮንድ + {0} ሴኮንድ + {0} ሴኮንድ + {0}/ሴኮንድ + + + ሚሊሴኮንድ + {0} ሚሊሴኮንድ + {0} ሚሊሴኮንድ + + + ማይክሮ ሰከንድ + {0} ማይክሮ ሰከንድ + {0} ማይክሮ ሰከንድ + + + አምፒር + {0} አምፒር + {0} አምፒር + + + ሚሊ አምፒር + {0} ሚሊ አምፒር + {0} ሚሊ አምፒር + + + ኦህም + {0} ኦህም + {0} ኦህም + + + ቮልት + {0} ቮልት + {0} ቮልት + + + ኪሎካሎሪ + {0} ኪሎካሎሪ + {0} ኪሎካሎሪ + + + ካሎሪ + {0} ካሎሪ + {0} ካሎሪ + + + ኪሎጁል + {0} ኪሎጁል + {0} ኪሎጁል + + + ጁል + {0} ጁል + {0} ጁል + + + ኪሎዋት-ሰዓት + {0} ኪሎዋት ሰዓት + {0} ኪሎዋት-ሰዓት + + + ኤሌክትሮኖቮልት + {0} ኤሌክትሮኖቮልት + {0} ኤሌክትሮኖቮልት + + + ናይ እንግሊዝ ናይ ሙቐት መለክዒ + {0} ናይ እንግሊዝ ናይ ሙቐት መለክዒ + {0} ናይ እንግሊዝ ናይ ሙቐት መለክዒ + + + ናይ አመሪካ ናይ ሙቐት መለክዒ + {0} ናይ አመሪካ ናይ ሙቐት መለክዒ + {0} ናይ አመሪካ ናይ ሙቐት መለክዒ + + + ፓውንድ ሓይሊ + {0} ፓውንድ ሓይሊ + {0} ፓውንድ ሓይሊ + + + ኒውተን + {0} ኒውተን + {0}ኒውተን + + + ኪሎዋት-ሰዓት ኣብ 100 ኪሎሜትር + {0} ኪሎዋት-ሰዓት ኣብ 100 ኪሎሜትር + {0} ኪሎዋት-ሰዓት ኣብ 100 ኪሎሜትር + + + ጊጋኸርትዝ + {0} ጊጋኸርትዝ + {0} ጊጋኸርትዝ + + + ሜጋኸርትዝ + {0} ሜጋኸርትዝ + {0} ሜጋኸርትዝ + + + ኪሎኸርትዝ + {0} ኪሎኸርትዝ + {0} ኪሎኸርትዝ + + + ኸርትዝ + {0} ኸርትዝ + {0} ኸርትዝ + + + ታይፕግራፊክ ኢኤምኤስ + {0} ኢኤም + {0} ኢኤምኤስ + + + ፒክሰላት + {0} ፒክስል + {0} ፒክሰላት + + + ሜጋፒክሰላታ + {0} ሜጋፒክሰል + {0} ሜጋፒክሰላት + + + ፒክሰል ኣብ ሴንቲ ሜተር + {0} ፒክሰል ኣብ ሴንቲ ሜተር + {0} ፒክሰል ኣብ ሴንቲ ሜተር + + + ፒክሰል ኣብ ኢንች + {0} ፒክሰል ኣብ ኢንች + {0} ፒክሰል ኣብ ኢንች + + + ፒፒሴሜ + {0} ፒፒሴሜ + {0} ፒፒሴሜ + + + ነጥብታት ኣብ ኢንች + {0} ነጥብ ኣብ ኢንች + {0} ነጥብታት ኣብ ኢንች + + + ነጥብታት + {0} ነጥብ + {0} ነጥብታት + + + ራድየስ መሬት + {0} ራድየስ መሬት + {0} ራድየስ መሬት + + + ኪሎ ሜትር + {0} ኪሎ ሜትር + {0} ኪሎ ሜትር + {0}/ኪሎ ሜትር + + + ሜተር + {0}/ሜትር + {0}/ሜትር + {0}/ ሜተር + + + ዴሲሜተር + {0} ዴሲሜተር + {0} ዴሲሜተር + + + ሴንቲሜተር + {0} ሴንቲሜተር + {0} ሴንቲሜተር + {0}/ሴንቲሜተር + + + ሚሊሜተር + {0} ሚሊሜተር + {0} ሚሊሜተር + + + ማይክሮሜተር + {0} ማይክሮሜተር + {0} ማይክሮሜተር + + + ናኖሜተር + {0} ናኖሜተር + {0} ናኖሜተር + + + ፒኮሜተር + {0} ፒኮሜተር + {0} ፒኮሜተር + + + ማይላት + {0} ማይል + {0} ማይላት + + + ያርድስ + {0} ያርድ + {0} ያርድስ + + + ፊት + {0} ፉት + {0} ፊት + {0}/ፊት + + + ኢንች + {0} ኢንች + {0} ኢንችስ + {0}/ ኢንች + + + ኣስትሮኖሚያዊ ኣሃዱታት + {0} ኣስትሮኖሚያዊ ኣሃድ + {0} ኣስትሮኖሚያዊ ኣሃዱታት + + + ናይ ባሕሪ ማይላት + {0} ናይ ባሕሪ ማይል + {0} ናይ ባሕሪ ማይላት + + + ናይ ጸሓይ ራዲየስ + {0} ናይ ጸሓይ ራዲየስ + {0} ናይ ጸሓይ ራዲየስ + + + ለክስ + {0} ለክስ + {0} ለክስ + + + ካንዴላ + {0} ካንዴላ + {0} ካንዴላ + + + ሉመን + {0} ሉመን + {0} ሉመን + + + ጸሓያዊ ብርሃናት + {0} ጸሓያዊ ብርሃን + {0} ጸሓያዊ ብርሃናት + + + ሜትሪክ ቶን + {0} ሜትሪክ ቶን + {0} ሜትሪክ ቶን + + + ኪሎግራም + {0} ኪሎግራም + {0} ኪሎግራም + {0} አብ ኪሎግራም + + + ግራም + {0} ግራም + {0} ግራም + {0} አብ ግራም + + + ሚሊ ግራም + {0} ሚሊ ግራም + {0} ሚሊ ግራም + + + ማይክሮ ግራም + {0} ማይክሮ ግራም + {0} ማይክሮ ግራም + + + ፓውንድ + {0} ፓውንድ + {0} ፓውንድ + {0} አብ ፓውንድ + + + ኣውንስ + {0} ኣውንስ + {0} oኣውንስ + {0} አብ ኣውንስ + + + ትሮይ ኣውንስ + {0} ትሮይ ኣውንስ + {0} ትሮይ ኣውንስ + + + ካራት + {0} ካራት + {0} ካራት + + + ዳልቶን + {0} ዳልቶን + {0} ዳልቶን + + + ናይ መሬት ክብደት + {0} ናይ መሬት ክብደት + {0} ናይ መሬት ክብደት + + + ናይ ጸሓይ ክብደት + {0} ናይ ጸሓይ ክብደት + {0} ናይ ጸሓይ ክብደት + + + ግሬን + {0} ግሬን + {0} ግሬን + + + ጊጋዋት + {0} ጊጋዋት + {0} ጊጋዋት + + + ሜጋዋት + {0} ሜጋዋት + {0} ሜጋዋት + + + ኪሎዋት + {0} ኪሎዋት + {0} ኪሎዋት + + + ዋት + {0} ዋት + {0} ዋት + + + ሚሊዋት + {0} ሚሊዋት + {0} ሚሊዋት + + + ሓይሊ ፈረስ + {0} ሓይሊ ፈረስ + {0} ሓይሊ ፈረስ + + + ሚሊሜተር ሜርኩሪ + {0} ሚሊሜተር ሜርኩሪ + {0} ሚሊሜተር ሜርኩሪ + + + ፓውንድ-ሓይሊ ኣብ ሓደ ካሬ ኢንች + {0} ፓውንድ-ሓይሊ ኣብ ሓደ ካሬ ኢንች + {0} ፓውንድ-ሓይሊ ኣብ ሓደ ካሬ ኢንች + + + ኢንች ሜርኩሪ + {0} ኢንች ሜርኩሪ + {0} ኢንች ሜርኩሪ + + + ባር + {0} ባር + {0} ባር + + + ሚሊባር + {0} ሚሊባር + {0} ሚሊባር + + + አትሞስፌር + {0} አትሞስፌር + {0} አትሞስፌር + + + ፓስካል + {0} ፓስካል + {0} ፓስካል + + + ሄክቶ ፓስካል + {0} ሄክቶ ፓስካል + {0} ሄክቶ ፓስካል + + + ኪሎፓስካል + {0} ኪሎፓስካል + {0} ኪሎፓስካል + + + ሜጋፓስካል + {0} ሜጋፓስካል + {0} ሜጋፓስካል + + + ኪሎሜተር ኣብ ሰዓት + {0} ኪሎሜተር ኣብ ሰዓት + {0} ኪሎሜተር ኣብ ሰዓት + + + ሜትሮ ኣብ ሰከንድ + {0} ሜትሮ ኣብ ሰከንድ + {0} ሜትሮ ኣብ ሰከንድ + + + ማይል ኣብ ሰዓት + {0} ማይል ኣብ ሰዓት + {0} ማይል ኣብ ሰዓት + + + እስር + {0} እስር + {0} እስር + + + ዲግሪ ሙቐት + {0} ዲግሪ ሙቐት + {0} ዲግሪ ሙቐት + + + ዲግሪ ሴንቲግሬድ + {0} ዲግሪ ሴንቲግሬድ + {0} ዲግሪ ሴንቲግሬድ + + + ዲግሪ ፋረንሃይት + {0} ዲግሪ ፋረንሃይት + {0} ዲግሪ ፋረንሃይት + + + ኬልቪን + {0} ኬልቪን + {0} ኬልቪን + + + ፓውንድ ሓይሊ ጫማ + {0} ፓውንድ ሓይሊ ጫማ + {0} ፓውንድ ሓይሊ ጫማ + + + ኒውተን ሜትር + {0} ኒውተን ሜትር + {0} ኒውተን ሜትር + + + ኪሎ ሜትር ኪዩብ + {0} ኪሎ ሜትር ኪዩብ + {0} ኪሎ ሜትር ኪዩብ + + + ሜትር ኪዩብ + {0} ሜትር ኪዩብ + {0} ሜትር ኪዩብ + {0}/ ብሜትር ኪዩብ + + + ሴንቲሜትር ክዩብ + {0} ሴንቲሜትር ክዩብ + {0} ሴንቲሜትር ክዩብ + {0} ብሴንቲሜትር ክዩብ + + + ማይል ክዩብ + {0} ማይል ክዩብ + {0} ማይል ክዩብ + + + ክዩብ ያርድ + {0} ክዩብ ያርድ + {0} ክዩብ ያርድ + + + ክዩብ ጫማ + {0} ክዩብ ጫማ + {0} ክዩብ ጫማ + + + ኢንች ክዩብ + {0} ኢንች ክዩብ + {0} ኢንች ክዩብ + + + ሜጋ ሊትሮ + {0} ሜጋ ሊትሮ + {0} ሜጋ ሊትሮ + + + ሄክቶ ሊትሮ + {0} ሄክቶ ሊትሮ + {0} ሄክቶ ሊትሮ + + + ሊትሮ + {0} ሊትሮ + {0} ሊትሮ + {0} ብሊትሮ + + + ዴሲ ሊትሮ + {0} ዴሲ ሊትሮ + {0} ዴሲ ሊትሮ + + + ሴንቲ ሊትሮ + {0} ሴንቲ ሊትሮ + {0} ሴንቲ ሊትሮ + + + ሚሊ ሊትሮ + {0} ሚሊ ሊትሮ + {0} ሚሊ ሊትሮ + + + ሜትሪክ ፓይንት + {0} ሜትሪክ ፓይንት + {0} ሜትሪክ ፓይንት + + + acre-ጫማ + {0} acre ጫማ + {0} acre ጫማ + + + ዳውላ + {0} ዳውላ + {0} ዳውላ + + + ጋሎን + {0} ጋሎን + {0} ጋሎን + {0} ብጋሎን + + + ኢምፕ. ጋሎን + {0} ኢምፕ. ጋሎን + {0} ኢምፕ. ጋሎን + {0} ብኢምፕ. ጋሎን + + + ርብዒ ጋሎን + {0} ርብዒ ጋሎን + {0} ርብዒ ጋሎን + + + ፒንት + {0} ፒንት + {0} ፒንት + + + ኩባያ + {0} ኩባያ + {0} ኩባያ + + + ፈሳሲ ኦውንስ + {0} ፈሳሲ ኦውንስ + {0} ፈሳሲ ኦውንስ + + + ኢምፕ. ፈሳሲ ኦውንስ + {0} ኢምፕ. ፈሳሲ ኦውንስ + {0} ኢምፕ. ፈሳሲ ኦውንስ + + + ማንካ + {0} ማንካ + {0} ማንካ + + + ናይ ሻሂ ማንካ + {0} ናይ ሻሂ ማንካ + {0} ናይ ሻሂ ማንካ + + + በርሚል + {0} በርሚል + {0} በርሚል + + + ናይ ኬክ ማንካ + {0} ናይ ኬክ ማንካ + {0} ናይ ኬክ ማንካ + + + ኢምፕ. ናይ ኬክ ማንካ + {0} ኢምፕ ናይ ኬክ ማንካ + {0} ኢምፕ. ናይ ኬክ ማንካ + + + ጠብታ + {0} ጠብታ + {0} ጠብታ + + + ድራም + {0} ድራም + {0} ድራም + + + ጂገር + {0} ጂገር + {0} ጂገር + + + ቁንጣር + {0} ቁንጣር + {0} ቁንጣር + + + ኢምፒ. ርብዒ ጋሎን + {0} ኢምፒ. ርብዒ ጋሎን + {0} ኢምፒ. ርብዒ ጋሎን + + + ብርሃን + {0} ብርሃን + {0} ብርሃን + + + ክፍልታት ኣብ ሓደ ቢልዮን + {0} ክፍልታት ኣብ ሓደ ቢልዮን + {0} ክፍልታት ኣብ ሓደ ቢልዮን + + + ለይቲ + {0} ለይቲ + {0} ለይቲ + {0}/ ለይቲ + + + ካርዲናል ኣንፈት + {0} ምብራቕ + {0} ሰሜን + {0} ደቡብ + {0} ምዕራብ + + + + + ዴሲ{0} + + + ሴንቲ{0} + + + ሚሊ{0} + + + ናኖ{0} + + + ፒኮ{0} + + + ፌምቶ{0} + + + አቶ{0} + + + ዜፕቶ{0} + + + ዮክቶ{0} + + + ሮንቶ{0} + + + ክዌክቶ{0} + + + ዴካ{0} + + + ሄክቶ{0} + + + ኪ{0} + + + ሜጋ{0} + + + ጊጋ{0} + + + ቴራ{0} + + + ፔታ{0} + + + ኤግዛ{0} + + + ዜታ{0} + + + ዮታ{0} + + + ሮና{0} + + + ክዌታ{0} + + + ኪቢ{0} + + + ሜቢ{0} + + + ጊቢ{0} + + + ቴቢ{0} + + + ፔቢ{0} + + + ኤግዚቢ{0} + + + ዜቢ{0} + + + ዮቢ{0} + + + ሓይሊ ስሕበት + {0} ስሕበት + {0} ስሕበት + + + ሜትሮ/ሰከንድ² + {0} ሜ/ሰ² + {0} ሜ/ሰ² + + + ሬቮልዩሽን + {0} ሬቮልዩሽን + {0} ሬቮልዩሽን + + + ራድያን + {0} ራድያን + {0} ራድያን + + + ዲግሪ + {0} ዲግሪ + {0} ዲግሪ + + + ኣርክ ደቓይቕ + {0} ኣርክ ደቒቓ + {0} ኣርክ ደቓይቕ + + + ኣርክ ሰከንድ + {0} ኣርክ ሰከንድ + {0} ኣርክ ሰከንድ + + + ኪሜ² + {0} ኪሜ² + {0} ኪሜ² + {0}/ኪሜ² + + + ሄክታር + {0} ሄክ + {0} ሄክ + + + ሜተር² + {0} ሜ² + {0} ሜ² + {0}/ሜ² + + + ሴሜ² + {0} ሴሜ² + {0} ሴሜ² + {0}/ሴሜ² + + + ካሬ ማይል + {0} ካሬ ማ + {0} ካሬ ማ + {0}/ማ² + + + ያርድ² + {0} ያ² + {0} ያ² + + + ካሬ ጫማ + {0} ካሬ ጫማ + {0} ካሬ ጫማ + + + ኢንች² + {0} ኢንች² + {0} ኢንች² + {0}/ኢንች² + + + ዱናም + {0} ዱናም + {0} ዱናም + + + ካራት + {0} ካራት + {0} ካራት + + + ሚግ/ዲሲሊተርትሮ + {0} ሚግ/ዲሲሊተርትሮ + {0} ሚግ/ዲሲሊተርትሮ + + + ሚሊሞል/ሊትሮ + {0} ሚሊሞል/ሊትሮ + {0} ሚሊሞል/ሊትሮ + + + ኣቕሓ + {0} ኣቕሓ + {0} ኣቕሑ + + + ክፍልታት/ሚልዮን + {0} ክፍልታት ኣብ ሚልዮን + {0} ክፍልታት ኣብ ሚልዮን + + + ሚእታዊ + + + አብ ሚሌ + + + አብ ሚርያድ + + + ሞል + {0} ሞል + {0} ሞል + + + ሊትሮ/ኪሎሜትር + {0} ሊትሮ/ኪሜ + {0} ሊትሮ/ኪሜ + + + ሊትሮ/100 ኪሜ + {0} ሊትሮ/100 ኪሜ + {0} ሊትሮ/100 ኪሜ + + + ማይልስ/ሓደ ጋሎን + {0} ማይልስ ኣብ ሓደ ጋሎን + {0} ማይልስ ኣብ ሓደ ጋሎን + + + ማይል/ሓደ ኢምፕ. ጋሎን + {0} ማይል ኣብ ሓደ ኢምፕ. ጋሎን + {0} ማይል ኣብ ሓደ ኢምፕ. ጋሎን + + + ፔታባይት + {0} ፔታባይት + {0} ፔታባይት + + + ቴራባይት + {0} ቴራባይት + {0} ቴራባይት + + + ቴራቢት + {0} ቴራቢት + {0} ቴራቢት + + + ጊጋባይት + {0} ጊጋባይት + {0} ጊጋባይት + + + ጊጋቢት + {0} ጊጋቢት + {0} ጊጋቢት + + + ሜጋባይት + {0} ሜጋባይት + {0} ሜጋባይት + + + ሜጋቢት + {0} ሜጋቢት + {0} ሜጋቢት + + + ኪሎባይት + {0} ኪሎባይት + {0} ኪሎባይት + + + ኪሎቢት + {0} ኪሎቢት + {0} ኪሎቢት + + + ባይት + {0} ባይት + {0} ባይት + + + ቢት + {0} ቢት + {0} ቢት + + + ዘመን + {0} ዘመን + {0} ዘመናት + + + ዓሰርተ ዓመት + {0} ዓሰ.ዓመ. + {0} ዓሰ.ዓመ. + + + ዓመታት + {0} ዓመት + {0} ዓመታት + {0}/ዓመት + + + ርብዒ + {0} ርብዒ + {0} ርብዒ + {0}/ርብዒ + + + ኣዋርሕ + {0}/ኣዋርሕ + {0}/ኣዋርሕ + {0}/ወርሒ + + + ሰሙናት + {0} ሰሙን + {0} ሰሙ + {0}/ሰሙን + + + መዓልታት + {0} መዓልቲ + {0} መዓልታት + {0}/መ + + + ሰዓታት + {0} ሰዓ + {0} ሰዓ + {0}/ሰ + + + ደቒቓታት + {0} ደቒቓ + {0} ደቒቓ + {0}/ደቒቓ + + + ሴኮንድ + {0} ሴኮንድ + {0} ሴኮንድ + {0}/ሴ + + + ሚሊሴኮንድ + {0} ሚሴ + {0} ሚሴ + + + μሰከንድ + + + አምፒር + {0} አምፒር + {0} አምፒር + + + ሚሊ አምፒር + {0} ሚሊ አምፒር + {0} ሚሊ አምፒር + + + ኦህም + + + ቮልት + {0} ቮልት + {0} ቮልት + + + ኪካሎሪ + {0} ኪካሎሪ + {0} ኪካሎሪ + + + ካሎሪ + {0} ካሎሪ + {0} ካሎሪ + + + ኪሎጁል + {0} ኪጁ + {0} ኪጁ + + + ጁል + {0} ጁል + {0} ጁል + + + ኪሎዋት-ሰዓት + {0} ኪሎዋት ሰዓት + {0} ኪሎዋት ሰዓት + + + ኤሌክትሮኖቮልት + {0} ኤሌክትሮኖቮልት + {0} eV + + + ናይ አመሪካ ናይ ሙቐት መለክዒ + {0} ናይ አመሪካ ናይ ሙቐት መለክዒ + {0} ናይ አመሪካ ናይ ሙቐት መለክዒ + + + ፓውንድ ሓይሊ + {0} ፓውንድ ሓይሊ + {0} ፓውንድ ሓይሊ + + + ኒውተን + {0} ኒውተን + {0} ኒውተን + + + ኪሎዋት-ሰዓት/100 ኪሎሜትር + {0} ኪሎዋት-ሰዓት/100 ኪሎሜትር + {0} ኪሎዋት-ሰዓት/100 ኪሎሜትር + + + ጊጋኸርትዝ + {0} ጊጋኸርትዝ + {0} ጊጋኸርትዝ + + + ሜጋኸርትዝ + {0} ሜጋኸርትዝ + {0} ሜጋኸርትዝ + + + ኪሎኸርትዝ + {0} ኪሎኸርትዝ + {0} ኪሎኸርትዝ + + + ኸርትዝ + {0} ኸርትዝ + {0} ኸርትዝ + + + ኢኤም + {0} ኢኤም + {0} ኢኤም + + + ፒክሰላት + {0} ፒክ + {0} ፒክ + + + ሜጋፒክሰላታ + {0} ሜጋ + {0} ሜጋ + + + ፒፒሴሜ + {0} ፒፒሴሜ + {0} ፒፒሴሜ + + + ፒፒኢ + {0} ፒፒኢ + {0} ፒፒኢ + + + ፒፒሴሜ + {0} ፒፒሴሜ + {0} ፒፒሴሜ + + + ፒፒኢ + {0} ፒፒኢ + {0} ፒፒኢ + + + ነጥብታት + {0} ነጥብ + {0} ነጥብታት + + + ራድየስ መሬት + + + ኪሜ + {0} ኪሜ + {0} ኪሜ + {0}/ኪሜ + + + + {0} ሜ + {0} ሜ + {0}/ሜ + + + ዴሜ + {0} ዴሜ + {0} ዴሜ + + + ሴሜ + {0} ሴሜ + {0} ሴሜ + {0}/ሴሜ + + + ሚሜ + {0} ሚሜ + {0} ሚሜ + + + ማይክሮሜተር + {0} ማሜ + {0} ማሜ + + + ናሜ + {0} ናሜ + {0} ናሜ + + + ፒሜ + {0} ፒሜ + {0} ፒሜ + + + ማይላት + {0} ማ + {0} ማ + + + ያርድስ + {0} ያ + {0} ያ + + + ፊት + {0} ፊት + {0} ፊት + {0}/ፊት + + + ኢንችስ + {0} ኢን + {0} ኢን + {0}/ኢን + + + ናይ ጸሓይ ራዲየስ + + + ለክስ + {0} ለክስ + {0} ለክስ + + + ካንዴላ + {0} ካንዴላ + {0} ካንዴላ + + + ሉመን + {0} ሉመን + {0} ሉመን + + + ጸሓያዊ ብርሃናት + + + ቶን + {0} ቶን + {0} ቶን + + + ኪግ + {0} ኪግ + {0} ኪግ + {0}/ኪግ + + + ግራም + {0} ግ + {0} ግ + {0}/ግራም + + + ሚግ + {0} ሚግ + {0} ሚግ + + + μግ + {0} μግ + {0} μግ + + + ፓውንድ + {0} ፓውንድ + {0} ፓውንድ + {0}/ፓውንድ + + + ኣውንስ + {0} ኣውንስ + {0} ኣውንስ + {0}/ኣውንስ + + + ትሮይ ኣውንስ + {0} ትሮይ ኣውንስ + {0} ትሮይ ኣውንስ + + + ካራት + {0} ካራት + {0} ካራት + + + ዳልቶን + {0} ዳልቶን + {0} ዳልቶን + + + ናይ መሬት ክብደት + + + ናይ ጸሓይ ክብደት + + + ግሬን + {0} ግሬን + {0} ግሬን + + + ጊጋዋት + {0} ጊጋዋት + {0} ጊጋዋት + + + ሜጋዋት + {0} ሜጋዋት + {0} ሜጋዋት + + + ኪሎዋት + {0} ኪሎዋት + {0} ኪሎዋት + + + ዋት + {0} ዋት + {0} ዋት + + + ሚሊዋት + {0} ሚሊዋት + {0} ሚሊዋት + + + ሓይሊ ፈረስ + {0} ሓይሊ ፈረስ + {0} ሓይሊ ፈረስ + + + ሚሜ ሜርኩሪ + {0} ሚሜ ሜርኩሪ + {0} ሚሜ ሜርኩሪ + + + ኢንች ሜርኩሪ + {0} ኢንች ሜርኩሪ + {0} ኢንች ሜርኩሪ + + + ባር + {0} ባር + {0} ባር + + + ሚሊባር + {0} ሚሊባር + {0} ሚሊባር + + + አትሞስፌር + {0} አትሞስፌር + {0} አትሞስፌር + + + ፓስካል + {0} ፓስካል + {0} ፓስካል + + + ሄክቶ ፓስካል + {0} ሄክቶ ፓስካል + {0} ሄክቶ ፓስካል + + + ኪሎፓስካል + {0} ኪሎፓስካል + {0} ኪሎፓስካል + + + ሜጋፓስካል + {0} ሜጋፓስካል + {0} ሜጋፓስካል + + + ኪሜ/ሰዓት + {0} ኪሜ/ሰዓት + {0} ኪሜ/ሰዓት + + + ሜትሮ/ሰከንድ + {0} ሜ/ሰ + {0} ሜ/ሰ + + + ማይል/ሰዓት + {0} ማይል ኣብ ሰዓት + {0} ማይል ኣብ ሰዓት + + + እስር + {0} እስር + {0} እስር + + + ዲግሪ ሙቐት + + + ዲግሪ ሴንቲግሬድ + {0}°ሴ + {0}°ሴ + + + ዲግሪ ፋረንሃይት + {0}°ፋ + {0}°ፋ + + + + {0} ኬ + {0} ኬ + + + ፓውንድ ሓይሊ ጫማ + {0} ፓውንድ ሓይሊ ጫማ + {0} ፓውንድ ሓይሊ ጫማ + + + ኒውተን ሜትር + {0} ኒውተን ሜትር + {0} ኒውተን ሜትር + + + ኪሜ³ + {0} ኪሜ³ + {0} ኪሜ³ + + + ሜ³ + {0} ሜ³ + {0} ሜ³ + {0}/ሜ³ + + + ሴሚ³ + {0} ሴሜ³ + {0} ሴሜ³ + {0}/ሴሜ³ + + + ማ³ + {0} ማ³ + {0} ማ³ + + + ያርድ³ + {0} ያ³ + {0} ያ³ + + + ጫማ³ + {0} ጫማ³ + {0} ጫማ³ + + + ኢንች³ + {0} ኢንች³ + {0} ኢንች³ + + + ሜሊ + {0} ሜሊ + {0} ሜሊ - - ዓመታት + + ሄሊ + {0} ሄሊ + {0} ሄሊ - - - - ዘመን - {0} ዘመን - {0} ዘመናት + + ሊትሮ + {0} ሊ + {0} ሊ + {0}/ሊ - - ዓሰርተ ዓመት - {0} ዓሰ.ዓመ. - {0} ዓሰ.ዓመ. + + ዴሊ + {0} ዴሊ + {0} ዴሊ + + + ሴሊ + {0} ሴሊ + {0} ሴሊ + + + ሚሊ + {0} ሚሊ + {0} ሚሊ + + + ሜፓት + {0} ሜፓ + {0} ሜፓ + + + acre ጫማ + {0} ac ጫማ + {0} ac ጫማ + + + ዳውላ + {0} ዳውላ + {0} ዳውላ + + + ጋሎን + {0} ጋሎን + {0} ጋሎን + {0}/ብጋሎን + + + ኢምፕ. ጋሎን + {0} ኢምፕ. ጋሎን + {0} ኢምፕ. ጋሎን + {0}/ኢምፕጋሎን + + + ርብዒ ጋሎን + {0} ርብዒ ጋሎን + {0} ርብዒ ጋሎን + + + ፒንት + {0} ፒንት + {0} ፒንት + + + ኩባያ + {0} ኩባያ + {0} ኩባያ + + + ፈሳሲ ኦውንስ + {0} ፈሳሲ ኦውንስ + {0} ፈሳሲ ኦውንስ + + + ኢምፕ. ፈሳሲ ኦውንስ + {0} ኢምፕ. ፈሳሲ ኦውንስ + {0} ኢምፕ. ፈሳሲ ኦውንስ + + + ማንካ + {0} ማንካ + {0} ማንካ + + + ናይ ሻሂ ማንካ + {0} ናይ ሻሂ ማንካ + {0} ናይ ሻሂ ማንካ + + + በርሚል + {0} በርሚል + {0} በርሚል + + + ናይ ኬክ ማንካ + {0} ናይ ኬክ ማንካ + {0} ናይ ኬክ ማንካ + + ኢምፕ. ናይ ኬክ ማንካ + {0} ኢምፕ. ናይ ኬክ ማንካ + {0} ኢምፕ. ናይ ኬክ ማንካ + + + ጠብታ + {0} ጠብታ + {0} ጠብታ + + + ድራም + {0} ድራም + {0} ድራም + + + ጂገር + {0} ጂገር + {0} ጂገር + + + ቁንጣር + {0} ቁንጣር + {0} ቁንጣር + + + ኢምፒ. ርብዒ ጋሎን + {0} ኢምፒ. ርብዒ ጋሎን + {0} ኢምፒ. ርብዒ ጋሎን + + + ብርሃን + {0} ብርሃን + {0} ብርሃን + + + ክፍልታት/ሓደ ቢልዮን + {0} ክፍልታት ኣብ ሓደ ቢልዮን + {0} ክፍልታት ኣብ ሓደ ቢልዮን + + + ለይቲ + {0} ለይቲ + {0} ለይቲ + {0}/ ለይቲ + + + ኣንፈት + {0} ምብራቕ + {0} ሰሜን + {0} ደቡብ + {0} ምዕራብ + + + ዴሲ{0} + + + ሴንቲ{0} + + + ሚሊ{0} + + + ናኖ{0} + + + ፒኮ{0} + + + ፌምቶ{0} + + + አቶ{0} + + + ዜፕቶ{0} + + + ዮክቶ{0} + + + ሮንቶ{0} + + + ክዌክቶ{0} + + + ዴካ{0} + + + ሄክቶ{0} + + + ኪ{0} + + + ሜጋ{0} + + + ጊጋ{0} + + + ቴራ{0} + + + ፔታ{0} + + + ኤግዛ{0} + + + ዜታ{0} + + + ዮታ{0} + + + ሮና{0} + + + ክዌታ{0} + + + ኪቢ{0} + + + ሜቢ{0} + + + ጊቢ{0} + + + ቴቢ{0} + + + ፔቢ{0} + + + ኤግዚቢ{0} + + + ዜቢ{0} + + + ዮቢ{0} + + + ሓይሊ ስሕበት + {0}ስሕበት + {0}ስሕበት + + + ሜ/ሰ² + {0}ሜ/ሰ² + {0}ሜ/ሰ² + + + ሬቮልዩሽን + {0}ሬቮልዩሽን + {0}ሬቮልዩሽን + + + ራድያን + {0}ራድያን + {0}ራድያን + + + ዲግሪ + + + ኣርክ ደቒቓ + {0} ኣርክ ደቒቓ + {0} ኣርክ ደቓይቕ + + + ኣርክ ሰከንድ + + + ኪሜ² + {0}ኪሜ² + {0}ኪሜ² + {0}/ኪሜ² + + + ሄክታር + {0}ሄክ + {0}ሄክ + + + ሜተር² + {0}ሜ² + {0}ሜ² + {0}/ሜ² + + + ሴሜ² + {0}ሴሜ² + {0}ሴሜ² + {0}/ሴሜ² + + + ማ² + {0}ማ² + {0}ማ² + {0}/ማ² + + + ያ² + {0}ያ² + {0}ያ² + + + ጫማ² + {0}ጫማ² + {0}ጫማ² + + + ኢንች² + {0}ኢንች² + {0}ኢንች² + {0}/ኢንች² + + + ዱናም + {0}ዱናም + {0}ዱናም + + + ካራት + {0}ካራት + {0}ካራት + + + ሚግ/ዲሲሊተርትሮ + {0}ሚግ/ዲሲሊተርትሮ + {0}ሚግ/ዲሲሊተርትሮ + + + ሚሊሞል/ሊትሮ + {0}ሚሊሞል/ሊትሮ + {0}ሚሊሞል/ሊትሮ + + + ኣቕሓ + {0}ኣቕሓ + {0}ኣቕሑ + + + ክፍልታት ኣብ ሚልዮን + {0}ክፍልታት ኣብ ሚልዮን + {0}ክፍልታት ኣብ ሚልዮን + + + ሞል + {0}ሞል + {0}ሞል + + + ሊትሮ/ኪሜ + {0}ሊትሮ/ኪሜ + {0}ሊትሮ/ኪሜ + + + ሊትሮ/100 ኪሜ + {0}ሊትሮ/100 ኪሜ + {0}ሊትሮ/100 ኪሜ + + + ማይልስ ኣብ ሓደ ጋሎን + {0}ማይልስ ኣብ ሓደ ጋሎን + {0}ማይልስ ኣብ ሓደ ጋሎን + + + ናይ እንግሊዝ ማይል ኣብ ሓደ ጋሎን + {0}ናይ እንግሊዝ ማይል/ሓደ ጋሎን + {0}ናይ እንግሊዝ ማይል/ሓደ ጋሎን + + + ፔታባይት + {0}ፔታባይት + {0}ፔታባይት + + + ቴራባይት + {0}ቴራባይት + {0}ቴራባይት + + + ቴራቢት + {0}ቴራቢት + {0}ቴራቢት + + + ጊጋባይት + {0}ጊጋባይት + {0}ጊጋባይት + + + ጊጋቢት + {0}ጊጋቢት + {0}ጊጋቢት + + + ሜጋባይት + {0}ሜጋባይት + {0}ሜጋባይት + + + ሜጋቢት + {0}ሜጋቢት + {0}ሜጋቢት + + + ኪሎባይት + {0}ኪሎባይት + {0}ኪሎባይት + + + ኪሎቢት + {0}ኪሎቢት + {0}ኪሎቢት + + + ባይት + {0}ባይት + {0}ባይት + + + ቢት + {0}ቢት + {0}ቢት + {0} ዓ.ዓ. {0} ዓ.ዓ. + + ዓመታት + {0} ዓመት + {0}ዓመት + {0}/ዓመት + + + ርብዒ + {0} ርብዒ + {0} ርብዒ + {0}/ርብዒ + + + ወርሒ + {0}/ወ + {0}/ወ + {0}/ወርሒ + + + ሰሙ + {0} ሰ + {0} ሰ + {0}/ሰሙን + + + መዓልታት + {0} መ + {0} መ + {0}/መ + + + ሰዓት + {0} ሰ + {0} ሰ + {0}/ሰ + + + ደቒቓ + {0} ደ + {0} ደ + {0}/ደቒቓ + + + ሴኮንድ + {0} ሴ + {0} ሴ + {0}/ሴ + + + ሚሴኮንድ + {0} ሚሴ + {0} ሚሴ + + + μሰከንድ + + + አምፒር + {0}አምፒር + {0}አምፒር + + + ሚሊ አምፒር + {0}ሚሊ አምፒር + {0}ሚሊ አምፒር + + + ኦህም + + + ቮልት + {0}ቮልት + {0}ቮልት + + + ኪካሎሪ + {0}ኪካሎሪ + {0}ኪካሎሪ + + + ካሎሪ + {0}ካሎሪ + {0}ካሎሪ + + + ኪጁ + {0}ኪጁ + {0}ኪጁ + + + ጁል + {0}ጁል + {0}ጁል + + + ኪሎዋት ሰዓት + {0}ኪሎዋት ሰዓት + {0}ኪሎዋት ሰዓት + + + ኢቪ + {0}ኤሌክትሮኖቮልት + {0}ኤሌክትሮኖቮልት + + + ናይ አመሪካ ናይ ሙቐት መለክዒ + {0}ናይ አመሪካ ናይ ሙቐት መለክዒ + {0}ናይ አመሪካ ናይ ሙቐት መለክዒ + + + ፓውንድ ሓይሊ + {0}ፓውንድ ሓይሊ + {0}ፓውንድ ሓይሊ + + + ኒውተን + {0}ኒውተን + {0}ኒውተን + + + ኪሎዋት-ሰዓት/100 ኪሎሜትር + {0}ኪሎዋት-ሰዓት/100 ኪሎሜትር + {0}ኪሎዋት-ሰዓት/100 ኪሎሜትር + + + ጊጋኸርትዝ + {0}ጊጋኸርትዝ + {0}ጊጋኸርትዝ + + + ሜጋኸርትዝ + {0}ሜጋኸርትዝ + {0}ሜጋኸርትዝ + + + ኪሎኸርትዝ + {0}ኪሎኸርትዝ + {0}ኪሎኸርትዝ + + + ኸርትዝ + {0}ኸርትዝ + {0}ኸርትዝ + + + ኢኤም + {0} ኢኤም + {0} ኢኤም + + + ፒክ + {0} ፒክ + {0} ፒክ + + + ሜፕ + {0} ሜጋ + {0} ሜጋ + + + ፒፒሴሜ + {0} ፒፒሴሜ + {0} ፒፒሴሜ + + + ፒፒኢ + {0} ፒፒኢ + {0} ፒፒኢ + + + ፒፒሴሜ + {0} ፒፒሴሜ + {0} ፒፒሴሜ + + + ፒፒኢ + {0} ፒፒኢ + {0} ፒፒኢ + + + ነጥብ + {0} ነጥብ + {0} ነጥብ + + + ራድየስ መሬት + + + ኪሜ + {0} ኪሜ + {0} ኪሜ + {0}/ኪሜ + + + + {0}ሜ + {0}ሜ + {0}/ሜ + + + ዴሜ + {0}ዴሜ + {0}ዴሜ + + + ሴሜ + {0}ሴሜ + {0}ሴሜ + {0}/ሴሜ + + + ሚሜ + {0}ሚሜ + {0}ሚሜ + + + ማሜ + {0}ማሜ + {0}ማሜ + + + ናሜ + {0} ናሜ + {0} ናሜ + + + ፒሜ + {0}ፒሜ + {0}ፒሜ + + + + {0}ማ + {0}ማ + + + + {0}ያ + {0}ያ + + + ፊት + {0}′ + {0}′ + {0}/ፊት + + + ኢን + {0}″ + {0}″ + {0}/ኢን + + + {0}nmi + {0}nmi + + + {0}R☉ + {0}R☉ + + + ለክስ + {0}ለክስ + {0}ለክስ + + + ካንዴላ + {0}ካንዴላ + {0}ካንዴላ + + + ሉመን + {0}ሉመን + {0}ሉመን + + + ቶን + {0}ቶን + {0}ቶን + + + ኪግ + {0}ኪግ + {0}ኪግ + {0}/ኪግ + + + ግራም + {0}ግ + {0}ግ + {0}/ግራም + + + ሚግ + {0}ሚግ + {0}ሚግ + + + μግ + {0}μግ + {0}μግ + + + ፓውንድ + {0} ፓውንድ + {0} ፓውንድ + {0}/ፓውንድ + + + ኣውንስ + {0}ኣውንስ + {0}ኣውንስ + {0}/ኣውንስ + + + ትሮይ ኣውንስ + {0}ትሮይ ኣውንስ + {0}ትሮይ ኣውንስ + + + ካራት + {0}ካራት + {0}ካራት + + + ዳልቶን + {0}ዳልቶን + {0}ዳልቶን + + + ናይ መሬት ክብደት + + + ናይ ጸሓይ ክብደት + + + ግሬን + {0}ግሬን + {0}ግሬን + + + ጊጋዋት + {0}ጊጋዋት + {0}ጊጋዋት + + + ሜጋዋት + {0}ሜጋዋት + {0}ሜጋዋት + + + ኪሎዋት + {0}ኪሎዋት + {0}ኪሎዋት + + + ዋት + {0}ዋት + {0}ዋት + + + ሚሊዋት + {0}ሚሊዋት + {0}ሚሊዋት + + + ሓይሊ ፈረስ + {0}ሓይሊ ፈረስ + {0}ሓይሊ ፈረስ + + + ሚሜ ሜርኩሪ + {0}ሚሜ ሜርኩሪ + {0}ሚሜ ሜርኩሪ + + + ″ ሜርኩሪ + {0}″ ሜርኩሪ + {0}″ ሜርኩሪ + + + ባር + {0}ባር + {0}ባር + + + ሚሊባር + {0}ሚሊባር + {0}ሚሊባር + + + አትሞስፌር + {0}አትሞስፌር + {0}አትሞስፌር + + + ፓስካል + {0}ፓስካል + {0}ፓስካል + + + ሄክቶ ፓስካል + {0}ሄክቶ ፓስካል + {0}ሄክቶ ፓስካል + + + ኪሎፓስካል + {0}ኪሎፓስካል + {0}ኪሎፓስካል + + + ሜጋፓስካል + {0}ሜጋፓስካል + {0}ሜጋፓስካል + + + ኪሜ/ሰዓት + {0}ኪሜ/ሰዓት + {0}ኪሜ/ሰዓት + + + ሜ/ሰ + {0}ሜ/ሰ + {0}ሜ/ሰ + + + ማይል/ሰዓት + {0}ማይል ኣብ ሰዓት + {0}ማይል ኣብ ሰዓት + + + እስር + {0}እስር + {0}እስር + + + ዲግሪ ሙቐት + + + ዲግሪ ሴንቲግሬድ + {0}°ሴ + {0}°ሴ + + + ዲግሪ ፋረንሃይት + {0}° + {0}° + + + + {0}ኬ + {0}ኬ + + + ፓውንድ ሓይሊ ጫማ + {0}ፓውንድ ሓይሊ ጫማ + {0}ፓውንድ ሓይሊ ጫማ + + + ኒውተን ሜትር + {0}ኒውተን ሜትር + {0}ኒውተን ሜትር + + + ኪሜ³ + {0}ኪሜ³ + {0}ኪሜ³ + + + ሜ³ + {0}ሜ³ + {0}ሜ³ + {0}/ሜ³ + + + ሴሜ³ + {0}ሴሜ³ + {0}ሴሜ³ + {0}/ሴሜ³ + + + ማ³ + {0}ማ³ + {0}ማ³ + + + ያ³ + {0}ያ³ + {0}ያ³ + + + ጫማ³ + {0}ጫማ³ + {0}ጫማ³ + + + ኢንች³ + {0}ኢንች³ + {0}ኢንች³ + + + ሜሊ + {0}ሜሊ + {0}ሜሊ + + + ሄሊ + {0}ሄሊ + {0}ሄሊ + + + ሊትሮ + {0}ሊ + {0}ሊ + {0}/ሊ + + + ዴሊ + {0}ዴሊ + {0}ዴሊ + + + ሴሊ + {0}ሴሊ + {0}ሴሊ + + + ሚሊ + {0}ሚሊ + {0}ሚሊ + + + ሜፓ + {0}ሜፓ + {0}ሜፓ + + + acre ጫማ + {0}ac ጫማ + {0}ac ጫማ + + + ዳውላ + {0}ዳውላ + {0}ዳውላ + + + ጋሎን + {0}ጋሎን + {0}ጋሎን + {0}/ጋሎን + + + ኢምፕ. ጋሎን + {0}ኢምፕጋሎን + {0}ኢምፕጋሎን + {0}/ኢምፕጋሎን + + + ርብዒ ጋሎን + {0}ርብዒ ጋሎን + {0}ርብዒ ጋሎን + + + ፒንት + {0}ፒንት + {0}ፒንት + + + ኩባያ + {0}ኩባያ + {0}ኩባያ + + + ፈሳሲ ኦውንስ + {0}ፈሳሲ ኦውንስ + {0}ፈሳሲ ኦውንስ + + + ኢምፕ ፈሳሲ ኦውንስ + {0}ኢምፕ ፈሳሲ ኦውንስ + {0}ኢምፕ ፈሳሲ ኦውንስ + + + ማንካ + {0}ማንካ + {0}ማንካ + + + ናይ ሻሂ ማንካ + {0}ናይ ሻሂ ማንካ + {0}ናይ ሻሂ ማንካ + + + በርሚል + {0}በርሚል + {0}በርሚል + + + ናይ ኬክ ማንካ + {0}ናይ ኬክ ማንካ + {0}ናይ ኬክ ማንካ + + + ኢምፕ ናይ ኬክ ማንካ + {0}ኢምፕ ናይ ኬክ ማንካ + {0}ኢምፕ ናይ ኬክ ማንካ + + + ጠብታ + {0}ጠብታ + {0}ጠብታ + + + ድራም + {0}ድራም + {0}ድራም + + + ጂገር + {0}ጂገር + {0}ጂገር + + + ቁንጣር + {0}ቁንጣር + {0}ቁንጣር + + + ኢምፒ ርብዒ ጋሎን + {0}ኢምፒ. ርብዒ ጋሎን + {0}ኢምፒ. ርብዒ ጋሎን + + + ብርሃን + {0}ብርሃን + {0}ብርሃን + + + ክፍልታት ኣብ ሓደ ቢልዮን + {0}ክፍልታት ኣብ ሓደ ቢልዮን + {0}ክፍልታት ኣብ ሓደ ቢልዮን + + + ለይቲ + {0} ለይቲ + {0} ለይቲ + {0}/ ለይቲ + + + ኣንፈት + {0}ምብራቕ + {0}ሰሜን + {0}ደቡብ + {0}ምዕራብ + @@ -3236,8 +7904,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} ወይ {1} {0} ወይ {1} + + {0}፣ {1} + - {0}ን {1}ን + {0}፣ {1} {0} {1} @@ -3247,50 +7918,121 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}፣ {1} + {0}፣ {1} እወ:እ + ኣይፋልን:ኣ {0} — ኩሉ + {0}፦ {1} + {0} — ምትእስሳር + {0} — ዝትዓጸወ + {0} — ዝተናውሐ + {0} ናብ ጸጋም ዝዘረ + {0} ናብ የማን ዝዘረ {0} — ታሪኻዊ {0} — ዝተፈላለዩ {0} — ካልኦት + ጽሑፍ — {0} + {0} ወቕዒ + {0} ወቕዒ + ንኡስ ጽሑፍ {0} + ልዕለ-ጽሑፍ {0} ንጥፈታት + ናይ አፍሪቃ ጽሑፍ + ናይ አመሪካ ጽሑፍ እንስሳታት እንስሳታትን ተፈጥሮን ፍላጻ ኣካላት + ናይ ሳጹን ስእሊ + ብሬል ህንጻ - ኣሃዛት + ነጥቢ ወይ ኮኾብ + ተስማማዒ ጃሞ + ምልክት ባጤራ + ዳሽ ወይ መታሓሓዚ + ኣሃዝ + ዲንግባት + ምልክት ጥንቖላ + ንታሕቲ ዘመልክት ፍላጻ + ንታሕቲ ዘመልክት ንላዕሊ ዘመልክት ፍላጻ + ምብራቕ ኤስያዊ ጽሑፍ ኢሞጂታት + ኤውሮጳዊ ጽሑፍ ደቂ ኣንስትዮ ባንዴራ ባንዴራታት መግብን መስተን ቅርጽታት - ልብታት + ቅርጺን ባዶ ቦታን + ምሉእ ስፍሓት ዘለዎ ፍልልይ + ጂኦሜትሪካዊ ቅርጺ + ፍርቂ ስፍሓት ዘለዎ ፍልልይ + ናይ ሃን ገጸ ባህሪ + ናይ ሃን ራዲካል + ሃንጃ + ሃንዚ (ዝተቓለለ) + ሃንዚ (ባህላዊ) + ልቢ + ታሪኻዊ ጽሑፍ + ስነ-ሓሳባዊ መግለጺ + ጃፓናዊ ካና + ካንቡን + ካንጂ + ዝምልከት ቁልፊ + ንጸጋም ዘመልክት ፍላጻ + ንጸጋም ዘመልክት ይየማን ዘመልክት ፍላጻ + ፊደል ዝመስል ምልክት + ውሱን-ኣጠቓቕማ ደቂ ተባዕትዮ + ናይ ሒሳብ ምልክት + ናይ ማእከላይ ምብራቕ ጽሑፍ ዝተፈላለዩ - ለወጥቲ + ዘመናዊ ጽሑፍ + መቐየሪ + ሙዚቃዊ ምልክት ተፈጥሮ + ቦታ ዘይብሉ ቁጽርታት - ነገራት - ካልኦት - ሰባት + አቕሓ + ካልእ + ዝተጻመደ + ሰብ + ድምጻዊ ፊደላት + ምስላዊ ስእሊ ቦታታት ኣትክልቲ + ስርዓተ ነጥቢ + ንየማን ዘመልክት ፍላጻ + ምልክት ወይ ምልክት + ንኣሽተይ ፍልልያት + ፍሽኽታ + ፍሽኽታ ወይ ሰብ + ናይ ደቡብ ኤስያዊ ጽሑፍ + ናይ ደቡባዊ ምብራቕ ኤስያ ጽሑፍ + ክፍተት ምሃብ ስፖርት ምልክታት - ጉዕዞታት + ቴክኒካዊ ምልክት + ናይ ድምጺ ምልክት + ምጉዓዝ ጉዕዞታትን መዓርፎታትን + ንላዕሊ ዘመልክት ፍላጻ + ዝፈላለይ + ድምጻዊ ጃሞ ኩነታት ኣየር + ምዕራብ ኤስያዊ ጽሑፍ + ባዶ ቦታ - ቄናን + ሰያፍ ጽሑፍ + ብርሃናዊ ስፍሓት ዝንባለ ስፍሓት ክብደት @@ -3299,19 +8041,51 @@ CLDR data files are interpreted according to the LDML specification (http://unic ጽሑፍ ኣርእስቲ መርኣዪ + ፖስተር + ንድሕሪት ሸንኮለል ኢሉ + ቀጥ ዝበለ + ሸንኮለል ኢሉ + ተወሳኺ ሸንኮለል ዝበለ + ኣዝዮም ዝተሓላለኹ + ተወሳኺ ዝተሓጽረ + ተሓጺሩ + ፍርቂ ዝተሓጽረ ልሙድ + ፍርቂ ዝሰፍሐ + ተሰፊሑ ሰፊሕ + ተወሳኺ ዝተሰፍሐ + ብጣዕሚ ዝተሰፍሐ ቀጢን + አዝዩ ፎኪስ ፈኲስ + ፍርቂ ፎኪስ መጽሓፍ ስሩዕ ማእከላይ + ፍርቂ ዓጺቕ ዓጺቕ + አዝዩ ዝዓጺቕ ጸሊም + አዝዩ ጸሊም + ቀጥ ዝበሉ ክፋላት + ርእሰ-ማላዊ ርሕቀት + ኣማራጺ ምትእስሳር + ዳያጎናል ክፋላት + ቁጽሪ ሽፋን + ናይ ቀደም ቅዲ ኣሃዛት + ስርዓታዊ ምልክታት + ተመጣጣኒ ቁጽርታት + ንኣሽቱ ርእሰ ከተማታት + ሰንጠረዥ ቁጽርታት + ዜሮ ቆሪጹ und ti - ko si ta te vi yue zh + informal + + {title} {given} {given2} {surname} {generation}፣ {credentials} + {given-informal} {surname} @@ -3321,11 +8095,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic {given-informal} - - {surname-monogram-allCaps} + + {given-informal-monogram-allCaps}{surname-monogram-allCaps} - {given} {given2-initial} {surname} {generation}, {credentials} + {given} {given2-initial} {surname} {generation}፣ {credentials} {given-informal} {surname} @@ -3336,6 +8110,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic {given-informal} + + {given-informal-monogram-allCaps} + + + {given-initial} {given2-initial} {surname} + {given-informal} {surname-initial} @@ -3345,14 +8125,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic {given-informal} - - {given-monogram-allCaps}{given2-monogram-allCaps}{surname-monogram-allCaps} - - {given-monogram-allCaps}{given2-monogram-allCaps}{surname-monogram-allCaps} + {given-informal-monogram-allCaps} - {title} {surname} {given} {given2} {generation}, {credentials} + {surname} {title} {given} {given2} {generation}፣ {credentials} {surname} {given-informal} @@ -3367,7 +8144,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {surname-monogram-allCaps}{given-informal-monogram-allCaps} - {surname} {given} {given2-initial} {generation}, {credentials} + {surname} {given} {given2-initial} {generation}፣ {credentials} {surname} {given-informal} @@ -3385,11 +8162,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic {given-informal-monogram-allCaps} - {surname} {surname2} {title} {given} {given2} {credentials} + {surname} {given-initial} {given2-initial} {surname} {given-initial} + + {title} {surname} + {given-informal} @@ -3400,10 +8180,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic {given-informal-monogram-allCaps} - {surname-core}, {given} {given2} {surname-prefix} + {surname-core}፣ {given} {given2} {surname-prefix} - {surname} {surname2}, {title} {given} {given2} {credentials} + {surname}, {given-informal} {surname-core}, {given} {given2-initial} {surname-prefix} @@ -3411,6 +8191,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic {surname}, {given-informal} + + {surname-core}፣ {given} {given2} {surname-prefix} + + + {surname-core}፣ {given} {given2} {surname-prefix} + ዘንዳያ diff --git a/make/data/cldr/common/main/ti_ER.xml b/make/data/cldr/common/main/ti_ER.xml index 4ee2721cf46..93062dd72d5 100644 --- a/make/data/cldr/common/main/ti_ER.xml +++ b/make/data/cldr/common/main/ti_ER.xml @@ -17,7 +17,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - [፟ ፡ ፣ ፤ ፥ ፦ ፧ ። ፠ ፨ ፲ ፳ ፴ ፵ ፶ ፷ ፸ ፹ ፺ ፻ ፼ ፩ ፪ ፫ ፬ ፭ ፮ ፯ ፰ ፱ ሀ ሁ ሂ ሃ ሄ ህ ሆ ለ ሉ ሊ ላ ሌ ል ሎ ሏ ሐ ሑ ሒ ሓ ሔ ሕ ሖ ሗ መ ሙ ሚ ማ ሜ ም ሞ ሟ ረ ሩ ሪ ራ ሬ ር ሮ ሯ ሰ ሱ ሲ ሳ ሴ ስ ሶ ሷ ሸ ሹ ሺ ሻ ሼ ሽ ሾ ሿ ቀ ቁ ቂ ቃ ቄ ቅ ቆ ቈ ቊ ቋ ቌ ቍ ቐ ቑ ቒ ቓ ቔ ቕ ቖ ቘ ቚ ቛ ቜ ቝ በ ቡ ቢ ባ ቤ ብ ቦ ቧ ቨ ቩ ቪ ቫ ቬ ቭ ቮ ቯ ተ ቱ ቲ ታ ቴ ት ቶ ቷ ቸ ቹ ቺ ቻ ቼ ች ቾ ቿ ኀ ኁ ኂ ኃ ኄ ኅ ኆ ኈ ኊ ኋ ኌ ኍ ነ ኑ ኒ ና ኔ ን ኖ ኗ ኘ ኙ ኚ ኛ ኜ ኝ ኞ ኟ አ ኡ ኢ ኣ ኤ እ ኦ ኧ ከ ኩ ኪ ካ ኬ ክ ኮ ኰ ኲ ኳ ኴ ኵ ኸ ኹ ኺ ኻ ኼ ኽ ኾ ዀ ዂ ዃ ዄ ዅ ወ ዉ ዊ ዋ ዌ ው ዎ ዐ ዑ ዒ ዓ ዔ ዕ ዖ ዘ ዙ ዚ ዛ ዜ ዝ ዞ ዟ ዠ ዡ ዢ ዣ ዤ ዥ ዦ ዧ የ ዩ ዪ ያ ዬ ይ ዮ ደ ዱ ዲ ዳ ዴ ድ ዶ ዷ ጀ ጁ ጂ ጃ ጄ ጅ ጆ ጇ ገ ጉ ጊ ጋ ጌ ግ ጎ ጐ ጒ ጓ ጔ ጕ ጠ ጡ ጢ ጣ ጤ ጥ ጦ ጧ ጨ ጩ ጪ ጫ ጬ ጭ ጮ ጯ ጸ ጹ ጺ ጻ ጼ ጽ ጾ ጿ ፈ ፉ ፊ ፋ ፌ ፍ ፎ ፏ ፐ ፑ ፒ ፓ ፔ ፕ ፖ ፗ] + [፟ ፡ ፣ ፤ ፥ ፦ ፧ ። ፠ ፨ ፩ ፪ ፫ ፬ ፭ ፮ ፯ ፰ ፱ ፲ ፳ ፴ ፵ ፶ ፷ ፸ ፹ ፺ ፻ ፼ ሀ ሁ ሂ ሃ ሄ ህ ሆ ለ ሉ ሊ ላ ሌ ል ሎ ሏ ሐ ሑ ሒ ሓ ሔ ሕ ሖ ሗ መ ሙ ሚ ማ ሜ ም ሞ ሟ ረ ሩ ሪ ራ ሬ ር ሮ ሯ ሰ ሱ ሲ ሳ ሴ ስ ሶ ሷ ሸ ሹ ሺ ሻ ሼ ሽ ሾ ሿ ቀ ቁ ቂ ቃ ቄ ቅ ቆ ቈ ቊ ቋ ቌ ቍ ቐ ቑ ቒ ቓ ቔ ቕ ቖ ቘ ቚ ቛ ቜ ቝ በ ቡ ቢ ባ ቤ ብ ቦ ቧ ቨ ቩ ቪ ቫ ቬ ቭ ቮ ቯ ተ ቱ ቲ ታ ቴ ት ቶ ቷ ቸ ቹ ቺ ቻ ቼ ች ቾ ቿ ኀ ኁ ኂ ኃ ኄ ኅ ኆ ኈ ኊ ኋ ኌ ኍ ነ ኑ ኒ ና ኔ ን ኖ ኗ ኘ ኙ ኚ ኛ ኜ ኝ ኞ ኟ አ ኡ ኢ ኣ ኤ እ ኦ ኧ ከ ኩ ኪ ካ ኬ ክ ኮ ኰ ኲ ኳ ኴ ኵ ኸ ኹ ኺ ኻ ኼ ኽ ኾ ዀ ዂ ዃ ዄ ዅ ወ ዉ ዊ ዋ ዌ ው ዎ ዐ ዑ ዒ ዓ ዔ ዕ ዖ ዘ ዙ ዚ ዛ ዜ ዝ ዞ ዟ ዠ ዡ ዢ ዣ ዤ ዥ ዦ ዧ የ ዩ ዪ ያ ዬ ይ ዮ ደ ዱ ዲ ዳ ዴ ድ ዶ ዷ ጀ ጁ ጂ ጃ ጄ ጅ ጆ ጇ ገ ጉ ጊ ጋ ጌ ግ ጎ ጐ ጒ ጓ ጔ ጕ ጠ ጡ ጢ ጣ ጤ ጥ ጦ ጧ ጨ ጩ ጪ ጫ ጬ ጭ ጮ ጯ ጸ ጹ ጺ ጻ ጼ ጽ ጾ ጿ ፈ ፉ ፊ ፋ ፌ ፍ ፎ ፏ ፐ ፑ ፒ ፓ ፔ ፕ ፖ ፗ] [᎐ ᎑ ᎒ ᎓ ᎔ ᎕ ᎖ ᎗ ᎘ ᎙ ሇ ⶀ ᎀ ᎁ ᎂ ᎃ ⶁ ሠ ሡ ሢ ሣ ሤ ሥ ሦ ሧ ⶂ ⶃ ⶄ ቇ ᎄ ᎅ ᎆ ᎇ ⶅ ⶆ ⶇ ኇ ⶈ ⶉ ⶊ ኯ ዏ ⶋ ዯ ⶌ ዸ ዹ ዺ ዻ ዼ ዽ ዾ ዿ ⶍ ⶎ ጏ ጘ ጙ ጚ ጛ ጜ ጝ ጞ ጟ ⶓ ⶔ ⶕ ⶖ ⶏ ⶐ ⶑ ፀ ፁ ፂ ፃ ፄ ፅ ፆ ፇ ᎈ ᎉ ᎊ ᎋ ᎌ ᎍ ᎎ ᎏ ⶒ ፘ ፙ ፚ ⶠ ⶡ ⶢ ⶣ ⶤ ⶥ ⶦ ⶨ ⶩ ⶪ ⶫ ⶬ ⶭ ⶮ ⶰ ⶱ ⶲ ⶳ ⶴ ⶵ ⶶ ⶸ ⶹ ⶺ ⶻ ⶼ ⶽ ⶾ ⷀ ⷁ ⷂ ⷃ ⷄ ⷅ ⷆ ⷈ ⷉ ⷊ ⷋ ⷌ ⷍ ⷎ ⷐ ⷑ ⷒ ⷓ ⷔ ⷕ ⷖ ⷘ ⷙ ⷚ ⷛ ⷜ ⷝ ⷞ] [ሀ ለ ሐ መ ረ ሰ ሸ ቀ ቈ ቐ ቘ በ ቨ ተ ቸ ኀ ኈ ነ ኘ አ ከ ኰ ኸ ዀ ወ ዐ ዘ ዠ የ ደ ጀ ገ ጐ ጠ ጨ ጸ ፈ ፐ] @@ -94,7 +94,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - EEEE፡ dd MMMM መዓልቲ y G + EEEE, MMMM d, y G GyMMMMEEEEdd diff --git a/make/data/cldr/common/main/tig.xml b/make/data/cldr/common/main/tig.xml index d59e6eb4a68..3c079e55353 100644 --- a/make/data/cldr/common/main/tig.xml +++ b/make/data/cldr/common/main/tig.xml @@ -406,10 +406,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - ቀደም ሰርምዕል - ሓቆ ስርምዕል - ቀደም ሰርምዕል ሓቆ ስርምዕል diff --git a/make/data/cldr/common/main/tk.xml b/make/data/cldr/common/main/tk.xml index f97a3d7b2d7..36465a20519 100644 --- a/make/data/cldr/common/main/tk.xml +++ b/make/data/cldr/common/main/tk.xml @@ -53,6 +53,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic bislama dili bini dili siksika dili + blo dili bamana bengal dili tibet dili @@ -97,7 +98,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ýokarky nemes dili (Şweýsariýa) dogrib dili zarma dili - Dogri + dogri aşaky lužits dili duala dili diwehi dili @@ -165,6 +166,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic iban dili ibibio dili indonez dili + interlingwe dili igbo dili syçuan-i dili Günorta Kanada iniktitut dili @@ -217,6 +219,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic komi dili korn dili kwakwala dili + kuwi dili gyrgyz dili latyn dili ladino dili @@ -225,8 +228,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic lezgin dili ganda dili limburg dili + ligur dili lilluet dili lakota dili + lombard dili lingala dili laos dili Luiziana kreol dili @@ -379,6 +384,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic kongo suahili dili komor dili siriýa dili + silez dili tamil dili günorta tutçone dili telugu dili @@ -418,7 +424,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic özbek dili wai dili wenda dili + wenesian dili wýetnam dili + mahuwa dili wolapýuk dili wunýo dili wallon dili @@ -429,6 +437,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic u hytaý dili galmyk dili kosa dili + kangri dili soga dili ýangben dili ýemba dili @@ -437,6 +446,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic nhengatu dili kanton dili hytaý dili, kantonça + çžuan dili standart Marokko tamazight dili hytaý dili hytaý dili, mandarin @@ -728,7 +738,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Nauru Niue Täze Zelandiýa - Aotearoa Täze Zelandiýa + Aotearoa Täze Zelandiýa Oman Panama Peru @@ -837,10 +847,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic Buddist senenamasy Hytaý senenamasy - Kopt senenamasy + Kopt senenamasy Dangi senenamasy Efiop senenamasy - Efiopiýa Amete Alem senenamasy + Efiopiýa Amete Alem senenamasy Grigorian senenamasy Ýewreý senenamasy Hijri-kamary senenamasy @@ -871,7 +881,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ermeni sanlary Ermeni setir sanlary Bengal sanlary - Çakma sanlary + Çakma sanlary Dewanagari sanlary Efiop sanlary Doly giňlikdäki sanlar @@ -886,7 +896,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Adaty hytaý sanlary Adaty hytaý maliýe sanlary Ýewreý sanlary - Ýawa sanlary + Ýawa sanlary Ýapon sanlary Ýapon maliýe sanlary Khmer sanlary @@ -894,9 +904,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Laos sanlary Latyn sanlary Malaýalam sanlary - Miteý Maýek sanlary + Miteý Maýek sanlary Mýanma sanlary - Ol Çiki sanlary + Ol Çiki sanlary Oriýa sanlary Rim sanlary Rim setir sanlary @@ -905,7 +915,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Telugu sanlary Taý sanlary Tibet sanlary - Waý sanlary + Waý sanlary Metrik @@ -933,7 +943,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -978,7 +988,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {1} {0} - {1} 'sagat' {0} + {1} 'sagat' {0} @@ -986,7 +996,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {1} {0} - {1} 'sagat' {0} + {1} 'sagat' {0} @@ -994,7 +1004,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {1} {0} - {1}, {0} + {1}, {0} @@ -1002,7 +1012,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {1} {0} - {1}, {0} + {1}, {0} @@ -1369,7 +1379,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {1} {0} - {1} 'sagat' {0} + {1} 'sagat' {0} @@ -1377,7 +1387,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {1} {0} - {1} 'sagat' {0} + {1} 'sagat' {0} @@ -1385,7 +1395,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {1} {0} - {1}, {0} + {1}, {0} @@ -1393,7 +1403,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {1} {0} - {1}, {0} + {1}, {0} @@ -1403,7 +1413,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic GGGGG dd.MM.y G MMM y G d MMM y - G d MMM y E + G d MMM y, E h a h:mm a h:mm:ss a @@ -1564,24 +1574,24 @@ CLDR data files are interpreted according to the LDML specification (http://unic Gur - Aşyr - Sapar - Dört tirkeşik 1 - Dört tirkeşik 2 - Dört tirkeşik 3 - Dört tirkeşik 4 - Rejep - Meret - Oraza - Baýram - Boş aý - Gurban + Aşyr + Sapar + Dört tirkeşik 1 + Dört tirkeşik 2 + Dört tirkeşik 3 + Dört tirkeşik 4 + Rejep + Meret + Oraza + Baýram + Boş aý + Gurban - HS + HS @@ -1610,23 +1620,24 @@ CLDR data files are interpreted according to the LDML specification (http://unic d, E y G - d/M/y GGGGG + d.M.y GGGGG MMM y G d MMM, y G E, d MMM, y G - d/M - E, d/M + d.M + E, d.M E, d MMM d MMMM, E y G + dd.MM.y, E MMM, y d MMM, y d MMM, y, E MMMM, y y G - M/y GGGGG - d/M/y GGGGG - E, d/M/y GGGGG + M.y GGGGG + d.M.y GGGGG + E, d.M.y GGGGG MMM y G d MMM, y G E, d MMM, y G @@ -2154,6 +2165,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} wagty {0} tomusky wagty {0} standart wagty + + Gonolulu + Utgaşdyrylýan ähliumumy wagt @@ -2721,9 +2735,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ulan-Bator - - Çoýbalsan - Makao @@ -3003,9 +3014,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Nom - - Gonolulu - Ankoridž @@ -3319,13 +3327,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Hytaý tomusky wagty - - - Çoýbalsan wagty - Çoýbalsan standart wagty - Çoýbalsan tomusky wagt - - Roždestwo adasy wagty @@ -3569,6 +3570,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Petropavlowsk-Kamçatskiý wagty + + + Gazagystan wagty + + Gündogar Gazagystan wagty @@ -3996,6 +4002,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + San däl + ,   @@ -4072,7 +4081,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic #,##0.00 ¤ - #,##0.00;(#,##0.00) + #,##0.00;(#,##0.00) @@ -4103,9 +4112,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic 000 trln ¤ - {0} ¤¤ - {0} {1} - {0} {1} + {0} ¤¤ @@ -4225,7 +4232,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Belarus rubly belarus rubly belarus rubly - р. + р. Belorus rubly (2000–2016) @@ -4336,7 +4343,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ýewro ýewro ýewro - EUR + EUR Fiji dollary @@ -4352,7 +4359,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Britan funt sterlingi britan funt sterlingi britan funt sterlingi - GBP + GBP Gruzin larisi @@ -4925,7 +4932,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic desi{0} - senti{0} + santi{0} milli{0} @@ -4987,9 +4994,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ýotta{0} - - ronna{0} - kwetta{0} @@ -5389,9 +5393,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} dýuým başyna piksel - santimetr başyna nokat - {0} santimetr başyna nokat - {0} santimetr başyna nokat + santimetr başyna nokat + santimetr başyna {0} nokat + santimetr başyna {0} nokat nokat dýuým başyna @@ -5527,7 +5531,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} gün ýagtylygy - metrik tonna {0} metrik tonna {0} metrik tonna @@ -5877,6 +5880,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} Imp. kwarta {0} Imp. kwarta + + ýagtylyk + {0} ýagtylyk + {0} ýagtylyk + + + bölejik/milliard + milliardda {0} bölejik + milliardda {0} bölejik + + + gije + {0} gije + {0} gije + {0}/gije + esasy ugur {0} gündogar @@ -6462,6 +6481,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} kt Imp. {0} kt Imp. + + ýagtylyk + {0} ýagtylyk + {0} ýagtylyk + + + bölejik/milliard + {0} bölejik/milliard + {0} bölejik/milliard + + + gije + {0} gije + {0} gije + {0}/gije + ugur {0} gd @@ -6471,6 +6506,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + s{0} + burç min. {0}′ @@ -6640,6 +6678,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} kt-Imp. {0} kt-Imp. + + ýagtylyk + {0} ýagtylyk + {0} ýagtylyk + + + bmlrd + {0} bmlrd + {0} bmlrd + + + gije + {0} gije + {0} gije + {0}/gije + {0}gd {0}dg diff --git a/make/data/cldr/common/main/tn.xml b/make/data/cldr/common/main/tn.xml index 7618674e353..d1aca57a896 100644 --- a/make/data/cldr/common/main/tn.xml +++ b/make/data/cldr/common/main/tn.xml @@ -26,7 +26,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Danish German SeGerika - Sekgoa + Sekgoa Esperanto Spanish Estonian @@ -83,7 +83,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Thai Tigrinya Klingon - Setswana + Setswana Turkish Ukrainian Urdu @@ -92,7 +92,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic IsiXhosa IsiZulu + + + + Botswana Aforika Borwa @@ -100,12 +104,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic [a b d e ê f g h i j k l m n o ô p r s t u w y] [c q v x z] [A B C D E F G H I J K L M N O P Q R S T U V W X Y Z] + [\- ‐‑ – — , ; \: ! ? . … '‘’ "“” ( ) \[ \] § @ * / \& # † ‡ ′ ″] - - - - + + + + @@ -155,7 +160,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Tshipi - Mosopulogo + Mosupologo Labobedi Laboraro Labone @@ -325,10 +330,24 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + ngogola + monongwaga + ngwaga o tlang + + + + + + Palogare ya nako ya ngwaga le ngwaga ya Greenwich + + + -   + diff --git a/make/data/cldr/common/main/to.xml b/make/data/cldr/common/main/to.xml index 841da2c8d95..d7891e9ffbf 100644 --- a/make/data/cldr/common/main/to.xml +++ b/make/data/cldr/common/main/to.xml @@ -83,6 +83,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic lea fakapanisali lea fakakome lea fakasikesikā + lea fakaʻanī + lea fakatāitāmi lea fakapamipala lea fakapāngilā lea fakatipeti @@ -118,6 +120,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic lea fakasipeuiani lea fakaselokī lea fakaseiene + lea fakatisikasā lea fakakūtisi-loloto lea fakakūtisi-solani lea fakatisilikōtini @@ -223,7 +226,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic lea fakasiamane-hake-lotoloto lea fakakualani lea fakasiamane-hake-motuʻa - lea fakakonikanī-koani lea fakakonitī lea fakakolonitalo lea fakakotika @@ -249,6 +251,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic lea fakahilikainoni lea fakahitite lea fakamōngi + lea fakamunginiā lea fakahili-motu lea fakakuloisia lea fakasōpia-hake @@ -335,6 +338,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic lea fakakomi lea fakakoniuali lea fakakuakuala + lea fakakuvi lea fakakīsisi lea fakalatina lea fakalatino @@ -350,6 +354,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic lea fakalilōeti lea fakalivonia lea fakalakota + lea fakalatīni lea fakalomipāti lea lingikala lea fakalau @@ -388,6 +393,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic lea fakamakūa-meʻeto lea fakametā lea fakamāsolo + lea fakamokeno lea fakamāuli lea fakamikemaki lea fakaminangikapau @@ -537,6 +543,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic lea fakasingihala lea fakasitamo lea fakasolāvaki + lea fakasalāʻikī lea fakasolovenia lea fakalusūtisiti lea fakasilesia-hifo @@ -601,6 +608,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic lea fakatoake lea fakatuloio lea fakataloko + lea fakatolivali lea fakatisonga lea fakasakōnia lea fakatisīmisiani @@ -629,6 +637,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic lea fakavietinami lea fakavelamingi-hihifo lea fakafalanikoni-loloto + lea fakamakuva lea fakavolapiki lea fakavotiki lea fakavōlo @@ -644,6 +653,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic lea fakakalimiki lea fakatōsa lea fakamingilelia + lea fakakangilī lea fakasoka lea fakaʻiao lea fakaʻiapi @@ -716,6 +726,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic + @@ -725,6 +736,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic + @@ -758,6 +770,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic + @@ -800,6 +813,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic + @@ -835,6 +849,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic + @@ -856,7 +871,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + @@ -1196,6 +1213,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic lea fakafeituʻu fakaʻakuapemi mataʻitohi liliu laipeli ʻamelika 1997 lea fakafeituʻu fakaʻaluku + lea fakafeituʻu fakaʻanipeso sipelatotonu ʻoe lea fakapotukali he 1990 lea fakafeituʻu fakaʻalanese lea fakaʻāmenia-hahake @@ -1208,6 +1226,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic lea fakafeituʻu fakapālavenito-pupunga lea fakapilitānia fakafaingofua lea fakafeituʻu fakaputa-sanisikiliti-tuifio + fakaʻilonga pilisi lea fakafeituʻu fakapisikaea lea fakafeituʻu fakapila mo fakasā-siōsio motuʻalea fakapoholisi @@ -1263,6 +1282,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic lea fakafeituʻu pahau-mongi, sitepu hono fā lea fakafeituʻu fakapamaka lea fakalatina-peano + mataʻitohi liliu fakapeʻōesī lea fakafeituʻu fakalūsia-peterine mataʻitohi liliu fakapīnīni fasiʻalea lahi @@ -1284,6 +1304,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic lea fakafeituʻu fakasulisiliva lea fakafeituʻu fakasutisiliva lea fakafeituʻu fakafonuasuti + mataʻitohi liliu fakatailo sipelatotunu fakatalasikievika lea fakafeituʻu fakasiaina-tōngiongi lea fakafeituʻu fakatunimīti @@ -1292,6 +1313,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic lea fakafeituʻu fakaʻulisitā motuʻalea fonētiki ʻo Unifoni lea fakafeituʻu fakasanisikiliti-vetā + lea fakafeituʻu fakavalipātia lea fakafeituʻu fakavalenisia lea fakafeituʻu fakavalate lea fakafeituʻu fakalativia-vekātuluka @@ -1372,12 +1394,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic fika fakativehi-akuru fika fakaʻītiōpia fika laulahi + fika fakakalai fika fakaseōsia fika fakakoniti-kunisala fika fakakoniti–masalami fika fakakalisi fika fakakalisi fakalalo fika fakakutalati + fika fakakulungikema fika fakakūmuki fika fakasiaina fika fakasiaina fakafaingofua @@ -1394,6 +1418,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic fika fakakaui fika fakakamipōtia fika fakakanata + fika fakakilatilai fika fakatai-tami-hola fika fakatai-tami-tami fika fakalau @@ -1411,13 +1436,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic fika fakamolō fika fakametei-maieki fika fakapema + fika fakapiloukaleni + fika fakapaʻō fika fakapema-siani fika fakapema-tai fika fakamunitali-naki fika fakanikō fika fakaʻolisiki + fika fakaʻoliʻonali fika fakaʻotia fika fakaʻosimania + fika fakatapa fika fakalohingia-hanifi fika fakaloma fika fakaloma fakalalo @@ -1427,6 +1456,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic fika fakasingihala fika fakasola-somipenga fika fakasunitā + fika fakasunuvali fika fakatakili fika fakatai-lue foʻou fika fakatamili tukufakaholo @@ -1460,7 +1490,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2688,6 +2718,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic Taimi {0} {0} Taimi liliu {0} Taimi totonu + + + HTT + HTT + HTL + + Honolulu + taimi fakaemāmani @@ -2714,18 +2752,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic Pelisipane - - St. Barthélemy - Lalotonga Lapanui - - Curaçao - Fisi @@ -2800,6 +2832,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Cancun + + Numea + Noafōki @@ -2833,12 +2868,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Hepeloni - - Asunción - - - Réunion - Mosikou @@ -2857,14 +2886,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ueke - - - HTT - HTT - HTL - - Honolulu - Niu ʻIoke @@ -3129,13 +3150,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic houa fakasiaina taimi liliu - - - houa fakakoipalisani - houa fakakoipalisani taimi totonu - houa fakakoipalisani taimi liliu - - houa fakamotukilisimasi @@ -3386,6 +3400,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic houa fakalūsia-petelopavilovisiki taimi liliu + + + houa fakakasakitani + + houa fakakasakitani-hahake @@ -4405,8 +4424,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic kaloli ʻe {0} - kaloli-kai - kaloli-kai ʻe {0} + kaloli-kai + kaloli-kai ʻe {0} kilosiule @@ -4442,6 +4461,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic kilouate-houa he kilomita ʻe 100 + kilouate-houa ʻe {0} he kilomita ʻe 100 kikahēti @@ -4476,12 +4496,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic meʻatā ʻe {0} he ʻinisi - toti he senitimita - toti ʻe {0} he senitimita + toti he senitimita + toti ʻe {0} he senitimita - toti he ʻinisi - toti ʻe {0} he ʻinisi + toti he ʻinisi + toti ʻe {0} he ʻinisi lētiasi fakamāmani @@ -4880,6 +4900,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic kuata fakaʻemipaea kuata fakaʻemipaea ʻe {0} + + vavemaama + vavemaama ʻe {0} + + + konga ʻi he piliona + konga ʻe {0} ʻi he piliona + + + + pō ʻe {0} + {0} he pō + fua tefitoʻi hahake ʻe {0} @@ -5139,8 +5172,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic kal ʻe {0} - kal-k - kal-k ʻe {0} + kal-k + kal-k ʻe {0} kJ ʻe {0} @@ -5203,12 +5236,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic meʻatā ʻe {0}/in - toti/sm - toti ʻe {0}/sm + toti/sm + toti ʻe {0}/sm - toti/in - toti ʻe {0}/in + toti/in + toti ʻe {0}/in toti @@ -5596,6 +5629,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic ku-ʻem ku-ʻem ʻe {0} + + vm + vm ʻe {0} + + + + pō ʻe {0} + {0}/pō + fua ha ʻe {0} @@ -5814,7 +5856,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} kal - {0} kal-k + {0} kal-k {0} kJ @@ -5872,12 +5914,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}mt/in - t/sm - {0}t/sm + t/sm + {0}t/sm - t/in - {0}t/in + t/in + {0}t/in t @@ -6191,6 +6233,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} ku-ʻem + + vm + {0} vm + + + + pō ʻe {0} + {0}/pō + {0} ha {0} tk diff --git a/make/data/cldr/common/main/tr.xml b/make/data/cldr/common/main/tr.xml index e597dbb5cf6..edf34da8561 100644 --- a/make/data/cldr/common/main/tr.xml +++ b/make/data/cldr/common/main/tr.xml @@ -85,6 +85,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Banjar Dili Kom Karaayak dili + Aniice Bambara Bengalce Tibetçe @@ -227,7 +228,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ortaçağ Yüksek Almancası Guarani dili Eski Yüksek Almanca - Goa Konkanicesi Gondi dili Gorontalo dili Gotça @@ -338,6 +338,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Komi Kernevekçe Kwakʼwala dili + Kuvi Kırgızca Latince Ladino @@ -634,6 +635,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Vietnamca Batı Flamanca Main Frankonya Dili + Makuaca Volapük Votça Võro @@ -649,6 +651,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kalmıkça Zosa dili Megrelce + Kangrice Soga Yao Yapça @@ -700,7 +703,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -739,7 +741,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -773,7 +774,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - @@ -1235,7 +1235,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ulusal Hint Takvimi Hicri Takvim Hicri Takvim (16 Temmuz 622) - Hicri Takvim (Suudi) + Hicri Takvim (Suudi) Hicri Takvim (15 Temmuz 622) Hicri Takvim (Ümmü-l Kurra Takvimi) ISO-8601 Takvimi @@ -1398,12 +1398,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [áàăâåäãā æ éèĕêëē íìĭîïī ñ óòŏôøō œ q ß úùŭûū w x ÿ] [A B C Ç D E F G H I İ J K L M N O Ö P Q R S Ş T U Ü V W X Y Z] [\- ‐‑ – — , ; \: ! ? . … '‘’ "“” ( ) \[ \] § @ * / \& # † ‡ ′ ″] - - [\: ∶] - - - [£ ₤] - [\--﹣ ‑ ‒ −⁻₋ ➖] [,,﹐︐ ، ٫ 、﹑、︑] @@ -1883,7 +1877,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ d E E a h:mm E a h:mm:ss - d/M/y GGGGG + GGGGG dd.MM.y G MMM y G d MMM y G d MMM y E @@ -2504,6 +2498,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} Saati {0} Yaz Saati {0} Standart Saati + + Honolulu + Eş Güdümlü Evrensel Zaman @@ -2572,9 +2569,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kosta Rika - - Curaçao - Lefkoşa @@ -2730,9 +2724,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ulan Batur - - Çoybalsan - Makao @@ -2784,9 +2775,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Lizbon - - Asunción - Katar @@ -2859,9 +2847,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Kiev - - Honolulu - Beulah, Kuzey Dakota @@ -3138,13 +3123,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Çin Yaz Saati - - - Çoybalsan Saati - Çoybalsan Standart Saati - Çoybalsan Yaz Saati - - Christmas Adası Saati @@ -3395,6 +3373,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Petropavlovsk-Kamçatski Yaz Saati + + + Kazakistan Saati + + Doğu Kazakistan Saati @@ -3952,8 +3935,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 Tn ¤ - {0} {1} - {0} {1} @@ -5820,6 +5801,22 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ İng. quart + + ışık + {0} ışık + {0} ışık + + + parça/milyar + {0} parça/milyar + {0} parça/milyar + + + gece + {0} gece + {0} gece + {0}/gece + ana yön {0}Doğu @@ -6329,6 +6326,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} İng. quart {0} İng. quart + + ışık + {0} ışık + {0} ışık + + + parça/milyar + + + gece + {0} gece + {0} gece + {0}/gece + yön {0}D @@ -6496,6 +6507,17 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} İng. qt. {0} İng. qt. + + ışık + {0} ışık + {0} ışık + + + gece + {0} gece + {0} gece + {0}/gece + diff --git a/make/data/cldr/common/main/trv.xml b/make/data/cldr/common/main/trv.xml index 648691d9274..ef10a1c9961 100644 --- a/make/data/cldr/common/main/trv.xml +++ b/make/data/cldr/common/main/trv.xml @@ -348,6 +348,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic JQG{0} Jikan {0} + + Jikan alang Honoruru + Ini klayi ka Jikan hini @@ -360,9 +363,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Jikan alang Snpaurow - - Jikan alang Honoruru - Jikan alang Ankriji diff --git a/make/data/cldr/common/main/trw.xml b/make/data/cldr/common/main/trw.xml index 2226a7d3c3f..725d8f6bbbc 100644 --- a/make/data/cldr/common/main/trw.xml +++ b/make/data/cldr/common/main/trw.xml @@ -1823,9 +1823,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic اولان باتار - - چوئبالسان - مسیؤ @@ -2566,13 +2563,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic چینی ڈے لائٹ ٹائم - - - کوئبلسان ٹائم - کوئبلسان سٹینڈرڈ ٹائم - کوائبلسان سمر ٹائم - - کرسمس آئلینڈ ٹائم diff --git a/make/data/cldr/common/main/tt.xml b/make/data/cldr/common/main/tt.xml index d616a87b68b..59e376e6862 100644 --- a/make/data/cldr/common/main/tt.xml +++ b/make/data/cldr/common/main/tt.xml @@ -15,6 +15,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic африкаанс амхар гарәп + Заманча стандарт гарәп мапуче ассам әзәрбайҗан @@ -68,6 +69,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic гавайи яһүд һинд + Һинглиш хилигайнон хорват югары сорб @@ -113,6 +115,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic непали ниуэ голланд + фламандча ньянҗа окситан оромо @@ -180,11 +183,45 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + дөнья + Африка + Төньяк Америка + Көньяк Америка + Океания + Көнбатыш Африка + Үзәк Америка + Көнчыгыш Африка + Төньяк Африка + Урта Африка + Көньяктагы Африка + Америка + Төньяктагы Америка + Кариб бассейны + Көнчыгыш Азия + Көньяк Азия + Көньяк-Көнчыгыш Азия + Көньяк Европа + Австралазия + Меланезия + Микронезия төбәге + Полинезия + Азия + Үзәк Азия + Көнбатыш Азия + Европа + Көнчыгыш Европа + Төньяк Европа + Көнбатыш Европа + Сахарадан көньякта Африка + Латин Америка + Вознесение утравы Андорра Берләшкән Гарәп Әмирлекләре Әфганстан @@ -214,6 +251,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Бермуд утраулары Бруней Боливия + Кариб Нидерландлары Бразилия Багам утраулары Бутан @@ -225,6 +263,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Кокос (Килинг) утраулары Конго (КДР) Үзәк Африка Республикасы + Конго - Браззавиль + Конго (Республика) Швейцария Кот-д’Ивуар Кук утраулары @@ -232,6 +272,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Камерун Кытай Колумбия + Клиппертон утравы Коста-Рика Куба Кабо-Верде @@ -240,20 +281,26 @@ CLDR data files are interpreted according to the LDML specification (http://unic Кипр Чехия Республикасы Германия + Диего Гарсия Җибүти Дания Доминика Доминикана Республикасы Алжир + Сеута һәм Мелилья Эквадор Эстония Мисыр + Көнбатыш Сахара Эритрея Испания Эфиопия + Европа Берлеге + Еврозона Финляндия Фиджи Фолкленд утраулары + Фолкленд утраулары (Мальвин утраулары) Микронезия Фарер утраулары Франция @@ -283,12 +330,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic Хорватия Гаити Венгрия + Канар утраулары Индонезия Ирландия Израиль Мэн утравы Индия - Британиянең Һинд Океанындагы Территориясе + Британиянең Һинд Океанындагы Территориясе + Чагос архипелагы Гыйрак Иран Исландия @@ -304,6 +353,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Комор утраулары Сент-Китс һәм Невис Төньяк Корея + Көньяк Корея Күвәйт Кайман утраулары Казахстан @@ -327,6 +377,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Маршалл утраулары Төньяк Македония Мали + Мьянма (Бирма) Монголия Макао Махсус Идарәле Төбәге Макао @@ -353,6 +404,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Науру Ниуэ Яңа Зеландия + Аотеароа Яңа Зеландия Оман Панама Перу @@ -364,10 +416,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic Сен-Пьер һәм Микелон Питкэрн утраулары Пуэрто-Рико + Фәләстин территорияләре + Фәләстин Португалия Палау Парагвай Катар + Ерак Океания Реюньон Румыния Сербия @@ -379,6 +434,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Судан Швеция Сингапур + Изге Елена утравы Словения Шпицберген һәм Ян-Майен Словакия @@ -393,6 +449,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Синт-Мартен Сүрия Свазиленд + Тристан-да-Кунья Теркс һәм Кайкос утраулары Чад Франциянең Көньяк Территорияләре @@ -401,6 +458,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Таҗикстан Токелау Тимор-Лесте + Көнчыгыш Тимор Төркмәнстан Тунис Тонга @@ -412,9 +470,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Украина Уганда АКШ Кече Читтәге утраулары + Берләшкән Милләтләр АКШ Уругвай Үзбәкстан + Ватикан Сент-Винсент һәм Гренадин Венесуэла Британия Виргин утраулары @@ -423,6 +483,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Вануату Уоллис һәм Футуна Самоа + Псевдоакцентлар + Псевдо-Биди Косово Йәмән Майотта @@ -433,6 +495,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic григориан ел исәбе + ISO-8601 календаре гадәти тәртипләү ысулы көнбатыш цифрлары @@ -766,11 +829,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic {1}, {0} + + {1} {0} 'сәгатьтә' + {1}, {0} + + {1} {0} 'сәгатьтә' + @@ -1237,85 +1306,2155 @@ CLDR data files are interpreted according to the LDML specification (http://unic билгесез шәһәр - - - Акр вакыты - - - - - Төньяк Америка үзәк вакыты - Төньяк Америка гадәти үзәк вакыты - Төньяк Америка җәйге үзәк вакыты - - - - - Төньяк Америка көнчыгыш вакыты - Төньяк Америка гадәти көнчыгыш вакыты - Төньяк Америка җәйге көнчыгыш вакыты - - - - - Төньяк Америка тау вакыты - Төньяк Америка гадәти тау вакыты - Төньяк Америка җәйге тау вакыты - - - - - Төньяк Америка Тын океан вакыты - Төньяк Америка гадәти Тын океан вакыты - Төньяк Америка җәйге Тын океан вакыты - - - - - Анадырь вакыты - - - - - Төньяк Америка атлантик вакыты - Төньяк Америка гадәти атлантик вакыты - Төньяк Америка җәйге атлантик вакыты - - - - - Үзәк Европа вакыты - гадәти Үзәк Европа вакыты - җәйге Үзәк Европа вакыты - - - - - Көнчыгыш Европа вакыты - гадәти Көнчыгыш Европа вакыты - җәйге Көнчыгыш Европа вакыты - - - - - Көнбатыш Европа вакыты - гадәти Көнбатыш Европа вакыты - җәйге Көнбатыш Европа вакыты - - - + + Андорра + + + Дубай + + + Кабул + + + Антигуа + + + Ангилья + + + Тиран + + + Ереван + + + Луанда + + + Ротера + + + Палмер + + + Тролль + + + Сёва + + + Моусон + + + Дэвис + + + Восток + + + Кейси + + + Дюмон д’Юрвиль + + + МакМёрдо + + + Рио-Гальегос + + + Мендоса + + + Сан-Хуан + + + Ушуайя + + + Ла Риоха + + + Сан-Луис + + + Катамарка + + + Сальта + + + Жужуй + + + Тукуман + + + Кордоба + + + Буэнос-Айрес + + + Паго Паго + + + Вена + + + Перт + + + Юкла + + + Дарвин + + + Аделаида + + + Брокен-Хилл + + + Мельбурн + + + Хобарт + + + Линдеман + + + Сидней + + + Брисбен + + + Маккуори + + + Лорд Хау + + + Аруба + + + Мариехамн + + + Баку + + + Сараево + + + Барбадос + + + Дакка + + + Брюссель + + + Уагадугу + + + София + + + Бахрейн + + + Бөҗүмбура + + + Порто-Ново + + + Изге Варфоломей + + + Бермуд утраулары + + + Бруней + + + Ла-Пас + + + Кралендейк + + + Эйрунепе + + + Рио-Бранко + + + Порту-Велью + + + Боа-Виста + + + Манаус + + + Куяба + + + Сантарем + + + Кампо-Гранде + + + Белем + + + Арагуайна + + + Сан-Паулу + + + Баия + + + Форталеза + + + Масейо + + + Ресифи + + + Норонья + + + Нассау + + + Тхимпху + + + Габороне + + + Минск + + + Белиз + + + Доусон + + + Уайтхорс + + + Инувик + + + Ванкувер + + + Форт Нельсон + + + Доусон-Крик + + + Крестон + + + Эдмонтон + + + Кембридж Бэй + + + Регина + + + Виннипег + + + Резолют + + + Ранкин-Инлет + + + Атикокан + + + Торонто + + + Икалуит + + + Монктон + + + Галифакс + + + Каз бухтасы + + + Глейс Бэй + + + Блан-Саблон + + + Сент-Джонс + + + Кокос + + + Киншаса + + + Лубумбаши + + + Банги + + + Браззавиль + + + Цюрих + + + Идиҗан + + + Раротонга + + + Пасха утравы + + + Пунта-Аренас + + + Сантьяго + + + Дуала + + + Урумчи + + + Шанхай + + + Богота + + + Коста-Рика + + + Гавана + + + Кабо-Верде + + + Кюрасао + + + Раштуа + + + Никосия + + + Фамагуста + + + Прага + + + Бюзинген + + + Берлин + + + Джибути + + + Копенгаген + + + Доминика + + + Санто-Доминго + + + Алжир + + + Галапагос утраулары + + + Гуаякиль + + + Таллин + + + Каһирә + + + Эль-Аюн + + + Асмэра + + + Канар утраулары + + + Сеута + + + Мадрид + + + Аддис-Абеба + + + Хельсинки + + + Фиджи + + + Стэнли + + + Чуук + + + Понпеи + + + Косраэ + + + Фарер утраулары + + + Париж + + + Либревиль + + - Гринвич уртача вакыты + Британия җәйге вакыты - - + Лондон + + + Гренада + + + Тбилиси + + + Кайенна + + + Гернси + + + Аккра + + + Гибралтар + + + Туле + + + Нуук + + + Иттоккортоормиит + + + Данмарксхавн + + + Банҗул + + + Конакри + + + Гваделупа + + + Малабо + + + Афин + + + Көньяк Джорджия + + + Гватемала + + + Гуам + + + Биссау + + + Гайана + + + Гонконг + + + Тегусигальпа + + + Загреб + + + Порт-о-Пренс + + + Будапешт + + + Җакарта + + + Понтианак + + + Макассар + + + Җәяпура + + - Петропавловск-Камчатский вакыты + Ирландия стандарт вакыты + + Дублин + + + Иерусалим + + + Мэн утравы + + + Калькутта + + + Чагос + + + Багдад + + + Тәһран + + + Рейкьявик + + + Рим + + + Джерси + + + Ямайка + + + Әмман + + + Токио + + + Найроби + + + Бишкек + + + Пномпень + + + Кантон + + + Киритимати + + + Тарава + + + Коморо + + + Сент-Китс + + + Пхеньян + + + Сеул + + + Кувейт + + + Кайман утраулары + + + Актау + + + Орал + + + Атырау + + + Актобе + + + Костанай + + + Кызылорда + + + Алма-Ата + + + Вьентьян + + + Бәйрүт + + + Изге Люсия + + + Вадуц + + + Коломбо + + + Монровия + + + Масеру + + + Вильнюс + + + Люксембург + + + Рига + + + Триполи + + + Касабланка + + + Монако + + + Кишинев + + + Подгорица + + + Мариго + + + Антананариву + + + Кваджалейн + + + Маджуро + + + Скопье + + + Бамако + + + Янгон + + + Ховд + + + Улан-Батор + + + Макао + + + Сайпан + + + Мартиника + + + Нуакшот + + + Монсеррат + + + Мальта + + + Маврикий + + + Мальдив утраулары + + + Блантайр + + + Тихуана + + + Эрмосильо + + + Сьюдад-Хуарес + + + Масатлан + + + Чихуахуа + + + Баия-де-Бандерас + + + Охинага + + + Монтеррей + + + Мехико + + + Матаморос + + + Мерида + + + Канкун + + + Куала-Лумпур + + + Кучинг + + + Мапуто + + + Виндхук + + + Нумеа + + + Ниамей + + + Норфолк + + + Лагос + + + Манагуа + + + Амстердам + + + Осло + + + Катманду + + + Науру + + + Ниуэ + + + Чатем + + + Окленд + + + Маскат + + + Панама + + + Лима + + + Таити + + + Маркиз утраулары + + + Гамбье + + + Порт-Морсби + + + Бугенвиль + + + Манила + + + Карачи + + + Варшава + + + Микелон + + + Питкэрн + + + Пуэрто-Рико + + + Газа + + + Һеврон + + + Азор утраулары + + + Мадейра + + + Лиссабон + + + Палау + + + Асунсьон + + + Катар + + + Реюньон + + + Бухарест + + + Белград + + + Калининград + + + Мәскәү + + + Волгоград + + + Саратов + + + Әстерхан + + + Ульяновск + + + Киров + + + Самара + + + Екатеринбург + + + Омск + + + Новосибирск + + + Барнаул + + + Томск + + + Новокузнецк + + + Красноярск + + + Иркутск + + + Чита + + + Якутск + + + Владивосток + + + Хандыга + + + Сахалин + + + Усть-Нера + + + Магадан + + + Среднеколымск + + + Камчатка + + + Анадырь + + + Кигали + + + Эр-Рияд + + + Гуадалканал + + + Маэ + + + Һартум + + + Стокгольм + + + Сингапур + + + Изге Елена + + + Любляна + + + Лонгиербиен + + + Братислава + + + Фритаун + + + Сан-Марино + + + Дакар + + + Могадишо + + + Парамарибо + + + Җуба + + + Сан-Томе + + + Сальвадор + + + Түбәнге Кенәз кварталы + + + Дәмәшкъ + + + Мбабане + + + Гранд Терк + + + Нҗамен + + + Кергелен + + + Ломе + + + Бангкок + + + Душанбе + + + Факаофо + + + Дили + + + Ашхабад + + + Тунис + + + Тонгатапу + + + Истанбул + + + Порт-оф-Спейн + + + Фунафути + + + Тайпей + + + Дар-эс-Салам + + + Киев + + + Симферополь + + + Кампала + + + Мидуэй + + + Вейк + + + Адак + + + Номе + + + Анкоридж + + + Якутат + + + Ситка + + + Джуно + + + Метлакатла + + + Лос-Анджелес + + + Бойсе + + + Феникс + + + Денвер + + + Бьюла, Төньяк Дакота + + + Нью-Салем, Төньяк Дакота + + + Үзәк, Төньяк Дакота + + + Чикаго + + + Меномини + + + Винсеннес, Индиана + + + Петербург, Индиана + + + Телль-Сити, Индиана + + + Нокс, Индиана + + + Уинамак, Индиана + + + Маренго, Индиана + + + Индианаполис + + + Луисвиль + + + Вевей, Индиана + + + Монтичелло, Кентукки + + + Детройт + + + Нью-Йорк + + + Монтевидео + + + Сәмәрканд + + + Ташкент + + + Ватикан + + + Сент-Винсент + + + Каракас + + + Тортола + + + Сент-Томас + + + Хо Ши Мин + + + Эфате + + + Уоллис + + + Апиа + + + Аден + + + Майотта + + + Йоханнесбург + + + Лусака + + + Хараре + + + + Акр вакыты + Акр стандарт вакыты + Акр җәйге вакыты + + + + + Әфганстан вакыты + + + + + Үзәк Африка вакыты + + + + + Көнчыгыш Африка вакыты + + + + + Көньяк Африка вакыты + + + + + Көнбатыш Африка вакыты + Көнбатыш Африка стандарт вакыты + Көнбатыш Африка җәйге вакыты + + + + + Аляска вакыты + Аляска стандарт вакыты + Аляска җәйге вакыты + + + + + Амазонка вакыты + Амазонка стандарт вакыты + Амазонка җәйге вакыты + + + + + Төньяк Америка үзәк вакыты + Төньяк Америка гадәти үзәк вакыты + Төньяк Америка җәйге үзәк вакыты + + + + + Төньяк Америка көнчыгыш вакыты + Төньяк Америка гадәти көнчыгыш вакыты + Төньяк Америка җәйге көнчыгыш вакыты + + + + + Төньяк Америка тау вакыты + Төньяк Америка гадәти тау вакыты + Төньяк Америка җәйге тау вакыты + + + + + Төньяк Америка Тын океан вакыты + Төньяк Америка гадәти Тын океан вакыты + Төньяк Америка җәйге Тын океан вакыты + + + + + Анадырь вакыты + Анадырь стандарт вакыты + Анадырь җәйге вакыты + + + + + Апиа вакыты + Апиа стандарт вакыты + Апиа җәйге вакыты + + + + + Гарәп вакыты + Гарәп стандарт вакыты + Гарәп җәйге вакыты + + + + + Аргентина вакыты + Аргентина Стандарт вакыты + Аргентина җәйге вакыты + + + + + Көнбатыш Аргентина вакыты + Көнбатыш Аргентина стандарт вакыты + Көнбатыш Аргентина җәйге вакыты + + + + + Армения вакыты + Армения стандарт вакыты + Армения җәйге вакыты + + + + + Төньяк Америка атлантик вакыты + Төньяк Америка гадәти атлантик вакыты + Төньяк Америка җәйге атлантик вакыты + + + + + Үзәк Австралия вакыты + Австралия үзәк стандарт вакыты + Австралия үзәк җәйге вакыты + + + + + Австралия үзәк көнбатыш вакыты + Австралия үзәк көнбатыш стандарт вакыты + Австралия үзәк көнбатыш җәйге вакыты + + + + + Көнчыгыш Австралия вакыты + Көнчыгыш Австралия стандарт вакыты + Көнчыгыш Австралия җәйге вакыты + + + + + Көнбатыш Австралия вакыты + Көнбатыш Австралия стандарт вакыты + Көнбатыш Австралия җәйге вакыты + + + + + Әзербайҗан вакыты + Әзербайҗан стандарт вакыты + Әзербайҗан җәйге вакыты + + + + + Азор утраулары вакыты + Азор утраулары стандарт вакыты + Азоу утраулары җәйге вакыты + + + + + Бангладеш вакыты + Бангладеш стандарт вакыты + Бангладеш җәйге вакыты + + + + + Бутан вакыты + + + + + Боливия вакыты + + + + + Бразилиа вакыты + Бразилиа стандарт вакыты + Бразилиа җәйге вакыты + + + + + Бруней-Даруссалам вакыты + + + + + Кабо-Верде вакыты + Кабо-Верде стандарт вакыты + Кабо-Верде җәйге вакыты + + + + + Чаморро стандарт вакыты + + + + + Чатем вакыты + Чатем стандарт вакыты + Чатем җәйге вакыты + + + + + Чили вакыты + Чили стандарт вакыты + Чили җәйге вакыты + + + + + Кытай вакыты + Кытай стандарт вакыты + Кытай җәйге вакыты + + + + + Раштуа утравы вакыты + + + + + Кокос утраулары вакыты + + + + + Колумбия вакыты + Колумбия стандарт вакыты + Колумбия җәйге вакыты + + + + + Кук утраулары вакыты + Кук утраулары стандарт вакыты + Кук утраулары уртача җәйге вакыты + + + + + Куба вакыты + Куба стандарт вакыты + Куба җәйге вакыты + + + + + Дэвис вакыты + + + + + Дюмон д’Юрвиль вакыты + + + + + Көнчыгыш Тимор вакыты + + + + + Пасха утравы вакыты + Пасха утравы стандарт вакыты + Пасха утравы җәйге вакыты + + + + + Эквадор вакыты + + + + + Үзәк Европа вакыты + гадәти Үзәк Европа вакыты + җәйге Үзәк Европа вакыты + + + + + Көнчыгыш Европа вакыты + гадәти Көнчыгыш Европа вакыты + җәйге Көнчыгыш Европа вакыты + + + + + Ерак Көнчыгыш Европа вакыты + + + + + Көнбатыш Европа вакыты + гадәти Көнбатыш Европа вакыты + җәйге Көнбатыш Европа вакыты + + + + + Фолкленд утраулары вакыты + Фолкленд утраулары стандарт вакыты + Фолкленд утраулары җәйге вакыты + + + + + Фиджи вакыты + Фиджи стандарт вакыты + Фиджи җәйге вакыты + + + + + Француз Гвиана вакыты + + + + + Француз көньяк һәм Антарктика вакыты + + + + + Галапагос утраулары вакыты + + + + + Гамбье вакыты + + + + + Грузия вакыты + Грузия стандарт вакыты + Грузия җәйге вакыты + + + + + Гилберт утраулары вакыты + + + + + Гринвич уртача вакыты + + + + + Көнчыгыш Гренландия вакыты + Көнчыгыш Гренландия стандарт вакыты + Көнчыгыш Гренландия җәйге вакыты + + + + + Көнбатыш Гренландия вакыты + Көнбатыш Гренландия стандарт вакыты + Көнбатыш Гренландия җәйге вакыты + + + + + Фарсы култыгының стандарт вакыты + + + + + Гайана вакыты + + + + + Гавай-Алеут вакыты + Гавай-Алеут стандарт вакыты + Гавай-Алеут җәйге вакыты + + + + + Гонконг вакыты + Гонконг стандарт вакыты + Гонконг җәйге вакыты + + + + + Ховд вакыты + Ховд стандарт вакыты + Ховд җәйге вакыты + + + + + Һинд стандарт вакыты + + + + + Һинд океаны вакыты + + + + + Һинд-кытай вакыты + + + + + Үзәк Индонезия вакыты + + + + + Көнчыгыш Индонезия вакыты + + + + + Көнбатыш Индонезия вакыты + + + + + Иран вакыты + Иран стандарт вакыты + Иран җәйге вакыты + + + + + Иркутск вакыты + Иркутск стандарт вакыты + Иркутск җәйге вакыты + + + + + Исраил вакыты + Исраил стандарт вакыты + Исраил җәйге вакыты + + + + + Япон вакыты + Япон стандарт вакыты + Япон җәйге вакыты + + + + + Петропавловск-Камчатский вакыты + Петропавловск-Камчатский стандарт вакыты + Петропавловск-Камчатский җәйге вакыты + + + + + Казахстан вакыты + + + + + Көнчыгыш Казахстан вакыты + + + + + Көнбатыш Казахстан вакыты + + + + + Корея вакыты + Корея стандарт вакыты + Корея җәйге вакыты + + + + + Косраэ вакыты + + + + + Красноярск вакыты + Красноярск стандарт вакыты + Красноярск җәйге вакыты + + + + + Кыргызстан вакыты + + + + + Лайн утраулары вакыты + + + + + Лорд Хау вакыты + Лорд Хау стандарт вакыты + Лорд Хау җәйге вакыты + + + + + Магадан вакыты + Магадан стандарт вакыты + Магадан җәйге вакыты + + + + + Малайзия вакыты + + + + + Мальдив утраулары вакыты + + + + + Маркиз утраулары вакыты + + + + + Маршалл утраулары вакыты + + + + + Маврикий вакыты + Маврикий стандарт вакыты + Маврикий җәйге вакыты + + + + + Моусон вакыты + + + + + Мексика Тыныч океан вакыты + Мексика Тыныч океан стандартвакыты + Мексика Тыныч океан җәйге вакыты + + + + + Улан-Батор вакыты + Улан-Батор стандарт вакыты + Улан-Батор җәйге вакыты + + + + + Мәскәү вакыты + Мәскәү стандарт вакыты + Мәскәү җәйге вакыты + + + + + Мьянма вакыты + + + + + Науру вакыты + + + + + Непал вакыты + + + + + Яңа Каледония вакыты + Яңа Каледония стандарт вакыты + Яңа Каледония җәйге вакыты + + + + + Яңа Зеландия вакыты + Яңа Зеландия стандарт вакыты + Яңа Зеландия җәйге вакыты + + + + + Ньюфаундленд вакыты + Ньюфаундленд стандарт вакыты + Ньюфаундленд җәйге вакыты + + + + + Ниуэ вакыты + + + + + Норфолк утравы вакыты + Норфолк утравы стандарт вакыты + Норфолк утравы җәйге вакыты + + + + + Фернанду-ди-Норонья вакыты + Фернанду-ди-Норонья стандарт вакыты + Фернанду-ди-Норонья җәйге вакыты + + + + + Новосибирск вакыты + Новосибирск стандарт вакыты + Новосибирск җәйге вакыты + + + + + Омск вакыты + Омск стандарт вакыты + Омск җәйге вакыты + + + + + Пакистан вакыты + Пакистан стандарт вакыты + Пакистан җәйге вакыты + + + + + Палау вакыты + + + + + Папуа Яңа Гвинея вакыты + + + + + Парагвай вакыты + Парагвай стандарт вакыты + Парагвай җәйге вакыты + + + + + Перу вакыты + Перу стандарт вакыты + Перу җәйге вакыты + + + + + Филиппин вакыты + Филиппин стандарт вакыты + Филиппин җәйге вакыты + + + + + Феникс утраулары вакыты + + + + + Сен-Пьер һәм Микелон вакыты + Сен-Пьер һәм Микелон стандарт вакыты + Сен-Пьер һәм Микелон җәйге вакыты + + + + + Питкэрн вакыты + + + + + Понапе вакыты + + + + + Пхеньян вакыты + + + + + Реюньон вакыты + + + + + Ротера вакыты + + + + + Сахалин вакыты + Сахалин стандарт вакыты + Сахалин җәйге вакыты Самара вакыты + Самара стандарт вакыты + Самара җәйге вакыты + + + + + Самоа вакыты + Самоа стандарт вакыты + Самоа җәйге вакыты + + + + + Сейшел утраулары вакыты + + + + + Сингапур стандарт вакыты + + + + + Соломон утраулары вакыты + + + + + Көньяк Джорджия вакыты + + + + + Суринам вакыты + + + + + Сёва вакыты + + + + + Таити вакыты + + + + + Тайпей вакыты + Тайпей стандарт вакыты + Тайпей җәйге вакыты + + + + + Таҗикстан вакыты + + + + + Токелау вакыты + + + + + Тонга вакыты + Тонга стандарт вакыты + Тонга җәйге вакыты + + + + + Чуук вакыты + + + + + Төркмәнстан вакыты + Төркмәнстан стандарт вакыты + Төркмәнстан җәйге вакыты + + + + + Тувалу вакыты + + + + + Уругвай вакыты + Уругвай стандарт вакыты + Уругвай җәйге вакыты + + + + + Үзбәкстан вакыты + Үзбәкстан стандарт вакыты + Үзбәкстан җәйге вакыты + + + + + Вануату вакыты + Вануату стандарт вакыты + Вануату җәйге вакыты + + + + + Венесуэла вакыты + + + + + Владивосток вакыты + Владивосток стандарт вакыты + Владивосток җәйге вакыты + + + + + Волгоград вакыты + Волгоград стандарт вакыты + Волгоград җәйге вакыты + + + + + Восток вакыты + + + + + Уэйк утравы вакыты + + + + + Уоллис һәм Футуна вакыты + + + + + Якутск вакыты + Якутск стандарт вакыты + Якутск җәйге вакыты + + + + + Екатеринбург вакыты + Екатеринбург стандарт вакыты + Екатеринбург җәйге вакыты + + + + + Юкон вакыты @@ -1325,6 +3464,40 @@ CLDR data files are interpreted according to the LDML specification (http://unic ,   + + + + 0 мең + 00 мең + 000 мең + 0 миллион + 00 миллион + 000 миллион + 0 миллиард + 00 миллиард + 000 миллиард + 0 триллион + 00 триллион + 000 триллион + + + + + 0 мең + 00 мең + 000 мең + 0 млн + 00 млн + 000 млн + 0 млрд + 00 млрд + 000млрд + 0 трлн + 00 трлн + 000 трлн + + + @@ -1345,29 +3518,480 @@ CLDR data files are interpreted according to the LDML specification (http://unic #,##0.00 ¤ - {0} {1} + + + ¤0 мең + ¤00 мең + ¤000 мең + ¤0 млн + ¤00 млн + ¤000 млн + ¤0 млрд + ¤00 млрд + ¤000 млрд + ¤0 трлн + ¤00 трлн + ¤000 трлн + + + + Берләшкән Гарәп Әмирлекләре дирхамы + Берләшкән Гарәп Әмирлекләре дирхамнары + + + Әфган әфганы + Әфган әфганлары + + + Албания Леке + Албания леке + + + Армения драмы + Армения драмнары + + + Нидерланд Антиль утраулары гульдены + Нидерланд Антиль утраулары гульденнары + + + Ангола кванзасы + Ангола кванзалары + + + Аргентина песосы + Аргентина песолары + + + Австралия доллары + Австралия долларлары + + + Арубан Флорины + Арубан флорины + + + Әзербайҗан манаты + Әзербайҗан манатлары + + + Босния һәм Герцеговинаның конвертацияләнә торган маркасы + Босния һәм Герцеговинаның конвертацияләнә торган маркалары + + + Барбадос доллары + Барбадос долларлары + + + Бангладеш такасы + Бангладеш такалары + + + Болгар Левы + Болгар левы + + + Бахрейн динары + Бахрейн динарлары + + + Бурунди франкы + Бурунди франклары + + + Бермуд доллары + Бермуд долларлары + + + Бруней доллары + Бруней долларлары + + + Боливиа боливианосы + Боливиа боливианолары + Бразилия реалы + + Багам доллары + Багам долларлары + + + Бутан нгултрумы + Бутан нгултрумнары + + + Ботсвана пуласы + Ботсвана пулалары + + + Беларус сумы + Беларус сумнары + + + Белиз доллары + Белиз долларлары + + + Канада доллары + Канада долларлары + + + Конголез франкы + Конголез франклары + + + Швейцария франкы + Швейцария франклары + + + Чили песосы + Чили песолары + + + Кытай Юане (оффшор) + Кытай юане (оффшор) + кытай юане юань + + Колумбия песосы + Колумбия песолары + + + Коста-Рика колоны + Коста-Рика колоннары + + + Куба конвертацияләнә торган песосы + Куба конвертацияләнә торган песолары + + + Куба песосы + Куба песолары + + + Кабо-Верде эскудосы + Кабо-Верде эскудолары + + + Чех кронасы + Чех кроналары + + + Җибути франкы + Җибути франклары + + + Дания Кронасы + Дания кронасы + + + Доминикана песосы + Доминикана пеослары + + + Алжир динары + Алжир динарлары + + + Мисыр фунты + Мисыр фунтлары + + + Эритрея накфасы + Эритрея накфалары + + + Эфиопия быры + Эфиопия бырлары + евро + + Фиджи доллары + Фиджи долларлары + + + Фолкленд утраулары фунты + Фолкленд утраулары фунтлары + фунт стерлинг + + Грузия ларие + Грузия ларилары + + + Гана седие + Гана седилары + + + Гибралтар фунты + Гибралтар фунтлары + + + Гамбия даласие + Гамбия даласилары + + + Гвинея франкы + Гвинея франклары + + + Гватемала кетсалы + Гватемала кетсалилары + + + Гайана доллары + Гайана долларлары + + + Гонконг доллары + Гонконг долларлары + + + Гондурас лемпиры + Гондурас лемпирлары + + + Хорватия кунасы + Хорватия куннары + + + Гаити гурды + Гаити гурдлары + + + Венгрия форинты + Венгрия форинтлары + + + Индонезия рупиясе + Индонезия рупияләре + + + Израиль яңа шекеле + Израиль яңа шекельләре + Индия рупиясе + + Ирак динары + Ирак динарлары + + + Иран риалы + Иран риаллары + + + Исландия Кронасы + Исландия кронасы + + + Ямайка доллары + Ямайка долларлары + + + Иордания динары + Иордания динарлары + япон иенасы иена + + Кения шиллингы + Кения шиллинглары + + + Ккргызстан сомы + Кыргызстан сомнары + + + Камбоджа риелы + Камбоджа риеллары + + + Комор утраулары франкы + Комор утраулары франклары + + + Төньяк Корея Вонасы + Төньяк Корея вонасы + + + Көньяк Корея Вонасы + Көньяк Корея вонасы + + + Кувейт динары + Кувейт динарлары + + + Кайман утраулары доллары + Кайман утраулары долларлары + + + Казахстан тәңкәсе + Казахстан тәңкәләре + + + Лаос кипы + Лаос киплары + + + Ливан фунты + Ливан фунтлары + + + Шри-Ланка рупиясе + Шри-Ланка рупияләре + + + Либерия доллары + Либерия долларлары + + + Лесото лотисы + Лесото лотислары + + + Ливия динары + Ливия динарлары + + + Марокко дирхамы + Марокко дирхамнары + + + Молдавия Лее + Молдавия лее + + + Малагаси ариариясе + Малагаси ариарияләре + + + Македония денары + Македония денарлары + + + Мьянма кьяты + Мьянма кьятлары + + + Монголия тугрикы + Монголия тугриклары + + + Макао патакы + Макао патаклары + + + Мавритан угиясы + Мавритан угиялары + + + Маврикий рупие + Маврикий рупиялары + + + Мальдив руфиясе + Мальдив руфияләре + + + Малавия квачие + Малавия квачилары + + + Мексика песосы + Мексика песолары + + + Малайзия ринггиты + Малайзия ринггитлары + + + Мозамбик метикалы + Мозамбик метикаллары + + + Намибия доллары + Намибия долларлары + + + Нигерия найрасы + Нигерия найралары + + + Никарагуа кордовасы + Никарагуа кордовалары + + + Норвегия Кронасы + Норвегия кронасы + + + Непал рупиясе + Непал рупияләре + + + Яңа Зеландия доллары + Яңа Зеландия долларлары + + + Оман риалы + Оман риаллары + + + Панама бальбоасы + Панама бальбоалары + + + Перу солы + Перу соллары + + + Папуа Яңа Гвинея Кинасы + Папуа Яңа Гвинея кинасы + + + Филиппин песосы + Филиппин песолары + + + Пакистан рупиясе + Пакистан рупияләре + + + Польша злотые + Польша злотыйлары + + + Парагвай гуаранисы + Парагвай гуаранилары + + + Катар риалы + Катар риаллары + + + Румыния Лее + Румыния лее + + + Сербия динары + Сербия динарлары + Россия сумы сум @@ -1376,25 +4000,241 @@ CLDR data files are interpreted according to the LDML specification (http://unic р. + + Руанда франкы + Руанда франклары + + + Согуд Гарәбстаны риалы + Согуд Гарәбстаны риаллары + + + Соломон утраулары доллары + Соломон утраулары долларлары + + + Сейшел утраулары рупиясы + Сейшел утраулары рупиялары + + + Судан фунты + Судан фунтлары + + + Швеция Кронасы + Швеция кронасы + + + Сингапур доллары + Сингапур долларлары + + + Изге Елена утравы фунты + Изге Елена утравы фунтлары + + + Сьерра-Леон леоны + Сьерра-Леоне леоннары + + + Сьерра-Леоне леоны (1964—2022) + Сьерра-Леоне леоннары (1964—2022) + + + Сомали шиллингы + Сомали шиллинглары + + + Суринам доллары + Суринам долларлары + + + Көньяк Судан фунты + Көньяк Судан фунтлары + + + Сан-Томе һәм Принсипи добрасы + Сан-Томеһәм Принсипи добралары + + + Сурия фунты + Сурия фунтлары + + + Свази эмалангенисы + Свази эмалангенилары + + + Тайвань Баты + Тайвань баты + + + Таҗикстан сомонисы + Таҗикстан сомонилары + + + Төркмәнстан Манаты + Төркмәнстан манаты + + + Тунис динары + Тунис динарлары + + + Тонга Паангасы + Тонга паангасы + + + Төркия Лирасы + Төркия лирасы + + + Тринидад һәм Тобаго доллары + Тринидад һәм Тобаго долларлары + + + Яңа Тайвань доллары + Яңа Тайвань долларлары + + + Танзания шиллингы + Танзания шиллинглары + + + Украина гривнасы + Украина гривналары + + + Уганда шиллингы + Уганда шиллинглары + АКШ доллары $ + + Уругвай песосы + Уругвай песолары + + + Үзбәкстан Сомы + Үзбәкстан сомы + + + Венесуэла боливары + Венесуэла боливарлары + + + Вьетнам Донгы + Вьетнам донгы + + + Вануату ваты + Вануату ватлары + + + Самоа Таласы + Самоа таласы + + + Үзәк Африка франкы КФА + Үзәк африка франклары КФА + + + Көнчыгыш Кариб доллары + Көнчыгыш Кариб долларлары + + + Көнбатыш Африка КФА франкы + Көнбатыш Африка КФА франклары + + + Франциянең диңгез аръягы җәмгыятьләре франкы + Франциянең диңгез аръягы җәмгыятьләре франклары + билгесез валюта (билгесез валюта) + + Йәмән риалы + Йәмән риаллары + + + Көньяк Африка Рэнды + Көньяк Африка рэнды + + + Замбия квачасы + Замбия квачалары + {0}+ {0}-{1} + + {0} көн + {0} уңга борылыгыз. + + + + + {0} һәр {1} + + + кардиналь юнәлеш + {0} көнчыгыш + {0} төньяк + {0} көньяк + {0} көнбатыш + + + + + юнәлеш + {0} көнчыгыш + {0} төньяк + {0} көньяк + {0} көнбатыш + + + {0} һәм {1} {0} һәм {1} + + {0}, яки {1} + {0} яки {1} + + + {0}, яки {1} + {0} яки {1} + + + {0}, яки {1} + {0} яки {1} + + + {0}, {1} + {0}, {1} + + + {0}, {1} + {0}, {1} + + + {0} {1} + {0} {1} + {0} {1} + + + {0}, {1} + {0}, {1} + diff --git a/make/data/cldr/common/main/ug.xml b/make/data/cldr/common/main/ug.xml index 3b5bab65654..d33d0faa2bd 100644 --- a/make/data/cldr/common/main/ug.xml +++ b/make/data/cldr/common/main/ug.xml @@ -1150,6 +1150,7 @@ Reviewed by Waris Abdukerim Janbaz of the Uyghur Computer Sci [{ئا} {ئه} {ئو} {ئۇ} {ئۆ} {ئۈ} {ئې} {ئى} ا ە ب پ ت ج چ خ د ر ز ژ س ش غ ف ق ك گ ڭ ل م ن ھ و ۇ ۆ ۈ ۋ ې ى ي] [\u200E\u200F ئ] [{ئا} {ئه} {ئو} {ئۇ} {ئۆ} {ئۈ} {ئې} {ئى} ا ە ب پ ت ج چ خ د ر ز ژ س ش غ ف ق ك گ ڭ ل م ن ھ و ۇ ۆ ۈ ۋ ې ى ي] + [\- ‑ , ; \: ! ? . ‹ › « » ( ) \[ \] \{ \}] » @@ -2186,13 +2187,6 @@ Reviewed by Waris Abdukerim Janbaz of the Uyghur Computer Sci جۇڭگو يازلىق ۋاقتى - - - چويبالسان ۋاقتى - چويبالسان ئۆلچەملىك ۋاقتى - چويبالسان يازلىق ۋاقتى - - روژدېستۋو ئارىلى ۋاقتى diff --git a/make/data/cldr/common/main/uk.xml b/make/data/cldr/common/main/uk.xml index 74b4fe9fd0b..07e964a224b 100644 --- a/make/data/cldr/common/main/uk.xml +++ b/make/data/cldr/common/main/uk.xml @@ -81,6 +81,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ банджарська ком сіксіка + анії бамбара бенгальська тибетська @@ -214,7 +215,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ кучін хауса хайда - хаккаська + хаккаська гавайська південна гайда іврит @@ -226,7 +227,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ хірі-моту хорватська верхньолужицька - сянська китайська + сянська китайська гаїтянська креольська угорська хупа @@ -301,6 +302,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ комі корнська кваквала + куві киргизька латинська ладино @@ -311,10 +313,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ лезгінська ганда лімбургійська - лігурійська + лігурійська лілуетська лакота - ломбардська + ладинська + ломбардська лінгала лаоська монго @@ -323,6 +326,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ північнолурська самія литовська + латгальська луба-катанга луба-лулуа луїсеньо @@ -453,7 +457,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ рва санскрит сандаве - саха + якутська самаритянська арамейська самбуру сасакська @@ -508,6 +512,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ коморська сирійська класична сирійська + сілезька тамільська південна тутчон телугу @@ -556,7 +561,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ узбецька ваї венда + венеційська вʼєтнамська + макува волапюк водська вуньо @@ -570,6 +577,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ китайська уська калмицька кхоса + кангрі сога яо яп @@ -1132,8 +1140,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ індійський світський календар календар Хіджра календар Хіджра, світський - ісламський календар Саудівської Аравії - ісламський астрономічний календар + ісламський календар Саудівської Аравії + ісламський астрономічний календар календар Хіджра (Умм аль-Кура) календар ISO-8601 японський календар @@ -1290,7 +1298,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -1443,7 +1451,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - cccc, d MMMM y 'р'. G + EEEE, d MMMM y 'р'. G @@ -1724,13 +1732,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ сб - неділю + неділя понеділок вівторок - середу + середа четвер - пʼятницю - суботу + пʼятниця + субота @@ -1743,15 +1751,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ П С - - неділя - понеділок - вівторок - середа - четвер - пʼятниця - субота - @@ -1773,9 +1772,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - опівночі + ночі дп - опівдні + дня пп ранку дня @@ -1790,6 +1789,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ вечора ночі + + ночі + дня + ранку + дня + вечора + ночі + @@ -1821,7 +1828,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - cccc, d MMMM y 'р'. + EEEE, d MMMM y 'р'. @@ -3187,6 +3194,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ час: {0} час: {0}, літній час: {0}, стандартний + + Гонолулу + за всесвітнім координованим часом @@ -3924,9 +3934,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Улан-Батор - - Чойбалсан - Макао @@ -4326,9 +4333,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ном - - Гонолулу - Анкоридж @@ -4687,13 +4691,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ за китайським літнім часом - - - за часом у Чойбалсані - за стандартним часом у Чойбалсані - за літнім часом у Чойбалсані - - за часом на острові Різдва @@ -4944,6 +4941,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ за камчатським літнім часом + + + за часом у Казахстані + + за східним часом у Казахстані @@ -5525,10 +5527,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 трлн ¤ - {0} {1} - {0} {1} - {0} {1} - {0} {1} @@ -7138,7 +7136,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Знайшли {0} Це відповідає {0} Немає {0} - Вимірюється не {0} + Вимірюється {0} Міститься в {0} Є {0} Ця {0} @@ -7740,11 +7738,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} карата + masculine міліграми на децилітр {0} міліграм на децилітр + {0} міліграм на децилітр + {0} міліграму на децилітр + {0} міліграма на децилітр + {0} міліграмом на децилітр + {0} міліграмі на децилітр {0} міліграми на децилітр + {0} міліграми на децилітр + {0} міліграмам на децилітр + {0} міліграмів на децилітр + {0} міліграмами на децилітр + {0} міліграмах на децилітр {0} міліграмів на децилітр + {0} міліграмів на децилітр + {0} міліграмам на децилітр + {0} міліграмів на децилітр + {0} міліграмами на децилітр + {0} міліграмах на децилітр {0} міліграма на децилітр + {0} міліграма на децилітр + {0} міліграма на децилітр + {0} міліграма на децилітр + {0} міліграма на децилітр + {0} міліграма на децилітр masculine @@ -8347,31 +8366,31 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ neuter - десятиріччя - {0} десятиріччя - {0} десятиріччя - {0} десятиріччю - {0} десятиріччя - {0} десятиріччям - {0} десятиріччі - {0} десятиріччя - {0} десятиріччя - {0} десятиріччям - {0} десятиріч - {0} десятиріччями - {0} десятиріччях - {0} десятиріч - {0} десятиріч - {0} десятиріччям - {0} десятиріч - {0} десятиріччями - {0} десятиріччях - {0} десятиріччя - {0} десятиріччя - {0} десятиріччя - {0} десятиріччя - {0} десятиріччя - {0} десятиріччя + десятиліття + {0} десятиліття + {0} десятиліття + {0} десятиліттю + {0} десятиліття + {0} десятиліттям + {0} десятилітті + {0} десятиліття + {0} десятиліття + {0} десятиліттям + {0} десятиліть + {0} десятиліттями + {0} десятиліттях + {0} десятиліть + {0} десятиліть + {0} десятиліттям + {0} десятиліть + {0} десятиліттями + {0} десятиліттях + {0} десятиліття + {0} десятиліття + {0} десятиліття + {0} десятиліття + {0} десятиліття + {0} десятиліття masculine @@ -8816,11 +8835,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} вольта + feminine кілокалорії {0} кілокалорія + {0} кілокалорію + {0} кілокалорії + {0} кілокалорії + {0} кілокалорією + {0} кілокалорії {0} кілокалорії + {0} кілокалорії + {0} кілокалоріям + {0} кілокалорій + {0} кілокалоріями + {0} кілокалоріях {0} кілокалорій + {0} кілокалорій + {0} кілокалоріям + {0} кілокалорій + {0} кілокалоріями + {0} кілокалоріях {0} кілокалорії + {0} кілокалорії + {0} кілокалорії + {0} кілокалорії + {0} кілокалорії + {0} кілокалорії feminine @@ -8869,7 +8909,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} кілоджоулі {0} кілоджоулі {0} кілоджоулям - {0} кілоджоулі + {0} кілоджоулів {0} кілоджоулями {0} кілоджоулів {0} кілоджоулів @@ -8956,7 +8996,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} британської теплової одиниці - американський терм + американські терми {0} американський терм {0} американських терми {0} американських термів @@ -9278,7 +9318,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} точки - радіус Землі + радіуси Землі {0} радіус Землі {0} радіуси Землі {0} радіусів Землі @@ -9590,11 +9630,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} скандинавської милі + masculine пункти {0} пункт + {0} пункт + {0} пункту + {0} пункту + {0} пунктом + {0} пункті {0} пункти + {0} пункти + {0} пунктам + {0} пунктів + {0} пунктами + {0} пунктах {0} пунктів + {0} пунктів + {0} пунктам + {0} пунктів + {0} пунктами + {0} пунктах {0} пункту + {0} пункту + {0} пункту + {0} пункту + {0} пункту + {0} пункту радіуси Сонця @@ -10068,11 +10129,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} кінської сили + masculine міліметри ртутного стовпа {0} міліметр ртутного стовпа + {0} міліметр ртутного стовпа + {0} міліметру ртутного стовпа + {0} міліметра ртутного стовпа + {0} міліметром ртутного стовпа + {0} міліметрі ртутного стовпа {0} міліметри ртутного стовпа + {0} міліметри ртутного стовпа + {0} міліметрам ртутного стовпа + {0} міліметрів ртутного стовпа + {0} міліметрами ртутного стовпа + {0} міліметрах ртутного стовпа {0} міліметрів ртутного стовпа + {0} міліметрів ртутного стовпа + {0} міліметрам ртутного стовпа + {0} міліметрів ртутного стовпа + {0} міліметрами ртутного стовпа + {0} міліметрах ртутного стовпа {0} міліметра ртутного стовпа + {0} міліметра ртутного стовпа + {0} міліметра ртутного стовпа + {0} міліметра ртутного стовпа + {0} міліметра ртутного стовпа + {0} міліметра ртутного стовпа фунти на квадратний дюйм @@ -10314,41 +10396,41 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ masculine - метри на секунду - {0} метр на секунду - {0} метр на секунду - {0} метру на секунду - {0} метра на секунду - {0} метром на секунду - {0} метрі на секунду - {0} метри на секунду - {0} метри на секунду - {0} метрам на секунду - {0} метрів на секунду - {0} метрами на секунду - {0} метрах на секунду - {0} метрів на секунду - {0} метрів на секунду - {0} метрам на секунду - {0} метрів на секунду - {0} метрами на секунду - {0} метрах на секунду - {0} метра на секунду - {0} метра на секунду - {0} метра на секунду - {0} метра на секунду - {0} метра на секунду - {0} метра на секунду + метри за секунду + {0} метр за секунду + {0} метр за секунду + {0} метру за секунду + {0} метра за секунду + {0} метром за секунду + {0} метрі за секунду + {0} метри за секунду + {0} метри за секунду + {0} метрам за секунду + {0} метрів за секунду + {0} метрами за секунду + {0} метрах за секунду + {0} метрів за секунду + {0} метрів за секунду + {0} метрам за секунду + {0} метрів за секунду + {0} метрами за секунду + {0} метрах за секунду + {0} метра за секунду + {0} метра за секунду + {0} метра за секунду + {0} метра за секунду + {0} метра за секунду + {0} метра за секунду - милі на годину - {0} миля на годину - {0} милі на годину - {0} миль на годину - {0} милі на годину + милі за годину + {0} миля за годину + {0} милі за годину + {0} миль за годину + {0} милі за годину - вузол + вузли {0} вузол {0} вузли {0} вузлів @@ -10747,7 +10829,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ feminine - метрична пінта + метричні пінти {0} метрична пінта {0} метричну пінту {0} метричній пінті @@ -10898,7 +10980,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} рідинної драхми - мірна склянка + мірні склянки {0} мірна склянка {0} мірні склянки {0} мірних склянок @@ -10911,6 +10993,63 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} англійських кварт {0} англійської кварти + + feminine + частини на мільярд + {0} частина на мільярд + {0} частину на мільярд + {0} частині на мільярд + {0} частини на мільярд + {0} частиною на мільярд + {0} частині на мільярд + {0} частини на мільярд + {0} частини на мільярд + {0} частинам на мільярд + {0} частин на мільярд + {0} частинами на мільярд + {0} частинах на мільярд + {0} частин на мільярд + {0} частин на мільярд + {0} частинам на мільярд + {0} частин на мільярд + {0} частинами на мільярд + {0} частинах на мільярд + {0} частини на мільярд + {0} частини на мільярд + {0} частини на мільярд + {0} частини на мільярд + {0} частини на мільярд + {0} частини на мільярд + + + feminine + ночі + {0} ніч + {0} ніч + {0} ночі + {0} ночі + {0} ніччю + {0} ночі + {0} ночі + {0} ночі + {0} ночам + {0} ночей + {0} ночами + {0} ночах + {0} ночей + {0} ночей + {0} ночам + {0} ночей + {0} ночами + {0} ночах + {0} ночі + {0} ночі + {0} ночі + {0} ночі + {0} ночі + {0} ночі + {0} за ніч + сторона світу {0} східної довготи @@ -11151,7 +11290,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} мг/дл - мілімоль/літер + мілімоль/літр {0} ммоль/л {0} ммоль/л {0} ммоль/л @@ -11165,20 +11304,29 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ел. - мільйонні долі + м. д. {0} м. д. {0} м. д. {0} м. д. {0} м. д. - відсоток + {0} % + {0} % + {0} % + {0} % - проміле + {0} ‰ + {0} ‰ + {0} ‰ + {0} ‰ - проміріада + {0} ‱ + {0} ‱ + {0} ‱ + {0} ‱ моль @@ -11202,21 +11350,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} л/100 км - милі/гал. - {0} миля/гал. - {0} милі/гал. - {0} миль/гал. - {0} милі/гал. + милі/гал + {0} миля/гал + {0} милі/гал + {0} миль/гал + {0} милі/гал - милі/англ. гал. - {0} миля/англ. гал. - {0} милі/англ. гал. - {0} миль/англ. гал. - {0} милі/англ. гал. + милі/англ. гал + {0} миля/англ. гал + {0} милі/англ. гал + {0} миль/англ. гал + {0} милі/англ. гал - ПБ + Пбайт {0} ПБ {0} ПБ {0} ПБ @@ -11300,11 +11448,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ст. - 10-річчя - {0} 10-річчя - {0} 10-річчя - {0} 10-річ - {0} 10-річ + 10-ліття + {0} 10-ліття + {0} 10-ліття + {0} 10-літь + {0} 10-ліття р. @@ -11336,10 +11484,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} тиж. {0} тиж. {0} тиж. - {0}/тиж. + {0}/тиж - дні + дн. {0} дн. {0} дн. {0} дн. @@ -11814,7 +11962,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} унц. {0} унц. {0} унц. - {0}/унц. + {0}/унц тр. унції @@ -11824,11 +11972,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} тр. унції - карати - {0} кар - {0} кар - {0} кар - {0} кар + кар. + {0} кар. + {0} кар. + {0} кар. + {0} кар. дальтони @@ -11923,9 +12071,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ мбар {0} мбар - {0} мбари - {0} мбарів - {0} мбара + {0} мбар + {0} мбар + {0} мбар атм @@ -12070,9 +12218,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ фути³ {0} фут³ - {0} фт³ - {0} фт³ - {0} фт³ + {0} фути³ + {0} футів³ + {0} фута³ дюйми³ @@ -12125,7 +12273,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} мл - метр. пінта + метр. пінти {0} метр. пінта {0} метр. пінти {0} метр. пінт @@ -12158,7 +12306,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} гал. {0} гал. {0} гал. - {0}/гал. + {0}/гал англ. галони @@ -12260,11 +12408,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} мірки - дрібки - {0} дрібка - {0} дрібки - {0} дрібок - {0} дрібки + дріб. + {0} дріб. + {0} дріб. + {0} дріб. + {0} дріб. англ. кварти @@ -12273,6 +12421,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} англ. кварт {0} англ. кварти + + частини/млрд + {0} част/млрд + {0} част/млрд + {0} част/млрд + {0} част/млрд + + + нч. + {0} нч. + {0} нч. + {0} нч. + {0} нч. + {0}/ніч + напрямок {0} сх. д. @@ -12394,10 +12557,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ кар. - {0}кар. - {0}кар. - {0}кар. - {0}кар. + {0}кар + {0}кар + {0}кар + {0}кар {0}мг/дл @@ -12419,7 +12582,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}ел. - м. д. + м.д. {0}м.д. {0}м.д. {0}м.д. @@ -12461,11 +12624,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}мл/гал - мл/англ. гал. - {0}мл/англ.гал. - {0}мл/англ.гал. - {0}мл/англ.гал. - {0}мл/англ.гал. + мл/англ.гал + {0}мл/англ.гал + {0}мл/англ.гал + {0}мл/англ.гал + {0}мл/англ.гал {0}ПБ @@ -12550,6 +12713,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}ст {0}ст + + 10-літ. + {0} 10-літ. + {0} 10-літ. + {0} 10-літ. + {0} 10-літ. + р {0}р @@ -12723,6 +12893,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}Н + кВт⋅год/100км {0}кВт⋅год/100км {0}кВт⋅год/100км {0}кВт⋅год/100км @@ -12930,7 +13101,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}м.мл - міл + ск.мл {0}ск.мл {0}ск.мл {0}ск.мл @@ -13125,6 +13296,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}фнт/дюйм² + дмрс {0}дмрс {0}дмрс {0}дмрс @@ -13349,6 +13521,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}гал. {0}гал. {0}гал. + {0}/гал англ. гал. @@ -13422,10 +13595,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ англ. дес. л. - {0} англ. дес. л. - {0} англ. дес. л. - {0} англ. дес. л. - {0} англ. дес. л. + {0} англ. дес. л. + {0} англ. дес. л. + {0} англ. дес. л. + {0} англ. дес. л. кр. @@ -13435,7 +13608,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}кр. - рід. дрхм + рід.дрхм {0}рід.дрхм {0}рід.дрхм {0}рід.дрхм @@ -13457,10 +13630,25 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ англ. квар. - {0} англ. квар. - {0} англ. квар. - {0} англ. квар. - {0} англ. квар. + {0}англ.квар. + {0}англ.квар. + {0}англ.квар. + {0}англ.квар. + + + ч/млрд + {0} ч/млрд + {0} ч/млрд + {0} ч/млрд + {0} ч/млрд + + + нч + {0}нч + {0}нч + {0}нч + {0}нч + {0}/нч напрям diff --git a/make/data/cldr/common/main/ur.xml b/make/data/cldr/common/main/ur.xml index 53f27ecf32d..c9eb2ebcf20 100644 --- a/make/data/cldr/common/main/ur.xml +++ b/make/data/cldr/common/main/ur.xml @@ -61,6 +61,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ بسلاما بینی سکسیکا + عانی بمبارا بنگلہ تبتی @@ -184,6 +185,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ایبان ابی بیو انڈونیثیائی + غربی اِگبو سچوان ای مغربی کینیڈین اینُکٹیٹٹ @@ -238,6 +240,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ کومی کورنش کیواکوالا + کووی کرغیزی لاطینی لیڈینو @@ -246,9 +249,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ لیزگیان گینڈا لیمبرگش + لیگوریائی للوئیٹ لاکوٹا - لومبارڈ + لومبارڈ لِنگَلا لاؤ لوزیانا کریول @@ -286,7 +290,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ انو ایمن موہاک موسی - مراٹهی + مراٹھی مالے مالٹی منڈانگ @@ -405,6 +409,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ کانگو سواحلی کوموریائی سریانی + سیلیزیائی تمل جنوبی ٹچون تیلگو @@ -446,7 +451,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ازبیک وائی وینڈا + وینسی ویتنامی + ماکوائی وولاپوک ونجو والون @@ -458,6 +465,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ وو چائینیز کالمیک ژوسا + کانگری سوگا یانگبین یمبا @@ -466,6 +474,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ نینگاٹو کینٹونیز چینی، کینٹونیز + ژوانگی اسٹینڈرڈ مراقشی تمازیقی چینی چینی، مندارن @@ -692,8 +701,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ اسرائیل آئل آف مین بھارت - برطانوی بحر ہند کا علاقہ - جزائر چاگوس + برطانوی بحر ہند کا علاقہ + جزائر چاگوس عراق ایران آئس لینڈ @@ -886,10 +895,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ گریگورین کیلنڈر عبرانی کیلنڈر ہندوستانی قومی کیلنڈر - اسلامی کیلنڈر - اسلامی شہری کیلنڈر (ٹیبیولر، مدنی دور) - اسلامی کیلنڈر (ٹیبولر، فلکیاتی دور) - اسلامی کیلنڈر (ام القراہ) + اسلامی کیلنڈر + اسلامی شہری کیلنڈر (ٹیبیولر، مدنی دور) + اسلامی کیلنڈر (ٹیبولر، فلکیاتی دور) + اسلامی کیلنڈر (ام القراہ) ISO-8601 کیلنڈر جاپانی کیلنڈر فارسی کیلنڈر @@ -2047,6 +2056,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} وقت {0} ڈے لائٹ ٹائم {0} معیاری وقت + + ہونولولو + کوآرڈینیٹڈ یونیورسل ٹائم @@ -2784,9 +2796,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ اولان باتار - - چوئبالسان - مکاؤ @@ -3186,9 +3195,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ نوم - - ہونولولو - اینکریج @@ -3540,13 +3546,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ چینی ڈے لائٹ ٹائم - - - کوئبلسان ٹائم - کوئبلسان سٹینڈرڈ ٹائم - کوائبلسان سمر ٹائم - - کرسمس آئلینڈ ٹائم @@ -3792,6 +3791,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ پیٹروپاؤلووسک-کیمچسکی سمر ٹائم + + + قازقستان کا وقت + + مشرقی قزاخستان کا وقت @@ -4219,6 +4223,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ arabext + + ، + , + + + E + ; % @@ -4334,8 +4344,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤ 000 ٹریلین - {0} {1} - {0} {1} @@ -5086,6 +5094,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} قیراط + masculine ملی گرام فی ڈیسی لیٹر {0} ملی گرام فی ڈیسی لیٹر {0} ملی گرام فی ڈیسی لیٹر @@ -5290,6 +5299,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} وولٹ + feminine کلو کیلوریز {0} کلو کیلوری {0} کلو کیلوریز @@ -5496,6 +5506,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} اسکینڈی نیویائی میل + masculine {0} پوائنٹ {0} پوائنٹس @@ -5628,6 +5639,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} ہارس پاور + masculine ملی میٹر مرکری {0} ملی میٹر مرکری {0} ملی میٹر مرکری @@ -5888,6 +5900,25 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} امپیریئل کوارٹ {0} امپیریئل کوارٹ + + feminine + روشنی + {0} روشنی + {0} روشنی + + + masculine + اجزا فی بلین + {0} جزو فی بلین + {0} اجزا فی بلین + + + feminine + راتیں + {0} رات + {0} راتیں + {0} فی رات + کارڈینل ڈائریکشن {0} مشرق @@ -6387,6 +6418,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} چٹکی {0} چٹکی + + روشنی + {0} روشنی + {0} روشنی + + + اجزا/بلین + + + راتیں + {0} رات + {0} راتیں + {0}/رات + ڈائریکشن @@ -6699,6 +6744,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}fl.dr. {0}fl.dr. + + روشنی + {0} روشنی + {0} روشنی + + + {0}ppb + {0}ppb + + + راتیں + {0} رات + {0} راتیں + {0}/رات + diff --git a/make/data/cldr/common/main/uz.xml b/make/data/cldr/common/main/uz.xml index 647f507ab45..b60fc4602ef 100644 --- a/make/data/cldr/common/main/uz.xml +++ b/make/data/cldr/common/main/uz.xml @@ -56,6 +56,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ bislama bini siksika + Anii bambara bengal tibet @@ -179,6 +180,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ iban ibibio indonez + interlingve igbo sichuan sharqiy-kanada inuktitut @@ -232,6 +234,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ komi korn kvakvala + kuvi qirgʻizcha lotincha ladino @@ -240,8 +243,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lezgin ganda limburg + liguryan lilluet lakota + lombard lingala laos luiziana kreol @@ -252,7 +257,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ luba-katanga luba-lulua lunda - luo lushay luhya latishcha @@ -396,7 +400,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ suaxili suaxili (Kongo) qamar - suriyacha + suryoniy + silez tamil janubiy tutchone telugu @@ -434,9 +439,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ noma’lum til urdu o‘zbek - vai venda + venet vyetnam + makua volapyuk vunjo vallon @@ -448,6 +454,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ vu xitoy qalmoq kxosa + kangri soga yangben yemba @@ -456,9 +463,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ nyengatu kanton xitoy, kanton + Chjuan tamazigxt xitoy xitoy, mandarin + zh_Hans xitoy (soddalashtirilgan mandarin) xitoy (an’anaviy) xitoy (an’anaviy mandarin) @@ -1539,30 +1548,60 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Muh. Saf. - Rob. avv. - Rob. ox. + Rab. avv. + Rab. son. Jum. avv. - Jum. ox. + Jum. son. Raj. Sha. Ram. Shav. - Zul-q. - Zul-h. + Zulq. + Zulh. Muharram Safar - Robi’ ul-avval - Robi’ ul-oxir - Jumad ul-avval - Jumad ul-oxir + Rabiʼul avval + Rabiʼus soniy + Jumodul avval + Jumodus soniy Rajab Sha’bon Ramazon Shavvol - Zul-qa’da - Zul-hijja + Zulqaʼda + Zulhijja + + + + + Muh. + Saf. + Rab. avv. + Rab. son. + Jum. avv. + Jum. son. + Raj. + Sha. + Ram. + Shav. + Zulq. + Zulh. + + + Muharram + Safar + Rabiʼul avval + Rabiʼus soniy + Jumodul avval + Jumodus soniy + Rajab + Sha’bon + Ramazon + Shavvol + Zulqaʼda + Zulhijja @@ -1888,6 +1927,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + Gonolulu + Koordinatali universal vaqt @@ -2387,7 +2429,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Oqto‘ba - Kustanay + Qoʻstanay Qizilo‘rda @@ -2452,9 +2494,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ulan-Bator - - Choybalsan - Makao @@ -2671,9 +2710,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Nom - - Gonolulu - Ankorij @@ -2985,13 +3021,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Xitoy yozgi vaqti - - - Choybalsan vaqti - Choybalsan standart vaqti - Choybalsan yozgi vaqti - - Rojdestvo oroli vaqti @@ -3230,6 +3259,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Yaponiya yozgi vaqti + + + Qozogʻiston vaqti + + Sharqiy Qozogʻiston vaqti @@ -3647,6 +3681,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + + + ^ + + - @@ -3753,8 +3791,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 trln ¤ - {0} {1} - {0} {1} @@ -4901,11 +4937,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} kelvin {0} kelvin - - funt-fut - {0} funt-kuch-fut - {0} funt-fut - nyuton-metr {0} nyuton-metr @@ -4998,6 +5029,20 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} draxma {0} draxma + + imp.kvarta + + + qism/milliard + {0} ta qism/milliard + {0} ta qism/milliard + + + kecha + {0} kecha + {0} kecha + {0}/kecha + {0} sharqiy uzunlik {0} shimoliy kenglik @@ -5642,9 +5687,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} desert qoshiq - imp desert qoshiq - {0} imp desert qoshiq - {0} imp desert qoshiq + imp. desert qoshiq + {0} imp. desert qoshiq + {0} imp. desert qoshiq tomchi @@ -5667,10 +5712,21 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} chimdim - imp kvarta + imp.kvarta {0} imp. kvarta {0} imp. kvarta + + qism/milliard + {0} ta qism/mlrd + {0} ta qism/mlrd + + + kecha + {0} kecha + {0} kecha + {0}/kecha + yo‘nalish {0} shq. u. @@ -5730,13 +5786,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} nqt/sm {0} nuqta/sm - - {0} milya - {0} milya - - {0} dyuym - {0} dyuym + {0} duym + {0} duym {0} yo.y. @@ -5759,31 +5811,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ M⊕ - - {0} kW - {0} kW - - - {0} W - {0} W - - {0} hp + {0} o.k. {0} hp - - {0} hPa - {0} hPa - {0} mi/h {0} mi/h - - funt-fut - {0} funt-fut - {0} funt-fut - {0}N⋅m {0}N⋅m @@ -5796,6 +5831,24 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}L {0}L + + {0} imp. desert qoshiq + {0} imp. desert qoshiq + + + imp.kvarta + + + qism/milliard + {0} ta qism/mlrd + {0} ta qism/mlrd + + + kecha + {0} kecha + {0} kecha + {0}/nkecha + @@ -5992,6 +6045,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ und uz ko vi yue zh + informal {given} {given2} {surname} {credentials} diff --git a/make/data/cldr/common/main/uz_Cyrl.xml b/make/data/cldr/common/main/uz_Cyrl.xml index e40915dfde9..04e8c03c201 100644 --- a/make/data/cldr/common/main/uz_Cyrl.xml +++ b/make/data/cldr/common/main/uz_Cyrl.xml @@ -1476,13 +1476,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Хитой кундузги вақти - - - Чойбалсан вақти - Чойбалсан стандарт вақти - Чойбалсан ёзги вақти - - Рождество ороли вақти @@ -2116,6 +2109,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + + - + ҳақиқий сон эмас + + - diff --git a/make/data/cldr/common/main/vai.xml b/make/data/cldr/common/main/vai.xml index 44e89b1a1dd..7a933507f2c 100644 --- a/make/data/cldr/common/main/vai.xml +++ b/make/data/cldr/common/main/vai.xml @@ -318,6 +318,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic [ꔀ ꔁ ꔂ ꔃ ꔄ ꔅ ꔆ ꔇ ꔈ ꔉ ꔊ ꔋ ꔌ ꔍ ꔎ ꔏ ꔐ ꔑ ꔒ ꔓ ꔔ ꔕ ꔖ ꔗ ꔘ ꔙ ꔚ ꔛ ꔜ ꔝ ꔞ ꔟ ꔠ ꔡ ꔢ ꔣ ꔤ ꔥ ꔦ ꔧ ꔨ ꔩ ꔪ ꔫ ꔬ ꔭ ꔮ ꔯ ꔰ ꔱ ꔲ ꔳ ꔴ ꔵ ꔶ ꔷ ꔸ ꔹ ꔺ ꔻ ꔼ ꔽ ꔾ ꔿ ꕀ ꕁ ꕂ ꕃ ꕄ ꕅ ꕆ ꕇ ꕈ ꕉ ꕊ ꕋ ꕌ ꕍ ꕎ ꕏ ꕐ ꕑ ꕒ ꕓ ꕔ ꕕ ꕖ ꕗ ꕘꘐ ꕙ ꕚ ꕛ ꕜ ꕝ ꕞ ꕟ ꕠ ꕡ ꕢ ꕣ ꕤ ꕥ ꕦ ꕧ ꕨ ꕩ ꕪꘑ ꕫ ꕬ ꕭ ꕮꘪ ꕯ ꕰ ꕱ ꕲ ꕳ ꕴ ꕵ ꕶ ꕷ ꕸ ꕹ ꕺ ꕻ ꕼ ꕽ ꕾ ꕿ ꖀ ꖁ ꖂ ꖃ ꖄ ꖅ ꖆ ꖇꘒ ꖈ ꖉ ꖊ ꖋ ꖌ ꖍ ꖎ ꖏ ꖐ ꖑ ꖒ ꖓ ꖔ ꖕ ꖖ ꖗ ꖘ ꖙ ꖚ ꖛ ꖜ ꖝ ꖞ ꖟ ꖠ ꖡ ꖢ ꖣ ꖤ ꖥ ꖦ ꖧ ꖨ ꖩ ꖪ ꖫ ꖬ ꖭ ꖮ ꖯ ꖰ ꖱ ꖲ ꖳ ꖴ ꖵ ꖶ ꖷ ꖸ ꖹ ꖺ ꖻ ꖼ ꖽ ꖾ ꖿ ꗀ ꗁ ꗂ ꗃ ꗄ ꗅ ꗆ ꗇ ꗈ ꗉ ꗊ ꗋ ꗌ ꗍ ꗎ ꗏ ꗐ ꗑꘫ ꗒ ꗓ ꗔ ꗕ ꗖ ꗗ ꗘ ꗙ ꗚ ꗛ ꗜ ꗝ ꗞ ꗟ ꗠ ꗡ ꗢ ꗣ ꗤ ꗥ ꗦ ꗧ ꗨ ꗩ ꗪ ꗫ ꗬ ꗭ ꗮ ꗯ ꗰ ꗱ ꗲ ꗳ ꗴ ꗵ ꗶ ꗷ ꗸ ꗹ ꗺ ꗻ ꗼ ꗽ ꗾ ꗿ ꘀ ꘁ ꘂ ꘃ ꘄ ꘅ ꘆ ꘇ ꘈ ꘉ ꘊ ꘋ ꘌ] [ꘓ ꘔ ꘕ ꘖ ꘗ ꘘ ꘙ ꘚ ꘛ ꘜ ꘝ ꘞ ꘟ] + [\- ‐‑ – — , ; \: ! ? . … '‘’ "“” ( ) \[ \] § @ * / \& # † ‡ ′ ″] diff --git a/make/data/cldr/common/main/vec.xml b/make/data/cldr/common/main/vec.xml index 73db662b48b..41eb1b7ee0d 100644 --- a/make/data/cldr/common/main/vec.xml +++ b/make/data/cldr/common/main/vec.xml @@ -12,6 +12,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic + afar abcazo acineze adangme @@ -42,27 +43,35 @@ CLDR data files are interpreted according to the LDML specification (http://unic azerbaijan azero bashkir + baluci balineze basa beloruso benba + betawi bena bùlgaro harianvi + baluci osidentale bojpuri bizlama bini siksika + anii + tai dam banbara bangla tibetan brètone bodo boznìago + akos bugineze blin catalan + cado cayuga + atsam ciakma cecen sebuan @@ -74,6 +83,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic cìpejan cerokee ceyen + cìcasow curdo sentrale curdo sorani cìlcotin @@ -158,7 +168,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic hindi hingleze hiligheno - hmong + mong + mong novo croà alto sorabo haitian @@ -171,6 +182,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic iban ibibio indonezian + interlengue igbo yi de Sichuan inuktitut canadeze osidentale @@ -186,6 +198,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic machame javaneze jeorjan + caracalpago cabil kachin jju @@ -194,6 +207,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic tyap makonde caoverdian + keniang koro kaingang khasi @@ -204,7 +218,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic kako groelandeze kalenjin - kmer + canbojan kinbundu canareze corean @@ -223,9 +237,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic komi còrnego Kwakwala + kuvi kirghizo latin - ladin + judezmo langi lusenburgheze lezghian @@ -234,6 +249,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic lìguro liluet lacota + ladin lonbardo lingala lao @@ -242,10 +258,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic luri setentrionale samia lituan + letgalian luba katanga luba lulua lunda - luo + doluó mizo luja lètone @@ -259,9 +276,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic meru maurisian malgaso - makùa + meeto meta marshaleze + mòcheno maori micmac minangkabau @@ -315,8 +333,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic ojibwa osidentale okanagan oromo - orìa + orija osètego + osage punjabi pangasinan panpanga @@ -332,6 +351,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic portogheze braziłian portogheze europèo cuechua + kish rajastani rapanui rarotongan @@ -357,6 +377,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic sisilian scoseze sindi + curdo meridionale sami setentrionale sena koyraboro seni @@ -364,10 +385,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic tashelit shan singaleze + sidamo zlovaco + saraiki zloven lushootseed meridionale samoan + sami meridionale + sami de’l Lule sami inarian sami skolt shona @@ -377,15 +402,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic serbo sranan tongo zwati + saho soto meridionale salish streto sundaneze sukuma zvedeze - swahili - swahili de’l Congo + suaili + suaili de’l Congo comorian sirìago + silezian tamil tutchone meridionale telugo @@ -407,6 +434,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic tok pisin turco taroko + torwali tsonga tàtaro tutchone setentrionale @@ -423,20 +451,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic lengua desconoscùa urdu uzbego - vai venda veneto vietnameze + macùa volapük vunjo valon walser wolaita waray + warlpiri wolof wu kalmik xhosa + kangri soga yangben yenba @@ -444,6 +474,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic yoruba nengatu cantoneze + zuan tamazight standard de’l Maroco sineze sineze mandarin @@ -484,6 +515,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic + @@ -493,6 +525,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic + @@ -501,6 +534,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic + @@ -531,9 +565,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + @@ -567,6 +604,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic + @@ -599,8 +637,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + + @@ -616,7 +658,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + @@ -841,7 +885,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Maldive Malawi Mèsego - Malezia + Malèizia Mozanbigo Namibia Nova Caledonia @@ -967,30 +1011,46 @@ CLDR data files are interpreted according to the LDML specification (http://unic volapuk clàsego - Formà moneda - Moneda - Sistema ore (12/24) - Stile de cao de linea - Sistema de mezurasion + lunaro + formà moneda + òrdane + moneda + sistema ore (12/24) + stile de cao de linea + sistema de mezurasion Nùmari - calendaro gregorian - calendaro ISO-8601 - Formà moneda contàbile - Formà moneda standard - Reserca jenèrega + lunaro budista + lunaro sineze + lunaro còptego + lunaro dangi + lunaro etiòpego + lunaro etiòpego (amete alem) + lunaro gregorian + lunaro ebràego + lunaro izlàmego + lunaro izlàmego (tabular) + lunaro izlàmego (Umm al-Qura) + lunaro ISO-8601 + lunaro japoneze + lunaro persian + lunaro mìnguo + formà moneda contàbile + formà moneda standard + òrdane predefenìo Unicode + reserca jenèrega òrdane standard - Sistema a 12 ore (0–11) - Sistema a 12 ore (1–12) - Sistema a 24 ore (0–23) - Sistema a 12 ore (1–24) - Cao de linea opsionale - Cao de linea normale - Cao de linea forsà - Sistema mètrego - Sistema inperiale - Sistema meregan + sistema a 12 ore (0–11) + sistema a 12 ore (1–12) + sistema a 24 ore (0–23) + sistema a 12 ore (1–24) + cao de linea opsionale + cao de linea normale + cao de linea forsà + sistema mètrego + sistema inperiale + sistema meregan Nùmari in indo àrabo Nùmari estendesti in indo àrabo Nùmari in armen @@ -1034,8 +1094,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic mètrego - britànego - meregan + inperiale + de i Stadi Unìi Lengua: {0} @@ -1249,7 +1309,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic set oto nov - des + dez jenaro @@ -1263,10 +1323,24 @@ CLDR data files are interpreted according to the LDML specification (http://unic setenbre otobre novenbre - desenbre + dezenbre + + jen + feb + mar + apr + maj + jug + luj + ago + set + oto + nov + dez + J F @@ -1281,6 +1355,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic N D + + jenaro + febraro + marso + aprile + majo + jugno + lujo + agosto + setenbre + otobre + novenbre + dezenbre + @@ -1442,6 +1530,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic w'ª' 'setemana' 'de''l' Y + + h – h B + + + h:mm – h:mm B + h:mm – h:mm B + d – d @@ -1584,85 +1679,623 @@ CLDR data files are interpreted according to the LDML specification (http://unic l’ano pasà ‘st’ano l’ano che vien + + tenpo {0} ano + tenpo {0} ani + + + che’l ze {0} ano + che i ze {0} ani + + + + + tenpo {0} ano + tenpo {0} ani + + + che’l ze {0} ano + che i ze {0} ani + - a + ano pasà + ‘st’ano + ano che vien + + tenpo {0} ano + tenpo {0} ani + + + che’l ze {0} ano + che i ze {0} ani + trimestre + el trimestre pasà + ‘sto trimestre + el trimestre che vien + + tenpo {0} trimestre + tenpo {0} trimestri + + + che’l ze {0} trimestre + che i ze {0} trimestri + trim + el trim pasà + ‘sto trim + el trim che vien + + tenpo {0} trim + tenpo {0} trim + + + che’l ze {0} trim + che i ze {0} trim + - t + trim pasà + ‘sto trim + trim che vien + + tenpo {0} trim + tenpo {0} trim + + + che’l ze {0} trim + che i ze {0} trim + meze el meze pasà ‘sto meze el meze che vien + + tenpo {0} meze + tenpo {0} mezi + + + che’l ze {0} meze + che i ze {0} mezi + - mez + + tenpo {0} meze + tenpo {0} mezi + + + che’l ze {0} meze + che i ze {0} mezi + - m + meze + meze pasà + ‘sto meze + meze che vien + + tenpo {0} meze + tenpo {0} mezi + + + che’l ze {0} meze + che i ze {0} mezi + setemana la setemana pasada ‘sta setemana la setemana che vien + + tenpo {0} setemana + tenpo {0} setemane + + + che la ze {0} setemana + che le ze {0} setemane + la setemana de’l {0} set + la set pasada + ‘sta set + la set che vien + + tenpo {0} set + tenpo {0} set + + + che la ze {0} set + che le ze {0} set + + la set de’l {0} - s + set pasada + ‘sta set + set che vien + + tenpo {0} set + tenpo {0} set + + + che la ze {0} set + che le ze {0} set + + la set de’l {0} + + + setemana de’l meze + + + set/meze + + + set/meze jeri uncó doman + + tenpo {0} dì + tenpo {0} dì + + + che’l ze {0} dì + che i ze {0} dì + + + + + tenpo {0} dì + tenpo {0} dì + + + che’l ze {0} dì + che i ze {0} dì + d + + tenpo {0} dì + tenpo {0} dì + + + che’l ze {0} dì + che i ze {0} dì + + + + dì de l’ano + + + dì/ano + + + dì/ano dì de la setemana + + dì/set + + + dì/set + + + dì de’l meze + + + dì/meze + + + dì/meze + + + doménega pasada + ‘sta doménega + doménega che vien + + tenpo {0} doménega + tenpo {0} doméneghe + + + che la ze {0} doménega + che le ze {0} doméneghe + + + + dom pasada + ‘sta dom + dom che vien + + tenpo {0} dom + tenpo {0} dom + + + che la ze {0} dom + che le ze {0} dom + + + + dom pasada + ‘sta dom + dom che vien + + tenpo {0} dom + tenpo {0} dom + + + che la ze {0} dom + che le ze {0} dom + + + + luni pasà + ‘sto luni + luni che vien + + tenpo {0} luni + tenpo {0} luni + + + che’l ze {0} luni + che i ze {0} luni + + + + lun pasà + ‘sto lun + lun che vien + + tenpo {0} lun + tenpo {0} lun + + + che’l ze {0} lun + che i ze {0} lun + + + + lun pasà + ‘sto lun + lun che vien + + tenpo {0} lun + tenpo {0} lun + + + che’l ze {0} lun + che i ze {0} lun + + + + marti pasà + ‘sto marti + marti che vien + + tenpo {0} marti + tenpo {0} marti + + + che’l ze {0} marti + che i ze {0} marti + + + + mar pasà + ‘sto mar + mar che vien + + tenpo {0} mar + tenpo {0} mar + + + che’l ze {0} mar + che i ze {0} mar + + + + mar pasà + ‘sto mar + mar che vien + + tenpo {0} mar + tenpo {0} mar + + + che’l ze {0} mar + che i ze {0} mar + + + + mèrcore pasà + ‘sto mèrcore + mèrcore che vien + + tenpo {0} mèrcore + tenpo {0} mèrcore + + + che’l ze {0} mèrcore + che i ze {0} mèrcore + + + + mèr pasà + ‘sto mèr + mèr che vien + + tenpo {0} mèr + tenpo {0} mèr + + + che’l ze {0} mèr + che i ze {0} mèr + + + + mèr pasà + ‘sto mèr + mèr che vien + + tenpo {0} mèr + tenpo {0} mèr + + + che’l ze {0} mèr + che i ze {0} mèr + + + + zoba pasà + ‘sto zoba + zoba che vien + + tenpo {0} zoba + tenpo {0} zoba + + + che’l ze {0} zoba + che i ze {0} zoba + + + + zob pasà + ‘sto zob + zob che vien + + tenpo {0} zob + tenpo {0} zob + + + che’l ze {0} zob + che i ze {0} zob + + + + zob pasà + ‘sto zob + zob che vien + + tenpo {0} zob + tenpo {0} zob + + + che’l ze {0} zob + che i ze {0} zob + + + + vènare pasà + ‘sto vènare + vènare che vien + + tenpo {0} vènare + tenpo {0} vènare + + + che’l ze {0} vènare + che i ze {0} vènare + + + + vèn pasà + ‘sto vèn + vèn che vien + + tenpo {0} vèn + tenpo {0} vèn + + + che’l ze {0} vèn + che i ze {0} vèn + + + + vèn pasà + ‘sto vèn + vèn che vien + + tenpo {0} vèn + tenpo {0} vèn + + + che’l ze {0} vèn + che i ze {0} vèn + + + + sabo pasà + ‘sto sabo + sabo che vien + + tenpo {0} sabo + tenpo {0} sabi + + + che’l ze {0} sabo + che i ze {0} sabi + + + + sab pasà + ‘sto sab + sab che vien + + tenpo {0} sab + tenpo {0} sab + + + che’l ze {0} sab + che i ze {0} sab + + + + sab pasà + ‘sto sab + sab che vien + + tenpo {0} sab + tenpo {0} sab + + + che’l ze {0} sab + che i ze {0} sab + + AM/PM ora + ‘sta ora + + tenpo {0} ora + tenpo {0} ore + + + che la ze {0} ora + che le ze {0} ore + + + + ‘sta ora + + tenpo {0} ora + tenpo {0} ore + + + che la ze {0} ora + che le ze {0} ore + o + ‘sta o + + tenpo {0} o + tenpo {0} o + + + che la ze {0} o + che le ze {0} o + menuto + ‘sto menuto + + tenpo {0} menuto + tenpo {0} menuti + + + che’l ze {0} menuto + che i ze {0} menuti + men + ‘sto men + + tenpo {0} men + tenpo {0} men + + + che’l ze {0} men + che i ze {0} men + m + ‘sto m + + tenpo {0} m + tenpo {0} m + + + che’l ze {0} m + che i ze {0} m + segondo + deso + + tenpo {0} segondo + tenpo {0} segondi + + + che’l ze {0} segondo + che i ze {0} segondi + seg + deso + + tenpo {0} seg + tenpo {0} seg + + + che’l ze {0} seg + che i ze {0} seg + s + deso + + tenpo {0} s + tenpo {0} s + + + che’l ze {0} s + che i ze {0} s + - fuzoraro + fuzorario + + + fuzorario + + + fuzorario @@ -1805,9 +2438,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Cao Verdo - - Curaçao - Ìzola de Nadale @@ -1948,6 +2578,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Aman + + Biskek + Pnom Pen @@ -1975,6 +2608,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Aktàu + + Oural + Atyràu @@ -1987,6 +2623,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kizilorda + + Almati + Vientian @@ -2143,6 +2782,51 @@ CLDR data files are interpreted according to the LDML specification (http://unic Belgrado + + Kaliningrado + + + Mosca + + + Volgogrado + + + Astrahan + + + Uliànosk + + + Yekaterinburgo + + + Novokuznietsk + + + Kraznayarsk + + + Cita + + + Hàndiga + + + Sacalin + + + Ust-Gnera + + + Zrédnekolimsk + + + Kamciatka + + + Anàdyr + Riad @@ -2188,9 +2872,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic Lomé + + Dusanbé + Atolo Fakaofo + + Azgabad + Tùnezi @@ -2272,6 +2962,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Samarcanda + + Taskent + Vategan @@ -2336,30 +3029,30 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Ora de’l nord mèrega sentrale - Ora normale de’l nord mèrega sentrale - Ora d’istà de’l nord mèrega sentrale + Ora de’l nord Amèrega sentrale + Ora normale de’l nord Amèrega sentrale + Ora d’istà de’l nord Amèrega sentrale - Ora de’l nord mèrega orientale - Ora normale de’l nord mèrega orientale - Ora d’istà de’l nord mèrega orientale + Ora de’l nord Amèrega orientale + Ora normale de’l nord Amèrega orientale + Ora d’istà de’l nord Amèrega orientale - Ora de’l nord mèrega de le montagne - Ora normale de’l nord mèrega de le montagne - Ora d’istà de’l nord mèrega de le montagne + Ora de’l nord Amèrega de le montagne + Ora normale de’l nord Amèrega de le montagne + Ora d’istà de’l nord Amèrega de le montagne - Ora de’l nord mèrega de’l Pasìfego - Ora normale de’l nord mèrega de’l Pasìfego - Ora d’istà de’l nord mèrega de’l Pasìfego + Ora de’l Pasìfego + Ora normale de’l Pasìfego + Ora d’istà de’l Pasìfego @@ -2399,9 +3092,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Ora de’l nord mèrega de l’Atlàntego - Ora normale de’l nord mèrega de l’Atlàntego - Ora d’istà de’l nord mèrega de l’Atlàntego + Ora de l’Atlàntego + Ora normale de l’Atlàntego + Ora d’istà de l’Atlàntego @@ -2508,13 +3201,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ora d’istà de la Sina - - - Ora de Choibalsan - Ora normale de Choibalsan - Ora d’istà de Choibalsan - - Ora de l’Ìzola de Nadale @@ -2753,6 +3439,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ora d’istà de’l Japon + + + Ora de’l Kazakistan + + Ora de’l Kazakistan orientale @@ -3174,14 +3865,100 @@ CLDR data files are interpreted according to the LDML specification (http://unic , + + + + mile + 0 mila + 00 mila + 00 mila + 000 mila + 000 mila + 0 milion + 0 milioni + 00 milioni + 00 milioni + 000 milioni + 000 milioni + 0 miliardo + 0 miliardi + 00 miliardi + 00 miliardi + 000 miliardi + 000 miliardi + 0 bilion + 0 bilioni + 00 bilioni + 00 bilioni + 000 bilioni + 000 bilioni + + + + + 0 + 0 mila + 00 mila + 00 mila + 000 mila + 000 mila + 0 mln + 0 mln + 00 mln + 00 mln + 000 mln + 000 mln + 0 mld + 0 mld + 00 mld + 00 mld + 000 mld + 000 mld + 0 bln + 0 bln + 00 bln + 00 bln + 000 bln + 000 bln + + + #,##0.00 ¤ + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 mln ¤ + 0 mln ¤ + 00 mln ¤ + 00 mln ¤ + 000 mln ¤ + 000 mln ¤ + 0 mld ¤ + 0 mld ¤ + 00 mld ¤ + 00 mld ¤ + 000 mld ¤ + 000 mld ¤ + 0 bln ¤ + 0 bln ¤ + 00 bln ¤ + 00 bln ¤ + 000 bln ¤ + 000 bln ¤ + + {0} ¤¤ - {0} {1} + {0} {1} {0} {1} @@ -4004,9 +4781,812 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + dezi{0} + + + senti{0} + + + mili{0} + + + micro{0} + + + nano{0} + + + pico{0} + + + femto{0} + + + ato{0} + + + zepto{0} + + + jocto{0} + + + ronto{0} + + + cuecto{0} + + + deca{0} + + + eto{0} + + + kilo{0} + + + mega{0} + + + giga{0} + + + tera{0} + + + peta{0} + + + exa{0} + + + zeta{0} + + + jota{0} + + + rona{0} + + + cueta{0} + + + kibi{0} + + + mebi{0} + + + gibi{0} + + + tebi{0} + + + pebi{0} + + + exbi{0} + + + zebi{0} + + + jobi{0} + {0} par {1} + + {0}–{1} + + + forsa g + {0} de forsa g + {0} de forsa g + + + metri par segondo cuadrài + {0} metro par segondo cuadrà + {0} metri par segondo cuadrài + + + kilòmetri cuadrài + {0} kilòmetro cuadrà + {0} kilòmetri cuadrài + {0} par kilòmetro cuadrà + + + ètari + {0} ètaro + {0} ètari + + + metri cuadrài + {0} metro cuadrà + {0} metri cuadrài + {0} par metro cuadrà + + + sentìmetri cuadrài + {0} sentìmetro cuadrà + {0} sentìmetri cuadrài + {0} par sentìmetro cuadrà + + + miji cuadrài + {0} mijo cuadrà + {0} miji cuadrài + {0} par mijo cuadrà + + + acri + {0} acro + {0} acri + + + jarde cuadràe + {0} jarda cuadrada + {0} jarde cuadràe + + + pie cuadrài + {0} pie cuadrà + {0} pie cuadrài + + + dedoni cuadrài + {0} dedon cuadrà + {0} dedoni cuadrài + {0} par dedon cuadrà + + + sègoli + {0} sègolo + {0} sègoli + + + dezeni + {0} dezenio + {0} dezeni + + + ani + {0} ano + {0} ani + {0} par ano + + + trimestri + {0} trimestre + {0} trimestri + {0} par trimestre + + + mezi + {0} meze + {0} mezi + {0} par meze + + + setemane + {0} setemana + {0} setemane + {0} par setemana + + + + {0} dì + {0} dì + {0} par dì + + + ore + {0} ora + {0} ore + {0} par ora + + + menuti + {0} menuto + {0} menuti + {0} par menuto + + + segondi + {0} segondo + {0} segondi + {0} par segondo + + + milisegondi + {0} milisegondo + {0} milisegondi + + + microsegondi + {0} microsegondo + {0} microsegondi + + + nanosegondi + {0} nanosegondo + {0} nanosegondi + + + ampere + {0} ampere + {0} ampere + + + miliampere + {0} miliampere + {0} miliampere + + + {0} ohm + {0} ohm + + + {0} volt + {0} volt + + + kilocalorìe + {0} kilocalorìa + {0} kilocalorìe + + + calorìe + {0} calorìa + {0} calorìe + + + kilojoule + {0} kilojoule + {0} kilojoule + + + {0} joule + {0} joule + + + kilowattora + {0} kilowattora + {0} kilowattora + + + eletronvolt + {0} eletronvolt + {0} eletronvolt + + + unidà tèrmeghe britàneghe + {0} unidà tèrmega britànega + {0} unidà tèrmeghe britàneghe + + + unidà tèrmeghe de i Stadi Unìi + {0} unidà tèrmega de i Stadi Unìi + {0} unidà tèrmeghe de i Stadi Unìi + + + gigahertz + {0} gigahertz + {0} gigahertz + + + megahertz + {0} megahertz + {0} megahertz + + + kilohertz + {0} kilohertz + {0} kilohertz + + + hertz + {0} hertz + {0} hertz + + + eme tipogràfega + {0} eme tipogràfega + {0} eme tipogràfeghe + + + pixel + {0} pixel + {0} pixel + + + megapixel + {0} megapixel + {0} megapixel + + + pixel par sentìmetro + {0} pixel par sentìmetro + {0} pixel par sentìmetro + + + pixel par dedon + {0} pixel par dedon + {0} pixel par dedon + + + raji de la tera + {0} rajo de la tera + {0} raji de la tera + + + kilòmetri + {0} kilòmetro + {0} kilòmetri + {0} par kilòmetro + + + metri + {0} metro + {0} metri + {0} par metro + + + dezìmetri + {0} dezìmetro + {0} dezìmetri + + + sentìmetri + {0} sentìmetro + {0} sentìmetri + {0} par sentìmetro + + + milìmetri + {0} milìmetro + {0} milìmetri + + + micròmetri + {0} micròmetro + {0} micròmetri + + + nanòmetri + {0} nanòmetro + {0} nanòmetri + + + picòmetri + {0} picòmetro + {0} picòmetri + + + miji + {0} mijo + {0} miji + + + jarde + {0} jarda + {0} jarde + + + pie + {0} pie + {0} pie + {0} par pie + + + dedon + {0} dedon + {0} dedoni + {0} par dedon + + + parseg + {0} parseg + {0} parseg + + + ani luze + {0} ano luze + {0} ani luze + + + unidà astronòmeghe + {0} unidà astronòmega + {0} unidà astronòmeghe + + + furlong + {0} furlong + {0} furlong + + + brasi + {0} braso + {0} brasi + + + miji nàuteghi + {0} mijo nàutego + {0} miji nàuteghi + + + miji scandìnavi + {0} mijo scandìnavo + {0} miji scandìnavi + + + ponti + {0} ponto + {0} ponti + + + raji solari + {0} rajo solar + {0} raji solari + + + tonelàe + {0} tonelada + {0} tonelàe + + + kilogrami + {0} kilogramo + {0} kilogrami + {0} par kilogramo + + + grami + {0} gramo + {0} grami + {0} par gramo + + + miligrami + {0} miligramo + {0} miligrami + + + microgrami + {0} microgramo + {0} microgrami + + + tonelàe curte + {0} tonelada curta + {0} tonelàe curte + + + stone + {0} stone + {0} stone + + + libre + {0} libra + {0} libre + {0} par libra + + + onse + {0} onsa + {0} onse + {0} par onsa + + + onse troy + {0} onsa troy + {0} onse troy + + + karati + {0} karato + {0} karati + + + dalton + {0} dalton + {0} dalton + + + mase terestri + {0} masa terestre + {0} mase terestri + + + mase solari + {0} masa solar + {0} mase solari + + + grani + {0} gran + {0} grani + + + gigawatt + {0} gigawatt + {0} gigawatt + + + megawatt + {0} megawatt + {0} megawatt + + + kilowatt + {0} kilowatt + {0} kilowatt + + + {0} watt + {0} watt + + + miliwatt + {0} miliwatt + {0} miliwatt + + + cavali vapor + {0} cavalo vapor + {0} cavali vapor + + + milìmetri de mercurio + {0} milìmetro de mercurio + {0} milìmetri de mercurio + + + libre par dedon cuadrà + {0} libra par dedon cuadrà + {0} libre par dedon cuadrà + + + dedoni de mercurio + {0} dedon de mercurio + {0} dedoni de mercurio + + + milibar + {0} milibar + {0} milibar + + + atmosfere + {0} atmosfera + {0} atmosfere + + + pascal + {0} pascal + {0} pascal + + + etopascal + {0} etopascal + {0} etopascal + + + kilopascal + {0} kilopascal + {0} kilopascal + + + megapascal + {0} megapascal + {0} megapascal + + + kilòmetri par ora + {0} kilòmetro par ora + {0} kilòmetri par ora + + + metri par segondo + {0} metro par segondo + {0} metri par segondo + + + miji par ora + {0} mijo par ora + {0} miji par ora + + + gropi + {0} gropo + {0} gropi + + + kilòmetri cubi + {0} kilòmetro cubo + {0} kilòmetri cubi + + + metri cubi + {0} metro cubo + {0} metri cubi + {0} par metro cubo + + + sentìmetri cubi + {0} sentìmetro cubo + {0} sentìmetri cubi + {0} par sentìmetro cubo + + + miji cùbeghi + {0} mijo cùbego + {0} miji cùbeghi + + + jarde cùbeghe + {0} jarda cùbega + {0} jarde cùbeghe + + + pie cùbeghi + {0} pie cùbego + {0} pie cùbeghi + + + dedoni cùbeghi + {0} dedon cùbego + {0} dedoni cùbeghi + + + megalitri + {0} megalitro + {0} megalitri + + + etòlitri + {0} etòlitro + {0} etòlitri + + + litri + {0} litro + {0} litri + {0} par litro + + + dezìlitri + {0} dezìlitro + {0} dezìlitri + + + sentìlitri + {0} sentìlitro + {0} sentìlitri + + + milìlitri + {0} milìlitro + {0} milìlitri + + + pinte mètreghe + {0} pinta mètrega + {0} pinte mètreghe + + + cìcare mètreghe + {0} cìcara mètrega + {0} cìcare mètreghe + + + acro pie + {0} acro pie + {0} acro pie + + + stari + {0} staro + {0} stari + + + galoni + {0} galon + {0} galoni + {0} par galon + + + galoni inperiali + {0} galon inperiale + {0} galoni inperiali + {0} par galon inperiale + + + cuarti + {0} cuarto + {0} cuarti + + + pinte + {0} pinta + {0} pinte + + + cìcare + {0} cìcara + {0} cìcare + + + onse lìcuide + {0} onsa lìcuida + {0} onse lìcuide + + + onse lìcuide inperiali + {0} onsa lìcuida inperiale + {0} onse lìcuide inperiali + + + guciari + {0} guciaro + {0} guciari + + + guciareti + {0} guciareto + {0} guciareti + + + barili + {0} barile + {0} barili + + + guciareti da dolse + {0} guciareto da dolse + {0} guciareti da dolse + + + guciareti da dolse inperiali + {0} guciareto da dolse inperiale + {0} guciareti da dolse inperiali + + + jose + {0} josa + {0} jose + + + dracme lìcuide + {0} dracma lìcuida + {0} dracme lìcuide + + + mezureti + {0} mezureto + {0} mezureti + + + spìseghi + {0} spìsego + {0} spìseghi + + + cuarti inperiali + {0} cuarto inperiale + {0} cuarti inperiali + + + noti + {0} note + {0} noti + {0} par note + ponto cardinale {0} est @@ -4016,10 +5596,859 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + fg + {0} fg + {0} fg + + + ha + + + ac + + + sèg + {0} sèg + {0} sèg + + + dezeni + {0} dezenio + {0} dezeni + + + ani + {0} ano + {0} ani + {0}/ano + + + trim + {0} trim + {0} trim + {0}/trim + + + mezi + {0} meze + {0} mezi + {0}/meze + + + set + {0} set + {0} set + {0}/set + + + + {0} dì + {0} dì + {0}/dì + + + ore + {0} ora + {0} ore + {0}/ora + + + men + {0} men + {0} men + {0}/men + + + seg + {0} seg + {0} seg + {0}/seg + + + A + + + Ω + + + V + + + J + + + BTU + {0} BTU + {0} BTU + + + thm + {0} thm + {0} thm + + + m + + + g + + + tc + {0} tc + {0} tc + + + kt + {0} kt + {0} kt + + + gr + {0} gr + {0} gr + + + W + + + mmHg + {0} mmHg + {0} mmHg + + + Ml + {0} Ml + {0} Ml + + + hl + {0} hl + {0} hl + + + l + + + dl + {0} dl + {0} dl + + + cl + {0} cl + {0} cl + + + ml + {0} ml + {0} ml + + + ptm + {0} ptm + {0} ptm + + + cìcm + {0} cìcm + {0} cìcm + + + ac⋅ft + {0} ac⋅ft + {0} ac⋅ft + + + gal + {0} gal + {0} gal + {0}/gal + + + gal inp + {0} gal inp + {0} gal inp + {0}/gal inp + + + pnt + {0} pnt + {0} pnt + + + cìc + {0} cìc + {0} cìc + + + fl oz + {0} fl oz + {0} fl oz + + + fl oz inp + {0} fl oz inp + {0} fl oz inp + + + dsp + {0} dsp + {0} dsp + + + dsp inp + {0} dsp inp + {0} dsp inp + + + js + {0} js + {0} js + + + fl dr + {0} fl dr + {0} fl dr + + + mzr + {0} mzr + {0} mzr + + + sps + {0} sps + {0} sps + + + qt inp + {0} qt inp + {0} qt inp + + + noti + {0} note + {0} noti + {0}/note + ponto + + + fg + {0}fg + {0}fg + + + {0}m/s² + {0}m/s² + + + {0}km² + {0}km² + + + ha + {0}ha + {0}ha + + + {0}m² + {0}m² + + + {0}cm² + {0}cm² + + + {0}mi² + {0}mi² + + + ac + {0}ac + {0}ac + + + {0}yd² + {0}yd² + + + {0}ft² + {0}ft² + + + {0}in² + {0}in² + + + {0}dunam + {0}dunam + + + sèg + {0}sèg + {0}sèg + + + dezeni + {0}dezenio + {0}dezeni + + + ani + {0}ano + {0}ani + {0}/ano + + + trim + {0}trim + {0}trim + {0}/trim + + + mezi + {0}meze + {0}mezi + {0}/meze + + + set + {0}set + {0}set + {0}/set + + + + {0}dì + {0}dì + {0}/dì + + + o + {0}o + {0}o + {0}/o + + + m + {0}m + {0}m + {0}/m + + + s + {0}s + {0}s + + + {0}ms + {0}ms + + + {0}μs + {0}μs + + + {0}ns + {0}ns + + + A + {0}A + {0}A + + + {0}mA + {0}mA + + + Ω + {0}Ω + {0}Ω + + + V + {0}V + {0}V + + + {0}kcal + {0}kcal + + + {0}cal + {0}cal + + + {0}kJ + {0}kJ + + + J + {0}J + {0}J + + + {0}kWh + {0}kWh + + + {0}eV + {0}eV + + + BTU + {0}BTU + {0}BTU + + + thm + {0}thm + {0}thm + + + {0}GHz + {0}GHz + + + {0}MHz + {0}MHz + + + {0}kHz + {0}kHz + + + {0}Hz + {0}Hz + + + {0}em + {0}em + + + {0}px + {0}px + + + {0}MP + {0}MP + + + {0}ppcm + {0}ppcm + + + {0}ppi + {0}ppi + + + {0}R⊕ + {0}R⊕ + + + {0}km + {0}km + + + m + {0}m + {0}m + + + {0}dm + {0}dm + + + {0}cm + {0}cm + + + {0}mm + {0}mm + + + {0}μm + {0}μm + + + {0}nm + {0}nm + + + {0}pm + {0}pm + + + {0}mi + {0}mi + + + {0}yd + {0}yd + + + {0}ft + {0}ft + + + {0}in + {0}in + + + {0}pc + {0}pc + + + {0}ly + {0}ly + + + {0}au + {0}au + + + {0}fur + {0}fur + + + {0}fth + {0}fth + + + {0}nmi + {0}nmi + + + {0}smi + {0}smi + + + {0}pt + {0}pt + + + {0}R☉ + {0}R☉ + + + {0}t + {0}t + + + {0}kg + {0}kg + + + g + {0}g + {0}g + + + {0}mg + {0}mg + + + {0}μg + {0}μg + + + tc + {0}tc + {0}tc + + + {0}st + {0}st + + + {0}lb + {0}lb + + + {0}oz + {0}oz + + + {0}oz t + {0}oz t + + + kt + {0}kt + {0}kt + + + {0}Da + {0}Da + + + {0}M⊕ + {0}M⊕ + + + {0}M☉ + {0}M☉ + + + gr + {0}gr + {0}gr + + + {0}GW + {0}GW + + + {0}MW + {0}MW + + + {0}kW + {0}kW + + + W + {0}W + {0}W + + + {0}mW + {0}mW + + + {0}hp + {0}hp + + + mmHg + {0}mmHg + {0}mmHg + + + {0}psi + {0}psi + + + {0}inHg + {0}inHg + + + {0}bar + {0}bar + + + {0}mbar + {0}mbar + + + {0}atm + {0}atm + + + {0}Pa + {0}Pa + + + {0}hPa + {0}hPa + + + {0}kPa + {0}kPa + + + {0}MPa + {0}MPa + + + {0}km/h + {0}km/h + + + {0}m/s + {0}m/s + + + {0}mi/h + {0}mi/h + + + {0}kn + {0}kn + + + {0}km³ + {0}km³ + + + {0}m³ + {0}m³ + + + {0}cm³ + {0}cm³ + + + {0}mi³ + {0}mi³ + + + {0}yd³ + {0}yd³ + + + {0}ft³ + {0}ft³ + + + {0}in³ + {0}in³ + + + Ml + {0}Ml + {0}Ml + + + hl + {0}hl + {0}hl + + + l + {0}l + {0}l + + + dl + {0}dl + {0}dl + + + cl + {0}cl + {0}cl + + + ml + {0}ml + {0}ml + + + ptm + {0}ptm + {0}ptm + + + cìcm + {0}cìcm + {0}cìcm + + + ac⋅ft + {0}ac⋅ft + {0}ac⋅ft + + + {0}bu + {0}bu + + + gal + {0}gal + {0}gal + {0}/gal + + + gal inp + {0}gal inp + {0}gal inp + {0}/gal inp + + + {0}qt + {0}qt + + + pnt + {0}pnt + {0}pnt + + + cìc + {0}cìc + {0}cìc + + + fl oz + {0}fl oz + {0}fl oz + + + fl oz inp + {0}fl oz inp + {0}fl oz inp + + + {0}tbsp + {0}tbsp + + + {0}tsp + {0}tsp + + + {0}bbl + {0}bbl + + + dsp + {0}dsp + {0}dsp + + + dsp inp + {0}dsp inp + {0}dsp inp + + + js + {0}js + {0}js + + + fl dr + {0}fl dr + {0}fl dr + + + mzr + {0}mzr + {0}mzr + + + sps + {0}sps + {0}sps + + + qt inp + {0}qt inp + {0}qt inp + + + noti + {0}note + {0}noti + {0}/note + + @@ -4040,4 +6469,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} {1} + + + sì:s + nò:n + + diff --git a/make/data/cldr/common/main/vi.xml b/make/data/cldr/common/main/vi.xml index 29c6d094fb1..57ddb1ef436 100644 --- a/make/data/cldr/common/main/vi.xml +++ b/make/data/cldr/common/main/vi.xml @@ -21,7 +21,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Tiếng Adangme Tiếng Adyghe Tiếng Avestan - Tiếng Afrikaans + Tiếng Hà Lan (Nam Phi) Tiếng Afrihili Tiếng Aghem Tiếng Ainu @@ -72,7 +72,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Tiếng Bafut Tiếng Badaga Tiếng Bulgaria - Tiếng Haryana + Tiếng Haryana Tiếng Tây Balochi Tiếng Bhojpuri Tiếng Bislama @@ -81,6 +81,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Tiếng Banjar Tiếng Kom Tiếng Siksika + Anii Tiếng Bambara Tiếng Bangla Tiếng Tây Tạng @@ -212,7 +213,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Tiếng Thượng Giéc-man Trung cổ Tiếng Guarani Tiếng Thượng Giéc-man cổ - Tiếng Goan Konkani Tiếng Gondi Tiếng Gorontalo Tiếng Gô-tích @@ -317,6 +317,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Tiếng Komi Tiếng Cornwall Tiếng Kwakʼwala + Tiếng Kuvi Tiếng Kyrgyz Tiếng La-tinh Tiếng Ladino @@ -327,9 +328,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Tiếng Lezghian Tiếng Ganda Tiếng Limburg + Tiếng Liguria Tiếng Lillooet Tiếng Lakota - Tiếng Lombard + Tiếng Lombard Tiếng Lingala Tiếng Lào Tiếng Mongo @@ -379,7 +381,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Tiếng Mã Lai Tiếng Malta Tiếng Mundang - Nhiều Ngôn ngữ + Nhiều ngôn ngữ Tiếng Creek Tiếng Miranda Tiếng Marwari @@ -393,7 +395,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Tiếng Nama Tiếng Na Uy (Bokmål) Tiếng Ndebele Miền Bắc - Tiếng Hạ Giéc-man + Tiếng Hạ Đức Tiếng Hạ Saxon Tiếng Nepal Tiếng Newari @@ -402,7 +404,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Tiếng Niuean Tiếng Ao Naga Tiếng Hà Lan - Tiếng Flemish Tiếng Kwasio Tiếng Na Uy (Nynorsk) Tiếng Ngiemboon @@ -438,7 +439,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Tiếng Pampanga Tiếng Papiamento Tiếng Palauan - Tiếng Nigeria Pidgin + Pidgin Nigeria Tiếng Ba Tư cổ Tiếng Phoenicia Tiếng Pali @@ -455,7 +456,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Tiếng Quechua Tiếng Kʼicheʼ Tiếng Quechua ở Cao nguyên Chimborazo - Tiếng Rajasthani + Tiếng Rajasthani Tiếng Rapanui Tiếng Rarotongan Tiếng Rohingya @@ -526,6 +527,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Tiếng Cômo Tiếng Syriac cổ Tiếng Syriac + Tiếng Silesia Tiếng Tamil Tiếng Tutchone miền Nam Tiếng Telugu @@ -574,7 +576,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Tiếng Uzbek Tiếng Vai Tiếng Venda + Tiếng Veneto Tiếng Việt + Tiếng Makhuwa Tiếng Volapük Tiếng Votic Tiếng Vunjo @@ -588,6 +592,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Tiếng Ngô Tiếng Kalmyk Tiếng Xhosa + Tiếng Kangri Tiếng Soga Tiếng Yao Tiếng Yap @@ -682,6 +687,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + @@ -776,8 +782,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - - + + @@ -932,8 +938,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Israel Đảo Man Ấn Độ - Lãnh thổ Ấn Độ Dương thuộc Anh - Quần đảo Chagos + Lãnh thổ Ấn Độ Dương thuộc Anh + Quần đảo Chagos Iraq Iran Iceland @@ -1067,8 +1073,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ukraina Uganda Các tiểu đảo xa của Hoa Kỳ - Liên hiệp quốc + Liên hợp quốc + LHQ Hoa Kỳ + Mỹ Uruguay Uzbekistan Thành Vatican @@ -1102,6 +1110,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Tiếng Pháp từ Cuối thời Trung cổ đến 1606 Tiếng Pháp Hiện đại Thời kỳ đầu Hàn lâm + Orthographic formulation of 1943 + TIẾNG AKUAPEM La Mã hóa ALA-LC, ấn bản năm 1997 Phương ngữ Aluku Tiếng Armenia Miền Đông @@ -1126,6 +1136,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Tiếng Volapük Hiện đại Phương ngữ Oseacco/Osojane Phương ngữ Pamaka + Bạch thoại tự La Mã hóa Bính âm Đa âm Máy tính @@ -1137,6 +1148,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Phương ngữ Liverpool Phương ngữ Stolvizza/Solbica Phép chính tả Taraskievica + Bính âm Thông dụng Phép chính tả Hợp nhất Phép chính tả Sửa đổi Hợp nhất Tiếng Valencia @@ -1341,7 +1353,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2805,6 +2817,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Giờ {0} Giờ mùa hè {0} Giờ chuẩn {0} + + + Giờ HST + HST + HDT + + Honolulu + Giờ Phối hợp Quốc tế @@ -2813,15 +2833,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Thành phố không xác định - - St. Barthélemy - Thượng Hải - - Curaçao - Praha @@ -2874,32 +2888,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Cancun - - Asunción - - - Réunion - Mát-xcơ-va - - São Tomé - Đài Bắc Kiev - - - Giờ HST - HST - HDT - - Honolulu - Beulah, Bắc Dakota @@ -3197,13 +3194,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Giờ Mùa Hè Trung Quốc - - - Giờ Choibalsan - Giờ Chuẩn Choibalsan - Giờ Mùa Hè Choibalsan - - Giờ Đảo Christmas @@ -3459,6 +3449,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Giờ mùa hè Petropavlovsk-Kamchatski + + + Giờ Kazakhstan + + Giờ Miền Đông Kazakhstan @@ -3970,7 +3965,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 000 NT ¤ - {0} {1} @@ -3985,7 +3979,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Afghani Afghanistan - afghani Afghanistan Lek Albania @@ -4061,7 +4054,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Taka Bangladesh - taka Bangladesh Đồng Franc Bỉ (có thể chuyển đổi) @@ -4142,7 +4134,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Ngultrum Bhutan - ngultrum Bhutan Đồng Kyat Miến Điện @@ -4400,7 +4391,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Rupee Ấn Độ - rupee Ấn Độ Dinar Iraq @@ -4408,7 +4398,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Rial Iran - rial Iran Króna Iceland @@ -4482,7 +4471,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Rupee Sri Lanka - rupee Sri Lanka Đô la Liberia @@ -4581,9 +4569,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Rupee Mauritius rupee Mauritius + + Rupee Maldives (1947–1981) + Rupee Maldives (1947–1981) + Rufiyaa Maldives - rufiyaa Maldives Kwacha Malawi @@ -4637,7 +4628,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Rupee Nepal - rupee Nepal Đô la New Zealand @@ -4672,7 +4662,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Rupee Pakistan - rupee Pakistan Zloty Ba Lan @@ -4759,11 +4748,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Leone Sierra Leone - leone Sierra Leone Leone Sierra Leone (1964—2022) - leone Sierra Leone (1964—2022) Shilling Somali @@ -5068,10 +5055,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ yocto{0} - ronto{0} + ronto{0} - quecto{0} + quecto{0} deka{0} @@ -5104,10 +5091,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ yotta{0} - ronna{0} + ronna{0} - quetta{0} + quetta{0} kibi{0} @@ -5660,6 +5647,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ dram {0} dram + + phần tỷ + {0} phần tỷ + + + đêm + {0} đêm + {0}/đêm + phương trời {0} Đông @@ -5949,6 +5945,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ lít Anh {0} lít Anh + + phần tỷ + + + đêm + {0} đêm + {0}/đêm + hướng {0}Đ @@ -6063,6 +6067,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} fl ozIm + + {0}ppb + + + đêm + {0} đêm + {0}/đêm + diff --git a/make/data/cldr/common/main/wo.xml b/make/data/cldr/common/main/wo.xml index fec199e1615..859d240d1da 100644 --- a/make/data/cldr/common/main/wo.xml +++ b/make/data/cldr/common/main/wo.xml @@ -14,7 +14,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Afrikaans Amharik - Araab + Arabic + Araab Asame Aserbayjane Baskir @@ -73,6 +74,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Hawaye Ebrë Endo + Hindī + Hindī bu Àngale Hiligaynon Krowat Sorab-Kaw @@ -118,6 +121,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Nepale Niweyan Neyerlànde + Belsig Nerwesiye Sewa Ositan @@ -184,11 +188,45 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + àddina + Africa + North America + Amerique du Sud + Oseani + Sowwu Afrique + Amerique Centrale + Penku Afrique + Afrique du Nord + Moyen Afrique + Afrique du Sud + Amerika + amerique du nord + Caraïbe + Asie penku + Asie du Sud + Asie Sud-est + Sud Europe + Ostralasi + Melanesi + Mikronesi + Polineesi + Asia + Asie centrale + Asie sowwu jàng + Europe + Europe bu penku + Europe du nord + Europe sowwu jàng + Afrique sub-saharienne + Amerique Latine + Ile Ascension Andoor Emira Arab Ini Afganistaŋ @@ -218,6 +256,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Bermid Burney Boliwi + Pays-Bas bu Caraïbe Beresil Bahamas Butaŋ @@ -237,6 +276,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kamerun Siin Kolombi + Ile Clipperton Kosta Rika Kuba Kabo Werde @@ -245,17 +285,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic Siipar Réewum Cek Almaañ + Garsiya Jibuti Danmàrk Dominik Repiblik Dominiken Alseri + Ceuta & Melilla Ekwaatër Estoni Esipt + Sahara bu sowwu Eritere Españ Ecopi + EZ + Eurozone Finlànd Fijji Duni Falkland @@ -287,12 +332,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic Korowasi Ayti Ongari + Ile Canary Indonesi Irlànd Israyel Dunu Maan End - Terituwaaru Brëtaañ ci Oseyaa Enjeŋ + Terituwaaru Brëtaañ ci Oseyaa Enjeŋ Irag Iraŋ Islànd @@ -308,6 +354,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Komoor Saŋ Kits ak Newis Kore Noor + Corée du Sud Kowet Duni Kaymaŋ Kasaxstaŋ @@ -368,10 +415,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic Saŋ Peer ak Mikeloŋ Duni Pitkayirn Porto Riko + réew yu Palestine + Palestine Portigaal Palaw Paraguwe Kataar + Oceanie Reeñoo Rumani Serbi @@ -398,6 +448,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Sin Marten Siri Suwasilànd + Tristan da Cunha Duni Tirk ak Kaykos Càdd Teer Ostraal gu Fraas @@ -406,6 +457,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Tajikistaŋ Tokoloo Timor Leste + Timor oriental Tirkmenistaŋ Tinisi Tonga @@ -417,6 +469,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ikeren Ugànda Duni Amerig Utar meer + United Nations Etaa Sini Uruge Usbekistaŋ @@ -429,6 +482,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Wanuatu Walis ak Futuna Samowa + Pseudo-aksan + Pseudo-bidi Kosowo Yaman Mayot @@ -439,6 +494,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Arminaatu Gregoriyee + ISO-8601 Calendar SSO (Toftalin wiñ gën a xam) Siifari Tugal @@ -1150,65 +1206,886 @@ CLDR data files are interpreted according to the LDML specification (http://unic Dëkk buñ xamul + + + Waxtu ete bu Grande Bretagne + + + + + waxtu Irlande + + + + + waxtu Afganistan + + + + + Waxtu Afrique Centrale + + + + + Waxtu Afrique sowwu jant + + + + + Afrique du Sud + + + + + Waxtu sowwu Afrique + Waxtu buñ miin ci sowwu Afrique + Afrique du sowwu jant + + + + + Waxtu Alaska + Waxtu buñ miin ci Alaska + Waxtu bëccëg ci Alaska + + + + + Waxtu Amazon + Waxtu buñ jagleel Amazon + Waxtu ete bu Amazon + + - CT (waxtu sàntaral) - CST (waxtu estàndaaru sàntaraal) - CDT (waxtu bëccëgu sàntaraal + CT (waxtu sàntaral) + CST (waxtu estàndaaru sàntaraal) + CDT (waxtu bëccëgu sàntaraal + + + + + ET waxtu penku + EST (waxtu estàndaaru penku) + EDT (waxtu bëccëgu penku) + + + + + MT (waxtu tundu) + MST (waxtu estàndaaru tundu) + MDT (waxtu bëccëgu tundu) + + + + + PT (waxtu pasifik) + PST (waxtu estàndaaru pasifik) + PDT (waxtu bëccëgu pasifik) + + + + + Waxtu Apia + Waxtu buñ miin ci Apia + Apia waxtu bëccëg + + + + + Waxtu araab yi + Waxtu buñ miin ci Araab + Waxtu bëccëg ci Araab + + + + + Waxtu Arsantiin + Waxtu buñ miin ci Arsantiin + Waxtu ete bu Argentine + + + + + waxtu sowwu Argentine + Waxtu buñ miin ci sowwu Argentine + waxtu ete bu sowwu Argentine + + + + + Waxtu Armeni + Waxtu buñ miin ci Armeni + Waxtu ete bu Armeni + + + + + AT (waxtu atlàntik) + AST (waxtu estàndaaru penku) + ADT (waxtu bëccëgu atlàntik) + + + + + Waxtu Australie bu diggi bi + Waxtu buñ miin ci Australie + Waxtu bëccëg ci diggu Australie + + + + + Waxtu sowwu Australie + Waxtu buñ miin ci diggu sowwu Australie + Waxtu bëccëg ci diggu sowwu Australie + + + + + waxtu penku Australie + Waxtu penku bu Australie + Waxtu buñ miin ci penku Australie + + + + + waxtu Australie bu bëtu Soow + Waxtu buñ miin ci sowwu Australie + Waxtu bëccëg bu sowwu Australie + + + + + Azerbaïdjan Waxtu + Waxtu Azerbaïdjan + Waxtu ete bu Azerbaïdjan + + + + + Waxtu Azores + Waxtu buñ miin ci Azores + Azores waxtu ete + + + + + Waxtu Bangladesh + Waxtu buñ miin ci Bangladesh + Waxtu ete bu Bangladesh + + + + + waxtu Bhoutan + + + + + Waxtu Bolivie + + + + + Waxtu Bresil + Brasilia time + Brasilia summer time + + + + + Brunei Darussalam + + + + + Cape Verde + Cape Verde waxtu + Cape Verde ci jamonoy ete + + + + + Chamorro Standard Time + + + + + waxtu Chatham + Chatham Standard Time + Chatham Daylight Time + + + + + Waxtu Sili + Waxtu buñ miin ci Sili + Waxtu ete bu Sili + + + + + Waxtu Chine + Waxtu buñ miin ci Chine + Chine waxtu bëccëg + + + + + waxtu ile bu noel + + + + + Waxtu ile Cocos + + + + + Waxtu Kolombi + Waxtu buñ miin ci Kolombi + Jamonoy ete ci Kolombi + + + + + Waxtu Ile Cook + Waxtu buñ miin ci Ile Cook + Ile Cook xaaju ete + + + + + Waxtu Cuba + waxtu buñ miin ci Cuba + Cuba waxtu bëccëg + + + + + Waxtu Davis + + + + + Dumont-d’Urville + + + + + Timor oriental + + + + + Waxtu ile bu Pâques + Waxtu buñ miin ci Ile de Pâques + Jamonoy ete ci Ile de Pâques + + + + + waxtu Ecuador + + + + + CTE (waxtu ëroop sàntaraal) + CEST (waxtu estàndaaru ëroop sàntaraal) + CEST (waxtu ete wu ëroop sàntaraal) + + + + + EET (waxtu ëroop u penku) + EEST (waxtu estàndaaru ëroop u penku) + EEST (waxtu ete wu ëroop u penku) + + + + + waxtu penku Europe + + + + + WET (waxtu ëroop u sowwu-jant + WEST (waxtu estàndaaru ëroop u sowwu-jant) + WEST (waxtu ete wu ëroop u sowwu-jant) + + + + + Falkland time + Falkland waxtu buñ miin + Jamonoy ete ci ile Falkland + + + + + waxtu Fidji + Fidji + Jamonoy ete ci Fiji + + + + + Guyane française + + + + + Waxtu Sud ak Antarctique bu Français + + + + + waxtu galapagos + + + + + Waxtu Gambier + + + + + Waxtu Georgie + Georgie waxtu + Georgie waxtu ete + + + + + waxtu ile Gilbert + + + + + GMT (waxtu Greenwich) + + + + + waxtu penku Greenland + Waxtu buñ miin ci penku Greenland + Waxtu ete bu penku Greenland + + + + + waxtu sowwu Greenland + waxtu buñ miin ci sowwu Groenland + waxtu ete bu sowwu Groenland + + + + + Waxtu Golf + + + + + Waxtu Guyana + + + + + Waxtu Hawaii-Aleutian + Waxtu buñ jagleel Hawaii-Aleutian + Waxtu bëccëg bu Hawaii-Aleutian + + + + + waxtu Hong Kong + waxtu buñ miin ci Hong Kong + Jamonoy ete ci Hong Kong + + + + + Hovd waxtu + Hovd waxtu standard + Hovd waxtu ete + + + + + Waxtu Inde + + + + + Waxtu géeju Inde + + + + + waxtu Indochine + + + + + Waxtu Enndonesi bu diggi bi + + + + + waxtu penku Enndonesi + + + + + waxtu sowwu Enndonesi + + + + + Waxtu Iran + Iran waxtu buñ miin + Waxtu bëccëg ci Iran + + + + + Waxtu rkutsk + waxtu Irkutsk time + Waxtu ete bu Irkutsk + + + + + Waxtu Israel + Waxtu buñ miin ci Israel + Israel waxtu bëccëg + + + + + Japon + Waxtu japon + Japon waxtu bëccëg + + + + + Waxtu Kazakhstaan + + + + + Kazakhstan penku + + + + + Kazakhstan bu sowwu jant + + + + + waxtu Kore + waxtu buñ miin ci Kore + waxtu bëccëg ci Kore + + + + + Waxtu Kosrae + + + + + Waxtu Krasnoyarsk + Krasnoyarsk waxtu + Krasnoyarsk ci jamonoy ete + + + + + Waxtu Kirgistan + + + + + Waxtu Ile Line + + + + + Lord Howe Time + Lord Howe waxtu buñ miin + ord Howe Daylight Time + + + + + Waxtu Magadaan + Magadan, waxtu + Waxtu ete bu Magadan + + + + + Malaysie + + + + + Waxtu Maldives + + + + + Waxtu Marquesas + + + + + Waxtu Ile Marshall + + + + + waxtu Maurice + Waxtu buñ miin ci Maurice + Waxtu ete bu Maurice + + + + + waxtu Mawson + + + + + waxtu pasifik bu Mexik + Waxtu buñ miin ci pasifik bu Mexico + Waxtu bëccëg ci Pacific Mexique + + + + + Ulaan Baatar + Ulaanbatar + Ulaan Baatar time + + + + + Waxtu Moscow + Moscow Waxtu + Waxtu ete bu Moscou + + + + + waxtu Myanmar + + + + + waxtu Nauru + + + + + waxtu Nepal + + + + + Waxtu New Caledonie + Waxtu buñ miin ci Caledonie bu bees + Waxtu ete bu Nouvelle Caledonie + + + + + Waxtu Nouvelle-Zélande + Waxtu buñ miin ci Nouvelle-Zélande + Nouvelle-Zélande + + + + + waxtu Terre-Neuve + Terre Neuve + Terre-Neuve + + + + + Waxtu Niue + + + + + waxtu ile Norfolk + Waxtu buñ miin ci Ile Norfolk + waxtu bëccëg ci ile Norfolk + + + + + Fernando de noronha + Vernando de Noronha + Fernando de noronha temps d’été + + + + + Waxtu Nowosibirsk + Novosibirsk waxtu + Novosibirsk ci jamonoy ete + + + + + Waxtu Omsk + Waxtu buñ miin ci Omsk + Omsk waxtu ete + + + + + Waxtu Pakistan + Waxtu buñ miin ci Pakistan + Waxtu ete bu Pakistan + + + + + waxtu Palau + + + + + Papouasie-Nouvelle-Guiné + + + + + Waxtu Paraguay + paraguay waxtu + Paraguay waxtu ete + + + + + Peru waxtu + Peru waxtu buñ miin + Peru waxtu ete + + + + + filippines waxtu + waxtu buñ miin ci filipiin + Jamonoy ete ci Philippines + + + + + waxtu ile Phoenix + + + + + Saint Pierre ak Miquelon + Saint Pierre & Miquelon + Saint Pierre and Miquelon - + - ET waxtu penku - EST (waxtu estàndaaru penku) - EDT (waxtu bëccëgu penku) + Waxtu Pitcairn - + - MT (waxtu tundu) - MST (waxtu estàndaaru tundu) - MDT (waxtu bëccëgu tundu) + Waxtu Ponape - + - PT (waxtu pasifik) - PST (waxtu estàndaaru pasifik) - PDT (waxtu bëccëgu pasifik) + waxtu Pyongyang - + - AT (waxtu atlàntik) - AST (waxtu estàndaaru penku) - ADT (waxtu bëccëgu atlàntik) + waxtu ndaje - + - CTE (waxtu ëroop sàntaraal) - CEST (waxtu estàndaaru ëroop sàntaraal) - CEST (waxtu ete wu ëroop sàntaraal) + Waxtu Rotera - + - EET (waxtu ëroop u penku) - EEST (waxtu estàndaaru ëroop u penku) - EEST (waxtu ete wu ëroop u penku) + waxtu Saxalin + Saxalin + Sakhalin Sakhalin - + - WET (waxtu ëroop u sowwu-jant - WEST (waxtu estàndaaru ëroop u sowwu-jant) - WEST (waxtu ete wu ëroop u sowwu-jant) + waxtu Samoa + Samoa Standard Time + Samoa waxtu bëccëg - + - GMT (waxtu Greenwich) + Waxtu Seychelles + + + + + waxtu buñ miin ci Singapuur + + + + + Waxtu Ile Solomon + + + + + Georgie du Sud + + + + + Waxtu Surinam + + + + + waxtu syowa + + + + + waxtu Tahiti + + + + + Waxtu Taipei + Waxtu buñ miin ci Taipei + Taipei waxtu leeralu bis + + + + + Waxtu Tajikistaan + + + + + Tokelau time + + + + + Waxtu Tonga + Tonga waxtu buñ miin + Jamonoy ete ci Tonga + + + + + Waxtu Chuuk + + + + + Waxtu Turkmenistan + Waxtu buñ miin + Waxtu ete bu Turkmenistan + + + + + Waxtu Tuvalu + + + + + Waxtu Urugway + Uruguay waxtu buñ miin + Uruguay waxtu ete + + + + + Waxtu Ouzbékistan + Waxtu buñ miin ci Ouzbékistan + Waxtu ete bu Ouzbékistan + + + + + Waxtu Vanuatu + Waxtu miin + Waxtu ete bu Vanuatu + + + + + Waxtu Venezuela + + + + + Waxtu Vladivostok + Vladivostok ci waxtu + Vladivostok ci jamonoy ete + + + + + Waxtu Volgograd + Volgograd waxtu buñ miin + Jamonoy ete bu Volgograd + + + + + Waxtu Vostok + + + + + Waxtu Ile Wake + + + + + Wallis & Futuna Time + + + + + Yakutsk Waxtu + Waxtu Yakutsk + Waxtu ete bu Yakutsk + + + + + Waxtu Yekaterinburg + Yekatérinbourg + Jamonoy ete + + + + + Waxtu Yukon @@ -1217,56 +2094,699 @@ CLDR data files are interpreted according to the LDML specification (http://unic , . + - + + + + 0 thousand + 00 thousand + 000 thousand + 0M + Vote 00M + Vote 000M + 0B + 00B + Vote 000G + + + + + 0B + 00B + 000B + + + - {0} {1} + + + ¤0K + ¤00K + ¤000K + ¤0M + ¤00M + ¤000M + ¤0B + ¤00B + ¤000B + ¤0T + ¤00T + ¤000T + + + + United Arab Emirates Dirham + UAE dirhams + + + Afghan Afghani + Afghan Afghanis + + + Albanian Lek + Albanian lekë + + + Armenian Dram + Armenian drams + + + Netherlands Antillean Guilder + Netherlands Antillean guilders + + + Angolan Kwanza + Angolan kwanzas + + + Argentine Peso + Argentine pesos + + + Australian Dollar + Australian dollars + + + Aruban Florin + Aruban florin + + + Azerbaijani Manat + Azerbaijani manats + + + Bosnia-Herzegovina Convertible Mark + Bosnia-Herzegovina convertible marks + + + Barbadian Dollar + Barbadian dollars + + + Bangladeshi Taka + Bangladeshi takas + + + Bulgarian Lev + Bulgarian leva + + + Bahraini Dinar + Bahraini dinars + + + Burundian Franc + Burundian francs + + + Vote BMD + Bermudan dollars + + + Brunei Dollar + Brunei dollars + + + Bolivian Boliviano + Bolivian bolivianos + Real bu Bresil Real yu Bresil + + Bahamian Dollar + Bahamian dollars + + + Bhutanese Ngultrum + Bhutanese ngultrums + + + Botswanan Pula + Botswanan pulas + + + Belarusian Ruble + Belarusian rubles + + + Belize Dollar + Belize dollars + + + Vote CAD + Canadian dollars + + + Congolese Franc + Congolese francs + + + Swiss Franc + Swiss francs + + + Chilean Peso + Chilean pesos + Vote $ + + + Chinese Yuan (offshore) + Chinese yuan (offshore) + Yuan bu Siin Yuan yu Siin + + Colombian Peso + Colombian pesos + + + Costa Rican Colón + Costa Rican colóns + + + Cuban Convertible Peso + Cuban convertible pesos + + + Cuban Peso + Cuban pesos + + + Cape Verdean Escudo + Cape Verdean escudos + + + Czech Koruna + Czech korunas + + + Djiboutian Franc + Djiboutian francs + + + Danish Krone + Danish kroner + + + Dominican Peso + Dominican pesos + + + Algerian Dinar + Algerian dinars + + + Egyptian Pound + Egyptian pounds + EGPP + + + Eritrean Nakfa + Eritrean nakfas + + + Ethiopian Birr + Ethiopian birrs + Euro euro + + Fijian Dollar + Fijian dollars + + + FKPS + Falkland Islands pounds + Pound bu Grànd Brëtaañ Pound yu Grànd Brëtaañ + + Georgian Lari + Georgian laris + + + Ghanaian Cedi + Ghanaian cedis + GHS. + + + Vote GIP + GIPS + GIIP + + + Gambian Dalasi + Gambian dalasis + + + Guinean Franc + Guinean francs + + + GT + Guatemalan quetzals + GT Q + + + Guyanaese Dollar + Guyanaese dollars + + + Hong Kong Dollar + Hong Kong dollars + + + Honduran Lempira + Honduran lempiras + + + Croatian Kuna + Croatian kunas + HRKS + + + Haitian Gourde + Haitian gourdes + + + Hungarian Forint + Hungarian forints + Vote Ft + + + Indonesian Rupiah + Indonesian rupiahs + + + Israeli New Shekel + Israeli new shekels + Rupee bu End Rupee yu End + + Iraqi Dinar + Iraqi dinars + + + Iranian Rial + Iranian rials + + + Icelandic Króna + Icelandic krónur + + + Jamaican Dollar + Jamaican dollars + + + Jordanian Dinar + Jordanian dinars + Yen bu Sapoŋ Yen yu Sapoŋ + + Kenyan Shilling + Kenyan shillings + + + Kyrgystani Som + Kyrgystani soms + + + Cambodian Riel + Cambodian riels + + + Comorian Franc + Comorian francs + + + North Korean Won + North Korean won + + + South Korean Won + South Korean won + + + Kuwaiti Dinar + Kuwaiti dinars + + + Cayman Islands Dollar + Cayman Islands dollars + + + Kazakhstani Tenge + Kazakhstani tenges + + + Laotian Kip + Laotian kips + + + Lebanese Pound + Lebanese pounds + + + Sri Lankan Rupee + Sri Lankan rupees + + + Liberian Dollar + Liberian dollars + + + Lesotho Loti + Lesotho lotis + + + Libyan Dinar + Libyan dinars + + + Moroccan dirhams + Moroccan dirhams + + + Moldovan Leu + Moldovan lei + Vote MDL + + + Malagasy Ariary + Malagasy ariaries + + + Macedonian Denar + Macedonian denari + + + Myanmar Kyat + Myanmar kyats + + + Mongolian Tugrik + Mongolian tugriks + + + Macanese Pataca + Macanese patacas + + + Mauritanian Ouguiya + Mauritanian ouguiyas + + + Mauritian Rupee + Mauritian rupees + + + Maldivian Rufiyaa + Maldivian rufiyaas + + + Malawian Kwacha + Malawian kwachas + + + Mexican Peso + Mexican pesos + + + Malaysian Ringgit + Malaysian ringgits + + + Mozambican Metical + Mozambican meticals + + + Namibian Dollar + Namibian dollars + + + Nigerian Naira + Nigerian nairas + NGN. + + + Nicaraguan Córdoba + Nicaraguan córdobas + + + Norwegian Krone + Norwegian kroner + + + Nepalese Rupee + Nepalese rupees + + + New Zealand Dollar + New Zealand dollars + + + Omani Rial + Omani rials + + + Panamanian Balboa + Panamanian balboas + + + Peruvian Sols + Peruvian soles + + + Papua New Guinean Kina + Papua New Guinean kina + + + Philippine Peso + Philippine pesos + + + Pakistani Rupee + Pakistani rupees + + + Polish Zloty + Polish zlotys + + + Paraguayan Guaranis + Paraguayan guaranis + + + Qatari Riyal + Qatari riyals + + + Romanian Leu + Romanian lei + Vote lei + + + Serbian Dinar + Serbian dinars + Ruble bi Rsis Ruble yu Risi + + Rwandan Franc + Rwandan francs + + + Saudi Riyal + Saudi riyals + + + Solomon Islands Dollar + Solomon Islands dollars + + + Seychellois Rupee + Seychellois rupees + + + Sudanese Pound + Sudanese pounds + + + Swedish Krona + Swedish kronor + + + Singapore Dollar + Singapore dollars + + + St. Helena Pound + St. Helena pounds + + + Sierra Leonean Leone + Sierra Leonean leones + + + Sierra Leonean Leone (1964—2022) + Sierra Leonean leones (1964—2022) + + + Somali Shilling + Somali shillings + + + Surinamese Dollar + Surinamese dollars + + + South Sudanese Pound + South Sudanese pounds + + + São Tomé & Príncipe Dobra + São Tomé & Príncipe dobras + + + Syrian Pound + Syrian pounds + + + Swazi Lilangeni + Swazi emalangeni + + + Thai Baht + Thai baht + + + Tajikistani Somoni + Tajikistani somonis + + + Turkmenistani Manat + Turkmenistani manat + + + Tunisian Dinar + Tunisian dinars + + + Tongan Paʻanga + Tongan paʻanga + + + Turkish Lira + Turkish Lira + + + Trinidad & Tobago Dollar + Trinidad & Tobago dollars + + + New Taiwan Dollar + New Taiwan dollars + + + Tanzanian Shilling + Tanzanian shillings + + + UAHS + Ukrainian hryvnias + + + Ugandan Shilling + Ugandan shillings + Dolaaru US Dolaari US $ + + Uruguayan Peso + Uruguayan pesos + + + Uzbekistani Som + Uzbekistani som + + + Venezuelan Bolívar + Venezuelan bolívars + + + Vietnamese Dong + Vietnamese dong + + + Vanuatu Vatu + Vanuatu vatus + + + Samoan Tala + Samoan tala + + + Central African CFA Franc + Central African CFA francs + + + East Caribbean Dollar + East Caribbean dollars + Franc CFA bu Afrik Sowwu-jant Franc CFA yu Afrik Sowwu-jant + + CFP Franc + CFP francs + Xaalis buñ Xamul (xaalis buñ xamul) + + Yemeni Rial + Yemeni rials + + + South African Rand + South African rand + + + Zambian Kwacha + Zambian kwachas + ⩾{0} + + Jël {0} ci ndeyjoor. + @@ -1290,6 +2810,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + {0}, & {1} + {0} & {1} + + + {0} {1} + {0} {1} + {0} {1} + + waaw:wa diff --git a/make/data/cldr/common/main/xh.xml b/make/data/cldr/common/main/xh.xml index 2f2b457805b..4a80d82776c 100644 --- a/make/data/cldr/common/main/xh.xml +++ b/make/data/cldr/common/main/xh.xml @@ -12,8 +12,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic - isiBhulu - Isi-Amharic + IsiBhulu + IsiAmharic Isi-Arabhu Isi-Arabhu (Sale mihla) isiAssamese @@ -111,7 +111,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Isi-Slovak Isi-Slovenian IsiSomaliya - Isi-Albania + IsiAlbania Isi-Serbia Sesotho Isi-Sudanese @@ -745,7 +745,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Tht Sin Hl - Mgq + Mg Cawe @@ -774,7 +774,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic St Sin Hl - Mgq + Mg @@ -1143,12 +1143,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Unknown City - - St. Barthélemy - - - Curaçao - British Summer Time @@ -1171,15 +1165,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Cancun - - Asunción - - - Réunion - - - São Tomé - Ho Chi Minh City @@ -1398,13 +1383,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic China Daylight Time - - - Choibalsan Time - Choibalsan Standard Time - Choibalsan Summer Time - - Christmas Island Time @@ -1643,6 +1621,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Japan Daylight Time + + + Kazakhstan Time + + East Kazakhstan Time @@ -2070,8 +2053,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ¤ #,##0.00 - {0} {1} - {0} {1} @@ -2100,9 +2081,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Netherlands Antillean guilders - I-Kwanza yase-Angola - I-kwanza yase-Angola - Ii-kwanza zase-Angola + IKwanza yaseAngola + Ikwanza yaseAngola + Iikwanza zaseAngola IPeso yase-Argentina @@ -2205,14 +2186,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic Canadian dollars - I-Franc yaseCongo - I-franc yaseCongo - Ii-franc zaseCongo + IFranc yaseCongo + Ifranc yaseCongo + Iifranc zaseCongo - I-Franc yaseSwitzerland - I-franc yaseSwitzerland - Ii-francs zaseSitzerland + IFranc yaseSwirtzeland + Ifranc yaseSwitzerland + Iifranc zaseSwitzerland I-Peso yaseChile @@ -2306,7 +2287,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Iidola zaseFiji - Iponti yaseFalkland Islands + IPonti yaseFalkland Islands IPonti yaseFalkland Islands Iiponti zaseFalkland Islands @@ -2321,9 +2302,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ii-lari zaseGeorgia - I-Cedi yaseGhana - I-cedi yaseGhana - Ii-cedi zaseGhana + ICedi yaseGhana + Icedi yaseGhana + Iicedi zaseGhana IPonti yaseGilbraltar @@ -2331,14 +2312,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic Iiponti zaseGibraltar - I-Dalasi yaseGambia - I-dalasi yaseGambia - Ii-dalasi zaseGambia + IDalasi yaseGambia + Idalasi yaseGambia + Iidalasi zaseGambia - I-Franc yaseGuinea - I-franc yaseGuinea - Ii-franc zaseGuinea + IFranc yaseGuinea + ifranc yaseGuinea + Iifranc zaseGuinea Guatemalan Quetzal @@ -2401,9 +2382,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ii-rial zase-Iran - I-Króna yase-Iceland - I-króna yase-Iceland - Ii-krónur zase-Iceland + IKróna yaseIceland + Ikróna yaseIceland + Iikrónur zaseIceland Jamaican Dollar @@ -2572,9 +2553,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Iidola zaseNamibia - I-Naira yaseNigeria - I-naira yaseNigeria - Ii-naira zaseNigeria + INaira yaseNigeria + Inaira yaseNigeria + Iinaira zaseNigeria Nicaraguan Córdoba @@ -2582,9 +2563,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Nicaraguan córdobas - I-Krone yaseNorway - I-krone yaseNorway - Ii-kroner zaseNorway + IKrone yaseNorway + Ikrone yaseNorway + Iikroner zaseNorway I-Rupee yaseNepal @@ -2682,9 +2663,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Iiponti zaseSudan - I-Krona yaseSweden - I-krona yaseSweden - Ii-kronor zaseSweden + IKrona yaseSweden + Ikrona yaseSweden + Iikronor zaseSweden IDola yaseSingapore @@ -2722,9 +2703,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Iiponti zaseSouth Sudan - I-Dobra yaseSão Tomé & Príncipe - I-dobra yaseSão Tomé & Príncipe - Ii-dobra zaseSão Tomé & Príncipe + IDobra yaseSão Tomé & Príncipe + Idobra yaseSão Tomé & Príncipe + Iidobra zaseSão Tomé & Príncipe IPonti yaseSiriya @@ -2828,9 +2809,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic I-tala yaseSamoa - Central African CFA Franc - I-CFA franc yaseCentral Africa - Ii-CFA francs zaseCentral Africa + ICFA Franc yaseCentral Africa + ICFA franc yaseCentral Africa + IiCFA franc zaseCentral Africa East Caribbean Dollar @@ -2838,9 +2819,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic East Caribbean dollars - West African CFA Franc - I-CFA franc yaseWest Africa - Ii-CFA franc zaseWest Africa + ICFA Franc yaseWest Africa + ICFA franc yaseWest Africa + IiCFA franc zaseWest Africa I-Franc yaseCFP @@ -2849,7 +2830,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ikharensi Engaziwayo - (ikharensi exabiso lingaziwayo) + ikharensi engaziwayo (ikharensi engaziwayo) diff --git a/make/data/cldr/common/main/xnr.xml b/make/data/cldr/common/main/xnr.xml index 1869a6f5f8c..b6c823ffc0f 100644 --- a/make/data/cldr/common/main/xnr.xml +++ b/make/data/cldr/common/main/xnr.xml @@ -12,6 +12,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic + अफ़ार अब्ख़ाज़ियन अचाइनीस अदान्गमे @@ -45,6 +46,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic बेम्बा बेना बुल्गारियाई + पश्चिमी बलोची भोजपुरी बिस्लामा बिनी @@ -73,6 +75,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic कुर्दी, सोरानी कोर्सीकन चेक + चर्च साल्विक चूवाश वेल्श डेनिश @@ -143,7 +146,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic हवाई हिब्रू हिन्दी - हिंग्लिश + हिंग्लिस हिलिगेनन ह्मॉंग क्रोएशियाई @@ -157,6 +160,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic इबान इबिबियो इंडोनेशियाई + ईन्टरलिंगुइ ईग्बो सिचुआन यी इलोको @@ -171,6 +175,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic मैकहैमे जावानीज़ जॉर्जियाई + कारा-कल्पक कबाइल काचिन ज्जु @@ -180,6 +185,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic मैकोंड काबुवेर्दियानु कोरो + कइंगंग खासी कोयरा चीनी किकुयू @@ -289,6 +295,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ओरोमो उड़िया ओस्सेटिक + ओसेज पंजाबी पंगासीनान पाम्पान्गा @@ -296,11 +303,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic पलोउआन नाइजीरियाई पिडगिन पोलिश + प्रुशियाई पश्तो पुर्तगाली ब्राज़ीली पुर्तगाली यूरोपीय पुर्तगाली क्वेचुआ + किश राजस्थानी रापानुई रारोतोंगन @@ -323,7 +332,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic सिसिलियन स्कॉट्स सिंधी - नॉर्दन सामी + उतरी सामी सेना कोयराबोरो सेन्नी सांगो @@ -342,6 +351,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic सर्बियाई स्रानान टॉन्गो स्वाती + साहो दखणे बखें सेसेथो सुंडानी सुकुमा @@ -360,6 +370,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic तुर्कमेन क्लिंगन त्लिंगित + सेत्स्वाना टोंगन टोक पिसिन तुर्की @@ -381,11 +392,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic वाई वेन्दा वियतनामी + वोलापुक वुंजो वाल्लून वाल्सर वलामो वारै + वॉल्पेरी वोलोफ़ वू चीनी काल्मिक @@ -398,6 +411,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic योरूबा कैंटोनीज़ चीनी, कैंटोनीज़ + ज़ुआंग मानक मोरक्कन तामाज़ाइट चीनी चीनी, मैंडेरिन @@ -412,56 +426,122 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -481,7 +561,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic उत्तरी अफ़्रीका बिचला अफ़्रीका दखणे बखें अफ़्रीका - अमरिके दा + अमरिका दा उत्तरी अमरिका कैरिबियन पूर्वी एशिया @@ -503,7 +583,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic लैटिन अमरिका असेंशन द्वीप एंडोरा - कट्ठा अरब अमीरात + संयुक्त अरब अमीरात अफ़गानिस्तान एंटिगुआ कने बरबुडा एंग्विला @@ -518,7 +598,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic अरूबा एलैंड द्वीपां दा झुंड अज़रबैजान - बोस्निया और हर्ज़ेगोविना + बोस्निया कने हर्ज़ेगोविना बारबाडोस बांग्लादेश बेल्जियम @@ -570,7 +650,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic डोमिनिका डोमिनिकन गणराज्य अल्जीरिया - सेउटा और मेलिला + सेउटा कने मेलिला इक्वाडोर एस्टोनिया मिस्र @@ -602,7 +682,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ग्वाडेलूप इक्वेटोरियल गिनी यूनान - दखण जॉर्जिया और दखण सैंडविच द्वीपां दा झुंड + दखण जॉर्जिया कने दखण सैंडविच द्वीपां दा झुंड ग्वाटेमाला गुआम गिनी-बिसाउ @@ -687,6 +767,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic नाउरु नीयू न्यूज़ीलैंड + औटेआरोआ न्यूज़ीलैंड ओमान पनामा पेरू @@ -695,7 +776,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic फ़िलिपींस पाकिस्तान पोलैंड - सेंट पिएरे और मिक्वेलान + सेंट पिएरे कने मिक्वेलान पिटकैर्न द्वीपसमूह पोर्टो रिको फ़िलिस्तीनी लाका @@ -718,7 +799,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic सिंगापुर सेंट हेलेना स्लोवेनिया - स्वालबार्ड और जान मायेन + स्वालबार्ड कने जान मायेन स्लोवाकिया सिएरा लियोन सैन मेरीनो @@ -726,7 +807,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic सोमालिया सूरीनाम दखण सूडान - साओ टोम और प्रिंसिपे + साओ टोम कने प्रिंसिपे अल सल्वाडोर सिंट मार्टिन सीरिया @@ -746,7 +827,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ट्यूनीशिया टोंगा तुर्की - त्रिनिदाद और टोबैगो + त्रिनिदाद कने टोबैगो तुवालू ताइवान तंज़ानिया @@ -754,18 +835,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic युगांडा यू॰एस॰ आउटलाइंग द्वीपां दा झुंड संयुक्त रास्टर - कट्ठा राज्य + संयुक्त राज्य अमरिका उरूग्वे उज़्बेकिस्तान वेटिकन सिटी - सेंट विंसेंट और ग्रेनाडाइंस + सेंट विंसेंट कने ग्रेनाडाइंस वेनेज़ुएला ब्रिटिश वर्जिन द्वीपां दा झुंड यू॰एस॰ वर्जिन द्वीपां दा झुंड वियतनाम वनुआतू - वालिस और फ़्यूचूना + वालिस कने फ़्यूचूना समोआ सूडो-एक्सेंट सूडो-बायडायरेक्शनल @@ -777,6 +858,25 @@ CLDR data files are interpreted according to the LDML specification (http://unic ज़िम्बाब्वे अणजाण लाका + + पारम्पारिक जर्मन वर्तनी + जर्मेनी दी 1996 वर्तनी + एकस्वरीय + जनीवा बोली + बड़े सारे स्वरां आली + कम्प्यूटर + संशोधित वर्तनी + + + कैलेंडर + मुद्रा प्रारूप + सॉर्ट क्रम + मुद्रा + घंटेयां दा चक्र (12 कने 24) + पंक्ति विच्छेद शैली + मापन प्रणाली + संख्यां + बौद्ध पंचांग चीनी पंचांग @@ -790,9 +890,63 @@ CLDR data files are interpreted according to the LDML specification (http://unic आईएसओ-8601 कैलेंडर जापानी पंचांग फ़ारसी कैलेंडर + चीनी गणतंत्र पंचांग + लेखांकन मुद्रा प्रारूप + मानक मुद्रा प्रारूप + पारम्पारिक चीनी वर्गीकरण + डिफ़ॉल्ट यूनिकोड सॉर्ट क्रम + सरलीकृत चीनी वर्गीकरण + फोनबुक छंटाई क्रम + पिनयीन वर्गीकरण + सामान्य-उद्देश्य खोज मानक सॉर्ट क्रम + स्ट्रोक वर्गीकरण + पारम्पारिक वर्गीकरण + 12 घंटेयां दी प्रणाली (0–11) + 12 घंटेयां दी प्रणाली (1–12) + 24 घंटेयां दी प्रणाली (0–23) + 24 घंटेयां दी प्रणाली (1–24) + ढीली लैंण विच्छेद शैली< + सामान्य लैंण विच्छेद शैली + सख्त लैंण विच्छेद शैली + मेट्रिक प्रणाली + इम्पीरियल मापन प्रणाली + अमरिकी मापन प्रणाली + अरबी-भारतीय अंक + बधायो अरबी-भारतीय अंक + आर्मेनियाई संख्याएँ + आर्मेनियाई लोअरकेस संख्यां + बंगाली अंक देवनागरी अंक + इथियोपियाई संख्यां + पूरी चौड़ाई अंक + जॉर्जियन संख्यां + यूनानी संख्यां + यूनानी लोअरकेस संख्यां + गुजराती अंक + गुरमुखी अंक + चीनी दशमलव संख्यां + सरलीकृत चीनी संख्यां + सरलीकृत चीनी वित्तीय संख्यां + पारंपरिक चीनी संख्यां + पारंपरिक चीनी वित्तीय संख्यां + हिब्रू संख्यां + जापानी संख्यां + जापानी वित्तीय संख्यां + खमेर अंक + कन्नड़ अंक + लाओ अंक पश्चिमी अंक + मलयालम अंक + म्यांमार अंक + उड़िया अंक + रोमन संख्यां + रोमन लोअरकेस संख्यां + पारंपरिक तमिल संख्यां + तमिल अंक + तेलुगू अंक + थाई अंक + तिब्बती अंक मीट्रिक @@ -817,7 +971,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - EEEE, MMMM d, y G + G EEEE, d MMMM y @@ -1117,12 +1271,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic - {1} जो {0} + {1}, {0} - {1} जो {0} + {1}, {0} @@ -1241,6 +1395,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + + सक + + @@ -1252,56 +1411,319 @@ CLDR data files are interpreted according to the LDML specification (http://unic पिछले साल एह साल अगला साल + + {0} साल्लां च + + + {0} साल पैले + तिन मीन्ने + आखरी तिन मीन्ने + एह तिन मीन्ने + अगले तिन मीन्ने + + {0} तिनां मीन्नेयां च + + + {0} तिनां मीन्नेयां च + + + + तरमाही मीन्ना पिछले मीन्ने एह मीन्ना अगला मीन्ना + + {0} मीन्नेयां च + + + {0} मीन्ने पैले + हफ्ता पिछले हफ्ते एह हफ्ता - अगले हफ्ते‘ + अगले हफ्ते + + {0} हफ्तेयां च + + + {0} हफ्तेयां पैले + {0} दा हफ्ता + + पिछले हफ्ते + एह हफ्ता + अगले हफ्ते + + + पिछले हफ्ते + एह हफ्ता + अगले हफ्ते + + + मीन्ने दा हफ्ता + + + मीन्ने दा हफ्ता + ध्याड़ा पिछला कल अज्ज अगले कल + + {0} ध्याड़ेयां च + + + {0} ध्याड़े पैले + + + + दिन + + + साल्ले दा ध्याड़ा + + + साल्ले दा ध्याड़ा हफ्ते दा ध्याड़ा + + मीन्ने दा कम्मे आला ध्याड़ा + + + पिछला तोआर + एह तोआर + अगले तोआर + + {0} तोआरे च + + + {0} तोआर पैले + + + + पिछला तो॰ + एह तो॰ + अगले तो॰ + + {0} तो॰ च + + + {0} तो॰ पैले + + + + पिछला सोआर + एह सोआर + अगला सोआर + + {0} सोआरां च + + + {0} सोआरां पैले + + + + पिछला सो॰ + एह सो॰ + अगला सो॰ + + {0} सो॰ च + + + {0} सो॰ पैले + + + + पिछला मंगलवार + एह मंगलवार + अगले मंगलवारे + + {0} मंगलवारे च + + + {0} मंगलवार पैले + + + + पिछले मंगले॰ + एह मंगल॰ + अगला मंगल॰ + + {0} मंगले॰ च + + + {0} मंगल॰ पैले + + + + पिछला बुधवार + एह बुधवार + अगला बुधवार + + {0} बुधवारे च + + + {0} बुधवार पैले + + + + पिछले बुधे॰ + एह बुध॰ + अगले बुधे॰ + + {0} बुधे॰ च + + + {0} बुध॰ पैले + + + + पिछला वीरवार + एह वीरवार + अगला वीरवार + + {0} वीरवारे च + + + {0} वीरवार पैले + + + + पिछला वीर॰ + एह वीर॰ + अगला वीर॰ + + {0} वीरे॰ च + + + {0} वीर॰ पैले + + + + पिछला शुक्करवार + एह शुक्करवार + अगला शुक्करवार + + {0} शुक्करवारे च + + + {0} शुक्करवार पैले + + + + पिछला शुक्कर॰ + एह शुक्कर॰ + अगला शुक्कर॰ + + {0} शुक्करे॰ च + + + {0} शुक्कर॰ पैले + + + + पिछला शनिच्चर + एह शनिच्चर + अगला शनिच्चर + + {0} शनिच्चरे च + + + {0} शनिच्चर पैले + + + + पिछला शनि॰ + एह शनि॰ + अगला शनि॰ + + {0} शनि॰ च + + + {0} शनि॰ पैले + + + + भ्/सं + भ्यागा/संजा घंटा + एह घंटा + + {0} घंटे च + + + {0} घंटे पैले + घं॰ + + {0} घं॰ च + + + {0} घं॰ पैले + मिंट + एह मिंट + + {0} मिंटे च + + + {0} मिंट पैले + मि॰ + + {0} मि॰ च + + + {0} मि॰ पैले + सकिंट + हुण + + {0} सकिंटे च + + + {0} सकिंट पैले + स॰ + + {0} स॰ च + + + {0} स॰ पैले + टैम लाका + + लाका + ग्री॰ मै॰ टै॰{0} @@ -1313,15 +1735,1259 @@ CLDR data files are interpreted according to the LDML specification (http://unic समन्वित दुनिया दा टैम + + अणजाण शहर + + + अंडोरा + + + डबई + + + काबल + + + एंटीगुआ + + + एंग्विला + + + टाइरेन + + + येरेवान + + + लुआंडा + + + रोथेरा + + + पॉमर + + + ट्रोल + + + स्योवा + + + मॉसन + + + डेविस + + + वोस्तोक + + + केसी + + + ड्यूमोंट डी अर्विले + + + मैकमुर्डो + + + रियो गालेगोस + + + मेंडोज़ा + + + सैन ह्वान + + + उशुआइया + + + ला रिओजा + + + सैन लूई + + + काटामार्का + + + साल्टा + + + जुजोए + + + टोकूमन + + + कोर्डोबा + + + ब्यूनस आयरस + + + पागो गंगो + + + विएना + + + पर्थ + + + यूक्ला + + + डार्विन + + + एडिलेड + + + ब्रोकन हिल + + + मेलबोर्न + + + होबार्ट + + + लिंडेमान + + + सिडनी + + + ब्रिस्बन + + + मक्वारी + + + लॉर्ड होवे + + + अरूबा + + + मारियाहैम + + + बाकु + + + साराजेवो + + + बारबाडोस + + + ढाका + + + ब्रूसेल्स + + + औगाडोगू + + + सोफ़िया + + + बहरीन + + + बुजुंबूरा + + + पोर्टो-नोवो + + + सेंट बार्थेलेमी + + + बरमूडा + + + ब्रूनेई + + + ला पाज़ + + + क्रालैंडिजिक + + + ईरुनेपे + + + रियो ब्रांको + + + पोर्टो वेल्हो + + + बोआ विस्ता + + + मनौस + + + क्यूआबा + + + सैंटारेम + + + कैंपो ग्रांडे + + + बेलेम + + + आराग्वेना + + + साओ पाउलो + + + बहिया + + + फ़ोर्टालेज़ा + + + मेसीओ + + + रेसाइफ़ + + + नोरोन्हा + + + नासाउ + + + थिंपू + + + गाबोरोन + + + मिंस्क + + + बेलीज़ + + + डॉसन + + + व्हाइटहोर्स + + + इनूविक + + + वैंकूवर + + + फ़ोर्ट नेल्सन + + + डॉसन क्रीक + + + क्रेस्टन + + + एडमंटन + + + स्विफ़्ट करंट + + + कैम्ब्रिज खाड़ी + + + रेजिना + + + विनीपेग + + + रिसोल्यूट + + + रेंकिन इनलेट + + + अटिकोकान + + + टोरंटो + + + इकालुईट + + + मोंकटन + + + हेलिफ़ैक्स + + + गूस खाड़ी + + + ग्लेस खाड़ी + + + ब्लांक-सेबलोन + + + सेंट जोंस + + + कोकोस + + + किंशासा + + + लुबुमबाशी + + + बांगुइ + + + ब्राज़ाविले + + + ज़्यूरिख़ + + + अबिदजान + + + रारोटोंगा + + + ईस्टर + + + पुंटा एरिनास + + + सैंटियागो + + + डूआला + + + उरूम्की + + + शंघाई + + + बोगोटा + + + कोस्टा रिका + + + हवाना + + + केप वर्ड + + + कुराकाओ + + + क्रिसमिस + + + निकोसिया + + + फ़ामागुस्ता + + + प्राग + + + ब्यूसिनजेन + + + बर्लिन + + + जिबूती + + + कोपेनहेगन + + + डोमिनिका + + + सेंटो डोमिंगो + + + अल्जीयर्स + + + गेलापागोस + + + ग्वायाकील + + + तेलिन + + + कायरो + + + अल आइयून< + + + अस्मारा + + + कैनेरी + + + सेउटा + + + मैड्रिड + + + अदीस अबाबा + + + हेलसिंकी + + + फ़िजी + + + स्टैनली + + + चक + + + पोनपेई + + + कोसराए + + + फ़ैरो + + + पैरस + + + लिब्रेविले + ब्रिटिश दी तोंदिया दा टैम + लंदन + + + ग्रेनाडा + + + टबिलिसी + + + कायेन + + + गर्नसी + + + एक्रा + + + जिब्राल्टर + + + थ्यूले + + + नुक + + + इटोकोर्टोरमिट + + + डेनमार्कशॉन + + + बैंजुल + + + कोनाक्री + + + ग्वाडेलोप + + + मलाबो + + + एथेंस + + + दखणी जॉर्जिया + + + ग्वाटेमाला + + + गुआम + + + बिसाऊ + + + गुयाना + + + हाँग काँग + + + टेगुसिगल्पा + + + ज़ाग्रेब + + + पोर्ट-ऑ-प्रिंस + + + बुडापेस्ट + + + जकार्ता + + + पोंटीयांक + + + मकस्सर + + + जयापुरा आइरिश दा मानक टैम + डबलिन + + + यरूशलम + + + आइल ऑफ़ मैन + + + कलकाता + + + शागोस + + + बगदाद + + + तेहरान + + + रेक्याविक + + + रोम + + + जर्सी + + + जमैका + + + अम्मान + + + टोक्यो + + + नैरोबी + + + बिश्केक + + + नोम पेन्ह + + + कैंटन + + + किरीतिमाति + + + टारावा + + + कोमोरो + + + सेंट किट्स + + + प्योंगयांग + + + सिओल + + + कुवैत + + + कैमेन + + + अक्ताउ + + + ओरल + + + एतराउ + + + अक्तोब + + + कोस्टाने + + + केज़ेलोर्डा + + + अल्माटी + + + विएनतियान + + + बेरुत + + + सेंट लूसिया + + + वादुज़ + + + कोलंबो + + + मोनरोविया + + + मासेरू + + + विल्नियस + + + लक्ज़मबर्ग + + + रीगा + + + त्रिपोली + + + कासाब्लांका + + + मोनाको + + + चिसीनाउ + + + पोड्गोरिका + + + मैरीगोट + + + एंटानानरीवो + + + क्वाज़ालीन + + + माजुरो + + + स्कोप्जे + + + बमाको + + + रंगून + + + होव्ड + + + उलानबातर + + + मकाऊ + + + सायपान + + + मार्टिनिक + + + नौआकशॉट + + + मोंटसेरात + + + माल्टा + + + मॉरीशस + + + मालदीव + + + ब्लांटायर + + + तिजुआना + + + हर्मोसिल्लो + + + मज़ाटलान + + + चिहुआहुआ + + + बेहिया बांडेरास + + + ओखाजीनागा + + + मोंटेरेरी + + + मेक्सिको सिटी + + + माटामोरोस + + + मेरिडा + + + कैनकुन + + + कुआलालंपुर + + + कूचिंग + + + मापुटो + + + विंडहोक + + + नौमिया + + + नियामी + + + नॉरफ़ॉक + + + लागोस + + + मानागुआ + + + एम्स्टरडम + + + ओस्लो + + + काठमांडू + + + नौरु + + + नीयू + + + चैथम + + + ऑकलैंड + + + मस्कट + + + पनामा + + + लीमा + + + ताहिती + + + मार्केसस + + + गैंबियर + + + पोर्ट मोरेस्बी + + + बोगनविले + + + मनीला + + + कराची + + + वॉरसॉ + + + मिकेलॉन + + + पिटकैर्न + + + पोर्टो रिको + + + गाज़ा + + + हेब्रोन + + + अज़ोरेस + + + मडेरा + + + लिस्बन + + + पलाऊ + + + एसनशियॉन + + + कतर + + + रीयूनियन + + + बुख़ारेस्ट + + + बेलग्रेड + + + कालीनिनग्राड + + + मॉस्को + + + वोल्गोग्राड + + + सारातोव + + + आस्ट्राखान + + + उल्यानोव्स्क + + + किरोव + + + समारा + + + येकातेरिनबर्ग + + + ओम्स्क + + + नोवोसिबिर्स्क + + + बर्नोल + + + तोम्स्क + + + नोवोकुज़्नेत्स्क + + + क्रास्नोयार्स्क + + + इर्कुत्स्क + + + त्शिता + + + याकूत्स्क + + + व्लादिवोस्तोक + + + खांडिगा + + + सखालिन + + + यूस्ट–नेरा + + + मागादान + + + स्रेद्निकोलिमस्क + + + कमचत्का + + + अनाडिर + + + किगाली + + + रियाद + + + ग्वाडलकनाल + + + माहे + + + खार्तूम + + + स्टॉकहोम + + + सिंगापुर + + + सेंट हेलेना + + + ल्यूबेलजाना + + + लॉन्गईयरबायेन + + + ब्रातिस्लावा + + + फ़्रीटाउन + + + सैन मारीनो + + + डकार + + + मोगादिशु + + + पारामारिबो + + + जुबा + + + साओ टोम + + + अल सल्वाडोर + + + लोअर प्रिंसेस क्वार्टर + + + दमास्कस + + + एमबाबेन + + + ग्रांड टर्क + + + नेद्जामीना + + + करगुलेन + + + लोम + + + बैंकॉक + + + दुशांबे + + + फ़ाकाओफ़ो + + + डिलि + + + अश्गाबात + + + ट्यूनिस + + + टोंगाटापू + + + इस्तांबुल + + + पोर्ट ऑफ़ स्पेन + + + फ़्यूनाफ़ुटी + + + ताइपेई + + + दार अस सलाम + + + कीव + + + सिम्फ़ेरोपोल + + + कंपाला + + + मिडवे + + + वेक + + + अडक + + + नोम + + + एंकरेज + + + याकूटाट + + + सिट्का + + + ज्यूनाउ + + + मेट्लेकाट्ला + + + लॉस एंजिल्स + + + बॉइसी + + + फ़ीनिक्स + + + डेनवर + + + ब्यूला, उत्तरी डकोटा + + + न्यू सालेम, उत्तरी डकोटा + + + मध्य, उत्तरी दाकोता + + + शिकागो + + + मेनोमिनी + + + विंसेनेस, इंडियाना + + + पीटर्सबर्ग, इंडियाना + + + टेल सिटी, इंडियाना + + + नौक्स, इंडियाना + + + विनामेक, इंडियाना + + + मारेंगो, इंडियाना + + + इंडियानापोलिस + + + लुइसविले + + + वेवे, इंडियाना + + + मोंटीसेलो, केंटकी + + + डेट्रॉयट + + + न्यूयॉर्क + + + मोंटेवीडियो + + + समरकंद + + + ताशकंद + + + वेटिकन + + + सेंट विंसेंट + + + काराकस + + + टोर्टोला + + + सेंट थॉमस + + + हो ची मिन्ह शहर + + + एफ़ेट + + + वालिस + + + एपिया + + + अदन + + + मायोत्ते + + + जोहांसबर्ग + + + लुसाका + + + हरारे @@ -1538,13 +3204,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic चीन दे ध्याड़े दे उजाले दा टैम - - - कॉइबाल्सन दा टैम - कॉइबाल्सन दा मानक टैम - कॉइबाल्सन दी तोंदिया दा टैम - - क्रिसमस टापू दा टैम @@ -2064,7 +3723,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - दखणे बखें जॉर्जिया दा टैम + दखण जॉर्जिया दा टैम @@ -2192,6 +3851,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic येकातेरिनबर्ग दी तोंदिया दा टैम + + + युकॉन टैम + + @@ -2204,6 +3868,38 @@ CLDR data files are interpreted according to the LDML specification (http://unic #,##,##0.### + + + 0 हजार + 00 हजार + 0 लख + 00 लख + 0 करोड़ + 00 करोड़ + 0 अरब + 00 अरब + 0 खरब + 00 खरब + 000 खरब + 0000 खरब + + + + + 0 हजार + 00 हजार + 0 लख + 00 लख + 0 क॰ + 00 क॰ + 0 अ॰ + 00 अ॰ + 0 ख॰ + 00 ख॰ + 0 नील + 00 नील + + @@ -2221,7 +3917,22 @@ CLDR data files are interpreted according to the LDML specification (http://unic #,##,##0.00 - {0} {1} + + + ¤0 हज़ार + ¤00 हज़ार + ¤0 लख + ¤00 लख + ¤0 क॰ + ¤00 क॰ + ¤0 अ॰ + ¤00 अ॰ + ¤0 ख॰ + ¤00 ख॰ + ¤0 नील + ¤00 नील + + @@ -2847,6 +4558,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic खास पास्सा + {0} पूरब + {0} उत्तर + {0} दखण + {0} पच्छम @@ -2880,4 +4595,150 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}, {1} + + {0} — सारे + {0} — अनुकूलता + {0} — संलग्न + {0} — बधाया गया + {0} — ऐतिहासिक + {0} — कई तरह दा + {0} — होर + लिपियाँ — {0} + {0} स्ट्रोक + गतिविधि + अफ़्रीकी लिपि + अमरिकी लिपि + पशु + पशु कने प्रकृति + तीर + शरीर + बॉक्स ड्राइंग + ब्रेल + इमारत + बुलेट या तारा + व्यंजनात्मक वर्ण + मुद्रा प्रतीक + डैश या कनेक्टर + अंक + डिंग बैट + पैले अणुमाने आला चिह्न + निचले पास्से आला तीर + निचले पास्से उपरले पास्से तीर + पूर्वी एशियाई लिपि + इमोजी + यूरोपीय लिपि + जणांस + झंडा + झंडे + खाणां-पीणां + प्रारूप + प्रारूप कने चिट्टी खाली जगह + पूरी चौड़ाई आला फ़ॉर्म वेरिएंट + ज्यामितीय आकार + अद्धी चौड़ाई वेरिएंट + हान वर्ण + हान मूलशब्द + हांजा + चीनी हान वर्ण (सादी) + चीनी हान वर्ण (पारंपरिक) + दिल + ऐतिहासिक लिपि + आइडियोग्राफ़िक विवरणात्मक वर्ण + जपानी काना + कानबुन + कांजी + कीकैप + खब्बे पास्से तीर + खब्बे पास्से कने सज्जे पास्से आला तीर + अक्खर सांइये दुसणे आला चिह्न + सीमित इस्तेमाल + मर्द + गणितीय प्रतीक + बिचली-पूर्वी लिपि + कई तरह दा + आधुनिक लिपि + संशोधण करणे आला + संगीते दा चिह्न + प्रकृति + गैर रिक्ति + संख्या + वस्तु + होर + जोड़ये + मांणु + ध्वन्यात्मक वर्णमाला + पिक्टोग्राफ़ + जगह + पौधा + विराम चिह्न + सज्जे पास्से आला तीर + चिह्न या प्रतीक + छोटे फ़ॉर्म किस्म + स्माइली + स्माइली या लोक + दखण एशियाई लिपि + दखण-पूर्वी एशियाई लिपि + रिक्ति + खेल + चिह्न + तकनीकी प्रतीक + टोन चिह्न + यात्रा + यात्रा या जगह + ऊपरले पास्से आला तीर + कई तरह दे रूप + वोकेलिक जामो + मौसम + पश्चिमी एशियाई लिपि + चिट्टी खाली जगह + + + इटैलिक + ऑप्टिकल आकार + तिरछा + चौड़ाई + भार + कर्सिव + खास खास सीरसक + अक्खर + सीरसक बनाणा + डिस्प्ले + पोस्टर + पिछले पास्से ते तिरछा + सिद्धा + तिरछा + बड्डा भारी तिरछा + बड्डा भारी गूढ़ा + होर जादा गूढ़ा + गूढ़ा + जरा की गूढ़ा + सामान्य + जरा की फलाया + फलाया + होर जादा फलाया + बड्डा भारी फलाया + पतला + होर जादा हल्का + हल्के + जरा की हल्का + कताब + लगातार + बिचला + जरा की मोटा + मोटा + होर जादा मोटा + काला + होर जादा काला + लम्बाइया च अंश + कैपिटल स्पेसिंग + वैकल्पिक कट्ठे अक्खर + तिरछे अंश + लाईना च नबंर + पराणी शैलिया आले नंबर + क्रम संख्या + आनुपातिक संख्यां + छोटे बड्डे + सारणी च नंबर + स्लैश कित्या ज़ीरो + diff --git a/make/data/cldr/common/main/yo.xml b/make/data/cldr/common/main/yo.xml index fc47ed7e251..9157498a583 100644 --- a/make/data/cldr/common/main/yo.xml +++ b/make/data/cldr/common/main/yo.xml @@ -26,18 +26,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic Èdè Aragoni Èdè Obolo Èdè Angika - Èdè Árábìkì + Èdè Lárúbáwá + Èdè Lárúbáwá (Agbáyé) Èdè Mapushe Èdè Arapaho Èdè Arabiki ti Najidi - Èdè Ti Assam + Èdè Assam Èdè Asu Èdè Asturian Èdè Atikameki Èdè Afariki Èdè Awadi Èdè Amara - Èdè Azerbaijani + Èdè Asabaijani + Èdè Aseri Èdè Bashiri Èdè Balini Èdè Basaa @@ -50,6 +52,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Èdè Bisilama Èdè Bini Èdè Sikiska + Anii Èdè Báḿbàrà Èdè Bengali Tibetán @@ -58,18 +61,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic Èdè Bosnia Èdè Bugini Èdè Bilini - Èdè Catala + Èdè Katala Èdè Kayuga Èdè Chakma Èdè Chechen - Èdè Cebuano + Èdè Sebuano Èdè Chiga Èdè S̩amoro Èdè Shuki Èdè Mari Èdè Shokita Èdè Shipewa - Èdè Shẹ́rókiì + Èdè Ṣẹ́rókiì Èdè Sheyeni Ààrin Gbùngbùn Kurdish Èdè Shikoti @@ -83,9 +86,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Èdè Seeki Èdè Swampi Kri Èdè Síláfííkì Ilé Ìjọ́sìn - Èdè Shufasi + Èdè Ṣufasi Èdè Welshi - Èdè Ilẹ̀ Denmark + Èdè Denmaki Èdè Dakota Èdè Dagiwa Táítà @@ -163,13 +166,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic Èdè Hungaria Èdè Hupa Èdè Hakomelemi - Èdè Ile Armenia + Èdè Armenia Èdè Herero Èdè pipo Èdè Iba Èdè Ibibio Èdè Indonéṣíà - Iru Èdè + Èdè àtọwọ́dá Èdè Yíbò Ṣíkuán Yì Èdè Iwoorun Inutitu ti Kanada @@ -222,6 +225,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Èdè Komi Èdè Kọ́nììṣì Èdè Kwawala + Kufi Kírígíìsì Èdè Latini Èdè Ladino @@ -230,8 +234,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic Èdè Lesgina Ganda Èdè Limbogishi + Liguriani Èdè Liloeti Lákota + Lombardi Lìǹgálà Láò Èdè Kreoli ti Louisiana @@ -244,7 +250,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Èdè Lunda Èdè Miso Luyíà - Èdè Latvianu + Èdè látífíànì Èdè Maduri Èdè Magahi Èdè Matihi @@ -261,7 +267,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Màórì Èdè Mikmaki Èdè Minakabau - Èdè Macedonia + Èdè Masidonia Málàyálámù Mòngólíà Èdè Manipuri @@ -290,6 +296,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Èdè Nia Èdè Niu Èdè Dọ́ọ̀ṣì + Èdè Flemiṣi Kíwáṣíò Nọ́ọ́wè Nínọ̀sìkì Ngiembùnù @@ -302,14 +309,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic Èdè Nafajo Ńyájà Ńyákọ́lè - Èdè Occitani + Èdè Ọ̀kísítáànì Èdè Ariwa-iwoorun Ojibwa Èdè Ojibwa Aarin Èdè Oji Kri Èdè Iwoorun Ojibwa Èdè Okanaga Òròmọ́ - Òdíà + Èdè Òdíà Ọṣẹ́tíìkì Èdè Punjabi Èdè Pangasina @@ -326,6 +333,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Èdè Pọtogí (Orilẹ̀-èdè Bràsíl) Èdè Pọtogí (orílẹ̀-èdè Yúróòpù) Kúẹ́ńjùà + Rajastánì Èdè Rapanu Èdè Rarotonga Èdè Rohinga @@ -377,13 +385,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic Èdè Swahili Èdè Komora Èdè Siriaki + Silìṣíànì Èdè Tamili Èdè Gusu Tushoni Èdè Telugu Èdè Timne Tẹ́sò Èdè Tetum - Tàjíìkì + Èdè Tàjíìkì Èdè Tagisi Èdè Tai Èdè Tajiti @@ -399,7 +408,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Èdè Tọọkisi Èdè Taroko Èdè Songa - Tatarí + Tátárì Èdè Ariwa Tusoni Èdè Tumbuka Èdè Tifalu @@ -415,7 +424,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Èdè Udu Èdè Uzbek Èdè Fenda + Fènéṣìànì Èdè Jetinamu + Màkúwà Fọ́lápùùkù Funjo Èdè Waluni @@ -426,13 +437,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic Èdè Wu ti Saina Èdè Kalimi Èdè Xhosa + Kangiri Ṣógà Yangbẹn Èdè Yemba Èdè Yiddishi Èdè Yorùbá Èdè Ningatu - Èdè Cantonese + Èdè Kantonese + Ṣúwáànù Àfẹnùkò Támásáìtì ti Mòrókò Edè Ṣáínà Edè Ṣáínà, Mandárínì @@ -450,6 +463,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + @@ -460,7 +475,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + + @@ -468,25 +484,38 @@ CLDR data files are interpreted according to the LDML specification (http://unic - + + + + + + + + + + - + + + + + @@ -497,6 +526,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic + @@ -549,9 +579,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Agentínà Sámóánì ti Orílẹ́ède Àméríkà Asítíríà - Ástràlìá + Austrálíà Árúbà - Àwọn Erékùsù ti Åland + Àwọn Erékùsù ti Aland Asẹ́bájánì Bọ̀síníà àti Ẹtisẹgófínà Bábádósì @@ -596,6 +626,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Erékùsù Christmas Kúrúsì Ṣẹ́ẹ́kì + Ṣẹ́ẹ́kì Olómìnira Jámánì Diego Gaṣia Díbọ́ótì @@ -609,12 +640,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic Égípítì Ìwọ̀òòrùn Sàhárà Eritira - Sipani + Sípéìnì Etopia Àpapọ̀ Yúróòpù Agbègbè Yúrò Filandi - Fiji + Fíjì Etikun Fakalandi Makoronesia Àwọn Erékùsù ti Faroe @@ -632,9 +663,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Gene Gadelope Ekutoria Gini - Geriisi + Gíríìsì Gúúsù Georgia àti Gúúsù Àwọn Erékùsù Sandwich - Guatemala + Guatemálà Guamu Gene-Busau Guyana @@ -646,11 +677,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Haati Hungari Ẹrékùsù Kánárì - Indonesia + Indonéṣíà Ailandi Iserẹli - Isle of Man - India + Erékùṣù ilẹ̀ Man + Íńdíà Etíkun Índíánì ti Ìlú Bírítísì Àlà-ilẹ̀ Bírítéènì ní Etíkun Índíà Àkójọpọ̀ Àwọn Erékùṣù Ṣágòsì @@ -658,7 +689,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Irani Aṣilandi Itáli - Jersey + Jẹsì Jamaika Jọdani Japani @@ -687,7 +718,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Moroko Monako Modofia - Montenegro + Montenégrò Ìlú Màtìnì Madasika Etikun Máṣali @@ -711,7 +742,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Namibia Kaledonia Titun Nàìjá - Etikun Nọ́úfókì + Erékùsù Nọ́úfókì Nàìjíríà Nikaragua Nedalandi @@ -722,8 +753,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ṣilandi Titun Sílándì Titun ti Atìríà Ọọma - Panama - Peru + Paramá + Pèérù Firenṣi Polinesia Paapu ti Giini Filipini @@ -774,12 +805,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic Tailandi Takisitani Tokelau - ÌlàOòrùn Tímọ̀ + Tímọ̀ Lẹsiti Ìlà Òòrùn Tímọ̀ - Tọọkimenisita + Tọ́kìmẹ́nísítànì Tuniṣia Tonga Tọọki + Tọ́kì Tirinida ati Tobaga Tufalu Taiwani @@ -789,7 +821,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Àwọn Erékùsù Kékèké Agbègbè US Ìṣọ̀kan àgbáyé Amẹrikà - Nruguayi + Úrúgúwè Nṣibẹkisitani Ìlú Vatican Fisẹnnti ati Genadina @@ -801,7 +833,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Wali ati futuna Samọ ìsọ̀rọ̀sí irọ́ - ibi irọ́ + Agbègbè irọ́ Kòsófò Yemeni Mayote @@ -817,9 +849,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kàlẹ́ńdà - Ìgúnrégé Kọ́rẹ́ńsì + Ònà Ìgbekalẹ̀ owó Ètò Ẹlẹ́sẹẹsẹ - Kọ́rẹ́ńsì + Owó Òbíríkiti Wákàtí (12 vs 24) Àra Ìda Ìlà Èto Ìdiwọ̀n @@ -842,7 +874,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kàlẹ́ńdà Pásíànù Kàlẹ́ńdà Minguo Ìgúnrégé Ìṣirò Owó Kọ́rẹ́ńsì - Ìgúnrégé Gbèdéke Kọ́rẹ́ńsì + Ònà ìgbekalẹ̀ owó tó jẹ́ àjùmọ̀lò Ètò Ẹlẹ́sẹẹsẹ Àkùàyàn Unicode Ìṣàwárí Ète-Gbogbogbò Ìlànà Onírúurú Ètò @@ -910,7 +942,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic [aáà b d eéè ẹ{ẹ́}{ẹ̀} f g {gb} h iíì j k l mḿ{m̀}{m̄} nńǹ{n̄} oóò ọ{ọ́}{ọ̀} p r s ṣ t uúù w y] [c q v x z] [A B D E F G H I J K L M N O P R S T U W Y] - [\- ‐‑ – — , ; \: ! ? . … '‘’ "“” ( ) @ * / \& # † ‡ ′ ″] + [\- ‐‑ – — , ; \: ! ? . … '‘’ "“” ( ) @ * / \& # † ‡ ′ ″] @@ -995,20 +1027,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - Ṣẹ́r - Èrèl - Ẹrẹ̀n - Ìgb - Ẹ̀bi - Òkú - Agẹ - Ògú - Owe - Ọ̀wà - Bél - Ọ̀pẹ - Oṣù Ṣẹ́rẹ́ Oṣù Èrèlè @@ -1026,18 +1044,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Ṣẹ́ - Èr - Ẹr - Ìg - Ẹ̀b - Òk - Ag - Òg - Ow - Ọ̀w - - Ọ̀p + Oṣù Ṣẹ́rẹ́ + Oṣù Èrèlè + Oṣù Ẹrẹ̀nà + Oṣù Ìgbé + Oṣù Ẹ̀bibi + Oṣù Òkúdu + Oṣù Agẹmọ + Oṣù Ògún + Oṣù Owewe + Oṣù Ọ̀wàrà + Oṣù Bélú + Oṣù Ọ̀pẹ̀ S @@ -1053,32 +1071,27 @@ CLDR data files are interpreted according to the LDML specification (http://unic B Ọ̀ - - Ṣẹ́rẹ́ - Èrèlè - Ẹrẹ̀nà - Ìgbé - Ẹ̀bibi - Òkúdu - Agẹmọ - Ògún - Owewe - Ọ̀wàrà - Bélú - Ọ̀pẹ̀ - - Àìk - Aj - Ìsẹ́g - Ọjọ́r - Ọjọ́b - Ẹt - Àbám + Àìkú + Ajé + Ìsẹ́gun + Ọjọ́rú + Ọjọ́bọ + Ẹtì + Àbámẹ́ta + + + Àìkú + Ajé + Ìsẹ́gun + Ọjọ́rú + Ọjọ́bọ + Ẹtì + Àbámẹ́ta Ọjọ́ Àìkú @@ -1091,6 +1104,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + Àìkú + Ajé + Ìsẹ́gun + Ọjọ́rú + Ọjọ́bọ + Ẹtì + Àbámẹ́ta + À A @@ -1100,6 +1122,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic À + + Àìkú + Ajé + Ìsẹ́gun + Ọjọ́rú + Ọjọ́bọ + Ẹtì + Àbámẹ́ta + Àìkú Ajé @@ -1126,14 +1157,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ìdámẹ́rin Kẹrin - - - - Ke - Kẹt - Kẹr - - @@ -1219,7 +1242,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {1} {0} - {1} 'níti' {0} + {1} 'ní' {0} @@ -1379,14 +1402,34 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ọdún - Èṣín - Ọdúnǹí + Èṣí + Ọdún yìí Àmọ́dún + + ní {0} Ọdún + + + {0} Ọdún sẹ́yìn + Ọdún tó kọjá Ọdún yìí Ọdún tó ńbọ̀ + + ní {0} Ọdún + + + Ọdún {0} sẹ́yìn + + + + + ní {0} Ọdún + + + Ọdún {0} sẹ́yìn + Ìdá mẹ́rin @@ -1422,7 +1465,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ọjọ́ inú ọdún - Ọjọ́ inú ọd. + Ọjọ́ inú ọdún. + + + Ọjọ́ inú ọdún. Ọjọ́ tó wà láàárín ọ̀sẹ̀ @@ -1443,6 +1489,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ọjọ́ Àíkú +{0} + + ọjọ́ Ajé tó kọjá + ọjọ́ Ajé yìí + next Monday + + + ọjọ́ Ajé tó kọjá + ọjọ́ Ajé yìí + next Monday + Ìṣẹ́gun tókọ́já Ìṣẹ́gun èyí @@ -1610,16 +1666,25 @@ CLDR data files are interpreted according to the LDML specification (http://unic Wákàtí + wákàtí yìí Ìsẹ́jú + ìṣẹ́jú yìí Ìsẹ́jú Ààyá + nísinsìyí Agbègbè àkókò + + Agbègbè + + + Agbègbè + WAT{0} @@ -1748,7 +1813,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - British Summer Time + Àkókò Sọmà Gẹẹsi @@ -1780,7 +1845,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Irish Standard Time + Àkókò Àfẹnukò Airiisi @@ -1954,9 +2019,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic ìlú St Tọ́màsì + + Ilu Ho Chi Minh + - Afghanistan Time + Àkókò Afghanistan @@ -1985,7 +2053,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Àkókò Alásíkà Àkókò Àfẹnukò Alásíkà - Àkókò Ìyálẹ̀ta Alásíkà + Àkókò Ojúmọ́ Alásíkà @@ -2025,16 +2093,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Apia Time - Apia Standard Time - Apia Daylight Time + Àkókò Apia + Àkókò Àfẹnukò Apia + Àkókò Ojúmọmọ Apia - Arabian Time - Arabian Standard Time - Arabian Daylight Time + Àkókò Arabia + Àkókò Àfẹnukò Arabia + Àkókò Ojúmọmọ Arabia @@ -2053,9 +2121,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Armenia Time - Armenia Standard Time - Armenia Summer Time + Àkókò Armenia + Àkókò Àfẹnukò Armenia + Àkókò Sọmà Arabia @@ -2067,37 +2135,37 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Central Australia Time - Australian Central Standard Time - Australian Central Daylight Time + Àkókò Ààrin Gùngùn Australia + Àkókò Àfẹnukò Ààrin Gùngùn Australia + Àkókò Ojúmọmọ Ààrin Gùngùn Australia - Australian Central Western Time - Australian Central Western Standard Time - Australian Central Western Daylight Time + Àkókò Ààrin Gùngùn Ìwọ̀-Oòrùn Australia + Àkókò Àfẹnukò Ààrin Gùngùn Ìwọ̀-Oòrùn Australia + Àkókò Ojúmọmọ Ààrin Gùngùn Ìwọ̀-Oòrùn Australia - Eastern Australia Time - Australian Eastern Standard Time - Australian Eastern Daylight Time + Àkókò Ìlà-Oòrùn Australia + Àkókò Àfẹnukò Ìlà-Oòrùn Australia + Àkókò Ojúmọmọ Ìlà-Oòrùn Australia - Western Australia Time - Australian Western Standard Time - Australian Western Daylight Time + Àkókò Ìwọ̀-Oòrùn Australia + Àkókò Àfẹnukò Ìwọ̀-Oòrùn Australia + Àkókò Ojúmọmọ Ìwọ̀-Oòrùn Australia - Azerbaijan Time - Azerbaijan Standard Time - Azerbaijan Summer Time + Àkókò Azerbaijan + Àkókò Àfẹnukò Azerbaijan + Àkókò Sọmà Azerbaijan @@ -2109,14 +2177,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Bangladesh Time - Bangladesh Standard Time - Bangladesh Summer Time + Àkókò Bangladesh + Àkókò Àfẹnukò Bangladesh + Àkókò Sọmà Bangladesh - Bhutan Time + Àkókò Bhutan @@ -2140,19 +2208,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic Àkókò Képú Fáàdì Àkókò Àfẹnukò Képú Fáàdì - Àkókò Sọ́mà Képú Fáàdì + Àkókò Ẹ̀rún Képú Fáàdì - Chamorro Standard Time + Àkókò Àfẹnukò Chamorro - Chatham Time - Chatham Standard Time - Chatham Daylight Time + Àkókò Chatam + Àkókò Àfẹnukò Chatam + Àkókò Ojúmọmọ Chatam @@ -2169,21 +2237,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic Àkókò Ojúmọmọ Ṣáínà - - - Choibalsan Time - Choibalsan Standard Time - Choibalsan Summer Time - - - Christmas Island Time + Àkókò Erékùsù Christmas - Cocos Islands Time + Àkókò Àwọn Erékùsù Cocos @@ -2195,9 +2256,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Cook Islands Time - Cook Islands Standard Time - Cook Islands Half Summer Time + Àkókò Àwọn Erekusu Kuuku + Àkókò Àfẹnukò Àwọn Erekusu Kuuku + Àkókò Ilaji Sọma Àwọn Erekusu Kuuku @@ -2209,12 +2270,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Davis Time + Àkókò Davis - Dumont-d’Urville Time + Àkókò Dumont-d’Urville @@ -2269,9 +2330,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Fiji Time - Fiji Standard Time - Fiji Summer Time + Àkókò Fiji + Àkókò Àfẹnukò Fiji + Àkókò Sọma Fiji @@ -2291,19 +2352,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Gambier Time + Àkókò Gambia - Georgia Time - Georgia Standard Time - Georgia Summer Time + Àkókò Georgia + Àkókò Àfẹnukò Georgia + Àkókò Sọmà Georgia - Gilbert Islands Time + Àkókò Àwọn Erekusu Gilibati @@ -2327,7 +2388,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Gulf Standard Time + Àkókò Àfẹnukò Gulf @@ -2344,21 +2405,21 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Hong Kong Time - Hong Kong Standard Time - Hong Kong Summer Time + Àkókò Hong Kong + Àkókò Ìfẹnukòsí Hong Kong + Àkókò Sọmà Hong Kong - Hovd Time - Hovd Standard Time - Hovd Summer Time + Àkókò Hofidi + Àkókò Ìfẹnukòsí Hofidi + Àkókò Sọmà Hofidi - India Standard Time + Àkókò Àfẹnukò India @@ -2378,7 +2439,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Eastern Indonesia Time + Àkókò Ìlà oorùn Indonesia @@ -2388,9 +2449,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Iran Time - Iran Standard Time - Iran Daylight Time + Àkókò Irani + Àkókò Àfẹnukò Irani + Àkókò Ojúmọmọ Irani @@ -2402,89 +2463,94 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Israel Time - Israel Standard Time - Israel Daylight Time + Àkókò Israel + Àkókò Àfẹnukò Israel + Àkókò Ojúmọmọ Israel - Japan Time - Japan Standard Time - Japan Daylight Time + Àkókò Japan + Àkókò Ìfẹnukòsí Japan + Àkókò Sọmà Japan + + + + + Aago Kasasitáànì - East Kazakhstan Time + Àkókò Ìlà-Oòrùn Kasasitáànì - West Kazakhstan Time + Àkókò Ìwọ̀-Oòrùn Kasasitáànì - Korean Time - Korean Standard Time - Korean Daylight Time + Àkókò Koria + Àkókò Ìfẹnukòsí Koria + Àkókò Ojúmọmọ Koria - Kosrae Time + Àkókò Kosirai - Krasnoyarsk Time - Krasnoyarsk Standard Time - Krasnoyarsk Summer Time + Àkókò Krasinoyasiki + Àkókò Àfẹnukò Krasinoyasiki + Àkókò Sọmà Krasinoyasiki - Kyrgyzstan Time + Àkókò Kirigisitaani - Line Islands Time + Àkókò Àwọn Erekusu Laini - Lord Howe Time - Lord Howe Standard Time - Lord Howe Daylight Time + Àkókò Lord Howe + Àkókò Àfẹnukò Lord Howe + Àkókò Ojúmọmọ Lord Howe - Magadan Time - Magadan Standard Time - Magadan Summer Time + Àkókò Magadani + Àkókò Àfẹnukò Magadani + Àkókò Sọmà Magadani - Malaysia Time + Àkókò Malaysia - Maldives Time + Àkókò Maldives - Marquesas Time + Àkókò Makuesasi - Marshall Islands Time + Àkókò Àwọn Erekusu Masaali @@ -2496,7 +2562,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Mawson Time + Àkókò Mawson @@ -2508,45 +2574,45 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Ulaanbaatar Time - Ulaanbaatar Standard Time - Ulaanbaatar Summer Time + Àkókò Ulaanbaatar + Àkókò Ìfẹnukòsí Ulaanbaatar + Àkókò Sọmà Ulaanbaatar - Moscow Time - Moscow Standard Time - Moscow Summer Time + Àkókò Mosiko + Àkókò Àfẹnukò Mosiko + Àkókò Sọmà Mosiko - Myanmar Time + Àkókò Ìlà Myanmar - Nauru Time + Àkókò Nauru - Nepal Time + Àkókò Nepali - New Caledonia Time - New Caledonia Standard Time - New Caledonia Summer Time + Àkókò Kalidonia Tuntun + Àkókò Àfẹnukò Kalidonia Tuntun + Àkókò Sọma Kalidonia Tuntun - New Zealand Time - New Zealand Standard Time - New Zealand Daylight Time + Àkókò New Zealand + Àkókò Àfẹnukò New zealand + Àkókò Ojúmọmọ New Zealand @@ -2558,14 +2624,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Niue Time + Àkókò Niue - Norfolk Island Time - Norfolk Island Standard Time - Norfolk Island Daylight Time + Àkókò Erékùsù Norfolk + Àkókò Àfẹnukò Erékùsù Norfolk + Àkókò Ojúmọmọ Erékùsù Norfolk @@ -2577,33 +2643,33 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Novosibirsk Time - Novosibirsk Standard Time - Novosibirsk Summer Time + Àkókò Nofosibiriski + Àkókò Àfẹnukò Nofosibiriki + Àkókò Sọmà Noforibisiki - Omsk Time - Omsk Standard Time - Omsk Summer Time + Àkókò Omisiki + Àkókò Àfẹnukò Omisiki + Àkókò Sọmà Omisiki - Pakistan Time - Pakistan Standard Time - Pakistan Summer Time + Àkókò Pakistani + Àkókò Àfẹnukò Pakistani + Àkókò Sọmà Pakistani - Palau Time + Àkókò Palau - Papua New Guinea Time + Àkókò Papua New Guinea @@ -2622,14 +2688,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Philippine Time - Philippine Standard Time - Philippine Summer Time + Àkókò Filipininni + Àkókò Àfẹnukò Filipininni + Àkókò Sọmà Filipininni - Phoenix Islands Time + Àkókò Àwọn Erékùsù Phoenix @@ -2641,17 +2707,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Pitcairn Time + Àkókò Pitcairn - Ponape Time + Àkókò Ponape - Pyongyang Time + Àkókò Pyongyangi @@ -2661,21 +2727,21 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Rothera Time + Àkókò Rothera - Sakhalin Time - Sakhalin Standard Time - Sakhalin Summer Time + Àkókò Sakhalin + Àkókò Àfẹnukò Sakhalin + Àkókò Sọmà Sakhalin - Samoa Time - Samoa Standard Time - Samoa Daylight Time + Àkókò Samoa + Àkókò Àfẹnukò Samoa + Àkókò Ojúmọmọ Samoa @@ -2685,12 +2751,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Singapore Standard Time + Àkókò Àfẹnukò Singapore - Solomon Islands Time + Àkókò Àwọn Erekusu Solomon @@ -2705,53 +2771,53 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Syowa Time + Àkókò Syowa - Tahiti Time + Àkókò Tahiti - Taipei Time - Taipei Standard Time - Taipei Daylight Time + Àkókò Taipei + Àkókò Ìfẹnukòsí Taipei + Àkókò Ojúmọmọ Taipei - Tajikistan Time + Àkókò Tajikisitaani - Tokelau Time + Àkókò Tokelau - Tonga Time - Tonga Standard Time - Tonga Summer Time + Àkókò Tonga + Àkókò Àfẹnukò Tonga + Àkókò Sọmà Tonga - Chuuk Time + Àkókò Chuuk - Turkmenistan Time - Turkmenistan Standard Time - Turkmenistan Summer Time + Àkókò Turkimenistani + Àkókò Àfẹnukò Turkimenistani + Àkókò Sọmà Turkmenistani - Tuvalu Time + Àkókò Tufalu @@ -2763,16 +2829,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Uzbekistan Time - Uzbekistan Standard Time - Uzbekistan Summer Time + Àkókò Usibekistani + Àkókò Àfẹnukò Usibekistani + Àkókò Sọmà Usibekistani - Vanuatu Time - Vanuatu Standard Time - Vanuatu Summer Time + Àkókò Fanuatu + Àkókò Àfẹnukò Fanuatu + Àkókò Sọmà Fanuatu @@ -2782,45 +2848,45 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Vladivostok Time - Vladivostok Standard Time - Vladivostok Summer Time + Àkókò Filadifositoki + Àkókò Àfẹnukò Filadifositoki + Àkókò Sọmà Filadifositoki - Volgograd Time - Volgograd Standard Time - Volgograd Summer Time + Àkókò Foligogiradi + Àkókò Àfẹnukò Foligogiradi + Àkókò Sọmà Foligogiradi - Vostok Time + Àkókò Vostok - Wake Island Time + Àkókò Erékùsù Wake - Wallis & Futuna Time + Àkókò Wallis & Futuina - Yakutsk Time - Yakutsk Standard Time - Yakutsk Summer Time + Àkókò Yatutsk + Àkókò Àfẹnukò Yatutsk + Àkókò Sọmà Yatutsk - Yekaterinburg Time - Yekaterinburg Standard Time - Yekaterinburg Summer Time + Àkókò Yekaterinburg + Àkókò Àfẹnukò Yekaterinburg + Àkókò Sọmà Yekaterinburg @@ -2893,7 +2959,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} ¤¤ - {0} {1} @@ -3431,7 +3496,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Dọ́là - $ + $ Pẹ́sò Úrúgúwè @@ -3490,12 +3555,84 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Àwọn ọjọ́ {0} - Mú {0} apá ọ̀tún + Àwọn ọjọ́ {0} + Mú apá ọ̀tún {0}. + + desi{0} + + + senti{0} + + + mili{0} + + + maikiro{0} + + + nano{0} + + + piko{0} + + + femuto{0} + + + ato{0} + + + seputo{0} + + + yokito{0} + + + ronto{0} + + + kuekito{0} + + + deka{0} + + + hekito{0} + + + kilo{0} + + + mega{0} + + + giga{0} + + + tera{0} + + + peta{0} + + + ekisa{0} + + + seta{0} + + + yota{0} + + + ronna{0} + + + kueta{0} + kibi{0} @@ -3526,6 +3663,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic kubiki {0} + + hekita + + + sare + àwọ́n ohun {0} àwon ohun @@ -3533,6 +3676,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} ìdákan nínú ẹgbẹ̀rún + + maili ninu ami galọọnu kan + àwọn pẹ́tábáìtì {0} àwọn pẹ́tábáìtì @@ -3586,7 +3732,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ọ̀dún - {0} ọd + {0} ọ̀dún idamerin @@ -3614,6 +3760,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic ìdinwọ̀n ayé {0} ìdinwọ̀n ayé + + mita + àwọn fọ́lọ́ọ̀ngì {0} àwọn fọ́lọ́ọ̀ngì @@ -3630,23 +3779,35 @@ CLDR data files are interpreted according to the LDML specification (http://unic lumẹ́ẹ̀nì {0} lumẹ́ẹ̀nì + + mẹtiriki tọọnu + {0} àwon okùta giréènì + + milimita ti makuiri + Beaufort Beaufort {0} + + lita + búsẹ́ẹ̀li {0} búsẹ́ẹ̀li + + àwọn ife + - àmì ṣíbí oúnjẹ́ kékeré - {0} àmì ṣíbí oúnjẹ́ kékeré + àwọn ṣíbí oúnjẹ́ kékeré + àwọn {0} àmì ṣíbí oúnjẹ́ kékeré ṣíbí oúnjẹ kékeré @@ -3655,6 +3816,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic ìdásímérin {0} ìdásímérin + + ìmọ́lẹ̀ + {0} ìmọ́lẹ̀ + + + ẹ̀yà nínú ìdá blíọ̀nù + + + àwọn alẹ́ + àwọn alẹ́ {0} + {0}/alẹ́ + @@ -3681,6 +3854,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic àmì {0} + + hekita + + + sare + ohun {0} ohun @@ -3738,7 +3917,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ọd {0} ọd - {0}/ọd idame @@ -3787,6 +3965,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic àmì ìdínwọ̀n ayé {0} àmì ìdínwọ̀n ayé + + mita + fọ́lọ́ọ̀ngì {0} fọ́ @@ -3795,7 +3976,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic fátọ́mù - sídiì + kandẹ́là {0} sídiì @@ -3809,9 +3990,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic gíréènì {0} gíréènì + + lita + Búsẹ́ẹ̀li + + ife + ṣíbí oúnjẹ́ kékeré {0} ṣíbí oúnjẹ́ kékeré @@ -3840,6 +4027,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic àmì ìdásímérin {0} àmì ìdásímérin + + ìmọ́lẹ̀ + {0} ìmọ́lẹ̀ + + + àwọn alẹ́ + àwọn alẹ́ {0} + {0}/alẹ́ + @@ -3867,6 +4063,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}km² + hekita {0}ha @@ -3876,6 +4073,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}mi² + sare {0}ac @@ -3965,6 +4163,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic bit {0}bíìtì + + ọd + {0} ọd + {0} i @@ -4052,6 +4254,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic R⊕ {0}R⊕ + + mita + {0}fur @@ -4204,6 +4409,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}hL + lita {0}/L @@ -4246,6 +4452,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}pt + ife {0}c @@ -4286,14 +4493,36 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}àmì ìdásímérin + + ìmọ́lẹ̀ + {0}ìmọ́lẹ̀ + + + àwọn alẹ́ + àwọn alẹ́{0} + {0}/alẹ́ + + + {0} àti{1} + - {0} pẹ̀lú {1} {0}, tabi {1} {0} tàbí {1} + + {0}, {1} + + + {0} àti {1} + + + {0} {1} + {0} {1} + {0} {1} + @@ -4329,12 +4558,14 @@ CLDR data files are interpreted according to the LDML specification (http://unic jamo konsonanti ami owo dasi tabi asopo - digibaati + dijiiti digibaati ami idifa ofa isale ofa isale ati oke Iwe Ila oorun Asia + Isọwọkọwe Yuroopu + abo filaagi awon filaagi ounje ati omi @@ -4358,7 +4589,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ofa osi ati otun ami ti leta ilo die - okunrin + akọ ami isiro iwe aarin ila-oorun eyikeyi @@ -4370,7 +4601,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic awon nonba nnkan miran - pinsimeji + onibeji eniyan afabeeti iro aworan @@ -4390,6 +4621,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ami ohun irinajo irinajo tabi ibi + àwọn ọfà oke eda awon iwe ojú=ọjọ́ @@ -4399,7 +4631,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic ítálísì iwon oput;ikà - sílántì + dẹ̀gbẹ́ fífẹ̀ sí títobi sí kíkọ́ @@ -4469,6 +4701,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic und yo ko vi yue zh + {0}{1} {given} {given2} {surname} {credentials} @@ -4502,9 +4735,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic {given-informal-monogram-allCaps} - - {given-initial} {given2-initial} {surname} - {given-informal} {surname-initial} @@ -4553,9 +4783,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic {given-informal-monogram-allCaps} - - {surname} {given-initial} {given2-initial} - {surname} {given-initial} @@ -4583,9 +4810,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic {surname}, {given-informal} - - {surname-core}, {given-initial} {given2-initial} {surname-prefix} - {surname}, {given-informal} diff --git a/make/data/cldr/common/main/yo_BJ.xml b/make/data/cldr/common/main/yo_BJ.xml index df46c47d32b..6c68d0ae2fe 100644 --- a/make/data/cldr/common/main/yo_BJ.xml +++ b/make/data/cldr/common/main/yo_BJ.xml @@ -17,7 +17,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Èdè Bɛ́nà Èdè Shɛ́rókiì Èdè Síláfííkì Ilé Ìjɔ́sìn - Èdè Ilɛ̀ Denmark + Èdè Shufasi Èdè Jámánì (Ɔ́síríà ) Èdè Ilɛ̀ Jámánì (Orílɛ́ède swítsàlandì) Shárúmà @@ -38,6 +38,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ede Gɛ́sì Èdè Híńgílíshì Èdè Indonéshíà + Èdè àtɔwɔ́dá Shíkuán Yì Máshámè Koira Shíínì @@ -52,10 +53,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic Nɔ́ɔ́wè Bokímàl Jámánì ìpìlɛ̀ Èdè Dɔ́ɔ̀shì + Èdè Flemishi Kíwáshíò Nɔ́ɔ́wè Nínɔ̀sìkì Núɛ̀ Ńyákɔ́lè + Èdè Ɔ̀kísítáànì Òròmɔ́ Ɔshɛ́tíìkì Púrúshíànù @@ -68,15 +71,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic Shɛnà Tashelíìtì Shɔnà + Silìshíànì Tɛ́sò Èdè Tɔɔkisi Yúgɔ̀ Èdè àìmɔ̀ + Fènéshìànì Fɔ́lápùùkù Wɔsà Wɔ́lɔ́ɔ̀fù Shógà Yangbɛn + Shúwáànù Àfɛnùkò Támásáìtì ti Mòrókò Edè Sháínà Edè Sháínà, Mandárínì @@ -92,13 +98,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - + @@ -128,7 +133,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Látín Amɛ́ríkà Ɛmirate ti Awɔn Arabu Sámóánì ti Orílɛ́ède Àméríkà - Àwɔn Erékùsù ti Åland + Àwɔn Erékùsù ti Aland Asɛ́bájánì Bɔ̀síníà àti Ɛtisɛgófínà Bégíɔ́mù @@ -143,6 +148,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Shílè Sháínà Shɛ́ɛ́kì + Shɛ́ɛ́kì Olómìnira Diego Gashia Díbɔ́ótì Dɛ́mákì @@ -155,10 +161,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic Gúúsù Georgia àti Gúúsù Àwɔn Erékùsù Sandwich Agbègbè Ìshàkóso Ìshúná Hong Kong Tí Shánà Ń Darí Ɛrékùsù Kánárì + Indonéshíà Iserɛli + Erékùshù ilɛ̀ Man Àlà-ilɛ̀ Bírítéènì ní Etíkun Índíà Àkójɔpɔ̀ Àwɔn Erékùshù Shágòsì Ashilandi + Jɛsì Jɔdani Kurishisitani Guusu Kɔria @@ -169,7 +178,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Etikun Máshali Agbègbè Ìshàkóso Pàtàkì Macao Moshamibiku - Etikun Nɔ́úfókì + Erékùsù Nɔ́úfókì Nɔɔwii Shilandi Titun Ɔɔma @@ -193,11 +202,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic Tɔɔki ati Etikun Kakɔsi Shààdì Agbègbè Gúúsù Faranshé - ÌlàOòrùn Tímɔ̀ + Tímɔ̀ Lɛsiti Ìlà Òòrùn Tímɔ̀ - Tɔɔkimenisita + Tɔ́kìmɛ́nísítànì Tunishia Tɔɔki + Tɔ́kì Àwɔn Erékùsù Kékèké Agbègbè US Ìshɔ̀kan àgbáyé Amɛrikà @@ -208,7 +218,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Fɛtinami Samɔ ìsɔ̀rɔ̀sí irɔ́ - ibi irɔ́ + Agbègbè irɔ́ Gúúshù Áfíríkà Shamibia Shimibabe @@ -220,9 +230,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kàlɛ́ńdà - Ìgúnrégé Kɔ́rɛ́ńsì + Ònà Ìgbekalɛ̀ owó Ètò Ɛlɛ́sɛɛsɛ - Kɔ́rɛ́ńsì Èto Ìdiwɔ̀n Àwɔn nɔ́ńbà @@ -241,7 +250,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Kàlɛ́ńdà Pásíànù Kàlɛ́ńdà Minguo Ìgúnrégé Ìshirò Owó Kɔ́rɛ́ńsì - Ìgúnrégé Gbèdéke Kɔ́rɛ́ńsì + Ònà ìgbekalɛ̀ owó tó jɛ́ àjùmɔ̀lò Ètò Ɛlɛ́sɛɛsɛ Àkùàyàn Unicode Ìshàwárí Ète-Gbogbogbò Èto Mɛ́tíríìkì @@ -303,20 +312,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - Shɛ́r - Èrèl - Ɛrɛ̀n - Ìgb - Ɛ̀bi - Òkú - Agɛ - Ògú - Owe - Ɔ̀wà - Bél - Ɔ̀pɛ - Oshù Shɛ́rɛ́ Oshù Èrèlè @@ -334,18 +329,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Shɛ́ - Èr - Ɛr - Ìg - Ɛ̀b - Òk - Ag - Òg - Ow - Ɔ̀w - - Ɔ̀p + Oshù Shɛ́rɛ́ + Oshù Èrèlè + Oshù Ɛrɛ̀nà + Oshù Ìgbé + Oshù Ɛ̀bibi + Oshù Òkúdu + Oshù Agɛmɔ + Oshù Ògún + Oshù Owewe + Oshù Ɔ̀wàrà + Oshù Bélú + Oshù Ɔ̀pɛ̀ S @@ -361,32 +356,27 @@ CLDR data files are interpreted according to the LDML specification (http://unic B Ɔ̀ - - Shɛ́rɛ́ - Èrèlè - Ɛrɛ̀nà - Ìgbé - Ɛ̀bibi - Òkúdu - Agɛmɔ - Ògún - Owewe - Ɔ̀wàrà - Bélú - Ɔ̀pɛ̀ - - Àìk - Aj - Ìsɛ́g - Ɔjɔ́r - Ɔjɔ́b - Ɛt - Àbám + Àìkú + Ajé + Ìsɛ́gun + Ɔjɔ́rú + Ɔjɔ́bɔ + Ɛtì + Àbámɛ́ta + + + Àìkú + Ajé + Ìsɛ́gun + Ɔjɔ́rú + Ɔjɔ́bɔ + Ɛtì + Àbámɛ́ta Ɔjɔ́ Àìkú @@ -399,6 +389,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic + + Àìkú + Ajé + Ìsɛ́gun + Ɔjɔ́rú + Ɔjɔ́bɔ + Ɛtì + Àbámɛ́ta + À A @@ -408,6 +407,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ɛ À + + Àìkú + Ajé + Ìsɛ́gun + Ɔjɔ́rú + Ɔjɔ́bɔ + Ɛtì + Àbámɛ́ta + Àìkú Ajé @@ -434,14 +442,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ìdámɛ́rin Kɛrin - - - - Ke - Kɛt - Kɛr - - @@ -461,14 +461,34 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ɔdún - Èshín - Ɔdúnǹí + Èshí + Ɔdún yìí Àmɔ́dún + + ní {0} Ɔdún + + + {0} Ɔdún sɛ́yìn + Ɔdún tó kɔjá Ɔdún yìí Ɔdún tó ńbɔ̀ + + ní {0} Ɔdún + + + Ɔdún {0} sɛ́yìn + + + + + ní {0} Ɔdún + + + Ɔdún {0} sɛ́yìn + Ìdá mɛ́rin @@ -502,7 +522,10 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ɔjɔ́ inú ɔdún - Ɔjɔ́ inú ɔd. + Ɔjɔ́ inú ɔdún. + + + Ɔjɔ́ inú ɔdún. Ɔjɔ́ tó wà láàárín ɔ̀sɛ̀ @@ -523,6 +546,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ɔjɔ́ Àíkú +{0} + + ɔjɔ́ Ajé tó kɔjá + ɔjɔ́ Ajé yìí + next Monday + + + ɔjɔ́ Ajé tó kɔjá + ɔjɔ́ Ajé yìí + next Monday + Ìshɛ́gun tókɔ́já Ìshɛ́gun èyí @@ -647,6 +680,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Ìsɛ́jú + ìshɛ́jú yìí Ìsɛ́jú Ààyá @@ -692,6 +726,16 @@ CLDR data files are interpreted according to the LDML specification (http://unic ìlú Kurashao + + + Àkókò Sɔmà Gɛɛsi + + + + + Àkókò Àfɛnukò Airiisi + + ìlú Marigɔ́ɔ̀tì @@ -736,7 +780,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic Àkókò Alásíkà Àkókò Àfɛnukò Alásíkà - Àkókò Ìyálɛ̀ta Alásíkà + Àkókò Ojúmɔ́ Alásíkà @@ -774,6 +818,20 @@ CLDR data files are interpreted according to the LDML specification (http://unic Àkókò Ìyálɛta Pàsífíìkì + + + Àkókò Apia + Àkókò Àfɛnukò Apia + Àkókò Ojúmɔmɔ Apia + + + + + Àkókò Arabia + Àkókò Àfɛnukò Arabia + Àkókò Ojúmɔmɔ Arabia + + Aago Ajɛntìnà @@ -788,6 +846,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic Àkókò Oru Iwɔ́-oòrùn Ajɛ́ntínà + + + Àkókò Armenia + Àkókò Àfɛnukò Armenia + Àkókò Sɔmà Arabia + + Àkókò Àtìláńtíìkì @@ -795,6 +860,41 @@ CLDR data files are interpreted according to the LDML specification (http://unic Àkókò Ìyálɛta Àtìláńtíìkì + + + Àkókò Ààrin Gùngùn Australia + Àkókò Àfɛnukò Ààrin Gùngùn Australia + Àkókò Ojúmɔmɔ Ààrin Gùngùn Australia + + + + + Àkókò Ààrin Gùngùn Ìwɔ̀-Oòrùn Australia + Àkókò Àfɛnukò Ààrin Gùngùn Ìwɔ̀-Oòrùn Australia + Àkókò Ojúmɔmɔ Ààrin Gùngùn Ìwɔ̀-Oòrùn Australia + + + + + Àkókò Ìlà-Oòrùn Australia + Àkókò Àfɛnukò Ìlà-Oòrùn Australia + Àkókò Ojúmɔmɔ Ìlà-Oòrùn Australia + + + + + Àkókò Ìwɔ̀-Oòrùn Australia + Àkókò Àfɛnukò Ìwɔ̀-Oòrùn Australia + Àkókò Ojúmɔmɔ Ìwɔ̀-Oòrùn Australia + + + + + Àkókò Azerbaijan + Àkókò Àfɛnukò Azerbaijan + Àkókò Sɔmà Azerbaijan + + Àkókò Ásɔ́sì @@ -802,11 +902,30 @@ CLDR data files are interpreted according to the LDML specification (http://unic Àkókò Ooru Ásɔ́sì + + + Àkókò Bangladesh + Àkókò Àfɛnukò Bangladesh + Àkókò Sɔmà Bangladesh + + Àkókò Képú Fáàdì Àkókò Àfɛnukò Képú Fáàdì - Àkókò Sɔ́mà Képú Fáàdì + Àkókò Ɛ̀rún Képú Fáàdì + + + + + Àkókò Àfɛnukò Chamorro + + + + + Àkókò Chatam + Àkókò Àfɛnukò Chatam + Àkókò Ojúmɔmɔ Chatam @@ -823,6 +942,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic Àkókò Ojúmɔmɔ Sháínà + + + Àkókò Àwɔn Erékùsù Cocos + + + + + Àkókò Àwɔn Erekusu Kuuku + Àkókò Àfɛnukò Àwɔn Erekusu Kuuku + Àkókò Ilaji Sɔma Àwɔn Erekusu Kuuku + + Àkókò Kúbà @@ -858,6 +989,25 @@ CLDR data files are interpreted according to the LDML specification (http://unic Àkókò Ooru Etíkun Fókílándì + + + Àkókò Fiji + Àkókò Àfɛnukò Fiji + Àkókò Sɔma Fiji + + + + + Àkókò Georgia + Àkókò Àfɛnukò Georgia + Àkókò Sɔmà Georgia + + + + + Àkókò Àwɔn Erekusu Gilibati + + Àkókò Ìlà oorùn Greenland @@ -872,6 +1022,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic Àkókò Àfɛnukò Ìgba Oòru Greenland + + + Àkókò Àfɛnukò Gulf + + Àkókò Hawaii-Aleutian @@ -879,11 +1034,37 @@ CLDR data files are interpreted according to the LDML specification (http://unic Àkókò Ojúmɔmɔ Hawaii-Aleutian + + + Àkókò Hong Kong + Àkókò Ìfɛnukòsí Hong Kong + Àkókò Sɔmà Hong Kong + + + + + Àkókò Hofidi + Àkókò Ìfɛnukòsí Hofidi + Àkókò Sɔmà Hofidi + + + + + Àkókò Àfɛnukò India + + Àkókò Ìwɔ̀ oorùn Indonesia + + + Àkókò Irani + Àkókò Àfɛnukò Irani + Àkókò Ojúmɔmɔ Irani + + Àkókò Íkósíkì @@ -891,6 +1072,63 @@ CLDR data files are interpreted according to the LDML specification (http://unic Àkókò Sɔmà Íkúsíkì + + + Àkókò Israel + Àkókò Àfɛnukò Israel + Àkókò Ojúmɔmɔ Israel + + + + + Àkókò Japan + Àkókò Ìfɛnukòsí Japan + Àkókò Sɔmà Japan + + + + + Àkókò Ìwɔ̀-Oòrùn Kasasitáànì + + + + + Àkókò Koria + Àkókò Ìfɛnukòsí Koria + Àkókò Ojúmɔmɔ Koria + + + + + Àkókò Krasinoyasiki + Àkókò Àfɛnukò Krasinoyasiki + Àkókò Sɔmà Krasinoyasiki + + + + + Àkókò Àwɔn Erekusu Laini + + + + + Àkókò Lord Howe + Àkókò Àfɛnukò Lord Howe + Àkókò Ojúmɔmɔ Lord Howe + + + + + Àkókò Magadani + Àkókò Àfɛnukò Magadani + Àkókò Sɔmà Magadani + + + + + Àkókò Àwɔn Erekusu Masaali + + Àkókò Máríshúshì @@ -905,6 +1143,34 @@ CLDR data files are interpreted according to the LDML specification (http://unic Àkókò Ojúmɔmɔ Pásífíìkì Mɛ́síkò + + + Àkókò Ulaanbaatar + Àkókò Ìfɛnukòsí Ulaanbaatar + Àkókò Sɔmà Ulaanbaatar + + + + + Àkókò Mosiko + Àkókò Àfɛnukò Mosiko + Àkókò Sɔmà Mosiko + + + + + Àkókò Kalidonia Tuntun + Àkókò Àfɛnukò Kalidonia Tuntun + Àkókò Sɔma Kalidonia Tuntun + + + + + Àkókò New Zealand + Àkókò Àfɛnukò New zealand + Àkókò Ojúmɔmɔ New Zealand + + Àkókò Newfoundland @@ -912,6 +1178,34 @@ CLDR data files are interpreted according to the LDML specification (http://unic Àkókò Ojúmɔmɔ Newfoundland + + + Àkókò Erékùsù Norfolk + Àkókò Àfɛnukò Erékùsù Norfolk + Àkókò Ojúmɔmɔ Erékùsù Norfolk + + + + + Àkókò Nofosibiriski + Àkókò Àfɛnukò Nofosibiriki + Àkókò Sɔmà Noforibisiki + + + + + Àkókò Omisiki + Àkókò Àfɛnukò Omisiki + Àkókò Sɔmà Omisiki + + + + + Àkókò Pakistani + Àkókò Àfɛnukò Pakistani + Àkókò Sɔmà Pakistani + + Àkókò Párágúwè @@ -926,6 +1220,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic Àkókò Ooru Pérù + + + Àkókò Filipininni + Àkókò Àfɛnukò Filipininni + Àkókò Sɔmà Filipininni + + + + + Àkókò Àwɔn Erékùsù Phoenix + + Àkókò Pierre & Miquelon @@ -938,16 +1244,61 @@ CLDR data files are interpreted according to the LDML specification (http://unic Àkókò Rɛ́yúníɔ́nì + + + Àkókò Sakhalin + Àkókò Àfɛnukò Sakhalin + Àkókò Sɔmà Sakhalin + + + + + Àkókò Samoa + Àkókò Àfɛnukò Samoa + Àkókò Ojúmɔmɔ Samoa + + Àkókò Sèshɛ́ɛ̀lì + + + Àkókò Àfɛnukò Singapore + + + + + Àkókò Àwɔn Erekusu Solomon + + Àkókò Gúsù Jɔ́jíà + + + Àkókò Taipei + Àkókò Ìfɛnukòsí Taipei + Àkókò Ojúmɔmɔ Taipei + + + + + Àkókò Tonga + Àkókò Àfɛnukò Tonga + Àkókò Sɔmà Tonga + + + + + Àkókò Turkimenistani + Àkókò Àfɛnukò Turkimenistani + Àkókò Sɔmà Turkmenistani + + Aago Uruguay @@ -955,6 +1306,48 @@ CLDR data files are interpreted according to the LDML specification (http://unic Aago Soma Uruguay + + + Àkókò Usibekistani + Àkókò Àfɛnukò Usibekistani + Àkókò Sɔmà Usibekistani + + + + + Àkókò Fanuatu + Àkókò Àfɛnukò Fanuatu + Àkókò Sɔmà Fanuatu + + + + + Àkókò Filadifositoki + Àkókò Àfɛnukò Filadifositoki + Àkókò Sɔmà Filadifositoki + + + + + Àkókò Foligogiradi + Àkókò Àfɛnukò Foligogiradi + Àkókò Sɔmà Foligogiradi + + + + + Àkókò Yatutsk + Àkókò Àfɛnukò Yatutsk + Àkókò Sɔmà Yatutsk + + + + + Àkókò Yekaterinburg + Àkókò Àfɛnukò Yekaterinburg + Àkókò Sɔmà Yekaterinburg + + Àkókò Yúkɔ́nì @@ -1442,8 +1835,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic - Àwɔn ɔjɔ́ {0} - Mú {0} apá ɔ̀tún + Àwɔn ɔjɔ́ {0} + Mú apá ɔ̀tún {0}. @@ -1469,6 +1862,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} ìdákan nínú ɛgbɛ̀rún + + maili ninu ami galɔɔnu kan + àwɔn pɛ́tábáìtì {0} àwɔn pɛ́tábáìtì @@ -1558,17 +1954,35 @@ CLDR data files are interpreted according to the LDML specification (http://unic lumɛ́ɛ̀nì {0} lumɛ́ɛ̀nì + + mɛtiriki tɔɔnu + búsɛ́ɛ̀li {0} búsɛ́ɛ̀li + + àwɔn ife + - àmì shíbí oúnjɛ́ kékeré - {0} àmì shíbí oúnjɛ́ kékeré + àwɔn shíbí oúnjɛ́ kékeré + àwɔn {0} àmì shíbí oúnjɛ́ kékeré shíbí oúnjɛ kékeré + + ìmɔ́lɛ̀ + {0} ìmɔ́lɛ̀ + + + ɛ̀yà nínú ìdá blíɔ̀nù + + + àwɔn alɛ́ + àwɔn alɛ́ {0} + {0}/alɛ́ + @@ -1637,6 +2051,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic fátɔ́mù + + kandɛ́là + àmì lumɛ́ɛ̀nì {0} Lúmɛ́nì @@ -1660,6 +2077,15 @@ CLDR data files are interpreted according to the LDML specification (http://unic píńshì {0} píńshì + + ìmɔ́lɛ̀ + {0} ìmɔ́lɛ̀ + + + àwɔn alɛ́ + àwɔn alɛ́ {0} + {0}/alɛ́ + @@ -1682,13 +2108,17 @@ CLDR data files are interpreted according to the LDML specification (http://unic búsɛ́li {0}búsɛ́ɛ̀li + + ìmɔ́lɛ̀ + {0}ìmɔ́lɛ̀ + + + àwɔn alɛ́ + àwɔn alɛ́{0} + {0}/alɛ́ + - - - {0} pɛ̀lú {1} - - Bɛ́ɛ̀ni :N @@ -1699,9 +2129,13 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0} ìdojúkɔ òsì {0} ìdojúkɔ ɔ̀tún àwɔ́n ìwé - {0} + Isɔwɔkɔwe Yuroopu + akɔ + àwɔn ɔfà oke ojú=ɔjɔ́ + dɛ̀gbɛ́ fífɛ̀ sí kíkɔ́ ɔ̀rɔ̀ àtúmɔ̀ diff --git a/make/data/cldr/common/main/yrl.xml b/make/data/cldr/common/main/yrl.xml index 2d876b6c3c8..f22c56444ef 100644 --- a/make/data/cldr/common/main/yrl.xml +++ b/make/data/cldr/common/main/yrl.xml @@ -1213,7 +1213,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2246,6 +2246,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Hurariyu {0} Kurasí Ara Hurariyu: {0} Hurariyu Retewa: {0} + + Hunururu + Hurariyu Mũdi turususawa Kurdenadu @@ -2935,9 +2938,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Urã Baturu - - Xuibausã - Makau @@ -3307,9 +3307,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Réra - - Hunururu - Ãkurage @@ -3689,13 +3686,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ Xina Kurasí Ara Hurariyu - - - Xoibasã Hurariyu - Xoibasã Hurariyu Retewa - Xoibasã Kurasí Ara Hurariyu - - KapuãmaKiritima Hurariyu diff --git a/make/data/cldr/common/main/yue.xml b/make/data/cldr/common/main/yue.xml index 8ebfe9a34d1..23add427dca 100644 --- a/make/data/cldr/common/main/yue.xml +++ b/make/data/cldr/common/main/yue.xml @@ -85,6 +85,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic 班亞爾文 康姆文 錫克錫卡文 + 阿尼文 班巴拉文 孟加拉文 藏文 @@ -213,7 +214,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 中古高地德文 瓜拉尼文 古高地日耳曼文 - 孔卡尼文 岡德文 科隆達羅文 哥德文 @@ -323,6 +323,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic 科米文 康瓦耳文 誇誇瓦拉文 + 庫維文 吉爾吉斯文 拉丁文 拉迪諾文 @@ -617,6 +618,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic 越南文 西佛蘭德文 美茵-法蘭克尼亞文 + 馬庫瓦文 沃拉普克文 沃提克文 佛羅文 @@ -632,6 +634,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic 卡爾梅克文 科薩文 明格列爾文 + 康格里文 索加文 瑤文 雅浦文 @@ -879,7 +882,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic 澳洲 荷屬阿魯巴 奧蘭群島 - 亞塞拜然 + 阿塞拜疆 波斯尼亞同黑塞哥維那 巴貝多 孟加拉 @@ -913,7 +916,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic 庫克群島 智利 喀麥隆 - 中華人民共和國 + 中國 哥倫比亞 克里派頓島 哥斯大黎加 @@ -951,7 +954,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic 加彭 英國 格瑞那達 - 喬治亞共和國 + 格魯吉亞 法屬圭亞那 根西島 迦納 @@ -967,7 +970,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic 關島 幾內亞比索 蓋亞那 - 中華人民共和國香港特別行政區 + 中國香港特別行政區 香港 赫德島同麥克唐納群島 宏都拉斯 @@ -985,7 +988,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic 伊拉克 伊朗 冰島 - 義大利 + 意大利 澤西島 牙買加 約旦 @@ -1001,7 +1004,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic 科威特 開曼群島 哈薩克 - 寮國 + 老撾 黎巴嫩 聖露西亞 列支敦斯登 @@ -1023,7 +1026,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic 馬利 緬甸 蒙古 - 中華人民共和國澳門特別行政區 + 中國澳門特別行政區 澳門 北馬里亞納群島 馬丁尼克島 @@ -1047,7 +1050,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic 尼泊爾 諾魯 紐埃島 - 紐西蘭 + 新西蘭 阿曼王國 巴拿馬 秘魯 @@ -1071,7 +1074,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic 塞爾維亞 俄羅斯 盧安達 - 沙烏地阿拉伯 + 沙特阿拉伯 索羅門群島 塞席爾 蘇丹 @@ -1129,7 +1132,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic 偽口音 偽 Bidi 科索沃 - 葉門 + 也門 馬約特 南非 尚比亞 @@ -3249,6 +3252,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}時間 {0}夏令時間 {0}標準時間 + + 檀香山 + 協調世界時間 @@ -3986,9 +3992,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 烏蘭巴托 - - 喬巴山 - 中華人民共和國澳門特別行政區 @@ -4388,9 +4391,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 諾姆 - - 檀香山 - 安克拉治 @@ -4775,13 +4775,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 中國夏令時間 - - - 喬巴山時間 - 喬巴山標準時間 - 喬巴山夏令時間 - - 聖誕島時間 @@ -5032,6 +5025,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic 彼得羅巴甫洛夫斯克日光節約時間 + + + 哈薩克時間 + + 東哈薩克時間 @@ -6595,6 +6593,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic 英制甜品匙{0}匙 + + 光速 + {0} 光速 + + + 十億分點濃度 + {0} 十億分點濃度 + + + + {0} 晚 + {0}/晚 + @@ -7394,6 +7405,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic 英制夸脫 {0} 英制夸脫 + + 光速 + {0} 光速 + + + 濃度/十億 + + + + {0} 晚 + {0}/晚 + 方向 東經{0} @@ -7454,6 +7477,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic °C + + 光速 + {0}光速 + + + {0}ppb + + + + {0}晚 + {0}/晚 + diff --git a/make/data/cldr/common/main/yue_Hans.xml b/make/data/cldr/common/main/yue_Hans.xml index b730d5cbc84..653d3489721 100644 --- a/make/data/cldr/common/main/yue_Hans.xml +++ b/make/data/cldr/common/main/yue_Hans.xml @@ -86,6 +86,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic 班亚尔文 康姆文 锡克锡卡文 + 阿尼文 班巴拉文 孟加拉文 藏文 @@ -214,7 +215,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 中古高地德文 瓜拉尼文 古高地日耳曼文 - 孔卡尼文 冈德文 科隆达罗文 哥德文 @@ -324,6 +324,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic 科米文 康瓦耳文 夸夸瓦拉文 + 库维文 吉尔吉斯文 拉丁文 拉迪诺文 @@ -618,6 +619,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic 越南文 西佛兰德文 美茵-法兰克尼亚文 + 马库瓦文 沃拉普克文 沃提克文 佛罗文 @@ -633,6 +635,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic 卡尔梅克文 科萨文 明格列尔文 + 康格里文 索加文 瑶文 雅浦文 @@ -3255,6 +3258,9 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}时间 + + 檀香山 + 协调世界时间 @@ -3992,9 +3998,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 乌兰巴托 - - 乔巴山 - 中华人民共和国澳门特别行政区 @@ -4394,9 +4397,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 诺姆 - - 檀香山 - 安克拉治 @@ -4781,13 +4781,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 中国夏令时间 - - - 乔巴山时间 - 乔巴山标准时间 - 乔巴山夏令时间 - - 圣诞岛时间 @@ -5038,6 +5031,11 @@ CLDR data files are interpreted according to the LDML specification (http://unic 彼得罗巴甫洛夫斯克日光节约时间 + + + 哈萨克时间 + + 东哈萨克时间 @@ -6662,6 +6660,19 @@ CLDR data files are interpreted according to the LDML specification (http://unic 英制甜品匙{0}匙 + + 光速 + {0} 光速 + + + 十亿分点浓度 + {0} 十亿分点浓度 + + + + {0} 晚 + {0}/晚 + @@ -7457,6 +7468,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic 英制夸脱 {0} 英制夸脱 + + 光速 + {0} 光速 + + + 浓度/十亿 + + + + {0} 晚 + {0}/晚 + 方向 东经{0} @@ -7520,6 +7543,18 @@ CLDR data files are interpreted according to the LDML specification (http://unic °C + + 光速 + {0}光速 + + + {0}ppb + + + + {0}晚 + {0}/晚 + diff --git a/make/data/cldr/common/main/yue_Hant_CN.xml b/make/data/cldr/common/main/yue_Hant_CN.xml new file mode 100644 index 00000000000..82ee5657808 --- /dev/null +++ b/make/data/cldr/common/main/yue_Hant_CN.xml @@ -0,0 +1,15 @@ + + + + + + + + - + @@ -665,7 +672,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -679,7 +686,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -1200,6 +1207,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 帕哈苗文4代 Pamaka 方言 皮亚诺方言 + 白话字 俄文拼字(1708年) 拼音罗马字 多音字母 @@ -1220,6 +1228,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 瑞士苏迈拉方言 瑞士苏瑟瓦方言 瑞士苏希瓦方言 + 台罗 传统正写法 通用拼音 统一的拼字 @@ -1265,9 +1274,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 希伯来历 印度国定历 伊斯兰历 - 伊斯兰希吉来日历 + 表格式伊斯兰历(民用纪元) 沙特阿拉伯伊斯兰历 - 伊斯兰天文历 + 表格式伊斯兰历(天文纪元) 伊斯兰历(乌姆库拉) 国际标准历法 和历 @@ -1435,7 +1444,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ [\: ∶] - [£ ₤] + [££ ₤] [\--﹣ ‑ ‒ −⁻₋ ➖] @@ -2773,32 +2782,32 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - 1月 - 2月 - 3月 - 4月 - 5月 - 6月 - 7月 - 8月 - 9月 - 10月 - 11月 - 12月 + 1月 + 2月 + 3月 + 4月 + 5月 + 6月 + 7月 + 8月 + 9月 + 10月 + 11月 + 12月 - 一月 - 二月 - 三月 - 四月 - 五月 - 六月 - 七月 - 八月 - 九月 - 十月 - 十一月 - 十二月 + 一月 + 二月 + 三月 + 四月 + 五月 + 六月 + 七月 + 八月 + 九月 + 十月 + 十一月 + 十二月 @@ -2813,6 +2822,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ M-d M-dE LLL + Gy/M/d + Gy/M/dE + Gy年M月d日E @@ -3424,7 +3436,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 年中日 - 工作日 + 星期 + + + 星期 + + + 星期 月中日 @@ -3559,6 +3577,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}夏令时间 {0}标准时间 {1}({0}) + + 檀香山 + 协调世界时 @@ -3973,7 +3994,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 阿尔及尔 - 加拉帕戈斯 + 科隆群岛 瓜亚基尔 @@ -4296,9 +4317,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 乌兰巴托 - - 乔巴山 - 澳门 @@ -4698,9 +4716,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 诺姆 - - 檀香山 - 安克雷奇 @@ -5085,13 +5100,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 中国夏令时间 - - - 乔巴山时间 - 乔巴山标准时间 - 乔巴山夏令时间 - - 圣诞岛时间 @@ -5202,7 +5210,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - 加拉帕戈斯时间 + 科隆群岛时间 @@ -5342,6 +5350,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 彼得罗巴甫洛夫斯克-堪察加夏令时间 + + + 哈萨克斯坦时间 + + 哈萨克斯坦东部时间 @@ -6336,7 +6349,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 匈牙利福林 - 印度尼西亚盾 + 印度尼西亚卢比 爱尔兰镑 @@ -6401,7 +6414,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 韩元 - 科威特第纳尔 @@ -7350,6 +7362,19 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 英制夸脱 {0}英制夸脱 + + + {0}光 + + + 十亿分比 + 十亿分之{0} + + + + {0}晚 + {0}/晚 + 主方向 @@ -7822,6 +7847,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}撮 + + + {0}光 + + + + {0}晚 + {0}/晚 + 方向 东经{0} @@ -8333,6 +8367,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 英制夸脱 {0}qt-Imp. + + + {0}光 + + + + {0}晚 + {0}/晚 + {0}E {0}N diff --git a/make/data/cldr/common/main/zh_Hans_MY.xml b/make/data/cldr/common/main/zh_Hans_MY.xml new file mode 100644 index 00000000000..5a399f139cd --- /dev/null +++ b/make/data/cldr/common/main/zh_Hans_MY.xml @@ -0,0 +1,62 @@ + + + + + + + + - + @@ -713,7 +721,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -725,6 +733,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + @@ -738,15 +747,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ + - + - + @@ -758,7 +768,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -776,13 +786,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + + @@ -831,7 +842,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + @@ -999,7 +1010,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 以色列 曼島 印度 - 英屬印度洋領地 + 英屬印度洋領地 查哥斯群島 伊拉克 伊朗 @@ -1208,6 +1219,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 雷西亞歐西亞柯方言 牛津英文字典拼音 蘇利南帕馬卡方言 + 白話字 俄羅斯文拼字(1708 年) 漢語拼音 希臘文多調正字法 @@ -1225,7 +1237,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 瑞士蘇邁拉方言 瑞士蘇瑟瓦方言 瑞士蘇希瓦方言 + 臺羅 白俄羅斯文傳統拼字 + 通用拼音 統一康沃爾文拼字 統一康沃爾文修訂拼字 愛爾蘭阿爾斯特方言 @@ -1265,10 +1279,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 希伯來曆 印度國曆 伊斯蘭曆 - 伊斯蘭民用曆 - 伊斯蘭新月曆 - 伊斯蘭天文曆 - 伊斯蘭曆(烏姆庫拉) + 伊斯蘭民用曆 + 伊斯蘭新月曆 + 伊斯蘭天文曆 + 伊斯蘭曆(烏姆庫拉) ISO 8601 國際曆法 日本曆 波斯曆 @@ -1295,7 +1309,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 發音排序 拼音排序 一般用途搜尋 - 韓文子音排序 + 依諺文聲母搜尋 標準排序 筆畫排序 傳統排序 @@ -1376,6 +1390,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 默文數字 曼尼普爾數字 緬甸數字 + 緬甸東山地克倫數字 + 緬甸勃歐數字 緬甸撣文數字 緬甸傣族數字 原始數字 @@ -1397,7 +1413,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 坦米爾數字 泰盧固數字 泰文數字 - 西藏數字 + 藏文數字 提爾胡塔數字 傳統數字 瓦伊文數字 @@ -2703,38 +2719,38 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - 穆哈蘭姆月 - 色法爾月 - 賴比月 I - 賴比月 II - 主馬達月 I - 主馬達月 II - 賴哲卜月 - 舍爾邦月 - 賴買丹月 - 閃瓦魯月 - 都爾喀爾德月 - 都爾黑哲月 + 穆哈蘭姆月 + 色法爾月 + 賴比月 I + 賴比月 II + 主馬達月 I + 主馬達月 II + 賴哲卜月 + 舍爾邦月 + 賴買丹月 + 閃瓦魯月 + 都爾喀爾德月 + 都爾黑哲月 - 穆哈蘭姆月 - 色法爾月 - 賴比月 I - 賴比月 II - 主馬達月 I - 主馬達月 II - 賴哲卜月 - 舍爾邦月 - 賴買丹月 - 閃瓦魯月 - 都爾喀爾德月 - 都爾黑哲月 + 穆哈蘭姆月 + 色法爾月 + 賴比月 I + 賴比月 II + 主馬達月 I + 主馬達月 II + 賴哲卜月 + 舍爾邦月 + 賴買丹月 + 閃瓦魯月 + 都爾喀爾德月 + 都爾黑哲月 - 伊斯蘭曆 + 伊斯蘭曆 @@ -2783,6 +2799,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ d日(E) Gy年 + GGGGG y/M/d Gy年M月 Gy年M月d日 Gy年M月d日E @@ -3442,7 +3459,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - 年代 + 紀元 + + + 紀元 + + + 紀元 @@ -3457,7 +3480,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - + 季度 上一季 這一季 下一季 @@ -3494,7 +3517,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} 當週 - + 該月第幾週 + + + 月週次 + + + 月週次 @@ -3511,13 +3540,31 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - 年天 + 該年第幾天 + + + 該年第幾天 + + + 該年第幾天 - 週天 + 星期 + + + 星期 + + + 星期 - 每月平日 + 該月第幾週 + + + 該月第幾週 + + + 該月第幾週 上週日 @@ -3596,8 +3643,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} 個週六前 + + 時段 + - 上午/下午 + 時段 + + + 時段 小時 @@ -3609,6 +3662,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} 小時前 + + + + + + 分鐘 這一分鐘 @@ -3619,6 +3678,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} 分鐘前 + + + + + + 現在 @@ -3636,6 +3701,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}時間 {1}({0}) + + 檀香山 + 世界標準時間 @@ -4254,7 +4322,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 恩得伯理島 - 坎頓島 + 坎頓島 基里地馬地島 @@ -4373,9 +4441,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 烏蘭巴托 - - 喬巴山 - 澳門 @@ -4775,9 +4840,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 諾姆 - - 檀香山 - 安克拉治 @@ -5192,13 +5254,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 中國夏令時間 - - - 喬巴山時間 - 喬巴山標準時間 - 喬巴山夏令時間 - - 聖誕島時間 @@ -5457,6 +5512,11 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 彼得羅巴甫洛夫斯克日光節約時間 + + + 哈薩克時間 + + 東哈薩克時間 @@ -5899,7 +5959,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - 育空地區時間 + 育空地區時間 @@ -5939,63 +5999,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - @@ -6004,8 +6007,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤#,##0.00;(¤#,##0.00) - ¤ #,##0.00;(¤ #,##0.00) - #,##0.00;(#,##0.00) + ¤ #,##0.00;(¤ #,##0.00) + #,##0.00;(#,##0.00) @@ -6024,73 +6027,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ ¤000兆 - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} - - - {0} {1} @@ -7150,7 +7086,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} 牛頓 - 每百公里千瓦小時 + 每百公里千瓦小時 像素 @@ -7181,6 +7117,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} 英寸 每英寸 {0} + + 斯堪地那維亞里 + {0} 斯堪地那維亞里 + 太陽半徑 {0} 太陽半徑 @@ -7268,6 +7208,15 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 每英制加侖 {0} + + 十億分點濃度 + {0} 十億分點濃度 + + + + {0} 夜 + {0}/夜 + 基本方向 @@ -7478,9 +7427,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}/年 - - {0} 刻 - {0}/刻 + + {0} 刻 + {0}/刻 @@ -7593,12 +7542,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} 赫茲 - dpcm - {0} dpcm + dpcm + {0} dpcm - dpi - {0} dpi + dpi + {0} dpi 公里 @@ -7678,8 +7627,8 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0} 海里 - 斯堪地那維亞英里 - {0} 斯堪地那維亞英里 + 斯堪地那維亞里 + {0} 斯堪地那維亞里 @@ -8000,6 +7949,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ 英制夸脫 {0} 英制夸脫 + + 濃度/十億 + + + + {0} 夜 + {0}/夜 + 方向 東經{0} @@ -8019,7 +7976,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}圈 - {0}弧度 + {0}弧度 {0}° @@ -8031,16 +7988,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}角秒 - {0}km² + {0}km² {0}公頃 - {0}m² + {0}m² - {0}cm² + {0}cm² {0}平方英里 @@ -8049,16 +8006,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}英畝 - {0}yd² + {0}yd² {0}平方英尺 - {0}in² + {0}平方英寸 - {0}杜納畝 + {0}杜納畝 {0}克拉 @@ -8076,7 +8033,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}百萬分率 - {0}莫耳 + {0}莫耳 {0}升/公里 @@ -8092,43 +8049,43 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}英里/英制加侖 - {0}PB + {0}PB - {0}TB + {0}TB - {0}Tb + {0}Tb - {0}GB + {0}GB - {0}Gb + {0}Gb - {0}MB + {0}MB - {0}Mb + {0}Mb - {0}kB + {0}kB - {0}kb + {0}kb - {0}byte + {0}byte - {0}bit + {0}bit - {0}μs + {0}μs - {0}ns + {0}ns {0}安培 @@ -8143,40 +8100,40 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}伏特 - {0}千卡 + {0}千卡 - {0}卡 + {0}卡 {0}大卡 - {0}千焦耳 + {0}千焦耳 - {0}焦 + {0}焦 {0}千瓦小時 - {0}電子伏特 + {0}電子伏特 - {0}英熱單位 + {0}英熱單位 - {0}美制撒姆 + {0}美制撒姆 - {0}lbf + {0}lbf - {0}N + {0}N - {0}kWh/100km + {0}kWh/100km {0}吉赫 @@ -8206,16 +8163,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}ppi - {0}dpcm + {0}dpcm - {0}dpi + {0}dpi - {0}px + {0}px - {0}R⊕ + {0}R⊕ {0}公里 @@ -8224,7 +8181,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}公尺 - {0}dm + {0}公寸 {0}公分 @@ -8233,10 +8190,10 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}公釐 - {0}μm + {0}μm - {0}nm + {0}奈米 {0}皮米 @@ -8254,43 +8211,44 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}吋 - {0}pc + {0}秒差距 {0}光年 - {0}au + {0}天文單位 - {0}化朗 + {0}化朗 - {0}fth + {0}fth - {0}nmi + {0}nmi - {0}smi + 斯堪地那維亞里 + {0}smi - {0}點 + {0}點 - {0}R☉ + {0}R☉ {0}勒克斯 - {0}燭光 + {0}燭光 - {0}流明 + {0}流明 - {0}L☉ + {0}L☉ {0}公噸 @@ -8308,7 +8266,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}微克 - 英噸 + 英噸 {0}美噸 @@ -8327,16 +8285,16 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}克拉 - {0}達爾頓 + {0}達爾頓 - {0}地球質量 + {0}地球質量 - {0}太陽質量 + {0}太陽質量 - {0}格林 + {0}格林 {0}吉瓦 @@ -8363,53 +8321,53 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}psi - {0}英吋汞柱 + {0}英吋汞柱 - {0}巴 + {0}巴 {0}毫巴 - {0}atm + {0}atm - {0}帕 + {0}帕 {0}百帕 - {0}千帕 + {0}千帕 - {0}兆帕 + {0}兆帕 {0}公里/小時 - {0}公尺/秒 + {0}公尺/秒 {0}英里/小時 - 蒲福風級{0}級 + 蒲福風級{0}級 °C - K + K {0}克耳文 - {0}磅英尺 + {0}磅英尺 - {0}牛頓米 + {0}牛頓米 {0}立方公里 @@ -8440,7 +8398,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}升 - {0}/L + {0}/L {0}公合 @@ -8465,11 +8423,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}加侖 - {0}/gal {0}英制加侖 - {0}/galIm {0}夸脫 @@ -8484,37 +8440,45 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/ {0}液盎司 - {0}英液盎司 + {0}英液盎司 - {0}匙 + {0}匙 {0}茶匙 - {0}桶 + {0}桶 - {0}甜品匙 + {0}甜品匙 {0}甜品匙 - {0}滴 + {0}滴 - {0}打蘭 + {0}打蘭 - {0}量酒杯 + {0}量酒杯 - {0}小撮 + {0}小撮 - {0}英制夸脫 + {0}英制夸脫 + + + {0}ppb + + + + {0}夜 + {0}/夜 diff --git a/make/data/cldr/common/main/zh_Hant_HK.xml b/make/data/cldr/common/main/zh_Hant_HK.xml index 4c93fedf418..c2c520f5dd1 100644 --- a/make/data/cldr/common/main/zh_Hant_HK.xml +++ b/make/data/cldr/common/main/zh_Hant_HK.xml @@ -22,7 +22,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 布里多尼文 波斯尼亞文 加泰隆尼亞文 - 克里米亞韃靼文 塞舌爾克里奧爾法文 奧地利德文 瑞士德語 @@ -89,7 +88,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - @@ -238,22 +236,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic M-d M-d(E) - - - ah時至h時 - - - ah:mm至h:mm - ah:mm至h:mm - - - ah:mm至h:mm [v] - ah:mm至h:mm [v] - - - ah時至h時 [v] - - @@ -372,66 +354,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - - - - ah時至h時 - - - ah:mm至h:mm - ah:mm至h:mm - - - ah:mm至h:mm [v] - ah:mm至h:mm [v] - - - ah時至h時 [v] - - - - - - - - - ah時至h時 - - - ah:mm至h:mm - ah:mm至h:mm - - - ah:mm至h:mm [v] - ah:mm至h:mm [v] - - - ah時至h時 [v] - - - - - - - - - ah時至h時 - - - ah:mm至h:mm - ah:mm至h:mm - - - ah:mm至h:mm [v] - ah:mm至h:mm [v] - - - ah時至h時 [v] - - - - @@ -723,66 +645,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic - - - - - ah時至h時 - - - ah:mm至h:mm - ah:mm至h:mm - - - ah:mm至h:mm [v] - ah:mm至h:mm [v] - - - ah時至h時 [v] - - - - - - - - - ah時至h時 - - - ah:mm至h:mm - ah:mm至h:mm - - - ah:mm至h:mm [v] - ah:mm至h:mm [v] - - - ah時至h時 [v] - - - - - - - - - ah時至h時 - - - ah:mm至h:mm - ah:mm至h:mm - - - ah:mm至h:mm [v] - ah:mm至h:mm [v] - - - ah時至h時 [v] - - - - @@ -790,42 +652,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic ah:mm ah:mm:ss - - - ah時至h時 - - - ah:mm至h:mm - ah:mm至h:mm - - - ah:mm至h:mm [v] - ah:mm至h:mm [v] - - - ah時至h時 [v] - - - - - - - - - ah時至h時 - - - ah:mm至h:mm - ah:mm至h:mm - - - ah:mm至h:mm [v] - ah:mm至h:mm [v] - - - ah時至h時 [v] - - @@ -835,22 +661,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic d-M(E) Gy/M/dE - - - ah時至h時 - - - ah:mm至h:mm - ah:mm至h:mm - - - ah:mm至h:mm [v] - ah:mm至h:mm [v] - - - ah時至h時 [v] - - @@ -1019,7 +829,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 這個小時 - {0}小時後 @@ -1031,7 +840,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 這分鐘 - {0}分後 @@ -1940,7 +1748,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 聖多美和普林西比多布拉 (1977–2017) - 聖多美和普林西比多布拉 (1977–2017) 聖多美和普林西比多布拉 @@ -1950,7 +1757,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 斯威士蘭里朗吉尼 - 斯威士蘭里朗吉尼 湯加潘加 @@ -2159,10 +1965,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic 英里每小時 - - 蒲福氏風級 - 蒲福氏風級 {0} 級 - 攝氏度 @@ -2574,9 +2376,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}坎德拉 - - {0} 公斤 - {0} 安士 @@ -2596,7 +2395,6 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}mph - 蒲福氏風級 蒲福氏風級 {0} 級 @@ -2617,6 +2415,12 @@ CLDR data files are interpreted according to the LDML specification (http://unic {0}英制甜品匙 + + {0}夜 + + + 濃度/十億 + {0}E {0}N diff --git a/make/data/cldr/common/main/zh_Hant_MY.xml b/make/data/cldr/common/main/zh_Hant_MY.xml new file mode 100644 index 00000000000..db9f6777c28 --- /dev/null +++ b/make/data/cldr/common/main/zh_Hant_MY.xml @@ -0,0 +1,47 @@ + + + + + + + +