8171277: Elliptic Curves for Security in Crypto
Summary: Implementations of X25519 and X448 key agreement in SunEC
Reviewed-by: mullan
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/java/security/interfaces/XECKey.java Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 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. 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 java.security.interfaces;
+
+import java.security.spec.AlgorithmParameterSpec;
+
+/**
+ * An interface for an elliptic curve public/private key as defined by
+ * RFC 7748. These keys are distinct from the keys represented by
+ * {@code ECKey}, and they are intended for use with algorithms based on RFC
+ * 7748 such as the XDH {@code KeyAgreement} algorithm. This interface allows
+ * access to the algorithm parameters associated with the key.
+ *
+ * @since 11
+ */
+public interface XECKey {
+ /**
+ * Returns the algorithm parameters associated
+ * with the key.
+ *
+ * @return the associated algorithm parameters
+ */
+ AlgorithmParameterSpec getParams();
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/java/security/interfaces/XECPrivateKey.java Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 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. 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 java.security.interfaces;
+
+import java.security.PrivateKey;
+import java.util.Optional;
+
+/**
+ * An interface for an elliptic curve private key as defined by RFC 7748.
+ * These keys are distinct from the keys represented by {@code ECPrivateKey},
+ * and they are intended for use with algorithms based on RFC 7748 such as the
+ * XDH {@code KeyAgreement} algorithm.
+ *
+ * An XEC private key is an encoded scalar value as described in RFC 7748.
+ * The decoding procedure defined in this RFC includes an operation that forces
+ * certain bits of the key to either 1 or 0. This operation is known as
+ * "pruning" or "clamping" the private key. Arrays returned by this interface
+ * are unpruned, and implementations will need to prune the array before
+ * using it in any numerical operations.
+ *
+ * @since 11
+ */
+public interface XECPrivateKey extends XECKey, PrivateKey {
+
+ /**
+ * Get the scalar value encoded as an unpruned byte array. A new copy of
+ * the array is returned each time this method is called.
+ *
+ * @return the unpruned encoded scalar value, or an empty Optional if the
+ * scalar cannot be extracted (e.g. if the provider is a hardware token
+ * and the private key is not allowed to leave the crypto boundary).
+ */
+ Optional<byte[]> getScalar();
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/java/security/interfaces/XECPublicKey.java Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 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. 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 java.security.interfaces;
+
+import java.math.BigInteger;
+import java.security.PublicKey;
+
+/**
+ * An interface for an elliptic curve public key as defined by RFC 7748.
+ * These keys are distinct from the keys represented by {@code ECPublicKey},
+ * and they are intended for use with algorithms based on RFC 7748 such as the
+ * XDH {@code KeyAgreement} algorithm.
+ *
+ * An XEC public key is a particular point on the curve, which is represented
+ * using only its u-coordinate as described in RFC 7748. A u-coordinate is an
+ * element of the field of integers modulo some value that is determined by
+ * the algorithm parameters. This field element is represented by a BigInteger
+ * which may hold any value. That is, the BigInteger is not restricted to the
+ * range of canonical field elements.
+ *
+ * @since 11
+ */
+public interface XECPublicKey extends XECKey, PublicKey {
+
+ /**
+ * Get the u coordinate of the point.
+ *
+ * @return the u-coordinate, represented using a BigInteger which may hold
+ * any value
+ */
+ BigInteger getU();
+
+}
+
--- a/src/java.base/share/classes/java/security/spec/ECGenParameterSpec.java Tue May 08 09:21:51 2018 -0400
+++ b/src/java.base/share/classes/java/security/spec/ECGenParameterSpec.java Tue May 08 09:47:28 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -34,9 +34,7 @@
*
* @since 1.5
*/
-public class ECGenParameterSpec implements AlgorithmParameterSpec {
-
- private String name;
+public class ECGenParameterSpec extends NamedParameterSpec {
/**
* Creates a parameter specification for EC parameter
@@ -44,25 +42,15 @@
* {@code stdName} in order to generate the corresponding
* (precomputed) elliptic curve domain parameters. For the
* list of supported names, please consult the documentation
- * of provider whose implementation will be used.
+ * of the provider whose implementation will be used.
+ *
* @param stdName the standard name of the to-be-generated EC
- * domain parameters.
- * @exception NullPointerException if {@code stdName}
- * is null.
+ * domain parameters.
+ * @throws NullPointerException if {@code stdName}
+ * is null.
*/
public ECGenParameterSpec(String stdName) {
- if (stdName == null) {
- throw new NullPointerException("stdName is null");
- }
- this.name = stdName;
- }
-
- /**
- * Returns the standard or predefined name of the
- * to-be-generated EC domain parameters.
- * @return the standard or predefined name.
- */
- public String getName() {
- return name;
+ super(stdName);
}
}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/java/security/spec/NamedParameterSpec.java Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 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. 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 java.security.spec;
+
+import java.util.Objects;
+
+/**
+ * This class is used to specify any algorithm parameters that are determined
+ * by a standard name. This class also holds constants for standard parameter
+ * set names. The names of these constants exactly match the corresponding
+ * parameter set name. For example, NamedParameterSpec.X25519 represents the
+ * parameter set identified by the string "X25519". These strings are defined
+ * in the <a href=
+ * "{@docRoot}/../specs/security/standard-names.html#parameter-spec-names">
+ * Java Security Standard Algorithm Names Specification</a>.
+ *
+ * @since 11
+ *
+ */
+public class NamedParameterSpec implements AlgorithmParameterSpec {
+
+ /**
+ * The X25519 parameters
+ */
+ public static final NamedParameterSpec X25519
+ = new NamedParameterSpec("X25519");
+ /**
+ * The X448 parameters
+ */
+ public static final NamedParameterSpec X448
+ = new NamedParameterSpec("X448");
+
+ private String name;
+
+ /**
+ * Creates a parameter specification using a standard (or predefined)
+ * name {@code stdName}. For the
+ * list of supported names, please consult the documentation
+ * of the provider whose implementation will be used.
+ *
+ * @param stdName the standard name of the algorithm parameters
+ *
+ * @throws NullPointerException if {@code stdName}
+ * is null.
+ */
+ public NamedParameterSpec(String stdName) {
+ Objects.requireNonNull(stdName, "stdName must not be null");
+
+ this.name = stdName;
+ }
+
+ /**
+ * Returns the standard name that determines the algorithm parameters.
+ * @return the standard name.
+ */
+ public String getName() {
+ return name;
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/java/security/spec/XECPrivateKeySpec.java Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 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. 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 java.security.spec;
+
+import java.util.Objects;
+
+/**
+ * A class representing elliptic curve private keys as defined in RFC 7748,
+ * including the curve and other algorithm parameters. The private key is
+ * represented as an encoded scalar value. The decoding procedure defined in
+ * the RFC includes an operation that forces certain bits of the key to either
+ * 1 or 0. This operation is known as "pruning" or "clamping" the private key.
+ * All arrays in this spec are unpruned, and implementations will need to prune
+ * the array before using it in any numerical operations.
+ *
+ * @since 11
+ */
+public class XECPrivateKeySpec implements KeySpec {
+
+ private final AlgorithmParameterSpec params;
+ private final byte[] scalar;
+
+ /**
+ * Construct a private key spec using the supplied parameters and
+ * encoded scalar value.
+ *
+ * @param params the algorithm parameters
+ * @param scalar the unpruned encoded scalar value. This array is copied
+ * to protect against subsequent modification.
+ *
+ * @throws NullPointerException if {@code params} or {@code scalar}
+ * is null.
+ */
+ public XECPrivateKeySpec(AlgorithmParameterSpec params, byte[] scalar) {
+ Objects.requireNonNull(params, "params must not be null");
+ Objects.requireNonNull(scalar, "scalar must not be null");
+
+ this.params = params;
+ this.scalar = scalar.clone();
+ }
+
+ /**
+ * Get the algorithm parameters that define the curve and other settings.
+ *
+ * @return the algorithm parameters
+ */
+ public AlgorithmParameterSpec getParams() {
+ return params;
+ }
+
+ /**
+ * Get the scalar value encoded as an unpruned byte array. A new copy of
+ * the array is returned each time this method is called.
+ *
+ * @return the unpruned encoded scalar value
+ */
+ public byte[] getScalar() {
+ return scalar.clone();
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/share/classes/java/security/spec/XECPublicKeySpec.java Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 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. 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 java.security.spec;
+
+import java.math.BigInteger;
+import java.util.Objects;
+
+/**
+ * A class representing elliptic curve public keys as defined in RFC 7748,
+ * including the curve and other algorithm parameters. The public key is a
+ * particular point on the curve, which is represented using only its
+ * u-coordinate. A u-coordinate is an element of the field of integers modulo
+ * some value that is determined by the algorithm parameters. This field
+ * element is represented by a BigInteger which may hold any value. That is,
+ * the BigInteger is not restricted to the range of canonical field elements.
+ *
+ * @since 11
+ */
+public class XECPublicKeySpec implements KeySpec {
+
+ private final AlgorithmParameterSpec params;
+ private final BigInteger u;
+
+ /**
+ * Construct a public key spec using the supplied parameters and
+ * u coordinate.
+ *
+ * @param params the algorithm parameters
+ * @param u the u-coordinate of the point, represented using a BigInteger
+ * which may hold any value
+ *
+ * @throws NullPointerException if {@code params} or {@code u}
+ * is null.
+ */
+ public XECPublicKeySpec(AlgorithmParameterSpec params, BigInteger u) {
+ Objects.requireNonNull(params, "params must not be null");
+ Objects.requireNonNull(u, "u must not be null");
+
+ this.params = params;
+ this.u = u;
+ }
+
+ /**
+ * Get the algorithm parameters that define the curve and other settings.
+ *
+ * @return the parameters
+ */
+ public AlgorithmParameterSpec getParams() {
+ return params;
+ }
+
+ /**
+ * Get the u coordinate of the point.
+ *
+ * @return the u-coordinate, represented using a BigInteger which may hold
+ * any value
+ */
+ public BigInteger getU() {
+ return u;
+ }
+}
--- a/src/java.base/share/classes/module-info.java Tue May 08 09:21:51 2018 -0400
+++ b/src/java.base/share/classes/module-info.java Tue May 08 09:47:28 2018 -0400
@@ -289,6 +289,10 @@
jdk.jartool,
jdk.security.auth,
jdk.security.jgss;
+ exports sun.security.util.math to
+ jdk.crypto.ec
+ exports sun.security.util.math.intpoly to
+ jdk.crypto.ec
exports sun.security.x509 to
jdk.crypto.ec,
jdk.crypto.cryptoki,
--- a/src/jdk.crypto.ec/share/classes/sun/security/ec/SunEC.java Tue May 08 09:21:51 2018 -0400
+++ b/src/jdk.crypto.ec/share/classes/sun/security/ec/SunEC.java Tue May 08 09:47:28 2018 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 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
@@ -30,7 +30,7 @@
import java.util.regex.Pattern;
import sun.security.util.CurveDB;
import sun.security.util.NamedCurve;
-import sun.security.util.ECParameters;
+
import static sun.security.util.SecurityConstants.PROVIDER_VER;
/**
@@ -119,6 +119,12 @@
} else if (type.equals("KeyFactory")) {
if (algo.equals("EC")) {
return new ECKeyFactory();
+ } else if (algo.equals("XDH")) {
+ return new XDHKeyFactory();
+ } else if (algo.equals("X25519")) {
+ return new XDHKeyFactory.X25519();
+ } else if (algo.equals("X448")) {
+ return new XDHKeyFactory.X448();
}
} else if (type.equals("AlgorithmParameters")) {
if (algo.equals("EC")) {
@@ -127,10 +133,22 @@
} else if (type.equals("KeyPairGenerator")) {
if (algo.equals("EC")) {
return new ECKeyPairGenerator();
+ } else if (algo.equals("XDH")) {
+ return new XDHKeyPairGenerator();
+ } else if (algo.equals("X25519")) {
+ return new XDHKeyPairGenerator.X25519();
+ } else if (algo.equals("X448")) {
+ return new XDHKeyPairGenerator.X448();
}
} else if (type.equals("KeyAgreement")) {
if (algo.equals("ECDH")) {
return new ECDHKeyAgreement();
+ } else if (algo.equals("XDH")) {
+ return new XDHKeyAgreement();
+ } else if (algo.equals("X25519")) {
+ return new XDHKeyAgreement.X25519();
+ } else if (algo.equals("X448")) {
+ return new XDHKeyAgreement.X448();
}
}
} catch (Exception ex) {
@@ -205,6 +223,8 @@
new String[] { "EllipticCurve", "1.2.840.10045.2.1", "OID.1.2.840.10045.2.1" },
apAttrs));
+ putXDHEntries();
+
/*
* Register the algorithms below only when the full ECC implementation
* is available
@@ -272,4 +292,39 @@
putService(new ProviderService(this, "KeyAgreement",
"ECDH", "sun.security.ec.ECDHKeyAgreement", null, ATTRS));
}
+
+ private void putXDHEntries() {
+
+ HashMap<String, String> ATTRS = new HashMap<>(1);
+ ATTRS.put("ImplementedIn", "Software");
+
+ /* XDH does not require native implementation */
+ putService(new ProviderService(this, "KeyFactory",
+ "XDH", "sun.security.ec.XDHKeyFactory", null, ATTRS));
+ putService(new ProviderService(this, "KeyFactory",
+ "X25519", "sun.security.ec.XDHKeyFactory.X25519",
+ new String[]{"1.3.101.110", "OID.1.3.101.110"}, ATTRS));
+ putService(new ProviderService(this, "KeyFactory",
+ "X448", "sun.security.ec.XDHKeyFactory.X448",
+ new String[]{"1.3.101.111", "OID.1.3.101.111"}, ATTRS));
+
+ putService(new ProviderService(this, "KeyPairGenerator",
+ "XDH", "sun.security.ec.XDHKeyPairGenerator", null, ATTRS));
+ putService(new ProviderService(this, "KeyPairGenerator",
+ "X25519", "sun.security.ec.XDHKeyPairGenerator.X25519",
+ new String[]{"1.3.101.110", "OID.1.3.101.110"}, ATTRS));
+ putService(new ProviderService(this, "KeyPairGenerator",
+ "X448", "sun.security.ec.XDHKeyPairGenerator.X448",
+ new String[]{"1.3.101.111", "OID.1.3.101.111"}, ATTRS));
+
+ putService(new ProviderService(this, "KeyAgreement",
+ "XDH", "sun.security.ec.XDHKeyAgreement", null, ATTRS));
+ putService(new ProviderService(this, "KeyAgreement",
+ "X25519", "sun.security.ec.XDHKeyAgreement.X25519",
+ new String[]{"1.3.101.110", "OID.1.3.101.110"}, ATTRS));
+ putService(new ProviderService(this, "KeyAgreement",
+ "X448", "sun.security.ec.XDHKeyAgreement.X448",
+ new String[]{"1.3.101.111", "OID.1.3.101.111"}, ATTRS));
+
+ }
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.crypto.ec/share/classes/sun/security/ec/XDHKeyAgreement.java Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,216 @@
+/*
+ * Copyright (c) 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. 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 sun.security.ec;
+
+import java.security.InvalidAlgorithmParameterException;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.security.Key;
+import java.security.SecureRandom;
+import java.security.ProviderException;
+import java.security.interfaces.XECPrivateKey;
+import java.security.interfaces.XECPublicKey;
+import java.security.spec.AlgorithmParameterSpec;
+import java.security.spec.NamedParameterSpec;
+import javax.crypto.KeyAgreementSpi;
+import javax.crypto.SecretKey;
+import javax.crypto.ShortBufferException;
+import java.util.function.Function;
+
+public class XDHKeyAgreement extends KeyAgreementSpi {
+
+ private byte[] privateKey;
+ private byte[] secret;
+ private XECOperations ops;
+ private XECParameters lockedParams = null;
+
+ XDHKeyAgreement() {
+ // do nothing
+ }
+
+ XDHKeyAgreement(AlgorithmParameterSpec paramSpec) {
+ lockedParams = XECParameters.get(ProviderException::new, paramSpec);
+ }
+
+ @Override
+ protected void engineInit(Key key, SecureRandom random)
+ throws InvalidKeyException {
+
+ initImpl(key);
+ }
+
+ @Override
+ protected void engineInit(Key key, final AlgorithmParameterSpec params,
+ SecureRandom random) throws InvalidKeyException,
+ InvalidAlgorithmParameterException {
+
+ initImpl(key);
+
+ // the private key parameters must match params
+ XECParameters xecParams = XECParameters.get(
+ InvalidAlgorithmParameterException::new, params);
+ if (!xecParams.oidEquals(this.ops.getParameters())) {
+ throw new InvalidKeyException(
+ "Incorrect private key parameters"
+ );
+ }
+ }
+
+ private
+ <T extends Throwable>
+ void checkLockedParams(Function<String, T> exception,
+ XECParameters params) throws T {
+
+ if (lockedParams != null && lockedParams != params) {
+ throw exception.apply("Parameters must be " +
+ lockedParams.getName());
+ }
+ }
+
+ private void initImpl(Key key) throws InvalidKeyException {
+
+ if (!(key instanceof XECPrivateKey)) {
+ throw new InvalidKeyException
+ ("Unsupported key type");
+ }
+ XECPrivateKey privateKey = (XECPrivateKey) key;
+ XECParameters xecParams = XECParameters.get(
+ InvalidKeyException::new, privateKey.getParams());
+ checkLockedParams(InvalidKeyException::new, xecParams);
+
+ this.ops = new XECOperations(xecParams);
+ this.privateKey = privateKey.getScalar().orElseThrow(
+ () -> new InvalidKeyException("No private key value")
+ );
+ secret = null;
+ }
+
+ @Override
+ protected Key engineDoPhase(Key key, boolean lastPhase)
+ throws InvalidKeyException, IllegalStateException {
+
+ if (this.privateKey == null) {
+ throw new IllegalStateException("Not initialized");
+ }
+ if (this.secret != null) {
+ throw new IllegalStateException("Phase already executed");
+ }
+ if (!lastPhase) {
+ throw new IllegalStateException
+ ("Only two party agreement supported, lastPhase must be true");
+ }
+ if (!(key instanceof XECPublicKey)) {
+ throw new InvalidKeyException
+ ("Unsupported key type");
+ }
+
+ XECPublicKey publicKey = (XECPublicKey) key;
+
+ // Ensure public key parameters are compatible with private key
+ XECParameters xecParams = XECParameters.get(InvalidKeyException::new,
+ publicKey.getParams());
+ if (!ops.getParameters().oidEquals(xecParams)) {
+ throw new InvalidKeyException(
+ "Public key parameters are not compatible with private key.");
+ }
+
+ // The privateKey may be modified to a value that is equivalent for
+ // the purposes of this algorithm.
+ byte[] computedSecret = ops.encodedPointMultiply(
+ this.privateKey,
+ publicKey.getU());
+
+ // test for contributory behavior
+ if (allZero(computedSecret)) {
+ throw new InvalidKeyException("Point has small order");
+ }
+
+ this.secret = computedSecret;
+
+ return null;
+ }
+
+ /*
+ * Constant-time check for an all-zero array
+ */
+ private boolean allZero(byte[] arr) {
+ byte orValue = (byte) 0;
+ for (int i = 0; i < arr.length; i++) {
+ orValue |= arr[i];
+ }
+
+ return orValue == (byte) 0;
+ }
+
+ @Override
+ protected byte[] engineGenerateSecret() throws IllegalStateException {
+ if (secret == null) {
+ throw new IllegalStateException("Not initialized correctly");
+ }
+
+ return secret.clone();
+ }
+
+ @Override
+ protected int engineGenerateSecret(byte[] sharedSecret, int offset)
+ throws IllegalStateException, ShortBufferException {
+
+ if (secret == null) {
+ throw new IllegalStateException("Not initialized correctly");
+ }
+ int secretLen = this.secret.length;
+ if (offset + secretLen > sharedSecret.length) {
+ throw new ShortBufferException("Need " + secretLen
+ + " bytes, only " + (sharedSecret.length - offset)
+ + " available");
+ }
+
+ System.arraycopy(this.secret, 0, sharedSecret, offset, secretLen);
+ return secret.length;
+ }
+
+ @Override
+ protected SecretKey engineGenerateSecret(String algorithm)
+ throws IllegalStateException, NoSuchAlgorithmException,
+ InvalidKeyException {
+
+ throw new NoSuchAlgorithmException("Not supported");
+ }
+
+ static class X25519 extends XDHKeyAgreement {
+
+ public X25519() {
+ super(NamedParameterSpec.X25519);
+ }
+ }
+
+ static class X448 extends XDHKeyAgreement {
+
+ public X448() {
+ super(NamedParameterSpec.X448);
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.crypto.ec/share/classes/sun/security/ec/XDHKeyFactory.java Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,243 @@
+/*
+ * Copyright (c) 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. 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 sun.security.ec;
+
+import java.security.KeyFactorySpi;
+import java.security.Key;
+import java.security.PublicKey;
+import java.security.PrivateKey;
+import java.security.InvalidKeyException;
+import java.security.ProviderException;
+import java.security.interfaces.XECKey;
+import java.security.interfaces.XECPrivateKey;
+import java.security.interfaces.XECPublicKey;
+import java.security.spec.AlgorithmParameterSpec;
+import java.security.spec.NamedParameterSpec;
+import java.security.spec.KeySpec;
+import java.security.spec.InvalidKeySpecException;
+import java.security.spec.PKCS8EncodedKeySpec;
+import java.security.spec.X509EncodedKeySpec;
+import java.security.spec.XECPublicKeySpec;
+import java.security.spec.XECPrivateKeySpec;
+import java.util.function.Function;
+
+public class XDHKeyFactory extends KeyFactorySpi {
+
+ private XECParameters lockedParams = null;
+
+ XDHKeyFactory() {
+ // do nothing
+ }
+
+ protected XDHKeyFactory(AlgorithmParameterSpec paramSpec) {
+ lockedParams = XECParameters.get(ProviderException::new, paramSpec);
+ }
+
+ @Override
+ protected Key engineTranslateKey(Key key) throws InvalidKeyException {
+
+ if (key == null) {
+ throw new InvalidKeyException("Key must not be null");
+ }
+
+ if (key instanceof XECKey) {
+ XECKey xecKey = (XECKey) key;
+ XECParameters params = XECParameters.get(InvalidKeyException::new,
+ xecKey.getParams());
+ checkLockedParams(InvalidKeyException::new, params);
+
+ if (xecKey instanceof XECPublicKey) {
+ XECPublicKey publicKey = (XECPublicKey) xecKey;
+ return new XDHPublicKeyImpl(params, publicKey.getU());
+ } else if (xecKey instanceof XECPrivateKey) {
+ XECPrivateKey privateKey = (XECPrivateKey) xecKey;
+ byte[] scalar = privateKey.getScalar().orElseThrow(
+ () -> new InvalidKeyException("No private key data"));
+ return new XDHPrivateKeyImpl(params, scalar);
+ } else {
+ throw new InvalidKeyException("Unsupported XECKey subclass");
+ }
+ } else if (key instanceof PublicKey &&
+ key.getFormat().equals("X.509")) {
+ XDHPublicKeyImpl result = new XDHPublicKeyImpl(key.getEncoded());
+ checkLockedParams(InvalidKeyException::new, result.getParams());
+ return result;
+ } else if (key instanceof PrivateKey &&
+ key.getFormat().equals("PKCS#8")) {
+ XDHPrivateKeyImpl result = new XDHPrivateKeyImpl(key.getEncoded());
+ checkLockedParams(InvalidKeyException::new, result.getParams());
+ return result;
+ } else {
+ throw new InvalidKeyException("Unsupported key type or format");
+ }
+ }
+
+ private
+ <T extends Throwable>
+ void checkLockedParams(Function<String, T> exception,
+ AlgorithmParameterSpec spec) throws T {
+
+ XECParameters params = XECParameters.get(exception, spec);
+ checkLockedParams(exception, params);
+ }
+
+ private
+ <T extends Throwable>
+ void checkLockedParams(Function<String, T> exception,
+ XECParameters params) throws T {
+
+ if (lockedParams != null && lockedParams != params) {
+ throw exception.apply("Parameters must be " +
+ lockedParams.getName());
+ }
+ }
+
+ @Override
+ protected PublicKey engineGeneratePublic(KeySpec keySpec)
+ throws InvalidKeySpecException {
+
+ try {
+ return generatePublicImpl(keySpec);
+ } catch (InvalidKeyException ex) {
+ throw new InvalidKeySpecException(ex);
+ }
+ }
+
+ @Override
+ protected PrivateKey engineGeneratePrivate(KeySpec keySpec)
+ throws InvalidKeySpecException {
+
+ try {
+ return generatePrivateImpl(keySpec);
+ } catch (InvalidKeyException ex) {
+ throw new InvalidKeySpecException(ex);
+ }
+ }
+
+
+ private PublicKey generatePublicImpl(KeySpec keySpec)
+ throws InvalidKeyException, InvalidKeySpecException {
+
+ if (keySpec instanceof X509EncodedKeySpec) {
+ X509EncodedKeySpec x509Spec = (X509EncodedKeySpec) keySpec;
+ XDHPublicKeyImpl result =
+ new XDHPublicKeyImpl(x509Spec.getEncoded());
+ checkLockedParams(InvalidKeySpecException::new,
+ result.getParams());
+ return result;
+ } else if (keySpec instanceof XECPublicKeySpec) {
+ XECPublicKeySpec publicKeySpec = (XECPublicKeySpec) keySpec;
+ XECParameters params = XECParameters.get(
+ InvalidKeySpecException::new, publicKeySpec.getParams());
+ checkLockedParams(InvalidKeySpecException::new, params);
+ return new XDHPublicKeyImpl(params, publicKeySpec.getU());
+ } else {
+ throw new InvalidKeySpecException(
+ "Only X509EncodedKeySpec and XECPublicKeySpec are supported");
+ }
+ }
+
+ private PrivateKey generatePrivateImpl(KeySpec keySpec)
+ throws InvalidKeyException, InvalidKeySpecException {
+
+ if (keySpec instanceof PKCS8EncodedKeySpec) {
+ PKCS8EncodedKeySpec pkcsSpec = (PKCS8EncodedKeySpec) keySpec;
+ XDHPrivateKeyImpl result =
+ new XDHPrivateKeyImpl(pkcsSpec.getEncoded());
+ checkLockedParams(InvalidKeySpecException::new,
+ result.getParams());
+ return result;
+ } else if (keySpec instanceof XECPrivateKeySpec) {
+ XECPrivateKeySpec privateKeySpec = (XECPrivateKeySpec) keySpec;
+ XECParameters params = XECParameters.get(
+ InvalidKeySpecException::new, privateKeySpec.getParams());
+ checkLockedParams(InvalidKeySpecException::new, params);
+ return new XDHPrivateKeyImpl(params, privateKeySpec.getScalar());
+ } else {
+ throw new InvalidKeySpecException(
+ "Only PKCS8EncodedKeySpec and XECPrivateKeySpec supported");
+ }
+ }
+
+ protected <T extends KeySpec> T engineGetKeySpec(Key key, Class<T> keySpec)
+ throws InvalidKeySpecException {
+
+ if (key instanceof XECPublicKey) {
+ checkLockedParams(InvalidKeySpecException::new,
+ ((XECPublicKey) key).getParams());
+
+ if (X509EncodedKeySpec.class.isAssignableFrom(keySpec)) {
+ if (!key.getFormat().equals("X.509")) {
+ throw new InvalidKeySpecException("Format is not X.509");
+ }
+ return keySpec.cast(new X509EncodedKeySpec(key.getEncoded()));
+ } else if (XECPublicKeySpec.class.isAssignableFrom(keySpec)) {
+ XECPublicKey xecKey = (XECPublicKey) key;
+ return keySpec.cast(
+ new XECPublicKeySpec(xecKey.getParams(), xecKey.getU()));
+ } else {
+ throw new InvalidKeySpecException(
+ "KeySpec must be X509EncodedKeySpec or XECPublicKeySpec");
+ }
+ } else if (key instanceof XECPrivateKey) {
+ checkLockedParams(InvalidKeySpecException::new,
+ ((XECPrivateKey) key).getParams());
+
+ if (PKCS8EncodedKeySpec.class.isAssignableFrom(keySpec)) {
+ if (!key.getFormat().equals("PKCS#8")) {
+ throw new InvalidKeySpecException("Format is not PKCS#8");
+ }
+ return keySpec.cast(new PKCS8EncodedKeySpec(key.getEncoded()));
+ } else if (XECPrivateKeySpec.class.isAssignableFrom(keySpec)) {
+ XECPrivateKey xecKey = (XECPrivateKey) key;
+ byte[] scalar = xecKey.getScalar().orElseThrow(
+ () -> new InvalidKeySpecException("No private key value")
+ );
+ return keySpec.cast(
+ new XECPrivateKeySpec(xecKey.getParams(), scalar));
+ } else {
+ throw new InvalidKeySpecException
+ ("KeySpec must be PKCS8EncodedKeySpec or XECPrivateKeySpec");
+ }
+ } else {
+ throw new InvalidKeySpecException("Unsupported key type");
+ }
+ }
+
+ static class X25519 extends XDHKeyFactory {
+
+ public X25519() {
+ super(NamedParameterSpec.X25519);
+ }
+ }
+
+ static class X448 extends XDHKeyFactory {
+
+ public X448() {
+ super(NamedParameterSpec.X448);
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.crypto.ec/share/classes/sun/security/ec/XDHKeyPairGenerator.java Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,132 @@
+/*
+ * Copyright (c) 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. 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 sun.security.ec;
+
+import java.math.BigInteger;
+import java.security.KeyPairGeneratorSpi;
+import java.security.InvalidKeyException;
+import java.security.InvalidParameterException;
+import java.security.InvalidAlgorithmParameterException;
+import java.security.KeyPair;
+import java.security.ProviderException;
+import java.security.SecureRandom;
+import java.security.spec.AlgorithmParameterSpec;
+import java.security.spec.NamedParameterSpec;
+
+import sun.security.jca.JCAUtil;
+
+/**
+ * Key pair generator for the XDH key agreement algorithm.
+ */
+public class XDHKeyPairGenerator extends KeyPairGeneratorSpi {
+
+ private static final NamedParameterSpec DEFAULT_PARAM_SPEC
+ = NamedParameterSpec.X25519;
+
+ private SecureRandom random = null;
+ private XECOperations ops = null;
+ private XECParameters lockedParams = null;
+
+ XDHKeyPairGenerator() {
+ tryInitialize(DEFAULT_PARAM_SPEC);
+ }
+
+ private XDHKeyPairGenerator(NamedParameterSpec paramSpec) {
+ tryInitialize(paramSpec);
+ lockedParams = ops.getParameters();
+ }
+
+ private void tryInitialize(NamedParameterSpec paramSpec) {
+ try {
+ initialize(paramSpec, null);
+ } catch (InvalidAlgorithmParameterException ex) {
+ String name = paramSpec.getName();
+ throw new ProviderException(name + " not supported");
+ }
+ }
+
+ @Override
+ public void initialize(int keySize, SecureRandom random) {
+
+ XECParameters params = XECParameters.getBySize(
+ InvalidParameterException::new, keySize);
+
+ initializeImpl(params, random);
+ }
+
+ @Override
+ public void initialize(AlgorithmParameterSpec params, SecureRandom random)
+ throws InvalidAlgorithmParameterException {
+
+ XECParameters xecParams = XECParameters.get(
+ InvalidAlgorithmParameterException::new, params);
+
+ initializeImpl(xecParams, random);
+ }
+
+ private void initializeImpl(XECParameters params, SecureRandom random) {
+
+ if (lockedParams != null && lockedParams != params) {
+ throw new InvalidParameterException("Parameters must be " +
+ lockedParams.getName());
+ }
+
+ this.ops = new XECOperations(params);
+ this.random = random == null ? JCAUtil.getSecureRandom() : random;
+ }
+
+
+ @Override
+ public KeyPair generateKeyPair() {
+
+ byte[] privateKey = ops.generatePrivate(random);
+ // computePublic may modify the private key, so clone it first
+ BigInteger publicKey = ops.computePublic(privateKey.clone());
+
+ try {
+ return new KeyPair(
+ new XDHPublicKeyImpl(ops.getParameters(), publicKey),
+ new XDHPrivateKeyImpl(ops.getParameters(), privateKey)
+ );
+ } catch (InvalidKeyException ex) {
+ throw new ProviderException(ex);
+ }
+ }
+
+ static class X25519 extends XDHKeyPairGenerator {
+
+ public X25519() {
+ super(NamedParameterSpec.X25519);
+ }
+ }
+
+ static class X448 extends XDHKeyPairGenerator {
+
+ public X448() {
+ super(NamedParameterSpec.X448);
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.crypto.ec/share/classes/sun/security/ec/XDHPrivateKeyImpl.java Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 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. 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 sun.security.ec;
+
+import java.security.interfaces.XECPrivateKey;
+import java.util.Optional;
+import java.security.InvalidKeyException;
+import java.security.PrivateKey;
+import java.security.spec.AlgorithmParameterSpec;
+import java.security.spec.NamedParameterSpec;
+
+import sun.security.pkcs.PKCS8Key;
+import sun.security.x509.AlgorithmId;
+
+public final class XDHPrivateKeyImpl extends PKCS8Key implements XECPrivateKey {
+
+ private static final long serialVersionUID = 1L;
+
+ private AlgorithmParameterSpec paramSpec;
+
+ XDHPrivateKeyImpl(XECParameters params, byte[] k)
+ throws InvalidKeyException {
+
+ this.paramSpec = new NamedParameterSpec(params.getName());
+ this.algid = new AlgorithmId(params.getOid());
+ this.key = k.clone();
+
+ checkLength(params);
+ }
+
+ XDHPrivateKeyImpl(byte[] encoded) throws InvalidKeyException {
+
+ decode(encoded);
+ XECParameters params = XECParameters.get(
+ InvalidKeyException::new, algid);
+ paramSpec = new NamedParameterSpec(params.getName());
+
+ checkLength(params);
+ }
+
+ void checkLength(XECParameters params) throws InvalidKeyException {
+
+ if (params.getBytes() != this.key.length) {
+ throw new InvalidKeyException(
+ "key length must be " + params.getBytes());
+ }
+ }
+
+ public byte[] getK() {
+ return key.clone();
+ }
+
+ @Override
+ public String getAlgorithm() {
+ return "XDH";
+ }
+
+ @Override
+ public AlgorithmParameterSpec getParams() {
+ return paramSpec;
+ }
+
+ @Override
+ public Optional<byte[]> getScalar() {
+ return Optional.of(getK());
+ }
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.crypto.ec/share/classes/sun/security/ec/XDHPublicKeyImpl.java Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,134 @@
+/*
+ * Copyright (c) 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. 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 sun.security.ec;
+
+import java.math.BigInteger;
+import java.security.InvalidKeyException;
+import java.security.KeyRep;
+import java.security.PublicKey;
+import java.security.interfaces.XECPublicKey;
+import java.security.spec.AlgorithmParameterSpec;
+import java.security.spec.NamedParameterSpec;
+import java.util.Arrays;
+
+import sun.security.util.BitArray;
+import sun.security.x509.AlgorithmId;
+import sun.security.x509.X509Key;
+
+public final class XDHPublicKeyImpl extends X509Key implements XECPublicKey {
+
+ private static final long serialVersionUID = 1L;
+
+ private final BigInteger u;
+ private final NamedParameterSpec paramSpec;
+
+ XDHPublicKeyImpl(XECParameters params, BigInteger u)
+ throws InvalidKeyException {
+
+ this.paramSpec = new NamedParameterSpec(params.getName());
+ this.algid = new AlgorithmId(params.getOid());
+ this.u = u.mod(params.getP());
+
+ byte[] u_arr = this.u.toByteArray();
+ reverse(u_arr);
+ // u_arr may be too large or too small, depending on the value of u
+ u_arr = Arrays.copyOf(u_arr, params.getBytes());
+
+ setKey(new BitArray(u_arr.length * 8, u_arr));
+
+ checkLength(params);
+ }
+
+ XDHPublicKeyImpl(byte[] encoded) throws InvalidKeyException {
+ decode(encoded);
+
+ XECParameters params =
+ XECParameters.get(InvalidKeyException::new, algid);
+ this.paramSpec = new NamedParameterSpec(params.getName());
+ // construct the BigInteger representation
+ byte[] u_arr = getKey().toByteArray();
+ reverse(u_arr);
+
+ // clear the extra bits
+ int bitsMod8 = params.getBits() % 8;
+ if (bitsMod8 != 0) {
+ int mask = (1 << bitsMod8) - 1;
+ u_arr[0] &= mask;
+ }
+
+ this.u = new BigInteger(1, u_arr);
+
+ checkLength(params);
+ }
+
+ void checkLength(XECParameters params) throws InvalidKeyException {
+
+ if (params.getBytes() * 8 != getKey().length()) {
+ throw new InvalidKeyException(
+ "key length must be " + params.getBytes());
+ }
+ }
+
+ @Override
+ public BigInteger getU() {
+ return u;
+ }
+
+ @Override
+ public AlgorithmParameterSpec getParams() {
+ return paramSpec;
+ }
+
+ @Override
+ public String getAlgorithm() {
+ return "XDH";
+ }
+
+ protected Object writeReplace() throws java.io.ObjectStreamException {
+ return new KeyRep(KeyRep.Type.PUBLIC,
+ getAlgorithm(),
+ getFormat(),
+ getEncoded());
+ }
+
+ private static void swap(byte[] arr, int i, int j) {
+ byte tmp = arr[i];
+ arr[i] = arr[j];
+ arr[j] = tmp;
+ }
+
+ private static void reverse(byte [] arr) {
+ int i = 0;
+ int j = arr.length - 1;
+
+ while (i < j) {
+ swap(arr, i, j);
+ i++;
+ j--;
+ }
+ }
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.crypto.ec/share/classes/sun/security/ec/XECOperations.java Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,271 @@
+/*
+ * Copyright (c) 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. 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 sun.security.ec;
+
+import sun.security.util.math.IntegerFieldModuloP;
+import sun.security.util.math.ImmutableIntegerModuloP;
+import sun.security.util.math.IntegerModuloP;
+import sun.security.util.math.MutableIntegerModuloP;
+import sun.security.util.math.SmallValue;
+import sun.security.util.math.intpoly.IntegerPolynomial25519;
+import sun.security.util.math.intpoly.IntegerPolynomial448;
+
+import java.math.BigInteger;
+import java.security.ProviderException;
+import java.security.SecureRandom;
+
+public class XECOperations {
+
+ private final XECParameters params;
+ private final IntegerFieldModuloP field;
+ private final ImmutableIntegerModuloP zero;
+ private final ImmutableIntegerModuloP one;
+ private final SmallValue a24;
+ private final ImmutableIntegerModuloP basePoint;
+
+ public XECOperations(XECParameters c) {
+ this.params = c;
+
+ BigInteger p = params.getP();
+ this.field = getIntegerFieldModulo(p);
+ this.zero = field.getElement(BigInteger.ZERO).fixed();
+ this.one = field.get1().fixed();
+ this.a24 = field.getSmallValue(params.getA24());
+ this.basePoint = field.getElement(
+ BigInteger.valueOf(c.getBasePoint()));
+ }
+
+ public XECParameters getParameters() {
+ return params;
+ }
+
+ public byte[] generatePrivate(SecureRandom random) {
+ byte[] result = new byte[this.params.getBytes()];
+ random.nextBytes(result);
+ return result;
+ }
+
+ /**
+ * Compute a public key from an encoded private key. This method will
+ * modify the supplied array in order to prune it.
+ */
+ public BigInteger computePublic(byte[] k) {
+ pruneK(k);
+ return pointMultiply(k, this.basePoint).asBigInteger();
+ }
+
+ /**
+ *
+ * Multiply an encoded scalar with a point as a BigInteger and return an
+ * encoded point. The array k holding the scalar will be pruned by
+ * modifying it in place.
+ *
+ * @param k an encoded scalar
+ * @param u the u-coordinate of a point as a BigInteger
+ * @return the encoded product
+ */
+ public byte[] encodedPointMultiply(byte[] k, BigInteger u) {
+ pruneK(k);
+ ImmutableIntegerModuloP elemU = field.getElement(u);
+ return pointMultiply(k, elemU).asByteArray(params.getBytes());
+ }
+
+ /**
+ *
+ * Multiply an encoded scalar with an encoded point and return an encoded
+ * point. The array k holding the scalar will be pruned by
+ * modifying it in place.
+ *
+ * @param k an encoded scalar
+ * @param u an encoded point
+ * @return the encoded product
+ */
+ public byte[] encodedPointMultiply(byte[] k, byte[] u) {
+ pruneK(k);
+ ImmutableIntegerModuloP elemU = decodeU(u);
+ return pointMultiply(k, elemU).asByteArray(params.getBytes());
+ }
+
+ /**
+ * Return the field element corresponding to an encoded u-coordinate.
+ * This method prunes u by modifying it in place.
+ *
+ * @param u
+ * @param bits
+ * @return
+ */
+ private ImmutableIntegerModuloP decodeU(byte[] u, int bits) {
+
+ maskHighOrder(u, bits);
+
+ return field.getElement(u);
+ }
+
+ /**
+ * Mask off the high order bits of an encoded integer in an array. The
+ * array is modified in place.
+ *
+ * @param arr an array containing an encoded integer
+ * @param bits the number of bits to keep
+ * @return the number, in range [1,8], of bits kept in the highest byte
+ */
+ private static byte maskHighOrder(byte[] arr, int bits) {
+
+ int lastByteIndex = arr.length - 1;
+ byte bitsMod8 = (byte) (bits % 8);
+ byte highBits = bitsMod8 == 0 ? 8 : bitsMod8;
+ byte msbMaskOff = (byte) ((1 << highBits) - 1);
+ arr[lastByteIndex] &= msbMaskOff;
+
+ return highBits;
+ }
+
+ /**
+ * Prune an encoded scalar value by modifying it in place. The extra
+ * high-order bits are masked off, the highest valid bit it set, and the
+ * number is rounded down to a multiple of the cofactor.
+ *
+ * @param k an encoded scalar value
+ * @param bits the number of bits in the scalar
+ * @param logCofactor the base-2 logarithm of the cofactor
+ */
+ private static void pruneK(byte[] k, int bits, int logCofactor) {
+
+ int lastByteIndex = k.length - 1;
+
+ // mask off unused high-order bits
+ byte highBits = maskHighOrder(k, bits);
+
+ // set the highest bit
+ byte msbMaskOn = (byte) (1 << (highBits - 1));
+ k[lastByteIndex] |= msbMaskOn;
+
+ // round down to a multiple of the cofactor
+ byte lsbMaskOff = (byte) (0xFF << logCofactor);
+ k[0] &= lsbMaskOff;
+ }
+
+ private void pruneK(byte[] k) {
+ pruneK(k, params.getBits(), params.getLogCofactor());
+ }
+
+ private ImmutableIntegerModuloP decodeU(byte [] u) {
+ return decodeU(u, params.getBits());
+ }
+
+ // Constant-time conditional swap
+ private static void cswap(int swap, MutableIntegerModuloP x1,
+ MutableIntegerModuloP x2) {
+
+ x1.conditionalSwapWith(x2, swap);
+ }
+
+ private static IntegerFieldModuloP getIntegerFieldModulo(BigInteger p) {
+
+ if (p.equals(IntegerPolynomial25519.MODULUS)) {
+ return new IntegerPolynomial25519();
+ }
+ else if (p.equals(IntegerPolynomial448.MODULUS)) {
+ return new IntegerPolynomial448();
+ }
+
+ throw new ProviderException("Unsupported prime: " + p.toString());
+ }
+
+ private int bitAt(byte[] arr, int index) {
+ int byteIndex = index / 8;
+ int bitIndex = index % 8;
+ return (arr[byteIndex] & (1 << bitIndex)) >> bitIndex;
+ }
+
+ /*
+ * Constant-time Montgomery ladder that computes k*u and returns the
+ * result as a field element.
+ */
+ private IntegerModuloP pointMultiply(byte[] k,
+ ImmutableIntegerModuloP u) {
+
+ ImmutableIntegerModuloP x_1 = u;
+ MutableIntegerModuloP x_2 = this.one.mutable();
+ MutableIntegerModuloP z_2 = this.zero.mutable();
+ MutableIntegerModuloP x_3 = u.mutable();
+ MutableIntegerModuloP z_3 = this.one.mutable();
+ int swap = 0;
+
+ // Variables below are reused to avoid unnecessary allocation
+ // They will be assigned in the loop, so initial value doesn't matter
+ MutableIntegerModuloP m1 = this.zero.mutable();
+ MutableIntegerModuloP DA = this.zero.mutable();
+ MutableIntegerModuloP E = this.zero.mutable();
+ MutableIntegerModuloP a24_times_E = this.zero.mutable();
+
+ // Comments describe the equivalent operations from RFC 7748
+ // In comments, A(m1) means the variable m1 holds the value A
+ for (int t = params.getBits() - 1; t >= 0; t--) {
+ int k_t = bitAt(k, t);
+ swap = swap ^ k_t;
+ cswap(swap, x_2, x_3);
+ cswap(swap, z_2, z_3);
+ swap = k_t;
+
+ // A(m1) = x_2 + z_2
+ m1.setValue(x_2).setSum(z_2);
+ // D = x_3 - z_3
+ // DA = D * A(m1)
+ DA.setValue(x_3).setDifference(z_3).setProduct(m1);
+ // AA(m1) = A(m1)^2
+ m1.setSquare();
+ // B(x_2) = x_2 - z_2
+ x_2.setDifference(z_2);
+ // C = x_3 + z_3
+ // CB(x_3) = C * B(x_2)
+ x_3.setSum(z_3).setProduct(x_2);
+ // BB(x_2) = B^2
+ x_2.setSquare();
+ // E = AA(m1) - BB(x_2)
+ E.setValue(m1).setDifference(x_2);
+ // compute a24 * E using SmallValue
+ a24_times_E.setValue(E);
+ a24_times_E.setProduct(this.a24);
+
+ // assign results to x_3, z_3, x_2, z_2
+ // x_2 = AA(m1) * BB
+ x_2.setProduct(m1);
+ // z_2 = E * (AA(m1) + a24 * E)
+ z_2.setValue(m1).setSum(a24_times_E).setProduct(E);
+ // z_3 = x_1*(DA - CB(x_3))^2
+ z_3.setValue(DA).setDifference(x_3).setSquare().setProduct(x_1);
+ // x_3 = (CB(x_3) + DA)^2
+ x_3.setSum(DA).setSquare();
+ }
+
+ cswap(swap, x_2, x_3);
+ cswap(swap, z_2, z_3);
+
+ // return (x_2 * z_2^(p - 2))
+ return x_2.setProduct(z_2.multiplicativeInverse());
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.crypto.ec/share/classes/sun/security/ec/XECParameters.java Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,263 @@
+/*
+ * Copyright (c) 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. 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 sun.security.ec;
+
+import java.io.IOException;
+import java.math.BigInteger;
+import java.security.spec.AlgorithmParameterSpec;
+import java.security.spec.NamedParameterSpec;
+import java.util.Collections;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.Optional;
+import java.util.function.Function;
+import java.util.function.Supplier;
+
+import sun.security.util.ObjectIdentifier;
+import sun.security.x509.AlgorithmId;
+
+public class XECParameters {
+
+ // Naming/identification parameters
+ private final ObjectIdentifier oid;
+ private final String name;
+
+ // Curve/field parameters
+ private final int bits;
+ private final BigInteger p;
+ private final int logCofactor;
+ private final int a24;
+ private final byte basePoint;
+
+ /**
+ *
+ * Construct an object holding the supplied parameters. No parameters are
+ * checked, so this method always succeeds. This method supports
+ * Montgomery curves of the form y^2 = x^3 + ax^2 + x.
+ *
+ * @param bits The number of relevant bits in a public/private key.
+ * @param p The prime that defines the finite field.
+ * @param a24 The value of (a - 2) / 4, where a is the second-degree curve
+ * coefficient.
+ * @param basePoint The point that generates the desired group
+ * @param logCofactor The base-2 logarithm of the cofactor of the curve
+ * @param oid
+ * @param name
+ */
+ public XECParameters(int bits, BigInteger p, int a24,
+ byte basePoint, int logCofactor,
+ ObjectIdentifier oid, String name) {
+
+ this.bits = bits;
+ this.logCofactor = logCofactor;
+ this.p = p;
+ this.a24 = a24;
+ this.basePoint = basePoint;
+ this.oid = oid;
+ this.name = name;
+
+ }
+
+ public int getBits() {
+ return bits;
+ }
+ public int getBytes() {
+ return (bits + 7) / 8;
+ }
+ public int getLogCofactor() {
+ return logCofactor;
+ }
+ public BigInteger getP() {
+ return p;
+ }
+ public int getA24() {
+ return a24;
+ }
+ public byte getBasePoint() {
+ return basePoint;
+ }
+ public ObjectIdentifier getOid() {
+ return oid;
+ }
+ public String getName() {
+ return name;
+ }
+
+ private static final Map<Integer, XECParameters> SIZE_MAP;
+ private static final Map<ObjectIdentifier, XECParameters> OID_MAP;
+ private static final Map<String, XECParameters> NAME_MAP;
+
+ static {
+ final BigInteger TWO = BigInteger.valueOf(2);
+
+ Map<Integer, XECParameters> bySize = new HashMap<>();
+ Map<ObjectIdentifier, XECParameters> byOid = new HashMap<>();
+ Map<String, XECParameters> byName = new HashMap<>();
+
+ // set up X25519
+ try {
+ BigInteger p = TWO.pow(255).subtract(BigInteger.valueOf(19));
+ addParameters(255, p, 121665, (byte) 0x09, 3,
+ new int[]{1, 3, 101, 110}, NamedParameterSpec.X25519.getName(),
+ bySize, byOid, byName);
+
+ } catch (IOException ex) {
+ // Unable to set X25519 parameters---it will be disabled
+ }
+
+ // set up X448
+ try {
+ BigInteger p = TWO.pow(448).subtract(TWO.pow(224))
+ .subtract(BigInteger.ONE);
+ addParameters(448, p, 39081, (byte) 0x05, 2,
+ new int[]{1, 3, 101, 111}, NamedParameterSpec.X448.getName(),
+ bySize, byOid, byName);
+
+ } catch (IOException ex) {
+ // Unable to set X448 parameters---it will be disabled
+ }
+
+ SIZE_MAP = Collections.unmodifiableMap(bySize);
+ OID_MAP = Collections.unmodifiableMap(byOid);
+ NAME_MAP = Collections.unmodifiableMap(byName);
+ }
+
+ private static void addParameters(int bits, BigInteger p, int a24,
+ byte basePoint, int logCofactor, int[] oidBytes, String name,
+ Map<Integer, XECParameters> bySize,
+ Map<ObjectIdentifier, XECParameters> byOid,
+ Map<String, XECParameters> byName) throws IOException {
+
+ ObjectIdentifier oid = new ObjectIdentifier(oidBytes);
+ XECParameters params =
+ new XECParameters(bits, p, a24, basePoint, logCofactor, oid, name);
+ bySize.put(bits, params);
+ byOid.put(oid, params);
+ byName.put(name, params);
+ }
+
+ public static Optional<XECParameters> getByOid(ObjectIdentifier id) {
+ return Optional.ofNullable(OID_MAP.get(id));
+ }
+ public static Optional<XECParameters> getBySize(int size) {
+ return Optional.ofNullable(SIZE_MAP.get(size));
+ }
+ public static Optional<XECParameters> getByName(String name) {
+ return Optional.ofNullable(NAME_MAP.get(name));
+ }
+
+ boolean oidEquals(XECParameters other) {
+ return oid.equals(other.getOid());
+ }
+
+ // Utility method that is used by the methods below to handle exception
+ // suppliers
+ private static
+ <A, B> Supplier<B> apply(final Function<A, B> func, final A a) {
+ return new Supplier<B>() {
+ @Override
+ public B get() {
+ return func.apply(a);
+ }
+ };
+ }
+
+ /**
+ * Get parameters by key size, or throw an exception if no parameters are
+ * defined for the specified key size. This method is used in several
+ * contexts that should throw different exceptions when the parameters
+ * are not found. The first argument is a function that produces the
+ * desired exception.
+ *
+ * @param exception a function that produces an exception from a string
+ * @param size the desired key size
+ * @param <T> the type of exception that is thrown
+ * @return the parameters for the specified key size
+ * @throws T when suitable parameters do not exist
+ */
+ public static
+ <T extends Throwable>
+ XECParameters getBySize(Function<String, T> exception,
+ int size) throws T {
+
+ Optional<XECParameters> xecParams = getBySize(size);
+ return xecParams.orElseThrow(
+ apply(exception, "Unsupported size: " + size));
+ }
+
+ /**
+ * Get parameters by algorithm ID, or throw an exception if no
+ * parameters are defined for the specified ID. This method is used in
+ * several contexts that should throw different exceptions when the
+ * parameters are not found. The first argument is a function that produces
+ * the desired exception.
+ *
+ * @param exception a function that produces an exception from a string
+ * @param algId the algorithm ID
+ * @param <T> the type of exception that is thrown
+ * @return the parameters for the specified algorithm ID
+ * @throws T when suitable parameters do not exist
+ */
+ public static
+ <T extends Throwable>
+ XECParameters get(Function<String, T> exception,
+ AlgorithmId algId) throws T {
+
+ Optional<XECParameters> xecParams = getByOid(algId.getOID());
+ return xecParams.orElseThrow(
+ apply(exception, "Unsupported OID: " + algId.getOID()));
+ }
+
+ /**
+ * Get parameters by algorithm parameter spec, or throw an exception if no
+ * parameters are defined for the spec. This method is used in
+ * several contexts that should throw different exceptions when the
+ * parameters are not found. The first argument is a function that produces
+ * the desired exception.
+ *
+ * @param exception a function that produces an exception from a string
+ * @param params the algorithm parameters spec
+ * @param <T> the type of exception that is thrown
+ * @return the parameters for the spec
+ * @throws T when suitable parameters do not exist
+ */
+ public static
+ <T extends Throwable>
+ XECParameters get(Function<String, T> exception,
+ AlgorithmParameterSpec params) throws T {
+
+ if (params instanceof NamedParameterSpec) {
+ NamedParameterSpec namedParams = (NamedParameterSpec) params;
+ Optional<XECParameters> xecParams =
+ getByName(namedParams.getName());
+ return xecParams.orElseThrow(
+ apply(exception, "Unsupported name: " + namedParams.getName()));
+ } else {
+ throw exception.apply("Only NamedParameterSpec is supported.");
+ }
+ }
+}
+
--- a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHGenSecretKey.java Tue May 08 09:21:51 2018 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2005, 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.
- */
-
-/*
- * @test
- * @bug 4936763
- * @summary Verify that DHKeyAgreement can generate secret key
- * objects for AES algorithm
- * @author Valerie Peng
- * @run main/othervm -Djdk.crypto.KeyAgreement.legacyKDF=true DHGenSecretKey
- */
-import java.security.*;
-import java.security.interfaces.*;
-import javax.crypto.*;
-
-public class DHGenSecretKey {
-
- public static void main(String[] args) throws Exception {
- DHGenSecretKey test = new DHGenSecretKey();
- test.run();
- }
-
- public void run() throws Exception {
- // generate keyPairs using parameters
- KeyPairGenerator keyGen =
- KeyPairGenerator.getInstance("DH", "SunJCE");
-
- // Alice generates her key pairs
- KeyPair keyA = keyGen.generateKeyPair();
-
- // Bob generates his key pairs
- KeyPair keyB = keyGen.generateKeyPair();
-
- KeyAgreement bobAlice = KeyAgreement.getInstance("DH", "SunJCE");
- bobAlice.init(keyB.getPrivate());
- bobAlice.doPhase(keyA.getPublic(), true);
- byte[] keyMaterial = bobAlice.generateSecret();
-
- bobAlice.doPhase(keyA.getPublic(), true);
- SecretKey skey = bobAlice.generateSecret("AES");
- byte[] keyVal = skey.getEncoded();
-
- System.out.println("Generated " + keyVal.length*8 +
- "-bit AES key");
- for (int i = 0; i < keyVal.length; i++) {
- if (keyVal[i] != keyMaterial[i]) {
- throw new Exception("Error: key value comparison failed!");
- }
- }
- System.out.println("Test Passed");
- }
-}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/security/KeyAgreement/KeyAgreementTest.java Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,154 @@
+/*
+ * Copyright (c) 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.
+ */
+
+ /*
+ * @test
+ * @bug 4936763 8184359
+ * @summary KeyAgreement Test with all supported algorithms from JCE.
+ * Arguments order <KeyExchangeAlgorithm> <KeyGenAlgorithm> <Provider>
+ * It removes com/sun/crypto/provider/KeyAgreement/DHGenSecretKey.java
+ * as the same functionality for DiffieHellman is covered along with
+ * this test file was covered before with JDK-4936763.
+ * @run main/othervm -Djdk.crypto.KeyAgreement.legacyKDF=true KeyAgreementTest
+ * DiffieHellman DH SunJCE
+ * @run main KeyAgreementTest ECDH EC SunEC
+ * @run main KeyAgreementTest XDH XDH SunEC
+ */
+import java.security.KeyPair;
+import java.security.KeyPairGenerator;
+import java.security.spec.NamedParameterSpec;
+import java.security.spec.AlgorithmParameterSpec;
+import java.security.spec.ECGenParameterSpec;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import javax.crypto.KeyAgreement;
+import javax.crypto.spec.DHGenParameterSpec;
+
+public class KeyAgreementTest {
+
+ public static void main(String[] args) throws Exception {
+
+ String kaAlgo = args[0];
+ String kpgAlgo = args[1];
+ String provider = args[2];
+ AlgoSpec aSpec = AlgoSpec.valueOf(AlgoSpec.class, kaAlgo);
+ List<AlgorithmParameterSpec> specs = aSpec.getAlgorithmParameterSpecs();
+ for (AlgorithmParameterSpec spec : specs) {
+ testKeyAgreement(provider, kaAlgo, kpgAlgo, spec);
+ }
+ }
+
+ /**
+ * Generate AlgorithmParameterSpec using all possible supported curve for
+ * KeyExchangeAlgorithm.
+ */
+ private enum AlgoSpec {
+ // EC curve supported for KeyGeneration can found between intersection
+ // of curves define in
+ // "java.base/share/classes/sun/security/util/CurveDB.java"
+ // and
+ // "jdk.crypto.ec/share/native/libsunec/impl/ecdecode.c"
+ ECDH(
+ // SEC2 prime curves
+ "secp112r1", "secp112r2", "secp128r1", "secp128r2", "secp160k1",
+ "secp160r1", "secp192k1", "secp192r1", "secp224k1", "secp224r1",
+ "secp256k1", "secp256r1", "secp384r1", "secp521r1",
+ // ANSI X9.62 prime curves
+ "X9.62 prime192v2", "X9.62 prime192v3", "X9.62 prime239v1",
+ "X9.62 prime239v2", "X9.62 prime239v3",
+ // SEC2 binary curves
+ "sect113r1", "sect113r2", "sect131r1", "sect131r2", "sect163k1",
+ "sect163r1", "sect163r2", "sect193r1", "sect193r2", "sect233k1",
+ "sect233r1", "sect239k1", "sect283k1", "sect283r1", "sect409k1",
+ "sect409r1", "sect571k1", "sect571r1",
+ // ANSI X9.62 binary curves
+ "X9.62 c2tnb191v1", "X9.62 c2tnb191v2", "X9.62 c2tnb191v3",
+ "X9.62 c2tnb239v1", "X9.62 c2tnb239v2", "X9.62 c2tnb239v3",
+ "X9.62 c2tnb359v1", "X9.62 c2tnb431r1"
+ ),
+ XDH("X25519", "X448"),
+ // There is no curve for DiffieHellman
+ DiffieHellman(new String[]{});
+
+ private final List<AlgorithmParameterSpec> specs = new ArrayList<>();
+
+ private AlgoSpec(String... curves) {
+ // Generate AlgorithmParameterSpec for each KeyExchangeAlgorithm
+ for (String crv : curves) {
+ switch (this.name()) {
+ case "ECDH":
+ specs.add(new ECGenParameterSpec(crv));
+ break;
+ case "XDH":
+ specs.add(new NamedParameterSpec(crv));
+ break;
+ case "DiffieHellman":
+ specs.add(new DHGenParameterSpec(512, 64));
+ break;
+ default:
+ throw new RuntimeException("Invalid Algo name "
+ + this.name());
+ }
+ }
+ }
+
+ public List<AlgorithmParameterSpec> getAlgorithmParameterSpecs() {
+ return this.specs;
+ }
+ }
+
+ /**
+ * Perform KeyAgreement operation using native as well as JCE provider.
+ */
+ private static void testKeyAgreement(String provider, String kaAlgo,
+ String kpgAlgo, AlgorithmParameterSpec spec) throws Exception {
+
+ KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgo, provider);
+ kpg.initialize(spec);
+ KeyPair kp1 = kpg.generateKeyPair();
+ KeyPair kp2 = kpg.generateKeyPair();
+
+ // Uses KeyAgreement based on Provider search order.
+ KeyAgreement ka1 = KeyAgreement.getInstance(kaAlgo);
+ ka1.init(kp1.getPrivate());
+ ka1.doPhase(kp2.getPublic(), true);
+ byte[] secret1 = ka1.generateSecret();
+
+ // Uses SunJCE provider
+ KeyAgreement ka2 = KeyAgreement.getInstance(kaAlgo, provider);
+ ka2.init(kp2.getPrivate());
+ ka2.doPhase(kp1.getPublic(), true);
+ // Keeping the legacy generateSecret method for DiffieHellman as it was
+ // defined in removed Test file from JDK-4936763,
+ // com/sun/crypto/provider/KeyAgreement/DHGenSecretKey.java.
+ byte[] secret2 = "DiffieHellman".equals(kaAlgo)
+ ? ka2.generateSecret("AES").getEncoded() : ka2.generateSecret();
+
+ // With related keypairs, each provider should generate same
+ // KeyAgreement secret.
+ if (!Arrays.equals(secret1, secret2)) {
+ throw new Exception("KeyAgreement secret mismatch.");
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/security/KeyAgreement/KeySizeTest.java Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,238 @@
+/*
+ * Copyright (c) 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.
+ */
+
+ /*
+ * @test
+ * @bug 8184359
+ * @summary KeyLength support test for DiffieHellman, EC, XDH.
+ * Arguments order <KeyExchangeAlgorithm> <Provider> <KeyGenAlgorithm> <keyLen>
+ * @library /test/lib
+ * @build jdk.test.lib.Convert
+ * @run main KeySizeTest DiffieHellman SunJCE DiffieHellman 512
+ * @run main KeySizeTest DiffieHellman SunJCE DiffieHellman 768
+ * @run main KeySizeTest DiffieHellman SunJCE DiffieHellman 832
+ * @run main KeySizeTest DiffieHellman SunJCE DiffieHellman 1024
+ * @run main KeySizeTest DiffieHellman SunJCE DiffieHellman 2048
+ * @run main KeySizeTest DiffieHellman SunJCE DiffieHellman 3072
+ * @run main KeySizeTest DiffieHellman SunJCE DiffieHellman 4096
+ * @run main KeySizeTest DiffieHellman SunJCE DiffieHellman 6144
+ * @run main KeySizeTest DiffieHellman SunJCE DiffieHellman 8192
+ * @run main KeySizeTest ECDH SunEC EC 128
+ * @run main KeySizeTest ECDH SunEC EC 192
+ * @run main KeySizeTest ECDH SunEC EC 256
+ * @run main KeySizeTest XDH SunEC XDH 255
+ * @run main KeySizeTest XDH SunEC XDH 448
+ */
+import java.math.BigInteger;
+import java.security.KeyFactory;
+import java.security.KeyPair;
+import java.security.KeyPairGenerator;
+import java.security.interfaces.ECPrivateKey;
+import java.security.interfaces.ECPublicKey;
+import java.security.interfaces.XECPrivateKey;
+import java.security.interfaces.XECPublicKey;
+import java.security.spec.PKCS8EncodedKeySpec;
+import java.security.spec.X509EncodedKeySpec;
+import java.security.spec.NamedParameterSpec;
+import java.util.Arrays;
+import javax.crypto.KeyAgreement;
+import javax.crypto.interfaces.DHPrivateKey;
+import javax.crypto.interfaces.DHPublicKey;
+import jdk.test.lib.Convert;
+
+public class KeySizeTest {
+
+ public static void main(String[] args) throws Exception {
+
+ String kaAlgo = args[0];
+ String provider = args[1];
+ String kpgAlgo = args[2];
+ int keySize = Integer.parseInt(args[3]);
+ testKeyAgreement(provider, kaAlgo, kpgAlgo, keySize);
+ }
+
+ /**
+ * Perform KeyAgreement operation.
+ */
+ private static void testKeyAgreement(String provider, String kaAlgo,
+ String kpgAlgo, int keySize) throws Exception {
+
+ KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgo, provider);
+ kpg.initialize(keySize);
+ KeyPair kp = kpg.generateKeyPair();
+ // Test standard Key attributes.
+ testKeyAttributes(provider, kpgAlgo, kp, keySize);
+ // Test KeyAgreement.
+ KeyAgreement ka = KeyAgreement.getInstance(kaAlgo, provider);
+ ka.init(kp.getPrivate());
+ ka.doPhase(kp.getPublic(), true);
+ ka.generateSecret();
+ }
+
+ /**
+ * Test standard Key attributes.
+ */
+ private static void testKeyAttributes(String provider, String kpgAlgo,
+ KeyPair kp, int keySize) throws Exception {
+
+ KeyFactory kf = KeyFactory.getInstance(kpgAlgo, provider);
+ switch (kpgAlgo) {
+ case "DiffieHellman":
+ // Verify PrivateKey attributes.
+ DHPrivateKey dhPri = (DHPrivateKey) kp.getPrivate();
+ BigInteger p = dhPri.getParams().getP();
+ if (p.bitLength() != keySize) {
+ throw new Exception(String.format("Invalid modulus size: "
+ + "%s/%s", p.bitLength(), keySize));
+ }
+ if (!p.isProbablePrime(128)) {
+ throw new Exception("The modulus is composite!");
+ }
+ PKCS8EncodedKeySpec dhPriSpec
+ = new PKCS8EncodedKeySpec(dhPri.getEncoded());
+ DHPrivateKey dhPriDecod
+ = (DHPrivateKey) kf.generatePrivate(dhPriSpec);
+ equals(dhPri.getX(), dhPriDecod.getX());
+ equals(dhPri.getFormat(), dhPriDecod.getFormat());
+ equals(dhPri.getEncoded(), dhPriDecod.getEncoded());
+ equals(dhPri.getParams().getG(), dhPriDecod.getParams().getG());
+ equals(dhPri.getParams().getL(), dhPriDecod.getParams().getL());
+ equals(dhPri.getParams().getP(), dhPriDecod.getParams().getP());
+
+ // Verify PublicKey attributes.
+ DHPublicKey dhPub = (DHPublicKey) kp.getPublic();
+ p = dhPub.getParams().getP();
+ if (p.bitLength() != keySize) {
+ throw new Exception(String.format("Invalid modulus size: "
+ + "%s/%s", p.bitLength(), keySize));
+ }
+ X509EncodedKeySpec dhPubSpec
+ = new X509EncodedKeySpec(dhPub.getEncoded());
+ DHPublicKey dhPubDecod
+ = (DHPublicKey) kf.generatePublic(dhPubSpec);
+ equals(dhPub.getY(), dhPubDecod.getY());
+ equals(dhPub.getFormat(), dhPubDecod.getFormat());
+ equals(dhPub.getEncoded(), dhPubDecod.getEncoded());
+ equals(dhPub.getParams().getG(), dhPubDecod.getParams().getG());
+ equals(dhPub.getParams().getL(), dhPubDecod.getParams().getL());
+ equals(dhPub.getParams().getP(), dhPubDecod.getParams().getP());
+
+ BigInteger left = BigInteger.ONE;
+ BigInteger right = p.subtract(BigInteger.ONE);
+ BigInteger x = dhPri.getX();
+ if ((x.compareTo(left) <= 0) || (x.compareTo(right) >= 0)) {
+ throw new Exception(
+ "X outside range [2, p - 2]: x: " + x + " p: " + p);
+ }
+ BigInteger y = dhPub.getY();
+ if ((y.compareTo(left) <= 0) || (y.compareTo(right) >= 0)) {
+ throw new Exception(
+ "Y outside range [2, p - 2]: x: " + x + " p: " + p);
+ }
+ break;
+ case "EC":
+ // Verify PrivateKey attributes.
+ ECPrivateKey ecPriv = (ECPrivateKey) kp.getPrivate();
+ PKCS8EncodedKeySpec ecPriSpec
+ = new PKCS8EncodedKeySpec(ecPriv.getEncoded());
+ ECPrivateKey ecPriDecod
+ = (ECPrivateKey) kf.generatePrivate(ecPriSpec);
+ equals(ecPriv.getS(), ecPriDecod.getS());
+ equals(ecPriv.getFormat(), ecPriDecod.getFormat());
+ equals(ecPriv.getEncoded(), ecPriDecod.getEncoded());
+ equals(ecPriv.getParams().getCofactor(),
+ ecPriDecod.getParams().getCofactor());
+ equals(ecPriv.getParams().getCurve(),
+ ecPriDecod.getParams().getCurve());
+ equals(ecPriv.getParams().getGenerator(),
+ ecPriDecod.getParams().getGenerator());
+ equals(ecPriv.getParams().getOrder(),
+ ecPriDecod.getParams().getOrder());
+
+ // Verify PublicKey attributes.
+ ECPublicKey ecPub = (ECPublicKey) kp.getPublic();
+ X509EncodedKeySpec ecPubSpec
+ = new X509EncodedKeySpec(ecPub.getEncoded());
+ ECPublicKey ecPubDecod
+ = (ECPublicKey) kf.generatePublic(ecPubSpec);
+ equals(ecPub.getW(), ecPubDecod.getW());
+ equals(ecPub.getFormat(), ecPubDecod.getFormat());
+ equals(ecPub.getEncoded(), ecPubDecod.getEncoded());
+ equals(ecPub.getParams().getCofactor(),
+ ecPubDecod.getParams().getCofactor());
+ equals(ecPub.getParams().getCurve(),
+ ecPubDecod.getParams().getCurve());
+ equals(ecPub.getParams().getGenerator(),
+ ecPubDecod.getParams().getGenerator());
+ equals(ecPub.getParams().getOrder(),
+ ecPubDecod.getParams().getOrder());
+ break;
+ case "XDH":
+ // Verify PrivateKey attributes.
+ XECPrivateKey xdhPri = (XECPrivateKey) kp.getPrivate();
+ PKCS8EncodedKeySpec xdhPriSpec
+ = new PKCS8EncodedKeySpec(xdhPri.getEncoded());
+ XECPrivateKey xdhPriDec
+ = (XECPrivateKey) kf.generatePrivate(xdhPriSpec);
+ equals(xdhPri.getScalar().get(), xdhPriDec.getScalar().get());
+ equals(xdhPri.getFormat(), xdhPriDec.getFormat());
+ equals(xdhPri.getEncoded(), xdhPriDec.getEncoded());
+ equals(((NamedParameterSpec) xdhPri.getParams()).getName(),
+ ((NamedParameterSpec) xdhPriDec.getParams()).getName());
+
+ // Verify PublicKey attributes.
+ XECPublicKey xdhPub = (XECPublicKey) kp.getPublic();
+ X509EncodedKeySpec xdhPubSpec
+ = new X509EncodedKeySpec(xdhPub.getEncoded());
+ XECPublicKey xdhPubDec
+ = (XECPublicKey) kf.generatePublic(xdhPubSpec);
+ equals(xdhPub.getU(), xdhPubDec.getU());
+ equals(xdhPub.getFormat(), xdhPubDec.getFormat());
+ equals(xdhPub.getEncoded(), xdhPubDec.getEncoded());
+ equals(((NamedParameterSpec) xdhPub.getParams()).getName(),
+ ((NamedParameterSpec) xdhPubDec.getParams()).getName());
+ break;
+ default:
+ throw new RuntimeException("Invalid Algo name " + kpgAlgo);
+ }
+ }
+
+ private static boolean equals(Object actual, Object expected) {
+ boolean equals = actual.equals(expected);
+ if (!equals) {
+ throw new RuntimeException(String.format("Actual: %s, Expected: %s",
+ actual, expected));
+ }
+ return equals;
+ }
+
+ private static boolean equals(byte[] actual, byte[] expected) {
+ boolean equals = Arrays.equals(actual, expected);
+ if (!equals) {
+ throw new RuntimeException(String.format("Actual array: %s, "
+ + "Expected array:%s", Convert.byteArrayToHexString(actual),
+ Convert.byteArrayToHexString(expected)));
+ }
+ return equals;
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/security/KeyAgreement/KeySpecTest.java Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,316 @@
+/*
+ * Copyright (c) 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.
+ */
+
+ /*
+ * @test
+ * @bug 8184359
+ * @summary Standard tests on KeySpec, KeyFactory, KeyPairs and Keys.
+ * Arguments order <KeyExchangeAlgorithm> <Provider> <KeyGenAlgorithm> <Curve*>
+ * @run main KeySpecTest DiffieHellman SunJCE DiffieHellman
+ * @run main KeySpecTest ECDH SunEC EC
+ * @run main KeySpecTest XDH SunEC XDH X25519
+ * @run main KeySpecTest XDH SunEC XDH X448
+ */
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.security.KeyFactory;
+import java.security.KeyPair;
+import java.security.KeyPairGenerator;
+import java.security.PrivateKey;
+import java.security.PublicKey;
+import java.security.spec.ECPrivateKeySpec;
+import java.security.spec.ECPublicKeySpec;
+import java.security.spec.PKCS8EncodedKeySpec;
+import java.security.spec.X509EncodedKeySpec;
+import java.security.spec.NamedParameterSpec;
+import java.security.spec.XECPublicKeySpec;
+import java.security.spec.XECPrivateKeySpec;
+import java.security.spec.KeySpec;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Arrays;
+import javax.crypto.KeyAgreement;
+import javax.crypto.spec.DHPrivateKeySpec;
+import javax.crypto.spec.DHPublicKeySpec;
+
+public class KeySpecTest {
+
+ public static void main(String[] args) throws Exception {
+
+ String kaAlgo = args[0];
+ String provider = args[1];
+ String kpgAlgo = args[2];
+ KeyPair kp = genKeyPair(provider, kpgAlgo,
+ (args.length > 3) ? args[3] : kpgAlgo);
+ testKeySpecs(provider, kaAlgo, kpgAlgo, kp);
+ testEncodedKeySpecs(provider, kaAlgo, kpgAlgo, kp);
+ }
+
+ /**
+ * Generate keyPair based on KeyPairGenerator algorithm.
+ */
+ private static KeyPair genKeyPair(String provider, String kpgAlgo,
+ String kpgInit) throws Exception {
+
+ KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgo, provider);
+ switch (kpgInit) {
+ case "DiffieHellman":
+ kpg.initialize(512);
+ break;
+ case "EC":
+ kpg.initialize(256);
+ break;
+ case "X25519":
+ kpg.initialize(255);
+ break;
+ case "X448":
+ kpg.initialize(448);
+ break;
+ default:
+ throw new RuntimeException("Invalid Algo name " + kpgInit);
+ }
+ return kpg.generateKeyPair();
+ }
+
+ /**
+ * Standard Test with Keys and the one generated through Spec.
+ */
+ private static void testKeySpecs(String provider, String kaAlgo,
+ String kpgAlgo, KeyPair kp) throws Exception {
+
+ KeyFactory kf = KeyFactory.getInstance(kpgAlgo, provider);
+ // For each public KeySpec supported by KeyPairGenerator
+ for (Class pubSpecType
+ : getCompatibleKeySpecs(kpgAlgo, KeyType.PUBLIC)) {
+ //For each private KeySpec supported by KeyPairGenerator
+ for (Class priSpecType
+ : getCompatibleKeySpecs(kpgAlgo, KeyType.PRIVATE)) {
+ // Transform original PublicKey through KeySpec
+ KeySpec pubSpec = kf.getKeySpec(kp.getPublic(), pubSpecType);
+ PublicKey pubKey = kf.generatePublic(pubSpec);
+ // Transform original PrivateKey through KeySpec
+ KeySpec priSpec = kf.getKeySpec(kp.getPrivate(), priSpecType);
+ PrivateKey priKey = kf.generatePrivate(priSpec);
+
+ // Test the keys are equal after transformation through KeySpec.
+ testKeyEquals(kp, pubKey, priKey);
+ // Test the keys are serializable.
+ testSerialize(kp);
+ // Test Parameter name.
+ if (!kaAlgo.equals("DiffieHellman")) {
+ testParamName(priSpec, pubSpec);
+ }
+ // Compare KeyAgreement secret generated from original keys
+ // and by the keys after transformed through KeySpec.
+ if (!Arrays.equals(getKeyAgreementSecret(provider, kaAlgo,
+ kp.getPublic(), kp.getPrivate()),
+ getKeyAgreementSecret(provider, kaAlgo,
+ pubKey, priKey))) {
+ throw new RuntimeException("KeyAgreement secret mismatch.");
+ }
+ }
+ }
+ }
+
+ /**
+ * Standard Test with Keys and the one generated from encoded bytes.
+ */
+ private static void testEncodedKeySpecs(String provider, String kaAlgo,
+ String kpgAlgo, KeyPair kp) throws Exception {
+
+ KeyFactory kf = KeyFactory.getInstance(kpgAlgo, provider);
+ PKCS8EncodedKeySpec priSpec
+ = new PKCS8EncodedKeySpec(kp.getPrivate().getEncoded());
+ PrivateKey priKey = kf.generatePrivate(priSpec);
+
+ X509EncodedKeySpec pubSpec
+ = new X509EncodedKeySpec(kp.getPublic().getEncoded());
+ PublicKey pubKey = kf.generatePublic(pubSpec);
+
+ // Test the keys are equal after transformation through KeySpec.
+ testKeyEquals(kp, pubKey, priKey);
+ // Test the keys are serializable.
+ testSerialize(kp);
+ // Test Parameter name.
+ if (!kaAlgo.equals("DiffieHellman")) {
+ testParamName(priSpec, pubSpec);
+ }
+ // Compare KeyAgreement secret generated from original keys
+ // and by the keys after transformed through KeySpec.
+ if (!Arrays.equals(getKeyAgreementSecret(provider, kaAlgo,
+ kp.getPublic(), kp.getPrivate()),
+ getKeyAgreementSecret(provider, kaAlgo, pubKey, priKey))) {
+ throw new RuntimeException("KeyAgreement secret mismatch.");
+ }
+ }
+
+ private enum KeyType {
+ PUBLIC, PRIVATE;
+ }
+
+ /**
+ * Provides Compatible KeySpec Type list for KeyPairGenerator algorithm.
+ */
+ private static List<Class> getCompatibleKeySpecs(String kpgAlgo,
+ KeyType type) {
+
+ List<Class> specs = new ArrayList<>();
+ switch (kpgAlgo) {
+ case "DiffieHellman":
+ if (type == KeyType.PUBLIC) {
+ return Arrays.asList(X509EncodedKeySpec.class,
+ DHPublicKeySpec.class);
+ } else {
+ return Arrays.asList(PKCS8EncodedKeySpec.class,
+ DHPrivateKeySpec.class);
+ }
+ case "EC":
+ if (type == KeyType.PUBLIC) {
+ return Arrays.asList(X509EncodedKeySpec.class,
+ ECPublicKeySpec.class);
+ } else {
+ return Arrays.asList(PKCS8EncodedKeySpec.class,
+ ECPrivateKeySpec.class);
+ }
+ case "XDH":
+ if (type == KeyType.PUBLIC) {
+ return Arrays.asList(X509EncodedKeySpec.class,
+ XECPublicKeySpec.class);
+ } else {
+ return Arrays.asList(PKCS8EncodedKeySpec.class,
+ XECPrivateKeySpec.class);
+ }
+ }
+ return specs;
+ }
+
+ /**
+ * Generate KeyAgreement Secret.
+ */
+ private static byte[] getKeyAgreementSecret(String provider, String kaAlgo,
+ PublicKey pubKey, PrivateKey priKey) throws Exception {
+
+ KeyAgreement ka = KeyAgreement.getInstance(kaAlgo, provider);
+ ka.init(priKey);
+ ka.doPhase(pubKey, true);
+ return ka.generateSecret();
+ }
+
+ /**
+ * Compare original KeyPair with transformed ones.
+ */
+ private static void testKeyEquals(KeyPair kp, PublicKey pubKey,
+ PrivateKey priKey) {
+
+ if (!kp.getPrivate().equals(priKey)
+ && kp.getPrivate().hashCode() != priKey.hashCode()) {
+ throw new RuntimeException("PrivateKey is not equal with PrivateKey"
+ + " generated through KeySpec");
+ }
+ if (!kp.getPublic().equals(pubKey)
+ && kp.getPublic().hashCode() != pubKey.hashCode()) {
+ throw new RuntimeException("PublicKey is not equal with PublicKey"
+ + " generated through KeySpec");
+ }
+ }
+
+ /**
+ * Compare the parameter names of Public/Private KeySpec from a pair.
+ */
+ private static void testParamName(KeySpec priSpec, KeySpec pubSpec) {
+
+ if (priSpec instanceof XECPrivateKeySpec
+ && pubSpec instanceof XECPublicKeySpec) {
+ if (((NamedParameterSpec) ((XECPrivateKeySpec) priSpec)
+ .getParams()).getName()
+ != ((NamedParameterSpec) ((XECPublicKeySpec) pubSpec)
+ .getParams()).getName()) {
+ throw new RuntimeException("Curve name mismatch found");
+ }
+ }
+ }
+
+ /**
+ * Test serialization of KeyPair and Keys it holds.
+ */
+ private static void testSerialize(KeyPair keyPair) throws Exception {
+
+ // Verify Serialized PrivateKey instance.
+ if (!keyPair.getPrivate().equals(
+ deserializedCopy(keyPair.getPrivate(), PrivateKey.class))) {
+ throw new RuntimeException("PrivateKey is not equal with PrivateKey"
+ + " generated through Serialization");
+ }
+ // Verify Serialized PublicKey instance.
+ if (!keyPair.getPublic().equals(
+ deserializedCopy(keyPair.getPublic(), PublicKey.class))) {
+ throw new RuntimeException("PublicKey is not equal with PublicKey"
+ + " generated through Serialization");
+ }
+ // Verify Serialized KeyPair instance.
+ KeyPair copy = deserializedCopy(keyPair, KeyPair.class);
+ if (!keyPair.getPrivate().equals(copy.getPrivate())) {
+ throw new RuntimeException("PrivateKey is not equal with PrivateKey"
+ + " generated through Serialized KeyPair");
+ }
+ if (!keyPair.getPublic().equals(copy.getPublic())) {
+ throw new RuntimeException("PublicKey is not equal with PublicKey"
+ + " generated through Serialized KeyPair");
+ }
+ }
+
+ private static <T extends Object> T deserializedCopy(T orig, Class<T> type)
+ throws IOException, ClassNotFoundException {
+ return deserialize(serialize(orig), type);
+ }
+
+ /**
+ * Deserialize the Key object.
+ */
+ private static <T extends Object> T deserialize(byte[] serialized,
+ Class<T> type) throws IOException, ClassNotFoundException {
+
+ T key = null;
+ try (ByteArrayInputStream bis = new ByteArrayInputStream(serialized);
+ ObjectInputStream ois = new ObjectInputStream(bis)) {
+ key = (T) ois.readObject();
+ }
+ return key;
+ }
+
+ /**
+ * Serialize the given Key object.
+ */
+ private static <T extends Object> byte[] serialize(T key)
+ throws IOException {
+
+ try (ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new ObjectOutputStream(bos)) {
+ oos.writeObject(key);
+ return bos.toByteArray();
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/security/KeyAgreement/MultiThreadTest.java Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,150 @@
+/*
+ * Copyright (c) 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.
+ */
+
+ /*
+ * @test
+ * @bug 8184359
+ * @summary KeyPairGenerator Test with multiple threads.
+ * Arguments order <KeyExchangeAlgorithm> <Provider> <KeyGenAlgorithm> <Curve*>
+ * @run main MultiThreadTest DiffieHellman SunJCE DiffieHellman
+ * @run main MultiThreadTest ECDH SunEC EC
+ * @run main MultiThreadTest XDH SunEC XDH X25519
+ * @run main MultiThreadTest XDH SunEC XDH X448
+ */
+import java.security.KeyPair;
+import java.security.KeyPairGenerator;
+import java.util.Arrays;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ThreadFactory;
+import javax.crypto.KeyAgreement;
+
+/**
+ * This test targets KeyPairGenerator API related issue in a multi threaded
+ * context.
+ */
+public class MultiThreadTest {
+
+ // Tested a shared KeyPairGenerator with 100 number of threads.
+ private static final int THREAD_COUNT = 100;
+
+ public static void main(String[] args) throws Exception {
+
+ String kaAlgo = args[0];
+ String provider = args[1];
+ String kpgAlgo = args[2];
+ KeyPairGenerator kpg = genKeyGenerator(provider, kpgAlgo,
+ (args.length > 3) ? args[3] : kpgAlgo);
+ new MultiThreadTest().runTest(provider, kaAlgo, kpg);
+ }
+
+ /**
+ * Initialize KeyPairGenerator based on different algorithm names.
+ */
+ private static KeyPairGenerator genKeyGenerator(String provider,
+ String kpgAlgo, String kpgInit) throws Exception {
+
+ KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgo, provider);
+ switch (kpgInit) {
+ case "DiffieHellman":
+ kpg.initialize(512);
+ break;
+ case "EC":
+ kpg.initialize(256);
+ break;
+ case "X25519":
+ kpg.initialize(255);
+ break;
+ case "X448":
+ kpg.initialize(448);
+ break;
+ default:
+ throw new RuntimeException("Invalid Algo name " + kpgInit);
+ }
+ return kpg;
+ }
+
+ private void runTest(String provider, String kaAlgo, KeyPairGenerator kpg)
+ throws Exception {
+
+ ExecutorService executor = null;
+ try {
+ executor = Executors.newCachedThreadPool(new ThreadFactory() {
+ @Override
+ public Thread newThread(Runnable r) {
+ Thread t = Executors.defaultThreadFactory().newThread(r);
+ t.setDaemon(true);
+ return t;
+ }
+ });
+ CountDownLatch latch = new CountDownLatch(THREAD_COUNT);
+
+ for (int i = 0; i < THREAD_COUNT; i++) {
+ executor.execute(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ testKeyAgreement(provider, kaAlgo, kpg);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ } finally {
+ // Indicate a task completed.
+ latch.countDown();
+ }
+ }
+ });
+ }
+ // Wait till all tasks get complete.
+ latch.await();
+ } finally {
+ if (executor != null) {
+ executor.shutdown();
+ }
+ }
+ }
+
+ /**
+ * Perform KeyAgreement operation with a shared KeyPairGenerator instance.
+ */
+ private static void testKeyAgreement(String provider, String kaAlgo,
+ KeyPairGenerator kpg) throws Exception {
+
+ KeyPair kp1 = kpg.generateKeyPair();
+ KeyPair kp2 = kpg.generateKeyPair();
+
+ KeyAgreement ka1 = KeyAgreement.getInstance(kaAlgo, provider);
+ ka1.init(kp1.getPrivate());
+ ka1.doPhase(kp2.getPublic(), true);
+ byte[] secret1 = ka1.generateSecret();
+ KeyAgreement ka2 = KeyAgreement.getInstance(kaAlgo, provider);
+ ka2.init(kp2.getPrivate());
+ ka2.doPhase(kp1.getPublic(), true);
+ byte[] secret2 = ka2.generateSecret();
+
+ // With related keypairs, generated KeyAgreement secret should be same.
+ if (!Arrays.equals(secret1, secret2)) {
+ throw new Exception("KeyAgreement secret mismatch.");
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/security/KeyAgreement/NegativeTest.java Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,408 @@
+/*
+ * Copyright (c) 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.
+ */
+
+ /*
+ * @test
+ * @bug 8200219
+ * @summary Negative tests for Key related Test with DiffieHellman, ECDH, XDH.
+ * It Tests,
+ * Use modified encoding while generating Public/Private Keys
+ * Short, long, unsupported keysize
+ * Invalid Algo names including Null
+ * Invalid provider names including Null
+ * Invalid curve names
+ * Invalid spec usage
+ * Arguments order <KeyExchangeAlgorithm> <Provider> <KeyGenAlgorithm>
+ * <keySize> <Curve*>
+ * @library /test/lib
+ * @build jdk.test.lib.Convert
+ * @run main NegativeTest DiffieHellman SunJCE DiffieHellman 1024
+ * @run main NegativeTest ECDH SunEC EC 256
+ * @run main NegativeTest XDH SunEC XDH 255 X25519
+ * @run main NegativeTest XDH SunEC XDH 448 X448
+ */
+import java.math.BigInteger;
+import java.security.InvalidAlgorithmParameterException;
+import java.security.InvalidParameterException;
+import java.security.KeyFactory;
+import java.security.KeyPair;
+import java.security.KeyPairGenerator;
+import java.security.NoSuchAlgorithmException;
+import java.security.NoSuchProviderException;
+import java.security.Security;
+import java.security.spec.InvalidKeySpecException;
+import java.security.spec.NamedParameterSpec;
+import java.security.spec.KeySpec;
+import java.security.spec.PKCS8EncodedKeySpec;
+import java.security.spec.X509EncodedKeySpec;
+import java.security.spec.XECPrivateKeySpec;
+import java.security.spec.XECPublicKeySpec;
+import java.util.Arrays;
+import javax.crypto.KeyAgreement;
+import jdk.test.lib.Convert;
+
+public class NegativeTest {
+
+ public static void main(String[] args) throws Exception {
+
+ String kaAlgo = args[0];
+ String provider = args[1];
+ String kpgAlgo = args[2];
+ int keySize = Integer.parseInt(args[3]);
+ String kpgInit = (args.length > 4) ? args[4] : args[2];
+ testModifiedKeyEncodingTest(provider, kpgAlgo, kpgInit);
+ testInvalidKeyLen(provider, kaAlgo, kpgAlgo, kpgInit);
+ testInvalidKpgAlgo(provider, kaAlgo, keySize);
+ testInvalidKaAlgo(provider, kpgAlgo, keySize);
+ testInvalidProvider(kaAlgo, kpgAlgo, keySize);
+ if (!kaAlgo.equals("DiffieHellman")) {
+ testNamedParameter(provider, kpgAlgo);
+ }
+ if (kaAlgo.equals("XDH")) {
+ testInvalidSpec(provider, kpgAlgo, kpgInit);
+ testInCompatibleSpec(provider, kpgAlgo, kpgInit);
+ }
+ }
+
+ /**
+ * Generate keyPair based on KeyPairGenerator algorithm.
+ */
+ private static KeyPair genKeyPair(String provider, String kpgAlgo,
+ String kpgInit) throws Exception {
+
+ KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgo,
+ Security.getProvider(provider));
+ switch (kpgInit) {
+ case "DiffieHellman":
+ kpg.initialize(512);
+ break;
+ case "EC":
+ kpg.initialize(256);
+ break;
+ case "X25519":
+ kpg.initialize(255);
+ break;
+ case "X448":
+ kpg.initialize(448);
+ break;
+ default:
+ throw new RuntimeException("Invalid Algo name " + kpgInit);
+ }
+ return kpg.generateKeyPair();
+ }
+
+ private static void testModifiedKeyEncodingTest(String provider,
+ String kpgAlgo, String kpgInit) throws Exception {
+
+ KeyFactory kf = KeyFactory.getInstance(kpgAlgo, provider);
+ KeyPair kp = genKeyPair(provider, kpgAlgo, kpgInit);
+ // Test modified PrivateKey encoding
+ byte[] encoded = kp.getPrivate().getEncoded();
+ byte[] modified = modifyEncoded(encoded);
+ PKCS8EncodedKeySpec priSpec = new PKCS8EncodedKeySpec(modified);
+ try {
+ // Generate PrivateKey with modified encoding
+ kf.generatePrivate(priSpec);
+ throw new RuntimeException(
+ "testModifiedKeyTest should fail but passed.");
+ } catch (InvalidKeySpecException e) {
+ System.out.printf("Expected InvalidKeySpecException for invalid "
+ + "PrivateKey %s%n and modified encoding: %s, %s%n",
+ Convert.byteArrayToHexString(encoded),
+ Convert.byteArrayToHexString(modified), e.getMessage());
+ }
+ // Test modified PublicKey encoding
+ encoded = kp.getPublic().getEncoded();
+ modified = modifyEncoded(encoded);
+ X509EncodedKeySpec pubSpec = new X509EncodedKeySpec(modified);
+ try {
+ // Generate PublicKey with modified encoding
+ kf.generatePublic(pubSpec);
+ throw new RuntimeException(
+ "testModifiedKeyTest should fail but passed.");
+ } catch (InvalidKeySpecException e) {
+ System.out.printf("Expected InvalidKeySpecException for invalid "
+ + "PublicKey %s%n and modified encoding: %s, %s%n",
+ Convert.byteArrayToHexString(encoded),
+ Convert.byteArrayToHexString(modified), e.getMessage());
+ }
+ }
+
+ /**
+ * Test with all Invalid key length.
+ */
+ private static void testInvalidKeyLen(String provider, String kaAlgo,
+ String kpgAlgo, String kpgInit) throws Exception {
+
+ for (int keySize : selectInvalidKeylength(kpgInit)) {
+ try {
+ startKeyAgreement(provider, kaAlgo, kpgAlgo, keySize);
+ throw new RuntimeException(
+ "testInvalidKeyLen should fail but passed.");
+ } catch (InvalidParameterException e) {
+ System.out.printf("Expected InvalidParameterException for "
+ + "keyLength: %s, %s%n", keySize, e.getMessage());
+ }
+ }
+ }
+
+ /**
+ * Test with all Invalid KeyPairGenerator algorithms.
+ */
+ private static void testInvalidKpgAlgo(String provider, String algo,
+ int keySize) throws Exception {
+
+ for (String kpgAlgo : new String[]{null, " ", "", "NoSuchAlgorithm"}) {
+ try {
+ startKeyAgreement(provider, algo, kpgAlgo, keySize);
+ throw new RuntimeException(
+ "testInvalidKpgAlgo should fail but passed.");
+ } catch (NoSuchAlgorithmException e) {
+ System.out.printf("Expected NoSuchAlgorithmException for "
+ + "KeyAgreement algo: %s, %s%n",
+ kpgAlgo, e.getMessage());
+ } catch (NullPointerException e) {
+ if (kpgAlgo == null) {
+ System.out.printf("Expected NullPointerException for "
+ + "KeyPairGenerator algo: %s, %s%n",
+ kpgAlgo, e.getMessage());
+ continue;
+ }
+ throw new RuntimeException(
+ "Unknown failure in testInvalidKpgAlgo.");
+ }
+ }
+ }
+
+ /**
+ * Test with all Invalid KeyAgreement algorithms.
+ */
+ private static void testInvalidKaAlgo(String provider, String kpgAlgo,
+ int keySize) throws Exception {
+
+ for (String algo : new String[]{null, " ", "", "NoSuchAlgorithm"}) {
+ try {
+ startKeyAgreement(provider, algo, kpgAlgo, keySize);
+ throw new RuntimeException(
+ "testInvalidKaAlgo should fail but passed.");
+ } catch (NoSuchAlgorithmException e) {
+ System.out.printf("Expected NoSuchAlgorithmException for "
+ + "KeyAgreement algo: %s, %s%n", algo, e.getMessage());
+ } catch (NullPointerException e) {
+ if (algo == null) {
+ System.out.printf("Expected NullPointerException for "
+ + "KeyAgreement algo: %s, %s%n",
+ algo, e.getMessage());
+ continue;
+ }
+ throw new RuntimeException(
+ "Unknown failure in testInvalidKaAlgo.");
+ }
+ }
+ }
+
+ /**
+ * Test with all Invalid Provider names.
+ */
+ private static void testInvalidProvider(String kaAlgo, String kpgAlgo,
+ int keySize) throws Exception {
+
+ for (String provider : new String[]{null, " ", "", "NoSuchProvider"}) {
+ try {
+ startKeyAgreement(provider, kaAlgo, kpgAlgo, keySize);
+ throw new RuntimeException(
+ "testInvalidProvider should fail but passed.");
+ } catch (NoSuchProviderException e) {
+ System.out.printf("Expected NoSuchProviderException for "
+ + "Provider: %s, %s%n", provider, e.getMessage());
+ } catch (IllegalArgumentException e) {
+ System.out.printf("Expected IllegalArgumentException for "
+ + "Provider: %s, %s%n", provider, e.getMessage());
+ }
+ }
+ }
+
+ /**
+ * Test for (in)valid curve names as argument to NamedParameterSpec
+ */
+ private static void testNamedParameter(String provider, String kpgAlgo)
+ throws Exception {
+
+ for (String name : new String[]{null, " ", "", "NoSuchCurve"}) {
+ try {
+ NamedParameterSpec spec = new NamedParameterSpec(name);
+ KeyPairGenerator kpg
+ = KeyPairGenerator.getInstance(kpgAlgo, provider);
+ kpg.initialize(spec);
+ kpg.generateKeyPair();
+ throw new RuntimeException(
+ "testNamedParameter should fail but passed.");
+ } catch (NullPointerException e) {
+ if (name == null) {
+ System.out.printf("Expected NullPointerException for "
+ + "NamedParameterSpec name: %s, %s%n",
+ name, e.getMessage());
+ continue;
+ }
+ throw new RuntimeException(
+ "Unknown failure in testNamedParameter.");
+ } catch (InvalidAlgorithmParameterException e) {
+ System.out.printf("Expected InvalidAlgorithmParameterException"
+ + " for NamedParameterSpec name: %s, %s%n",
+ name, e.getMessage());
+ }
+ }
+ }
+
+ /**
+ * Test to generate Public/Private keys using (in)valid coordinate/scalar.
+ */
+ private static void testInvalidSpec(String provider,
+ String kpgAlgo, String curve) throws Exception {
+
+ NamedParameterSpec spec = new NamedParameterSpec(curve);
+ KeyFactory kf = KeyFactory.getInstance(kpgAlgo, provider);
+ int validLen = curve.equalsIgnoreCase("X448") ? 56 : 32;
+ for (byte[] scalarBytes : new byte[][]{null, new byte[]{},
+ new byte[32], new byte[56], new byte[65535]}) {
+ try {
+ KeySpec privateSpec = new XECPrivateKeySpec(spec, scalarBytes);
+ kf.generatePrivate(privateSpec);
+ if (scalarBytes.length != validLen) {
+ throw new RuntimeException(String.format("testInvalidSpec "
+ + "should fail but passed when Scalar bytes length "
+ + "!= %s for curve %s", validLen, curve));
+ }
+ } catch (NullPointerException e) {
+ if (scalarBytes == null) {
+ System.out.printf("Expected NullPointerException for "
+ + "scalar: %s, %s%n", scalarBytes, e.getMessage());
+ continue;
+ }
+ throw new RuntimeException(e);
+ } catch (InvalidKeySpecException e) {
+ if (scalarBytes.length != validLen) {
+ System.out.printf("Expected InvalidKeySpecException for "
+ + "scalar length %s and curve %s: %s%n",
+ scalarBytes.length, curve, e.getMessage());
+ continue;
+ }
+ throw new RuntimeException(e);
+ }
+ }
+ for (BigInteger coordinate : new BigInteger[]{null, BigInteger.ZERO,
+ BigInteger.ONE, new BigInteger("2").pow(255),
+ new BigInteger("2").pow(448)}) {
+ try {
+ KeySpec publicSpec = new XECPublicKeySpec(spec, coordinate);
+ kf.generatePublic(publicSpec);
+ } catch (NullPointerException e) {
+ if (coordinate == null) {
+ System.out.printf("Expected NullPointerException for "
+ + "coordinate : %s, %s%n", coordinate,
+ e.getMessage());
+ continue;
+ }
+ throw new RuntimeException(e);
+ }
+ }
+ }
+
+ private static void testInCompatibleSpec(String provider,
+ String kpgAlgo, String curve) throws Exception {
+
+ int validLen = curve.equalsIgnoreCase("X448") ? 56 : 32;
+ NamedParameterSpec spec = new NamedParameterSpec(curve);
+ KeyFactory kf = KeyFactory.getInstance(kpgAlgo, provider);
+ KeySpec privateSpec = new XECPrivateKeySpec(spec, new byte[validLen]);
+ KeySpec publicSpec = new XECPublicKeySpec(spec, BigInteger.ONE);
+ try {
+ kf.generatePrivate(publicSpec);
+ throw new RuntimeException(
+ "testInCompatibleSpec should fail but passed.");
+ } catch (InvalidKeySpecException e) {
+ System.out.printf("Expected XECPublicKeySpec to XECPrivateKeySpec :"
+ + " %s%n", e.getMessage());
+ }
+ try {
+ kf.generatePublic(privateSpec);
+ throw new RuntimeException(
+ "testInCompatibleSpec should fail but passed.");
+ } catch (InvalidKeySpecException e) {
+ System.out.printf("Expected XECPrivateKeySpec to XECPublicKeySpec :"
+ + " %s%n", e.getMessage());
+ }
+ }
+
+ /**
+ * Perform KeyAgreement operation.
+ */
+ private static void startKeyAgreement(String provider, String kaAlgo,
+ String kpgAlgo, int keySize) throws Exception {
+
+ KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgo, provider);
+ kpg.initialize(keySize);
+ KeyPair kp = kpg.generateKeyPair();
+ KeyAgreement ka = KeyAgreement.getInstance(kaAlgo, provider);
+ ka.init(kp.getPrivate());
+ ka.doPhase(kp.getPublic(), true);
+ ka.generateSecret();
+ }
+
+ /**
+ * Return manipulated encoded bytes.
+ */
+ private static byte[] modifyEncoded(byte[] encoded) {
+
+ byte[] copy = Arrays.copyOf(encoded, encoded.length);
+ for (int i = 0; i < copy.length; i++) {
+ copy[i] = (byte) ~copy[i];
+ }
+ return copy;
+ }
+
+ /**
+ * Select invalid key sizes for different Key generation algorithms.
+ */
+ private static int[] selectInvalidKeylength(String kpgInit) {
+
+ int[] keySize = new int[]{};
+ switch (kpgInit) {
+ case "DiffieHellman":
+ keySize = new int[]{256, 513, 1023, 2176, 4032, 6400, 8200};
+ break;
+ case "EC":
+ keySize = new int[]{100, 300};
+ break;
+ case "X25519":
+ keySize = new int[]{100, 300};
+ break;
+ case "X448":
+ keySize = new int[]{100, 500};
+ break;
+ default:
+ throw new RuntimeException("Invalid Algo name " + kpgInit);
+ }
+ return keySize;
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/security/ec/xec/TestXDH.java Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,490 @@
+/*
+ * Copyright (c) 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.
+ */
+
+/*
+ * @test
+ * @bug 8171277
+ * @summary Test XDH key agreement
+ * @library /test/lib
+ * @build jdk.test.lib.Convert
+ * @run main TestXDH
+ */
+
+import java.security.*;
+import java.security.spec.*;
+import javax.crypto.*;
+import java.util.Arrays;
+import java.math.BigInteger;
+import jdk.test.lib.Convert;
+
+public class TestXDH {
+
+ public static void main(String[] args) throws Exception {
+
+ runBasicTests();
+ runKAT();
+ runSmallOrderTest();
+ runNonCanonicalTest();
+ runCurveMixTest();
+ }
+
+ private static void runBasicTests() throws Exception {
+ runBasicTest("XDH", null);
+ runBasicTest("XDH", 255);
+ runBasicTest("XDH", 448);
+ runBasicTest("XDH", "X25519");
+ runBasicTest("XDH", "X448");
+ runBasicTest("X25519", null);
+ runBasicTest("X448", null);
+ runBasicTest("1.3.101.110", null);
+ runBasicTest("1.3.101.111", null);
+ runBasicTest("OID.1.3.101.110", null);
+ runBasicTest("OID.1.3.101.111", null);
+ }
+
+ private static void runBasicTest(String name, Object param)
+ throws Exception {
+
+ KeyPairGenerator kpg = KeyPairGenerator.getInstance(name);
+ if (param instanceof Integer) {
+ kpg.initialize((Integer) param);
+ } else if (param instanceof String) {
+ kpg.initialize(new NamedParameterSpec((String) param));
+ }
+ KeyPair kp = kpg.generateKeyPair();
+
+ KeyAgreement ka = KeyAgreement.getInstance(name);
+ ka.init(kp.getPrivate());
+ ka.doPhase(kp.getPublic(), true);
+
+ byte[] secret = ka.generateSecret();
+
+ KeyFactory kf = KeyFactory.getInstance(name);
+ // Test with X509 and PKCS8 key specs
+ X509EncodedKeySpec pubSpec =
+ kf.getKeySpec(kp.getPublic(), X509EncodedKeySpec.class);
+ PKCS8EncodedKeySpec priSpec =
+ kf.getKeySpec(kp.getPrivate(), PKCS8EncodedKeySpec.class);
+
+ PublicKey pubKey = kf.generatePublic(pubSpec);
+ PrivateKey priKey = kf.generatePrivate(priSpec);
+
+ ka.init(priKey);
+ ka.doPhase(pubKey, true);
+ byte[] secret2 = ka.generateSecret();
+ if (!Arrays.equals(secret, secret2)) {
+ throw new RuntimeException("Arrays not equal");
+ }
+
+ // test with XDH key specs
+ XECPublicKeySpec xdhPublic =
+ kf.getKeySpec(kp.getPublic(), XECPublicKeySpec.class);
+ XECPrivateKeySpec xdhPrivate =
+ kf.getKeySpec(kp.getPrivate(), XECPrivateKeySpec.class);
+ PublicKey pubKey2 = kf.generatePublic(xdhPublic);
+ PrivateKey priKey2 = kf.generatePrivate(xdhPrivate);
+ ka.init(priKey2);
+ ka.doPhase(pubKey2, true);
+ byte[] secret3 = ka.generateSecret();
+ if (!Arrays.equals(secret, secret3)) {
+ throw new RuntimeException("Arrays not equal");
+ }
+ }
+
+ private static void runSmallOrderTest() throws Exception {
+ // Ensure that small-order points are rejected
+
+ // X25519
+ // 0
+ testSmallOrder(
+ "X25519",
+ "77076D0A7318A57D3C16C17251B26645DF4C2F87EBC0992AB177FBA51DB92C2A",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000");
+ // 1 and -1
+ testSmallOrder(
+ "X25519",
+ "77076D0A7318A57D3C16C17251B26645DF4C2F87EBC0992AB177FBA51DB92C2A",
+ "0100000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000");
+ testSmallOrder(
+ "X25519",
+ "77076D0A7318A57D3C16C17251B26645DF4C2F87EBC0992AB177FBA51DB92C2A",
+ "ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f",
+ "0000000000000000000000000000000000000000000000000000000000000000");
+
+ // order 8 points
+ testSmallOrder(
+ "X25519",
+ "77076D0A7318A57D3C16C17251B26645DF4C2F87EBC0992AB177FBA51DB92C2A",
+ "5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f1157",
+ "0000000000000000000000000000000000000000000000000000000000000000");
+ testSmallOrder(
+ "X25519",
+ "77076D0A7318A57D3C16C17251B26645DF4C2F87EBC0992AB177FBA51DB92C2A",
+ "e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b800",
+ "0000000000000000000000000000000000000000000000000000000000000000");
+
+ // X448
+ // 0
+ testSmallOrder(
+ "X448",
+ "9A8F4925D1519F5775CF46B04B5800D4EE9EE8BAE8BC5565D498C28DD9C9BA" +
+ "F574A9419744897391006382A6F127AB1D9AC2D8C0A598726B",
+ "00000000000000000000000000000000000000000000000000000000000000" +
+ "00000000000000000000000000000000000000000000000000",
+ "00000000000000000000000000000000000000000000000000000000000000" +
+ "00000000000000000000000000000000000000000000000000");
+ // 1 and -1
+ testSmallOrder(
+ "X448",
+ "9A8F4925D1519F5775CF46B04B5800D4EE9EE8BAE8BC5565D498C28DD9C9BA" +
+ "F574A9419744897391006382A6F127AB1D9AC2D8C0A598726B",
+ "01000000000000000000000000000000000000000000000000000000000000" +
+ "00000000000000000000000000000000000000000000000000",
+ "00000000000000000000000000000000000000000000000000000000000000" +
+ "00000000000000000000000000000000000000000000000000");
+ testSmallOrder(
+ "X448",
+ "9A8F4925D1519F5775CF46B04B5800D4EE9EE8BAE8BC5565D498C28DD9C9BAF" +
+ "574A9419744897391006382A6F127AB1D9AC2D8C0A598726B",
+ "fefffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff" +
+ "fffffffffffffffffffffffffffffffffffffffffffffffff",
+ "000000000000000000000000000000000000000000000000000000000000000" +
+ "0000000000000000000000000000000000000000000000000");
+ }
+
+ private static void testSmallOrder(String name, String a_pri,
+ String b_pub, String result) throws Exception {
+
+ try {
+ runDiffieHellmanTest(name, a_pri, b_pub, result);
+ } catch (InvalidKeyException ex) {
+ return;
+ }
+
+ throw new RuntimeException("No exception on small-order point");
+ }
+
+ private static void runNonCanonicalTest() throws Exception {
+ // Test non-canonical values
+
+ // high bit of public key set
+ // X25519
+ runDiffieHellmanTest(
+ "X25519",
+ "77076D0A7318A57D3C16C17251B26645DF4C2F87EBC0992AB177FBA51DB92C2A",
+ "DE9EDB7D7B7DC1B4D35B61C2ECE435373F8343C85B78674DADFC7E146F882B8F",
+ "954e472439316f118ae158b65619eecff9e6bcf51ab29add66f3fd088681e233");
+
+ runDiffieHellmanTest(
+ "302e020100300706032b656e0500042077076d0a7318a57d3c16c17251b266" +
+ "45df4c2f87ebc0992ab177fba51db92c2a",
+ "302c300706032b656e0500032100de9edb7d7b7dc1b4d35b61c2ece435373f" +
+ "8343c85b78674dadfc7e146f882b8f",
+ "954e472439316f118ae158b65619eecff9e6bcf51ab29add66f3fd088681e233");
+
+ // large public key
+
+ // X25519
+ // public key value is 2^255-2
+ runDiffieHellmanTest(
+ "X25519",
+ "77076D0A7318A57D3C16C17251B26645DF4C2F87EBC0992AB177FBA51DB92C2A",
+ "FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F",
+ "81a02a45014594332261085128959869fc0540c6b12380f51db4b41380de2c2c");
+
+ runDiffieHellmanTest(
+ "302e020100300706032b656e0500042077076d0a7318a57d3c16c17251b266" +
+ "45df4c2f87ebc0992ab177fba51db92c2a",
+ "302c300706032b656e0500032100FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" +
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFF7F",
+ "81a02a45014594332261085128959869fc0540c6b12380f51db4b41380de2c2c");
+
+ // X448
+ // public key value is 2^448-2
+ runDiffieHellmanTest(
+ "X448",
+ "9A8F4925D1519F5775CF46B04B5800D4EE9EE8BAE8BC5565D498C28DD9C9BA" +
+ "F574A9419744897391006382A6F127AB1D9AC2D8C0A598726B",
+ "FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" +
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+ "66e2e682b1f8e68c809f1bb3e406bd826921d9c1a5bfbfcbab7ae72feecee6" +
+ "3660eabd54934f3382061d17607f581a90bdac917a064959fb");
+
+ runDiffieHellmanTest(
+ "3046020100300706032B656F050004389A8F4925D1519F5775CF46B04B5800" +
+ "D4EE9EE8BAE8BC5565D498C28DD9C9BAF574A9419744897391006382A6F127" +
+ "AB1D9AC2D8C0A598726B",
+ "3044300706032B656F0500033900FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" +
+ "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" +
+ "FFFFFFFFFFFFFFFF",
+ "66e2e682b1f8e68c809f1bb3e406bd826921d9c1a5bfbfcbab7ae72feecee6" +
+ "3660eabd54934f3382061d17607f581a90bdac917a064959fb");
+
+ }
+
+ private static void runKAT() throws Exception {
+ // Test both sides of the key exchange using vectors in RFC 7748
+
+ // X25519
+ // raw
+ runDiffieHellmanTest(
+ "X25519",
+ "77076D0A7318A57D3C16C17251B26645DF4C2F87EBC0992AB177FBA51DB92C2A",
+ "DE9EDB7D7B7DC1B4D35B61C2ECE435373F8343C85B78674DADFC7E146F882B4F",
+ "4a5d9d5ba4ce2de1728e3bf480350f25e07e21c947d19e3376f09b3c1e161742");
+
+ runDiffieHellmanTest(
+ "X25519",
+ "5DAB087E624A8A4B79E17F8B83800EE66F3BB1292618B6FD1C2F8B27FF88E0EB",
+ "8520F0098930A754748B7DDCB43EF75A0DBF3A0D26381AF4EBA4A98EAA9B4E6A",
+ "4a5d9d5ba4ce2de1728e3bf480350f25e07e21c947d19e3376f09b3c1e161742");
+
+ // encoded
+ runDiffieHellmanTest(
+ "302E020100300706032B656E0500042077076D0A7318A57D3C16C17251B266" +
+ "45DF4C2F87EBC0992AB177FBA51DB92C2A",
+ "302C300706032B656E0500032100DE9EDB7D7B7DC1B4D35B61C2ECE435373F" +
+ "8343C85B78674DADFC7E146F882B4F",
+ "4a5d9d5ba4ce2de1728e3bf480350f25e07e21c947d19e3376f09b3c1e161742");
+
+ runDiffieHellmanTest(
+ "302E020100300706032B656E050004205DAB087E624A8A4B79E17F8B83800E" +
+ "E66F3BB1292618B6FD1C2F8B27FF88E0EB",
+ "302C300706032B656E05000321008520F0098930A754748B7DDCB43EF75A0D" +
+ "BF3A0D26381AF4EBA4A98EAA9B4E6A",
+ "4a5d9d5ba4ce2de1728e3bf480350f25e07e21c947d19e3376f09b3c1e161742");
+
+ // X448
+ //raw
+ runDiffieHellmanTest(
+ "X448",
+ "9A8F4925D1519F5775CF46B04B5800D4EE9EE8BAE8BC5565D498C28DD9C9BA" +
+ "F574A9419744897391006382A6F127AB1D9AC2D8C0A598726B",
+ "3EB7A829B0CD20F5BCFC0B599B6FECCF6DA4627107BDB0D4F345B43027D8B9" +
+ "72FC3E34FB4232A13CA706DCB57AEC3DAE07BDC1C67BF33609",
+ "07fff4181ac6cc95ec1c16a94a0f74d12da232ce40a77552281d282bb60c0b" +
+ "56fd2464c335543936521c24403085d59a449a5037514a879d");
+
+ runDiffieHellmanTest(
+ "X448",
+ "1C306A7AC2A0E2E0990B294470CBA339E6453772B075811D8FAD0D1D6927C1" +
+ "20BB5EE8972B0D3E21374C9C921B09D1B0366F10B65173992D",
+ "9B08F7CC31B7E3E67D22D5AEA121074A273BD2B83DE09C63FAA73D2C22C5D9" +
+ "BBC836647241D953D40C5B12DA88120D53177F80E532C41FA0",
+ "07fff4181ac6cc95ec1c16a94a0f74d12da232ce40a77552281d282bb60c0b" +
+ "56fd2464c335543936521c24403085d59a449a5037514a879d");
+
+ //encoded
+ runDiffieHellmanTest(
+ "3046020100300706032B656F050004389A8F4925D1519F5775CF46B04B5800" +
+ "D4EE9EE8BAE8BC5565D498C28DD9C9BAF574A9419744897391006382A6F127" +
+ "AB1D9AC2D8C0A598726B",
+ "3044300706032B656F05000339003EB7A829B0CD20F5BCFC0B599B6FECCF6D" +
+ "A4627107BDB0D4F345B43027D8B972FC3E34FB4232A13CA706DCB57AEC3DAE" +
+ "07BDC1C67BF33609",
+ "07fff4181ac6cc95ec1c16a94a0f74d12da232ce40a77552281d282bb60c0b" +
+ "56fd2464c335543936521c24403085d59a449a5037514a879d");
+
+ runDiffieHellmanTest(
+ "3046020100300706032B656F050004381C306A7AC2A0E2E0990B294470CBA3" +
+ "39E6453772B075811D8FAD0D1D6927C120BB5EE8972B0D3E21374C9C921B09" +
+ "D1B0366F10B65173992D",
+ "3044300706032B656F05000339009B08F7CC31B7E3E67D22D5AEA121074A27" +
+ "3BD2B83DE09C63FAA73D2C22C5D9BBC836647241D953D40C5B12DA88120D53" +
+ "177F80E532C41FA0",
+ "07fff4181ac6cc95ec1c16a94a0f74d12da232ce40a77552281d282bb60c0b" +
+ "56fd2464c335543936521c24403085d59a449a5037514a879d");
+ }
+
+ private static void runDiffieHellmanTest(String a_pri,
+ String b_pub, String result) throws Exception {
+
+ KeyFactory kf = KeyFactory.getInstance("XDH");
+ byte[] a_pri_ba = Convert.hexStringToByteArray(a_pri);
+ KeySpec privateSpec = new PKCS8EncodedKeySpec(a_pri_ba);
+ PrivateKey privateKey = kf.generatePrivate(privateSpec);
+ byte[] b_pub_ba = Convert.hexStringToByteArray(b_pub);
+ KeySpec publicSpec = new X509EncodedKeySpec(b_pub_ba);
+ PublicKey publicKey = kf.generatePublic(publicSpec);
+
+ KeyAgreement ka = KeyAgreement.getInstance("XDH");
+ ka.init(privateKey);
+ ka.doPhase(publicKey, true);
+
+ byte[] sharedSecret = ka.generateSecret();
+ byte[] expectedResult = Convert.hexStringToByteArray(result);
+ if (!Arrays.equals(sharedSecret, expectedResult)) {
+ throw new RuntimeException("fail: expected=" + result + ", actual="
+ + Convert.byteArrayToHexString(sharedSecret));
+ }
+
+ }
+
+ private static void runDiffieHellmanTest(String curveName, String a_pri,
+ String b_pub, String result) throws Exception {
+
+ NamedParameterSpec paramSpec = new NamedParameterSpec(curveName);
+ KeyFactory kf = KeyFactory.getInstance("XDH");
+ KeySpec privateSpec = new XECPrivateKeySpec(paramSpec,
+ Convert.hexStringToByteArray(a_pri));
+ PrivateKey privateKey = kf.generatePrivate(privateSpec);
+ boolean clearHighBit = curveName.equals("X25519");
+ KeySpec publicSpec = new XECPublicKeySpec(paramSpec,
+ Convert.hexStringToBigInteger(clearHighBit, b_pub));
+ PublicKey publicKey = kf.generatePublic(publicSpec);
+
+ byte[] encodedPrivateKey = privateKey.getEncoded();
+ System.out.println("Encoded private: " +
+ Convert.byteArrayToHexString(encodedPrivateKey));
+ byte[] encodedPublicKey = publicKey.getEncoded();
+ System.out.println("Encoded public: " +
+ Convert.byteArrayToHexString(encodedPublicKey));
+
+ KeyAgreement ka = KeyAgreement.getInstance("XDH");
+ ka.init(privateKey);
+ ka.doPhase(publicKey, true);
+
+ byte[] sharedSecret = ka.generateSecret();
+ byte[] expectedResult = Convert.hexStringToByteArray(result);
+ if (!Arrays.equals(sharedSecret, expectedResult)) {
+ throw new RuntimeException("fail: expected=" + result + ", actual="
+ + Convert.byteArrayToHexString(sharedSecret));
+ }
+ }
+
+ /*
+ * Ensure that SunEC rejects parameters/points for the wrong curve
+ * when the algorithm ID for a specific curve is specified.
+ */
+ private static void runCurveMixTest() throws Exception {
+ runCurveMixTest("SunEC", "X25519", 448);
+ runCurveMixTest("SunEC", "X25519", "X448");
+ runCurveMixTest("SunEC", "X448", 255);
+ runCurveMixTest("SunEC", "X448", "X25519");
+ }
+
+ private static void runCurveMixTest(String providerName, String name,
+ Object param) throws Exception {
+
+ KeyPairGenerator kpg = KeyPairGenerator.getInstance(name,
+ providerName);
+
+ try {
+ if (param instanceof Integer) {
+ kpg.initialize((Integer) param);
+ } else if (param instanceof String) {
+ kpg.initialize(new NamedParameterSpec((String) param));
+ }
+ throw new RuntimeException(name + " KeyPairGenerator accepted "
+ + param.toString() + " parameters");
+ } catch (InvalidParameterException ex) {
+ // expected
+ }
+
+ // the rest of the test uses the parameter as an algorithm name to
+ // produce keys
+ if (param instanceof Integer) {
+ return;
+ }
+ String otherName = (String) param;
+ KeyPairGenerator otherKpg = KeyPairGenerator.getInstance(otherName,
+ providerName);
+ KeyPair otherKp = otherKpg.generateKeyPair();
+
+ // ensure the KeyFactory rejects incorrect keys
+ KeyFactory kf = KeyFactory.getInstance(name, providerName);
+ try {
+ kf.getKeySpec(otherKp.getPublic(), XECPublicKeySpec.class);
+ throw new RuntimeException(name + " KeyFactory accepted "
+ + param.toString() + " key");
+ } catch (InvalidKeySpecException ex) {
+ // expected
+ }
+ try {
+ kf.getKeySpec(otherKp.getPrivate(), XECPrivateKeySpec.class);
+ throw new RuntimeException(name + " KeyFactory accepted "
+ + param.toString() + " key");
+ } catch (InvalidKeySpecException ex) {
+ // expected
+ }
+
+ try {
+ kf.translateKey(otherKp.getPublic());
+ throw new RuntimeException(name + " KeyFactory accepted "
+ + param.toString() + " key");
+ } catch (InvalidKeyException ex) {
+ // expected
+ }
+ try {
+ kf.translateKey(otherKp.getPrivate());
+ throw new RuntimeException(name + " KeyFactory accepted "
+ + param.toString() + " key");
+ } catch (InvalidKeyException ex) {
+ // expected
+ }
+
+ KeyFactory otherKf = KeyFactory.getInstance(otherName, providerName);
+ XECPublicKeySpec otherPubSpec = otherKf.getKeySpec(otherKp.getPublic(),
+ XECPublicKeySpec.class);
+ try {
+ kf.generatePublic(otherPubSpec);
+ throw new RuntimeException(name + " KeyFactory accepted "
+ + param.toString() + " key");
+ } catch (InvalidKeySpecException ex) {
+ // expected
+ }
+ XECPrivateKeySpec otherPriSpec =
+ otherKf.getKeySpec(otherKp.getPrivate(), XECPrivateKeySpec.class);
+ try {
+ kf.generatePrivate(otherPriSpec);
+ throw new RuntimeException(name + " KeyFactory accepted "
+ + param.toString() + " key");
+ } catch (InvalidKeySpecException ex) {
+ // expected
+ }
+
+ // ensure the KeyAgreement rejects incorrect keys
+ KeyAgreement ka = KeyAgreement.getInstance(name, providerName);
+ try {
+ ka.init(otherKp.getPrivate());
+ throw new RuntimeException(name + " KeyAgreement accepted "
+ + param.toString() + " key");
+ } catch (InvalidKeyException ex) {
+ // expected
+ }
+ KeyPair kp = kpg.generateKeyPair();
+ ka.init(kp.getPrivate());
+ try {
+ // This should always be rejected because it doesn't match the key
+ // passed to init, but it is tested here for good measure.
+ ka.doPhase(otherKp.getPublic(), true);
+ throw new RuntimeException(name + " KeyAgreement accepted "
+ + param.toString() + " key");
+ } catch (InvalidKeyException ex) {
+ // expected
+ }
+ }
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/security/ec/xec/TestXECOps.java Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,130 @@
+/*
+ * Copyright (c) 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.
+ */
+
+/*
+ * @test
+ * @bug 8171277
+ * @summary Test XEC curve operations
+ * @modules jdk.crypto.ec/sun.security.ec
+ * @library /test/lib
+ * @build jdk.test.lib.Convert
+ * @run main TestXECOps
+ */
+
+import sun.security.ec.*;
+import java.util.*;
+import jdk.test.lib.Convert;
+
+// Test vectors are from RFC 7748
+
+public class TestXECOps {
+
+ public static void main(String[] args) {
+ TestXECOps m = new TestXECOps();
+
+ m.runTest("X25519",
+ "a546e36bf0527c9d3b16154b82465edd62144c0ac1fc5a18506a2244ba449ac4",
+ "e6db6867583030db3594c1a424b15f7c726624ec26b3353b10a903a6d0ab1c4c",
+ "c3da55379de9c6908e94ea4df28d084f32eccf03491c71f754b4075577a28552");
+
+ m.runTest("X25519",
+ "4b66e9d4d1b4673c5ad22691957d6af5c11b6421e0ea01d42ca4169e7918ba0d",
+ "e5210f12786811d3f4b7959d0538ae2c31dbe7106fc03c3efc4cd549c715a493",
+ "95cbde9476e8907d7aade45cb4b873f88b595a68799fa152e6f8f7647aac7957");
+
+ m.runDiffieHellmanTest("X25519",
+ "77076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c2a",
+ "5dab087e624a8a4b79e17f8b83800ee66f3bb1292618b6fd1c2f8b27ff88e0eb",
+ "4a5d9d5ba4ce2de1728e3bf480350f25e07e21c947d19e3376f09b3c1e161742");
+
+
+ m.runTest("X448",
+ "3d262fddf9ec8e88495266fea19a34d28882acef045104d0d1aae121700a77" +
+ "9c984c24f8cdd78fbff44943eba368f54b29259a4f1c600ad3",
+ "06fce640fa3487bfda5f6cf2d5263f8aad88334cbd07437f020f08f9814dc0" +
+ "31ddbdc38c19c6da2583fa5429db94ada18aa7a7fb4ef8a086",
+ "ce3e4ff95a60dc6697da1db1d85e6afbdf79b50a2412d7546d5f239fe14fba" +
+ "adeb445fc66a01b0779d98223961111e21766282f73dd96b6f");
+
+ m.runTest("X448",
+ "203d494428b8399352665ddca42f9de8fef600908e0d461cb021f8c538345d" +
+ "d77c3e4806e25f46d3315c44e0a5b4371282dd2c8d5be3095f",
+ "0fbcc2f993cd56d3305b0b7d9e55d4c1a8fb5dbb52f8e9a1e9b6201b165d01" +
+ "5894e56c4d3570bee52fe205e28a78b91cdfbde71ce8d157db",
+ "884a02576239ff7a2f2f63b2db6a9ff37047ac13568e1e30fe63c4a7ad1b3e" +
+ "e3a5700df34321d62077e63633c575c1c954514e99da7c179d");
+
+ m.runDiffieHellmanTest("X448",
+ "9a8f4925d1519f5775cf46b04b5800d4ee9ee8bae8bc5565d498c28dd9c9ba" +
+ "f574a9419744897391006382a6f127ab1d9ac2d8c0a598726b",
+ "1c306a7ac2a0e2e0990b294470cba339e6453772b075811d8fad0d1d6927c1" +
+ "20bb5ee8972b0d3e21374c9c921b09d1b0366f10b65173992d",
+ "07fff4181ac6cc95ec1c16a94a0f74d12da232ce40a77552281d282bb60c0b" +
+ "56fd2464c335543936521c24403085d59a449a5037514a879d");
+ }
+
+ private void runDiffieHellmanTest(String opName, String a_str,
+ String b_str, String result_str) {
+
+ XECParameters settings = XECParameters.getByName(opName).get();
+ XECOperations ops = new XECOperations(settings);
+
+ byte[] basePoint = Convert.byteToByteArray(settings.getBasePoint(),
+ settings.getBytes());
+ byte[] a = Convert.hexStringToByteArray(a_str);
+ byte[] b = Convert.hexStringToByteArray(b_str);
+ byte[] expectedResult = Convert.hexStringToByteArray(result_str);
+
+ byte[] a_copy = Arrays.copyOf(a, a.length);
+ byte[] b_copy = Arrays.copyOf(b, b.length);
+ byte[] basePoint_copy = Arrays.copyOf(basePoint, basePoint.length);
+
+ byte[] resultA = ops.encodedPointMultiply(b,
+ ops.encodedPointMultiply(a, basePoint));
+ byte[] resultB = ops.encodedPointMultiply(a_copy,
+ ops.encodedPointMultiply(b_copy, basePoint_copy));
+ if (!Arrays.equals(resultA, expectedResult)) {
+ throw new RuntimeException("fail");
+ }
+ if (!Arrays.equals(resultB, expectedResult)) {
+ throw new RuntimeException("fail");
+ }
+ }
+
+ private void runTest(String opName, String k_in_str,
+ String u_in_str, String u_out_str) {
+
+ byte[] k_in = Convert.hexStringToByteArray(k_in_str);
+ byte[] u_in = Convert.hexStringToByteArray(u_in_str);
+ byte[] u_out_expected = Convert.hexStringToByteArray(u_out_str);
+
+ XECParameters settings = XECParameters.getByName(opName).get();
+ XECOperations ops = new XECOperations(settings);
+ byte[] u_out = ops.encodedPointMultiply(k_in, u_in);
+
+ if (!Arrays.equals(u_out, u_out_expected)) {
+ throw new RuntimeException("fail");
+ }
+ }
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/security/ec/xec/X25519.iter Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,2002 @@
+0,k,0900000000000000000000000000000000000000000000000000000000000000
+0,u,0900000000000000000000000000000000000000000000000000000000000000
+1000,k,684CF59BA83309552800EF566F2F4D3C1C3887C49360E3875F2EB94D99532C51
+1000,u,E4BA7DF230E7574D397D88E1E18069D405DD71C6A286086DDA6CC54D04F69A18
+2000,k,DBAF93A66BBE098551040FBEA14B5FF3EF4DF696F1A55BB44749265DCDF5DE3D
+2000,u,2611734027FED424184FAC583DAFDA42CB089655DE50C84BB703EC8E98A50B10
+3000,k,CE14DEA80A92A944C215915A4ABEE253B2FBA7ED7874EBB0AF34F903D397BA33
+3000,u,1BCC668626936CCBE8890F4442EDF3FEC2A72E7689B4C00075C6BB102321F647
+4000,k,1A8C16163A394975E98CAA730CDEF215778684AC3D19A249D4487B1763A97B49
+4000,u,D50599172794263E7D35A3096867074042C643D82F2A835476A75F1387FE8E5E
+5000,k,90ACA1C8DAB080CCCF82D3E972F2DBAC319E1A1424A77852A8B57A5957458353
+5000,u,29C4B177223CB60BA995EE2F5E3E556DEFE3D79743FE2D83B2ADA17DA1B85D1A
+6000,k,BCFF817ACA4621993B9927C2E6F8FE9C2A292842001DACFAE358CC47A40B166D
+6000,u,18D50EF8C25F117F4A5B54282FA52BB4C76BDAAF9E7B175EA4B21C22219BD74E
+7000,k,7087B0343D6A878E498541516BA953EF83D956A2FE25D54F792FCEDDD52C1365
+7000,u,C7B11D99ADA1E5C9F49BE5728BB67CF6A29095DB6B1588D9E6D6FF8DA0AD5757
+8000,k,1D94A1C031421A883CE8767563946FEA343806D035B1705DC042BB2068A29311
+8000,u,5CC6ED6699ECFCD97D1C7198F828431AAB8AF1DBF628A5F7959B384AC01EE75C
+9000,k,AF982B810595122705E73AFE142C16946C74FB2DB13E46AB928A0F431049612B
+9000,u,7CDFFBCA7286187233C7D62ACE0FD09500595197D309E2DA7F324D767955A263
+10000,k,2C125A20F639D504A7703D2E223C79A79DE48C4EE8C23379AA19A62ECD211815
+10000,u,6ACC9309A5CC14E183DC85DC8C836A0CA2877A753AFBBDE0CF93A86303EA4E7C
+11000,k,C4E6F26C29C5B0EBB6AF8424B52A3A344D4CC1C88688BE30DE470C8365D4F172
+11000,u,C6164460467B405E3070F0875C5CFFFB0B2EA45C35D7180F6B50AEBDE9E4A833
+12000,k,5E4B725BFE2E1D9B28DD63C94EF4316E0BD8E573265929716F2AD2A1224A7E60
+12000,u,FFE119058D2C17DBB54A62ACB2019C3F979D0093FAABE9C13512D272F04FBE3D
+13000,k,C89B8104D3A34752054FF5388CA29D16F774FAAD089F7F420D3DE3580C82852E
+13000,u,5269E0A26661DB2BBFD5617E1C69F38DC01D5668E8D19C08AFD36ADAA07FB911
+14000,k,83D255FAEFD850EC7DA5472607250FEC1E2ABAD0B155E7C7472E5F5F23556A3A
+14000,u,0A7D73FFDA2AA9B986A07A1823BA412F5ACFBF1D01E3DA7E93502ACE5D862264
+15000,k,EA0E0194B81C833B2DCBC095837E38C5F73EE9E6A628DDDECBB441894B299E7E
+15000,u,9F5BA6574A39F46D0912910D03D38279A511591A7D788F185A1915A77AFD0723
+16000,k,05E8938C734A5A17D1B61902C98C5DAFEB1A380489DE253B83B2626DEEDD7325
+16000,u,D5DA6049A9CA1DA64BC5239AD53BD3D20489EB9427CF8628E95C44BC6FF20162
+17000,k,C2EF62DF60959AB818E24FAFAFDF986206EB70C236973E3F2FAFD176CFDFDB32
+17000,u,AD41989C464001732C8840784264DCA13081035F2AA6D06059A0EDA14D486644
+18000,k,26B58D28F6E5320C09EE471A68EFDD0EF48DB378B776DD2D337567ED6405073A
+18000,u,24061DBCB41E42A82BAF92EA526CE28B9B33E71C9825C014397DF6791C28EE01
+19000,k,825251693275AE5E523743061C31AACBFB90A17CD206DF1AE3D07DE11D031C32
+19000,u,697305DDB3C2A15C5255BCE0E59CD203FE274DA8FF9EDD9D0E0E4EEFEFD95240
+20000,k,D4AB9827C52324822CC439FFA27107B9824569EBCFAC15BD490F732F90E0B13A
+20000,u,7072DDE149F9852704AFF14D64E438B89D6C00724E524D8FB31B6EE11079667F
+21000,k,1A5111535180DF903E723CBD64C7C960AC3491F6BA0620E0283395FE60AC9F0B
+21000,u,E77127E3657A4989BBDE6D7D923304AF58B3DD3DE376542D5D88835BF2DB6104
+22000,k,CC18D1C57D0E7FD8B8F977FF1BDBCD957FF9CA0FC87635A5ABF39DFFF6D7D538
+22000,u,C8C16D8086D4EC46AB4E198672050DA1D7CE645031F8FCD76313181BAB66844C
+23000,k,FA716F22996C9B1ABF7B0F5511289198B32CBA05266BC684B3B73EFEE9272A6F
+23000,u,566812D78EC7B648CCAF21FA36C1553B2672A5E66E5F233BF2D69E1BB84ADB03
+24000,k,460C0430698422EF91D1E66DF4812F3F561B5539D453DEE0DDB97D00E143CD7F
+24000,u,94F86BC176145A4CA1774B12398956D1B3926C46FC3992808B564CA9531CFB1B
+25000,k,3D2318858E8F4068C51BE1FF0BCF7752BEE04E91D147597B4FF3AAC2301EFB3A
+25000,u,1F6F66591E2D5ED239E1CB94EBE39D4118757D1355394519700F6CD47DF53826
+26000,k,D10C565CF35C183381EA9F2FA7DC953A517970F63401D79F979A47FA38B0DD28
+26000,u,1E3D11E601614D5472352133CF684560FF9962CBF88911B5D439E2A00D8D9807
+27000,k,D736F4E57270CA7C88B89BD351EF603AC6036D43303BBAA81D252A484380DF02
+27000,u,9FAD30E3B3DD8A1818B8698D219B6E81641BADDD3B614F0610AA11DB01C55F06
+28000,k,40C4E27F8C31E513B16B105DB6D565DE590B2CEEEF1D461B3807C38F100C0C45
+28000,u,C1ABD6DCD238F50ECD656561C6154148C6B5B40D99C0584FDEA6872BC6F8A935
+29000,k,E04C7CEE2145E25B828048995C9EEEA93739524ADDF2269D915BAB8CD31E352D
+29000,u,A48DFE1499ACB3EEF428BC538401C697BC8EBFA213786A9D028D9182309C2C09
+30000,k,7BEC00362BE91E93D3157888A7A69D6AAF56DCD31703C64629C07FE1CAD6A769
+30000,u,3A8E96AA2FBF376E8E84437E6AE29721485866E92AA2011D5E7857BBF2E7714B
+31000,k,B2AD33A0062E8B0210FD0B9466C4E69855C42DA8CDEB51839FFB205C247FF810
+31000,u,12E3A58CED72FF896678ED067911979871F01FC0F825BF50303CB7B893680B46
+32000,k,7767AD25FB29AB74585C798383911A1AB8EABA96CFD2B7C49CF38DF75631E565
+32000,u,1DBCB69D897C2DF04413529BDD1ED957D3FE3C09DC0B7BDC935541A99E4C9A35
+33000,k,E0D9BB103F2C311AC1A12D657AE48EC995048EDE3617332FD588932ACA7ECD7A
+33000,u,6422DEB8AFBE10C82C1BD59DE5A1C008E7C7788AC1586A836E48C232A8FAF97B
+34000,k,47ED96A302CC9026F63907308A4701195B5205C936E90F605003C648546C1774
+34000,u,29DD859788D2D5C9C0B9EC4DB787DC499711D3A0E15F487F45AC59216865324F
+35000,k,53C4039E42479CA8F4325363C5E6D001C38F6644598EE89E4A001B1EB987480D
+35000,u,049F7707038BD7ED081DE2BFA476B27AFFA96F6CE68DF3B30BCBBB164E77632A
+36000,k,57776ECD6439E18A904A4B6E499AE12D80B3CA0C18B3C98B4647768FC7190D0A
+36000,u,016F35C5C89F01BAC3217222CB37AA21297282A2AF647209A48CC1233D37044D
+37000,k,6F322C979C44EAF6713912F64EA3DCCCFB96A7E56CA8FF377272D6BA1C4CD418
+37000,u,C2D59C3BD6F85E5C28C585478B778EAAE2F3E700BB5248AC09BA3FA811B7EF2C
+38000,k,99E258131078603922C705C6CE9F731C3CDF51F41F838A2DDD771FDF13B30B1A
+38000,u,F6CB3493075223B49ECB18BAEB16267CE34E8BC9189FC705DFEB8746329FB25C
+39000,k,9DAE24C03BC0D602166608E9E71AA3059601660DDBBA2577920EB345AB8EF354
+39000,u,247C4617ACC6434F7CB3A0CB6B6202F0CFEEC6A2F157B3EAFD4B813418DD206A
+40000,k,3355456F77EADB57CF1A4B5ACFCDC04079CDAA25A780E4CF49F4B5A1EE97A476
+40000,u,46BDE8169C0079FB6B39288CF3F07FFD9AD2D0A3B3DB0DD83C7C6666168AAC15
+41000,k,6E6ED2B1FF4F0D4C3BCC146767398517A3A6B5A1B0ECEE9509DD38407C725716
+41000,u,230FAE801154F9035FC6641902F14B7CA06095975D0A3148F685A7F804E94C6C
+42000,k,55E911DC3BD54AA3F1CA6065CF8D25C7D07C9E4FB4BAA8CFDF4D4F33C81BF74F
+42000,u,07D4BDA4DB042EE7BD1BE3BA823CD90C49AED986AB667FAA5B0BE3B76DFA3B0D
+43000,k,CF19918515842FEB774E685671157A3F9DE4794FA96F89EFF954C6D1AAB2981B
+43000,u,9DE722697FD40F7C74DE44BB85C22C78E475D4A9B38F98A6C5AD245CCF28DB7D
+44000,k,CCA2BE3CC8E1A01F6533D847C99843E18FCAF9CD0EB9605C46B5481DB0376207
+44000,u,3BF0A66E59F277F721D052C400CC798271D521B69880F94A7EFED33624B02D78
+45000,k,3182A4666FB1A70281792F98B829F2FD7C40379833536EFA6F513FD2EEC8760B
+45000,u,0BAC348AD6A7DACC520822D23038333B1108FE76B7C7782B5616A8F1251E047A
+46000,k,5CDD71E8BB2F7542566C6E42CD45E3E7CDB9238BAA4E96461E1F5C9B035F1405
+46000,u,B11D53A0DD18B2FF5A5AB0082F8471809B996E8565BF4B61D4AFF141EE2F1D47
+47000,k,69DBFBD1FAD63A15D34F3CABD5B4CBF42AA9C29F3D27A1CD2C568BB5E6E39559
+47000,u,852F7F6A41413ABA1E0188FD328988F952BBA7298023B8BEBD3233329F23AE46
+48000,k,A2A6184A1DEC235A4D1A1795C8BA0E8C186C2335D67A75973868CAD11EEC363B
+48000,u,89F441E56333107CDFDEC5DE38FB31DBA5A7C5FC59961838CA5B50A0DE659F4A
+49000,k,D827CA567E6ED98E761823A8E02DF2C03A3CB403F27DE427A424338C6866497A
+49000,u,4E9B5A2E2031EA4D964CB8BE0617CC0F669B6D528D199EC48FF1E6314A5E996C
+50000,k,1670488F039B8DE4310A4D66AC713C9A59FE4E1375E38BED432D5AC232A18676
+50000,u,7FD865D809E8E47F308C68BCCBF2CA9451EAF49319CCB2FE362C83FC5C11C743
+51000,k,41D9A07A8A2E9B403F8577C67565EF6DAD4862ED0FE8469B8742185EE333F377
+51000,u,A07535E8BC108A135C0CC9441CD38F44DB89A24B66A5C8396713401F2F60545A
+52000,k,594D0199A47A45A2F447D722053E2DE8B30E1A234EDF3AB56F7721787F5B3E68
+52000,u,D686D468AA9BC461CED3864E3E99694B9C893BF421AA31771FB3F811E0A2E863
+53000,k,39015CBF722FC40E4C4174C0E2D3010A5D844E8747F7034674EF4F6DB36D860E
+53000,u,B6F96213A32591B26EE7E925C578513A82146FDD756A18904E2F223F63908433
+54000,k,E7B84E0ADBB5FDD8CBB7C3760DD7B3A239424E74DCCF3BD3EEDE8E834D69F707
+54000,u,55EDAF4587E8F64B8F47A74490D4E1B3F51F62904C8EFB1E8C0154CBB3F8FC12
+55000,k,5E308C20E59BF534312A6814290009CB38FBC2A3E5B9CE0133FCD4F23EC8457B
+55000,u,125E06B78416F05664E7896BF9A0DE40D2B49A04B537D220E8FF3209FB1E0169
+56000,k,AA3B9ABBD0CEEEA33BC20999556C5CA45D4C564FBCEFBF98F20BFF4D8DBF8970
+56000,u,F2481EC74E6D93358EB0F260412437B282AB035DD34465DE88A19D8929E93254
+57000,k,D90BF9BB2DCCBDDD1AC55CE7B09590EE45C54C0B55C9A9F5BC18232E7759D80C
+57000,u,8DB1286CACAEF34FB19CBA7068265B4E2DE6C90B0DB98C5DA4695AAA9FAA864F
+58000,k,AD9D880CE60264C715AF696A389D609C64C27AC064F58631F4C2165E5FB8E62F
+58000,u,852BD6F572E7A828DD777E7A423FBAB25E1F32DFC9603852A2CD2ED7C714735B
+59000,k,24A2E5BE4F1D2908984E62D324EAAFC748C3B339C9DB893C40261C515109A815
+59000,u,917CFB5DE8258C989ECA0F1C47D35ED93F6D5ED7CD82E1A963E3A7F5E1499802
+60000,k,C3837E8A9EBDB1CB53A8A22B5E0813AF948692FD0B6E12CBA8DE6720DA31752A
+60000,u,5226429B3505C6763B97F95F4DD4668400FD754D0471569190596D8E4B963274
+61000,k,1A8B466BAD74C0BD61FD40604692364BF6F80F70611E10939888B63917AD690F
+61000,u,DCB93232378B30CD996536D385DC196248D2A2F232E6148A1827C399ECBEAB32
+62000,k,7729594689384016C678A1C2776A7C9BAD1BFB448FEECE549707570B011D7E25
+62000,u,E13406D64DEAD6EA75DF3BCC869A7C83A12A502237BD858AB4C31740FD2CCB63
+63000,k,D6A2B9E6BEEA5DBA89552480C4CC25B3CDA8F160DFBC2D01DE92D4F61D36DC46
+63000,u,6026354144B74F2DDD52D0B5C64629F1929A0B6E261F5D9D915CD8BB98F9301A
+64000,k,0944798F67950748E231EA78285E5D43C6034B557A6486288400DD83CC840521
+64000,u,4359D36946AF525931B37A61895521644F14655299EDEF22E92BD15E20BEA11A
+65000,k,512454D18396A744612E61F6AE4F0642ADBF34BB1A727037B489A51ACB3F396C
+65000,u,4B102C3615964024B50FBAA5884D5876312AD60F02681B2E892B1B83315BCC3E
+66000,k,BDB47EF6BF2DAF2985B8D22F767EEBCD8B91E6C9B27FF23FEDE528E412B22A6D
+66000,u,970028923DA15BD75DF19D435A93C771A6FDBE18890652AD5DF968731FCABA35
+67000,k,75991576E82058347E0FEC4AEB319D40929CBB3200C859D7B5C2BD9ED0DD383D
+67000,u,EDFBA1B230E802C2FAE53E8B8A3FCAE8D739330BE8811E56EFB3BE85D4256F02
+68000,k,2A965836CEBB7138008A470393B2F37C635326B7E8DF7DB894114E19E294E905
+68000,u,48A66EBBF1F0030E0B98C9E9E56B4CCB2D35477B7E4B6055BE3448004BF0921F
+69000,k,99C080CB7CBF4E803284083EE02623045535671367E5E6DB170C4C9FDF07605A
+69000,u,BA3AED98D637D99FBE6BB03CEA6AF9D29ED3D7EFE7245A9CDD43B689CB2A3C5D
+70000,k,56B5FE84D2432D649C00A5E1CB2F7CDAC2E4C2754D49EB80AA77E239838BBA23
+70000,u,20D0B187CDC6B97247422E9349BD155EC5BD55CDC992BAEA60225704626C0D77
+71000,k,8E4BC06B142D5F4438655CA2944777DE7A06F10B0FC31EC36716825EB678C50E
+71000,u,DAE1AC0DAC80364B7960F03155B3A5B81885F2DAADA89CBB1BE894AEF48D4C34
+72000,k,1515A390FAC8B37ABA600D62D93465F57AF80D4D2A64F8AF4BBE46EC7C14682D
+72000,u,BCECEC2B80CC74393D2640DD3C6E92A003E78626D919BBF25B3D9153B5DF2277
+73000,k,2190845A178A117D4A13C9192B047C1DA399DA826E60BB732DC16CBB2020E655
+73000,u,F64E9CB66BADB712E1FA219E7E3A281E896A0B0EB4AC53F205CAEC180A079418
+74000,k,C218BBBE5E6783E43B82E8354602E2A852E217AFECF701686345F62662204F18
+74000,u,2E85BC5F3D20F40567B04113E3309F49A0E8CF9FB9EC5A4BBA328D74A82C6131
+75000,k,3456B940880EAE561031ECCF0516495434BC02C77F641C308C1F5D8ED0FBB813
+75000,u,874435971C8EF0565B4CDA5690F8306601E67DCC09CE216FACEEB00C0393FE71
+76000,k,ECED5E21BB7AC4B719176FAFDE65E90727C46E6B422758D3FEB97B15BEE3152B
+76000,u,BF0D98ABE680D1781EE51B16A1BDA5F1A99DABD1963C9CACB803552023174511
+77000,k,6D9F2384CE504DF4B67E2394958F087FDEE070F5C73671FA4A1E1AD8704BCA5B
+77000,u,1C3CC7713907E9FC8EACF48676A131B9DCF79DF3CA56EA72EC231C570C030D2D
+78000,k,61F7389E665FA57DF529BE08D958CABA6E1FF730BA93FC5D5F677BD60487BD4A
+78000,u,10F8F735D23AEAE9DE83F324D54A9C0CA030A9E6D1A3754C4905E993060AC03F
+79000,k,1087F8B7CD345164943CA995A895321B9F47D97D26A3BC321AE652ECDA81433B
+79000,u,5C1DE67529C3A145433436054493E17C164E984A4AFEB24A4DB21BF70FD02B62
+80000,k,D82E9FAE3F6F9F8674AB20C5D1FF204A2F39E3F46BC6F3D6E0299E6EF4A0707D
+80000,u,B7C9D2D56B9D1B692164EE82CDC06E22FCA56C50CC506704D63F51F36191283C
+81000,k,7022A6DAC0EC0B8157BD7BBFC4B5639B026E139C88D0BC10F9D336BF58628E0D
+81000,u,6923B80BA00181C79A5DFAF2E30EC396BEDB210BE92D812451F824652D937A1D
+82000,k,4CB8CDAE80A8A63EE6024A44A965CE414AC343F11F102BEEB9FBCB950358227A
+82000,u,6D3166CA1F6703DA0C181D873F87542D7BD3863AEA1AB826F54738C64A495918
+83000,k,64F3B4892DAEA7F237FEB9233DB504BCCB5C3F696BB8997D74DA7A6636646D58
+83000,u,A0DBBB2F53FD4EC76E9C2B845EE5C41BF615BD9B8D5B9D230F4FB696D56A320B
+84000,k,B66E2B87B30A4DBD803D7E6CF27C80981D149FBBB4A6489147AB93F362825553
+84000,u,2FA45E24D13781E79AC25D33EF9878206D904E8A36A9E6B5EA652C81589DD233
+85000,k,E8961108853C11B6428C5B7C7DDD94E80F5A752ABE0658CB31A1A7B3437DAD6F
+85000,u,B0CACF772890B6428C23406D2228CAE171BCFA5F0696BAC6AED0594E52993468
+86000,k,47854F1CB0C9582CD0FC903B282F597BFD2347A26F74C35CAFEB727F84F81A6F
+86000,u,9C7ED575787C1D9882070AC3B8374575BEC33B06ECD9DBE835811BDDA0EB7734
+87000,k,E127EF63813FE0BAB0BE7DCF57EF0DC8CF22750257A56F726105761B5400752C
+87000,u,252BFDDC3E61903F9EED3110543B3BE8D48E3C8378C67687CD132A55D924C45C
+88000,k,C238456092AA788B80DB0B49F676834496386B5E101B7C9DC52394658887E933
+88000,u,098D844AF222CB5D7455A3326FE96B74B837E4BE8E478F7D66E3D89EC6EEE862
+89000,k,F71BED16476B1C0142BEE96EA28C4C4531E7ED5E17294BB8C36D329D93CC8509
+89000,u,AAF8E47856A9070D4DBBFBE8BB2532355459EC649AD9BD5A9FCACD829ED1E20D
+90000,k,594BFC44E59E093EAFF191B2213FFBEECC11B86F3A99D6BBBF6E7B04C83FFC75
+90000,u,5C9A9489F64832D4C465456FEFFF545F4B06A5E36BE2EB9DA0431772DF6E976C
+91000,k,2C4565F3EAB68E93A9D88AE17C8CF82B7AAAB88D184867CD9B0BA3D6DCA0A859
+91000,u,784BCD70F52645C190EDB095822F549DD01C08266F6BB18C0E6EF90B9F376D7D
+92000,k,E130D55CA100A809423C6B07AA43BD32906BB102CD7915AE16541055CDF3571D
+92000,u,31E2BE333664769E33BFD323802F35C4DA50DA4771BD55171E1820E0AACCE32F
+93000,k,7B7CA1DE6ED5883776F5D7D23C701259B505643CA73F8FC37E1BFBA3E1E4C31A
+93000,u,C0064E1F4E6937BB6E15F440DE8D6518FCFAC0BBC83520448116E69EF68C4503
+94000,k,672D6157F57429E734B62655F89FDA8FECAFAF8FD680B640289499F473E2947D
+94000,u,DC9693725D7C27D78518BDC9C1DB31120C6BC147AE4A92153E99B54A53277001
+95000,k,20E324148EDE19A6CB1FE79854EADF81CC893D3E3CFCCB7F5210142CAFBF6844
+95000,u,EAC38B042F246C33DBDC5341F6ACA985C6F4138ABD4D0DA88BE33F7C17BF4F5E
+96000,k,1B6DD33A4D7A442B2EFC86365165DEEE48440952EA4628F1FECAC54244039440
+96000,u,1BE7ABA79AF1695F66109CD06C652B8420AD3F8C7F112946A871297DC8EE3F63
+97000,k,9EC88ADD1BD17C1F5DD0F8D66404118EFABC040E9FCBE3D0C2C80B6C5471D25B
+97000,u,09F48BDD69F68D59DBEA177101DC79BEA438C4259BB278D302D8B052A3EF0766
+98000,k,F683B4432899A130C3E2537EBB5F51DF4AA9E76923B474FDA07C41CDA2CC904D
+98000,u,A9C1CC5918F4408B9600AE466CCF20722E7D7D3B47E62D1A2ED19748A7422737
+99000,k,6A9CC95849379F9AF97A8B52FACBBCAA77FC668562B3BEDE487B20893F72164B
+99000,u,ED755781CE6E4C143F82C4CD16EBB38D162E6C1515D7CE89598038682D2FBD77
+100000,k,58698A8C126B120405697D7B449257F249ED4EBD8B3E5478FBF6A23C7FF17529
+100000,u,BC41FCED43BC8050CBAC264C413175B97D043CF9D1477A2F18BBC36687E2276E
+101000,k,55AEDFE326A5379114FE47098DBFEE50CD2E4E2910E91ACEC9475C1EB396E308
+101000,u,84C93CBCF7BD1177DFAC136C02E9E6D540EC9EEFE7FD94263AA33F7F55EA2B46
+102000,k,6BB209724357F641A9886EFC1ACE0415D5FA9C654813BD927EAF48E5BBE2774A
+102000,u,C2A880B8B0DEDD2787DAAB8405D367C5C66BCF894DB63F7DC080B70450737C29
+103000,k,7CFFFD12304E346E8F319E6162E0A56D6130460FF813DC257FF8663011FFB47D
+103000,u,EB5D06A20250A56E6DCF4E54A24D07A8D32A9320F4C9DD0ED2E7CC7F49F4616C
+104000,k,609CF91D0A5CE81547841A179139363B294C73246AB53CD3B3660BFBE6BFE034
+104000,u,0547D6694F9ABE2E41B443877ED990A24E7C3D4175A39A6ECC76790DAE3BAF62
+105000,k,F62E7D6A3A0DCF3F467F48E3565C411B2C00CB237BDC4668947C74D96627B946
+105000,u,F9DDFACC6AA93188BD504E244F82C674562EF5B581652BE909AA35DDCC511F3B
+106000,k,0A469CDB734D596639BE93B22C83EBA52FB36C806AEDB80422ECE12079B3B267
+106000,u,8F2AEC9EBCCF282EAAE270E58F1F579B31DA7ACD82FF31981F21180CD352EE39
+107000,k,3CC78899D528A6830FB9695D9CC0022A6821277441EF3856999A9F5D6AF32945
+107000,u,6293AA53092A584E9179CD86DE39B211ED91C1EF69815D2C49897CCE29AA8A46
+108000,k,CD48CCBB30F2B321DEA5A52C473C5A2D94E4E8FF6308554CFDFB66C8CB4FA763
+108000,u,3F96C469F3EC2BC8F48C32CF0BF7D4B5C8C2163FC6C8B4DEE9D51BA3EEC07A75
+109000,k,746C4EFED958D0FBAA152F32CE89D47DD50FDA699E82D4EBFDC6E46E85471826
+109000,u,71672B4EA648790C0C589762F7C7A2572D1273C8655B986DCB498665DE737249
+110000,k,68480BDCA4BB97143D2804CDFE243620ACA83D607E2A72BF7255E9F2764E9C7C
+110000,u,104677450A3032E0AF7BF084AB136C85EE5E93A77A739BCBA0D3839AF5D26932
+111000,k,FE32B2A585878493698AA22EDB898886A1BBAE16A2C10289401FCF9A6DB4FD5E
+111000,u,F7B6427BA2A9F2D68B8BBA42C1FBD4A36C8CF751933A9078D8999EC8BDDFCC51
+112000,k,BB1B056873C344D1A982BB5AE4AAD767B685011CC287D0FC38209108C6CA5411
+112000,u,3D3A3680D0A71E0D5A14006CE3751C8CCC6E570C9D35FDF9135A3AF19126406B
+113000,k,CC4C65C17F2BB2F1C14AE066E7A88E8A0B6F2C545E1FEB83584B7DDD2B49271C
+113000,u,69D7469C45C868B6E1A4B1F3734C43062D8EE327C87A36D349CC22C62C8C3936
+114000,k,067D9D282CC76CE93B6EEFC112DFB2398767B48CB4B67AC64983D3D538A4EF02
+114000,u,9CAD8BD8D5AE41EF5B80C4E7204B1361DEB2F38274448FB3D1CF6937B538991E
+115000,k,4E86F6383BFB01313FF84239F2CD491DFBEF54E9F8EE9B59BEC8568E5D2B3745
+115000,u,7713F87A23E8FB4EAE836FBB7750A458786BE32EE421046A42852ADC27F3F528
+116000,k,99B8CE336C718B92F068E34A928326689679B99DD871DB290E46D6F283FAA477
+116000,u,66E221AABEC4CB843490ADA04C64D6AE7ECF9D70AF5DCBE925B4ABA978CEC44A
+117000,k,04858FA45AAA5E806B5044256B7A3F274DDF7CB4AB0A2FD46D4F874525359B07
+117000,u,D55B0AC9DA95A3A53D3418CB3F4235794FA84C27F913052060FF300BEA55094C
+118000,k,4447483E3E8AB2942ECADEDA0362F2BA548FD847DE27141403A742DB7DD1FA74
+118000,u,BE748636C3AC0D450F77B179B0E0E4FC7503FC4BB42B656438A21102808EB572
+119000,k,EB2F125BF60C320BA40361B39F29BBE400CF0B56275623C380516C20EF9B6E34
+119000,u,0DC627AC6957198E36D54A9E7381D4D3688DFE569BB05078C6B3AEAAD77A1933
+120000,k,A80BAC80AD01B888638BB60F3003DA6C10A9322658C35F346A7DA119EFA4835C
+120000,u,5D36DC34AF3BE11813C062D58FEE11170696D8B661D361201C5A0E354254EE56
+121000,k,37AD1CF225DDFAD78EB120E48F948C4F3C138EECDE19603FC6BFBD7F43EFAE44
+121000,u,6831D37A6A9CA32FEA2C18E308AFC9B69AD55C1463A1B41A8BBA86B2293E5031
+122000,k,CF44E1B7F425CCC2BFFFA7492027AFD092252D9BB39523DBE2FC1331117DCD48
+122000,u,311F3D85BEA8C0E7E89E075C52DAB1A20AE481E084C1C672742D70A82E0F786E
+123000,k,43E7585E535250D2A5C93FC737CDA0436501A51FE924E932E82A80A3CCE79B7D
+123000,u,BF377A17F4EF16059655608D37EBE25A6B2FB44BA2260A53DCF306842F2D555F
+124000,k,189938D1A9F248A436BC1F1BC2737CCA88DA3281BC7ACF332CED6BA4F9A8E201
+124000,u,C96DC9A4A9607EC18E1208265F3C260EC1369FEEBBF8BD575D7305804918B917
+125000,k,DA7A1454EF8295172F03A6AB5E0EA745DE89FEC2A87773FA111AE6D5C874031C
+125000,u,DA21AB9B27A62786F42F73E0691C5B69410543F1046C32E0298721ED0F15740F
+126000,k,D23B20FA3B55ED567C9F91537D5F977C53E903A1C17BA848BADFBDE787CD3D24
+126000,u,99E457C31EE73FE0B60C9BD87427A0FB05B701DAAC2386B1E98AFDF78D8E6B35
+127000,k,53E93FDB40D098BAEC38D6FD8C15DB6ACC49ED12C49203BD10EBAD71D7231B7D
+127000,u,7015D4D3A25593F6AD8B78B8AAB1469BB7A88A9089F06950D9760C9567723C5A
+128000,k,FA4CBE819FAE3575C171DE481DDC2F0C1655A697E62CD749EB294A3C610E9654
+128000,u,767CA68A655003AC61368B0F6536AF7AA2F54D7DFD0F0F15EBE9E904CD851F34
+129000,k,4AE8A2782CC60EBC8A9B8A3BA58BC6CADF9567CEB181691F17C4FCA1D96FF61C
+129000,u,B1D1CBF6630293D2C081B4955CB6D9D7F66E83B18DC22E8532F18F856D890254
+130000,k,365038A918BF7F3F7DD69B4008A2941BF49EDD1BA0C8F7E515AEFA0CD1432D3B
+130000,u,06D73DB1698379FB6AEA47B9B7E3D9345D94C2DAA8BE54E0B8736053CBB62472
+131000,k,C87433D70696372F30B52C2172A7276EFBD470B2DB5C990B3C59201F2D56C846
+131000,u,229D3BC617A05427B4C4A8EE302EB7AECC45BDE970E168AF259C8F41A48DD13C
+132000,k,0300FFE1CEFB30928F76C84113429D319C355DC951C24B5DA6AB8F4638BFE715
+132000,u,255F174A918B217A945C14794CC8768C0A887FBC26AB8EDB00FB4D16006AE628
+133000,k,C72D083EED37B4CBCC1D44C88CC101435BF8D62306B470547B62B655C034AE12
+133000,u,6FCD28026F826E193CBF91F65DBE05D32FB4D6CAEEA7501DD06404C76D6EDA34
+134000,k,D3C83AB32A36FB102B5A69FAEBAC206D287455CCC9BEB8FB84E577CB68A7903F
+134000,u,18B1DDD20A52D0D1EBDF973917A174FA5DEEF591E445F2A322ACD121FBDCF07D
+135000,k,A19B2BD57C79280FF6C677B2C01293B74BAE28CE0F39111402D412EF8D8E1226
+135000,u,24FD05876ACDB84C83EE4DA01AFBE82B935AE626721619120FB3DAE27F5E1676
+136000,k,2CFF8F105327CA38C1E0E364DA33335D50D7981937C8F11C9A4AC9D23A687E2A
+136000,u,01DDC5347D77E5D3783E8035F285C7270A7E74582C6251A36D67EAA54DBCE67C
+137000,k,7DA2BB0A5F6E2E1A044BDDF91CF5FB9708BC3C3A9E311847986125242DB83449
+137000,u,643C29608F0CAFF1A4FA3B05C011B9C6479C50A464A53179D969427D0170B774
+138000,k,D2294682F8A23B639F37672237C64F428566986BCE635ED9208120A7EE463823
+138000,u,184B968EDE1B5096BFF612F672693C4916C238FA36F56FEE9D4A31BAB3A15A2C
+139000,k,8B51CFF5449D35F9A3F391CC14D16034A1C5083155AF8E1612C929CB0BAE5375
+139000,u,26827B6F41817D7C454401C669CBE90CCC816065DE4210E624050A9DBA96FC27
+140000,k,5CB3F2B4E990FBC757F1C4860CE72C3613E00CC677BF7B2CAB92AFF5C812E42C
+140000,u,1E90CFD8ABC9D50D42B3676EB55E42D22B0C3EB9E155F272A316505412ED2432
+141000,k,87003B20E6A165CDD8640BADE909B504C2DC8498EC12867946D5DA69BCB4D150
+141000,u,6AD2D8D57A3D2DF138904E4724A1E7E781D9A6107A62397B8C3B4E2FA110CF28
+142000,k,2A43D5E3BBFD2C8A70C357B8D55D77A08EED0C4029B9F3709F76188365C8A51D
+142000,u,7C9437099954E6C654AA1DEA49F9680E896252228D2141BF2C6EBCB8FD7A9D4D
+143000,k,599D15B664E1DE125B99ABC0FB03219779B37A16EDB4504375E34F0586020B4C
+143000,u,CF4E148CF44FA92337D43E6A5CA1F43FEFE7DB0902834DB010BC4900DBE2695B
+144000,k,C4419C6ECE557B35897628C94209A777D8586D48DDEA8FED38C141755FB4F10A
+144000,u,E7D6983AFF5CE9577036E95C1DF9BCAFD8B58D244EE4269BD74977B500AF290C
+145000,k,EAF9A0446BD206B02C1583A85815AF497E760467E755ADDFE5AD61C748E0390C
+145000,u,41B458A4A2FACD38E801962A2E579770C2FC0FAE5BE088C630C5BC5222C7923F
+146000,k,0A045AA2B8C588A3BC23B8385E5093DBA156D6B790887826CA0339178E716C2B
+146000,u,974F6524FD1AD63823999F951D1EB4C1CB4E8D1B74E6A1D8E478348C25204C63
+147000,k,D36D2055A12C633F5B225621D235B6510321651645516E4905F8513DF6CC4712
+147000,u,C3176F8703F6E43F04C312F864DC503388E9B67414437D52BEC2301F519E4C68
+148000,k,2C945F6F3DC6B768D89C9A3CB313F624126580BC044AEC8696CB27C87273C153
+148000,u,107734686F6AEC5640AA8620EC02C79EA3DE9F30DB0F201BED0793133D8B8A6E
+149000,k,A671CE3B6D14D66281F40CAB902377FA3540AF40B8F2BE7CED8E901FE218754E
+149000,u,9B92CD1BAFCFAA5AD016EF9663C9E63343D756DFC94766013023F10411676B64
+150000,k,513D4B5C920466E1C189E4EB8D79B4AE5B01960346A3687CE819E5F613B7472F
+150000,u,81ABBC4BA6BA67B7574CD82C1394EEF68CA1D2F9AB7A0F8C2DB1464EDAC38E2C
+151000,k,BE665ACEC5D3862F97E1AC8A883F42B6C7341F83DB5F81FC3D7AB2A9E9CCAC01
+151000,u,2DB471326CEE91249C93B364334A764C00A0B95B8EDAA558ED17842047DBD57F
+152000,k,9CE108FDFFFA4091651D7C059FB86BB132F8C595CA09F6EC3E53E0B4FD2B6239
+152000,u,A9C27530C50EAC350C7CAA3014EA1F07CFF9A08FEA0E02A5AD71CA51EE899307
+153000,k,A34539DA1DA3C40C8EF0E24AE2E2D97299870E6E5D84ABC55707662A66B5B87C
+153000,u,C8398963586DF81AF7E05F3E83061EA6F123CCAD2E38BAF48ABC367D55EF5369
+154000,k,7F0C60C3B0CD6F5D1044370315663F525F56D09D0D6B5DE99E216139E347AC2B
+154000,u,C65DAB966122BC807DE16676B23F83FB4FD060321BFFDCFC84256D41A82E8811
+155000,k,B7C21F498E0F60B1C8E0AC3DD77126ED79A9083431AB0B14AEFC3BF5D798764F
+155000,u,F2F9FAECB9FFB43E11B18015B5EE33126F448117D8D37E78A3474D302B01C74B
+156000,k,6AA8AE9D95CBC79243913B157882626EA65936C793149D8DF0F3F9DFFC335355
+156000,u,B4441E231EFD67C78C5602C2C2E449BD13B72A56E28ABE36E6BECE6D11D95B12
+157000,k,3D02236481005CFBB119F285498CD219428C804CAD69A9260D5F1E27B8581D6F
+157000,u,683BC8AC28CECFFC2E7CF76E5A4C8D83A7D5683D4BA497C64C1FF9B10269EC39
+158000,k,E9B0F4D55FA8799F5F5E2141E14F0CC54591EBA760EED5A6681C37E54815C43B
+158000,u,94ECBD9CF6A627B84E63F8199AA0DFB0D9A1AFF962F662C7758138CD527BD057
+159000,k,50A9C41BB0962718E4A175BCBAA8330D95B5A1F63D2FDD879308C217088E615A
+159000,u,4353A37BBE85D3CBB314CF9B83B9072A484A73641D9D57212C165C373DFD3B4F
+160000,k,8B8FF168804955D221B35805D980BDE39C9ECE6272ECEC5A3924BBE548FA7155
+160000,u,B5BB0FF9E0BFEEB6B984BF16A260B7691D9DC9EAC41C1D7D235E22FF707DF317
+161000,k,830630FE37AD40F0DF0D96CD8684391168A673FB1789FD63FCF82BA51E6D811C
+161000,u,475AF4FFDD5910E8CAF47B644D0B51B9312712ED32E6C54360733114ECAB5758
+162000,k,C4177FF02CB2734CE7775AC492BC099F1457B98966527EEE2BF61BE54ACD7F1E
+162000,u,AF516AC629E31B63CBA37CA07FBAE9DCE9E00685C3A4F6D54296387C465F7712
+163000,k,9D9ACF9090773B575A043A6E60B907CA1203DAEB1C4F9A131C1FF98A7B293C40
+163000,u,E5145324CACF7F67F522CE0BE7217D81F5911A73A952792F692A3E00DAADBF07
+164000,k,62C9E828B14E7AA34C440C1D10EB5BA493837EAB9E7BF26F1FBCC5EEB4B9FD3F
+164000,u,73F98651FF0D978FFAE281A7AA22F670F754AE6244D0E3576942651F7E6F7976
+165000,k,9325091A3627C21E03D76F306E4A59FB185AB1EAE0252B6C77761D6F4402447B
+165000,u,92F8DF4E8B536F948B301F8375F9F847BC280760DCF84B5DBFE484CFFCA76A38
+166000,k,9665399BE8C4815977BD0D5EF8B54F5E6F00111ACD0CD57B2180C3AADCDAB174
+166000,u,DADE449B3D26A9872E67397564329476010D7389399DED9F97ACA622F008E023
+167000,k,BD8806592DF9C9BB580E701C02BDAED9E67AC311B89BEE443FD116B7E609323F
+167000,u,026A9F73E39B8543BEEBED91E4A2D86FE5747AB77F8F14C3AC63442B9D696503
+168000,k,40ADE84769CE5CA1A674523A79879EECE6F2225748A2B7F3C9DDFEF48ADDCE6E
+168000,u,BE7716B2D424948CDA1A0EAB22CDF0E09892AFA9CF0DC09B8BA755D45CFF6901
+169000,k,F3FF4549716F378CCEAD5E214BED54F7FCE88D1EE2154D2EF983A192C69B4134
+169000,u,A4371FB2E56C5E3544D5F8B64D2007256CEA9BD9E018056579936512EF44B07A
+170000,k,C21AA18577495A5326048B1F8016BE68D4AF64026FE1E665A5D58FB912C92B1D
+170000,u,BBA4BE4AA20DA3B5DAEBCC7A052E96A2EFE071D476726FAA06FF30D603D17D27
+171000,k,EAE4DCE83C06E494C5DBFCD298C02B2FAD49EBBF3B0D1ECFEC19767379696C2C
+171000,u,073F60AC2E76CD037F4E504DF9C1569EF8136F3F33D0F5C61AA2C80F50070E5A
+172000,k,14F73DAE4AC1E4F63059C54D8EC4A9A974647AC4E5F3214526A522308365F613
+172000,u,28C7139880FA0334988502FBF8F1CE186611C9EF88284BA67AA06C7AE8C4BB2B
+173000,k,7471F57248589BDCD9A99D0344898884E2EE4E7A1C14896F8AD9C2CAB5119D4F
+173000,u,6B7D0DC9B3902314FD1874189E46043B5C1F22B6B8F46C35F3ACAFEF2CD18B74
+174000,k,E4E59F637439D624C8E596055B8CF97FBAE76D1D8DF91873747259845632AE73
+174000,u,E897B81E5D8DDBE135E8795AED74762CB7C447759E6FE578EF3FAC3DB4D9C02E
+175000,k,8204EEE0B81C6F5512EBC55187D127D585F3DBA8B0F89587752F3BF1EE42B903
+175000,u,B104DE66329DBEAC0B60A184E0CECCBBE20B9F8DEE31F51E75B41E4A2439782A
+176000,k,3448939E2B2C02585453175100D6742A22F6FB1EA457C074EA1238949449A440
+176000,u,991FFF01700495BF95F8C5C420826DD12E7903FF5B667F18F5901761EEF66266
+177000,k,4A99E2B683C048780D0EE3C2F3AA4BF5ADBF35A202935A61582E870A38B9A03B
+177000,u,C5F2EBCA310856D78646459C55ECB470A26724243BD7EE0BE0F812478903E76B
+178000,k,3A22BDBB63D575EC921F0741A408194C052AADCD9C52FA71AB378622F1CD303B
+178000,u,86A606D9CD79A0EB66AAFA66DC80C3B96C05F468054A91B61EFFB53F30A1255A
+179000,k,B0E46245C75633924C2368DD52FDB463658E82265BDF653AB0AC6DA5245EF917
+179000,u,5197598DD3F8D53F5EFE3700BA37474B7F223B79EA105A3C1A85E869F58F5D0A
+180000,k,9B09520F8FD123F992478652E25D4E1519499102FACFD92F53AE3C4787A40914
+180000,u,43F98E350E5B3C85A9E63BFD4C71D0D65029C36F15336943879C59CFA1E44926
+181000,k,672D2E522C2A7C22E326C1D22B171B4BB771907CB87F71FEA4D7D91D3C70BB64
+181000,u,0A223EBA8076AD21E8CA20B4C38641ADA1F3986F06FB1DB2D2E418622F33A35B
+182000,k,3975960FCA6B3B3442FA0A3E71D460211C17114DCF296C14A780F8F92EFDC51C
+182000,u,6F4F97B5883164BE295D16EB6CB7084EFF9DDBA4F264BB348911C0D2D2BAE84D
+183000,k,D53DB0BD1A5B7B97B92D80E0FFE10B74BA54B9CECBB067614CEB9CF64BCCC458
+183000,u,8AA2E7634C585D7B12E02E0FA09865A52BF83222016E939846BB149C0305B031
+184000,k,07700651BADED0338D6150F5FC8E0A9A119D8D5C539EDAD979E7C053853D9152
+184000,u,CFF7687DDF08D7686A37E80C4CF5EA3269DBD9D9277231D529762757F5BC4D70
+185000,k,BD6CDB2537F7C249FF78040265D5E96F356B12130AEDFB5F2D350F8E844C3B73
+185000,u,D70B1A45B279478594B83C98842B39831413593D4437125E40226FB39E8C6268
+186000,k,9ADBEC956CB5644BC2E65C1E8BCD9C93990C918379AA8309156106EBE5B4E217
+186000,u,38FA6EBB39305DCE7E877E21EF845FC0EEC862536B46AD67C7A6A0CCCCAAEC63
+187000,k,AF98A80BAE732523ADB975296301AD071E5B5905D9BC7A8425910281A7BADA4F
+187000,u,C61E1AEDCC29347ACECC6624204E25B7413FC9544D14EF76C473F8FF26819A2F
+188000,k,80F253F08183F654D8DE87C55A4DF2841DBFC3EC472FB9FA56313ADD4BFAD617
+188000,u,2A375640210A72B26AD9CF809C328DC65DC94922B5F8998EECE6A1C4D5638B3E
+189000,k,AF367CE65F2A9F6D443B716719F067313A39DEDACE893AAF9D0D92A53454A70B
+189000,u,96E077ECB7F891B2699BBD1AE2C25BCAC370A2258F4735836C4F00930A9F4F64
+190000,k,CC60F4B404D7E2E35FA508735673B277597BB321E106B9FD32C811226D9CBF16
+190000,u,1BF234C04E66819721B1BC3A077EBD36627A3DD2CBCE3D595C92B981186D6D36
+191000,k,A78CFEC9C650D85E343A6B3B71CDA706CEB602E6CBF31BF9E481EBA45A26CF58
+191000,u,AB506C20C43978E3A7A2F888826BDDE2710211C6DD198D17F09AD861CCCAA737
+192000,k,F5C6009C83EB4622C070CE01315CA062ED499E7A1E15F1A142B0BF73DC7E0672
+192000,u,151FC2B135AD9530AD49445382B3630256D1C2B54F02C22E8876CB7CACBF227D
+193000,k,A69F69E61220C3F2A554661E54D948D3AEBD1F1E4AF6F3730A6E27E3265E2046
+193000,u,2B183C6CBAF63E3CCEB7C27B5635BAF8AAC14BD3714AFC5C522A2D89273DAF1F
+194000,k,56A7E0DA3D4B143D91418C21145F16BC2C9A62922AE674E6F861D272B0E4AA2D
+194000,u,37CCFBFAEABFBA21216BDABC9979EA3C2A9D82554CC4BB84D47EEF7634E42766
+195000,k,4A41D2E2A0C5C7A8C419A25C9EF5F696E6562778C2B460BF2D854783DA691806
+195000,u,BC3A1EDDD48CECB9A4D1106025EF02E31D4FE3980C1E5D27A6A8D7E67C505954
+196000,k,6E2985EDB0BF111A33D58414199709DD653D2C14C1DA43F9EC17F874BB3D7C7E
+196000,u,56690AF9919E6DCC1690E0AEDB452E653189052647BC39FC541B15000E0F6A5A
+197000,k,9199B2347D13621CB2AA1DFBB7300495D043D3CE9FFCFF3764B08A591108D616
+197000,u,03DABDC3B9651C398B47E1A5C9F4294F72A1B7909DCD11A33EE12A3AB55A8D30
+198000,k,42E01381E96619AC84ED3BA3E40D7512E3C539D49674A7596EDB0B4827309052
+198000,u,9FC911FF3B5124FE3524DB1412C7283032A80FE9C05BE6F6B733F8E417871045
+199000,k,7F1A3C6BC3E07A06C5F69A6455E8E20ED3C87A10C20A3484A2A284A0E19C0829
+199000,u,F11E3282DDF9B527A9BE51DF8141BF41A0873622410858FA4E75722A58D43F36
+200000,k,B63B8F318E9CC1BA05780A1BF6C9DD15BC76C815843528BB35037B55D75AB10E
+200000,u,B7FC08ECFB6E3CEB02C6B2B3FD6EC166CA18C247C5CB3EB30F0009FBD6B01142
+201000,k,2CCE2121007DD870C0FD365009534D37C9F9044AF98C282EED4E4B0EA01CC479
+201000,u,87F71845C4190D091DBF7F806AAA1DD03875482AC5F2CE106C16FF43F1F5AF5B
+202000,k,03FCCA9205E5E4916481E8286B5994B89994D043A55C1BEBE9029A50D6EF1410
+202000,u,013C614A238127BDBC9B0C6983272C103F335C25BE2227B141AF881E52AE225D
+203000,k,90CDDC1F9D9DDB27FDEC852B2D1974CF28FBF8BB62C3B43C526F217E54D98A0E
+203000,u,64C48C0BBF545F7E482F2E2EF2372F04862E5D17C1D85116E7F0795FEFCCD61A
+204000,k,09C94F697A8D48E19C67C39097F81BB15B4BED656E8D6363FC605011611B8459
+204000,u,C63C3B5EBE3298BF809B5C80D5051F215D88113B9F48EE69CBBDCEE77CAD4E2C
+205000,k,01A76A67CA3FD18DB52C8B42DE84357EE808837E5CB0CA283EC459EAEAE20E76
+205000,u,5ACD908273B58F2646861984AC3F519ABDBCF9B18DFB9C219A0292612A0C0F71
+206000,k,096998DAFC484D4E2C01FDC7D35A2234C38B171CE62F12C1A1A144F9F6DE4E57
+206000,u,15490809CFE4CE30F4D620E4C2E97583F9DF1662104DE5984DE6626B38064D2A
+207000,k,28A6B948448D40F33A3A4C08EFC36DB0C659FE9C69EBDD87DD11A0838917905A
+207000,u,A5B3109533FA6FC0228883600F945E2005FCD365F2FCECAC543237644CE6014B
+208000,k,FA736DB6FDACC56D6DD8C838139BAD0D25ED0F36025E18F55B782E959F014840
+208000,u,18E5B3570D9EAD24D2676BC0E3B06E5C7DD45A78448C82580AA17525557FD85A
+209000,k,BC2E5968DAB0829CBB5D6227640F4D959BB2B6AC12CD1B3CC87DCA3CF3EFED49
+209000,u,1803264E8B8B31BF6C898DBF4977DBFB296769B719E1E879FC60E66DEDC0785D
+210000,k,C070839C145090681893AB21BACF68083333FDF50740AD23B41A992B46133E44
+210000,u,D20AF8606F595B57D495626A48824BDC869E5C4B5C8A48A21E9BB9700E4A9747
+211000,k,D4D7E4C33301FFF893C3523EC6835B5628ADD0757C80627876C402EC6556CC3A
+211000,u,46B41B1976CAC300B5067406BF07E24DF4F0211A66B93434034CE48DAACE1D09
+212000,k,32A2385E42AB539C159DC75B942EFA9581535803027B1C4FFEEAF0A0FE782013
+212000,u,B547315D20B8F514E94795CCB9830831D6271C95D8046188BF136E7111C42378
+213000,k,435E0C8D257BF10E1286219202D0240EE2B874AA1B8B283DF30351BFBC4B7F0A
+213000,u,D3E32E33D4490ACFF92C13673635AE88B8D9DD719F909E41E636E0C9715CFA6A
+214000,k,4A3AD28F438FFBD62741DDB05DB5ACF44070384D29BF94E2457843103E9FBE69
+214000,u,8356383477236E929BCF9103A82DC00B440308FE01BC4B2CF3181B1D68249750
+215000,k,0BF48B9E5612FD4592D573B7B669210646FA18E9FD0A2DD1305E760159664850
+215000,u,7B742C5810EEF9DCD84F4FC454E3C098F98CBBA0CF0A066460A870DDEE61BC17
+216000,k,A26EDB0D6BE4D2E9AE0A71354C5F8EE4064B682F2A3D5D210C21972013A7C42E
+216000,u,538A7B760D00FDEE5F1C73A29353F71856180CCCED69666C7FF40573C3DDE637
+217000,k,BAD300785E366A3E38A3CEC73E8C515DAAB0DD886E58818BB58EEF44378F8D3B
+217000,u,8927D2399590CDFE9943DB7485924A12AC39E8A041375DA6E984BF3002E4A504
+218000,k,9BCC52A887C96809740EAAD46C3729286E46203034D68DC803489E80AF60B068
+218000,u,7EEA6AFD17602F70A0DA2115448152BE6F26B503B76ACFB403E4442528F4E948
+219000,k,50F507AED2CD37A7B96A1D15EB5889D2C29183A39F2DA7DBACBF0645A91B8C24
+219000,u,795ED350E832852A1CF58078666AF3CFFF8AA14CBD3EFE22DA24B8F513B8651A
+220000,k,E0FF07A09E8589CDA01B81214AFDC859880547D272B08CAF13A71CA4A7B89C67
+220000,u,9589A697C0CB63B1A91791E21BB66951260103B7929E3FA8B78662175D65A272
+221000,k,261F954ED5B16116734D0F14487A852668EEEFF3858DA655050C3C1062330E40
+221000,u,DBD6FC0E36F79B000E12E58E3645EDED9F0D602BE10F13CD25B278C69B66CD5D
+222000,k,3873DFB1C176427257A95C0FD9BBFD0EDD75F7F860778289FE69414BE8CC594D
+222000,u,D982237F2DC0FD964E3F363DF075A4A7A71B826C24BB9913BB2ED485E3BDEC29
+223000,k,582416509A9311E21A44F8B7E45D28E3493A64B9E723D75FCD90377D8F9BEA74
+223000,u,15C1FE32056FE5B2B79E40182373EC63E7501C39E44C603ECD3C5A74C6664922
+224000,k,27427E928B86ADF99811CBAF8956E55BA7A6C9B8B07E93DFF0AC4712F0D74631
+224000,u,D7A57FCFF2658D2621AFCC19ED5977F885CF44955A933BD935DC938B479C364F
+225000,k,B075DE2888DC322C02E3601DB465C42267AAF0EF322124866580BFE45A348329
+225000,u,49F69CDCD443694B34435412353EB9CDD2B59B970DF7A7E6E08D9AB0EACBE116
+226000,k,241CF317478B7D4745168C63F504982B4C621AD61303A94D7F0AC7F00DC64B66
+226000,u,CB2A93009CC21A21B3B519EEB7AD919B739A382D5BE5D9C61BC21E8A8F644E2C
+227000,k,2B8BBF79C1001472193BCE69E7808C16F2CCFA737034993265808FF4AA061417
+227000,u,35E63339819EB0CEF9DAE5B41CB7C03A9653D1863986B885C139B3D1297B1A38
+228000,k,D2101CE4791B596C24AE9B5B96CD894A79DF0884E5D1C4CF1F054A124EA3197E
+228000,u,D3A3E857FF3678C918D89136097961851439CED340A79090F9623FC52853D807
+229000,k,8D55D138C8177960680C2C74F93D320B84FD29E9233BEBA6C10A0A9FF7960402
+229000,u,8E5967661CD01E183BFD41B092602608AE66D5EAD4A082C32D0529B5CB733C35
+230000,k,9527310F505FF349D2F3F72DEE0F98149FE92044E130E524992ACF42F5F4BE02
+230000,u,514AAE0B1D81848233C0556843EAE80FE72179AC5683EAB14515A2FA59458B60
+231000,k,519A02B5E563ACA7447DF57C3F330C9E21F15DB453CAA8FE1A39CFD0045F4638
+231000,u,31BAA9C1CAB0F2E144BF0AD4262CE347626624596016213FF29B54D50180B510
+232000,k,DF029C99EB8498B43247C6DDB3414432D6DF21E2B8B2280E46BC98C44BEE7F52
+232000,u,21051A5C8951A1DFF511B59CC713AF4576B4C3EF45EBD50653CAFF488A26DC0C
+233000,k,B48C5D208066DDF474E6CA315313E2BA9283988D486AA10D0A54F84908803E63
+233000,u,EE0A0091D0ADEC67413650CDBDBF81E8C7D450866D63A5B7C71C4FC00F5A902D
+234000,k,1DC505E16C6772BC3178EA7569626761137D59E903022BF49834B964BD804B42
+234000,u,B73BCB09233AB6EC84867D45B96E8B45160E7903A7C2A144F41106A0BA57D02A
+235000,k,F082B376BD705A4356195CB54B02A624715BAB2C86D5A569844504E66CEE411E
+235000,u,4D020DE650CC64F1FF40D2F7418FC84BFB94FC302EE6425C13101933EC76571A
+236000,k,28D4ACA1A583487B93874BD236DEECE7218048C9106FE67836BB830128FBAE27
+236000,u,11475A279D9D33EB56BE29BA8E95F3B3496471211067192F8A58D452C2411150
+237000,k,052A0A5ADBC540ECA58EE4971C729D4EBAD2642D9333D27CD0AF987D0F167125
+237000,u,70A227AC19B61CE2B5803E0006D571BFA95D258D935FF2FD07034ACE2068E876
+238000,k,4DEE94CB58573EE87F71E6375B2EAB5B709BFD3FDA310110A26A3BDF23C77743
+238000,u,DA80A63CA6A63BEB33CEE54F5BB9E8BDC14A52A0332CE598E2123EDBA70F8205
+239000,k,EB607DE46F8A7EDB7D9AF7C129E37FFC18BB9E19008E43FE18D9D2D09FB9E35D
+239000,u,32F522FB9DCCFD601937813EB7FF5BCB51A7759352F2A185DED67B995B68EF48
+240000,k,FC2AB2039C1E3AE0A9934C70F9843D3EC2171BD5EC33B883F2DD19032E8B4453
+240000,u,5944B3DDF4FBED4043E474BB5862E25A511A124F95B93689E66DA3D0E81C2A0C
+241000,k,9AEC610FB028DB65D0417D298051D46B19352AD5EC8C51E1CBD24D9834AFDE41
+241000,u,3328F920399B5608E2B5182BD1EDFB137615E792DE91812CF288A7D482A2667D
+242000,k,D82A697676EB1CB49A0BE3E6902B4785D0C610CDF275B2C0924128D74C5D0A5A
+242000,u,1B9927EAC00E054C8C7A1603DE17223204A8F13E55F3A192670B5F92CA85A915
+243000,k,64CCE8C8C13EC639563EFEA4055925ABAEA6B98C23B21BE971F28C18863FE439
+243000,u,F1D370DC548240131D87D96026115AD07F107ECC48DB50C2DA2BBE326CF84E11
+244000,k,F7827E939B9231A7D3445994C41DA73A16AD8CA28F4DEE7CFF5D3D6ECEFEAE27
+244000,u,E2685E590787C8ED4F793BAD47B19360CCBA4B0B0174361E43A4B92F6B483E70
+245000,k,B20E2D8F1EB42A6A3B844504A365761B00A21F3F935568135B0E6FBE85EC733D
+245000,u,7E8753A6F85CAC1E0C039EC5CB68097DC77F27D8E7230500DCCA494DDE1D7215
+246000,k,82E0A6F6A375AB8BCEA7EDB68C3F088ADF3D992F17664DD3CA53C8E6650F2E0E
+246000,u,D57D45602A5FE551B630FC7322BF92C4CAD230589741C27C0CF633649D049C20
+247000,k,6A802BD2CEE9697541D1D5C034EA4827AEAA82E56D195FD40B94F2D0CD351F67
+247000,u,FE648867AFAFC8BC0E71C2424A8A39F87CBF897EE96D6C1803F36828F3064342
+248000,k,4AF0AD1442EA02DF6D06045E023FD64F48EBE8E0CAE9B60A0C254F65ACC5FB38
+248000,u,CFEEECDF32C53C6542D4BFE85E9750BB5990B302E1C25822241F7AE90065625A
+249000,k,2769CBAB9DAE225546161E138C28F6BE6CB9433608FB0F499BB838D80BC90F5B
+249000,u,5B5A2F6A7C2E4825FFE8086995ABE078C226E9642995FC49467E6D300DA39B3E
+250000,k,4E9DEFFA7715D1254D7103B5B92D78AC6D93CD9B9A5830327FAC1D574240CE3D
+250000,u,03A8650BEEDA5F60812932513BB6501911B23AA90C33A3EDAEF51D9329836B6C
+251000,k,18A5464598E3ABF5E413F44757190361DC4F43EAF32321961325199513699102
+251000,u,19D84212A92D11B3D154AC600C94803D5B7C6D6079100C00267E45D840F8A85E
+252000,k,B42EC21CAEC890B058AAD7F325FC89A5E1259738198E62E4CBFD87429CA0EA5E
+252000,u,24A07B777C4BB5D824EEA666EE98ADC28629B87780E8723D83EB5BCB78819753
+253000,k,5A80F1963508A0817A0D4A25A64B84517D7AED5FFCFF3A4C5BC6DB6297629059
+253000,u,1AEF75F211F8C0967C58681401FDE965F2BBF8561D87DA79B4D2AA5D41BC363F
+254000,k,2A2E45A367E1CD2E39043070276D1703C9A3AB5CA3E257E1AD37EA260B0EBF3A
+254000,u,F167C86A2BCAF18EDC2CA0921562A0A4420D5E2E3D4629EB95BADE17BF946560
+255000,k,1A53D6E944585EDB35019A245715B25FF7F2EF79205411ED69BC5BDE638A1A66
+255000,u,C4C24FEEA3EEDDB4A1DD47F389B754612143B91E76EF3B1B2488FF760D7F9C71
+256000,k,4FFAD37D302B0D3C49D2A55E5DAA6CD7F034155203C1BD5B1D4270EEC4FCC96F
+256000,u,A2BCB92BE056B85C94C0106EF9C4540DD65EF95B7DD2C4DD96BB88E43571CA1F
+257000,k,C889260BF0D12489FEB541ECDD9E73485FA4A00EAC882C77735FAB53252DE529
+257000,u,5F27DCCE28DC312C5841765ABEC91197F4A7DB878A4C7C4D1D569DDE5D24B529
+258000,k,BE28B9AB0D653B028C580CB1684603A42835BBC5DBAECD050D21C4F9E51A3228
+258000,u,935B742D945B6590ABFF3E05CC5D6AC50032C8DE970CDFEC6D3CF2141DCA2B2E
+259000,k,0EDA5D89761A7EED38568DFF25F7B67548718A85829A4ECE45554D903127F743
+259000,u,A1377FA65A4499A6F0E056C3192058FDA1794CDA2127440A16D163032DE08123
+260000,k,BD50E95149499E6A41C2559AFBB89FFC1DD6281CBA4103960F750CD9FD8C327A
+260000,u,05746132E7C149F9C3D14DC2E4286E9B982143C5249F989200B9B35B4599713A
+261000,k,99077C1D43C58D81A8AB5E8303DBA1963F6943D75E9B0A71D117FABB03E2562D
+261000,u,781B714FA1034F107AF58F70007688449257C227BCE27963F7970FEEEBD5A00B
+262000,k,5C77E3090F09083B430BAFE16949E01C70149CB4C5F7F910023D728A8DBDCA78
+262000,u,8BB784418FB4966ED04171B9EC9807270666725F9ECB360FE794C7FB1ECFBD0A
+263000,k,63D4813C970D87CB5EB5641DCCF4FCD8B727CFF176B8E8810ED94C2C1E6DEE36
+263000,u,45F56AD77AB871E750CDB5A848A2D2C961B97CBD4C68BBA1B15B4F778CC3123E
+264000,k,207A726F6112313E9067D194F89A6E0431FA1124267856A171E88ACFD3C10312
+264000,u,F336ED31B145C08C3BFED4213C7EF044E5BF5E0BB8F33357AE98E600B5B7BC16
+265000,k,E2034F83F6DDBF8B5A83FA7CC3220DD9D48CC3E70CB3341BAB756DB005D98B2B
+265000,u,C49982E868C0F5B3095963D716D85A89BDA9C978F33668DA7A3C6C12A603B204
+266000,k,91117DA4331A568AC876A025DF63731FA4554D6FF0066CEBC5C5D1F08204E00A
+266000,u,31C0887ABFDFFF4DEBD0F01F820E1E75CC6CF0677F778B321029D9C39BE3CD55
+267000,k,9A35189BB69BA7C3ECD4FC58961902F00CCDE1EA9405C0A99B838A9B478D251A
+267000,u,BA4E196B20D454DDEC8C8653957CF5986FDA7BC1BDFEF2B233B68A4AB07DFD2A
+268000,k,7685464B04F9A8C668CF60518460C75CB096342E86BB2B66A2365EC79E571609
+268000,u,A3483A39D90778672BD295AF5E1DA8C9180711C2A27C0EB7206DF51D402FB955
+269000,k,A291B24B5D4A55A371C2AE2CC8EB0E9B8D3ABE1017A13C5E2246C1DA704FA535
+269000,u,4666D951E2A6182C110B1CBAFB06F32F314AC028035BFBB4044F9DED3E769932
+270000,k,A995E37603FBC08F316808820670F7D9CEE71EB18133B4D45D185B23247DCF7A
+270000,u,147415EA747C75B67865D8993B6F01630C3F9660554B8491A15655C9CCA7410E
+271000,k,E3F9B29FB312768D1927D02A4D2D3CE29C86E7C70145117BF8F45C3457127A44
+271000,u,9750EF50599B6EECC2CB3FA44FA7701A81F4790AF9A9F8A1B3235E4378ECCD5A
+272000,k,8CDCC7804CFA808BC5D5EA79B72FD874E983D54D64976DC9D18AE92DDB21FA43
+272000,u,F704C65BD8E5E1E06475B8B6B4D4E27230DE7131AD9564F468121E07F449AD7D
+273000,k,A9A9A4FFF3D8895CE29815609C3E1BC1AA2D279B48C730E7C872BCCE090AFA72
+273000,u,B0D5BD57B62B7081D89A443D2FC891D20808B3D671E6B28DAA03213A432B3758
+274000,k,45A2028B04F7C663157E1A9EC488EEF45A93B1463B5CE6CE1F01CB1CFA9DCF1B
+274000,u,BC695D0FEC17BBD65D16097A060446BB86A3C4676B5E7511BA709EA57EA70E51
+275000,k,F7A107A812BA669DF105EAC684C9D0FCEAC3B84FBC6F2A04F4A1204D47EEA35E
+275000,u,7B4F7C4A06613ECFC45D588E8B4A4ADB76B34EB4EAAD444C5EB3E01B2489F567
+276000,k,194105B61DAB0FE34E746997A23AFF07DC138BC0D47E48E58B9001C9B369E533
+276000,u,E4719E304AC60C293D99B696920D049863E9B418BC1FE2E6F92CA3729B958F3D
+277000,k,1471B8814E89B47F407D7A3C5E7DC21C1791636A7576931EA09AD7EFFC27104D
+277000,u,F64B346342A64BDCB60152BDC27210E68B2660228E8A7CF4315710B51088FC23
+278000,k,F1DA97C9587ACD6DB6B90EEADE15E25A6E878B835989A8B1BF318C914DCA3911
+278000,u,F32E395595C84DE10A8FAB651F80DA7863AA790FB0F6E9FC1D1EAD6E3033D158
+279000,k,DC67CC600454E32CC66708EB96187D744CE7DA6E57DBB8728ADA61A26CDA0E23
+279000,u,69953E3B472C8828EC9675D17EBBFB48FDBDA6BF7BD8F694AEF49252B15D8C27
+280000,k,7FE4473739A690AE7A71EB2F0C552F65A794A8FE27D25366A5BDC5AABD28C125
+280000,u,9FEE4E00A5A44887CFC3561CE1F104124DCFBD3E91FE1CFB9465E476389BF022
+281000,k,19458A3AC26456D506D0F1CE962BC847D8B39AF9185AC66F887003D99845BB2E
+281000,u,A7E3E585B65790A89B24AE9B5A22094243245C2BC5E76916E31CDFD354DAAD4F
+282000,k,7B5B29FF2DD48720FF5D6F3D432DAC7C631C418AB6DF64DD2915960DF9AADA02
+282000,u,D4F64CA22135052A4B74E4DB7134B1B4D26E60E83282B170D3B8827E587AEB77
+283000,k,838C13800950097052EF3A1200A62B1125BA98AC866153E8C0857BBE351E8A4B
+283000,u,B8534604FAF0327D2D1A3BDD5C68CFD935987BDB7DE7AFD2D38CA9087F4A1655
+284000,k,280BA42A45EC7560CC79B87911C110CE2D9E1AC102883291E31AD0D2128CCE2E
+284000,u,057278065073F4F3D34061FD7163920FDBF604F467EC473B055103C627ECBC49
+285000,k,36948D635FB41F092D9F209BD1C5D8EA0C6153CFFB7CAF3E7ED138315EBA8A3F
+285000,u,E2BFA75FD7CEE3A74B92F77F9B1F2D543B85B0F8B351297AD6342D39FBFBB11F
+286000,k,4E3E82AC9C2A0A63EF8FCC8E9AD613847640CEBA11ABE926FD13797DF7EED275
+286000,u,5AF081CF9DE61A9E1249CC12011C52F8093C11D8BA9EC24740F02E852CDA8916
+287000,k,58BA905FB33D74249A83A4E24999ED33C71F262ED113E38CADB8DA705372F46A
+287000,u,1BFF425F95506BD704E9C2EDAB2D3B0A04A8A6A2093548F2A1AE8B61FDEF162E
+288000,k,DD3F57C3576E13728CB2BEDABC2C45D1553563403608B97062124796A3739203
+288000,u,B471E01159BD5BABC90E92A97B62341689AC513A2AEB7134FD71A79BD3B97D4C
+289000,k,53FCE055798C8685FB6CA1D67ABADB7E178B8FC5BDA4BB36201381ABACFE3632
+289000,u,520F38842BE19EAA167139478A478DCE9F81AD3DF3D865D28E83BB912C57AC16
+290000,k,745EDB1E10486A0BBAFBCF8DE33254EE842BC1723F552644A3598FE974BFD419
+290000,u,EE13FF07FBDA10C499330751A3EFD0CF2F87F9CB7E216C62BACEFD984A57ED66
+291000,k,C7B7B59E831D44C1409F893A019D8B4D004AFF8BD5F88907349F2532140F653F
+291000,u,7798C911280424B1B90FEEC86CE2249DD37228C8352C9EB5585799A8BD088103
+292000,k,47FEB66D367974212A40AA8E23289AD1C7BB2E524E58502FD2FC09EB76528977
+292000,u,7BA9C152CB28999F5454561B47CA70B539A378EDABA81B87259A580D72882621
+293000,k,B6A0776C7F09D7721333E72E203D23B32A19B565D08DE8E96E6AE9FE3537D071
+293000,u,85E0FFEC325D0A2E95353B12BCCA194040C6EE1BF34D9906D52EBE6BDA134721
+294000,k,7C43D1CAE4A3EFB1FA769C610BC09DA31A9D0480CF58881D2DB1E679BD6A500C
+294000,u,7094621E543E0C2459379869593D6CDBFD701DD08905AA0306E675EE46537977
+295000,k,D3344E88A3251F7A3CE712E251ECB6DA1CDB7B66D1C345CB61D7338AC0A96D34
+295000,u,1F2ACFDDC4DC285E04C2CFCECBF05B294F93ABA13AD08994058CB5549FE59D49
+296000,k,DFAF4095F73D5F84E34E5C4DC18EA3BFDA55019217429FFE87DCECC61A6B2E75
+296000,u,B213E86C9878A3F81A68DEF5F39F05DDB4204653A6978AC9D2D70461EF03685C
+297000,k,5F9DE98B8A925F54A5D76CA11B77DA35A3184297931BF899C00CF344F6A6F260
+297000,u,EA45A140ACA824CF7A1FD0D3BCB6A95AFE61FE5E82431FECF00A9329FF582F2D
+298000,k,4D574D4341AE50F2E72B370C4965B2788AFEF847AF10F897F2F55693ED7C0F75
+298000,u,D4012D29326DFA636122F3DB0C82D2AD0F4FF3DA48D9757FFCED3E1F90205F78
+299000,k,A12A487186D6B35177F92581D21E073C2D11DDE4251329D5B7B57E7F95561A3E
+299000,u,C7F40667828E9C8A85565D52E44B909F43CEC1E176514F50B8A931540F8AA008
+300000,k,8259F6EF04FE78595095D1670F06DE1811D906A8C4D84A29DDDC34678EA42474
+300000,u,151F2544D9992D0DB398AFAD8B54971405BCAE03DBE492A5D3F62F4867CA702F
+301000,k,3CE204C282EC27EB8D2A74516F012638511100EEF8C2D7418CA6FE9948341856
+301000,u,EDC736660CD5D799332FDE354A43CEE73BC41A870363A0107E03A58D66E25C39
+302000,k,0C88C9E1B79FFF6A6E8E3F62CAB2C8DF1C9B8F38F06B2097333DD7A9A7615852
+302000,u,229B316AD8E529BDCE8FBFF6F40ACF62157CAE9F439CB638E1435994341DCE13
+303000,k,AB9D378BDC3CA2EEE63D5FE0E1020AEAC9A4DF441F41E9BDD9A78A393B86DA72
+303000,u,D28732D9CF06C873B540F8CCE47AA60E545940CFFB54C28051439B5A5E62A91D
+304000,k,947E806FDBF2DABAB2FE248823286D1428F2AFE2DB7E956CC4FFD002AA5D6212
+304000,u,10D92F4A5CF3B2456CCE72344062DECD5BCC14695DEDC05A4341A2F75896B021
+305000,k,E6A914446B111FB9CD3F1E382A9E394B0D1CE2DB497B9B26ECA4EDA5D3175428
+305000,u,C8FDEA152827805F6CC2C34AF0C9AE7BCB3EB17A7B0668655244F7BD11D40B12
+306000,k,82669C826FC92B9221D969BC8DA31690909EB0624EB83CD27BCDB81BF6469E4D
+306000,u,7CED7D31D8A992A8571F348C3F93C550A02D5EE957AE45792743801781B63654
+307000,k,D9D86CFE18BD62885075CB23602D6668DA51291F6B62DB18C77A847557B1E856
+307000,u,3D7CF72F3E3E612FA0A6F543047E87C59A5A4549D7AF18FC1981F778E8E77700
+308000,k,C192751140C595006B5AAEEB169D194FDC4166816452BE82B5B4FC80F18AF378
+308000,u,FCFC18483017CBCEB0316193F05FF0349AAC5303B005860CB0BF3BD5C1DAEC27
+309000,k,E68896B08D50ED51CCBC54C9845D4EC813EA1FBE1B6DC4EA163C1DA2AB9C227C
+309000,u,B638C1DA81BA10876ED410C76FBAEEF667A2A572DECF76D00B040E4688E2D628
+310000,k,A6EBB79352F555480A4FB5B3EF67FC6D9BC75B7CEFCC72EBF55F90D60E9B0253
+310000,u,D1AB0569B7055F4A8A67FFF749D48DC4CFF8B427C5997E18579E7EB12E14AF65
+311000,k,20C8453CF0387BA029FB4AA3C8A251D5CAB8623C7BFF67AC7928C1DD82355048
+311000,u,6DA56D1DF208C2B66D997166ABBD40CAB3E1609ED80CB17A70FEE38002D5326A
+312000,k,CC857D65B5B432F9B7996086EA809B456AD6EB010396F0A925A66895C480054E
+312000,u,A8B3919BA3C612A078D14DA553E94CD2B1CB050FB82715AC99DFD0D1586CC647
+313000,k,9FA558E8766286DFDE8BC57C023A61B891666D0C948BC28BA244EE86475E9522
+313000,u,C489CEE9B9BB10D0D23EE07D5644519288D11CA2DFD01800ACAEDA16B1ECAC4F
+314000,k,D81B78124B1E3109034E724AC742D645B8C3DFD3ACDE717D5CF8E996EAB4C671
+314000,u,DBD54ECF9B0FDCBF817F5EDD0C1C87752FD7401B69C80E08549659681511400C
+315000,k,DC7DE3EE2FEBB5145C7966CF7D487AF23C0952793BFDFC9CD6B4864D76F80459
+315000,u,F3AA6DF11B0F6F5C36C0950F781517E02811A1681C756DE7D00FA40C58D8A33C
+316000,k,FD7BF265D7C1D0C88CB35470798C863FCC98B990190557B9F1E85F0A75D68E48
+316000,u,975BA6193EE7E354B7FD66758A5C5ECE792561344F96B9E287F10A9007488443
+317000,k,14AABAA3919E63E8FAFF33EC6DEA99C39345DE0A160AF3A24947D8888F5E8B07
+317000,u,04F427437B97954AEDF18E44DBAC09F410B72414000CE5D20BA1DE794AFF7E57
+318000,k,230A60DD17A950A56EC564CB190D6C2D5C7C598D9305AD8C82CCEC74431E5020
+318000,u,91075622D48ABFCEF1C1D28CEEC774299D546AAF2E73FE195D1C19CDF7915134
+319000,k,C8338F41D7C53A3BFAC7179B5758956109BB9EF85DEF017A4969AF1A69809158
+319000,u,2B14FAC2438EC96A3483C41772362568ED0CC099A45B4A5C08352A5D40C77D63
+320000,k,0FB640EE1279CC3A95B99D2077255440E4D75E90DFE9E81E8F772027A6026E6F
+320000,u,B6052092BD634CAF442CC59FFFA06692014B5B885DD8E2C39064209C223F3B4D
+321000,k,73A772D7CBE9E0A24DE5D39608B3DAF4E578B21F0F4192AAB4FFC5E01C50C814
+321000,u,C492811A9915415022F72D068FB84B854FC6257FB6B60F1B151FC22361844B0E
+322000,k,CD6730993BAC7676EEE0B0C37FFD4EC61AA1352E9A9CC3209FF99DB74DB3FC5A
+322000,u,12E64005A64F19A1298F2FB7EA6486BF69483F391DEE9DF7571565406D8C5449
+323000,k,143CFD41D3B4AF99B269CB196D19E31CB13845A8B7E24560A6E19A51FE0C4A33
+323000,u,25AD1C205FBD7A0F404DF40FE995C6D8DEFD9297C9EA1EF785D58D504466FF26
+324000,k,455D2AD18000D66EEE5BE3C520D8DEAD10854EAA4E3F2DC9AB4D52F686833465
+324000,u,832187B2157001A43A7DC3A7EA9B22F26FBF22B1F31876D6C7319D8230B05D05
+325000,k,D50F0F88042A1F73084CCF3DD41F3E2A675ECD3E2568022004FA238399536740
+325000,u,215A09E55B4EFEC5D18459338C003F08A1049F992E9C6CB53DF639FC70AC2564
+326000,k,39D3A26CCC20FF8F25C7149C62768AF6E00C312932019CACAEAA30EAF7AB4161
+326000,u,464A102E5263128DAE1B840F71DCD85F1BC015615EF7AABEE5B6F28CE637042D
+327000,k,1ADEB33F1E8E9B5221DE2CF6083517B513BFA296AED9C79282AB440359AC174B
+327000,u,4F28158B585B77D315A464DF4F64210E25252F43EB1D9C4C003EF793DEE0AE42
+328000,k,4E9DB1DAD99805307A7AE341D96C9FF17C87EEBF5A63F3455979A9BF0EAAA179
+328000,u,74525E008F63EA7F0EB3BC13A80335A1C5BCAE75BBE1F14A365ED73E3D31851F
+329000,k,ABA6C486BA852189C9244B4D64A31F50583FDF55D6F8581F7EA931F290904214
+329000,u,28258F375FFA6D7F76101AA2F71116FACACA9F17900AA5B5C25D41522249025F
+330000,k,152D4D8D38C44185D21B0A13F414FD624B817B92E785EF202A5D3E73AEB9242D
+330000,u,42D708E4956A7B561CBDAB4EEF704114500D9BB83D3BB6521FB40963D31B944C
+331000,k,78C7F3D1398723EAA4B646D232BEC0C86A6FA1B1E5679E0D008F38ACFD66247F
+331000,u,74D0DD39285EB2B112123691487ABBB1B0515E3CA1C87F1845F207E99B64CB1D
+332000,k,CA5EF2D33227004361CE6486FE6BAA5301D7D39707171FE7703244E199D4E94A
+332000,u,3CDFE64C909225667B66562C522D35A2F76B4C63126E5C5A40F7EBFF4DB91D29
+333000,k,D644F347F840AE69D7044CB38C91BC320FF81BBEEBA83D041CF50F237433DF48
+333000,u,2039E3598C0D8807F6690731D929FD56A5720A1948BD40C2C42530CFB8EAAC0F
+334000,k,6C7E1C31A74C58303DD4857FDC0F239CDCA0C3B5FC1CFA224D7312400F868175
+334000,u,32EF4AD78881A62AC2CF2A2919B5BF107374CAD3FCB1F45933D52FE72DF0AB38
+335000,k,E00A3F1A2B2AFFE76F479C1CE33400B1DE2381249B1FA82F2D9DB57E2B36752E
+335000,u,5A261D2E9EABEB54724C8A4ED116694EFB719590A7F1BD225A1EC35364E85674
+336000,k,CF3860006EA6DD7E60DBACBB24D6C9EF0613FA015CAAFAA1E53CAAEAE3578267
+336000,u,9F296365C63F69DC5BE1E253E62A9CC25F752D8335A614DD544823C973407940
+337000,k,F4A4195769C26EA2F901DFA1005BCCA629C620044EE2371FDBD8CB02546B1D22
+337000,u,70F810940E88CE2ADE2E72379822AC4A12870A90AAC595731D569DF2012C2A5D
+338000,k,CF4527E23F95BF99E3822309F30FDC1B7DACBAFE7C1F28CD5EA39990D8F4AF21
+338000,u,A436472A45173A4760015871AA17D09A978F18871DF33FEC3094AAAFF49B4257
+339000,k,889361BB14D1C0FBA612F122F9F01788B451C28892432BB328B7E13E422E8109
+339000,u,70FFA24F7B2865AB5EFD204F45B903954CEAB00AE427F19B8B19B63ACDACA77E
+340000,k,45EF1D5DA0E32C9E11F4F0C68C2160F836664A1602AD653A56DB56752B266C5E
+340000,u,6897D0190D1DC57A5E1239AFF9BBCA15CD0060FDA4A099DC1036997E4A0E3F3D
+341000,k,CD461076731D8EBABDB96B69A34A229CFBBFB39E8B95B93F852675BF72E48940
+341000,u,E16D0C9BE3BA8B6081FD0990F768D88DDA90D82336740A8949073715E4443727
+342000,k,2E2992A9645D3BE3C962004519833AF50FA33215CF07DA27263907F3680F7217
+342000,u,CB318E20C5332226B2BF8F1FE6DF30F9AED5548345A2C801BDB820BAF3B9E277
+343000,k,752F610FA67D34AC7CDDB9CE3CFBFCDE7875E40F23D5FC4ADE05226B8B46BE6B
+343000,u,ED8E63191296F40047ADD029D048A128063B1A5E74BD66B3DF1D00661DB7B411
+344000,k,90AB47F78184EE5E36CDF9927B9020D5DC79E7484AC58F3C41200AE695748A65
+344000,u,D1DBAB5FFA7CC47C50E0CC069BD2CC9779AE4F95E039A97230981AB5F7F1F34D
+345000,k,95EFCCB68BCB32336365980A304387847DAE6753DA2745230712C8495526434D
+345000,u,ECE71BDA0E9A296FE953EF926312AABB3E94D4029B955504EE13D4536B2F4D73
+346000,k,6C3691DF42394F0E49C7CDD8E3241112BCAA9BF455ADC9474FDF45182E19FD30
+346000,u,B14B6D6F3768D9BE0CFE54B529E42749DD6C20447433FC47556567823604D04E
+347000,k,8EADA94B067AA32FB09623764E5A14AC7CB3C56E649A6E866FF83837F7FDEC34
+347000,u,65A5A55EF204E78CEB7691F010E071EEF868498A1C1225247D6C8BD89A386978
+348000,k,7587614F2D0705B869DC2F07C56C04FDFBFBD3093F6AC4FEFD018741D046365B
+348000,u,4A198353AB83069FDFB49ABA4A77C07928A03AEE39AD32757720850FEA63A16F
+349000,k,D1B9E7ACEDC3E9D388EF59E86169FFFF9C2BA923ECE4EE286033E396D6EDC657
+349000,u,EE9C40FC5F3B2D69677C5FDABB66A8A69F2319D4765EF55F0FDC6EA360B90770
+350000,k,F7DA5474B40AB557034D62FFB10D672BD257671837DDAD8163CB7AF6F4813103
+350000,u,F2CD62888201B692DD9C805667E232EC2FF0F16AD2CBB48743B83C02BD93D56F
+351000,k,68606EF1457455EDE804F9C3355CFEDBAD4DDC9E1FC9624D1F1D4904ADEB8C7F
+351000,u,4EC63C6689B9282F417C03CD4FFEAC87AA5287BB4108CE985C9CD7EC1A82DB11
+352000,k,977E353B18ED809294E0219C14B4E6B158A092369D34357C0324DF1A6D057F50
+352000,u,8726F7F2313134B6D1BFDF9F1BAB6A07D11DA77B19D9455983BF54361AFBC64B
+353000,k,609F6B34B469FE1A7359FDA3882D1FFEBBFBE0D5E237C96884084C3A54397850
+353000,u,3DD2E68D325CBB20DE89013F3E768FB2E75DCA8A8F2CB3D152D016E7DD393B1E
+354000,k,91DFB60455E8D964E884E66198061431F577FAEEE06479F23760FC9EBC0C262D
+354000,u,A0BE3520553F8A872170EF3309C1FF1FF74C614B3F07AE393F5B7639E3E3180B
+355000,k,52E7B04578F0742DEFFAAE72D4EC37388D65ACFEDFFA8135600D9B0BEE7BC533
+355000,u,5ADCAA4C013EBF886B021C6BA1779BA7E749E5D57A37E236F0EEE4328D15E540
+356000,k,4117E13F2AFFE5460D64AF61BEF6B8DF64733BBF9A208DEC79FE2A64EAA94604
+356000,u,589C1E347DA75F989A32FFD8366E4121978255A581779AB1F8690E7F0E524966
+357000,k,549EC893AFFF2D54AAF613FDA3CA873384094055F07037CC8F9E36D63D844911
+357000,u,F99082A9BD163154848DB023CF379A67717592A5E755D69FAA14250785EBD531
+358000,k,DE895D5660ABDCEC7204D8DE0F7603502DE5632E4F4FB76E4BCCEAA904D19E3F
+358000,u,2889673061ECDA6DB666A1BAF5149EEA3A733313F2DEDDDA5C3A66E8AF69D23A
+359000,k,5B443F0CC132E38D683CAF65D8409F008349FD8FF9FC8F48ABFB1AAA7DC69262
+359000,u,D4990FDD7C2F54697E4B6D4B433F62E7D0C9BDB7DFFC93039D778A7A4DBA2725
+360000,k,DA9D6550AAD6DB24BF9996544CC13871D8FD5DAA82AE8982B575A8A8F4FAE861
+360000,u,954F1EE456B8F2DB104FFB0F7199DD5B0A7C9605E00748489CFA902A7A537E14
+361000,k,42CFCBDC7880E1D5DC9D06ABB7F11BBD5839ADE8DAD4698F89081C439BD46E32
+361000,u,E6059E6EF95073FF818030618357CBC63632D3B4FE61C07FFAD8920FC8ADB37E
+362000,k,B6096401A9D0AF383E57493E19F04B10410241B644E8782A7CC63D6C1F069532
+362000,u,4190B9DF6AF054941320C2ECCD58A7215508B30C72B4B0BF921D582AD3BED505
+363000,k,C57BA8012D3C2042120D95D55F555E54DA212C25550EA3A11A4CB3415625053E
+363000,u,3F0BBCA4AA1B33E6833000C7FC9349DCB11E4CBBC5327E07D5C89EBFCB33C515
+364000,k,04B80BCACA940229DE62367648F9D9BF1DF03D7B8B4BD4FFCB6CDDAC44776D4B
+364000,u,E5CC517AC43410294EF54C817621F46710BFEEE7A26A5270E62B59775BB82961
+365000,k,48EB11E5D66A99E4781A98464E5830527E1BB3CEDECAA4A7F66ACA6370BDB300
+365000,u,B040331CF271159FF57D001570FD33B065051F7BD2AC46A92E632E0F9275A00F
+366000,k,399784535BE153993C3FD72992C898C6B60CE55831EE0248DB8C84342B0A580F
+366000,u,908B30F995DE2AA6EC6C2D21EA36699F29DE61518DF9638B493F18D0D5FD5645
+367000,k,8B050A9A3CB8B73A386BED9290FC254064BD3F84605E7AD75D80C7BE271F723B
+367000,u,B4B0BA9C6AF0C9E33EF0B317E9691380C87B3FA3913124EACE420F4C55F72E2C
+368000,k,72BC973D4495D534B28738F7D00EB039CEBBE8A72845C823837872BEBD03BF02
+368000,u,152585AA8365566A48F99C34C296F4D9B496F4558A7D65FE4A8C11DAC950C464
+369000,k,FD204A9BF621B6AE48CC541B72AF8445042974F147847FAA54A66086A932EC70
+369000,u,1FDA6B5D7145E50C8D90022888417DE91CA19F9641BFB867F602F7C68EFC134A
+370000,k,7AC78516F6C1648CD331FD9E2B9302E6A341E47105FB64786A7A3065EF24C101
+370000,u,6F54ECAD469A4F21656C33BD9DA5CDBDF0ACD99BADD8DDD1CD8AD6B995713568
+371000,k,2588AD06B9667EC7FD18601800AA74C2EAAD3D5721A2A1202DF13222E1B23405
+371000,u,2819D5FC422869E6D9259CD4443C51234E516958054711038E2C1882885D7E5F
+372000,k,773A2A1629D12773BD4F0278E5932F762660213154E1E6DE9959932DF860843A
+372000,u,F87B634C3EFB2665E0EDA620A87CFF906C85FCEC311AD54A63774CBD7BECAE5B
+373000,k,9B81EA5ED38A53A3AD8908E8E5D533A2CB7395121255136BFAE3A39D98D35362
+373000,u,8A2E5D1C800D671016ABB50F3C79FB7109F92B11B9A1629A10696B0131441304
+374000,k,4836230452F4B8BC9418BE1B30EAC0DC579D3852DD9CEACA4743256BFC56D61C
+374000,u,E19DCB24FBFBE3D1A1241FBA4AE6B63A2006156A6642ED78FB36B441A3072867
+375000,k,B0E391CEBB6110536A2B7F5A58DD18D136DF9D8BE706C2C8FC06BA6B01639277
+375000,u,FF746A5D5A609889C6D4FE937F858612B283E3EB6255C0951B6546E62E44AF1A
+376000,k,04E9D72D9AEE107107631BFE7690C353F8DFC76A98615D7E8A748BC06EE1B628
+376000,u,EABC99FC0F0B052DC11A672F5ECB572366A851207FB6FC0DFBD63FEC1CCBDB64
+377000,k,9C9B1CA6BB03E4ECF425133C5401460F489F51185166721B0BD1F3AB65983212
+377000,u,BD79B12B34F3D070C45BC3F515AED4CE8FE82E85EC90EAD4D36B82FF6E0B6D23
+378000,k,926468B67BF349D67EE0A04FD313C5BE620CD7156705A0EF899D46A3B7BAC106
+378000,u,1FAE8B0861CB74743A31DA88A9B3E1679182ABF2BA298B6C374C1C174DE8817C
+379000,k,F5C1D003CA1FC6993E7916512EE6B8A7E4A6123B05D753236AB535FFBFAAB353
+379000,u,95D21E0C577BD211D54E524C7F17C5E5D076100111F5858A59398B61664BD714
+380000,k,1B3DA8A9A6181711744D37EB512E4C02895F5D871E673ACCF0AAB927C7C99057
+380000,u,73B2F03FA6ABCEA52D3EB457D28068B104D5F480DA9996DDD5805055DC4EA017
+381000,k,DAD9DA3D483B99C742DD28C738AAFF1160B66C26D65ECC8FED0FE9871D15306F
+381000,u,CA445506FAF13502931072E59504AA50477FAE98A2945EDF5235C6B64E0AA919
+382000,k,D4E52907F5D3755AF2F9EFA8507EA1963D57E3F8C65196AE361253BCAC600277
+382000,u,C79D28F1E683242BEA66A321CE108AB1C5742E3401D8DE1BE350B80C63843C46
+383000,k,52B27B196D5DA932123C644C4C5FED090485D925F3608B0351B36D4BDAC1D275
+383000,u,377F6383E4675A3E601F130C24FDAA112CB306F9D9C60161FD8BFA0260344226
+384000,k,2479E9A9EC66E2591EC5E90C0F0627C72C0266468A2D8DAAA51F2F8A0EFCC939
+384000,u,0660EC89ABA1FA0015B4F35CE08090CE8FDA48CEB2A9C947F6186F748A812969
+385000,k,450C411854FAFB36A713EDCC03248B00C4886D3333662253D192D3B4A1816812
+385000,u,174A59940B8F3CEC55C63BD56C3366A202BE77097B0630C3569B55DC7AF00425
+386000,k,C711B866088916555B04D2174530F289B6A33E01A1A2375A4A48709E09CF833C
+386000,u,286DE4D2B549EAE19151526E848F5C5E078687C3FCA1CC53F552AF5C51183250
+387000,k,56417F6154E4D34DD938A374AA7BF48C0F20E317E8D4393B2061B67BBD92012B
+387000,u,28D2CED88A9662A5E40BD4911D1EC929C474FFC2F42FA0175ABA948DA05C6800
+388000,k,C0AC8F3924BFC9D6B5D560CFD66D323DE3C2A304465DB8DC6BC5DAE22EAA484A
+388000,u,78D0121F5806DF07F3A66393988172193963E974B8BED83607099676F5EB1430
+389000,k,4200A8584264FCB9ECFB8C7FFD2523F9D36727A44685A1D27CC305BA916E3B5C
+389000,u,D85FB1C3413482FC972FEA8E257E0BA6335EBAF9D5DB861A7AB4CC3407BD5C0E
+390000,k,18402269F605683A6EADEEEBD04FCC4CE6F588AF8BCA03415F2E5AB19EB2CD4D
+390000,u,3ABD2FD54FC340C7028AF863982022297AC0E3866210984475C1263D7E518910
+391000,k,AF271420ABE7A8EE378BA9606216CF8977D743F24AED141F438D64F18F82B307
+391000,u,49F34B874FFCB85B7D1C89F8F6D1D415BEA1260EF7E923B9258C7031D1C4386A
+392000,k,FA5FC8FD5D249AA62DB0B9F1E498001B8878B5B5AC379351C63D76690D89D67C
+392000,u,73914603A0629E7AF15B933C4EFA29C4268B314A7E535142AB40AE7C686CA15C
+393000,k,A7CA7555500D2BDD876B9B5711CA17C214EFF05D107B12AA767BB77CF7E6881B
+393000,u,BDD247895393D2536D50286011A37BF639CA77436F73BF41F2F710562D16C13A
+394000,k,12707B79AA2A3CE0E75C638A7C5F4CF587102CD5D3AE21B7A23F02A58146E01B
+394000,u,81B907E40F3A73D5F28CDB503134C2BDBAAFC95B3A21F98BEA067DE303BA4971
+395000,k,73791741F7F5C634F12C06EB1ACB051DB17A6266EB25EE61059DEA52C82A656A
+395000,u,00AFA4A9989B797D1CC6F7F228B9621BF848FB5A8011099868419F9736C2DC27
+396000,k,FB6324DBAF722B4AD868B8686C2868EA46E7D1EB0D227F90B5B7839CFAA3603C
+396000,u,22C64FFC3A57E13AACBCADFE2936115A3FF200605AD4263BCC894DBC0060D610
+397000,k,5DFBB34B194C939B70C2457E43F18536F27FD85314A070A18BFB6478C77CEE26
+397000,u,09A7D58E48D3D55FC079B28AEB57301C09D5C0807118A8C74D2B41177C731776
+398000,k,22C5F31E96D021E11057DBB4083A2713153F201533A833ED8AC168F9CE17D56A
+398000,u,D88F610EA7EC0D377E6BE3B187D0E31EEF1B0F36879ACBFBE9AD98B6330B901E
+399000,k,520FC34338BCDDA47709C00F8EB92271F10C5B9AA580789F99C696B694F8395E
+399000,u,6F107F1136353B468A27E858303297C1FC09B450FB5DD2A5183E7DBD93B13C7D
+400000,k,EFF2FC9C6496A11F932A1AD6649647E886AE1AAB005AA740D896DC672ED72464
+400000,u,DD9A6224CB4A562F7D81B946DA006F119C2DC143160C55B6C43ADBCEBB890C42
+401000,k,BD3BDDAAC31ECD2D4E249DFF88750BB70309AD1B57EAE1229A7BD58A88816807
+401000,u,104905838E6A41F98FCF9F9D0146CA1B9EC0701447B2B672BFD5F5CF57C29341
+402000,k,E4E95C5F18A0B99E387FDB418A1CC5CD7BCAB487C4501DC3C4548C9507E40D2C
+402000,u,7CB83A580444A347F4DBBD1E09ED4684B858F0D925DA3BEBD44A537D8A0F102C
+403000,k,FD47E44B64BA270B14563AB1E627472EC7FEC7E7B3C65D80026BD11B3B36A916
+403000,u,504EA18CB2460AD72235C3456E645936D60ACC3C775F1FBB1C227554DD7CB217
+404000,k,7E86D6140C55EE1641AA0845D82B728FFD394CDD86753C9DAA94676B746DFF49
+404000,u,4D98B136DB183F57848C84912824E9F2459E0692DA1E8EDF0A2621089278D63C
+405000,k,964F8A80B984B343C9B0AC94F9D8AF3CB67A6C4EEFA7F3B2A158A0685DEF3C6E
+405000,u,8ECB9E1FD0C05310DBA3AB51219288F5921F9E2CB1B890491F0B4B43378A050E
+406000,k,D07A1779D3D4A733D3AEE69583806D096D45CABF8BD2991AC7F7E89E31B2DF4A
+406000,u,5755FF1E004CB7823827C3F0DAB8900914F5E37520A5121A7E1AFD331518590A
+407000,k,350C338AE1DE99E4459729BE364AF7043113D898A11D4EBF6B0CE8234BFEAC12
+407000,u,CEAD681158452B50A6AE2BD9FB9AF3601AF5E3C4E76BA922BE4D29BA2B8A0A15
+408000,k,5692EC0847988EC6D22FC0D64A2AF49DB6B561A0004A08E23727032DAF73B80B
+408000,u,5FA4BDA2B10BA51A27CB3FF93C4055C1D064B777F966319CF28C25E28D33B15C
+409000,k,6CEEFB850BB4A9538443D222D840EE391241EFA1CF336B685108A7D49FD1DB47
+409000,u,F8CFDD097AFE80FBF8F080B924358A944FD1828FD19C245946C128112D053218
+410000,k,3ADA62FE3E69027F4C05CC061BD8271D11B34F0551AB0DA602B884AA573AC237
+410000,u,7FCB1B28007AB0432C306E1B747FA8960440A68B1A0988845234EFA251C8856D
+411000,k,A79E1CCC6D08044750351D8328033E18BE83E3B49212F05D4DCAC2CECEE7BE1C
+411000,u,C78E229A18CCC976ECC6A735533C8643C70265EABCCDD99B174E6D0324FDAD3F
+412000,k,E6AEE457DF8E45EBC93E9FE62FAD3A96C0256C7FE4D73CB288B9F64B26C3C273
+412000,u,2D831D712E5CC28D545CE4E2E41EB732A4531096B6BBCD65A90B59B196CCB162
+413000,k,D3C729EDD87B8196AA5FA71595D83E7BFAEAD5C955EA4F34F4FC81DB21D8BA5F
+413000,u,3ED43D861EA315EA636D24075F39DD47BF004AE8B940098468EBB8921424D47C
+414000,k,AFD0A57428BFE8000F67451A39C044EA8910345919FF7ADA26D5CCB19FE90615
+414000,u,BD86602C24D0EB3A9E48C147EDEBFF40F6725D72E2CAC60DC7D0A70689F1353D
+415000,k,C6F32C8DDDB50220AA9E48F883D4467BE657116FFFCC8A20572322EECA57CF17
+415000,u,E3512FD03BB7BD6C0A3DCC0538D2F1DF7620F27B24E8E230283CC2C45245F811
+416000,k,5465EAD38FE256D22709F2CA12B8E481E5641FE4CA56E26BACE9E28F5E452F70
+416000,u,A74D4AB3D1D4A8A538A7B0A06ABFFD9015E739801CB5B3CA278CEFD995A04127
+417000,k,74AB2CAD92D1A6A4A621D424F81601ACAF0E383AD6B99ACECE8D0597B75B6914
+417000,u,C752A797636CEF5B847EDDFF2CAF28B19D420A88AC7F3772CBD5EA8F32C39F32
+418000,k,21B06CDD0CE0BA785CA5267EA8E69E86F377CD712614F17788B3248A6DB52607
+418000,u,09E50D2513CD52D1C2DA24B2CE7098BBF3FAF559C65DDAE84D9C868483896F1F
+419000,k,CC62BE892099A6F1C9F3BBEA4029FC100DB922B9547716D9F01FDE06D0210F24
+419000,u,CA0EB887EDE6C699EDC4720DBE7E331DD17B853D5610AD34AE95BC4BFF064577
+420000,k,96783061F83983B3BA5DBB2E830DE20408ABBC53A678FD4A9693D0DB96A25E46
+420000,u,E876633E885BABDF7B88BE900CBD0F37100357DFF9DCC560274E29B7966F7258
+421000,k,61FCC6F99F53DBA8834892256FBE93DD1CFF80A0DD9CA5CAB268F3E219549C43
+421000,u,C5FE81313D2D7940581DCE8C66E6C25522AFC915078BE072A8000B67E430D23C
+422000,k,A81A0FCD97450455AE402346A63743CB6528A1D8A25B4B419E2DFE3BB03C363B
+422000,u,76B3E04D58CB0ABDC7A006E2E2B62069CE59995DE7050C3EEF894C5E698BC95B
+423000,k,F61DE54ACAEB48C3169373F5A28A9F43114B9A4BC23FD891D2A261315F527708
+423000,u,A6B7AF05DD56332FFF6A44DFAB7F58E4EA1CD332D8DE134430C7E13E771D0E3D
+424000,k,CFE299605E8A32CB30385204F50F956EF1D10CC9675CB0ED6F34D39B85C1AE0B
+424000,u,355CE462589A66307E63EB4FD4D10E329493DD7EE35888F601ED8570E55EDD7E
+425000,k,45387266BD45B11C25CF96A6AAF49FCD326DB4975719B16376E8D2DDD197031D
+425000,u,9A32247DE374A992DC13C2784D2D9F66DB5B34E883E298234A8118E333742450
+426000,k,EB17BB60E3FC4BC71C507DF8D243DCFE1A1E8402349866EAC4147048CFADC85A
+426000,u,BB5361C2818D544A87D589ADAAEA545B3F70FB1CC253BA985D86073FE2FA324E
+427000,k,988A86E7148FA956714FF7E14E5FD53AE81F8FD46F2DB4E5B409217A0A8AE718
+427000,u,9D44AED1E604DA1FFC8AE26C027C0D9BDEC998C33519040C5E440AC8321D587C
+428000,k,7300524270512D4E4F2E2FB12F3E5F263513C05594A2E44081F15268E6A67F19
+428000,u,1774A5465141536CD532FEA6BE5145C3A54132A468C1ACA4271DEF73BA0AFE19
+429000,k,00640867EC725CDAF31D1CAE3FBA2258A355B06DD36305A8BC86FF084EEF354D
+429000,u,CD1442643612024399B64EAE5F9342AFEB32BE0CB6AC7296569653E4971FEA04
+430000,k,C0615E1233CB4CF22DCA07FDE7236CE281C0E574F7E49034BBF07E1A7A335B76
+430000,u,BAB7C0632D2A00C7E21B0DCBE7D47B5C9BD4CC409FFE59502EB85A6FA6AFAC75
+431000,k,2CA6A2E6B57235A685D26A95A96C9C2C824755E17720109C6858E9D00B5C763F
+431000,u,FB8E77FC707B21E53D6E176C06EA855E0797A07292DB41910AC468CDFA601C37
+432000,k,481E20F59A5C8942E6B98C131B86F93481C5CD85B1011F7C8AB21168CD99FA5B
+432000,u,9FA10FBF2A853081121A53D06D45894EBD394D9B335FC7CF0CB5E7B362962A7B
+433000,k,5718AA66E52E8DB96EB5ABE8C2D398C46768C3392243BE6A91EE6B2BCA50411B
+433000,u,D69FF1C411C6B08B04A95F01DC9543721EEAD81D55F93B5ABF673E3AF133C428
+434000,k,685735D485A5846AC185882647E37A124BF5D88A4AC739E2B0A0C3A6A1AA0B10
+434000,u,036CE4E41581B505426C4061785A9AA8F4D8D9D75BC25091164272D3540E0F55
+435000,k,D41E0C2A4C3A06A31E495EF1676C652AAA9501B7F0A9587DAE52278D7DA0EB00
+435000,u,C5BA2E4E887BC1D8C32F0301FAE07A8DFBDB3FEC4F6366A43A13FD89FED4F01A
+436000,k,3C6AD9861918AB72EA92BF79CA370E950CDD3AD4A3D81B0CA957373AF9F77306
+436000,u,8BF11F7F83D913BF83A9AC1950A6F0C25AF0EFE97ECAB96469C82C2F1D177234
+437000,k,1A67630015943D04620FA94E644DD628CE583B623A76E1528938B1BF23F5962B
+437000,u,3FB2BA783C3A7C3461F79C4567405DF5AA91D2B81E408DFCA3711829FE103F61
+438000,k,3620736CCA364A892E771BBECE5C413496342A3BFE388DDE8CA61E848C17A859
+438000,u,10956A5E5EE40BBA5C1313F7DE5001AAC6C0EDAC72A2C783DCFEF55767B25678
+439000,k,F4A64CDD89F0FD170E8A8A6F377DF6211C651313F1C709947BEAD66592B1145B
+439000,u,9A37674F02EF58372AE8361A952E5E55344FDC7F25F3A201F1E5A6FC630CAF22
+440000,k,18E48620AFB9FA03FF0B8DC72BB0900AC31C441BA8CDED1C618D3A8322EBA171
+440000,u,98274DF4E87385FF1F13537B23B1D2DF83FD4892A32A7E10D22C3A5742327D33
+441000,k,724B80BC7532CC85025C1450D5D5C2DD221FD56B27B88371ACCAF247D24D2A73
+441000,u,1D785061A2A758F64347A19CA40979A8CF2DD3DC6A70A76E19CE85F358A54E5D
+442000,k,72AAE83582F0BA53E4A8934719666DE2D20F763A9B0F0B0957F15A14391E0718
+442000,u,990BA6A8FAE5FE6A410FF9BCEC420A5F9ED7DC71187164E24441F716BD6DA76C
+443000,k,35D8C5B9A4A07FEDE70D6A24D09848D2B4BEA21BE242616078573ECA69AAEF10
+443000,u,F7840A1B74193FAA56C6947775B2CC1C3D81C8468F17ECB13DEFA6FF944EB410
+444000,k,DE9FFE48FAC046C44532BC6159BCBEBCF0343A1BD4223ADDFF2161C2451E8E24
+444000,u,8E418E69FE016B92817184E9318BACF33E0A6529C003A0FBFE965F03EE768A18
+445000,k,F4E3B451780790831764AEE199F8B9C758AD18BD25110B0684B6E56E8802E642
+445000,u,01179538947B06CD8C7E61870EB18A445C46F52B9270FC6AAA21118A8577E04F
+446000,k,6502C79F37C897FE7E36C2E96445FF699D67CC19BC7F25F8A623BF83F64CFF36
+446000,u,BEA54C8201CBB0B0CDB27BC586C0593D12C5C84C553C15C8623B11977318C802
+447000,k,ABBC53A545F331E2F2B0F605B262BCC4C7B10E6D8F32627515FFE4520071C469
+447000,u,530BA80C28E2B91B40ACE8DD8FBA724F3DFB2A21414E28A2A0717DC717DAEC66
+448000,k,5116B3CC5F378ADCBD5A4E61C4F31A6203EA594E9E9B4C0EED8C47A3B4F2F709
+448000,u,D2653E8BBAA60BA9C53F3189E6438D4AE724875FD5A1D03346646A29B111E81F
+449000,k,865A3349E8D659916D87FE850256AF789CBAF5A0AE29326278D70DA042F81545
+449000,u,E23D6AF538D3A53DE3A71B797737B8F13D68D1D8DD9C1056962E9620A04E5F51
+450000,k,CB377C67F617930BC057B8A29BED4D52538709802889FB165EABF42F04C44750
+450000,u,B16F0C60264A00B1B3D8FCF15271A6238A1A11F8B4AB7AC807652B9A28CD2E69
+451000,k,43DB43290AE9844FF155A84A19A9CF1AD60878B4F28E3EAC1D74C0B05B81BF2B
+451000,u,3983648101C31D2B866C24D070E2DDC9683B44E1F88055A332A52804DCAB272B
+452000,k,E18B11080F5860A1061EBABBC6687360C64F9A27D01ECD5F24466A926C946100
+452000,u,F840DA219FD816476DE4A7A16AF051D0C03D60544F777AA279DF1A6EBE59A302
+453000,k,0A37BA97E99C11358B87BAE99834F014ACE970F5312D728149F732177A81D37A
+453000,u,0B21FAD28161C6D4B10A02D08D074538D571031BBA07C4D5528F2E3F1BDC742B
+454000,k,8CD8FEA77C788D0E1690F90BD681218BC20153D9B767272471216EB31416B010
+454000,u,AC3091FF2413B9D901EC22414C3F9CE776C3654A2007415C15E2C17DF6531578
+455000,k,118626AEFC3E0453D2B9443F84379F03AB6E978EA84B9A9772E11DF4F2951641
+455000,u,63264767C09281FD326646859BF67C68A0C0757644A6D60F60677238F0E54835
+456000,k,13AEB5EBF742F7A59439DA37B1030E50024801B816D325C65038E3AE298C6C0C
+456000,u,D080160ED4AE468404396D3EC660A1439AB161522238B7D14DEDBD0B2AE32A74
+457000,k,64DDDAEDBB75AEE69BA9F2DFEDCDB1E04DF7D5CCC821D11A5C0E4D8B27570674
+457000,u,1EA8EAADC50AE8E4981A536A51E3E708B0081309743225D29AADFBA9B0B34175
+458000,k,E3BF4620E1D0518EC96F76CAB7CDF185F45B01303E4EA2442707126ADEE20E32
+458000,u,AAF582233D11BACC46F65362FA188003977E55BC3E720BE8F23EC6621189115A
+459000,k,DEB5DB7AF8153CABFEDBC4166C4B43E04D51D3AE14AD899F1A02C162409F685C
+459000,u,F4012C32900AE8361C9E9AB4D1EF2B0D8AEA869934C91F7430E8D4920A9F2274
+460000,k,9E8598AF47EA5D7E637BB4D944D52474052B061BBAFD75DBBFBA6F10BEF4B872
+460000,u,FBD7659FD1D372ADCC97AD64BFA1CEE32A8BBED307B7A087341F172C81A63003
+461000,k,9E8CF739932594EB26DB7BD40AE8C22F48623C7FA860935F0436BB896646234E
+461000,u,0AAD907D6DB5A7399F27FDA7DE1938C8ED55A9C6492E484D92942F837ED8F274
+462000,k,6CA79F6C8539302F516FF765D90CD8A775AF17C06B61EEC77B240691FB8A3A2B
+462000,u,00361B8EB5C424C02392D2AB20751892C732142B8E82EA43D90389CCFAEB5A54
+463000,k,FD1269D0F8F7C4E7805D61E1B493E23BC013493DF7C08D02074A5E8C3B357C49
+463000,u,13951574CA01D4C10D5D486F74032B0E33A9D4EEA1658D0ADDC5F06667917F7E
+464000,k,2B8653A0363423F91E94CA4377FAA68DEFCBF30F8CDD316DA0E40EB859025633
+464000,u,E4C5EAE4BAA90AADB5F97CA773EFACF721A43076D085E8C596B3A9E934D0D42A
+465000,k,0DD3867EAC954D325B19278AA455D1A06BA49401BD9D20B30A7E4784549D2B10
+465000,u,1A8F3953E8828D8F123F9BC1C4437ACE6DBDB08878EF20AE338F0FC15B470B4C
+466000,k,B5CF019F14780CAE1D69276EA8EA96D4DCE2DCFE35F3BFFA1DDE60D219662541
+466000,u,9B7192FCF14AA741F3ABBC71660715CA9BB17214D2E0AF614B9EE65EE8189368
+467000,k,78E8130E07E5C0A49E8E94573622D7ED29AA530228A8D44CF6E87C11A168B64F
+467000,u,1B23EAB848CCE206FB05C02D72A1A14D2C13C639BF583D722DB87EF319E4394E
+468000,k,362D047978D4B6E281337FA7E943B16CC58D327962C2AAE58B3E84AC159E066A
+468000,u,A795E02AB22D74E999412A4C400E8D04B5CE1A088FEA97C97686FD59B83B8A02
+469000,k,26FBC48A173B865C714093E33B844B38031651C7C642D81EB47E68589A1A046B
+469000,u,23CA92136E2608DC2F8CA9C94BF79BC1C3D496CF75D84A7C729CEC6C1D2FF724
+470000,k,695BA09816AAFFCBDCE296D244E928D4ED09137615E54F8E570DD2409BBF0931
+470000,u,8BC80E3FFD7CBA7E5441D0514487D2AE23F2C8BAE0D6FF949192D3D71AE36535
+471000,k,7EA693E04991B057FA00A029B3938BDAC0E5D07761FF1E9963442469921FAF0C
+471000,u,C2062D5586EA3CAF6CE2D7970919A5AF8F81AD432872EBDB7A88E5EBAC7FDA35
+472000,k,6946C1BBE7AE768E2DB580C15386132E88B3073226D41E9906D7A9F085BAAE78
+472000,u,8018BDC6348FB284FBF159DF8C51CB551D37C4F049FF0C772BF8BBB0B8575B2C
+473000,k,6D3FE996FF580BD3833F9285C140658E0ADC2FE26047C55B13705DB82B03BA03
+473000,u,B57B9DCAF7543D3B5943B5943CD510467C35E5242B9D12E44E89FEA448414A27
+474000,k,0CE0207B79B23A6F766829C850D4C84D581C3F3BD5920848C21BF21902081701
+474000,u,E1E0FB72AD3C1966498DB4B527F55B1FFEE4196A14116A165F96CFC648183911
+475000,k,854C759A86666088A9BEE7FABACBA76EC09E1C617E4DE540F40B4DBE67813B24
+475000,u,9A4DDCA9B3B04DEB709B3D8EB840BFD2130CF76F8033445EA4BC80EBE4CDF053
+476000,k,089778927462709F70868C04FA9F06882AE85953249954B99AA998EC9B4C8661
+476000,u,88FC4118ADD4ED4E3A1D5C98DF9514AFD57880A05767F1481F2893A700F8EF20
+477000,k,091358ED14B1BAFD230952DE7F368B5D679706A5F3EC639C67CFBE9A2FC02567
+477000,u,24615DE66FA830BA9D4E81C6E79C6097411785123F642A01BE9D547C3F695D54
+478000,k,51ED06C93A865FD8CC183241EDBC35E7DFDC73297CEA7D200F50C98ED6C44D4F
+478000,u,4C4E58500F2759B963529EDF31F2C7EB58403ED5E7A9751F1CA31F0B9AE10453
+479000,k,D5F36B7DDB69FBE3A86E79F93040CA7DDB907AD4820020B6C02F467CBB02D503
+479000,u,80F5042DB9049626789FD39483073345FB5C83F9F302EE5C35908E2D2FA8DD2D
+480000,k,475CDF043B8DF64205A4FF3F3EF3A2978F709AF3E984E0F7C63B9C3943CBDE6F
+480000,u,3645661B16EBFD3D411CF6BCBCFAB3FD7F0E9F5C7DF2ED59D8D948A045CE1270
+481000,k,03D9C24C2F8D81C9AA6B5CE6FE744EDECC105F20F01035ED2ACD07F7D0390348
+481000,u,B9BBBA902D5DC1120E05F2B3CB3F342755E27D5F2A66956FECAEBB8774133569
+482000,k,464B5750D694255D64CDBF49274292DB0A2AA55153BF0337607AF73222C9A408
+482000,u,41145398FAB1337F21FE09326D0C9926781D9CFD16E02E3E114629BC4491D260
+483000,k,913A2091528A7937DCB3D305BFC542E9B48FD2C07BEED040EE0D246BAF771C05
+483000,u,31F924CCE22A69FE487707735ED2F966991B83D26D6D9341CAF28E5C2EF97848
+484000,k,7839DB5199F21BAD42918DE9E7AB5983B5DA3000009FAB90DB7ADD4515ED0D77
+484000,u,FD5318AA9BA1C23366F3926A349B69092E4E5D1D39865FE83C42D04D5B728D08
+485000,k,2D3F2CB14752B8E5F798582726D2F8BBAB340D43C65B9EF7C610F3CDFE81632E
+485000,u,56E60FFD9BA4ED055381A5E2C6130CAC48A5A52AD89499BEAB0E9AFC5889217C
+486000,k,E41633FB5EB31E9BE3FB011C7C4CE47ACE3A3B956CF22C5DC0D57B150B86CA0B
+486000,u,881FA416A821000AF077CB537BFC1AB937E8AB08EF37FCE26B1EF54EA78F7454
+487000,k,AC7C1F1C7B97F71916A56024F8D739B7BC2E187D0FF515AA2224810B9EF76930
+487000,u,BF80F9A14A2FB61C469FA2272E5856554CB01FA74123CC586C907EFA4284754F
+488000,k,262510532412B2491944D1692E40E6BE1B7A35E603EC68375E6AAEC82A6E7A53
+488000,u,5E39E1ED9913F79B4D6A42BB7168CAD622FE10BE4C1A0E3705DC811A6B5C5264
+489000,k,209AB02B154485A5F1D2F43B1F5822D60A7870AE3F9A1D07454B5D10DB28A662
+489000,u,442121483369FAE5B86B855FA634B86FE93348B9271701BFFECE83A9D57DAB18
+490000,k,C72A8DABE218D21E05C967A8CFCEC3956CE9AF57268406DCC426D9C56025E574
+490000,u,A1238093AAD444D1A51BE6AE6290621722BA4EDED002D625A2D5AE5BDBBD9A2D
+491000,k,74E0F499553B27836446D056AC986CDF827CB8C7E823D5D0BE3B68BE7006175B
+491000,u,7786CD85B31DFBFFE60756842A1C328B5BE84528CF0FC976FDF6435BD626D352
+492000,k,7EE63B66A01926BE67BB03BF34309AB8BCEE31C971482BA6D126283A58967534
+492000,u,818F9DD6FDFF1C039ED440EB382AC076C532D69D4CF6C0A66BEC0EE3D00BC318
+493000,k,AAC1CA6D2E2C7E9A478267CCC1D86CF6688704BD729F6F65F8F8BC3F07D94E47
+493000,u,D5791AFDB21F89C5A67E4742BBFDAB2F27D92EAE9F4563B5B9CDB064A6AA3C08
+494000,k,CCAE6BF5F8929BA22F5AF0D18DDEFC6C8986805576B1534DE9274EAD1DEA0E38
+494000,u,0A6547364F9D95F0C1ECA428B3229F52214F7E649606599336BF6285EEC5347F
+495000,k,070C467AA087602026EC5AFAE79A542C2D6F7DBE487FD268E5EF92AB95091E75
+495000,u,F3CB498DE87A9E5112D04950B3079AF8D279E2049E40BFE83EB6D3498F3B1F78
+496000,k,83022ED0C8A106B12E7C123337F1C718306042491616583B3C44FEB3AA72320E
+496000,u,234302B2FE6FDE97BD00BD9C6068E1FB81466DAF1C7B002683F9ED09C022A17C
+497000,k,976931437AD786B2424C4F0898FDB792F126BC29A05904948DAD18269669E838
+497000,u,0B1C2F495B3D8D996485FDE55778A057ED1B4D4E8C7F2172279D5B8A9CD74621
+498000,k,06030FBE1C51B0EFD52628E6053B0D94D5F451354D6158581CEE1408D88ED042
+498000,u,88C851ACF5D4C866A215172CB14DC1A6796C9E7EBB88C6BCD50BF01B52EAAD09
+499000,k,98E46BD58563109FA3E3CFD9F2E5FC95CF6F303E1FF90A6BEE6130E85F2ED71E
+499000,u,E30871128D1C80E400E9BB08DB4CE51BCDAB19E9CF510BF582497ED4B311DA11
+500000,k,EF134A6BC887E43772479C9D3EEFF8FCF5F079BF50F38C3EBFA159A391A97616
+500000,u,1F47A3AAE82EA65758BB66A0D59F7F0DB5614763C5CC4D2A5F7291E1FE67280A
+501000,k,5B5036E4942FB08A1223E4C17A3E8535BFC3E1272B20B1EFDC3C63C556FA7F17
+501000,u,331DD0C35F5B9682114C99CF41010AE8F5B61FC4802E09823A640C8F42F40C2D
+502000,k,5760979FF00AFC0D63C69AA7C6FADDBCB89234504486288C122A36DFA00FA243
+502000,u,B7F5EEAA42AC8275DA1C1AB5F5904AC2E0695A2CEB9D0379AE2843EAA3CB107D
+503000,k,583F78D6577652E79567060D79870C5941841F76EE31DAEED79B21BE2A3C6F65
+503000,u,CEF1DC834E2731519E22054107384C32BB878D9F5395BFF123DB7F30DC4D5774
+504000,k,17BD73125170BF75225E1DED13F7D33EB72B7ACADB476390D5946E02B9326A40
+504000,u,A12CBF8ACC681F3CBE8A60A8A77FF27A5AD1EFA4A8AB804AA9D5D9E67598C447
+505000,k,4FE76F1A0FC0EE0471DC18D0942D86EC0807871DF723E647FADE181A72424012
+505000,u,E0F5DE24BECF77E0297DBC159A08AA914F98F5B48A0C68EB814AC71C8F239B54
+506000,k,F78E21B6E65AB795B862C22B994FF8EC6A33EC2A19AD99E1627950F5E3839071
+506000,u,30DC99910169DAA1D45438A7FB7EECEAF0552940016034CE8CC19895CEF39819
+507000,k,8A0349BB7E7BA0B22D55BC6F061EC607AABFB6F44A5D86D14A34CB67B8409563
+507000,u,5607C4B148EAB98FF56E8616F5F94E0B6781933BD13A5B2AF17924C429E54708
+508000,k,295DF4ED6475C2444352A76AC4CD03A158991EA250515BF4E79AEE8B004EAE43
+508000,u,D77DBA5B4F1D77AB13D433EBE240F14146FC2824DF04D26DC6099BAE4AEFEE5B
+509000,k,9370DFA83F70588668CF2173B4B0BD8E69BFAF4DA6E62F3F60241FC2AE555F39
+509000,u,F6F45517F1E74E892E4A54C1B561997F5E826DCB495D519AEA08EDFE9B9BBC3E
+510000,k,4DD8317EE3905EDC1D694D105BE27D628F82EF3151449FE5710DDB7F15732E7F
+510000,u,263D2B14BFED4241AD787857DF33163FDAF263B77DA0BD9AAF215CB0CA73457A
+511000,k,79C1B1F7B7BC76389528701DC01B005EBFFF13C5D0926A5E724834A4F1516D50
+511000,u,46047F95244DD35164EE914CCCC8A91B85ED33C52B309BD3CD3D6AEC23EE2928
+512000,k,0907F260C114B27F1FA32B8C4F1FA131AE69600C526530991DC626D168C21A00
+512000,u,9422C9BC1DA41FD2C5B6356E7C458C66A5BE4B54AA16689675B1E8283A7DA774
+513000,k,BDAECDA9A144497138255D4E2663E44C05929B2064BB8D5BC080C5AADF8F1C50
+513000,u,258D50B9F719D85D949733FACD5CC26949AAC698F19566883EF72630C9197347
+514000,k,60886B7DC35A9274D617A7762681C146BADCEF4A3665716D52E17601A134AC3A
+514000,u,03CD00B550E728534AD4E442D498AB5A4610BAC2156A3210318DDD0B296FA22C
+515000,k,AD8C45889D3AA035C20F2DE70AC87BDA6ED634457A08AD0B130FBF4EE6275109
+515000,u,A8DEE1B1A437648CABBE142D67B693D89F109924F736814387BAF405C2498A2E
+516000,k,26A234BC802E410A7E36ADA729E8590A4E1D3B06B0179A1626142F3C01D88F74
+516000,u,19D8EB3FE104E003F6C1C82A09D4F02AC6834545525689A780F1D432B97C8530
+517000,k,82A5F5B97B8E54D496FACD8E18BD33DAEE38613F962A3071BC30C0D30659AE68
+517000,u,FCFB9BEFD8E69F45AA1DF2D029F46032420051F0BB68E01147206AD3E0E52925
+518000,k,81E8133CB8C3157D9BE1C4644729F2B5BB3CD0C970E80F6CA656B5F4AA156C26
+518000,u,F21CB594FA81A8299B4ECE167DC29816D613B28A8CEBB2D2750C4AADBFF31178
+519000,k,966D5C812F730DAAAC28FF39958AB25A40D7F67935259A21ED69D08631815D17
+519000,u,291337DD780D042640E372632945CF4E5E4B561EC4B2423D596C68EDD356E326
+520000,k,9EF76924E166488F5FBEB17244FA857E3BFDA534198C29F5A0EDDC821388146F
+520000,u,55F8E5A6D29CF1586007624CD8C21D66AC9B4EDED72D7B4F0711B96EC9678F4A
+521000,k,490C40503D499687C35FDC9C8B5E32F85A1EBE52A490FABC020EE3FF838A7528
+521000,u,392E1C2DCD8C5B7F65D06EEDB14D33CF739EFDDC5FBA0C5B65ECB6CDA0EB7A0D
+522000,k,53A1D4DC3B18D7B69CA03A8A358FEE017FE249BE2F5A4FEDD6B2A8525B72CB07
+522000,u,367BEA7218C76536BA56B6355C9983ED609A53D3B678D06418700170330AC570
+523000,k,281BDE895BC175F986E48C6236D4C5FDF5D1FD69FF75FC356661EC8230C50F04
+523000,u,70FD0FEBBB26C529BC3E81BD46B692CE237B41921251991965B2811C2835BD45
+524000,k,F9AFB8405A66FEDBC887DF005D1987817E54FD02D312F187D12B2A59FC1C3A54
+524000,u,7FE2789413421883DE45BBF8596087E9C25084219441ACD106FE1EEA3F5DD203
+525000,k,DC5E3AF638CC03F5BC2015280ED808411038E09B0CF53A50569B0E15C7B17F3A
+525000,u,ACB837DF22F8CAA8422C62071EA7723755873E74B4D7AAA484A1CAF986A8A646
+526000,k,2A0CF5D5321D1C7A1EB4C483157609049FB5E48BCA5E6981CA47728B9853226A
+526000,u,E08A21E5C481EE36EFE87ED55880710731851DA3870CE625D85FC695395B7917
+527000,k,1B59AF3A0FF292617E81E7CBC9E44426955631B005B5A2BD36A0B69743508C74
+527000,u,9C549D772CF1BA5D8E1259B24161858C8AFC8B22A3BD6EC93F2F36B9A7E2990C
+528000,k,EB27AD80BA2A427D945160B0EC2306CBC3666530960BF226D27475371947015D
+528000,u,BEABE09A8A291282B1EF9D13C31D6796085D4C3D3F6A50BB11D93B8022B96413
+529000,k,E6BC3E82651C3DF03FF9655901BD74B8A9D23E777B43AF15E8F3F8FC2A97735F
+529000,u,155C45888977AC6D2D43D5E16CB44FAEFCBD15B437A90E0677FC5736475BCA5E
+530000,k,B797B3849E08A72444C3A6938CFE277C57600AAB9435B722AB777BF9C4D0567A
+530000,u,81C237277F8D64BE1AD29B776C7B2C51BD1774DF9EC2ED280E8F73F8DF5EFB6F
+531000,k,E8F2ECB86CB7B43124B40C916CF408CFFBCF4E1FA0049CC1B1462F804D92801F
+531000,u,540777C085AEFD3D45080483604C5E9F648CD893970B286D8119281E3BFC8F1A
+532000,k,CAA8E0CACA37B23CB610BF5B02D5C02BDD000C02BA58D0142032AA0734BBAE6D
+532000,u,42B93C17B81066B9B16BBD7CDBC3313EDDCE773B3D5AFFC806F5AE567C719931
+533000,k,F9F07D9814EEEF4CE9B606D9DA7043A46BACDB4BEC3BB3D023499FB730AFCE44
+533000,u,665F8AD1446AC9FB63450858F5CF7CF3D55DEE390F1EADABE12DF0240EB5B711
+534000,k,AAF173BF7A02A2C153ACD14DF534015087049F0203CD57F583525E8054338D67
+534000,u,54BD48F50CB2CA82601D4189EE9B6B8AFC3D69A70F29C900F643DF49D9BF0230
+535000,k,1245DB2F7818B6C250B5AAA093D5FCE4615D1D1543BF416C56C3A75FE2348C57
+535000,u,D54AF47260EDB4CAC05118292EB0ADBCCD64F7F24206D01B18FAFBD55F516E1C
+536000,k,BE57832923EC704751A21FA2666C4CBB999BE346D28318F1C51F7FDF1E3C2C55
+536000,u,D022111C337E1714E5D9C08D76782A2010422BA59EF86F0235DAB74F39304436
+537000,k,FAB78F48AA11B88541FEFF5E3A5A20987D8BCF03134754E1D2FFC9E99A9C5803
+537000,u,81F3EADDD1A61A9826E40D7F5D91F308490B4B6D0329A91E921C0B5C557BF87A
+538000,k,7A9B027DF2058515327C7B5FCBBE2ED6B25A78639D00428299DC858BDE3B4F4D
+538000,u,2A989905CBEB77B09C3E28652A67188445CB5E2492958C5248FD2D9068D6D978
+539000,k,3EC04382C1B4C9EC66277B9AEBC2748A3619E2A1AD456E69C400C3288508303A
+539000,u,7E46A7AE6E3D10D4B580F915A409F098FFAD99B87DABF938581272CF2799263A
+540000,k,A2EE30613FA27A647CA36300CBFF2D3807B0DDF1D5C2947E767BABF7621E2F3B
+540000,u,35651D21213B8D8E6A0198235E5D3E0A0D5EAC1B0BE1C5D21CD974BA4632B850
+541000,k,9CC43C92B446155EDB79D8EC50455D5F31D17A8138DB543C6D039A7DB1455978
+541000,u,262D4A6D302FB8FC163B4081EFC8942A848DB47D6F133EB2A28E63CD46403826
+542000,k,0FF726FBC4AAD34C6194E7053BD20308DADA31E812F3CB1ABBF65CF01D4A560A
+542000,u,E108A97B817082D8B2E9CE128F0BE457BCA78CB6EE48568F3370593C5C8ACC7D
+543000,k,E48167AD76512B8AC8219F0E397D6FE6EC42A19E16B738E49ADF46768D80D05B
+543000,u,16C66CDEA4F2C7F7EC4BCCF1D48A34DA89EFA31B2F4D47145C744C13B7902971
+544000,k,00B04CC1F0D22AFB6EFFB7E7100402309AE263E0D65ABBF87EEAB19A2F7DA922
+544000,u,18BADC8A62F725CFA9415DEDA28B207D4597D7C4345B978972F7872664170420
+545000,k,DC7542C3685185FCC12C50F82B6A8221FDE8D2283567C06CB9EA7B541959BA38
+545000,u,30F4E488CF53C66FE249046B1F608EA16A4C5018261C7AFC9C68BA4FC97E1576
+546000,k,8B56B595009683A90C6CCEBC8BA0226A106C107EC5F58D382F7B7DCB7CE9986B
+546000,u,04D696A818DE695C4A565F101C0FA9DE2B856CB0DB4E25285E0B7CBCFDDA5049
+547000,k,69139CD583826282698903FCDCB2230E103E07973BC29C5664809054660DBA4E
+547000,u,C04EE5C2189D9E0CC1143BBA133971DAD889AB6AF98C6180D55369DE17F9FD03
+548000,k,A7ACE2852BFD46C02F810F4FAD63B27B53F797F90AC1D897B2A9070FA8A33650
+548000,u,182F788639A109419CB6D7163558D829599B33D04BF426D4158AD8FA29F01104
+549000,k,B2941174D162A28146165EEF37A67305EA402692BB51EE21F9834B76759E2C17
+549000,u,FDF301522829121247C39C7627DB55300949C19F2B5ADDE8174442978D2B3934
+550000,k,9750F4E2A8535FABB12C27E4C72C3368E4ACBE91BBD92ADD43A3E95BCD42B723
+550000,u,717B8A1646A2ABF9D376AE1D1333E97488E37E21ABE3584DADB0DAC6A433FF20
+551000,k,F85A8416C418F2EDB508820521DB18301BD195684FBACCCDB915FE106B6EC953
+551000,u,3543C838FC698DD2E43AD543C4E0AE2E6F23ED98D9A6B51AFFEDB9621A576264
+552000,k,11CB1A99BF23D4805739FD443FEAF0175BF45FA70AEAF61D5BCD02CF41465274
+552000,u,6ABAC61DC5CDED08162DA16EA0D099807976496FD26CDE3EDDB8ACDE76CEE865
+553000,k,AA02A20D86E3A68CD19B3517D12342D1BB0A58DF59D11624B9B1AE5771E40965
+553000,u,A967CC1BD5A30BF27230B8549D0A435AC3EFA94E7A84664FFE91FD746C1D4F20
+554000,k,2AF83F41EF47C5BB4501A664B54722F1D1D79C07FF5929625C5E27B4B942D245
+554000,u,DB5D936526AD0E5401A499832C1EE57D74CCA4A5857E1A62E1D0091B312D5210
+555000,k,E77A18F0E67994200CDDFED8FDF0504018B44203D4E6C201E15D05E5E59CDF11
+555000,u,BB98D2C188BE31D238D0D1278D9330D1A7AB970257F286C3866028BA57DD4423
+556000,k,1CA841F662DA7E5B78CB46A198536379515C37C5CFA6444B88B55B401431FB02
+556000,u,E3D4672AF366A88142256A9FF7B6A623462625E74E7CB80057E37B39EE68244B
+557000,k,AE9D06E9F536FBC210EF32D9120A3787073CC056652A6765ECC42EB859C46929
+557000,u,90DDC359FBB759209A0484AD6C04E2C598FE9542E8CE3E4298B4687270EFCE42
+558000,k,7F3257AA873F93ACD81C7B6BEF3A0E10516B768361D963E53D272BBE04F7EF71
+558000,u,5EA2CB0F848242FD15D101C8E29673B6C5FD47E93B42675A7AB45CA7EBE86204
+559000,k,C5412E7AB88112A654A9A2B69D3F2F9B58C1EAEC5DD6C1E17D5FBFB4E77E7D0B
+559000,u,200940B0C705BFDC143FB91974123E1F9B79D0EC24A16FCCEA3E4D1081FF184E
+560000,k,16F8F26868DBEE3ED303AFEC685BA6ACCEFE967EE0E213C1661CB0017D69FD0E
+560000,u,C4C8C95C149B9B8FA8AE79ACF40F76F02D85B7F630580B39030F8C8C83416D22
+561000,k,D66B388256E6E1DF63C7FB46C38360C19D04592ABD5478E2B3CBF3BFE745A125
+561000,u,D621FF9A30D4282BC7B2B0561B554AF21EA9CFACC56F4DEF84072728CC9DF53E
+562000,k,A9E1E3C154C738BDBC891656719EF98EF8B1DCD83936C7370C8D068619C7A402
+562000,u,A5CB2C6F912291DFDD18365CF6E07A4BAF11527B7B8558818FA64734CFE2265D
+563000,k,0079E70073305166571900019E76ABAF040BF1D2DC3EDEC0487CD846A5641726
+563000,u,9D0E08A7EC313FF8FE50F66C690430EB4BDA98C3F6BEF84A4230FCA7192C3F02
+564000,k,09BD653421BCE7D0B8F608F4CED00B2BE544D477DFA2F585CC87F81F2A7DEA12
+564000,u,95E250E0EBF4F04196E26C6BEB73A98163E7BC5E33B07FEF5294C89A38A4D538
+565000,k,B386D938A823B0459C520401248ED2B4540BBE4EF22FACB5C0F0229DAB6B5B21
+565000,u,474F353762BA22F4A855F909EDCF326D32E7B637E024E7B30F186812DAF7A85C
+566000,k,15F4699416FD6387999D97511B89272AB0BC64D6723FC549746824C097D4C23E
+566000,u,D8F06CACA6C671B8A3B72DC2E7744790759013C3227B84A2E6FBA6C95296F045
+567000,k,838273BC6F1A8F231319382911CDBF00B18C621AC7FA56B22BB0C5C9C9D0A10B
+567000,u,0CAA9E530E4F2B1A2923F8057B81A28CC5B6973777A8FBCB42755B2942184F2E
+568000,k,A32D9DE8B97241F7F8B9C233D72667568600EE1304B9E5377A30194D8005240A
+568000,u,143507F51EADA650C376D53D44C1A0C1EC2E32C558FED0BA891D49ECDAFA7871
+569000,k,B846253AA1BFA6601E65C457015BB04AF7733D7B81E4181D6396A759422FF434
+569000,u,391CCB945011BCC03943EE5AEFBBF07726B73BF82C9D105B0E1E036A810B6410
+570000,k,7D0B442B4FAFA8894A7AD11E30EF85954827329285A01A57D639793EB716355F
+570000,u,110DF9FB79844E78EBBD824D5715F37E689527D62A79D62EBF71F085603DFE16
+571000,k,700EC77742E32AE1512507B094FF1926FCABF0C77F79A54AC47C0774BDDCFE37
+571000,u,3A7881DE565DCB280BB04D56EBDA6CD164B28F75BEF82A6D66FBBC3101EB575B
+572000,k,7F387F3B8AC58B2AFE702AB64B0A5E677377287D0F7FB981C9AC5A4B833D8269
+572000,u,A3BB957DBAE86BBA14BC2545D6CB13682F101C2D41027D498ABB1D0A466BBF4E
+573000,k,9EBF556EA323F2ABE7F8685D970340E464491C0AEE91A7D5069EF3A0B6338539
+573000,u,AA6487C8CEB44408461C0A2BFD37EFCD09BBB419D2C82ED2F05EA0F7A505F32C
+574000,k,6D62E00C3F1D2019ED5CD3BE8410C6B1F5F8A14DAF993A78152D1E4C03A3B577
+574000,u,4BFB957812AEBC5E5302692CC8AE747117222BCA2257F9A1D0A14CF3A23D520D
+575000,k,32D808E4C88EFDDB65948B6C7CF8086B17F9AE8B33AF63DEFDDFED6ACC373E18
+575000,u,81FAD986BE28F2DBB96D7C24FD71CFD266305C5C2C73382068FE2AAE4D96CA6F
+576000,k,C9E7C174B463B119F031F933233A504EC74C421998E28DAFC8069B64CE9DE07D
+576000,u,0D4B7B29091FDA81542EA089A747B3CB830437979D0685A77375A3F2743B7570
+577000,k,850B91FCCB806B9F73306A8D81E368B6F690C74C7D334ADA93A47C4CA3CB3249
+577000,u,92C762310CF929550DC2E6159A7FEF0C4744A7CA22218D85D20005C61C2CFA3E
+578000,k,39CABA7D88E485AF7B411FF9F12FEC91738E372D7D6DBA453AF8A5C4EBA56961
+578000,u,0EDF16C55F30FDF3D438C9A1A49DA7F1E3679CF13917AB517446D5E396F1AC72
+579000,k,E012F44B8A109A4C28E5326E9C93B079E7FDD6091B8252CFB4CE49E6B309287D
+579000,u,607D9B1427E708CB46123B5ABDEEEE5C41E27E7823B24DC8DBBF82405D658137
+580000,k,38DBEC6BA1248911ADB4C81D6B20ECD2663A3467E780BCB5971586C19C305213
+580000,u,C068597989DCE313B09DB2BE33A6A66B435E7E0E775AF0BD4D7E81913196B631
+581000,k,F8C3582E68362892158F387F5F2BFBFC22143AB9CC6C84B568AAF0355F216964
+581000,u,AC765257766605EB1A1232792109D0264B09E42DF7D3ECD5549B838F4B9A8230
+582000,k,99336C10D27817C590F6589B5F19FA33396955D345E2A45C417C41B3E281D86A
+582000,u,04D5CCBE72AD0CAC506CFC9905474A5C9185B30AD40263F7F59A3F436393627E
+583000,k,C6624DA378382CBA6147CEC8935DD9BA5D5EFF9C4C8470F0A8F830B967F01A2B
+583000,u,F387CB110024F310DAAF1472142E831836C6862C8E4BBAF2D0AF341C96FB2E27
+584000,k,5FC44EF7D44020A40CD67B353AD8252DFF790DB3B984560D135FD3B791518E38
+584000,u,A4CE6B0A6A2A9CC5EF84EC242485EB848520F9212C7FE01DDFC7E789DB596369
+585000,k,A3E2E48076C57B1FAFC93E281E3955609F972956EA9083DD2CC8725E31023B4B
+585000,u,1045141D0F8F63B70DF1AD00BCA1154CD720F0306894CBD435139D881D2F2F39
+586000,k,573B923B41F74343BD1069104796511EE580D976A743B47A0C66C4F626F5F316
+586000,u,B2E10FA60F97D732C7D01C8E1B0C3433F6126174B8C0F73DDA9F685B600F3E73
+587000,k,D56C60CC9646A4899888A6B17EE0687DB18993E27C5A8BD3F50914055F7F2E21
+587000,u,034B0A06187854BF59E9AF061D9BF256934F6D13B2C7633E2314EB7F58C80262
+588000,k,34DD55CCFA56B5B7C2337E72EE49277B676E6F98F38EAB911DE1985128E11053
+588000,u,C08CABB5B5712A41E052E460B17DB5E7D8C6185FFD4997E90DD70AA29AC3A46D
+589000,k,725C3371EA1EBA50CC44D2CB1EA1E35DD164035F31EBA8AB850C44470C6E1042
+589000,u,74F252967C1DC7DC8F893591E39E8C6EE26BFB351E074B8B01B5DA6EF2BD482C
+590000,k,2B39673E2F66E26EDE71E25C30F10F35D066E017134E7D1284C4BEAF4DA12B4C
+590000,u,78D11B4C0227B174B275801A215943A829683FC3F0EDFD5D5AE92C9AE7B44950
+591000,k,3DA8D00565B9BF728AD3B4F770BB0B9EDC0154C16B9C7E01267C9CA2E2281877
+591000,u,D8C2B12750BB9AD491F86F23CAD55396178FAA820ABB0605DC7357ABEC2A2877
+592000,k,E80F850E2775F4D6704975A065CFBC9366AC6E3DDDBAE64F965CBAEDD5E1B97A
+592000,u,2C45973EB71DF310CA009AE20EAF1B07DF81E0993760C5F51ECEDA17C8C32632
+593000,k,F130CA219CE77488C528C98F1092E642B2A7170833E3A131826E141316B41210
+593000,u,26F37E44196C98B1E6AD349B66BE9B05A3CD3316A3526E68AE8CE214F73CD920
+594000,k,C4D85E6A7CBF1F38D132A9E5C2E5391FB6B594EB283AE52D8AB169857F660C2B
+594000,u,EB98E6C28AE6ED1AAD64F28FF9CA5A40D75F1084A6C807BBA1BC911FF1CEB43B
+595000,k,023F87A5E3E2C054D92F6E98FABFCBDBE2CBA093DF1FA89031CCACE92731E931
+595000,u,5D6D817AE7C65C5166317CBA659F1365A4D297892EB07FD46C1EB4D9A90A7B1C
+596000,k,200F51ED56CA61FB8B3AD9FAE07FE6043FC16E6696EB849D4ABDD84D8E8D905E
+596000,u,4DA74A2C91EE88B37AF7E433F3AC568A9CA2C3435AE0F15F917115FE8CA83659
+597000,k,5CF80EBD4301785D163E8EA3B69721F6A58C0386708C1A76378CDD5FCC91675D
+597000,u,622B40416552BA8A6655DA19D2EB0779F7670006AC9A78E2B9B773467BDF0E3D
+598000,k,39E2BE6B194E520456C2D58EA72302B3DF730D34E8C93E86774DA331AEDFF059
+598000,u,0FB2EA9FD22F34B92E28A894444757C984EEE565D0D2FEB6BE0B84FC1035984D
+599000,k,8612E349B09C3B84ABFF09F29E5BAA3461C38740027F682465AE63DB8DAA4303
+599000,u,EB5815347EB3714AE89AD12DAD24214FCBC6D32C433C9E2AAC01A3D89257387F
+600000,k,93796B663F1034AB975DA7BD025AF25367FE3A57874E746BC91239D842F56A2A
+600000,u,A3116C53C4B1774DB95798A929D2C8411321C0CEAC11C30BDB02ACF485892258
+601000,k,32A68AF2E4FED47C0DE539234F8DE80F0EFD325C885F8F7230FD0817A522AE44
+601000,u,76909D9CB7A673A49B955428F56CFE558FBFFE73EEC34CB4C133F04C309EB419
+602000,k,ECAC668491C6CF3701B998BB16A1754358EFBD7A9B916C7DA3F5A0B5339D0563
+602000,u,F93F4F5BE3557905B95886ED3795BC8B1F63890AF099EBF009A5BE4930D2BF7D
+603000,k,0D325AF0DA797F1D7E31649CBD27B087DFA1383E8966F777DE0C952B3A52966C
+603000,u,30976E4BBAC642158A13E72A0DFFBBA4A83FCF2BD955F04BF2CD85DAA30F9B75
+604000,k,887753C94930D4E760AE3A245D145F0534891B196AB4BC74BA7049813F4A5A5D
+604000,u,5E81AB9B881243A84198C583643F5061A467485826DBD24015506968419D7756
+605000,k,3530026A386A2CE2287DE0211E26E1239826943F97C354F3C896ECF73F33E778
+605000,u,CFC50208774489134A81A26F51E33E82919384775CEDAC215DBF35B416D3490A
+606000,k,3A03859649665CB2EB43A739C70935632D4117C9F19E05EAE814B97DF35BFB24
+606000,u,3191897F00201A88C10E350084D835B4DCBB1200101F1D2096431C47467F2753
+607000,k,F586700488912B7DE7EBA33A7242DD2AE99F79BD6F2B8D40F6E47BBAB7DAEE67
+607000,u,4378CE37A62916E29A5A3100EE95C4308D2A6B6ABA387B3E0F8E08A50CE1A904
+608000,k,16283AE234B155906EB3F27653F057604D279C87C949D8AFB31FA78FF7201A06
+608000,u,4000D027BA04E8A0DCD398D89684D63BD48476A3ACB66138FEF798E756C74951
+609000,k,5EC245FB13D33DC174A11254FD146C8F7139126E02AD6FA991E07BF4DA4A7358
+609000,u,3436BC85C7383E31F2BA6CD0030BB77B89975264F467E45DB3C4ADA5A8722826
+610000,k,708F60CC3AE0949437DAC5E342FD05F333CEC986AE0EC5C730BB35318FBDE07E
+610000,u,467B0EA49CFFE0DD4B20963A1FA613D51882CEB3E9F886F36E53C36F414DE775
+611000,k,13121ECD2338E79E3AF76B381C01C0263DB75B0D802EB2A2064666C97E65FE1E
+611000,u,56971C2FB666519951D3BDF1415978153E52CE16375BCFAFBC692E050F63890A
+612000,k,7B4F191761B2765E7699C0F53110177C4D922FCF1ACB365E4EB15C0A36042A4D
+612000,u,89DEE44E4BD81C78847B0B7212E5973A72F6856AE61BBE96206B48BEEB7BEE02
+613000,k,884E2948C0BCF94D4707B0249D0D018208037933BE418FC8C5F2B77F8CBE794C
+613000,u,4201F080D24AF802A2F4BB50105C0B0BE6D945F3853328AD878FCF5F5B9B205B
+614000,k,327CB1FFCFC905566A925CF04D89A6AD981B954DFB2A209318D2B0EF52A0B672
+614000,u,175E7720251A14E3E88545937E42327416FB10B6B68C582CF50788B5F6653009
+615000,k,27ED14F737FDDE0D5E49F7757DC96A70828BF0C862B21B42E2158C51C233FD21
+615000,u,BDD0108BC2053E1ABA1CDE0EEDBC05388DD20C05BFCE76F51FC4CFB2FE618543
+616000,k,BA0CF3AB41E0820D24D8C8D19EA52D4976176F5AD1EE956736380D05A1470B5A
+616000,u,4C1AB8BBC59A8E40C9EB64DAFDD4BF5FC007EEB3863EBE71A3FE454E9BA24157
+617000,k,7293131BBF13A076C0C1DC0BC3DB0ABBCAA48A52C0C2F0BCBA82C78A305D2879
+617000,u,D8CE01A797EC83FD34D11B54E4D1D14652CF8D3F34EC8F3E21C780DA655D9230
+618000,k,1528ED0302B84157C121211080983FAD405D2DF5DCED47D9A3F9E8BE32FDCE2F
+618000,u,6D7A80122966B7B805AE12E63834967DDD77A84BE583245F9EA2A58F5F0C9D4D
+619000,k,FF50C3362AADE9A5478AA7F01C4FEE7CB942C9BB4CA9F0528CF90FBBC1549813
+619000,u,1A6CD31B2F7D2539003F9F9A9A00A4D00FF2BF8B480BA364695E741C930B4F0D
+620000,k,EAB6F7C69305C86BA9F569DFA7B7005BFF3F399BE6CCA607E1F8E3388F01EE1D
+620000,u,529E0944FBA44AF980D523E2E1CCA54DCB0EBB1B0B3FCE823A45D19AEFCCA31C
+621000,k,DD3464B0A0AE2C55E3D11A9D4B29AC2844069B45C3DAF176103FCA6B8C500B00
+621000,u,97F7BCFB394D403E037A99BC574CE7E52B91B46A9BA3387139770A93B035477A
+622000,k,57D610D42EF0CBAD89A81B5AD9EFCA8A0D56BFD8B3993CD08E22234154A30F76
+622000,u,61F972C99B3BEDB26651ADF74B9ED0CA36031DA76259229DC0DF72EA80386A1E
+623000,k,F3A9F6C2212BFECDDA39232E9C5B9A76CF0BB73ABF2F733AC8ECAD00AC0EA45A
+623000,u,3B5E93A7AF7C937E8369AE8C796B810934323DBE1007E097B734743B3636E178
+624000,k,7848D6D515AA265B343E0BB001A5E53503FAE9B11ACB0803C4768FDA3828884F
+624000,u,F516C7FCB2C216A87F8BA8ADD5DF37F1E9FD22B994CAA4FC5101091E2C2B0D42
+625000,k,182B4DB208E3E2E27C82F13EB0EA8C6B5FA2F6A7AF1612DF7E66F13595BC2425
+625000,u,2B9BC74C282DDCA379D4CDC8B9921990F0A29A80585721DCFE4A248CF28C9E26
+626000,k,23E85A989B12FBBA69AB81F90E999891347A2657B4021DE41A84B3B30DE2CA43
+626000,u,75310DB38CBE060678976E0A36EB72330C9FA58786E406DD574CAEC70879CA2C
+627000,k,EB3E24A01271C72B59A2318B4224BF43EE3FB9BA1C93023CED1915449AD2F240
+627000,u,EC2C72A3C9F4648C005137D52C0270F0AC99F6610C7E5B775DCDA2EDF31F9F3F
+628000,k,B170008FB7FF0B37F27CFDF7DA99111178C0E9E10EFBB639194878462AC39A07
+628000,u,1411212EB2F631FB33B7D732CA34B753ED4F73FD2A3243B76C05CB397E710B2E
+629000,k,ABF1A16CEAA2BC9A120C93C0A71BE634DE76C66DAFB5808827EE13D78DCD122D
+629000,u,AA4AC4F37E7D8BC2684EA5F1D609266BC1C4B82DCE9477F756CF5FE1451F0F1B
+630000,k,7F6ACE8223152CA7B8ABC865F3CECCFAB85BADBCAA07B11165101395094B7813
+630000,u,75B62823ECBB259812E83551FDF12F0B88B25DA871F35A324B1F8E5F24BED11D
+631000,k,AE8818E0781E5C38817731D4D983DFA43C552456D4597DA6BC6058C66B842150
+631000,u,EE7E03215F5C0963E10FEE3C823F33AF00A7BE3755235A1BC3E36EDF28CF974A
+632000,k,CE55BBFA816AEFF3F5EBEC602DCA86AFA14DC2F3CE16548F0852DA1DF586DA4B
+632000,u,2CD33C677D7B9FF699FBEABEF2039AB7500DA6BED8CCE180AD78E9C01DFAED32
+633000,k,AA02E4BA19BC34F63060A50D4F1D2FCDB5BCDC883CFDF9F24AA434B8FD234F7C
+633000,u,4A71AD6D12384EEC152F4956C2DB08BA55230409D879685DA7902C4D2DA59E2F
+634000,k,D1222906353362491599B05843F2DBB19A3C4FE371501A50161F087D3AEFEE01
+634000,u,FAA4547C55DE2FB1652AFC7DB56509D11F1ED0D3FA713BFB75099E3173B2F24E
+635000,k,54992D2F344133C77CF1614E5E3780DF7C0727FB343A2B520669E45ED4D4DE4A
+635000,u,2DBD250A210B3C9700ED36674FC3D02C62967DF8711BCDA42B926A8465C90E75
+636000,k,7E8A1B7AA2DFD893131CDAEBF343354B55A705F69C51C2BCDB6F936690617D5E
+636000,u,976B9A4CBEFD403F13E372E93B379A1877A4CF882B9C525A72ECE25878979D0A
+637000,k,FF56B4B2458FBCE91F506E46A9C6360822E6F49F4BEEF8BC33A1436EAD4EE066
+637000,u,C05367436B9D71910C68F96F91C008AA72A46A10CEFAF20E6F3567664959F473
+638000,k,9CB46039F26B90F72F54B2ED85DCEF0AB50913131F992AE272B173313B1E826C
+638000,u,ACA7BCAF4E9A8904C577A466874E12347C36AFCB0C84A05E5645C0CC8F1F4B44
+639000,k,A422BBA3E8DACBA146ACB0A88A7A5119BD9A60507776392D758B3F0DCB65391E
+639000,u,122BBF3CDE4001D61C0515C65953E8B8444F5A968BAB3997225203D5B066AF5F
+640000,k,01EA7F58240F313B6A339B9A063420332CBC4A6D064A87ADB920C601615AF11E
+640000,u,A88632DDFF0A81B3C8BE68A368E620F2046970419305C1F48FDAB5F2CAF4931D
+641000,k,6DAC0F0996220F3C9B3E9741F8C2DE6FA6FC49CC26D4D0B90A291B1682877020
+641000,u,BCC36EBB45B813FA0D2B5DDDE6A0E739D24A00872E6FC23E4E147B02BAC1CD01
+642000,k,022F167AAA86F1BBAF74186E1431F1504ED0DB577AFF5AD05C5413CCF3F73347
+642000,u,669845279B3CD5141ECA6AF36F8A75B699ECB611FB6F05260DDBCB9A36A4D76A
+643000,k,BB5B7ED332F09542A91594321F087C5FEA62011180351F8979CE467A530DE45F
+643000,u,E86966A18F1C6A6E46CF091CDB4E29ED137350A9A4CC819184B0A1AAA1F2B943
+644000,k,F2360F9AA8BE553ABB088FD192489543E150989AC7990214116D8824ECD3494D
+644000,u,821A21DFF3CD805B3D469640BBB047480908B7FF197F8C283F68D628DE49EA50
+645000,k,E6B2DCC6696CA20FF5566433E100FCC562B582F752D9F5E53BFCFC2BFF0CAF1C
+645000,u,6E83BCF47BC8A66CD3A51781DB15C95F652BF2982052DA97CE179D611F059946
+646000,k,85336C6A34E8F33931DB52A1349D1B894AEF91C403C591C60D7ABE4D06F19956
+646000,u,BDE3FA6E433B11A58A097B11FC08862B2D2DF0AB08890BA93CFF65D9E6A6CF67
+647000,k,022604AEBAC5C0C5680F81D8A0DEFD5CC59299C928E249CEF4388A949492322D
+647000,u,D6432871E498741F48DACE3BA4C6A5305983FC1E63F19CB7AE3552B4008D045A
+648000,k,0EFB79BC23865ACC05256AF03C9337873750712A4E94279B516D54793461BB39
+648000,u,CB066AF559670731AD98D0163FDCF9F67F21AF04335061B913F5658BE7D7533C
+649000,k,94B9BCE6C9E81298E70E271547F213091DCB9E24EC0A0F7CF9C042F3FDC96B5D
+649000,u,A5170A641C410FA13BD52CCF4AF3841EF0CA2A47D0CDFD276495A4CB6F5D9B7B
+650000,k,D24BABBBEC464E030D06FA1CF7BC7DBB1B7E1A9E8F81C1424AA8A3D08F88FC60
+650000,u,F62EF3B2332AE75BEB22E4798BB3F75D55C2A09DDF7816C34D5FFF8E5053B743
+651000,k,90FE1057B9080872BA2EB9B4D66A4BAA80EBF34B3E82157E7F87C56B843FF02A
+651000,u,3AAA5CFC7253DC0D7A9832BAFCF50E62B9E522602EFD55A15059ED7D0B235871
+652000,k,FF3A5CD390BE0DAF3E693175E1E6EE4E3F0DB4AB5195D683ABBF54E26646923C
+652000,u,FDC32B25964BD996C1DB7A667099C144F635B0B8546D316851F1588E23972E19
+653000,k,06E5260CE89284A6F5F0CE9972ED51C9D21311BECAC314D477884D56C6B53018
+653000,u,EDAB5CE167A90CCD3DC6F930C6D58E1DE5D7D23B3E7BDF040A4D4505C4FD7C33
+654000,k,1241B56A5B182C46914BCBB5A1328B04C4BE8E5387D361A805C074E2E408461E
+654000,u,CBAA1326C566A0320ABBA916DB52FD161E4FA1AE7C0FD7371D0D36BF6423804D
+655000,k,4D0C0E75FDE222C0672E9AAB01DFBE5D222AC600F74DC534447636817090091F
+655000,u,176551FA34D45BA812D4375F808DD2605F46EE9ACCB398DE66F3ADBA357F0605
+656000,k,B13C48123AA0B0047F3DD5E00C97B26D1FDC5CEFABD995BE5D879AB8B5E88160
+656000,u,E8640A1094B7CF4EDC41C566F402563EB9DF9AE1FF6A32FA19C6CC1512D9A23E
+657000,k,D389C355F174C961CFB922F6DA81B7B1AAF51AFF677A475719A1516B412D7C73
+657000,u,557EC3F45386D3AAD322BFBF623DD8C7105C0FEA3CC750342D49AB22512AD441
+658000,k,FA1672EC9E37DC01E9F1B92DF05C4BDDAB70053ECD98ECFBD262D0F2B04ED755
+658000,u,341EF8B59D86EA5915E70CE7CE3DD00954365D73B379B0B6782BBF2180F92E2B
+659000,k,D75E634F59DE0CB6BFF1D2A1572A23592A6187B2F9C221D230D305B786EC3073
+659000,u,C6A399EEC4DCF0D3AE955FB305B2C6339503ECCE45A42255C13875213E314F13
+660000,k,FBD60EE8EA9516A2D0F00C4D690D6FD6DB284C186516DA7953CFD0F0FA8D8440
+660000,u,248E3ECB7663B7BD8B83F6E9A46A00DB28B09F35F4D68B3E3700612111825924
+661000,k,9A0939BDF4749FDEE9D852B3C21B82A54771B66CB2936FFE322300136CB37F0A
+661000,u,D368FAECFCB92C1BD87E3EBA348FECF3C2E66C7F0DD1510C5F23CF2D26ABE205
+662000,k,2DF0014921D55BDFBE217CDCA3A6AEA90E3C1513673C0C02126B557928279710
+662000,u,DCAF69C097DC8D9636A6A64983E4B05DAD23683A62ACA45AC695488AF4EE4A4F
+663000,k,05A51B80B190DBB34275D26145B54158371C182C78B370B87BD6FA2DD069853B
+663000,u,C0EC52AF5932AF8E70D2266E3B74C097EC6588037429D9533988265F61FD054C
+664000,k,F2D3CA647901E0EDE6C1E41F4C4D8C7736858DAF1493F89C140D81AEF032CA37
+664000,u,B02DB37EB9C9BC46257CD40B0C4F54CDD3CE89E2F8A8EB7FD0685083CCC64E6B
+665000,k,71314082D2724DA3BED766820C18044D6E812887A306E30B3E124DE87A48695E
+665000,u,8F38B12DC0F1F758C8306283C9503C86D95CD7023771D9A89E174D939CEDFA13
+666000,k,FAF3579510DF3010884BD04C2AA0A32431AD851A14443646680943B7104C770C
+666000,u,079EC4F6B32570C93265B154A6C99E99146526A8A9D12F1F4DF3543D116BEB1D
+667000,k,93A084140EAA138ED2CEFA058D64E1E465B1CBC9DC2472CBF99EF0BCABC52443
+667000,u,8D0CB8F770329E13E9C448977CAC0A6A728CC362EEE48FFC429C27F859A17828
+668000,k,39224CF53395F3FA82FA4599291C2D18E40FB6EB89CB7FE5FB3A33F4E3FE7D7E
+668000,u,EBD0C799625EC6F737247742F1D7D59A9D6B5D9164B271AB3A3E4E0D941E1D30
+669000,k,C7ADC16922EB85C7D6369ECBC7796B6AAABE89CD36AD7BA9509458F47DB67760
+669000,u,6A40CADEA682F9F05EAE3E5CF33769FD61D29A91BFF2BD9E2ECC32415B30B929
+670000,k,8FA189832D83EEBBC69913045C72C7A77D756C9EE9C19C5E5D747342ECEBE432
+670000,u,6C91CB3EDEA3B3FD3EFFBA5EAF7DACEA2D40B133F107295AB262E74325D8D621
+671000,k,03004FD209350F2075F81E89F4CF6EA2998D30FB8B186ACD6233D80ADCBBF42D
+671000,u,41BA9779E325125FD24BFBCCB0B19424936F441C79DA28BD58B19FB5FFBD5D70
+672000,k,338B1E9163A7773397A34D83BD6780FD6B6526FBF8F302A19B4DFAC04221A351
+672000,u,B46C563434593F84C5C9983B029FA7D1F130AE6F2BEF366FD984AD7B7540F722
+673000,k,821009610C850DDCCE6FF470B108C3A2351278961BD2406DEF7DB20C52CBF569
+673000,u,085D9A9C94162ADB19DE73DAE36BF7FC0E864D87ED2E1631CB6BB43C2461E449
+674000,k,7EDD4879C00E0ADFA0E54B624819512D04E9E4638A19FC73332B4F57A550BB3C
+674000,u,369F6750123E9447AA5607F340719CDD17E42B6FD4F082254DF9C53BC517494E
+675000,k,D34F88AE72FE4ECFC2A99A23BF0C140DCDEC95EF2C135C34291762BD4311FC05
+675000,u,79D83BE1947610EE5B07DA48CEDCE7DBF99ED528E8753D3C1C0C47B59E10533C
+676000,k,E189520FDA9FA874716D56B92CF42C84223A48DF55EC2F33C443C6AC0CE18B47
+676000,u,E4974DBCDC773297E14626721A4CB9BC7BA1B149B37FB790CC0F05B968BFD365
+677000,k,FE83C5AE2B18C4F8F91F3A2732D395E740D5DAB7342AD95B372FCEFCCCAEAB73
+677000,u,92FA33E38D1A6DE7D7A455F6B7A1EABD02EEEAC1531DBE0E223141727F7F2338
+678000,k,8AA0ED2A64E2C5F8CB173680E6C6FC5AF985F7F52B1356DD53096E0F15A43E68
+678000,u,4D874718EB38B0C823F9D907663FA040341FA60BC951D849D0DE3E341BF23B6C
+679000,k,B095B9108B57210F92BEB3D8094821245E39F115A24A5C894607D2F37F6A485F
+679000,u,142EAA6CB52E3487BF92C3B89D6E6089B64F3D4B2CA2BAFFCFBC9C1E56A27E3D
+680000,k,95757D57871A8D2286BAD17C6DC40A057667AF7D54146FA463CEF7ECFCBAD333
+680000,u,83B8D6CFA6550944657F80F898C4A0D1A003979A29847D6BE12AA54A8A56A92D
+681000,k,5530A01E94488DD6977710EDB7006424020B6DF9C98DFE53428AA4CC06AC3E72
+681000,u,D3EDCE204B4E345C983DB65861EFBEEE8022ECFA88AA9BC30997FF6184EEE530
+682000,k,6016FAB38944208457DBE0CE863C72E9FFDF32D1D1DF5C2646A67C5D7AE47070
+682000,u,95F0B77520A939BCDFF3B435A9EB580602709C6E29A8E956C68955D4D83D4B0F
+683000,k,163CDFEC29452463957DF40C5FB14771CFE3C6A743049BF50212003F1A9A1E0B
+683000,u,F3C22BCBB83C4EE56A751CA2A4794576503902B2411AB011B374594C1FED010C
+684000,k,CF683B56FD51B3E44757998ADFE9C1EFF4ABED020C382649A4FA268DE9109833
+684000,u,E1FE11AB96F7102FDE3B904B2FCED73D39C796C66BD4ED1BCBF8AE77DB6AD059
+685000,k,F2C84183FDA1833E8C2499E2812686A4F066CAAA9A21F66CBC61372097EE6F53
+685000,u,EC0BAC41DDDECF70AD1310471E55E6AA2BDF76DC3119F9C7144C0B41E9739241
+686000,k,3D1E62E9671EA75714266FD88D4A75D293BF69E92E96C6C0CAAD2EC3A13D6C33
+686000,u,D30EE7C5D88109EE124E0E8BC3D0BDA82994FEE745122B2518BC184DD154363F
+687000,k,F8C3D9F4A39285585C782400B7AA22F332A4956C7C65900BA0BA445C2A0F4701
+687000,u,0EB2283A0148920141D9A8C6C179F5B90F5CA9623882974552C24E22A3BCE431
+688000,k,1E23A2B8113AC144724B41800129FF19CD485A3959FB4707D391B9E7B2F59D28
+688000,u,1D5950096824EDB7DD4ACD1E89184E523CCE4E20947CE1CBB8B2A71914656822
+689000,k,15D3B37A058CA69003A165E0DD6EBC760A1F982D0AEF272F324E1284D177B164
+689000,u,A81B02D9961245FE864BFFF2786E557FACAC528347CFD7BF34A14D27D8942B66
+690000,k,59DBFF3C577D5EFFB60E55E794FAA8DBF32A56F7BC22A5BDE955B9B6929DC253
+690000,u,09892C3EF5F81174901BB9BF284DFC81DF5BCB5002896CCD5B1D8B8D12134B5C
+691000,k,CB49B30390E242AD8B42B6B7A221099B83FA891130C8102BADE823C69CDC2D5A
+691000,u,FF0A68E3B255934C7C91421F8D2A7280863A3B8504139B84C009B5A7A872D25C
+692000,k,5AAB5BE1AEC08961174AD434DF5D7C6C97DE0BB5ECB56DA8024590A38AFF7E46
+692000,u,ADC50A19C83F270DBD5F44CF87644EF2687242DD3725B55F45A7FF8F451A591E
+693000,k,FADE2EAECB95C716BE3E677DC5B615A1E05B07F6DD8CC0BCFBA42CC3E54FBA1C
+693000,u,201E836B71761956400217AC280EEED48F58CFF8A03F602F5799228C070F504C
+694000,k,DCF733E049F05172D390CBEACAF3BA86593A425B7CBA70303859D7F4E84AFD4C
+694000,u,2E4543EAD86A82069528E1E7EB473FF5D36F0C92CC65DF38AE55A38530DA3841
+695000,k,BAA2C8A00476C4EFF656629113132A26C819811FC6FBCD837145762E70C9EC17
+695000,u,BF7A96346A37F5B409CBB5AE900CFEF11C784D4394B62ACF2C243711F5A68D75
+696000,k,3BD5C25C51E5BDB8C05A6EF6321A60AF720302F118F417DBEE7DDF3EC80A352A
+696000,u,C36DF80930D8C46E0AC51ABC82392DF0460F39AADDDD515FD036CD5A4B6CE816
+697000,k,4A8138ECD218131C17AFA344241F17493E956F1252DAAD30D9679F0CAEEE430B
+697000,u,E2E52687295DA9C35698C9884CBCB65C296D754B9517751A09983FCD7F851916
+698000,k,63253F8242CF62B6EF81CD8AE37320808BDAB03B7AE86489516FDCBD92A9D367
+698000,u,A1260F2DC5A3B0E0A0023DE4D4A6D78F0041260CF345960DD11FB23B30D22E3A
+699000,k,D295D012B3389798EA029B8A542B3DC64510BF31F0FB7921347FF7CB2029AF1C
+699000,u,1725724B96195EB83617C83D5E0E5FEDFFCFE58DC5588D22458D64923B45653B
+700000,k,937E2EC1AC8166024DF9A474A52337CB23F9BE7B42AE313E3AE350D58FCC7500
+700000,u,2E1FA477658654B45EE8CA5F93A466E0B03C814053820F73BDE96A1A381E3444
+701000,k,364A362BDA2A3FA5DE7B726FEF07F9025FEE56918D46FE9004FDB8A9F934193F
+701000,u,4D43AF2CB49CFBC0B3E3B42A4E56A9FB131645F3552D87D0EABECD249CBC206D
+702000,k,B0C6592687416584A181167322352A3C02B3CA410BCED11EF2D5378B68B8940F
+702000,u,1E431265443A50460F366834BED34B58381DD2AB55F2274B18350CC65AE2C813
+703000,k,70412FC3BC749D06C9BF1E3505679BFD7D011E6F2440F2BA7880E318A0102542
+703000,u,735D457A27E31A71747B2E447183ACA3872F529B57E44B000760C3A138F78178
+704000,k,10D9559832380EF41FDBCE0B78B25A229B782EE603DD211522D237234CFBAC34
+704000,u,D7FEA8C8BEB62C746FB6430CB1B5ADE2C99409E88C1860C2FF45DA31DBF9F438
+705000,k,6C700C3A4C0D6D35224DEB78732076EED7967BC8220E168CC856D3BD4F41A761
+705000,u,693C5AB4F2A4D6F2D951041ECB1CBF58BA8EDE66058922CF839BDE9413373E28
+706000,k,FE257B5459E247F9FF7C497BF97DA7120FFF33462280CB1FBE9F0087B035B675
+706000,u,0C6B2335F2F5E5E95EFDC392C30657BCD7B9C6AC857C541E5895890909253D47
+707000,k,ABA5CD74E01973A5595517EBCD46C01DA5990112DF96EA319DA59EB43C86FD1E
+707000,u,2C10A944CE7D0B14B2588D9F6D39EB9A0FCC24039384C281B6728484A34DDE42
+708000,k,1508E68B873F58B795C94704667E416E9097C890CE61F7E107E835F21ACD5B6B
+708000,u,EDCBA3599966C151264F5E787F6D5846B1243D0E1FD89B2074D106FECB510F07
+709000,k,4210BB822FB71DA9F5EE54ABFE919BADC956BB5BCB0D1FFEE03F3255E7BE123D
+709000,u,135E057BA8F34A02D17CE0B93527C30D94B0933BA29AFEE2FC26B8550655EE59
+710000,k,F507FBC3D6B5427E778C2D31B2B24CB7952EF4FD5F6C346EFFE72D5B4A019631
+710000,u,2B8099CA703C0974D7F5CC1F9F954A7A6484CDB0BA03A4DE5C63C8F13DB8E739
+711000,k,125F0D109653B2269F3B3FAD9E43CE4E37607DEACE8FB97FA73D9C6FD2C4F76F
+711000,u,EBFAFC21032392D5E2BA215B7B7EE8C5D09F315D8AF94696997F37CC9A2CF66A
+712000,k,A9A8B259193B4558483A547085E5F81A87DE1531B4357A4CD4B08F5DFBB8D139
+712000,u,F68D9893ACFA46D940A54F1E6A2AC752A752B5C96960089A18F6D5AA7C251D34
+713000,k,6A01645A9776172C130BB13832D82B90141302E07D865D69F23103368332A10D
+713000,u,34E464E05DD05CDD3E0518142BEA8E310AFB3062B8EEE18861E3CF5CA8F96035
+714000,k,B9B5C91E6C6CF9553B01BCB9D7BD80E41B7B5E13C09BA3AC9DE38A26B2041A68
+714000,u,4F51F9029707526C63AFB473EEFF7358ADD8702B542E8E416D0106C4DFA1F42F
+715000,k,6630C8C630CA6168EAE46C0B9D6C20B5522DDC4CE4985BCE608E05D89D68203C
+715000,u,D2F51212AC20358DC8E75988A1A0E87DFE6BB6AF9E20CC7E59CE4B7041014D58
+716000,k,931BB668BE40D6062686C3559E915D22D7BA1C9E576E72E9B7B374C9D26C0A45
+716000,u,DA8FB1AEA8D7339803F87A654C90D38137E77587C1B6C4585C57BFB9D5423E38
+717000,k,B3E351AD6CCBF9769E1483E92AB72F9F7DE096F9F6E4A3BD07C5B44EE5CC612C
+717000,u,72043356722BC22213E0F805017B4AF4E92EDBCDAAB1800F9DD6A8A2C7ABD82F
+718000,k,875C41272D982505EFF0EA8B7A3562904BA4BD4F8AC45E4DF76BB185DB26DD46
+718000,u,67D0F3E10273B2B90AC087712C847A4C2E60D034307BA65AEAF896E4A631BC2F
+719000,k,46B02EB33FB12164945F825A9B10100BDAC209A36C9865228B6FF7244CABB73C
+719000,u,61ED2264951EB99ED630227079D9D99A63B216087CCD7679597FA9DF613EBE6F
+720000,k,27E97DECEFB6936A510A5747DF45FE1CCBC276761BA6E571B3F7325D17AB0C6E
+720000,u,36B6A482008F74A13E214E2BEB29FD7E184B13591773135DF756821A77E7A151
+721000,k,BB7EE54730DBE70DFEE272C4E25D72FDC822C4FC771AA4413E08F8D018E47C16
+721000,u,2F09E9EDA72055F960582B85462A9EEA9E6DF9F4220E2C1DAA98F5B8538AF654
+722000,k,A10E91FC04AC32C3E763381D0B9491CD7E2E14D03A8EA2563D28A6D068273622
+722000,u,643E90A70978C8EF8E9F39AF174E30B3BEB8C4456DE3DC3B89DFD3D880D98D52
+723000,k,FFCC4007BCDC2D80DF630A7D490A317CD089EF0D1CA50CDCA7A8A3E1C418BC44
+723000,u,223293A90916FC42AD1A1085BC6C267AE7F46F871A12883C3997C969E41EC907
+724000,k,42761E50221F0C2CA757E66368013E6D8FFB450281BC4225820AF45FC9870408
+724000,u,B651964784281B1D0BB71347C40066DDE9BE47A0DC03F0E299D02C9581AE6D19
+725000,k,65711B58B4B268F4D82F13DCF3DEF25A2D7A449C1A52A55B348FA26DDC3DC556
+725000,u,E4939EF942818CAB0D82D2FA0CB490272A4AD8EF2AB3D6D6EFE6FD19D35BB608
+726000,k,6B0D7F8F133D2AFF688ABF196C50891C21446D5C58FA84FDD8C550C0BD201738
+726000,u,9D15924949EB120193C4955BE0632F38BB00A80AB6814339AC25A5477A882F6C
+727000,k,7CE3A8DB31501E1E67B5307D1ECA8CCDEBC9734E041B5E0C79947E1041C3AA66
+727000,u,25FF72CEEE428EAED85CEA1D0D57CC56ED1732CEE337A66B327235CDE4578F5A
+728000,k,22509B0F1F240207DD3560DB2B05E5B2DB4C8B1A17F7ACA75ACF7147331D843C
+728000,u,9AB290C035EE25B5AE83DC23EF01B66FB4FFF994248403DD4CE3D5E5080C352F
+729000,k,5C64A4DC5F4F590E6766CCFD198EA68C7DC8175FFE9151AC7ADE06F1A7D75F36
+729000,u,90A8ECF67D907DD4BE1CBE4ED63E7653FA1C14664A87E75A94EDC8F9752E2E3C
+730000,k,3D9E443D1A5CA72F5A91CEEEC7F5FD84C4171E881F52DD698E1BDA8DCED2205B
+730000,u,6BA7B8E93325AFA9F88628F737718FB474175BECDA702C0F52A5C217F3C11D35
+731000,k,AC01F8A71150F8735436EB410C487D57B630303E1EA6D387D47F7A78B70F720E
+731000,u,354E468AD7E8A443E952D05B97024243A718AE232EE481C52CBD597F50948112
+732000,k,6AA6F6D50125D1C08B6C21E376BD69FB64446DD7EB2AB2C2D0229AADCE74F32E
+732000,u,F3366FE32281EEB7ABC48CD1B59E7D18ADF6EE93FB69C1F2C15C5B09B55CBE18
+733000,k,77A4A595846777971B41D4CE5F80F00C60A46C5ADADC588145836B4BDBB48672
+733000,u,5AA99F83B8543779A31628E595980F564D6ADE268631F37B60B5FDF5106D1566
+734000,k,CAC90B3CA6D5206366C24CEFBFFEE151B3579EFED4E3BE454780BF553E896B3B
+734000,u,E664C54FC9DA63801EAF91F4D854F2D7423F3EBBA5E745A3D44157404B17C820
+735000,k,3360883F89D799506CCE6295DD9565D80F6A12ABA9722E84608C0A309F3C4C36
+735000,u,E9C1A8B7DEC6F9E07FBC74172A186F1C9C3FCB21D7885EF5FAA2C2CC838D8008
+736000,k,33FA162B99BE3F435EC8641B2A5E0E95C7EE3A4009D5C8024EEBF73708941834
+736000,u,3B303329431CF594ED6156E902E0EB196EF73EE546BF63DF8639E32E7DFCF820
+737000,k,8B071F40C4EFEEE3671F6BABC263B7CF166D0463570EE6C5356A79F44DEF5E1C
+737000,u,7BC85A8A23DF0895FD4CEBFC3882AEAF3B89F103525369613BFDE3A454FBCB64
+738000,k,90040BE8DE246F834C7F919E05F86025295B94137C5EC02697E87B92AD31613F
+738000,u,A057D103F5DDE0873BECFCFAF588538924D33623064790225D8D53F395016236
+739000,k,5D1C47816DC4866600439167414DF7FAE11ED489C53E3CAAB1BA673DB67D0032
+739000,u,9D2CD9B454B0D5897808B827E33403983CF6DE0C4EB9F2DEE4783DDDC3F63274
+740000,k,4E58DEE8605EBB8B96A9DF3010AA68A2A5D4A6005ECDA42E2C7224943DE08B6B
+740000,u,8CB9095DC3AACA8E264221AEB8B834A9D801E31992AFC620D5477EC7CB197908
+741000,k,55A591A0DD1F4FA5DA74555D646512D0ACC77B7E22ED2531ECDF605A449D6A6D
+741000,u,88DC6A281969B2D36AC468A6DA4D3CF40DB1339A3F22D19A23545ACDDE69905E
+742000,k,1F8671B53E3D95A1E8C7BE8326702EC483309668926D3469DE474AF7CE40EA6A
+742000,u,E96C4AEC2BCF84EFD5C70BF637BCDC819F711297A4BA65E67DC2C192967B802A
+743000,k,6A3CE60496E96B1D159A635F7741FFA8592F7937B750FD1FA5965D032DC69A2A
+743000,u,2EA5B8CFCA4569FE96E8BC365AAF4F83BB7734B36721786DFE6AC78D80CA6629
+744000,k,A05508ACBB56F39066E5CA096CB37F6065C80786AC8AE80A4A77D3416614D406
+744000,u,33BF79A0E7AC3CB9B1771A0F5FF65C6B030C5072154450D25A02302FFAB1B712
+745000,k,D27D811A57F8F3DD2E1C0127846F19B5F266118958C58150AB9C5C012CB77840
+745000,u,C51429C5F6EF908A69FE495F003B050F5736E169F166F84BF92899BDE9DB560F
+746000,k,FB9C8F2AF1FBC504C840ACD1A54161BF40C1FC0801AB0F1090A899DF2C68E033
+746000,u,59C43A2B86946F00B6CBED63FE0E59E4801A1587A3AC2382F2F37D9FB8F6D463
+747000,k,7DC55E0A1743515E2AE2DEC36D635F300B3C54CA2E2FF58C16CA636AC2C07455
+747000,u,A687016DA311D54713706FDF950CD64BE0DE2ACA576C020B1904A5A0E3B89B50
+748000,k,028FED2B81F2CEEE0F89F502151B9C2B7F27CE06265DD161D7AF4B75CAC21175
+748000,u,6EFD692B441FEB5C0177236488462A449E175F44A4290EE1277A69DB52C3D60F
+749000,k,49307449B36DB9D11BDFEC6F6B9C35849BE8AC88B587D837D10A60E9F9920E1E
+749000,u,AE872C220A428838083E86FABAC094869D9D8D78F9D802A16E30AC4A0579E703
+750000,k,AB10496F084FACBAAA7297B198B6E8B8B6638BBFA4FF031BF6C6A8C12057B91B
+750000,u,82CB8468AC1925C145A4B61BF54FC1939CE62044DC0B9C50DE901268AB90B134
+751000,k,CC27D47F53B65AA3DF98602DE0FD48503DE8B3F739FD592A5DEE857E00528576
+751000,u,948E5055A96CD4817587CA130ADE720DEF5C4C1A5CACD51CB12F98BC9CEBB709
+752000,k,A03F531B47D47C1E17C7CD176FAD6C9672B54186ACD4A7BAE582E8079C207345
+752000,u,92BD91F1F744E6397059CB153393F6DEFDCB432725BC6C0354DC0323879A347C
+753000,k,6083FA646EB11BE4F507003C415BE26DFE8A98236EF78CA3026E8B743964E56C
+753000,u,B9912D0FAD578E3F22883758A427A548BBC2596B300D2702D8BC2DD44FA91F1D
+754000,k,C899238974FD41D210657266050427535EAE56DC30EE6ECF25FC2B75F1D1DD1C
+754000,u,056AC1E730E86914C6B8E34FE9B889D5039BAAFA2EB9FC77AF32621330CDC904
+755000,k,70ACB789495F46A535452FF68D65B9B9ACF19906223D78679BB9875E7C2EFB5A
+755000,u,4003839492C5569F09225B8EA9607DE0711CE5C678BF6730F8B9A8030567EA2A
+756000,k,41990E9CD618A365681728C099CF4D2187E619860FAB8B67F35E3A351DB57529
+756000,u,937309D32D60B38EE333A02EE89470A934A050BFFDCE7EB5C94E83F0898F824C
+757000,k,011AC27F69EC5974348CC1DB00A46064A25B4CCC37BFF41B14FBA9483CF58253
+757000,u,BD3FD13A56DA58975E9CD6801186BB3B118E681D9BF4AEEC8C065F4DEC82BF5F
+758000,k,D68A8B2EA010E0DBE662E61FE8094A7E1B892B9ED046115071716E23D747BE61
+758000,u,E34340A599D6F25C0DCB03AD7EA0F168738B286ADCB6F8AB0D7A0DCEFB5D4916
+759000,k,601ACCA85E834F917A25DD349E25CC2355F0E8072C173C9DB9DD7E18387FB75F
+759000,u,83C8AD59E7D3D0C87DACAE040A0B5DB98B17B73D06FBBA6D8FAAA85E61E45908
+760000,k,315EBAF59723D5C9EC4EE5FFAE1441C2ECFFC835D127F6CAF36AE4DF36180A26
+760000,u,2704B275E6A8A155AB277814664160E8A8FAD42325991F62D8417B7F7B57E746
+761000,k,DFEA7659F0BB1527ED622762AFCDEBE8C4C87B6A21E69964457F2A4FF47C9235
+761000,u,18926F76443D74BE416FDC5B565BAA1FB79CC4E233304478EE33C90C0C1B6953
+762000,k,BA65596B1EFEEBB7F8A443843A8C7F90003F74358238848458A59C11CE19AE11
+762000,u,A8C9E68D0EC43453818E84664D2ECC988D584B92C317688FC63B5C6F5C733425
+763000,k,A92DCACB48442FEB07F3B21998E52C447666830D013DEDD11AA0DFEAF75A9410
+763000,u,45DD83C27C5046398C391D675190C7D470A94D877E7DFDEDC50C092609E29B02
+764000,k,62B2E7F0271C07B332D687314AC150EB9C561647C614DC348B1A60D48F2B6063
+764000,u,6D90C28411937FF02B324DE164105ED2F1B5FCE17C57C99B9A6115B7D8382218
+765000,k,48EEDA1CAFCE99F1BDEA08B93026AFB87A307CC20EE35DCE0FFBD4070B29845A
+765000,u,378A16C5677731DD4F956B4052A59BD0582A1263B3A3A3B7CC33F3CB07D7575E
+766000,k,1A171AE1BEE4337C6A192C5A0FD02A86A27B16108860B0EC4D2EB6499A8F9F2B
+766000,u,25C07D92CC4DF9DEE61D84D0C48B6C301743EC5567DA5126D63177635767623B
+767000,k,F69161D368B80B2F087EB3116529B67095D1D6ADDF33EF4C2028CF4C9CCF8B4A
+767000,u,F9F4C8BACC27C538AE5BB9FAFD6826CFCAAA85C05707FCE567E1BFB2409A135D
+768000,k,7675EBA1964DDCE283110A6CB97E63C53BE3CBD193E8795801A0C0DB1593A655
+768000,u,0A0276350460722024CC3C58E645F4731B37A8538D8C9D4103D1CEAA07EF0A35
+769000,k,3C426022C7EFEAE2817C5EA7DE74C075BF0CEEE8290F2A8523EB61F964714674
+769000,u,36294D836782CD6677558B3C328DA93788FA4FCECB519C0B4FBBDF8D68D69806
+770000,k,EE270864D1BD1C9470E18450D9B2C1494824D03D7D557445404AB93C5C102322
+770000,u,333E9246D502517385CF8768B270B1E2691DF60BD0F9735394ED3EEEAA0DA366
+771000,k,FFDE69BDED73741398165202367D02F90D57CC44A194F667C7BB68BA5CE1451F
+771000,u,033E65819A8E72B796D21418397CDAA2BD339DBB0D76E04D78692E5F1B3DEA19
+772000,k,E0BC530862FB7CACF8B0D6C5D9AF5EFA64AF58E0C5FA7788EFE317E0E1695A43
+772000,u,0362B20550055C3AD00D9B03BE78D5271F5C1CC60F0AE46416B103F4E7DE103F
+773000,k,D2DDA856094B3F379C21930F4E312EEDBD4EB6FB604EF9370CCF822218F5CB4F
+773000,u,C4D78F44FBB5B7F12CFAF261DC3D2F85BBA2021CBE9CA43675AF6A77A1352320
+774000,k,74C754617DACFDBD227BF7B3C8B1B5A420BF4A688019EC1B63FAF3234F156903
+774000,u,1B689AF8BF47373732357275321BEAB16BDC524D39542774B81EA60393AD2A03
+775000,k,AACCFDEEF68A1569E5D79FB67FC3B7C93EB1DA4EE504C497561D1FCAA338E566
+775000,u,64B192A1D92784F7B9A6674FBD5290C7B9C1BC1B4778BB12C230BD172393E605
+776000,k,ABE9B6E2E83DED1526DFE2C17C172FFF0B70D685F1A26AF24E44E30D4FB07174
+776000,u,D2FC439D3E8306537638375ED04E3396FB7AB88FA037F5DD37888CDEF8976E36
+777000,k,EDD5568F8754E62465158B6642406FCC120CCED96E771E8009A45E4A28B1FC7B
+777000,u,8BA824269F80CB93CAB7234324E5AF17CFC6A075ED1209805E1F04D91128FE77
+778000,k,DFAA016B05EC3A9FE7265CB674478EBFD1A99AC2264B8C2BA6A523A8A6505E0C
+778000,u,B126D4C335BE2F28539C398CFF10DDE1BF86EA09DD76A8C234FDF56D78831842
+779000,k,ABF77C7AB9C0FBB47286C718096F957885994169F91D445C883021CED022C607
+779000,u,4D7170F705E6EC425B91FDCF2393AECB52956A33D1997FC1382B1934B02E9D07
+780000,k,3C3AABFB9036DD3D02EF4410647DAE46C8886D50CA3D866E22E787E46DF1BB37
+780000,u,06B0A789C5CD50CB94CF172CD63E36620C96B6B9783D29EE2799992589A49E0F
+781000,k,C6C84DC54932AF6A5F7741EF664ECE7E2817C8C5065CE966FDCBD5E1556AF250
+781000,u,B105F55C645B90750BB84652D5D8611C384D025B1F641EE11C8CA2E41A5FDB02
+782000,k,42DD480400B4CD54F208FA1F319301935C1D88B16E99502887527537F07F1664
+782000,u,C94F1A9E01344DF90DB547D6E7BDDA7774534D439F5B16095D1756F720F18458
+783000,k,C82EDE4630E6DAA8ED8CF47947C5DA756A243136A9853F18BE7D6F792C08A326
+783000,u,56CF4D65AEFFD7C592F98BFDB567E4B2D7464E46A2D23094D4199D29220BB94A
+784000,k,F382A0E4AA9D112428A1DFC7691F632A8BC6D6DE870BC1FF6EE8EA2449383665
+784000,u,E3BB1106DE42ECA495E8F7AAF0A7372F1DE2FC697D7AC2D9EB8DA358B7618A22
+785000,k,C8B4D59D68705CCDB013875F783511DDCE25AB65C33D5EFFBD0DD8503CE42806
+785000,u,1E36CC35E03295B0B8C2216EE29D7D1571BE7CEC5E0DED355B06464AD5481D01
+786000,k,A424B74B55121D1C873D50BEC20AE51E080D308D5153F07E19996BFBA1F59078
+786000,u,D29C51E6B75CDB8A6F0DB06BCC9CB8ECDB79A3B3A875826523A28CA58D947811
+787000,k,6CC9BA48F95354F826012580B20FC7CFE794914DA556BBCD3B36660C46C8BD38
+787000,u,FB0A592E27227826F9CFBA106D402B394509310381A1A04EABA1C1D0D0417470
+788000,k,45C1E805F945E11E3408CBD8138A77BE3C0C22720B149475A7BA45B3B4649D78
+788000,u,7FB847C4C845E2C956C93147DD91DF55D5AD79A936641B5C4E6062849D2C574B
+789000,k,757C0DE228FD7B557ACF63AE09B776745393865037F50F576639C903D4675C0A
+789000,u,150C97B1DDF631814B5F0376306B6D4F4937CD3A419F32D4FBE318354A7B2436
+790000,k,F19D72B87C7AC131EB11ABBB652E4C46B81C44FFF87E192B1EF3529F97E18D6B
+790000,u,6AA8C5E0050E3AF2AEFF675C7776A907793129C0CF281D37CCA061424AC1FB0F
+791000,k,60791D7EED222D95044E311F8BF9861C83EE4C2016C281E31C78D35EE93EBD7B
+791000,u,3F94B830B8B829EA1228616ABB866A2903865C0FCBA573128886C6BEB0C5AA1D
+792000,k,B015359F179A566C59602B5080281DBE9A0115CACE95EFD82C0E0CD0CFAAD81D
+792000,u,877D3C6DA1A3F442F0FDE5648DAD18748426523FA7F9A36F124BB240D00A7626
+793000,k,2BA07AB522D644612454009AB1EDF16C07EB6A65E7A07C8BF3A52B99CC7F9870
+793000,u,39ED943A2120799BCC58DFF1CB09EA54567493654476D1262CD89664DD83AE5D
+794000,k,A5AAE015FCF736CD0960EEDCA0BB868B4FF2342E4DF8CA4FF8F98B966916BE48
+794000,u,4D207B903729E1E7AEC22C18093E615EF45BC3C7FA57526D672932ABCBE7A123
+795000,k,2A2634937E1FEE6FE55BEB3FB71590D8EF6C281A364A800FAA0A069A95117560
+795000,u,3E4B392365CDA73DA63CB24184EEB015AC9AB6E9EEBD510498A880FC36E0E42B
+796000,k,3330014B724D0F1ACFBE279F794A0856C16F1B75C65651EA10AEB8127F1F3243
+796000,u,51DB18FE67FC3465A4B76646723FEA2487CDFE0B6924B5CD4801E6AD6D17013A
+797000,k,C6D46E6F8116D0011835800B41D220D224DFC7F9BEC7405E02C633BD42825815
+797000,u,74BB8D437669F5E240F9A5444FF83840B9259EF26401810C9EDD9BA072993A1B
+798000,k,D024FD0759D2EC4CC76F7BD213FEB73BA63CDE1ADFB36F3B0DA63B6A72161509
+798000,u,7AB77694B7DECA2753C0D7CBD92D3FBBB2352D67251A6E7C94C4B1D6A0438D3B
+799000,k,8DE79538FB375FC1EF266417D03B7D6E5BE6D1F64AF5ABA88991E82962A1B501
+799000,u,D37BB6AF1118AE37902D58EDA15E9A0945625A1D4DC78AD5DF5596FF59B31F15
+800000,k,55750F77672C9D3FEC85C42EF4E02E2BCBA0A587A0A90936687F9F8D68867544
+800000,u,48289E9F296DF6A838CB35E8DB3F905275B801C0C4C7D176DDCAD205C7E07013
+801000,k,E995FD7D30C08EE9A92A7F02E65EF1F80E48A94C8C7B3ED1E7F893B6E9119709
+801000,u,D823E672532C1B0460368B9000A9B0B47C6E5C9E7200EBFFA4B2C52EE6D1ED44
+802000,k,DA13B05FFDFA94B5FD76C900568FCA95D105266481B0600DF8405A88CCE4E22D
+802000,u,5C4BBC501CB7FAD509D468AE234955FEA29FBBE15DAA465D03C0FDF2500FDA32
+803000,k,D6230627ABA0BF7430D55FD965BD73180F15CFC4FD58A9FD41925712EFE8755F
+803000,u,C1B4E26E1021A402884136E5DD310FFB3FDFF70A98999190634B50975D47812E
+804000,k,A9C9C9D422417EADF0B0A0825070AD070BC24C8032BDC33E4A0B5E5B17238404
+804000,u,6FBA3F89584FF8894F90EA2D0152F3079FE16F24987C646A1C4651367FF68A35
+805000,k,E36D401E371723D6C39E419BC48B28038FDD0F4419CEEFE2E21AF343271E9721
+805000,u,B8795D439D91CF7BE097BF17F6742F6F81037346A5039D2E9A82EAADB7F88E07
+806000,k,3C48955008BDA0C71BB01661F73720B87DA48551FD10086883A6DD604AFD125B
+806000,u,747345448B9E9DE042726921042BAEB6F8958483FD5FE1EFD971549F5DDE566D
+807000,k,91F4F76BB336F2A29FF6BBEEC8AFB3DAD19C27965169AB65494E2047D3B5E155
+807000,u,D95785E9D7C9FDD1FAE55C581E9B94931A5D914ADB874F226F41E18A96E18C4C
+808000,k,DDE7C320B19BD6C6E5E51335BE5C0CE494E357D581893228B240AAB5A0C66E5C
+808000,u,B46F77B1D447C8B5DBD81031E6AB8D5015761FAA29111DF21B183ACD0876B315
+809000,k,E1429F6973CF286795F97A08D474AE6E33D3C95FAD375A06F1547E2AE0E9F239
+809000,u,4170115B7E5BCEAF055A73C3C3F66139B6AFDCC2C5E9B3922BFC3E60220B3675
+810000,k,C5312FE30BE3C6FA7E9209E10ED57CEFACCD0339183980D1C48EB6EE859D9002
+810000,u,62F9BD5511C43DC79B5BCC00BB3D7F6C9B9870B84FDA5144212FB19AAED47C67
+811000,k,7299A085FEC804A3EDF5E847BB95B6FCC6F131A7276CAB2BD5B7EFEF1903D315
+811000,u,EAE7B5992A4A1C47A035A89BA0524EB08E8DA5B0A83AE7614CA98685FFB65B3C
+812000,k,B773118FA32AFB3DAABC624E22E0A3FFB715635B6BA22385E53490A19CFD0A24
+812000,u,C518CF8A8C8F01EB720446D7984E31D04556C1272BC2DBD50A59C5FF54E9721C
+813000,k,1D541486F2841B775048B48CF907203951B533C15DE5425A7F78FAD0E731DA5A
+813000,u,4F6CD4DE7CB4AF1E89ADAA49A9C5BC26D7BA32C0DC208DBC327F44A6778D3920
+814000,k,908A2E991F538EE00278636B04AE32B1B43B69229D0F29A5A0D45AC3C8E30546
+814000,u,74B8566AB34128CF227363F7935455885888D6971F5144BF0594CDC63768964E
+815000,k,164AC1298BE55A8D522678007910A7117B4A5972868A4F4E8A64BA98F69A9131
+815000,u,B8B55E32A3646886F43708004618DFC492B4E3F3DEC368864809557EE16D8714
+816000,k,500F189CFEF5745158094989452454F7A5BA6B5D1FF37E29A3D06713F27A553C
+816000,u,FCAEEE177EE3A262DC9C898E2108B101B3F615F6A64887D1F2B0B659DB96A242
+817000,k,2BF6BC3BFA0550D24B1E425A85553D2957CE3B048FB45A78BF8C743A0D144253
+817000,u,453E9C01C5A91E62B428E194DC4F54A6BF44208470E13FC244529BD84E628751
+818000,k,95C5BE3AAB12C2CAB7B6BE8704EC0197823D0660440A7BEBF1C54347B59F0764
+818000,u,1E35BDD306673667833EC730995182801AFB56023607CD7036A09DF61ABE2A0D
+819000,k,D31F6F0C3DEA4F5E5BB21F5A6E301FFB141C0951FAF5D7948EBF35D181831112
+819000,u,172CDE193C7B479E523AE1B905DE2305B5EBB13ECA503DE5FCEB5A0F8946D931
+820000,k,56F0B673E30CBEE3626B6FD4D07B4B63EA703356FA8CDDC7599AA0DD24CE4833
+820000,u,DD440D08E2CC17985E26DDC5850B9BA1C410525364052037143C5D61AB9E260A
+821000,k,82A1AA0363D56620A814DE1A4DB7E8BA712E3E8A984D3681496ED9A674493006
+821000,u,76364464FFBB8AD3BFBC2DA1CDCADA626C463B294D6BE08AB7153967FF20B968
+822000,k,4D5D8791C90E4F421232B04C03FAE6C8C0A9DAEBA1CC5EE1A04636D022665846
+822000,u,664136C7D3D329BF54F6B55AEA6A263406E40936304339C577FC9747BCFDF97C
+823000,k,4C397ED43712CF094E14DDB7E094194B2D7FBEF894EC5ADCD1EBB1ADD4AEA27B
+823000,u,EC91E948E631FFF7A8440E07F996DA218226A336634B5743EBA875CCCA4AA439
+824000,k,475C243E7C26D19E434F1868670261DCA9B7AB619AAC3FF9470C9913BA946615
+824000,u,2190F5A8FE60DB2B951BB8260C716F59FCC7805C58CBA5E90535CDBAD9488C0F
+825000,k,A09B06BB1A8579F6EE1445DA511EC232032A73B756CA9071883D69D832747355
+825000,u,CFEACACE73F895A06C61447F5301479D2A3B347289AA74844BC6250B0A745C5C
+826000,k,2454E2E45AB8BB5829DF4FC6014096F92508E765645A21C1400F6A712CED500A
+826000,u,7D6B2D9BED7DDC4A81D18B010D79BE5944EFD7061EA11F84CA9B90D5450A3E18
+827000,k,8F3BDBC1A833096BEFD73D7F87688E2551D39B358B754CA7BCF6454ECE7B422D
+827000,u,7FFA69C621F519A1E9E4E836FD91A5066F069F535CFD65E38A579742995E4334
+828000,k,C7B10F5E0AB6605B59799272C2F6EC8FB01036369E46F850E819B9B32E5EE455
+828000,u,0C567CA781CFA001D8559DDFD7827E4810E6A9642626EB9AF4CF7C476A08212D
+829000,k,AC3CB15062297331EA0E278BFFAAFF40577144B5E4761196C5CDE3E8EF728A37
+829000,u,9BF64F734869A3F043841B0B7F9B9699E3DCBBA175607F2A3AD5082C1BF7975C
+830000,k,6307727D341541439533DDFD294CE636F1F7C9ECB94DA8522624517B627C704E
+830000,u,3B1937989DC3BC1CBC3D473447E40BEF0E8780C97B8376F83016891983C59E18
+831000,k,8711712A16E9E6A74AFDE0A6936970C4742D19958F35DB321A725599C7C2445C
+831000,u,7A8B6179E828D7A1D0B35E477164F2FEFD207C7472DDAB10429178A6E76FC927
+832000,k,5D545F078A29ACD08626ECC4BC4B0432C1EFD30E3EE6D0A74DCAE71B677A4516
+832000,u,93C2BF4C8124C6E1767AF4EC1DB1F1765FD1FA61CD111D374AD54FBABB3BF878
+833000,k,0AA88EB88EE6092E76DA6C6D1819246930802897E41C17ABE3FB13BDA6C81F17
+833000,u,F3D9B9F908E7CB3C3698C2A0510F3BC92BE9D9846F16DEF3510944C98703A842
+834000,k,7C97DC46E206BE610BF51FD099F455C1BB7F7BD860B03072BF14E6D6F7DB2626
+834000,u,D4C19B8D8987E461E0EB7DD1020A2884E0AE6E972CBC1667E6C0446EB199EA48
+835000,k,9F0FFD5AE0B43D917FC296E977504A57ADE2004A9ACD5478370FD75D1A8A7220
+835000,u,251D7C6B403C939BF2A47F28A22F377F8706FFC92B466EE790D630F5C461F82E
+836000,k,A021048B2FC37B962A25F899342CF7F4A707CD0C98C440D1B03DDB326893AD73
+836000,u,48BDC628CC4E7E6D0003136BBBB90C64109EC577133E2AAC9E9C82A984890442
+837000,k,E774B10ABB3E1FD9DEA0F69DF2D10B218736ED1191E399FF5509289918801760
+837000,u,DA10B033C94FF2D717322F4646813E4251277C3FD5B2A0E21C29F9443CDA910F
+838000,k,E29A248621B7991C8AB7E9B2F994D41B2D88F766118E2F6218DDE40B734D081F
+838000,u,D542647B12D0A3991F962A46691FD9B6BA6D4DA397090212837929F13815811F
+839000,k,CBC575CDA7EEEF5CF13A5A90D4B4085A48C2B5E3EC28CD180FF29B4181710077
+839000,u,5A5178B9AF9D6CA81EA639B2F6B2C5BEA7668336186986BDDF962C6E943A481B
+840000,k,64E9CF7C2DA1159078A7BBB9284DA2FD00DA641891A5CA7A9797395505B99C75
+840000,u,C81826CAA259566E919AF277BF003D9777A161C07418A952140529B95181C25E
+841000,k,8AFAE8F718D60C7A237BBA8E8193ADEE7AA47C0F9DEF8BD88F8517D848221B07
+841000,u,C2D71FBFEBAAD50ABA1908AD38B662974F0B537B1577A0AA8CC2BBE32438AA33
+842000,k,618053712CF638922BB003535583EAA54A9F2238C0CFA5DD589D1E6337533774
+842000,u,EA85FE7F0BBD231485AF8D624AEE58F41E5C7DFBD9E0820ED85E64965A53A54B
+843000,k,3888B0743E09B2081907BF4C833C0A4E265F6928AF55A719480EADAA775B6B40
+843000,u,748D198B95C85A7F2929A82F80B8DA62FC9277963D4B9AAF30F0B486EE282251
+844000,k,CBF816BF1BB138ADA7A1F99E63D71CA73153CC84B1A38836FC210A0859AA647B
+844000,u,D3AE9CAFBCFBEA15AA4B4F2FEDFC43EBEA09BA36873E18E62EBCA31CA8411B00
+845000,k,E477F5167F4305B1162A2625CC7871C5C935EFE9833AC9A730900C1286F4ED63
+845000,u,7FB4A38A9F4FD367C6014FDE4747A3340DBBDFD2AA761CE4EB7883F9AE7A1D0C
+846000,k,272E7C4A8B763D5A0ED76F3B3FBE0539DA6A4F9BDE8BFBF0D4E6BC15193B5131
+846000,u,3384503263C514CF9606DDE4C43252A95CFC48F2FA1B067A5F07AF1666394059
+847000,k,CB74D0CC11A36093CFC007CD89C40912056A9535F8D42FBD647098F5F4FFA326
+847000,u,B2B436AFDA48BAC7DCC05C58276CBBC61A4E396E02FE4F5E68D3555443CFD92A
+848000,k,3D0BCAF5B788A1C18C16AC8DA2C468834EEE2A40894EC836C0FFBC7E743A5A58
+848000,u,E522B44650829D735885A9256A4F64A12E46632E53AECA3162A2E338EB22C03D
+849000,k,3D19A19C3FC4B55E8DCD89BCC584EE983DDF910FA667F234CC9616E34F485F53
+849000,u,ADD2D26EE5C7432D716C311ED692039F2135BD19ACF608E4E52F2AF9EFA6C415
+850000,k,7C060A8815379868695ED1C7F351995A2A4DFE88354EE9257A5A8991A3E12E3E
+850000,u,893AC0A5269F36BD1D99AA20D25A49B48766E40AC1BA40B0DA02673BC68E4D68
+851000,k,72526537CE6926CAB55312E8C4F638CC9E1581652B3073385B00570B7F97EC68
+851000,u,739C0D7B4D5032D30C5D45014BF04067A11C725746FEA30E96B989464849C15C
+852000,k,B9F94663ECBBF6506EC58C605A36A0BD7AD4AFF5E60501B48CBFC8D73C087D1D
+852000,u,7CDCDDA8700A5A7568F250CB511417179868A4D4DBB3B9924149EA48E3F44D31
+853000,k,830FEDAC5CA7E5A09F09D1057F8B6298F7803467848658B9278A38171EEBCB49
+853000,u,ECAEDE95BE638D5BBDBFB1AB607B061220B7C8E3CE6FF5D467AE3A5CF45CBE49
+854000,k,93B5F33E82F48F318A901A03BE3A9E88C3BBBE66610A6604D51F60CC0A13F157
+854000,u,28792C4B8F441B3330B38B44A936831AA78525FF09653C1F68219C5DAF631160
+855000,k,AA4C5A776AA2D3CA524A8242327C36872FE2D500F1595437524C0E71A5311447
+855000,u,4717A9D79F2E1367A9CFB1E7CA7847989C7C1C65E4B7DACB280C9BC225EB2603
+856000,k,161F2940D8DCCAF9B674A3E8C271D4A59F52F129B167C1EFD7177D31DF528C64
+856000,u,D1F638183BC30E69CC6E945933C2A45C62BACE1B366656046F0E3C77FB254C72
+857000,k,F52A1900409957E7896A0360D9C98EA1CAD8298A52A8576B0446373FC62DB231
+857000,u,B1053AC0CB181A7003E5403BD4E83770E6300E9AF503D799069CAAE1F1CA3D05
+858000,k,1D16821B87C5F5903C42A94A6D4F3F2ABFA68121FBE0F02E6075D26E79C3CE7E
+858000,u,F58DA1372B4980374B60DDC83B95930EE987A1D0EC7D698A4B647CBC6FB2135C
+859000,k,F08948E4331EF447DD77A11865D5189891977D702A5D66422B8BC62F795EC463
+859000,u,381EC3A2C442B1170ACEA52EEC93F9410BD99ACCFDA3618479D260BCE7FBAC0F
+860000,k,790D4018482DCBFD093F1D69757CB1A7A6634FDC8FB21EF377C75AB23DA64D49
+860000,u,49935FDB4795192784C1577F1B82AB9C54D8FE127AA8B54F30985CA9D9B16378
+861000,k,3640B94E2E19835FC5B461B449CFD1C4B697D7384FA0D8D16CDFD9809E8ADD20
+861000,u,2C4331292A725CE46B10E7CDAD9AC4026116D685EBFE089A3A0E5D26D3FBAF00
+862000,k,DCFD5EBE92FCE8EDB72ED2DF8F3F2E3D2BAB986891D044A7862A7C1512E8FF2C
+862000,u,7C798BC6AEA7A90A8A25A06EEE667CAF85DBF3B7C58E579F80566E333E411746
+863000,k,2C8A4A8FAA4F69DFD80031542B8D7673600BB3919C50F938A34971E7B4FC9878
+863000,u,BB85BE310545C7598AAFADFA13D05B3D531AC55BC8C46961404CEA65CC628038
+864000,k,474A86432F8139F6D75CC875396B396868A2C4E0C6542E9210170D4C3274A835
+864000,u,D3FF79B5AA72C6BA6033377993EBE4A87666C2ACC963B8C12655BC669F10F16C
+865000,k,4267B9DADF807436A6B7DCF864FC562F4C9C12E13D44997C2C957CC3C0612B44
+865000,u,C3CCBDAC414CF078E1F4B1DF8A35BDE8F7F203DEB4B5ADBFFE0ADFCD3167483D
+866000,k,A2E571AEF70B17F2E76CE2ABE5BC5A5F7AE10D86E3213C59EDD5D33C36CC9C15
+866000,u,BA57CAB4411F6703BAEE056FB4E816C7D2E906496D8CC13EEABA61AD6BBC0F0E
+867000,k,FD95AD1DE7E7D476FF9FA5C934A5F541D817CC3DF9F5C3085324EDFA8432456E
+867000,u,D172DD2BD6BDA9DF47BF6F5A0663614D5EC6DCA6A43FAD1B07E5C191F335AB37
+868000,k,1C5DB93D167AADDE90A0CB384CBC6677E420DC4486FD9719111276491567193E
+868000,u,E9F2C0EF98F2BDB60B65AB8C5E4F13B1A86C0E7C984CBBCB52F959E872E23767
+869000,k,A7AC7FC49FF153BFB2F5FCBF0561DF8F98A57D638D4F6B1A73DA1924CFC3A151
+869000,u,8E84F046B9A4F3FED8C86E6520864BFE537660157EB74E24485788578F3C346A
+870000,k,94902242570668F4CA9D010A13CC923D77E085520684ECA32218EAA2617A6475
+870000,u,92129A8D806EC18B590E165C3C85D4029833829A71C3E5F955CD44DD7C072D19
+871000,k,D61175719C3649D8652FDD6DC248B5F42203E61F59EFC05F9E31C47647987D5C
+871000,u,1D32E09FB130E7C00BCEA2DFC18577021A0A58AE69AAECF0178E0D789118FD7C
+872000,k,E49111051329FB7EC3718E88AC0F934FA3BCA597EF822418AE4F04949086163D
+872000,u,D99514D82F885B326D1B151CCDB2B4A9B98B475E63ECF7471B00E4D8D237CA43
+873000,k,F5A68B398EB3450CA1E313430BFBF3C3D06DE8F9842D41D9288DB8C4FBB17519
+873000,u,735C65C4E5FB707A59058C5CA5CEC98107759DDDF1441C20DDAE09B07063B864
+874000,k,EA494343159DFDD9978B39F6F0C56C163C5388D4A57957F9DA18CFD6F91D036B
+874000,u,A86C17A415D70F007F1034C91E629B1FA30B23038F9ECD4C7B3F5C104242EC57
+875000,k,850222B8CA96ED42057CD28D2DFB7FE1081CAFD8A726BC0C1F191638BFD7B100
+875000,u,DB1C5BB0300D2393164265AA25D2CEB1C465CE18527664CC7A073D7134ED1A7B
+876000,k,005C6A299009748FA53BA548DC2986C47A441752451FF63443BA9F3ACAF5806D
+876000,u,B5813C83FB9342BA04459D7A5E3134B33F47F87D18046310496AF79D33B5097D
+877000,k,641928EA064E3FB6A14B3986BBE5D34F5E5E627BD05DF02B433D72E51F18707A
+877000,u,A20F1B753081237CA6E025BBAC7583227ECAF61F0C8FB043BA8DD7FB2D654818
+878000,k,DD19C42859CB0495E1FF705C68219F7E89D3C9030D841B3390080991A8D2E253
+878000,u,F6B638BEA4C71A71DBF022817AFA6F6CA258D5A63E507376E96730172D665070
+879000,k,FAB8191624822C440D0B52E98430CD88F2266343E36729EA9CC9EEDD7434CF63
+879000,u,7134922706AE044B2805146E04C11E00D4B7AC1DF0D710260B20AD76DFCA623E
+880000,k,84FC88C9B3ADF167F26D2410E33183965FBEC1BE62418CDA0A8A9BC668D0B026
+880000,u,DDB3E1BB88D97A8136A0DA0286287CDA55FFE20B14492E1770A3A3F32AAF1F7D
+881000,k,ACF323A28145F1D3105B1FA75CB0B33B9FD762AF2B8AF50C891B48EA49BDBC32
+881000,u,86C9A9F54DF3B41111114953E58C3C6EA87B57EBCDBD5B6A61B2E85B50599E2A
+882000,k,9CF15D934E7D8A384291EF06C6A1570E92D79E9A79C5F703769C1AAA13ECC805
+882000,u,82F7456ECED2BC0671E054360B5D4D50AC28DC3B265DFF99101B4168559D2960
+883000,k,B82C16C6784717C44741082DA697324886F1C3437776FDB8555180E203134924
+883000,u,68DC9A888ADEC6358CD3EA651F675400384B29AB7E5488B234DB4ADAA4A5B04C
+884000,k,6CEC44903A3C16848FD0CD9297847161C6B3753ECDAF66D6A764DC23A965546E
+884000,u,7FF2175C58306B25170BEC96970B4E19659319588EF7D674899106FD7F488D75
+885000,k,B2DEAD3ED06866F1672EA9B7E2203B8FA8F51CDA73B14862D684821D6838576A
+885000,u,B16290BFEB5DAEA78EFECF4EA8637265934D8F93F4885E70D91E84905AEEBC01
+886000,k,C7A1986E9E9D7756DEB18B2EC405AACA770F2EB72BACEF527C3E01C280D0E239
+886000,u,1A3E5489037D49197275557D7CEB918A64EDFB73117894C303AACF2D42C57745
+887000,k,AF2C81BAA63EC8F6E14580FFFF8A0462CBC5E8B5735CADE7A83C8543D787AB31
+887000,u,0AC95025155EA23DF33269C2C5931B5C1E29594FB177C91474DF51DA64CF311E
+888000,k,686341D3DA00873FBA3F2B6260C5CEC766C15EDED1DBBF13B01DEFBD84EFED67
+888000,u,D7CDDA5861BA080B88C1D86ADABE4F62AE11D07B87C91C90831A7047E40BCF77
+889000,k,44A3255120E5EB0FA2EFB2CA10E1E9133B6A1411DB55B3BA41A4F3B470A25D1B
+889000,u,1701BDFD44B4CD0C68078E201BE09D6BD7098D74F7D25E64B87BE616F4F87618
+890000,k,5DE75FF6863F62BB6A138E270ABE837608D088C067885BC56947C22F688CF854
+890000,u,485B37E555EF71ABB0AD2A0C34A2B24D4EAAD542E884357A252628DE85D6DA38
+891000,k,AC2AC2D03351FE9FB4C957A32E90254C0B21AA955CA4163EC4B66E9633948558
+891000,u,C61DCD9C0BB9D2F03B9325546F829C1FCBD8F9C319DCDF4F1E23386284FCD518
+892000,k,E54CA4C5BBF25F6833DDF7A098FAED351DDE309912946C263BDD428A649B2230
+892000,u,6477CB666F7BEAFFC3806D29BFE8024BFE80886FFDE18EFB7A5B222AE93BFC51
+893000,k,B3852C43B679D726F4D1E0447DEA920D8AA69FD72B3D130E6C6A560C7D10365E
+893000,u,AA2D848999C7C933C08A50726AFA63CE3CF7D6FB16B076C7943924EB7561B536
+894000,k,1F37539D805BE94D43F418D360613237A5C61ACA49EAD69B68BC34E81B204D52
+894000,u,97ED616B51BD27769BD5EDB222F9AC261D0197C5DCDAE33F44603918E19CB337
+895000,k,1F516B22A2CE4F538814FBC6549FD875A404353B70DDAFCC6D9B24A46438693E
+895000,u,C7CE271A196D77D312C51166E7D112A7878A27BDDCF4B8359BB3827BC737B506
+896000,k,BFF99DA907870CBFE13D78C852737B480A3F3CEC48A5451471FF1D07F1F9594C
+896000,u,5D01D4B1F70250C9ADF8A41FEADAFDE8AA8983C2355ECE11F2DAC6AC92786238
+897000,k,7691D6BD9F9B5E07876EC8D4719074D3548130C0FAC2AD3D8DACE725D941B846
+897000,u,17A9075C9D4948CC81873AFE92954935011487750B0C265A1DDA070885138617
+898000,k,060C414FA7C5BE851A01580B97B143E02D801AF5C8A0AAC8D6AD5C2358261F2D
+898000,u,0BD830BED821F2D9A66A72A376AFC09CB6EB02BA5E72ACC4863EB0C629D0FA2B
+899000,k,927FBEF0D692CBD2F32267C772DA752347295FA0E9936F9F7A5BA5F36F153622
+899000,u,1442565766B50E37960F76ADD78050D39D25F2F15D9EBB61205E35C904FB8F7E
+900000,k,03AB9C057B018E0FBE51517040B739110E12B45880E73D1EC70D0592EC1A3B71
+900000,u,5BD6FD4AAC82C92A3BA7A545AEFA5F844BA879A9784C0F873CEE59CA10EAD944
+901000,k,6E66718073C56A4FBA5B8AFA83F46FD2C6C7586B305C10E82CF087D6651FCF23
+901000,u,897B0597EACDFFBC38DD018EEE07FBC5D03F45A4553F34D864E76189855FFB65
+902000,k,F2CFBC889002E0AD7EF0C239221D5083AE20D63FA97DB17A43A2F96FCC831B42
+902000,u,5BBAB8F4C10F8FE76479FFE103F79972AB9754F27E607488EA4DB60FDDFA9379
+903000,k,14E24011641748D0EDCF192459FA6CBBB72B61035259143D83679B68E4811D5E
+903000,u,731BD997ADA0C9D45C6EBAF0FD33F805305E10675F18D1E158494D6CB410721A
+904000,k,9034F4CB644A7E3318BEF086F9F1E28600350533ADCBE571F6BCF73D1D8C6320
+904000,u,6EBC7E4BEE7F1EBF3016F827C3631436469230A34E6A0420D424B0424391D42D
+905000,k,B57D60BD272898942185102F52FCD8F9E8D0A552E6E586171E3B6E649E52A95E
+905000,u,810C105EC6821A44028ABE7CBDD8A430EC3145FB4AA9FCE81A863C952AF2FE79
+906000,k,BDC04E09DBD302C026CC134CC026091FC9D57111BBC15C80087C553A81C1A41E
+906000,u,6686267A439F2A51FE4801374234ADFFDFE8B2F96F13C7FC8933214E8C4E700E
+907000,k,20AD54984932DD3B5021AE39E6CF96341D0F9A562A36AB6BC6878ABB1DAF7E7E
+907000,u,E6901956770D86D2A74FD4C9DD4BE0EB05B7C19366D692ADA7A084460A539659
+908000,k,5D645B35FA4E0FBA2393A4B394C449DE6973E841E6C83439B215A75BBD4BAC4F
+908000,u,784CBBF8300FEDB6B1A986E566EA3393040832DF6DCC64AF4B69659B912BDC5D
+909000,k,4F17847FC18124D1CE2CF29C2E372CBE954560D1BE6CC03CEF34EC1C185F583A
+909000,u,5A155D2E584FE76D7F24DAFB19C4D4498A3AF0B6D1915B66F02E7702F0D1D713
+910000,k,A4AB21FFFD8EDE595F4DA9F9AB6B25E0982C84A66415D7A3C8BBBA297057E216
+910000,u,799D90E38FFF188109B12B1CC442286D033EC6990374BCB7D9F2D08C70A5E27C
+911000,k,342628590390604ED02629DF277BC0F530621CBDD8714470C5A028DF23E6F845
+911000,u,1AA00944658240AADC256F6704A0963229926057F94C50DB9FC7FDE7551EEB19
+912000,k,BB6CC83927EDBCAE711425A037E907FE42C7FE54704EB267184420B6CB6F5547
+912000,u,01EF39C213C961A24833BF8C2E2633CF8CAF3D46659F00235C6A9DDCC374DC02
+913000,k,2AB298FA090B252BA8717E6E9144AC850994850269527B1F98C17EE1C959A919
+913000,u,225C70F6AC1F59F8948D3A044D66BA1DDC421F5CBB9201F4DFC3EB4BB1A61D42
+914000,k,D721C61238228D4407EC3AA983BB64AE4081FB9E073E7D2BE90C82192FAD3435
+914000,u,84F9C7BE798778C47B45C9FFE9715F1D8B1CF41EBEF11B9AB3C7F1B72745996F
+915000,k,64752C3F4FBD8E7F8C44F29541261E628656A38225A1138CC018A1697F7E7B4B
+915000,u,F4CA1628736D3D9B7DF7DEFBDD4F2EC51B9954C4BF36AECF320A2A85B668AE60
+916000,k,C2FC7FF1FAC26EC2396E3403EFB1D201F2E69A827AABCAD43CA24290146DB56C
+916000,u,E616459468CC53E1D8CD90E6FDC0E88E8B4083483BB7C01E96B003586928297F
+917000,k,2E06EF3A49FC29C84BBE999852084639C221FEAE56F016A7F63EA4B5B5AEFB20
+917000,u,2464616CD05F58B33F0A9AC2A454B18E7FAD1226315201D87B0C32FC629A8070
+918000,k,D60812051DEE1078C699A181E96B0ED0E4D7022D2DD4FAFA2B3EB26F9102463C
+918000,u,1C87CB3FEA86E436246B65F952F3A239CD37EE7B47AB7EEA9A4100D96818227B
+919000,k,214E8E3667CE3C02CA0936B77F0693EE87EC599DF552F3106AE332420EA38466
+919000,u,8AF527B3DF5EABD51049C8BE65836FF9EA85015B15BF921865D5355A2D775024
+920000,k,973AA963174CF3F7B87677E0BD325746F3F2A7CA1223BAE286C13F32F65CC977
+920000,u,88BFA8D48A35D000180D1F08CAFD144AE1FD77734D8ADBB082D17A676C6B303C
+921000,k,CD373926FA620FAB0F278BE01F98F46715B8BBF7E4266DC76B2CDF452A7FE222
+921000,u,26B7B3BCA4CA0DD22837B13FCDD07E2C126071BB19CCEF9315FDD2FDDD602B3A
+922000,k,00AAE2582CC51B00D01A7B803AD294C3BD1E89C9181DA8829D397853AEBD8943
+922000,u,61410CE2731FBF624991E1CAFA2BE5C65D781440302C919A52A69CEC2B8EE20C
+923000,k,426E6F29EE46FDEDDFFF0FE607B6F9446678C81A02ACB6B9C17D1D4EADB1864D
+923000,u,7E6C35B5F84F58E07F3511D4CE03D0D7422A0A5C2000FE3F0024F5CCF593E163
+924000,k,B21B63319C8978C14676F20A96D1F7FC924B34966FB09ADA19F10FA6B42DB45C
+924000,u,6EA2CEFBF44B1B9B423EEE0D6A1C26B9E2869F25E344E5420E90FF82DF791737
+925000,k,9A6978921697BD1D673DED6B48105FD5B2A8FC30CD9E9768ABF6EEFDA4902953
+925000,u,A9C1C99DCDAD16BCAEAD2542C66B62D8E949ACCA7666CE2DF3C47810DF27B914
+926000,k,7D7B0826C9F71F322BC121A24BF5458D02A4830F8F229D1AB707B0250F9F6C1C
+926000,u,69C152367A26D47568D98035D0033395D51FA02278286822D775739B146C9453
+927000,k,4719A1E4B3F7C0D48315885854BD342306E3FAB12877011460255C7062C34E7B
+927000,u,7EDFE2C217ADA2B4733011D17A60B32193DE1DB77CFA5C29229A4D27826D2728
+928000,k,EE885073B715F180E872541750393F8748FCA67478C821AE737BF8306755B469
+928000,u,C014F7B7053388C4EDC5CB669887077CBC74FA7F288DF5856DB3D6CA758C982B
+929000,k,434606F7B724AEC9889F1DD3CC088BDA9F807849E0D9582452BD63C23F109C61
+929000,u,4C508E708C72F53A2DC42423FE36939D082074B25DFC24ECA38DF28CC25DC32B
+930000,k,69A4180252A7D6B6051D6FD3AECE7B8366DBEC97C3D10733D34BC95A4953AB13
+930000,u,CD5683A21A690D8864D49C2517D22C3CCCE40D1139BAF8B8FF555D6D30E11001
+931000,k,C3899B577217BDCE8D6A54918347912B36B0062BE4B736A792F0841E80771A46
+931000,u,75EB89B2F734D1BB21323B60E2CFAB348A8CB5A8B21102CEB571D36E320DED72
+932000,k,185D88B3784F49CDEFFCEC184AF2F7AA716FEA0D54E94C9A44BBA4B6E4B33F72
+932000,u,FD1EA4EFF688BF9560483E21C5572751DFA55D15673C475E29E3E70FBEB80210
+933000,k,6C6ECD1C10C8A3512F5DD102A8FA02A6BAFEA98D997E937157B82AB832239E36
+933000,u,232B69E56A91003F52F03974119A710012252AA143571E9A77230B6C0027645F
+934000,k,C9A1D78C3543C7EB0BE4A61B98F3116D3C367EA8874D42C63C4E3D3AB1916311
+934000,u,F48F9DBFFC2FDE41FF700EFB89D9D059456811BF1795E7755B47F862100C8F17
+935000,k,88655B34AD51D90FB24422961353FA828C8E92F07B8A51166BE1D1428C311343
+935000,u,027F3CD18B12676C67A8DF0BBF0C1C914BC369D8C569024EBD2FABB797919936
+936000,k,F9D6A392FC766DA43649692542C39A120BE800DACBACC5D30584D6616F31860A
+936000,u,A0FBAA5B77A77401BDE73ACF82526A2F3A6E28614B1C15336385700AE1B5401C
+937000,k,F088182CA36BAB32636A74FC5AB7B8D43186716A6CB72A92473DEBAD9F493744
+937000,u,4855C77D3865F34E44854B7761D5EA5FB751D6D5ADB0B4CC63E4B69D6EA6ED61
+938000,k,8B65C5BE1CC61FCCC200AD323A9FD2D1739269911FB604087FD33CFB73785114
+938000,u,DB1B93DF918517DBF7B510CA3F7FBE471A3F82886150CCD946A45C96EE24062B
+939000,k,6174419A33C56EE1D7C914BCB47C13782DE634B10D2A6658CE8FBB4131EEF513
+939000,u,0B8ACFDC66EE2B17EAE937670AF000103A7DFD06AA4374E0F4CBC5FA31B9545E
+940000,k,487D349BA6DEAF808808421D42323545CD1C804B177B8EC90C1F2CC232554615
+940000,u,7611E311E0BE3418619D62A672E919D3E209D1D0DBA72B0227E9CBC45A620E1B
+941000,k,335AB61635ABC84C1982F4F06FD436811008E0DEF701CA11D7EBE3A1B93B314E
+941000,u,FBCF1A721F922396AB6DE3BFA9B4EB41546F35137362E6A1BD35C8E5FDF5BF22
+942000,k,1E606BE46C1BA84E248BB3C3D46876D9B8268C1EEAE45A0C052D6825E0062330
+942000,u,401F15151CCF6C739615181395C4951E4400B65259AA11F0470824AAFD26BE35
+943000,k,F3651FBF6765986DF3B510613239B0F51D0BBC85D0BF4637E00A9A6DA2212E17
+943000,u,DEB50733FA5201D882926218B1F1481CEDF6DF418CD36A50076475A7A0199B5A
+944000,k,A3D5B85FCD9B559E0848A9C0C2F91DE10979AE34A84BFA0C277A80435A119E73
+944000,u,E5E3A09B2B7F2A2038A178DA506A688BF33621DAB530C9BB9D8CF0D182C71169
+945000,k,159FEB00A2C2CBC0949DFFE242A3B18CD458106BD8A0C716A0EE2AF3D21BFA62
+945000,u,8F4F6EB646192AA302E7C3D2FE58A181E101B7F750834ADCC3E82028A2B48063
+946000,k,F95FA8B26FB738C812D25664E5AA9CCC7AC0564FB6DC0252CB79866BCF99FC47
+946000,u,8BB82FD1C3E5DD815881A43FD22B87A3A0D8DBA88B55141C4084DE3314D77E11
+947000,k,84B6D9DC897CC1AB5EDEF65F8D414E87CC7163FFA07043C4EB0F87007A6A406D
+947000,u,7404F6352AB50F266BFCA3FF08F82836430934FBEE605F80B36E27C422076627
+948000,k,39860B98D8642A6E0245773C91F2AD2D8115500927E90CC7EDC105EA1501E83F
+948000,u,87AD3D7EE48C3D80874138E54BEBC7B007C174B976A75B7FAC7F8BDB4579520D
+949000,k,1456941A2B8DCADD301D6828368296CCF6911C21C270E3DCBDC485A36D075E39
+949000,u,33ADE6057113864650B73645382C5427A9C9D04B3F594702EE6BA3B98D2F4450
+950000,k,8BE69B12B1442715354D34894802EB5DDE90102575FEB8BDE5C2186279ABA642
+950000,u,85D6B4DE7EAE203DF667BD9973861AEAC6706C9C6FA897DF6A715C67E34B491E
+951000,k,4BE0520E3E6015A535C58DADEE8585A24E1FB225E83072D5EDEDB16006693568
+951000,u,62608E7BDDEC03242A679110F2C4C8AEFFBB8ED1606F4B62E06B939BBDFBA552
+952000,k,A4E67228BE764C8F718A6035D95BE76F18BE73590C36CC4379EF6D083BB6F472
+952000,u,A7F868B73CCA6362627BCBEFA02A3680D40473354D35F962527A201A8EE1DE78
+953000,k,B588898C46B922F1C29CB1CE2D2842F31494A55DB7646D98148E909BBA99E838
+953000,u,FA2AD88DB50B9D653C58A2D9E8F295F730CBC70049B224C957E2328C1FBD8819
+954000,k,1BC46AA57C61816C5C362E4CAEA0306837B301A57930ADF3005DC47EAACD7860
+954000,u,E79DE5A3ACF4D1EEA2239004A5E103D4F38C659F5ECBFC94A42BE3B7DC0EC624
+955000,k,D86E2ACAF5AF3B53715FFA190B059C878E47A578558F338E88CD38A92FF96A76
+955000,u,5E390EF3650286A78B95B6DC0A79D85B6DD8DC2EEFE7382AA05E1370811CF866
+956000,k,F715835D6E771B17F74E67822315673C2C190CD5A7AC6C9128CFD2E099285B3F
+956000,u,14ABFD7267C0CE229C6B0B80406B981B78A3BF30B720F45D4CE2C32347D23F44
+957000,k,C87CA041C86C96ED1BBB5595A39DB39358AB943768E0591597D2D7D010688838
+957000,u,306E43B59415DF62D6D7B11D7A35F74D60C426D9C30354CCADCE0AFA19548A42
+958000,k,BF4829D8541ECFEC5F4FAAE93746C4DBD2FF41C1F0292C3EB1EAD08AD07D7A32
+958000,u,CF76E7654D2F02A20EC161B636F9F518522F788902AF397D57DEAD5576118B7F
+959000,k,48AAA751CCF391EDE1C7F12725E5308D28550BB01B1F050807AC55EF1A282514
+959000,u,F59912C060CD36703D701F6C026D5E7E457702486887BB1660DEECE9F161927A
+960000,k,7AEDCEAC1F084FE7DD8DAB9516908B4B90DB2681297E49CC1B221FF1E90D800F
+960000,u,0204D594DF6E714C3A28D15757943131700BA0F31DB2FA08DAFAC6A99257E82B
+961000,k,6C1FDF3D8E6707B7573C9157738CD1EE6F394977CB4F4AA38F5531E6B83ADA4B
+961000,u,F761E87DC9836225C5A837D11F409A3DD6880CA314F291B0B531E3ACC0333E63
+962000,k,0C9BF951E8C04E93E95F89EEC0143B224147DCFF14288E23CF1A6717F97C2D51
+962000,u,3BDCAA2A734F3035FCAAA1A4C8A52B79E8A69DFE54690790C1AB714668B44D60
+963000,k,01352BE13F25448737B3AACD63FF9A70E9C12377C951C13014AFD61130028A59
+963000,u,13E71F2AE605501E4401C9C8B2607DE54F7CCDA3914676AAF2598FFB9821A741
+964000,k,DBD130E5F6D94EBB9A237B6152D73FB14D90B5C98B316466043C9BE79E05A86D
+964000,u,890C57BB402C47062E2CCC2B3B3CB9FFA0967DB654675DD20EAA35BAA6F99B71
+965000,k,E216E19D098E9AC2C70050C82B066461B5A546F5EE8D6EBE55A20C115121C242
+965000,u,D4DDCF5ACB670148D74499E6C669022BA4D5CE5A0470316DD812B03C5F2FDA46
+966000,k,FC486E49D078B73AA6AF7908630E35105C8AFB30EE9E3FFA591E190BE9A7683F
+966000,u,41C5AC29A6EC2BC4BD0F6F9999F1915CDAEF06A005A31B1FFEC6B31AE34C116A
+967000,k,31A47A24AC4EA3E028F8E52C2A7633187320F2DAE2FCB8A418E0937F6D1CA304
+967000,u,9245BA871F1C696BE12EE0191AE337587E69F2510C3FBE673D8C86AB0023343F
+968000,k,482500A5872B4ECF499DB3263A9B0B4656159A889AABB9DED086C297E5056027
+968000,u,C241D5ACC66AEBF0ED1FFF33F29E3B97CBA7CD6352630ACE400BFA3846158438
+969000,k,A47D92B0E2F17A39D40AFC09038212BF90AF995AE8C1F61D82512DE8AA66A558
+969000,u,FA3DE555E91E77D33523474B16B38D0159FC2B7B49E68C20C1145980874E7561
+970000,k,16BDC3324325751A18F6BC9B292B941258F9417850888972E2EE56B294B1C216
+970000,u,80D7D76939B25398B6469D4F4324A3E11E065DA85B054FCAE6EDD099D07FAF19
+971000,k,BAA584169C3BCBC2FD5DE56FD16BD03C65308BAEC5EA62C63E84D399656B902A
+971000,u,AC7190CD421E3D262DD3A84AC82681CC4445FCF427720B23973A841A54792E39
+972000,k,C51A848CC6E5536F31DD10FB442469BC2BE9985A7A2C50D337563B00957F9A3F
+972000,u,A512BDC8AAEB4697D39704A19C21E55D8E7650887E41665F18F6D1E972402362
+973000,k,AB22007B1C09A968D5B0989A11EE697C5F5C679180C06F8873CCBF15B5177507
+973000,u,F664C4C2F14E15395809991BF811534BE226C07520688FEB17407648CB7B9F52
+974000,k,B5862FE471ED0BEAFECBEEF6A1D59C0C295890265555C8E236A12A3BBBEC214B
+974000,u,35588EF9E8EAF8A8797DC5093024060FF01D4C91DC2C07694A79D58575D3C30A
+975000,k,C693953E1567837E4A2949CC7B8695E74EA6230594AD83C5880F282042D7DA24
+975000,u,6A2D65401902C21A4DD55CBFA03545CC0106985FFCF173A74EBA73D65A313E13
+976000,k,D5AB8B40C3EBFEF1CCE4AE9B11DA82D3D37DA27A44ED0595FAA5A35C811EF37C
+976000,u,5954A2CF863B3D80893D466F2CF40980767327A30A0C356D971545A42A4DDD7D
+977000,k,0ABF8185A72B5A46A87E3EE45915F21608FDBE4ED2A300055CFF199F0AB61570
+977000,u,5E4DB274FF246E3369456D5D2C82ADA5A6B22E03C66EE6199315AC1613FD510D
+978000,k,7AA62EC7CBCE2CC34DBF48231F0BBC0044B1B14E0AABAA19647B98C98508632D
+978000,u,D53931F9CEC9D0C12D9341EB5B7108B0D5D64AF6EAEDED948452B7F59DCCDF0C
+979000,k,7F4CC9954F3145B3AD63BDC436EDF70DDDA546099598A71F258C617A4C7E3F49
+979000,u,FFFF4011830132BBD0CFB3F874FDFFDF403121388880C5E5FB5EFB1778FC6A34
+980000,k,5CC0F16BCB87241ADA368B175BFE635D0E1176199F0554BF87655E5A0CD17508
+980000,u,C144FEE75A4A00E5167DE938D6FBC9BE8482E6D2E533781CADFB81441CBE595F
+981000,k,0F9FB2213AFC87A404288D001CA3EC2B6A56732E57381E307201DEAB937B0903
+981000,u,212E9982C158648A75896409C78B184055EA727DD4B187BAA0D5FF7317657F73
+982000,k,3EE7B4B18BD15F09E3F9EB837EA5D8B03E6E0D30C1A189DCDE611AB0D326A857
+982000,u,8C71475EEC94F1ECE7807EB30F8C9D6EA77320E641D5041A4EB77E8DF6F7BE7B
+983000,k,7943A2D5985315DB94ADD6BE0395806C10DC3DD11EFC068AF38D46E989217F29
+983000,u,E2825E58C6A3386E0EF704425C6588EFC71FB4B2FCCF366D6AF32AE36D54995F
+984000,k,28C11B18B31DCB78E04F4D2EE93572D6EE3B08B570ACA75A38BC1E30EBB17436
+984000,u,4274BA7D5EE34493CBE7FC2EE608585AF206F8ED0A0340A177EDB15CED744748
+985000,k,3C8E514211FBFB4182D0C4EF487AE263C0A9604E97BB90E04BF241F8EE1CAC26
+985000,u,E36D7E3572D4BE292DDD5ACF19A722412DB4ADFE8E5FF4D45CC6C6924FD3220E
+986000,k,33DD2DB97783A196E7374D90DB75DBDCAE4F797C78C0B3C717BA9643A14B7477
+986000,u,4EA2F1C5DCD817CED5184F0CECA5CA878661A5844349E76E16BE572BA0DDBD24
+987000,k,56A69891DCED11E6BC25A6A9EBA59124D57B3059E477EA7CFB6BF7DEF0F65939
+987000,u,A37EBB47A1B79206E3D6B9984FD0490998B052DEC3BB5ED485C4334B2DD24965
+988000,k,4A87C7C91320024D8AAE5AF344A4A6BAD8057916AEACDC7543211E0CC839DB01
+988000,u,96FBDA1FB99CDC8C47D3E8BA0767FA3280B3BCD4BD78F1AAFA7075A1DCD40C34
+989000,k,DD2BE18EFCAA493614D841AE2D120F6D8424766C36A3176990E45884F4D50819
+989000,u,08989B10FEBEC25B0C62200A31937CFEE195001D34F8B2B6EDF524DE4634B018
+990000,k,C9F1775A99940B1EEBC59A5A513A2AE94C5342089D83CAAF1272C40D2FD2742C
+990000,u,A3DE2790039CB360A78805909891A9CB04A889DC32100B5E15C8499AF55C2363
+991000,k,FBDE2B18A67EEB30F7B1BB017951B1440212BB6E30D5737E8E9E590C082D626D
+991000,u,BBD9932FFB38808F53A1964F965C34A05C56BFA1EEAE3745D88C183BA3CB1241
+992000,k,406B4148FDCAA46309E0D592609E9A7E16412A610841690EBC5F23EA0AC01B3B
+992000,u,B047A874681C09E4ACCBF01660E0B0ECA439D2CF95EE6B2F42633A3F8C80D30A
+993000,k,67B7D1F31F660C998DE57C0881E7B6145BA9FBC332C83E9FBF4E2C68C1EA523D
+993000,u,F7FE1519B65BBDAD9DDA247ADB77CF97C5468EE5C5A9B175617DEC50BF02117F
+994000,k,D8DFE4796EC9DD962DAA76B42DE33D102B5EBC4F74DA519C8A1BD61AFF211B07
+994000,u,C5024B02088690CD9014B97329C715EA380905134690578DC8959112A4DC8E1F
+995000,k,3B2693169C564F9432E316306EB9BDBCAE982B21921441B589E1638E41446046
+995000,u,EF755967040A6A3E1C29C27A5449386B42E8C7C95839247CFCDAE91FA942E97B
+996000,k,73E1B88B0660462D8D40877E9E682B0FF84ADAA8312D933FC5C0388AAE344002
+996000,u,F21C3206C73D2C4BDE98C0A3C037986D8CB66BC6965A6E502CD0BAAF9B31AF0B
+997000,k,DD0CABE418D443854364B73A27698909016E3BF67D087DE3F2864E27EC59D008
+997000,u,B296A5A8DB14EBF7DB856C813E7BC961C083FF9C0CA91D16291BA95AFD03DA47
+998000,k,0CEF31A301BE3C38A2F30CA1BB07EA7AF2B20466B9775A905CC3851A2AB4E27C
+998000,u,CEF176617398F7A9D9445E132513DC9A7D78D4608501DF0846B05DEB8F190E39
+999000,k,F7015F8F47FC24143A782347C8FA04FFE119C85D6C896ACBA82072D7844E9210
+999000,u,6A7FFE1C87BDA9D2CE0A2130B6C19B2DBB35EA3CA8DDFA65FE4238A3C2802F44
+1000000,k,7C3911E0AB2586FD864497297E575E6F3BC601C0883C30DF5F4DD2D24F665424
+1000000,u,DC05988D881A30B30040D3192EDD8DC2DFB5CCB212649422C1D7371676B45B2E
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/security/ec/xec/X448.iter Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,2002 @@
+0,k,0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+0,u,0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+1000,k,AA3B4749D55B9DAF1E5B00288826C467274CE3EBBDD5C17B975E09D4AF6C67CF10D087202DB88286E2B79FCEEA3EC353EF54FAA26E219F38
+1000,u,11F1326FB3E434B8F7F5ABC6882697B39188CBC91A990C2C7A9EC41ADE3DEF4F2D1E3D4AFA53F6EA7538768FBE0077080FE1B6A4242B2984
+2000,k,7D088ACF29FB1A4BA5AE49826F4974770B7AD2F316CB4401233EF944E08C179642B388CE916E8D3FC3649F75B38831DA756CF5F1C518CE14
+2000,u,3C6CADC5CB0787F3D5DFF388FBE5100EE90E54298A57F2295D374F866F3F11B05D310827DC4D88CFAD71AA0DD409A52F9192FAD25A759531
+3000,k,0DCAD9363AF9151EA0F760F59AEECD17C6689E37439E61633F28D3DBCB8A679C75EE6BB932E6B459C39F4F28BB5328B4633684C56FD0377D
+3000,u,2721C8741E1DF0BD16117BFE94661F645D58BCD4D1E6E83DCF7D5A2F4E5D6CCA673C25975065873C8CE02C4C84393CD2F8121451F9646B7E
+4000,k,38028CC9A4E29D274FFA0BEDAD8499EA968EBE423B486EAC9CE60C250207437A4456456F820169FAF06D3EBA912FC3731CA94C49F91EE47C
+4000,u,A11BE8CB1CF219C9EFFA63DFA4AD82F726F05AA68BBFACA2945CE3537EA0849154DE14AF8B0CE482056E40FC1E565706E047A22452D771D4
+5000,k,8EEB26619DF3A2E5AF823E8CC9ACB925469C7B0F495CED6306E628401D0226D3776E9141283E3B049656717D64AF4C2F58338A5D26CD2AB3
+5000,u,00021B7968CCFC703F575CF4AF05137E8528DED6C148CD945FC12894DD3812ECA6C66460F073881A9D22337832A2E95876A383AF0290B496
+6000,k,078154C0D27606651DA6350D5FF905FB6D0C9C411EB55643E385A9A2591326FB845C27C56E4824C9D99E3AF46EB8867CD4FCE24E7F3A5C15
+6000,u,F343F6DEC527BA0DB0A01DB92A5A71BA5AB41AD7591FD549FFAEB31BB0C4A87E938ABD1B6DDB14C0DE263CD944FCDCF625414E6B232A6223
+7000,k,52D3291414B7BA76C8A75DDFDFD4381ABD274B3E13735BECFF9A95CBB106BD8DAA8E6336258800003FB7C21FA680DBCFF983DA234C093C76
+7000,u,E2E02ABA8505F2EEF0D25AAA24AC0554949DC1441D3E035E6BCB0D0A4BF9A208C2333EBCBA281F548C7957C076A50D50053F72CD2E299CA4
+8000,k,ECDA4D9E9E52BD0696E3D48CD09A5ECB345DD663D17507FD371410E1ABC8952774EF3550D7EAF9386037B1CF07BF75B128B3D3575A56E94F
+8000,u,06B7848FE505B8370283A52743087606C9BCB604CA31865DB1124C303F812081A3B42D0954E40EB38CEABDC13022B1EAF15C616DDA75BED7
+9000,k,D172DDC185A5EC19FDB6FAD16600D2C706C5C68629E50175E791CD8A7F5520BF61A90B831B79F10B4C710A252AD0EEF86FD9DF8BAF522356
+9000,u,F9C47BEC7BEC936AB72AE70C027581C9754DCA77084C26FF5B396E8F0A8B3A524BEF9835F8C815B17D123F6F1F91813AB7464DD327417A25
+10000,k,D8D36C7E154FDD4BD2733F1F6038891928A94C8F9F8DD6A1D02BCFE027E320C5F2008F7B4C37B3AFF357EC7DD884C2D43681F1AE73675C11
+10000,u,CAECA6A3AF262B7D123A6D85344F0901E34A0ED1EC0B653B59EDA0D4917702A7F035A896E253BA6F71812404D20D80B2C99397A329381E12
+11000,k,A4196A64A9F85B9924F0603950C5766927A8F777ECC40B2E3A3C2A3FDDF0F92C6B83F548AC67A7102796A7EF27B73DA8B7297A155597E6F7
+11000,u,A25C2D0DDDC5A526DE8D0CA12C5C07E333718469454AA0D2930963AD8ACBDA19CAEEE65873FE31677DFDA43EF02AE8F0D28706F87CBE591D
+12000,k,399F5217280740B9C9E5FA01DA9D4356282F3B59111B412B2B3D42DCF36DBF05947ADB4424FD06210A2909331928C9A9A7ED148730A6D5CE
+12000,u,410ED2FBEC143F2AFDA569D86E59BA3DD115950C1AD55376CD14342D549BF33FEED4CC02BA300BF8ABB7F20FD4AD60763CAAD822BD53F0D7
+13000,k,02D20FC9FAE331B0055EDB4AA56FC3049DEB328BBDD90343A7BC86DD40D4BABA54CF1D3892AD29F699BF042C1C5711135C6FA4A3653291D7
+13000,u,D78D1FEFAAD54C2497637E19B9BFEE17CCE7EF7D592B76D1BED659A4B624B0D54D7174A3249C2A2C93F1D82AFA89E9662EC480299F55837D
+14000,k,04D828FD828A3DAE719B9A26787DA5E157DAA76949674A81DFAEEED791396ADC9D5189183DE054348E1B997505AB7E4E15D56312D1F05A5A
+14000,u,103DC760EFE70E4FF0B46A12785596598233E7FA38C67620C22E22218559C9C6C608559ADF86DFF155D6CA051B907B371F6E8EDA379E448C
+15000,k,895716F1FB3DE4189E52BF5FCB720DC74D67F9D542AB6995E819A9CD43FB5436FC0DD81B6012AC35EECF621C179C19713C176D6935C9848C
+15000,u,903F3BDD2D375EA654B9868ED6B98633193C4B5011D05098FA00BC6EADEE92028E38545D0E6037B2DB474147D1080FB868443A298659640B
+16000,k,D0B6EB1F0DAB551C4092DAB496F36CD8142DFB86C60201D5CDF6B4853F400F42F4739FA8DE393DE2B8DFEF8A4EB608430430C61328412B28
+16000,u,B8DD596E127B9AD49668880AE43CB1B5740C4010203FCB99858BB23DCFD6AC362A3ADB4219C3C0B1A433415718E8597E0A9595942E36A3E7
+17000,k,2A0C84D2ECDBE820AD189C320FDF48612D00A408C2A881750FFB090B43D43F1FFAE953BEDF3164F35A659A0192935D00F2D588B6DCC3C941
+17000,u,EA4C97B205E9C449FD6B5129AF6CD87A4AB9ECA6307BB409BD23F0D91596F3DDC194210CEB2BE4B4B72679BA2EC84C611A93DE2C2D4B021F
+18000,k,783EF0C6CFEDC67669DE983FBFA327575F2CFAD94BD5CA35A22A84A15DD3663471D8F1D002945FD6F8D898C38EF6AE3A38704014E325D375
+18000,u,61599E580D1A48A9AA6CC2D01DD2A4897B059D4F31850879EFD74C2E2844F85F2CD93E4C3A096B43093C6406741243031A7D301035B78745
+19000,k,19EB3C3504843BCF8C411E87E57B3475AC2FD695EB05B4D147AEA2E85A63D5B24ABA376546D70C5C3BDD6047DDD77307EBB824432EEACFD0
+19000,u,0BA457C986106C0C0A0E551FA09AE65B832A106F9C1412FFB22609A183E18B4B85AF94CCEA0B885BE6212CCAD4283BC9A9DF9057CD8826D9
+20000,k,F8E5B654C465EB1C5292F0E0964E4ECD0F837484CE6C9DE7BFB8494E4D3AB3FA466DAB502AD0ADC503CCBFFC188933C4C348CC57629EFCD7
+20000,u,06341FF68E7AA52BD622297BF7FE0BCE3F2D82480C2B3A53C9D5D603B8B26A85B44E3E753E42E42F22DD67137F2F46760E59F8161605C965
+21000,k,81300BF98F89335613141447481C9D9DEA5A231FAE201E10993B8080CEEC256A95A5D95DBBF0A588AC1F34F1AAA92914EE53CC673225D0E0
+21000,u,8C7F15F95DEC77331341B769367F4559729724ECDB7E1FCCB04A7BDBAFB2A497C29DDA929A107CFEA4FFDBC9D9524D6DA49BF773DED9FE6C
+22000,k,E6C78D2322248958B4E6B836CB420DD59BE408E9CAA8C27055035138E904EC76E24319023FA75812E82DA3208216B84F4741CA5041A40000
+22000,u,7E9E09FB3E390A64E61368975C64D1EE7BF2ACDF36C7003FCF98710299D21EBBBB934373A4032CEABA0A7DE76A0A25ECD8F5C1B8E8DDA282
+23000,k,0E6B7C4871E3550F50038C1127237E975795FA66C0AB0C3F94EDC268BA360DF5A82329D64212638278351B7DFB4DF707681F4BAC83DFB154
+23000,u,13406745537FDE5AF0B3DECA7466F1592D7556D231E19769005A71A0457B145A021D5A11FBF4DE6B7F8E0CA1B5E3C4F1757D6FE6E41CBE8F
+24000,k,07A4C0AFD3ABC2AA0DBDF21915EB898A176149BCAE4A45537664F03E9805199E15851EB468E691B94380E70B432B8DB4C47840870CFFD715
+24000,u,D3787E16C0776B8DC6CF18C49EE62403F8A377F20A68D1A77363EC2EF7BD93F51F09AD56414F0647C01B34C169885ECA1BBC7C7DEF67E255
+25000,k,DE7C7BA166D2E7223857A511DFCEBDBDA70C337AC316111EFAD57AAB5F515AE0AF5D8F4E9CAB88C79C90BF55CE6302E75DA3AD0BB8678F17
+25000,u,BD138421784D5A7BC0D95590BFE1153B047F9A3359F994563B7F67FB79FCB0759E662752E87E18BA25152D845D6E7D68A1F091EAF272DD44
+26000,k,7F733AB28F49E718968375E88AD336018C9A77000DCE6986A7728B54CAA839DB75B42F7C752324AF3BCAA7B55746CC9B2EFD96BD1036BB3D
+26000,u,CEF7C45A7FAA60C797733FCE8C76B6095FB5D6C887B499CFBE1A0C2BF6FE4C41D47D0F159F3106752BF7C60D873B46983C4B286F69595FE1
+27000,k,AC6D448BD1A755616C06ACA3676195EF9B40E99FBEA50880C44D7403B2AF66A8ADF95403C07344E53C4251F3256B2523A2502EDB2A75341C
+27000,u,9B788F943ACE2C3B9C7EF2D07FE1CCB058E2803BD37F622EFB9310457965C888715892BC0DBC3DB3A08E5AD7021DF793980C38FA9AE9C783
+28000,k,143D9B5D122775057A6DF0F29F7E2CC00DD43519512ECB31DC333367E06FC4C00A764E5D0753E13FC55C15AE267312135BA3FDB37C36A0CF
+28000,u,839E020B0CF32E7D4D6E85D806C6C8266EA3AD689A72D05244404779B9133D63437CB71E68D300534519EDAD714FC234183E5D45F6083931
+29000,k,FB80DA2CB835284669398C7EABEEA8455E5D0CD48F33A138D45FEFD85A6942CBAC424B5ECCF808D73BFFE9689170D9F39B38760F93213D17
+29000,u,AB7131B1410E0B683E947FD88D50C96FD6039D939FA3004DC7C5B826295B091071CF4B85316E87F76825C85724D0DB4ABBC0ECBB552D14CD
+30000,k,7D09CD83B20926367BB4A77B2475A5C1DC2DF0BF3155AF98AF049072CA000349B1105C764C1733E1BA680D2C4F2439F434BA319156DF21D0
+30000,u,1CF019AE668C88BD3985DC20962A32F86D089638B4FAF542D7B047A75D00DE446BAA2F0A146DCD20A4E4C3B334DC506234E28FEB3952F5A6
+31000,k,4ECB38C75664C34D061FE6576706999FF364703C71FD80C7897B5F386446A06CC5DB3C5B8F7F9551EACD3DB6ACA44EBB44A6B982E376E7DC
+31000,u,E03E854A016A549DA5BD54B49ECC10AFA94BD270831AB1D2085E7432CDDB7C0ACD60F0DBAA25D5F77E6801E57AC5FB10849163B88514337B
+32000,k,9921985B1C26B21AE07FDB26E11F64BFBD1224A4A91355E53D171CE50854F8D4B2129E3194C022DD88BC36C781EFF112D217EA59701D66A3
+32000,u,0E4DB5EC8780EB0F7E7969FE77D59845B84B10363DC83B0C0712E2C404D5F69779398029695E33FAA90BF9CD54747F240A92497D6F036B1D
+33000,k,73B1D40422663FAFDA10122DAF20A85CA2AADA4ACA01ED0160D51F0D873C67A06A3E748C7EDE68211D6A9CFA9356234671A6801BD4746806
+33000,u,CB3F20B5C9E164F91415196D3C3C3A2C037A546F0C3896805D45326F61EFAB1C3BD11309D378BA507706147D05581E76D30D65BF576C2C26
+34000,k,135DEAACB25819EA57EB54A015D8CE060546322958B35CD7545D4D43B84BC8496FD8EB9E9458E1843187C700102E13D87F62DFA9D452D6FB
+34000,u,0E77FE2B46FFB5E8C1D2230DA84E833BFD778B2D82B3E6561D804B8B8D6A0240C1E126F677E015565C2F89DFD5DB4237EB7249140E602647
+35000,k,373A8833D00A21E06D751008CC4799EBAA7DA4B9B9CE800E1AD8445928DA5906430BED8665B07F9689A8CA57549250EB9D2FE501E7A52507
+35000,u,2075B16305BCD90AF3F2CD9D990BBEAA53B89C2D300DC9C3675C4F4F7DA51E5A9C1DEFE57487276CD1C8F5B4D1A6F0EBDB9748D545E8D938
+36000,k,7145C9F8BDD079F25708B6654A42764078324525E0D550B9AE85730F6FEC8DFD4FD005CBDC0F734E0E42F4A0A31E09FB3AD05E8F36121897
+36000,u,2D8365560B0AF5B173022D9BE712DE69233C95990980618FDECE6D92C1E2AF6FDDC93E688A66E8BC060F659F39AD54712147F88138E27F6E
+37000,k,03F63B397ECFD859BEC7B4746113966C2E0CF8EBFCE226B828DD4A84F0FB41D86BA2C313B6E04BC21171EF0EA6F034905AAC82AC5BEE477A
+37000,u,F6CD0D9781504293D09A3C3CE90622BDB777EB6E8F512E9AB8E514B2D6D83BF87C1B355F62F47F4D1D636107ECBE514818C5EF6AFD315939
+38000,k,E6B11C65B8CCA9D8EEFFEA995FABBA687B0272CCA194B0E2132624B321A186767905BA77C8EDE5A2CBC153D4E41D7EEA1E8A695E13F8780D
+38000,u,9601F8BB0F08E309B5CE56E2925F90278687DB1678D6719350B88BCBE3B46AE69E9DC845ED554855808C9DC93B99F08AD0E70B98C00331C8
+39000,k,61BB4C6E7F03C84F3396965558E268024746E141D1EF008CCCFDF9BC4A9C249AC1985F19C298B1F0ECFD15E006EFF559FC3B97ED49DB2213
+39000,u,AF3A4FE2894A7AF4733B8E25BB45350FCC8EF1B919423C0FE2EA10AF6EBF94A5A66A2AF7C6A53F9D134B1ABA088C23557BCE8E4DC1396CD2
+40000,k,BF38C703197E001E98C706C6A197B86C006B8E406311D6FB8CDEE6F719ABB0FA733B3076F3A941F7E289B548EC6FBF9818989A99EC732490
+40000,u,35D7D46D4B0D8CF9555824363EF5207A04F6D23532F094661848DA7F546228212024DFCC8DADEF3E83A6B46688A8F47C35F5C49075BE99B4
+41000,k,E3920811B5FF4DC9B741AC6B9F25501CA5B7CD787094865AE311A5EE781824271AC894B48766089052EF9D57FB518B6153E41765E91DDF01
+41000,u,AFCC5433551E580BCA168D23E480D9416FD027DB09BBDDD18BD66940B5444777767198447A220325F7A59C7BC860C2A64D72EF24FD693C22
+42000,k,0BCC15563F959B3E0733E8149D74675B7189644178F6220D63F90699D402DD88563BABBEBEE161175257F0B6242D084A9BFF15E791BD0F5F
+42000,u,7E2A02C2D8AACF6A6A5D9CE42AE1A4089475CC1E66446539952998E15A7BE7DA0579A6AE6D5BB521A209F6A536F91AAC0D7A85BC44EAFAAF
+43000,k,9A7D0A1AB8BE47E1AB5A485733497282C3F006A51F22445FFE56B0DDCC11F345F7105595C517E47A5CE55C59878824B27CA5884D3BE0EA0E
+43000,u,813708EA64AFC1EDF950C2461049E7C322F8626A026D7050F5142B665FC441637AC55AEA41C59E6D6BBD4A7124A52561CF4CFBF8A2A7E86F
+44000,k,93FE5375FE3DBB147EF7EE010907F73F898CB2C3970F98186133F9BF535A3B2E62BB74D0F3C8149F681C7C7CC244B04A65A0664A50D58F96
+44000,u,FC96043DF2CEA17C8AF3970652FC47A297A6A815BBC46183AFDEAC9FBB41B6B01426A5497523700A0822E24EA8706177ED62D66BE1DB57DA
+45000,k,D8CD0B7E894B5E60C4E1D5F04C46D371DB9099096FA2859E38542E06D2565A31FD2DC06D134EA5840CE5E4BE0A7C5A0A6EF3771392CF130A
+45000,u,230B522274AB424AD92C0F18978A72F516015708B2ABC72342AB174A8E6E68F2D0F081DF554940A92C12A80D5A1D354462DA54D5469F0448
+46000,k,2DF7DDACAC320867BD503CD93602ABA2FCA1D68C7AE4E29B9DD685C1C925E9059432D5BE01D364AC403D0CCE08F74BB41B7ECD4CE7884025
+46000,u,5E92540E2C91E4D332DEE37582B4408223580E095F8AA0E60772A32889E7DE5410DB909EBFD55EA799B8B91EB641C975356242E60A0837F3
+47000,k,BA1CF289ADD1DBE69B275C4FF8C4EDF7334D94BDA7BDE674F40D73158C64C833663A63FD0D71DE0C41ACCA55602EBBE370CA1460C7CBD954
+47000,u,1EA32EF97639E23570D959C770181AB5EFB8679CDA61E5AD808B77E47C97ACD4A58AD06FB97597670D7D19F1990B66F5C658BF7AA4B1D084
+48000,k,4DD1023A61F5DE11E8398EF900416FB631AFF53BA1BB7AE4D62AB02DD7402A4338ACBD860C9C9DC901363DC481277926C2A2705356B9A884
+48000,u,699966CB1AD307CFC618252ADACFB8EFC9E22BB1512E90325C0ACCC7090690806BB704F2AB2B9F0E1C9AEA773ED620F837BD3F9EF5D1F341
+49000,k,61E234180A2062514BA735802BF4D9E5F04B2B20A90AC8DDDEC98D2153C88236C4BE612020ACAA2E8DAFC661B462767E9C3F647EE070B74E
+49000,u,3A78849FD3E2FA28D8B729903F2C4555AFA5A33D7BDD78C4A0A4C0EC77FB458C2A5B3F8C349F04FAF46541A1B91DFE7C108680B0439A3089
+50000,k,FEDEC067BB4617D630838E775AEC5D4BE05FFF626A25606F735476F93F7BC4581D3BE79EFF49F4157A72669AD3326C80BE0E87C86B78FF5F
+50000,u,D9B50753F95A323821AEAFD4DD6FF91DD6ADB643BA5817FA2978DC871B5DAECB511E1752A03EA41204E0F6BCE28FDDF568BE7FFA3C057854
+51000,k,7C99C4B606C8A826D607B04CDEB59461B338C18D47B1A7CB91099CB162691932033E82A453593BC4D96C7904451F7CE307F653E1DFE4BEE5
+51000,u,4CEE426402A208BB83EEEBEB20058EBFF0D0BFFA0F60F9AC71F4D2325A39B342886181114F1F5CD2531AE0986535AB3BAC86EEDDF45D7E3F
+52000,k,133D2D2DA0ECE820225F6AAED9593018D7EAF3AFE72D524041C1C69FC4702E6AC7CCCC0E34E9A581AA777E759702CBCB05015EAC4E33A17D
+52000,u,05DE90B9781BD9B74FC1597A2FD86CA92D79E536446340A744702094A9093CAD79C5504AB9E90F01245D761F8CA4CD7FAAF133FF2B28C9A6
+53000,k,161E667CA9D2F370FFB6791A58BA7D3C71B85A22119A980D09D07D73C720ECA49222FE2BF55F31D9BC1DA6C6FEA308EBAB5B1DD9394A27EC
+53000,u,933D496C12BD9746CD1A3154C5DE4248E203104CAB4139BF2111CF0570664D16367B7C38361FB281CEC72F2A540F9ADB93924D5B74E0B3B0
+54000,k,E90F5C4FBFB116F295ED0383D760AB5A4E2F3C57879F1F3252F39953B43F4DFFE134A6B7FD56B89A31883FBA192B8CE36D108F1C44760345
+54000,u,0E5C96AA3897E4D8A4422E50DEEF23B42D7E400890FA48B497AB8F88DEA7E85A01F4949FC997BDD04FE5418EF1024CEA83AE5EBE77EAD166
+55000,k,E3B01EB635AE9C80F7E49140FAC222D9EFB68A427401AD7293493C15A98BE5D5622F276C7815B57947258DC5C3B589F24BCE6FE229F859D5
+55000,u,028F0B86399C3E10DE3D3A14F2B4D79E0D28175D23268D0B0FC150879705263025A2C20A340A3EF7A8769305238AE1316B45CFA184C92F67
+56000,k,38F1589BA779ADCD5C476CB625E530FADB98E12636C62F2057720DBF2380264E13D07DD99E63B283EB6D7F77AFFD369009F99562F86ED7DE
+56000,u,4E5BA1F182254DF43B9223E350B53980267E7FECB65ACA5D6AA55C81642F83D6369CDFA37F0B53CBD142C18FD4CA2C831D4FF6E0F43B9A61
+57000,k,DD3D44AD5BD97FF3A637CD84793FB0EEA2511443AA545161355CC4CBFE9F10C9A67E8729D3CBDECE80BB1DF45DBBF7F14C08B4BE211BDC38
+57000,u,DC27A60A6CB5C37027DF7FDD7E071AEF714769F2BE7E7461BF5267F0C4A65D409F7C64B069236BD40EB8C5244975E56D6A97324F3125F206
+58000,k,FFD4B7C2ECAC00929207C951D41565E3E1CBF93103B2F5EC505E27AA58E01D6E3D35F902AEBCF4F446DF22D46E6FF9F4A05E0D10BB2630B9
+58000,u,E5075B6BC2ED93C12A0C6B9518AE247A08D2CFE533546926D80EAF48F02DFBE41F6FD0FAA9C267474017AF9F291BE5D1B5714EF207301CC3
+59000,k,02B21D01DBCD1E45DC4C0C5F17E04E25CEBA39C28216DDB341E578C96CE825AEFF42C4765629E9260FE47BC8DBCD6D16C4641731C8A05AAD
+59000,u,220CAFAA6675C57D71DA684E04B80D80ED062C51C657EC4A70F8EB21F1FF4A15AEBD26FB1CF9D08484820596393C7845EDF2FD605209B0FD
+60000,k,330BD5E64998ADF94E47D5844267EC7B5C49D162542C2527ED84407057D08E696991322760A30D909B208D7FB7977B5879F8AD1E06434658
+60000,u,49C9DA729E92E9961A82207D820E34D756ECC2F635D43B4A9947D85C697B7DE27A9BEDA4819BBFCEE540F20B456FC5D0470BF21543C28F04
+61000,k,5D946EC29A7CE42940481EE9029395830BA8A6FC64480AE1099271EFD6C2461413DD7F15F67D0A084FBA76FD0CDAB6969A615901984D9FCB
+61000,u,7291CA7AD14830C70E19FD7FAAF6965459A375F67866ABFC0061BFAE5E92A9916750C2D10E1FB1245B905ABAC28A16EC7FEB8642D9A5746E
+62000,k,BDEC42199242662F346A04A61D1F1064D6AF73CC17EB44FFC81C8D8870E40696C71E604DECF070C46F33C5A441B81CE8E4A7EF295CA8151C
+62000,u,3FFAA71D6CFAEB8B1CF6FC641E2893FB9F634925D3BF5A8F486763568A5AED5282725F86561578C5F24ADA9E2B414748E38A8276DE00B97C
+63000,k,3381892684FFF47E52635F8C5388B401C2BE8B3E3E0B4062770AA072F5B6D6092256C9B40FC23B700987AF3969CE822B260F831182D2FC3F
+63000,u,6DEB0388A091A1100A7021512536A9542301CC980C372A9931F8DA4A000D8EA4F0EDE5832E028AF514EC043B8D2C9B315923BC50D6C9E84E
+64000,k,574C3BE4E4B1D835CB01179CB85598527BF2B9FB318404CDE765FD693303008DFDC10C4D5B88B7612B6110389713EEDBBD506BBBB6AA5169
+64000,u,0F37F519C6BD9010CF0225B88BAD1C10172CEF5AB3347B5D1D536681B09B336A5C0EE005696CBD3840EECF6526BDB02FA2F5C24CC0D7792C
+65000,k,2406B6609AB0B49F69CED9590348772C7641A5A1FB4AD159756878CF9C168846B2A840752D17888BD10D21ED026768C2AC42F69A271F3980
+65000,u,8A042D84A3D063DBD977CBCCA885AD0C250F4044D6C04811AF3287044A93CEC087FFABBFC236AA94F4ED99697D28B1CA738CA4A35D68F7C9
+66000,k,7B710513A87EEED24EDCB9A4D898EEFFC7FD5A47AEE15E2132C6564D8C6A6AA74E44F2FACD0451CEE62049A2EE950DD074ED9F2FD0971894
+66000,u,D9DF2EB6FA3989B46810C6A691DBE1796AE89D1F435FF022FD435F612431B044C503E3766533F71337D94A84BEA5B85D447348436752AE21
+67000,k,49F7931FE46E9C50789D2EA65D84CE6A396FB97EA156170F24E74FCDBFB03129D959E77F497014D186FE0FB28E960603744B90F7F7E73C18
+67000,u,9DFEE2C872091E005B7C5E0BF6D4A6100DA99042EC0BA343A84C0C7C9104401E054FF2B506FF37CFA1C6CD769DD8B591AFE46238C501211E
+68000,k,8C64AFF10FEE69DD129F7BF26567E09A0EFA6C880DC4A9E11F3B3EB0BCC9EF3FF9DFE635EDB7FAD7EFA7C227E0E69B8795AF0A1F27BCB20F
+68000,u,A8869CF17C528BBD5A73181504142D778B206CBF38ECA0CB19D8B0A67041AFDB279CC41978346B22381ECFE1715F0BF11E278ED32ECD3715
+69000,k,FE0FE249A7C68ECFEC7C5EEC7E40BC504CF3B2EFCDE5F104EE1CAE794E2EBF146CD9BA5ECEE340C128D40436E45F9507F9D3233858941FFF
+69000,u,DF92A6210815E99FE63CF54875B4C3393AF7BD78A87ABCB0E5F1B33D5CE51845410BCEE51B563C2471E4257CA8D4D9B4201E3F9DAC6285F9
+70000,k,0F129441A4E5505935DEE9A336127A688CCB5A307233FDE59B5250AEE647A6BFA8E6ED09B62590DF1E4FDF6BAFBB00A59CED5A5EF0CB049B
+70000,u,B6B4164BB349DB6C89F3E6EDF802C89B5590817C6442B50929F5696779018533E008C47640FCE3E30D3DD66FCB56D06DC23A870F04B557CB
+71000,k,4F7904D10CF0CC3D169A22F216F9FB5177A192BF59D7E1F43D8C7D3D0CCAAADC5D00C825536441ED531B9DE55428A203E01CF23A4F9F123F
+71000,u,8C7AFF2E72AD0B365BDE9317E72F22976F8AD7440DEEAAA773B30A57D8EE216DD68C79DBE58EFCD49D76C315713B044DB81D1B58A5C26DF2
+72000,k,CBB55C60770E557FF8F479C6EAF9F2D94031E629CC570330017E3695A3EDC886A63858A0FCEFE6A19098D1E573DC7FA533610397F925FD5D
+72000,u,BBF86A54B15EE38C7572C792B487E70C4738E3FEB4E66A86F6288EFBFED7166FEDEC6646A9065743CA52CABD0722807D56935892C649D0BB
+73000,k,EDFDCD8E2679DABC56B383763C5302B67F9902F69AF06707C1ABBB20B95EB098A0207528C38EBBDE7DD2BBEAB5BD80A90205785639A37F7A
+73000,u,1BBDB2331FD60AB670BC89728E45DC365680C2D45538C1C0E4A31644E954F53C85724E0405FC27812EBFC55B88937645A96865593B1562CE
+74000,k,C87747C63B131A97F217108BDAD86D24BB67A914ABDE7D122B5CA271192B46ED90F11AC81252AEE969C6564DB7A5CB61BC9A5DFA6E24362B
+74000,u,FFE68ECE7B359400EE04DCE663432E5A3DA72736EE526EFA4507076072F7A435D13200EEC436F529BCCB052764578BFE37488CD313B0D6F7
+75000,k,BD196A98956D3C90BAB72A7CCF8F3761BE2B6D8AEF8B3E7B2F786355E2AE118D06C5B976F1A90F99ED450F99E2F6CE8BE8E9C00854848556
+75000,u,86C6FD99F5BEB57AFCB16F452E89B69B192D34C9679E60093CFA5D61BF8F615CD1727EDD4BDDA1AC42559AA53E6190B78D57F00DB61A290A
+76000,k,5B080D855E76D6039D8B5F6E4E725531B45755F294FBE5CC1D6E01020F6B116FE5B36344B90D5DFA04267341EE5B7335B577086C56B68096
+76000,u,BBE652DFED487F4667094AEBAF191AD0EA8F769576609E2C322E056A4C058AA2D37C0255D69019ABC7CECE965ADFE36614F384918A02A6E9
+77000,k,813F3BFB41F5ED30DA1A28D8C0D2F4E0747E6699FFB6DEFE05F774F7C8EE1626FD66E16A3814DA29B42B063C6BFDD0F6F0A781A54707AFF9
+77000,u,1851DCBBCDE31A5A7FD399CA28662313D80B4224BE843E54667BFA13D1E4B6E1EBE60969C2FB2631CC5D712815F46FFBFCB714B9B33CE3E6
+78000,k,E94B5B9F113FAAA851C7F588552FC0C68A32EAF682B7BE8E90736F3F6F67D618D6350941E1C085D47676F12F1CB52E436D478A831DEAE979
+78000,u,1D61FFA94FE80F03997025BC02F816478CBF6A5E0BFF4EE4E5F8364CDB9B1A3C49EE1DF1725CA5A58A17130BE5106CF9A681C2F5EB4B0924
+79000,k,8F65DA910ADFC7473FCEEAB729AB1C9674F5302E590911C8ECDD9A689FF4CB53B62E93852AFBE369D02845B5EE05EA0DE7F5A06086933DF5
+79000,u,C9F60DC7CC0E369E69223A3F18CF3D5FEEA9F9D3198F32110B7661C89BE9F744AACA99DDA2A4DE6B55DE0F7078BF58E4EF4020F221E72A96
+80000,k,4531D1D2AD9BBCDEAD3BB9568422348A233B6AB11D02D84E642A19B08675A3AABA28B7F54E7BE0F239FF354BDFDF8EE08BE74B2B7CE1AC46
+80000,u,0AFC9B3576D9B6151E1AA22F8137F95C4BBBE957EF12C339ED524AB8028A94FAC4107CD3ABD7DF6975CF375499ACE1ED35A718AEAE1A323A
+81000,k,02E1DFD148014EEEFFFEA5D65B25E6CB475763B287210493B7A62BD8795621356DB56E073E460E1C95A61210A566EB201A9CE3750F7C0A84
+81000,u,68F6697ACA7F54FF4D3A2FAF2FCB137B196D3335FAC3A4752A61CB8F752800B2B2DCF0D9B94F9D8BB9664FCD0D864C8E115D6EBA82D76099
+82000,k,ABACEF14C8F76EFB59B9D05CD632A7C955C5F5DD23C22CC35FD2C51725CF789F9CFCBEF645F88B5AEEC6507D9D3F4DCC27F25B00768D096A
+82000,u,CF1C21719AD02296935096EF536806C5A96CAFCAB088B22A2028E01C20F26A05666244ABF9E2DF25187BE5547E23784E2439797061DD49BD
+83000,k,EB12637967E3E1B268774CF3E60FC6191E502368983856F59DE7ECDD182FAD243C2AB4FC1BC38AAC8FBA4EF2ACCA8D30D1653BCF52D4DA51
+83000,u,EB28F0C9053EE94F66CD9F1B79E78B33DB2C65296FD529A0D2D893258A19DA4F194FDE6860CBBF41E8B7DF2E457D7DD449A4E68AEE516983
+84000,k,00D2F613085A8C204C5D7752070D34A1B5644A6D63C4AD3402BFCF178D79D5B66C9BF3A7D08ADA8819717436DA46B8D5FB9C5E6B8AAD422A
+84000,u,AE274A2DC79AFC8C9F1E103DEB980EECF43AB3290663F3DD95BD7B0D2475164C9A95D07028A05D650F93BDD2F20FC069305F02D7AE393FC8
+85000,k,AFFAAEC199F0BFB74E87F1256BE81B2CD59809717A313A6AE0683F24F15C8F03187CE3885DAEEB16C5903AC3B3DEF3E9AB833BF98A5878A7
+85000,u,99D0C82B9AF8BFB4A8B28C1F0679F2D4FCE0F31AF224FBF57236946E16FDC98A0986A58C7E5ED6269D652BC1E9FB25D3CB63D995EFB19C9B
+86000,k,8BF8D92F7F96C813A88EB04B7FD1FFD441B20B62837D5F61C7E299C4AED7E11BD4753A311BC21263AEB1CAA1B771883E91DD3254FC0D27D6
+86000,u,F032AA6543297A78DB46062C35183080A721D481B6C98C01CAD39B758D70F3CB516406F07F46CDA627F8A4F116D335667682B9C5763A9D43
+87000,k,D1FD60CEF794B81BC2CE1BE9936BFFB5AAA6C84A3BDF337F3B2B1FB1560F61FAACBA819AC15B24B23359962C70DD72BC5B79A6B9C7E62C50
+87000,u,53B3DF35D9FABD7E647533A7F2625DABCAF1E6764F53598C2787EDD9D34E13AA9C57D46C64CA8CE4F54A7170B9712E162D96F446166D18D9
+88000,k,D409288314210F46F1D5EAF17BF6A007398C9B4209F244B65133BF1ACC708B92C7AAC27CD147F1A68239CA1EEB6357D62918F32467446D0E
+88000,u,336006677895F9B45E69A0C0F0078C1E8F9F08659088E6E2DA175C9AD12004BB594143AD85CAB1538AABC19FE6B0818F0E12A6F6CA386627
+89000,k,4071438CAD5853956C5813BEE0FBF4200C93A36DDE09C2E5BC1EACCF366894A6CA8E0EDE13D9F5C0E90820CFD79AE64575963ED6B6F04C75
+89000,u,A2500DF2F7D444E64E50D692AF6D9A73B3F160E30F90B8DF624846F108EE29517043CDD37D0757AE9209E01C62B131445B1AE7ADDC3E1455
+90000,k,E2036DEDE9E1E3EF286E4CBE42F47D01C68A93B0852757BA10BEB90E795BCB7CCB92AA91DE5B1872762FB2D08B3A0F02EAB27ED83134DEC8
+90000,u,D6EBD6B963DFA134A3DB2868D2547AE960C9EAFD08F2ECBEA8736B537C9BA284C94F1409C400E06E7A750A85F3413B90DB1E4AEB2079F618
+91000,k,3D19F6B80D0DE7929A4270AE7CF4CB21E4A28834547425A753C3E59B9C1C028CA6244EB6509230DB95EB21FC12AEAC2D72224EC7817ECEFF
+91000,u,1C5D8CE997D7325CE4E7F4C7E2DD36D7A643FBC190FD924A382FFCB25473E127F7829AEA6623A1BC065858FB5DEB236559B0884C464D0634
+92000,k,CA628EC9A14F2B5914A7C70F6447B50B926D3B82E3FCDDFBB5919E794F8DB8F107ACD6A5CE2AC0E41371B12AD60137498E1C690C214DE1B0
+92000,u,1835A9603ACB7DF04FE3A316A7A38FAE743C4D60CA49653E8C1F08240F0D7D45509CBCF595F7E2AC4BA78B61E99E1AFA451ACAD715F5DB44
+93000,k,FB11241D87B3D6F9F9A0FE9678B5E6707C66D35603E3DB1719C52DC827F66EA3ECC96263CD2C237B31E02305141FB54698AE1F2E6B94E53C
+93000,u,7051DE04E3BEB954B06A3404006AABE8350273C4C679C6D41229FD424D03B589D63CEB18A4591DB8CDE1AEBA4D30BA8ED155BC717D99E40B
+94000,k,596AE8F405E06E49DFEA242F4415B21701C230053B17969FF7A1D125B479AE6202125D178C5FACB5285912F2F17DD173E21D954E694630E4
+94000,u,E664DDB502A79ED2B4D80474AC7F9D714B99E22D62875305246F3D113503B06C6DF744D8E9BA0FC52CB5147370FA6EC64F79FFA25FAA57DF
+95000,k,278BA0F0338F58B27F160E087DC4D9BCA99D86233F143AA6D8416143BE0E181AADDA710E45DE409865D8D48782E5FC42868E18C448206A45
+95000,u,155EFCC39C4DA0F50A0CFBE21C362F333886D24149CD937607CDF105E6A0CF3D04E8FAC8BD030BED502B44FE35DA801174DEC4313191DC5A
+96000,k,05180478578E2A5171DFF43735004C49C4747498D004CAC733E3CD85416CCCF2D0937E63391C29903A93F815D068D9CF12E010536732EB9D
+96000,u,3C0AD764804EB95DDC4932C843695A700938EB329FCC02D62C205D2563FE1454D746DA9A59BDF666CC2CC3FCE560CF4EB27382856756CC21
+97000,k,81CC5B7CF20BE73750350B469F3712AD9C01BF54164A97C5EB4EEC9AC4A94DBF2CAE5C444F8E7CC52A1A7385DFEB167ADB85E60CEDDE7C97
+97000,u,AA96359C7BE181B7D09D4C525FC8170345DA184846E48CAA68B58E5E5837E36D911E4AE7FCD99B0DA7950A49A4311D557215AE5F295B980D
+98000,k,90A1D2C50A78E70F80ADEE785A45E24F6F7F5AB4C301B381857F71BA0B18ED223B040E91D12D3573D6D35F2C4CABF3150042AE7BD7497CD7
+98000,u,B953FFB95E0E7F12F5BD825F9A1DE19B5D0CFD5B00453A86E878B066B093D84DE2C2073EEA51ED8EA84D79E85DBDBEE93C465C9E88C23A72
+99000,k,9307050B39BCBC77E8A107D01CB0F83D6DFE521D2AD40AC2C65A02DDBB3A4E2859E57139EADFF48378ACFB545AAEA68B21A334E758EB5D58
+99000,u,2849FE248D5722AECE349DE2272FD03472AE59144F6B58896B73C0DAFB97528037A597ECA2BBD68F68A2573585260697B5ABEDE0A3AE1A13
+100000,k,48DC17EBA89DE7B6F0D60CDC50034FB5CD0285A7638F9597806B0016DE4110CBD658401C428835794B3D64C4BD074274B0A5BD43E1E1D1FA
+100000,u,22FB490E3AB738C9E6A89D99FA9EF438B952446A3DB90874E08C7C64E67642A2D9A359D2B6EEFB5EA7553D52A03E8CF078D34D2CC972E6DF
+101000,k,84594FBAB21A825EEAF161288C5A969D02D2C92AC347B152A02C87BCBC41B068F12F23112B20B987DA9DB73474930EA920EC03511C54F7D7
+101000,u,C8193E00426F373091A20F479C3CE46C5DDEB5E3B3999B59141EBB66EC28FB089803C1F23E997DE1301ED571BFED626EEF96FE913569283B
+102000,k,C24EDD23573DF9EE7544EF213AA1E1065E87911C7BF70ABC8A2A25C59795DD38ECC5107A2B0A3B2235858B6A6784F2237EE9EC320AFB1458
+102000,u,E3FAC3D08EF30FC872E32644910C9D9364044F8CA778194B5FC5A530D1C49D11118A3A91121D0883E550B595D2194CBAFDDDA2CE7CA2FE55
+103000,k,F210F157BA1686C8DD8BF619C9CB9BA902C51339F307F4094CC24C6CADC9FB739B8A3AC7A581CD8D711C949FCAD67433984BFF521ED9799C
+103000,u,D7CDA13089F1FEE3AB4AEA8328040A029A74E6E4841FAEAF5742E0ABDB59F3B089818ABDBC52A62B50AEF4E5666FFC3C22225C457205E4DC
+104000,k,2051D8BDC2982AA6F84C499FF94825904781B12B4BFCCF21158A989148A0A270645181AE7542F4C248C7178972DB6FC808E4AF0CF81771CE
+104000,u,8D0BD0D8CAC5B39F3DCFF54A9A0E9BD7AD8EEFF49082EAD64694F9984CDB465E188FE715DD9F309CC3052BE4E8D183B724456F3823B8B2E4
+105000,k,415157D2384A0EE599DAD6CACF73E1FD3F58811223DBB8D73E3C02DA7988089D544A93E7D284C22F3B2D015ACA0AD2A9F02C11168DDE2BDF
+105000,u,692597ED787BD83A8DC296579172AA0BC0286B5FA7F8AD733FC215854FD1E2F54652B2A7B78A6329F6559672A38AC2241BD94036F69847FE
+106000,k,22DB85DBE41DC1A741F2568DE11609ADFB7F75FC81A86565D45AF7C6A3F0EE2935D25180585026C308C163B86CFC4D2C4D9442E6DDCC825A
+106000,u,097690DB6CC198018C4F6365304D3253C0751CD10A24698ABF5BF7BA2D3505E68126A7A9DE3F737CF8A8F68AD26AD69D5057E7FFAC60B4F6
+107000,k,B59D69327750559E5930DDC9D6479C1F5214DA2EAC093BB2BB3367AE0F6ABB6C4E6E6602EBD99F5EE341214C82F95698C0936B8B6839BEC0
+107000,u,8A529CD858567656DCAFBE7F9B8F3919E1FEA3C0BDDFF547369A84F2DE7BD0E10C932A9F18E2E18AB291836AFCBB0103C80FFFF1D88DC477
+108000,k,D6C5ADF56516F3F2FA1A54B6D71E8D08FD5AFA594186267C3CBE523135473FAEE22E17A27EE868643D1C8C671DF9A6A9104AB0EF52EE21F9
+108000,u,9975D1D36079F3D79FA42B2401F6A472116C964F640600D40811156F110E5AAA00D4BA57F3DD503A2F550D2A1CB089F97E9B3F0D632EC619
+109000,k,92B43F84599D592B51E0B1A99EED938600279DD85A1777759B3678CE745CBBE35EA12871F5FDF42F3D33F823FD2D3234EF79AF1570B03E28
+109000,u,28EC54FA8D0CF8ED7161487685BFFB7030BF9B2671EF2CCBDBB0985CFED45ED15D89B2F4C4AD02424D42BCFF0925DD55991C84CDC72E60DC
+110000,k,B205BF66B2C40C633A560A283B686C4C5FC5F817869AF82A61ADF2AAC1D26D88CD00E26C1762E5F4EED6486BB5FDB9ED1BAF3E8ED2F27EB2
+110000,u,F35D7A88892EF7222010C4B0217D42E4D912D2F481CA2A7EC9C1865CA07CD93F194882C2FD45B33C10E7F424F3EF9ECF5891E3347F4FEA96
+111000,k,3BC39F28C13A58A48964C654647FB30E477E6133466DD594F3D4097AF16004564D87B5033D922C683573F7A12E550914B5BAE7A455BDBA82
+111000,u,F2F9C07735DB221145CA6955C19AB0895EB30F393FBDDB59D5DF9E596555104B5943C7EAB703E25EE33FB6E6B2F8F2F700355F6ABB623042
+112000,k,82F0B0C78CC91F37B585D81B3024EA6B47A50D13DD1AFDEBCB1A35EF4060EC37741D1319DCF4BC35CE538F6814E553FD952E1F65B272050E
+112000,u,D2AEB383C96C542BC93156B7D0A730812927F1E95F055BDE662A659319D185F3162F3C34736BBB6EF4DF7832670E397444C5CC23AD9BD96B
+113000,k,ED6CC36C13697A844601DD4BDFA502BB01C58CD201A4EE67B269519107A71A54581DC1039A776BE39070D0FE00097695E7AD8D4D0C3E90A3
+113000,u,AF064E0B21EE0C5DD6242B893379311B1B6A33420844813908FC8F1692279B764564F2441D0433D5ABEAED04691CE047618B483727DC0DC2
+114000,k,22FFF5865BA411372DE8A7240B0EF9AA37B7FA0ACDCB32CD4588A8C711D9A34F12400D9ABCD2244AE08CCA528A3F8FE0ACBC2A3D747F6742
+114000,u,99194BCD94CEE4B282A64703FA778328533F6928F6690AACE1914EEE593D480BE6C3F755D7C13E73E30F27D977903F586C2ACA351527EEE1
+115000,k,E452179EF80735FD73A41F5429DB1F5AA03CCB895F492B0B487469B438366A989B07AD2AFEE9407C14D9B68FF0EFC53C3970CF3A6C7A088D
+115000,u,D546B85C441C5A23837F9A5C796237CB8363A213AC375FAE6B63B211DEDF37B0F2C5125D327455142AF336932BC3F3E8AF273375D6DEB6BC
+116000,k,A617FDFE463636DDADDE4263F7642D7ED5690C624646A1A9102E694C1087F4B0318F46F251E20EFE30CD23776283E11515857964532EF2FC
+116000,u,F72AE90E19B450D813F883C075362EFCA33487F2B523E7783442C15B4AB330D6DE129A9AD6C12C1A7A4831019E45C6DCFED917F5C723C55A
+117000,k,91F43EDD42E2792D109E3707A8149E3743F1B5983EFEA5B8463F293C9E73A681827F60FB4EC0DBA98CDBA42E0408C4AE622D7343EAB33EEE
+117000,u,99C9590F210AAB95B47BCD5C8AC3DA8AA0324E9C42EA31DD0860575AC55AB90E7E8228E759B8F54F05E362B079D81AC137E1C73B8C60A95E
+118000,k,5D7163842E549D393F1D939BBB58AE6D89A2C84879DFE21F43C12ACB67198D8A26AB02E6FBEFD5DA28A39570B88BD97CFFE0A7A54C61EC35
+118000,u,80B362D542F06909D1B27A0B45CD67F9A606A6AFAD8E0E64297A997E3C18EE561E21E3DE87CDA038161A6F546B45662512C1A8C5EE754612
+119000,k,33649F19F9BF00610C0AF7059C77D337FC14AD2E3B1D5FF27D4F051B07395638654102E51ABAB4A6E0E822C206A21DF2BFE3AC2FE60CB937
+119000,u,20E9CFB023014F999E373EFAEF297981F2A699529D08E21E088ED5DD0E783C18F781128C1DC2AC1E686D4BE484B20D12F5F5F17135DA2D49
+120000,k,A39485D9E33F8608451C5281F7CAB01BFFAA5BF638515FE7C9ECECADF09E000239A2F85872A0DDE4F4DC484DB7FB5ABD3E78E1D824CDE947
+120000,u,CF94779B8CF0C963C1AAEB23D0B83220BA398ED70F96BCDDEF99FDC5E4E93EFAE165153D862F6453DC3460A8D2FFEE6399C39421177C1CC0
+121000,k,449BA28BDEF1B5FDC0F0CEDEE319E0C81F0FF1049A095363416B2F71ABF23B0056EB87E0DF50FD3DFEA1860140332B270242CA9E3A6ECE05
+121000,u,CD2C4FEAD8AE70F42CAAD8D5FDD91145DFF583248B4CC12343B44176FE55447B2038A40D8742C5385A7BEE3E4780F02B98F6DBC98E6C97DA
+122000,k,85204E4F09EC0E6073B8AF92EC6C2B2916C2DAFB0A95F8D3A660F57CA447C43D032C818B36A552A0087DB5EF9AB96797BE066313458D2D7C
+122000,u,CF1E1AB67829C9FD2C8C270BAB4E82038B47469590733BAB91325F9C44203D8426F21280DBBCCE671656CA474D64D0E29D450ABB30836043
+123000,k,ABD257808C26946EED9875FA5A88F7AC2ECD2B2D06BA95C25152AF79B688A2400A72A31123FBC19D9866634BF0C8A8E405C889B3237F3FA0
+123000,u,D91BCF6612ECD224FDF27C6B7647241D9579102A1DFEC039F7B9E3798B1919F0B7CAB95038FB6739AEAE4D67A6849A720A8131AC2C2AAE4A
+124000,k,02F4CF67497E279252ADD80D609CA5329B94306D8C898029CEA1A2657A976B51F83FB8CAC9B99E5FAE17E51C7DD9137F1AD3C19F970820C6
+124000,u,EAEB4640B4DFEEE0115B589D82014CE09BB15994EE5C71EF1737BC22C9D8600757F377F1A8142AE0ED10C3AF0C31839530F37902DB563F36
+125000,k,1831DFD2AD13EFECB913C582F4BD9DCBB8E7E613FD4E824C69E767F8A68DE0AEDAD87C9538CA3B00BDFE3FC2F6845373E2DF844214A694E3
+125000,u,FEC5D6BB277A5694F22489BBCF96215282EF18DDA51E63A76FEA39C5A4ACB65A56196AFD80633606864A4423DAE96E880393A0E8A2B400E9
+126000,k,2C696EE8A6AEEFDA73FDC241B72D8D1FF83487319FA80C3CF603C506B747C3B78570846954C41C160857F6FB2D17F170957718C6F518C782
+126000,u,43BF0FC2D402C7389EB6ACF873FDA8B330EAA02D9832F837149DFD5BEE7FA96038741F06A6313905275CDE5A15CDDC7D70257468EB6F364C
+127000,k,85EA268E1E3BD6CE792BB8A9F5E534C3CF268EE2BB6C53E495C17F4F1876583F82D6DBD55D6634DCE3D89197080D5F42C8B6E043F8A6DFB6
+127000,u,9F1341FEB6591DA2A9330FBE434225541341F24C877447A16C35C9BDF8022A668B502F16797AE50A785304AED491FE5196910B397DD7ECD1
+128000,k,D80924874AECA8546332D1AD7014C0F23A2559EEC3CA4E054A119C9C017E583417DC704041E15B8113A467353248EB401E6B4A3F0398DE81
+128000,u,86A24A7849E37701875E3997702C262EDFEDC8BC6DBBDD4286F0B559136EAA536BB33B4E8C3F1DABF05B9A5AADDC4EBCFAB602D516A73925
+129000,k,E1563AE0DED2A974365BD354E3EC9AB8A569806F5FA012E2957E2FE2504B9508D73BEFDBD04675451ACC7E5B4C5A3FF1F5F8E61CA857AF4F
+129000,u,2A1280F063E10D7FC8D249E8F8275F960BD4F63170EC4F259F506218CC85FEBDF3CB37FCAA0726BA3F480C42832712573FFCE5894E3206E8
+130000,k,35A1808AE06FC004E2F1C16729E37C195B49CD231207146901B8DF159B47A3280FCC0CAF886B89D0415A1A5F924C5EBDA6E1D38FA8CDAC4A
+130000,u,B584B4140DBC04DF475EC47410D77C80E44AF767004CDA11872D84195944F532DBD68396F592FB392EDB797A9EAA3F1819B00F4DC7DD8843
+131000,k,618C9C5D9348405CC7FE9B6B618EE54D2624A61CAFACB7DCA1313167C1AA0B26576FA859143611844014E8752BC94A1B6DFCD9BC18A96774
+131000,u,4EF19DFBE2659EED365B270CB6742D68208EF668D762DD03F5239FC5261F3753E29C6FB8E777C19D8536B1B5804786D6FF29492555FEF2CC
+132000,k,5F70708399AD48E4D5EF65EE932B06B7A1753871BB1705B5C80A109BF73017C12FB637B37B5CEA846A85A17182572BDCD0A7CE8E667FE903
+132000,u,73265EF47BA3070C9EB0C1B8618FD02A6C8BF4528E92F231665E351FF0EFCE47FE41E62B17AEC4501FE286291C1405C30861F63F595C52B0
+133000,k,65563B2AF423C159E1736C34E5EB5A57613AA987BF7B0E68827A1530A72A5A63726AD8FBA0872E456617B4B47E9A43A4EE817DE39C711D12
+133000,u,D9682A5D46C25E2B309956BE21B5F4EC53C9EB8E73A3B27B3368CC9FF9063B972651284906C0487A2A147EB35BFB6F1804C47D17AF0196F8
+134000,k,121F6E3DE521C1A2F00112227FC9BA6A2DF9D7449F2D88FC11FDE39D16ACD72948B4BD63EA4DF03A0C13683B2DD97CE0BF9AA7E5D4F988B9
+134000,u,F0F47FDAABAD36A63B273312DED6E5E8D07334E224157C5157D1A36A82283867949E1AC430544F99BCA6BD0C570DC2001EFE974F71B37E1B
+135000,k,4D9D8DC8D5F799612ED4A9211944C61DFB76AA9A80D65B211DBB1CF5840D9C483BD390B3C179E8059CD9773A3BCD9EC3E160E19F5697BAB9
+135000,u,9780BD6408210AEF84D91E791D987497CEDFA579B229906F20AB49FB1B33480B1A07426AAF1662B374F6E1334E7B1F8E9C9086D1325DD727
+136000,k,34E891ACDD8CD1861A9C6F1BDDD2F415D044E438CED4C29E93E090EC5955B0E550B333F2D4A7EB1E6B320418820241BDB95FCFBA60E3467B
+136000,u,E5548ECF3B8715A1C5936B2F998A21D00EA7422C021343E8840F5CCF4554E8A599B8B75D1D9E41649E77BE835AE98BFFEEA5E9BE38898F72
+137000,k,D2DE3B1A9597BF02E560C94A4D5789B19295254353443DF20D804DFCF7C621F93F5584C49BB39F3D6EA261DCD0FD1AD66D58C1B4D457FDE5
+137000,u,72226B74A7D459609C394517025D506B4A22BCE1B8A452E48D7F3F6851A891680EDB6B84689C1E3D15B79783529F062E556325310D29EE5A
+138000,k,B237FF18F0FCF773AD10DF545A0F6C38B8F9F34C238B3BA40A661B0FF45C5CCC1CA7837D22353A86DDE795C52172D789F1060891DA5F0FC7
+138000,u,E2F903874770F07BFB941CC0B1FE7CF40A0C8002C208F0369FF2E5576E00CE128E8E43FEE26B4E61E3788D8366B210A83123B791A71225C9
+139000,k,07183B05692B1D7D85B593E0454511FA54185987335C9C30D806872E462EACE540062BAD085B4B857CD2F2A55211755022D176BC3919CD58
+139000,u,F31477CC44795EDDD24D2165466E4751EA4056D4FA0C78350F4FA78678ABEE658D35197DE419DE7095E8118918EE0FD0F0E85B63374E24AF
+140000,k,6D6AE4FA4FA320EFF2599B5D23ECBA5EC21E88BDEF2D8D866971EFB6E24BBF9D4D6B8CE47BD4766B841B58402E1AC5F1B39791BCB6A1D285
+140000,u,A4A046D8C2D562F68473B15ADCBB70F3D70442C7AB1AB21D262ED9AC50F2A7614C22FA994382950365B23DE1ECB1D7BFFFBBF4638CC346BC
+141000,k,80FE0C759AAD6EF7C781E822E8955065C029D14C73E4234B7C22E72FE7AA8DA026E4945F48F1A8455C19CE23DA1F68EAAFF15414B57710F4
+141000,u,24BF43635037349D6C5B7E74BB0D472FA7FAF39796C2D6C806A27D7B362C0E9396243D62248B0D86E4400EABF217934FA35ACE3BA69E50A3
+142000,k,9A81CC474BD0F98A5F20FC5E653E5C2D7B04EEBDB3B79ADE7041EB8A2293865CE2C9912131B7BF7BD4E45F1B3437460B6F83E9C0B460C6E0
+142000,u,A7C9717456A69F399A0950F2943A7BB26ED50CF58E418BA6FE23A148568FB5B63D9F4F70645EDCE0E8A655E07DCC93C3889DEACD0209B1D5
+143000,k,A06623A08DC9A66109D141E43CA32751E4B64D557041A4970B033D2CEBFD508A01D3B41CF8B2AEF94D57EAD53A8D075E2020EA82DF827271
+143000,u,41DD8C63308D76F10C2586F7D2FCFDF117DD3CD4C9BCB1A6CA93A229F3AF67C0B37A545065EB9F4E1FE81B95BEC2E75E8A302C1E0CA3719C
+144000,k,2D1292AD214253248EE0360096AC4594751789694DD9ED4A1CE5E73461CF861E22C0A08C53742DCD711D59BD8EC6A970CCE2ADF56408BDE0
+144000,u,B2AA77773569E79ACF28FB9ADFDC107CAB34A1F0FF37A5C892E35E8D39C9E3D2DA8E7B61B6D139508A939D2E9D3DBE250355A69E98474249
+145000,k,528D4EF878BDB277C2765D0BC9C4CAC20AF8B00C9DDF100DA3BF234A5B7858E4C9DEDCCC1FC36CA940987824C8316987DA0F216F98E72EDA
+145000,u,C44DC59DB903F77720CF0622E19C8A75E2900E7009D89EC114A98C3819609ADCA8708C0E323A0C040A83B9E287FAD6507E1F056973696483
+146000,k,9A0F198BE84BE66BE5FD8EE3BE3C76EE30FBD95372DD64BA6D5C0A540E0A737E2DB885E1B681911D0990E2E282A72E42FACC126985A4926D
+146000,u,374E4D6B67EC2681A987EA2901D07332804F434507C4CDC4C62C450972125990E587FC63BDCFBD32CBAFE0AB25B2B4FDD7EEB358547C16C5
+147000,k,D978C469A6450CECC834470A92EE51203461D1DEBD262B6FBE56707330B3FE4B08A0238450FC9AF6BF7018CEAF69AD821C58A3DE67F29513
+147000,u,D9BED9BF687B755367E38C0B06F7D3C992FA3D7F6B3D75C8E6A96731A8BE9EBAC38620B9B7472A262522052FE5670C535B5016EF9F4B7788
+148000,k,818CDA1F13F314A21557C9A43B06FAE40F8D3F9BD7889C23C69D4FD8B88723F2EBC7A295A9F4A506C5A3D3255ABC194C3B2C209E0647F3E8
+148000,u,CFD5027D2E9A5D1F4C6249C8520AE8AF464E036F07DD581D6F7786AE3C68700DBCDBF5402359FCBF0B6ECE665376ED96DF13BC558FECBBFE
+149000,k,B7629B89A948BB867D882CBB831F16A86B107A9DB4AA0476F5BF8DAC3A4F7F2383DABBD8041D82186AC26CD4DB69335CA1F130F85CEDD0CA
+149000,u,75BCCD8194EA2817B7C98BBAC35157B72219FDE466BEB0EA881DDD3E0BFEE7D41BC326364197A0A89E7E92FFDDF516AE671F5EBC344315CE
+150000,k,E4BC5308F539F1BC2B58D166C08A7F1E00053D835BC128B61DB116AF41A150A39E11DE1CD0C9C8EE9D3297457A32BE961292A579296C6460
+150000,u,159C7CF61F21AF154122402032F5638BA7CD31F31CB6D70223FBC830164B5A612C7CE4004A9D1B565071CF22D2DC5C7D21D8749598892F10
+151000,k,0804123A2696C61F424BB7DA30497536D27E96B7C7B07FD90FC4909FA4142AB739A4C294AEE8C8C22BBE608D9A784C172B40F5CAC554B20B
+151000,u,DB1E69A70A820C6FE1B359EBC8535AC559E2EBF29FD9228D3853EE5D5E2FCBF5765228DBBB3DDFE6CB256B72D2E9977AB63BA74FB7C92525
+152000,k,21CB58A894DD08668A705C84B7EACB7EECBB7D043C202ED79FDEA52C9F04F54E40D4C30082FEB04513DC8C648B0E0F74EAC87C7ABA645E2C
+152000,u,B89C5C0BA5A97528CB9F6F05860CD62BBD82A36B83082D8533001293CEBE607E2617974D099093115B09F77B4F25BC626D459E22B3AB3652
+153000,k,027A648F30A512C11D8277C4AE6512FF501638E46081717B4AA72D57E8B5ED4357FEFF8BAC78847BD079289E421A3B6CE26A43976236B8E3
+153000,u,2AF57FA09ECC04421544F35055C641775F74BC98BC6D3BC78093FECE102D3BF4253B9F46AA55A1DAF3CE907EA6F60EFDBF8FA3018D8C5548
+154000,k,2201FCC406C92F8EC962E4462EC07CAEC7FC2AE766388B20867105BE59F0C427864258D5D7D05D68E12B4A82CD6847975A830B70CC52807E
+154000,u,B67B8B591F861BE8B8EC3A3AB1D156B6140F8EF770576FBE36F9E1640B6BEFCE100ED3B65371D93A347F8D05811E4478C796185FE4809CF9
+155000,k,45E34F45687E2DF0F543F1D90A0AFAFFC8FC7CA01CB3ABAF39326999ADF5BFB667C52293E170CE251F35DD1AA7AB8AFFFE8117D9F0D18B5A
+155000,u,64C93BBD5EBC128705DB967DBBC4382A440F201F19A12CB04CE71242BB1288BBEA5E635C107A15B4146E2BA3D053F20BB2F26E03EC1A29F9
+156000,k,0CEFC2EA0FADE47591F02082D8F8FAC93AF67972C2C021A4F76A9175EBB03912AC861000652C1FC5254FDFEE8BFA60D8E83F103EFA12AFBB
+156000,u,B40E1A13FF08A0694CEDACD3A9D9DA3117277FCAE8AF8AD2FCAB182374682F3A88D62B9FC6750716266CAC3364C296E6F56ACD8229BDFE8B
+157000,k,2AF843335F61CFC455387D4FF64F535D30CC61365FC5FD652381483169A362B4FDD747AEEAFC9CDE81109D4007EEAD0E132884117A3890A0
+157000,u,7E83FCFC1521DFDF70679442A5FC415592E1FFACFB2B5EFCB62BD519FEC0CFF8203EC39582B8A6487EE1C5B40CAB92E471E827A8B438E981
+158000,k,81D51725C9C5F64D4AAE0F3FC341A943B1A82E0B5CA9E6C1E36D74F5215144805AEE43C4A2F1BBB1A4959EB8D9656470DFCC07BAC9DC84A0
+158000,u,28E74A6CC3FBD742429CCBF88148F96B61DE41C54362B666345F8A4A9592CE186539FB31F106757C4300617DCC77221F165B5190AB4E8796
+159000,k,0282D32DB3589E79A7386F3ECFE4F1C6DBE8DB50824BA729D467B9026516493E07069684B8B192AEE4608EE3B1B8703289E2B353ADE36709
+159000,u,EB6253CA896DB3A87AE0F966B543E132951600A4ECE4631B912F9E0003B39838B8AC5CCF6C37EC3C47F2568B4CB9230B030EB1FC97C81EA3
+160000,k,BD4FB6C1ACABD591C4B1CAE360CD356C0A5B9B8F59355C3C2EC4B1178A74C4933DB6EED1D74F5F3A689B9DCC864C2B018C95BDCB283A33E4
+160000,u,20E64E37BD3024C0EC8F7653E43E7AABDF7375CE40C9E1F9CE483CAA8C7269630E6CD0824285BB4D60BDA42DDEDFB3169D87424CEFE31205
+161000,k,9795A357BE6B20BFF89359C705CD23A2AE845D89B90BFD619FCD7AF4909500471242641D16149F25C64400C5DEF29939A26AA85E1C1513EA
+161000,u,426DD7FB376C4049E3A4099199A63C88CC2316EE0E5EA89EE19A1D6333FD3C296460AF699D4DC60AA7C274ED6A7997DE97C1C280273FE946
+162000,k,18E1362A5158B3C7D1CF70A48E6264F1B220D53790CDBC0A5AF2DBE1EBCEDE7A0DBC0DC6E49BC241CD21A1CD8912B52EC176A197B27B8F8A
+162000,u,0C9FA13A9FBE1DD8E1E28CF599ACC2705BD27CA63271E483F6ED11A087445042CC0651181E787D1E4EBCA232CA6998D7CB494E704675E37A
+163000,k,2E1955615C03C95FB07A7C70354B98CEAC41CD2951713168825DEF54E65C7A0A863D461E1ACDF85A974513FA1B849C8295CB0BE76A81AA6A
+163000,u,0B55122194A97E6AB3172AFDB713187E3388CFBB94CBB6C3B037AC53B3AE6EA7A184ABB1863762A42BC2FD5C406235445A40EF09F5E0E163
+164000,k,4E51DB2D8DBA1588E0D03E86948DAD8340AE07CE0ABFB8B115DA0D4F4B9ECF0E7BF6B4CF3F96AEB0FA4AAD2BBC92144F536F212F18687FCD
+164000,u,60B2C5BF03D511625C83A2F8E1FD0E8AA9F84CF743D935FC9F5A6312F49689A705C243C75DAFC992DF52EEAD1B79D392AF53007AB1D5344A
+165000,k,E7262A3AA3F608EBA6022C5572C2A87EF87FEAE12A856D69642EFDE88338C8A64AE8671A513AD73E4EAB8F3498FB06DAD362815E83A8D8F2
+165000,u,7B562C1C1F33346D59D9A65F611589327776CBF8CDF7CED5085187C5414385F4A20C20BCA75FEB0D992C0C02A0021849E2FBF87FDDBAB85B
+166000,k,A07C4343193D34DD4DFE1DFF7B516C52DD6F401A734863AD7297158E741733DE95E0EB65CE08CF6EBC36E10D03DAB5CBF04B6B0A4F1E731C
+166000,u,E3DF441621E297018CB6C12EB7CEE52C0BEAAD8A76EE2AC9666CC7D268C03BE1BDABB901DD9AC8FE06732904047BCAB5234826DB257FAE58
+167000,k,07807AB7C3D199488F62B6971F71EE4459BD4579437427B90615C77E501A556615C316749CEFBEE8BFE2AD3AC85B8C2806C40AFB551914E6
+167000,u,A55C569E162F755409727C0A72E6214969B5D3960D18D402D6E685BFAF0A41139D2772FB8498E16B68173296848B8E183A16E4571EEA47FA
+168000,k,B11502C956D82591B13F3B12BF4CB0696343484D8EB57717F2AB4839CA815B8A88C2750FBC9DE7064C9691F8144605F572E933BF0D3D7238
+168000,u,0F9B86A850EABD351BEDF66C6A65336DD2E6CF5BA532A17F0EA9F2DF5D06D26D95C051994827844AB71209A7B4D69824CCEA03A98B18EABB
+169000,k,4486AB3202FFC2F74B48525F5CFE81DA180CE2811E5A37E38C091D00C0366A3C0BF4AB8521E33C18EDC98D4F50B598E2C6323AE1332BADBE
+169000,u,0744BD9189D57EDF2502487D19A7925972A6CFEE7DDA40E8659E05861637D579CDC82046268A8FF2D6D0A6667C29A83A189D40B50DCAC7CB
+170000,k,90FC4764F27369D92574F437552910BB10B33050CD5853AC5DE29A271E0BC25271913FB09F7996AC82BD592FA180256FE9D137C17556B1E8
+170000,u,CBAFEA26159B80D8BBABA43CC876D3397B02E5F077A4A38402D162B6260C26A30948A4108E3DEDD2BFF19F6745911BDBAC925B9A604B5303
+171000,k,5AF98F8186C284078CCA2B8EBA9EDE3D95332B495032B5D0247C1FE1A827A9AA008E7A676FB45D6207C9EE166B7D886B3D3580B91491F3F2
+171000,u,59C9F0BD9DA8EBABDBD2C90461F9183FA6B2BEA4214A62FB8B9357665452BE73D1683BE62A2C7B376F0E321419ABEFB26DE9E8C0A6CF4AAE
+172000,k,285EE16D697BF0C536BDA18721884B92AE2DE92694AE3A65DEC0910D80BF90F840AC041F249F6FF5320A7DD54EB07B496B640082650001CA
+172000,u,A4D812973112F9B9E1B536EB278577FBA287AD592EE9AA877FA9B0490E61E32545F404C32A0D3E04C2C06371DA71F8557ED3397A159B402D
+173000,k,B6E4434191DCF28C9CD273844D74D33B56A5646AFFD10D7BE7ED62D76FD5FB0B36F357474CBFC739D336ED4EC8396DC8B482A3F169E05513
+173000,u,6F2F1D8C317FE97B8758457F2F99D3EF71E71AD7D5596E8C66B6BD136C78D99172B332D07887915EF23DE9C8654CA72A46F9F67906DE6DC7
+174000,k,54D725CB6AB17A177130D81F18BB858EBAC458506A3654676F00879379151D9F19473E1D75AE84CD2500D80440613AE528E56E45637DFAE1
+174000,u,A4B216F374892E15923C12A66967843722D3ECF5954E75E2E0D87A418918515B99CF53AFE7F9DC9126B7E720237D643EDB5CB4898171716F
+175000,k,AF3F0FE01EA5A00E68C56C101E059288C87AD8609C96A1DA056B851407C9410FF06096403001B07E90E4B77FC5101ACD82E56DA10E7947E3
+175000,u,A85EC574EC6FFE5C4F14BB1FEB5230F21700CDC2C4389A6FF47DC6D3E630C6CA796CBC532EB0B695A8F33C8C7F6F9C5890515BEE3B66C32C
+176000,k,13FED87D38C519E5B9C910E6A572477E43E3D92F480352C27BD83FC998113AB0D4155D9BC5810B60739D6F6448F72F841FFA3C9D34A88B55
+176000,u,1AAEE5C1A4A822DDC801DB55A3B7754A1B4C5046316A3F72E24A78893520368493D0F4E7A586291181CD3B27B1F7CB880725E98E3B8DC1E8
+177000,k,B7D7FEBF5BACC14925FB4887FA69400926A2965F215D214D295BE9A0C54842A499E5EF92745CEE9062F2506D5068D7BE689CF64E570F7F89
+177000,u,AC500E2A37EFBEBF147EB27B42700FDFBA294C41F66E89536B70879E43BF3BC38A2CBEB58C0B40CCED8EF3E177CC61A446E9C6F8B9635125
+178000,k,3878717639DA7800BFD823A8F1D3A27963BADEC708445B4E4B1A8423E191D81B5223956454FF422AB39D25120EE74649E0386476BA85D164
+178000,u,88D6D2C8F57AD064A5480DB2023802FDB33C6C103E437DE430A70D8C2C47023B1FC59A063F3592B4E4C98848B2E07B41B9D09A0C07CD86FA
+179000,k,76ECDD7A71073405E62B74F9B32ACCB965C42D9DDF6BA326F3F8E08541B8780BDC78D24C85BFE74943B24E4BCAC73945639461B31646EF8C
+179000,u,A5768E94BABD5CC9E96D1B5F5C33E8E1E7B0545C1F2FFFB9C737874FE78683AA1484AEA74AB66D0B21A53F60E7ACBCB615BBFB5D2EEFE505
+180000,k,F5934B5F81F47CADB1F5C53DCAEE5C581B4AC484BD86CA1487F47B6705239FD45BB8C8E23BA91D88FA4E0C10CDC0E429FB0CE3D08AAA4369
+180000,u,AF1948440EB004C78F5DEFB260B6C4DDBA6B5A25FF9313962C66A423943E01C817E32E26FB71AFCD2BEC7D472C2890FB2EF792A77FA9D944
+181000,k,AE5405897FF31648C4616FE6848C1E3C0760D39B80C1200D31750F81474AD1A95C0AE15C045187886C689B333CA20FD4B4A6F8766F6DD8E9
+181000,u,9AC426C79B3B33A14D0B793F7609E8363A145B01B44102B02D825A193976C425E464FB789FFB5D822A3CD7982654E5236150F81B56C44D5F
+182000,k,B158F73932EE7A379BB52F66D9E4949AAE7EB15D2D6BCA9F109B38575CB54998CB067C56DDA25C9D14C9DA863478E41CD23DF2F46A59EEBC
+182000,u,90FF7F846455F736DE8EF0225A64B3AD57E06832E16013ED70BD0D64FDF67A9B5359ED9F65C18123EB35B9C1B49D6BDE5EE01C9CA4611295
+183000,k,11579EE9EF3DB7F6F8D4A5C1EEFD46A0E867D82420DD02BA42D97094056BE31429132A3D1AD5A7E525522593C6E6FDFE6EACAF956D67210D
+183000,u,04ED6991863F6877C2642D6A812479920649C144A1C58845DCC6C2F37DBDFBB0303F3B50B18AF1FB068FDF05B39AAF1F6654EDBEDBD78A39
+184000,k,FB37504533CB2D666FCA558C2EA9D35B4B11222F5C87A40D06545ACF5A687735EA0A41A98608CEAB337071372511D5E59F43C8F0540D5B8B
+184000,u,33B22053D3C1CB6A3FDBF037A9A53CE66540776939CCDBEC75340FD8A3DEDB30BCFB2C80A6D21DE7541251C70B5AAFFFB1D7D88D6BEACB0D
+185000,k,2AEDB81BEDE2F281E384084AE9DDBABDF8C1E9F7B564C05AFD6131B19C11D054674DCA22D557CF3D73D4A573EEE687127C88C2FB6BE65B84
+185000,u,2F5E2ED7721CF895D9A6ED1200F07FF83AAB5420A99A925AA4BD6E85C39B14C5F4DC21A6535187BF73B50A2094F4CDB6F2DB697309F8F0D8
+186000,k,1DC44F21F2B46A54C17801815B75926C1B04842D9BCD42D4427DF54EE541C29624E51C3D901BD78BD9E425F38B74D46FFC681C1F523A0641
+186000,u,5D5E1F54203DAE423EB81D3A825E9168C4457BB9F0B23EA2EA2E86ACFC2031428423CF2553D863697E7528E3E2CA88D19EDC09A54452836D
+187000,k,323E5DB391D5EA28D4E737DA20C591466AACE3FBE8AD4BE8DB6901D67F0A08AD0B7F5291D328061EE2A510775378A5E05CD92232C0003BE3
+187000,u,83C05E37FB16942EB37B64DF05765E0DA38C1D7ADBB23BC474686DFB8A3B060C9E7229667F87222362E825D6956B660FA8BA6C92A4375213
+188000,k,E1019A0443B11452223AE7F0DDCAFAC3D44F07E6486DA99D80D8DF017334DB42DE4EF5F231A3D79A687292AFBDB5BF70840B04C087B4D2EB
+188000,u,62920FC7866787B6EF38A12D3D9065A233E0068ADCBB73DD537360F82F55179B88347C75DEF77002029E36C7D0B2E8A2468ACC84D1D70879
+189000,k,4232862192FB7281E07FA5AB2038E548FCE5E877B1E18EBC59569B5F63BABB79B1FC60FB4116D196FA635631ED3885D40DF94D2557C95B56
+189000,u,BC666A9AED8094D55F3234B34EEBDBEF304907D3BD29BA5F58A71D689D7FD4BC693874AD68213509D82653D5F39866F1ECB86DE9D156911A
+190000,k,0B320F0741730941741A27434A5134C88EA1C98724E249EA0A54246D08C26B78AD21A6C87B014250159395DA26C4E311B4E7E0C566E1CE4B
+190000,u,93F548CCEA2D44DCDB9F939154ED61679E24B71AF8899B94449AC724A4CB01B3CCEDCFBA4AAE79E16D062083CDF110BA8375F143CEC0B22E
+191000,k,0EB949154DF3A177DF3DB6FA495B7EF5805999FA5374D4B76C1C0EBD5937505297A131A3D60C9D61491CC9705A515C351923D22B6C16BF34
+191000,u,7D13B59451B3472D36D63824107A4EC2C917ECAAA4292429E45973E81FE808A71B8BD5D8D3A4572C712C4CC3C7FDEA51230A8905F95EFB0D
+192000,k,64E2480E371BBEE778426B03103B7CD8CCF9E92CA523FD44710AD918271BC7EDCC0B6CEE4BF2C23D8AD2FC3FD2A08E2B0003F3E81FAD791A
+192000,u,8A16D1FCE89BCA62F0451CE4410E1BDCB23197302761F62850C7E15ED2844168F9A24E70F89AA15D3444EAD715E9F2486722781E1D74A61D
+193000,k,25A3D2DFFE12DF8356296D86BBAEAD34D2EEA8293D5151CEF4E485F05E1E7F02CD2243E8AAECBBB3DDD20BE67A416266BC354C715007F16F
+193000,u,CF5CBDBB2081975E48349E8EB3DB67F048B846FFF481CF5FF274774D2850549F77B28F5CF9BCC69FE97831CD0A02103E949EFA858CDFBD39
+194000,k,1C3490B9CD04EE16865459465E6F2C35CE1C906316301080C3B96A90AD2FC5B1F1496348077C6FA56BA3ECFF50BBE1D73580D65F4F62430D
+194000,u,AF25C2E14DFF46DAB5D8C71B8DC0279A318ACAE2B2A05A46002493D74C4E64A01C0237A5BE6F65B7E13D4D709F0E636F2FB762B8D48FF8E7
+195000,k,F1C0C301E26DE6BAE0C7B953527FF4D3313E2D41E5FE91FF71E89B3E7EA2427A918B603C18B2DC89A13CA732BF7B87CFD2358B452AE0CF7E
+195000,u,BE4D059A6E7FCCA38C89ACE31C6F18C6270D78BCB1A8AADA92953BB99D7C02490B1C372B9381B94B560FDB198182B7BC5CE44AB202273331
+196000,k,2B04C2C29988E1DF3AEA1BD1C5709C4DD15B92CE74A372FE82C8F0F53656F9999D251709C8DFB615D78377B0CA825108284060AE42572D10
+196000,u,12474A421742679E814E887123442090A19E219B95C9431A9E16B85877A862FC877E9B2AC44A8C537306A8F78E4AFF39FFAED5C0324F5A57
+197000,k,F2C5F4D6C65D3E4BF1A5B4A9AD0210FF4E7C25A16DEFC0A4AD47548C2EAAB3A4DB167D8CD23D12EAAD5DE7C3BEBA804E37D3CD4457DE5482
+197000,u,1A35C9640560667B26F64EC1523331639115AA65791DA9B0CCC254CDE39905504FC3A422ED1A095F9A5B753E25E9B05FC9863D70C7D56FE2
+198000,k,368912E0C4363BEBD31DE28E8DFCC3F28335C42FEF709C0B4FE1EA04CB0B510D89D21099BD375CBFB939F1B9A5598F05546BDD0FAEFAC844
+198000,u,5D92BF8B74CB2FC6434169D72F261988D2B8E880C597D0941D0F6A93A49A6674BBAD9B915A2BA1881E535E00FA50C6BEB9526D4AE43CA8ED
+199000,k,3608F9D031B3CB887DF58B19DD5BE9C1683A9718F0A8486691DC4E432AD91E54BDF29A41D31FBE2321388A6D2B553F010357731D4805B7ED
+199000,u,BAD823816589ED01C4D7D7AD7E2D5CA5A5AE57D51475DC1EDBC6669742C05C50A58FC7A3E1EE16EFF4490E6B486262069963650A640B98E7
+200000,k,E86697A7D9C44EBEA5AF18C0D21C593BB4364257263C425B3351F7F68CFF3F5E847121610F92EF5D3A5773825A5E4E5B00EE7F7F107F7EE9
+200000,u,EAAE462D502E411810E74AF6AC0F228192F377C8CBFB83FE6BB42C3986B3A255253619F271B3C60B3462EF1EFE868CD95DBC5E66F28CC2B5
+201000,k,E1F3015283F249B5F443433205E854A5E073062FBF6B650BDF3069293E01BB3BEF328AABC1E68922C942B83CE546829DE5315FBAD998E367
+201000,u,5E06F23028EF3374A729EC7D71EFE121CFA7CA2C8B2100490F7674157615B4E4BC820DEEF86C7C60999A90A050913544A0429B9307F93263
+202000,k,709241235933B2B882A10AE66FF5BCDE39E12500B23F5E5738DC35D1385A2A0607B9C5C20E28E1002F4FC4F73052ED676B88FA453D5A12DC
+202000,u,9AEE86889B2E669F6B9507FC986671ADCC14EA17984FC2D98296823F86A38083AB17EB277B50A8AE2E43CABCEAEA282DA50F8A496D7323BC
+203000,k,986E0981DC70E4FCCCA524F0A4EDEF45DE4E56339A2A24ED3398E3D99A97F95FE48A5AA781DCBE6FB8E82276E3DA7C1C8252BBCCE6A5FFCE
+203000,u,8513888844D835EBE427C9974B7333E0F2D3645727951C868CCFD6E607E9B4E4F4F75561FA6FA4319AEFFB86F403F81A79155A963E5C2663
+204000,k,DBC4789DFD69F6FECA7462E1A68F8D60867A78C1A802AB1033DF122BACF1B1E43295C337B200AEBDF70802A3AB9859D0D5E84FB8C0284B90
+204000,u,BD63941A34856E409B2944A56117BC3FE307B4CF9B02A1CC3FF8A2A5885A89A86B9A8647ED0D05B4D5510DAD2F1E6F2D8D887F5A12AF0A52
+205000,k,8743B3D203A823C9B712A8843448D6B920214CB07E8DCBB65F851D4844672B2AEA3ACBF31CA669F0F3E1FE744BE2C61370DDB5507284F4B5
+205000,u,F91D18A8487FACDF2B5D5AC5CFB6E45500E86E7D8E53412987ACAE7E81BE24A4A1994778D6638F3711FCD34C997363E7B2E698C4F129CF56
+206000,k,1ACD7BE623630D608A68B278E7A0646F60DC9168CD30013FD9598DE341B14F21CD51B9A78695190096048073AB16A7D4D2E9D1B85E5261CD
+206000,u,D101F798194B92D9FEFCDE69E75D0F0BA7AE2262BB06405521A3626C94EBE943ACB3FBC27D73D2868D4704639518D7846D7D6E1389C68905
+207000,k,BD2E39D0285D84698F7B6896DB39570FB4510BD96611BEBC69B7D42A4A8A5277E917A1B13168C07C0103E3BAF8DF0FD84B069A0E6150F4E1
+207000,u,A6D8556CD04F6FB8E189D4CE2F2DD91E9CD2DA43C1A21E25EDB60757FD11A44074542F9C2583CC67E48E340BD62A21F3079BD19B4CCA6D47
+208000,k,C74510257E007FFF3791861AB0193D2C12BBAE0B8D982777A7BC950C6C0990282F73AC142A34B13A2B9245C623E27E3CC29423F9F5B1D147
+208000,u,DB826E1423F917F3FFB8F3B1A26829224DCBAFB44EA42FCA342922CC430EAD2EAE5AC9F1EF399A5127F8F902181E5C31E703EAD6073676F7
+209000,k,54AE305C884DD5033542A8B212D420786D95C653425ED6BC1BE3DB92D0655F3F8B790EBF8DD82E0233059E51E6B896346B825D13356897A4
+209000,u,1E7BC4138A6FD0D47F733538EFB90CA465A628A470D95F836BFEF9F494704FFBEF2265606D2FD5254002BBB2A109D4E6680FD7E75A2EF72F
+210000,k,D1C07858B0A9BECD03970E00521598480E2BB6ADF78D90504E474CAA0801855ABD1CE946F7B001F9CC4135E57BF47DB1AFF6833599C32209
+210000,u,2DDA272429E19FB8730BBA92D48BBAC8F363B2083EDF964949F5299B349E2293692D0522F76448E573FA564D9BB6AE29FB74E9C51FC87452
+211000,k,0EF32C7FBFAC0351F2EE1BC3B6005EF339B6EB1B07FE1B2BD41DC755B9FD9B8DB87BCCC47CB320898AF440B773FD3A367BF85C5F9AE06413
+211000,u,B802C441D216348F394852384CBEC4DB2C9AB01B3653BA30F3DA38F30C52DFFA72690A868A7A46F6164F486109053B7FAACC4E747ADD9BB8
+212000,k,AA899FBA31DD21790ABF49A81F857C28CAB37332C28AF09511267D6D40087632073B454186BAFF6B7DA2364374DE116E1CE06B0F46143F60
+212000,u,74F900D263D75014242805C6469B27A513FB2C14E4676E263FBDBC28CE997AFBCAF1FEB4792439406B3D362FC959BE9007745E427A8826B0
+213000,k,5E5432E8A98E10B4AB03A5A840ED704681CEFA7AB5C6D4ACCA1F730175968AE399BCBCE52A4247049E2B2E558899AE85D02694209D8BA327
+213000,u,42DFC4CF62C806B4ADD47030BBA00A2D966B542E0BA09B2F1C5E3963A9C1202B9BDC1AACE24D8B58A53BEA0EAC9C348CB0F318F4E25F7B02
+214000,k,F317BA915FBA5BA256CBFAECF34B5A8B2E19CF06102DD0EEA163A40A65F42257FA0A6F5B4008624A30C3D1BAA17D53B662FA60E01BA9C63B
+214000,u,63A028087EE7ED6FC6B0E8C0DED89F984F61A5D35455796A0D4046C1B362C3C51B82599CA3838F703986EC32801BA3E05BF22DDDABB8ADB9
+215000,k,3569443DA289DC96A4AC4908A7B2752629AA8A2A44BAB000149E418C168D0272F5B5ECDB1A287641AED3451A4D3735C5B5D14EF1BFD7E8C9
+215000,u,DB7A39B66986EDBC776D071329CD34D14B12734C3EEF3C5AA307EFFDAEAA957457EE9947E84F5082D59D477A4AEDB068A9D0E6845663E37F
+216000,k,FEEB8C5DFF744D1D1ACF2E4E5934E1B040C03C1D6CD33FAF9F0653FCD7EB3F67704950AA5DB587B26FC9C489BFA7B0705190532860C91F54
+216000,u,7E671FAFC4EC13AE74A647126DFFC8102A00F08EC51BA48010120F03F781D08F734DA9764875566DD7D4AF00802B2F06F715C1B8E9E24DBE
+217000,k,BA795F4955AC4F9A5CA555B153DE35CF8F4FE387AC9D7240420E6B7C98DDF7E60976D85EC2440C092C1F0971CF006FD1CD3E10697241FB13
+217000,u,46DD6F35922E4B01647DC9D04199963C7120FF3A506DED854F576661EE7266870C4DBBE374011E31ED9ACF978E3F2DFA1EDE5260D552D861
+218000,k,32799617DCA2EB06DE796C1DB1C08562AE12438C0E0E2A105756FC4BD0D487F6DE041231433EF20BFF694668A3D7FFC8E785C77A9270199F
+218000,u,55BE2C15F7232159C971718B74C1C15020B1BC18EF944DF909D32188D51CED16CBB8FF43DC94B1F51CE48F89C9352764BDB7A48207C3BE2C
+219000,k,A492557053025E52010EC1C9D317553A95E5FDA2B3FE4D9CDCAB6A5607C866E09FC284EEDD5AFC778F9CD4C7EA9C530E9C155DD3BE4FD556
+219000,u,353E518B340473BAA28A6588E39F0FA7A1857A4BBC0747E3E89FCBBF78D4263C477B18B751DDA7F0CB25D8066066C1B12BC6F4BB0C6B54C2
+220000,k,F31EA6D466D865A418A63E9C307DF347B498E218E8CD2AA03742EE6264E57A99892BC1667731CD690173C02623FA50E88E64ACC78DA00F2A
+220000,u,DEC680C676C882F1CBE732FCF70F72970A1BD363450E4D2D24C1DB034CDE9445F9CA4D8B77743BBF79F70AE629BC4BA0374756076E751744
+221000,k,A6E0D01D62A4E2A6CD93E9CFC93DE44B26382C779C475124F8BBD6DDE312918746B38380D35AC0F35DBBD360A3B8E5484A6AC9870DBCD5D5
+221000,u,79069D3208B661E40E6E52B36ECEB98A4B0B0514A0E20E2F3B8BA9AA8A926032215655C1B48FE85FF164B96C4BF7FF812F71761D07C7CC2A
+222000,k,0D6A112CCCD4AB8AC670166C292CC3E4DF1BBA7A586764C3ED1E1FC32A2ED7BEAB4ACCE31EBF1572358226FB97F93A3F84EE150AB8997E6D
+222000,u,0158502B6005994196BEF68151637CFC2465362DF355265C1510CE9E7356BA948D9FE2132D4BE70DC665841E1A9FCB50E40D400B5BAE25DC
+223000,k,8A85933FA53C58EA7B29BAABBF459BCF0EBF42A0B56702A4CF53D585F50C91342B30BF9C5DB61EFFDB08F706277615ABA2934E7D83B25197
+223000,u,1511D7DD3A2BEF2A5DFC2A92F050D0C9C036A0B4663B32972B2016301A0C938E95DF14A169620716A3A6019370DCC4BA2CFC7023FABC3029
+224000,k,B30B3BE5ABC6325BE1F427C01D604FA330317A43C4DED4D8051449AC728652CF93471F0E178FCC6FF3B0425689599F738F5B61FC0758B9D6
+224000,u,CBF95909ACDBCA49AE62C779E6DCAA144278B2BBFA97FB83823B6C71D0CB413D0C2EFE4207009A5F3017E65C7412DEF5FB064B86597AFF06
+225000,k,5879942BE18B24990ED31C24E4FE503BBB3B3DE4532A12185645C6741B92686EFF2C0BF21616D82B4423F404627CC4847AB6454AD3273CBF
+225000,u,857F3DE72C8685AFFE5AF6F1C0AB3FCD80635314C2E75FD0631F76CEE285089E57F74706EC1BBC737A1FF6842578916F49473B09A797486C
+226000,k,E3D15CC07552C6E7106992D8275F4F89508602F4435BFA868F9734B3A1EBD6DEAD94ACAFEF36A5DB0C009D859A2E8B05AE48946D00B3648E
+226000,u,C73BDC0CC247F995A2FE2E2982046F428CAC5E67ABD799E6DA8714B73DEA8E6BC734616F5405BB9CDE77E1F7D914D83B55786592096D8A21
+227000,k,A89BEF53340E552B15D6149937FCB7F12D804A3EC12111C60A5B92EC0D29D42E8023562E38D53A2924A8EB492C66C760D8742297091F8791
+227000,u,0B75BFC2BF2B18E58E06581E78E2B56888CA1478DC7E4D83DA86B9E0CA7FD803D492D80589366331B256A35C9ACF4643BCACDAF26601EB9A
+228000,k,1298DD37DE39E877284FBB2B3FA87EDA642ED3475B6ABFEE5201BCC7AEADEF546F427557096F1C2FAFFC417DCE74228A0DE54F468F3EFDF2
+228000,u,DB9CEADB3EA1F03CE76699898D531F7D42A336F1E0D841B0185E7F40A6D2078EB9CAD707D3FCBB8F1F74497917CF7C7743E64C6974F332DA
+229000,k,1A3B04E58BA7301EED450C2F7905A1D0B52DAC9B029411D7ED0BE461304033E3C9F693DE28AF75E964001AD791CD327A7FEDA50CBF139066
+229000,u,CA29E677DEEA377960E5CABB84ECADF4153D8DC1D86C7FC2A343B468308085BFF4FD6CE6BCE23E2D3C05F0A66FD7BC9FE525131A32F9401D
+230000,k,3EBAA617A6F20CB389F5DBDE06937BA4F92EDC1510CBF2EAD17477D1BBF7F26FCAFACA45199A7F25AFA5036A46CBDD796464F583811583F0
+230000,u,DE47D6EAE35E9BCDF012521209A48141F00212E22D5161D554B8938676571F1EEA492A647DE51A290333014A79EA9206402823342B7C2E0A
+231000,k,FB753E0F331B2A13134DA2C978CC3C315B74C5D66EEB5CC66B712134F08FA9736A0ED92E5B2217FC5CC79EF3D12ABA5FE734F059F684ED48
+231000,u,A72FEC08B3DF6FBAC16BF6BCFC48175E68B668AD8616950276C61DF5A23B58E3091F57BBF757A78DE61B2B1E7417BA5B0A62AD6FD36343CB
+232000,k,7709E7CEDD5E1C0A56192E8DB238E7C4FACE2266C876C130470330B912C096078B22E25A710585710CE468ACC63828D58434C109C0AAC884
+232000,u,165E84E3A37A599C52424053CCC25509950692965DA41E6B8600D566B6A1D123D84DC0CE074519672CEE229DDAE64C5BA00415D41FC0A9BD
+233000,k,8EEA8D299A64A371D7E895307675983A09800A896A0D1CA191EE255A82CADC0A88ACFC0EF87EE2C99187B19814CBD51C287844519D4EB46D
+233000,u,C5C61172074B25D9F7887D49B91E5398184D187F74525163935762FB6997ACCEA2A06C2FCE8C1F00809796085EFA5D37AF2B929C2AD33FD5
+234000,k,5FBB122F5F84970059042EE179AEFE09C38378292D44C92414635AEFD466440A4302F0AF8C92B96780967ED75E29A440D89164A37D060891
+234000,u,C33117AFBB60A7FE7D87DCD51B494A844D28652DC9C3F1EEC552364B75031DF0F5637A2895567F9ADAE962C081D49637795798C7BFA335C6
+235000,k,5C236A6C29E52B1DB8F533D61E73D0AAD0EBCBF794E9535441EC36D7D145EF9F524A18590AAA2647E4CFB9BBE78D9E359D489ABE4D4C3292
+235000,u,5CCF6B3BE68D269AA94A54F6E600ADB76C0FB25E1F0CCE3BCBDD1EC984A32EE8789BE0E9228A93777FAA92AA6D75E0BF61AD2066C2A074DD
+236000,k,5C66900315BA358454505E42BE04731DF56E94DF1B39A006E8709EB05B9A999B1B305A3EDED91193D5EA4C33E4F416A3FFA4BBCEF3C10E3A
+236000,u,D1DD376E81088D944C9F73051FA950813E5C0FA233217FE1E17783004D681448FAC74254A68D0C6AEBF2194ADB4211871D2328CD8CBA4B9E
+237000,k,F84B60269DF33F2483F11C33F82B0B81DF89AE2DB9E798ED75D4FC2B5556EFEC6EE5891EC2791591F05C2FB573405398A2A7C10663DFF4F6
+237000,u,31AB66EE9CBA1CA06C6DE44D22D661DD706831763405DBF71732CF35846294B9F55ED846DD5865EBD32F6B76F6CC766969DB4A577F2FE3C8
+238000,k,809F73AAF264DB731BAF78B5C05E4BBBB6A053FE869E96407F2E7087403CF1DCF3B2418D7EB35005E40B9594CD17D20DE49FFAE34B5C12CB
+238000,u,24A2FB5BEE895B2AEB712A174115839D997522CD2474DB8189B6D5D062AF3E70E06A20AE2634545CB340E3637B5057CD4CF275759A8CE67D
+239000,k,A0FC15A152C072EEEA43C09C23ABCD24963B1DDE2B6B6DE8D585BB1481BA17E9638090F50BFE082FC460667E5526C610B75CF805200E97B2
+239000,u,D9F585EFE8441FDC96C0F412A392629BA5653A3CF1FF00BC5FD5D0B0727E5725EFAD68BD0E37E0C6D5CFA0BBFE9106A6023175A53D6E14A7
+240000,k,F89C5C2084017399E531980DF3F33E4AEA7F52895E48DE89018E3F8416BB8BEF682D4597F1E9BC4B0D4C7ABBA4CFBA248EF9C57E09E0E826
+240000,u,BC03169043B65EBF3DF9A7D2F2CA98638C014EFC49C918904C424E3A0EB884F9B5A8F09AE4F7BD180A91070B2FB9F6B614103F873D6F44F8
+241000,k,5A4A11A395FA1E0BFCD22794BC449A3B47DC8F35A708AEB8CD0E91917E7EF297D4DB5F86125C763C8DA3DAA5459BEF735308337B8002ACEC
+241000,u,45AA7B2C938AAB6E0BD69B173E47EC1E9B0BD94C8F440B349A3F1A754E579336FA77C0E6D6E7236241DC513403307EBFC54B8E175C61DAE3
+242000,k,6D908C903FDA6E426A3401D0BCA24AD7CF0B4694C4C21CCF3DE25A8AF7C2D6AE3AF3FA43BFEB84CEB34F8770A883F41A110925D465ED5ADA
+242000,u,D775035463E4BB2EA83E41F428DD008002D4CF036CDDE9EE79DD764846FB9343DF1D4C246B7140DECFD61BF34AE0664D4ED30E5DE6511426
+243000,k,0911D8F061BFF0A1439BC83B97D7773CF893B256329455989B840D7574C4132E4C393AA11B351F0E61AFA07F1C3C79A2E0AEBA6A9878CF7B
+243000,u,C4253165A9884A65A69F134BA993FB6CBECFA66CA26ACA30D716547717183A189CE810F3970AFE0553E35D4836681941CFDA475539355945
+244000,k,8B4D854FF08C0513E548399ABD675E6214826DF3E687C70CDCEF3560A631B237CAC0A3454E8106BD03D5CDF3B7F349DD7F4F0A9BD04825B2
+244000,u,20E3BB8734C0D8CAFBE9BAC3A71A25D8FAC5CD4E5B7516C547764A7F0F856F0B3BE3E0060AD45E098A8EEE307885355E88A4767C0F1926B9
+245000,k,2D6EEDED9C81C4F23A54D20DD8D0AB4DCFB7A8BAB3AE68D79B7252976343628290AF784E7C6850CA713F5CEA2E8A782070BC207DCB51F580
+245000,u,5637DAA7454E99397DB2CA4778589C90C61DF0EA49904876E42739F4874198EA64A5DCC8CCEBC7226ACD4AFC3FDEA24A4F1E5D5528B85324
+246000,k,13697F437223331DD778A5ACAD04B6B61089A4E61EE269282A21B0235137282F3EC53B83EFA66DD682E5912C02342245FB051DB9EB370F36
+246000,u,E2EED30EC9011A0154B92FE08184EC1F934D979D0F03C581E30E79E9B9A82BAA240AECC9C46825B02CF547B2D91FA7CE39E3AE415564F3AB
+247000,k,67D9BC9F86A54CAC8EAB15315A2204073C2462C565FC82B41FF3E323B58B91B2C854C955139942EFDA7EACB6CB2EC081364554C161ADAC7E
+247000,u,50AFEC5BD33D807563E8B1D8F9485582BB04B95E7B7804060DA9C2A3CB8436995EF97D21E3873BA91B3DAABFEFA8013B0B44C9F21CAF99C1
+248000,k,8C2D4DEA940D58B86D0DDDE708B2A41E0566112055866CE9AC544B519E463F58587C39E9867FEB1C4B86908EDF255BB0FD1B6595FFDC81A6
+248000,u,7BD4A41A10AEF6B65DD887648EBF280928C43F12080F19189D530CD71A5E74B04E6F911329F8445FE1BF744632DE8261EAFE0F5FE67BE0E4
+249000,k,E3E4D599FCE9B98F57734062638C75D7013C180A0F605616F28E60FAF5F5B5B5D560BC7027A135C54B9731616FCD0DBE13666ADF36D2EF82
+249000,u,13914F98CAD2A45DD3314930BFF5809FF39719B653DBD61F7F447F7D593ABF13A774F78ACB1CED2489BEAD4555EF8AE03396C0C204958DCA
+250000,k,33616E7506819313F263F339E5113A04E4932F006B866E0FF4E4D85897434F69B918BFDE694F4CE0E1A6C46B6CFAE7CEBAF00D7326857983
+250000,u,9D9DA6A3F61EA0C5F71718D1ED740A50868161CE6291F64BBDB1E5ACCDD93F27A0D43AD83B6F01F7C62C874C603C49240CB1F1E9B15FB9A8
+251000,k,F61A6A89932835C6E724A250C2DDBFDA9B5D470CF88BC7F3080EE070C328890CD4DE78CB51078F73BBE654369229FFC990C46811E7EC9A36
+251000,u,22D4CF0F2EFAA5443EEEB327C97BDD185D7CD03480983D0F0C1C5390CBD2CAFC115FEC24881F6F399BC2DF07553EA76CAFD92EBE69672FA2
+252000,k,AFCD1DB051C0393D0F94633B3D857CFC6228A56AA3967769ADE9570AA7C99D5A02C760E5498C45FA80AA88FEFAEA415EEF0EB70C8F664E0E
+252000,u,8841ED37DCF7B482CD81AA5E74341D26B30C64ED46D22F98C188FE455B2AB7E9019FDA34930451BDAC3D3AF73FAD4BC6B7D885B6FCF0EFD9
+253000,k,034DFEF5070B757F25B70F5DBE89171E1B500492840FBB257D6DE9BBAA211B759391101F6E4F709F39D1096E4B8397A11B1EF7CBBD5B7A10
+253000,u,ED6D6C60C45455C1EEA8A2006569BF4ECD7DB8F4F0742908231E2F483679BCB14733A536B6DC1F8CD2A1C89B0CE68FF6057AA72DBEB36DA9
+254000,k,471844AB1CC00D7BCD886950BC656FE67D4D282468A5E39185A6DF343DFA8950B34BD55AF8DF5D85D01DADB07A6BA72194D0466327113387
+254000,u,49EC989C382E92CD2EBF07F60B491A14BEF841FE979C50EBF641FC1E97770EAFC7425DE7E597DBC190488E305BE5F2C24CF12CDEC50FA937
+255000,k,E741AA24B85C9E410AA7ACE9FA92E01A8ED9BEAAB33B1B267CD01BB1BE87566B0818390D3029C6D7B1B1803472A8C6BA04782750A65E27EE
+255000,u,AB5C942DA95B4D421569F7A10FB24A9956C349A83CADFAA7742D5F19323E4EBE0AE1526581DC2CF8D9A2051AB2C6B7364507286A9C8AF6BB
+256000,k,1054492DF81EBF5A7FDEC2966CA5D4F31D967913C8C825060CD4CDE23FA48B929D2BFA8803891E4C7F0616ADFF0AFCBD1DEE6436317E025B
+256000,u,D1C75464B7F22352B4665C0CCFD9873AD75D03BA42473E453F8B9C205E223909458E5CA96972FB2CE989E471A8AA4CE97E4205C7CDBE8660
+257000,k,564527A8A65AE568E77B1E29DB94781FE0FB0A8895315189DEE7F8E0F09E3E47CA16951D9642EBE0BF873F48E3E33DF8009ECF6139543132
+257000,u,174068818DAF44E45392433953871AED89B4D28806CE567BDC02E9018E5E372032EE40276FAFC219EF5475286944945794D0F079FE62A773
+258000,k,A9D6246DDF5C7F703220D1DE89E9A8E2A4184ADFD6215ABC972A3325AA1B4918D07380C50AE7E6667D356BA5EE651B798A96A3BD4623BBA1
+258000,u,4C5BF125022157B955696B4CFE56A95CA99C5C3A02D1645809A9F19A626925B919B9711C4F81FC27096A88E20D90AB9E716D17870C55E3ED
+259000,k,8A6F19C6F0108BF557A0FB23380848A617EA06C05B0C37FB3D6B8A5038D993156AF0F7176DEECC998BCEE48F91BBEA173CEFD38085D3A4E2
+259000,u,7F445EC5F069061D4C08E28F5BB9F341074C0ADE579958D111BACF1C35672B26C89724B93CE4F64925572942CAFCB95544EF8F61AE5F3905
+260000,k,0AE0209080AD2E8829747D0077F01A6EC2C6DFA7938688D91F58D28DB348E151E9EC2723B666BC146241162E53729CA8EAB3EC9DD72DD570
+260000,u,E8FD288979F70931339967913775E191A6B40743A86171D03CF21253723A408E714260FE2E6A9AEACE71D4A25FA78990E8BD8FD50FB280D5
+261000,k,58FFB1B1B1BC1CFD170822ABAEA7B56E96CDB5604BE35D15B3B1874804F4F841AFF813B76A5276D2E99253E697674271ADB521A9FFEB5CC9
+261000,u,837A947F96D0E4F9B189174D4D85910D3C3F3412D5057D32F1017893FE333CEB5526B821E882FFCD3A55C2C23AA3962682AFADBDA863E957
+262000,k,57B62BD7D1287DD18D15DBF8FDCD0FED41D32177ACD851AB6853637A93D018F30D83E5D9ECE9E7D6E2774049400922B3E7CEA31F002C01E0
+262000,u,AECB1AFAC0CB17F068FC1994332DD93F3E8DED16F85F061C49FD3135685C53F0F96F68D7FDD15D05E496FFC2999CD4D6F2F64935089B28DE
+263000,k,A81AE0989291CB7EE7EF1D3D5EC6D013E864CE7FA3D9B3D41FD4C820DF671AD57DBE00B3B2B6068EA6CD6EABDE15E6DCDE3F8108EC839A00
+263000,u,1DBE477510F2939789FA49331C29A844B6BCE83267D9D7AD06C29C5DF9D9DB432D5C52CA487567A242A24B223B80DBA062420AB56D3AF230
+264000,k,EFC3269D87C355A0BE9994F24F8CF83CD7AB3637C4F397DB98AF6B3FDA0367516FEFA297697AEF19FFA67C9CA5DCF9871540851B65FEAD7B
+264000,u,A9F32D6150B7C1B98FCF9FD0760309C56521A111905BBC4EBAA5F498B3B23614BD1B85911393015E46D5F7261F2A8D4BCAF90F70C04653B1
+265000,k,43CDA9BD9B7046851F337170E96E82B188F6C4EFDAE3B64C85574326B7F0991EA61C9A69052E8B84E84B4020B0CA9460811B98AAEC8C570C
+265000,u,D80415F8FF6F0DBA3C12316B3C599691632732B3DAB133D57037EEF52AF4C5D88D557DD028FA4EA5001B45287F4FE2FCFEA95CE8DBBC2164
+266000,k,B4074982BE400892AE98E113FA5446B26DE02FF51571601D807AAE69F3652F48B439DBC90805BC09BB4D51A678530FF6B27DD683A75AB80A
+266000,u,A87D3AB40A92B1C7AE439C9F7F2775E6C594E68AE98E4FD9280BBC9999FE52C264ED12551C959114A311666B5840D57059A2A11B056249F2
+267000,k,40689707A8022087CEEB6DB313000A1C943518BF43E49122F80533A261C8EA76F0839DDE4E5348F521F86D2859E2A5DCFA9B1741A92FE9B1
+267000,u,AB942CD89D9A9DB9E93526619FF5428CE9505E8EF65BE39917992F4E67ED10F2EFA3D3A577CD16D440FFAFF12F5BE07B167C31DD8A54EE81
+268000,k,2C8139CB6C3950B1B18F72B4A6FFC6869EA5A35B3E945B9CCFEDFFCFF0890A2AF894DAD79346F4EDABB1831AA7635175D712D1766873DEB2
+268000,u,56A19D1B54867331558CDB4E02EB20DF3E7B7A3D1D04E7B38239767BC76D03C0CCA806A74E1935DEF3F0381686E308ADFD96BDD7BC6AFBA7
+269000,k,173E83C0D3E5D4FACC7B4E86BF16669D8B081CD28E889D0597B45EC5B1BC1CB0673FBCD3AA394B9A0CF074F12753A565762722D817099657
+269000,u,2B20B4CB163480DB36F9B9CDBB9F287A86D4D5D55101FF98A53F05FF6E8D5D1306C5BA9CB7873B4F41411594EA1ED67897EDC576441E7660
+270000,k,F3727364D0A32BF395247E73B423C071D2E73F164DE59FCB71857000AFE2A859D81C5CB268B972C8A5AFEEFDE5579784E108BA4EA0DAE8B4
+270000,u,A411B5BBDF7836C4938995E87EF65DF0D9F8A83F1930EC65C46D09CA01751F709C8385D0E9F307F7C16E984BAA011CA89327A38AE4959A74
+271000,k,F1AEE52030FB66D2D94E8AC6304260E1B9D3B6CBF8C600F09B3324A339FFAA3748A95FFF7E8545D8E0E210EEDED139A2A9A7756A35A5933A
+271000,u,B8EFC773EDD9ED0F6C0321EF134F94D837D6749F490CCAA273057B8786960045BF89F1B918600B35E59A2E9597D40A5DAF750CC125506010
+272000,k,266F84E9F3CB6B3C8C88F09C91F9C0192D6D2A3BCE53FB9EC17314B9A20A5316C4BBCC0F69C8E804F946F013E76E87873152BD6F80E9BD6E
+272000,u,0973F5B68EB59F0263C0F685365AADB92396618D4BEC956779B2CCEA45C0A28136C9A4954E52F277D362ADE5D8694CA9DA15230967637C94
+273000,k,91093D1A343E1CC84E95E2FC7ACA04BEC4C5A2713004B896ED28F5B5C46CBCA3E58A495543E556A0EEADCF8E1A974832979128373FECD50A
+273000,u,9A1793A786FCB86BCDFC37A237580F6895ECADAD18D93F1C80F109E872A5FC2EF98129405D2186FB0228AFE4353C6DB2A6583D9A20524F43
+274000,k,2E5C3C94F226ACAF98BE40AF87FF70600EE8A5C135BCEFF076139D55D68A8F7A997FE1157D3346CBC286CE57A9827D22835438A55A969FA6
+274000,u,E2AFA6CBC037B00808AD914D551F1A9BCDE696BAA25BEB7B2000418ACD8E17D9A813AB18A01350AE0486AC43BF322C286339751531125385
+275000,k,7973E9926EC760F343AC02664825C4C75B95025FF27EA7DB775D179E9881E29A1461E92C76A86BC6BB9ED69EC9B37EC6C11C2AB0A4F337EC
+275000,u,91F964B9B345A56B2ED839BBEE61741D489754FCCA55B43490BFA198E02E83D1A621F500926A93829F007609ECB5C0D27A08020D35AECE0A
+276000,k,0B73BDC786DE3E69C234FC128C9E2487A9A4304CB39E6ED900D3D55D4C861993F7AB2C9F4794C87C1A8B7B760D9A4733FB768CEE54D25C98
+276000,u,EA6FB326FD58692D380CD8590CC81D99C33A79F00FC8FF8B7E02225299EE4E86AA87ABA98D755D7352A2199B01532BA3F0A923F081C860F3
+277000,k,90CD54604369B7994C13764D0E2088DDC99673BEBF82ACEAFD97768D903514206993908256A60687FEE87CD20552BC4B2ADB8DF6BB2AF3CB
+277000,u,AF2B2CC0C2F574F0FB492D940EB1C500664C16C6C123BE8960F0E2AE58163A9A1C057552D8C4A19DFD121CF7B2E535E36EFDC2B20A5E04CD
+278000,k,51C857DE264F550F14E6D19C53B57E4A2EA07D6ECD56DCE6F94DBD8AF3A99A1183DC16A2C8A3B8AA8AA3E3DC2213EB86AE9A17D7DBBE22A5
+278000,u,EBDE768C260D88F507BAF07527DD0C1DC1EC7743A7DE5BE98E9F241E5D55A3E37218C0DD52DCF9E1F8AF59DBCCA23B3F0A621E9E962B55E5
+279000,k,885AE0AF25FB938AF35FC81DB22D515271712058B0E704DA94FF950F63BF776B6131B4FE81ECFB2CF4EB2DE718DB97EA67860E05F40ACAC1
+279000,u,86C0EB310EA33CD208C770F6031A4D22B828489D35910F3B679136796515DA363DB3E958988BEE40134FE28A6BEAD3062064CB3E765DD5B5
+280000,k,9AC7CA869616FBC2D1255CEF954FC067E1E458FDB1D34304A529DCA1666AEA89DE410CB3043E5F83A91EEA4F1AB1C6AD7EF3FBAE32ECB052
+280000,u,0D5685E417BBE75DF9E6B0A634CBA274D932810E2D91F797C0EC00F43F2F247C4136F78D30182DE4021EE857B415F14505BEC23ADE4523D9
+281000,k,1BD5486042BD076531D8D244206E54ACBBD3CFB65BC316EFF82097DEE90B05D30D902300F4F66E87DC61FE5A069D7D66876687AF3FB1A8F5
+281000,u,CC32261429F6C1C033E23D90B4721AE99470F9AA5D73DF1A6E4D846B37E4941BC29B60654B016427C9C5E23043E50796E71D333BFAF916C6
+282000,k,A0239F0C7541F456003D91A38D449EADCD9D471D4D1110D83999B96C1DEA6DDDF3CCD34DEDB3A01001C278B0DFCFBE6E585CF3C71ACC7D77
+282000,u,FB0F5534D20CD71F827C14730824F45BE3FFDB0F17DBB7F113EFFE4622983B440CD38E9DE999D1CF964EB34F52C5D80C4DDE122ECA99C406
+283000,k,DE1BE11073F0542BD09EDAE876D85AF75C9E80235DFD1ECF42ED54720B8B4C3E2C5E56AAABF277E0CE2EC57E4A83EB4B496D65EA858EF22D
+283000,u,02CF62CB1D310283ED63E6C6C95D28B75ED7B1ABE896B1BC440001B9CDFAF7D1C08F6855E61A8CC7438EC650745D0F8DC0A61F7966E2A2FA
+284000,k,2373A5713F69B023F20303B8DB28B4FD6EE26B7F60A6EC1244D1D345D54A575F18A6AE89846962B714270A670ACD36CAA28A9FB76A658086
+284000,u,DD366CAAF2D8F47568AFC1ADC0FC19E1A448DF424255340B0A323696002153068362120D2A4498C17BD6CB012715AB7E7BF56E462B421955
+285000,k,DFA5636D71C154858E326BB379C8B5E82A69C90E692313D1E28DC8B6E210CD2E22A56EACAE89758409913A7A5DE3A9C529127BA5A941F619
+285000,u,796A2C908B3599D95AC420224FB86A95F3118774844493699174580857210A61508D166DEA910936F511CE8149048CED0B30AC2CBD87097B
+286000,k,296DFE8E92EC9B1E4CAD714DD3D4DBA9F8EDB5330029BF87191B9F49223EDDF924627306E24607D6AC6DA12515AAC8513529D60EA8BC4805
+286000,u,E610776CC18A72E3E27F66BD681E741E9034ECBF5FCAB0BC05658DB06C58F104CE265EF6D248C441D2E7C0EBCC21257747DA79A1053C1A45
+287000,k,D77AA99C3A43AE8A6B16F4347193FED06A70466BE6087AF91A827565B8211A667FBD1C858B8C91601F76347374A1B3D2D8A8AE56A04505D1
+287000,u,909A73011BC725136EA0089CAC6337DFF24200B5CA43B3F0FB652203209EEEC85636F633504E6B684E4899AD9780597B4A5F7F9097DB003E
+288000,k,C3380BBA6764BBFCEDC57AA99449F0BB5ED40AE1CC75125BEE8435EA70F8FEE4F691F990F1CC243CA95E9653D6EAB1FB04887BCD549A0314
+288000,u,B1BEBDD29B1087ACA5B29C6F64B57D5687E271DF0BE67C6F17520F6D7C242CD628CD8C0B429BFE5D170214334C225532E9D7BB4EBB15AB4A
+289000,k,9DA0D61DB95F3171F2D6B157F71C7EBF522C4D4ABBCAA4FF45F3D832D75298880B9CF9B242A1C710C9B71F555EC8ECF992F140A3559E3CF5
+289000,u,1393FBB4A5D4AEC947520155AC41257DFFCC332095346CA0EA7BE0A0AAA0EFF1D30BDC10F0205E8F3E0E9EDE308EE96A7DB89A9987D3F7F5
+290000,k,3D3BFBD92ECA2A326E293E374CE94B6E4EF8FF0E86FD947C55B0CD79D169B7597E19D64A15DFA73A7F2F0AF1D62B6A036C4FF9A6211CEFBE
+290000,u,0875AF52032DC3E147DC5ECB477CD6E9E85909D0E7E17E20D54B8D6F22741AF015EC581D3EA77BE6B4838FA921EF845979DB0ADE3D4648B6
+291000,k,180E676E4547BF468F292149E61229F286B097C30BBB0800838FC917A9A1B5B3824568EBB590257A84E0C132CC04436D5B099F819E282951
+291000,u,EBE31616840A1400067954BD7D14DD82DF08A7E6BBF4F24258DDFFBC102A29980F2BA199E361AD6609B859BE893ABAAF9039FD1DC230125D
+292000,k,69F034E1E7A52D53D41CAEBA836D951BF3B22365039D46E12FFC3E189189C9DFBEE1324F9E03C87435D7DD33EB0DE47CDD337FA34914AF1E
+292000,u,CBDC094A49C6FA635E40C6E8DDE9D04B50CB04A0525E2389C67F0A4B55D53F0F8EA963B833A9204C6892CB4BCA9BAC6A98DAF0B6F876A328
+293000,k,55490754516F52DF9AB25D772DEFA9DABFE74978F3863A78CE9E60FD1598BB730153B64AD9B08CA9662F50CFCCA25518A188C181F54516CB
+293000,u,969891FB77F424A5539386B74DA63C01B62C43A4FCEA1CD341C6DCC78C2D80F85D7C3808B9074AD3E6DA7CC9B13BD3F784F66E5EEABA88EB
+294000,k,CB20FE95F500B8E9BA779780E9C1ED0D6545969A95274E6A74FEC888A62558854C06EFE24C2650F0959984C5CE24EAB8A6C14F08A78AD678
+294000,u,C05EB1B40E149ED1E92146CE9627703A26016E320C70FEEA50105E4C91FFFA6D5948AD94F22D410CE257CE8CBF0CB0FFE8C00D305E255839
+295000,k,2EC5D359D04E085657FFD229584309547538F976E42CEF2449BEB8A0ECAC1019EAA6BAAA4708CEAE5129CB033CE6978BE0B8AE8FE28D441C
+295000,u,5575AFD5FDE13BD9DBA428FCEC6C9118D1BFDA50FBAAC74C4CACE57B92D037EA520023D0C9ADB9BBCDD2065F01D4BA5D3964DA7F6A7EFB9F
+296000,k,2485EE669961BB26F5175411E26A50E92249C8BD1F837B11FFF158362F7626701FE52C9F48F035AF639A295A0301E82595578A785D0B20D8
+296000,u,BEC8FEB126216BAB42004AA2F75B7AD2C562F3D4E01460FC3B79F2FCC27329C63894714ABC0E4EC816F6A7AE248AFA482EFEE3ED2C61C145
+297000,k,D4CAA09CD2EEFD025B11E2F21E3F93E8669D1E3C29C5D9DAAEE838BCDF7CEFA97D67FEFF09F5B6C72C699887107D42EEDD76F4B4694DA375
+297000,u,677F5DA67C72C6C8B79C6BEBE0B1FF754A21AC33BED10E64DA8E9039867500D472AC029830F947AA6BA30968132D044E6D201ECD38FB7236
+298000,k,6A4FBA937AB22270B4E375212671ECD7778FFDFB1FFC2D81AA3B98C4B0C171BDDB24E9BFA086605DB9CDF262304B3B39515F6BDE59543DFD
+298000,u,CA5E3638BD4F58D67A348CB469A0C2E4494C2BA01560A9203EE1E0E9F921A0E859BD69708B766BF163CD08AE888C56D2592F0C4741BDC7A5
+299000,k,E2E8D17210CEEFB60353E29A819ED00C2804F52FB2F3F8FCD446BFFA6E2467D04ADEE60762AA812392D9675F3A8563770880C1DEEB2C0013
+299000,u,2984FD017E8A59401EE8FAE10C8D0D395B42C83A2D3983ECC24AA0CD8CDDE40661CC448BBE8E83BD50641BEED539F9E1E183F434AE96B328
+300000,k,39AC758C14C41D112CECED83D16E24136DDE6A99F91C352A39CD8C192145F600A2C3B5D9864193C32D95AF3044A85847015B7A76727C61D2
+300000,u,F7B13D4B8492AB4215AD4F7F0806D83FF23DACCF482C482063F835020B3F1706790F10D521D0835BD71240B842AF03FF5505DCA48832B303
+301000,k,0D53F4430E069B1C98784B19D4D067106120082757FEA311C62F7B56563BE7F1510C0C0AD8E0C035495E3A86ADFEB567DE27897EE628DAEE
+301000,u,2E49100BB9C607000A86DE953707E2C567B1DE6FBBD348ABECBAF0CF3CC05B1943A7219AE102645C401DB2A99568334504B5445173C40CD4
+302000,k,92BFEA234CE96A990B6E4D7C4AD563AFC12B175BC3463B615B2BEBF8C9A7051591441B77239B715C2E5B7157DA0FB934D7200F5D79EF889C
+302000,u,19CF9CDEF6DECC61B59C8ECFF391E6F9FDFBDE7E3240DFE0E117A749E360EEFA71FE6CCCDEA38959BC8310703F8052D2D906DF3F039F979A
+303000,k,7168FC09B82F6F69EF687155F7195EEB55F1E0E42D72FF7F46D5CFEEE73038A7448A31FA8B41F6312B2E22C7696A4B2DD4B064CE72C43227
+303000,u,5791214DC52145F980CE3D5DC8DAA9B62E4DFC75FFD76814CF294A2398DE0A0022A63D1B66AF79027D69D88D8797C5948ECE56230E0C41E8
+304000,k,C2B12F5BDF73BAF1000173CCCA768F49AEF491EF8142A11730F39C46BEEF0CA1342F03CADE7D832DBC2C5CACBCBECFF089F52FFBCD42F018
+304000,u,3E2F73A0557ACC36B78B6DE256E1D4BB30B3E66B86BC2F9CDBF37A9BD932CBEC528114A61372D8208565691737ADA1786177E8D8994EDBE1
+305000,k,747A9FE73BF975DAE18D9BBAD24F647F1B8F99866BDFE5699341A5A5D1BA150924B1EE6A94DFD65DF139BEB3A59C0C8803A4D0BCC532E0DF
+305000,u,359CC5C74E1BF5D64154D7234A91000765A6848A8169B6DB8D534046AA4B7AA64D77DC5A488FEAA35D6AC0BE2064EF68E8B7D27AA502C09D
+306000,k,00850383721A12D275B3928E6ED1EBFF24AFC0B25D11FEF9F1EA2CF4D9AC03C5B435B9FA350E3B30B6AC6E484139B6CCAB54D67156A6CFA1
+306000,u,A26BDE24EA7AB5AF0997C7F17DF054FFF36E38941AACFE3B3D095BCFBA4C959773360FE7FEA302FC4026B4F103E8C325D06CA8518AEBE96E
+307000,k,5FEBC5C1700FEE09AF0FCEBEDE52C75A1307C71AECDFE22C295B29E252CF047AEB12E3DEA875925BFF20ED49DD5E9EBA2F71F752D4CC5553
+307000,u,107C51964BECEB7CA5BC63B56C4CBB1F48FAEA4C85C27961F7AA44EB77D3D876CAEF7AAC76EB7980BF2BE37AB1DEECABDC9DAEE7C6543F8E
+308000,k,074911B31CBA9A3990C7B8CD6CF06C550029DA34767C75C11904DDBDB68113D83E366AEF58653F5F0E8BB0BABF881DF024D639FE691E553B
+308000,u,DC83A4998AF1913F3CBF3D5F89D810301FD1D563AAA6A9845A321330BE36C98EC904A341505DCFC23F9A72BA3D03414A8608079BB150CA02
+309000,k,CB3AAEDE05F71FF701F81F470A0567C391EF860189C9FBC5546BC279AE8E90AEF820154E8E0264F75F0F5B57EB2DB5AB0F878E771684525D
+309000,u,C406901CA84767E0A9CA0D730C23E838AF903442263E77C4F838433039A869F80CA93A300F0A0CC1DD1DCE1423D1A96C0303FFB86A846CD6
+310000,k,A33D368DC15E12C323FF38DAAFA82D4EA63BE292CBFC14A167A9206A88C51D231629E32FB2DAF98CB93C5352ADC1E07B802F4D820698D758
+310000,u,A22E7D4C2CB9667A371E666773A360F87E99E2F8377FAD9519F2EC408CEB413BC66D9F7A2B5A6A063A57EE575BE2B0C1E78B601FDDA35141
+311000,k,6A53A491A0718FCB260D28FA4663F2564F393C77CE970E88244528DA5C50B8A450E69D1D54E884890556F8EAB3FC98D46B3DC790B420B159
+311000,u,089D5902698D5297EAC22361DA5C4A8829CEFD13CB96B670036E427F500611F5564962FF853E6D0741B5B6F500514B23DD621C54D6870028
+312000,k,9AD4F69333609E40542EF49C65F672578F1B04EF5594C204CCE68037B95BA1CD2F52680776CB417AD712CE4269662668DD4066485C3B13BD
+312000,u,54C47BBF3B43944B9EFDD33EDE0F9366C95B41F73C3DC3CDE76A0437DE70946B7C323173D93F373E439ECE78EF7D22007FC4D7D2F181A4C1
+313000,k,384B40636F152EA8164106D510CA18B6652A312C6C0F09061C3C3385DED9B438B7DB099CA78C66FE9BF15AF2D013F0E598B58FE56623DE28
+313000,u,804925B372B3387E14F249C1904758D5899A951EEFCA5020085B32EEFB9A73F2C959018F05E9BD6AC86B351D0DF6B29752678A5D7FFEC807
+314000,k,054FFB2341B86DDEE4713634A46CBC8BFC193AD07BCA69A347C2A4EBED3E96060D87CF9C3F552FF26BA2207A07D0F8BE662D933048CB5861
+314000,u,E94058356E2E31AB82381734EC59EE1A73F07E7C932D42A2DB2D3A191B65AFEA643077CF4D0B0D5579E0FA82B53C49F1C5BD2B1FA31E1904
+315000,k,F8876B2AA10F66B820FC7E70C3D1643E86C3C2F9FCBD69D925CA9AB2955AE4FF9D6FCD75C97068EDA7910BDF166B940234B5394C4FD8E0D1
+315000,u,D684988B8B6C7DD88D7AEEE440143F9E509E14C67C3CA5F127552DF830E47917596875475E595A56DE7ED04681F3BB10BEE49F91DFFA3C9E
+316000,k,41D2DE99302A641740707DE7303C6EE1DCA1B6074446B499A2B4B4CB094BCF31825B26BF45E32057B064FC2FC4491A3167BB04CCE4D043C0
+316000,u,48BCF292BF09580A206BB19143757DA77FFC7953357D7EC0613D0CB09135450BBEFD36A1F781C51A60850DBF101D5CB8D5344FCD510580E5
+317000,k,DD5B87BBFBD3072F47B8E711EBBAA5EB7BE9ACE5529F9904A201A7B96BE5E396D0D8CBCCBB84B7EC9373C48D948B50CB6FF39C51501D56CD
+317000,u,8BB922FC1171E88617A365418C03B6B0D59A48F87D2115D85D3AA96E9F07EBC4B7ABCFBD1D3F569FEE6314B6B85C2B6423BCF2AD394AF1A2
+318000,k,76CEB1C7798236DE65ACBEB114801142F1B1FE3D71C2AFA33C7D216D878FEAA515E911BA2D81877437E56E6A9155CB72ACD7DD05202EAE56
+318000,u,FECE0CF0E7BF671B5FA441140159C3E9D9965619829B62B5C57AA6AF494F8AB5EE55CE7876AD544B8F7089191E269A4FC5A084CF092ABC58
+319000,k,D99C4E08A8BB75F40705947DA69A668F7477C4C4B714349C58ED34D6252B9E819E2F1DE627D43AC2BB8D802E7D224ADB5D32F6231830A11E
+319000,u,E0BC92A21161A49B1135459B274E1D5E0F776CA28BD467B47851A002179812DD2D4C7DED92F1B996A14A992E554C1EA46BDABDEC3FD7A51E
+320000,k,EDCA1DAD776BD23F4B95EC464AF499B3899D6DD0E6DB312CB42C4D482FBC915C632C6DA97F8D069DB770F1B342329850108E9D03550A69A0
+320000,u,2C782215C445169E20B415A7E5FA1F49F67ABB609895EBB4FFF716399BD5D513762BFD660FFCF30A9DA0119A665CCC0601B3F1543F525CAB
+321000,k,A44C36895F621B66748DCFD3F9854C54C1F0FC6106024D3DD1C8DBDB6E5BAE86A822EDB88BBD8A7C03760489EDED400B1F78462F646E1859
+321000,u,A5625ADB2C593B8827EB3FBDBD27EFD9C31184D7570533B82BE09B7E0D37247C6BBFE1EA22B0FE090C3774DA59A5E9CD7C385FFAD57873F9
+322000,k,1ECB1DC633B2C5298C2579C36715158344FCAC04F3ECF41F6F7A2AA095440328FBF775F0F66758FFD1380DA16406C377E1F02A040CECF927
+322000,u,1448234596BFAF00B52FCBC73D1B8286B9B5114740DB8E47BC8B90F4D4B6A3DF3EE9BB4EA207306D6A20CDF339875761FDE4769066A61F99
+323000,k,87545989893BA9DEF3219DFBF4A96F45F83760C7D30F136D41E7D690E7F30430A7673C535682B54CB3F1042A5A97FC91DA526B65FC70EB3A
+323000,u,39211752A7498AF2D789E0B3709189EDCB08D027FC39E43D43C2F0AC69D3A51ADD299D685BCF36E24E64CA5A72A66CB42E86C59879BCF00B
+324000,k,DF8BAA5777D789AFE180E0D6A6B5887AACE4FF8230A82D432368C202836D2B8A9E4FF41607ED05B47F9199A54D826693C82B3EE51F8D3C5C
+324000,u,A20471B6FCF1C9620C617089E1F3AA5A5AA99F3A511B2884A6AAE65BF2EB9FDEB1AC85043D6F8D4C0EBBFC16AB7399FB79A1A75D45F9E942
+325000,k,3DA014CC164DE686061FBE082136760049E48FFC7BF96CE15B785E69F9C28E0076970ED21B270C9DF34E02EC12752CFCAFB3A0F803B13C3B
+325000,u,776794B10AA87F88AEE32C168FDFFFC273A065C10BCD504F025105C88F8022092E18983FE38E57F0ED4E2F5E5BF2DB210B089D61EBDDFC35
+326000,k,06D9D1081A21806142D871203C9AA9D30DCD1DD2EC1C7BDC339ACD017B64F408D36252E2F80FA7B786995F9EA813A9761B71797D48C0032D
+326000,u,1F6C59EBCC2BA02BBFE799355F83AAC90625FF886EED2DB9EA89EB83224677738071DE0934EE6D80E49860F6145496B653F4311E01E19C17
+327000,k,CBADF96C5B4C1094F01157664ED6711E60989FEDCB29F5DA36D1E9B40654D8AC033D6C3A17FC970F289CFA82D63C0FD2A6265F5B6D4D6053
+327000,u,ABCD4F7A658BB548C32EDA5B4D4969DC6E3283C4C38604BE6A86A914742F08576D606857E41A78D1A4E4093E32A403B17943EEE8B7C91B1D
+328000,k,E14CBE9B3DF7A33B537C0AC0D2DE7CB1301E955B9CA5930829496A703B878297B89AB3F495BA67C7C590EA270249C765C5CBD2F8955201D8
+328000,u,F4E2393699778A551A5F1B701C20E62E13AA2513B9BE7F72C3C798CE42E03FB61AE8026457D5497AA7662E8EBCEBB44DD6C0B7762F00657B
+329000,k,0C9E2089E640022CBE6FD3AEB2DC3F9783BAEE142093A18427223CF7BC2A86CD32A711952FABBA0D90530D5A5F949811002300092DAD0A18
+329000,u,5E159F616F57CEA24A9536CE4F7FB47C00A369C0060796E6CFB3E827EB671B5F420EE31C966F3CB9935F9E84DAED0CBD0A3A1372B65A97D1
+330000,k,68776718CF844DFB05A349C87EF7E0F55C350CFDE730139000B5BCAE570DCE1B355807F32C618DB394727467FC43CB9627BE6BAE0672F5DE
+330000,u,AD1D02D898A5F3AD7E8B7353D8BA9C7DB478C6A86129CE9B606067C205EA5ADC7061A85DCED0681169797172428AD18C9CE18886741B73DD
+331000,k,EC947E20BA25C8DEED0076491357286D2AC4DD5C1510F965C4E217CE348D4ADC270FCED7362D37D39D20784BB777939C60AB546909416751
+331000,u,D9F1CF15A9AE861E380A7014EB873343662A7CCD96183E0BC7DD2CFF24595108C09B58492C056CDE289298963AF2C5628C2C26CBAC7D5D88
+332000,k,40880A9731E22D44DF092DAC839C2266A80CE48C89EB53FFABA0AAC61FE6FF3ACC2558A40529CFFF4AE93569626B71EB1506949106E16519
+332000,u,3B8A72F9666F8C3C71CCF273EB07D5583E65CBB3AAFF348FC0912D467B44F3AB068157E4D50240CD5292203C4FCAF87B752BE7BB3A330D26
+333000,k,AC181E29F0BBF69C4BEC1C0EC606A437939E33B8EB489DA93EED67A8285686412000C55F6F78D9E5185B519754ABC6B0C1E0BFD47BE8D53C
+333000,u,2540842C62CFF44684AFE1408341E073FF75885906FE779D075D1CD707BBD9D2F734852BEB72F17FBC9F6E5CE83BFD91CABE6C88D4CCB4FF
+334000,k,92DB1008B56F81D2676A50192CB984AD6FF007104449F977D83A02F0B0714ED8D975394860B947998D6CDAD93762ACD811D0E4E1B4937FDE
+334000,u,F28F2EDB6A4C759E7B73CBACF5EB86D4A44DFD3DAC1FB38C6E8F7F139B4C6BE8354274609F38E55EF441C9C2D5BE9EC30D647351B5F09B40
+335000,k,C6FE939FFD7DC387543C6A9A910B156BBCD3EB3D288EE1F6B0B4A3ACD372B8D0B8BE3BE4E2550A202E94DBB23075B0C3AB6CDAAC2648B1B4
+335000,u,B46D22A5BDF561C8ABE080FF58201BAB373CF6B5F044605C3FC627A9A48BB60AFF5A6A871F8546002CA7E002F1B3D16CFB6B97980CAE1F9B
+336000,k,34B04C57DDCD6F5FD09B20D7648E2AA70C459CFB8EF06AD7CD797FF22E048B40F0B7FFD28994CB69CAE04BF92E0D0BDEC3AB48FCB75785E1
+336000,u,771A840F6D976FCECBF1713404851EEB71F40E14A996192804C92772A64EA88F7031E6D486A3E921BA17D0CF8BECAA6F09B271EBE4900324
+337000,k,896A90484A9C89697CF4B881402E4DC3D3F385A20F51BD55FF45DCF3AC41328C9888D8D21573D4C86AA9B334F380481519C1DF19D5E8B3D5
+337000,u,80D2C4CC57F088379CF08D0F1B373BD68FD7527B9E5F8948F49AB938FE83F65470EE118EE8883FC147D6E141E79D2917A593A055948889DB
+338000,k,995841D2EE2F7AE33286C558C37944E01EBAAD19EDAD5459DD4639CBACB0186D78D1AC77E409625A14D092927589B9B01720199AB0D7E0AB
+338000,u,49F8EC164BB6046446F0EAC0F9C626B2119D6AAA6EDEFBE9E68A702B8703555D206C33925C1BA97A13AF63AAB258567080ED784AD955182A
+339000,k,854FC8DFD1CD1A7003A325B73353AF864BA567116C6D97E649F9568F9D1B559C893740AFA18328F0EAA19332796EDB335ABA8F5053E0F24F
+339000,u,8C0F9359D1799593C37885307FF52825D087726CCF4A8FA777B8EF79F617357C0C78440F4553CF256A193647DBF6A427814337E4B3B1FBD0
+340000,k,1ED3D06DEF22F4473DBDF15B6D937D5E63AA15F4572C081461182391BF274A4DD45CF2C36B5DB7C4556130DDDA34BD6043DD9F3066A73E12
+340000,u,4FB9A7DDE444FCD01259F5250E3876802D5A0D9BB0A4A2559434065DC6ACC44FC440764C9E3254EBB39A94A71E630EFBD655E6F2A91AD4DD
+341000,k,963FF78E32AAC504353EBC64454D05ADE9D91D44AD9DE768AF06764A965BAF63CF9D7251733C8223DBC96E6A6B1E6D6131069CB9438428E0
+341000,u,FEEE6F59456BA33AD8388D024AC29524F39B5B14A7EB58B7EBE09B1ED9A4151A3FC3B8172E6B9288752745ABB91D4020709CF6364F5BA104
+342000,k,82F85E6918D760FEA796C95F5EF15E1E679185F286953B680BFE3F70DD076E80C397B03C7D3E6665530949C992626F4BF38BDDD999EB9550
+342000,u,1244F5EDA9D41B93C493BE796B4F5A8EAE6C5052167D30FD549916C1C17DC3368B61DC365D59A768C6DFFAD4E22E28C1FE67E0E6DC5F3964
+343000,k,18D5DD999DFF0304FA1CF760A7CFC8AEEE73184CE82F277C7AA9CFC9A9FFCDB4591FFB4CAAF554B9232B1F2A2112A1334F28745E3D8AE721
+343000,u,7CF8FCF40BC8E89BCF2A2ABF84C4A07D9E2B60DEA98FC4EE3A87B36AAA13E6CEBFFCFC75BCAAB537BB87FAC167B57D166BE7E4621EB119F8
+344000,k,B24C1C82373C207308D163BFF5FE800ACB67565D4285567F31156B2F5BEE23C63C76282B6C57E5976BDBC2C722A26AEF4BB979011B11998B
+344000,u,B26F4AEB085A72C93C6319F0DD2AA9AFCB4AE3ACFFCF0E761835D1F380CB9767C1D1E6AEEE3968B42173B503861110272CEB8DE9866222FA
+345000,k,6745379C954BEB7D414B4F17B34CD644091B006CF45870DEB03EE893F71701BEA81A09B68E0B779C515DCA1AC53DF271E4023945BFF1B4CC
+345000,u,E970B9ADA641FC7273ECF4941ADB17E3983B51FBB1B399BDA5671D1EA978D3A9E30E3D995B79236ECD3279CF5B0A45A427A0E4826E7DEC6E
+346000,k,0C31CB4AF233A0081284B0C3EBEEA504E8C1E8D62B05154F112472B4271F824B762EB7347CFEEB20FD79630A89CF1942C336A00F8DE0E707
+346000,u,8B30003870ECB00CFB8508992C7BD85EA4450A4750F31E2C6F525BBF6B59C4449551F9BE02AB50F99315ABFADC57BD401B9A7FCB3DC7A013
+347000,k,09266A9577C879BA7C6BE761856E32B609058FCE2ECFE4F348A8D5BB0D5A36E353BC0B84860B043A4AB2B1285FBDE524678FDA2253F69276
+347000,u,68C36881DE37E0C11B5AC2168EEB270DAD251EA627D95EADDDB151E877518F69C44C4079E7DE0F8CDC07C0492FACAEBB8CA2C17120F14992
+348000,k,6498488FFC2DF9790AD9BDC622297593700EAF3E4CDAEC5049C4067EEA1647A61BAEAA92DAC251FF04E7BF46D297EA5C99C235246027051C
+348000,u,061F0549F48A3491715FE29DA3CD62CFACB01C2A2393CF71F0BA4AEF85027E0688B06D977A971DF50658E3A50F6A753E5434B06982AA1134
+349000,k,C4FF7CD83F15FEBC6E6B2FC8675B33ADA6BC81F1D0EB3DF3EBF8CC393A4CF872FD3440E7A0B18AE8C0BA46BB65EE31045CF7B02AA0A5D1DB
+349000,u,BB25CED40889CC0829B924245E11F6BC27E5830B85462CD1C96B4C771D38B9EA88C7E8A42F90EDB4E107D31EE8B66D4640961CFACC23C13C
+350000,k,07EEFFE1109B768D716DB2D92528F58979DD7E0B898013F9CF727CD8AB0A42A4886932CF6E81859CC07FDDF29537DFAC392CDCE4523C5586
+350000,u,0FA1E1AC0941518CD411B250A30A50C0991C3531E7FD03F65774686C8E9D9C31EE4C1AA73D2267032F520D7E7AA00EE23779E3A616EB1368
+351000,k,36F50F3D666EC75FC82DE07B10529AC243A0470CE02424259FCD8B8FC8D81600784719B2C94843CCEFA11E455AEE274838E747A0F11FAB7C
+351000,u,5B08E14124247F39E9F2EE3DFF7470FE1CDEE57C6CD7EE569F3966312BC755D2A91050042C122489743BCF39D9C5E1C9EA492FEB6456ECB0
+352000,k,B69C2710D459317D55AA5AE93F344D8FF404E4AAD74E25B57F75502EB539848582170BDDBEE16BFA03D40E4513953463C4336053EE2AFB9D
+352000,u,1E0488E22E3098103E457EC28C9AD9C13AC9A2F21C4E3A5ED59F537E1B256DD882BABE1896D979F9D48CA0AC2B02A07267F2A4660E97C941
+353000,k,0AD06F6DB2711290EB217F25D2583AC4EB849CD514D90D52D8A3CCE8B26295A34AA234869A12452B62397C60B931878755C8C17B6EF87248
+353000,u,7636BBE48F4C17763D7A7AFCBDA58E3E40B3FAF1D5F498F70F48C129C6DF3308BD7AFC8BFDE1E36C0DA1190B5A8C5E081FB63CCDE8646D56
+354000,k,3C45DFAAE84FD60E0BF4B467A1C022E85CAC941934F0C032F8F2645ADB0A467C38411A3C35FDF84735FB58BD3D91BC02DBC0725CED6138F8
+354000,u,7F8CE58A832074ECEF090DB31FC8C4EA0E2479E023418A97C9B55E7AB734E061766F3FAA5EA42427EE03B96D80D5181665621672BBE704F4
+355000,k,2F1BF7970EB07A20E9A41E10EC116D01BCE8CFC0A162E2C074493353F64F685A5EF6379864B455635B936654D78F61685B077BB454C37C9E
+355000,u,B7D727EB02A9AF02FC5DD9C868D96398D5488F7DE8C2C9C63777319D72E5E88B8BFB8E4A1C5C63BA9BCD1EC2959403A927E0B5AF30F9A82C
+356000,k,83352FE37F1E88490857E705BEE5FB10B7189B73894613D140672B07B6199005A0BA210DC45CEB1D36BDD674EC03E7CC8B30A4F397345F84
+356000,u,466809F8247885CFA7910506C58B1033B60AA86B0F1F44851A62B0F6CD107EF8AEBFDCBC5B991A0A7F79E6D46F6266B8C5763D30C09C8491
+357000,k,D07C21AA4FAAA38BAD357AD8AC4CC5A2C1C69F6B60F82ED4D93583665347EF4A725B7BD8AC43067F36FA017AEB63CACB75247F30376E64E2
+357000,u,ED1103A2F95AD245401C29085F1034C6557617758B0E6B65AFA113699176322DE6EE6C73E4BE991A9AEFD23BD75D11CB12FFD3C98D91BB0D
+358000,k,ED0E04A7CD83966093F5FA1EB98BF3512F38E336B7D002551187B4B92F92EE0F066CDF3E6B25A6748C943EEA51BD114306D4040818542271
+358000,u,A799C27D93ABE811A0AD4B1050983E2AF5320613E02A65C5FBCD5D9BDB0BE09D5EA9BAEF1DF19C0225C58188B44ADE04E11B5B192DEFAE4E
+359000,k,176932FE8F083D6B1A7DDC5B2FC9CA1E7F4155CC0E9B630A3BEA6C0169B8FC99979AC55FFF48665732CC3E222347502916029165F5679252
+359000,u,05666DAF2A57A2AE20ABDC50719BBFA6003336A268E19F8D206AEA57731290E8AB356CEFA26D57A705943F16278B1DE28E77DE46DAA60DEF
+360000,k,189338BBD5AA1A37FD17EAE57B27C019B9CE50AE1C6071E665866158843C77C2855C3D87174FDDC508E893176042763CF1AAEC5C41E2F892
+360000,u,001F0BF83E008A20F61463C4F02EC7DDF9C3F41050795B5C66D6FC742E8408509CE34A2710BCDCE5FCD2B87BAF19B488410C1BEE422E5D76
+361000,k,0BD0199C566EDA6676240417BD3DF5D5DD504125A0DF5F1F5FA63BA508385749E9C8E9209EAD4D0F958A4135F625185563165BB958F45CF4
+361000,u,8EA8B4BE0A2852C0DBD6F81F92ACEC8E8A22FBFB05F57E54E9E1C7C68F837C13D919D67200D6251015D8F35771ECE6C58A2716C7B741DA59
+362000,k,E476ACFFC2F5F8C327F8E95F915E77EEA1E396E418C26AF47C8617E2A156253C7C15702EE1B4F9DD92DAFB8B1255D6D9C9756F449AB78CA7
+362000,u,4F0CCBFD49436363561E8C2755D50937052BCEEFEE420CE59C25BDF5DD64C89D060DC2A38FE03AC265680D4C98695C594F420274A83BDB5C
+363000,k,49D171AFDA0F57288E160E19232B348C49BA72F4CEF09A2AF4FD208EE69D2E8E149C050AD36DC1C28C9619B5BEFAA0260B3B0535E323FB35
+363000,u,8B230BA52BDDA46E5A48DC878037AE04907CCDF00D3881AB45661C491BD2957E21AD98E37AA75AF006EF93C4A7B9155330EE3BAACB6E30A9
+364000,k,5B5AD421567D2F250B942425E69A928624CAD35E302E943B9E471BA804BB824101FA451072851658E62B5F2F7ABF1CBE487C8636BEA9A0E3
+364000,u,A5C0253F6E7FA76235C005357AC9038B6016C17788E730024E4AAD28BE8E3C60B4D4E3E156EBAB0E73B40A53A2DE29388D9E9F13509229F9
+365000,k,A889EC192393A30EAE4EF11B0CFFBEC683B53C0EE327A85955D9A70D86A779CB074479DE44175424C3770F5DA79D75B9A3CAD9BDCE18CB1B
+365000,u,0C098D54DE6BB07A12827B34D568AF69EEA03B59FC80CB93CC7981C98471D3441D6954B3E140DA3EA2654444505292BA65766AFE7D10AF50
+366000,k,511A52DCBF2CDFE610406A038E580AE3AB230D6B3BAF6CB546363A87FA5EC6F0E4B61DA0FC345B69CD3893D75C0D50B59A7F28B4B43E67D9
+366000,u,E7628D044E227FDE5FB96D3A94F120FC58B32623C793483DE12280819FD2A2128672C84345A34F8A60A5172673ABCFBE4C4EB18BF9AC59B8
+367000,k,7377DBDED547C36FCBED03FDC9F6A4067D2CC83673EC1446C446D39F5C41C8C91B7A473DE44117D6EF00735619C9B2B36C7862223D44DD9F
+367000,u,963AE38869DFD6FF24B3887A53950F0151BC6EE3758F816D590AF6FF699F8D49E99353DB4102317D5B5EEE21AAEE8687DDF594AF4124EFB2
+368000,k,75189259F407F4201EF561B0DD4E7EE764051369B60074015FF9DDCACAEEE5DF16F8F94D29888E6256657A332D05AEEB5A14AD667474370A
+368000,u,60F31B7EB8A042487EEB25DD4C03DDD1FDB3282A847E8F6217E81EFE9BC0EC368BA2D9C2C1429F0D6421468F751A0DB58574D1E9575236F2
+369000,k,52F700BF24E6A7B45DD7DCB7F32BAD64750E2A2429D1B67273DD9C75B3D01EDE7F2B0FD002D6E37B19BC6B0DF5A1EADDAE11FF05AFC7E1ED
+369000,u,B9286E1E88465F561E05E81758FDCC079CBB07199D0125A188142FE19AF09D6BC82037A411333C7E8834D923A21864A5F9715DF7F2867F41
+370000,k,71BC01EFC80A4144E2A62BFE4BD8B6E0A004DA6AE048D2167F413A7BEF9ABB317A3AAA3C394C9F6BABEF3ABF32B340FE2D5ADD36255038D4
+370000,u,573B83C1004FC97341F5E584F64C4178BAEB03F70863D745DB2E0D9891E6FCF53700A764AA06CF2F628E634D0C34C9CA61D7849FA5BFDE47
+371000,k,8F97BC0A954B5B7BDF77ADFB8A9DADFD88F42E8B5FA4C22880C80AA4CA1B8E458C09D96A30B88E9E265892CCF2589F0132619A9838F2BB0B
+371000,u,BE134EE2DE792B26C6B9ED3F28F5A8A1B7575DFC065844D0EA33B005D48C659498CE87E88565CA6B76B60FFBBFD663F6069B995EA3EBF686
+372000,k,0859FFAF1EBFD5A474E0C445F84C6F89465E1410EAF71EAFA9BE7532EE0C92EBD3BC27DF67F02023A5C42394F2028A963DDFDF16D9887C59
+372000,u,E22D94A6D864FDB6CF90313641CE9B05B49384A99B34846C9E1DEE5385EDD20E4254DECDF6207401F2C0E9DEEDBCE57E180600845F16F3A2
+373000,k,465F77ACBEB7806D5544F09A7C8EDC244EE3360977F2C5EA084ECD178B6F8C5D224C9CFEB14ACB51384E2E184836A9BAD0E278B4432770C3
+373000,u,58BB259A75A68434B89AB30DA83831A500B7C6502A63A9A9FC19237315F54A5862BF7AF55A48AAD0F97DBA9BA4F67723DF094406F57417C9
+374000,k,70172C111A7007122731353C02933E62A403A9A7F8AC9E9585571E2ADB14F57B6115E66CEEE913E696B52CBB65C125543511B33250172FC6
+374000,u,BB31CEBD2BFD712F43DCBB050CC04F5FDE4630664D88CFB0BA7417F2F350EC47FCD41F05AD56200B2F17636B0F622E9150911D2B7F222EEC
+375000,k,56B2C4B0B3E71E4EC010C01393272661F05CCC25682B62EBB16182032150CED58020A33FA8F12D3E9249CA64E06F4851DC724883C192AD87
+375000,u,7A7125878B7AEE40CD538AF54C93C1431AA3F3394777D717E28872912DC43E395307F1D32050D2E12D14CE4F81A45A220CBEF3668756DFA5
+376000,k,3A01B45017D0E6F36AB3880199264EE971A1939B0C15B7709633F8564C99569D1C16A15E01D59079FB7871A05917B468B77AF87EDE417C1F
+376000,u,CD995BD1C4259F16CF833F42BDB3986DCEF4217972B635BE844E170E431830830F6ED8C71B17E65A75AA3C0C31CCDD43C326EA5EDE5AC323
+377000,k,E5A6B2415C5150CC1DC6FF3BF2361D2FC19DD2C53B0D9880D49BEA95E865823F7C6B598844D5D6863B89999D18E9F4B0D5D1DBE615209E5A
+377000,u,62DCC86E207B0A146B7737B305D9EA3E966B91F096698CF49A4348DB190FB841B226AC84FA74392E32AF2F2A559A949C55D5F6C4DCAFAC1F
+378000,k,C632C6F1E9BD1B65AE8F8152DD79D8520BF8909A590EB89BD57972CF81D1759DB54C4B89796FE959110C6F2BF430A7CD86968C9ACF30DD7C
+378000,u,0D11BF226F217AFF0B48E3784A70305DEF689EE568F98024728CDB6F8D7AF3F498B1BCF3A2010A611732BDA71D087F45EBBF988EEDDB4B04
+379000,k,F46C04B52C2BAB07CF6C8DFE8197D14ED164B6D880F1232E324598E4EA2385270B4FB60A47BA2167C5C8CF5691337F170B410FBB5AD50F7D
+379000,u,3EFB5DDB9E32D31986E826F6F5962703205EB7BB84E76AF57A6EE73FB137A1A7BF3DC2DF0A4F2000193E6599B0DD2E329BCF26EA81179DC2
+380000,k,860D1AACF895F1BB7C6C98E2DF253A4EEDCD371B0FFCA1BD3053414B7445931272816E30514A81B7E66C58CC7E72C18B349EF5B462BEBCF6
+380000,u,4E05BB2AEC4DEC50EF6E0E47D51429689FE012EF23C8D36F313D91C5B4BC2A1526F7108E42D7E0D51913A33EC2062AEDC2658AA05FD2DC28
+381000,k,948F740D5F8514A1CB6801616992CA450E36D3EA444AAC930F41E8D4EC22E0BA4140F897F80C55B43E9DD65F3E262324B83D08AF917DD284
+381000,u,423D49665ECB88F8955542F2AA274ACA2AB9901C8B6C9E7EAC915B5732AA72065CDF600261EC799D36FDFA5DF610416DECB70368E03ECE3F
+382000,k,211F783A509EFBA6A28654218EE594D3C5F06EB1A9DEAEF36401E321C82AEEED7FD6ECC408ED7269CBFF4FF79D06C7017C3F9CEF9CCE2CB2
+382000,u,B3CF6BBA93880DE754D8E4591C7195EC5CBBCE28A13F30B000909D747CB09D7379121EFF9D10A4677B55E42FDC7FAC968D1F38721E0D2B07
+383000,k,9E209987F700FA2C479F19B798BABC19118A400C01C613CE94B2612C1EB66C28D03DC30E01E6113FF634A5644529058479B8730A81F69AB6
+383000,u,E3F2E393D9ED91EB7242BAA4D5718462076D1EC179384B6A9EFDE7A708EE92F9F9B0D7A8F507A8B70F45FB829A9400F41576EFD8AEF4F903
+384000,k,2765A276B784A19D06B8FF2ABAADA6CCE6D2F3BC26B8C63CB37DA84F81C2F95FC8EADD6D947F808389C2FE76AD068CE0A49BD2FFE64E890B
+384000,u,87D4F85CDE3FB3EC75747BF2C2BF7B15D8DE99486669AFE3DEB316D544E9FF79DDAF9CC078C757178BCF5D49DA7A22983FEEA351CA9BA546
+385000,k,847A2C868C880406CC32375BA42BB2EC355EBB43B0FE8FBB8A56EE841B133C6A55D78C09CC0BAE5E708232B091E05EA6115EF4E2A0C7E1C6
+385000,u,49F170D6E47B352491A7A219950E59459C2B22790E5CCAA8B5AFD42842D38B474BD75929B6D9053C41C122A3E7248E53640251F3A67AB9AC
+386000,k,1443D8D290C2D5EB13FC01FA8BC6F476E9FFD1D77FD10AE3182A50AD9941AE5AF3883EACF2917D9553A48D2BC9EEB2FAAEB087D45D5C989D
+386000,u,B5CC2B62706D0E00D1D7C8800ACAFCD08E0D6E3CD803AC40460689AEA124828331F7F840D297BEB54DA01DADF5224C6D11590EE714808293
+387000,k,C0E5E552B4BEB9AC62CCB2650F92FCEB842132462287CAC0F544641E61A4984D3BE2907D5209C1DF1DC32B89953129A0A7F069E844181C67
+387000,u,B20DFB1B5C13C33DC81C2BEA3FCA9A6007ABB2ED9B7F709AE5DE4A2A844699BAE6D52E04C6FE530B8E2534BAFF5D8273E7EAB392D8D9593A
+388000,k,68411AA0353DB2AA46CF9BA36128F82592BF8CA721DD4EDBDFA65707978976918E76A3C90B4FF743A4A846DDE42EE23A73DFEE6743A2D626
+388000,u,52B4390D5E87F516CDDC418C26261CE33D59AFB579BBB6A3C324597A86AFB0E69D91471A1BC1F283806BCD860FC7A7D26578CD3000DA2D2A
+389000,k,49586C5223DC1AD23EDB9BFC9B585FD5B24822481B4D6780E8C77932B7DF5B82054E9BBA246F21D70E38C387BA50B7AD20FC1EA57FEDC138
+389000,u,1AFA4394E94E0BA293B36C85C6FC96AD229087244609795FF64DF052878132D866E4F5475DF0A40960A1C322A6B117A6AC0AF337D59D54A3
+390000,k,9ECC6554ADCF89E8716FE8626633BC6AAD5835B4051D67822B3069C9D1DE1ADF5B7B94124C8F967A06DE024DCED80D8DE81735764F03AFEB
+390000,u,319F8546DD3E35AE50553ED49852A84DD085AAC0BDCB8963B073791110ADED2844037CE6E216071D92C51C84C4851B5AF2B7668AF07F0388
+391000,k,F28E91CFD71B3DC743DA7D39138F2098ECA6C4EA408920652458BBD30FC7445EAE0EE6E8F4F0920797270312DD6B275AE7C5F8E0467CA26E
+391000,u,A9987B5E588A0CDD9BF9A1E1123683EA5B4730A8FF256E71C02A007849A502A0D37FA420BF2AC30858A6BCB1CD7AE5B5D39AC3503BE7EF84
+392000,k,6C61ABBE6494314E2D8BF1F8043DA3B18401CBE8E641DE7C19174CC6CB440251B9351C6D0039808A1578276A696E099E4A1DE63F8A2E029B
+392000,u,AC37AECF93942F248FCF44E0E183805F01510A771B1FB083B5FAAC40593EAC7C1B7F8D8B0919ED3951881AD51F7603FA9F9DB9B14AF85BC4
+393000,k,095092566A0EC763EF5EE40C1E0CCE9D7D72C90EDCE35DCAF0263DF476C836EA29BCA806447C8FD8441716A36AF2AE18547737FAF49F9D42
+393000,u,0F189E0FA8DE42F0747399A54B39DB62825AF456F61810458B63094DF850262EC8B2518EBC67F1D8F38F548B00A3D91EC5B2449D5EBB88ED
+394000,k,B8CC76B52697B468A20743788B840C1FDDAB6C576EB2687EC65409E651513FA2C907404076B205DDCA12E17D73142B891EBB32A672A7D8CD
+394000,u,5F6BD95B74E13A20124BF0389C9DB5B9698A46622B1FD948F93C1A3F19E96C39CBE4592AD43A0B93430A683B1C96338D82E30B6E63EB7F3B
+395000,k,96CC713E913BFB9B66CB6AB55C3EE6B174BE1E038814EC30F9667FDD04485712986D56AEDC4BDA7FEEBD3102C8EF66FF06CB11C2188C5441
+395000,u,51349BD878B74413308E604D698B195D49C9A912A68277F63F9E9618D269FD911B99D16613F36188A4252472EE21A9419F8BD2D1E03B72FE
+396000,k,B034B2BCC3E2DAF8B64A6851EC96B54DD5731110A3BBCB7D83B4B746B257F01851CE39207E9C1FF407C53C4B40DC9B311692A9D48801B018
+396000,u,ABFF412A9468679DFFC176BC6DFD30FD278C68BD19551959E7C51EC338D69B1CA714608253BDAF00AFAE25BE88994585C10C42C8CCEC2146
+397000,k,322BFB2FB04830499947FBBE4C61CCD3D0722D28B6ECB746BCC7EC1BC07E9F055268E1A0ACE34E507A16E6A8C1F39A4CAE71A13E9354C17C
+397000,u,3CD0A4FE5E23760B9D79A26B06CB0FF3DB30C76FA27BD652BC0F4B4AD35B0EF7CBCC729892639C4DDFDE610790C17AAA53876889C9167423
+398000,k,AC803357E29D5948F01F326BAC8948BEEAE66BA81EA397D03F2352D71003FD5850D8BC5CBFCB4C086B74B9A8C690C63E1CE4DB5569096B7C
+398000,u,3E254FF49CF2563F33334A4036B20B44838080D44CE3EAA59B56D815452B2ED9556D392086587085441E49398625C552AAA6B509A2E49D0F
+399000,k,4D352E9184C9526E59CBC62B06B61B79C3C4ED0341C62BBB6B88E8FE3B51F4856817BC1ACF5FA1AE568577EC8C5931BF0E2F034151D3A7A2
+399000,u,A9389504CD351A95471E63D72B03ED78DED8CA19D944F1464A78B90A8CED009934FCE6AC02F7D1EF2F695CEB6E1A0D89BF44FC999621C8D5
+400000,k,822AE5BFE694872E266098113D861F71274602A15068B0829F7B19A0778D407BDB8AAA8FDDFB9E434EC76D5D2328625D1FE1CAC21C1BB051
+400000,u,423F22256B29666620C6C791AE8FB92350623BEFE4AC1F9C9E2BA604B6E2CFB069F974D14D89FB4C5D99C0F20F2B41BC5B47979E95BF04DB
+401000,k,0FC0033E0EA36C380E58D2CFF5D1B360E6F37E90F1417F82DCCD45E970A5DC2105D86F3E035F3C9C573DFDBA69AA0074E2E72AE808B32063
+401000,u,947922AC9F9D022D239B7D630650DE389BE7B44B79B911EC8EC78BFAE43E782BFDB9D23BA46C0C0A57102FCB7AE3D0D804E2A71142474814
+402000,k,AE1B23D24B9D54F54A7FAE27AE07E34F8978A7E10199A73CDB865C1D334F8B6BB532BB7E09ECE4EE862ED5DB8124165D520DF15A5B81E35E
+402000,u,2A0CF3467B865F3540743B1D5CE159F482AF3E308EBE191FC0A74D32EC2244D8A491CCCB7B7E43D781CA9B4FF5A38195E0311E3BD1E5A453
+403000,k,FCEB2E00A164FF90741396C520B8451D908057F4F41C2F85D7C6075D19C9EB9AA104BAD14B36FCCD49CE39F5193869E6268DBF4BFBD2FDBE
+403000,u,BEDB6684F07CA25CC38264D0C46A9B4E2548B25AD5C054E858810A83BE74954F3C21930E5A328DFF75A69CF3BBD83A0F77D1261F5971FB36
+404000,k,670FAC158B76AA2B07DBF8792429A208B8265A7EE254FB83FE777F34DA7C2703DFECBD32921CF1856197CABA5B3CC14CEDCFEAB3464FC135
+404000,u,63C7CBA44358CFA9F69D568577FABA4D616F3C7C6781B0F62C53D8D21E930CBED6F4D2A6FA326E4D8BB7CC0FA257F1F67C8377135638D119
+405000,k,950E1B366AC217FBB0E08E71360B6E7E200152D8D5832184A46D07D97BEEF003B89D2E2D806B40C04F9C0D7B554D717A7F0496874DF896A4
+405000,u,0B86B6365EBA6B72F21263BA0F9F805AC988A18EDF527AEE23764E5AC1FFCCD8F747FC44093B0D60BC065C72051B5815E14111F70F5754F3
+406000,k,7F5E17544EA91A01E5856D2AB7C4C6322806DC9204EECDC270154F1D18924199F165134BFD716A845046D8DA91B5376B89FFFDDB92761429
+406000,u,14B55F86A83E9B073CD8AD7F2E9279A71B083FB482A77D439267F395D68829D4A5A30C3AE694153B470907DCEFA3C63007CE5967CABD4DD2
+407000,k,19199A6721BA91F28DE3AC6C2212F37791D0BB95410CC4A3C654973C70DC2003D14F0AC7121726B0E56AA4F9F509BDD23C92C0053DD4EF3B
+407000,u,86F261E4F00B072E58B9E16A7872E3D8322AEE9A43D79CB76003CD656729D59CB1F630F67D25B9AA4FE8CAA8A8AC5620FD7E7DB767617EEF
+408000,k,9A48E3898E36D8701A0C1E2A1F5530DAE69070FCA30934514E685A35DB78A023A7DC23F359E475799C9ABC2BDB07C2DB130C4B3DDCE88100
+408000,u,482CD0D1C31E8722A7EA901BC00A5E067F595B028C4A77E7C333891A270DE9AE00530C34CFBB7C4715BDFD996EB556648299804AA5BD3AFE
+409000,k,0AB2B827A701F49B16BF995C6AEC7C4CD5F59AC7B749EFEA489D1B8CD06F038B00A4DC693C42DAA023744A850A85DC2383F68FB7A362AAC0
+409000,u,6039F3DEE96C8BC3783ABA97F36CF61254112FB28812AB66D965FAF217BF56E51FEBE99A7B9A209DABEEAFE798A6510EBAD719FB4FAB30E4
+410000,k,C5345BC7E4823032081B2C3168A3B809718107BE5621A63E52A087376B6B09E2A32CC0E8872B6BD7F41BBCB8498828D4E0CF0D3DE4886E9D
+410000,u,ABBA2FDB51FAE7BB77138273F4B97365BC319AFEC50A873EC21979D977C95366C181C9DB31DEB105EE179EBE1940938893CDBBB13154CF0A
+411000,k,E51A12DC60DD6E5F3373DAEE01003D5D85F50BEDBAB1676BDFDF08489BD2D782934108DFA50C1C2E9F7174D5CEE2F30BD35EBF8BAE141A9E
+411000,u,CFD08A0B4296E9353879234842EF29914189FAEF41D38470403F90281672F22A4F4D68C9805D30C9D6BCB6E89DFDE7A9A64CA1BF311E8756
+412000,k,1ECDAD807EE85CFE1D4AF8C3942F85BD5AC266150B324DABCD905F24FDE9AD6F0D4278FE42AB2D57E58BABD7ABFB9516992F35F2F332DCE2
+412000,u,22474B3ADC54E7414CC586D5402E745582D33E7307EFF947390A1DBC7B698200A4F7978F7C8101EE9A8B50713226F53E93423DF23780D311
+413000,k,11514B1BF89E9AD350CE0BF35DE814F1C05AE31638D31D253976C64255F58E1DF6BFE825C4CDEC6CCFCA393E48893FE3F46FE21BB24673CA
+413000,u,B0C1711264C97204B35CDD2AAD704442FB850B58CBD1C6C08B83FF350442AE72E45E0FF64509EC4850EEF61404CCB4C83351572D91A85C4C
+414000,k,87556FAEE3DFD45A9E7DEAADF1BAF9281E322BEBB0531B8F76FBBDB3C999AE7243B544073ED6280F5E3FFA9814DD0FD45B15E8BB08B3155D
+414000,u,AA22549303E6D50DB9F874ED852DF9AA74E5684AFD0C7EBD97DDB15B6E4C423ED67DBA512786FAC93CF2B7024CF569F37AC99073A77EF7D5
+415000,k,5A51975FDC9D4B5ECB0985D41FA2DB0D41EEDE2E1052DF4526DCAC125BAD1F6C8DBE3B7318E30A49B75C18EA66E10E3AB72F61949DC8B44D
+415000,u,E89386E9F2347AA117DE007748B09DC8EBE6813926BBD4A533A64F3147D898766FBEFCE73AC7464D222566B532A54FCCD2F5A5A97F3420AC
+416000,k,C683C7BF46D4C1EDECC42D9C90C90066819430A04547188F4A4940815B245AE86440EEFABBF61454782B8772F9BC281F37C3275498FA6BC7
+416000,u,BEDBA0EF149BF2AE3048290424A29CB43E8725BA30B9AB1C83FF60215DD7A8A086BD986508722B22D33E87B144C7E4D87C8EF13F6AB62539
+417000,k,16D2D98112A5B461B4946299214AF3EB5E9500F2F16E643C7290C8C65314728ADB210B6C6685F5DFE91DF12681DE6B1C46CE974C0CCA849F
+417000,u,87B9306B65A6AD24D9558436DEB4CB9546F0C4766ACD06DA9B53327904CA26D8AB3CFE847619F7816F7F7737F82DCC90CECA7C7691E40C58
+418000,k,768F23C6A02E3FCB1104FA21DAD99D759D17947B14FD7176317112251D78D1C828CB3825EC000482A2430AFBFBC9F59B680E888ADF1A5071
+418000,u,4F22955D380B561F65E89018E1634FA3335AFD1DB7753209FC8F71866FCD48109AF1BCC74347D318803E3187FD009C4349D8E2C7B23AC8FC
+419000,k,5D42DB5F014BCE09053E0B8EF1C2A340E23AE66DE8A874951E8266B33668C2D2D39F93BAA59F0FE727DED408B651881D554766AF7D562199
+419000,u,0864857F618851E9C51D9CEE4F1773C344D61912EAC9CA3E99472F31EFDD96838E2EEAEFBBBC434ABB987A57845BCA01CA55D8D9260F7964
+420000,k,A1E3E16CE91F2BD224AAE4B8496144FD97656C47FEC5DBB1CB51FFECEBBF9896F8CACDE7D7EB602FA8C04679DE26AFBA9219700ADDEA5C9C
+420000,u,8C08F5B72D169DECA44BA183218189F59F3BCD81756D120ED135CF0FDDD0AD49E679877D482FD3E4E022DC5AB7471F1124BF0BC0D91E9FD4
+421000,k,C106E691E415D12AE35187F96F244904CA43AD42F30DC4528A9F4EB4B26D137E3018B2B94F770D8C3232EBBE72F272437B0D9F7384B09038
+421000,u,AC10BA86982674B43DFBEB797DC42E03960928FB16DBAC6250C6DF827C7E78CFCC97FA069805CD434533C3AAAC4B123BF501D08C8FF56253
+422000,k,6BD48142EE7D42DB6CDE1E55063D0BF1C65667AE081E6340E3F71ADBDAA89D49861580CBF256CBB437522FF8AF2956DB67B08B0164A96FCE
+422000,u,A13ED143A028577BBA4CBF27EF37F76DAA3EE62B02D567F4D21E46E072E5D4E66DAEA5696DBA49C7CEED86BF2554F5C50D138E6D07E62487
+423000,k,1DB6532062DD531B3D258C32B8549FA2DF099E8971524F39760CAEDE8CA8658BFDB780EABC16E33AD8E411FF19E2D2B5E0016A811E289503
+423000,u,22ABFD0D16C57A795ADEAE337CD199875ECF445848EC5C3282C9C853DB2F84530DFE664EA9E000689FD5FFA1B74C82EC5AAEF2797D3F2767
+424000,k,2A5DB3C579A155CE23853237D28B783922E6F7827C6084F3B5AACCBE9E9B95AB758902FBD5CDDBC8FE0F82C92A44AF1237301B6FCB6E1F45
+424000,u,C4E9E9F674BD163409E166F495B074E0F7F1EDB552045A704C4B3B3B492BCC6B3CFBF3AC0A17BF1EC91C76955B2B8B93C3E70807ED11BC11
+425000,k,CE19A3C4EF390452B81DF4FCDFD384FD769C7A320DE69DA99A2CC89B156A89066FC4EE14331C87D6463D6CDB78534A80AF8983504CD9FAAA
+425000,u,DA4886E1F69AE081D7CE77EF5F466B9948E13DE7BB7D1DF7D0921DF93CBD75611AD74371DE460892782FC67468A7EBEBD1E170809885CAA2
+426000,k,09B6937187F8A5F8913F0D97A39C493BA7855CDA66C390CF8BB8A1B4F3D23FEBE433185E4002E5B32D54BD5C199C757505900B5108D63FFD
+426000,u,D4BC975BD85150E7818ABE6B1CC33EA485B9599C81DAF7A793B0574D6AA94CA0DBFF60534D99DE984FC62DB5FB1929BC88A9F84738BD8C4D
+427000,k,E62C39359209C5FE98D0F6567BA50F5332A608EF0B37894EEA0FA4497515BC9F34F510D10FCB559BAC5DF1412C18E6DDC5C26DDF3BF9A801
+427000,u,D0F294BBB4A7D5CECD4CEA2EB2B01338D8DCA7E8E902769615DE66FAE8FE1A3F517B358724913C51CEB05C99D9CE79BC7DD9BB8AB104E6F1
+428000,k,0B6FDCFE48170F1165318EB8A8807AC6B09648411512039C78214B5E1C41AA23532A7F0E7B8D5875F5EA97557E1A211D876DE74E114B2DE1
+428000,u,5C51811F79F57C96E92608D36904367582D2973ABC3965BE24B12F060E5F6711E1E421AEAB12816553AA84B67E0654F44F6694B4F3429487
+429000,k,672F5D807F6194BDFDB43D025B45F99BEEDA3FF75FC1921CBEE5886F334F60BD97190EE42FFB0DD386A072E3F162F9D21D848BF4CB08E2D9
+429000,u,9B7B29E2FA176FF5EAA0C5941D1891DCA8FD1E6F0E7363F4D3ACFBE9A68FD6FD1463E0E996D12F0736ACA4CD0697D4A54EA699B118B29343
+430000,k,E5328484DC3A7DA176A94EAC322C99A5256C4B489870B944E17DEEC8212D000984B3D3C26E4405122949A4BFC822AF6640120260031D95D0
+430000,u,23860508000E0D0547AF18C0BE88BBB091978ADD9560E5F8E90D57E46035CFD546870EDCFFF85C58F0242C51EF0E46A3E68D96B31E7E5D0C
+431000,k,6A2E53BC4C90F85AAA3BF23FEC1716FC2985DE84E482FFA360C29A839CA617FF0E735A93B073A7D93966663FF3AFB489B8EB1D2415D19D8E
+431000,u,B44F2DA77943ED6A4F8F7850C9072BE339F45F55DDFB5CBC14085C455FEB39FD0DABDA693AC854837C1428727CBDB2B589DCE56F15C265E3
+432000,k,87ACB6D2E2401141603C652A216597AF718CB8C07713071580D2D09067CC1E463A85551C0758F202B7FDFDE6636CAC6800B9B7851B4455EA
+432000,u,63E2E12C57933B79229A4F3FDE62EB25FE5FABE503A218EFAC208371CE6DD8D41CC98092987A90FF238A1834F52938621C43A8E55739CB37
+433000,k,1C7F34EA08D3B229CEEAA6394C78A9E7A7009EFCC10DC3E4B69A79D442D4EBB7C27E67C2041FDE9705CB87CCAACCA0DD7EB30307AA121561
+433000,u,44B79D64CA217AE3E01E985C7756333AA3CB7AE485BCADEF3003AE7E0B16B0C7D87F0A05ECBEEB91B267005874D88225EEBCCF6ED55A00F2
+434000,k,4E62B222B948BBBFA86FB79C9BF0722AA6451666DC4D35D7AEEBCA822CCD0C8FCC93F1AC4AE775BA9E5E3CCCA30DE845005B8C35B68EE6AB
+434000,u,036EF9B1CEB3DFF7D4D55BE85847FFAE4005AA0AD307A9E19515A23A0FD0D558F1FFDAEB8E4C477BEBE474FF249DF68EFA4F2303683093BD
+435000,k,E0E70D55F886FDADB07AAC645A7C7DE72514F66C30AF8FADFA1FD5AAC14FDCF320FD8C9467AC2E40D3CD1E640E9CABDB2B37081CB7531E53
+435000,u,3C50ECC0EA33BE06434788C0F79439EC38EB7C715F4B2E5E8276A5958E3C1492D1AF24961379D669B5A7C42776728B9A1721F0EB3F3B0A18
+436000,k,4B5BBEB79CED3FA87F58382F7A17FB476A29966781612838E17811FB74865069A535621064B07D1C6CC505E5658F77F7722D5605D02A9A07
+436000,u,640798F53B4BDB195E0E3E574DEB590FC0A69C4892A5EC1092919FDAE0FCF433F4CBE88551D3CB3716F631671278BE0C6BEC4173B028909B
+437000,k,8CAD83D7806CBB0B3EEC35EAABBE70E484A360AE0DAD7CF04865E61EF6E2ED33B362F556C3E57D9B2F622B05C4FB6263C980ACE43882F55B
+437000,u,1F6386327777021E2807E4CCB790859B977F05C897644B03568F9A386B547AE2D321FA7739811A9D1F7214487AD15D2460DD15F5DE3BE448
+438000,k,FC9A6BC10F118FD258C676F9E32835D4F2D218E7CC23C489E0DED481814C9EDFA8588B5A88C34499A462394C6BCD377719B93D3E8B4E192E
+438000,u,9246A01325F92AA116B44BE2E6E2DFEA4768FE2BD8E0CE214E8D032704E42F6A1BC6240E6D806095FDE1860DA0F9FD03622F6327859352CB
+439000,k,57944D7F7C204569DD1C21423CE2554C035EABA0AADE926310A3CD5E00691652916A6CAB1F7CD58F9DD81312054BDA296862D123AC4D181A
+439000,u,F87DDA6D78FD4737D923F9254AB0F2E492A68BA55EA51B2E8AC0A7FCF8DE4036E3BB7A3419E423E28F783CECAED011B210A4F4C99C572589
+440000,k,53B1961FE79DD1E9E177C080B6399104A9F5D4306DB5BA1175D531D061ED2E8A1A81F7DF9E5B7B5AD312AE2CBE75317F4136E89F94C2E718
+440000,u,A2C30F58397B780EDB21FA9B0F8CE7F1191496C8B91FB44B24718964B999E8A5485A478C95D22BD35C1623A11B2731E8C56EB218A238CEAB
+441000,k,E521C630ED4F02401B6BCB22B8441B3EA595F204A0D5275565952E2E49E6E71E9C34569A6CAE42DF1E25B6BE8E83AFCAF231A502D7DD299B
+441000,u,4DEF66050A4D5CC825F69E563C1CD9B7404C05A1535591D4FBDB728E42D6BA874798FB81935F1323DE2B741D471D540088668A88C0FC0F39
+442000,k,BFCA2D9DA552B5AD1A5867F31425782480B720597A7F13F725DDECB35AC785E0404A9EA8E36C6E615E93A369FD6A2C3F5C4D4F07D1EE3953
+442000,u,6AA9317461D786980C9F9120BB011157BD460A89D2AD54BEC000AC201074CEEE5DF7CDA22E0441319E5E74310CDB83C8C60800C7B5992ACA
+443000,k,9298292A135A36C3AD7256635581878161B5051F173124F2DCBF8C92839FCF848DBC999EB171BEBFC8E4D9754690F5F7710E6A43BFED5228
+443000,u,AE336DE4034FCB53D250EC85BB41CD5B78CD056A10EBE7D6118B6AE6D67CAEC304C519DF18D21930F6373EF58CA6553E22C4FBC93A4F29C5
+444000,k,C1E681CEB4E75B072C694CA4B9E5D8FA1895E8CD8AD3BCAF61029077B3E01D4B843FAF9A993DD1A50360CF69A6B311586FA6D27C388EDC20
+444000,u,1828E3352E9E0AF86F41D70310268F051F57B28AF4A270E88CF64C723B6CE2364656EDFE06176ECF86208DF9AC8360BE8E27866701DACF70
+445000,k,9B564D2BBE0699A896CB20CA98A3DE2AD102CFD8F52CF0B4E995A9D32467ACCB838BAE4D457BB140D7B289FE544EF6FFE43C5D727837FF26
+445000,u,00D1AC1B7A67EC75F14DADBC34AAB797F8AD6F8ABDE4C91F9B71511DFE084353C6F42D3D34B0B10EBE80A079B0C17C4A1CF65892A776F793
+446000,k,2DF63A39E0AE7B06942BE2CB68B125834B102A65177D8FD2122D16955E1D7B416B29487DD19FB7BE1860D090DD0FA84E7344EC5F5FB2F2C6
+446000,u,F6351DC998A896430C1DF1F260D1BAAD75BE9DAC7A6C8165F2E0F8401AF14A0A7C37F84388F4A8284CB09691F0C59B319D0CACDFEBB89C2D
+447000,k,61FDDA21117A446D96F8B9E29AADA07E59346511D31DD9B1EE55E49A30AD1733090DBE0142561550F1B1DC4F6FADEA8671513D94AB677A88
+447000,u,A04B19022E63898EBBB5486478AA9F4BE9BBB5AB7107F3A5D6A85DCAD8D6D3392692B1772154736A71FD043C0882741DEA1123CCC0C78438
+448000,k,106839CA9B41BC35279AA0863BF8B261A87FFE9B098B2D80780BFE7CC671385A26FC486463137AB4F28A67ED60F9F4C276949234CA848962
+448000,u,A2BCA5D2773A11F3AC0FC9ACBA6278A8F811D205A7545A06D42EA36D86F1239510B2AD5F113DA33A8438585C63D1FD7FCE0DB16CE658B95C
+449000,k,05F00C891C9316FD62F79C9E5CFF9C99F007FA7E14F092FA71359B7799795BA2FC17B65266D25551FA14FF33E6453CE841953740FE9082B2
+449000,u,3CB0D52CA2BEA0BE361CA7B64894A361CB0581E0103AC9578F060A067314BE0B7B7B7D88B4EE4B25009D2A889B186BD84840BD1E29E26FC4
+450000,k,7B3C00737C8234BA43C76C6B9EDA1DA23068CAF89CB3356BC9EB55109A7FC48F497086401C52DFEED1B16000B81BE6B6829B99361AB255C1
+450000,u,EC813DDFAA79FF0F51E36BE1ABDDF92354E2FCCB4CB27CAE72012F541A6ADEB916FF636930532F3B495D7650095B35EFA3AC6DC7A16D4682
+451000,k,98D4500886AF8D13109CFA8169DBFA3A2B5D6B8CF62142CBB757040CE6D2C3C424468C8550B4EDDF8B7E463848A21408299E142A1F94DFCB
+451000,u,8C203B35A4C77B9710EF2537F2EA66104C7AD7606BA4292208ADAEB4855CE73E40D5A7950D23CFD1CF0B70FC79B71A08C1A20E85821DAF1E
+452000,k,7957BA5DC3F000AAA6F70A353E8E465D6196A886CB65EBB8A8CC9AF0674F1CAB0D56992FAA031E79A1A621F1F46912D1C4B6DFF7A9A198FB
+452000,u,CF51143AB9CF0639648723C36E383C2DD847262A4E9845D21F10DA80FF168669DCB248C3A78A662F3643060E08DD5CBB2D4A85207F886288
+453000,k,663E8219403CB8EA2B83FD6C886FF5697975D44ABC9484912504A9CD9D59EA56400975016008E7AD2C454964DD20D697906DC274994839AE
+453000,u,98D6D396CB8839FF6A3A938D44325AC32A70B4D0082E4A4EF015234103C168E20CDAC675EFB7D3DD598D11C1D625A0275F357A4B1C3E6E33
+454000,k,F3DBD660437E5C2CC9D3ADEEA4EB22E60523E2017238ADE263719C1BC5FBDB2793783F7C90BA5E861E119BDD1EF38A9B0F414EE70B6DED99
+454000,u,D01FEF6D4BA56BA60D3AC374D501F79D6CCBFA130C16C2ADCDE445D9724A704AF55E076827116DA98F5D80155C06BD3FD97FB8FDCCA99862
+455000,k,D203686BCD6322EF4A59004ADB24F3E47389E605FA3B263EF22636A44F2AB23C702A06888C96EF868E19BB2B48236E7E5FF7CB0A56059A0E
+455000,u,365A4DD3DAE4ADAD466642EEA8A2545EDF7194CC475106FF999839A0C1C0E04C93E693C3236CFB95E8E93FE0B51B0A48515A6380310470FC
+456000,k,D6F8488B747DD02A808E83D759D59D4F022D60AEBF5BF8BE1C4B635690D901054A541EA4727D42AC2A5FD76DE225611204C1E1BA5FAA1A72
+456000,u,904895B82A089C40602DA1ABF6069C00F29297EBE1FCDDC67975336A7654C3157364224A6FC3EDFDEA1FBBFEF8DB776E244779417DD0BAC9
+457000,k,F788EE6E3ADB7262A206E7E269472FE1AA7E7BC6A4A5075B934F85462F1BDC8D3E37D6FDBACE584BEABD4266451FECCF607DACDD31FE09F0
+457000,u,BBA543C6C6CDA359B8458946F0E03E31D3DD18D1B9C65B89A7E5D54760F494CB56965BE23756672452A497F0066C191AC6369B501E9947D6
+458000,k,1927EC3663D20F36C9393A94EE23D3E99C017B76076D012E510C28B84443FC8B07E4BE924C7682ADA3E95527A2A603575EBBBBBF37DCC511
+458000,u,43C5FF9D03470D231277EC5BE975144C0ADADF1423024F91821CF807624889F4956960C5A907562643930D2BCA5575273516342AA83772FA
+459000,k,98D017B6B56D206485D6D9B2AE65882DE394F7692BA86C0E68B4562251D169CA3FB5922E9122BCD4BAD1A8FCBF58D8B4625888D36FA3A203
+459000,u,4AB43A205BF7A8C1E53FDA7AA14E34EF2B506B015D6F7EC15973F323ACE6384367F3C8EF86A8CF3A50E1E545EC6582FCDF76DC821A3192F8
+460000,k,022E3586468BA5D486147632E8E36297BEAA52D08A29B37D5ED9105F7ABD51B7D7300970FF65B378F91C5C2A11907F9AA1EC6750A77A7F9F
+460000,u,88985C777F82E76FBDFC9A977EB88EABC40B54C507A668BE87D5D2DAE529889240307990D04677996AF72C1742F7D0C5BC13905D60F0C638
+461000,k,0F659E84B6F207CB4FD8CA495E8676D88E8D6C41D6283416CDF1698B99527A48A28B15534C50A5FBCDFEF42A6B258D2195415A4986CDDA49
+461000,u,C30ECA600C7D7D5AC31B28AF8FEF107D18D505CC10613771CB9C0B72A7CE96F6CE0086E6F153EE171F332E75E9B998CDD1249985F3F5A571
+462000,k,7AB47C7C3A549958C6132A6C8384A1943E8AA22885BA50AFB527B830679C588803889218B831BC5FDE6578AF6424E96FD845724D2320341F
+462000,u,A16F00FA1A5490F6413F082C6DCBEBC50901B76E5E13574BD001A229700F389F5BA97A7323B77FE0B5CD2013EAFFFE065ABFA9D2005DB073
+463000,k,E67E98EFBE2AD79EF2CFB612064950B668A1A21366436CEA1135982F0A66032043C787FFB4EC41E58FC5EF7091E998F4E25FED4BC36DBBB3
+463000,u,6E7FFF04851BEEC3C93041CB043241BD26A7F900CA3A115ADED2438CA11CB01B6E22C77BD176A744406FDBC321666295334572074DB72AAE
+464000,k,0ED9246691ECC68002B26553695B6754B53CB217E09B9501F74D1248F2539229EB129FFCF4D95AE3D64937E160633D7BD10024D35492B384
+464000,u,4AA2436C3D05E29EEF196D35EA5A422F23B207BD6575F07F6111967DB16A00659C4546743D029C8C43DFB608DBAB186DDC36D92BD599FAA8
+465000,k,37F2B169AC3EB61BDD132197A379E1F6ED51F43C11BA6DD82D1AB03E4A2EB0B94172F8922C16F19207F3062EDE18E91B46E7DD7406E045E5
+465000,u,E9A3C0BF62FBE87C951207070AA31016B022AC2011AC6C18D9D0FF9A892242AAB8E4BB914F848789D2C7F62E4CFC99B9A72AE2AF17BD8BA7
+466000,k,AA0625DC8DC66EA7ACB8705A650107DAFB6E9183405791829D6D30DC2CA6212B9D2A71B3E29157E650796E4200064C17B4B2BA4F7587F908
+466000,u,D4AFD5A19CA2CA8A6331C1594EBA6936BFEDE8EB959A7B5F859C7CD6F8A29ED8DA7CB0164BC2A0AB8AE1BD16F7CC1CE233F731AE17B3167D
+467000,k,F0F6FA611E9C3BD298F1A839F641AFB3AE566949A5DD681FD4338C37DD386F77349586A95F05AC008DE66F0973310E20B3853D69D518A39F
+467000,u,7CB7D04171A615DF7CC774B7ADCDAD8E37EB928B3E2B02BFD7174DFBAA771BB36E53771DDF779B769760407F8E8A31A069BEC0F979C9951B
+468000,k,481C3AA559EC0CB2EA211AE571B878D6B86533DFB3BDE90E97445C51E9E7E669F564FD6F0F8FAAA1E74CA58646E1A6255ED9E0D5A0F32041
+468000,u,C2561B171342C8FAEE092F36EE72D29555A87279BF6E1EC0FA0EE05C08800ED69A4E0E19A5BDC5F0858CA4D4E79A925A9596517070B86CB8
+469000,k,F00749C129D40E6A5805E79848DA17DC7E9FCE808FD3001C2347AE9CAB8FF27269AA35B2A5821032D3849FACE20F33A17912B47B980F418F
+469000,u,168A014EABFE152EF3F667F7AA770EB8AAFEAA95BDD08F7C7947833FE9D8133D58E2265976C0C3E5C30A6D9A57593B44DC000FC10850465D
+470000,k,6B33B4B570323DBE7D52B58CAB7A78C0A5730317D29A431E9FB6F58E96E8D536DC231EB1FC8BEC5081FB4CFB18E38BA4D79CB9E228B74F26
+470000,u,B49CB4ED7C2A06C03D33AD07FA330CE55D8D9CEDD69BF0DFBA66F5CFE76DF61EC5307E572078E57740221D49D992C82BBE09BA148B1D749A
+471000,k,309D9AA30F67B36506AABDA49C5CC8AAC9AC089C28568303523F7D0B8328A78E95ADCA00B79EB5D94BFCCDA99176E35BC411C77D099CE5A4
+471000,u,18C292F726C67537C24CBDA65A9E1F17896C3CEB91F861FC48E57DBBECB64117C533195BFEC371FCA3B2E25B5C8A72C95899031907434B6A
+472000,k,3B45C20B15521D5CADAA060F1DD0143AB98D9253FE8EB472F9291B508947F40975458264095E8D4B3414153AF52E00779CF448F497F47FE9
+472000,u,6EF50E14CC2F7F862FFCA62270BC84C9A6D883D74D63057A8A01E3A9DAA0192A49885D71C78480E6285ED184BFFCBD31569DE89FECEDB346
+473000,k,FAA9D87239DAF6AD737AA8302F0D9DEB0490D38E2F417F81779AAB9869F8C9AD4017DC8A8670B85DD72244610D33A9B1C4EFBB595F8328B9
+473000,u,7143E99EABCE0FF3F348D6E13F86107E54059023F4D7BB3909EB39DD32B16980DDBA077E17E217C278C81E0C75CBD6FDB549A5CB5AC6F9DD
+474000,k,321E5689B8782347F762068C087054F517A60E847BA4564BC7ABDDFF155B7BBA35C1A32E8CB7642EE6C819A49965D242427C547EEE2DBD96
+474000,u,EB799533EC4A8D802C774CD9B0AB55A9C4FDA36185E19F6149952334C6828402635FBC90AC30788A96F7CA13F0858E2B55395D471B5D7D74
+475000,k,C3D2DF4E769C3C1359F1CFC12E0DE4AD1AD818021061FFA6599E4BE43C8B0D5A1672BFC5D9BC61B53F39EC2E50C3BA1883A94B3EE065F64C
+475000,u,F3A608E8C7B9244693351471E82ADFF53EB2377B39B5D5F25E54D2E87FCD7C1E97011ABC3DE557DEE08A2187D0AACD6E2805C382218F24DB
+476000,k,FD731022398249B0A8EFE72EAF80125FEE1A46E984A377D13D307F8AA2A564D3D5D933AB4257C0EB8BB8F1645EF81E455802FBA66969D6EA
+476000,u,6BF9C87AA214DFB6815C0F73493425982F60E551F3711690DA645F59135435AE75B75A3F89550AFC90AFDA1B8AA0E6C284D691EB47BC360E
+477000,k,E1103CF1B30A54E52C61F6C43F9BFD4368E43AC8D0D957FB8EF23308681355726A32C18D607CCBEABCA5725FCF6B7A326FC3374BC30721BE
+477000,u,0BD9D2C03437B4F13810274000AF3FF51F86089EAAA79309686DECACDD8E18274FBEA24D74189520A0BECBD78C044B40434C726584C7EFB1
+478000,k,626ADE3CA7AF881FDC209367BE9C97DE2438C4485B844B8EDD55A08EBEE62223CD20BFBFD369425051A1F28F3E36DC8B7C7B98CFBD657CFC
+478000,u,8E9063095FAE92B879B8EA5A514A58C268D920A681323E255C6D58B1995B16B98A50CC4E20B725D61464ABA2746C4BE846B6C8BBFF2328E5
+479000,k,975EE5A6DFA1DF549892B92D04F03BC51A4007BC4E6A2E8E8EC3992F89AE1A62BED673684C74BD89B0B42E14D06D1D0525A8F4E195764B26
+479000,u,A8B7F1C2CE4A36AD7A5872F39EB94CB019350FEDB70762AAD338D8B009DB7B7FD0C83B98BC70E39D634F96FCFDD54C70E7E74A6ADD1F2E36
+480000,k,49BC67180C6B86989499FD565BB8D977CB57FF820139590CC479102B6B84C507C195608EB3698654218DF447A7CB196D3C2744D8F3AB1293
+480000,u,3E8C43DA54CEAA025F533BD12C656A3B2AED40720C73B445516073DEA774DF1649DCF366A837001E63104AB8B97392E8E825B773B9B3D0D4
+481000,k,EAA7996B7F27A0FC75172B9016533BCF616D1514E222E8A20037826BBF5089030715041281AA26D37E7F3A66CAC6BDB6C787665B94FF598D
+481000,u,368234B2E9172230A87E54B88D980F61D3AC7B86B400723DC53437F61A95A4E3B4EB91356B6E132927189C932721775053FBE01EA3AA3864
+482000,k,A1BF6382B9BBE5387AB0D2E8E4CB6F77BC7CC20B941A8C6964CE39B1796DB0D17045FAAA7E2BEFD3C2738928426821DC4028C58200B19779
+482000,u,47F869837BFAA4D452E8D4C53F47E41BDFAC3198EB853400979A7214C5F8BEB09B32CC551ACAC2DEB614C959304A318B84692B20BE657B9A
+483000,k,2FAFD54E0967289D1413C7D23372E82CF388D0217A2386C5FCCB2298B0264BF40031985DC46BDB77748CA0920672E574C9C84E5F45001D17
+483000,u,6D307D085AB589173BF86B164AC4B2312C2C9AEBF381EA435B26ECFAFB634366B317A3C1C7C9A7E74DA485220B1B7DD3C06E6CC846102F5C
+484000,k,1CCE2EF00812215CD844F7878D2DD6B8A40F2BE02EED2D67550EAF53D266FB7820D3A32A90744481A20DCD1D70B7B8D7B6776C34E0F089E2
+484000,u,4EDBE64F3A0DE899C6DF5B78840BC53C5EA8A3A1E4FCFC0D44CA987839DB2D23AD8EB2CAA235BFAE1E120C5C7D4CC62EFA62D266635552AD
+485000,k,EF0A612A337C83589E962F1CB1A6145AC4082DF786F30342F4EBF2BA907D2EB592BC05EED88E661C843A2B60DD51A1346738E40C943289C8
+485000,u,3907E1F7D936C364F28BB2A0A3FB95BFFC76BC075F52AC283366A8D193AB8869AD61EDC3F36EDFA51940FE09E85C398901CA29615E843514
+486000,k,C034DBCE20C12E9C9BA8B16FB58BF210C297498DE5E1CB472774685804E29C25D655BDCCBAF170D9D2A9EBF78CB31E5EEC3474642F8BE7C9
+486000,u,FFD6CCF5C3578A75CD54622A22498B4C270659416A9869388B21C1BCFD31A431B53F364F7244773CACEAB839EE23F82301ECB562AE3A162D
+487000,k,4B5C5C66FDD216FACBEF8631A5E3E0D62EB4DB2456545E7D740ED41E69E7CFA9FCFE2FE5E2799366A61A9239389274D9CE0C0ED4F27CD79A
+487000,u,2E27F1AEFFAA8E9078D929FCAE42455084694B56D9411FC8491B592566B7F690A807242A23B1F5AB2292B5C71A7642EB94F2AC7C4337839E
+488000,k,A0727E3AAE00527D369073A9740ADD43ECC34C8FD1DB110FF4AC6908A255849DFEFF5F6586E874A0EB2C0FF8913641E53AE8BC6BE01D5DE6
+488000,u,73EDD6D2E5638904C806662AF4AB0BEE3FCB011189CDDACCDA3815D54513160FD26B9BB1BDEEF2F88CA922F04B3084CB24B68C390AA5E214
+489000,k,44E98A1CAC2AE3DD69BE318A9D0B95D3647EB842F7661C28902B274FC03376748DAFEFB319F5E86E8438CA04BDA34F69F30E4530580835E9
+489000,u,23A85910E7DBD57BD028D833E46022E0E97EA94629E2A1F9A558297F61C1BB9082B18C8782132C0FDD3A8E5422AEF8BD1C5F0BEE8F0D1CDF
+490000,k,2E63D6C56088F88D0D8A2F0D7547F90273128159C0B6BEC0FFE3CE718690A42919018B6838FA72D0F84B7932043D2C98EAAC2AF9E8199B24
+490000,u,866894788F2C3DFABFF5A3D4A3D1A171989C6575A9462B8E688EE831DFA53427FD0E630F9423E3F542792D161390DC7386043D98C5AA9A92
+491000,k,73B4B9F3A45329FCAEAA7BADC161E5BD6AB280AD527323008053B515B326AF40BBB98F2E9A029E25071D822A5201E10C19E9398581F4E8AB
+491000,u,1C7F18CAB149EF33CB0E281BACBBF96666264D929D88C7FB89089093D802AADC2F63BEBC30D5CAAB77496CF9592BD10E9F17E54079CFC30A
+492000,k,F93B3F40FE721A250A68142563D61F5FC3F7B7FF9E97A4684EDC82A9ADFF3FDF361EAD032D4A6EC330A9A8B3EA7BA917D03B52A53E6A8534
+492000,u,191CE27BF053470BB9C5AB8C9D21F97B862EADACA553CFA0672771515144DF7605243266E5180181E998A57C2CAD1056686F61D23272BF01
+493000,k,CA56F843B873363707AADA4CE2EFA15223CBBB3FBA3D5F2365D75E69DD020CE000E9F0E056953413163F93C03BB2D2154CECD13F2153C30D
+493000,u,17FA30BE1ABFCB7135BC2D0675D94D75250A7783E836C97E29F77D0F5E351292476023002FA757B5D760D8794AA8EEBB66E377B08081920D
+494000,k,052AFC3639A1A234582CE3ED42A8A45EF31B55D50EA23A1BC7A7FC0C836E665A11244011EF58CD2303ACBA1777E60976FC9512DF79876748
+494000,u,B82FC4DC539BB6B1D9BA56A8273C2777AFE9543B847FACD55B47D318B98E4E74514BC1036803915588D8C3563F2816E0ED13AEB34EB05871
+495000,k,64AB2F751C0CAC7074981D198ACC0844DFA417BBC49BB8330E15A67B5866C4B0EC56B14469849380C39043BCF415C060EDAA438F63F667B3
+495000,u,4D5191F70A5F7A2F8DBA16D4230078894FC0085DBBA249F1530BF893D4C557150096BC293B523EFE33C49B5758AF0305DE7C2D9CCE7F20E0
+496000,k,D20DF0290DC6456F06F86373D6219050C433968E8665D05F9BE4ECD4BD644A9077608FC71921B937671877BE6424B25CA5233553FFC65F60
+496000,u,E83F64B4E85B93FBB9C769CD4CEEF3C67A15ECE3216B3928A6591357A835D5B40087FCD0EDE0151A6D854E6646DD5165F2BAF9D53A461784
+497000,k,C4314B91A02D6811127DA9E63D05C312717D20E59712D14690F3EBF7ABC497812CED1F358613DD0A60208022D9A43625FFD62097F56EA3EC
+497000,u,4608EE684666EC3C60340FA50B09606E66E44A0AEE029A44016923E8258ED31A511B0062990EC291C759450835FEB2495E74CF6B9607B113
+498000,k,50324BB0436023C7211C070C15B30C35979DAAA3A8B04CBD2FA428625CFE67747BA7C0080C401B70D1E90D490FC6C25F590BAF1C546BF31E
+498000,u,373C7662195545524CBE9EBC0933C90D056DB5AEF5C90D0F5701B1478B6D27A45F6C36953C0DE8455686D920F10765070DF3BC43AE0A6988
+499000,k,8891F46FAD09554F8F9D0CB6EC99E8D6FFCC2642D35AE1BBDD84CD3383E1D91665B0752A9DF3315C84CACDDFB242789719AEC25FC42DFD7B
+499000,u,0B729F3749B09572F70A6B648A9DD605B183D7E670D648D7489B3402CC6BDC0BD9B58EF36B01752D80FCE0AC0233255E39B2269102916901
+500000,k,6716809869A3939A2017CD86073A70FFCB79D9FC9AE7DDAAFF05F1E33A2A568CCFF5A8C1210044B6E5E855B0B6BF155C20D9217F5972908F
+500000,u,D66687D53D623FF7A8B0AC538CDDDE740C1A68EA2CFBB7B56327D7B3C7740902C4A9B8D1B7EEF158230A613006406529030F7E75682A024B
+501000,k,B5342982D9D4B666809DB7CDC6C065F8427DDC1D8D976D45764DCA5466E58B375CEFC7DA5833149DCD8B167DA42317F383FBC280027A04B2
+501000,u,0F2FD63C0250F87B77AC677E93418DC52198E0C2B61BEADC76FC17C24690996007E63958FCA5E66089390996E0B1B9C3DF84C57244BB1CB3
+502000,k,23B4DE7F82353EE5371ED6EAC45BC0A5B4EAD4EED933F6CB0A5F5781F9D21510244AC794ED59AC4BBF81CC7AC636897763226832111C6FCE
+502000,u,87B798DAC603DDAFBC0B3C825DE4376B7DFACA87267AF36797C9F2158742DDA2DA1422FCA2963381FDFAE68D4A6258D4C5A09728614654A0
+503000,k,5BE6936813A4128ACBB8548366FDE2972579716A504D4349EC12E2EA77C24E2BAD795B2CF48FF9994CD4C74A4390BB6E5FEA67D219E00B0A
+503000,u,2F5CBD020EAB8F63AAFC71908097CBA88F1657AE3BB382BC77AFE32502741BC23262B512CA66FFE9E649A8DD09C96B82CA04D8688D7AF7F3
+504000,k,19AF96C02C40861CEBCE5D5982A39FA42743100BD8C5129510DD3C4FC75EE5F548C7A27608D9027AB831636C2985040480326D8813612DA2
+504000,u,87F1A95563386CB27E195C20AB5E6182B9D590DE7E4682B597AF1E8FFB321902DC274EBBA0ADB1A79C45E46A3B43D2724FE32357C370E43F
+505000,k,7D89CCDE5545FF26A1314889E04166B8CBEB5D40AABDF04D3D873314EC4B0CC673A3A788C88CC1595F95C7080FFD820B5A007DB90F09BE0F
+505000,u,5E6B35890650AE8E398C5304A2F59B8079B500CB0FE3F2882A73D8143FC80889E7DC4C37F96050A0C531D51493481D8BB1BA046160A34F86
+506000,k,D3C96496DE1E13E0C29C25E6D89ED9D460094EF5CC9190515C264CD492DA11C376B9550E848751C73AF49C8EE7424068F96E1A60F9496E66
+506000,u,53AE0838F043090350CA20A627E3BCF5EDAA363D479E5537A9B90396D117B5B16F6500773F3FDFF1A9C1179836A6AAD8862A4B2C1F87D4E8
+507000,k,760C8BB326C74AC60A5154B211DA9935C1A0A380A338EBF62773957D25920B7274BBC3D4365B6C1EFCA450B16734370FB1045C4E0CEDD967
+507000,u,F681C6ADB0540DA4175D69AA785B358130CA4B55B558FAB7ED88689AC4B0DF53DA7506755F08C00E2F2B45043158D8F633694A1349F3A2E5
+508000,k,0659EE43A55A94E47A8931B396064FA5F1984368D5670B6D008C32C90D116020ACA79CF8EEA091ACCD453DB35887E47E0D3C71D01FC184C9
+508000,u,39C0F5A8BFE7F97D7C4CF42B5E036D7211B9A58FD93F7CE139FC2AC8A145BF4A2EF250AAAB284E48F42C897F84D5CE21BAA868F3B8EE07DE
+509000,k,D1C246C72E1C1A59F4B343EDA2DC0179AB77BC58B51B24EA33AC62B012F4D003012E42D3752BFD6FEE8E2F2CDD02AEF728964843DC4232E4
+509000,u,BB1BD1FB6D5509D7860D6A5423019128E96FE76F0B2BB6C9FB6FB6D606AA08E47990DD267BB5E098148AF0BDD547A430E329978B6BA161DE
+510000,k,65EE334B40CEC408167D90F802992B1B072F253114D7851A8FC94D830D9F1D3A208BBE2BB0892B5CCC6651B5BB95E2F16C93CB5FA9998A6F
+510000,u,7665972A508756EE5A601D0A25CB6EFD10D500C21BDE920EB7A89AAC82CF86A6E9170A586FA8B07651ED962AE1DEDD6289863AF043857404
+511000,k,3A1086E705F6699328F38F1D4B2CDDF1C03746E264F579383D56AC3DC9203D52DA5A7C54264CDC293ABA23EACF850719B00FF093918010CD
+511000,u,1E171C6EE540668827B71FEABD0949AF135EB72F44E1A97EC43E801D64655CBB15E05DFCC69EE9B55D24A92637663E937BE4B598F95B0EBD
+512000,k,974D298DD07DE0FF2617DC95B58077D589E51BE17B73B5E989D0B982F548B9B65F6D3674D4BB44970C72C55E78A2AF38C2E3EF3F7FA44B59
+512000,u,DD43D73C743F772193D04F7D605511A6FC6472109E95DF15F1C2D8E53B9385E518D368384A49FD653A380FFB003BABD1B8E5004FD78AAB13
+513000,k,0D63D2F72ACC7D248D0FA93C26DCDF62C25344E6CE2B41B38BEC553A4FC554950BF6C8C355254A4F925C4F976407DB48F7B7EA8989BB4377
+513000,u,9E26092865B43B46F60BDEB537DB0234008CB483E507C24AF5FA8015540EC5E90AB4A677C6D030979E00E8A9BAFCAFF26B2253265F548ED7
+514000,k,6ECDB4B8B78AFAEDA54D007A2E7D6BA53A4C36AAEFEC429C700B38671133D43D242A29A0F7685418F0D040CD246BD95C240E139701A348AC
+514000,u,379AB972D5C10D20E3E3E3E3F1D57A34A63E126663BA330FD13A1E478AF138AB5383F6A46D3687A217C69FE0F676B7BE5B351CA83B858F40
+515000,k,CA7E0F154DAE0202546D41E1432FBC3DEB307F195D647E5FC52BBA675999192BCE09F3BD624D73863A6421B5C622E75F970140E9D95576DD
+515000,u,180392F33A0845DEFD3957D5D731B577913B7939A357F03930F918CACE108443D96CEF76067196BE26D647630C52E99A73C8A67B6EC66605
+516000,k,094AC2079B472267312411BF67049730DB270F306E6E93B23EE396144F0C4A854D59E482DF57FEACFF913FA94E51B034DC25EA9D6B1ECF6B
+516000,u,8CA78F1E0884287DB0F151983F8214C767BEF83549DC123D36792E695E9C8737BD7551DE11B8CA9CBB166E6525A611B20E17F16FCD339F7B
+517000,k,51A61835A7D024DD4E9E85E79DA712192800CC5BFC0F9D07742F0113DD2D7382D680AB5AEFF0464887403B525A3009DC8233A780EAE981A9
+517000,u,28A55EC474AAFC76673C675AF9F9C1368B486D17C9FD2627F4BD672A872BD509343021D868DAD7608056507F06E50D606425C8ECCEE973AA
+518000,k,1228397EB433D0A4AC08FA06CEE44543270D9C3ED5518015BD7FA2C430C0F227AA582EB9D717969968C3BD073B8D00FB2C2153AE75BD82DE
+518000,u,25DA17421BAD6136D8745C70DD5A6E07A7CD3F1C8E69CD9254FFAD21E1B49AD01221B20BFE91A6FDC1984213BE74CD43BB5694D5D3184710
+519000,k,E209437B47E78F7ED2CAD4AAE60E599C0548D69CA7AA156945C3FB4738EDC03D39A9945857E0298AFFAEBDE5F0E449AD2B4D5B6A134E02B0
+519000,u,3095D997E3990DD0978102D5A95FD62AC50D68492650D002E77550AEB8A6529628808178A614E83370107F082E5E88FB7E683A20C0DAC2D3
+520000,k,121047A588D1DAC8F64DDFDF1F39B7FEA8F304B31AB472BC0B9A3B997F16B5EEE72AFBE4FBD0B5D57870C29A49FB9FA8C59F88B65DB671D6
+520000,u,DF9CB4F99FAD45D93F9E5C2CEEC18A27704153410CABABC651A99DD08E8BA1AFFA00D726FD1814516A5CF88FE49AE7016CC4BD2906602D03
+521000,k,8170B06872951B0C4BC92DB6A9D310720B8786C971F9AF013EE4A7AF7CBAFCA9EEAB3C3173F4550B228D6C202551F296A1CB1F4D6CC3813E
+521000,u,5E72CD81382891B32391E7728168250BC40377FED5F11E314CFDB1C383AFDAB3B7394678BE2FF92F6BB16875408FF0D0554815ED1A7AE6DA
+522000,k,C76B45122C1DCFC88DE764BC2CF9A30BE6FF6BFC9082ABD77F3E97A3CADF51F66AB92AB9FAF51B96523BD0286FD1FA8F64CBFEA2B5918C6C
+522000,u,67C342C060BCC31E8C03308BE328EAAC70FA2F1045FE83EA39874570C26C99B3937F685CB94698BDFED5F852C1BDAAA4E483F2A33109A603
+523000,k,B35408FC6C7A23EB4DB1AC5D516AAB9AFC24D6F6AC8C6EC3FF91F7F8AB0367348B992FA18E5588F5C86DC2C55EA637BEABA06217D341F598
+523000,u,4A7BCE48C1F49A8FC53E07B27C511C334D5B7C749C100EF52F795857264A0F9DDBA47CB4BA654B3509BE01EF3BE2CD6B803E7E2A1761D804
+524000,k,2B5160ABD48348A274C56046F6BCF1442A84485284568508C2BAD824499999BCCBEB3A9C68AE9BDF7E0364A1BAB9212F16B412A07DC713B8
+524000,u,02114291AE5F44EFF450E776D1932B56663FEE98B7E21AC2EA6C19BFBBB0D82FC11C1758442FF932CC7ACABE9B6490EE190210399058E2D7
+525000,k,F32B0D19C81C551C595C78E841E7E9C61693C5A39B420080991AF829479016C180E23609683E9C2C38E255FFA9284BEDF1CC1CAF4869595B
+525000,u,EBE40D476BCF280617B763C06DE89DED9D88FEECDB342C9229C958E3B9006D193869C01FE77E1C8F44468BF5FC2209B12C0D8B198EFA6563
+526000,k,14EE2E22EABF253C6957B62DF68B2B2C35C3A6BD0753401C741579EF62775E456C40CCB4D5C9D339274A14240C880BE58418C36ABF1721BC
+526000,u,74B06D464BED4AF20FE49735DA2F4F1AE32E9F8ECEBD9EE6785142D52C7CC8153D406107C4DA9BC488419469AFC75A828D5963006F5B8033
+527000,k,AC4B373E46D122BE3C2373835155DC0E5AEB160B4F0578065865ABA4CD84085642C4E7FD487924F6B3D3ED88A5C30F1F5CF4483455A91DDC
+527000,u,ACD1984C51BC980862F4F862534A55CA3B2635FBE101DFBB08242AA380CCF44D476283C2353043F4D06A6A3961E3E31EC032170AAA046835
+528000,k,898E677A98A39493B24132980C48631853EB08E6260C083FB337072F6D90CED391B2721F3682F992CFA16CA3D7DDE6E1E75F3D51F4E8CAB0
+528000,u,F9C22E6E5C6ADA1A96D7EE507B3F8E2D128EEC43AD3ACC1147F94478F2F3E142A277F9CE4AE499B8360366EA9FB7784845C7524C5C3CCE03
+529000,k,0B6DE3FE6DD43B3C05BEAD4601E2F7D3FF746224ED9EE98C9406A23095B04AE405A5A22DD73F035C5F9A931888A899D0DFDD8C37729D1ED5
+529000,u,D01A8FAADDFAA105F4FD95DD65070485A7221510582395461AF092087BE0DD4ABF96A142B6B81DE4A858F37A763D5B3B15DFC2F1D68B58EC
+530000,k,A9E0FF26C506D898F613B20D31619B127924774885377BA72CEF7FB0D2695DB331D94DE1B05280AEEE9DE958C65011936A29A41CF0E64A77
+530000,u,69136137798DA08E04FB18814B8616FE389D937532A76C363D42D1405E639AA1AFFFD9EFE116AA0C518C38E3A7C22E77DA55345E807C988F
+531000,k,3FDD651F4F810D168E4531809D32F9E88E2929FBB8FA98A46AC8547459FB3EB8845B3DCC3458AC77D934B1325332521902F6B0A91F9C5326
+531000,u,42B5663E2CAB013AFA7B0D676216789DC35DC5640EC18E835F6E6347A506156138A9070F7825F5F982F58140D806143973F9D08B07DC81E7
+532000,k,9D36189CE323A8D08E2D3C170EEC7051A281B4442854A1274C9A70E213D560A988E03EDD77AB3509FA7D7E418CCEC2CE1A152E80C4C4F96E
+532000,u,EDECF423CB48E195BA79AB30F3F42CB2B067CD2EDC810080DCA1A15C6B5E08D9BB5444B7831DEF7A0EE9A76902173361B1ADF43706EA3968
+533000,k,F8F474C2EE1F3633353B01BA7092643E5D6CD307992E6AB3FB76F5BBD7CD6AAE0063951AA97785E4D3D7D66FF660DE43E350A5665D02DC13
+533000,u,6A6EBEFD7CB523FE88737D6B3310ECB12E3FC05F4A2A526B7FBD09D16782A10FF344E38C318242652DE7876B0CF26D17D5C6C1E2761CF78D
+534000,k,13C7660816B2B809E3AE1E4932CBE60672BF9E48307B75803ECC8B308574E443568507B4762902FDBE02C766DCDE068D593D6C728CDDA0FD
+534000,u,D40D4A7AA8195E3096225D95B2991D0AA870049F4DB454F507CBF6DE90CE665A6953F9020CC4AE10000BC2628ABEA37094AD6FCA87B9A17A
+535000,k,2C2E29FBD10FC4A000848C2343E68ECF372699D4A71AB57E1F018334A8FBA07F8483A056D8AEE80B1AF069395B343DA933B0D83A0CFA3CCB
+535000,u,532A23240C74147F830471ADAA468720D1A5B4F0F0DB47849233A6A1FA0190D62631FC7EB2A9DD8E1D6682564A876692E8FD4A45A8C18C5F
+536000,k,9C415193AF6D9C5732FD6D43892A405AEE199E44165B50E91C2D1ABAE9CBDBEE7B2EE5CB65965D6111C96B71A587560BD72ADAC2A7D640DD
+536000,u,52D954FDFD59CD5B86789CB0436B135763FD962D0E0A2B4DA7C67B08CDC74F3A1BD9255767F311EF50D8D8066F0D564F0B5B816991B891B5
+537000,k,4BB6735B20104CD2E267E58BCCD0C094B63765B7619E5D5444CF5207127F03FCE5C381FB908F26687392BCCEB8A2E2EA35176D0469DA3E7C
+537000,u,E05526894C548F1B1FB862814192C702AD309D6F4DF4CDCF833C133147428B34E3005E50A708838F1FC997E9493792FA8DC229E8867574D3
+538000,k,F572C2C0935F033C9D061FE3F55441C349CE35F7B7571971749595A5E03BCD792DE702D31CAF7384C81C5A7CE93FED9B2B9DFC620A34F66A
+538000,u,47840CC422D0608EAD7ED729EF9391F13207D46D0A80D61DC7471200B648EE7DB0F6373EA8116EBDB95724451097079F1B05CE443E0B733A
+539000,k,DB6D94279F8F086F887EF3C4353ED746DF968599B41CB8FFDF4FF6CC34752C274F8B2D4B28E243CB20D989FBD2F281FCFE9312656E809956
+539000,u,FAD52405E42E15F6B9086BBC70B334EC862A715107EAB3BD96D900CA62407005D4996C1FBB94D29840A0D9D2F0E51A1D357674215DBCA1A4
+540000,k,7609B088CB9A0C05628A1F9E94FF590E0CB538A9DCE6B7D5C4D0A60CC182310BDAEC17A07BF9723FAE218BD39C321917464A2D76DFD48245
+540000,u,1F34252501D884C645C98710B1A4EDDB4881DB3920C8EBB1ADE5134D922E80A06BB0D6F039B6B8D51629135101C64C208C277982CD8C545E
+541000,k,D952B5A47223A0314BD0195E24AEAD6B6FE753FB2615C90EE5B76827A8104C284D48C95A095AB1F60E1ADAA39DF22282FD952D8801217D11
+541000,u,542DE4DA9DAEB3E3ECDA63B8F0979A585098E80AEB3E653BFA12AF46B959BB62532CA563D23618EEF0DAAF7A9C8BB199BC678CC97E852D9D
+542000,k,ADD7C57479866A1F741303102D866EA9C3D0D856EC0929BDF8ED278F9900BA7D165C9887E7817485D6DEFC1704310A06B32A2A60642EC346
+542000,u,60ABF5FCC5F6B846F51146B040563185F7E987CCA46AEA1CFE18C9235CA488A5468858B5938718BBE609386AE1C066888E37771649D9A592
+543000,k,0684936D20C498F4324AD19422E1E03873003F79723F457E0649DFA4D66E50823C466D3C552FA7D6656D2981C635FBDBD637E66CDF170645
+543000,u,38DEBB5A39430F5F17309C8DC7FC59302BF033961E8760AD97123D7800FB0ADE11679EBD53104B54706CC5B2B76626B7BA56C8D58BA7EDC7
+544000,k,7D45B7A3B4AEDEC3F4B18953D7005C58276D5DFB5A5B12FC4461495E6520D93F10F4F1AD482792F168F6598704747C4B1FEF5160A2C6114C
+544000,u,844BD3BE05AEC66DCBE0E5600D7F4DA94FF6428E4DF9FC14943E4544C52573715C76F03F2FB0247D920EE3359EE0A166FA2C0871695E1836
+545000,k,4CAA226A9EFF7AEB091711985AC8B904B30AE18CE303BAE893C69263E9FCD279246D14563B41B441FBF171D11BDDC245C79967E2D1A7BA09
+545000,u,E01D9566A30168495790B9961EE791E93A80535C8D543DFF597DE929D0E49849533178E485451C532F8F3A44601261AA88F7FC83D5D6958F
+546000,k,C9E78D217EBA712AFA49D45032D751C1CA2AD827987708293F3ED9FF2390D8A984E991C603F1EB3722609E89CE6EF315A87247E1D87E4F63
+546000,u,B2C2CF8D7359D260AF573A5E3D3BC4CD1AA59F93B6C63616D02791EEAA481BC5FF97CAF55B40074CD01D398F0D057975BF3B70BD0DEF5D4C
+547000,k,F21FCFEEE4700075FE936733C4E803AA6B27EB379E9F4BACD1DCFC67C8E3C53552F237358D8FCB9301278A903BD1FDE96931BC76E54AA1F5
+547000,u,25D5301C1557088A4CB7BEA2B82A06DC4A581E1E873B994C2BB13FF8BC59389B51182576B9B104150388A003496B5EBF4BDF924BC28412D4
+548000,k,ABBE7B8D3979113143E9D9FD02828810954D82E41CC3E8C4D304D644E9E17CECE95F09CD9647AF4261203967D05852F4C14CB9DFEF6413A8
+548000,u,C2261B5117F374E435785DF8D8A5C99FD42DAD6135F2630825E121E8F201C964786BC200AC60B478574E02AF6320BF260EAFD24F13139A61
+549000,k,AA55A6E206C0843CFC8F299A9B91A965848BD77BD0EF308AACD4DDFE4C52867FDB7BBFEF7D1271E2B16CB395300732948741300FCDBD8B06
+549000,u,AFC412B2E339EE7965CBDC9F8BEDDF8F7FFE2DDFAE57D5F3827CEDEF1E6F734646805E80DA854093725B1DA319FCCB9DE19323D6A06C4F6F
+550000,k,F95A7F31CD009F93495604A60BC0B628CE950D5D33D2BB922454B8FDBB864EA637944099CC68039922BD5D410299FC2725E4AA6A8C9BBD00
+550000,u,6C491DB7D76FB883BCF739BDF6DEA45261CFF21A40EFA0DDCBE19EB3997E01DA5E5C9E1101768A2EDEAD9C5B098C9C24C142AAFBE5B756B1
+551000,k,550606785C2971D11BAFFCB5AE62D7EA8055069AE91B5B8BB2D323403C7175DAC8D393B7D09B375300BC059ABE1D3499D56822FF5048E0B9
+551000,u,9A8C932D10ECD96315FF22E0DA7ED9C0E834D18D3FBA3EA50155321C1A68F2779924AA1039A10FF8143D83FE9978D2C98844F08237612726
+552000,k,E3DD4F6E77B39DF3BC1D7E9A31255390660EF2C4ADA6203681FFEC8AFDACF0A155EC23454891F6030B7E846069A90539AA56434768CA98C9
+552000,u,73183AC9CEF871C4E4628C04C5861EA29E1088107EF72C26730D63021A0C5684C9A5B3B0FADC29F4986074DCF07C8D6591153650CFAEA9EA
+553000,k,851F75A967E2B79CCAF3CE15C706655B0DF84EEEA0D82494958B85549F82C0989FCE8E4B755A6BD17D27DC00EB25CBF1A046A7AE88826ED6
+553000,u,694AFEE333E9E4E9EC7CD1936EFC1336A3A19D14A899BBDF83B51A813D0F783A90CB0445E832D8ABF2E616CA088CC5DBDB4104D9B4D4080E
+554000,k,837734F9438243DCB9511C81A6615F185C79FDF0CFC14ADC2B363AE269347B5FDC306BDF91F9E02D9FE7C66DB8C9F7A1FE0CAD1DD509742D
+554000,u,F640C1F67A7CC792C75FEE1B0FD000D35FDD60F672F899E27305B5AA68A7A4A3C7CE907F0DA96D43FD202854B58D88619BB1627C0217E866
+555000,k,D1DBBBC9BCC328289AA2BF9D2646A3A921519A10F2103CC16A719D6014F951238C81596A8B35ACDFE5B0F347408C7CA58650F3CE0E11E84C
+555000,u,4DBE129FBA97A9D2D56C1C9E6C864809A7B219231DA0D16E6E6F0F9AEA359AF27A23100602BD52CD4B193E1D6AF9DCE347D52B73DFB97DCB
+556000,k,0ED26A84D7E24C33A83A7D73C1852FFF0BCD963138F4063B68EBFD1E74D34EE2034E6F6C7378F8E53C4E95526A986C96A5F5413FD9143D2A
+556000,u,7308DE66C809001A97B207DA2DAB7E9EA43252280EAD349733D68685D103C828EEC277DA6D00A953EBD539080F1CAA3DB948E86F0FD168E3
+557000,k,48570AE95387A338D6F0F9372134EBD3117AC151620B3E65DFECBF3C9A4B2916D8931B3A451B31488DD6C8FF99AF4E509EEB459ECB1CEFCB
+557000,u,D992E54C3A2901B2405A3D8803D773E63E57B68BD954DA01DA4DCAE513D327D4820285A69114929D50590D26C2B33759C0A68D0857C75860
+558000,k,FBA104A5165A4B960EADC73B0619F7CCAB3DA04D8F7222A6CBB2426D0E2B2AA9F43E3D838DE8D8B534A7C8548581AD482CDCD263D82562BB
+558000,u,1D213BC210169EA62764B7461C7E62670C49C90A98A9E21D918A0E0EDB28B174B08C1222DF639F7858F9B5E250B28A141C84AE266DDD5B74
+559000,k,B97D15036871308BC3C2117302F2E02A1B7AB8F118561EBBE590A4945B3F2106667D234D6A597BAE3D9115D6818D7142C4452E6847AE6EAC
+559000,u,1474934F928FCCC9245A798F5F2E7DA20943A18F1C75A6ED65F23575890B8A2BB2E9991982C480CBEF941F14FE4E77629F434EB653F614BE
+560000,k,C956CB3F5B4E3F2A02F371BF58F7C0E1A38BA83C3B60FA81A3E0364AF28F8A222A7C69796961F7CB984E604FACF834FDFB0315122754E894
+560000,u,BC5933E94C7B30E118E7CED2A2B29CB06EAFF7190261100D845EF4268550DF93E1F721496A0F60680CA7F0F3AFB233AB63E1E348E0C13BEB
+561000,k,4B64D0B1E250BB3855684A0F68D5292F8B0880876EB0721424F12E63253FC0C2A718DB48B50E8673E5E05BE446737FBCA0CA834C510FB611
+561000,u,79BF69274B8E1EA87125A39D8FDA9225A3526A37ACE4BD602F62A70C56A91E841FA7A0D0EF5C188B84191B5486B93B111A5FEEAE48CFC4BB
+562000,k,324F3C4D900BF13803792A2F632AE705FD0EC3BE1A9934FDE250588331A6E4CACFD93175CF8ED6DE7CA2FC89C574EE4C2FB7B8BF6478EC9D
+562000,u,07853A7DCD0078A6226A21C4C271C9254F58BED65021B9FDF3A4DBC4E7A340D6E389C50343CE2B0A44E7079D5BFB4ABDECD3CDD207035C19
+563000,k,8E7AB696F89624B47C6689E05022BAF0D6EE851062BE859EA51FC4EF1CF56435A261DCAF9F24377B5A1C9628B839A8643853BCE8BB55439E
+563000,u,266D71F4BDFCA0DFF9CF02DB0B0FEEE593D6F19CC2858BB53CC68A0A5B3BDAED2DE35B2ADA6A0426FE9A4AB3C676C3EF0863A42ACCAC8096
+564000,k,F31921BF88E5702E5DAF65599573C29591A5B7FC37CED304BFAAF2625CCDB1205C659DC09AD3D520CF42160FA2C37B3FB594655DBA537D6E
+564000,u,AA733D4082749DD3BCB1BCC9661A5D840A64523AD19C2AE84B5207C032362C8417DAE686A7D3F3A800C595FB9DF64B141FB5C85F38D10322
+565000,k,AC3B851504D27C63E4BF56F8E39891A357FF131663774AEF198415E1E4461F970EA5A9641CDF7194EC7C9078BCDEE8512B138DB12278EE36
+565000,u,4C324CD1522248590BACEBE93EF8C54492F5A4004DBE888F68AD143D10EAA22DB286DE3961B76B0F247A7A2C849E3D1F714F463896B76E26
+566000,k,4E63BCDF3F70C17DF8AB09808AE69843F4BACD0254D329BFDDDBC3506390C8DC5FE162455CFC5D5DE2BE4F6944035A4A1C3C974A64329559
+566000,u,29211EB0D45CC6BDE28CB6DB7B48BE32DB150559B7A8C6B4632C9A27AFA85FE47A10F7DB0EB42712F636E8F1CC54ED83066EEEBDEB73217F
+567000,k,44B98AEDA39ACE8A3514AFB16EDE979F7912746C6D17DF34BC8B7C824BAE17BBA70C5E11F8297B8C59E4754D06ADDB8D6CA979EC6B732D2E
+567000,u,E6616627FE0E40FF2613F0A5B6764339574BFA33CE5B5DE3366C5171D2D920E46087E73214705E0F81460CBBE5734903FF1F8D316DE3953D
+568000,k,6963D6EF41934CA7A639CF56FF941F18BBFCD708F417CD6CF0AA5ABF61B1EC46DE808BEE480B5A51BE8CC9CD2F25DCAC1E01D9C1A1C18FF8
+568000,u,88DA684448F2C4B4D63D5841B9DB7543CC7E17BDA6E1EC23CDC998DB4603B04EBB7CE8D9830F056F2C75369CB0E76837D8E2EA53F777BF52
+569000,k,9A78930A73883D2C1C4B59D3B9A8FAB1D2A0889E98221518DBBA098572AA209810335B3AE8D16353551A941CB08F171EEFFD882A8B27D428
+569000,u,2D932549AEF49604A9C1364F8398D359C8943F7D1023489E425252BEAFDF9F3440F4F4C4C89EB0F5EB2681FA799548E60B3680D9669FB3BC
+570000,k,35D8051B4B1A9714C82F70B9956B30AD120137C8F582FF756AB7225FB5F876F4E8A2F070FF9396EECCA4DBD1798256180387528764E37B4A
+570000,u,24B846F2ABC83DF91A00ACAD4750625A792024A2A36CE3E9F4F7CB8F76AE8EFD9E75982C02151887FC5434C7E85987A4BE7A4AF6279B9AC5
+571000,k,386144AF2BFB8CB704C5804DBB2EF5D9CB4660C6BC18892083932C2ABE336127E3E5CDEBA216EC8CE642BC2B164494D9FE5BF59C075508DD
+571000,u,EBC4D16711901BC40D88BCDF5FEAA8DB68B8558135FB610D2140EC0C7B9FC9A3E88765EE13DE466A2DF285F8A361F48BEA2B65D22617F367
+572000,k,5D7797922149B7C1A84FDC0065F465FE03AC9D28541DB88DBC8A45C10B8B0196E48CB229B4B3D552A9FE7E9A7A90B5A551F371E056ECDA61
+572000,u,93C9E1D3ADD51C42DF3653093B238A2E69108B590CFAC1783A7B27340015FE772B3844DB887EE37475D5750672FA8545FAC17662AD2CC239
+573000,k,867B66F28EFB54AE106A625DA67DA352B649A307374C803BD8AA2716A1465AF9BA74C97386775E99F82F3E6B264F72F8FEBDB2DE37234C56
+573000,u,A85362D000AB131046F3377A3C65AD96A1B3BDAD733F176254299D0309183697A9B3C705D828FD6AD538DAEC7C0E8D6675676399FC53ABBB
+574000,k,CBECDA46414949B9B65BCF7DEB7DC7E6936330A7D2A819F0A3167ACA8451510E9549A6502223CFC2D55E7137E2BAB34B98AC882904D4EB78
+574000,u,7358E2D1FAD07A053293D61F79C867F1FB43714E78412AC7DC878C22C2DE8134B49D945987AC4060F01363EBB2D678E25C0830E7B1483EB5
+575000,k,38E0A1D225F2B895B5BED6E2DAECFB369912DE63024B77572B6492C31A74D2EBAAECBE5829F80389F46BE713F8993E181514AFD89F140728
+575000,u,C4790DBF2A88666F696357702828C748E0655C7EC0E9F8D32EA2A17D5ED163EBB112611282E4C8B47B4A9DD4F651AE2E0CB84D9E3F483375
+576000,k,117F6CEE30236392E47FD2D96FFA759E0AA97BC22A02B1707C11D86B1B39F07D2A2F23ABB08F95466E8181305BA707189AE7DD72736B7541
+576000,u,8265369DEF55F87DFCC4A0D0E813BB22AA19FEA8A5DB3E61768EDEEC9699FE74754492FC002D0B63768EA5975D02502E5F83B2ADBFE7E5EB
+577000,k,179813565F9971F95148A9543D0323A24A761ED6FC4759368809EEC788281243ACA5E32CBC6E34A459191DF6D97A5D8EDCF72090A7846DF7
+577000,u,8CC3DEE95A32E1D8236541C1475EC256D3243660884DEE6C05C0A18BD262C7F05F4A4E31D0027DEDB1A378D9633C7ABECEAFE5F6BD193E60
+578000,k,903D733D31981F3749FC5744D87FA86E8AB84B82216E28849E224C18306EDA758FA7D412EFFE03BCA08128A04B8AD8E6ABC5DBCB56A4D46B
+578000,u,026A475086BB5C3390B993C13CBA8AE1A455FACADE369BC3BDA5D7581076981207CBEF187D03A5F908D0668EA504C010993A3E31E2B0B804
+579000,k,95A2604FD5922F3A440DC414814FF0E7DD3E920978C72956C586AA56FC93701B1AB4F9702A477C30BB10BA4D6120B8EF737A945606260952
+579000,u,4A60ACBC408198EC60175430F10E98B8DB9051E29D02D8F1FE4A345426F2A87BBC2981BE3E2C6C1887233EB817D8617F06A701563752328F
+580000,k,F4A5B570DE958736B3EC30AAF6F70DE577E0646FECAADBA993898634CEA97564A4ADF8F5B96DF12FC7229C3BF70B567EAF0649FC7EAE1808
+580000,u,3C74B50862336F2615DECE2B38164CDEDDCCF9CFACADBAEB3C8D74876AF6E2281C41F6F8FE27968E694087FD0C451BE2A36A093555EAEC64
+581000,k,9D3E2E60EAE746B81F6E4B533A84864A6EB28CF0F0C776BC78012384EB3A87549C123D496267DCD5A0EB6ECC6D2046A79A9EDC85529EBC34
+581000,u,F9DB25E1D77BB726EDC33D5BCBECF0318F025115BA44220DE502B26A0196B6CD05E9D753F60A5D7B70ED122809F3FC1376614A67D9C317FD
+582000,k,A04571E101001C41345F6D73CDD0750B5EB5596FD5B2AA3E8F15071EA4E1A7035B367A0038EBE9AFA569A21D3E65530D215EEC82F624FDFC
+582000,u,A68A35B39DF53A46500708B291546F601BCCD54E878AEF24F4A607C695A3D11E225A13F2790D4B023D4A872D9F9A10C16BB4E7239F7091C6
+583000,k,FDE3A8424BDD686F13BFFED082115A2B3C93645B13B1306925ED9E457DA612E8728972BC2CF9D5BAAA4BC2FD579E064E12E42945BA4A9081
+583000,u,801BEB4AAEE0CD513466AFD91A2763B9ABC5D0D0C880C89C3F53D7ED5C917EBD4B1770FDE5246319AAABB7AC9C838CF555CDEF909CD5D902
+584000,k,9EEC33E92F588AB630997953D2A31F0B3B30B145ABC669349DC9911CA2D23E14055A59ED1760B1146988954ED075D22EC760DA2BF8ECCCEB
+584000,u,E9BF32EC4D4C48DF54705739759369C2DE6B93ED22B0B4682F8F5FADE3F5E93DF699FC8D0DAA84BD00BF9219E78F88BE0CB14108EA13A6F3
+585000,k,B55E18BABF6FA0409C5BCFE1634CDA03BA95F67F21EB27934FB60E0E351A322A5E98FE4EAEAF179792D8B1750478A8F71D6DE787FA35274E
+585000,u,8F96DC13EAC2C018A5F29802D563931572B5F127EA0D1131400F1F3CCAF07AD7F1277F16854551D5D3472C25B652CF09F2EFD75B497041A6
+586000,k,8A1D3BC5FA54B4307CF4E87ECB3EFCEC77D786418BE6FE96F0AFA50AFF9760B57D7FBF1B57C3C3C5C836484560C7DCA95D4067278D840E2C
+586000,u,A2D6765E7A8861A9069F20971DA7DE0796807D103DE0E3F2D00FF6CF99C56B7A06A6C3DDE2DFC7FBD62E84F7CE3237CCC3D927E96F196493
+587000,k,B908F0EA7A901E962F0513DBCD6FC8C7A568BA4C0797B660ACA123D3D0E49A0FAF709862010E617C1A84DF64E5179E5E48734145D57D5281
+587000,u,650E377C0291C876388C7F9121A3ED2AD413F1F0A5BC3B70052AB017894F5324821E402A46E70376CAD719395ECF8D38C65CA79B46598398
+588000,k,66A99E74CBBC8B8BCBD0B08C864D7F73C8994C492352FA40966E85AB6310D39EDEC9C0BFD00B34CE06C66A9A98FF6723FFE03EC837B9B44B
+588000,u,9FF0B4AADC6300F66C0FF2B593C9F0376B12AC38643F9024777FC1627ED015B21FD8969CBDBA7EB70320BFA0EAAA2EA1221510EECB9239A7
+589000,k,3056AFBCAFA809C003695BA9FC5087F530E4EB52500357AE7506F1C9CE888513A87DBF1F512BEA19A96AF968D06F5697193B289479054246
+589000,u,956C9B3204B863CF879EA3C70D83B0781AA125CF63CC82907265E4E7F01B0E075D483702DA223C936F61BE98CA4B6D47601867A43EC9CCC5
+590000,k,50D2E9FCEA6534335A18BC08F953D927D03F0075A68A4618C40E75E5DD3855BE5F458D9D2B2FBDC4E2EF15B09DFC4287CDF6628705CC4963
+590000,u,7B50AB542385071D3B6FBA57BC29976E628330DC7FC73055EAFFB168187E3117265E8E7716B3C0BC3BAF2B28B84F78030DC7C55A0C66270B
+591000,k,FCDEB810470FFDA461AFFBD78173FF6394DADC78D10A0F72743E08AC55545668339E0EBF84948C55041268F8175A0357BA93FE57A8CCFB1B
+591000,u,FEF7FA1470C158002ECF0E4612B18BC60A95557B94EE5833CE2B3876028EA67A96B4E9F8D31B3E432DA5E1310F6C5D9D7489BD2097AD574E
+592000,k,5E78C71A8963AD8D2ED1E94632D7B41931E67F81D298B14DFE212AD0A0FB0BC90BB43F0A6324765F2FA3E032FDF3006B093AC7A3B1B2E3E9
+592000,u,A0599E963818EE6185FDCA13134E45B982E92F73D8FDE58D31BED699D6382FA3998D328DFC50EC9DCC4F1CA5012AA75355409078A4AF4EFB
+593000,k,AC0F4709CA1E7F43C983DBF3177EF475009E229B084F6C7A0814FD4AF40C3A2105705EAEC08E5802B4CBD8FB17F64F6ECB3E2BFE694E8F98
+593000,u,479E3DF07C6FA9396436019497320BE9BB0C3ED7BC4025FFA7C19D77CBD1C9CCFA554B7D7DE3C666042F6711CB3DA7CEBE1A5B3CDF6D126E
+594000,k,9800A570F103405667ED786C562F342D2778C9D510D589266EA53C77C76D75551771412E178DD705A4BBF7191379DF7F8CBFC787CCB10FC1
+594000,u,03791566FD7667BDBF57284D25D80B6E4498EFF3F1687BCDD2C332C03DAD185B11B037D7E22A14842F747CAFCC40F45F4E1C0CF8BBC2E8A1
+595000,k,CFBE8854BBD40B2FB50E879F25AC8C7B05D7C49D2874E6E61E232F16F161DD6336A18550DB02DEA7780DB0A8F6AE025768B27FBE86AC6227
+595000,u,68FB62317F1748E0C8D18A448758D966428370A18DCEBBD5FC0DEDBA91C5C2BF0071813444F4855FA717E0C5177AE2634365A98B6C20D734
+596000,k,6154CE541F8CD2720814D4EF3BB9E0EEF858AF8973AD4922D8BB0C14866F089A87D571B9B1770192D70DD721623E66D624BBD37E29200A51
+596000,u,A93F05948F784AC4EEB5864884521D0E1D347A2B8F54875A32636259250591FD7B6DD20BEA7FDAE78CC1B8D41943FFAE28EC70DAE9163925
+597000,k,7B3A4CE7FA818C160C199733497A983F393E37635FD289DCD3DA93E010D37B466276F26A9E7EF2C8375EE9181376EEDCA5EE20800303F9F5
+597000,u,277A20D9659EEF69DDCC80CCB697E8ACCC0CDB608CEC960C7D3DA579CA092F7B4AFCC693AC641DF5DD6F92F1A5B5E690F57451C4C96A8DDC
+598000,k,1D2298A906DF1EAE45B537409AEDDAA5F675C79229A7B7654FAA92E8FD90571E64008395C83411DDF995DD2272CE19BB93E0980848836318
+598000,u,280BB69D9F424DDE44B37CCE24637828489DEE35C61BDDD55816B0F3FEE1AC71C208172D8B8F33B11BCD321402D24A6EFA2E51420D18A846
+599000,k,226EB6FFC3A4AE15BC64A497F72188FDFE5D0B9FE35531AC3FE4282808E276561B518CDCB8509339DD4FD6F778A0854DD4BC116561B7EE9F
+599000,u,7460FE196BC26C05C369A814E7074359F59FEB2671996B5B926A54E51325168ED08FABD960C362BF947A0AF475A9FB94DE3356A6AFA55AC1
+600000,k,76416C18106B720EA498BCE60FBDC2E7E9A155D98260BEB490B9F848FA7C3F008F374B8268F5B2EEBFF0700070242FDAF780AC7603D4D02B
+600000,u,961F7CCD23D31CCC20635FCF67FBD8665D3A86BBFA639F657145AD8B5B1635DD5D0D0369B85B373E7EB0828BDC85FFBBF0CF40B61A8878B8
+601000,k,C80AF8A4A69CE64D638EB8FD9B3F024767CCABE86D43CD70FC2B50EEC79E148F7811DA1791119DAE521F125F1870CB2808174284F865824C
+601000,u,EB538ECC60DA627F08A91B840FD5588506C51F0B569355206E9C3E601B6EAB041F5663A3FBB429524F819445F6902C614BE43990BE45CA8A
+602000,k,C71BD7F191F0B94723827A96D6F09B75D83B389107BAC75964334D9BE1CCCF1C86984BB00FC44A602739BB1B05EEC6B5B700AC7F13C26E90
+602000,u,787883D86D23D74462C1714583D9765E9DE1B455B59613D661C0DE3952A9E85C7AAF3C08D0DFA7A23C44CE58C45C376A590C7C509696A45B
+603000,k,11A3B4BABCC1C20F76A3789AD2C3E2A9592CB4A819AE326C8AC547DB86C02C28021F1D69264B297D921ADDC16D08DCB10B62E15F7DDD35B8
+603000,u,BA0E2A799A2A216EF0FFF02738E019665F8591645A487AAEA345EB7DBDDDD0EDD21F21834B48E922D642986D3470D17488F35D18AC823189
+604000,k,A8546738EC87B0C10AA68C37C5A46C095EAA656244F90E7D22504C4355B6BEA68F4C1EAE52CD4D27185B3C4CF56384955A1D45BCCC89A75B
+604000,u,3AA72214185A5AC2EBBDE39ED33F753F6DCCE55FBE26370FD39E67FF830BD87592F2A521F0A2392B0D4BAC4CB8729D283885120278F04550
+605000,k,D4FA233B6377B0657312B13247A49E46F29A9BB7F4C570AA62A2D343158174BE96FBAF974B5E44E682B211E129BF9BB45987270956641F12
+605000,u,41F6864660527F99E1E541399B55384CE602DE9554C8B8DD3CB856F6A66746E4D392B2F79E9A8EAE54A251E35DC8D662D684C1FD661AE3B9
+606000,k,C0CF03DC869B5A90AB75B3FF977C7C239FBF0F5DD74B8CA49864FD30188E1D05112C5D09683A2C86A94BC72FB08E1C1A98AC1608DFAC2401
+606000,u,82388156981B3D464E85A848EAA55016A0F83E91CEBE322B18AB350E62327241871D5D8B2BE3371CA32838D8B37D4DB6C8A26D913B4C4F9C
+607000,k,7EE570BC7F385159B237FD091640E0B87C4601CAEFE8FAE37D4A9051175CA4FA80DDF3AA6C41EDE82408F2575B3C8569815E2A5AD7287404
+607000,u,C96C4B314B72299AFAE71A12080747C95CD840F962E413B470ED675135E02E045A76B3804ECAC1873B318BA87B1CF04730CD981DA5903D1A
+608000,k,7BD7A5A23A6FBC19A368BD752E3A7CE559319C70E0319757B16D5014EBB1524D7E61D8D2A1CD77CAD6572D570E75CFCF61DAAF2D9FE957D1
+608000,u,76D3EF73CFF96A96F7793FA6F8D69643F5AAD44A4C1C2862FA46A54B7465A512E461E73532E581C76D073DD675DBF541C53130606299E61D
+609000,k,86F47C4FD6185B62B790FA8144B867EAE453358B2D96668E3606CA66DD7215DB98BCFFBAA0796B4E23E5C1CBD6F3C3EF8B83E61CA795F20D
+609000,u,A2D067A694B80FA6C580C230421DDCEC4F896B475CD78FB2C75784EA90F08D08C98BC3BC75B769A9848B2DD87FB9FA91EB337DB012B7C0EA
+610000,k,5F8F1DB99C775C7FB182A131382486739593459A0AFCC6C4273906BAA21C6E5384C0AB9EE2584F7D21DD58FB29AD57D007CB9EAA0D254130
+610000,u,901C738395E82BEBC7596F440C3A6A1D5689DCFE395B9386CFE0905355651F87D62078960732597F2389C57DC1F1ED16F643E35147BE3684
+611000,k,34DE12C86DBE55AA9AF2D6E0C6D06B471208D95A83CCA3FC72590CBEF6B3DE077D0BE8BC08788E7CD386607628C483264972439068901642
+611000,u,13D5F46ADC50AEC4261A5FF92A776F605ADF57CCD5B9D62AE0211C80BA852C05438955828711BE597D0919310B02DDC21DCE6B041BCB66C8
+612000,k,8F2EAEBB52619166BA44D1BA2FEC18D9CF40A89A4772F3C5875032F91E78BCB38810B9DAAF4756C0AD06318CD792A31F404D23F5A1FAE46D
+612000,u,3214A6BEAFA2FE4512AA0720D7FCA2C5BDB13B83A01CA06E5B1A096B1221E768B215CAA8FE45F85895768DB2BFDB4B055EAABF06BE3989BE
+613000,k,A46496B43BA994C2F4630939644F62B2B6690EBC60DC2007B93D5F2C9582D3DFCEBA6F9C052C098A1A67E13C1F5ABFADED3E807706C97ADF
+613000,u,2D8D99C454A396BD68DBF04E595DB53C3E6CFB573D5383F58AD438A49F56190ED693931A95A4A8BFB26D10CB5B1AFEBAC60C3DE98A86128A
+614000,k,1A7306D71DA505ECF91CB766D3F0B9460709818203504CF64D9FF03C52536EE218A42A71B992FCEC364EAB4942D691E355CC9D0B59CF0BC1
+614000,u,83D4FF8C0A5A73E499BBA7B8B1212104645666FECE77E1D0F8A4478C71D352724DB837EF75E59662CA2AB601FF82E955E60346BECFC4135C
+615000,k,A5E824B5A2C463A1662A2F18C03CCA21F76DC349BF68587BACE5D1919CA6BB1246EDA38F15887ADEC480E93052CB837608D88507175BD2EF
+615000,u,BCA7F23170A65052FA2ED27B0C78C78CCACAB8DD209C5A611AA7DCB2A8413A47C3DC36721F096EC73F7CEF7C171EA477C357677A6508BBE8
+616000,k,E14E0A45935D35AC74820462B2152DBBEE56E7835BDA80E1A353090752CC1BB6ACC3CAA3A4A41B06BDDF2557C233FCBC5EB1E54FD0081D44
+616000,u,6D6087A65C8820A59AB871600385B76EF5F7B1F8A18711C589160696ECC1F0CA915E923A02C4F8ECC28151C4B28111680B60E21201F629C2
+617000,k,9FEE550156DD2953099954AA2884D9E7218D14C5E7827DDADD015F0BA8DA8C1C7C7F742685EBBD8E0BA2421CAB6E0BF9BD914C78EC8E0589
+617000,u,F4CABB16EF41D867175707EF00E0023B67A44C370DDC76D38473DB9193E96734E18F033573C3E604095E1564EB8795946CABD415ED6A8096
+618000,k,02BC14DC3BE43425D6A00060D00036927107D587B2B8BF6F142D8AF5CD4A19ACFD61DE980FD013A25671F26E4A8293211739E0C8528E5E9F
+618000,u,03FCD997FAA0CD9DCC3C40479C2DAEFEBBE34DD7221478D332FBC4CBDF323DE1DD3E06012B18E337D8B31A99ED43BAE60B2924DC9594E4F0
+619000,k,CA63E4CA007ABB76D80CFBF2DA8410760B639736BD61332D65AD0852C48C53EC766E69F8EBC4E805A1F2D370FF25624C739CBE7680E1EAA6
+619000,u,9DC57D874318953A37928231F3C21DFC3256C1E253CE6B7A6163212BE5776893F3A8699363714443F283FE3C65D241CCD27EC91C22E31AA9
+620000,k,C27C98A41E05A970451F0C2854510140F6BE7E1341DCCA06268D794DCC4490F9E69C7F037FDA66B74C015B207304EFAEECF62DFDB237E5D4
+620000,u,86EB8EAC62622AE4DA2FF11640FB002627D0C5809585CE4C83538E6DB07AD6D14B74A908688D8D3C521A0095A524E3CEC90639CEB3633979
+621000,k,31BD6918DF1C208450085FD0B6EDBF02288A79E7B229448D6AC63B8C1356ECB4E54CE64F74870FF25AB1060F9DAB72E941509697C19E5317
+621000,u,C465A33C7AFCA1EBEB2CBA6FA0EDA85A66DE6C7C6E79EFC231408B7D2391A96393B22151C591A3197DD0D4C6DAE5CF1D3F1E8DA2AB6A7DA3
+622000,k,F5DC0199AA699593F3FA0A1D2DCFE3C459580AF21448269E98B798642683A805739C174D176F3BAFC0C4BFD5CEE3895727DBA207EF45D4B9
+622000,u,3E7EA6D8262F66768D09633DB80A3EE3D37CFC8B932CED738BBCC7A41E23CFA696D48723F0A2FC31C07EB88BBC247D83B2E21A38731402F1
+623000,k,D74280D6FB08D7BFD2112F40A161B9A0082994C34CFBBC0DB8E15F58FCC1A43EFB71AFFB04E0E811623D536E0CC725903AF7C175CE94E872
+623000,u,97D631406A9B8BDD8397A262E50A3CC000F472690F55799B4A7A82A3D2AF97224CBE0CE4554CEA4CC35623ABF7EE03043708438AEDA01469
+624000,k,D7EF700D02E33A0539B1A257C65E53972B2EAAB9F97B268D726D4AC728667C771C6C8CA36D92594D0D39B99DD193DA4B3AD9483DA24DDB3C
+624000,u,C3648BCCF833094E8BAA3FB4B409474016695B9FAF8974FF931FD41714808CAF9F35C7683A48B4104977ACDBFF3A8E021667F6A93316EA23
+625000,k,E8292BF290CB393C40D64A2666EC5D3E6B6213EF56E651F29C3E8F201054689FDBF47137F080C8BF8E1A56A2FDD63B129DC088408D21C33D
+625000,u,C40A56BDCE702E10427E4E406BD3A555EFAADA449019BE046181EFD2F3DAF9AB973E6C30B510E4E75CAB07CBA190B9B11181F285FA66548A
+626000,k,07F57F76DAD24CA2E10F1DA824E73DA33F3DFD8B933672B671A7D9B488549992AC31B1F48F08A6F51D848941541B3F9E316C38E21C15B88B
+626000,u,3E9530FA7D2F40CF4AAF1C5966F44522D33E02A82F940858FA72BDABF21A93066C3E87ADC355BE903D52DE45C25866BE4AC85335EC3CB918
+627000,k,AB33C8F696660AFC4F9B18B53939C6DBF16279623EB45F3A4948FDA0C40C5DF54CA8CA5ADCE25F63F3755BC634FAFC96B607D893AAE245A2
+627000,u,30F9D131F13FF60A35276A0269A91B3E079BC1EC2F6099D8A2BFB55BC8868320E6E171C91F8588C09613BE04099D1B84958381A9FC31A0E1
+628000,k,1DAE674334A33F8BD02A9F969FCDAD2C755937B5300AF24D05D18F61E4FBC4056B868EC03BEE907D86E07FBA7185A766F5F10761D58E4037
+628000,u,499ABE54FB45DBC51BEEC245A87059D41606B9D6FFC32764882686FFC5CAF04FBD6C990F0CBFCC00859DE481D65739E3DF2E16B3FCDB9618
+629000,k,AAABF0C78BD9E0415D3849410FF6452439B2AA3493910C2DB1E10FF33ECC7D6DF20857B4C2AC8FC1E43D2278C62FA38EBCAD272936D86548
+629000,u,BC733CDDACD72401DFC1F3FAEE1706881E37BB233C29ABBD68145A4BA81CADAC405E60F67C194CB04D4900766E901C976953D341A9434A81
+630000,k,1D79354857A9E9724D14A646917D30827FE210CC11313E846AFDF3EB9EEE48FBA54FF2BE71207ADECB624A698281919E3941A30D9C944007
+630000,u,96007AF236F45D516D3D94550F8C5FFF5EE6071174E60948BFBC994FEEC61E69D53F52F2BE7170E0FF2F4F73FEB7EB538E3D49D08AE02D9A
+631000,k,2840F1485C7214289BD2E51126319599752A1112679BFBCD1AF803700024BC45CABB3AE27E101C28418B8D872768698630B0BB0B3837E6D8
+631000,u,AEB8F826BE3DC15D3AE78CA8FFE0816E271C2B102C52AC63538D1B9F18D83A0E8079CD5CB3D520629E23BEE818FB876E521B417CFBCA7C50
+632000,k,9F3BE1E29274DC266FDE718E5B5F1E0FED408F2CF55008F7416459801CDF76B27CACA25437C98AAB8C3444D6437567F4AB515B30941BD28E
+632000,u,6A21C59DF08286ADAA6A8AB5DDBEE5982503D2CCA2E04DB52D027E92F71FB4394A5BABFB7782BFD87129BD70EF7E7BC4242FE1B6A3E6D289
+633000,k,AF360FE22DAC25931590F0AF5C16E392AE94D6C4DD4499FF5E76F6E08F47C66F6E2244525DA213330D3DA3A623E78B6050FDE59F13A4A44A
+633000,u,6394892F3AE7596BBA585A70BC08188F9A28334BF029104490F1B9917094326407ED0B211B156384E40C581F20698B8A6912988FA81AE053
+634000,k,09CB1DC60CDBCCFF1EC7291AE4413782B7436F1D4883835108E001014E23FF7CDEACC61ADCE2B42FE17597AB591B7F00F7689E3A055C7749
+634000,u,E35C085BCC768CED23491C271B4C34874E9C90D1B62F9C681F3D138782B82902898DE4A6CC6B82F2B8C464AC981640A222FDE4840B092E8B
+635000,k,210DFD4C5258992E4BE4D6ACE789E9E0F5111634632F17E4B23BF692F0F4509AF0682C857535F3BC82FDF34418C43ADEF1AB6CA46CD90BE0
+635000,u,9E553D9AF24E3145E558634DE373A2523A527002C51C2E3B21AB68F8C3F1D60DB92A86FF7278E04BCEFFC740EE00B523CE883E35636C3618
+636000,k,8BBF4FC39D92E8320B012C911A833E54BF7F3161FA29FCB54ECD438AEB0101B906BA3ADA400A1211541AAE22798CA46F79763D2D42290004
+636000,u,921D8E24D5CD2C7E431A1FB542384B12FE4FC71632EB9BB8D6D60B49FE76DD11E6BBA9881D024188C2BEF5CA1D6CB79D5AB2C481D3200851
+637000,k,B98B9D85F04E145A5073FA5A98D2CF842F859A554829892C2038BC6E4E161BF786599E7D2B6D1CFC899C97F872F12FBF137DBF54B1EDBA9C
+637000,u,723863CE95E99CE15772DC0D5171602021157377AC532D97F2189ED2529B8C0D48B1C2B41A53FEB910A29DB213C794CB7231928E6B964E31
+638000,k,5732072DD8FE8E1ABE05A0B978D3B06EEF902B09E8962D45277AD938EC64FB7163A129EDADFDE1CC6A567406A754AE795391E12A096CA5B5
+638000,u,FC6BFDB2A61937CE07677687BB7CE67C5A2681ED3DD200FEBD3E87D36E28E67959C52C4281903D6813A532D6CA05AB8CA7C93D140E03AFF7
+639000,k,F39F18D277130A6967DEBEEBE9E33CD3DC54DA41796490548032C89C08D269B212842D88039E70457CB5137913F01B5B43C83A695260BF5B
+639000,u,B05791BD2F367DA4BDE8939CA99F27C65151AB7D1D33FD55F1DB86001F0782AE966C265346781777EDD340351AB38A1F61C47F48F220FAFA
+640000,k,B30157E9CB69633B8A43C18C31969B8DC5183631990F223AA706B49A7F4A9867D2E7D0D7DE9BF305EFA6FA3045C395E6DD3543F93E87D54F
+640000,u,5C68FE37B94159DFF06B024762A4A3A5F845E9D7244A4C7A901D8ACD2ED4C7C38EB28F22663CB67EB38A1E058C68B9AEBED242F607EFDDBE
+641000,k,3DB5DC7BF388972F1250622E901131B967FCD3A5A99CC5A2B7296A4421D525436FB58D33A2D42284BF66F298C1CADE00557804D7F1348590
+641000,u,8F327CFF6699C26D33FCB92F5FE58435CE6D898E44582C107B69ABF19E06838D8C7C9ABC1C9D0405238923B57DDA03EFCF661A0F048268E3
+642000,k,AD12E097E0FA69B75440F550C769233667C51DB7EFD74328F7AEF0EE94055C70719383719B889B89AD493F44E0389A74C58BFC8B17FF7E35
+642000,u,26339578B57B5D41C392B4E7BB3D733F1D2BF4675EB5DFEA7EF6D3FD26ECD125B1397F676E0A361258B3C27D46DB6A3D2A8FC573BEC499E7
+643000,k,8957B1C73F15E9B5D7BFE166BE64AF56D8F815338AB7E8CB459B0F744CCD5E15A1133F3E32A58D8C20A7B85127F0EF767AA405771B4F68A4
+643000,u,CF763013FA2944D61E3179E754E3187F1AB389BE7E32E75AD161E3F20EC9DA57F1EE9A5A560D2E58F6D0B164CC40D6CF7453EBA382DC0675
+644000,k,E6FEFD987B1BAD7B586F8338AE952FD80BCAB0B1772E284B8267B2A5B228A57F3C60E5FE3AD1A0A7DA570521006F0561CEEB011F85CA46DF
+644000,u,F6A46CCC6328BBB95832D7134720FA4F066563838330D5843EF45F8666B12D5207A6F41F4BD6C75AE07A541C12952A135F9757BFF2897DBF
+645000,k,D19E9EF651DDD3A13D2DDE2182378F06643CF6FA12AEF02F90512366A8924BCE47BD74218A071732F1804A7EB132F99F04AC57B1EDF16498
+645000,u,2AF4AE9185A0DA727B35355FB5AB9B729010DE60D2ADE603494FA374D6495A256C165A2820C2DCEAE1919C3CD12E35396ADB8761D89873F7
+646000,k,49B7118453CCA98A128DF339DC9D227C18B420090F975EF5A35D90A76F0D3E82D5B545A4C2B87BFB71280A7A4CE6A47D782C892513AA5700
+646000,u,8182C73B750FF7CEC3038BC0A06B9FAF558D9AB0B1CD2BE0AD880FFAEF02FAA8E2A76A20162C2442E5C451C04BE12C9B64DBC0BA5E501A26
+647000,k,012D5955C831C547329526240A791D905FE45373A4B4267E0A45F91364375F7D9D02A71F15FC624F052F36FBA1B4CEE2A8E345A421A1D476
+647000,u,BF70FF1FC5587BE585F5DFEDCF3BDF0A54D5132BD4C48C87B06B06BB9D99BE0B975FA186020345C4C389F5D685E181E6375FB3E29912977A
+648000,k,2EDF1F9E50740783B897802BE52087AA76C3113FEB881D8125C3822A083A2AF64A5C62EE134F649A30E7ABBDE5AB7906D5513410BE7221D0
+648000,u,96C713E13EB276BD6E48F70F57C05738B7C3251739D06069BEC7780F2B1CE75C1A89B189224B146A3A602DD7ABEA139BA68C30ACCE7B96E0
+649000,k,FE67FF42BB8E647B1C14F3A132F1E84D5C890551BF277AFA07EE90F3179CFCC5C30D64B717246D0890EC7BACED18321F6EF1B93D4006C67D
+649000,u,282429C729CDC9D2B6025C8683C9BBFCFAC9AE394D0BC382DA1EA72E0F2F91BDDEE320FC74319330D386A845253469D8F65220AAD12F0267
+650000,k,3FA406DD0EB57BEA14F6393A5BDA771017579AFD559F533A1EA7B7387B1EEF79298A21228976E9071FBC2954D790DD1E4D15D5DD4C286236
+650000,u,24E2AB5AFAE51B1403969DEC09DF9BEF92605022B2B8F84363D622E239CE7755601C65B66A90DEB9435B33ACAE0D41B7118B4D1E2BFE1CBE
+651000,k,8F342A49329CF12B1E4CFED71B6400009F8EA694182EBC98C03AAB2BAA0375DBBDDC42D56F654673A5AC63A73DD193E37D4B35CC0354EAB6
+651000,u,0C0C2A23DEC542028429FD6775D7E833D1BB7235E709A42260E333BAEA3693F3D12AF1666649E142776D0DFD60EEF865EEB621C6352BE2E9
+652000,k,F86A61FEA64E539A164D3E305622635528969B735D555DAC3669B08345277B08BC1857B3EDCB95292C8224290E17C3CC69AD4EF9FC947EDF
+652000,u,42609B5DA6DBAF3EB2181BE8C1331C126AAFF7DA0F25EDF79C224A478177B19F465800B277FC77A521DEE30CA537AB2E141CD94D248C9CE5
+653000,k,56AEF682E293290FB8D4558C67D4B4FA301033749D2BBF62B8E3D6D533177AC4114072E8DC8BA32306EB25B911E0522C389EE0427DD92465
+653000,u,2A6C86E5A18A35391D4848C0A4A7D721468B81E3F4858C2970E73DF27823A8EBD4691CBD16944C4FDA9ACD268004552AEC5969A9F8646DA7
+654000,k,E926A1DD64847D12D5EF83FA6AB1498F517AC26BEA3B291F26ECA63ACF7447E8AD66B4CFBC34C0E10382756BA41881D48677816CE02C4DC1
+654000,u,6D4FE5FD3378F315712DA4F6DE9D3B95D2EB362D88105950816274D282AC1862650034EE8CF707128C60D19632D9B8BAB6BF2392BFA12575
+655000,k,2AA8FAC69FAB7261B2E88DBD52CED984FF835EE4AC2F7FD69F0203D1E1D43C9F368AAC6821A81F1696240D94D3280145FB5F3956D121E233
+655000,u,8007D31EB4D2D7AA08030F6C733688F0F4B5BC43E31DB63C78629A8B1A6AFB10A0C91441F16A746D6DBB01A0046E06E1908F6B1D1FB0739A
+656000,k,2CFCF1FA38B3B6853177F2B136A70B7B369FD0DDD110C3FDDAB27F1E6F18518B29ACDA4E2C142C5E6113BD1D9CB6B895EBD9EC9C2AA43085
+656000,u,128B3D45DC5A9B869E927658D87C864DE0FF4C4F4A89E18C41F8587C3B3B743DF3C994EF6DE2C7C0E692F66F9179F015AD70BEF75E64A826
+657000,k,B70115D8B2665F04CA2E5F1C6B87FBB1CA5AF2ECD9DF8CE9FF61FB8D362317C1EDCD0CD77C35B389636B064ACE3AA3CAE3299277A53772FE
+657000,u,AC71CC903163B3A6445B1CD803D37E037C776562E05FB4FC313FFD3A0994A4B6FDC77E36B85B7EE9A1C72AAB1BDF85EDE6D5EF1A4C04B32C
+658000,k,4737D330F114F8460F9AC03458D32B803BD52E904F536FDCFD1E03130012D4A9433580122B494912822F482A16E30F2ABB3B77C154D23F25
+658000,u,437CBFD46B5FE492AB68B0D7CDA3E8C63C35EC5D38EB6B6B9D74B8FF5475D372FD4BA0D7A0E2ED6AAD874AE432C1806498C74AD391B44598
+659000,k,384E3E4643FC588A39F306AB88D3DE4F3924F8622D7881EE26FE5F1D0877C25FEE84C75DEF7C64071E41626FDFF77B1723401E541731B741
+659000,u,829D565D5D75A7DF48B3E23DDB4C718C222F23CD77A7F31889DDDE04C3BCC3134C13B4C8B219B659F60914FFADE8C2632834D416CC045C69
+660000,k,23752415DCB20E81B7429709D179C6425C8E3CE919424A5B51436C71F4970773577616769DB93A9076E8B025EF54CA281DB397ABF865870E
+660000,u,5883FFD1C4C7B7441FA01AC359EC7EC60AE55ED6C33B3B97D810AB1717D2C57403B2374F17A6C9B75E8B7F6D1D53FA41F48EC097B883FE86
+661000,k,57A4FC8972A571D835902871427CE4C8BCA026C5B4A9D90AB397BBEA611AEC0FAEE66ECEEB19215F5642851EAB06D89E1B2124C77B80D6EB
+661000,u,708B6EA5FAE29C42A168E6B1FE59E1AFE57EC52E1466A7A2442263A2649B9C0BFF343D98B2999093350DBC1B7AAA279133333EBC759BD96C
+662000,k,09FD39616F018A09C251D475A4B5E7A2B51504FC60F580F04725D4F7268E1A9B815BA3FA734BD332DCB1D1DAF37162370422FED8ECE0DF99
+662000,u,DA13E183C602D4AF21E5D8AAB6C6E16778CC3D67093F007B39C3BF9B7187F3D02C190CE10430CA05A3924CD4B7D29FF02DFB67B82D046FAE
+663000,k,1E1C896F77CC55D7AF776525D0DFA0701B1868CC351E90E7B0E50196B9F1607C1334716D7F8528950FC713FCCF02675B512128AD8C541BAD
+663000,u,77E86427F1297B03E5DFB567FDD6B0FF6AAA79ACC5DBF0944A437AFD9F130B92A21C363C183D02FD1CC256E1D543957A7C83B473410A36F9
+664000,k,1CED94F1AFBF38432637A2137506696167EA38339603239060EB6410207907B86CC0185C3AD930D0B56EB1A6874B1CC810E8F45DFC56F3BE
+664000,u,F9E176ED74EF9294627692092198ED0B9AF63DD2FE641ED40F38D2613B8C7958729F4CC0374C33B0C7E3F441A258AA4A6FB86C03FFFC8F3E
+665000,k,C3A393D7ACE38462D0C0B9CF3415EBDEA78862D7EC972188BD783E2E3B92A71065C5CEF5126F57CBFCBE0B09B7BAECE006655EAA861C42C8
+665000,u,B54D6C17A9BEBAD12EF83F3362ED91F862AC1335013CC09145EC823D23C70121594AE494FD8F7D4D2E82582B3B24B55C78F129DBC4C021F3
+666000,k,4E1DD91100B321B23CCCA30DA5FD6417DFE6438EA1B975781693A818F2CF02043E4C7FCCA69120416397CBF630F8CD39C25E078A3CE72997
+666000,u,613DD43E3DEE6B035CD9411F58221BD9752485E192F7E7871C698738257F212DAE427E954B7AEEF0638484DE2F67C78A2C7871840B5690F7
+667000,k,88AF44BF7C6A7F4143AE883A182247934C6FC0F3CEB74FFE763153C9CCF099CD5EBF4AC7E92AFFD2D52899D770154020A096A38CA8B65EBC
+667000,u,DCAAABBF7183F4201DE7D14DFC9838EEDAC857AD6C1D381BFE36BF2270A86EE76DF18D42D98A18E394D4C4800103029A90ACFA18AABDE19E
+668000,k,C9840F1616C7FA446B9614138BA7CC0CBA93D860F8339E8F0806CBD849312DB340E2C47662B3C573FE47285304CC611767C6CAA6A11F4EA4
+668000,u,A5E591FE6CF8587BDAE6CBFB5ACCEF5398440C8D25756EC7D2503786803749FA54EC2C64D3ACEF4B7098FE9FD9FC036F5670D8F3F99AAD71
+669000,k,D73D4938856E206FE7F515174B29C80447D98B69E90DB34D6269DA73660C7377895945C77CF82964779655918DE9525C50402A6810B83296
+669000,u,B7075A478FB7BE8C76C40CD30CC27E3FDF990D04F64E533AA566BBA8EF62FB1ACE9448E6DB85C8AC86513251C4F6A9B0D85FEFC30002FD32
+670000,k,D87F91DC14DFEF3FD88A88E247554F8C2FBD3AF8325DA4520D8A19EFE0953B78FCD37A39E21D1B6E079D34FB200CFE494346335D81A1E689
+670000,u,673B31FDEC37899DAB7D07A8DF6FCE3521FDF6DA907BD3C4CBCFBA9A15EB2545D197C8D2B464482C05ACFD2C9E14911BBAB8EBE7B136F601
+671000,k,9429963D25CF1AF814FDA7863D943F92135CE73542A8106F3FD5844B4F6C05712090337AA946CF86FA488574FC6425B717EB12F4E58BF337
+671000,u,AC68F1EF6F6D63FC3A3198EB28498094834658B01AE4E60934D5450087A7165C6901E95B59C689B80EE9BAB48783DF91529E9629CED07EE2
+672000,k,3EB126E80B46F6A70B139D97664BE254E3AEBE695658D6EEF10BFDA8A860FDBA6528B69063FBE91BE2DCE89D4EAF827C1B0C423D139577DC
+672000,u,FC73E4DDA3910A0EE7F6198C1543C7C92F045ABABAC41C174D3703904FAC53D3F1044DD1AD1C4AE644D51BEAD16BA014040FCBDA0B923C59
+673000,k,E03F12D91BB6FF5D656140DB187C2A4223CD18DF9B2F41E7375A233D33E1D0672AA9988237D9FF43BFF55FC985BE172DE82184E3E3DDD0C2
+673000,u,CD45A7DCFD92054ABEEF3E17147C72FF9C4FEB6212FDC175078A4E010F842809DC4921C67B06338C3C25C878231423BAD21F1BB66D307FD4
+674000,k,33155DCF2BE0788E09AE6EE6CBBF976FFDAC43A34F1E21D130CCB814DC16DAAE83B71220C6D77E9AA550C30D3EF4C70BDAB96F51AEEC0A79
+674000,u,3C02D9ED28BE68394C977D00676B91996088EFF147390387C4A5B5CF478E0372D7168280BE591AD17B3E7A8C534B405C528923DF48476180
+675000,k,1349F36CF99D6DDAD5BDC80681D159DE54BDB4F3E2F4B5669B4F6D95A9240101443E871433C7B33F67F32464E78881CEF8ED594605F95DD1
+675000,u,FCB84FE7E5076ACBDF6C9D43B30F336D0045ED9F9B987A8BE74BA4ECD2424B1DB84BC44BBE74AFADF24033478CB4D7E743D970087185CDBD
+676000,k,9A7FF6C9FF4053A694D043F5614A874FC09D3735093C1EE83200E8E9DC0A2AE45471265E9F7AB5C0464FF233BA7817D618A7AEB1E4FEC0CB
+676000,u,B7E92D8081AC9297055658D315E22DC2509796E03297E195DDE7A6DB56BDAF6F1B039787D71C9C02D2398A384BDA77C7DBECAEB38F472DEA
+677000,k,6EE559C000B6D7686774451E59C63F02545EA462FBBC37209890066881E31CA3F319590ECB278738629EA7FD24A1465D1AFFED6B8DF6CEF1
+677000,u,5A9BAAB63CFC86AB299A4DECB380FFBE75A8294C3DE757D8BF7F31FE098D2A3702F93CE4AA1BC296B072136393DA4B3C7411B05BBB0B906F
+678000,k,14446E78923C79C4B311C648F6DCD640E2CFB5A015607FB5A21B069910B192CD952238C906CEEE9190F73274271BF5EFD10455877C4887B4
+678000,u,01E78F45E5D29C7D1FF9ED060F69CC20E62D038703071B165A944509CEA1310D11CD42F4516E80BE66707D753CED9E24DDB2B89D85136EC7
+679000,k,5E3F72B6530F33EF888E545CDC500A1CD777A5C98C70EE5396807E597A234641F320694B10078BF7FD6900890FA6903B6E705E461D43BC3A
+679000,u,8AA9F9C272FBE79FFED517E03B9B0725E11BD09597E241BE1C6DCEB5EBCE1A0551072BC286E0F3F1D54972B9466AF929AA460FFDA40E1B4A
+680000,k,93406EE19C5AEED2B71CFB3AA297A96B5D1EF17B570F3104660B7655713196CD2F329A5B80A6714968B114953CD0A3E8FB50B8BC56C2DF35
+680000,u,35454FA1CA2D9D9A42911DA28E631633A517AA22A34AA4C6E9FF0E16FE23DAFF91E759EA58F166AB3FC8B6BCE8D0B79EB655CFF8C314C1EE
+681000,k,35978A68FC50007BE00B2ACF568D6D6E6BF3B79DFF30DE86B29304F0ED7302213A203F3BA229C8843013141FFEDCBED95ACF90AC21FF1810
+681000,u,7F315FA767F831D2B7B5C04F7E79978ABA6D85F2BF33074D57EFAE91BBC9AF10740F36C9AB3E5F1B1E1C64D9A9F817C17F38C4D263F01031
+682000,k,6E69D0C786D74591DC45390FC0FDEE7D1E954B144DA8035000C44A899D20CE5F574E554606FEB992DC59B50A95067602DCB437BAA4B5FCCE
+682000,u,45410330D2B18D577CB21A70162CD46FDEF6FCB4491D3B4C103F975F065C331CB475F3A848AE2C3C450B74426084698BB24186D288B76763
+683000,k,96DA2B85C2F2D1C5DFC3D30295695FE4868B69BA9BF1FA04169BC7C232D1D642148238A4BFB0068F930C1A9F91C44ABC05DC8573F2A8D084
+683000,u,E87CCAEFC3F50F41C1E4CC8AFE178822983D810FF1D6698076E29080433C6A386B3B9689B84219E04AFBF1F6AB47CFBE814AA99CE6B126DC
+684000,k,CE3A380657FA005E0824FA70BE059AB9D4FF4A7E409692E36B6A07966161B0ADFA1121ED88C8C47982A34E85E74AE203CA393BFCC8177586
+684000,u,D1D2E7211C8476B2D12314967206196701CB4B4EA09F72E542C8B291868B707DD8DF4ADAAF37D8505A7A3AE953508E073DFA925134A43D3C
+685000,k,6B6B3A2B61CA241A5AFA63CED0002BB88752D98D1D6691CED95AB71B0C87D73004B8DF73C0F3F8C69B091E710CB5197FCF07812B959B9C4E
+685000,u,6624AC6BC1A6B9A5B62F79488FEB48526D2DADBF504867C8295316D6A0313240AAC481E5AEB67E0B63F9B0DFC245B8B2EB449C4AFD36B744
+686000,k,F406268752369A3FA5AE719D83C412774BFD9BDE9E27A8CD5D0AD160DE669957E343F91CC0D01B63DBDAF3234C0BB06EF1E4ABB79B0001A7
+686000,u,CD703EA46E44EB84AEE1D166BFB9E06E612B7D7BC0B99533DB057150DCA0E2DCE8544FBF50583C18C973F083A13C0C660A858DC079BB14AF
+687000,k,03AE3182ED3C830C3994C8CA3B7D0337724D27C2115B23C109FF9C58F03331B26590432B395E47334A75026280BBF04C853885A84AE1F7FB
+687000,u,559CDDE2A4B8DEA2816034E802F5A13F9D4EF296E9E1A13C7633953763A693A244A6480B9633FA7F5D9990A0D637B34A6E5FE0FEE73053F4
+688000,k,4967A913033F9BA1A4DE08653519D7A1DE7E9D6C3AD147A8C1EDE718D9AD0D54AB6D8C63CB01F2E8E5F8B90ABDFA44407A17B58DCA3CA0E5
+688000,u,446E1C554BF8A59D2D3FA9EC2F7E63263C0B988E04B35537ABA7419AC968328B9E11868502B06B53D37BB8A012BA933627AF879F9B26217C
+689000,k,41CB4D589F54698F781B5360C253EE484B39413293F000E98DE2F28307901B13B9DAEF5CE2F194B76235B0DADBA87FFFCDF0C5749563E5E7
+689000,u,6F524216695EF1AA30B5BC670A072E55D6E089A9F90A6DFD1C9159E5099FEB6E5F8F96209288D3123A42438AFDDBBCA084ECB832AAA44F35
+690000,k,73C5A844832284D3DCB933A1C121E9D01ECC61405BA837BBCDABC8172AF56344D8FBEC70379C24F84A34EC0C51BA7A71D13B2402B1F580E5
+690000,u,A2FC5418DDF200A2339F2CCEF9174BCCB51DB815EDFFCB2F914BBBDBBE0D2675B88ACA7CCC512367ACA8813391C594BF52ADEF279E4C8846
+691000,k,5C68B922E62EBD707F1A1AAB3B70BF0F739CEBF2595603C51624CAED2D7CADF7BD27B051A72C718687769C1A35C98B3C945941C7D221157D
+691000,u,3CA1B8FA3811C7982AB7B982A768D707E6FF621A70973EAD1DAD5973B3F06C6429C2CF1E5CF7735E640885B094F144E6CAF0F747F975C11D
+692000,k,03DB562E34548098E6000BB5E160533B87A9B275C5442A5C4C51E6BD1D33BA332035154E023FBD7B97F016AF0FDAECD9C011784EADC99C5D
+692000,u,A72567F7047AD0147E17E51122059A100CEBDCC0E1E54EA6F7901F51A27FB8F3FAD3270FC1CF696314A56E0A7326D5BA93FE3072929949BD
+693000,k,8B41736EAFA6F9482A19DB508D7064F45EFB8376D538D2A566D2DDF0F5A05298DA0E466653EB04163C81A650F1318D33144624416BB0A988
+693000,u,27FD0DF4DAEEC257C24C4FCFB8909667E98985A24CCF8AB5226500BFF7E642B1C626CD030D37A857506531253758ADFF2D8B4EC065C29927
+694000,k,A2E5707FD3D7539E689AB3B259DEADB1A8C184FA013B431A21347BC8E53AC93FEA0F1627E60D04E3E7B567C66A1530BD09F6F540CA83CDE0
+694000,u,AB06387B0C101322D18E083069AF792E1F219C3B38AE80E20E258D94110298ABC3B4391F2E10B94A088B175CB8C0716BB3BB4E362A2BDAB2
+695000,k,CCA41C2384197C25E7EBDE7C553E9DF3117CC3E8CA69038EF2BFF2D2047F9618AB0DFBFAA168CE2A20E4B4760809F0B6F0128F6EF315E01A
+695000,u,752740411944DFD2BBE83CE23AA4BA586D7DF881CF83A992746320A93FE7C8805D3245ACABA26BD063DDA61A7A0A74775C8B2DA6F4E90C11
+696000,k,39E61FFB342065544F9D5B539A8DFDF86EA3F54ED5152FBFB14664F32ED329C36845CF8DC5C49503E4372F1D6BA0585FBD1A50F214445BAD
+696000,u,3FDAB54F3A9D0BB8A4566A4C0E8DEC96D55E45EA9B30116A39E3794FC889508B7BCD36C27EDDC7130A6BA0E78039E391471E1DEE6A12B996
+697000,k,4ECD413799A2DC988BB6B7DA2B3ADCB2DF4168860BC8D1D657E6DC9FD5D78DD80653FFBABF037D21FA523112CCB32AFB0019F08D89D343C8
+697000,u,8B4800C22BD6A2D35DD37ABE201ECCA97AD84D24E30B03F91B33BC423C7DEFB65D1624507F82F152CAF4183DA9C1B95479FE5D524CD2C1F1
+698000,k,E6B10E3736A6B9DEF9959C141CC7B1158E4C3AEBBB9D0CF9C8C8E5F8B3B9A8A385BBACAA229DCDB7381940141192F50A29892871C42FF045
+698000,u,1D5791EEDCFBF2697DB99298ED4938459C1E31024D95CE1DD8584BCECE6892B9BFED4E0896D5EE76823901DB7557905179F13E3ED617D3B9
+699000,k,D6F7599D4690CF64AC44C8DF46A0A29DB683540D09BAA8B33877B4368E01B563249E8452259B72D707B981D9DDDE07E368AB955B3B3C6EB8
+699000,u,8419F5C2D65A1F0274D7F1535CA9B4BD7071CC2E8F8D97FF5B222DE4B168203684C84E4506D8129589B5EE8E37FBF86D520061CD8D7E77DF
+700000,k,50FF60FD67E70E4D6EE1F4C7769DB7CBD0430F897DA5FB55702779B814680EF0A306F514DF476FB2093DFECA1DE76A16ABF0B13B10347BF0
+700000,u,7A72699B55C49146F43E1AF732C49DBA7AB263745B861D90A1FA16BD2C680267371117CA6869AC16BFA94300F53A5D47C059DBBB36A7E256
+701000,k,4F77B70B712387575EF47DFC3F62AD9CFEA0CC6CAC2004191B48EB36C982FE8644CE4053CA8D383655A749FB230C9B2E54E4186A0418F6B9
+701000,u,07EFA30F51DC614711EB9AAF4E2BF917823BFD79B2BD25AC1F0F167E56A364ACF82AA3D1298530AAD735405A7E47DEA51D4F168393F56339
+702000,k,E6115880E5633A783FED11CD6E345E808D3B35D4EECE004F5D51891F0B875AC795353B8BFFDC0452FC42D96E1B5A8A0AB3AE0F4DD83B6159
+702000,u,F672DFEB3AA94604AE3B02B0087918F8AE93B086DD1C5033B7BEE286A9091631B76299549797D1D2FBDCC28CFCE6F7E13B3336A7EEBBD24F
+703000,k,9A336DCC504FCEF22EB72CA156F9D6C14C5661C1645B11E2048ED6E219B9C730E36F5CA4885FE2339B56ED83ECC73D15500D65EB1C06DF4D
+703000,u,D00CE375F8F375BFFE949009814D142A70E8ABCF4E5D795E7600C3CC9F375C51FBC3F2CCA746ACC11319479C423BFFA88A7C9A3D22E72B8E
+704000,k,75A6782D9DB311D4358B038139B4F4271FD5B9572D759CC708476DE82BF719E13848D86301B692C95E07ECD32DE563993325BF0D4ABAA5C5
+704000,u,874BF1A1719A6AB094596C807F3A6E18A898E60EE367E0F39DAA73BEF4DD59B9C09191B733DEF6A84FFB602B7488588FFE9D31D8B049A986
+705000,k,745DAED4CBEEE0648269E325EB979B4F866DBC87F0C8851D4E8CEFBB82D2E9CABFFE5F54722678DF18BD6C5EB99A746C2D8B97FE455DDBD2
+705000,u,3CEAE4D02B9BEB5EC77B03797B918B8D0986287360D07E7EDE7CDE1A642C6747A6A06C3BC2BAD1A84147530FB5AB4D4F7FE32FF37148FA8F
+706000,k,089DAAAAFA4EF192652E35AC8073458BC1FAC623330DD5F2AE7197D2E06DC0CA0B147DFB671BED87A58E29A081AF7FD5EFEFF79E886FE47B
+706000,u,5E69DE7DCE0EA38E655B227979F113FC9CC38317E2BF5AC63A42BCB0EAA038B8D2EA1299AE752E2397A00C09318229C46FEA5D4CF0DF01B2
+707000,k,EF740809CDFCF6C7C74F9F1E05201D05DBB236DED8D04E0712D2982D7004C26BB02FD334DF82E2164DC859520F02DD3DF4E328DF9B2DBBD9
+707000,u,63EC62581BAC13C2A566238A3DF8D3B55DE381A923687E0EBED08D53CA2459E2FDF5F4067BBA1E9B69FA2949E6F83980E5BE927AB53A1C36
+708000,k,8F1C912171103C4B4D5B525B8F358E469187BF9E3F7055D32D31A3BAE9377A5C7D1FD2E7C67FEEC3B37B7456EE552B5F2C3436EBF0FEAD0F
+708000,u,32324CCAFC8413DF9A5567F34014486EFF8908798E215B4A9E1A858E9B0D2846D107A01803C8CF0194061899CE44A7D3308D667D57D02987
+709000,k,583023944EA95580EB7F7B21C68398C068556ABC4FA91263BA900A508F56188673CF0DF9487E520AC402B51C3E87FF34D90F05DEFD58C2FA
+709000,u,C42F0FDA6250795A5C8D1D1A615B1174BF46D622EB8568BB156C70FA9CC46F396286FD2445FE83825115E5AFC1C5FD18652FF1A8B1258F88
+710000,k,1AE1DA07C41F1360718DF986AAB5512191A3F672AA5A94801C4D2BA9B4639CD9DB9A65B653C17F0C644A76E2E14937E6B7C1D9E44F8E1DCB
+710000,u,3156211201733862763A2D02D54C7E1C6132DFBE849E119AEC044EB0D364D9AC52CCA46E6901864929B2E85201BAC4F8FD5BD28F40B7DAA0
+711000,k,1C1AA0E1A15FF2459657066DE5EA6829090CC3F04B94D0323EB6A0D3F110095C2BDF66D59C9CBE381C37C636BA725D855CC677773D3906FF
+711000,u,FEB32EDAF1C7C344620B47BBED06689105A376961DA0A0D5F38376278540500E9AF348A7411AD842B69401CEC94EAF14F75CFACDBB7C3FDD
+712000,k,E7BB1453CEA5BFA9A14854082FDA06F62C29C67F4878548D4AA7624DA4AD06BA10CEA53BE76D3086063FDEB95E35535F6304631314CD1EBD
+712000,u,33CB8571405B996D6DAFF5D9E99EE60B91720F985E46C4636F96B7947172EDE5A1E150E53A6CAD515B131A7D815292AA755373C5FDCF0EA9
+713000,k,058294A3A58FA222C60851B229A7DD555BEF99DA936FA4B553E141D2718D679F0DE543973F51E3570AD96E53EE2EDC736555EEF8B245848D
+713000,u,85A6DFC90AD54890F0005F50B51F7BB7D27A0AB2E49C8B5A033FBE05BD64D4745DC58E9684DE2E903830535B13BCD92A84870DDB66AA914E
+714000,k,361C89879742FE18731F67FBD574024B14398C8A8FE8255C05F7F858EC986CBE5AF95E3B782CF10688D16B9A2C0983214BC548AF49738710
+714000,u,F20F88C55029825B0A75AC2F52BB697122C3F96DEF9FE583BC593522E531428EE76247FE44F549C007BC3022E2544E4D2410572BCA57DB30
+715000,k,8AC4F447F25C2510FB72D0D2DAD0F788E2606B5BC43737757FC1F07A8A76271093236C6E1E369383A065D31A3079D743C4A74CC9512D1017
+715000,u,EC37CBDBD311AC7A6C5F9026FA715D0343E1150B7473E8E98026EBD2E01B7B469B3F1312521EA4D9EF1DB94BF4C4FA18B110C7AA1A967EB5
+716000,k,4BD844C6512F7A418B55F81592C3D4BBC71F87793AA785D9AA1ABEC92DDEDE96625B13A69533987F0BE3BFC19A51E26ADB86279BDFE118F7
+716000,u,C83F76DE759FB26793077D001DFEB932F0189CCE072064C35C9712E068B9525BE59E08F7E6F7FCC921AE8A7F485E8FA945448A1F05750255
+717000,k,4842FADA079FF3435CC97F50DB80C36C15C89FB2F9FAD9106F887F876CED7ED164FF2347354DD4E8B1B767613E1042CEC37256B043D035A1
+717000,u,28EFC3D63DDA807EFF9B2B805E73F91588C59667D9878BDE02E309C80170DF6A6AF709D51F21CD655D039D7C74501A5B27484ED61922FF1C
+718000,k,E5F8152186FB40511DF5CFEA4DE9D0F6A9721AFD4898A95C629F4A6CF918704D8FD817120808F018C3250D060E7637E7BEE08450D8C495BF
+718000,u,0206352E26176DBE62E51C85628B9EDE89B2E178A5D9596E540075264621F5A1464C040484834735E4028A240522FD81D048FB46506E1B25
+719000,k,2997F6A3683F7E8DFEA7F088045668DAFFDA27959D7CC2568698AE4322B750F96CA8A0204604D4F100708F9E65CCAA9CCA91E21A193E95F7
+719000,u,286C8883B42613FAF57D9BDF7B4A4497EBE4FE5A50FC48B7B966656A228907E259AFD0BA66A441314DE2726D7E09AF32C39C8B68C44CF83E
+720000,k,9299697A7700170BE7E32818EE13F991BAC1F979D87D07B5652ACDF2016BDA3D9229D2CFE31856B39E84C1622C6F816232040A99E13D408D
+720000,u,5CE2F39C089517CB001B27D95D18370AA838B590FE705B5DEB63078E59123DB9BE36560B136A2C3DACD1A30972F80A5BB04E19BC8C41B0B9
+721000,k,FB387E6DEB54C3E1D94EBBEC0039894F5F3DF35728198BA55C6F7ACFAEBDABBA43F37650264FE87B9C5BD62F479F94117958A1630667F0A8
+721000,u,42B3C361BBA1B1DF542FC547172B5BD507DB28BDC6713D30455FCCAA4C28A82E6CDC812F7810051246CEEEE13D8D09D4EFEE2BFBAEBE39FA
+722000,k,F04BBD3F9621B4386500698638491720F9C613B4A5A9AB6B569931020E93A932F60F662999D2D067092B9E31F3BCB3FFB174B09A8A16F759
+722000,u,2E9C4374D466AB3F41B2B09F4933A836013AE661E340D1F3183A520C5C7D42631D8EDCB2FFF19F66D33A8461135C77F11A742FDC0EEE541C
+723000,k,C3D97C31B080AB337E899CC86C3D29449CB45A8082028AD07DE50704A2668B51DDC67A1E1654D42E91F0764D322EC83B3DD649384E1FBCCF
+723000,u,7D6294235CE271E8DF3C32538B291A8FE0E4EABF7B6259C30E65850847BEC2E56CBED29407388940E6D962D6AE5AFD2AB000BA52D7030FB9
+724000,k,CCB2D3F10C7E9426F6DFB131E1042CAC896140A3635F8E36036FF8635C33D34FF8B1E479F9C239838DCFC4F6D4C2004D7A7C5F3D2EB0CCB5
+724000,u,CA6D67FAF57661442CD6CFE9FCF0FF014B1B999DC2156D09DC6895D7699B2797198CC9B4F974F333BDFEDF4DAFE3ADF7414B5BE8AB6B7606
+725000,k,053AAB67EDEC7E875187340A9EF3B55F7EBAB475586DF0AD6FE5BFD058A5542121BFCBEE7C61601EABB6A765847120CEA0D2B50007DA0A4D
+725000,u,22B2740BF9F780317764BAC4FD65A7BE74D9013C7CB5843730FCD0371B58BAF519B00A84F3E321F0F2B9A9E62057CF718F5083D8D0FCF007
+726000,k,121A72FF24321DB2A17F54D506B01D43A9F62CF8C8D2D96D6EDA8C63DA4DB389BF61D28F4A6565CC212407EC71E18B981003AFD1B1E2DFD2
+726000,u,E8F7C381BDCC79560D4F54F8F12E28E8C0A228A07E63F16C925711454E5E3287DBB566CFA7AC8387A24858729878B43547FD891FFF520F0B
+727000,k,40CDD5BFA3F17EB2BC3B15CD9FE0E39677DADF81C7A9905BAA2C251AFFABBBB39A9E30A7CD1512B8567E2F2EF2222A3E9C7BFB8049D16156
+727000,u,07C5E9728701C55E3F8C5B9F550AC7AC3CEA0E0C4EF8AC9C041C3F637F09F79205E0D14E2D999BDD83BB04E76E6FD58B6A715F4962FD4AE7
+728000,k,6A6D7DF6F9E754FB524012C35ECEC66A44782EEA7C600484D3FB1A387BBC2BB41734EF822EF9EED1B6016CCF2ED00F4F82CD7EF69ADE3CB1
+728000,u,5903BE054D74D2C8DF620218E25357169691810387B581FAFA47C56E69B18A51EB0DCD92566ECE110C359B1E6ED972252D5C6DA249721D90
+729000,k,84F9F62CDAA79C64344ABF3C84B58631372A93A59A616466888B259F6CB52AA3B88AB302E6D88185A3EB63D2BFCEBF038141F44F06982328
+729000,u,E04DDED1CB4EBBC2FC9AC6FC4D91597F6F2F8E9584347CBE0806D804B427C19E2D773602021BBD922EF52F68B5A58B71BDB9AEB6482920FE
+730000,k,A98EE4499E9793AA94BAC61EFEE0ECEC8568FC0C5DE58F579B8E1E7369C8B8DA876BA2F8950FFA70A6F28AC2D9929627490BCE39D15CB803
+730000,u,A09E21391DEEC643CB142F6AED18A8B912B64D0517A2E89ACAB62C5829773293C119CFBE8074C382DF1A6A84B28C38778DE1BC4DFA698B5C
+731000,k,7409FBFB320504506BE642E3B76770848BBB189B66D63073D70C5B5C6F02578352B08958CAF68DC2B0593F0EC955C80EBA88F076B6B61611
+731000,u,C6A98242DE40C7330EAB894ECC5113918732C6A60E5D3AA2D8A300AD98FBC263F1BAFB26FC9D0BF4B9B40DEF0F34D7C96D2918AE2DD18986
+732000,k,423BF4CDD84779ABC43B5069E356CBD3AEF963D8745DC82E7A7057944781C32FDAF6D78A058F559EC8E2E6E35B4590090C193D6DDB8CB206
+732000,u,559D85E22F3E51F01B1E7A55F8D35BE988510264A726CF047F63956ED446C3CA691E36DB58D91252EEC5F0F6DCCDC312D4F572C2F3E2FC7E
+733000,k,B873EE1FCCBD9521C9ADE4DC49E4697EE2BD66FFFBDC803BDBC8E006B53435EAD634EAC0A671CB689CF85AE21419886FD76E19B72FCBA1A0
+733000,u,6A0BDE63771BCF47C9A4719120AD4B44FC09A95CA37116CF2889596F42E85B8D253E0BB0E488D7844AAACF281C7F6668209D7DB9B6E3E929
+734000,k,C54879267AACBFD4643AD4E319C7E24DEF3CBBE1710FAF460C7D6F8A89770B98EE887A8B500F60CF3276D8A885AE3E3D62FFCA1B83FBFC86
+734000,u,C0B42F65782F1378EF0EFC185356655C45EAA3DD282BC733065E68336F674AE81F7536BCD27AB4DEC26B4C339E720C1DC8AE153B67FF2B76
+735000,k,62A0FD98371E0F8A4B8FB40AA71FF497D4507AE95D5AA213B582E9BF9218FE9C8FCD8AF6C2C87C2331C4AFD3EA41C4C8FF49A2A544AB4C7B
+735000,u,0B22ABA28160283824AF51476ECE5BC13E57CC37649EE584728D54ECA5FED2BBE2C3A727A6F08B774131400F067B53E2813E1626BA976FE5
+736000,k,C6A2F9DFEEC7FCB87A969E4AD59D125C596BDC37B529A608C5DF8EC43F5D3E64B9C531C86C71145E754FF10634B80360AB32F020414EC2C2
+736000,u,9C0265558E52A90DC5D87998B2A313BAEC85DA5773108198E09CFD8A0C950FBC588F0CF949A4D182356122070016D5F165A919D762A85793
+737000,k,21AD4822CF10332A02A72FBE1116BD96A3B652DAC0B74760C5C380E28975225EA60A9F8A2BC6893857D76AC12DB5EF4B5D35F7E50135F013
+737000,u,3DB03680748EA5EA554ED909ACFAFF235B2B735B3C977DEEF94FB6F98857E44FA152D1596A6B8D8B2C44DEA13C5CE6268CEDCC24C0FAB107
+738000,k,A383A82A69D6C5A73D7BE1F9D9F2ECA732E8560811CFE45817AD85CB01B9E8691B95903A6A48C343AEFC752C81696E40CBB97306E4FC8273
+738000,u,CFC67DF606B76C9DDD11135FB6A01657C055BE6859ADCC14151DD74540B66C580E7F13FC9C557A15E440A94C434978B18031F3DEDBCA7CC5
+739000,k,49B4E0E7245C9FB59ECC82C355AC4E93D14F2A2F61D799E3D05F9D9B7E69F3305513C585B73691F483331AED5B2883A7B3D3AE10526CAA80
+739000,u,AEA2D4625C02F45F66DAAB00F7C78381AE2158EACE63BD1A0738327238F337E9EE7F90EBE037CF67FE0836D5408FD47C5FAAB59664F42631
+740000,k,A45B58A801DC362FA145A7FE142DBE64F2DBF3ECD825438381B1CB42CE268AC03C0AAD04F68BE4EC41A5524A8D6D3CF6FF8697EB82813476
+740000,u,7FFCB4D940C3E8C481930DB0FACDC911BD86B299FFB1B7030FDFEB5F021D56136288C8FA0BF314C5604BC48099B006F744C2AD53C72FBAE0
+741000,k,7ED709416FFBCEA40CC05F60EF7DB7942F319EC75CCF973179539760CD44971A8F1F0037DC6CB913BB0CF67FAE8E8947286BCDDD041505C0
+741000,u,661939EED39BA52D1C8CE2BED96E5778E2EA4E65CB9AE9FB33A178A18A9454615D48CB87229597117383F1B6C242103CB16B689DBC243C8F
+742000,k,B82D2C5CC2B6DC9DF986B27BF69CADD2AC7BB192B150FF6ADAED87B505C21682AC2050864EF4EAF1303CE6443129C699EA33885520F69EFB
+742000,u,B92D65B88625225C86682235ADDD5BCC73C36B8F10E9C6836CFFE96E18EBE87C2B4AD80B912C1B897AF8871427277C41C1A8EB46BDE5E6CC
+743000,k,B2E84AD73CC748A337E5E5827F3EB8E955F23C81A57A6A2BEC8E7276F72D9410D0FD4660C7BE1154E75A3626EF74F161F259AB8E6EFEA49C
+743000,u,3E81609E8162967B8DB207E278EB62C1C2C4449266FDF0761BD9CF82C95BFC259AEA0ABDFF35327372DB9A4967DFD5ED461FE5FE063CD0FB
+744000,k,FECB47D0984DE786EDE1B269461212B4B9CA97510B3DA554AE1DB17622BD3C79954791538565BEFBF0189881449277987ED961C096354FA8
+744000,u,FCF90FB5C7E8EAFA5454D0E51C9034BE7E7DF16F589A8B594CF618DFBF695DB0326EF5719F911F6A3FDB5B4685B915CFC372C34C83900E3C
+745000,k,C2813F7318C7524834C820934411D8CD057D283CCCC4F33B7A71F85FD065B49355751E9A67A03599EF8243CECA64839A1CE1E03ACF9AFC46
+745000,u,843C0A3D6A2FE04A798F703A6F08A5349477135C23422E28C5AFF2F5053C3C1F278283B7191A3A33F7235C29EBC38DAE2D597AB19F8BD21A
+746000,k,10C2C562DB892FFBD25E1CA64BD1CA91D388004610A9FAC66FE0EC03410291970A8088FE054AA8117D6233CBF6C22B0802B4729C1674209B
+746000,u,46C374CFFFD15D00BB1F6503CFB7524C588D07B648BD35324F00A3DA9B6DEE0CB36AD5420ED58BAC31E8A305B39B01A8002AEE5D2A25A8AA
+747000,k,B3C136A8C792D8A5707AB8E0AB2B451390A8476B9C9C3B7D7F6CFF4792845C07D260BD2D3641F331F01522584BDF83FD342EA678E1D71251
+747000,u,9E81A3E969022B5087413C7E14599882E5D88FEAB067A10CB945BCBFCC3D3A27CE1EB7DDA0E8B8AD45615D227A7860B1B5DF18776CAAC019
+748000,k,A1C4D4B8E27D5D58CD940267B25CF9AAA0E0A29BFA0D630C771AB56EF8067CA162F98A1F73D4B8A3A552165D941C82D4D89080CF4644FB40
+748000,u,3492DD3FAF5BB9D9064D053E66F89AE1493FCCED2A516908B4F6626B4CACFE1335B9CC642065FB8F6711E10E43B58B88E16F14A774697229
+749000,k,C1F8FD5E5D65746AE9A2870247D87E06F33DE9D4F77B75F74921A37E6EAA46C9C1DDC39B2E4181163AE4BA324A79897976DA3108E8E6CC5F
+749000,u,1D4D588DDA3AC630456514251EE35BC1BCCE1BA6A930D6B49CFA38FA0B410683A9D27391E46659ABB42DCF8DE014459C99E46B3A3248BFD6
+750000,k,EE5B6516EFBD3C15E1C794616680E5BD5530F73D2DB9DFF260E5AB82F760FDA4D7435C3C007A5CE29F3508979F909FDE1598BEAB97D5EE4E
+750000,u,6AA97027495866E9F99887788C7431920AC7ECB29929BEEF117EF6C461A24FBFD6DDADA9653513FC814645804F0C947B7C2D52DD3AFA454A
+751000,k,BAFA267985286C12695961D514706FA62164D5BDCAC895122291AE806A2F8C848F4AE4F494E3C5B2C9B8AB9A0481AE735DB9C28581D64D9F
+751000,u,8D48FD90D92F2C0B797E6DB32474470F097A3DD1B4758D26BE1755B14430AEDBE70846343469AEBFE42FFA23DF4B0F8E7A95F0F7D77C5804
+752000,k,779106FD283586DC89CFCDD43EE203B6C726EA6D9CB97BDD040AD9B2CE661540E1F16A2D0102307C13F76A460BDB978D37889E4783C04AD5
+752000,u,D52311D589F589F6351CF3D5CEF32B78364F94CB1B3A2750DC518005128F16533BA2E80E521483C53F74DC4A989CA2D1FA6EF1B6657EEDE6
+753000,k,9B53BE6CEC9FCC90B0133213D17A11B719B4EABEE0A097A3775FF3D56EF94669F14DE26235C792A734987050A0678754BA1D157CB81DDAF5
+753000,u,1BD8C3D1B609B590AE7E08FCE4B8C57BD3F6106CC1087B2A00BFB7390613D5E3E7A89C793E0A98AEBD3DD1603B2FDBFC04105E6B48D1A00B
+754000,k,6A762233B81CA07DDA28695E45E7C96CA26023DDBBCC0461B8C659EF7C5E7D0C6BAF20BF8CD411B6C6F93C12E3FAD2E76170559E091FF000
+754000,u,60C6A35ECCB291E65C6AA2717E9D804DED4D3EE136F0833D0559241305048C82BF5CBF429045B72F6B8ABA6E62F454C4F7147017F5081D8F
+755000,k,56C8408DB569EFFE37C7FB43557CA32F3712A20E84F94460AD5A2A470FC22479E1AB2E4AB92BF36E1D3F692C5224C522B6C56159897D9143
+755000,u,3010A973BB30287B609E9DCEC16F25982DF152EF24A84842B534BD070F181F131057EFDC64ED0181B195AEB849EDD8E2E8B156D2305C8D09
+756000,k,92C0733493A1AB36BD7C21B0716F1C66E84CFDF90C9DA99B99CA323064748EBF0B9B0416C8B6616156F36CF1A7E4E90297D3E9904B6B7E97
+756000,u,5DA0F6E6D3E68D7646D8C2B801C03BA4CB84FEEE0811FAD5338A6873DB9754FF0423074B35B228BEA927D3630F5ACE925973B6F0B51E3898
+757000,k,EC0CFEF6F664D30ABA972A21F1D82AB6CFFAC43A5E9B84EEDFD1F91088068A960FE4BE9048BE90FD7B76BE4F1EDAE3E75B64DCE3F4D261E7
+757000,u,2124B281E6A776C0448CC4F3D375EFAA6E61BAF57749FE861E6D339B3DE260E5F2E7B81861643BD40C5FE2C0A5C48EE3E4B6053B007AC9C5
+758000,k,0FF5CFD4CA6412679D98E1DC1312FF48B7410FCA26FDE1A3B99FA731287516A0D2203DDC5A5962D0DDEADD36811C54EE60557FF48EF92554
+758000,u,3F56BEC3976E7A8F12094B953FC54E88E51262F6DCE4FA0E7731F5A33BE62CC8E53E074B1F2A6C7A7D6E9EDC446E4DC88309C63EFA3B712A
+759000,k,BE8DCA4C23022044C53209B97C1A9177E3F1ED7333C3C4C0ECF0E6C28129A2E7CEC44C53C121A0A3C4F0C0700D067565E2F4F96BB84F3BB7
+759000,u,4EC9C1C1F61B51A56524A5D46CEA36EAD4013B011E2CFA0A75B6DAC0656AA8CEAE465DE6F0E8DD726AB0C5A9108EA154C98BEA30A4410FFC
+760000,k,8150D6B8772911945E039A875C7FA1B34782933B76C8E170571221A24A9879EA9426C69AD8E742B2DF234A722A89DA12B2967715C27F5FFE
+760000,u,E13CD828DB9008B9BB09C8ACAA304522569253596EC3761FB984FE0ADA6A9BB23F612B6CE9CC5AD1A057E3567FCDC6EBDF3202E041CC1A10
+761000,k,B61991ACD9A897C6818953BD86645BE52A5EBBE935D761B7F6CDA923DF02608656C14BBEF33040F580FA8A8241281319080977C91D2F8A43
+761000,u,0E63854E9967FE02872ACD317A25EA533BEE8A5A87A7979C8C3327448566994FC1BAE28FA52B9B30AFAAF0FBFEB7F730DB264D21E237F3CA
+762000,k,DEE9BF81CE9412621D9AF6BF5167E6F3BE45604499EA6AB6CCD37C1FAAF41746F00CEF5AEE6F2281B1FA3E3F51B5EE1B0A9EA3740E93A9A8
+762000,u,D2AD398989AF754D4EDC39E737273F0A23B46EF46C2AA2157972DAF14A18792766F422B851861D85C1F88500A6293C1F5CF3823E63A75F57
+763000,k,47EBE65DEBD389270707C28D020A23C39A25F08096C204741DC5742E4291C6FEF5AF587454E0498DB22F913FCA7858F238B47D9313807CE1
+763000,u,5C550001A73A4D668031D5E485914DD8C7EDBC05FA0F5490CB5DC066080E4C99DDA7669B6DE79EE71D99F7D5D68288844CDA8C54BFC0EBFC
+764000,k,9C001CF8110B3D914C8FF78A2A6195CC3043D2003590D5E0FA6252DADC3E4750F05CD478866328DB016B74334037B5D1F64FD4EAB06891EE
+764000,u,875ED4675AD284810AD9804D997703FD9E07069311BC1DA8802297B5034A67D27E045E74C9610EFFBF8465BC186A1CF7EBF903075C152C0F
+765000,k,4841643783D4B5689CFEB83381382171464BB0007D1C28A83DFA79F68D32287552D7E322923520E588084BCF6277AB8EEF3BDE6B1DF91A8A
+765000,u,E9EB0BF040732F72FEF446AE62E5DB79C3CD9439E653FB7964939270E4A1C1BCE6A5D1E6972AC1840177F8618E0537FE96A85FC41AD8D99A
+766000,k,15AB43A4AB3A721835DAEB26DA277DA8D86ADB5022A4B3F33815C0A0CAD7EF4B72C613A6D22E91B2EB87FB8BAD02F53990634C29D81BFA7C
+766000,u,E81095CF431767B29802FFA756477E99F38A24E743F7E02F2D0275CF86D490B24E0C6509069B0E47B6382F5773BFF513DFF72E0780878472
+767000,k,A724E16B08AD6425D65EEECF05BD37DC3F104F02B29157A8B9249C3DC0578042903DF62DB41A3648C83198533F0F4A3F3419A40584FF33BF
+767000,u,F081A2336706F6FE7292B255A7D3A2704B6A203DFB85966692BF8A8EEF0EC820B3F6BD4DE0FCD58F8956A79B5199860DD894E313CE9D4B0C
+768000,k,52DF5439F69070D863ACAC37DF5E80611037EACF8FFA92E60369076690F5670A7AA4027AC0DA359F67D16E3C1AE6A8889D2F296FDB491D0C
+768000,u,F95F147392D00104B5C4BFDACD6F3298BC8579D75420B6934B81B5BE53126DF37276D8B2423B775A8ADC584FBF1611C8AE0B68053BC48DCD
+769000,k,71ADE4FF4648A0C510B3F195CFCFCE1634DECF06B560A27AAAD27FDC3EE8DA8ECFD073A99792E2B289414D6B53954AF687750B342622E984
+769000,u,E466EFB0F71E584F8B345F44BF85747E77DF19475C409ED32206A8083BB88C7E50B5D8F02F3E65FFC9A66E1F3597A03F73CF47616843778D
+770000,k,1D3FFD502EA4507434FA40CCE4CB50FE1AEAA63831AE51C343007307551B58DC1C87D44ADE79D1444FFC7D2A256A9515C35A2FC43215179F
+770000,u,66BE027FDDFA2A8C4FABC89C0D81A7CD79649EC1AB98ED4B9B9C845411B85F590A68502A68B5994916D466EE46AB606FB8C7771A1DA6C925
+771000,k,6DB31243FF11479C05C5653F5F2433E65035D634AB5C12CE432D86BCCD4D02DC058F6C89930507604E20149EFD6FABED4DD6E5E7061D33B3
+771000,u,F777EB2C86F9E0D8CD23FB0191D57AC11D3A4F7B0E8D66EDD1801776DEB4572A59324D4573E0361C27DB48EB292E110F7CF54D900A2E6064
+772000,k,79680696EF1E20C1D071676C1F13B11D30E343E3E4D41071189898F60A4BFEF8D0D007FF38C8BB80767336629FDD3B30DA3A84CB4EE01073
+772000,u,4698FCF3D78A0238540CFDB46136379AE26D3944C37D79A1668B3D57B9186C2C71B6AB3CB3720C1AF5C771F79CC730C70F36F4AF09CA4197
+773000,k,F08FB731A74FA323CFA32CE9A4C842BD16B6FF109BAAEDA2C97FE0AC8C1CB5DB18E454F3E5E352EC126E09D2A973D554669AFE7FD2C5904F
+773000,u,73E0AF4CCA5A3D7DE4B267D666D5A3176086B8A2DC492DAC898E6E4BF0AA83F307FB629C5ABD72B6E5F3178828661BCE4890F3FCDD2FF5A3
+774000,k,B226F8149AB96176F851489CF5E116A074110A57B885E5A5440BE56991B516B3064043408E35516AF08851E16594086A681818992F55C9BD
+774000,u,32AFC011E1333CEF79DBE948DF24457E68C507A7289E5AAB46232CC66CA735106789A87A18A91488691DE8A2116A33DC5C535E1A44B9ACBA
+775000,k,066F1242E56A21712B8A70F31836DB6D27EA2238A0E75D052234E836816AFB1637EC795AB93BF0343F1769E50D965C3DC4F1DE5F4456B6E7
+775000,u,97E9B342E2813159BBDB44E3A14641CD23C43072219E4AE59B92DCCC23FAAAF5C5455B0C6EEC5D36679DF15A69A3CC783E72017918F7D9D6
+776000,k,04439EFCE8D0C5052C3BD8F2AA0E2EA138C81F63364CBEAB4CAF31D609ED6A199E42817C0EF8F286CB2D465C463D330005D21A814A08F340
+776000,u,CB48C06A41DAC8ABAA9F40C20FAA6E3555956F63F5904438ACE0111698C8D4C4CC150F07FBD54207A97CDE8FCF29E17BBF2FE232380207F0
+777000,k,752E310BC8FF31CC6309429838B6B5F34F7BC9AB8978CE406EB5C29FF72867DA5146647409E68498587FEDF5EA5208AC20E2E9D54387162E
+777000,u,F84976C4A2F783F19C87BFD90BC6731D04F29E292FDE1AEA13905F1D04351EE916DE8A67517656EC89F66B1C57D2046D7E8C78BC9405B59C
+778000,k,9F24343D970367C01D13054631D65F47BACCC7F45E3F5E35E581AB214E1004638FDB95DADFB5BDFEFB22A580A3AF86569BDC4A2CCB332BB1
+778000,u,06724E76AC1017A8EA417F134FE54FFA8FE660A175B777FB2D44ACB61BA77A4A04A980B9BA85937532FD39C528EE7D0F9B789573A3218657
+779000,k,FE6F8A9AE3BF2012983E04BE202A2928D89DF542E8E56953837C52F2510346A060F8B02001854CFB1CF1EC7875404BDAFE86B9311AB87974
+779000,u,82F0D17BF5BF55F3616AA0F24E5ADE64757A82585147B674D3D5D38DE1C54F0B19E2E2006A7FAF773C43BF94F2D8B32EA1B0FDC692DE3A80
+780000,k,A576F6CD97740F5B28C29D6B800EC4D69DCB6FABF5590CAA27D0FF0BF14102E0F20C982E8FCA9FBBDA623C06FCB48A382903EA92CAB9276D
+780000,u,CA53BA715C592BCFF196F9FFC022EC910B55778652C54FC6E9E7C2B6D59D8291B9FABB7E3D8945588A679A49AB6CAA1CF5DE7A35A53AC7F5
+781000,k,CF8FB7495821CED8D65C25E6BE0A7FDADBA876D1ABDAD3C3752B0A68FF360A68D50987635083F30B6DF6ADFA0A95543E4CB06305C2085D2D
+781000,u,14200B0EC10146DAAF1DB95905F7B24C14CA9FAD6F7181A57C64ECDBCE50A05418F8A7029799CE2EB52D1CC4BD1EAC6193A295D6481D092E
+782000,k,34187C69F90B18C070847B2CF6AF8C11B4E168BE02E1699D7605F4B22EB362D48AA68966E215ACB7B1EF1A83F563877782CCE8F54F6A61CD
+782000,u,F2513F53DFCAE52A6865955689199CB9B21FF66A3B19A3D06702F4D5F4CC2027A36AC672C4CD0FE631A35961181051AA99C9394728CA8B07
+783000,k,EA1E0F2616D682127D0CB29C210240BEDABA11A9EE8E17C6FE09ABD45625B779B6A52746A7F0BBE8AAE8B6DAC928BA64187A9C7E654DD28B
+783000,u,8D9474D1091A6F8214A77CBA382C0AA1814910386563A6D675B7B53324224963B06E64555F037DB9E58AC8AF6E673CAC7CC12767163C0257
+784000,k,AD658A90FC792E818AEB8FBA17556CB2638C0B7E5C319E9678BB884D63DBFCBD86D57BE30B7EA19AE4C3669C0148AD84D02C7E06982D0829
+784000,u,098E814F553A5F70445270722ACE41FD8E199C4345979B890A70A70E81A6911C454FF585D4D335D24C57C175CB5DB22DF3956E617A5FB3A5
+785000,k,0EA8FC91A08256C47E11F3F6B5ED64582E87B6F4916C990A1FE77CC0A489618A0BECA05A096C8E9B665C55FDD2629C814FC93F64D7910A6E
+785000,u,3B5A3C75A0CF1F0E354E47C8EC2A3685E1EC96FCDE3D52D8E346875F67ADFE042A2CFEB714769357D69E1AF21FF030796821E373A4F4AD64
+786000,k,9287778FCB20638FA70F200692A073A3947D4C8A26D20A531D5E2A6EEB36367840E7A4EBC41E6293F4BF406A026F5C057AAD6F0E077B7E96
+786000,u,A9B14D8039017DBD9529002630E3167B9E2616B1788C8AB467036333D24CD2B22CD0A322C445C2D17D26F7F8FFE12425D39F9D74665B5E0E
+787000,k,EA3B8B7001F7984ECD82252AC85B03A306F36F4162DCD93175330B4C6968BD9AF21558E1FF6D204E3699B7B2655C2A10E5F8CF4B5476776D
+787000,u,6AB6AF33E10B21F2C4BCCC488926CD6D1964AE66F753E5B4BA9BE191FBCC66E4FD96F4C840E2688056D2B41D37627DFA95E84D038624CF0F
+788000,k,227B0BEE81F3302B9E8BA1041C2FB923CA91D5274A817896E32A23C65A3AE8B269DF1452FE5F01626A699D60653C963D12BE8363B419472D
+788000,u,EDA881813D16C72BDD19E44F91709EFC5A8F6A0E5D37A26589D74E25EFC0B5712AD7B8647B3572D35AEC1E588DF87E9D3D4566911F1499BA
+789000,k,A1EC9553FD7DCC8376437800ECB5EE98141D995840BB6B9DFE6E0A36692809D309C685EC8A98A88B61BBA3E39D339D12F716E5D6B9A72947
+789000,u,EFB62A555ED6F4A552AB3973E644343F28A994B9E66AFE51D9C386C9F5BB3E075954CE364D516C0C32637F1908FE6D7367CAC395690C960C
+790000,k,B3B8CA162B3A502D1DB19456B2EE3F2C1B16B8E9EEDFEAA165DF2A3410881E109FC248B9A077126927B794E293C3EB1CDD92B3D4F8D192E3
+790000,u,F2736799AA670CD819563837F43ED9B34996A6EE13D08C161339D624C41012DB170547D4E8C3873A2F576714D81B0D0B50BA0F137D8D22DD
+791000,k,DC29012BB0882681B14C1A9BC997050F4019F0AFDF8B70B450A6AB401923A7DB1CE501B547D885F7BC5FE05B6935DDA6B8988FA0147448C0
+791000,u,EF4E89F8044941E1689D407FCC44E2927C1C523CF56057163D81676C099D9C9ED615CDE0A0785F66C4BD263BA66DA14C4BC797DCC254D2CA
+792000,k,D8D5391418FDA24E1305AF1C8D2761026C5B4A1C6268734A1026C8D3DF041A73AB746CC98608FF432FAEAD47EC2C855AF4BD1265274B9483
+792000,u,2F258E4BAAFF580C287D8244D962B1A2856DCE2985A56921498443B6CCEC5ADA71E837CBB3BED7C977FA5127EE36B86F366E6345542044F6
+793000,k,AE28BF8D30C2268C95042F45DC7E81C7318FBB765CB0649AAFD31921814E512D9257F3E49C5A4BCA7A292971D8FB967120951E8C119A9562
+793000,u,F200CA0654D9C705738710B24E8233CF2FAD2335903A8C33FBC433039681DBDC2AE37535E62582B302E8BB66A4D248F811B95A8EB8056C45
+794000,k,BAC15D161495AE11CD592782026023DDB46E430AEA2E95D32857D792AAB756C349F5BA9E83EB88C87EAFABB5282548C76BACF7BF18613B88
+794000,u,1539D659AF5943B839E27B8A8CB370FEAF5BDD59C012052D40514B0D538440F9EE8761C9E23248D08C70CCC49268258A9DC9AD2EB7FEBFD9
+795000,k,4E24486A316E3A71377762490F2666E77F99763758573303AE8018E7DA637ECB5CDC78F9B37B9D249DAC16824A4B5F5EE5C02331ADEEA481
+795000,u,A9E2FD65D5D5E707BB1EED8FB39FE44A7567E12461A9BB3E8D7AC9521F3CFE453083F624D25E179E5CD27BECFECA328DFB573BCF207D0D8A
+796000,k,FACBB1C996CDEB3FBED6DB716868533CF55E2BFFE355D508E789ADDB6D71419C410D6EE847EF293F5D78F14321706C796DA54B553327AC43
+796000,u,80A46F47CFF8F34A68865E336EC8FB747DB0F5C8E0A398ACEF936890A8D541069FCC8BA3EFCECD70448CFAC67BFA7F56147ADED3BE97C83F
+797000,k,84FC00B93B825459159BA7ABA2A4CD620E291CE1ABB970431742A0F6138682DC5EDEB464382AD9D8A3130FC47C93F864E032EA96094B1D15
+797000,u,4378EE04EA275BD5525AC89E960CAD7C6814C3DB78A380FCC2DD68643EE79F27FB1C71600624E658DE260DC4C056EF976F58397B235990FA
+798000,k,C2EC5ECB16D9B45936E1A9563D7E62A9421C816D0E2289849DBEA68BE5AAD7402209D3B1F8E09BCBA51EE8898CE272E5A1D40D05D5D7AE28
+798000,u,E3CF0F926CF3D0C4DE9722FD2472A90F106CF82AA0934D44723233A59F25040D1C39D544076D816AB7ECDB1AB8F018A72DFB0F3BF78606B5
+799000,k,F636A16202602A1917A8675F0BB5590829CCE8663A5915441BC8F7DC0635F3866D062E034BC7BC7EC9E993CE511FCA1F2EF8434AC7A1DCCF
+799000,u,0BF49AA7FE22EA5A253E0B2C12FDB88ECD56E0A2058B40353479E9735C14338CE119067CD8B531E4D75855E724E9D554F9A03492A752E67A
+800000,k,AEDA04386FDECCC6ED2C8B48FE81824F153677DCBE19951C577518C42A600523F61A14CF247E36A39B242A0EA338D013A2A6755243A24C87
+800000,u,71839BD2177C7626FFBBC488DE73B8E252C33EDE4E9C702720B88C44B73DB9D0F94B0DF17936260CC75BBA3F5FB9C296D35706F445B86DCC
+801000,k,5DE7E7E74F1D9F85706EE78BDECC3A780465797213F1BED99791F3AA76193DC32BD2EFAD4428CB07420322AD43635981AC97B6BC853B30F3
+801000,u,92FBE44E21AD47EE6F6041D07A4AC36FACD795588A67A8E94339BFDEB7DD7F16B0FA5CF869B03F767EBB074C86F47E3DA99B483809876F7F
+802000,k,660ABB608D7C880F99A7BB87CF9019ED2F28E541419542FD85FC74C345DE6484B6EE3C2A1D7C8F855F6913A8860BF1F8CEC7B5AAEF79C371
+802000,u,617F231D1EE95232349EDCAB3587B26CFFEF504C849000C03BEEB6F2FC7834CA16BEF6EAFBD97755E1E32B83E3552EAB7EBE1404A5A704C3
+803000,k,3A8F08A5DAB0A0A42B28C8E67B65660655D58EF8416159D8BDF974A97878209B8BD3965E4ECDCEF8A1DD716B1752E0AB2C2BBCA483E34F71
+803000,u,68F36AA0F69903596D0923818012563DE17AA0516DF1119548EB150B7019C5E2CB1B442DC61694F079C633B80352CC4A1812EAB3CB6270F7
+804000,k,7B09CF11D2108B2CA216B798418523FB27844B9A688DDCED1B9F91D84BC1BFCE3E50919DC182444EAC3FEE2CBD87F8E9A97E8F72A0B2884B
+804000,u,432C3F2F021BEEE9D57CC4F669DDC1A167368D0677D01BD0B7F6BD9F2CDD29C3310AB517FAE198A80CD7B4B8D5B13EBE2E405B1BF645389C
+805000,k,30A8E1286A709A11C245929F4BD73BC3A754C36A2B8B9B6BC6BF5D468B88A075511379DFC8684782CCEDDD2DDC2C8A8F0D3A92DE703FB070
+805000,u,D9129D022927559157DA09A1DDABF0DE1D82E6E22A6E224FB225083B70D11ED564A3FB09621E53B1B1C618F729EA3845C927338E6F79FFAE
+806000,k,A9869BD81509071DEDAEB14F6CF82820A0C35F9C427A7191D1EA137088F696373D4B9852475F57447AB82A8A8675B056299B20BA9CD31206
+806000,u,D3948CA286295581E701EC048F3BB0623462E4C1FB01FE58F29905FF1AC692D671A8C9EC08A47F876E3B54921475428864D60D8EC2909135
+807000,k,B2A537BD67AEF72841CB2608A1B7B72B14C0234140D1F1E1E3FDDE48FFC35197A2178F7FAE3CD4B1EE818C529B48DF9B1E7E25A81251E11A
+807000,u,251D09487686E7AC5CE766CF3347F6885F9740F85751E78BD27F00E1157B899C52FCB09F833BE96E8DFDF03BDD0DCDA76E0897C2DE8FF45E
+808000,k,C7520FE0B682AA6E4ADC075060FEB99C7F9353A246EB8D4A1A8B781235ECB2BD70808A3D014E6BEACC0148747AD9F1953C4C8C87E9DE2B2D
+808000,u,63E11C8ED64F48137F5D11147F803F68C72B5C215E348C7A5F46379B496F880C99765E664FD652A7E5C9E68DCD0B53E72EB2928BFF585A71
+809000,k,657F70637EF3E1FAC4962FD14A8E557174112D78A941FABEE2AE9ECA46DCC39AA58F2F5C755D8DE935EB5E4EC65605EBF43F4FECA2B1B10E
+809000,u,C10F63AB69C74DE84277CB01853ED18C949CFB569198A843A37D9188E5AD2AEE790542C225AC830F31588B78C73A30EFAC9A02919A49B808
+810000,k,ECD2DDED03550298B3ACC34980BD6684C3C62E8EB7B813908933ECC94138ACFAF9CEB30254F711C2FFF394DBB047B0748DD62A751AD90EA3
+810000,u,2B343576166FE36418EC8702667CA48C8E3ABD6D4890EC6582D96C248C6C80346A25556DAD82BD1649127F38F4D87589848F7698AFBCDB89
+811000,k,9146DDB8DDCD006C3EEFA55BFA4D7DD30777BA7FC5ABF0A6DF3CE5FF0023A4CFB6463E868D1D735E2D19C7FE53ACB71624BA284AB67B1425
+811000,u,45795763EB408C3B4D8659ACD28286BE615273F26F50364BE1EEA406C1F68E2A79EB21388E12677F4910717B5EA37403A3FA3BFF10A846C0
+812000,k,352AFDD8DDD22B60363636834CA17CF476AC6E9F02673C74676355AB4A3D59D01EEDE5A3EA3EC1F16A22436CD852A0E8941AAE36D5FB871E
+812000,u,788F2FE7E52AF3AAE239092D318E88F67C585671F0C85D7D5F02991DE93D8AA913DE00279BEDC3A5BB8C774AC2F1B72765C89C1474CD8FBB
+813000,k,966F2C628965D537ABE2DE6AEA6837D4F61DF70B0E18D71358646EE25F4DBB7A65EF19700DE1B55F19A361BB117A351EA87555686AB0F1D8
+813000,u,CA14A89065E8FC4EABBFCCE45F168350DD34C27F352096E8AF9D5680F9E7DFB830EDEFA1A4100B0D070C4171619D3C2D00AEC3228FEED180
+814000,k,278D48E12BC2E240CA85096C674022879F8372D3900F358AAB85F413E82C06124B03B27661303790BCEB731E5D9DC1D779D9CAE02D8C5390
+814000,u,7F35A465CEE043A9360FC2FC3EECA8CD5697AAE2F82FA82274480739811BD7C8511B4E2785A1A5D93F983304229307512202F763C1F7D169
+815000,k,41876BAD6FD16BD96449D3BEE2AC5816483D2777D20F4658E02F506882489030DFE73199E374D9D6C823DA68B7FA356757CB99F6BD89ADD8
+815000,u,891FBCA54F30D46487FA2A018ED8DE2964B0FD47145291E478B768141D565E78EDE791FBD1B573212978AB12ADF7CCE4BEAE9258A2ED4023
+816000,k,5DF40CA2D394ED068B8355842963EC5698930D3A1B96EFFE48CD94B433F9ADED0551C3D6A248BBDF3BADFE6A608EF6CF01311E3F2A4FCCAB
+816000,u,14409612BEDFEA837DB94BBF80CE659478F0DAAC8476CFEB5B77F06BF770C62BE95506122B3547E99AB310DE0D6D8AC80572C0F924D90555
+817000,k,197E43CB9F11F2F813AA60CCE8E3CD8666F60D0AC60CAC5207AE50E067D275BB4BF91ABF00644A0EA80BE150C0965B799496129DBBE9C762
+817000,u,2DA85BE648CA993A6C0864EAB595BDC2C136EEB4CB6F7B010438C7EC09C445EFB5CAC410A7D9642A371970807308A27B72464A830CF976DB
+818000,k,45D90348631B5BCAC2C6F22A460F0757E88FF3F837164082860BEE6C8816CD26F3D0FB0534554C1C9073263585D5B50D4D8188CADC95C106
+818000,u,77509F245654325D7435E02FDC4576DB76D9908227526040E54DA22FDD4995C240C5DEF8D0A2092DC0FC71637B48C9EDF575E531A11C2B71
+819000,k,1A1C88088BCBEAA9869D9A1F107EFEDA54BB88D08C397C9AF88771C8ACBA77EBCF2F897AFB47077B9817C2135E88673B7EF22FE126C0DCE3
+819000,u,F0DA028901D52DC5E5E504A5D87105EB42E55D0CC5EE8489DE2956C032F1DA0871FC73F63F68089C814C6202ED6B5BEA4095F3984CCDBE83
+820000,k,5C68D327D1FEB9035D00E344914FBC180E3440E5556C9C6F352B119F750A917CBF2300C9D29818B9A23F32694C8A0E6CFE27108C168F2FF1
+820000,u,3439725A012B6AA806E81DF252987BA88DF6AE2A7A901E62AD18F489E95F7FA1AABAD0058C64E21D5BC1EB3C9AA50C38F32DCCAD675CE2EE
+821000,k,A35D59C7DEFA62F7493B7F441B10F63CA2715B741CB3716CB6BC6F7AC15690FFBBD3A37874BA4955C7F335B813AADFCA5EB85D1CD8EDA423
+821000,u,7258AE9999D221A22B1EB68B97C83E55FA147923088936EC6F7B8E81003AC30812C6FCC047A9524A35AEEC6525D994050507A8CF0934AF93
+822000,k,7FF8BE9EC6E25B318FF06424C534B9729121A95E0C45D1EA2934DE62D6D93717E29B5E0FB82D027152655715AEB49CE1BD68182F274FCCD0
+822000,u,1A97709A9EEF7B52E4866749A086AE23DE8D4AB29967D70BC904F58A544FE375D654D1CC3B6340CEBEAA3F9EA69B27E51847DCCB0DFC9B23
+823000,k,FD1514176FBF5DF2F2A20485DECAEB95697F9A977105F9E8B76218D0B31AE82040A356AC8657889B018DE354C5A4EA213130726068E54615
+823000,u,891EEFDA706F90FA6FB26AF0981A7364E8D26508A3E3BC336A7DECADAF8078F4120ADEE65A0DADFC3BE56D9E3F44408F9158921EE62F97E9
+824000,k,3064531B53A38C53999ED6D8F7F092305843133ACEB8B00BA9568289DDB489D69F4E1B9E64F3DA12F96D1D89A301A606DA52A5AAAB786495
+824000,u,89496425139DC612F567FD0A57710193B04F425D5285A12EBB15797DF968F62246E5119E1D0F0735551DB6DA3DA8B1F4D39DE19EA1BF6FDA
+825000,k,712A0CB59E60A4F47B65ACE46C78BEE24D35480EFC3AEFDCCCAFFA9880280A74853ED9C042977ECFE9EFC21D050332E992A9A8E54A2DBD2A
+825000,u,FCC29AA1C551CD8E0B028A744AE30E4559527B6763F9FE8A8746F8B838195C21219DAA26863F1A89EBC51A5056F8CA13D184170DC1DAF710
+826000,k,B6BF96655F5181BE7EB64B449206C07905634DFC9BED238ACBEDFD97B27EBB9A17B86BD9EBF98CA269A827AD02C0A9DDB8A7174A8B138C49
+826000,u,1B92202B15CB89141BF0EB5B64046F576FE2BA4F307AA532F1E5B3378FE13512EB59FC6515DCCD3922E6C2CC832335DBFF603373CE1864E1
+827000,k,58F2D3CD76569B5793BF82B749FD7EE8C5D704CA9DECD3C283EF2435BD18CF194261380AE2AE77A90AD15A4B286D895F1DD18497530A11EA
+827000,u,E352E38BC441FC77D112E781328FBF6CD6495792FD38869B89EDED8B1B514127E4BC2321FD609D0C60FAFF7B0D30291ED5495F25F03A8514
+828000,k,607471EFE2860BD3D518CA33492136E64EC8476A932297A4BDE8CEF8443F61C76166EE7C043F084AE95DF61AD6998859ECA4925C349BF38B
+828000,u,5249D37F8D54AF419A70FA637ADB0254077F63D758A6610C2F9DAA5A8D4A65BBC42AF408AB86B6A3AC8B5CB4EF09D78C2C6F672DF5B7CC88
+829000,k,12708BF937885DC379757F7AB164D49E1564ACAE20C0D6943D81DD5DAB166C0AED38891B6BBEC5882B834CFEEDA2A2A256C30025B6CA7EA3
+829000,u,F938A62C6C0133A2AA1CF83372545F2146424867502E87F3692F4A0FED7F4ACC265497796A83CF222E592D9C8D84B56BC697124C7BD64A40
+830000,k,07C99C060D9CAE0B946185601A33938627897E6460C6C54E2D9481A41D5E22778B28C2CB15B559D53BBA7E879A18D3E927CD7528BFC3D4F8
+830000,u,1729C1F267230D94DA42D053FB57BBADDA9A2DEBA7055F2C2AFE134811C7E1274C9F8E84186CD917F4C84A2D5669B145B15A07D6D5A638B0
+831000,k,2E43BC193C63E241DCF5BB7362D9B25A93E18264A942802C862A4CBF9D3EBD49AF8FB6A61668B4B45637AE4913B08021614C6F3B3C1C677E
+831000,u,80FD2093241FE4D5B444F08306A5D755A863CCFE36E051C82F39083C9A71C5DC95C36551F7DFC1ED091EE90409B078A7DC07407F70AF77C1
+832000,k,B7B8A828745F89C372EC0941D1FB5E036775E61B35F27589FF481751F373878ABE07C80B54893429F7F016748C517AC1B22E6D6C45836A69
+832000,u,2262E014E64A65517617DD70E4AA8DF64705645CBFA9E7E6F6FE4B86FBAC050A1166AC550D1F78C8C06BC17E1F7C82534EC64AE8555BD51D
+833000,k,C8E7621FF378350B43F51C140ED48A98620141365094346A5321131B3BC0035A4F29103C227B3FF726839959BE356796D1A2C3748C37342E
+833000,u,138DB7E09F8C993B9F5A2C57AE65FF461D75BDBB755657E6778498DC27EB9B5B83C4644050F4FCFC9A4CC62F2A2725C62F5D1DF885AD17D1
+834000,k,7AE179636E51CA78F24A8A633F92EDD7D24F35568D4CE1AB60ACC8FC8FFF9707D55909A676A17BD8AE39252DAE9BE90C9EBBD4D13D48BDCE
+834000,u,640F897667BE01EE8FBB74CF66BB0698FDACA025BE7B34FA8AFDFD601053595352E12553E5E6F50F47BA9E169FBCB7AAED7DC2E126C7EAAA
+835000,k,3CD7FE13713EB1A04EE8431E55EFBF819C4AB8CD82D635EA445DE9D6D34881D5F9D21C72F77D571E29BE5F3ABF0AAB23E373887C8CD40826
+835000,u,F4758DF69CC0E6258CC85FBBE02EDD5B959FB25CF8425C2179787AE964F5F0D60E44AA4AC2218D692104A5E74FDF75F2C1FFE56C1EBAEE5D
+836000,k,98707ABD8FDA956FC09BC34641F79EECD7C4C0CDACA4F815511C593A09BD56A7C0CFE893D6922C14CD2241F1201849234746952993CB2E67
+836000,u,4F8B2EC406ED4382351643DF02B93FF3A224CA7ECB99485857BAD89582E81D07C8E82925BA491B393D7C9E0270CC5021110E9E0D6AB75A35
+837000,k,22FA641C6546B3429934AF6FE1F3BF7A76B7C24CC823C41A94A18200A80F50A64C124BB5370B7A242D0466ED0C2A1D147ED458485A32E502
+837000,u,C08B721C7F080C6CCDAD41F1C8F99994E897B8CB0B9E8A68572C1B5323F3ABB2B89858B2B51201D9095551FDCA4B41799CB8A3C59F604F3B
+838000,k,14BA3C48C6EE3F536BBD1BE62EF64405579CF677591E60D082A6A66627EBCEE3129ADA3489A3F324C64FB8B0097F3A595F22AAB831D3E557
+838000,u,711D388123C6A4F45C8B9B8A3F7C78892BCE05A2CD4275B35B39E3E7AB72FBF7D842E4143266737B1FF3E7562BA1FD491C8C16873F231561
+839000,k,34547146A4271079FCD5FA38C2319631B67F98C765A483406F0D421B940FAED1AB8E0EA3F612538DFFC7A08A138A6AF22DE83A2BCEA84093
+839000,u,1BF929E87160C02B0D531C4AD0352ECA71271306D9294ECF7C18D8DFDD2082616DBF9B17AE9F0F51063BC37E8C060A5BD97F3A8E7437407C
+840000,k,D4DA95AADDBD45B4FD0F1F5C093EE9A6D789DA1F15F8587F9C3B3BD190D2CC8039285DFF8B8158868478C51C1E42C2FADB3C9C824B54B9A1
+840000,u,8F24206185FC0B029B4B4EC4EC32C339B6DCEF8D74E80D758F4C0E66C56D80E454AEDC22E98D02FC18AF47C8912C1E79A7CF20835CCE3F41
+841000,k,EEC128F4911D9C79442DCE05467A1C2B853A98D7C13B9673D3018E210E278CFA343614AD85568A5E481A84034CE4529B4215FDCADF167DEE
+841000,u,DADC903F4409F7395A03A7D708E290B75412723C63A66C33C964C702C203E1B4A50DB8EEC5D04D65FBA8472328BAB056373A07BEFF63D95C
+842000,k,2AA16AAA5FEC4EA54DFE68C3462243BB6257968DC061505EC66016ABEA52E62B71C0FA009BE11829D4242AB97AC02E45108E94AB00A43B9F
+842000,u,CE35D130FF0C67F05BE80F76DFA344803F48A383D29FF4F5F462838EDFF0C1F44746E6FC9D81FABE3D27C821D74913A459EC171EAD977FC7
+843000,k,AA0FE1BD154E334C9BF97A1DB8A56AD81E0F994850B1F67465F5C1778C33F56A819A649BB3D35E2B03A5368CC4BF01D80B6240860E8C58F9
+843000,u,5BA287650B4C663CDD32F01CED9DFADB4B4088F70E71402091E828423924DA2E252946E1752A8FAE0C27BB14E22D94A08AFD34A3098530FF
+844000,k,666D2C5B6CFF1E6141F42BF3195DB7D464A4A1663AB121F82B6AE31A70B4C1637C2D71F21E51357CDC97A524E44B6C910826B81FE065B823
+844000,u,61F9DF273815C4E0F7E224FCB046B0CD3F36603275718D3C6CE0B24E21922FCE86D0753BC18514836D949939533175D9F56201A71DA5B92D
+845000,k,2843D5796A6AACD6D61F9EE1047B5E3533843ADA550B7AB8FE05F885D045B151098CD9F6A54EC2CC30C9A1E29EFE4BA8BB4EBB3FD2B74ADA
+845000,u,C5B80F41C2C6B51A35142417CD65E281F84572DA88C0CD26B422CE283D0FB51F16DE9BB3A260D6D04B3130BF99717D4124F95DD78F67EB87
+846000,k,BEEB05D790D4D9A268F095ECF74362096A3EE20192E722D7BFB2ACE48FED778D173160E375108FE611054EFC50C3A222AB56EC9097C469CE
+846000,u,3F5657C219324ABCE01927B8650FA0077C6CFD1A5AE5242C86F9A4E139803D6317FCCE88723B5F22A375C028B0734F7AA9B7A2B531010BEC
+847000,k,D1C3C22D2FED32F6D31328B0F4759DB25951954A8629083C02B85535789594E81EA23EF1A5F03B4A5CFCCB67A0B6AA30DD6240BEC4D10C75
+847000,u,87BC5868F1F7D086445F8FD6B98561C52ADDE5B5F2E2E7F41B163C1AB0423BB5F6836A2A1A459A50B62816CC176077CE15E669F10D0DD008
+848000,k,8731C1E753C4D8258B2CF18A8524F7FACC03D10900F82BA47C0A756FB28AD242D5C5124DBF374DFAF1AAAEEA44BA91C53B4BA7FCF5D5AE2C
+848000,u,E1D0B85C33ED80E51441F0FFBE39BDC05B1C48AEC485D78AF2106A1174598AD0CD9B8BC98385B9FDED09D5104889E5932A12444EF62CC25C
+849000,k,02ADAF777790555DA76E6B2D4726442FE66CC5DEA9563E57D290E7BA32779A50DDBFAFC54CCCC839BEE1E3049EEC6E08986231143640AD2F
+849000,u,42BDBB166EFF95750BEB9F2FA88359D8DDD9B30B7F9E2F0F7514DE36419858B5E9DDEF3C23ACAD7F7E90C80F94731313CC8AF3DA5DD7725B
+850000,k,32AAA9D394A6C8253AE2719C7C8906FF1B912C9CBC8859821956B5FECD7292AE141A0813F20C4139EF38BF5462FBCEDDFD197D9F3C6A9C42
+850000,u,0A25F827B9B5779BB509818C14FBA08F54DAEFE2D6638B8CE3DC5EA35E9493B480739ACEACB8FEBCE98DD78C1B81E980C85889FC90C17E11
+851000,k,660CCCF2E9E380395F3E13DE07DB11DF8734FA7EA183E22FF22D5D71150205FCED5C1572E44CE4606A6EA698C6155B210B8438D6D3DCE7FA
+851000,u,21F08AC8077B3C0ECD47E2045EB69B0D78EF4F9FFB284E701CC95C4495CDBF0ED630B9A6BEF0B27571B841997631FF681F83B8515C0F59DE
+852000,k,D8C5CF3405C5B39163047B19D678881A8F175412FE19336D8607B5021EE5D8F6E482B3CD0916F56C7F3BAF2449D61443A564ABFFDB558AEE
+852000,u,D71DA7BD55EE3ABF33B3B6D95D243FB185982C56648DEBED422932CD9646DA24BE30A1F2F669BFAB9326EFCC9C11ABD038F6DD52EFBF1E66
+853000,k,B68213C7365838FA75C8176978FE447899AEC26B69865F1F6FA5535DDF773B064417919A7E272C2E4215D34B43DF358AA018B79DD0CDE3B2
+853000,u,A66533A513EA66B3D1C757E6FD8449523AF478464181CF1CADCA1DD6EC5960BF5F1C51C4438C08E5F1230107CFC198F792765E874D7DDA00
+854000,k,F56F162D21F32834F2EF665D4FAD38D45FC417742AFCF18DD382ABE74892F8B388FB0E464D6E0DFDE424929808479E1DF274B325349EA9C9
+854000,u,38BBCE1B7B3925D2A71460A8AC86350E26829C9CA40A3CE3FB58A65487A4669244AA73F5BE06DF22CD71F1240F56D5644689A268FD82DAB4
+855000,k,B26FC486C32B40616F07E0A30487D35B12F24DCF961350DDEA1C7C00EA135D24A7B641F327DAF87C56515A859839EAA777C0FD2427776E62
+855000,u,705E46C4032E07DD7068423D6D8F32B842F114DBEB76B894059B3EB43C8E7EF2C10B36C943F63E06A4A2A00C82E219309C487717F7C08AAA
+856000,k,6D0DCC2D04E558512D0079897BD9E4862BFCB868FFBDEC316ACAC51264559305DEB2C90F5AB4842308D86928F6B9522E90963BEB371B222B
+856000,u,E7D0E1A29A170C775A06FBCF9D7515BB8DDCD3D0DBF1BA8280001D3928483529F730AFF1EC37ABA1FCB89D2A7549BE1206CF4113775CBDB0
+857000,k,8FE784F2BB8A6EB6B5002DE2BC792B2401665E760D2687C1735FC655C0720F76326C0BE00424852B1C91EFE0E69362DBE4C38F3312721D28
+857000,u,BD0B3E7F50D6C4FBE2BB1FF2609CE8A864060316130CB35B094FF337C6288DF98588DBD4F8BF0E8D09FEC73983F6DD3ABA4C2832BFAC93AF
+858000,k,2FC885D34C536699E10457E3452F26060C967A872465CB9A9BBE8CEDE726E8C30B5F4B775E39321F4B7EFEF60098653573DF1375FC3D614C
+858000,u,BB7BC55F1B73F8FAE13051CD3B146679DA950596869EDF610363A34C3DD03A1D259F0F5B86CF661100B77EB66AB157C35EDBE7077C412209
+859000,k,0ABB5F58B75C9A2BD2B6E82DF10F133651B028E3DE42A2855A81659A5D1D338F0713289B6F47F06B7C5A901122BC842D528766CD01CDED9F
+859000,u,D6349F814791C715ACCA99EEDD2E84730C5504FFD14DBD172E1D64CB587232184A413742AD23A03E568CC9F2882D68BC5351C0422FA33735
+860000,k,1A45A5F713C14A4667C3B2F61747229F9D905CA8EB4A360A15D2E44D909579702AC0820DEB4F25E8DAF1C5BFDA8ED569775C5022F01DE05C
+860000,u,5FAB440DF23D553D32C2514DBC0D0CE89AAB71BBF4D7AF3C0921DF68D605667E9FCB50F5FA440AF9BAF90B2E0E0A2B9A489375CEEBEA23E4
+861000,k,8ECB1A5CBE58E302EBA370DEA55DA5F888C0687DB9055F88CF0DFC43EDEEDC9D7109397801FF61A77BF15A24FF2D7D7FF8AE1A5FE1E326BF
+861000,u,5E2129EB1F6EB24BBC2F8E3898781926A9BF7664A54FD868EE3D35301E9147AD7407F94135CA1B2505BB1A2FB91164DCABE3097A2C66F4C6
+862000,k,9B4C21423AFF12CDC21DC0A700B86F181C69CA1AC4DF6E51510957936BC4CA339FCBB7315A02C3C72B9D2E6D2232BE14F24E56C25849E7D8
+862000,u,525921A998B7AEB73AC96F294FB2C2844856387272B3562AC4989B4923657AC6CA04312438AF54EB673F3C171B9E2DEC8DF12506674233E0
+863000,k,8680FD368B76A7AFD3FF71CA405800568CB8C910C204B67CD7262F1A7988745DBB33556ECAF53C97BF83CC21EB20C7977CF79512CC97204C
+863000,u,F7AC68D2075BE6C139E03705B19037B8DBF33BCB9A2A55402DAFCB7D0BCBB57F05FC682E026495F5E1A7697CBD238EB8A5BF6465D5E8E37A
+864000,k,6A87D09FAD0EE60D48466B2D61AE5E45A061CFD96DC22BF6B6B8807CA27879C3F7A7A0C0A55665AC8B92B990B7C7E416665DAB85B08427C1
+864000,u,3BC0CEA4446B071C81C52C44098721ED6377924DCBE897F8AE6A9E03B6979469099720FC0D1E330DB465BCF4FB48413972EC5C4D44EEB320
+865000,k,BF45B6B9F1CAADAC7D6158F5468C935932338A57B8CFAA08019904ADDE980A2C8CEADBD4FADFA2D009C73208BDFF0B906DDC60F31354B156
+865000,u,2F29362F12D3D5FF00FC3F942F4C76E3CCF8D864E8FB27B934C62665D7FEB25EE8D4DC3ABC3EB1126094306D6458061732BBA7E4542F6D34
+866000,k,E8C06B1369C7E0293459B53C632EC2853A36893A37A8AB4AED7921E8824FB64A69689F8753B5BB56790706F5B11EE60C732374E4F20F6F7B
+866000,u,204455634FB1AF69289E66C21C24345C417A5AF3618DE02FFC1D32A98697FD72F9AEC759C708989823D1FE4AA02D94AA980AC749B758A18A
+867000,k,53624892221D3852C59C97FAC9B35041972BA041201E577019B15BE31A395084E44A3F7ECCA5A6BDBA53B497D796197091EFED42AC756EBE
+867000,u,4A071B39BAF8F644A761D2D93FEC19DF2FE7E5BED6F374797417116F9BD146C2202E971CD1D653DD959D2DA7BA91EB07F7C213D6964E715E
+868000,k,80A74E90202E2AAA53EA2FC7091034E995A4E4349E24556DE50E64F09E9CEC941872B812A0C69F3E77FE6F091AC6A5DE11B80F8020620388
+868000,u,8E3900AD435FBA88B0C0397F9BED450ECB71182F19FE76E34875B7D6CF854BDC0F403A071E9E15BC76E064E87F5C90D779FA12228667B0F9
+869000,k,9EB30D2203F225CB71DE194ACC5E41B109E77EF16D3BC67F871C8301A566C7975D5096E88C14891BB19836E82407EBA594A33B6AEB77866E
+869000,u,3A8CAE16574FE5D13F6BEFF6E465495AAE10DD8EC1EE7DFE011EEE3136F0A91A1F4A7509B8C8F1EB225E5BECC8644EF6EE11BC3167C2BD2F
+870000,k,12B1E3B94297CAEDB733F9E38225F378A44CAD22777704D54B21C698E5B22B322E2479C5D3B98C643C3FD3B30489E89F671C67B6E432B0E5
+870000,u,35AF8CBBEF7B9F0EBC5DCEFE8E26634BBAB3B17C205B090E988D890687502934B8EB33F502E759C63232D6BAD026B9A4AF44C2C9BF881B4F
+871000,k,413B45B2C4085BEB32C2F145CD3185C5C7A258358D455FE9757754F2BD4358DE208210AAD411473FD5F4AC09D2BEB1659473AE5BF0BA8CF4
+871000,u,9C6FAF2234F3295B9ECC80C59B416A052AC9CC4CA78D222F1462C4234EDC0C0642A9C3788360BE9AC0B7CBD88AD273D6F25EF82FAB02B8C4
+872000,k,8B5606CC5A0952BD26CF06EF04431A33633BDB6621C6125837A178369E25E04B0F169D00E4CB2FA420E339B5A73C7DD6547DE31BC419B24C
+872000,u,C77E2745A5D4C07B1AEB431D4506CA2196F97B83E25DCF4556890DFCE3174619933BBEE519EB40E079C7AC61D52A500FDACCD18CE2C4767A
+873000,k,E103933A76F72C6DB885B84D1B277E98142296511E463BFF366567850299996BF39F928D9649DD9774FC6C54F4A45C4DF4A2B9153CCFC708
+873000,u,0040F3198F2400417464E490A2F9A7544232809721DF6D490228E2870F784790934608EE83F2F68954E3CBDCB73E70A8229F06767B409B5B
+874000,k,3E7AB1EA5F903D700904F6592F5089A5951D31AF35E25A6AFA224A8FE106088CC551D993FE4A16D0D47C05B5BD3EBDCA136A03702A5E0339
+874000,u,5774D696A03358288A6A2A8FC129D90987010AC88F25260A5031422290398F1489978DBEC0C1E936D49DE6D662BD3E73D8B2082AB0550D02
+875000,k,575C8C9BB945AC874797D79CA8229E3A554212B493C4631DE38C4FFC8240240ACF646BA9DA4DD966E04F57E8AD7457EFD502453A0815FBB9
+875000,u,F0F0A8460ACCC0FF2B4595CB19FC019656CA5B728254FE3D86D2A9AD7B42E7C4EE8941D8F0182955C48C360BCD755204A57BDD2FD221423B
+876000,k,4A68DA8B554F0AD38C4F728B6ACE8152836F1C412E1F0E1956CDE8102C6E09BC9BB8BA19E87762732A2887BF37DB63101117472019E1D342
+876000,u,2D79EA590DB0BC2971D1072DE61EE7B1F79A065F9447E095EDEAC476380925891913773731C29CDEBE99ACFC78B2B6E571FAC9561A339046
+877000,k,9DCA2138FB5C054733F5E88E2E3A9B4F6B5F93C58A4C615C5CB488D4CEEC197A58007C6860BDE0D1C4F9A4F9A1EB4DBA5C046D75B5A54DE1
+877000,u,9C0E48EDB9B03BE9A154FA2F24DA6FCE28778CFBCAC84C5E6E73542154E0D753E82049942D6A06BB1042E610DBA3DBB81DEF8DFDC7ABEABD
+878000,k,915C9B539CDBFB36EA51AF5EBF0F2B4CB0D405C49B23858216C7F6BE1393A5C1208A6E759A6F3B329746884D5BE3C461212D18F5016ABBC4
+878000,u,C41335ACA00739C9FE045F34996D0BEBCAA888B45AC591716F531E1E9A57FD4D99E0F478035CDF7A8C3AB0DE63E9088A9124689CC86429C8
+879000,k,2FA7193941FA8D163568C7341BE11A29BB8A9B0B73B8AAD7C0A036FED5992A4BB97294593276A8D3C6F869B47B930DB72A058CEFD1C0B371
+879000,u,36FC4334830B327965D6B16F70834CE50419A15F91F2D8841B7247732EF5BDBBBA74D17C336BFF8CE6E6C7EA0298CD5BFD07D8EC8578277B
+880000,k,CE6014B9223ECEAADA9D9EE297BE53644DC203EBDE3D4DCB8ADFB3DEA0FB9D0CDB31C0FC13BC4C8D85222758F1716A4581FCE2C1365B8536
+880000,u,BC4B1D47B6AA487F7C691C4DCBC29237259F3DB991ECD5707DEDE170FCEC2736ED13505C91788003734D302290D2D7369D31D535CA8F721D
+881000,k,137A1C96113BA2E8CF78AF1107CB0C589E7F0A3A6F65170CA2982BC2B577059EAC97DA8467B9BA566975A7F597BE95AC89B87574E4DEC113
+881000,u,552193A75F485414430B66AD29B63A0E87B4F0302290622B7691FB3E2C0BE68C86CE90ACBF9B4D077CFA04B66D8C02F0BE81E77988D0395A
+882000,k,4D230518ECDD96BB2C7F739F0E9600F58BC1DE4E65220F829BC76A8AB73B229DCCB3226DB487B8B44FF64A545750DD441230E1CC3979B41C
+882000,u,527F5771A50FF0FEEBCDA8EECDAE76AA1AB422664B92F005DDD3688B86E0BCE066E5512E355701F1B1BA86924AB2EBD31029E1ED2F237395
+883000,k,1D97670551ED7FA3510F19C7F00B8AEF95020DE776A8067E267F57801E839D34AAAC078EE68415156567B2223FD28200D4AFAAF3C9B135C9
+883000,u,185D84A9B7B8DB58D17FFF17E44EE73636AB8CA31374A39BE9F8A443AE45B674222E4A64EE7E4A3AAAACB3DDB612491F42707ABA2AD1A440
+884000,k,D2E5C02DEFB4F18A8F1207730FDEE44E4BAEBA95DF88302C3AEDEB2E37926C12CB66E5552F7F1A0144CA2D833B6462327DA88E2E0A5D1B24
+884000,u,396F0D5D6CD10343E5DD90C595422EC75C9FEEFCF303D347F54F2C9CE2F4A40B67A0F920D3F79BCA7CDB5DE26B13A0A5EB40403054667BB5
+885000,k,67168E14C1670D6378A7A2DC4060419AE1E539AB4C0B76E8B8369038293A6DDC184D7CCB65F6CB866DCED6D6F3B83BA595CEE087A162551A
+885000,u,23B5C1EE6194B193487458003611D261E58DEDA53D4D568C0AF49AE7D27C311DDF281C34D5AE7EEC8B43C3F596C326A51A551759B905EECB
+886000,k,CF55FB355B48E4875A43481A1CD010445A7722D66ECC784B30966D40CB15B22D81A70AF90E657B7BD100B931C6DE989B7F35119BA3BE761C
+886000,u,8D29DB8BFD67C46918353F258F678FAB553D351324CEDDA59C36B605DE3DF1E8A18920334ECC80410498617160BC471AE9795E2B422E6490
+887000,k,2314C39B526DC99653883C521EF6E47001E2C2828F1C81BB8C3333228F25104C32C82563BCF3B9B23C8F71E385FC01411F7DBDEBD4ABE861
+887000,u,933AA226845BC8105FE288DC782BFE71DF74EF378178675CAB8B796B27ED50128223B30D5A36088C0624D94E93EF5BB668F32379FE86FFD2
+888000,k,7E1B338C358524CDB014018C2787A537299FE89976105E0ABF325CA8B4DAB0691F286D1993EDE44314F37AB19E062048F43F05D6DCE3619F
+888000,u,260E26E030D8E5DA29A9D6FCA933CFC831129D39454F986FB36B2B4F12936BE29C9801B28A03154002272552D1CDBF3084C8FFD44C7DEAFC
+889000,k,7C4A25510803D0078EE32FF6CC1E52565B874C6232DBFD513CE39BEDABE1DEBE54CCA916DF7A10EF45D363AC4ACB6B139579C513174C492C
+889000,u,FC55DADD29FC9DC8065180F8C04E73DD02A8664C63312AE370B9BF88723BA50977664CF5D6CA032DB4DC962707B8A7D499B933BEDC8DA98D
+890000,k,23D63F3ED458D51C8CB23AC9FEF67AE338D1FC8A80FFA0B3538CD612431F8925494F69725A2B2306310AD4633B579BD72710078DDAB71301
+890000,u,B5F68495517AF7DD36F72044E11392F39CB36B85342EF7F9AF4C34CB7D5119110A71F68C950FB0F20908019EB63476C93918397D0AB787C4
+891000,k,58A069A1F334B802B1497CE2F210CC49098CCC84D866F4059FCE5D2727F44144AF36C21C1150208531984AE484098CB4AF03248515FCBC94
+891000,u,DE3C6EF1F9C3F5D9A58B7BEAB6A583F1FC44D0CE4E892DB4F992AC98DCB288646F5FA39308FD8A606BDFA8B76D3CAB5F58A437C3BB684D28
+892000,k,F8E070071A56C4581F2F5B1597CCFBBA3DC88BB4DAE98949DD5FBB8B1A2CF92730A367F6B3BBEC9BB3B5A6CBD911EA43E8B363F96AEDBB2F
+892000,u,99F9B0E3D08D4B30A012988F0E2323D7E5B2C34CC549588FAF9A2F2EE61A8E02DF8BDBF54CFA085559028B505B912B4B57612E858E2E2880
+893000,k,8CBCF3A926DED4E474262EED98B47F8FC7FFED52B850135BFEED2E7768959DCAADDDCE0F5FB989A80415B53483719A598293A6A8C7335D33
+893000,u,16BF2C7A281E8AA3A736F5909525C297F29F63C1331162E8A9B9271AEB643B019E34970240BB5018AFBC3844372AE1C7CE3E4F7F93160471
+894000,k,CC6162257CDDE7F9DA90476400B461FFBB9A84E44C5CD24A25482A9F9DC60947665CA8F86D0EBA3D0C9FA6D67FA2650A898163F62E0F1607
+894000,u,FFE26A30E7F2FEB70F027FB6B8A0FCDF667556AD3CAE353442FE7DFA525D99C71DFA38A29D81E64BFBE4574C60E7A979096168A9FFD39A8F
+895000,k,D9669E0CDF997231ECA19C4991E03532930C80CC57170FE06A4610ADC4FA4D5A7676FB542AC99C69B284A25C8A59B2FC3E19F1CADD142296
+895000,u,E97ECD46A34EFFE7E13F39066ACADF06B9A5CA19151D1362481F6F14F393FB16556506B4844EB46A6BE1F6C1E8262A8F186DE3739FBD224E
+896000,k,F7754A1915D8C435F80C67E3796164D66C77176FABB9132C63FB45B4DDD2353A9674F83BDF9257215116E86EE511A10C1CD79C3F795703E9
+896000,u,5469F53AC24A25617A3BE2A35E44B1F767E610F19ABE1537411B9D6BAED56EAC5A59CD98B0173E6879CD26964D56F3E85FF91037BB91BC29
+897000,k,158EC689C5336D2660145CB2199E8987F788BE2CEB0BA9E00387D08BE2C3D789E306DF0E694F5F981BAA618552D4A3B835603413803B3E61
+897000,u,63F8F17777E3C92E7D00AE35EA2707510D09E9E6368BD87BB1F93D953BFD7FD4A3D99AB7327DB5527CD07683589804C251EFD408C8388CBA
+898000,k,FC3A7B0A234019F209621D6B80C30DC32AEDC9B92409B90C1B919C7C38791D12B48A250F1E10F1D72F07EC07F1B48E8DD93D795D4D90482F
+898000,u,75ACAF8B35036CE8DAF8654E4F9429B2CC18A74F3D3FC3C217963EF94B7DF83A9F909F8F80BB27C31C5C3B4EE5B5EB7290D6306CA1AAC4C1
+899000,k,EFCEEF84E2A680B18874656594E9CF637931C489E3CF2700BB16E033789BFB8DBED3E8E6156E3FFB46CD22F5C22570B5E5AE5BF0E37EE574
+899000,u,E2C97EB4FFDF5EA19AA86D46E12D4FE7583126D4B1A584B481FF03CB11057FBEA7B495B3D3DACBABA2F2945992F23E5863D42FF60DE29D47
+900000,k,35F06381FB88C454B9542A143E47DF2FB182B195D28953DFA8438EE154079FA13217BAB462C5EC3FFA5092EFBA55D980D6E59CE158788362
+900000,u,680C924E52BE61AC067D8A0109A0371943A6F3003B10940D29711CC4C14200A021334ACC207A20699418B0BD226C413C311BA532DC1FFCAD
+901000,k,25C9DFF139F4245F87231E4DA7EE3982178E140C59038548C36085CF47446C2506B7B85316F547571A00AF258EEA376E2A141A45D96F66B3
+901000,u,8CFF804BE3596D5F6ED5F7C0D5A0756AA41C9CD114EAAF92FFBF4C8725DF2F71A6123C5FA542BE59203F55C77399436AEFB89A169BC6ADD7
+902000,k,AC48100424655647D1A9350FD201ED06B3AB0D52A0E940C649230328020DEC52C7EA5649CF96D6C3F9A20D0A7C2AFE7278C60EE13327B5CD
+902000,u,CA0C697FA0225DC44FF9687E2435261202D7241985609D1E9D63A1600860E336FDFDA52A717C6974F48D8B99BF5FFE7B08160E2681F698FB
+903000,k,D5C60C4F72365C6AF389630C04C28086D3550911200972EF8F1B9669391F8F360D29AA57E7D09596C379A494D96F92B02E84AFFF9769683E
+903000,u,65930602D330EF72862D8B32AA040EAEA28F213CEA23161261D970B93350B38C0B47FE0F111978ED5ABFA10DD2D39EBC8485676BA4698E56
+904000,k,DCAD87C3AA2FE5CBF9A8F8C469425173D40E88971D0B7EF38B9BC0DD8B2254B0FBDD87576149F83468319582B97E0EED268615E8E9993F86
+904000,u,917FD4D5D6CBBAAF56592C89728E913898A8E7E51DBC2B6543D9941FC5E28B3BF221AEF623666FCF7AA3F479528683DDA06A423B7FFB66C3
+905000,k,D89EFA0E522C0ECEBDEBF50E483B7108BA907CBB39927D9EF44209960449C304B47358858BBA42E800D2B44B2C0871E71981DB47E2C46DC7
+905000,u,75B31C13EE0A78EFCB6C738949A33673837747435A4CD93DBE98A912AF067B414FEF28BE8EB74B8EB35797C72687B7C126919330B227B2C8
+906000,k,EA47E7CB97F077E3A55C8DC3B102F2DDD105C230EB1B2055EFC4A805855DEF7A86225639E4C408EC8E9070BBD7924863D65D740A265D6E36
+906000,u,51AC04FD1F1A66E6EA147E31D734513D704276B0A5E6A0E395B817B2782BB2CF62499F012874B30934DD8DB3E0DAB81EDFB6A86BE1CB8EA9
+907000,k,F2CEA67853C4702679B5A3E14C43BFADE28F0EDD9FFDFFB136AA197894852C8E3FD7920F85C45C20299C77C7E278590B324489986376AB57
+907000,u,CBA0C1D80019C53974FC07676709C9C2C5C2B800772F9784A39C10F9991903F63BC8B9024766741DC6E53F25A8078605BF58301428EDFCC2
+908000,k,29274FC85ADB4A13E425328F5979966A21F0E596BC176290B5C77C393954D1BDAE0250B76A8169875C66F5439E011D80395B260120D7C615
+908000,u,485478E07EF3D25979358B8EBC90FBE92D6EDC3A934BAC40E942F54B24CB3E6552C395B498F43E85676A83D639C6489CE427A2D7306E4D89
+909000,k,2142CFFACA26C26298B25C29A638DD2172A5FD78618A4D24D211484827A6553989DADD7068F6FBD5CD2C03C09FC2FD0DADB98AAA679252F8
+909000,u,FB830A840C5EB5A712FDE3D1471B5E75BA35FBF41A199A5CD3533B1833776D255628C913E980E649AF07CBCC924A9F3254D651F2682BCCEF
+910000,k,26FE10BD922AEC4CB5806D45FE9E065C4ED9D455B459CCA9F21140CE8283515E992020BA98D7A176EF341DC018B75A1CF03DD97226C6451E
+910000,u,D68FACE884AB5DEC02274AFA2D1380B16AC9097221381A001B42C96574279970F6AEDA6415C485E8B1E500D904A6819C4A5EFB84EC5944E2
+911000,k,7182BABCADBA12F4FF461F6DE4EB86495192D3FD4F3D0CFB8C1C6C9C53B75A2F49D4BE62264B7040D6E9A97448F4AA83E00CE09963FB2425
+911000,u,7903A6392068B620685EED218D08EE59D87EE3FCEA41BA9778C0B9A96EA373B7E1CBDB1C95AF0C0EBE675638D9280ABF1957251219813F4F
+912000,k,52692D35E75EB71D68BF150FEB411BDBA3D6D4EA460C475CA9FF23B29AB344A7B7A147D353ECACC18791689CC023786DB2C9DFE623709B6B
+912000,u,3E98B901C6BFA7355B273D02D2CB1BF8682365E3E3A47028AD69597F69F980B63600A1DE64A3F47CAF8D10BE628668316CDC14467401914E
+913000,k,641453D074D5E8E19D6CD79E3E4FC9BA1EF6CD6398EB1033D26D1D005EAA3F5807894944E90CB87B2CBE60458FBB0B42A4F852593D966683
+913000,u,EFE9BD61F45C2D736B951F3FA2991F1A77E93A83A3C5DD77ACE47D3E9682C0745D31E96A6B46EB1DE17D98167446AA2B80EA56D9C097E13B
+914000,k,9ED25AB014C6C98AB02A5693112EE5401599D3DEB64F1308D5689415A52415F7FEE3E86EDB91677ADE85DF87B5B9EBCEBE995623710E91EE
+914000,u,DB52DCDF60DCA36A66D0AF201F146D8798B40497AEBC18BE29A6F7FE4344E1A33E999C8AA058E398BD358F6ECC87C982B7B2C97F5DC60E51
+915000,k,C8EA6B9608EAE0ECE7BAC4259C18B5E50E366952CC1C43DBCD55155F291EFFC8F8475F03C5168D1847893A7D7FEFFCD7A04670B54C476663
+915000,u,1A089B59E6F86B5284D4182C6D43A94AA9F5568BF3C2B3C521B745E0C37E1E380DA88B1E2A77FC126AE3C5F1E489577E7A4423309F8A4F79
+916000,k,8367453DABD3E45A4310626DEB9E82C766C93E0B0CC3085D468A03D9C0CB6B83FC825F2A37D6B18371A59189456AAB699FFB04DCFBED4FCE
+916000,u,69978DDD85640A28D2F9CAB55FB9E6C082F70E47F3E31F49EB00EE63A7E7CD57EC7C92E6FBC0E9ED2D0FA44951C2B9963EDDBF607A9ABFA2
+917000,k,47AC4907CEDDFA3596B51FAC0476E8D3D83DCCE9D4B3AFA2A9F2465CDDCC7DEFA901D62589FC156E674EFFDB59CF1F08B9A2E89B5C2D5E5E
+917000,u,9DEBD4BF8C58495512D15D818E9CD8853D2F2255F4132A9B917410480B110C560495452D7D40521297491FB3F716CA955893115497C12F5B
+918000,k,4A0B9B3E8F5BC46C7B315E1AC6693E9D3EB62AA3D93985C9854B24CEC61C3DD93AF763750F15E14141540ED1B0A11F6F004512EB8672206D
+918000,u,F08C324E24AB1FEE225A737EE46FC9B3EB90B59E0822E8A669A7882C0F82AA6FC5D66D34D6EB1F3CA804DD1CBED15239F7DC6566FE76D938
+919000,k,94B96689AA2367D50173A950B2DE0DE92B1DDEFEA21E4C7989BB274439F3B9D3C119856E8BF1EC604BC545F6DA9043C9CF8E793CCCFE2134
+919000,u,59E4C62966EC85A975E68C212D6704E2959BF46647BC12050D4882D346029C35714AE91E54ED7E84DECD5237BEB9A12A0F364DD42E72A438
+920000,k,3CEA765B6DD108979C49CBF03525287751A17865B7DD68EC4419DA70895422124A70A81BCCC4C280238F445FCC06854E29A0912598511F19
+920000,u,4DC17D104004970960035EF0D0B4175417E27040D2B3B262C158A4803F982388EF1E2101D4AC09FF181A507A5266C38DE20773BBEA70A0F2
+921000,k,306A716C0CFB0B951239BA9A450B97A5C3553EC902FDB91D74565CD6FD6E0814BC43820F1E8655CC5A52B9B2CAD243273FEA930FD3566C86
+921000,u,117F05FCB0C2FF5BEACE77D99C6CC6185AE26DD231B152F59E7FBAAD8C8F2BA43341A5B902E4110D80E331DEE0A55EB5BF2DAEAE96D5940C
+922000,k,5C439E26938C8C11EBF04109B5E2E3FBC28BB1FA1ACBCAD2B98098D52E94DCB8AFC9AAD64D2711EFA13A98146EBBCBDE88171BF3A6BF706A
+922000,u,0E8B14986A163473936844758D42381A6320CEC629D2A9A5C364E06AB70F40D42D4DDA09E9AE597012D479C88653302BC1264AC68F658E6D
+923000,k,37ACA295F4093EA12C0EC9610B08D14718122DFCDA809E71500B76A33A29C1743641FA6CC2EF802E5DBC9F83C834258A01A7B93DF5FFE39F
+923000,u,495742EC624C84AF3A2A39831FDF916AAB629C6676C2DA9441D08A8219BED57A6D86A9FFB4BBED773526DB776FE832A427EB1897A5D82458
+924000,k,D5AA53A519A61FE4A4A37DE8564A02DF3028013D7A0276D477C9D11062EB2586846A509EE06F18D00DE2680DE5C8D2952B0F20DD2E075BFD
+924000,u,EAA606EC548C791AC69204C1B6E130C3A3FDC9821B1B3ADDAD65344F5B4C4A4B0F292DC88710F3E12C16431E913FFBCF3FB9A748A683B3B5
+925000,k,AE70F4C9651BA06312F06173DBE2E75040C2FC4C7970E6AA7B49D02E752F6720215B25D506ACC801DBBBD1C8179FC31796B8D3601DFBD7E2
+925000,u,45E55523524E6775EF43BB6CED770493FC65C948B211E9EB0BBD9D86D325049C923DFF529E841274D3B2F45693FB824B1104224BD4DC41B4
+926000,k,ADA309A5E2E2EE3840040A1CC0CE19F30B0BD40068C410E897A8B7763F31830FB3F3E75158536D15B5D458C15A80018BD4A0915F7C6E5331
+926000,u,6DBE61F75FCFDF12985B47FC4D1CE6729EC7462671DCF2A94B4BA72A3847C3B87C23904E5245734AA11CC7C3B14F25479291267E52C90C9D
+927000,k,73C4801DDCA60AAA32046F759C5159343BBD3CBE1E16A312379338FFB401157881C3B0F905A501F35BAEEDDB419EC5288B540E15AFBB8267
+927000,u,9133A432927D98E1AD5BADC04CA6AB0932A0353EF33BF519D0975824D489D6F84A146AE3E6A717B8CD967D0F24B9709ABA978EBB14CBA921
+928000,k,775FD7C35EFE7DFEA26B48E234FBDFB409C4BD77B84BA7599232E36D55A5B94CC61E601EE06E94AC0B477E84A64F43E47316503053C7E7CF
+928000,u,48BD762B781A665F6208D49FD5106C06994A8756876ABB9C2AC098FAB45DF76538CF0F99D8E7759FCC53E14DF448AF51170E424F3D6952FF
+929000,k,4E67830BD48E6AC29C8F0DB04B849BCF763DD7EF8250C711038F56C9525EA18A028C1CA76E5CAE8200198248B75CE22D248D2028CB497F89
+929000,u,DCFA65CB29C2F6714BA0AA8133512674C433B0ED5E9CC767DD598BCF51095397C4516C544392D5C91E05C710ECE8E556DE2589107BAF4BFB
+930000,k,D4EB87F28D675A466A85C27CBF774E4A8939AB6F3E5D1C6C2C07B01BA55D4BCD62A4AC3ED186ECDA68764A28F7C2960C2301A66923E60097
+930000,u,9F2BCD41FCCBE642B26C3BCC467E7006EE956FD8126465DF1CEBA9677EF7417E55EF79D8C3970AEE93DBC70D0C14506C4F16992727FA4D6B
+931000,k,CE3340313E997E1CAB7A2E3E07D8FBC92115200A575863E2820C2DED5AEDB766CA96A0AA82FADA12EFF078BCEE2C9CE65FA29046C59F1AF5
+931000,u,63F4DA62635422A871BA34D77495FF601988C8DAA41C97A8681F7300502189BE38B26728D5BD795EDAF96DB2F01178F752FE777BB10719E5
+932000,k,C4785D3743ADFF70C3B71B724E792C071400C4D4DAF4BF79A82BF7D0A6D830BE9961AAD74276511FC62EDA42B68007089A535EF5878B7CE1
+932000,u,5C0B668759FE6148A04F7C16AB67A940510BED3621E46D5AE193C716916F05F438EB83997E1A48DA59E7E0189BE4463EC8FDE93A39901D12
+933000,k,02E10CF45287A6E218CAEBEC55B9EC59FABDE7B57BF96CC6418ED59C27F04A24AB5CC9B2D607754F66BA8F3ED0EAB1BE6ED0C6C1CD26D502
+933000,u,EE5810BA4A17B04AC84C81F0FBB135252B8856BCC6242C793BE2EB4F9E77D0EFBF7F84AD60F4B01E87C1E93EC4EC68C7970019DF4C8BC39F
+934000,k,3DC2813E1B7C357AC3AFCE1235B83AA44D122D217B78AFE17CDA9E8358411FF35E1CAFAB2F8B9F50802F2F3CF271BFA3C585CF1C64E7B71F
+934000,u,F2FF413AE6E9B7814F4AE598CD9D75420E9D6EA83989E9A797D749230DD3AC66B6B9E2F137BFF19B37D488D32DDE6AA908C66D61347718AB
+935000,k,06D90B2E26D87920BFEA6BE82480C262EB96003240CC8874420E9B2E6C5AEACC7B8BFE6BF150A043AE5B736901A9569603D86DE008EBAAAC
+935000,u,DAFA24499D3B9203878C4AAF18C6AEC2ABD4FD24A24CB27ABCB3201C6AB46B2B12FDB7286FF6B93BBAB15F90EAA209376B9EBB1392355105
+936000,k,D82A20381DD71CE02BB161E2B1036DD0ADC64294E47B4C43B63AC91EC660B0C81B5A77287225D4F1BB93E1E749865CD454314A85600C02C9
+936000,u,054AFC6F429C6723C2BC41A1F557543E56EDCA126D7175F2CAC1F635525FC2394822370C83589E28E9F143CE97DC971EEA5ED269779A8D89
+937000,k,54AF7474BE16A9B3FA33A454865066DE8B258FF52B36A630D72229D93548A51B2DED71A7D0AD3526797C8B4A0AC82F9F271B0E0504FD1562
+937000,u,04B685AE0C7C3F90A8EAE0B8198BF2CCF51A88EABD8F3767F5B9FC2DC811B0EDE9F5CE86C5C68021B472D8A3B105BA360EE72475C33A96D2
+938000,k,A496C1FE3BFF066BCC9FCE7A311B6809DBB8B39B769353018F9FE87C83152ECA3C98CE0A0C622F3E2A2FE6F54894B2DC54E174D837DB1834
+938000,u,B9EBBF7CC9CF80F6A69556953AAAD7742BAAF779403EEB6F128D118BCFF80FAD603DE9636FB68BE832A4B03337BDF8C5254DF69C34DADC4C
+939000,k,F1484382F0D9B0F4C68489A53A6AB79577D91F6446AF865C60F36A63AE2952A5D3B46E9A204D79E914FEB81EA7E0136DA740344E78E7DDC7
+939000,u,5E121C7400F8D0547523B6F4127115ED528887419813A218E20BB8A4158F771B6F3A7F75059463441CABBB83057285B5A7001D681FC0A684
+940000,k,3FC339A5F9916CFD303AF3C612518883D8B9345FE1761714F90CE724A330B596CA934DF7729B5AEF103B3A3E9FE608B9FBFCB368E68328C5
+940000,u,85CEAFB7B0DA29AB2BDE88D5374CADE0A9FA405547CE66698C14C0127FA86359577F6EC0FA1F342866A8A0CA216D89640AAD18BDDD5CE194
+941000,k,693871CCDAB55BCA9FB3EE7A06BD8C53DBD6BB3602C2919C2F3C7FAA20AA22682B390EDC7F9928EBA0D24D3AE426511ABD4120ABE7223C9E
+941000,u,774F651483E08B102F01A2ABAC0E60BC196CC42C611135EE8783D8B08F5908D3A6FFB4A3C9AAC169E490E36352B921BF60D5DC2F7080BA07
+942000,k,AA81176E8D15ED002E5CB5FAF1B51CC2417242DBC88E0BDAA769759E81A162528D7E524B667A261F7A854DE9EED846A705FEB097F68CC7D3
+942000,u,5339886590E94D59F52329E641840F3FF8D4532D1C8BBA48D2BC933F892BA527AF4318A0AD9BF7396DFB6EC0B5EDDF0AC561BEC5CF6CF701
+943000,k,87FED504E3AC41F3B2B00CB99D199F1816FB4FBB6D86CC83572DFE24715B629B513EEA61E8C6CDEA77057A635536DB87EDDE5CB1628DFE15
+943000,u,D86DD96EBA52A478E7148FDABC3B2F61C92295AADBABF873021B320E116E2F23CFDD5263C6B4CF63628B7073C339189FFCEB6D6215B7B4CE
+944000,k,7895CA4D99ADC19BE75A5919263D0D740B602076B83F21BD456B5EF185066B038E233B51427D3366066A3E4EA828C97EB82E42ABB2D20B04
+944000,u,351CEF7B32D473624851A10AE5F4436D3C7AF157735960FDCC25B638501D00167B0876AA76E7706D24785B9E3E7FC9DDE6E1D36F34A76153
+945000,k,30B70056DF39888BA765C7158833155F3E15FEE4CE7EE5ECAE02ED4BAC7A7028181EEF10B8E1B79A55D1F56E544C2543D79B9FD864B44ADE
+945000,u,CF87C5EDA37A56C46FAC613BCA65B01B67352756CD35FA6403CF89B728552D08C90927B50A02634636C57B21D15036068CA0D5C5B9792E46
+946000,k,C1A4277521706C5BF4F5FFA5E5F54AB71432F9AA2A82BD3E36FA6CCD911EA3FDB52B6CE3E58F1A710194B733B23F1AA2DBE2F59A172B5FB7
+946000,u,6C5254E82EBAC9BDB8FFCADC103C7786D2AF4403323B5EA9A64F9FE8684299A8F304B9FCC99506B37219B6CAEF100A8D6765F565DAF08D74
+947000,k,27BCE769F161BF4BD96E964890583756D45DDEEDDB070ED15B51444C50BF53A9AA23FFB39A4FA2C99C22B1362E6882AD5E17FAAD212DF0C7
+947000,u,8DEE7AF2593A81C43432CE29F4762A4546449D6C06329F010A25E35951B82323ECAE2463F60F7C8CB23801D73958D19BCAC0368F5491B117
+948000,k,17652260E408B02CF101D2A44FDCDE0A620BF40469F165C2C3479EC5C7881311A9E4536A8429962B5A636CD6E79AC2139435E44C2078B22E
+948000,u,9A9D2F6288A4E5D951C41BCB0199292A30693BFD8383CCA96BB508A88E9FD5BE05FBC04ED680A1F15DF55B7BBDAAC1D19CD1A83B5C726FB3
+949000,k,0B82084CB84B9BB6E6B6EB4C65DAF3AF98AB25DDE310C30786EEB1DC31958BEF9EB577A5F68E285D4A4D1F94EADA1A0E4D9BB266E23B370A
+949000,u,88C2EA133A6E13A59BFE79C856299FD882F97523682C6F682E5845A56FEACE2A5B13148B05F5FBFDF6DF6BBB7D7566F46446106B87E17354
+950000,k,1FF3AE5485C23F1424AECFC1E2F52BE9A70E3C7E3FC92A98E14F7D216B4E721E4FD03E10D76CB058A56486CD92DA09CA6023703F895351EC
+950000,u,6B35A9B1D071993B08D50AE8C01E9BE9936BFB6A7C551CCEF4DEF9ED434E37E46EE4865088B647C413C0E818EC132194ED9EC4EDFB7A592D
+951000,k,D89B930D7FBAEF5517D9A8FC5498D36A09E978D0244583990EA35AD025CF74F58AD6A093AECBCF3EF6330C7FE65DBA29E0E2B4CA85B67837
+951000,u,C7057EE36157CD7DD9A42B2D366CC611204CD7F9BFEB6DBA3A182A3B19779FEAE897846EEDEFCFEE9069D4604C9C292605201B490773BD63
+952000,k,270151EA33E14690CD26B54CDC90693CE979B8927C892B7AD139041C9469868FDAB755ED4030F23AECF443CA6F217AD6D14C7A1A2F3115BD
+952000,u,B6C3E4F1BA3CED11C6746FB71ECA5F01679178CB21203300E354A39DEB340D6FA070056BC1DF5469ED8F59B6C16197113DF1A558A815D89F
+953000,k,ADDB534E8857C5B326CD4DC69F4D63276AC41390AEE529248AEC4A7540235380638399563E760AC452F652831AFAB0AD7C2868401B72C047
+953000,u,8706779C9D762012054497C90E6CC72D85E29DE2CC683F99E4FB551FF1867C05FF62B8F43E08B08BAEB9CA3F6BB610F241A7578ABDEBA413
+954000,k,40DE18FF480A6865951036F36E7CB3C03F9C89E3B7C6BE37A84F4CA0F2EF25D384C1FD129EB897CCABCC6670C484D5C546404F9C2E3256AC
+954000,u,D60B3097B348F2E8235307AD0F934EFC1ED562886D82F2712652ACF700BAE94DEB01EC190F50D1B077A348B4D06C7892B28423A303EA37D1
+955000,k,8E369D2EE211F6552AD1783BEB9C412D0F5187E2E1692C99F29D3E2C3F5BCC1E58A58A1BB1A28237826B41769D2D952E86B6F7A76D67B209
+955000,u,2F142EFAD23C6E46FA9815D7B6C440C2E043D3D6645932B80AD0058238203E03EF40C46DDD0CCB551953A8AA60049F6A3989665D26470F59
+956000,k,00B85903B0C272D3E73368F444DAE472014B0DE40230DD8A7CADC7C4112FCA2F17E484831A4062C32C55B64E0F615329BA6320F87462B957
+956000,u,37229928B2DDC501407DF9FCA65ED66AA7CF4F553E4179339332B656AD3A0234E22E6187A6AFFC70512DE563F074E917EA42674AF7D63FF6
+957000,k,CF911E69BA8A7E7124B4372418B7F92F07E68F89196183E74064D5868B100E8C9F617D5BA9E6CB147C1C711E1C8C675889AEA5A4DE8D0DAD
+957000,u,AA8DA27B0CDE2BAD70F5E4D364A7912BD64C209BF1C4AFCECD95EED5A018B55B572C91F787335E07C227963E100075EC43D857AD6F4208B7
+958000,k,84AFBB840B22581F0AD02A57093CE7A5EDCB75FC85A6554D598A6A6A596CEA3A7064C1D310B03588EE235D3D649F15C211F3BF5F5AAE8053
+958000,u,C083656931A65584B3E2024BFCC5F853A9DEE05153E948F5E61B23A543901941332FD67F0C8A93A22E387071E84BDFED82E8DA9AC1097B45
+959000,k,495230AC1E1C7FC2F0CBFE48B384FC45101B46977E6CB9E4CD72922B3C41B4EDC701BE08E8CF3282ABFE6D2CB70CAB70E547D399FB8629D0
+959000,u,EB99EBCF76D18ACAA4A4C918A4879106565BE84638D451CA8D6BDE4F8E3ECD11284C3177548A879066256AC22D643BDF235FA21690EFEC03
+960000,k,4B1CDD49E6DBD43E154EBD99A244A07B557DF91345B8D084B2EA800377595F165249BD9D40BB1988800F44A1030103C20478BA41754C7CD1
+960000,u,62F55DCE72547E02457732F687DAFED4529C52F8034C6D0F77FB6187BCB85D0E3BF8ACF5DE146BFF75E6FBE70824F1A23937A79083A409F5
+961000,k,4C7BF7114D53D96B33B2CB4BFD3AD4AD6DBE2DDB0A91DF27472C795F12C59A593953EAC89E42779A8F11E2BD77397ABF3A1A101DED29A02D
+961000,u,566ABA28C84C41E2005E58EE6DB8EA3FA2946DC718BCF787ED802F27A9304AACB6F82745EE3EEF6CB548CA8B5E43A92839790C7CFBE94025
+962000,k,95803B54DE48763A7EEA3D837305DB8202E02F93B029B9D36A4DD6CDD68BE43C2F936A6C9B5BC1547858074B1C76A8E42C9E895AD6AE227D
+962000,u,D7994C707E9C1127EF5B902A782EDB4C77C92C8B135B84FC76F28909F9046AD001732868FA00D7E78E9C2E8DCA1EE6FA1255D9F1E248090B
+963000,k,D0B7BFADC371C47E4C94CF77A604C65419B918E3C9958E0AFA08384641EF6BE7685BC7997940C754EF0365C1B148AA0D3036F65B0FE50359
+963000,u,54C86E99289E619101158EDA38B49F09310CE9282526F5A0CAADF24E111C2564AB2E40CAA66074E886EDF9467ED06025400889A14D7C3848
+964000,k,03256F5F9833ED1E4F7429A354CE2D6427A771B8B274273DB1930F7CB63A33F08673BF80EB12BE7CCC6ED2213BB36970E740FC4FCB6B4F3F
+964000,u,1DBAF14BF35F58BD88670C9E5A41DC9D68C380F874A65F7688E5CC1E607625BEF49968A12EA67D45FB2CE4A39D34FFFA24FC9076B23F4498
+965000,k,80B568E0871B83111479230DFC21B2FE1C46F7D202C94D60DFE4B5DCAD837C6EEB577834E0D96A754F62334561A70DD57884CD61BFFFEDA1
+965000,u,3C90FAC2FBEF3C6ACF8CE18161809E107BEF6884154A4C06AE0ACCAA141258F4DC13A49A699919BA6718CD9D4E59CC734EE447506F1CCD29
+966000,k,48F8A9CA67E40C505D946F0E4A85578CEF7A6B355E89B373397FBC9165C97B7EBA32505E1CE4B7253DDB9B504297C5CC4D0E3E6963A543B3
+966000,u,D8426599285414724D9A57829D2F99ACAC73C533DD53F059CBB82F1E7AE0A40C4EDE433688002CBF0DC44F9990EB097283C0DE040176C7CE
+967000,k,DB9CF7EA6B1746C9573D231DEFE7A24518296C66EA0C69CCA558515285CE5A3912E5FBA915951ED6A3464CD84DBCADA6DBD1778A439B5A27
+967000,u,DF1A3A6F08C9BE44703FCDEC5F3AA4D1E79CE7F8A9226F3792457412513AF465956611F88A1007FE63AED9F67BF806BA95FA08FA6EBFD0E4
+968000,k,5193BAB52D2C36D3C1DECE426C4168F0B01A8BCA32D5B7DE95633244155E48A5BCC664223A4A9A47993086A42D5C3E9D24D6493914FEAFE4
+968000,u,AB0A30A1FCE5B3C06F5BB4F764F74128A49B5B770E8E9007161CED8474388B3B98AA13287D37EF011D9B0BB708484C8E6451D232DA5E6FB5
+969000,k,E88AB78D35FCCAC5C4CC071190D709111F4AEE2481AC3F4CDFAEB85363E2F8DDE749324858134B7D6C73F6DAA759414E3C448DA89E3839B5
+969000,u,1EA50A61E01136C4EE7510F76328D077F900BBC4C94DFC86785B9895B12C496788C9D5A6BE8CD2E36898C18691E11390B6133F42119C0417
+970000,k,5AEB8E5E5C78642691F40348A8CAF2E6D995E99591E6AEC6489821BA3941FEA3A5AABED1767FD1F1D9A05EB4A3C7A311B3FFAC82C1E17926
+970000,u,37D854C4E28538A415AAA181C31AC8FD2B5D9C4298F7AE9994A19818623342DFC39C77C439E10C9FCF39AE02E7B63F30B122081E15441F56
+971000,k,1C924490E80F8C62A6533B5A8A2E5340808CF2941F490E3A476AEA07F98BBD3ACD8CF67D748560EEA5250EEBA54A8DEA7168C58A9E2C8C65
+971000,u,8CCF97021A282CE6D0A387BDE807F03FE51B8EFF55A2BE504D63BE0EF03A479B828D1159B5AAF617A2C1776DB73846BDB8C5EAA1EB7DF0C0
+972000,k,83723A56C3893E83DAFB4BDA67C74A5A328F1DF27DA32C01998772404C9ABCAAD47B02FD6399E45562D315AE6076D1C15F42CAF7E22F98CC
+972000,u,968E6C90DCF89C7566D6CD5D41A0B11AC180FE1300CC6C49ED171222240339404B4D3B79ACBD2911B0BDFE8B536CF03D2325B8C6CB51AD76
+973000,k,6FDBAA6FC9513B4D5B04456074888DCC3918872A2BE686841E9F64071652E1FD2068F3C87D1D891419C853EDBA98202E338838A9E61F1F55
+973000,u,8CDEE9D0801E6EEF0FA0B8E4A2662E8ABD128169BD075CBBA6C7FC94F1AAB70997E33806B0B7583F5CE7C4FF39E9D7050502872DD9AF336F
+974000,k,2A4CB5AB4BAE7680F9F72F1C7782E1CBB4F15CD45979E336ED3FC4D2F7FD7CD2160E053180A9931EA5AC54E8C03789B87D03FCDB2E4AF46E
+974000,u,3FE0FF91128CBD7A692866EA186DF6815A8CB82D09390E75A37F8FCED08A4972E2B51306548E7481AB0EB7CE2E17E92DA45F8B93316EB5E3
+975000,k,A5755DF3409757A4677D0E1B33A41EC42F62C2ADC3771220D59B50246879451A024415E5682D20EA37279C0CF22ED211BC7BD4F7A8507334
+975000,u,03CDFC805932CC640FDF8EA51BDA001E72B339326F355B67E2F98B733DFD67595C1829C4D468DFC4CE38F4C961F43D5B04FB49CBD4F10566
+976000,k,41DD9BDE908BC8075A0946DF56ECDD54BD3A30543239905CEC5DFB94C0DD4C6160A701B61FE85B8BBF9C6E708D22205EB555E4F747A25A2A
+976000,u,D75CCE5028E90EDF13822B752E1C73114F945E6DF9AA1962389D45E2F9EC6C1ECD8FE32E6C34034C32C0E41A959D8B9A1E09459AE9435992
+977000,k,4135C6D6BA490B7285B1995E7532093E3C35C80909E82333B09BFAEA11A7922461C173F752745FF94F6725806509FF5591BE81C07A089B23
+977000,u,B94CDAA2B9B20F8BB46068508E30133DE7D79F6DFD77D98DE1670C487AFEFDA4D48665E0C6F7E19609FC6219D55A054B221354164D0F1567
+978000,k,04A4E023F0C419BBC61B29E90930E81F0F5A8835972497EBE6A060BF90F4162D25C36BFBCD4983C81BA0BBD8CA2A9B5AF18AB36F5453202A
+978000,u,6FBF0C588D81309503F99DF941EA91D76C39BA09BC4C93868F27137644A5A620FE141A307CD1D539016BB7405A6BD88CFF7BCEF989125EFA
+979000,k,013D586D2FBC7162C57B66454F1E2B7346BE9D8E0732B0F0FE60DCF47E9753780AA92816998B95910DAECACF819104BBFE6F517A0101317A
+979000,u,301F17BD7F46BFED8C6E4ECD6F0EDBEDCCBA974FCEBA5C11544613FDC7B3B95CEB6C5187255D4494CF2FE6CCBB8B18FBA9B0369540D00C16
+980000,k,6873A2CD21EEBCEC4A2C0F264402C64AE09AB38C097AB218902433FF7BC4F98928239373B3ABC209117A7F8DD6AD186CB8DE52C69887B6E4
+980000,u,5824B2C6068CE915B757F708CF66E80AB956AF691CD1BBB8ED47975FD4F4C182CE9BD83775D1086EF080DA7236BF4DB3EA4920AB0F42C8D4
+981000,k,217D4B8E53C26DC67AF3A7A0756C1D17FEC0C06394DEB9AEDCAFE764AB1BD32D878AFCF099271B2C754A979C669F0DB065CF56D8DEC69BA7
+981000,u,B7226559D90F5C3A7091EC40FCCFCA2CFE2842A072BD77F52B16ED8F1B5395745797B2559D0100E68D5867E78A31FACDDCE7C98F4C14BD2C
+982000,k,8D40EE053B744DA7B294BF91A3A61F96E1ACAA8606C65499E03BADF8CF9599760F23462EE59C2D6EC78AC3CD04A0F536E7A8954B486B10C7
+982000,u,40D3EEEFBCDD987D15D2EE279A47036E258C7A5118A65B1DE1E7D3AD484A1507E2DB0F275E6B75179288EC862142A6866FA894ED88A7855A
+983000,k,79110927EE5683DB993351E55C4C15C515600821D6AE8410F9B1A6CEA80C05AF59141A016873B66A5D779398CA960A3117417506B2D11AD5
+983000,u,091DF62AB81A99F61295ACE526408CB6631593EDAB89668868CB3A5E58D7D9E673589347066230BDCB66E7C1441D883F1A77CB879F8FA44A
+984000,k,9E975BEB30B2CED0F1995723E2F4D3BE8FD5B9B876A6820F9CC2AFB0C6667F8C5E4071598AF2AB20EBA5B767B81A0B37F7FBF211C36D4FC9
+984000,u,85A32751D1E43B9E64E62808C9A4700888151B7B017D27780DE37AE2EF997F551C52052427F96265E98B87CDF0636C9FB6FC09F6B98ED1CE
+985000,k,56277A871868B30B0B2618C32D6130F5BBBA178A65112006D6D273DB91AE43023378938899373499723806821BAA60CE038FBE9C3B9BEB5B
+985000,u,0A221B5DF32CA890769D6C2C8CC03EB8B8B4226404FE15DDD7E765DEF31FF6A0CC80869A4D51AA23A3AC5D370993BBF745C42B5850937A87
+986000,k,E9A6A064FDB7FF16F14CD775DCBCC6330E96B1D3D90393A8E996DE3B670A0F4FD4A658AB944E5972B36AB50FC21AE929211F040C01BDA4C5
+986000,u,60DD5CE5C481E62F1E9639D2121BFE0A2359C288842C5C03A60026635E790F90B72BC0315E2DAFB2EA591A5E25C13C6625F05A77876DCF1E
+987000,k,D48B2E5105CA0E349A0AB48CE17938C6B9F09B7507471213C429E706BAAEEB3B484EF7E104D03990791FBEC8461BE8F38BE4E5B1964BC782
+987000,u,7E8B0C9E332FB381B85D57D13AD90F60E40AE4136E8DCE5309E6492502A9A9A4242F220867C670C0BC94C404029A2AE3F6A2B4061EA85447
+988000,k,86CBBD6ED3DB22700825162BA321CAC9D218B5172342EDFD58C835637CF83DC3E6588807376169F3875AC5890E6D38539E491FE75347A1BC
+988000,u,8E9182769107ED1FBDD0696034143C83E5124E748BA0D6ACEA380DC237569948E3894450C6F8D1398E2FB18384237B16E3B156C2E8BD5EEB
+989000,k,B6057D084971A1D17164F439580AE883933F278EDD145A5D12BAC104BA8E07D65615B7D3BD6BE265C36B3979494E9C1FB3AAB45E3DFE4257
+989000,u,2CB2719B12D20ADAE4F94A0586199996E5634BB40715A3E5E8952BEEE00D204053944667E296DB20DED66A1F094BCD9A7E34DE636D781570
+990000,k,AD15F461527A0E395FE3C32B2A780DCCF463D934F821CCDDBE410B04014AA3F69BD0DEE62D1A6E761DD8616FB1929D345F57F084B9F6E5FA
+990000,u,99153864A9D7149B05F2F6987120E45F698B2808803839D5185B7E1A4D89F9C453398CAFEC7B0E1EF38017F477F491DE6FC6EDCB654EA4B7
+991000,k,8DEDA5B2E44D7979A4A71C963673702A890000BA28C5F581D90CD13223B0B8F8C449F078A339A20263162F951421139E10E8A3A3060FB032
+991000,u,0EA043A50EB051B77C97225BFE4999ECAE840B3CC65D0DDC6A1060E3D9CE9FFB097B9698C8AC21ED4F05AFC73FC9CF0F2515B569A75408E2
+992000,k,DFD6E351C5518B395BA97F78F006F2AD6E19DB0FA94BFA4992D75F2C410C609562F3573D4E50B22D23DF36DB2080529F1BC210356F07B0AA
+992000,u,36B26BA66786E803DC56E4C317050F05CB11FBB3DEDA3C57BF3647C1D696F9110F5AF2FAEC5321EA2394A8CAA44618E48EBA1C049D918E1C
+993000,k,3B5560675AD3DA4E8E55F8C6201DB63E846016D39ECB60BBBE399268FC473534AD2DE0E7F144BBD937A2C67B09E0B5A052A7CFA6B89CB7E2
+993000,u,36C716CA897F18FC751976CBBD02B1849BBB146C90C3BFAAF42767BCEED3B2D357138478D740CDA099F44C614192245E607746FBC6758054
+994000,k,09907D439AC73CB54940C5FE410E17FC66E9A5ECB5D8A49B1DB02E273241A99AE6489BB92F2F36D505484B91E11CB073E2FD505C578E6148
+994000,u,48BAC58FD3C7828CE17C5F16C07EC17420EE98F6A4D17E8D79E682E4E5E68D29654079BCDE1DEA8424D7847D290C808BCCDB38C7107F3E28
+995000,k,938954101E808977B6D527AF43384AC8DD28D9F3F81A59F737C34B2DB376F04FEA5ECC92D9D4701EC9B04B897CD5B0F8529171D524A5EB9D
+995000,u,4C4D580F3B2DEA6CB405A46D8B83004B2C963986867448FE051D3924C4824C6533A29B97BF2CA737237B65042F5415DEB231E984F8B5B11E
+996000,k,5F57132734294AD302B6B9A328DBFAB2AF456EE9F6770F349D1DDACAEF2D9AC6D0141E2CCAACD4D083A992410008CFCF8F6EE323E7071A29
+996000,u,F3BD6CF6D077CAAADD30E477D19F27A7776C3A521999CE9EA193C27FA26C6DEB1A1DF6A38FDCAA1079027AA7096FF1AA6BDC6524E4AAFD8C
+997000,k,A8A78BE35BF22AFA2A24006048CC8658EE91F7D9D50AB6F97685A3BC2AC1071C642B7C9383A2CEF8FEC6E69FD421AEC5F894B574582CDF05
+997000,u,25CAE41B5ED53C507DFE3BA42D4F160642F410F2AF76CDB8639A4317F0C00B3D19B04112EFEA0BC7904A497E4DACE843EDAA0549A060FDBF
+998000,k,C0D55D77778B87FA7F6E3D41753E184E4511220A170AB6D609065B38A4B51A71C1E65528C9CC452889B6CD99F17CFEC874F4908E105C36A9
+998000,u,86080CC763AC1F55BB79464F01934CEDDF5C7E9941E305A18F45911E5B612B7B1EBC1235E59006CAF821645AB9F3208F11982ED7E6A51FF0
+999000,k,663E3B9CAF0E75A520C87C4B56F0F8067DD82815551D5B4F83D08DB0467D8DE9593F991C4DDB1DCD1DE1173A8A1CFA6D669B2CE613CC4178
+999000,u,20620AC8719AF4B4867A9F25B1A422B23A6E57A24575F37E22F102031DEBEBABD3BE2E3590B4823223B010AFC8C4475FC688276A2B0FC80A
+1000000,k,077F453681CACA3693198420BBE515CAE0002472519B3E67661A7E89CAB94695C8F4BCD66E61B9B9C946DA8D524DE3D69BD9D9D66B997E37
+1000000,u,2587A975FD303F32E750307485ABE285467CA36AB22C682E952E65EC7582752F97EAB484574021A8F2EB3BB7FF98CD12DB7184F9E035B178
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/security/ec/xec/XECIterative.java Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,137 @@
+/*
+ * Copyright (c) 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.
+ */
+
+/*
+ * @test
+ * @bug 8171277
+ * @summary XEC curve operations iterative test vectors
+ * @library /test/lib
+ * @build jdk.test.lib.Convert
+ * @modules jdk.crypto.ec/sun.security.ec
+ * @run main XECIterative 0 10000
+ * @run main XECIterative 10000 20000
+ * @run main XECIterative 20000 30000
+ * @run main XECIterative 30000 40000
+ * @run main XECIterative 40000 50000
+ * @run main XECIterative 50000 60000
+ * @run main XECIterative 60000 70000
+ * @run main XECIterative 70000 80000
+ * @run main XECIterative 80000 90000
+ * @run main XECIterative 90000 100000
+ */
+
+import sun.security.ec.*;
+
+import java.io.*;
+import java.util.*;
+import jdk.test.lib.Convert;
+
+/*
+ * This test is derived from the iterative test in RFC 7748. To produce the
+ * test vectors, the implementation ran for 1,000,000 iterations and saved
+ * values of k and u at periodic checkpoints. The RFC includes the correct
+ * value of k after 1,000,000 iterations, and this value was used to ensure
+ * that the test vectors are correct. This test has multiple @run tags so that
+ * no single run takes too long.
+ */
+
+public class XECIterative {
+
+ private static class KU {
+
+ public byte[] k;
+ public byte[] u;
+
+ }
+
+ public static void main(String[] args) throws IOException {
+
+ long start = Long.parseLong(args[0]);
+ long end = Long.parseLong(args[1]);
+
+ XECIterative m = new XECIterative();
+
+ m.runIterativeTest("X25519", start, end);
+ m.runIterativeTest("X448", start, end);
+
+ }
+
+ private void runIterativeTest(String opName, long start, long end)
+ throws IOException {
+
+ XECParameters settings = XECParameters.getByName(opName).get();
+ XECOperations ops = new XECOperations(settings);
+
+ File vectorFile = new File(System.getProperty("test.src", "."),
+ opName + ".iter");
+
+ Map<Long, KU> testIters = new HashMap<Long, KU>();
+ BufferedReader in = new BufferedReader(new FileReader(vectorFile));
+ String line;
+ while ((line = in.readLine()) != null) {
+ StringTokenizer tok = new StringTokenizer(line, ",");
+ long iter = Long.parseLong(tok.nextToken());
+ String kOrU = tok.nextToken();
+ byte[] value = Convert.hexStringToByteArray(tok.nextToken());
+ KU entry = testIters.get(iter);
+ if (entry == null) {
+ entry = new KU();
+ testIters.put(iter, entry);
+ }
+ if (kOrU.equals("k")) {
+ entry.k = value;
+ } else {
+ entry.u = value;
+ }
+ }
+
+ KU startEntry = testIters.get(start);
+ byte[] k = startEntry.k.clone();
+ byte[] u = startEntry.u.clone();
+
+ for (long i = start; i <= end; i++) {
+ KU curEntry;
+ if (i % 1000 == 0 && (curEntry = testIters.get(i)) != null) {
+ if (!Arrays.equals(k, curEntry.k)) {
+ throw new RuntimeException("At iter " + i + ": expected k: "
+ + Convert.byteArrayToHexString(curEntry.k)
+ + ", computed k: " + Convert.byteArrayToHexString(k));
+ }
+ if (!Arrays.equals(u, curEntry.u)) {
+ throw new RuntimeException("At iter " + i + ": expected u: "
+ + Convert.byteArrayToHexString(curEntry.u)
+ + ", computed u: " + Convert.byteArrayToHexString(u));
+ }
+ System.out.println(opName + " checkpoint passed at " + i);
+ }
+
+ byte[] k_copy = Arrays.copyOf(k, k.length);
+ byte[] u_out = ops.encodedPointMultiply(k, u);
+ u = k_copy;
+ k = u_out;
+ }
+ }
+
+}
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/lib/jdk/test/lib/Convert.java Tue May 08 09:47:28 2018 -0400
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 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 jdk.test.lib;
+
+import java.math.BigInteger;
+
+/**
+ * Utility class containing conversions between strings, arrays, and numeric
+ * values.
+ */
+
+public class Convert {
+
+ // Convert from a byte array to a hexadecimal representation as a string.
+ public static String byteArrayToHexString(byte[] arr) {
+ StringBuilder result = new StringBuilder();
+ for (int i = 0; i < arr.length; ++i) {
+ byte curVal = arr[i];
+ result.append(Character.forDigit(curVal >> 4 & 0xF, 16));
+ result.append(Character.forDigit(curVal & 0xF, 16));
+ }
+ return result.toString();
+ }
+
+ // Expand a single byte to a byte array
+ public static byte[] byteToByteArray(byte v, int length) {
+ byte[] result = new byte[length];
+ result[0] = v;
+ return result;
+ }
+
+ // Convert a hexadecimal string to a byte array
+ public static byte[] hexStringToByteArray(String str) {
+ byte[] result = new byte[str.length() / 2];
+ for (int i = 0; i < result.length; i++) {
+ result[i] = (byte) Character.digit(str.charAt(2 * i), 16);
+ result[i] <<= 4;
+ result[i] += Character.digit(str.charAt(2 * i + 1), 16);
+ }
+ return result;
+ }
+
+ /*
+ * Convert a hexadecimal string to the corresponding little-ending number
+ * as a BigInteger. The clearHighBit argument determines whether the most
+ * significant bit of the highest byte should be set to 0 in the result.
+ */
+ public static
+ BigInteger hexStringToBigInteger(boolean clearHighBit, String str) {
+ BigInteger result = BigInteger.ZERO;
+ for (int i = 0; i < str.length() / 2; i++) {
+ int curVal = Character.digit(str.charAt(2 * i), 16);
+ curVal <<= 4;
+ curVal += Character.digit(str.charAt(2 * i + 1), 16);
+ if (clearHighBit && i == str.length() / 2 - 1) {
+ curVal &= 0x7F;
+ }
+ result = result.add(BigInteger.valueOf(curVal).shiftLeft(8 * i));
+ }
+ return result;
+ }
+}
+
+