mirror of
https://github.com/openjdk/jdk.git
synced 2026-01-28 12:09:14 +00:00
831 lines
1.2 MiB
831 lines
1.2 MiB
/*
|
|
* Copyright (c) 2024, 2025, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License version 2 only, as
|
|
* published by the Free Software Foundation.
|
|
*
|
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
* version 2 for more details (a copy is included in the LICENSE file that
|
|
* accompanied this code).
|
|
*
|
|
* You should have received a copy of the GNU General Public License version
|
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*
|
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
* or visit www.oracle.com if you need additional information or have any
|
|
* questions.
|
|
*/
|
|
|
|
package org.openjdk.bench.java.security;
|
|
|
|
import org.openjdk.jmh.annotations.*;
|
|
import org.openjdk.jmh.annotations.Benchmark;
|
|
import org.openjdk.jmh.annotations.BenchmarkMode;
|
|
import org.openjdk.jmh.annotations.Fork;
|
|
import org.openjdk.jmh.annotations.Level;
|
|
import org.openjdk.jmh.annotations.Measurement;
|
|
import org.openjdk.jmh.annotations.Mode;
|
|
import org.openjdk.jmh.annotations.OutputTimeUnit;
|
|
import org.openjdk.jmh.annotations.Param;
|
|
import org.openjdk.jmh.annotations.Scope;
|
|
import org.openjdk.jmh.annotations.Setup;
|
|
import org.openjdk.jmh.annotations.State;
|
|
import org.openjdk.jmh.annotations.Warmup;
|
|
|
|
import java.lang.invoke.MethodHandle;
|
|
import java.lang.invoke.MethodHandles;
|
|
import java.lang.reflect.Field;
|
|
import java.lang.reflect.Method;
|
|
import java.lang.reflect.Constructor;
|
|
import java.lang.reflect.InvocationTargetException;
|
|
import java.lang.InterruptedException;
|
|
import java.security.DigestException;
|
|
import java.security.NoSuchAlgorithmException;
|
|
import java.security.KeyPair;
|
|
import java.util.Arrays;
|
|
import java.util.HexFormat;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
@BenchmarkMode(Mode.AverageTime)
|
|
@OutputTimeUnit(TimeUnit.MICROSECONDS)
|
|
@State(Scope.Thread)
|
|
@Warmup(iterations = 5, time = 1)
|
|
@Measurement(iterations = 5, time = 1)
|
|
@Fork(value = 3, jvmArgsAppend = {"--add-opens", "java.base/sun.security.provider=ALL-UNNAMED"})
|
|
|
|
public class MLDSA {
|
|
@Param({"ML-DSA-44", "ML-DSA-65", "ML-DSA-87"} )
|
|
private static String algorithm;
|
|
|
|
@State(Scope.Thread)
|
|
public static class MyState {
|
|
|
|
Object mldsa44;
|
|
Object mldsa65;
|
|
Object mldsa87;
|
|
|
|
MethodHandle keygen, siggen, sigver;
|
|
|
|
@Setup(Level.Trial)
|
|
public void setup() throws Throwable, Exception {
|
|
|
|
MethodHandles.Lookup lookup = MethodHandles.lookup();
|
|
Class<?> kClazz = Class.forName("sun.security.provider.ML_DSA");
|
|
Constructor<?> constructor = kClazz.getDeclaredConstructor(
|
|
int.class);
|
|
constructor.setAccessible(true);
|
|
|
|
Method m = kClazz.getDeclaredMethod("generateKeyPairInternal",
|
|
byte[].class);
|
|
m.setAccessible(true);
|
|
keygen = lookup.unreflect(m);
|
|
|
|
m = kClazz.getDeclaredMethod("signInternal",
|
|
byte[].class, byte[].class, byte[].class);
|
|
m.setAccessible(true);
|
|
siggen = lookup.unreflect(m);
|
|
|
|
m = kClazz.getDeclaredMethod("verifyInternal",
|
|
byte[].class, byte[].class, byte[].class);
|
|
m.setAccessible(true);
|
|
sigver = lookup.unreflect(m);
|
|
|
|
mldsa44 = constructor.newInstance(2);
|
|
mldsa65 = constructor.newInstance(3);
|
|
mldsa87 = constructor.newInstance(5);
|
|
}
|
|
}
|
|
|
|
@Benchmark
|
|
public void keygen(MyState myState) throws Throwable {
|
|
switch (algorithm) {
|
|
case "ML-DSA-44":
|
|
for (KeyGenTestCase testCase : KeyGenTestCases44) {
|
|
myState.keygen.invoke(myState.mldsa44, testCase.seed);
|
|
}
|
|
break;
|
|
case "ML-DSA-65":
|
|
for (KeyGenTestCase testCase : KeyGenTestCases65) {
|
|
myState.keygen.invoke(myState.mldsa65, testCase.seed);
|
|
}
|
|
break;
|
|
case "ML-DSA-87":
|
|
for (KeyGenTestCase testCase : KeyGenTestCases87) {
|
|
myState.keygen.invoke(myState.mldsa87, testCase.seed);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
@Benchmark
|
|
public void siggen(MyState myState) throws Throwable {
|
|
byte[] rnd = new byte[32];
|
|
switch (algorithm) {
|
|
case "ML-DSA-44":
|
|
for (SigGenTestCase testCase : SigGenTestCases44) {
|
|
myState.siggen.invoke(myState.mldsa44, testCase.msg,
|
|
rnd, testCase.sk);
|
|
}
|
|
break;
|
|
case "ML-DSA-65":
|
|
for (SigGenTestCase testCase : SigGenTestCases65) {
|
|
myState.siggen.invoke(myState.mldsa65, testCase.msg,
|
|
rnd, testCase.sk);
|
|
}
|
|
break;
|
|
case "ML-DSA-87":
|
|
for (SigGenTestCase testCase : SigGenTestCases87) {
|
|
myState.siggen.invoke(myState.mldsa87, testCase.msg,
|
|
rnd, testCase.sk);
|
|
}
|
|
}
|
|
}
|
|
|
|
@Benchmark
|
|
public void sigver(MyState myState) throws Throwable {
|
|
switch (algorithm) {
|
|
case "ML-DSA-44":
|
|
for (SigVerTestCase testCase : SigVerTestCases44) {
|
|
myState.sigver.invoke(myState.mldsa44, testCase.pk,
|
|
testCase.msg, testCase.sig);
|
|
}
|
|
break;
|
|
case "ML-DSA-65":
|
|
for (SigVerTestCase testCase : SigVerTestCases65) {
|
|
myState.sigver.invoke(myState.mldsa65, testCase.pk,
|
|
testCase.msg, testCase.sig);
|
|
}
|
|
break;
|
|
case "ML-DSA-87":
|
|
for (SigVerTestCase testCase : SigVerTestCases87) {
|
|
myState.sigver.invoke(myState.mldsa87, testCase.pk,
|
|
testCase.msg, testCase.sig);
|
|
}
|
|
}
|
|
}
|
|
|
|
static class TestUtils {
|
|
static void printHex(String s, byte[] h) {
|
|
System.out.println(HexFormat.of().formatHex(h));
|
|
}
|
|
static byte[] hexDecode(String s) {
|
|
return HexFormat.of().parseHex(s);
|
|
}
|
|
}
|
|
|
|
record KeyGenTestCase(
|
|
byte[] seed) {
|
|
}
|
|
record SigGenTestCase(
|
|
byte[] sk,
|
|
byte[] msg,
|
|
byte[] sig) {
|
|
}
|
|
record SigVerTestCase(
|
|
byte[] pk,
|
|
byte[] msg,
|
|
byte[] sig) {
|
|
}
|
|
|
|
static KeyGenTestCase[] KeyGenTestCases44 = new KeyGenTestCase[] {
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
796732acba3efdf731bf7c242aeeddf5eba5b131da90e36af23a3bce9c7aa93a""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
60d235ddc4f334bfd91d6b7df1a4fed84c88c2933806f13fe06ef15aed96c9e1""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
c14612e7a22ec88bb5e9dcf865776c37cd5b1c6d1b18798be80b9562ba4752e1""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
ed5bf4a40e4ce8d367598819be8ec4ed706df4d26819f69729c2acf274515c8e""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
78981182b43d78c40b828554c36d70b960a02c66490c15a4caa6a7d5f1e9ce34""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
917a2234587c5969cc1ed10d51b0dcf8b3017143ebf31687930f3e2c610a4850""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
df022c3c86b725c5f2b54196b7d68684b9fde93be78e38beaeef18195321f4e2""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
d69702e666f4086d18d3da173a6d0b44bbebfac8edad421aab72b823fc63d600""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
865f638c38f0852d2d712a708ffbd7d96f0df21071d8bfec74c2302ea4c5adba""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
741a60c9f1715c42a5a9e67b4e69e5f128372002a6c4f54ae5869500171e2541""")
|
|
)
|
|
};
|
|
|
|
static SigGenTestCase[] SigGenTestCases44 = new SigGenTestCase[] {
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
8109bb66b04ddeddb48e77501a8b1e2431fefb69da28a572fc535be604e351cd9301291a5725ca7d7f76270174b0db0688bcb93ecfcf0910b31afe84d7f16ab5782238b7afe42480fd01964142f634d8d50924dee8016f381b69cf0e6f9606e3c2d68b0929c489a45eaecc40008d64ea69676d454115d8d2f1413962db5eb800db36210a246581384eca982121076083a609c4828089424511996c5c164c183669841624e016259334021b123003840920b6854c984921b760021666943849813442c8c84dc8820124829064460c5a4430828089da381253b665898290e0086cda86802428721a244c9ca41108c550dc868120b93121052210134a93a4284ca485914826d3480a59124e63944464223161362e52b824e1346ddc34511c084523823192c29084b89100c92819139294186ac326494224214a0821c0382c9842504a8884cac2882102865c366420080614b330e4380604a820c390450ca48d63062561946c42947014972198c2094b422dca06015b000cda468edb00659a18712448840ab1814300900bc84523010802b240d08865a31262213091598024d908081c89051a1502db3850033666030521c1b489800070e3048061a25058c6091c318244244dc444300b130cc8c401d2320a51a26c88226a01b4810015711a2840631629624866804202a3440d0a160ec3204d0212481b406ccc4611418200030781049588243822621200e2c24c1a19682224008ca46844c608dc288cd034411c03520c0050501082d44885d2b66d50088103160c22c964db2484c84290dcc801a3227254322e14030e189808c4385122a69111266402182a210172649240d844248420210ac9414b80448ac669e1c664c3808598020948982d01450660446424264c09122ad2b04c9c4691211832238841c0a66d41422a49a20022204ca0360120968c18a088dc142a9042082122640c2649d014048c90280300700c40822420229bb285e18651c0a86c94b0218822805306250800111212008440224028728aa60ce2867114354264a409c2228604385282428e103422e0c0480a968954966c20c87181382894463003104cc4462d22068dcc180ec400911291644a926c9ba26908b9411ab08082966d03026d9a16422244419bb49112a06108c71112b625010202c90862201646212731db144113152521c22199322c10832522495010250ec3844d4cc6658a24129b24001b020c91c4105b88710c44851b227012278d138871d31ee0376e3631e0a724ad187fe258ba1af825ab5c3a8bb76a3ae308d11580696408ca1d21d4591311c3d6fbc0744aae0431c7c70d40c7447f5b9f6530c21f965022b9919db9f553dd1cb74faef7163c83b219533d3c2fd3a8204b55cee8792de783358f944c2674fb79230fa808353907f1e56aec8c39e9e6e64f83b4552d76723f41d44ce494483113c6f63e3fa0a8868fced1433adb004b8cb502a9998671fe73a914adc2c42c64cf9eb2e77ae709229bdff22046d5018a5193c6de49fd45f15d151e1c0dc4473a9948bb5bbcf29489a072ad81200c16182b034e29654f9da3d35d7b1f3cb9bbc4e6acbd97836ec4787a8b918509aeb811bfeb242be7fabebe5bdef46aa405dfdf36811e1cf980acb00eb323493b260a542dd2b0b46a3d571901216369e58e855c18a6276db360b0eab396672ad9635bba154b1b4fe0490818b17039da441f055a87c65d902bfbc2a39e94729522b69d4e47c4122b5b19b87e6fb85a1bd682edabb0772e74ad9eeea2e0758e2f8d3e4dcec752e88e936bcdced768911cf6c33819a5a86eb6fcdc4efc375c3e0a21e49cd4ab4827442c96bc176de8b294daa0f41b8ca536e6e12b915750304a71a1b3983b6330289f646e98b3c7fc38af5ff63a988564d85f0608ae9937d2c425464a59150e83daa2d049c1c80205acdc18f65187ead4bc78fbf1416c00fe0960355649786d83520cc7e3f4779b212abd329c4d4093d07c9e0082267a0abfcd6a391645eff624e47137765df08c924abc1a52ba8f4067c3073e7b2d48eee5b366db9e960a6e55aa0e4b48e4695b880dceb98912a18f671d262703541c8e5e4bc16b9362bed20f58d5f5a1818800308b1922cca258e8429490ee4fa79ac5f654b67993933e983c5874d696a8aa46ea0c27113229387fc6679cbda800c4a934625ef3102032db2674b7123cb748521b0a67e83aa906bc52ebe7f222b118661a3980102711ff679e4b6242b9010e8a894ba5c93188d03ad8da548a9e59e0d9f1e08c27abb8027708eaa8899495bb4b289ab03f562e821a7b97118cee1389ca5257efd73cc53a5c5ea9d2588a3e835acb268159434c09923ca92f34aaa22a7f8cce15c800fa385f49a7d15772f81277a8ac2238fd34c0eedf75ed2bb6a983f45d27d9b972f4796923274c588f9d1e6366c805623255528cba1500c88870395207f19d39c5eaa80ee5bd9e776fe73017ca32ba0b0055da4452bd1f96a162ee32edc587553ea47fc3bcc10e27f9a29ef9deba54150032a2608cbe2ae2b8f597fff99fea769b76d090f5922207f17aac49355c756ae802a50f7f5f6990cdcb0b31d8fd6a9b4915d91f0fba752f8424c4aa257c78f2c378364fa6b6892efe4744e2d77d0c5f02c2cf7ac28ba757d96c2c26dcaab0e9f2371ce6e1e7111cc5209a0e053924bd5202eece6d4135ea05c76040ee5f2c195fd76b4dabc10eb03a9b4b36c8e0b723110b1a5ff8cb4bd3f0f49f7dd866f8803c84c083171b1a3ccfbf1bbf90b524dd69acdb9ee7d0928cf484f90d442b815bc91c6b98368bdfefe0e63b5e9039959e7c369b38cfc78a49f596581282f820609ea8e76b2a15d78fd3cfe70cc933af7e8b5d1b28aa0ca8f14479c6bad013d93df59e237ebd3c4f96be20893577b8e98b875e40fb96da3fd0b69b2c4a9803f92d7443db64b61c5bb8f3493b7d3d7115e97c83448a17170364d7342b19f7f1eb8a28907ae0dfc62ea5b17154d4ca3a91a3b61db1bed25dd2b9436925d4de903e559441a7cb80b464ad873227230295676f2ae7822ea85f30c88596fa988e05a60b8d53beda03e203432428bf799561186b1fc1d2c499daef45cb555556ed52fd8ced0864814bb27616171e95239d1dcb3bbbfd91e5e1f0d876cc6ceebeb8be145ee063ce49faffd41145db908b13dee8df37f8b01d1a800f10bcadedb5e8f663a4af4c37a0b09f9e0b2e42dcd4aaa901b6781f5ed8591ede5613241d67c71a077da204ce912a4db8d5d083e405abc3e6ec6d5781a9499eb8e2427e7a928fbc0feb403b797f1dce6c7a83dfba45ba76af2a3231d751bbc9e1f7d0750a998b3b39df2cd0fa485523b359b93ca56de28087830cf984559a899b0d55a9ef696cc60b0fb2217da1f7e57fca279b7a4d5e948d1cdb7fac235445950b0fa7dd9b1284fb09ae113ab9fb4b03f130114f1091a471f185384a0913da65c9153a239cf69e5977a387ea9a3f1c665acb9130e7256d40f8a8e029554c047ad63eb9bca4198b45f7b03e8cd22d1ab05fe4f30de749d97fcea394482cd4c2116870b009d1c890ac6f5099d45d0c37909d9ae58b0823fed17137eb7ef016466c1cd06a"""),
|
|
TestUtils.hexDecode("""
|
|
430B1F46E87DDE9A3D055A7D4D6AB1277B2DA6EDA642896412126391AA2B29AFD81C246EC839929F5C06749491DC4D81D58CC989D8500B6879E8807B1C3AA0B199EB599AEB86B344B77E3DB1AA034C938D80CB4BDCC29B31B710F57C7E491D99B71E97DD6FDA01A0D8A54C7481C2786F64FFC53AD358CF31C9C875ED278CEA03F2BF732372B19252BB9FA4ABF465FA2CFD1C08684D10582B410A8E012DBD407C5140D97CEE768C6D68124B2C84113B58C9A2AA67093B44CC3B6199FF1EFA6506CC28BD30BEC4CEA88411A491DD948DDB09ADFB92C40CA50E709840BC1F107E0CA428C111EC4505C5346E74AE4AB5647C1EB80F9C07092F8D39A975C4890317F9C0EF474110AB941949029BF39ADFB8E65CCAC0360A3EFCEB69D2BD805E4FC8D0620F8E039BC046DFEF1ADB03F5995FF62AD41352D479084EF3E302578B83332506918CFAD6E3BA701C94B0138DF0CF6C2948049274CE61EE0A64E756306273A02D68F3C405883F2F668820356812B2DA3A32B9FF23608DFA559183151221F83DCA18253FCA099FE24728F302C8B7808D7AF978299F3EB853A8BECDA46B8657598BE9ECE8A02DD4B25C593DDCB436B82335EF9C6A7B8426B701C66C9EBBFB3C8405A73881DAB57D1664F3AEC6F5BA19155D89A0A80B5D01C46BC79E1D4338A50B203397CD4B16ACD597A7C77C49917E9FE4B0D761065CB89C758498868B14BE2B6FF758745AFDC535EAA605C3F97648034D2A320264150278A7F1CB114B977C9D6BC1F29295CCCA16B23B7709D5608E4095E41D08B22AEC6289ED402414787062B0DA2387B6DEE76B32E42C51788B65E815E089BCF92D778F49A9707D37FCFBDF8CEF953A48A4201FA0173529BA360BFA6A77200F57FD5245146C2CD7FE8882670EE6878386D06036F0E1BA4B728CFB75806F05BA6409C514731B0BA8DA11015A63A8B5B5AB8C69703185191D12C5611F1407E8FFE3E50FC39C3310EF4091BC09FECC11D3AC107C696EE89F74CD6147830B4B3A971A0027747B62C528F6D858D1F9E67F59496C6B4E9E03FF0A598B26625B06C79863B5F07E265A40175E1A6D6EF3F900F3C4A28AD3E49D4D0B7E4ECEBB79244264474CCBFADA43FCD33F4FEBEB0F7E5928479F869D6A0FE52EB0CAC1232D7F674A057DEC4C2248934A40F5E2C9CBFDD53F71FC3BE06E48E13398ED426D8D3CC82118B7E8E5BDCA248380F4E64C427D1BF2384F60F6A07F01EE62AA1746CB143F26412547E7EF0E8FD1F2DC606F3643DEAF330D81CD6309465F9ED7F34D9B175FE1641D90212D4FFFB91CC300E7DFA0C555F7B35D2AF6A343D1467436EEC7AB95F2C34010FC99D66391377770A7DB8CD4D5C6BBF931092322741929F790E037318D6ADB74B4768C11F0E4674D18185DFB3D051725F93800CD38F58688AAC747F885908804D6CADAEDECB43131D75B18FBA2D4BED8D9BCC2156FB23F8F6378C622153EA8301300D0FCDEF1E2BB4E6F807784EA0171E95C372EC19B05A6C7B8DECE7080A057D29CE5A445A83410EB83B174590647424736A3B6967BCDF8A416A51202CE3F00E4D97DCC2C48A78D12CDA98E94A9BD6CCBE09DAF8085304F6911ECED3547DE9512461E16721322E4E6233BC7CA360A9004DA5AE064514603EFF0DF4E2D8EB04E9574C59F3AC14726C10100C688203F4960197CE696730AD7E558D7B939E3E6E7EAC4E70A7F6AAA80C1F1546E282B5CC7AA193213769B137C7F450AE5410817166F29F2E4E7E962932DF282A9F08A1DEF3E19C251F95611DDA9CFF4E2FED873439B45F8451B9AE06C6B2C698778BC4C742708BDB54CB35B686F0E7FC856CDBF977AFB663DFE44F7FCCE0E0555BE81EB28984BAFBD6FED3F0182F78A1396AF7B7081280864E5E4BFD7C52DA28BB5DE5FFA211678D13D41BF825F4B21BE1CBD29719ABA341E7B0C3F101CEDFE2F709E4DA4B5A6D0C021152AB546837024F4DCC4C45C132A038315A0F1D69AE768F70606D070169AE0818685C4BDB7341BFE15AA0455F535766FBEBB50875246A6DAE86C7B9F6F3A9FE01AB9928A99C13E6628431D41C1506381A63FAAB57BFB3B180F5D7FF59A434233EBC5A659B71CAE6970CC838D5FB638676216E3B16E8BA6C01349A7482AAF32ABD17DF7FAB8C69789F0194022BC4E62B6A6AAA4CDEF13B1E3BF5E1F4FA69F82B1EE3FDCC16DDE1106E3D2C41F6E661E33984DE7AD6021EAAD3E64D8C9CD7B5CB538AF88DB82FA048E5705EFDAC0EF479827EDCA0255BA60771A5EBC716C690CD3AC840FB6FF462063503D68C199050BFBD64533D94E093A47658822A25D54CBBFC689DFCBEB1DDD5BC6190B8F02C6FF3D001AC63729D35C8C50FAD3DCA2E67C5CCC6A8799420B159C7C5CACAB958B423964C489DAB1982A4E2222D700BA5AB772C4A11A44FF64018AF477D054217EAE28FB8E37595941FEE7AF87FD44960A144DB0CE2A44B33DC79B1EE31CAF80DAD620666D0ACEA76841EEE6CE81C6FF1F6D1027502EF89F1595065CDEC19B30E4B5314EFD64031B3B9DDFC6C95A4943247ADF7E4C93350C241ECA71260A454707B84017C5EB7AFFEB5DBB863A1CBDE0062C662308A2E824CDF6397863EF78F62319E2873B506F8A9EE82135B803025D962E609E006961EA3F7B67347518E70D9273893D79530F67CB678D6A8D28A0342BAF904BFC0A69AD575CDA4AB73AF22B52AE5D58372E0C26795CA96A16B8461AC61E6F68433ABCEFCBC16B857A89C475D1A322D34266539A17D485B8FA356EC3E154D37BAFC4CE75829FBE8BC823FAFF15A49F847C286F999A1F2C12B03E8F8A4C34A97588D91971279FFCB100EDB943E636F78ABFBAF88BCA5C55C935F6147E51BF798267E1350D2F5E3F74B339F6EFE86208C5BDE149C5B71056BEE748D06614AFEAF6DDA2A6EFFBB56B0880AF9B201B3C12055D292E3BB556240DD031C29A67BF244F59112BFB6865EEEC1DFE1CDB1E27F0A9E3372638FE4407099D0E54E9A188079C8BB9470BE6F63C83612D80BD60C21B251B64236E5CAF09A11C12F1A5E94F199DBC7C9E394C0B0E07A583E707E5241B8FB33E39BB26C31929F39316F4FDE206493566E17B51CE635420493176D8FD353206EF87F0994F039DF8F008AF602F50D7F9C0051B56227F3A2ED20B29611219FC4376234EB900093A81389ED00991272B739389F1F978A92A3E41F0A28985D697C01240875AC46A82B2FE94004CBD7B1E7594AE38A9DA0E84FE7E122482BB391538EB8E85AF9DC022CB32CC08FDA7A95165725EC29A0F824F97F0251BE636B57E0791A7F50EE190D45749472B29A674239AF95B373A40A6E0E09C674071186B125EF5AF72CB434AC0AA990341F063EBFE30963451491474B603733959A23A6D5B8A378F15A5A5B9CE4BA44BAEF6AA531AF5097ADE73F64AED0A541784119665F548FAEB447DE108AB74A74893017F0A1AF84AEF0730B555767B0CF6AE502E7693374D2E01C54C64E411AA93C96DC5FA010267B387299D4376FBB190E1C51A560871B559FC800D82ABD119A5732B50270BEDBCC8A636E7499149AE0E47F736FDB71EBF1995D1E8BDCB0EE96E732E8C2509F98717C3D174C78A4A2BE43DD89195408CD300505A219305809A1BFE7294BC2EECE6D98C768A8A1E0F74B665EE3D652AE8E008EBBB11F0D2148E4E5C93D7FE0190D27B3EBB7D2194BFBB624AF3A894CEF7AED571954D006824950A981F4ADA72BEAA0D820C5DD9BD519D39BB7915681F266DA66D49BDAB9E55879B953A7332F877DC5F5CC7BB3C9E1C1F2E41EB55EFC02A450B5142514F1E06D43E48FBF5DC80DF241169D5936432BFE9BE99DCB17293CF968A17F3111C884635EF2BEDFC87DBB80BF25EE9BF57B55CFE635FD99554F5FF2B4482D1948BD282FA282C48C0302348982E30A772BF14195CAC7FE39F836E6238EB1E1FD074E63B9AD0A8D37111087E47FE5D04B62DEB496353457BC76C53A2FC9D5AC9AE6A47F632E6D45E08786DA128464FF2266BFF92B5CD89176A19226F2EB14CDEB331C497F1836FB6C0A117ED6BAF95E9DB8254487B0DFA7301397AA29D95FF2065D851BD302B747AB47BA0AF408B51E4BBBF042ED1B2B604EEF4C266FE243261515778BC9451A8DFB025FA3212E868C3A078C7CFF65077DE94E50ED90A259FAFAEB398A94FF15C838EFA7F49904BEAFCCECD8C9ED4E014EA00C7AEF1D437DA306E8B7DFCE536912C169BAF0A3B78A643D6E210E5550E3B2BAF7EDFE01E721E3D05BAC1378EC1DFDEB2E2AC0F0BC368E0A8CC64F375DFEA2FC20CBDC515440FC2ABBBCEA3584E103BD686C5403EFE376D44F5242D35C9F9D35E1A869FFCB6657823EA0D4331ADD5CCFA99BD6EB3494A48ABBA7B7ABC32ACB8FF00512E1B0AD493F579898847E328C06FE05FE282F8D4AF48A1AAD0495AF1AC7354275A6D45AD5A7B3F6787F893EA558BC5D4ADDE1F0D265ABF73C86550D25C00821C3138B385448E3E02901E2E6EBC6A0F211CB6F22F8F865F0DF3893B987DD086B6674F5464ACE18B9F0EAE948667B2FC04FECEA3E2B7EA6B869D5F66D02D4DB124A59621B96E0DEFBF99A91AFA0CFD6D5A5968E62EF42B4C8908C3719BA0254929A9A183D50C566CE4FC970E047474490FFB07F576765AC5286B2E0FDBF1EC56A8AE8E6F560C69614FDF5C89BA53B8B7189E6388F7CDF7B819F78F3E6EA54C40865262BD2C8CE87284FEC36E2E73BDB8AA9CB5283272A90A6BBBFC3F7FED5F124E8BFD770B6254CDC695FBA0D8627315370E2CCDB89BCC84C96E20805AAF087F9E9BD1A189F4C6D66A6DC3FEF773788B3B57EF876CFEAE1F2C876CD239BE3B8A94F21350EDAE6C269698CC66BAF90B3641593F96399C71B2ECBE50F61B5D6F37D47DF702A9B9E47BED2824DEB19ADE7D7D8830A8F610088CF4BD0AD22A5A4FBA767D01987688BE710235A74129666FF7917B506A18E6B5D6166E8B682BE6B1946A4D4420926FF8CDF2488EABE71EFA7F2536B9DBEFBA08BB9E94086F55B1B991E18E6023E6952D4A563F2420A1536A1EDDE119E5779223CB712AB5C0BA4F0C176830FE523DD8603F1B316E128579E65454C2BE62C922C1DFE09DFB47D4497CC552AA9987A8BFE19C44E207397204686C718A0936145FC102B8A7111F74A421226AE016EDE658DE5DF9D3C28A247A87F2BC6FECF66CE7A6699880E0871CDB6F066D2CB3F9F625DC5E80751DBBC85982982E2EFAE3AB8F4F1EDA0D13C3B65FD2178E8AE4A712B521B7539785BB058176AB4396E6EFF2FD9052D4C6AF17DC30F50630233C3F05C62E151EECE13CE124E58A25F0F3AB65033ACAC9EA6E41CB3FA435D367DFEB0B9C9B37414CF32DC85A3C43087A578165C86D100E47DBA1FE7061111AAA961E67ED057C715974D3144912A58B6DB22D51BEDF6A8646D810190D91B61F0776DA00C8B0BAA7A83F4433F357E758F5AE8F278119908497E717A7AD25B09EA7C76B306A9A3AFCD9AE6B4F64016D5E80BD3FBE2F5EE673A7459B03AD9356148EA83461B66716346DBE85678C37C932EBC53B033A3F46DC28219880CFA8BB5E15F8862D345923BBC179FD763A0F943FC56BAB69F26C0C15D668BAD923D7AE6B35C07621768F9D972E2D6F46551D45E3FBBB577D13F01E8C1AFDBDD2F052E931C0529380F290FA1DE8BF5A11F82612943BAA2C0D086EBEC84069B271AC8656883F686C67B1808E27C860ECD1B95FF6CC6E6A5846DA29992CBA450081B8C37DD4911470EFF281FE94F10636A29B790E41EA6A342A5BE79CAF575FE9B0147F2EFE02874BC8A0E136A395B42E77D9F18CA4F61501E6C1805CDCDC10D0292593481F7E0F93281D0456EB51F6ABB7C379C028890F445D9FAC0D96AF68CDF6CC879A406CF2F0991916B33A72A193CF170B45AA079DB1BFD4B4126FA9AD3ED13FC98CE4C6C3C30923C8C53BCE1812B21BB644ED3A0CC0596C60032FFB1462DF5182528553AE865BF87FB7C7F61D1FD8E40D830B8D8F54924EDF934D1EBB88DA90BC59EEF1F6BF9FC2D17D8E9E0E39FFAD22EB84EFF39BAA70447B124E492D760E55D6301DCDFBCF9173FE293AC4D6CAF2E1964B32973067EC76BBECC65113C1FAB85375D92CE1436E1D1B205A88202B304264620B282E62CAAF5CFE1169EDAD9459B15BF0060C5744A17460F9FB164974CC55B3FFA71AAC13437BE58325E5E27E151C71D195F886F5630925D441A54695DF23F64C6BC3B0CA83F0E88D01BA4DC748A29F42AC2997C2A21EC258E430032C09E73E73AC2B21B55E1DFB2DBA281426620A0545D2507D1E96A3778C780FE77F1DA3B615E1B0D14DE8729229472E6619AB3B67CCAF21CFBFFD1F237E780927F147425B2142BF62CAD6B467A10F7B3DB922F095A0012EC179C4F8D5437AA8024F13A2A485E8890940DB69FB719B94B7D2629D277B593B94ECC744AA4CFF3D33D2250236C74DA057496BEFDB961B89BD6F44D581AD7A28524A6AF2253FD27530B7FF16FB5804FCA7E44BA2A3AB85FEDEED837DC130F533E8215B3AC3F584A2EC0E9B6194F97741EC050576E16349AD852DE8AAE2BF83CB1894107299F101AD5A2C05EC590B2CC698663C44FC0DC7F893F42BC5A2DECFF2FAF46CC1C00FA7294A0184A85CDDA2B1F38A89B1B17EC08555D082411A4CAEDED562C9FBBC1F512118EEC3BC931CC91636461151BDA454C4F029E01231BF170EBE17C526F3D8F705DC46560642B1AF36E3B401325A6CF59B88BCD4B3242D676FF4066E4252ADCA37786CBDB340DD81C5DD0540992F0B142C5A18D3BD1070719AF996E3C3768C3B234D303E6E9850B35C7AE52496C76106D7CAE4CF8ED01767B6DB5603F339FBAA019B08FA35E3DE1129A6A4D578264CF1FC8A1DBF218DD72B4865214DAA795A00505D4AE2B85E90F589065D65FC60CDD828007D4D3A4C084C7EC159C5D86817860CA03545FF74F17AD8570B2ADA55ECA12BFAB5C10067A086A34A57AAD8694C953137BBE901F8D3DEC27DB5DAD2AC96D56C312E25FE48BDC889373ED252B4F88D32DED6702B58D35A1FB40ABE2F2ABDE21CAA5FD0F67E7407A8"""),
|
|
TestUtils.hexDecode("""
|
|
d3bed8aae32df74803b6961baa9a2266122e26fd3cfdf1568b460abf5ebd475e1764c7814c6a48cfd6d4df272ea9790c8ebf12fcf5836b0926d593e90828bd49ebdb997e79b79ea68e66f48dad497fbd3a6c3e317162a3f46a4dcc45616be6cefa68210b11fcfc9a906945d30297d1714ad28b1fc7b4c6cec5ece1f5d20729918070cbfb25f285a6fba5e195d2dd75a8c62f581be2d75607b5a8740dd2339682f31230354ea03d0e7cf945f167937592a2d2dcaecc5cb0d36217453809886151073e5d15e6bf7763cce81da19738be3a3bfe96788a56c47d2d166efd18250ad525b4e9e5566c19287ffc277d26a888d0b1073242da5e92b23556552b841ec3355e14173090649a14cfc0134b7714dcbe52095d759d0eaecc7d26f3f12494e4247435d5a6eaa9957aa503f710f8e2844905664905de2f30285e774b46270c58f45d267e850e1a6f711b00e5153040ce090660c97b14432c27d0dd50c0585a8f4c4e1e15d2888a90c184508cb400af2f5d3dc0af3eda99a5e97d0836d079eed38aa6e3e4f724cc63adab509ea5f28bacf3181cb7617a3884407a274824742623eb441ffe1ef15bf6509e7b2305b5341c7a3d73e5dece5b9ead5b99f7e65169ed1673bdb925b52a6b8d524ee37e8538e6917327a8237bfc3ed3f729cef6840e75ef1cef707fa10009e4d5c72561eed18c06e3be94c579f6629373af6a55019c3faeed00abc22deabc59dcd87ecd40e9dc0a5f4b7fe1d711990fc8c03ae9fce980450739c0a441e3512ab7602038dbd1352fe0da554176a58c47c29111eda3d2b9560b3fdcda292c31621e22bce8695748fcde6c81a1270a1944790c174de8a18a505543b459932c6f4228a00984166ddf33e981c2d3ad2e3cd9ce87aadc57e1e437029223e729a99667ad87ca718db5b133a930e73dcfa2d37ad7580373da272e54f62f3d13db9a4bdafb1922145a1624fa96921c0b6bb1b3d7a115ee58dbb2872db79f4d38255c11f160397052aae3ec34921bdad97da72714f37eed4765769e996e45974961e7439352445147dec09b1bd02a776c2c22be612a723b8711f8391e4918a95605fdc866ed64cff6cde9baec4eb42bd880dd0265befe1a33f4d2c0900627f0c7727228aad47d0922caf2a7c86d70960ac2634cea63dbf5d33af04cb149eb618f9ee97adeeb0df8bf599358a82ceeeca582551298a63cbac754b6975cebf7d6e78b6d5ee24dd6c78b51b022f857e230fab176446cc2cbf6986caf8e76734f5280f463641bbda5137fab4800c58f0e1c4dfd45d5813df3f917666bbadb3547c7381eb33b00fd569d58dacdc95a25962024786770aed94d97d4682f9e94d34ecf09e9269993f547901d0120e5e969e3f12a5ac219158750ed0f381dd72a91ffce01f2b612decbef0fa5441925195b813e1273dcd9988457214c9cc503206eb4756e46f900cf2011963e761e12a3774381b877d93aa1c7892f512fc0eeeb225ace5dd7816b919d1717b6e4a34dbd30171a1d036d9ef9d37ab821bc03d881ced0f2aa94eec2fe0b1ca72b7049f749c9e86ba4ff44afdc90931029fa59538014c519f76264a2a45bdab759da02761303ece94fdc2654cc9c818f4af979dad60a9506dd381d150a66e5b0fbdb6e734404f4cc71e6b4e7f5690556d28158cf049f8ce6e4043a82d1ca3c15e480ebeb7e211b2fb00b4bde2733f03f9cc705038050769f9aebb5a1ffc1c9e3d05132ec1ac7b55b6b3b127ffec67cd6e3a1649fc9313e3625c01ebb600c30f622f8bccea15d6f0388439fae057fb1ca54c7aaecff7b1316e74273a2c66037926b246626ea2321c311aac3b5b907e551d7b03f069ae354ddca45d1e5ed3023c576fdfd1c1bce9d8edad78acfde17c9e4d83ba9087d889dee4bfbcd8908a41ebcb4738861abb6b6d8e65251dc4b7c26de398c687b30efd895069410e58d7bc2a105640866321a83dec80ba7b47cd64b002300a9fdb7e7648c2d0f9784ba55f837904df1fd1db46ea82802d4c3e925d4c3e3cde9b9b6063d303d410f3e917f10aa0a18fde5849d14d0a79d71a983f9b09a41e9a3f80dd36e46bdabe65a1d40d7e53b94aa9677561a549aefd98826cc32f6dc5961714d9cfbe913dd3bc68b8891017915066792cded38946c0316fb0eb6d89c10b84df01e0f910a9ce8fa1cbde71edb210918562910cb540d3eab21c8c8e43151a333c516239370ea3dd42294712d6cb920b1f5469e74fa82d4bd7892cec246db13f3f37ef0e980e095faf06e5aa417f5e16de83c8c1ee5ba8340d10785e1b10aa7573dd6f77fd87eab89a014449210e285fb17d0ff7cc3a2c61e6485c2f2e81fec821abf0c694b77f71a91790037d0f141cfb4a74caa4125dfd7236251526a44d4ffaba4589d5237fe647a4082ccd708e27e82bd28597081fecc184a5ecb2d19d115acb18d9d463e3f642e2e606d3f6d496fbbf19149ccac758dcfe8eb53378b65608940925c23754e0f1a390d520f26c4cc088c091e55b3cc475565c0d166265a0396c50d9983e3433bc5527e9fce7fca2bb408b39dbf96bc183c3659f6e8fee0f23e4230c0eef54ae9581b3a38436810accd7c37e83326e3fe7ed1821393a11127027821bef0b96f58a66968271915c1cbcdbcbcd8c62a54bee08b3cf143e859564b798892fbb9c430a6645bb4c8a2be76c37afaa67b7b5a621f987034e88b1608de8a0a09384d85b0c2c872cc2a9f8ac348c5f864d28558f6c6e4523f408586490a78ef95ecffe5b8fdbbc264944869aeaa3ef428d5cc5fcd363d1003239a6651532a442935e674e3cf1aec6f8b32e32db762bf2512efe763c88b9bf4413ea3344835b96fdcdf71c83afd75ae5925c3e76b9afb9fdc72b17f41ec516ab23529e73b9639f5ca42457c5afcc0f2add498456e1db6b3e775ce48753a9a70840c45dfe7cf396b627fad775acd051829f409bd37046bc4cbb57938cb490891c3aa6a04f60769e04685ac1167c9de32fb20cf43f730d8d09b0d74e7f80aeac659509d7941460018c38eda19de38967fee38f7e9526babd21ca1be031dff0591d765ae30361fd8c2a33bc1dded2c43e0e43533a55e72bf1015f5167c8d6bd5e6a19cd4e2ff19f1d47cf42fc361649a669e4524c731bfe7bd11c2e4ff599724de173dd6990f30db8d3b2084d2d3aaa0c0d8b648667b951d510480a28d40c938b71974d749e62d88cbc686eaa31e7f89cb86dda1e778a167610e7bb3cc97cb27f37ef9121ac1baec0a10b40211cc314b02b5df4274acfcd13de277e470b63c0f0fa387dced40050607517a979ccadff817383b404b4d627d8e92b8c1d8e9ecedfc2d344c4e85878b91a4a5aeb2bbc9e3f5010611121a23333a42546d6e8e909aa3b6c4cbe6ec000000000000000000000000000000000a1b2b40""")
|
|
),
|
|
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
f7dca662f79909c3ddab57a31bf75b9d925ee06460453ccc8687ed15f17d9b3de688567d9057463268b74002ea5a1ebc35df84945f296a52665eb737350da32513ec98468356bd8519b3518b104422594072d906b1e37392310e089acd08eadba8e647a2bccaa8ab65335bba2d87e7ac2f1ac90996724fed92021ff93acf1797dba20442942de3a04824454521350e08858124186e04334562082a82b451598451c2020842341218878510c540193060ccc071011492218320c0a21022182ee3a28021880024a7050a9631dc2832118471242430121866d0800940c865cc006911086a23c72dd8c068103028d9040e144029131989a4468e139268091492828630c0200648142061286d00a61013492d5c302a6044681892880ca589a0088691486410463210314044868dd4c228539489422432c49650992831dc3626e0b8311c816d0bb404233291a29491a342711b838122a268cc8845d0008adb4872d99229c12804a40200993401200571e0987014c34cc0026148166824451190104c8980858c366894486422b6700b2324e04626241192a1900541146ec906520835828b366481462cc9106218098e04b951a4309284b628a1122a0c43050b28850b210c5c30501900811c096e83964581c28459b80414858d530031209130180664400802243904e3284554280452325219312a133364c9a8251aa2680a28229480600cb5054ab88109a52912360c200261031142d89251db062119126212a320d9b24d0b391164a20820374c6498908b362ce082290c174063246e811828e388455b20261c264508162288b0890113008cc69164146c13c7855c40852225294b969123a0886184110205888ba41144182259a271cac00d491081d8b229cbc02480a04c4300424a86419116100a976401850d24117009216400924048440ce18248031406c9004a110886421465cc9090d1424c124370c342452180281a150222426590248a613810c28050e2b4259b204e413281a1829193184d981244180684d8a26592a269d4100e90a2241c0541604409cc102d99287121a1210ac2610399500c156d0bc72919320e1a86699a4249c948064b2668492840c4222100400a03c67164b091c0286901470dd0221011a12d91448488886c084464ca0662cc384a63460004396c23c1650a090cdc06325396800242614b3249cb282d44385004889121a48100a78410476de40232c9282519077183a0691b23224116091c088080240147916415573a7a76b6e004d7d3fe8a894ad12949d2c0aa943f5a7210f31077de2af8e27d10ca043ddb29e828db0c39953bd50fddbbbf839d5e242f2623aee99abcec0edaa8893b5c79f1a68387d232995823eb46a1968173ee79bda6e849e254b0e5c63499b9c8e07edf0bca6f0436a4fce62b7d57bd80f49fbf2b7d4ab1bbf1ed004950616ab009ef6e935d4447e287d834106cf017746340e79c317547d051a8026a31c8868bdfdb6ee50c1645ec8e0aa9f716f42502d9eead700f29a60058821504dc6b0bbc9512e1af92ec73b7582676d2ac13f2c9cdfea411fca42f2fa5d286bda79ba0739b0522e18b22d831fc29ea101e835932861b705803a2abb60fad2185c076a8dd469dc8f80522fc546ff0226f8916bade8e2763f3182e431482bec626b2f18d1c046e19a11d79eae753640ffcde6345531dd557c7bbbaf8b727aaa3591abbedbd5f9afb8cf7ad0f645db4de84d91be8b52cb7a407624a0b13a2976f42aa40a1a28a1559be8c539df3d8124c5c111880a8aac2367c312a8914fbce07838804dc956763147fec591eef9961a9c71f11c71512355234c29b65d8a5b232116dbdcaf72d00c78bee6f8c5508b83b4981cbef5b21430ac2bfbb892817254e20c5c3d7611dbcc101b4fbaccc4856b37bf06fbfb231c587ef281cd7bb99f5bb2ac8681d05631c61c3e31f506976e90a130aee0416fad01b68c760d54b5f63231f3d118f18b4d04f44c255d95e1f8bdd7cae7ab36b68c62a353a8f85d70b6f78a9dd7429feaf4626204cfab0e267bfc9717eccc4b2a2849ec803975b1237d01c1acafaf02bac8e6cb84408c327de940107c067c69e481822581056162531b120cdaa067a7d65a3a47a7ae35f507a9c519f7be179be822b1dcbb8cb7561b9d7822e936e5913dff73c3c02f74e419f8185661e60ce39c411295c346d692def165c38ea53b1d61b08f9d6830fc3c13f0b8edd1dd56b1cca3c18248cfb43313c7f91a5a7f0bbf24e0c0b26093eea6779d93fe128cb19266968bba07f75eeff77ef02b509045d08098cb00af145d1ab06a4e8065b9ae3c208a1556237bc2a269c030238d4fc2e0661c6b1cd2c1dceaea81b837cb4c7b032921d8e77a2304b70d1e9b1140a0866284c50389f581c5c733afd3d18651d84c0717943b86c3c8438defa777f0215e270c94074e1458cba5e0e51d3fef04fa3c51b150068f8daa4ccf533ecb075782104436a1333b2d9e71add8a1684b8a98d5050b62a56df930515cb50567d678cc782c3f72599a8e348c753fb3eb1e01c36a74d3e8ef8c82d92cbdd9f759fee568525f5d1b509907737b595aa2f77333b499896a877ed157d230c765da0e0597388d98eaa4c6a49d2147c5fe963abab12ed3e00fbf0e09982e7c15651ff87b3b11596a95c320e495277963dcb1e621bcc4f6dc81bcdec747a879569c1a99f23f2613e781abb0b3b330d5271f25e780560fd5cbc06f859de47531b1b8ca0c6b60b6c668b59decd66a395e6f6d7b170bbda9ad458b8832ed1e232de0e8f973af0f0e2c5e902c7253f22310740cbebf1830b428d5eea36734db9a83fdf8ec49e91c01f0edeffef4327195516e2dd062caf366209f99802efd1fa460b6122ae840d2ae809cfdd27eb403f4b6e26473936cb11fe381caa01ad7565d682ffc2df5617d16e36cb1debcd2a6c42a2d8588a5186ce7bbfac7ccda8b00b32af6e265f7b9dfad36d0f98fd5a70042f40c2e4649eadc95f147122b437bd91b3a0749a02bec4b0f31f2a256a3f59344d192934a4c41bc4f02208a967a096bf198e9021de7aa8bf646186c1c8e42917c1b6ba03920ebe1c6eff205d027f7ef7e4f8a17e87ad83a7bf706d16115aa66deb41bc486d932bfc14b4478b37e104467004ea19e5d91a0c8128a0c0df11f7e76f7febae4368dedec4ec34eb1c46a45d671850b95340e6fdcc1f69fa63858f5c9e94935431f0681d2a81230e44675db413a8b475a29bd1102febb27ce0a60f265b767a91f67a8c7ce172694f933c856b3f0c4f4a5362222c0fbeb16ddfab6bdb62293ace0224baadd06248173cb6a3c3b31f0dfe2969d42b28cabf0600f220fdfdfb126b459f8f9b1ea285bb7b2899b3352a452bd1ca3b807ae648d2fefe4595537f4f8f285a37270b96ee31f8381b96a54ee36df081bfab2b518d6cbb0e3848bdb8ad4b9bc74544de21b5d4f04a847cc88076ad7124aed1ee2014ee352b69373f2a300acdcccd58c622d55dcc95672d62bfbdba992d1c8db3b686856742de083d664880d9804b7e71002e1b76963d3d5e32737db07698dd8d67e1b1c0d89f37d62be3dcb27df8aa39a12060060645486252ed"""),
|
|
TestUtils.hexDecode("""
|
|
8F69A33C4CB9627BF27401D4A1BC131D28AD0E2E5A317CE983BA2CC7465861A414FB72745E4DA31C0E04576DFE0D0EE834A1EE323D5A0901DD0189EFD6718049E2FFE1AFA548BE16E04B8963325AEB0CA90238C7A243A3F6AA17BC1D63836898688AC8E919B8EB6D689075E050B4189A1FEC723E0AE8D4AAE9FB6790B527A7552CDA174BF40BF91C4142B076ED8CF112A871450AD994737FD5BCF513D42DB01906636D42C6C10B64F74BD37D68A966DE0F3BBE6541AEB9991DDD0C0070F16715C01820546A014E66D786B8922E905DE2BC65053C42703227B7D8431427E3EBB0DD010DC58C2343147700D673D5707160F234E35BA24516CEDEAC77AE15C667AEFA8E029FF14F169FC0A781593E11D42E8659DA8E91E53EE0A1FF15A3C203BBF9591584A99FF8BACDC37541E126B8CDF3503AB2D1BFC0C37F38A298AB1DDA150288A8110C052469382A9A4F5565778339AB327DD80644A26B218ACE0830E56813CAA658A9F17826CD12B815612BE40906ABC89185EDDFA8E05102842CF27BF040FC7B396E7E2E023CB86AB7AE25F36DA6B6C0842126658E0315D6D8F4B5DF38CA663B55998ABFC72FE9B7EB7CE3BEB72AF73A0B2A45577C5215C42E465EECF4A4E69B6DDC1E65E0C1EBCA"""),
|
|
TestUtils.hexDecode("""
|
|
f0fddedba6482c562d0ea6791254b7aa34da8b70ca4f0a7cbdfb0e4fa31f902aa37484c4167f74093f5ebd508e4b89966aba03065194cfe3376066b848da8faf1768c397a0e3797bf09e1dd02be5f1e77703ddac9063901b52c9b4be73daa5d44da1a59510b25a974d9c54f8f7889587c6f69a17989ea8b69f4dabced9e23442f337d015ebcf84cf8c5776f4863275532c4bad840d314797e07de00a9c7fdbb60f83392efc382220ecf3f9d60b5594da6fcf00580df29a378a9cc3156bac8ec8bcaa7de1d8d48d2a1f33ea8a8f4956e3c46f386628ca96e009852405b6333710287e376aee2ee7c6f67b1adf07f76fec3688201bd3b152e202c192db41d9bbc0d8411ca019f9a1bf1268b34ce82a7c037fc63d9c63a561003d8247c645173e01c8ef63853e4451185d45cc2d5d2da4261eede504c6da88a55d7cc7bb8df33eca74e9f4b9f9139b9f98964aecc5278448ff9f2a032226e908b32d741037ae689c204bc1f3bc07850debc3fbc839580e6ae1fcfdbd62257ad64c2d6f6945a6757242d1473e64f089c46fe050d79a082e43cfe656f09d01ea219eeb7684188fe80ad59c4bdb57905cba37fe0fdc1b205f1a5a899ab55a37c7d3e003f1051bd3b322b37289df3d350053d6ec8ec1c9cafb49fe147c01f092dcdbd9ffd2b7900205334a077b2ad5c57a53410bc5b9f32930fc6f6a270d84d4436d8c716344df877f5e523ec9e1ecdd43ac21e2c4cb8706415be0ea1060c7127d6a327eca92956771af363c03ec4a0ccdf958bee76803208191946dea6e51a85dd071f3711555cba324e5a7d7459a7662fa6cce043b34845fe77cc651883c478d0d4b2c09e76bf401f0c12721d21357546dc78d2f054b409b6a702328d720023096e911144b7bb724f1d799b0b446954a305bf46944f122867cea17b9798636498a8393bc2dd328b0b3ae78b44ae35cbabe62e0f0d3ea4cd6db0bfce87c6e9fb3364c2ee27b5edbfce17c8df592882dd057dda81855abe0d0898961ace81b0ff22b4471bf96ce814a45f7c6b3e07ef1f18c9eb238b44dc6a50d7489a1af58d2dd1ea2ab2b1a0b4b661e55bbe6dbe9314e76207ec0a02edb2fe7e8fad8141401d1f1a80237cf5a10604ebd26ca46c0ed5d8bfe96c3a1d6ff5b7d2de69402d348e5db561e531deafe29b0767620d7613b817d4d3a6568911c291c3436b40043cdef83a8b7f527aa8e9ca89dc923c2bee6e41312af6ca1530ec7c6aae798e25a6a31ecd29f4ddd56d663e430e5c1ead28a23d424148b1a8aebe9ad7faafa4e295215962d294edb7b1f994ccf43238038ff1af9597d24ecfb68aad4e4d2be280c6fda0cb88b4a1b0deacf678857d83c955115c094980ef8fddfa5045a3e38e733bafa243a91e89a5676312db195f1fe7c0f7b0262628a68c6619db1fd85d84a02b9e7da8234304192aa3db15a294dc4e9e7cb32f8662ff0a49fc4309700e0dea871edeef3df09ec78c3791fa604ad69bbd8c211f136dbbfd49009fb5e4fcbb2c995bbe361c580a3aeb1c88dbb2f148cd05fa9ced0d826e24c268b741953c8ec804add66a9b8dbda05a9296201d0f447b45a4bb7271fbd3359a29815bedd33ae87b52bb270cec2369dbac94528eb48a1a66c129793a4365212f1cbe7e24c87a805ec0f41cc2f36bb2f2423ce6904406b1362c46d51d6d5685dcc06915636e20ea3649d6d1da39c6177630d1d48f393d7093fc12415e5789b15e1ffd07e1f810057ab6545b22b24a93f9af3ae254407f9920af8a48ec40412998dca523ee1e122a5e1107a1121cad25652c1e00f6fa115c58b4a7a60cb4e3b219d9828f2c8efb04a443717e73146a89fe1a4f887b564010eeba3695164704c517d3597ddf34dc51dc460773394d8cb4d562498cd127020973bcb2315c25ad136dafcfc0d674341045ab1de0e4230ec91d579ef1a42ad69892f17dd271e9eab28097f8f9c5e78c50c36c8a02f1625ec41132ff1731e3c59ba20cafacc9ea890db35b8c9606bbd5457262d0c44c4659f933adb64fc74a884e152627cafdb20cc64ca10ed9ee16d814b506415cd0141406b0286124e37f777dc810d70d4125a72bd98a2b73bb26173494568bec76350b2b3b399fde1e3c115f1fbc99929a58a8ccc2b9cc1efcdffd210d88ad48c54a48e837cf841c9f1a350531b695c6fa08ce3148682fceb9fd17f121fc1e3275f65b5a8cd93a25d42318bd21e94ea8873744f2ab530c58dd3bc1109a5c872e61887bddc455b1bcdddb91c0ef4437a49a9f6c73fd371bc6c6d2fa594f78224646f2b8cfee3563c57149aa3a6995dbcf0e6782c53694b39b8812dd069c0cbe713fe44446e44beb4ffe38072deebf3ccb20134168702fc023c4ddf9aedd387a8bd6fcb075850cf1f29f2bc283f5731b75b68169dda2289ac221217bee3e2ed479fc5ea8244a99cb27a015d7a3ebbd1f7acef07b63f17011c5e39ccd0c025d0bce5aed7c482685c39f1fd82a9b08c197f9cc18da457ad0ad55250ea935bee50df659b2c7a501a348b8759643881a9c5555015799adafe10130d6107e0b964b48d23c909e55843b62b9dcd1dd3b235c487968c2c3d87fe29b2fe3ec7a8fc1c1666fc8d2b6adddea39ad704cf5eb6c22f0a5aeb80e2bb04f6c2c6bb9ceadcdf7945140ba942581213dba8428a8c06155f200082f7faf357ffaa653245e2752787fc1598e000eb567cedd49b98d5e4fcbcfd5c4ee10793c16a4767445fcd16ce4201cdd005e95cf5a714a9e0f648673269b5fcd8ca0cc254b6cd2fb428075a12b7ab2bb07a5ddd82e58c04676563b11dfede4daf13e1362a5171364a2f556c36130c1eadb59dd966622f8b86502f379e0dddf69a1f73f58ca6867b4612f28e67c7dfc49dcb56dcb17a79aa0e56a08c14e1e909fd21d05003ea921ab717bae0ce1f15a74a71c4d7e6936d20c7e661806d5f8a5f4cd93ab6720775057d4c0450a6c9e2211af47c57a7127f59983d824d35f48848043aaf3e76209a6cb6f34b15e5099b2c3801bcdca3a5c626bec9b6e92a67189dbcdad0d59d2b30a1f9cf9de45084ed6d35e32722b6642ab870247b42eb8f5fe39e97709141e36b5888fbf496199675274d840f15f5ffe40d74be3bba8b4dc51425f839ef7d041a4232ccb93b754c524ba141c75ba94209f9e76a0d7c8f2aa3e126e6eae35f19de3fbe38f17143d1a83830a2b9b4c8a8b0bbac29363ea9ed0fb1001f67e1501b6f4d6406e2335a61f3386c9e6a2447e3249d3db8390158af9b7e57d81fcc00a4210194ef6f872821a8cc475187780d658903040b0c0e172030576772769facc1d3d6dcec001c30335b5d5f62656b8f96aab7c4d9dceef3f5051b2240435b75797d90a2c9d20b1b1c585d89919ce1e5e6ebf500000000000000000000000000000013273441""")
|
|
),
|
|
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
8a37e080550701795416f5587b977446898ac8147890840db53ae4c7a65508bbecd64901b484b1e1ca4764c26360fef4654b49d61b9b180ba16c6d346251b630e2b21822a4c2d9409a025868c3dea90b7eea36f9dfd34822ce07865fb847d73e1c6e9755cc9cd520d6120fc21ece975c4f2cbd0cdf71c565f3511cfddc2e711210192dd40664c21805c93229cac8219bc609d9388c20498e839821d390881bb58081400c000345200485e3400e489851d34468400025113051c1c821a0c08499988ce3400e1386690a022da2a051d8a2605b9611a4a8092293308bc4450b276ac91269dba648c33484d2243163246d0804660b234d4428021b004110a0641a0870c39811c4100164240019a46dc88811c306656342048c0040119289d3a8700037400cc96423896804119203196c5b120a1b02461c1428db464c62080ccb006de4286ac80621a3388da0406124123019c449e030521280642306888384281cb40c412692d3b80124117191c60d201110049060da949004974409332ac11472584069db1431d1322a243289542628809431e30891c8a84d131960082171c1326800225119002c51006658442d40b02581268c429088cc102d8ac68153442058a689d980485082281ca86c44264a5ca2686130641a310209b38048360e4a9285a2a88c02c6250889214b30094a101104382962b60dc830614a2205a0420d8a880511b09022356884062982026550446ad9424e10418408b5710093491cb6844342854b02321937410931502296655044618b08869b006a09262ed800412190711800091c33660b1785c1c04012990454b01081440819204e5c3466daa484cc3491d8143218174092342288281048a8700b190c91a0850ba771214022910241889808c9188ad4a64892b48ddb062500310643328964a20d82288c21304112394619218818156d51928562984c40a024633281e0022884b24d51948124295010934c18295281a22d60a620a2324a0a13059910880a083101990c1c102d8110054220868ca6080039115b2822d8c03004076623084898346289b24d483890db848d5100811c228c00b8240cb8209a344d4c4420c1988194b8694ca86512318d60167152820c0a012189142ca32231491824a106281a2904988450241160e2124c8b02812214221c316cc8442a12010c8c325121290222b14048a60508b201a1c2811045050336619b32220b8089203352a29049cc12900c124019a47083b66c63a8057a10b245a52f0ad7febf3d3801447b8222ba342649dae8395ca98831880c859419bf766393ec97f18e26b6e6e29718332b2fd9486ef5c149fc4f49ad1d2a2f7ff7397b44771f3e9d90c38232a6f30a2278527df3ab103a952fa94621628537a3cd9dc1a1b770e6ee8a62e0f72d187e9ba284ea8e264f5aca8d6ee3b566113310c813929129a04354a7ae12a1e0ff6a9282f776fe56b6cdc159da1f5dffd17631c84cd5fba7040450b924b93000317fe80bfc062e1f4cf7d991f5aafba5db5928850684d3d5c719355854f0ff74e42d9fbe4264e29f5cc74e717d5b8f592cb9e070b252f1514e3a17b3035f10168f86d688956a0461e0369aa2f7d3fd7840895b56f2c8b9bfe0347efc370d6bbcfe1c885c5c906934c1b188d3183443133273780dd187a066df1d1589457fe2f619265381f50bde9758cfac5fede514a2ce0861d297f1f47d512ca1fb15cea7d3a4582a4492f8a5c6dbaefe67c314fee1ffdfc251270f69b2cc654b2a77ec0219e85b5814c082dc618391d8a0e5b860ed1391a2bc99493ade19152c069cff589440481aebe4cfa286b9e15977405cfcf944c115a8866f88733d9fce246357652e7861bb3c9024e49e3b9efd99316a4eee4156422ede4fae9221334e2b4763bbe7fd7f88ef7f196685e00f4fb99d38570914e257c0f6b5da76c84c9590c418518f0825aacd131ccb8667abe7cfb428b27e4732290edbcd6f207609a71162e7eb4f9c370bab3de6dc0e531fa41dd63ce11c42bdeb4cd1a6b34ccefd8a9e78bf0fc924070e0281dcb67cef5ea3f4da04b9bfe85c622919e7de5fdc1cef8969a7484ee87bcfdae4d329d4627cda2a05a4334a1b0a326e1ea8cef839bd5317b7a2d84ba7737f4274e9258cbad6d07cd611a4276377f74b1f238b5fc2fef9bfa18c8196e303388fccd2a582b431b50de50a403b7560f31eb3b22252fc4558faa9a3a46e62469f0536848516e820c9c233ebfe1ace57b42937ae2ab801c5e9ab16b2dc06edfade1e86b5385e8b11a782ab21765279a5584122fbc8e85eb9d08106f8702a31d434e44dc780a05d2f47ea8ba5e999096bcfe20dcefbdaea955b08506fc3c7e4a912686d4d0ddd96e3db254f0585405ef8472336129d348a7c98be6ae4fe6e15068e76926018837e3d330bcea69233a6b07eaa5e0e773b0090c5068c79ba2457d23f7ac0f70a4ceef3323b5d4bc10b840b2b7a58444d00212f9fe767a00ccb3b740fd4f7502f12ff86c22aec43f1571c907b6e317ca9fd25a4f10bf5d1e839809742b0f116625735343f6337a77c1a9b63cbad92877a910830e0336010b8794f28f7073f5f7193aaa68f5923cb3700cd3283e912633a8e406067397e84788f067065d7f21a265c8ed878df6e0373c32a2aaeecf51d97418dc8cd77999191043263ea1caad2f23997e6cb400aa1fd54a968fce4d69d44b37632220e25df409fa2628bf17d39c4a2fa90ce1d39027177aa445a352344be19cc25ca0cab87a456ceb256d0928890f638d3f8fa046ccdad16b49ae0e71c9b9b947a5866671a029c8feb90a23e8273f351eb407ddd7dda03d30ddbe9750a05a6158ae14b84330ffb20666d17d73255c5bafa6a02d9bef615b9925aa716d20368eab7550328dd2d251d5a127070b1317ed7ade82e4d49ff9c7069dabbad20b2dbd9fab0978e1114f50f9ff10474906c3be4118103b8d4a2a576d5291685c37627a55fcf9187e9385a76429726646edb07ace3e02843212ef78f91dbcd9c54bbf5b6ad234834ff8647905a87afd41666fe007c96a2315c3595ee2196091c0ef5e0d1a3749d7957c864642caa2b52bca30fb62e455ad102b830800d1e01ef05acfd5677bbf4030a8800ed9afd9fed444dae96e85ceb9bede5b34230ba8030e887b27a907ce533ad40294cff8baa73483f0a6a346372172b095f435eb9acbcc2f6568d9f2e9f64decc6f0c584a71fa128de4a1f5d7ae55f7243fd83ba7449d4f5d1812dbfb7d1e49a5d027c240fa71e5d5636b07a4c0e65a168a0cb17a9fe088c86ad0913de787d2cead5930b4dcc2d097f8ffe8a04a078bd83ba6a6282663e0d821e432e3574861191aa82b1322441402120fe80fc5f60f05f4bcd242693b9fb89f0856af628d69a21d5a046395092c20c5860941dc4d129b7a2ec51fa56149112f0af7c3afc121ffe7caeb41370642ee8b4c3ad7f0a1970fdd0b37d13377a52fb4db0fffc71a1726e63dc9b914bace81506d320a26c8fc946cc68caabc990bf611e2cee065e55ff11c44d95d819c56826e61c088e24b2e01a697be804a8cb82be56b097039c57a854497015eddfc1ccdabe6cb7ac7b3989bc1a51ba9"""),
|
|
TestUtils.hexDecode("""
|
|
5DE75924D05BBEF6B34CEB195AE3349EB621187051B1EF95A779B99A3E0F729994BD19C7D1172418BBD3E015B20699DD09D8BFB0A343F477AE2A3BF5737AC994619D1FF3C13E7676D1BCB446289DBFE36E2D1508A3D437B4B0DA06478DF6D4701909B272E9070B1FE06385DBF8A552B471C8EB48EAE39D141009FBCC5D57D95697ACEB7B5231AB5976FFEC41E947BEACA7639F664C6C1D058505A49561811ECDA46E23B651F918112F38B407E82219B49E5C4E7C247DC4BA633C746B42DB912B07D56302FC5C08F5E0C3E311268041F970E670F3AD26A207701F1359EEF9D4134ADB882A1C899B0E4FFBA2C68535D97796636417EEDC0790FF808C976B57F0838A694700F8D75DD4FE5ECFB4B6A188FCB77FB1DF7C5F7C91DC81017A5E9A6D1EAF59680D3291F74743E1776A6DE31101FAEA31D876A0DDF3777A91EF1EA0B575C83C97C7A283E7E958287F5A52F30B6E70201A1410355B47210B911A7A4F6FC23BC95D7951822115FE410ED2E7FEFE08940B3F8E63F13F26B6E949C498E62A66FA675850FB9F7AAFAF7D054F5C12306ACF2900A5B66A29931A5919CB31D19304916AE41869CE3294B0F5F88D845A7FCFB57B952BEABCD1DF7FC11E2D342AA5A70A8AA9DBE1E6E66555EA618849A95439864DF6D7789D8E3B46C6FE4F33877F127D4136D993061DAB530EC979F818A57E1052B5B33D22E941643DE2FF9239741F6459A0EE28658C3C0033FA62DFF37928C59189A7A7E36B1E305F3E1F421EDF4D71A96C71406A0F9AFA5C96A9411AA1A35D241D7186E5C8D0CAE15938FF869897DC3B7D8196D64DE202108D6FB436FF89983EA6DBB5BC88EE2A02488E4D12AA87CC4BDF41A339E10300D32E0FD4F3D3136FA64BA90D64E2BC7C20BA77DA4DB5311F616288496F2FE3E7B3409879050FE57A23DB0344CAE82ED329B0D31DC9B7406CA715E3D84E364BA98F73F693B6E62DF4D741928D21D934453BD67FBBD9725BAAD34E5F3204BDBBB569251DFE2D69A9A96BAD90256213BB0747E7950AEBB4CEAC7224FD5F8F99A16866F5A1DCE07C2CD1E06B70A81FCECED0AEEECBA62521AA0A01FD7B5A3A8A14DB55AFF331E469F5138DBB2B96BFD0AAEE7F38EAA375F71759268546D590BA8C0C022F78CABC4E089992409D3D7BD19048D30B15C796170BCD7AAF7FED0387542BF8A6674F197EF994FF81BB80C59208A572495DE4E584B36A7E9149B5E2081A4DC162CF8376029231EFFB4B4981895FC36562F51DD5158DC82ADE52ABB0E98F4BCB3C0A24566D07686732FA734CDD48D03DF99F7253E589CB8725F17E6BF964E96F9827CA5A9DBD04D448025EE014EE1B5DBDA514D3FEE4F20664C11371DCB16991DA883BF9A68EE30D727137D7902F4839635B1C63F6C4F7D42070E880CA774680DAEF105D277EB8D9090A98F6B813774D42DEE922314480EBE562775F68ED180B67EFEB077D8B174C7D4DA877B0DD3698CF506EE382AE6FC6F68EE93ECA3627B28248D3EEAC469EB0C26BD1A10A7779CEA142958F9F9A533BDE974E1B3CD9B74FEEB2EE29ACD7DB65E00D7ED6E94E5E44A925188285166570727FC687AC7EBE4042BAEF68BC23F4B9C51BA5040BC6BBA41FFA9AFB1AFA09DE1BAA4DA091A08086128A9CA5F27D3F4420327C8FF4801BBF2057282D05D1CBDE60E1E6FB6715EC41AA9A852686DCFC47279FCCE5D86ABF02A6B5B57DE22B2097B12381EEC567E4ED1855F9B482C174D6D40A5825687C02E1D0AB634C020497A44E07E8FBB2D05280C53562DB4C90AE0901B88179D06F9F991E33BF17E7A9227A30454430CB768F56842995081520158FC34BF5257EC8EA9338B3714126D6A95A3D77FB61207154F6DD0041BB03D84D8F75E6EE910460F22CA765A2206D6C56C6E498E063B08B76B1DDF98571F492F9DBD3DEAE7D9C8EF21EDBABED962331F06371364DFCB3216E24638A20F77FCDD894FCC5525DD0C8FC329494841EAFD93CFDF0053FCC27F5A1263C7F4599C186B35FCA9C6F5F2FE169B00275F15447AAA3A823E27E322CA2316B25823F3A79FFA785E9CBC953815FE06F376B6F5860C6A87CB9BE98690C9C2A93EFF1BF1050A01C72CD521BEF265D66BC4B8ACE5736215DE59290DA957175D704BBEFB0E81C2CF906C3A579BEAC3A0C945409DEE4A1E683A0DADB3C4AA7E0174710C72A33F1BBC62A6E6F3EB9C138C0CEDA817688BCE8CCE523A2A4E2566775015F3BF66C09E716CA929BCC6DCBA7427EBD93B21CE276820734331B078558C63ADD096004B67E618D9E58FF3FEF00183EAA293A1DA2520BC03FADEB6A74B52292DBBC6EE4E5ECA8F8B0556FED36C2B41F9D8FBDA8EAA1F74BED46F05E7712E20E463502A420B6CE67D125BE999EF906300C627C57C468C8DD608F9AB354791E6FEF0EE63DF3C1821AE78111B27E57DA88FA44D89581D11C2C72F565A3D0B5E8E2D83DF178810075E5F8FD29E1953BD2C6326B693C5CF6ACE086673D69A67A181062A6ED511E0CF36381358C2DB2A394B05E0C1EE9C54B89C68E10857463F71A842BDB8429EB31D250542F88E6BD3BF10BDCA160C0FF44EBE7D0D982F15C4892091B4A69A3AE7051BECD1D2DB132599F1101E2BCF60136CE947F339A3DEF9F6D81E1BA3F5D4CF2ED989861F7CED86B1A6A167291CACA74C45BA7B5969C09EA20C4EB061D4CC4B68392AC866AC591764A16D0A42710645988FE070314D0859A1F022789442381EA0E3E83F5245272CB5FBB861C3729EC484D2F299F37D2F50688D1D8DD91F131D03207CD1459B289B19E3ED609D70D6BF8E0B97A75F4B4F1DB52DCA7AD03100A36C45D2AA221CD01C8A51D5328AE47E3307EDCEE9B27F62E5DA9EEE15B7A2FCFF1678551BB3DEAD4CE54A16C22119BCA343822DCD20271BB1518688CF69B566A123F65C4787C1C525BAFF00CE20C46C536E47DB1E4410E572BFECDD7904583BF61847868D7D1AEB1EA071EE15A9CB9E3EFF8D17A5BB7EE8BA83C95272E065979904AA99CF036BE085ED869D3CCB694C025FBDEE9BE140A0A21689F95D90D8A54DAEA98EE5DDFDFCEE2908E65C210F347D26F35B95B34642939067CCF04A098ED3E2CE3C0FE66305BB5391E223E43119D38A33672FBC980BEAB96558D3A940700B3CCA9D3AD2CEA08E23082DBF30FC08E94B6640CA04BBAE80091ECE96F128B37141131FED2A5549CAFD7BEB5B180509880C49FC6CB1C11E4CB7C7901C89ADFA0E5335C43A74053347D3028B23085647993B5844FB2716B7154D93E25DAD1CCD889EF3B16FAE34D04145237378D66BD09A254D395736990204A5627F5446787B467B619EE8F06CE664BF7B94392B5C77BCE828D6186348EA2DECA1CC84999FCCD95C9EC55E28C8C2FB559C9020C6EEB661F708E40351D7E530BFB7B1C3683BF15FAC5B17D1CE7EC5CC3C27E04889A9E59E6534C08AEF6934747083CCEE84FF2345D519CABC7D2BA6B783D36C864C65C47CA636B28B71D6797717950D652659AFA8BE3CAE4E269BD527C0425168D04C097DE8F34834A7D1728367F148524366F9E53C4CC255D3BD6FEE7B5A6CF459E1685FE740CC203EDBF58082820B967A40822D36BB4A489BF0CEB51387009D5205056387C292D584309076956E56926283657BF7CF096F54E0128A265050DF528AEED9247E19EFCC79EC301A9F38BE7AE5057456631840EE39E191B25F4F7070BB15CE2CC18777F7CBEF100FE7993681D4E965D0C19A68591BAAABE601BBAB89FC27B3C5BA83545AD645F0DB716C98D5C7A37E0AD97C986EDB88B025D25E3DCCCA816C707F0E2542E44F4D69F943E1DBD08E344F88661B68A822C3EFD648AA23AFFA2F533879540BE2F670F4D53091AF68867E7C71EDB6E9E494E9D30A1839653422AA8AE34A525EFAA62D3F5FF00D91F5DDF80FBDDE464A8502AD9AC85EB21025C0E4E2C2877D50962C5AB8283BFC823FB221CC285F3629056D1260AAF87B556E556B4C723D44279A106EE4075BB79773588333B42065811D671016AF177105106203EFC36FDAB2F5E5EC8DE043902583C1782BFD8BB772353EBC5CF03A0D869E5F3797713B58EB7480CF7B92AACFC9C41040BC9E1F5447F9852B2C5B5F33B5517F28A01D5435C47E063B41D3B0F7605B07AC33FF6F05C6FF44EBB70FD6E1AFC2A32C9A0B1AC17044401B93D6439CE53C3B033CFF06688E1933CAEEC48A04999A01956096339B5E44AB3A57FD1F0ACA23A03114708BB16803C2CDA679061B8E9808A2E11DB0957D4F73C8A06E6C50D6DA43E4D008ACA23CE2A3213BA0DAD20D5BA8B44DE5D50E188039C112B8A40B250E7E815B1367375C5698B61BD915A70096815479916F455B9EF837300908C5A8BEFA5157EB688EA02245AD3B309D10C769CA1B8E5CCA2F5FC66CC3920759A203C3F6B8E9ED10CAB20FA143B0BF0BC8529A4E89AB0C99AF77E43E68B61A9E4176066C4708FFAB05F3652817FC42039E2F22DE2058CFA8701AFFA894F3143FDA27AD85C45D3AEB30CA9759537CA4AF2079317CE5F4B5EEFBCAB981E42065AD5CB8A4CC9B628CCFAC18D2E637CB73399CE3D90A9060F88EF438E8511CE6F403A0CF14C6B641830983C1EDDE73BA27E41BD678E834167C718F5B1E2E6C109199F756905FAF9F0005CC1D110CE277DA02675461AE70EB6A412EC455B6575F16A4DEC0565DBC8F387D84F9D3AE67AB35E511657D82B5606A4DB45CEEE81C94FFAFCB88B8185CFB67E4D7171EEB391E9E1DAC625B56FED22D86E8A34924740F94A3D50CBD05B8E2476CBC7C54D2F742F0FD7162E7A138D4AC788E710AA45824513BEA162E2A1C1F709413942BAB5AABF7E347A148D53B8EBA0336D91539766AF0E827BF8EFF36389ECA38232FF2D7E341A3AA710F590C78EB69156462BAE9B8B73386F38EAC4FA26456FA555E26E7DF679983FEF23DAE87DBA66BCEA19A9F991F864A17C23F7CD592ACAEADE0E82F4737B70F0243F94F015B59330B71E25F1304DB3D8D7E2F96669BD7F8313EF9E10EB1EDB0F0BD94745D03C83768A618AD9ADDEDA7C1E6E134F8B7BC96B84652C982B1D9242F8D2CF0ACAD146EA3185E2332904E84088CA2D7D60D3E2DAE411171726B5FB6C95B3DE961E62474CEC73226E55AE7D9C7C534E278927F5D669EE6D111E325D54F338E2A6A06493D6F1B7A556A94CC9512235498409EEA477597EFAB239380491C9CCBA1F00A0D1C5D758162E9F4F5464A1A64A22C32721AE57E246722A6B2E07E544A5FEB06AF86C580DAB2B9DFB5AA0F0251E6840EAD66FCB6B89F80C2AD38383B329F9EF4589BF0E8A0C9996EC19E1DA539CFDEFB2BB0F3D9544392A06F765A74218B7DC34F38D230D1AFCF9130410A4B4FE038F7AC59B6B062EE2D2ACCD288606AD9AFDBE95D9572B78B54D26166C7817E6F72F7E6C55DD1576720E4AB99CC26722107F7C278BAC2D82FBD0A3B0E1793C2D8B498F90A9172D17244A4107D9274958FE078FA8A5A33087BF278383F439C0B41523E0E51A662A9F2822CBBB34EDA97F5398EAA12D52506C2EAAF6D4B75639EF0676F482A69DF0E8A9BDFBF6105E32B6FB3ADA2E29C62A0AA687820B4ED35C2418DB1A67A3A5B92DC61368585CF7F3B1B644A8137A52CA21DD982760CAB7FB111558ED0310E9FBA34E5480F4E707A2CEE74DC24AE5717C06DE2B509E4807824707505FFFC5DBFF798E8D85F758A94C2D3770674DFE03627457B2DF10628A31D44BD89D3435D93E4F9BC14D47E6D4B9BD3BB2287ADBCE1FA58495D9032A9A3ADCD56CCB116787E060EA431C1EA9E60A30B609AA9C66064017EA05BC16392992B7DFF62EF1046FC7E64F8F811CE50AAB40AC122CBD5119D3045ED0812F6E30EF6B6001285427B643E3C6FCB6390A9FE76B342A462994F2B9074B56A848538DE205C98BBBCC75DF6BF23CC1AF0B201E5A0618D4BC5035B9F71BCE9D3493A97FA47607D65865A5FF3FF17A7CE28C0E87A57FE951C8F804EADC21F161CCB5D1E66F1E4DBE92C69D4358E0CCC13A12DBE87C9B530579189EF2359A9DF5A8FDE00CB2B58EBD748B23F884626A66EA39847917995EADC1839BFEDCC24AB6BF22A5C247B6FABE8CF382DB48148915167BB47F505C184EC027C3AC741BB0F6676B0D0E7781E19FB8D4D630E71ED4843010198DB9B122CC301D432856B393632369FA1C99BA252F086E317229486C034F1960087ED4606288A7C89DB0EA0DE94700785322249E901897611913AA74F8BBF412639DDB639CBD1C41374A3EC66A87451D9E4127F7627DFDE4E1701D7FC9DE13DC7754952F659EBA7B1A861B8DFC78D1379274530B976C66F9CC4002563837C852D83B3F3BBFD892F14DBF64C976C924E3C656B69131EC17B7905507F78F073A7E509157215C988D490685F8AF23F64ED338915E72B518E4305C9CD44C219876456E87C0C59C5D7524C86CAA161C745364A12890064CA9061056F37ED1BD56B5B09B1423775BF0FCC898AB1BBC283B23DB6E91A3D749125992FF1BB598260DCFE428D2524050C1F545FFDA18A63B052C0C8CA4DF8C3BDE83EE5474395135FCA2B05157C25548B0804D1EDE"""),
|
|
TestUtils.hexDecode("""
|
|
0692e4fa67413edeabd602bff25ccbfad2e3402aa7399d8a9f7d0d6d389532019b7d3e63229d12ade7d487f1cade7f9533fbe2eb22a810c94b814a923ea83d7bccbd975af424bf5535f235117afa08156650728d96283a92d6276e34f864c37f8c11674307d653060d8310c0c7bba86515e051c3b1193087df6b22648ee59d6bc7a8c1b509b71620e3f7b5a0aa445f628e15e0725fb49e757cfbfd3dc5fe92a627bee707e33537fced3489e58fa73b49cffb2df08cd45aabaaaa491e77cf205d5be4f86f5a8d4272a5513ccdedfcc210fba346322ffeef9e11dfece2cfb7b854eba1ab581cc533cc6335b2195a20dadb86fae9efea0ab0c7d17710f8b0d8a157272509803c3b49fde1063e9297920bf245fe6502d8bf0a9a1f064d5a58b30b5a14dda6698ae37127f8d867f9aea40e93da3f4af04b91caacd66031d03c0c7e229ebeec8b818f4c970acd5c4dc8e17a3ce618ca96f4ca29f46f5e4059becc5f16ee43df8ba2ee1706c41621da8530689b42136b8a62dab7c691e566b9d48a28b45af799af56bcba07bc6044b64253e9a80e9b5ee01e8af0ca627a84d1a2a7ca9b0659dd1a60b788e5f6538a8223973476e9466459fc4f20cf2d1dab3ab137c5cfab433c436e7f3a6a681f675358b6721dc2850ec7b43aafbda90d13254e4ace6016175bafc1bc28dbf29541639527f246f6c007f41ed1fe6c0329260ce2ecc19395489b5c39d66543c0609120449037f321db95a85be51f1d01a485939390c47b53d82741edd3a5febac17ae6a8a4ca45df32fa6875b4e907d544e529ad26f29b6f923e21acd7964fe739fc1864d72eabe0859ad5e98142ead24c91167fc072a2c2673c7c5bf6da83fc7d662283347388891ca575f275907d06bab987ee5081c2ec808c81c563c902203f8d525243e20b5963967bbbdfa2e8ca9ec8ed703d8dd66c29c8a550c4676044703bc93f969e35f77194412bfb20441bc5e89b5e3238b766940779217af090e0da162e0f95761f63e05a378d0424af4c899a0a68060d9d0e5a035f6ecadbd550961850ee9345111491140810e2eaeff08d8a817700ab4c148c95086ee0663c4261b3cd53f8ab5b5841ba8cb9be8c5ad146d8549f21750be69951fffcca492624e136ed58a5e81cfb01a2147cfc5ca07a0721a38adcd25fed771411c75a5f7ff37457cab19d866b2da0fc45bc77e122143800546bc49f44909042d96bfdc63ac60f09bf4a75e171ece95bfffdfa73b4e509750ec6579996d0c83d59afc88ce9af26715be98cc8e6d05a14188a0fac6af1e96fdebe8f10b994d50ae6e84be257e6392e78d70441bdc5de30a1a4a5cfc7d5637810651fd471e162df2a76571c6d3df3b227e89cebcfec352d0f1af41a29e993af22514960c64dffc72a9819a6092150bd440487108024f0243db54ea68881d1c99b529ab529ebca98ea690046b1e37f6f1110686f6d9a7a725aa115c5e9be4189eba063d28801ef85973d0e9eb15179cb64378b6a5304cce09c82864bfed361ffe1702a9ff8e51a214b584247b967e5bb7f64b955acf25bd1073179776d9c03790d46f828342b90ffa2a45081184c3be0caf7aaf6c354b698e9256421ea3688c6fc18132d4e8d956baf9b821e64a579b1462ed4e990259867899ebddb19a861b24c20c2b0a6c274a064e1d1db366a293673153752847a2a5acc23b573ce0975655b79fe1a1ccb347773e3b1c5bb3028a1508687d17f9bf86ebbecb3086db5ef2559be02a68f1cabb47eec1671e6d3d35b65371fd5487b413fee14691745d0eb260c9008f07b5ce629c6d748c452c3131225f8c7586d99b2122202860f6e73c7def4401919e02e18471d1fd874b7c728296648b5ab571c517dea55be9f9ba65ff2cb349576a76030789dec17102a375ef8d779f2f2ed17be8fc41b84b1ef69ed18cefe28122127f211ee1abaf2a4044a3b1ee653395141da50db99dd3f73f85b5c0158a74f6f9707c7f62beffd70c068db1d6ef686cad7bb859c98049935e73aa4ea76c3225d4f19b333a4290ed0d723c6192034618fe3214306536741e20b066a6b9190972f4c4722534bf760a07e8d3a45dfbc67dbb8a5874332a4fc0e0a0640ca3999b93d34e4d8731957465e213577bade1f9b371540dbba188674ea205db7b244c77b6a772caf69f8b46b7b05439a852232348ef6d437bf7c6c79a4c0520a8ead1f3c00de2a063eb5a1e162f4db1ee94f1fb94f56f62d951da29f6b3018485c4a5c2c5f8573691aa096d8cd2922b66c8b7fc828d49e92a3d648cfa8ef524199b4bf5a8f15693960c5f59862825ccdda554b17e9c35f7e6a24365508f5a23c6ae211e3db71740fa444f92159c8df59c4b073f362cdb658842466efde20e9ba0472e2f682ecb655961ba8ad7575e8b02320ab6fce9188321816968a15789977084409d89b487253c778ef1ea1a1f47c750e37138735bcd58f6956ab7c8dd1c8a7ad35067c0ba0940b3b091c362d3165007df94167f33e0c660cf02ee5d6ed90c8ab4655ed47655d810751dfb2f1e65c890ed24c976bba0b8a998102d660a05325261b38fdfc82ba300683df5d561f73a11fe6f06425d11ef4c6f32e6de2ee6081a9b772e07614866f54e63ccbf7b1d9a1c3701ccbd1d9087241d8e2987203dc798d9431b8ab1fde5ad788db13c2e996a1d21b1559cffe3f7132e1aa83acf6c517d8e8d719076a36c08b2c6afbe5d23dfb9c5272ffb2af2b8febd51946199b90f98e7d49358057fb881f4e8641e0524c3471c0f6bb4cf59bccc7dcf09ab2c2d8a783710c982a35e4512c30e1c19bbfeffd992884ade3dd2a90039ebef2c23ab98fdfaaf6ebf34ae7fcb7fe742798c50a49d740244e65c49b22144c05047061e592b32ab61733a73b55ae04c9f36273dcb2eeb4872e7b7d009d4a54b867613ca0f69c4e7756a48ba7f9539048d495a578b8a76cac198d77aeb6c3a7dd474390f91faea384c94cfd73486ec226319946fd829c3ced266ab11db84176c7f67502b6d50ddf46994d6bf748f118045457e3ad7192f0b03c2bcb2455d018bd0ab1306b473f3761fee60d941637c562cdcda0dd5d5e86af9e95bc22570c07c25d5bbc6f1ce04be9e7bce5f7f095afec8b7c4cd930f9bc106e85eb8620668b52c9d09897460b1c8d74febabd73ff9b730c291c28f1410b442d91c533383ac3f2f41f0bcfebc9121b00015d8c506b2183b7d183751636da9226b795eacb2a1223004ea8a18a805b272384ea239ab86b41c556591fbabb783a6f909d5a181f3563ff1f9abe58cc921c751f3340497d94b1b2c6ced1e3e4345e73879296bfd9dade021b25436d73a3caced5e2ea070824262b5d6877aabfc0e8ecf6fe0000000000000000000000000000000000000000000000000000000000000d172332""")
|
|
),
|
|
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
a15c38cf5d89e1912b7ecbd269ebc6ac156697942a3b2557f5cb631782ee2ebfc52465310ec4700da139935b04ecf37bdb69f0db1edb595256837cacbbfa9188a2a46e985e6b1f7342a1f663244570c6d67dcbcbbf4ea86cfbf98cfccb03d10c2848232ba97093e393ee4db23cdf7791f1adc46d9de05a91791d4702f9ac41bc5002645124910bc6404a1451e130285a025160a629084850d2c205d324401a963003452194488848b61101436ad2940911a36d04a90c1b05708986881a97051249291c22325a948dd1462c19b36d03c74148c08822377263082c6038450c28889bb60da240285130248002685186601ba46942266ec2b484d30206db041203301193183261c42519c2290b0152e4c08dcb2011d1889119a7450b2548cb222e49882c4aa664a13848099851e2026d54b2219c800959381122010924349053224220060859406009274ce1164dcc360cd1b810d94032c24662dca84d43122a11424c180122838811e014060349814830320b132e2285699244895a36504b241102954de2a0109ca6495ac00dd4264a511222049440d3460cca2229e3321108054581902d6036900c826cc8880843000c64384262326d1b408821842dcc264c1399089b48690b3970c1481282142613206252226208389112278c4ab02dd8c2604a240c53a20508c5241cb48514c869d2324a19318a59022459106c02c929e1264ec380009802125b16529844010919410c221098c69012108d20002cc0346e031091222131908020d9c22400278421a98820938804a4894446859c322d82287262940503094aa0c22c20820c22b5855aa42914850c20c680c09661db126221324a19a2694c12025a1291911629122171c0406a49340adaa6091929714bb405e1108e1a448524c420d1244164302c00432acb3024a18225cc0869520024d2186614846dd2b66811c311e22866093225e1b24902c14c131165420070a032715b848cc032281a2068da226a519641e32464882631124952e382910ca06411456c84b24498384923a66488b208e198088a364408288cd01401e41400d282318b00469bb24410432541c668cb4426212910a002260aa8450b262893b6444ab0005a4801e4444e81c830cb8490183931841820813285023951c01824914289c40406c1304054a831d4b61018998d1a368911b765e24465cc1650a41251dc0812e1c00c00b5650b1229c4284104c84588a271e3188cc48608001349d8368280406514b045ae75b458c51bf83c97926488b9319add26f6fdc0a6e6b427d7dba22425aea8bdae2838ce001237c886d3ff6d54cd7c7e3e6af667c824a63e53772c5ec84d83519391755e37b16b80fad2ed94725bdddc3486bafb38e521839fd4ded253cdaad925e61e613f1aab1a448212259009260fb80e0a7d0ffd726c7a40d462a1a3fe2f3e4717429bc8dfb40f332bd927d064ea025e002aa2210eed1a457ab68bc0248b68325537c328af312744d16cbe8ac0b1c9ac1a3a79afb3109aa934f2a21f45b0c5d6171ee1cf71db9940d186be0df7c9d8149aacf1f01d46ae77e41635d2f73202393f73e7b2d14ebd62662c94d65f1320f8802d9486388ecf6b6a93732646c8c043d39dc1b5efa33a72c1fe0bb345598724325d3f921694d0ffe115aca5347f73754d5fa7f601efbc5217827abcbb2ff39bf453398e896218f821cf5a0eaa60048e1329f0ba4db933a2d6aad7e1de6d011db3305a8d6a1893a55de3073a5e4cc381f74805d163f238e81b55cfcd3362b774a3ab1f99823abc8d9801c90d8597a8feb3be962b9552145401b81a4febf84a269bec2fc81e1e77aca7db60f18fe3e42eac782247cb617578863120284bd8874f798fc1c427cd2138a8b5b6fdee8a3b271ce23e45dcb71ab8e63040274338179f60729650a245fe491b25efad8b000b91cf551afeb7cd7ce185de74a2e79a57fbc10f9afa86a869a5261e555a39e814b72bb251277ad9fb91d8d1565b3b0929f043cc4ff692ff0b1dd92530904521a56d6d2916f1516b09d35cb7b03e5b40a1ce80a9077ca6c2159c8eb5b259d5edb6d800463fedf135748de6d2adf32eb6be0637d567ea71acf992512ba6493ce3f318bf7089cbb195526c4b01b43752de84247c38a7a26acc2de492fe300fd19759c47e87b4587e4a6f6c92c3cb78cdd20650ef3d2bbd33388129cc01ea69dcabfcad0bbcab9757cffab601b6058e0424036815cbbd337a7fdf4b5f10f345ef80b3f357dbccdad0c6661adedb7cdb49a796379face0861a1c3ded98b63042bcd670eb19484de9f7bb5219e48eb89011ef3ae9973de2c95c84f6cc92c09b84d32da39ea91b9990f1e5f39a9e0380769d5c0b6434d1a687d6eaa0c199ec2f297f47f160370e22bc8dbcb127ef9e40316fc5d6fe7ae17e0b4a5a606b3b717d2ed49cea5fb905615380ab861e051aa98b6cdba93b5687755ea3c94dca0dd3cf0a23a88b2e13126931afe60949c3fa2ee88b6f33ebdbb1dfe2c4a7b09d154d01edf95f93fa4adb187f8bcbfd736e02357f5bfff2c393ee27fbee56402ffb58aa8fd9cf0d51d6dadbea4ab97057ed0c7308eb93c7734cdd5c1bbdeb97e57ccdeba01a8c808403a4091f92c6f296cab71e159e71b7b7b0b38ace2c4129f8d2851a8ed353cb2eba0853e2d3b80f39646a6566ab1294eda5f39c211a130d6fd5fa66372c96cad36c4664fd5b6c43ace7913c4babfc343dc99b87d67e1d4644524e5f62573b44cfe62fb9718be0ebbfe9c2924c0dff234898c5378565bee676ec0cbe2b50abf191ed15f3125987af4e0d78a19e5208f1cbc8c73d8be34be57c373aade97ec18dbf4dbbfc06b976261cf9b1e0395997eb8773a15dab297f71afe40d8baec46a96143d8104b7385669f23d1497f99a525f72a278ae4ef39add1ac5ae5c92c1fad9473229779cfb9440a2412ff4ca5ed6c2abfbedd16bc9585c0900861464c8e489089102abb0e585352fff291fd6a52aaa187f4d977b6fe3d3429c9d46d79e21508e400732d318cfccebfa1f6f5fb0f2063179cf1df2bb59323efa12766e81a572ab221a06e5a043808d43a2275d9d51013f91a2825e084bf9dd5e1e3c2ddd5c149c0fb66f80b2c90dc09d132bf834156e605f33f0091983d600fea8cb5710414f60536a3f9efba209b3eb06b597a5eb6af3f80f92b12c9ad310dfd1d7a3e3cc23444542d351a3d4b6d08be61ff43756bcdadef51bd4aa335a174073ddc551b661ee1c211866a52bd0ca197c72078803325956d78dd38a9247676890f46a1a38630048d266e059df2b9051b17f8c453c532a818429296bd71c91c446142313e399d08447610e941a9bc7d225770a075a955d8ae027ae0bf880862ad81b3d2b6cdd9839a7bc9da8ecfd6c6d56140f0cdbc8fff13d8fdfbd8ba47d93fdd75df792e8428460523fdcfae6e4419f38e797bb06ddfa896576a4693bb8046bb27042f3899cb36da3f8650828b99b6945ffd6c7e31595ef679a1277be4e627abe37216515afa2b4599b7cff8d493601abf2bf09ae9df92a04d34881ed1efb5bfcd7a7e1afcc1e40b5716b3cd36d98c91730b795df899c5c8c26a7d74cfa8b1aa90c1648"""),
|
|
TestUtils.hexDecode("""
|
|
22AA98C685E1552B525B4302C943037F668279C224B6270DCAF2B06C4F4AB1254C48DE253829FE6DFFA9CB6BB294F054711BAE3FBACFB900CFD1F0844E55D51EC6F697B998759B14C13392DDB6F7DEBA77FFC22468781CE402"""),
|
|
TestUtils.hexDecode("""
|
|
5129dae7c620ef4c5d6b0e0f7b43acd806adc035cfb3901e162be14f2371bba72674649e2004b4d055ab533316dc520afa8c80e5285f40f7ea4ef876e68b0aa4a559ec2363032efe5fd5a1d5050be8221c24b23c403ccf71bde5410b7e5ded038255dfca9439992fddc4fddf96654c78098c84e0182d954e204510bc7e5635ac29cfef21042bd52dde771a500099c75311c8657c5fc5bf303b7769ce8c2de7548b388224e727505c42e6bb69d48d845d9a43e845e7305a098657385307ab23c6bdc70de07868ecc1470b98e2da98fde4636af76fddbde6af2b60b4f27e38d4a86bed60e6f995533261cf91a618c07df0f659561f61bbbd70dd2b020cb04ac1fb6ee1a31ee4f4ae5d0bc2af22d60701700a44f2e8d11b72f4d03b3a96e2fa491e6e61f8dfd3ca678e4eedaac1e6bf418cc4a34b24bddfce3975d84740f7fb92ac2dd7aea450f91bd6ced924f7204754026f649868ccb103100b79d3ab2fdd2f916a76a6212bc583f1f5e541dfbbfb10234681c42ad56a95331c90f5e8b3be82a5b82ed4292094d9d60569fa760628e082740bb2da0a14b2516dda632c007ae3089a2068d2ef48b3f713999a699ab180ca99d7c49c4a0f40b908dc51d9a17db286721f8541839d6acb5eaefcaba5b1ba21e5ace4be0924eb0246e4d195a6eea6e962bb07bef9001a23dc0be7497a1ac79da047ed45b4c38196100b7ce06f466df295655076d14308d94d55103d36799a0683573768bb6baac4a10bd3120e9d47d7798121ab46521d7de8d1c3cd9618347d8947c47676c547231e5be77153f02a3eccaa99a75230e45fd4c1e6a6f951d1a5e6c3be098caf4a16ea3ee88473b1a8d91c0886685409ba9a099bbc0438fedd280f459de3c9c57c92609a865add4cfe76eae9af088680f92a68ab78765f7ad0b95aadfc0a91e175f07ab1f0887b1f448530866f002fc089a63a2e2d33ba63ca1985737ab0b9a73d23af11420d62a8b619dfec0830cf62757ae7f0402a4c0f209d03ed8f1731db5079dc5671c19c5bef712d34479b7f879dbe694e1bfbabc9c05109c615be763dd9ff5ffba888f88b62128b09475527d12203ae67f1ee8da83678b8a4b7b16f7700f919874eaaca48c10cef50a0f447baa17dd19eda59a1f71ad1cdc88e91fd91424e8c668fc93690b9b5914db40ba677a3c71a6d2cd05f42321463c12d55de1a717f69c132dc35e3bddfc23064ee2183e175e1ead1d075c7c1115c8cab91677ad6b483d7151010a7314ad558eafc3128c2dd590aa4e32e8c86cf769ff58ca5f37ee3a4ca0c9f9b2c4a9cdf2a8ae52d1d09110245a8884ac52c597e97b0b0304ee706795abed33f2f1885973253da8728742b54d4e908536c93ee11c1cc36da21d8ed4956255c0a28262baf50ff4a8df767e71a2d920f53b25084ed2cd8069fd13c0d1ef81f6989c0e93609038e9c6174d2a9333b3676ba24886917f32b7316d45dc6e99497f813b599d0bacc432ede0584c654551d3217c63911654b21e0631a5f7abf66d48b2cebff62cbf41ded241a59816fa9ba99cb29a9d000873fff81c689ee95bb9fd31a31863e1bf08fae8b27169c7705344b7085c917bc4434c9bcbaa27423f634233f75b82ebc7adb307f6cc3310ba95478572820973732f4cd3d1f749b728605ffdf23472810d01f6f9580b3852a5c2c7be4f93615960541eb2dc4d5557dffa8646d916370f89e09947e4e14092073357283fff846bd6b83d81092639de3b6ee260770b21275491a6300c12d5ad261f19d8081c9a659bb3f45cff2dc6c04313c7f3fb1b2d4ca96a603259310628356cab1431bee201ef7181f0f9d35e13b6f89a3698a56c3fe08a76418b6ea10b70bb2c0649f7b506f4b15a2578902d6df4065d4c3e79ed26a0d965e97b5ccb47110cf3317b7d90abcc9c7567ad4f2c11c5ca6617e643ee55096894c793d18adcce74c19620b112ab80152984de200d4e4a6ee29ce266b47d662accbb42fc74e7e088138faeb06f32e469d019979cf0b55aec3f420f97029852379417498605cd513fae94c5a5bdf3eec29c54634b94c6a96b0087ef2c8b2e32ad49144a70d27026a5900f9bde658645190ad83583ce8d4a174bf3956f3a581d7e4ee013a4263172d09b3e888299a06a0dd4cdd7e2a118fd753791afd91e0acc9eb1e4d3322feb169e47ac2e9e3e47908f293cb7988387c956806bc4e5bb9f65a84cdf2df9376c2eaf3ebae6a9a710da2083af685a8de79e9e27143c6894a847aa9134cb184b7dc7028b664246dda558891bdbcff3af3a5e0ca8ed06c1402d31cb5afca6260f4cae55fb6a6781768e6a1fbeedaaaee620ec0b7b964a38bf46651de29e4ad7247359df1cf4e50e71f691b73092a2f75f4669a145ffc5a51d51187f42dba767d28a39800789c88752be0c0e0b5aa2aeb3737f1028db4fba59dfba974f9ed8734a57f1f2db29d14f708cb83fbea9e4889f6bfd6f09d714ffe825056215be601bb8b6168d787a6d17335b87986913ff6aee38ad38f571435195b439cd82930a3386ba6e304b72fb5cf04b1ad8d64d8334f5ce0d14718232c613cc12ac1341706f829fa50a5c3010f8d5daf04c3bfde5ba88fc873a2e018d274bcbe85a9559eb224f6c23df124263772aa1262d9932ab813f50317bd7d4a6b0cfc207d8dad53d193d7330c9330d9bf866047237df5baedc69ff546308d2547b5c7f9e0909ff97da474bd3075413b94cf97fe331201f2cb565438182f13acb95529fa6cbd18ef92dab1bd8522f332ab5f375fcfbe01a83e38eef6381a032f9adb60b59e5eb54786f5dff4f5e003b79c7e119663c38e7e9baa0199d3ba32235166936a850c57227b1a16561ee407f7bf09cf6671ce0d0ed0f9d7f916a0ff7f41d8adff8c42b8f4640f1488841cd3cc1e38918dcadd752318080b4f15e58dc7f79aedf3805e1cffc25bb01591f15f54155c59a798a8bb9d5247eeb5d9bbb3abfd65f0bb65f119dc05cc0105475fed4f006e61a1864a29b53770e5b3cae2fa13b5a0d1b05ab9db868a7b1349c9b31d1a1abc19250be50627e8f7283af7d12c57a1c110cbf4acaf5990621d5c04729d475a97cf21c5fb252f5f1514b8d3090cf6e4e22a0146fce697d88d0637b3a60e77b9cbf527c4269adebd5eaddf12633c53f1ff09d869a846d3121371aca8252a5ca1f4fb1b7afbbb3256e53a9f25a3dfbb3a95e9beb67711d27689a28aac998b3129861d9acc72122d43c300bd58d934bd9aaff2ebb55268b94fe7013aa8670a89b19e1cc5d201ce2e73f6bcd8649a18f8caf1af021d374570728690a6cff0f3fb04050a0e17344e7483879798adbfd2ec112325282a3b5d6d72868c95999da4a7c7cacf141a1e2c5e657d7f939ca1a4f3000000000000000000000000000000000000000d1d303d""")
|
|
),
|
|
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
85c8fae58f6c8a7690e2098cdcb1e487e83a1ff669b31724113a0d9f796a68c860945d21c640c54b863814c3ef5a180dca61d3cd000d610ac6b0e25ca8b73b33df1d991902efee947777975b942d55d9af67fa96b7e45dab6fd52248361f3197b26baf40426b4e05c81d1138e78a7c907e39f7c05d0f3870b4a0cc9ab408d0052298105b8040e3c028142926488888a2a4101b2081d14266a1404c11032e5c1864a10030dc144c012509588604c9200403152284204e99a4119392111ca66cdac0100a086a0c086ce326261398489418889ca8715b262d4090881b2944e238065a9891c1300944262643a888a04826da3070ca40464a8851481866da28468a346d1bc48599a4700c305110b60088266560465120180e59927091a685c346528996309430320a38118a94714b340454108904326a09944ca2c640942492509270c0926090366a403832098648c032801908646394291416685c822da2366d0428841cb2501c99218114041b0981c2104a9c02040ba05122236e1410045a304419460a10184ecaa470e2180d81022a04186122a241891828ccc82c04212d110186d3186880b8651c335211c34499a66903a50c840062d3a23043440602c56108357110234121c561502828e4480221281084c84d93948002a32521254c22b730e19048914065c4440408118e0290892407211820119b828ce3205299b00524c78821a61150c20d80a650110012cc262aa4244642126543000d8242288c38016124601b072d0143088c2450a018241b212ddb4032cc94412416504b14404306061ac54544b600e1404218b141220405432844d8c641930652018881c2a81124b405d39821211450db065211c26cd41621631884c0b06c9c366da1240913134558a00818409241222452280120838d0b22449344210910904392715bb02922252a04c38c8a10904c047264484e01952122994c0a2166d8326a211522019540611866a4a80022b70dcab00d64208a1c28841420891c18124934320a330a0420804332921b476c61800da2a80d14c8711c4844c3966512900c08093243a08910318062144c8b948d931648439684c206288ab810da202d1b384e4b364e4b2461da886d6424691c348e8b98115218859b2669d04800a2449089240e9302121b4765a3c8841432040c8808649020023428a2c2049b461294166113106559422258144d500408221401e11822d4b210dc482c1a064ecc900400210ce40632113530040620d8d109619eb9c8ab718f85d404caf02e2be1703a4b04070f4d1261a153069f796c9295b1f6c405c47034bfa4fdbf2840a939322858cee0056ea8d7ccbe8c58dfce601cbd113bf5e8213fa32a73f07430012ac8ceff89c87907f6101e21c8dd4617a83509cbec27c7be57f9394e067489755087407fa69791c3c2aebeebebbbf43e8345b772b451d213135a0572316f52008fe4ef5812bc0c1d78e7660986b337eb896324598b19de9d6d3f7a2d670223fdd4ad7f41e46ccae6955132bd34723dc8fcc37ca79b9b8111f1461731214a158ac65a2a2ea9cd5a856b6713a1e07107f6b11d38320d4e51c1144e91cfbc89dbf4fc56023da26530e7614ab1c7c9eb5e2491c1f2a0abcff2e4d4fd3c1e39b061d390a60b6adb103d1ff198e70f945018cce7af3c25e58935b340a94423171cf610c57ffa775172c0fd3d4fe30c33c894e8b634f435d47300751def4d8f20aba4b2ecf649e52ca40562cb7807e5f43718567fdf09e92d444d0bef10961e4141faba4ae1359c49c0426c6f05b89c93270b1cd8dfe77fa865940d5f2e33ff2aaea1da3165e3cc38ab8c3149079ff747edad263a45f5a0dd55de409b611c2da6fe5b0ce3740064e5c9dc65ed9facb892e970af44646287812611539813aac695a1e0466a12c6c0912c492270e9f19728c9d8b68dca842d462ad41d914f8acb729e37e43693c39db2057c457b12ea78e6c4cabfd0cf14089523a60a5a223b228f8c64163b003e6af0026a7cc947856bbbf38ba43226e4857bab84d143477a40bbe194ac92ab0bf2282fdee0798a5827e2d82662e5744333ae9fd9063310a1c5f77438789e7cfc96c3ae961cda792d572d07adfa814ea068df14782f5dcaf3173a5246250d0ee9b4fcf3b145f2eb3e3a4371228af90f7737053496307704db71ee0eed602ca596a994a7de34ccaaf15d987afad5318476b826051c482965ced549f49ff07fad9001ff081fd49d903e18cffc6c824d60613bc4e8433f3eefb0ec666ce7d8a0f8decc80139c77b18e60c2d8bcbcb4060cad940665f9cebb9537ef55c18fdd474da07b3333e0cc6144f9069fe6496da1f9c60eda3ae7ffaa851d518634f8e80fe1fed6ab797289ef2d36910a17e3e825f7fd91629c411b7747d4e64b751540321c1b83e5146da1cb94bed6c063e26522695bd167d0fa5c455c1d3b7544b1b3ae6b5a080bd140c2709caf4394207ff5a08ea14739af0199328f5ce29fe31314eb169c6569d0197570ba2cc9eb6519d70d451efd270ea6caec116f43c5295d6504422b0efc8e16740626239fd20b815af715ebfc8e552737f17fade233f9674ab47d35615518b17d2b5f8677245295d6d79520ca1bb2a4ef675fae5cf719c99e86af39879c576dd3092f6a13471b248b10e3d19ca8257a4f2b73ae373f37fbd7eb79b97e41820dd8d048bf77d6487576aa0984c399b8eb247a0a416a50f615ad80fab612b532a2126d47043abd20198c49894b9a265e87ec93b519793fc363f2a1028123bd72a25953e2402b7bb6912945cf8b540821e173c2a606c448707f3b7a6a2ed692cf87588e26e08a6667cf281638a1d6e3858d96563b29058988ee461cf1f1895cca095f116b7cb35cc1b49ea3f94189efb5ed82e1d52574d269b4370cc235a3edfd4ce0d4e945b3cc5f316740954be77796d54a12b1be196706639de8851fe42643a22ed1b8c640dfe5fbcc15b402c7ce42d4038be2a0f8fe5a340a5492cd65ee3af3a03ed1e25452663d195ac43d696eddd08d47a64c63fb8572edce217f894917f30035c5c8c1065a2ca39a73f7c3172e7c0b4387cbae9123437b0c55ce5401b4a965362ddc86b4ff3e3b433ab15cb2edabe5aedfb8b9bff2e4658c875755fdd0d0a615499ff59adae936f0f04e086f9adc29e47b7e4fa8b94828df077a73d8a3651a23efd8def526e1a8e0a8a8c1ea4abc5983ec20ee7c530269fb1f23554d79092c24c4bfbaa7bd60e271b4fff69f48d3ddd4ddf94ce3808135034cbc78a2cd31488a4a5e25a81bd41edc5999dc1fc4767c9f82144934eb0233044407becd09e0aa0e0d5b531c1c010ca35b97da6cb9709b78cc0d96499cf229862840bb1d03f561addbb3f8f0f1e6d5c8de369dff715e57d21cd095a316a640b6b077c4aa6149167f11412a42cac3da1a25464752e24e0d1047c361b2ee9b6e6ccc58a683cb681eb116df43c9133f4ad39d4377b38b89b2a1abd6505044860e8ddea6332e79db6436fbbcd7f94ea293dec7f46e6c8096a127db1bc7f65ef2ceeb372fc66c7d8ccdc777d3d88cd1d65d5110a9b197d17ff1f2bc8515206346825795cc3386c9723be137b2d2a9479d"""),
|
|
TestUtils.hexDecode("""
|
|
0B0F604B53752973C4A72EF940C3FBA910AA9AF2916D673D69C4AE4DE92A237F271E84921C309B59B92E795BD26C5C015EC5176155DDAE8FA17D7BEFCEE3A23E0201669CC55A6F270CF0D03FFC09BBE4B47D318B6926808EBB49EC8B57A849896E76648D51117E8F518088D66B69D88E09D298186C10B5678EB8AE43E9C0A794C63CA9D597C4B74C959E9C1E8E0F46698CD64CFF3C0FC6174CFC51095E142DED9F16E5B2D3656555D2D42832280164E0C10C5817AE47ABACEE7C3BFD198A21BDD1C420F2EF0776E5EEFA46E8BCB49388FA6B937FD1FEB2BF09D5B9494A534F19BDE4E7BB8A5E4C558C2A166006B481A7C5865069A3DEA2B880AA503B5C020F045A4D9C3E5C590E4AD5375E74B732695A11164B5A57AA665922431498A9218CEB9ECD92700E92BD11E0A8140938C4FB9543FA5DE8EDADD1EDBDAAD11A6AEFF2EA409638B2C7AD546EFE390729982304F35D7F889C0CCC81D67F5A1D6201BC4BE8D1AD2D3CB85815CB9669B56F845148DA0DD2D6B5D7C4986DD3F10BDC78EAD8B4A88B7AE1FE11C634355F60A43A55C88B37954CDA71F4744C8E2B4D7F8D4A2BF60EF0C44CDC7F7059AC48A94B10279921709827A3E1E7A46DD857616E6B737CDFAB71CBD47639245E392DC116614CA3F099B8F2092AD667DAC43B8501DEA9876E5E0B98B41733DA63A2517A49C169A95E583F18F2E1DAEB4425E307509CC6B0B376827F0BAAFC2FB2ABD4E4151A8DBDCB8C22C78F5DFEF0DD1743B047E58537866795D67E35358020CF75F0D2B80287D62AECD6D34D18494D01B4412B1CFF279CA69C18A263E7B862F514A7A64BF192586ECD460D22DD2280373A66ED987635761C3CC34A5BF6A370F9F8B16F98808767A2D9A1517544D869E674980758B15BA7844027D3593432101FBC51FA4709F4D041BE9FF31DB9B7430F1D7F8E06C22C4BF3F8798D50C92641CDBF0B2C88E88666029FC985FD4E9FFDCD779C7F7600D02AE8D9E3CE6FF76F0B449C41BDB785BBAC9CF58ED7ED1525D7C7E885C0D46ADD0F7CC3B14394235B9176B69A222567E6533870EA540F4DED9A1D78F2CB89E6C1DEBE67249ED8F31C87499E24DAB0434FB9B40EA695499C76A1618A37B1AAA5309A914B6574209A61DE0633F086EE4F2455299C70B981532A23DC453939D223BA3A25122AD498795624C727E973C052E69AC40AD465DF55ADBB20FEEE76BF2906EFA7B0D9D5EAE860FE02500E2E0F4A21CABCF963D91262EAFEE814BDF9775874D656F8BDE11DA29327E3E7C7C95395D0DDF766CF34005CE86592F6787D1044E5CA1962C4DF2719308B2D6335FAC77DF46092CD3D5D228E381BD7E5FB4D2EC18B19E18E4748F662AB34C3F2C33877BF4A8D43A63F9B5DC75861AABB42D34EF37EF19CADBA110A3807D1699B247BEFE3D61AB84941ACB227C79CA05180FD3415D0E76EB31B4DD903D78553F2C22563F9B22BB876E81EDAECA4B8FB9415E2BD5AC32CC08775A20E8F90A1681C9957DFC330B6343E58F841906EE3562ADD6AA53FA1EC4AA2E894AFE769116E29AF49D0FBE2D8FEBA215E470ECEA81B258977A0FFCB17666953C29B2F70559DA00610398A08E0A17D69705707569D6484C4203C06B17439E9D4D9DB8456682A79659DAB332DDF45C67E527304013A422E46F2989BCF033DB143676A4EA720D0DD75584298CBAA765CBB0B09EF267D503F2782A427459FD2A83676DEA43C01D288429A82527A69B1EB19DD3BA1AB7428220BA74F79A81377F7ABBC027D96903AF6ADB4644E9F5CE676FC4D3ABD977D6438F4743476F77F3DA6E822AE61E0AD38549BD21E0FAC1C963F1D47F9E6BA6019591DE22BCEE5D5C9CBC4106A369C04BDF633F41EB1D6821B1F43194CC14B02B753584A659EA46C49B983F592C83BD959690845E872B471A38381CF3B2E8F4DC157D9A60FF56EC63B1C66D2227A069CEE7E48DB0E0D5991F96740D364DF89B08BA67098652958A14516534103ADD9E457E6AFC4DE1AF332EF3ECF6897B3DC8E5D6980FC5E5D829D4326F6023F48CFC9D0D787416EE61A0BA3CFF5E7C69BC83B18928AD277AABBDE271EABF8269701E526960460EEF521E83CF7A61A3CAABBEE1F1C99402EF55FD438753790CF56034AEA3292828AE858B2D3B9C8D77FF4545FAE7B4F2AE1EB17B8198F4846A8F4A105CE250F900969696E477B2C46AE786481BCDF85715BD270F9C29BECF4579F2DFFFF7750E375113E33ECABFC52E4DA5405849FE5D5F4A17C1F0984A1479D561943CD1120037EE821A2B57A12D7F1797E64E38A4B71E2FB10207ACECB96B3F3ADFF82EDCB633E388FCF11C8D105C1F6EDD41B553B4B559C3199745F3B0EB7326B867FD4CEDF4E9ABA1FD6A10E1494847FB5DC83C91F7A2DD351CD1AFDF95865701FDC658A41ACCA58E574B67929EEFEB371589374285148EB09157AA9A67F2FD54FCAFC1248F6D84951AB1A676637E9CB76C17C282DB53B1BEFAD8019F51B0400DC1CB012B97575ED81C129636C38998A2E6FC5AB7F0BF1FFDDB588BDE4590A7A0F879FFFC1183A3C6CFB341FB518D0786A6473FF9614877B1B722AF4B2E1E9B5E0DE7C3DB004EFA16F5CBF07870D7208A93A9FCE0EEB598CC54F04B1BAAA992C02BB2D27217AB20A3381EBEFA04CCB1F23E59E4B0DEC700E069DB7620E22235A4C5F54522D96ED4785ADBA7FF95F2A7DB212D3DD05E58C560E5ABD0EC238B7ED01E54ECACA7D32F7C2A3309A437E68C3AC7A9BC51025409A2A1ED05F8DB0EBB647FEFE6222D6F74DD8E4034580B675DEBA4BBFADEFFEECFF4771A0C1CB0ADCC6E9B050B85D230F6B288AC3FC24880CCBDF9C6A6976D46797B75B8532411FD89BE027CD8C81547B24B535825695A35BCDA4E2E0A3A6BCEDB73DD10DD847C4A0AAE059A07F56B0ADC0401026648BA469C534CDF6E2CAB8F581A7233D2F15BB35DC990EFBFE688F9B9AC5AA5C9B3E95DA7B0122947DA03AB9DB58090FF14B736B9CAC65F966206AE7C84B971D83944D8AB61589A28058E14193751B685058E632E32EF1E8C94BF005A3A2EC5EE2CE2FF6C05A67D87E56998E952E4557250E8AB5A979ECB28B0EE41DEE07F919E67670D9CC4077DB0D90ACCFE17CF6AE69DE0C9DBCD3D552A7FB37383574692A267B0A8BDCAF3532AB47887FCC94AEC3461A9257322095F1024C880273222295107864903F3DC8FB353FBE51C4D89F30FEAA5A570979A38B0B4AC9A4AB6B7169984C576BC4AD6DA1719CD0D5ABA03BCBF1336DE48CBBE167E4293DADDE3997061469F200A391646C8FE712EBE087B448F7A7DE437186D38A4CFBFC2919FC888487B15C60E93373D076DF6A60452E62E05256AA66BD1FB771CADB331661DB4BFA47581A4367069FA20E9C6229F79D6680125D0464F7CFDCA1F5C46688D5816CD90862FDABAE753E56BAA1369AC1AD3530630998CEB4545C4404C8B9A65D5A43443624D62DCEC989AA2CB8B85414E06AAE6BC4E219C5A3FDDF8FCC75381F6A0F73F54A7A2B5BA0F546235E71B233EC107900D8116CCD398FB14F32CEC310AC089D6BEC40255A6A877C30B05355544D115E8F85E428087A5F3670D596E31D25F676B3C6FF444AA0FFE5011AE62D6FFF86E615EBE80622BB646A318BC65950889616DEC254DB332649788C07E46CE590C2362EE66BB33BD43807A1336B94198BECE586CBBE3136B5CC809F24DB5BC3069E9C1FDFE53C6D1DE29DF48A9000A7E89D6862A773832DE2151423D9D11D722D923233137DB6F34F8DFA4EEC134BC9EF5A70424D895638D1B09D95D98CFA17308908D65AF00259DFB5ECFEAC55DD7FAAEEAFD4E94EFB36698D2315D795A93B8BA6A3CA93F6B79F2E599149BFBFC6F5C5742A83C886BDD4539BCC128F30B370FFABBE724AA3F3D571785AA6234FD2359FB3468A06A8E74918EE6E87CB29178900B49891F565A80BFF302BAFD0D5C2C123973BA7B9B425973CB3D7F2AFF3059D272A7CE611F5CDDB5AFF3E2B4024FDF0E01D7AD1C63FB47D9BA986C341030B3E5C6CD3CDC6A3DF9D6901E76D31C141C37619F5BB316209FAF8428AF19236DD426D70EC81E77309D5D9AC33CF3AACC0259A19F91E4579AE49EEBA41CF79B9499CD1211AF1E6DCDC70383A35E0ABF7B53A1203AADCD3AE638862D35EC4E441100E8CDEC7F0E6D22845F6CDCDA801111C4C7F261189C7D67B981101C40F21D33D05E336F1C7443560238C72B34E47758927E37F972247F4457EA60B2546F6B5B7A91B151E8B3800CC1748587E0D5421A43648BBC5D87C591B01C229C8104CA87C0B7F0770ECABD1E2A858147B62F607A86E1C71EF73C036B18C01CA5C1BA8242BC4BB7414FC90C0A8372F860F2EE51DCC1E457135776C377F940400AC5309112E6742617FC226EDDF51E95CAB40CAB58CAE1E662DD78C6E253B373BE970129193DAC7DAE372CBEA847248C2E69273B7CFEE70BEE59DECF64126D44BACAB5F2813CFEE1EF89AA3FD6D030319CDCE94FA86E4E64998266082F8BF74877038ED888C16907A8DF99BB53809E54520E4B5B6AD44849A33EC3FA44A7B179350DB07524823FE8384413F0A7E1936D8CAAAFE1052C462778B36AB8A9A14BCCC0319CF6EE2AFF01EF5077A10BC0FD0DF76D9B806481BAD1F49EA013942F38BFE52FB194EF8ACB283B1462BFFE4AC618D6FEE7E25130EC71D68C81A9532A16520075EBC1E9C3FCDF5FFCC150F3815E8647F34DAA814935D0E1AB68EC6A1B14FC7566415CC11E0C14A9693B8711DE2D3F78EBC468269BC851D2ACDFF5E8A6388B73E33F20C0C7621C6B644649AB088DC191418292A698EFA4871224232A7788EFA2D69F9F9FBE80FB8E6B0106405F6406D00A6D6185EB521372CEDF51C2E0876C7A86A90F1F5DCC0EB3187DF8BC62736663F713A1D403665BD5AEFD6BCD3413FC63CD68B3C5C7FDE3AC4164FC3737C2703AAC85E6ECEB29E34A6ED70D4178402814B5207ED2AE12E9DE009D0DE6A0BABCBC4ED41D5C28B1943C4B61D8B1DBF4395F5BACE1E47ECF0EB9E21F9E7F663EAC3788E935A1AF73B19714ED91BCCCDBEDAF1C74155CF235A58485BCDFEA58A929ED1E959DC99345C36109E42A14438466B1F9E728801BCADD16B2D8F762E4BB8B3F01E531339DE79634F43117DF5C585D7D2FB4A5D3E82BC25FD92BB1298AC79211B3866CA1019666AFCB10BBEE1AB63263F2823A86DD3EC57E8632C9F4975155A01F22859EBC400F5A3B8302ADAA5892A320487AD077B144392528F100F0A222DDCE5636AD5962AC6D62A2382167EA977743CAA6BA2F140655DFDEF168BD620C73A47A8831DFD66DC6F2A9F47E0724081681BE62FD15C74846980683B729AF1757203F457FF12925B6B7BC81775A9E5C53862B07D4B93CB2E9FA896AF58D258384115F1C63779E4189832C29C8B142DFF30C00DCAD2328A63C92CD1E42B2A8D2E18542BA3A81686452C83AFD5F6955A708CC1DAE500718C6DB89ADCBEBF119C4707B931E685BAC00AA60E3B5F9F42FDA6EA90F5C77295E84A3AB05D69212C5368E24F18F43B450181884D7AE8BBC61E1603FDEB13797F9620AD6C2B863C495821F7F726BD5801A3D5A36F4609B595B7653799B3794E4A60090D71F5DE1AA5F0CF562F7E722C55AFB676395ED988A491A34B462B2D18AF517569531308B8190F0148CFAD463802AC62C6CB289FC0C95C207AADF82AA7399E0476B774D9B876829ED91EA3E5C40B504370D266B7B3C72DDE2CCB7F3AB8E820ECB5715289451D352D83DB67EEA889EBF9E8B012C8265376C841BAF6EDA4067A400D4C6FB00539F3839A8D0B29906F9923B9244132282E38242257C339A0D0BA8F05F75D41ADA51E29E33BF65F78981F04F397BD5F9580376A8D1C552363D6BE90EC83C2AF748CBB7783D6B26098C641777A260F5F60A712C7A7D1CE681CA1FF969B8F25B90F9A2B03F71E06A848DF3C5C8571C5626D5A1F123DD14A9F90B3958A7EFB3FD522C7E83F897CBA80B95099F1705E1CB22C7E91DB644880F7DAB480B29FC0F8E1D0ADBAA123F1E1FE36835ABEC924531065354B77DC1082DD690B316A7BF104140F6316C46E81E777F56EECE625EA030C1FFBA3A4D40745E77129230A69D76C226A80A8CD31720B08D9207F22F8F3068C169B41E7136F94B73047377A8AC0987490E4DA2B7619A760E3B61369BF762FA9A3ADCB014CFD0644AB1FE6D8D3EFBFEC893E98289DA93AE19D8DE41AB33FD717200B6949AD21B3290C77D5B1FA44EEC7D0C6A9978D50B40DF77823FF2613BC80D0E11DC2B790B332D5267851B6315AC08D0A2D6FC0A8F93DCD20DA6054894F84C88CE254057CD2FE36693F868D812DD1D978897597840CB336223F8A8EEA9C15AC05D3E40333391680C4F4CD5C2F600CAA684BF09EFC8A9B71E6883E9353C22B379BB6ED8ED83A2468287121207D9ABF61D2DD5116D3B163F262BD3D57A23EF2E6154BF6EEC1DF88B961C4505F7CFD2E23E0E0D245A9418292A5AE6E60F3852D78D19E1EACBE9F42A522FA57554308A1D01E31DDCFB7C38534F7B48E0384AAB4B81A93681ECE4C55BEB089092E757A4633B2F30BA83E470B3ABDEDF9135DF22E2B29CCD0893C54C329DA1B16C2FE4221F1C7EBF6B3D6DE84EA1DA57392762FD9C64C0771966B0E1FA9A6E286C23128DF317F704237B97A339A623C985BFD6A0C60DE48EBDD73A0610A22B02D0978E626B50171FC8390B80F37E5E536CC184259D4ECFFA958DEE1A27CF3D2EFC9B218809909B19D573EF86087A1C9BE161C54DD1279E022F98030669FC93A7BF03FB101A3FB5321F654D2B40EF8298844806BB66EC32F7AB3BC7BED2AA7F22AF20759B12A0E3F82D3C3A141F393DE746D5A0D91F32D8249F0DB0FE37D27E49795C648EC6D96E352115FE4F10D1F56C39FF9140E3E87F13AF3C6480D6150E1B7B4AE614A577D6E81694C19E468761039E970335FDE9945F6119F6ADC184C9F2A434C681D593F34D258F2A8847E02DA5EA2605A007B25031DCCBA8A8C50C77411D197E742D4B3994471AE84E2B612B09B2BBAA38C5E71C22A8E3DD1F284A681DDD45E962F9D061846EDB9713D4F925A9DAC0E32D2A4496F68C68448EDFA87FDE3ECD47411AF5DA95D8C48D5CED988AFD72BCB7A81896EB1496F468D4664A58EC3874BC6FF6A85692790BB405592DFAF53CBAC93884A842EB2D3DE9619843919CD9D68AD89DC7A84BE54C406B8208428066011807D722C2B34D4A279EE43BDEB967360D9BAE50F654B2A06B576B803544DCDDAD670CF8D2D7723929842C6AFC4093BBFBB75D1F5E03682500AA0A34FC66CE4409D08C726552ED5ABB0C646E89B35A659C67F6F398D6BE39D9725BB0322D458DE2A62E46B62013F2BAE5E60C3D41975C6A4C6231F4B0EA2827329279459840911891B0111FB4B1FE99FBB482FED56C7BFBA15882CE5E2FA2C73E0B682EADEE6F68E4E1A9CD92FDC2CF30902453A16622AAB1273407B985FA4B7DB40D87812F2A10183464F8173D22D5603C44586B107B4B82E94DD80E87AD49E9C0FAB5C3330B74E89F742CA1A5940F0F329F56DFD40C6869D0BA8CA412AF9C5116ADBB3C22080F93142C7778D52C4D75F1EABE13FE50877C26D7DB429E991506ECF1DDF30A00F9E0B355306B889F41BBFD1B4D27B67952E4A0B53D1BF8B2E84497F00826D84A913F02649D5145383163F3C3F586EDAD06F518B64D9B300C4540A67593B9F3358FF2A22AC4BD7E7B9AEE507D184E039ECA3BBA0B5C584D3359D7121BCCE01691E11C120925A7D8B100751E8ADE99D3676C7355BA4BE451920BC7D2AD6E8EF0A9693F16FBB570122FE5F5FFBDFA490B3C84809ACD898FC0F807C77937C7CEB6F03308D3E9C657F80730EF3A1CEC6959850FAA6C158F23B23D28ED53BD77531F1012DC1753CE1AD6E0A629E14BCCE9D56B74E09AD6EEC9DC4A5C92049D48AE21222AF706B1C4DE65AA814AEF5B7E1EDF2D8A9C5B98853A17199DDC3233C5583B95756F5A9C175FF7D0891010F5D36A268ED5C9F58433A69185931E11BCBEEECAA240C2C5A4ADB4E770109F3F16CFAA37AF98E1228FFA7C584B13F850FED0187FB836E0A01B19CF700849EFF09BE1A57DE41CE1D52EA6F182E0DDDF741DBD2150113B10CC3D9E44917E0FD9717D6D361A88060E202039AAD8F31E4E6FBB4D7FD1BB5D6DC20C3D83F23D120EC98FF4912F3D9AB18D8EECBD7EFD1CF9B19081B38CD959660E8C63A539939D0CEDA897F5ECDFDEE16ECA492B216BEA35A167178F4A0FB76175D160FE2EF97BD6BA0E296922CE60D91FCBB3343ADF477F8A92AEB56A471B0711CAC45DA8EEBD21FE83FA68EB74C8502C81C65506C92C4A3F19ECDC2B7A5AB47704DDFB2E8D5AE620CA0D67197699677EDA3FC4FB821BFFB5F2DB03D4DDEC0BEB13EF84EC372A5C56C1E712C8D23D1A2DB1BA077645C85689CA2258E9B1B807DCC6394680B72938E1B61AC3E8A5B9E84BB4B58CE5C8C2246A604C05701C026185CFB872BA78CEE33EAFD0486A22C6D5CF9264EC134DD79548F3CF5FAA67D8B1FE74F6AF7B897AB0A0D8CABD5E1B2829CFE66D58CE00E68C6F23FC35397FBBF96D2E63825C96BC3CEB22FCF9CA46C93538F8DF566145D06207533627B665E39DD284F4275051229F3CCE9E9E62EDDFA55BB2AB1D1D8E8E6145B3E38F35F90B89C15FE799EC14F7E415FCE4EFA72615EAD26C10C1FFA4FDBA2EE04C4845489C21BE45C478D8B2116C84AAC21B48BD4181FC28C7C21AC9CF95D8B04C0D817C8ED8083D9CF8B81213AA2E3B8BBF4AD66A7AFDCDC4C420945F5B3E8C8AEC5C4F98005A0CE1B3283F5FC0FCF8567A150E12639CA85D298CE8E4F9E0C53817D3009284A5A0BD5D3A07234AF751AD059E301076946DECFED43DB1176A2BBA4B8A571299FDE4AA3574B6C189A721674E004F259B00B26EF5AA90794FD622040B80CA6C5E9FBD44B3DB21290353878F4D8D87496E374B05E6A5B25742A885569DBA2501367EF4C549BD5CE6169914A7F1D311D52CCFBE2091F0DB436506F210C137C2180B89626F52B4192C67ED06C1F9175E44B9468E6FC2208A98DE577962D9B4C31D5B0DCF4017DB1BBB2F80512C89B9AADE69DBD584452D25CAC97A4A7E6F48BCB909907B93F5B8108EDAD38CF7FB541328C5E8AB867DDCADD6A1B5083869E68EBC785C80ACD260C715624360F2F3D78FC1B2A464FE0525059A3D5E04BCCD72D23BC680CF7B25C5CD2AD6A0BB8366DB24B671D5BB3C12554D37C7A662AF9B9DB61DC6C7DE288DF1976DE08743426CDD30AFFDA05A8390A8F3A4A94D7CCD33BDB229E32850A77B2256CC595BE515F9E6854463966D4DB7A946276F594AD4BDF0B9C59D4D38E211A4465AEE023CE6C062FDF4123ACDED834F672C1A724BC17D44DE9632A588E7EAA77F3183E09D2ED55099BB1AC8198C96EC7B1635139980D5CA4B8B3102375A2E08BC3BC754D9FE659C3FA403218BC8C00FA87A0FA6F096E336865DDF02BB05049CDC9680E99C4F567ACD25AA7CC76C182A8DFC174BF6FAAF4D2553A4207922C1EA10CA8DA3E35DFBBFB5F6919FD4088A3A8E48358CEF25576A3A6447980F1C716EB58E755196A672C378F6615E54E9A16CEBA33CEA918768961C244A561164B61754F679856575DDCB32C70447BB738E84CA590CB523C6553F13EAC77461A58A7D4E1CC1E36E7BC5E85860B0E6B67C70D398AC0BABE1F42426D9E7F12B5E362BF3BDBAC42C572730C5F4EEA957FD3F17050625BA9D9938380249290AAF31BAC"""),
|
|
TestUtils.hexDecode("""
|
|
d90e5ad6ce804eb56c37cc30b96369f19a67ee324697634f7a40b3d150ba7891f9d8e5a7499781b5ef8f462ce1626eba1213bdf47ea40203aa7b9f6632a02c172826d96683de98ef1fbd163f817d6b4c71ed7fc9ec3a2db3d0bc692f94812d69ddfa81c15292b507d7aa3642b100472acdd9db20f19b60d98e10f1f47fd8f1498cc618a00b8c23ddf109957b78ebb9f5a7d6167fa907f52e312fb333b224c2e1b9b45ffe6027a90efea98d854ab6c6de67a5f24ee28d917caf0014774770989a4816f39fef30dc70b7e068bb306ab404611620b9dcfd40e1cc72400e398cfa342a616fbd5eb075d340d9f1d095b54d01d190b055f21d4de73ccebaec652f982535919e8ec7df3ce42f6e0807252f88d4fae025c68e5dfcd9ac0af5af610608011c630beab1b1bc760c550e79696333b34eab93fa7afc68e900686d1828bfe2bdb57332a9dcb84c66f12638a1ca4ab413efb847078b79610c51ae1cd81fac71319f8e43d356baba173c9775f9dd2569c3699a2cd2e9accc5ff725bc951b6c007e7d7b16b5f3efbde405d7d945dd1fb38724c52958427cc14d7a1f913c2c911fbc50e61a1aea400383561c78d32a38677ee62b201067c6744500f27135fd789e6adbafcd841a2796bedebe47059a8917f5eddc09eedf7aa6187f7f9e91e3893a3870b307a47da4366f767045390e1df69909d50e57ce6b2656a9f9eea5222cb8a05142c09ce230dc49edd7c4107241a4f317577c135a656071335408b809a18588f7dba155bff5acab476e99e62b0249e362d75ac201772552865f91eda373f722d19eb4e4f66c94627667af033c4d4f8e6eacdbb2a6abf47c931527c66da42f8ac3bc1a9c38e88a9d862beb1785ef9e1edcc3aac6477fcb78bea88b5a7796bc6e3e33ff1e0ca1fa73e66307e409365ccc8cf5a0cdba2bc96a7150d030b1349b15469ba21c7d53c641402776d61fca08d0a6268b43c063f51f110b8708251030cf393eed4898e2fc4f9654c05e700ca3e9d9b68274556f88c61c35860579ccbbfbf3dc367a88b076a4618772cac1c225069ed77168bc9e50737d2502d6b102a8904cb3118489e39c31507203175b35a295980cce3f9653330307583e3cbe2ec1d6e5578db4e5fed4bceb20922036891dd58b00e0e98a408f2212c5cebc7faaee235162bcfe6e482d4d1ca012078aa78bc9001a021c14e2ce86e484ad41ddae6c256f05cbbd64d99d20ca4fd0fa65d3565bd749689ded6c835d1370b047dbf1da76cb99f43ce660654725a40f7e8dc99716bd12bc3b3cc140eac2d230ee9177c8766e3cdd8d83948c98ac97b28826918a8835b5b563e887fa2ae18fd47d2c56e7a213d92533f05bb608baa68518ffcbb15e6847a776029809450ff9c0d4fa422fee078fefb04e860f5edc713412436e836f873bca3515842f70841f400db22e21c7a9c1ae25727a39e7e00e29abf256cfd8817115303a40c61577ce6e914b8c6e9481165f554be7a58c22c6a66266222ec80f1af4c6455301cbd80f5cb42d69f524d9a121699eca6d78bfc4db7bebdd8d03f83a638882aba3967f377be4f54295205b8f284a341796b4a00ce517e41ad2ac1d1dec2189a702b957a4d5d67fa1625341266585a220f0c276e339c29f58b13227021b6631cc37701899f0d7a761e13220ac0c39b5f98c688571915c38f8d0a23811d11cea0ff0e319e2bb06ff31990e00aa254e671f350bb9be4a5c78a992ea5de9276b0c542e2544d6a9a2e0339805ab40a9066352e2cf864a102406c4a11268b0ea22d029bdf694cd2ae75d9184920a9a707ab649a8f422ce4a85fd30aadcc07d3dde5b3b753668a303267aa1e43c81617b6aff5c7cdfcdb66eae646146903cf84a014c696473d0c52e19fc5da06bafc475ebbc367cd775676175b4268b42132f2959349a39e73ed553fbb50c8b213e4ae9d8682b837a3d8d938d4a4cfa72b564a39f5137afaaa442b562ff09bbb5c2faa2197f227979a9cf580dcbf01a07da6239f709fa91185e1a0d0847d77a50a4825fc0c2a6dc7140de2d4789b1fb4587c2e9b24f33d11728071548ea967622a1b97af44b51b2300c2c87d1f05b8d0e710a2ea5e123e479717cda447c0d4cc2ccfe753e6da45c38f568a8c2a82418420fa5de3fe08e196f2e2c6691b7774f4d4351c37e974721d4c505a6ba037969034627d05014a543e96956cc991e583abc9125aac8324f46e71345811f7ed8553bab0d166cd8bfe2fc21aa96c1ac168b40c61aaa7ff5461cd2c1339e8ac3c54cb1a8abf0ca4e7edd9e9842a01a91eeb6f3702be5e81936d53f11ae7d191cc6b8afbbf1f78dec898a0c30df889f43a8cfa8ce1d2a324c15b501a0ace8076b26334fcf03bb3db377d285a812f3ad76c0ecd7aa3b76f9072e40b272d514fad2d661d168b00c2b27ed394d4cffbbe38ffd1e7b84bfac69b4fca99b8f316471fd37678e4501f16ae1b2acb472c065aad5b482cc893fba258f29a90e1faa8f4c5235f136b25d1e451f20784e6b761dbe4fa68a41285baa9634f7d87807c407a9e7be6e483f3f224367caeba42f0df19b5dce47630396ec6ac6ff1b5c23e02f599cad3ef117ff74d7331facf763c39ea70c2071087774ef8a2ff268f27d06b96e50bd52eb5ab55a9f5530339abe6f07d5a27f64aa8015b5d2a768452f8ca82484113420464d06d7c61ec25c89a422b788f3bae8e79c0020fc93122f53356a9e678087f80b1938e42fbee9efab604f959b7f4d8c52d900d71b24c39a1cac0831c22907ab3348ad20bd6818023a72266983678edad084a13ee07196fddeb52c79bfb925e3ef4bae2ac564b04956c0097800546e965687584c2738a2009b0caa15183ba1b6966488fdcca6937bffdd9cd6f51424a83cb6324d2c845dbcc9237bde7126516ea59d36cf2b63ce239db57c01bce472886eff29ca612510ca318398aae4618b8d6fd9f6c6e8cceb4b3dbe5d059038b9a6b81e07f3599cb1febf3b0dae4eb9d5e3b6a3e11b24aef1377cd941f94a56f7c7f1fd85807d9d97ea0aace9d94516dd7ee271880f4a7bd18b4266c510e16f95aead24a9d3202ef331028b0f4233023aef2d18aefcb5dc66eea08013463c008b86faf617fcb6929a2bb78ee0459788792c9e3b5d3cf92371f4555c0955bc746264cf6f56edcd8bc8d044c170610fe76edf0e875f9d6d12eceeafd955e0130805963455a348ce41788cea9e2601decc02006907f5e092fa70d2f0f21945a5f24edc734da33efef7efeb22c8b142d86a47d9d5c13f93258eaa396e3ce55b8f6ce736a5010a347b7f9298babcc6d7e4fb03192d4e57daeaf7fd03041d262d47676d8b8c93b0b6b7bfe4e9f9fc0a161e3368a1c7cce7f200000000000000000000000000000000000000000000000000000000000d162933""")
|
|
),
|
|
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
c298f170b4286195747d986e0de1fbb602feb53b5f242a12bfa2b7602b22358a8a23b61c155fe3630218b5ef74b2273071172cee1ff382fb09b779728674dba788475bd8daffacda50631973d3a038d986fa56e33293538d828f48d4292fae5487dff146e3e3ff99d2ceefe847f17e0274f2e9edc0c3b7a6b184d2c7d771510259180c02294d08c021e1128c01b9004906315b180d1929411895259b3285082964e310414c920c4b9611c380101aa86d1cb12c611286a498699a385019018de13882d0b8401c340a824689a21640612886022028d3166d1c328a18b06de0383164b46588487243069202900858226e181428da4640e2c4694118859a044e0301041bb4411235011195415a962499380e04c72110458523824101a929519029082064932669a2102160360e0c860112312c44a28c0b2272e3280ac3962cd1844514482a4cc26d04a1110c834c8a026d43b83113890113c60d49461014408a129725d8369020b325138728a4a44904814d1a324edab810248590c8406423c22849c265d1068de3865104a2805198298a126964084604b07043346519c1916204080a27608a144e1b2270120731c4a808a0968ce3884d2210682231481ac49180a80c582031c2120adbb4441b82641a94080aa5659b46711b15445bb81113a360203660443608a02432d922318c22054138605312220aa700ca441290946d5c405223264588b80864c4251144240b051244200a09c4101b938993261118c08d9008241b364660022c18060e5018864b40051888418c806800152610c30c91162dd1360e0b491014c18da44212a4844d22193164a04503b70c212690032661922862201106434471da324890389258b260d32028d096240c074610a36413c24494888c0b328a4b320a9ca691dc284240220d23b671e3121200a16004938c5c3288c1469121870511912d8a285114354012b86c4200460a350489a49164048d001405cc266143a82d2048061a184d0c056ac2a06d9914710c26251b33218b144ec932685a9221134541042770c2227213b909db0001010485008000c33640d2882924355122982da1322e1a280021246cd8a451903464d8144263260d9a080ad220111031258914890a1951cc043209028d11392151b428dc3628a406119ba6009194110c912913206e5030850b10121428419a04450b1871082581c22601183090dcc661d04089e2400a23044190a64401116093166090360e14859108368403414d7fe04cc3486ee59a1d7e5ceeac111381d6bf881ab59d8eba528410c1f10133a1aac55b4e0c69407bca0aa1efa29ed38ae018ac2f892be5d6f4d6099421cbe1328b07913fb0eff2be86b6785500416f14777de98d5129d4bbdc1e7d0c2dd161c3b53568ec0710fb80ff1407927b82261dbc6a301a5ab780b88d080d7e8a75e5253fa666e6499718ed9135d2658235755a107f617dbadd6ebeb40906bf2c29dfedf24ca3667029f642770fe012ace1dd503c33e0e033fb90e0e8598870a92cf3b467d667f6747570da2c86a328b1b4c769f4bd99a90a46000018a6a8126b61b51f9b77d66d91704c5431a2c5e4a7b680f053e7e1f5505d74af6a79ec08e7de4d45fed1888c790e2473e716c7b1cbd1fe9944fb56fa502b5685e75bf23ae5ffcc4d5a525b91575fe8baa856a445d7005a2cc81d0442e4edc3fc19e4f5bebabe21a6c1f2520c38d1827874261b5e802514b5df1816510f894eb6d5c493c82ee8f3d2e7b159da2022586525548037e078ee6a1ab31803b0595f0ebf07870051aeb5582702d9755b98cd30ad128e455c15a05f48ef20448f395af79a5127c4a9c4b04c29764ebaa3116b9fd10bb6138750eaf6a300d7f3294522fc92e2e95644d2fc35222a08a51e49a53ca180cdfceeebd5f6cf0625862770b338246533d35d31c78395206145f88cf17e80c13ae5b9f3aacac15d526e9561e5608dedf8d2163b9b283bad1a58d08b14a201bb0fd91fb659296bf847ab47a85cc58f5a8e9c9a5c132cabe71fe3bfbd899a60fb98b84d962607689c1295470c23df93f60ba2162dee0893230ca5bcb4dfb2ee08ababf98992e27ff92d5569cdbd77dbaa44dd2fd21e8b398525a5ea3f2632a581e7d94675a2b51148afc18413c9e39b489a6155f089cd1ea205e9b650be0f1d3befd1d8189fe94793965cbc0b118913a1b5e4de66d969317c2fe4f4c289070c663db3684b54d8b5c29d84cf1ca9b77794ed6171c945e42e808ec0709d2d284e5e022495c7bb67f215c023f97a0f248ddb6061c7f68cb0c6f688f785cfd352021ad700d410968f389a17261bd1cedf8be5b623fab823d5a27e67e68894d533742375ecd6d41f124a39fe2e3e548f3c041b61179ae7961c248a05e7ae1b3023890203c95b73e70c65413a8f2d97272dddee2445220cb6f1f69e5d47f9f8e6f2feb116d688f7ffb9afae3a6a7b7335fdcdf6c1b2f28ce98e1ee76ed2b0303f242cdbca4091abaa25275e98faca3b16d3293f165d5e653faf20d6afa94ca6f899008e31aeac9ded97911c1fbbc3de8ac9e16b20bc91a13706b427aab96699f46e5815add64be24cb3484e20fcc9b113c8da4be3b0f39dd183a483f8f6f233a3b7d41008ea66c1b0fdd111847e0abdb4dc1a73c22500b39035d78048b2a7b1b537f4009656cf7a2744737bc7066f99d7b23d0d109a2e9e679742edd3d89ef423c5c57bd2947fef985898dc986cbe3ce2e9d57dca7d4fd7d5095728822d687f22a3d7d291856451a5aaff706b4a7f68f36a753da02562133be2e3a30e0f5ea8fe18b2602ce263c6065aaf15719d8d45166216d37bbb46915da50aab9a0f7900784e7547a0c90658d5af3d8f4c88e5790eabfe578976c8157fa0fb6db133394c7f16e79b6854900fdd9b6ad0b35a877e336abb0c484c8c258d165c83fb72595978f7b2c01b05a34826202cb73d88f5e8cc879e9994be5b3eb47b336287d7c3c036e5666afa557c834ef222a0e8768827c6d56d315a61630106a4ffa250e3bfe1de6a6cfc311d3f3e48165d8fea2afcb14247c2da102e88d726f4865bd848d87c01dd6fed84e0623d564bfbe8bb90963d6bdacf36df337f00afa83b1eeb5309cd6335e4156d307a28ae3dc791210b482e9a0504895dcede6dc951c3c7ec8098de79a51741eadef5fc2800ee410bcdc2999ef9e38e33dc3bf0107af5d32236f26c31d1ddf62b6ab6628a5bc4136d9bcf62ab95ddacabd6dbd3afddf7556e83931035a6e737915f1f8dcc217e247402745af979538c28f91de1375056f0e369c648482877518ccc1c976e21abb3c8ff30853d5967655a0f7d4ab3fa1de5736d80024b34f940aa744bb427a2350e72e2abad49cb6a91a066efabd87d286da00d9c731d8348d4b094e089da1938c74185df1390646ce73c0687e63a417c0681cc4438ea446fe36496fdf5a808a8354237f4838b51182dd9f062ab6143985524f01ed273db2dfde919865c1a5d82c67c1feee76609fa9634e0056b7803dad0015a27445028e5e87e439f820042888b489b0de499cc3ba6d5aba0260a0cf24f718b013b72918909283fdd28025c011d0abe811e6f484d58b27dccf5b5fe"""),
|
|
TestUtils.hexDecode("""
|
|
0C39B65F4C2094AC626652CD33CFE44EDB2667CF722443514CAB443DC398A8EA009277BE397E1C1E7ADCD1B24376AF0F19EA50E56C90D683F8EFDE693F0F8834199544E2DEFE392B0BD46048A83C412A14834C4BCDC180457456BC72AA28F2DB247AEE84A1C49266361DA7EDD54BD9B562889131EAADAE071AE5A671646F49B2C1359382F1A3B2A6B437F87CC99A2A1BC821E1F3DBB311B8FCDF28546A479E2F9970870066A2D6447B6CE4FB65ABE7423910B9039EE3234836F924C8E82E1299335E27B0DD642B812480D6FEFC47B121A710827DE1D18DC12064649224FBC4526AE14317CC8E53BC8E9BD42BA444AD9B8B48C3AC807D7A7675F43E3021BA1DF9AC7A42A9E23D696BBD03FB5C4702B55F95854C41F470CDAD8A255436F910C089F71C2E59A44221D78AB81D4E2B059CC92A3841E1431415DAD4E6EB0315F423DA512661E4CCE098D6678F560A4BA19475296A2A1DEB12AF5900FA3A3C188867E0C268EFBF7AC53455552DF4F36E16D50E23048C7DD4E64341E6DCAA0036EE045B82C42121B0B779B5E7FF032F549536ABFB702B1CE4EAA5E389A077F47B1B55595D4888A4C1D17F4E21706779C9CDE25DD1261C8B4761A40B69E2F22F069A264E79CDFD36F307D117FC737D88F50EC67CD07D8FA269CF265A7E7CAC93E97BC29EF95C88904AB2DB61C8865A6EBB23871576DBABC83920AA015D47E8CE699A9E57E139AB7D233C577B46C9C314D084A1674A152D87D2A3D8A5D9ABCDA22E212B8C9A2BF25D8AD22AA3627E6C12C684AD2BE917F094263982D396364F4DE0BAFAB2DB89997DAF8B7E3AA953C055776FDC29F8AE5C28D4071534A9A2E9090CD3F723D3E381A2ADA6D9463FC49B3C6D2B76803F5C21D8DDCE965D2C472389D2BEFF448F2D81EDEF1C851A863AF66B64417BCC2CBBC70C18875055D171BE32C06081362FFF7DE8F8A23B076839602E2368CEEB79E4EA53F42F440D167A902A23ED53E6691AD3332DF5B0160EBC3B5C9567CF619BE2201447EA500332ABDEA9B849C3A395F596F2C96ACD9AF8313E453277B9F4234874E791E9DCFF0C9D9DFA8FA9474C026DD34E5CF3AA10CAB1FD23EA5DA0D0A66E520096C6116944F2E5747A974BF55428A3D2475F6276490AADA25220F2F2111892DB9E9C75A5401BADBF69F31B77535044DC50B1E93849F19C0B6C5184F1B14F68960F9F469805F3843198AC68E51619F3D712A34279AEA27BE4357A99C44C456BD2D9319147285680922B98DBC4D6D2860515D1371D2141C7A1E76EEF8586AFC973713EB89C1F09A84AC064BB7644625224FF1F7316B9DD1091CEB151D1A040F7E60F202728F7862589E7F1FA32D39653383F90C67D96D9949967AF234592903CBB968E0D979B92B5C69D09EF4E767741F1F6E361DCFC8D751CB8C3BAAC4CC393D63F71AA1488491CA06CC20B0BF54C5C225B6F0825677C2C40A395E1B7322288A815E59AD2999D61FE09C95828CE18B2997AEDCED56CA8BCDA4343B1E948256AC5EBDA23A8E6D7102A4474CE23567084547F2ADD9DE77483398D81A9A9C7A573D7EDAF99536D31C3588BB649EFE1495CEDED788EBBFD5775842D91DAAA2F9BE08D63B06DB35E72CD0EE5DBF45DF9B0CA682BD944A733D6875A62F8C53A3FA9337F13429FACB288C73220C29285B2D87DF2CB1A54631AF3D0035C1F3B26A5EDD07760A63576A395827F3D5F9B03D9E47A9E1E6A271021942648B8424234080492BBC56C692C769B5DF32A75F7403C88469E54432A37A895E3CAD3AB110089ACF534A0D78C2083CFE149A2D0A5055EF9F4C943CBE1FD393292518CECFC57E4FFC4D07A563A30528A6A3540636A3BE770B7CF03F5004D7C6F8ADA08DEAAED0422AC0C0C8D7515C9F8BF44195D6DC30D9B3036DA007A910BD05DF06B032812CE8393AE2777D717A691D07E860C1EDA60F6DE31F0787097D0D483E3A51CA7997646503738CDBAEBCC21AE4B984B668FB4020C139D9F581EBACB7BE263A33955DD68C9ED9BD2DD6C0A7BD049972B624CB7E787DE7184023F33EC0A1539C4679D6B4677FB971D763BE17D989FDF8C0AC4E0B5A6CB40A49B5464610A110EBEE9A21BB0D6A2F043015EB2C8820DD966A13EFD18D32367834D41E8673E997B2803638A710580CA08DDB4D90E4E8EE584BCA2FB853A122274142130A1ABCDF7DA6C0056689195099CC3382AF6987BA47EE294353674E7295ACC1C070F1D8E4107AA7189F20CC818F1D86F6D646CEE911B304E2FECD5A14CF5F36331AA86E10C319C96E52996D4CC12810AD7C1DD1DBDFDC78DF029BFDE9E8F9B1FC7D9DA99FBB0304A8129EC58A82177EECB7330E715BB3C0B4482923C7B1EC0D1823FF643014C7D08A8F2D9F9090B0F83663AFC5E601E5FBE1DDBE678B9D93C5A23F564B8A4DD29C8D19106747959E72AFA4B16B879E3C6E7F79A212A144F9AAF665253F1360ACF7DF37642270656583E06FAC85389A3AD76E69BC2735B1C3E13B80CCBD298EE25C29F9F5C275AAD83BA0E7C47526253BB3125EBDF5CCD6E1C4F9D9CD4891167BB4E4D2AA644D5D362C6F790E2776BDBAF8D96DC3A543C72ED46E431FABD737B4BF0F4B32E12E0520E60401CCEBBB40180985948045C58B0017C3D8797E433A2E2C64B9679EC7409D59B3992053EEF2ACD7B152E5F564196876EA0A31CB6ED47F2455BBEE6827D96C6B99E46F3DF1FA21F593E842B26E83D843118F6833BC273E12C7224E00E840B0041544893C6C8A06523DEDE2ACE7365693BCC6A8D7DD81B01310CBB8084C5FD3868539F8B5179519CA6745B56C4A5EEE8F2A8A60CBC7453E1E0990D176446D97F34A2D0BD5C5712E2D82601D0B9FC9A3F2420C65E4532DB3810FBE3635B2AC3A84415535FE41208B907EB3E97AD63DDC4FD694127EF1E948801B5CF651119CE17BEAE3396C098A86548B67DDABADCEEDF60F57D2941815778AC14F78C78516F84C5F9749B433DB97A9283A94697419CF94248B6819D9310324977D47A133AE9F1FC141B56D6302817761BBD52B4A1EF808E0AC761426C99E0504ACB6B552F9550D55DE787C12A0409A9F9EE3674617D15E229AAA98BBF4FE49CDC81DA3AD110645132B332B6D2AA38B35320925135BDD225053D6594E78389909E596C63B85DCA8B3F6C3233A31A1F8F3E900E49DF83F649E592979C9CA4BE65E7D6D1F23A7744626972D52B07B7B89CD90238A5E871666F4CA6DAFCBF34FE15983AEA5BB7F9917736F7BA46F342F0C08F56D19AB9569FD23288EBCBEE7B5924B8C86EF77748F3AA9CF2FB884398F83772C9771958B6DD063162A3AAA42E6A3280FEDEEB7A628A07702950975CD135D6338FF959ADDA2296B3E85A024F63D4ED8A5859786E2BC76C2325F37B4D91EE8B64F30E781BF48ADA774C1641CFAD2D63A59E294B5D99C94108154E38B499E3CA2A29AF7CC77A8BB3A3B712376CD081715EA715305C18B51470D5F3A6A82E9189848311511E8B0ABACF856312AE3916FBBCF6664523684D3C7ACE08D2345A3907C9C07183CB3E68C5EC3899A95430E278A72701E2355A4AF606DD8F8750F7F3682FB84290B2BE23BED99CA06D5E54190A5558C927C369C00C512342EFFC41618CA6F8FE6E3A38D1714FC44BF5679C1A49CD8BC8B28499602E277DC8832F738225920709799DE6961E0B4EC12397E7891AA772627F66F494AF719C55D056DCBF10E8E3DDF1B6C1BB2F0B2FA61949D1CA7D4E1F60EF836B086FF8C03A5916A14EB2670AF56264D7390761E6EB6F638D6FACF56B72A48F271ADE4541C8EFC91D15F69E0AA6B97EC0E9C0C3EF169E4A4DB1C1AF04762B98ECBD0DC374224D98FDF7788435BC154E1FB06C970A914C34DE52678F61ECC1969A2C5B1FF4D82E2C80CB543B4B7C9DB541229CC50CC6C448DC029CA24ECE635233C401D3715671BC75785DCFD929377AF5B65EC43EF45A9B00CC766695A4A5DE9A2E6582F7936B9FE7DBBA6762C41453683146F4ACFD809847F866DDF559972FE0C093EE7C9FAB3CAB0BC2BF8DA19466A96BBF2DD4859E2D1CE122A3CF16AAAA9A4708F72BBEBE285E1B794B2B9C7A699B36F39F033277E8B7BEAC3BC70A572556EE5C070A309D9D0BC35F4B6E55ECC91CE9AD273B0098F64E1327C85CCAEBBE67E8A118669653495D2FA09C29C6FCDF870905B2C8BE0DF806C29D5E7AFACDAC5F89116A3474D2229C76E649F99EB9EC71A2C229764A477853D68C39B8F0BF4378993AE2B26E814A337CFC103760CE92FB564E3A3E4546996CC4D8B6BE069E99861DA9C731B543BFDC006FBDE3B33D2C8C4A3F5789466122616C98F52E5E4BA239E0C3758C5BDD3BAED8809F67A70504BA061409A9D87A499236230EF0F1985DA0D765E9B7F733A154E8300490F458847A89E7C6BBEB7A9ECA7B6CBFFC3124DEDC1093C02C808DA1CDCFF5237745C5FFF51F3F15CF746D3397916A45990070490CA74A55F34EA4BA9EB73A281F123035C005BF6C7B30852665860ED13A2B5808F81435A77A8504B58CBA45559BD3BAA663A571F108685E414FC4DBF8033075E30CD6FCD9B893DA32F7C8D5D971D5EB417F1201B00F65DEF4EEED3B55B7FC7E6194B72A861439B865558157E65D4C2F8A1A93F48192099B375D111370F830B34EAF3225A16006D4749494B9AB9D3B05015E34866A4A2D94B9588A8DE8AD4CF90F2CF422634E8DBFA0FE3FAF27C3F3C2EAF9C1BDF23FDF43D196732E1FA6D2B343BB7D9F5F26FFC31B26C64A8EFE2B2D86AA34BB618FB58CCB54486211A8E66648CEAE52F07A6C1EB5234DA7CCAA971AF984D6050D1A81F10E6D19CC44B5E668CE92F4251924B25DAF41D5E381C3FAE4208D18F710B5F93CF3C776A3D81C608B06CE6BC68FB8A8117CE7BA065675B88510F2E8A440EC363A5983DDC1352E446A482C593A490AD6093258E447EF52BFD189ACD11C87A8B75F08B5D166C1DA69602EAA5916474131E20F704DF84C3FEF2AE99F9B9E8F7315A143A07C7AEDE5797F503086DF7DA971244A61909C4AFB00842FBF4C3A59B991B58AD6C0B8667C449F0D97F34CC41FE935D9F55821299F780359E2F631858617437D4AFE67DE4A1AA382B93CC3FF596726F0D1C071FD0E00883E9E03811FC659495AF2A62B45DA079A66552F2928B6A25C6416F8DECF723623764441E5E581F9B2E36479A1B6CB3DE9B090E3343277CD7F84E80219793CAED4945DF782C4B72B498A62A1F5362745662F711A7E47CB816EC7069D10CA8314845AB0C9FC326C5BCA0E2AFFB4E6948522F8CD9C8DC008855E592AEF1F8239748916878ABC493E33CCFFDB86CC2ADB99B6251F493F0D2A0BE56D133B66395AA695F6298F7F4BAB41420CA9B8CCEDF2719590287928CF6BB3A506D6678B814076B7A774BE9B7029DF9F4719AAC1D012BBD49EBCA6AF124D0AB5C5FFA92B4A895CB76B88DEA9C7105136D78B76D92079A5B001B214DDF7E140861D86ACC260B72ABEF2CB3A75C2BC87B39A9D9052D4283B71C10AE275474E82A5FEA1654EC3ECD468DE4A015CEB67BAE3275C2C79863E2883D46FAE351F0908F42825DC7D9FAE0FC7171791FCAB10E16F3F027E5043AACBDB1F05FCD2B3EC7F6F46AD6DCCD6F9E6A6AC702451194788D14261219F794EA195F2B3778654BB373C68AB4333E224D161A1F89FE440BD8E968B518EEA28E81B89E04FF1A85B879E4B54650FA8DD1322D14B4A87"""),
|
|
TestUtils.hexDecode("""
|
|
c2112c791ee26987cafdde1bc02fbb99d5b97ad71d4c75cc36cda559ba853a351b3088a5727856774fb3a100640034901b886b9aad882c879f7f7a50090b1b4372ef71a124563aaa22ed2b227f76c4c5ad691499766556691ac72d3ed717eb83c06951bc8ba4c8829b225aca7eddd999e9e6e9cfca939ba21d2f7f79c750f43719c520b344252a283cc677fcf1dc27a4dfb396541c97d7e948ab873640d1a1a0d941d2677878360eb2b703f727a00cff03547f5516d5e18b07d904e3d978a905c83b45a2a58f407a5778d6e6da955705f0e55931fb31a1b1be5196b6e80574b8e37022d4e7778bce58a817aeee7ce13c07196dfd6c00a6604e40f3d12a46c11bc6295788be5bcb2a39db2bd64780b966530496a23f9e60ab9c7a4a48a5cfc3b1f657e00aeb99eaf8ae38e723cd14191f927ebd7944da428584b23da5ada543d3c071cfe95910aecd65f7be88aa6c7bfb6e52ec3c925fcb0fa4b09d7612a8b19a4156f44d07c77eb229edc08d78b52ddb7bb3e42e95faa1b013d4861ce5166fbd0d0822baef9bb5d1f41956be5cd1efef4bd3f92beb656957c0ba51dfd4d186e4804b71e91bca6f3341ca585f0c48c3cd496a1f1736f513650fcae2379bd1d127641f1a92c0c394d2c02301d29116b3245ccfcb6ae3b55b29503a49fe6357d3f027a20c30528abe22623c53c73970090b12d994f1a69d5a9877ef15f3475cd1b9d58cc38a0289e12a09ff756c7e93bd675b2354d78ec79492051751db9b3f35a58eac539d4c6efb259de9383d5eea913c98a6daa6173b113f8d7bac440e1bc4652d1645b96c4e3ae6697c9e6e7a1332d27f28704b850cccf469f829a6aee604e0906d1b84fe104303cb9e187a19b9ef212dd334f134cdf6256dcdd39e91283e6d7f3f808fa5cebe6263fba31f766bd86fb271a524042d3b42b9d1e7729c00c6e4104eea77934fb44fbf7b22ad80eba63fcf1ac416429df3c012afd4f42984b8006e5ab52b94fca1f54fe91ddd2ba4f8366cf74597dc4c2fb1554c20ca28ca4262888d70f342b55916f6eb5a2e6df5a9d0299f2c15ca37f5cd688792a5c255e2f684035770cf4a8894b750f1f97f9c226f9c451ce0b5701a4486b9feabdd379ad31f1164706a137aa487a25c088882c282b5f67599f8f9488b3c1b0540cdd48ad57754d760880478b686914cc7cbb3f478baf3742382749edb287e867d5863fc40a5f57805d1a7006a2b45046698ce63bf85fde10d9171a618a10da3b20d97052fa9416e56ebbfc9b1cbacaafdbfdfecf18d23df346f6838d90d2f0a45aa650d08be2360ad8b3259541f86946fa047ba2cf05e9542e67307dff451a0bea83f3acd2a328f0e9a7c870dcb1b3ef6a387c208f5128951b4115aa4f58193844d54113a5d13cc6e58cc210cc4865613db00c6c515720de072a9fbc60dfb50f48fc9ee71072e14a2380b62d644dd49c7c8f5b30233434f56ebb4c00bc1106f2f7b89d6f4076480fd24857efaecb3a3921a3f9d9bb84353792bbc017ec91775660c21cc6b7c2c5b629258fe1655afda4bde38fb66d9f5b90e0f70419d06b38de8bf050e7278cc02b9b7d762dcd32245c9776da3fe15af5bde873bbfd1d84e8083a06ae1d030a7d32e9a50be599ed816e47b54ec7b686f5e8c55c8edb7d7f34302f343ae7027234205c8d3943244f91ea9c2e6f2f33fb56af3a0ccc1c101608275ffd7a18201a0cf3291320e8c1e397684c604dcb23953aac9cbd65fb8fa615dfe77dd2b7033195030b57e005e28f14b316e63c6a62d81fee131d3ae71734e90e3ca43c6516996fe169bc279e3b398e8ef8929760da3389b29c0e7139a2d889403b823b3361c310ab668167eed34f3ff6e32542619d7d5298bdf4c9e7b4849f0310f386faee38f5e94f5455ebbfce87a34fa93b808d5eac6a62b1fdc84d3895d8c78e211a7074c78262c24c5153234882a4bc043703d997a1b8ea707712ed46f6fb654758634d1591ee3d79804c8417ace22343bce4d0754f4e72e2f518bdcdff3bad1313b974f7f2b7100e6fdbf2fcc34f5eccddf570905659ace5cecd78ceb88f7fffa03bcdb71a77f975f3d13146422c765a228063cd9cc92f0031b8ba6796025ecd4caa8bab5c48b0e6f164739150ac00bbfba4ce69cd212debadd620242fd5610f3fab75e7a0eb587e4ccdd010fac040d8c0b71673f6a6165b188fb59293138048805ffaa283b9539b947efc6382c929295769bf9d5e434b9eac6d1b9ff9ac26c0a1d1f0efa3108401e4f522579e1bd504a64d1359e44fa59f4f33ac4cf3e7508aab3388cd5be219937185ef7459b9c565034c8d4920d5fc62080db0f0930630d14c285ca11e360705f8ca5786e394842230636241a461966252d634cba8f68e0fc398b4298f4ecc907f5a1fd9795e427e6de785d7bc87130d986b286afcc646723010b329e8cadbafe1a9ee23f8010fa6ae67d1bf950c5f0e6fd53d31ad52ca81dfc5225f61de691d868130bf71d6428474215c9d5236a796c29f983064a2c9f40e69efd090ba55c47313f13b52b5d9edb7206ceb0eaf57198f32a722f9a60400bf550d5ecbdb0e460c791c44e56a1301f6f6bf0d9c1ff04ef6d238c060bc10e75114f7d055b5c3c0ac2961ff42c1145a8505e5d6c53389f04b20d2cbdc56759b861c803897be3eebf932a4877b1c4a0b63c96ef9369445e48f4b0ac34bf1799075db6dbb7d18d28f15f58152b0e2e618fb4551a85f5d1613a0a908a2edbc40e4d7e9683ebf5f9f8879e415e070a8eb52c71ee5451f95f0d351c3013e160d55c1207883c8e6fc20a4aef495c4194a7bfc8afee6af3b82bbd0a32aeab5023169d0361a4449af7a19318d063e4f2ed690b28f5d0786bd6ce5f72b9a6e411d878abe616767fdae52cdac529eb07074ec518723f8f870666211bd427b5253a67e40a318563a8b2d8916a746fc47e3ce26103c437e07db67ef057bae6a953614ee7acd16532d0485ad02b4bec1b84302e1e28c41e508eac18f33f76c150c3142e1c383c28ed902dc79922749842efc4c91c75754ea5e0678a117612dfc7ea07025cfe2e4213780734c4f18e191cbd815619b41b0f2e9965499ae19666c4ea34dc1af69dd60dbbe78c6f462a20699b58f50682e9602e7f16580149797067d0ed1b0b36099a0c5732d64d1efc1f370d4c71a6e77c5d319571c3d9274444db155b11286edbb625b77d1294d6dce64ad7fe58a7808b7c9edf7699bbc0e0342dc74158ae419c01b64c07bafb6452f131bd0f889cc40419d3dfd9c7c4418a37763218498c29f19a0b0d2b3e404b525d707c8cb9ecedfd22303a597091a3c3cfd1f8fd1d252641799a9bb3c4c5c9cedee10e172b2c33393c5054777f9eb5d9e0efff000000000000000000000000000000000000000000000f1b293a""")
|
|
),
|
|
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
53a902d7abe3103058efce7d2beeea878d48063b6dc8aad68420073c43fa51732003aed7006824b025934e1c8fc76d0afe681d830c45802205474b5de6388748ac11a6112123d1cc78db7b24bc040fdd3d546fe3bab7663bd5ef49eeef652e200b8f9745383522cf74a481e2b63b4f55fd245f2e9648a24eb158069b1a0a29759b0686e184310130408ca61062344a01b04954b068932848c834408c804912a5200bc9298b00509a120ecbc86808a62d10254a5208450c842924336510a069043809c04444a0902d98102e22a95120332a24000cd9166ea3c86924401203380ae4426d82146a98a88550185201b6485b068ed9a889002391d94292dc900c19222048968421b50cd88411c2966022274813928918c8480846505b1651a4b26ca08804013960d18870491251c0080a8b086422024ec2a865d3b24c1b492204190290044a21b92882a800c000860822058a32258c00661202601b4200044104d1344683c00023382800218d24858d8090400a057052946c242200e2a628123904da362adb106961481144468e833049d8a45021a46d5884092023860ca849d002001bb22118146a49240921398c0129240c42848bb064120632c3322a2386254a02520304299b305183108c14267062460ae39409a11411a00002c3b6099c0845032509084932038200e12200c43492232621918685d224245b003123b04d0c218622c04d0b2665db309108a708dbc07108358d08b4848aa069a0282519318221332a1a284603a40091340a91022842126410466004922819b47058b89101b340092000a39465241392e10229d3a0219a364d14880d132762c9446aa1842183a40111284a21200890b82093300d082562031001e2b44c4226005994000cc14c01302142b64d19c26490a08d1b328e91302e93308243104844c05059084d01488cd2b20108978d9a1209123751d0b6809890810ac104e100400b02261011492132249c4832d426904816648b488c93944c42982d10c14c02a64cda1248ca26602004861228301bb269c3b4694130229344105b442042304021293149268c44060402992c20a780d3488a0927218c068dcc202084362823916958a08ca1b60960b660c84884a33221c80408ca960954b811949209842208c9c670a4c42093222e20a849a308609130605812919c884590006d821001d0b431a344501ab48501024911476050022e63266241362ed4362611b360d002461130451141701341681296092d2abc12b905d68c3f7eb17d160fa397ade12d639bf6fed96b90ff181d3b3cab8c3014eaf7e666aca774de4a4756fe41f540a66a61d7c48de0e5efb6b64dc7495416c50c7d9ceebbfa166e65aa83dee366a6f946173e87c14d85056fe473eafe0ea81226f568e81c6b2fb2406e2c7a7dac0dd4e79efb77adf9721a4803b56d5363e263da9f7915921778fdc9d7b441ca49f0f196db87362a7243ad8b2a2b292e1fcc34d91bb8b985b6d9a3c324cde93ff97b2515ddc90b1e089af7431d8756414ad15ef8a383aa4ccae41c56ff103ea19f4461ae307c511854db39ffd0b97ffdd773b6dc6ef6bcfc62cc46eca01364a7b10c1189e98e34a360aa1e28d4a0fbb329fcf318d382699e990d88304a96a1b520acabf3acafd5c2a8dd28d22a956486a1df040e35d9d1b6b66d261f4813b9785561d1e32f7b62b703d066c151a6795744ae6fe287d75defb3cf9622a6a98753bdd47854b12c3d919d603f2bdf846dc2200500c13caf8357ccc9b2a194d55777ffc9ae29395d9cce2ba921eb07ba57fcad946459d3131cf270e7eb9f2bc13769d7534f3b5fee9abf73b4923d635b1d40b4a953b9f8847574bfef1adc4c79d12b21316ded675e4c02b043c2a4c6c7ed17e0dd68b0be4d60dd4431e96f290477b3a058ff1dc4d3d0fb547dd2510a442b72dae5b3fd6a20fc10f31c60414c7187e6ee85e3c1c0349d15d161a339a91271823f3870188b75b5fd628a2b89da504bc6ef6bd9e15bafd49726722c90a50505fd44ec7704e9c6dd0c1ee6fed3802086d724f23bc11d0f1bb0604add497d4cbc2671c9a9c941a19eb3345a90f611a45f7faaefc88c5e9dd65c736285f4429d8c57048d59d88b395b39c517db477486b7b5f32cd9b3286d59a70762ff2bce191355ddfc1846698bded592107d99825bb6e74fe914eeaf61632d68cfe952adc627054ba70606086ee16e9d07de9645183a853a71656ae4143e2b52e1b72161150ebbd2a80c071b8f68ff67ac7b78b8df1792298ea58e6e6a538d0f73b58edeea526ab1be7d51d3b77919697dabf7de38165b016f5baed1c6379aeb31ad94e20c70b38fb04b15ee8d3f53d6a75e65072fb160177b8abc26024e74e6f620b62b321105cc65ae44d4d309137da386c493428556ccf43a53c1878621d2f4e77fe84eedba5f26f4b9eeaa151dc292f9ee1000612c64d71756523627dae08762c121feab8b81576bde8fe3a3ed682741cb5ada7b7d9037abc35552024e074957df2e48e361ae2a8e707a5f16072d9144ca4339f2f211ef6ae0a81fd4e261e61bac97a47e52ee08a8883947c3be9bf942f4fd625ab2765f0a6f9f50734bdf1f8f185d73d62902ea45ffed411540e745c9f61adbe829f7b46a453473746de0440b29ad93e17c967d767a486eface4ffaece84f9697674ab4b4b136702c93c5da872a8d4a5aa2bbb095e0734d3a7fabc5c800fa77ec325d6ef7875a57617300e938b13d7aa4e9bd41f253560a3a46f479dcc0a72c0923d25551e90f80c34a89fb9a0fa0c2947f50ba0526c61dd4795f72080881ae7a9fbbc0543c895e12bb1d6ba8a486f53d12fc694c5ed63fdf7c32a5cf8f096a96b5a0f679f1fd12367600db4b9ae01d2b3cf4e54240a85cd4f36367967646e4c0edcd6c6f81d674a571fa135221bd48d26744a02c9d1e0368dc772d8f391b985f76a91e657cc970a2acf2671c5df8b9f226b49df5db806b2123fa1e4ea83c5bdcfc2d1eaa64814ec5872b339cdbf4db240148982ca77e3b411bb02f798a22e08d7fd49a1bfdad6839d511c9a8bf2f28c6b32b32f13370f2e7270ac2c84919f0a7522f0aa53c3cdf3059e7beefa7c98bd446e79213520f2ccf91948607365d020a25b27b01b2e8304dea9a42bb111ac822d33e3bbc3c106f21a5ed8cd0c39856dca0649f458ec122a00bce59b1be66281ffeb07080e5e746c3c2ba813307207b5066dae808b944c30b4b8a039ee85a54a32c11ebb0c06f148983ea8d684d434e6200a3f713eb713804780ef113823f759c72227f85e474fa90091a9804241a647cb32778d0bd71bef5f59d55dfe18efa62ad701312b023a920eb53e92b486af3d14471b1f0bc706841328d34883c1717f94244002317dc6e60bdecc68396c016fe647c0f9bd146472660a67fd251171ff4a5e4b4a5a76b2ef0ec2d107449200e5a4bd600946213cbf10f1e8ee23cd3c34857acae9d592cdbcd1fe17f2c61e8e3dd60086bd3c79aad928e34d13c263f49b099d0ab3afd734821399207902b2bab437ca6aa478151473147ca0605a34bf9be2b5284d4484a842386dc7bdf0c15aaba8a043fc571839d78b09be8f37ef34cb980"""),
|
|
TestUtils.hexDecode("""
|
|
214BC54C508E63F77B261DC59588A87CF95C233C22A339E7158C47931C1EFEF775EB3C91A32C56E888214F9F68D7CD2525B23F695871CF5EDC6979A677EC19CBC5859C63ADCE2E38C67CAEF20116508F33BE8035E9C47D124EEA5FD1651D64371451B6B96601E4A6E8292ED6841E483C3ADFC3DB242D1D7B3F036492741661F45232104A528B6FF79AA4630740BD16B37CD3E7C711B76A259C0845D6F87E4A4B306E939AD1C41022A7D5938E52B98485D95D11BE629263E6CDE20F63AE16CC2E32B6C1C442EF108D92495A759D3707AB6CF3ECC5AD7C02F133D689E252A26C014A31C65A65F079C622BE3B648496BC57C462051B17175FF81126B5BBB5324CCEAEDE0B5A8ECC0D710F04DC0C751318E8913F149E701AE0568B5426736288CAFECAB1779C7F4E96D9007635F76DEB4D379918447F30167F257B8BA825A50EE845FC4AF7C34AB200D5BF45B5F0405BE2347ACC814BCDC648C274C24F8024561FB66676534F1FC8041B63114679D9F4E8CB0BCD7BC4C54FBB4F9A178B4FCE64E705BF8FE42826EE01F691479A8815E2DA00111DE40B5CDE464A9F7A3D21BE9562FD9A5C5CB3F4F9E8F0D8D8A20B9A5AC9D7394AE4316181621B43D8220FDEDACE345234E3DFBA134BF54E458DBEF98923C1891CFB8DC9B5317E3B16C740EF373666969C95BD1C53F435D7ADE792FF9E310A191246154064D0E8F20032AF4823A335D88D5C2A943CD4CF313CF2999E237F6EC50F63936D0FF3F2C729FAF0232671C94785B67E0CF71A7CA5B32434579711EDF155D5BAEDEBBB8F0C6922AEB9798356714931AF1070C49BCA507E289F005BE9D8B46AA67CE2137935C7EFD192E4CC24DBC434B381E9A15CFC529D0064F057FC3AB592869E5F1AA5FCB299B2CCC0ED6750E318F6FC969E6A3A08059788102CCE79BC92804B1D08F3BA30492054DB6401EA251191BED1B8CD35DEA3A653D5D546D2EE8D31C2D88D6275D6C7B463D449DDAF586D5E57FFBC07ED5558D87F7DCA82E4ADF49EB9135A578468907BD8A6228EB723241D58BAF3C78C46451D2F11CA0552A05A85620001D376C6194AC6494E337388EA49821C233F32579FBAE6D11E9DB257C426D99516A16DA63A7BFA261F2B012CEE4EAF7C5C16C6331B79A26E79B1421371E574505F61D699C6DF33EA734ED14129608260B1233C387638F7ED3A34866D656D74F06C2B8D70AE60A0994F3D6C1267DCA2001EA781E5D6E17BECD284F967788227E060381ECC60A10832091319F225C972349BFEF08D4DD5298BF7EE11B693AAAC682F91DCDA113EFE0F35CFBAFF6C73DAE43B8C1124EB57713C122F0A5FB03D02C4128565FFAEADC0AC23DBE5BF123CBA024DC2F3956EBEEE95918B87D2EB22EB1A8ECC3B267528A62F2280E3DAEC02C89A01F5829B5891914DAC"""),
|
|
TestUtils.hexDecode("""
|
|
8ec19a12690fcc4af18b44a46b33caf661ff986315472e2fb9cbf0db6b11f596b5d540572ff4b722d39e5685205ae44f62645ecb6a4f319b1dff9c685f6bc65a311cdd61204bc23da3dbb96f71ecb3922ac19580212e57c121abe10baca724b0acec03dbb6de182f1bf5090131eb5ced5b8cede5444055d33838272afbf8a9d9752c0536f5b544dfd0f20d4994638157e64ff51ea35539244dfad50261f282ee2fbd5fe3b90607a4b2590cc24e67911927ada6cf9b03fd482df572e6cc7441b6129677f3d3d0c0f5e7212bbc652bf53140630bb0e3236d09943796ef92e7916a2c4fcde8c9af522d9661feb6dacacce83e14a6384afaface04e3c8c0febc6306445b84df88cd91f34235c7351048c0d75b6039a102bb0ef30f6e5fae78718be6412db19dbf7536e42b0e5efd950e764c6a80f70839d356f55d607ef58eb366a840706be8f79e8e2ba251063336c819ea3fc60ad76665cd7fc8ad9e404847e0a8ccd5aadf3fc36dd091972959e3de4a5c49bf799c97fe4ac5e993fccd03994e6afd1562a564b111c52860f564e1b335664d57de6fffe5cc93885bc34ac7d278dd28efb850f3e67e810285f47e170243454ac65a18807dca131c99be1f85e34c1c6c3bd3c1f2a13c0341ca961d871e92a2353d813c06396dd29b835971551cdd4d7fffce4d32facc1026b05ce3ac795d54db67983c5bf4aa269cce8470e535bb2555096769215d3df109e2e21b6ffeb6b7461481b80d4894300400851118abb4253b9b86c774522d544dc6c6c2a3c75ce8fb5c3ff2564b9a696ad05b228b8effdf6f54506e2afd2c284d3a988857e4aa22d9d90feef71eceb135f7d6e9462c7302acde68bbc9a813521293d515e8f36aa5ea94a7727837aca76c6fcab11013eb18921091002701166c586abac8f20770e6df05bc682a19c65dcbecc86bca8c85c9175d5f0fba67b33a383987e7483366793ba7b35942b3627a33c23a9172807b578b536fd0faa8c3d9f3d90b6bad5d2b582634b44f9ea81f3cde12ebcf48999d1da8651cbc89e87e0cc049c4d1efbe3eb625ef4e09c2f879ac1eb7e20ef58544332a50953643b02a73308cd481d0582b4edec16c4f31f8ad1ee6d3575ed3e318a8df9a0bf81eaf7bfc720268c1955033bd16fc652cf68ac5289488532665c4b584fcff68aa04b1d4ee55556973eff4d8713b2c3bb6dfe6614b9e6138ce9799ad65d824159e1cfc1519a741cce18ad822de048f19e01d40287494822393bd6d321b8ec3cfe0f402aabdf03743ed8343d442871a6a56821596144f9005f72f5bb36841975970caf6df22724959ff6c8b57049c88176f61bb1b08543d03a7c872b87ff2fb7a66ac64954feec8343f99dc5a84ef8c207033bb837bdeb64c5d4674014ec3ee792303ce5690f2d47d176037ba7ad21b8d4fa2b83d6bafce3cff48e12e12066be8ec16bb2127a26516afba6a87a1f7951ad2ba40b76a800e2c27aad75f883343ca988862a6dc4e481faea5a6dccc8fefcc79f4970bb831fc514cb993624cb7eab874af102ce5e06dbaf57d37cad159541791afb1a47f9c838db9168b27290633e0cef4446d8765ab5e70c7995d437d1128c0a3b0d5c6da7bb7b3e450574018687549eabb5122a89ebda3de0763497658f160fdf054042465eb25174609f26f4755a50d2df918dfec074aedfdf151645b73461d3eab7234aabe1d19ae9896029b57b44b90654666a2e8847d1aaab3b3525952eeb5f0f8cdbc8e3e54ebbf6be367d689e7140596ba674ba940baa5b9637c685f1a1228acd893478365ce039a0a67155eabc02ccfe8f7731d8ccf754cbfa512e604682bb1be083feb424114da3d7243498be28857f19468e5667f59625902b9cd228c366b684154a47acc23b03ff98dfe0c2d02502f6c5e7a5dd212722f5c06793b86d43494003e88818db45102e790ed30f20eac90be73df9b92f5064827fd43c9be4423f61c23dd661a6fd9856f41a2f65127d555e509919b17b0be2e27bb45b07e39482877651ab5e4222875a988a9f97a6dbf9cdccad27576426927153dc4310583c9bd8cf6fb5d50a2d2956986c7bfac0f552693355d8ce9c4dbf4dc5fd6523cf4d32ff62b4e8d9e281eca16ac706b3b737c0d2c977ce4cd4bb41e5e1e2cc16e63ee0c408713ce2831e68e271b52a86c2b8bd7a9d0fba9706a55a5b62ef3eb8a29c793f7a66e182ba4ea249a90ca8988c00396c2d858e3ad362076a97ebfe8d9870a339c0a12bf997b66ff5367b4591c8b0deff659c133e4f97740802a73fb1cc6bdb46b3f9cb31086efe81f62bc087786d1e984773aa976ac597537ff1b1e84991be89df4c1ec1e29a2d72c2dbc5449af5bb95090d1159d6b80e2c5936db148aecac22d39803cead75e78a05731f382b09b51b9a9b79ca9d5bb51b78e591bde312625e52b4ab6eaca92e95edde3baa07b8d12588c7bcd8c2ca4a7e6e5a776eca1168694da493e96fccfa6f68e25cd4d441a111d8de31a0914e19900b218ae50f21ae0659f8f8dbd7f301a061b80add0697f6201ffb0d8c6d42e3926dfd98897d967e928802c9ea3cc2d3c3b9e36b1a29e95fed603f46d990db7034d53159e5a5cd7a72f08e451b5d7dcbe0437a2f20ba5cb69046e218cd3a7b491d1eb47fbb22e2a3b103396bc7273c218bd0eac9f272e6d01a7ded0595b02694981cba45020c10aad67735d5772078099136786401282c850448fbf27e71c1233e5a992a47cda05c1946c6f3cc6cec3899dbd435a1d016b3c771153f44e46bf55fa7fb3c39d8fd1bc14244fb70d4a5b8823b39e449e4d5237e0d99e49e88a85813efd60296b8bdd24d27725f993850b2f66825b9c469f212d6ea131ad96a089350cb76f434e1d2054fc083571f857a36a93f0e6f5fb80ab74f9bef3c5bb7df3f47885f3d136acea283085b4080dbaa5b555faeee52948e6a5e0b0d7c202fd036108998704022d7361ec72a89ca5008f48d11814e8420b453ec202cd6ddbbdbfeaa03ebfbba50c508c5c1a81f6f4367a9f817c39613713c6ce439cca013e1b645854e10256f48ed38c50a7e4a76d01102782d433e612ece1aecc1f48ce45b1da41962c89e811e26895a4a953c38efb620d2285c05a99c27d8e02ff419924c99daad70827ba815c68b0165fd7c4b6ca77d3db1a61f8f95d2c5e93ed860f90abc418791dcd1f95f29f4a45a8bb637889c16c7bbea2ed4a87eb11d4c2d8a7ddc6a68d1f83b82f0d206ddaf76f796c21e0ba9dc3179e85dae4d7b3fa40da3c65c0d499b38362e179e8306b1361f3212b0df9001f325a747b808991969ea2a9b5c5d5def00b0f3139587d8890989ba5bfcbdde2e3e4e7eaf8fb162326354a53f0f2fb080c1c25474f5355627b868a9fa3babfca00000000000000000000000000000012273041""")
|
|
),
|
|
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
8786af4f2617911e937b31037e66d478136009c090bf4a971bc2f286aa31c252c1374f612e7f68634201e3eb5857631d0bdb0c10237831abfde8ec3a0707d79a6823ed6d5b5dd176c813b4473c92173db04935e42a920636592188cd4cbd733894485d415a6b7c095e7edb84998ed6f8ac81b9d8d7d3463d3d5c9934c1fa9484e2428a5902529bc47011258853205284080ae14412ccb60c49068c5142424a366e49305182b08c63362e0bc505e31841cc188d63b26d4a484e10306c8aa62d08256ad82030c916299b006d914052c0b66044b88493407112294042488da2048eda08841a098600265204092004c89024902c09a4284000801c173284942823362a20104690c62811c9640b064601304e21122d4906894c926822036cdb8880884282891689e0c248e4b431c02650daa0040c9211d1008020c86453160618024c10a92103466de2a448d8486a8ab66c09c584dc44224848011b07315046081800205832212082288b1092d246499208491c184aa03889a3b204120845429228011641d8b0011ba5515482614a22312126691c39004a86280ba62c40027221308484284ac818241bc41103836403086d99266210254644b669d0827108c15114952c23868824a30c233900d8442de0086482280dd1b68141b888c842641b896521988924b43010b16963209020114118828dc18670c42811e31442c0146ce340424a2670ca00456424615492250200251097001a3084121912800206521650ca180903c9250a454090160c13350200056424891152362220012d1ac110d4388ac39420232329203710d3428ec9864900078c88206118240201a1510433491c9751c42232d894281a3851534292cb2691d9325008226e6482601139069b3651c010010188804882600c089048360e198830d8008890401020c72c59c85108942d18b20ccca66d09b125d89820a136888c96098c308adb466923202d94a68c8b8061e3b6110c225101a025c116889cb865423030c0026212b0241cc68c102609e4306221a45122371060b63003156982b200e402085102329b081113346edc366811104d4b9041d900915aa42594920cc21246c8322104433160822dd1106642200644024edbb6605ca66cc220208b182a0202069b804460a0008c282dc446012046088248804b201151966059304801956461a80949a26023b52413976421468c033431e21009c024680bb34514a8090b048a93006e5a8471528004c0228499828470c8d8a0fcee58e3fef7ec257174ae39ec4d8e78a56f35e87a388ecd2a2e145f77b6a83b61d87437335cc858b8d74ba922ddefe22c434bc8c82ae545a194a19d67c7e3b857b2f2d42a70ddd90ca9503eb7da05bfea7e9dcc9f02158982bec07ca961fd8e288e07683c9ae97a5cc8ddc6e8356ab44827626a4930c683df67aa55162947ae38c88681231901927e8dc6a6f5c318fb8dafde698796c11e799cdd13e24cb6eab09209c71108f0920e5c9282f7b5d5585cf1cd70feabff9a98786ab90daeac9040bc2243737993dcb7a1338fa8baefc0bb6f9aed2511275dc008b8de75bfba4747999f032d4fb676a5b8344eb4d6ca29aab4d36fd99def5baee9a6920129e1d15d2a227352940b7d4129401c22578c2126078e85ab4ec15874047fb3ad53c9a7e9e92e30fc059d92316cc1c992bfc3171455639d6262cef30745958c3ea541df6ab9414b326b7edbabc29e0ceb6e4435c49eb07564a08cb611d30ca9603de65327ecccd20a8207fbf4c89d2914233180dcd25cd5b6325e23d591af9618ae1ec1f33908983e686456de3c6d030991ff03e1e3fd43402e723ae17c9793fd8203e041dc8ced303127161e296b73213242958552eed804e0c74b8c2d1f72043dbe02e0bb984a533647bd7b8625ee85119ad3ceec74444c87ccecf99a11ce5a382cb7b20b4c1610e9f12fc6ba5887bacb9c6e46d4fe49c86c61337c18a93da4d33a7cbdb0a609935643ec3b561a7d797261f61d085abba60874eed0f97fed77609f13d56a60edb328a8b7f3c93f270ee0e96f752713549a0dd055f07e36c1fbea98fa85be51e9cfaca9531cce28c563b67dee766383fef8c3b1fb56592f936f164fbeb09ffe4ba44da30af06a2995803f64cd90ec912507446624e13377b83046da93f373373b5f8b62249f477206f0ded335be688d9494503bada0e7bbd80cc14def6934a159030e50ca9a2d08cd6b529669a5ea6e92884dfd515f58d3e2e2969c6732a8d28a30951929c9afe0db0c41a13dd7d817514f3aaf2e8bed5b6b5d7c5cdb8587a51dd78204669979c845ba412072b925cc78c8041b7c35b9b9c2784e70329103dd53bb4b42d97fa5e4ad73363aba999152b37079f64cbfa9d4fcc48280e355b4c12df212cf806ee7e4c060c5eabbc2ea493ebaef3f3363539f2a19413b19c6c64a8fba77047b4c43531cb0510abe7c9f476c35fc8cb5a5cc1b883847f9938e8a48a913fff14ce6f4d04e1314b39acc919602a2d013a8c59fcbec8955b1ccc236eb4b03e304cc0440eb5444d91eff5f9f2fc8c08984eef85fd550b76948f2a48368a6cc84bbda74510f9132539f75abc6992a0423645cba1ccdae50d78e10a2291144c814bc056963f8cfeca4cc81adf3f2629b0b687adc55dc86ec6af5e390307b89821b6999cc62067ea0aea384cfc8be76e55d1c893e306b2f2812c6793bfe8945b7d121e3e760f4dc7fac172f5b398d066bda33ca46a35e0a24562e7516e645ac2e00be09dcfd531c39955be696ff7eaaf7192c50f3d1601dc2fe47f9ce3ef9084edbda8ea81a4fedb37eb2aa3869cd78aa1b1a3293317f748f8406fd83f26c581d5f139b9145e1538fa71bc30b8f9e3116592cff2b1ffb8288d87ae9af70330e57929dcc8982c7320cc7f48041fad10522d96851112d6bc80e71133000d125aec57bccf6bf96bcf0d08b557c67fc33a8fb627f4fdf768c83692aa8b5b6baae585b404f3863e3cbd13c1ec105c699124fc569edc3c68da55146e52ff0c0fa831003a13c50509597a361613fb6eb30d881eaa4c7371eb6ee2dac3527577b8dd404ac55ecd3c11ed984c2c62cff35b1c5833eed91c4fce2684e694ac53e7a669d560b631a898c38d40d99f112c58c3ead838ae8461d5c1cc6e3103890b3650563eeaaa1bcd0c4808809fc9814fd8364e4b81152ef67a90a2bb6932c59a2833e89f2749959e49ead34556b430855913928fa26bd6a3fe74571519a2c2352e27023ba2ce62da49dd02441218c2f7f492dd465fb496bca836af0fe47e96ab5cd04f6e3d27d61b2c3a1ca3b7a45681456c427a1f752c7b8dd540ecadf8621f125bd910fc755d349a00e64a20063ccb3d2c27d2808c86ca8d80d6edee233ea88f6a4cb1484670fa62e7fca366ec6c1bbb227f2db5a2ab9f68f541353eaadfdce5fab49dcace06203cd43db0617530c109a3c9b8885a972c7db25d489cd816e98da33f2b742333fe88a839de2e364346fb47af793b639997a0e2c6b5293c14c97964faa65656e6f624b36a7dd00afc5cecc8b9bb5a1c79525f0fbdd568c4acd72678ed26013d3d6aed9696e4272dc1293d224b83893a83184966c25a3"""),
|
|
TestUtils.hexDecode("""
|
|
E742D452F392CD3CE405908EB380CB0225A4725065AFCB0C91C5E4823471376E6424AB24D57FC4265B24DEF6CA73E28FE20468B6E26BCC9267AAD2B7B82960C3FB5A01960FAE078D5A54BB324232B6647C9DAB943533C865BABBD3DC0D1E7A1756212980D75F2C8E999DE9ABD1874E3A86DFD53340B6E424DAD9F53C3CA02B44FF8DB9906D3D4352D0EC4B1A57A33FAFF7107D38637AA410B196BD1BB1FD7AE4B7414E1037454A031839AEE4C796BA98F4A739B785E3854E9EF0D5B7415C8B7ED012B0123C335730C7021CE8C94200874EFE783D7C4BF768538A448E76120635217727C81D08976CE4B5027D4BD9D9E27E4BCA4791ADF6F8DACD1BD3A03BE5CA7F68C2A2247FD3184609EB7243D2366E5EE4C95CDD869DE41A4B47F021DE76CF27464F814837C648A7A7CE2F91104322BE3CB1160A0D10CFE90ADAEBC87BBF14387C8387F4F5AA10FBD469ED5587EEF537106CE0F3AF4CABCD4476F248C21D119523B680067B332A1CA4C657B9DE1360FD23ADE58C5538EFFC8902281FC7B5C12C22CC69E7EB18E5F6F8352B9E4935D06C96BAFD834934618D9E6B1F60292352D064A0EEAE80F7B721312FC1B6C58D68A96351431A8626CC117BE9DFA33A1625BAECF12CB1DE33BEDAD584A91546DC767D0E59764FDE3FC29052CCE23ED28CA5DA4507933C0A7702D9A1225A48B71FDE5D27B12FDFF16AC2802E3629E10D5FFC2FCC6135243A9E2F3E3867BAA0C0F0C77BAEEF9DCFBC723C7A2BCEDA39B53B415BC21A397F9A8C4DC580EC512DE4EE4E0870DF1C4FBABF4906E0CFB08863AF2A89949F8E0FF9385ACA3F588E05781C49DC563EE9E0C5D6FA512932B7F5568C1E0FF1C9492ECAA5465ABFE125B511723998C4071481BF1C53DECD59B440931AAC640D9F78B1B40EE46AC0A8FD18B4C8AADD734B0F03F02CAF6A7BFE3DAF100703BDFADA7DBB50ACE3D40A05AE6E87CEDC0B08C44796D7A63E8B5BC95D97E3EF706E1684E791D3B3A2BAE1E7A92FB70A33D896219E80751A41E16B506FF266C4BCB4346578BAA7732CA745BCB01988AADBCBBCC45C9FA3A5D38F3F8E04005AE777910032D992D5EF9DF2C0422548A980707050CAD9DE56BCE60EF74EAA4465EDE96B055999F81A2C9596A2B35C8AB3CBDDE9D26AED44527DEB9A2AF3BF6A853FA51DCCD913876A43DA3E0E2C5B42571101B7B930840B0AB64419E1043CF56AA3C2FEF5B39CB582971A5776F8FA9696CD9F67E9290E483E9BD1698E961E849A513608C3F20FF678EBE0C778C2A6DC1FD3AFFF89D646A1AB85F005AA14A0635E92191CD41A6A46CC283D2FCABACD2FA07B7E2FF97D17B36E0B222D39DC1EB61BAB8146F147579D02A87DA08AB4ACCEB32AE1C8CBBB0EE0D90A642BB76DEF4AC8C7E477888159824349EB075DF0BED236DA9B2826E67EFF220AC84AC99BE6EEB0DA904887E3A84E5208AF49BB31EAA1552EC79E5BA02458106B5A31D0AC8AF392A63947911400FE78F6C94B3F8E6B7C3B98F6548E7894EA22215C87E121441C53EED726AE26394C825517EF8A477A6DF33B5315C8DEE16ACCE76ECA60835390E65392B9FC5EB88EADBF336FE361D190ECBD0B35B22A6FE6A8D48466B5E70BB6C5FA515CD8672BFE70054038C5893E514E23B16C39198B37B06B21275C2994EDF7F9F921B320B39E29444E3D621F52C9FCE19049D403AFBF1C047C8B065543BF43A25817533A33DE6C866FE9D8A73B2CF7277CA0E8D78F4F104C5CE6FE2025992E26E49D4C49F0798278216453C00C78EA7BAC2BEE71E5273FA46044B4B5578EEBC2A9E42025A8A3526B11CEFFCFF47191109C56AE105CD70A04C3F4EC43E49346203347319D8986D15B3C4A49F02C02994D8798499DAF1E0ADB81A9AC79FE8EB55ABE2BD18EBE18A9E5F35D2F66B38CAD6F6EEBD29AEE054C05D6F0B5326CC5B86BB0FC7CDA720838593238A2FB24E0CC36DB193FB7FA66573B064497F771DB1D965953477FC28989AEA2CC004640524A6DE8270E8A5B12BFF87B3F63FBB7DA25337EE34E6E4EB45DE9A39BC9B95ED37A6A404ED2970F9C79A7C2953420732C496B855F19BBBC8ABCBABE1D26D5BA828EB060D7280046AB93979E0BF90B6F1C07CA70833BEC83DB41684F1842A23417B3BBA0A33D7AF7BAEEC14C9C96FDF30BD201C05AEC6D3D2F539D511FBB356DDF333409EC16411DC7255DF0791BD67892880A4DB082684BBCA8B7E55B421C17DF3B68720E907C1620B142C3382AE6E738F8943CD214A847A6439A682D62CF0AE8961B5F020E7126C5DD6258CA0E8F5711E5472A4C05ADFA9A6B8180B741F382090CD1C781F7CC7F23E041800F42B228C351AA21E4D916BA5D9C56CF8E9507065D729B7C3653A8BB062C0463BF0B97F13A1016BE4851F5A489081A2AB3D2AC2744008BA734ED38DA10F372D97EA0C278C709A23ABD4B07E91ACF6A6F2DB9AF7806820381845FFBDC4BD30A503A0F74F37748E3624BB2AA478210072FCA83AD1A43ACE9F2943AC1AB6CEDED67938AF921FF34F2DAD4F224EF7498BC450A67CA383A9DDA333073286A22B85570A11FE03F55119794BBE8B81EDF1966BCA5E363C15E8E8673C94E3396C9AEC28D110408DA5561296E2928C6C111A4826309F119E5456675AAF935A17E80C0BD82A9CAC2627D6FAEBEC9A928D33980A86ACDB35686306B57D466864A0320F21751FB0041BA0F4F1660774A519D3ADB304438C1709711B982EA84D1B193D026081A4663AE69C5E12C3E4A683FB356DCA618191B29290C5DB4AA6A069C3B8D61C8B7FDA779E1F34A5F62EB7DF5C563ECF1200D3FF499DD06C2BF44A2B4254318BC402EA3A047FDB3570EB40630CF1DF84D1E2BDF5449A1F65A9DEF76954B5814691C4C12BEB10A1C006189968F37A4B236D9EE0D39AC340852EC54AA64FE15E1A4433ED48153D23B2B648C8852F3E3AE485474AB2DFD58A7F0CE6691ED36818DEADC8973E6ED06AB841B0A915425D7B87E41E1E68B00BE2EB725C287FE575736F6E1AD2AAC61F02A3A00ABEB2C0FCDB35564E8446C776E980636D5D61740AB2F0736A021D82C1D66864E5DFA98C4648CFBD9C7AA865F6C97038656C9C8767898FB43B0919BC98C1D0F6FA4D90F711E5D009D4C8FD8A773B7C73CEA654A2CD52A276C6CB62265294869A052FA1634D3EDEBA1F69DA09F0568F9D2F6C511F6BD6169BA0DE25F09FFF63AED2FDD0F6D89BD01FC5B088D3EE5344FCCC0215B6436987D6167A0F2D5EA47A984DC86D45534BAF35129488F3BC2D05BFFB84A51A87A1774033244277D0F2B45EA43500F4034081711CAD67BAA9CB0A58E1D01013032EDD5EBC7095D4BCCBD28A5F32BEB685F7901BA7A839650023B0C908FF33B37D038162FB96EBA35C2919560267EE5A94035825938D168481D8E59813E20DD611E4E23D8D42C9DE1D2398CE3CCB3DE5CBC4BB16D555985F411EB5B56508C6F4E75621304DBA2F4F1A2D8B2BEC5793478E5AA0DAE6F52C43253FE7BC91D3FBA84F8525D002CC307CAFA20BF198BD8F28CB579960A1168A1D26340C8E26CEF1261F23E97B806E9F27BB51F16102527721BE0E8B930A1ACC38F0A63EA1F3FBCEA1031E441FEF4D3746EAA37B7D4F8AB354D5F079E56FF4446333C8B8B7B589CB36DF40EBC5A75D2237F3FB874E7E0FF1B96DE43BCF229DE1FED3FB6D01752B3271E1F98D4134114911BFAC8351E3186E90DA3DE2E7FBBD305C822FE6F06ED1D4774D7A66DCA0CBF740DC277C62FA641ECAFBCBE359A28FEC48D62E1D3B6215392C0F8DB601E35A6CBD978567E806168A9F5B4915A80DE405038C4A370D898ED6441F727985037A040163F14DA78378931D3B96BA486958AE8902C98BE75BD0AED53CFB609923C63615917EF0BC6D07CD183192DE3854133F701B9D4B499F958064ADAABF4080C4A019DF1E5B98C8CA265E031B8CEC355C8FFC3BE16DC3D01533ED17C9769365D023CE7F0384D40F7B6179612B5EC382982E244E2510B4831F2D53F26B142A33877961EF1F845370CE115CA5F0D2FD6926482BF3BA1AEF3212DDF36705A210D8076A4428C7F9CAC411DE590452C761028469947BEC31ADCBA229D8EA58755F2715AF6D51E581D2CAC4182557E6815BFBB84BDC54C9368764CC29AA9AB49EEC37364F85AEB3295E60CE6DB2639669F55CC49D7934BC8566AB5E207B33F29128868BCBC1DBDE1089317088EA3FE1D595376DAD3BDD156802F82B63CF4C5ADEF9A89D94493BA152F9F07A9E9CBF8D821F1D6CD602EC49B61AC4F7633EC810F3D01D4867B1F0F3021D70897593303CFA6B5A3BD0303AEC32105F854C3DBED373760DDEC9B9E8EC4AFDAD00FF2E5A05A0113522024B86F1AEE6F250AE3BF0AF1E6FB7DFA8E04E3F9D5C876731D9C33460FDC13CDCDD433B45A6BF17E98638C264DEDAC262BB03714E020F4576DCA85DFEEBD6D70E557DF9321A8AAC519C419CA20E33DA37C22047D4CF925AD67545D04300A42B22DAC098A912848302D830E06CE5BACCACEB6E9316F9B1DEEE271BC6AD9D74927CAE725CCAD0C596653731869E8071E23BF"""),
|
|
TestUtils.hexDecode("""
|
|
a99a8d52ee69a69d91581ac798a7b34cc594801ad2f15e8769de6761048ad79b7dfebfc6f97cb7694d14fc315c879de9029b2b5331f64ae72e36833d3e5bf3c4ab64b8ad225d7b17a146f4d15f05ff72a7ce975e6558d11e3dd0e24c5b8d81ecbf96c732ddc2af021f62ff48719eb70ecef5e65a3acd389afe3ebf1fd6bc218dacffe07c78ed1ea343b603e61d5af9f6399153572549b29f88139d08ac0899ef084a847ec0fa58d0ee3856dff6262fb2355873cfa1426eb3f80ab52d3f6cfac2bae2a1abb12a68e6476f7593f5e5694d541d7d09b02a39832450c80eb785fd1cc13b441a96f22910a886aaf3ff61df7ff9f079cebeeeee218495f5307da9ce916bd86698560f758896675af604a3bfc2721e8e3dd4bd6664950d7e8575a09d439ff54086efa2405dd362f03c6df688120573884b46e45970e65934b5baa1255d6344fb115ffb51aa25b1bcdee1020e754bcce521ef28bf26d7bdfa498a5a182ec8d202d7dd0c0926b71c12eb74ab4b541c822f399bb4f4a50411ff28784930e8c9a6e77afa420a958528d4848f6255067d19496a23b39b21b572158178fe1e4749b3292133ecedc0db2038fe2eac7ad1fe02f426af8391988e46bdc8b621e2c17704360decaf8d6ed08ca825b1b3b8ff95024f174949c7a6f9d8a4a079f2fab1fa0132c01f09b7f7abe7d6aadf9c53d58a97d270a1f9065b295b5c524f3bfa0de09ae02ea5b98ce4403418af601e5cc876b4f0c95ecb7c1b8bb2f72448f721d81c13cefb99106251d4f37e47dc57d9449b405a132d25a2f08ddd8dc77f0eb905d6f6eb0d0cce96b95068d669286c02f1cefdade77b3dbadfa7cb912c62279d0a4530cc5c52941b19de495e2a2a3713537b584b2f7b76e3952ead9ca20b7bc9bf26bd36176521f4347cc8b3c2553d37ee02066258dadf33306a2743917287c09ab07cef7bc4435d582e3cc2fe79c272d719f133e6e5ff1341cfc139257d5a7eb146327c03e897b9668567b6cd9fcb74711e73df074ee139a57229879b903e55a04c5c9fe9b6cf669998444b93963f85ac7176a3f021d7c9409d7ee827de8a11cdc431521c96ed22fa6f13759eb03687d997a25a9bd60800f3f534b3e9c9dba97206b7c2f326b34a087be1798866d1914e59c8eb2c77414be030f8dc270c6ab76a6e1515fc70ce50c497364fc55f0ee4f49d3d22a08c6b9348042d904ec2f8862ccf5ee0b3d22d2f1a99579d35a916748ef608406883c53f18ef4caeddcd780e4a44c872bf2dca063aa11cc715e23cd996e4e3874463a1b4711bbcdc2418e4df10667930cbc7af5ed9b629ed452c240e02b58ef61ee4f1429a6d9aa57471781887f2e1890e70f7589f8d8b4e5ad223ba9d0f73d3ec74d8249b82596c8ec733881fdd0c96d2455ff5e340298a5a6fc91cbbc1ea5a8a3908f6da6ccbec88756874de1518602557d2df30505dbdd6d59469a6f2bfd240aeab1099c350d6730892585c577936181bc9f7fa6ef3dbb0c1d39a082b1a35a86899cf26261927d52b373120225752792f02cd2f196b5540121c3f9c0fab27b44b9462f6396195e21f2e1f736095554de7221f3c9ba23b72b480852c86b179c0e4778441c3c5242d4feb9851165dad83804c7ce5d534dcf918d27ab36ea1faa48149307b95cc3bf51a6bca256f115e3c618b9787a21941b58ce52abe359eb1a5a19aaf67dd56950a6d0179637ed0ea5421b899325ba05a26771b9449ba0de0b3e674d62398e30363d1d885f424dbbc200af85c87d28ae8a3054d82d4be0196188089d180acc7197f07033cca984e20732e9029e832268ea405cadb00dd002e3506e621d3fa7b023454329abe1a48f7dc35730f5f352c25694eb2a0650f9505866d9013e8b88b19b0c5dc12ce799ce8de35caa4b6552f399f8a7b06bf1e5bea54092b504d9ce81fc3fa2a40dd9ba5a2b8711d02dc46ecc222b14655b151499f4b537260b6595a89703ff56ff4c976a4592dd53d12b6fa9a4a775acba17a1b3dcc5ec0a4e03db9c9402ef6380e62d7f76aacd613a482d31cc17a7ae99311a01916a3abffc336959a491995183f531ca9ed0af40131a28da068038649639155bd12b9d3a06238cd3c4b754905b56dcd52cd213a2ea369623f32ac7877e6150d0f5ee25de926829beda4ef67cd3c4323042aaf3deecaa4d404426f234fca778826dd3f29b007d369ff1a0af66ccbbcf20d9f33565b7ed745c160cbc5242c683588a67223d81409d77611cdce68a0478bc50422da24632852862319f20b446917557588d19d8add012137959e6791aa7ae19597a8a2f875bb8b78b17d6f5d5b10c1996414ffa08e698c7789343487a62a98474a39cac820ecb1a855dc825d1d7bb9c302f9945b4ef5ecf2e85d22fdb7f440018181ce3c71fd8a6493c7e0ac2d38ae115a018a3583eb45abb5542e66cf77587ae2e1da41ef8b98b2c2616f6b62d3e2c7e467955b0ab3431d1f5ab617adf90334d87b2c01e450c5750347c1c98fd4fd4109f13482e11e2a6ebc4a362d26c6ac9e4d112d18c1e90726a2042ea3d5543c33d32ac108dcc34999db8488895315f18fc0d359714eb6c10b0dd405f6baf03c0c7a3b89d6ec2593c317e359488ab2a1e85a722b2ccfeafcdca2e22718a17363634036af5aadae7bbe6f48ea36ae216b827aee084696c7094dfb6e4fa563b51cb1fe41f8e72db7cd527c363bb00bf8d22896f438ba637bb7fe64054d69b628254a4cdce5ad92f753cee7889c460af2fc4cb10ff6458bca2547193ee76e816a39880f48fd2e246b66efb3056cffc0d233a86307e13e7fe87e4b4c8408cf7bdcea51d189dda4c4cb4fa44b222e4d0ed51a18abf77b49fa0280dea06852e864431c1b4473e876e2fe4f00d423aaffac81b95f186467e409583252662a0761a63ac3511058b4b0028d0ad1b760994c98fd7ae64bbbcf8e615e416bf0c1a594c0fdc46f760d5dc394497cecbdbf06d7db93d2a711756a3534f7550dafa01954f291bbbb511b652b032eb00b804d654698127e2ef480c53f47efb10c949f50168b1d888c62c9bbc422dcd07ea4005d751dc31d374357c10af8991adba9e139e75e3367bd18c7e1ac9753b2241960999e6a0ab795c475f5a330baba955dd34fdeadc193d9a6ea7015b44a04d0d5fea544c140c2a419c86f89ea54e4cc2ed8830938b171514a189e5517949c94ab77a5e9521a38560f3bc4e389c7fcb0b49da3f037ad53f75a85c0fff2c43945bb3d3ad65a197c6db5fa9fe3c78293a2a499ab553af3756ddcca3892133c1ee40a7b73bd19262b33364c575e7492a5b0bcbfcacdcfe4e9ec0e264b4d52576c727d9a9da3a7d0d4e3fbff2137789499a3a5b6bac5d4d7dee0fe0317192e4144484d60626f767a7d8c99aab4bee60000000000000014263549""")
|
|
),
|
|
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
194345a0607b1df8fd01f58d30010604261e15d712806f9fb99d3dd6afc994a9dbdb0934a7bee40434598e9fad7e0c7914ed8f127b35ffc7d25d5431d9b6f7d85c5015968ebf6bd70ee835d8da55ad1b9a9147db756e7ac35cc3fefbb3a83586e27cd96dc334a6ddad65f8e4c907bf243d46949290f68bd7ca9a3979131629b66028008c9850a33229e3b841a03244c8a20d4b183251a8209084115c1608cc9611d916095cc6040aa76c14b54822054113a2510c178492b82cdb12408a082d141481114300089090c482418a322258104d4036260c0446c9488c40903199488989286e59c48c1c464608b7010b234d99286c9246010c2765d48860e2a091dbb01002067108348e03466803c52904c84101224553089118022ec90665e2006111021108258d63102482c009920652d324820b361198b40418b7851b184ac2083192426c24448819926821286c59b22c03033184b00091b6059102086000060c3491d1324e18c4094c923009456261b07061102818328200a92de08869cb12848b944c04190840048cd1087054306019197108810848c6841aa94952c0010c442151a0602009516088312243059c0486431629d2064e494420d4484523b64823288d9a367214a39088b04101a4095bc46413276ed8c465103450448010db908d5912480ba54824a18cc0366dc48690d3c48cccc82c1ac62c09c684c80489621451e1044e022704e2124514916c893288e0c480899249e2204408966c4c402da1884dd1145040140409b25024a805043752202369e02225c1464000178da2b291a41646201832d2066a21942484006a43c00420c349d48011132168a2380d4a4848e2c889d1a065c40849083909802480d0a269a39625092204c13805803844090471c0920c24300ad8126623a5310008501b814819446c13b61110a80cc0b871123885819671089669cba46c0c8525489211e096090a2640481644240322d0c851d81452c3128a9aa0611a414d11334a9424520c062e81141263984810417298460d0ba64c98b81024a76d5040320b427083b8044c88050349116382214ca2014a2445e3922020c76d22238a59b849cb0250100946a2484e624490c920228134018c088224b78c03a20524862404178a1101464046880b460e8b8640a3b6514b240d24443104082d22a265da98645240059c824ca21640ca266843006d41c6519046449b82405b226020155048044c59a41163888944826c5bb40124914c23366cf182345ebc795b4629109448f210245d70b278c08f9ba6a8fe4367262321945042fd365c70fd042e81b3c244cd92fee3289626e175cd20642852cfdc1e72a16d4537f85c1dbc25d69bb8dad510dc259e5d7ba1575ac940431a237806900b8fbedf88594c69ea597d4b3dec2328796b644604e63855770dec3d439ede08c27e01950b3bdead4a0b546bd0e6bd2b6b62f10335f9356dfed825fad33fe0a81c0dffef21effa8960cf65c22282ab77d66a351e4e1c56a4318abdfc6e20229b14a0d3e8de682c50e9f26c9bab44ec000a8d78dbf63d5bbada80089e6c3a300eca7949f554511f647060e23bbdbe9cf77d68ed3cdac0ea0b491768eafd65ba35cc29194a1e0349fa2ab09c920c2cb87199cce638a15010f3b235e7f46357b5ca7372b6e1cc172ff2df92179062b47f78a977040418fb79a4dd9a48dfd7024727376e254a64822002e7060d297a9d081ca39f148e1c472cec5c34c39e84526dfe3ef6153d21720266de887bab12a0f37fd0a79f8402e1fe9f2c149789b25057cad2d4073bb54d56982ec23c541cd3e6f7727ecac5d075344402ec3400401be314b4b4428f0d7d619bb2b8c3d0b35ee824ff079a3431acbb8b644dd841c92cfa8610aa302da74f2f8c91ec5b91a3b19c10a5d3bbd92b5dd1112630cbc606e0ba22db2b71f6b3f24aa171ab2efa4de7151e1fc879fbcb5828f232083d055507930e7bfd54f34aecaadf28a4d0a3220abd4a7c03b32e635223f963337ff7f048d7465116fd149bb0d1ecd112f32f38de619b50544593e1b23f661a56f6abec97211194f03c03697c4b5a8ca1ae309629a6737347f23307aee2886ee24b46f8ed8d0f44680a0e9d2af553cd154a2c2812a8132da51773d20c7128057c5db127b271a2453d7e5bb72ed1012dc88f37687da5e721b6848cecda1984df797100dc57a7ddb8d751b9e16c3755f85ad8adada51b3f13a08c93701214cc26b33b5e763f9bf8c3e793cf224f03df1aaa58e95333015904f2da7526482856560022bbea43626953a375dbf8d0fd6aecd506d6e9e6fed3ea6cd2313f57be0c0939a82b95e9151f9453029bd4223dfc55f8f609ed52d78d114373d6a0ae370f5a28e0ed6d29dce7f2b7f00a02eeb31b76ab98c432873705a43ed9194f5ed014874b019116b63c9408673cc4812594b682098c42c69b70e2e7b29c2ce0fde2a19190bc5a36de97c3d6ffa1bca253f2344ac9c0373f0604b0d08377469f38e7ffe86bdc130838452a1f790efde6f8aff903c837b0416507dc69c61d39c2009f4913c0750f4b3c16efdadbf755401c455d9e4d3169323414251e6c80257d75870e4e274a2e7b042ff8b6b80270b27d999669002e811308211cd7c74f566080f3cf591656810fe1ce9ca2af33825c9526531c34ea29f13327990e42b45595153ecff4489c1c25b6b5a565432ccdb880534189485903b4b3c05504e8b8ae71eacd12c57cedd28d0116254c725d79529d17451ec12e05d1e468effe2641f5d7268c9ab0db2663505d65ec2c02959937c95d3a531a2fa91f99bbf527c4effb4607f140fe0a0b33cad4fedd87e5702eef7933eb05bbd42c853f022144ed5886ff31ff633f8a5f8f88ab32c925deeb8d12e72de7e92c5db2c4a7b32fde5a7a5a381a631ac547aa3287183371f6d81ebf5432cfb0d93ea3e8fa981bdeba4f5e81d60ac6ece3d26ab9a12b311b21685bbb9917acef5d43c9e4dee2e98811d6866f008b159ca3e43e849d9097d8c74d1ee28b8c6700fe5c2175cdd004f9a4e6b7f25fcb61f562f38b0b3a82693052f023ddaf9c88950a379a0651b23791722f4600d6bafe33b364a0c66495d9f360cc66b80df56eff38261835ebaaf3ec8ef799b54030c9abbc0ad6ba83a366533683a9db29170e074eee296efaa38fe782064a0aec2bef0be52c780c16981bc8c6bcf748c109349e7e659ad14e6c8ce6d35ac6f1cbaa938b39e869444aa08643134e5871d2676d11d205441406e378c26dd1afbb2fea274c5b718d4ac16c077d6e15bc0dad0b3d9dc81e2a1c9089130eaf417bc50fe35e8724bc420ffa1f761f6cd83bdb0bfaa6d0f399026c6146ae4d5d580f4cf490a464461a430d8f40c60f4aab01fab0e35ce12b0337253c54ff1db1f11165b315565be66ce094fc289e6d4b72189d4551df40c6c86878185db87cefdedaf24be22922046674805df74111c3cfb89351e92c01d207253841afced4c5daff0df1864d8e22bcf81c17565f2226d3ae2cd929c234f376205a6962e024ff08a3f00bc71a3d39d67fb67cb94e9f3d7ef78a5d8a7b86585eb8999af3b054d5523b9e4a4d944c7d195d41c286eb95197808"""),
|
|
TestUtils.hexDecode("""
|
|
7EBAAFA6D04129716131907EAD0832AD490D09E97D865B4AFC5D6B0FFF4EDE6A52E961ED88DB60A325AFF2675DFCD6A87984884AFB8680DFA7378130E44F205398ED7B83B1AC32D2580570FD6603827E8E4F5E20A27758CE6D1299BAADB8A895AD586BDF7B64F8D7A52BC15455EEF240F22FE98CE4CEAC03CDF7E8A983D7FD1A59C5EC594474AE77DC43EE4E7B25C556BC1D91ABD2015B99B1AF5329DCD41B93793D791A44AF5D83DABB8E40675EB32120C57D9E6B7757D3E03008A2F788336B8355AD2E47E61B39BBFC2229D53BC9BA514BB20F3F9EE9266BC0015FE81980FDE5637B3018046DD3D4BC3D549EC394E190F1BB788619CFFF86C532B4B9F0F6F951C0ED691C59AB0CC438290E9D6FEC9E75BA4FDF12D2BED2CD988AC411310BFECBDAC48A61099CE0D0CE4B44EC9C97108A44E5C5EEC1D3154B4E72B8397CDB0F7D15AA358076E25B7F3EA1E6E80A214051C440EC4189137610450144641B1E71B5334F0DDCE9D5CA30274E0237E45B4D92D7D458ED9142CC23871E56411382CE40D9CA4358B417261C2E7E845637FD2E9B4357E7EA5F4A8076A7C2F40FF1F8AFABA5393512F690EABEBFB73811B974E57C2D473AC22E747A0EDD39E99FD6E5D3668F3DCA1C795CE27D1A155ED9595EAF9061CAF5C55F3EE97056AF6ED90E05D41E90926F69044746230C990118E4D0BE4C12F7A4AA0464F8FFA7CF64C07FEF171B2E43A917AAC2880675F929583E9040BA6FEEC8262002613AA91A2B8D4DBC1D36F23FA9248A2D3ADB1DC5AD669EA219D35DB17C9C25095AD7673445E59DA6CB2260C8FA57639D6BEC8AEE307BD9C96EEF00C93318DF7DFEED970DC1F61AC5C94D4086300D91199C90C95C1A24F7F1E4292A60AB67F30BA990D58C71002D3548A412276DBEF3984FAB312723880ED479080EEE2B636ADC75AD4423A6E0C5CEB7EDE528F871FAF21855C3164469B9EEB47B6D37CFE4222DCD0B9867B00BEE12C27590DD77C24FE640DDD34E9138E70D15F52E94F3874447CA5CEB48573ACFECA3554E2B76CEE4E31060BF132CED8AB953F0A280F7916810A107AB5BA66047FFF0003B1CF13BFEB77526265B98E54E76B891A89F3AC0ECDF71406674865A0936BC57F87B64424BFC8FDC41E471D951077C32B5AF960457E97CA05F3C378D94B60A9735E9EDCAA96E413FA391AA687FD07D9D021B1014CDF241E5460DB08D3B336DEB4CF0AACEA57E4DC6C464F698CFC2AD10CA72C102A25787E0B89249F63406A39A2A792B2DE04710C41DB36B55D2FA789004E593DECE9865771D8B16B5436A792FBAC9934852B1F55D518F9A07CFA56BCF488D61AE355D63BDC27DDED6A56154B8BA3AFA3EC9C01D6593C83C315527F5FC61BB169723346AB4075D09701789268EC1F02EC4A1CD8A5F2584E29F126B1ACBEEF660CBEF16A8E9FF9C0B542042EA76684F9D70F2E3F3C18606ADCB1D695112B129B301008EDD5E6121A8948E1165D350FF09647DCCF4A1F8605ACC750A0AA8319A6685153A7672B31A3DE785EB22E1D223D6271282AC18AEC83C760190799F082D7FB0F238F627271BE62AE5A36A34D65B5DEEAA12D6B14B59BD0C619D8D9A44238AEF1FF83C30118039E834F7716CD59E138E2ABEC2921D9FA92F6808A760031B2157103FD2EAE988AD6CA4F350F488261409FE91B5667A9A2EF1E226B8BFEDDEDB84ECF993E9A71220E0253D2C4B918C5521C7953FDFA00D50A32879FC0A68D2AAD13EE181DD47DB9E3D715574CB3D566BDF30209297B01A666DD7DBC5464F913599086AA2FC6C8541592CEFFA067B287EEDBF4C9B9D6CB23CE1DEED628935CB2D6B5CEFF3BC442B2BCBBEFE4AECFC455A3A64FA117CFD9289FC27E6289750005877DBF64CD562E2E7D1C99830F5AE63C70685B3898D420862A8C4569F2CFDF564EEF4F94FC34CDFEDED8854855F3A4E52C612258DB5EE4D702BBA98B450D070264FF86A440129DA2C126978DAB3341C4079A66F9C23445C5938FA799E78F157656208BA7C7BC7F936AF49D11148856BA55910A6A736D32E0974E50BFA608975E37AC0601FDA7551204EA66F524DD03F44F5DA28EED5D126C32794F1CCE747DC1E9B1FE287CA607F81FE7C795C96569E66B2F3413DA810035D472B7F5AF74F9CC70306A8EC36F1383617D0FFD92F6DEFA7EFE91C840EDF24430B197802979752FD55A8CA85FD8D4FCE774F1CCC540F77C02E16F1494DF170CD8BA57A86BFB086349D53E8A62E1DBDE03369757EADB0E985A038B31DCBEF513D4FF9A3BA6E8338EDCECA7C3E9417F9E133BC399F2EC0C72E60E809F79D55FE1A917CBE28FEF19D6D08A43F74DF496EA9305072C90AE3BA0D21A1AC0BF040920D3F5B8703C12A32A6864382E9CEE8D00CF4F93830623E76197F7F52309824B08B8E0D5DAF5662A36981D50880FD3A8D73D24430A1CB201A9D0BDE656593B37B8EC47F235B5CA251249A04507DDB81F8E5E4E5E414B3750AB168BA51A8873E6ED153E302F61F7159B658E316D6D183575D87ECA30185CF72C67543CDB658AA07B1DB220032DF80D287E769E3253C80F43570AA538EEF49F45316E176F1F9411F3C085257C6B8C708DA7B924B792389A7EC34C7F778E6100333E8B9FAE75A4D1A32E306AEE36D29FC6823399FF37CDD0D11C8D03F14740342B736C4EFB5302C141A86C857309A70BD74DB6C7C29C839F8D86F2A136F67A0FB3A3749542A9DD8D4A062672C75B67D3BDC3FA6B56F3E79008AEF8D8E04CC7781B23D0DAED64CFD1A91DBBAA2C9C4E765FE2FDFE6E8533848E51FA027B86AB05A0530F15C1B7B6BBB268F09A7865E202B1645F8B4267CB1A49A2929410823AA9B834101E9EFFEAAF6E406639AF7D2710E60A84B6205339B0719E05BC6724FC2892A017AF86D80D361A7FEE8C284CB84F5F09B90CAADD49CFD396E6AC36052F5CCC8E7667CC762A9F173F837A231D57584A3BB19671B8B71907E415A1672475ADFA11998F94F28B00903AC551E651A3F9485DC0ABA3297E561E0B5A5786BAD9EC8169CBD706AFA60AE764BFE01EC514623BAC6C4100F707C5E8A02F4B0D6265502AE4170AC3EF95B49ED1A2BAEF56F63D5667C9FC0AF4C0A8648FB6AC5444EC8A1FAF4715027AC9F5987735D1AF7C55AF4C838FE9FC84FF71F929758DD52E2BD4A34237350642C0E641B6710A66C9C1EA1D9BDA80198FCC56D45D67C3511BAC0971AC9B6166633B1713A969B8DBC3CF60FCD6998137AD713EA3ADA84169D49FBB7F5CDE362ABEB0B71D022D9ACE7FF48C9EC1A7E0C72B564FD2C620272A482941443838D0506E2294B760AC9DED5404D3C4D2898315D3E3A82D2E944D537817B9901AFEC343B95F2844CDC4AAC3836E7713739F4201B95C42FB7C99AF8667628C1B60115BCB185754148B3C7226DF14B6DE1AB4C6043329B176C9DB9B1D73B3814FEB89E84A4C91C84993752B7AD30CC707A71339E8A277A5586BA85CD090F799A6B75523A62C6DF1549D787BD8722D1F26BC2C150D6A38951F3014B83DE665B21F5D9D97F2237333CC10A4114796D56D13D643364306E7445F475729602A11F8BEB002BDDF30E579E26F2BE4AE87DC666974E24FEF2462120B6CD8E79D65A2E80542A9240D4EE1F616326AA528E2A1282EF49F0312174B67D40FFCB1370BAC5D1444D75FBFFB6B0887F4573A8C4622082E1FE349B2C73CDC92592F684769FA7D7CE6FB5AEADF38023E51DA4EE3EDB10368442B218919341FAFB22EE80DA96A52434B184D499A4C49317C62F6D6DC9EC1413D01A1CC3DC8853444E52718798EA158A12B72AF023079E5E76F41AE685494E947618C4AB3036ECDC74F7A043230A0BE116F2B617818A2C94C54CFAC964C73BEF969591A3CB2B7DC9CFAC7B4F9B64AB70BD7FAEC138E42908BC90D6ADFFBC88EF473CA8CE7BC960C4B3EFFCAB92E8259CFAFA85EDB7832B3E630D6D2CF031B8CB570E38C101A56B426C654464228D152ABCC6DEB888DFFD7FFDA974E60CCC2AF7531F38A813E263D9B20DCCB50229E7D8F379F81A280CEB90B64BA3657F1E50381B468D0A6608A4B5E107C4736FB4CAA10FF3045C05453EE12A9FB0B79845E077803C69CDCBF7CCF7D6FE6067ED152F67023CAA6095D1748414580232007AB3426FB2889E1BCDDDBA539A2D79CA523A2CD1B1314C87502909DA849BA9B11F9104772BBA27410018348832B0BFDA4F09AF02B351927F2B6D29D9CA9F330266EC035908C9D4023CDF2343B177F57903D37AB89D0F9E23EB0C4100BC6421235CE5FF2729C2ADCAC24D1151757D8C6D6DE53DEBC38FE866142D1BB593974F4D3198C03DE4625F41BE3D488575B25007C2D5970BB152BC1C23E48A88036C070BD38604C5844E4205F1EF3D7FAC0B4B9FB51F229BA322D3355E458C27685130FCBDF591C0520626E5703A2E85871A62AF0CF2DA3468C401644656CCAB33B2402074C59A0EBB57928F548B5FA4871A8B2AF0BFD9A871A5C257044C17E4967B70D0DFB59F1345526FE59B4BD92A1C06B15E3A6226A4821FD614D8DF612A3D2DDB2DB67BAA3878C68C16645CC747BA9B366677541171A9264B89EE18D9D169D341629393C5526C28B24CD4CFCACEA9C42DB2B1CAFD7F906FC17CCE16612B1261E62E2A700CE74DE73174D3A1E06AA31AA05044EC324F026CD39F7B13399D9D86EEB53A6DE84914719EE31AFFEB630F3D8F08B4FFB10016209C13BA2158ECCB4B74BF04EFA73222554FF5EC49709F7F8DC1D40005E91245F3A5E2A00B9F64678B2D8A9E6BF1D011900D9D12F7F3BB023D1E5985BF78F8D6132AF5C0B9C330F361EDE00473DC9EE7469478FEC02670E8659B643B92C5546C32FE7B0AD816A5080B5E3867DC209EA15AEB4B14E42AD58F34CED65ECB3B519A54BC25117EF8D392A85C2895B5A4B73CF93077E360A828570FFA02ABA84D6534F3EE0C935D97D1D1CFABBC0D82E48937797FAB31704588605082A950CAA23D6569AB793FDC31BBA561E729E80979DAB84ACD4EE6B2CFE06D2EE8C4183D33B9F894C6865D9CD405C7665E0150B2B649159BE684839BD12CF0091614E1F821046238DC9F538F769FCE51E9B8DEC0E98442CABD3A4296F1D4331A16D33CA356B11E3DC13937F814D3D6281A746F054606DC52B737AA40422471139867624CC8E9C559BD25C7C6D7F902677A84BA63E8CB817820048C1C0ADB6288000EF2163B51ADD4D758D1C87FFD574354B41CA5AC72228A7E9E9E75BE9DB18FED47C32E3C561C972A67D50A560017BE794AB9BB6B50CFC43D2F6D57E8D73CAD6227C896BCD18E0D7087F57C365FB9EBF5864DFA4A13B6B5DD7FFFCB648C1E1FE40B6A10EC0C45C74504CF2105AD443DFAD1E306F720B9CC37B4A30198D3123FA9FB2A7A9DB3BDD98D441B03E0EE6A8180989E76CBC71B0E8607C3A9E5D20B6008B010702FC5D59847AFCE122F3FD4FB5D89D3A3331AEFB96B593F724C04885B574A43B5EAC70B543BD191BB818768C67A10AD6E2D62AA4C65FA373A19116AD86A4F9A97064E0C0BF80106DE6654B4A3945983B7DDF3AAF1E14A04F6D3035542B0F710352AFC20FEC78B61D8548B9669F10B3D6E531AD07A84C493264DD49759D95A6AFDBEA5AED1C7D7D2AE6D2FB6747151CB6A5C2F9C1AF5CEDBD9CDE8D5993ACF080A0008BABC759A9DF035C648609E610F226ED128E2656A057862246B65C70774B68F54D68073393B85110285FB463DFE394D9DA0AE85985FD6882EF5B11FAEF2BAC18F9D9D9B5CBF0F80AE7AC4418EA658D68B14BAC135452DF271DD3348BC338BC6C789ED95D5C5625762E4CAC6514866613E6D533AB9814B7C337260BF16716478401689F4079644DF4F734281C16164D19C4ABA20ACCCDC517EF42C19A5B1CAA4658C27B61902ABF88EFF0795D2C971608B0570E016CA0568CCA3F7B38FD3DF5608154A33C1F0D70C2AD0EBB134A8F475A8BBEC8408D3B9B0BFE8A6F10FD6C979B13C3EC73F191B788A79B4D07AC45172950689584C909247DC8A4CDD686186DEA16676851B8A7C311439149B1A963B0CC60E5395B56ADF27C25A51BB4A2FB19E14CE66B6D11781E89B3EC22CB854A12D46970D1A009AAD071C479D9C731770D666CDF0BCC381A3D328542F6371FC6F5FF7C4D3BB06186C048B2A3774EAAA3CCBA1342927B498F2195213326C9E393153BC8846AFE2120B8FF4A455B59AF6E65BC0CE9CA3502BE73D74B6CD12A760A9E0E0D26BD105FD993DD879539CD666CF2025DACD481A122627594CAD7C4FE30948412C1C6A160C358E16B6B67653418A22321DF5B1A9EA0DFC3C82DE3B8CB0F48EEFA7DD6188023D1B8B7632270E63AA38873A2C4472F9EF1E8DA56D5328C00548DDC4D9FD79115C5F6168AA98099BA1AAD606FB92F8D253C9A55773E5629E84350F3BC3B00D803E83CC2516C6C29476018ACFF2ACF61584A175E67EB8952885772E6C2D7F9C2B79C8B2F2A77C73C8B0230F080DE716B2A13DBA5FDC8648F17573A2898E72B8850997B6085F98523F00516DC7A90B9C2701BDDFE505A6C330D1118AFABC731A1DEAB813AA0E17708122C0069FB61A02FF6D5EFDA990A23E1D42C520CF1975FF06F123E1AC0B0A86FE666F8843C406F5F1E1A36FBB7A0B41CC641EB49416D6F0AB03CAA6AC0CE3A3DD1977B4D16EA33CF75A37A6092003D097D0ED8FAEE89F761B40F7E600FD502887AD90BE4BA311B9F4CD9D348DF230A2EACBA3FC356B506ED8C357E228970A948FC4983AC3ED9C3ACC22FBFF56783A73231F7E0B91DFED20E754ACE7DDDDDCEFCCF3ACC76554C269D634DC228B38C284AA35C00487D7873C8CFE8E8657726FA845863719FCE5A9E32406E2191B791F76DA035A4C862176040DA9AC0F37E66FB84DF89CAAAE9D8804824725FEDB95E5380DC66CC72BBCA1E131E6B785EA2B2B4A05BDAE01B22C3D47CA85092802A8EAC42E963A62307476FCF94ED7EBE5538A8C6F28A6C65914CF48299D3BA2B89B3008D29CD874B79A72AB840815827566E50627C2C332B1BC60060BF2FDA320FB040FD14D52CA59B24E325B5783BA1BDA3B27415C9DBDAA01562466322706CDCD0307C3305DB08D2663C57F6D3307E1C73832F8CA712402C7402EFEE0F1BD77CDA08F5F6582540D34F1B2809F84EB2F540558EF9ED46D5C636C45856AE57FD9E4650359635BE72028D1CD37CD876E0DC598E360CAA1DCD1F9F2BB4CA27CDE012980080E91B1C7376622907BA6674F1EB9E80148E6A959EC74950A2B934D42B84D739F1DA528F5C6E1C90A238E5167041D4E9AE5352B74C89DAE368778A90170461ECC0D6B6C6C53CE36745A72F79AAA1C82D494BD89D719800A89127BC3FD55247C1A29FB8387F1E3576E0C45F4D327C0B24A75FE25EC6147C890F25E50AB3C43B94F451E5B5D67F8D3BAAAEA1FE211FCE8622600400F73C1398459EA7FC59D02582C2806D01023D84BB50E99AE9ACC217B7223EDAD956FE155152E7F35B2AEE1535885EC048C6E0C50D395B0F1C9D767048E9D2DA7F15BDE192C923F1C74ACE06600628602D1B0189FCADE0873880EE8544AF3E29314E2B5DF87BEB5A50ED72FDC093800B12CB2F870304289A73A65D7E2384EF3A388EA9F0013B2B5C92149E2538542D95FF020A23E976A7DB3E2C9913D87D6EFF12BB51EE298F1D2CFF18FDBAEF56B70CBA35EB9273F1E58A6CD38F1E682A759FDF8D8BFF60E7CBEA948E25DF0114BEBD4AF13E4E0D4E7C9EAAC2C5F579A1AB14E7FECF9E13F20DF873F8D0E090905D32C8F8C0033F5D8E9F1B9FF17EE04FE3656EB66F5E4777B60B047DAB9BDD883EAC31A6455D1719CB475D1715CA0D12762F94AE78CF3C8EE90E55E71D0AA4EBA6216A0E81566F7813E7759BED30860BF22178407783B9A8AAC30CB4D53AF140E33A47ABD60F33EE700C323277E751E5B32B221E4B9815FDCD400DC544DF845619FD733F164937144FC3D89D8186F8B898418459811B3E66796DE51D1373B248A9B3B9609FEA374784A33989FE9F5BB26D2148F7282E09C35E13295D90BBC7795DD72CDD4955E9D148BC779AEE9C7992BB85D8EAFD102FD690F2C679CB7003FC4E182678320738361C361747F49AC6149CF4CDA4B80581844F5EE4818BF61750047C35A4B10697892A80F07E946F357574527FD2D0187873BCE78EC99062C70CB4ABB72A104A770CD7ADBD20894E7BCE2874E45302DC0BCB9645EF28136F36E7B179BD003D5DFA68A572BEEBD40EB9AC1F9228C74A788671BBF4781AA31C7F8699813F32EA8B60414C3ECB894DC7B01E50924482E5C068F0BCA79BAD9F469770FBFCB3942D1A3E54250E87B3693329479217514A8D7B734D256C5D28EF854FC3F234BC671F5225B1DCC20E590D8E5D09C07B22EF0A89A5B863C2E652CC0B1623579541C63CE9C2C4F66BC43323D7000BBF2923F5B8A76933FAF950D2172C1D90F522301D9A0C22F470EB8673CDA0A1B494FD7EE9AC1B4597B2DBC26FEE33A08CDF91E3C59BA4F93E02D010FE3F1C1FCD694F05B7A8FD32D8E7CBC2934A25C481D9C58FED7E0AF3AAB527D6DEF43D53756F0C95B2B58A426F7F61D09F4FBE55D9AF053B92818ED9FEF1CB41FB5CA23AC85B0241900F73971558116C5809F565F71333713EF5BE87B0AC95364C9FAA80DBB9EA84B5A5790D20343141093F86942817D195ED8DF4A2DFC7F7090CA3DB46A92AABEEAE2D7DD8B9110F23A89E4FA7B5A1DA27D643BB879888A2238E221E2F67D9DF58E73C46023FB7E999059D3B81FB753B2AD333207873831AE42FAD8092AA04C0E4103B1CE0DCBD6B06CC2F0AB37CD1D10EC4C83428CDEF84041D12BF9ABEA5C80050A853CC73FFF3076BEE68078737F6EF483F486215118C640790D0CFB4C6E5243691FB73B1294E0D3A494A4A538B94FDD2746193D9FEA24C1C04F5B20D2D40B638CB932C35D953A9D31260B76DA878FD52EDED058D1DEFD9CE214D14C3112FAB00B7F2DC88F7EBCF79EEB1C9C8607D6919B8D32CC8416E2B981C141198DD9884DC3927EB0192B6361AB556EB3977E5E242E5E26BA60BD42892F46F3F2DF684D0D9FB41BE42C04F0C248938AC79F110075B42181DAE62801DF76AAB50AEDABF4361C0EC597F31245B0390CE2629DB933E450E09DD39E6A1B644B0FF672B52ACE2AF52780D3F6505551F52045028C4DEE6D1C6A34BCD5E95E9DE1BCE849643BD07E0E6FAF8B27504F859D73BDFC07FD2034595AAD85A9DD9AA5B3A72346D6F3C4B21C4CFFAD8247C8CAF0DD9A708E11450502BF3C28EEEDCB0E1D32D3EF1A3F6237E34C0E4D0222F496839B7374EBB7D786973E85392AA8FF2A9901D076DD4C65635286276698DD4388F867D1ED18650FEDA9B03C80A3B5BD0AB3A62A45ABECFD55898BDAFBA58137D4BE29EEE8B3B3D1C4467B63DBA1EFEF2C81CDE7CFB101B1E65084A0E92955690C8CDE6F93E23FD79B76DB475CD24DD92A7504510F8DC3B22EBCD0288B4E479F8DD835297B196531D2DC759364306EB6780FEF31C9E34142B55988F81312B310093F77CB89C6E819A7CD3450D0790CB7B5E33A3E5E51DF05A3BFEF63320CFF072D450D71E7239AB24E4D83A8E8E501A5BDBB041219E15517B15EEE237836672A761D36D11EC973BAF65320B368906392E2689A9936752563172B3A5ADD90066E01EB394C77E40D57553B883F446C42EBB9CCB47FA56816B06AAEB62C21C8F57F926420AB7C1D5E97E73F024C259011CD585C23D30F99D22197B569D67BF5965887AECF553A9B48DCA0C418778AAD65D4843221B8217D2D61BA5A46C4F9FF5B00B78CFA8B6496007A1444503DFB8D7CDE7A63D5D7F54EE5823A33EB3A155C20F0011304068CE0385A09170606FF6895A6955C211AEF5D13BB93866C9CF00A911A4A50A59133113A9C7DC53409097808A6D0DC44A7776B41A7A43818C77CB51F3E20107F080F6682D90399853104B8F3AC4DE8521048B22BCA58B5F7B5EB3E3503F638C1FD24568F23EC8C59A3359A5C9CED0305B1B81677E20EA35F9E896E665D3CBBCB6155E1B0539A0B26BF95396DB8548124519B71BEC19A17DFD4AA2A2E134BEFDCA352B01E1255A12377D811FAED7809C9B881B24C185F1D1273F405F5BE82FED08F26E6C11D39A604E88A1EDFAC8AD3DA9FE8B1111C7E038A14CE58B9598AAE96B7BE84C153A9B26993CECB1CE931E0CBAD5F7F6C18B68E14E83A6BCFA33AD2B3A707118D56803A1E55CAC8AA93EBC47F9EFB"""),
|
|
TestUtils.hexDecode("""
|
|
551742a530ae4d15d68f1e222c8865e6fa59541a5e4b6e137197b52a5cb84548c099c3328b28865c34e90095e8959c65f68d8e4ef9e9cab97590736dac647c93cdec474c3e6d1c934e2eea593479349b6e56b95dc356cab1e2a2a7a94dd6490d9a186879ab75f16e0bb792863a7a8a19ed88d74d22f7c17f3b55b4d6440fffd4c24d814d3c09cd80b3d3d137882439f628337061253522775d68c1072b8df9403ff65679d24b06f1a2779ed76ca3ce153c264a06cf04948eece4f06243f22898bc815a90344479a8edbee87d0c5473474b1b588006f6dce5be82c7bcc2db7b50fab4c2cf06eefed93110aa634f6691e9b757aa8a01ca52912040a3ca6cd6f9c596eedc0a9d49f1bbee32eceb2374336f07e74b425d6a894f8c3e49a255068d08ddff453dff688f9c74a2be872e2a205018fb3e0149113ce438a7b83e60f536ac616d748fb2c590f3ec7e4c81629a4fbd993ced51995432cb8b3778f7d4e375fa54c9511e8e97323ac021b7cb2184bcce98f87a2712740ea1bf33670c4a718b475b31249ddc1a9c2b216efa7b5bc01f792cdcbd07f3e7719f71b81c3a31d8cfb7dc07efa06e0740743c9bc515c0983c845b1c7b2cfe7745c8d0e6967156cd36e88c8e3eaeb3c96ede6f94a53eb05abbd3ce8abb9f4d2c350969a8d5fdd673188cf5f8da51704b7390d8de842a18f5d900da6f0de22b9b4836947acd4d49de53e6bf96295c3f89a01070fa3742ca5070b56afd534fd4bcc280bfa5233ba58e3bcc46cdcefb5a07904ead0092cc088e8ef1de2ae418a8f977dbba6b23a634b93abf5135504ec8adae1647042210be6e6e0c9b333c3f1d0dc906ea63eca4697823fa06cbaf999ffa6894353d0b886bc89b6d8b80d88a80b570aabd37e8bfebb692a61ef6e344b4bc5d10a4d4d7aa2b2c47935ce37c1f2143be5df3d55f9a947c1d7244d80a74e92822a7e178229d703ed770a3a2e8e07cd465d6b4fda758867bf09dcbf050203796ca9a6926196f13d8a5d034f566522954999ab327307189e0791866385a3eede8b8485d6c673ca69452d0a7ed6a32142b74115cd39c797e48f38111b309a3b5a122fff1c8afbfa7eac2dcac8cf225c971b88a49e845447ccfc634341e2eeb214ab57de15ec8de38300871207d8bf98a4b9a44642679a67fc1792a46bc051cbdceb15b4355f56233ea87dd6613afa535b333104292e946ac29b73d04be3b83a0a6afd275fc02d99fa0a0b1796275b45aee6fbf801f5394fd5bb2670d18bba553e533d39d0e66ff194a7555bd23ce14ecc97ebd99facaaeb8a0d0e088d2b9bebbc48b4fe32da39a310e28150936dc5e86bab264baed9721beec5a6ab21db810f1bf539d4e6283b7a382984595eabb42b21aef0a1186d66c988132b0fcd17ebf0bf9347d64e334e165d1e8107f6b49403d77516f55e973469ec6d3ca2ecfa2df3c7a82d08ce5875e4a0997ab9c4189e1b4c37b5567fa7731d6981d96e9fdc35abe9ae1a4ab30c5b329cc617a2f92cb91109738a7a41da00c48eeefd6e003d3e25de538bf85d83a4610c0f86e7af160703666e6fb525122ecbacd13242679cb02298777001fa2ae853ec73eb581229400c93408644bd64cac57854113aff1fff6855e2632e1e47bd145865a142c9ca2000b2595fd4edc7a4b4cced9dd87a596a9e245c25fc87a91d676fa0b02a237f895df9dbf2eb099a60fadc4b8829bbf7aaf94d1fdd10dc560244f0d6f5394318497eeac7cceef0bfd8316914f766396d9a5a7cf907866f85ac6e188133614490e1031dbb8abb003b2fe2995a28fac84d07dde5987a981101087606d6b4d4fc1bf7b3cf56f667ffdfc28adfefe6dfce01579859b662a189306cb048bb4b8d66fa9861e83fb28c325b89abd6838e71e5ebeead3e014f40b48a36f1d468a4a24954f571f4972afdce0d6f9dfea1cb500b6212bbac96e7a3193691eb0823a48e6f49b63eb4b571dc1b60654b6a882d84ec4a10b5faff8c0e71bf1548578a8bb4b772a9dbd1a76792e4186ccaf692a5cfeed5414be448da61b1abed7d58acf60c60022d6f87f25b291c226bd22c9445d15e2dabcdebc6fc91d780493865f4dfe420932d9a106e81f254d97b91d00efba45517edea7c8dbf369a32c9d04a5d141d3427c68b19f189af86b3e2fa8ff622a14947d4a5c4dcd12d3e12c714b32075dd9a9c35e8edd715901559efabebda589fd123d0a7ad33bb67f353bd01c4ef51b26a187986edf0ad892b4c71b2ceace37f103dfa8e933bc422a2799dce9b7ff3de92b578e065b79a8e7d4c028002f5b667886bb783bef181f4040c5b03050f9ce2b9cda0787ce21675222dfe20c40640a37058910069a0cc037ce13a2bada74027901a186b5f194792105708877eecf678aba0436c2dc304e8fc040996e488f764f3d0f52056edc69b5a6e901bb0dcc75acb8acc9f22249961cc5df3d10992a32d724699120a264cddf1450504feb09d82b0181e0148f7ea9ba61e99bcaadef0912e1c545ba9b97a93c9cf5a8c29d3ef2a2608a32684b30ee7d43e6006e81c37b636616e736a019e26079d3025b1c5a3997fd9021634627964a01786891218711daf4812cda28892fd4803dc5ab334f18355cae65eb68924ea9fae67b74ade42b96ebd43010dbd0536f7224fff388433de015721b73c60d4dfbe1101100efe6e69965fcbc8eb442a233654b94f79ac0dd967612fafff60141e1fb714a3e88147072c2b44ac434421eb5295a9ea7752abfd6dfe4e10760f0f1e6e486172d8d4b092e043d085c800a58f5c6882e37099f21565a04ff5c12ad4d716b30164d8951f6cfa56c93388fad772ac2fcbb80276a235fb4369f01c77266f2286b61510eebeccf4a610f995c850b2ca952c27875801b692f8c1ebb61758c44f97ca4628837ab1f6807b57ba56c1b2e39e1a002dc724f06a3fb1510f18b37b0b48dfc21d453ec3a576fcd3302ce89f313ff2aa895f0103e11b3c01291c112a4d9b5f67b48767dbbceb8e1a0393dc8fa7b0b7304a02e30612cee891cad631778726124860518fae5a1b162aac95a6a3aca66e1dfaded70547e4d934bb01034038a23f63e2695f554cda78d42808c750ea5dd3c7c34e74fefaa93a91ca66a472f2c1f8a1de3c6e876fb7721105685639cf82ee003704637125e9177cfd964acec7bc1474ecbb0283e317a03696bcff64e4bf6e58e3893c7fe4d41886690b29c2d6f32ce57ca25559c3739e14af58af1d96f581e469f146d727ed4ff89425f4be0f5384ccfd5941f6c859d6d532126dcf4529564be166d880b4d5b5c617173778197afc8d3dddfec020c17373d494a5461676c7b8c99a3eef2f3f52c2d304160696c7a7e8384919a9da1a7a9ddff071016172229405d707cadbedbdfec000000000000000000000010233645""")
|
|
),
|
|
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
d7910e2ff97acc1d1ab59e023ffe199ab92906dfd6ab2e463731ae484d0393ed5e0870cc0eddc5d81acbe1f76adac417fbc11eb77d0c7e4921068792f54c5aa194aa933197110060309ab597bd1c5ce33101ab6e50fe871d4ec627437694d6df728d21ccfda87d828ac5950e846a311e48103071ae5b66f3155d87e68c0a77d70c964008122590b029e1346d60820c40480c0c428421424a1c364d90a06dc1004c4016895b940c94108d5bb820ca420ca44208e32248024722e2202dd4c444da18814a806c54167208126591a2500a012a082284d442284ca86814098c5808281a830188b88c0a076683344662268c21122890b04891204059422dca96650ac44c1a426e02a38d021944d826208b107111024103a44823906c64021049844803c9499c326d82c04da100651897214a3685e3844cd4464e8148651c430d1bb1901b067121434e0a864453c46cc4466d10a2848ca46d0a022d19c76113c311d4188011879124086e422221c1904850369022a40411396043b08001c904134146013188d1248e91408401110e903682e2a2459810661b858902a50cc044650920494820318c388dc488001c08611c07225136068c466994360e0c200622096599346a5c8824d4180c63961024c79153c428c204815b948913212049922ce2822518c12d12994558a881990871e33432da442dd2342518274d622630981248a2805064a491d8a0480a25511a03458a30865b848d9b8850a1b69008112a1226441b9324a2146124107023a20c08233004b16403490a9ab86519a105199464943249482441d2b025d008891aa629d0a48491940989284044266041182858124ce440828348251113694b908552366663342e1119281bb2010b327209364e020142e32066232661a3248a20910820989144b6311a30020b994810836809290a0431300c954c50808091306501c325c83241a014044b444ac80852c22649c2128a18054c14097213092edba60de4220d0b2751109760dc1466a2c45189b26994384982200e84466dc4848dcc206908130ad2a44152b0092380210c121209820ca282314a282c21c7850827248a062c2195648326668c2031522020e42250c3324153180613836400c121d912808a94414ab065e4a809232190c2060013362e59128d238930081968c0040281048ae1206a0a290400466c0b3885e2486d48380e0a412e1b932422234993a8655a3824d4800c2042512199090c302aa2a8211b471111c38414b90dd546a07aa699e317ddc7e720d95e02563ac6dfed69d7b6f0091060c20f3dd65d9ae0463516f8ddac070d5c8f9cfc446f7a279b2b6b10329e69194903eb9ce9aea7b23784d6a267b62edc162970ef7b885ecd1babfe34b1eef17cece401a53b3c0a48c906a35020632709159c48bad06c7c1845ac966e4bb4c549ea4ded612acd9369a8c8852688718548f41f7c36a22325ec219b94e3ae3186b97508fb004848f1eab5f4510322b634d92bb5ca846ce8b691b2b0e242a522a745089f29253a5b3f812a054e2a4403ea7da12597bc66261bb6e2ad226e91d543fb40dba3f1dc7abe57858ad77c083c1c775108b1f2779147808d9cfc0eb56b76e129525cbc143124e7ab4fe9dc1ec8f9ef61e37de3d7fd0ae9a1980360ad141453b8be2e1b845b9f6ba64533f532420ea769fbfbaa4036b7956e971a9f71d32c0854aeb911069f2486ec8a52e575d53fa0f4bd6b87c3d6bf364f1531a3531b04db09f0b2344640cb3123a05eb8edc7c23474114c3663897e3022d3c1c49e44ee6aa0da201b6d7480b0a4fe496eb3d1abb932e7b246ca9fcee9ca2de6daf873f24a6928d3e1e42ce415d205fa4d0e7c44d29e728b845dc0d6b3719c171b5aed9d539f94328a23ff125fd5a4c048d6b70084ff3a96d5433807cd011ea4886669c2875184d644d88e9224cd2c78c3a6c5450082aba8d25c86d3a183bbca15394a965fed396568c0a11557c87b8bf7f797be047a844593267ea7b81fea58cc0ef9241a8ceda3fb2c93a28616c8aacd5c22e652c58720a2ee810ac91090ca53a10d47c055f5753373e983c457b914eea12a78a55d7f9a37bec0a609337ef580aa434e41f9030a3e9e69c8bc0eaebd1a987946a6ffec018eba885994fd64965b9be87b59b13083ce43a5d86bc5b2366c90254f0a598fb5b78044f67703bbe49657bd8da1f1e853381c05fc43bde6a0d6a952d281f3efcf9db89f8ef00d21b9630e604d27ae41d09d3e4c02953329c31829cfbcb3bec32935f68b9d466320d7af551ef29632f38d2c80360657572bd76bf26ea1515b4f31494a89c06b487ed546aefafe5620785a2654bbc15da74487898819ddfa07f648d4925626582e244538a0c3932d5e04d839c008e5e3538dc66a9ba917df7f4ade6d0e13cb267f15bc6b2dec78666a49137d13464f8707f08d525e5a70e3eed15aef54e9ad1d96bdfeee080d7eb022d79d54f9c194d41f626755a36048edfe6dc9aec7adcfc099adf527cd46eaa3e3371d7c17e4f34c6f6e0cc4e63814b148a4e8d9a60e76648111a8056405ea4060d0f6e042c3280d0480aaa3e92bab91085bfab153a1cb9a5639ed18baeeeacdce1ba2677f4eb60933111d28f8d09a558add70c6a62cf9b665227f6de4c19fa1b5d7f8bcc3a48458e67432ecb12bc6785e87f6b4838c2b1dd87aa56716dffd7857ee6155ebf64cf721b40ec05d2829a79d4d3f07a818c3e615369e46c6f475748d254ffcbd8f971523211a86bfb96f51bc6d7443f2cb2fe1ad567f8e41dc1a3a27455197dc3d8f66592497826c63b7d12f489c167c400a38d45a9ece1b579462850a3a04087b974cf0f6aa4f2e86fc17132ffec7ae947a4b0274bd54cea6a12a1225676d21aa7c72492a510947198f5c9f5ac22f75b368c74bb68736fcf4c688a41e09bf3bb06a721b71eb1edae90c93434fedbead5b1d76e0790d0f99140d328a338f99fd788c719ebdeeeb4a6fd793f7c255ad076b5bd2bc59fed6699b39e0e5f8a03bd1ad76dfecd16bd10324f1b0fcedb3030d09184899ccb6aec4ce031cf0b10541c114d56b760dd6fc630d7a77dc98095239e2292416fafd9a2cdb7c2fb6eed1d971c39cb7efd7ab31f353255ad342e9129534f769640f6808a11b173231679d244880a8541c299cd0caae9bb61b90ffe01f93395fab1fd65a0930d285d1ecb510e8de8ff93b2b63614b0389d7332f6f20b61737c29769d0a05e472759dbe68ab17cc9586f07d4c2beb47e609dfe2a00a27dff3db68a65784b1d9b4ddb1b454bd49b0adcf63155c5c7979762c2248a0dffa7d31c8486e1ed4bdd01155ddd4a5830edabc74c509bb79ae6ae3c94d34e4fd1e6944d41b8ef5de8cd11774878bede8aee51b87303a502abb5394c8dbad7636f0c71aaf4230772441f0066094421550d4010cc2f71bf055b263a0b53bcdeee45b7517eaa4e3b4801b09bdfca83b45c68c52d8f0dc7f8aff1aaac45e1e86be07e61a6fb65c65f1ce21e508ec0ba3477c0bab7ee1c211e071b4449f3ae379e5c46fc4ed23c99de77e5675a026c71a90696528dc29998285f6d9a411cd1bbbf3fcd522713e0941f92468646dcafe9db8a"""),
|
|
TestUtils.hexDecode("""
|
|
3F1B179FA452CFFC1F4776B275BC9DC61A4448989A5C74AA4F6A42748E49DF12AA62C5DA238BAB9F4309D563EAFD739B54E8957C0E91DB05F63B2A50F11205F5AB60B0E857F1AEAFC0562A76626AE579BA3387943E8B735A4B1CCBD23A6CF56D7F38CDCF772ECFDB7CD40781EC2622C10D65BCE780852D7930281726CC2B83C8D8179D842CF3DE761B071A6B04A383624398FEBE34CD841CBDF9C256A5EAE3973F0C256F89665A0B23F0B505A2EA73F37EBC11AFC2C3D4FD8626EB86FF0267D00DBC567796011E5548C08208CB0B43A880C1590CBBF0549683BC71A8BBA2CCA5F98011E592F3B5D7C8CCA0165A58BAF8CEA629CBA860511EA2E86B4CD9E721E8D7DC608504114EA98D016C0C0EF67EEF084B8FDD8BA4825A0615F7E09C42D935D9AF0DD847C2435D84B4702ABA573499C9088EB21CFB97E5B5A847476FD25EFE2C2763429048F797FDACD8238937024E5D66B3FB40055C3DF19E213E5941095CD8FA62BCA591007D03CFB879388983D6E7A189782F36F88EE409D490C5FA66B62510AD0D0EE9EFE6DFE23139944046C62EE639C0F82E6D850770A69577DF6034084DB97E4FB2BD206281A79CBBFFFF8A9E4B70252F6F03DE8FFDBFCB0A5267877FED3893CBE5119F0C6930FC0DFD82C63CB1E7DE66DF2141E184646151CA8A927DB49A3EC63B3B862AD60551B0E562F35E109594E4E43B192BFECF066B3C7612BAE0E170F0E1D7D246CCC3A2F94D3FB08BCF9DC7DC44735E258B1F9D0D8152EE79FF9EF095EEC3FCD872D9584361A44B9BDC88BE2AEF1158D1765EB4DEAF441F2407039E98DB8D148DC8B7EE9C44D5833FFE4C52A077F57D9E36CB220251C58F61759D18E4E449E72F29351F6CB08F9D996005A33EA695C21FE883E1C3BC3DC3E8239F2BE16FE445A18AF83639156521188EDF3F15ADB300A17F88C829EB72275F6F35D2D1A72B79A01A50F1A63741A8B1ACCC35E49D331DF670D30DE8855FF27C9F6D7BBD16CDE4C4C4DD48CAA971758D714E89DDEEC7CCEBF2E89F8CF03D7E631B9A18ACCF19FF35AA24AB6A1E10DF105FFE2603C30E16B7194AD615038FE96F4767DB8882D48C97514CEC057EE636C9FEA31BDAADC5CAF6239A805BB05081962A2A5054D9DDB47AD9D3C98D053A5199A687668425139998BCB466364F656B1AD9F13FCF7FDC50652841EE475D86AB89D0CFC01C6B5B876AF9D0312A43DCBBC71B2714B0C3226967A3D1E0AD7E9368EDDEA9120B2C8641EEA203F2E943F43708EE6CDBC6748A33E3DBEDA2AC492A6DEBB9751E7AE4AA33F6ED893AF7054454467E29D7EB7F2163FD24F7B5607C2E77DDFAF72E983AB532C6585AE8D78757DA904D1FDBC10768E3E70D582F17708B51D561C24EE0D5A26559EADF5463097155540F26EBCE03D89F49D7033AA00E1DA5ACBDF148DDABEAB739EDDF99A6B2BBEB48F83E3516380FC7AA9FFACA8DDB53388485061EF5B94E92443C24DDCA823E44A29116F346A22BB3DCE7022C3E2EF35ECAA91CE5F65D7C5EEC85D741ECEBAEACCB39F881391EE2A06BFD7B72173B171B7D11C8792F0A7D9A125011294296B157591A675649716F92234BF074F78EAEFDAE1AD79E4208C6338F42F2A9B105EC5C717301C638C63555AF0A81F63D0CDD04F9C22E2FF223CA5AE1A01C7FC61E9DA4412E80D493A7C0DD49CAC10C62A7D3ABC1B9C74EAA2D8AF248946EF8A37F1F7017E49D11B89EBEC111D85D7C1512EF4F99BFFEE68FB588DF3F39735169D1B5A647D71F52F76C6BC09F5703320DC92BBBE6D7CA592566483636957D235F5D18150B6A4641CED6276319244CD8EBBF74BC5DD3AF82E6C1118D19ED291ECF84E4EC2FEFF28286898E9659B01A37F4612460B34DA8444A4805FDEDCCCA5D6D8013335B4139101F28090517FACAEBBEFE59E44A969FE3B8402D690012AB908EA590249BD9354D456EF65331608478B2050F985C5903FDA5AF0D918E7F7E167C3A669B727DF0CE96B63D4D944493C5D2BCE97F2827CAF54103A18CA8CC0483BC8B98C42657349B8438C0274E4401463CB55E93023BA114FF8CF3A718740756DD8C92958BD07A304FECBACA3CCA8135AAB901AF23E1104E202395A08784873E03FCF2D07AAB003E6581741389C238942D7A2B9FB30B53CF5D0C408C0EDFB1C4FF448D745FAFB0D659B4BB76B16D5B61B0A38039488682907151802A815AF220F82680E523E838ADB47425369CC421DD36C2E60100A9EA7F29B05D985D644A7FEA573BD24B922396A481E33306AC41CEE9DD8ECCD9DD7833F8CC77477EDC2E97A72CE2DD930BBBC58FBFDE78DDE34CA1F8DC758CFCF2ABCD35CEDE0657B35583F9C016524D3AAA5E698BBF85AAAD01D7D3CFFAD4602858BD7E2F173D6A24504E448926DEBA1F70F3B0D5B454B02AFC4D0C482BA8019A0C209ED071BD2D5B341EE06FAFA7FB0D1FFE77FC6F6C49F78EEFEC44999E4330BDF33021EBD91DE8EF2042FE4C3F19E992A5E66FD9BF8E3D428AAA8FA51C7C761C2CAEC8908DB3066D50BBFDA98B82387E92611514605D6CBCC0AF9FE08B39AA1DEC89CE77987BF3BBFBCF362B4AFDF12A8A1ADEC69962A6FB26610C816F023D87E648A77DACC3997127AF770658921DCD300EE2C8C0916593067B3B31ED1B6B73D68EBE68CB22386DE39E57FFF6AD766193F99CDA751316A5B0729FE5307C107FAF6DB4CEF4B1C6CDE957DCD6361606A6606BAEFD9A1AE08A5DB21991F022C4BF758D16FD53D6CD41F637F5569D7357CA048F07F53C850CC56A07A4C2F3BD04DEAE79498EE10B366861EA82A7E04B9202750D4FF4017239BF1BF7088A3F2E2C79DED5A12F75CDD754840868754428BD7392E4F01F36E3B450A9BE5BB95FBA71C960C7D09DBF24E6662C86D8B5C3E37D76B16845B0F88C40AE7360545B3304DA5CBD2B58C29F6EDBD794E9AC779227B0FD198EBE3A172FF4B8896F0C9BFB7A4FD9FE6ADC73E097046FA25CDFEC45CA1E7FFC4FD582DDD8C79A9F3959A4DD7E3473D6F242B0A6AD4DEF109C12DEC994F2E313EA1930ED25CB401B82212E86150BB53BA88138AE3269157FC2A7A919E21CC068E0B9E934701B572AF0E20FC2CDB2B7452CC1E5545AC4CDD34EA0097CF531FD92E3FC38CC50E1FC8ED59272FF3D631FCC239E4AE0AFA46419863A166DAA2CBC63E24C26ED7EDAE476A194F8BFDD540D640DB3A8B294E0DF0AEAB7A735589E23CE524F534AC82D80CC51DFC08EAE4FD02E6F6E0BCDFA0FB23697EE1AFFA735566223A70EAD827DD31881A3C2471677F905B64E6AAE00467561FDD6C79B45016F1326D705A854877DD91D0B147071B00C5F8A600116487D39284F6334FF56F124951333F723D68465B765B32B396FC4C432D51E8C6A9782461EFADC2CB93EE38D4945833435E2E27E17CA98998F9B33057B1C73E2E43B6A184868DA05559B3050FF42C76D7440E1A5B803C8D4B0CBAFF9FF31C7E98FE2D011B3F87416889A81DF9F48643E943336430602C5B44C1D11BC7F62A0D67BCF9964815CA0AB83E7A87DB714F2C1872E5B9F0843B82846516E54A3F7FE311839F4910AEC6CF0D23F86BF2B0B05BB71B5B47E93B80F7060A350EE4D73EA09A6D489BDD064763CACEF5818B319CC973FBBC78E01A505A2F6C4F6812819E02A573AD8F7A345763943B623995B0634562479072D9E42437FCB2D02479DBAF2D088B31EE870F11047E965D04524D0CFF90B943B1BE969DE752249E8B48C609F14FC48692BFF40EA6095F1967DB766C8B4E18FA73DCFEF18F2DE1D295B51A63880E288ACED85B188B3D10A0B025BBD934BA43A5AC5E1829DA836EFDC88F4BC6BA0F4F23A4AB16DEF3B5488BF6C974EE1BBA51D17BD472C731DD35D5B74EDDD3C9177A3503D783968BCF8A1F2549F70069164C965304DE2434530B3841A2AE7DD47DC5FDD9DE046840B4D65A08A71A3D15778865CCA2418F154403183FD44B622982C64F771C87E18C09489493E378476B3B1C8D14C8009ABD3D1A51CF806189496A4D70FE857822049D3DCD4CFECC2F95D2A8A16D94DC6703B4C4EF3E8C7EB9D6859350131E1A03EC8A21E13F045F822C48EE3E3A481EECCA508F189954AC267E6CD19C80F8688410E2E97C71A6C792DD6E33EAB2FD16B82214588B923AF6C6069387F6A72CE06033913B50F0310112DC2143802AA2CA066388C96158AC154C33E9BD72C993B410FE5E9D7CF37A30EB85A127A7773ABFB416419A5B4DDECEC10E2EDB312C86C3F3C8BACADA66D057FDD40740176D137B1F1ADA098D978CDBB938F45D4B7814F2C5B894CAE249CA8E1FDF31E81997F7C55B7A43461F5C7C9893AD0494F4F0272FBC20D80F327EE55250F9560A301078BDCDE94D72A7D113ADC7C739D7AC2B8775D961F89245C5AEA8ECEB1732FA345FCD84A0C07C65F091B4B32DC4E117D24D782C404E8FDDFD6E9E65B3633985D6DB8CA841B9F9A3B3C617F1D69FB454045C5024AD09C5C1080F3EAA64202C08838B42E218F56422722536160F97ED3C08F285EF7BCD1119BDA59DB5EC6BC8E9DC1789B3CBCD469A4BCBE1CE237366A5B51B062D0A08201D4F0EAF6F8FBFFE53F35999763DA2470F2F9FE79BDA60285D052D65DABFBC43659DC76602DC662A3357BC3E4BD07BC32AE5B5E94D7DBDE4B5117BD5A9E3461021A569E200CD3CC518ED6559BF2539D8DAD74920DFEDE8DF8FD8333FA17F0798A17B5385A9569A640685D7365D3DBCE8411D44B17BF79B852B1348AB31335AE013B2877C1D8AF62F88C5186B7313F2C8736472FC5F2B4B38F761009F7623292EF14A4A4006305CC419A3ECC73082F63BB2CECE6A624C2A6DF29DBC6A4F0FD3658C58EE694FA58741DED54889994DC6A3DB4FAF5998B577EFA399E58D822B99623D76050736C17B5218671FDA3BCDF7E81B3E85D87200DB9150253ACB07AFA8FEAF74578125E1E26128116A7446C804DE54FD2D2B1A48E684F73AE91932A37372DB66A230AC4CD54869A0115895D2CC494E6D6E8B12845551B4F3DE0B3A4C114979F0471311434BB3784FAF7F9A9B88D536235543ECED732289B383E8005D98192FBBF41EA8026CA3A14B6895A6EF0548EBEE58C25530F56E0EFF157DF6ED0ED0D5565E9FD474B38EF5BA74D24B82219F317AD51F3E7D6F8E4BD8836B91525E162DB417C87E36B3C0FD874FB4BF4136926AA6D045033C94FD1EDCD69835A116357F341372148C4601CFD84BC36A8E5B2260B90CA797CD5A41362C44B4488399394AAA431A63A74B774E68025D7DCB1963911F2BDEEA60DFB24E87196FF38479D235C98E83F1FC419C87F708677F98C84F9C4848B255DEF2D92E3506A533D36E56DF81F6461AB5BBE9D171ADDD39FDE7552C5D4351DB59543C0FA939ADD6130E25D4326566FDF49CDFAA240BBA0B027257D2ECB83209329944E8F44AB785560DED2BA8EFBC55CA31E48F4C94749E4D205A50BEF3E3F039DEB3EECB213FE92C1C3E98A9F72B6CC316D6C0B87BE7F688000A2433E3A184A68722D44C7F6C90F2AD0B248AFC9E57448E3450888A875CB3006E27C232963740B985484E7FEB07775F4B4FD89AF6F627CC56CA1AF23E3BDF61443786D3F04DECD3CF71E2C6139B584F52B6B656CE0737F50BB270830B102B781E621B3356CA16019696A23EEB238ED74D160269A3EDD35F7ADD9E065F836A61A0CDF99272956555106A349166B2C299B8D0066581DC3608048DD8BC2F267BDB2808E1ADCD37A7538B9435E9E5D7ED4389BD2CCB6E926A927BC6DA19E8E0E946442A6943F65C56E5AB7507FC6EA1DEDEA7C1AD087CC005914CE80A241D42C88380A49BC4B6850536C5A99B6423B77A75FAF76CB17479EADFEF1FC90B832C8F36D92BA3E927C9D60473117267AFE4B115E39D50AC7991BF248DB38E8C99784848013B48D4CD6E034B93E643239E78936DAC6283DB748062220071473B0579FAC64510D033525D786778C53CEBC3BF95C4FE9406943E9D68E17EAB3245C57C00D0C206E3343D8201A2F6C278DD61D0CD42B71CB7064ACCDD38551DC554007F29E1929EBC81025CD1A5AA41510BC5CDFF340F42C4FF6DA37F8E97F5911F37ABF457DE3EAB6114DC858C0C14B9BA5B652DF63D0CFFF4D6F8103E0FD15D87D8EDCA53FBBC70E3B42C410F379BF77DD17F6FF57D7A0D01FFE0044F226F8D65DBCD1803928B29CB6AAB703A0EFFE4EB47329D9D373954F0F15CEF2577EB8F34665FFF2C774EB07F0CA72ED27AFE6EDF158C3AA193F3B5CAF99F52430A3662997DEB386DCF0A6781E42180ECF44E9043AFE95BDA84FD1F9EBDCE26EEC0A4A08D8423111B320EB87156BFAEB3827389108E12E7AAB3F6CC8EF67A7C877BCE3192E503608D6F1E5697941FC1418C16093A55A2ACF2378590F4B0702998A65C8127F13AC98BADEEB32B152F3054EB7D0F200322E40CE632CDAE8F0E6C22497BB6D464ACBE9B461C5D39AF9334F5342FF31C9273146D20F5D4BFC61F980B1862BE4A147474DE89A1A3278004F2CAE293CE2709748507C5DB48D98B484CE933DD3E925E1788F2470C91177ADA3869DF6FF81308DBE846F50C51AD66CBEB2AC91DF1C86EC22ADAA6C702F1CB7A141778BF957663060725A5AD6478E22FC959FE5C918EF1A11964E66B1910018DF4698543CD3015E9876AACE37988370135BFD7047FBFD3996B45EFAB6FFA70A4191F259B8A27EFA05E7E1C75285CF70910465589B41A9D29F51F7BBCE06457A3DFC540608157479B499B2F0CD9D8A8D6F2C01FC79E5079597FB6E2D1C3394B8D8AF65DD133F9D9300DF3DA3D740CD0E7E13EF62BE1D29A3DA6745A5A87558F23D89319BAB09A15F8FC01AA388E1FDDCA117A27426D142094A11E6B49E2C541A82C685D41D6E2520881534012774B4C01CE3D2FD8FDAB8C25E4F0AD1292974C4C141173CA219C07314314FDF94A05955E210DE13F0165C990227EEDDE23A52D7F4C8A181C996D0FAF6C313EB74BBEA4C2CEC0B7B01698C63C2E1D37313B637271DC49A7EED8542EE8BDF7C7D791F7BD59A029419616F9C8F478F060B855CDA73418D0AF090844FC0066DEA9DF8D4F3C9ED58CFED2A78B427B42B033C46485B767D75526DE8682D6AF0BE91169650BA4ACC4D54E0D357E993FAF358BEEE3F7F988381EDB31FBF174239A345130BAE1B0DEAF27BC5E1DFF86B29712CFFAB670D35D19DC5B25DA43D481336C0CCC2120427F30326FC74503548344B585C082A78F96F072510D50E1110EEF01617282CB681CD352A23607C3CF7AD9AC06FB52B38294DE8F87894D25C1D278678B048E3E3F4BA0D884154C5E16780BAE2322C389667A15EFB0B21718F56767EE942E4BCB190CDECA74C92DA8848F41AEA2328D29B10C95C6DFA74B0E162591B1BDC0ED6826ADD0B04C7495FC30E586FBC03D4E871915AF71866278F9CD1B4F1AC56E8E1B7B11DBF0C9A64F608E1C3958910829654057103BEC687A02AE9A568BE514187A3E27F3F9928EEE29519BDA0065179423A7242EDDD8CC337F0B7E7FB7CF90FC682C9E60253BD0997F34F9081FD785712E52262CD17C3508AE4D2FDA3BFE232269ABB185E635E659D405AB12E17A80AEE5BA7DDAF1FAA819A284A60B85B49F1A57DA72A0866B2B9C2D28178995E79D4458B58EDB187B0CDC5C37F111D20371FB8F410A7EBED95474859645FED6F451A396781EF7A02E6B52593189EADFB1226316FE8DF79B23CC67BD2EF973CD561DD612D0C3047698EA0D3895A28B4111938F0A0354E4DA7484697C85908A3BA3E80BCCCAFC73303C767BD3587C1F9D48FD4DB93517A561DAA10F53F330ED14CD65B4A54FC43E5F5CB421B8B6CF7B83D86CBD72A55791588D4B81094BDFE45E3F32A2C3FFE809F66FF310D66032AD6BAA5B33E79F1C476029A49D49CAAE427D8A81EB642B15EF0C544C9EECB7CAFD2A854BA79E4D7EE01A96CDE9EEF45E430EEFD8A16D5D22B751F981667F36DE2E139391980DAD22462BFF4896D277D89DCACBD5CAE5EE90BC2D5954C083AADF632D9051B782190ED4AABE8FFE195000A6BA05115EAA0BCE755B23B10C81DCF4BBED61E6D31E9292DC1A7FD6B453EBEFDE55D6AD8866CCD50473705A24F519548172D3D9F92E668D679D782B7F1041E5A558A625D65E679FC75B15499BFA304435FEE6F6498138848BAD0BFFF6942029BD0C5465395F5368692D6B21B2E22A638D6EBFAF3A0EF1F9BDEF8529C6D0BD328CC82BC66DCDB2F5AE20F53B8AF66400D6C2C0A3C6BCE1E8D2B222FC54F1896E58F61816E301365E12866C1BE7C4BBE0DBDA2B504F0628A4DF1EC7942BC58C0A4CED0046D73FEAF2231FB9FF61C0F7AA564EC1E10BD65B693CFF56DDF3596DDC85CDECDF7F123F9DCB27269A7F65A435ECCAFD89A211C829BC7F5916DDA61959AA296505F6D46543D863F2D3F007D8960634841CB317F5EAC3D3A3E4561801CDFB269257FBAA6A60E7A0A1980C9BFD6053BF2EEF7414704C7160A051355CF48A0C0F6FFD683C453513F8212364775B7424D9315A920DCD5B140A8440EF7E5908D4061F580022399509C0ED416F945705A19FDF8E65C8802B67701FA1D15F06013990C7BB8D0D0404679713222924DB33BC659FE58F82A99BB1AC551426A13C2CF316664AC8037B41755F110F6441C7BC9446430D7BF917AFDB8FBEF84E895388A68763E0E16F89FF630BDE9732852B70A4A3AD8A29D2A4670757AA4202DE5D53E653848FB26C6031D07CD010501F0785D1B1D69BED49DC3B07265D51A15A7C432C3EA63A0B0D228B4F8AD4060DBB8D54B94BAC7F2179829C8D9F9CE4F7BFCCB472EDCBED73B0D18E3108156FE659CAA40B45016E0EFF20F81C29EADC8B638364FACA6FC85F98A9BAA9BB7E5261AEC6786C18487B14B77ED2B62B762D6B8B39AF5A870EACD236CC53C016158DD1E71382475657C512EDEC0977320F1BEC79D0CF39403975210DCEC3ED5B58F"""),
|
|
TestUtils.hexDecode("""
|
|
e870f21e348b630a1326a0334c872302d0a6da460dc9a0bedb6daebc027b22b9b332c967a2f5991252bccc646e484b83d4fbbaf2887629032de5b3e1b86002cb089bbc58e35737f8c07a694b5cfd38ee3976fd25244e6acb2ccaed20d926af4c9c7526475cb89a72a26ee9b2a25c29128d53446f797344d3eff20d91eba8ba9d02f939d38a775911604124896569964fe5f835df7cbf044f2565a32e017caa93a8848f7c4fff257b885374a6af0df150b79488551200332d176955f304d86340a6df8f98cf93dc12909e1693ce62de02192e63b8af668a0fbb2c345bcfb9b5151131b7b4c7d7eeea48666a8219d5f8b0cc430443ea3d531dbaa6360e51a842fbe1e40ec5fc9ecf9bf172570bf8b31399ba8f12f3b83c40205953414caf7324182657e0fbcc2fffff801c52259294f0b23eeb5ef14c34d955b92ae782739a9f9dae5eb03af4bf4e911c7e758cba1a0f1d0ac1c7256e5d5fae242312f18f6747c5b56d907a49151080485999605246550a6ce8e6341bbd1ec122b179b3102a2673c163ed7174089c10b29cf33b9b5fd1ba22dc73a164404804faed60958c6faa6a09b03dd2eed0fa8782212f1da486543ffc688e37bd43621ab857aba0b13c1e0969a482ce92e00d62ebec1870188734135b0419cb3b9f3a9fcdd68b5b4a53169ae0bc4959462b8eed39264c0b0b34e0595c7a719672abedad01638f3ebfe9e4a460cec890339595a9699db82819723ba08c7bc82080f8989d3d8709386ed1c9fc791ae0cf954e3a897a93d8e235eeb69ae131a912736fecdbe1ba34eb03206110fdb1f81e71dceea673fbb98886ee0d94cb4d76e1e94278b8f2501fea2718466802d3d4a068a2ec53029018df3eb088246b767043f843f79b5ae5537924a9b5e5bd46b19bd7dcf7f14d4c9f4dd05b2c941377434cb37d80a899ee97a5d68345cdec8a43cfef1f286c0102c2d8c9b0d07adef966992dc7ce8b9606917e238625707393552ba9c01c4e72f6e3b533a734c0d60e3a2aba08a823a12a45263b61402d8e62da3e5f5a5c12e0cdee0d255551b8af7d500b547699f72b31a91519891850e4109f4ef380757013fd57a0fa0ec0721dbe825d4cce624cdd8b7f7cf64fb31332f374f6c470b9b8a5171f25d005da4e184665430e7ae553caf2ef9eba994f34b04ed6886c1b768f03868522959fdb164e8ee825f08c4a4dce01de6686695b5dfe6102c7463ab54b084c7fb1366a0b292898c0d7499a3a6ae1995bd2139f7d7c84a0f96b497bb2306028389b983f2e02a2fcfd3c5f8a0b4d2e334d4f3a460829efca41806ba82f2e5ef585531a3f1ff67617ec112f613acafb8420a1cf6230468601cd8b0807d975065fd36aefe77111a5a72ee622da403a51194f8467a122e408a0c3998a3a7f18c2f7774915289a1522f5670527e63e6bde7ee0a84750099d949ff87c6dde67de9cb220518ccda5135d3bf58a42b7d96d14dba0ab87e79547888f6e87b4bb9ed754133d16444eca15045ba54026767e93114e8a3a75a1ff65d0f03c667a8222248119fc8994a84fdf73817bc2d61d6b764d86c69d68b7ca3ae85031181204c39085af1c7efd687fb91d00255dcc934d47228c714cbdc66d4b418112ff0ddc030dab0f4edbcb0309419120ac944e15ddedea5cd3a1d62abdfd8729edcf40d43231e378b2c69670c59c30b4218e7b7f2dcc0ded133b585ad673bed77194b98965fd4a04d93db53ce26128e481de6053a14f40b34f60a169e26e99b4b29979c03e4880fe84474f11627620d196369592c0cdd88c3639c1346d3ee265e550d470b8440c5676387769382ad4b57fac799926cba49f042833301834033d668a4f0e95e2bfdbf295ee9732e30a75b1a76d7a4f0c12029514252d98bcc4330fc2a3172bfe72c8f8202a308de53c4587a17c5e149c92ffb88b79d8b07962cdf91f0310d457c7eff09485a01481313b2aebd081c49b47558c252202b4639dce456a4e786db6a91a24a032d47d1cf9d37969d07e2acfce0067a20994310948821510051ea1ff97f0a5e88f0d36825f7a9b71d5c64d42dead04fed5f6b63dd80bc0325bef6d413644c1b5ac212bf9da2edafef2e6b6d99354470e25c5050703e524dfe08af14dd431e609be5809012ff5d0d4dc260f10fff302168b9d73c86ebc71c21d76ed34f08b12a6dc7ea174ba1c2790ad34a7b5d2e55607ab26eea6289fef0886187f43d5b98b7687b227b58692d61e6a8b9bd04a9c3a5df88e03b20c66d618a6d5a979cc0e33ca400f55918a0d2669c19817e9bc0126a406fe4816a24d06e072717435576868303e961abdef730d973768373b4f413b006c137d63fd1a7937c0ddce317078b610a5fcc1a49d83778260c088cff2cd6e35f58263d43edcb81692121d737960b77b17275765218d0b686907ddbcf0f681bd2662451dfe012db5598c061fc03920011a245c3d8fd3a8b0ee6291959a01e811957dfca6351df838ad3cffc5f28926042c1919a446cdd525d0a1b56591ee9574c16f88557d54b97cd4e077289ee304537176c4cf21e63e33203c076b00642665431183c8b6ea4c58b2d11011d1a1fcb3325a1f7cb148e0a0c70484ebfc6a460de38392761da4f101a2274b21dfd8a5b6870cefe3f1ac9fab09c49acd26de288d43326cfa68248fde5a5d0c2adf5ee4f7a87a570374aa40c904bd3052836b275feca785d29a5cf3af7df0ea226d5fa5aa33df234354a84ecfbc2e2a3d2b3cd2630b765dc0d6a7ea00884d7e805cd5b4d7219b7f5452e27b761d2734bc68d6da9b45de8b69007e6a961a73aa42eeeea30700474cbcbafb4304fac39b6dbbdd2f2a9eb5b959ef1a6efd9a41661265c70db1828f66147fdd9a7865dc9f0a605081ef41202c731184d754e499c95c19af4aaa7a018c8f1bcb1bb3ec4357bb7ccdd227f37179eadd63b10c2c10fff271a3765e9470e06fbfd3e5195ef39a52b20041507f3cc360c37608e976bc29797183feb75e61d4653e90c4a82c744b952efa874c92a675191ba7cac12479bbbe83b5a4b2e919b8e318869a9da789be9a8ae806081bee3c6376f54e5f687a2900a9e610094b6d21e4037066f9c85d65fbcfefaea7f2936aa95adf632bb83b1d5630ae48a2b8c3ffa79e44296a60125d14a5ad30e70f97e072da5b00e115313c0f3e572da51faa8741e98bc2741c8c44ab6d4d60fe0a145eec8bb91c742a0a8eb133a688d322a836a2cc4663ebf2eecfb80fdf1f95e83115d10364baa9357e1e133338b01d6ac2fc08910f7ca44ef8cfce5f5d675346417a40010b2c384a58626378819293aeb6c8cdd0141c3c404a738badafb8bec8d5e3f026405b5e6b7e99acd1d5d8e7e9fc01092d3031536062646a6d747879829295a7b8c0dce2eef5fb00000000000000000011202e47""")
|
|
)
|
|
};
|
|
|
|
static SigVerTestCase[] SigVerTestCases44 = new SigVerTestCase[] {
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
8109bb66b04ddeddb48e77501a8b1e2431fefb69da28a572fc535be604e351cd18beb9691c57c1187703ca63921cf5df53c1a1d8472c844298cc59b0906ebf085a85a174ec9cb709aa81328db8a3b3d95ae191e334b021c966398fe2d975db14dade081aa77ad15d4aca49e87a2c376a64258219c1d72c50ca2354d78c5444ba570125773e9088d0275de193b402909c9f1e9754adade9e8103bf8d41bd81d2eb5587e4039b64bbd41525a2c2312eb17e0c47071af5bb3eab2627e92ea39cf6babf0a5f4d55208649742c847cac30a2af906c688ee987d2b9f103fafc9e86f59584e616b15ab231b64402c2c98f3fcc95cddc447741f2dc3ab4302b863f32b4b5071158bd66258343f1d045f1ff297cb287e3164593462d56df6b0705ab71e0c75ed1722611ba541254fc381f064f6226178d1354cdaa9b47c13b1bfd54a41d9bab19929e25aca0ea68d8ec2f42e816a9784293919fbb01bbefb93f77e3dcc89cbad5bad43b5358207d36d98a74626c33d84524d0263a188c3da78c9242fe1d7819bae24012800d11fc5068e351272f12ca8b57f4a6365268e1df64e4d5dcd2cb7a04e66de16cbd8092be8af5dc85c9300979525b507600d8590ff68a61290d1f4d29cb3c39a462c16f4fc3365835d2b172d1976ca92b6bf7d28a803151c47fa8ff00243864b60d80872cba15e20b1a0bee3b7ab1fc2aceb4c87c2e69616d1fc8e1bdf5daa83e9b297b3b744d1a1528c9caf12c459f78c0a4d6e62da5cb8c06a504d0d68a05288822874891e1b8bcde599eff5dc2b8e7a5d3d5e8ef1c28ce2e2a8c56f2a3911a82dfb2178172808fb81f4c171f73b10e29d3c8923d2377b64ad9c56d0cac35ffa23fe98120f1760afebd25b26bb4fc977306a829cd7dbc90c7f05a76948bac0428f93463e0c04e8d00326e57608e66fcdfbf91d4dfd9caa1452a2d91cff100538f6935e054d679390b21e8e45260cabf1acc2fbdfa27142b25c4c2e3bdc6df8bc30f26f2558caa5b68c34c87f2054cec383088bb5147791652192b936e1aa27ea851336b2e80b1ad9cd8d6412910b1750fe471f9e7aaef8cd21e1e53fa1283f0a32b3d2d17635ab1f965b8a4c052cb0e90d624b832eb2e18b5fb19c504d4b999850b03a4828913878dc519644d570a7957bd571021ddb29aae7043e18c8acd95e5a0c3ba4da989ae53422abf52e386d476d444ad15204110fa28bf28c6ea2e896b3ff5a2d58ecc0ca5801ec916fb59e135ab3e8e05b83fcb2bfa6af62c0d05719781bbc7305005b2b9a790ef912c0fbcdd9df52806173ac6d5d63aee49e10fd03191e722e68450247a7696ee3b3de8c325762795239084622abb2ac462dd4e57532335a51756d5e8e56095d21925ff3ff0f6ebd1a9bd1ab13a23607de3ceb409422a6bffde90b5d3eb5ed2b06f5d29fe146c7a3401e1741730dc5ae0ded6a98f227ca625e741a1b2e5b0d7c92bd9af5e12e09f792c5a3e45c24dee0dc489d2ff1e1960aab472c820194e3aca1d34fad159e5a021353b29be8624c6ce946687255bde401f4ce8161ae901ece6da3b9c69bf3742b31afc4258c79c8492bf6155439c787e63713b3b277e093a95776004399a075dda189b84b3a3e219f0df2a1218ef6778294920e74f1c59ec86fe1d4129c84d6dc428783364788418a83c098ffd774b13b830b3e9e5882a73e05915692134624d2a79df7b6a88f301aa200ecdbbafca0a9be8d981ca4340fa808b7d8bf862e9243cb94dc2659262cdb5b0a7aeb497d0ca6a2d1977bd375c9d9f977068d0115d4a552ae364f46a558ad29a0eea0f10ebf629e12deaaa40b916a435b3571663d570f9605129bfe9c"""),
|
|
TestUtils.hexDecode("""
|
|
430B1F46E87DDE9A3D055A7D4D6AB1277B2DA6EDA642896412126391AA2B29AFD81C246EC839929F5C06749491DC4D81D58CC989D8500B6879E8807B1C3AA0B199EB599AEB86B344B77E3DB1AA034C938D80CB4BDCC29B31B710F57C7E491D99B71E97DD6FDA01A0D8A54C7481C2786F64FFC53AD358CF31C9C875ED278CEA03F2BF732372B19252BB9FA4ABF465FA2CFD1C08684D10582B410A8E012DBD407C5140D97CEE768C6D68124B2C84113B58C9A2AA67093B44CC3B6199FF1EFA6506CC28BD30BEC4CEA88411A491DD948DDB09ADFB92C40CA50E709840BC1F107E0CA428C111EC4505C5346E74AE4AB5647C1EB80F9C07092F8D39A975C4890317F9C0EF474110AB941949029BF39ADFB8E65CCAC0360A3EFCEB69D2BD805E4FC8D0620F8E039BC046DFEF1ADB03F5995FF62AD41352D479084EF3E302578B83332506918CFAD6E3BA701C94B0138DF0CF6C2948049274CE61EE0A64E756306273A02D68F3C405883F2F668820356812B2DA3A32B9FF23608DFA559183151221F83DCA18253FCA099FE24728F302C8B7808D7AF978299F3EB853A8BECDA46B8657598BE9ECE8A02DD4B25C593DDCB436B82335EF9C6A7B8426B701C66C9EBBFB3C8405A73881DAB57D1664F3AEC6F5BA19155D89A0A80B5D01C46BC79E1D4338A50B203397CD4B16ACD597A7C77C49917E9FE4B0D761065CB89C758498868B14BE2B6FF758745AFDC535EAA605C3F97648034D2A320264150278A7F1CB114B977C9D6BC1F29295CCCA16B23B7709D5608E4095E41D08B22AEC6289ED402414787062B0DA2387B6DEE76B32E42C51788B65E815E089BCF92D778F49A9707D37FCFBDF8CEF953A48A4201FA0173529BA360BFA6A77200F57FD5245146C2CD7FE8882670EE6878386D06036F0E1BA4B728CFB75806F05BA6409C514731B0BA8DA11015A63A8B5B5AB8C69703185191D12C5611F1407E8FFE3E50FC39C3310EF4091BC09FECC11D3AC107C696EE89F74CD6147830B4B3A971A0027747B62C528F6D858D1F9E67F59496C6B4E9E03FF0A598B26625B06C79863B5F07E265A40175E1A6D6EF3F900F3C4A28AD3E49D4D0B7E4ECEBB79244264474CCBFADA43FCD33F4FEBEB0F7E5928479F869D6A0FE52EB0CAC1232D7F674A057DEC4C2248934A40F5E2C9CBFDD53F71FC3BE06E48E13398ED426D8D3CC82118B7E8E5BDCA248380F4E64C427D1BF2384F60F6A07F01EE62AA1746CB143F26412547E7EF0E8FD1F2DC606F3643DEAF330D81CD6309465F9ED7F34D9B175FE1641D90212D4FFFB91CC300E7DFA0C555F7B35D2AF6A343D1467436EEC7AB95F2C34010FC99D66391377770A7DB8CD4D5C6BBF931092322741929F790E037318D6ADB74B4768C11F0E4674D18185DFB3D051725F93800CD38F58688AAC747F885908804D6CADAEDECB43131D75B18FBA2D4BED8D9BCC2156FB23F8F6378C622153EA8301300D0FCDEF1E2BB4E6F807784EA0171E95C372EC19B05A6C7B8DECE7080A057D29CE5A445A83410EB83B174590647424736A3B6967BCDF8A416A51202CE3F00E4D97DCC2C48A78D12CDA98E94A9BD6CCBE09DAF8085304F6911ECED3547DE9512461E16721322E4E6233BC7CA360A9004DA5AE064514603EFF0DF4E2D8EB04E9574C59F3AC14726C10100C688203F4960197CE696730AD7E558D7B939E3E6E7EAC4E70A7F6AAA80C1F1546E282B5CC7AA193213769B137C7F450AE5410817166F29F2E4E7E962932DF282A9F08A1DEF3E19C251F95611DDA9CFF4E2FED873439B45F8451B9AE06C6B2C698778BC4C742708BDB54CB35B686F0E7FC856CDBF977AFB663DFE44F7FCCE0E0555BE81EB28984BAFBD6FED3F0182F78A1396AF7B7081280864E5E4BFD7C52DA28BB5DE5FFA211678D13D41BF825F4B21BE1CBD29719ABA341E7B0C3F101CEDFE2F709E4DA4B5A6D0C021152AB546837024F4DCC4C45C132A038315A0F1D69AE768F70606D070169AE0818685C4BDB7341BFE15AA0455F535766FBEBB50875246A6DAE86C7B9F6F3A9FE01AB9928A99C13E6628431D41C1506381A63FAAB57BFB3B180F5D7FF59A434233EBC5A659B71CAE6970CC838D5FB638676216E3B16E8BA6C01349A7482AAF32ABD17DF7FAB8C69789F0194022BC4E62B6A6AAA4CDEF13B1E3BF5E1F4FA69F82B1EE3FDCC16DDE1106E3D2C41F6E661E33984DE7AD6021EAAD3E64D8C9CD7B5CB538AF88DB82FA048E5705EFDAC0EF479827EDCA0255BA60771A5EBC716C690CD3AC840FB6FF462063503D68C199050BFBD64533D94E093A47658822A25D54CBBFC689DFCBEB1DDD5BC6190B8F02C6FF3D001AC63729D35C8C50FAD3DCA2E67C5CCC6A8799420B159C7C5CACAB958B423964C489DAB1982A4E2222D700BA5AB772C4A11A44FF64018AF477D054217EAE28FB8E37595941FEE7AF87FD44960A144DB0CE2A44B33DC79B1EE31CAF80DAD620666D0ACEA76841EEE6CE81C6FF1F6D1027502EF89F1595065CDEC19B30E4B5314EFD64031B3B9DDFC6C95A4943247ADF7E4C93350C241ECA71260A454707B84017C5EB7AFFEB5DBB863A1CBDE0062C662308A2E824CDF6397863EF78F62319E2873B506F8A9EE82135B803025D962E609E006961EA3F7B67347518E70D9273893D79530F67CB678D6A8D28A0342BAF904BFC0A69AD575CDA4AB73AF22B52AE5D58372E0C26795CA96A16B8461AC61E6F68433ABCEFCBC16B857A89C475D1A322D34266539A17D485B8FA356EC3E154D37BAFC4CE75829FBE8BC823FAFF15A49F847C286F999A1F2C12B03E8F8A4C34A97588D91971279FFCB100EDB943E636F78ABFBAF88BCA5C55C935F6147E51BF798267E1350D2F5E3F74B339F6EFE86208C5BDE149C5B71056BEE748D06614AFEAF6DDA2A6EFFBB56B0880AF9B201B3C12055D292E3BB556240DD031C29A67BF244F59112BFB6865EEEC1DFE1CDB1E27F0A9E3372638FE4407099D0E54E9A188079C8BB9470BE6F63C83612D80BD60C21B251B64236E5CAF09A11C12F1A5E94F199DBC7C9E394C0B0E07A583E707E5241B8FB33E39BB26C31929F39316F4FDE206493566E17B51CE635420493176D8FD353206EF87F0994F039DF8F008AF602F50D7F9C0051B56227F3A2ED20B29611219FC4376234EB900093A81389ED00991272B739389F1F978A92A3E41F0A28985D697C01240875AC46A82B2FE94004CBD7B1E7594AE38A9DA0E84FE7E122482BB391538EB8E85AF9DC022CB32CC08FDA7A95165725EC29A0F824F97F0251BE636B57E0791A7F50EE190D45749472B29A674239AF95B373A40A6E0E09C674071186B125EF5AF72CB434AC0AA990341F063EBFE30963451491474B603733959A23A6D5B8A378F15A5A5B9CE4BA44BAEF6AA531AF5097ADE73F64AED0A541784119665F548FAEB447DE108AB74A74893017F0A1AF84AEF0730B555767B0CF6AE502E7693374D2E01C54C64E411AA93C96DC5FA010267B387299D4376FBB190E1C51A560871B559FC800D82ABD119A5732B50270BEDBCC8A636E7499149AE0E47F736FDB71EBF1995D1E8BDCB0EE96E732E8C2509F98717C3D174C78A4A2BE43DD89195408CD300505A219305809A1BFE7294BC2EECE6D98C768A8A1E0F74B665EE3D652AE8E008EBBB11F0D2148E4E5C93D7FE0190D27B3EBB7D2194BFBB624AF3A894CEF7AED571954D006824950A981F4ADA72BEAA0D820C5DD9BD519D39BB7915681F266DA66D49BDAB9E55879B953A7332F877DC5F5CC7BB3C9E1C1F2E41EB55EFC02A450B5142514F1E06D43E48FBF5DC80DF241169D5936432BFE9BE99DCB17293CF968A17F3111C884635EF2BEDFC87DBB80BF25EE9BF57B55CFE635FD99554F5FF2B4482D1948BD282FA282C48C0302348982E30A772BF14195CAC7FE39F836E6238EB1E1FD074E63B9AD0A8D37111087E47FE5D04B62DEB496353457BC76C53A2FC9D5AC9AE6A47F632E6D45E08786DA128464FF2266BFF92B5CD89176A19226F2EB14CDEB331C497F1836FB6C0A117ED6BAF95E9DB8254487B0DFA7301397AA29D95FF2065D851BD302B747AB47BA0AF408B51E4BBBF042ED1B2B604EEF4C266FE243261515778BC9451A8DFB025FA3212E868C3A078C7CFF65077DE94E50ED90A259FAFAEB398A94FF15C838EFA7F49904BEAFCCECD8C9ED4E014EA00C7AEF1D437DA306E8B7DFCE536912C169BAF0A3B78A643D6E210E5550E3B2BAF7EDFE01E721E3D05BAC1378EC1DFDEB2E2AC0F0BC368E0A8CC64F375DFEA2FC20CBDC515440FC2ABBBCEA3584E103BD686C5403EFE376D44F5242D35C9F9D35E1A869FFCB6657823EA0D4331ADD5CCFA99BD6EB3494A48ABBA7B7ABC32ACB8FF00512E1B0AD493F579898847E328C06FE05FE282F8D4AF48A1AAD0495AF1AC7354275A6D45AD5A7B3F6787F893EA558BC5D4ADDE1F0D265ABF73C86550D25C00821C3138B385448E3E02901E2E6EBC6A0F211CB6F22F8F865F0DF3893B987DD086B6674F5464ACE18B9F0EAE948667B2FC04FECEA3E2B7EA6B869D5F66D02D4DB124A59621B96E0DEFBF99A91AFA0CFD6D5A5968E62EF42B4C8908C3719BA0254929A9A183D50C566CE4FC970E047474490FFB07F576765AC5286B2E0FDBF1EC56A8AE8E6F560C69614FDF5C89BA53B8B7189E6388F7CDF7B819F78F3E6EA54C40865262BD2C8CE87284FEC36E2E73BDB8AA9CB5283272A90A6BBBFC3F7FED5F124E8BFD770B6254CDC695FBA0D8627315370E2CCDB89BCC84C96E20805AAF087F9E9BD1A189F4C6D66A6DC3FEF773788B3B57EF876CFEAE1F2C876CD239BE3B8A94F21350EDAE6C269698CC66BAF90B3641593F96399C71B2ECBE50F61B5D6F37D47DF702A9B9E47BED2824DEB19ADE7D7D8830A8F610088CF4BD0AD22A5A4FBA767D01987688BE710235A74129666FF7917B506A18E6B5D6166E8B682BE6B1946A4D4420926FF8CDF2488EABE71EFA7F2536B9DBEFBA08BB9E94086F55B1B991E18E6023E6952D4A563F2420A1536A1EDDE119E5779223CB712AB5C0BA4F0C176830FE523DD8603F1B316E128579E65454C2BE62C922C1DFE09DFB47D4497CC552AA9987A8BFE19C44E207397204686C718A0936145FC102B8A7111F74A421226AE016EDE658DE5DF9D3C28A247A87F2BC6FECF66CE7A6699880E0871CDB6F066D2CB3F9F625DC5E80751DBBC85982982E2EFAE3AB8F4F1EDA0D13C3B65FD2178E8AE4A712B521B7539785BB058176AB4396E6EFF2FD9052D4C6AF17DC30F50630233C3F05C62E151EECE13CE124E58A25F0F3AB65033ACAC9EA6E41CB3FA435D367DFEB0B9C9B37414CF32DC85A3C43087A578165C86D100E47DBA1FE7061111AAA961E67ED057C715974D3144912A58B6DB22D51BEDF6A8646D810190D91B61F0776DA00C8B0BAA7A83F4433F357E758F5AE8F278119908497E717A7AD25B09EA7C76B306A9A3AFCD9AE6B4F64016D5E80BD3FBE2F5EE673A7459B03AD9356148EA83461B66716346DBE85678C37C932EBC53B033A3F46DC28219880CFA8BB5E15F8862D345923BBC179FD763A0F943FC56BAB69F26C0C15D668BAD923D7AE6B35C07621768F9D972E2D6F46551D45E3FBBB577D13F01E8C1AFDBDD2F052E931C0529380F290FA1DE8BF5A11F82612943BAA2C0D086EBEC84069B271AC8656883F686C67B1808E27C860ECD1B95FF6CC6E6A5846DA29992CBA450081B8C37DD4911470EFF281FE94F10636A29B790E41EA6A342A5BE79CAF575FE9B0147F2EFE02874BC8A0E136A395B42E77D9F18CA4F61501E6C1805CDCDC10D0292593481F7E0F93281D0456EB51F6ABB7C379C028890F445D9FAC0D96AF68CDF6CC879A406CF2F0991916B33A72A193CF170B45AA079DB1BFD4B4126FA9AD3ED13FC98CE4C6C3C30923C8C53BCE1812B21BB644ED3A0CC0596C60032FFB1462DF5182528553AE865BF87FB7C7F61D1FD8E40D830B8D8F54924EDF934D1EBB88DA90BC59EEF1F6BF9FC2D17D8E9E0E39FFAD22EB84EFF39BAA70447B124E492D760E55D6301DCDFBCF9173FE293AC4D6CAF2E1964B32973067EC76BBECC65113C1FAB85375D92CE1436E1D1B205A88202B304264620B282E62CAAF5CFE1169EDAD9459B15BF0060C5744A17460F9FB164974CC55B3FFA71AAC13437BE58325E5E27E151C71D195F886F5630925D441A54695DF23F64C6BC3B0CA83F0E88D01BA4DC748A29F42AC2997C2A21EC258E430032C09E73E73AC2B21B55E1DFB2DBA281426620A0545D2507D1E96A3778C780FE77F1DA3B615E1B0D14DE8729229472E6619AB3B67CCAF21CFBFFD1F237E780927F147425B2142BF62CAD6B467A10F7B3DB922F095A0012EC179C4F8D5437AA8024F13A2A485E8890940DB69FB719B94B7D2629D277B593B94ECC744AA4CFF3D33D2250236C74DA057496BEFDB961B89BD6F44D581AD7A28524A6AF2253FD27530B7FF16FB5804FCA7E44BA2A3AB85FEDEED837DC130F533E8215B3AC3F584A2EC0E9B6194F97741EC050576E16349AD852DE8AAE2BF83CB1894107299F101AD5A2C05EC590B2CC698663C44FC0DC7F893F42BC5A2DECFF2FAF46CC1C00FA7294A0184A85CDDA2B1F38A89B1B17EC08555D082411A4CAEDED562C9FBBC1F512118EEC3BC931CC91636461151BDA454C4F029E01231BF170EBE17C526F3D8F705DC46560642B1AF36E3B401325A6CF59B88BCD4B3242D676FF4066E4252ADCA37786CBDB340DD81C5DD0540992F0B142C5A18D3BD1070719AF996E3C3768C3B234D303E6E9850B35C7AE52496C76106D7CAE4CF8ED01767B6DB5603F339FBAA019B08FA35E3DE1129A6A4D578264CF1FC8A1DBF218DD72B4865214DAA795A00505D4AE2B85E90F589065D65FC60CDD828007D4D3A4C084C7EC159C5D86817860CA03545FF74F17AD8570B2ADA55ECA12BFAB5C10067A086A34A57AAD8694C953137BBE901F8D3DEC27DB5DAD2AC96D56C312E25FE48BDC889373ED252B4F88D32DED6702B58D35A1FB40ABE2F2ABDE21CAA5FD0F67E7407A8"""),
|
|
TestUtils.hexDecode("""
|
|
d3bed8aae32df74803b6961baa9a2266122e26fd3cfdf1568b460abf5ebd475e1764c7814c6a48cfd6d4df272ea9790c8ebf12fcf5836b0926d593e90828bd49ebdb997e79b79ea68e66f48dad497fbd3a6c3e317162a3f46a4dcc45616be6cefa68210b11fcfc9a906945d30297d1714ad28b1fc7b4c6cec5ece1f5d20729918070cbfb25f285a6fba5e195d2dd75a8c62f581be2d75607b5a8740dd2339682f31230354ea03d0e7cf945f167937592a2d2dcaecc5cb0d36217453809886151073e5d15e6bf7763cce81da19738be3a3bfe96788a56c47d2d166efd18250ad525b4e9e5566c19287ffc277d26a888d0b1073242da5e92b23556552b841ec3355e14173090649a14cfc0134b7714dcbe52095d759d0eaecc7d26f3f12494e4247435d5a6eaa9957aa503f710f8e2844905664905de2f30285e774b46270c58f45d267e850e1a6f711b00e5153040ce090660c97b14432c27d0dd50c0585a8f4c4e1e15d2888a90c184508cb400af2f5d3dc0af3eda99a5e97d0836d079eed38aa6e3e4f724cc63adab509ea5f28bacf3181cb7617a3884407a274824742623eb441ffe1ef15bf6509e7b2305b5341c7a3d73e5dece5b9ead5b99f7e65169ed1673bdb925b52a6b8d524ee37e8538e6917327a8237bfc3ed3f729cef6840e75ef1cef707fa10009e4d5c72561eed18c06e3be94c579f6629373af6a55019c3faeed00abc22deabc59dcd87ecd40e9dc0a5f4b7fe1d711990fc8c03ae9fce980450739c0a441e3512ab7602038dbd1352fe0da554176a58c47c29111eda3d2b9560b3fdcda292c31621e22bce8695748fcde6c81a1270a1944790c174de8a18a505543b459932c6f4228a00984166ddf33e981c2d3ad2e3cd9ce87aadc57e1e437029223e729a99667ad87ca718db5b133a930e73dcfa2d37ad7580373da272e54f62f3d13db9a4bdafb1922145a1624fa96921c0b6bb1b3d7a115ee58dbb2872db79f4d38255c11f160397052aae3ec34921bdad97da72714f37eed4765769e996e45974961e7439352445147dec09b1bd02a776c2c22be612a723b8711f8391e4918a95605fdc866ed64cff6cde9baec4eb42bd880dd0265befe1a33f4d2c0900627f0c7727228aad47d0922caf2a7c86d70960ac2634cea63dbf5d33af04cb149eb618f9ee97adeeb0df8bf599358a82ceeeca582551298a63cbac754b6975cebf7d6e78b6d5ee24dd6c78b51b022f857e230fab176446cc2cbf6986caf8e76734f5280f463641bbda5137fab4800c58f0e1c4dfd45d5813df3f917666bbadb3547c7381eb33b00fd569d58dacdc95a25962024786770aed94d97d4682f9e94d34ecf09e9269993f547901d0120e5e969e3f12a5ac219158750ed0f381dd72a91ffce01f2b612decbef0fa5441925195b813e1273dcd9988457214c9cc503206eb4756e46f900cf2011963e761e12a3774381b877d93aa1c7892f512fc0eeeb225ace5dd7816b919d1717b6e4a34dbd30171a1d036d9ef9d37ab821bc03d881ced0f2aa94eec2fe0b1ca72b7049f749c9e86ba4ff44afdc90931029fa59538014c519f76264a2a45bdab759da02761303ece94fdc2654cc9c818f4af979dad60a9506dd381d150a66e5b0fbdb6e734404f4cc71e6b4e7f5690556d28158cf049f8ce6e4043a82d1ca3c15e480ebeb7e211b2fb00b4bde2733f03f9cc705038050769f9aebb5a1ffc1c9e3d05132ec1ac7b55b6b3b127ffec67cd6e3a1649fc9313e3625c01ebb600c30f622f8bccea15d6f0388439fae057fb1ca54c7aaecff7b1316e74273a2c66037926b246626ea2321c311aac3b5b907e551d7b03f069ae354ddca45d1e5ed3023c576fdfd1c1bce9d8edad78acfde17c9e4d83ba9087d889dee4bfbcd8908a41ebcb4738861abb6b6d8e65251dc4b7c26de398c687b30efd895069410e58d7bc2a105640866321a83dec80ba7b47cd64b002300a9fdb7e7648c2d0f9784ba55f837904df1fd1db46ea82802d4c3e925d4c3e3cde9b9b6063d303d410f3e917f10aa0a18fde5849d14d0a79d71a983f9b09a41e9a3f80dd36e46bdabe65a1d40d7e53b94aa9677561a549aefd98826cc32f6dc5961714d9cfbe913dd3bc68b8891017915066792cded38946c0316fb0eb6d89c10b84df01e0f910a9ce8fa1cbde71edb210918562910cb540d3eab21c8c8e43151a333c516239370ea3dd42294712d6cb920b1f5469e74fa82d4bd7892cec246db13f3f37ef0e980e095faf06e5aa417f5e16de83c8c1ee5ba8340d10785e1b10aa7573dd6f77fd87eab89a014449210e285fb17d0ff7cc3a2c61e6485c2f2e81fec821abf0c694b77f71a91790037d0f141cfb4a74caa4125dfd7236251526a44d4ffaba4589d5237fe647a4082ccd708e27e82bd28597081fecc184a5ecb2d19d115acb18d9d463e3f642e2e606d3f6d496fbbf19149ccac758dcfe8eb53378b65608940925c23754e0f1a390d520f26c4cc088c091e55b3cc475565c0d166265a0396c50d9983e3433bc5527e9fce7fca2bb408b39dbf96bc183c3659f6e8fee0f23e4230c0eef54ae9581b3a38436810accd7c37e83326e3fe7ed1821393a11127027821bef0b96f58a66968271915c1cbcdbcbcd8c62a54bee08b3cf143e859564b798892fbb9c430a6645bb4c8a2be76c37afaa67b7b5a621f987034e88b1608de8a0a09384d85b0c2c872cc2a9f8ac348c5f864d28558f6c6e4523f408586490a78ef95ecffe5b8fdbbc264944869aeaa3ef428d5cc5fcd363d1003239a6651532a442935e674e3cf1aec6f8b32e32db762bf2512efe763c88b9bf4413ea3344835b96fdcdf71c83afd75ae5925c3e76b9afb9fdc72b17f41ec516ab23529e73b9639f5ca42457c5afcc0f2add498456e1db6b3e775ce48753a9a70840c45dfe7cf396b627fad775acd051829f409bd37046bc4cbb57938cb490891c3aa6a04f60769e04685ac1167c9de32fb20cf43f730d8d09b0d74e7f80aeac659509d7941460018c38eda19de38967fee38f7e9526babd21ca1be031dff0591d765ae30361fd8c2a33bc1dded2c43e0e43533a55e72bf1015f5167c8d6bd5e6a19cd4e2ff19f1d47cf42fc361649a669e4524c731bfe7bd11c2e4ff599724de173dd6990f30db8d3b2084d2d3aaa0c0d8b648667b951d510480a28d40c938b71974d749e62d88cbc686eaa31e7f89cb86dda1e778a167610e7bb3cc97cb27f37ef9121ac1baec0a10b40211cc314b02b5df4274acfcd13de277e470b63c0f0fa387dced40050607517a979ccadff817383b404b4d627d8e92b8c1d8e9ecedfc2d344c4e85878b91a4a5aeb2bbc9e3f5010611121a23333a42546d6e8e909aa3b6c4cbe6ec000000000000000000000000000000000a1b2b40""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
f7dca662f79909c3ddab57a31bf75b9d925ee06460453ccc8687ed15f17d9b3d5fc251767fd178116899bcb8d29b81a71bf5fcd021349f4d8b9f99edd4c737300e23b29f425671f66fbf2d51e1a668961ef145edbedfc6d1749a5cff043c58a433d4469a3e1f956bffe2142fc6ba5e86c8e326d65ad16ab4a8d0af6644dd046a6176b92f147a04ff674b572b319b9fff5a9fbcd7ffc68eae3197d9b3799e94e18a7ffa1452f1b41c7fb7b98ac7d30f6f371233d4170fd10e95cba9905eece5e06dc153340436c1dd34ceb8334369e9ba4b3c14e9ec3fd29a701fa8baed707a7d51dec96e43de8f4b3b30fa1de919da643d138e911d5bd800e336402bc74fdb6522125a8cd1b252bfa663cc1fc4462a017ca356a0f96bdcb3d54462ec5994fb32c2648361f6230159c74b4869d98c048562eb5837d711ea29abad6d99f8e95613e0069770ba7fd265c555b010dad0619199a44db46e9b362998bd758b882ef26d90fe04b8b18a8887945362c025edfda0db7a750670397a5c9fa8801399fff8f67f071a8a2d8abcbf548f0393f93c89a28dccfcadbc204d108a05c3ab07249d5d4e7afead91645fa7396368622bd2ad3bf3ecfef493dc235365af7f42abae241b7e0f9f52a66acfea9bfee57631f1a921ab1798834d30af1d58bfba62d4818ee30826e0b8b620b885f55dc08b346e7f868e113fe9bdd60b974812d5991b3b9beefb4802a4c1f759e38736b2f4761cd608128887e88637fb5f4d5bc548e9cc121e3fce98a415c64a28b901d26e4a406979511fbfb0d8c1bc02e0533c2ec33e17fc2cb5f430a029d69950a980bb7ef7c1911e28b355478e348dcf4be4d3b30b1279f0e3f0238277fa32c2ae9fe12f1ac3ce5d94a8c1d641ff55458a1fb9b450b0475476dfc41177bf65ab97b85b1064a6b40005ebe1d537515ab664f3c42c61986a11bd93a806f7336b338e9dd8cf5717157aed7ea3747517fc91e75ee9fde429988df68362b4bc31c7a464b07f7a0dc8e91f8fb34679a3d38224c4ef7b7726ad7a17fa68b9d417be3d66ec95720b288f3578ab366ab1e569f66117db15aa5f4b0019cdf305b3fd2297acaf1404e944f9763179b613b896c5be2ceb56c854cddcb3c8fd71d2a62526c1a1d2170c9303ac4e74ce34bd04a28fb5e53461e5ea9aef756b189aa0b5f311cee714ac8e7aeb65693b8c77cbea41bcc9f3bd3387feae9f000abbe7c3f6966c07b5ef0c926e53206cbb2118b3817df8a4b254d03ad98b6c0d86320a9fb8af7d6f6a1dc827e78ac28fec3408e142fb114929fefd1f5a613413462b5a9dd244d820165c87f0c5ea2dd13a5aeb3bbd19c9563ba2937701647edefb1b518fd4b2f7f31055933715d17263a798de2025225212d41e3788d3f4b7b6653071018e35366d2cd39ce7442c70105cbbbb261dfc73308a443f613afa4aab199474ad2f2647f9d94acdb8c11bcdc2c4f8e93dc16bcf9b40f3fbf0130b2776175a3a0370f6dd7c1c84a55057e95848fd3d040a820db1d32229f38fcb790585bf6d896798eda3d27c1229293c0751d689f67dc6bc4e2f973fb6b62355538947fab1b1f6399b8e13faef7a2ff8a20e03faede7d95416854e5e6f1b5ff4a77b24c74fdac038bc1a12e6890f9c5a34f3ee6ece510f1a536ec613ce47173f09d4863d86158b7042bb0df99322bf55c6d5dc14f7f766b43901e77fe6281d5e5e6d722ea65460444172d91f0f99b3140f4a75585c1fe21ae8edfe3862539bd6ceb398450caca1cbe6ceaf6ae59e961cb0b106541bd7eca3ceb2e367921eb4566dc3d0444b766b0cf2a951171dd73b02f668ca8a4221d933791ac84cc6c73235ec468b"""),
|
|
TestUtils.hexDecode("""
|
|
8F69A33C4CB9627BF27401D4A1BC131D28AD0E2E5A317CE983BA2CC7465861A414FB72745E4DA31C0E04576DFE0D0EE834A1EE323D5A0901DD0189EFD6718049E2FFE1AFA548BE16E04B8963325AEB0CA90238C7A243A3F6AA17BC1D63836898688AC8E919B8EB6D689075E050B4189A1FEC723E0AE8D4AAE9FB6790B527A7552CDA174BF40BF91C4142B076ED8CF112A871450AD994737FD5BCF513D42DB01906636D42C6C10B64F74BD37D68A966DE0F3BBE6541AEB9991DDD0C0070F16715C01820546A014E66D786B8922E905DE2BC65053C42703227B7D8431427E3EBB0DD010DC58C2343147700D673D5707160F234E35BA24516CEDEAC77AE15C667AEFA8E029FF14F169FC0A781593E11D42E8659DA8E91E53EE0A1FF15A3C203BBF9591584A99FF8BACDC37541E126B8CDF3503AB2D1BFC0C37F38A298AB1DDA150288A8110C052469382A9A4F5565778339AB327DD80644A26B218ACE0830E56813CAA658A9F17826CD12B815612BE40906ABC89185EDDFA8E05102842CF27BF040FC7B396E7E2E023CB86AB7AE25F36DA6B6C0842126658E0315D6D8F4B5DF38CA663B55998ABFC72FE9B7EB7CE3BEB72AF73A0B2A45577C5215C42E465EECF4A4E69B6DDC1E65E0C1EBCA"""),
|
|
TestUtils.hexDecode("""
|
|
f0fddedba6482c562d0ea6791254b7aa34da8b70ca4f0a7cbdfb0e4fa31f902aa37484c4167f74093f5ebd508e4b89966aba03065194cfe3376066b848da8faf1768c397a0e3797bf09e1dd02be5f1e77703ddac9063901b52c9b4be73daa5d44da1a59510b25a974d9c54f8f7889587c6f69a17989ea8b69f4dabced9e23442f337d015ebcf84cf8c5776f4863275532c4bad840d314797e07de00a9c7fdbb60f83392efc382220ecf3f9d60b5594da6fcf00580df29a378a9cc3156bac8ec8bcaa7de1d8d48d2a1f33ea8a8f4956e3c46f386628ca96e009852405b6333710287e376aee2ee7c6f67b1adf07f76fec3688201bd3b152e202c192db41d9bbc0d8411ca019f9a1bf1268b34ce82a7c037fc63d9c63a561003d8247c645173e01c8ef63853e4451185d45cc2d5d2da4261eede504c6da88a55d7cc7bb8df33eca74e9f4b9f9139b9f98964aecc5278448ff9f2a032226e908b32d741037ae689c204bc1f3bc07850debc3fbc839580e6ae1fcfdbd62257ad64c2d6f6945a6757242d1473e64f089c46fe050d79a082e43cfe656f09d01ea219eeb7684188fe80ad59c4bdb57905cba37fe0fdc1b205f1a5a899ab55a37c7d3e003f1051bd3b322b37289df3d350053d6ec8ec1c9cafb49fe147c01f092dcdbd9ffd2b7900205334a077b2ad5c57a53410bc5b9f32930fc6f6a270d84d4436d8c716344df877f5e523ec9e1ecdd43ac21e2c4cb8706415be0ea1060c7127d6a327eca92956771af363c03ec4a0ccdf958bee76803208191946dea6e51a85dd071f3711555cba324e5a7d7459a7662fa6cce043b34845fe77cc651883c478d0d4b2c09e76bf401f0c12721d21357546dc78d2f054b409b6a702328d720023096e911144b7bb724f1d799b0b446954a305bf46944f122867cea17b9798636498a8393bc2dd328b0b3ae78b44ae35cbabe62e0f0d3ea4cd6db0bfce87c6e9fb3364c2ee27b5edbfce17c8df592882dd057dda81855abe0d0898961ace81b0ff22b4471bf96ce814a45f7c6b3e07ef1f18c9eb238b44dc6a50d7489a1af58d2dd1ea2ab2b1a0b4b661e55bbe6dbe9314e76207ec0a02edb2fe7e8fad8141401d1f1a80237cf5a10604ebd26ca46c0ed5d8bfe96c3a1d6ff5b7d2de69402d348e5db561e531deafe29b0767620d7613b817d4d3a6568911c291c3436b40043cdef83a8b7f527aa8e9ca89dc923c2bee6e41312af6ca1530ec7c6aae798e25a6a31ecd29f4ddd56d663e430e5c1ead28a23d424148b1a8aebe9ad7faafa4e295215962d294edb7b1f994ccf43238038ff1af9597d24ecfb68aad4e4d2be280c6fda0cb88b4a1b0deacf678857d83c955115c094980ef8fddfa5045a3e38e733bafa243a91e89a5676312db195f1fe7c0f7b0262628a68c6619db1fd85d84a02b9e7da8234304192aa3db15a294dc4e9e7cb32f8662ff0a49fc4309700e0dea871edeef3df09ec78c3791fa604ad69bbd8c211f136dbbfd49009fb5e4fcbb2c995bbe361c580a3aeb1c88dbb2f148cd05fa9ced0d826e24c268b741953c8ec804add66a9b8dbda05a9296201d0f447b45a4bb7271fbd3359a29815bedd33ae87b52bb270cec2369dbac94528eb48a1a66c129793a4365212f1cbe7e24c87a805ec0f41cc2f36bb2f2423ce6904406b1362c46d51d6d5685dcc06915636e20ea3649d6d1da39c6177630d1d48f393d7093fc12415e5789b15e1ffd07e1f810057ab6545b22b24a93f9af3ae254407f9920af8a48ec40412998dca523ee1e122a5e1107a1121cad25652c1e00f6fa115c58b4a7a60cb4e3b219d9828f2c8efb04a443717e73146a89fe1a4f887b564010eeba3695164704c517d3597ddf34dc51dc460773394d8cb4d562498cd127020973bcb2315c25ad136dafcfc0d674341045ab1de0e4230ec91d579ef1a42ad69892f17dd271e9eab28097f8f9c5e78c50c36c8a02f1625ec41132ff1731e3c59ba20cafacc9ea890db35b8c9606bbd5457262d0c44c4659f933adb64fc74a884e152627cafdb20cc64ca10ed9ee16d814b506415cd0141406b0286124e37f777dc810d70d4125a72bd98a2b73bb26173494568bec76350b2b3b399fde1e3c115f1fbc99929a58a8ccc2b9cc1efcdffd210d88ad48c54a48e837cf841c9f1a350531b695c6fa08ce3148682fceb9fd17f121fc1e3275f65b5a8cd93a25d42318bd21e94ea8873744f2ab530c58dd3bc1109a5c872e61887bddc455b1bcdddb91c0ef4437a49a9f6c73fd371bc6c6d2fa594f78224646f2b8cfee3563c57149aa3a6995dbcf0e6782c53694b39b8812dd069c0cbe713fe44446e44beb4ffe38072deebf3ccb20134168702fc023c4ddf9aedd387a8bd6fcb075850cf1f29f2bc283f5731b75b68169dda2289ac221217bee3e2ed479fc5ea8244a99cb27a015d7a3ebbd1f7acef07b63f17011c5e39ccd0c025d0bce5aed7c482685c39f1fd82a9b08c197f9cc18da457ad0ad55250ea935bee50df659b2c7a501a348b8759643881a9c5555015799adafe10130d6107e0b964b48d23c909e55843b62b9dcd1dd3b235c487968c2c3d87fe29b2fe3ec7a8fc1c1666fc8d2b6adddea39ad704cf5eb6c22f0a5aeb80e2bb04f6c2c6bb9ceadcdf7945140ba942581213dba8428a8c06155f200082f7faf357ffaa653245e2752787fc1598e000eb567cedd49b98d5e4fcbcfd5c4ee10793c16a4767445fcd16ce4201cdd005e95cf5a714a9e0f648673269b5fcd8ca0cc254b6cd2fb428075a12b7ab2bb07a5ddd82e58c04676563b11dfede4daf13e1362a5171364a2f556c36130c1eadb59dd966622f8b86502f379e0dddf69a1f73f58ca6867b4612f28e67c7dfc49dcb56dcb17a79aa0e56a08c14e1e909fd21d05003ea921ab717bae0ce1f15a74a71c4d7e6936d20c7e661806d5f8a5f4cd93ab6720775057d4c0450a6c9e2211af47c57a7127f59983d824d35f48848043aaf3e76209a6cb6f34b15e5099b2c3801bcdca3a5c626bec9b6e92a67189dbcdad0d59d2b30a1f9cf9de45084ed6d35e32722b6642ab870247b42eb8f5fe39e97709141e36b5888fbf496199675274d840f15f5ffe40d74be3bba8b4dc51425f839ef7d041a4232ccb93b754c524ba141c75ba94209f9e76a0d7c8f2aa3e126e6eae35f19de3fbe38f17143d1a83830a2b9b4c8a8b0bbac29363ea9ed0fb1001f67e1501b6f4d6406e2335a61f3386c9e6a2447e3249d3db8390158af9b7e57d81fcc00a4210194ef6f872821a8cc475187780d658903040b0c0e172030576772769facc1d3d6dcec001c30335b5d5f62656b8f96aab7c4d9dceef3f5051b2240435b75797d90a2c9d20b1b1c585d89919ce1e5e6ebf500000000000000000000000000000013273441""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
8a37e080550701795416f5587b977446898ac8147890840db53ae4c7a65508bbab7a2ae6095c3238547f76228d5527b3cf1a6f773c1df211fbc5c754b69e27dee951eeadc89246b2a5fc047cb04416c905d36b9aa8f449c2198aeaf57a7aee84b4cdee17f94e1099fbac56e943298ffb574dae6d616ad7e13788d56b841acd970b4c14d9842452175539e3721ed4b00fcd9585b05915580593421fbb449ab9be941f0d91cff4c6756dab0cc6ea5266d8dd8e79e86a4401a85112d3c871de6e96c86472022c9809b8e1e648adea7e2c3166a7c1529c2ccbef40397051e17e53d0000c6dda30386bcc82254e6126247cbfc19e3c4f2f94db3a05a8fcf608feac3f3eed55fb53724e97ff20e31ba8ed2befd52259e3a3eeb8e7bd80fe56f9e9806e26bca49f0e28be54ce1cd53e75c2c9346cf4d585afe8f9c260ce6eae3649d1ae093becd4220083927ece4f17557a5af9bbb6477d3b0da0dd23f0896a663227700df6df2ce10a0b268d5762696fd9a9ca3ff22eb28b8f999e9f91818e29459c46c3c6a5b6c5eda8b880da621d9fc1792539cfacd58a1b7eb3a54bdaecf96b37d16752659ca51525e6e9dcb06fe54242ae65b9ac8ac5c749c09c12c310371915ecb7ea3cf46d2bd13c66ddfa2b6690e885c469ee34351fe07b749480be85515deb9b70caf055ff56ab85e33a029edf98394d94dea7bb8bf3373de77813233fdcab6377ad20a5dbd3144f2a6243d4f73710c97f9e113d70aa9771b52f19adbd074a790af5d3ce83c74855334161be8d572ce59f1ffb5877f4c56eee62336c7e690295fe8e0e1c964d1938cfaa6ca8f93896716605858ebd9a3c6ee3dcc8a803017f8270df26f7aea45df98f4f3a88f6943e3cad22a79b057d7b3d13554c2dcecb040172eca89ac6d55add4da96165ddb336d439370e71f56dd67612427be4fffaaed5b9f6a4a30884499dac7b82d536833db4480e050089c766120635d9811e0873863d0b1d355592aad472a3f18a1cd217b3d2c203f24e795df30db4350647c1821ca7995883d6db4aad4c141e49af64989e85cdb398968de223f80ebab4b3deeb771aa7270022983ee63ced61fbc4daaf578ae25bcdac546f4e2335f4910f1f5f58562e7ae7b4cfe50ef5e30de69d637da2e50fce483adbaf75a5a7ec6d796432e5ae95461c45ac74c024d4a515b81d18d702b49514e16db48944da5a7b86319c432a84bbd3898007d515620665ba4a5fc83cbe7e060bc9203d1cd971fa73b538d949810e7cde88d082eef96c72c2c0cc6aaa883ba6e4bb92f90f72388a7814cf03c86fd6c60bb92b36a072cd81ecc3bc8952f313e71f981ac53e9a9afd2d996e88fa7d0ddfc9eed0ae45c3665c60ad92e509a183a95aaf2989e9eeb92f09f5b9a462a9a3d5acef6af41ba5c6396d61008d0edc1ebd3e998849fad4026fcd4901448ae94d66950f7939103d2392ec78c7b9ad4fcecd43be503eeaa5763b0d03a55e052051c79f8ad82ec98d24f293b1e339e5093845f37b76d33c74f37f17093124dd18ec1282d0b42a10155da458ed0ec68bc4ad35884abdbbe9592e5e82c78a19f413d6cb41fb1c896246ed4e043d08da02f1f3706427e2d963c6c6f9181f4057a21e2d69597a84b54b197f42caa629b99e20e28a9d2d1905309245dd7e0cd5b5fdac815acdfb64b6128b3ba8d10c83e61618a7e8558715ce1f5430db60fe6e6f0e01791dc734dfaf19d48e813fc1d5fe1f353f4dcaf70b7fac6a170e97c6c541374476c4db1220a4712b1e285d2f91a5fcc4057e6767f1fddf4fcb83e16258b93419d7d25ddb3e36eb7837629253adb7c79aa1fefbe81b2dc59cb93f5390fe"""),
|
|
TestUtils.hexDecode("""
|
|
5DE75924D05BBEF6B34CEB195AE3349EB621187051B1EF95A779B99A3E0F729994BD19C7D1172418BBD3E015B20699DD09D8BFB0A343F477AE2A3BF5737AC994619D1FF3C13E7676D1BCB446289DBFE36E2D1508A3D437B4B0DA06478DF6D4701909B272E9070B1FE06385DBF8A552B471C8EB48EAE39D141009FBCC5D57D95697ACEB7B5231AB5976FFEC41E947BEACA7639F664C6C1D058505A49561811ECDA46E23B651F918112F38B407E82219B49E5C4E7C247DC4BA633C746B42DB912B07D56302FC5C08F5E0C3E311268041F970E670F3AD26A207701F1359EEF9D4134ADB882A1C899B0E4FFBA2C68535D97796636417EEDC0790FF808C976B57F0838A694700F8D75DD4FE5ECFB4B6A188FCB77FB1DF7C5F7C91DC81017A5E9A6D1EAF59680D3291F74743E1776A6DE31101FAEA31D876A0DDF3777A91EF1EA0B575C83C97C7A283E7E958287F5A52F30B6E70201A1410355B47210B911A7A4F6FC23BC95D7951822115FE410ED2E7FEFE08940B3F8E63F13F26B6E949C498E62A66FA675850FB9F7AAFAF7D054F5C12306ACF2900A5B66A29931A5919CB31D19304916AE41869CE3294B0F5F88D845A7FCFB57B952BEABCD1DF7FC11E2D342AA5A70A8AA9DBE1E6E66555EA618849A95439864DF6D7789D8E3B46C6FE4F33877F127D4136D993061DAB530EC979F818A57E1052B5B33D22E941643DE2FF9239741F6459A0EE28658C3C0033FA62DFF37928C59189A7A7E36B1E305F3E1F421EDF4D71A96C71406A0F9AFA5C96A9411AA1A35D241D7186E5C8D0CAE15938FF869897DC3B7D8196D64DE202108D6FB436FF89983EA6DBB5BC88EE2A02488E4D12AA87CC4BDF41A339E10300D32E0FD4F3D3136FA64BA90D64E2BC7C20BA77DA4DB5311F616288496F2FE3E7B3409879050FE57A23DB0344CAE82ED329B0D31DC9B7406CA715E3D84E364BA98F73F693B6E62DF4D741928D21D934453BD67FBBD9725BAAD34E5F3204BDBBB569251DFE2D69A9A96BAD90256213BB0747E7950AEBB4CEAC7224FD5F8F99A16866F5A1DCE07C2CD1E06B70A81FCECED0AEEECBA62521AA0A01FD7B5A3A8A14DB55AFF331E469F5138DBB2B96BFD0AAEE7F38EAA375F71759268546D590BA8C0C022F78CABC4E089992409D3D7BD19048D30B15C796170BCD7AAF7FED0387542BF8A6674F197EF994FF81BB80C59208A572495DE4E584B36A7E9149B5E2081A4DC162CF8376029231EFFB4B4981895FC36562F51DD5158DC82ADE52ABB0E98F4BCB3C0A24566D07686732FA734CDD48D03DF99F7253E589CB8725F17E6BF964E96F9827CA5A9DBD04D448025EE014EE1B5DBDA514D3FEE4F20664C11371DCB16991DA883BF9A68EE30D727137D7902F4839635B1C63F6C4F7D42070E880CA774680DAEF105D277EB8D9090A98F6B813774D42DEE922314480EBE562775F68ED180B67EFEB077D8B174C7D4DA877B0DD3698CF506EE382AE6FC6F68EE93ECA3627B28248D3EEAC469EB0C26BD1A10A7779CEA142958F9F9A533BDE974E1B3CD9B74FEEB2EE29ACD7DB65E00D7ED6E94E5E44A925188285166570727FC687AC7EBE4042BAEF68BC23F4B9C51BA5040BC6BBA41FFA9AFB1AFA09DE1BAA4DA091A08086128A9CA5F27D3F4420327C8FF4801BBF2057282D05D1CBDE60E1E6FB6715EC41AA9A852686DCFC47279FCCE5D86ABF02A6B5B57DE22B2097B12381EEC567E4ED1855F9B482C174D6D40A5825687C02E1D0AB634C020497A44E07E8FBB2D05280C53562DB4C90AE0901B88179D06F9F991E33BF17E7A9227A30454430CB768F56842995081520158FC34BF5257EC8EA9338B3714126D6A95A3D77FB61207154F6DD0041BB03D84D8F75E6EE910460F22CA765A2206D6C56C6E498E063B08B76B1DDF98571F492F9DBD3DEAE7D9C8EF21EDBABED962331F06371364DFCB3216E24638A20F77FCDD894FCC5525DD0C8FC329494841EAFD93CFDF0053FCC27F5A1263C7F4599C186B35FCA9C6F5F2FE169B00275F15447AAA3A823E27E322CA2316B25823F3A79FFA785E9CBC953815FE06F376B6F5860C6A87CB9BE98690C9C2A93EFF1BF1050A01C72CD521BEF265D66BC4B8ACE5736215DE59290DA957175D704BBEFB0E81C2CF906C3A579BEAC3A0C945409DEE4A1E683A0DADB3C4AA7E0174710C72A33F1BBC62A6E6F3EB9C138C0CEDA817688BCE8CCE523A2A4E2566775015F3BF66C09E716CA929BCC6DCBA7427EBD93B21CE276820734331B078558C63ADD096004B67E618D9E58FF3FEF00183EAA293A1DA2520BC03FADEB6A74B52292DBBC6EE4E5ECA8F8B0556FED36C2B41F9D8FBDA8EAA1F74BED46F05E7712E20E463502A420B6CE67D125BE999EF906300C627C57C468C8DD608F9AB354791E6FEF0EE63DF3C1821AE78111B27E57DA88FA44D89581D11C2C72F565A3D0B5E8E2D83DF178810075E5F8FD29E1953BD2C6326B693C5CF6ACE086673D69A67A181062A6ED511E0CF36381358C2DB2A394B05E0C1EE9C54B89C68E10857463F71A842BDB8429EB31D250542F88E6BD3BF10BDCA160C0FF44EBE7D0D982F15C4892091B4A69A3AE7051BECD1D2DB132599F1101E2BCF60136CE947F339A3DEF9F6D81E1BA3F5D4CF2ED989861F7CED86B1A6A167291CACA74C45BA7B5969C09EA20C4EB061D4CC4B68392AC866AC591764A16D0A42710645988FE070314D0859A1F022789442381EA0E3E83F5245272CB5FBB861C3729EC484D2F299F37D2F50688D1D8DD91F131D03207CD1459B289B19E3ED609D70D6BF8E0B97A75F4B4F1DB52DCA7AD03100A36C45D2AA221CD01C8A51D5328AE47E3307EDCEE9B27F62E5DA9EEE15B7A2FCFF1678551BB3DEAD4CE54A16C22119BCA343822DCD20271BB1518688CF69B566A123F65C4787C1C525BAFF00CE20C46C536E47DB1E4410E572BFECDD7904583BF61847868D7D1AEB1EA071EE15A9CB9E3EFF8D17A5BB7EE8BA83C95272E065979904AA99CF036BE085ED869D3CCB694C025FBDEE9BE140A0A21689F95D90D8A54DAEA98EE5DDFDFCEE2908E65C210F347D26F35B95B34642939067CCF04A098ED3E2CE3C0FE66305BB5391E223E43119D38A33672FBC980BEAB96558D3A940700B3CCA9D3AD2CEA08E23082DBF30FC08E94B6640CA04BBAE80091ECE96F128B37141131FED2A5549CAFD7BEB5B180509880C49FC6CB1C11E4CB7C7901C89ADFA0E5335C43A74053347D3028B23085647993B5844FB2716B7154D93E25DAD1CCD889EF3B16FAE34D04145237378D66BD09A254D395736990204A5627F5446787B467B619EE8F06CE664BF7B94392B5C77BCE828D6186348EA2DECA1CC84999FCCD95C9EC55E28C8C2FB559C9020C6EEB661F708E40351D7E530BFB7B1C3683BF15FAC5B17D1CE7EC5CC3C27E04889A9E59E6534C08AEF6934747083CCEE84FF2345D519CABC7D2BA6B783D36C864C65C47CA636B28B71D6797717950D652659AFA8BE3CAE4E269BD527C0425168D04C097DE8F34834A7D1728367F148524366F9E53C4CC255D3BD6FEE7B5A6CF459E1685FE740CC203EDBF58082820B967A40822D36BB4A489BF0CEB51387009D5205056387C292D584309076956E56926283657BF7CF096F54E0128A265050DF528AEED9247E19EFCC79EC301A9F38BE7AE5057456631840EE39E191B25F4F7070BB15CE2CC18777F7CBEF100FE7993681D4E965D0C19A68591BAAABE601BBAB89FC27B3C5BA83545AD645F0DB716C98D5C7A37E0AD97C986EDB88B025D25E3DCCCA816C707F0E2542E44F4D69F943E1DBD08E344F88661B68A822C3EFD648AA23AFFA2F533879540BE2F670F4D53091AF68867E7C71EDB6E9E494E9D30A1839653422AA8AE34A525EFAA62D3F5FF00D91F5DDF80FBDDE464A8502AD9AC85EB21025C0E4E2C2877D50962C5AB8283BFC823FB221CC285F3629056D1260AAF87B556E556B4C723D44279A106EE4075BB79773588333B42065811D671016AF177105106203EFC36FDAB2F5E5EC8DE043902583C1782BFD8BB772353EBC5CF03A0D869E5F3797713B58EB7480CF7B92AACFC9C41040BC9E1F5447F9852B2C5B5F33B5517F28A01D5435C47E063B41D3B0F7605B07AC33FF6F05C6FF44EBB70FD6E1AFC2A32C9A0B1AC17044401B93D6439CE53C3B033CFF06688E1933CAEEC48A04999A01956096339B5E44AB3A57FD1F0ACA23A03114708BB16803C2CDA679061B8E9808A2E11DB0957D4F73C8A06E6C50D6DA43E4D008ACA23CE2A3213BA0DAD20D5BA8B44DE5D50E188039C112B8A40B250E7E815B1367375C5698B61BD915A70096815479916F455B9EF837300908C5A8BEFA5157EB688EA02245AD3B309D10C769CA1B8E5CCA2F5FC66CC3920759A203C3F6B8E9ED10CAB20FA143B0BF0BC8529A4E89AB0C99AF77E43E68B61A9E4176066C4708FFAB05F3652817FC42039E2F22DE2058CFA8701AFFA894F3143FDA27AD85C45D3AEB30CA9759537CA4AF2079317CE5F4B5EEFBCAB981E42065AD5CB8A4CC9B628CCFAC18D2E637CB73399CE3D90A9060F88EF438E8511CE6F403A0CF14C6B641830983C1EDDE73BA27E41BD678E834167C718F5B1E2E6C109199F756905FAF9F0005CC1D110CE277DA02675461AE70EB6A412EC455B6575F16A4DEC0565DBC8F387D84F9D3AE67AB35E511657D82B5606A4DB45CEEE81C94FFAFCB88B8185CFB67E4D7171EEB391E9E1DAC625B56FED22D86E8A34924740F94A3D50CBD05B8E2476CBC7C54D2F742F0FD7162E7A138D4AC788E710AA45824513BEA162E2A1C1F709413942BAB5AABF7E347A148D53B8EBA0336D91539766AF0E827BF8EFF36389ECA38232FF2D7E341A3AA710F590C78EB69156462BAE9B8B73386F38EAC4FA26456FA555E26E7DF679983FEF23DAE87DBA66BCEA19A9F991F864A17C23F7CD592ACAEADE0E82F4737B70F0243F94F015B59330B71E25F1304DB3D8D7E2F96669BD7F8313EF9E10EB1EDB0F0BD94745D03C83768A618AD9ADDEDA7C1E6E134F8B7BC96B84652C982B1D9242F8D2CF0ACAD146EA3185E2332904E84088CA2D7D60D3E2DAE411171726B5FB6C95B3DE961E62474CEC73226E55AE7D9C7C534E278927F5D669EE6D111E325D54F338E2A6A06493D6F1B7A556A94CC9512235498409EEA477597EFAB239380491C9CCBA1F00A0D1C5D758162E9F4F5464A1A64A22C32721AE57E246722A6B2E07E544A5FEB06AF86C580DAB2B9DFB5AA0F0251E6840EAD66FCB6B89F80C2AD38383B329F9EF4589BF0E8A0C9996EC19E1DA539CFDEFB2BB0F3D9544392A06F765A74218B7DC34F38D230D1AFCF9130410A4B4FE038F7AC59B6B062EE2D2ACCD288606AD9AFDBE95D9572B78B54D26166C7817E6F72F7E6C55DD1576720E4AB99CC26722107F7C278BAC2D82FBD0A3B0E1793C2D8B498F90A9172D17244A4107D9274958FE078FA8A5A33087BF278383F439C0B41523E0E51A662A9F2822CBBB34EDA97F5398EAA12D52506C2EAAF6D4B75639EF0676F482A69DF0E8A9BDFBF6105E32B6FB3ADA2E29C62A0AA687820B4ED35C2418DB1A67A3A5B92DC61368585CF7F3B1B644A8137A52CA21DD982760CAB7FB111558ED0310E9FBA34E5480F4E707A2CEE74DC24AE5717C06DE2B509E4807824707505FFFC5DBFF798E8D85F758A94C2D3770674DFE03627457B2DF10628A31D44BD89D3435D93E4F9BC14D47E6D4B9BD3BB2287ADBCE1FA58495D9032A9A3ADCD56CCB116787E060EA431C1EA9E60A30B609AA9C66064017EA05BC16392992B7DFF62EF1046FC7E64F8F811CE50AAB40AC122CBD5119D3045ED0812F6E30EF6B6001285427B643E3C6FCB6390A9FE76B342A462994F2B9074B56A848538DE205C98BBBCC75DF6BF23CC1AF0B201E5A0618D4BC5035B9F71BCE9D3493A97FA47607D65865A5FF3FF17A7CE28C0E87A57FE951C8F804EADC21F161CCB5D1E66F1E4DBE92C69D4358E0CCC13A12DBE87C9B530579189EF2359A9DF5A8FDE00CB2B58EBD748B23F884626A66EA39847917995EADC1839BFEDCC24AB6BF22A5C247B6FABE8CF382DB48148915167BB47F505C184EC027C3AC741BB0F6676B0D0E7781E19FB8D4D630E71ED4843010198DB9B122CC301D432856B393632369FA1C99BA252F086E317229486C034F1960087ED4606288A7C89DB0EA0DE94700785322249E901897611913AA74F8BBF412639DDB639CBD1C41374A3EC66A87451D9E4127F7627DFDE4E1701D7FC9DE13DC7754952F659EBA7B1A861B8DFC78D1379274530B976C66F9CC4002563837C852D83B3F3BBFD892F14DBF64C976C924E3C656B69131EC17B7905507F78F073A7E509157215C988D490685F8AF23F64ED338915E72B518E4305C9CD44C219876456E87C0C59C5D7524C86CAA161C745364A12890064CA9061056F37ED1BD56B5B09B1423775BF0FCC898AB1BBC283B23DB6E91A3D749125992FF1BB598260DCFE428D2524050C1F545FFDA18A63B052C0C8CA4DF8C3BDE83EE5474395135FCA2B05157C25548B0804D1EDE"""),
|
|
TestUtils.hexDecode("""
|
|
0692e4fa67413edeabd602bff25ccbfad2e3402aa7399d8a9f7d0d6d389532019b7d3e63229d12ade7d487f1cade7f9533fbe2eb22a810c94b814a923ea83d7bccbd975af424bf5535f235117afa08156650728d96283a92d6276e34f864c37f8c11674307d653060d8310c0c7bba86515e051c3b1193087df6b22648ee59d6bc7a8c1b509b71620e3f7b5a0aa445f628e15e0725fb49e757cfbfd3dc5fe92a627bee707e33537fced3489e58fa73b49cffb2df08cd45aabaaaa491e77cf205d5be4f86f5a8d4272a5513ccdedfcc210fba346322ffeef9e11dfece2cfb7b854eba1ab581cc533cc6335b2195a20dadb86fae9efea0ab0c7d17710f8b0d8a157272509803c3b49fde1063e9297920bf245fe6502d8bf0a9a1f064d5a58b30b5a14dda6698ae37127f8d867f9aea40e93da3f4af04b91caacd66031d03c0c7e229ebeec8b818f4c970acd5c4dc8e17a3ce618ca96f4ca29f46f5e4059becc5f16ee43df8ba2ee1706c41621da8530689b42136b8a62dab7c691e566b9d48a28b45af799af56bcba07bc6044b64253e9a80e9b5ee01e8af0ca627a84d1a2a7ca9b0659dd1a60b788e5f6538a8223973476e9466459fc4f20cf2d1dab3ab137c5cfab433c436e7f3a6a681f675358b6721dc2850ec7b43aafbda90d13254e4ace6016175bafc1bc28dbf29541639527f246f6c007f41ed1fe6c0329260ce2ecc19395489b5c39d66543c0609120449037f321db95a85be51f1d01a485939390c47b53d82741edd3a5febac17ae6a8a4ca45df32fa6875b4e907d544e529ad26f29b6f923e21acd7964fe739fc1864d72eabe0859ad5e98142ead24c91167fc072a2c2673c7c5bf6da83fc7d662283347388891ca575f275907d06bab987ee5081c2ec808c81c563c902203f8d525243e20b5963967bbbdfa2e8ca9ec8ed703d8dd66c29c8a550c4676044703bc93f969e35f77194412bfb20441bc5e89b5e3238b766940779217af090e0da162e0f95761f63e05a378d0424af4c899a0a68060d9d0e5a035f6ecadbd550961850ee9345111491140810e2eaeff08d8a817700ab4c148c95086ee0663c4261b3cd53f8ab5b5841ba8cb9be8c5ad146d8549f21750be69951fffcca492624e136ed58a5e81cfb01a2147cfc5ca07a0721a38adcd25fed771411c75a5f7ff37457cab19d866b2da0fc45bc77e122143800546bc49f44909042d96bfdc63ac60f09bf4a75e171ece95bfffdfa73b4e509750ec6579996d0c83d59afc88ce9af26715be98cc8e6d05a14188a0fac6af1e96fdebe8f10b994d50ae6e84be257e6392e78d70441bdc5de30a1a4a5cfc7d5637810651fd471e162df2a76571c6d3df3b227e89cebcfec352d0f1af41a29e993af22514960c64dffc72a9819a6092150bd440487108024f0243db54ea68881d1c99b529ab529ebca98ea690046b1e37f6f1110686f6d9a7a725aa115c5e9be4189eba063d28801ef85973d0e9eb15179cb64378b6a5304cce09c82864bfed361ffe1702a9ff8e51a214b584247b967e5bb7f64b955acf25bd1073179776d9c03790d46f828342b90ffa2a45081184c3be0caf7aaf6c354b698e9256421ea3688c6fc18132d4e8d956baf9b821e64a579b1462ed4e990259867899ebddb19a861b24c20c2b0a6c274a064e1d1db366a293673153752847a2a5acc23b573ce0975655b79fe1a1ccb347773e3b1c5bb3028a1508687d17f9bf86ebbecb3086db5ef2559be02a68f1cabb47eec1671e6d3d35b65371fd5487b413fee14691745d0eb260c9008f07b5ce629c6d748c452c3131225f8c7586d99b2122202860f6e73c7def4401919e02e18471d1fd874b7c728296648b5ab571c517dea55be9f9ba65ff2cb349576a76030789dec17102a375ef8d779f2f2ed17be8fc41b84b1ef69ed18cefe28122127f211ee1abaf2a4044a3b1ee653395141da50db99dd3f73f85b5c0158a74f6f9707c7f62beffd70c068db1d6ef686cad7bb859c98049935e73aa4ea76c3225d4f19b333a4290ed0d723c6192034618fe3214306536741e20b066a6b9190972f4c4722534bf760a07e8d3a45dfbc67dbb8a5874332a4fc0e0a0640ca3999b93d34e4d8731957465e213577bade1f9b371540dbba188674ea205db7b244c77b6a772caf69f8b46b7b05439a852232348ef6d437bf7c6c79a4c0520a8ead1f3c00de2a063eb5a1e162f4db1ee94f1fb94f56f62d951da29f6b3018485c4a5c2c5f8573691aa096d8cd2922b66c8b7fc828d49e92a3d648cfa8ef524199b4bf5a8f15693960c5f59862825ccdda554b17e9c35f7e6a24365508f5a23c6ae211e3db71740fa444f92159c8df59c4b073f362cdb658842466efde20e9ba0472e2f682ecb655961ba8ad7575e8b02320ab6fce9188321816968a15789977084409d89b487253c778ef1ea1a1f47c750e37138735bcd58f6956ab7c8dd1c8a7ad35067c0ba0940b3b091c362d3165007df94167f33e0c660cf02ee5d6ed90c8ab4655ed47655d810751dfb2f1e65c890ed24c976bba0b8a998102d660a05325261b38fdfc82ba300683df5d561f73a11fe6f06425d11ef4c6f32e6de2ee6081a9b772e07614866f54e63ccbf7b1d9a1c3701ccbd1d9087241d8e2987203dc798d9431b8ab1fde5ad788db13c2e996a1d21b1559cffe3f7132e1aa83acf6c517d8e8d719076a36c08b2c6afbe5d23dfb9c5272ffb2af2b8febd51946199b90f98e7d49358057fb881f4e8641e0524c3471c0f6bb4cf59bccc7dcf09ab2c2d8a783710c982a35e4512c30e1c19bbfeffd992884ade3dd2a90039ebef2c23ab98fdfaaf6ebf34ae7fcb7fe742798c50a49d740244e65c49b22144c05047061e592b32ab61733a73b55ae04c9f36273dcb2eeb4872e7b7d009d4a54b867613ca0f69c4e7756a48ba7f9539048d495a578b8a76cac198d77aeb6c3a7dd474390f91faea384c94cfd73486ec226319946fd829c3ced266ab11db84176c7f67502b6d50ddf46994d6bf748f118045457e3ad7192f0b03c2bcb2455d018bd0ab1306b473f3761fee60d941637c562cdcda0dd5d5e86af9e95bc22570c07c25d5bbc6f1ce04be9e7bce5f7f095afec8b7c4cd930f9bc106e85eb8620668b52c9d09897460b1c8d74febabd73ff9b730c291c28f1410b442d91c533383ac3f2f41f0bcfebc9121b00015d8c506b2183b7d183751636da9226b795eacb2a1223004ea8a18a805b272384ea239ab86b41c556591fbabb783a6f909d5a181f3563ff1f9abe58cc921c751f3340497d94b1b2c6ced1e3e4345e73879296bfd9dade021b25436d73a3caced5e2ea070824262b5d6877aabfc0e8ecf6fe0000000000000000000000000000000000000000000000000000000000000d172332""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
a15c38cf5d89e1912b7ecbd269ebc6ac156697942a3b2557f5cb631782ee2ebf3158452ea076bbbf6eafbea078f2da4b969380c279ee4c5133ba8b1e9e3243c30e9085c353bc1210717f47b099d405b0878e0dbc24cd59c6a5181cf07355c10891059c18fd085f9b2aec6df7e6a21ab24094d8357d1b86aa6bd15ae92e9b0929d7bace3d73160d312dd7bb5af9fcdb0cdfd91dda2688d8e507ae12063c22128c69514c8d61a3912397d031549003dc5e2974f6db4238a8c5f1e5ab7d53751e5165f7c3d443a3fab54af972f7f6cb2b154a215ff6b410f45ae17d654fdfb58d0cd19fe75b61aa0f10ee1448d850fc7582b16a4ee6876ef6cc3663921607ce6da3709bcaaa92f15dad54eb8db0ae01f6e093663e0748c33f1ce041bc4566545c0b78dd606991d43fc76a9a1e1fac2c1765bbfd70eef0ef941763f0e32e83258bf2950dbfe8a391aeb927959447a7930dd5a006bc449091ffad53a3c725d5e3b01870cd5bcf9bbcd0bd33de9cad5407ec36b69a7bbb9cb0eadd182b9efa59c1423271217ccc268690ecb7c82c5f8df1df4726bb67ad80b04d3658a6dd1e98201d7c0062bd2bfeab30dcdbaad3b0bad393f1baf3924814ccf5bf6f4c8fdf5976f7b7dfd6242890a7306922c347547d051665c6288444a2bdd918f7346fc7cc8959ee3f8b936011e7e96b2a255af38158cea9df1faf6217d1bb989b09a8de3741d95ee834fdd2ab3962372a2879cfe93b1db989f9503da17e4c4294a6ecaf99a48ce2c79e2ee84c093cfae7bbf2dbbb9373ed2ab1c4e99da39d2b2a25633364c3e08a89b18b82aceed6a77fd805ec3b924f7dc96db19aa0737bf3d5606ba6e95808844a9395995f3a1341f3178159ae83b06b816b73e6e403ce72a93bd60ed2cd3c82863410f1d8e43d9f4c85573085ac80721344bedcafeb14171359a4df9486c844d17e38a4e0006e8c7196198ea8466007ba4e98d6119af88eea0925cebb1f998f988b42961c44f74e337cc693223bfc34142268d33f30e8bdf8480b44bfad1e3f8266d35dc1b5bd6758d0a8d66c7c5a1b93e49f6e0134d49f437257850fd8a6af26fb31b9f7384a7275bdcd69aac0474dae9778f054673bbde6e9dbf441368cef3f8829c45bbfeffbf8d07d7611abe67a5d55c8f2edee611fffacd9b8e1139d39c152a461232c972a8259a8bc7131d1d8b04709dd16e9a2771c95a7e57f7159c723bbf154771d34c7eb85230c57ba06e031da4be80202d7d12ccc74ec2ffcaea3dcda60259b6cf894b9af179f9f627846ceefd4088977911993b49b225fd886185a2739c44b11915896b442ba1ae53777ba23f21cba23f78aaef5a881f92d87827e27990db4de004d17891aeeaf1f91b86dd3f7e1a956f960131b78b3d7eb9789e7a914c4a635ca5181e1396f25b4fd71a7c3da7c1406337390163cff9cd04d74ac34d4debdaa4b4cc212fd5aab3031ba539816be8ea7391ecaaa467041590f36d2a68905e3cf2f5c33ecfd2fcc982d536ee9517069a05f4d6c7fec442dd12fdffb0b6ff021d2f981b44c22d9ea74d2f49f34a43fe96713878f9f0ed43b7864d2b8155dc48a377f93f07a0432c2594ef63c0ec8d26276962c91898643674cb1b11420991deb3fb49650d5c009586519e166fdd0e178078db1554b9484be3313629a835548baca23beafc403e15b89be58810f1eb7aeb302b94d7ef6ecdaff0866c28a98a3d3d283946bed126396f3f3f3f8738e7b69ca9c7c5e856b8f91f325c342dac913098e775af449f0655b6dff597a74ed92187a0bbada59fdb2e23c1c76ddeb19eb017f9c0b0302052db7c6edd11ae1de302f97a4f0f0d95dcc3c2c3e58"""),
|
|
TestUtils.hexDecode("""
|
|
22AA98C685E1552B525B4302C943037F668279C224B6270DCAF2B06C4F4AB1254C48DE253829FE6DFFA9CB6BB294F054711BAE3FBACFB900CFD1F0844E55D51EC6F697B998759B14C13392DDB6F7DEBA77FFC22468781CE402"""),
|
|
TestUtils.hexDecode("""
|
|
5129dae7c620ef4c5d6b0e0f7b43acd806adc035cfb3901e162be14f2371bba72674649e2004b4d055ab533316dc520afa8c80e5285f40f7ea4ef876e68b0aa4a559ec2363032efe5fd5a1d5050be8221c24b23c403ccf71bde5410b7e5ded038255dfca9439992fddc4fddf96654c78098c84e0182d954e204510bc7e5635ac29cfef21042bd52dde771a500099c75311c8657c5fc5bf303b7769ce8c2de7548b388224e727505c42e6bb69d48d845d9a43e845e7305a098657385307ab23c6bdc70de07868ecc1470b98e2da98fde4636af76fddbde6af2b60b4f27e38d4a86bed60e6f995533261cf91a618c07df0f659561f61bbbd70dd2b020cb04ac1fb6ee1a31ee4f4ae5d0bc2af22d60701700a44f2e8d11b72f4d03b3a96e2fa491e6e61f8dfd3ca678e4eedaac1e6bf418cc4a34b24bddfce3975d84740f7fb92ac2dd7aea450f91bd6ced924f7204754026f649868ccb103100b79d3ab2fdd2f916a76a6212bc583f1f5e541dfbbfb10234681c42ad56a95331c90f5e8b3be82a5b82ed4292094d9d60569fa760628e082740bb2da0a14b2516dda632c007ae3089a2068d2ef48b3f713999a699ab180ca99d7c49c4a0f40b908dc51d9a17db286721f8541839d6acb5eaefcaba5b1ba21e5ace4be0924eb0246e4d195a6eea6e962bb07bef9001a23dc0be7497a1ac79da047ed45b4c38196100b7ce06f466df295655076d14308d94d55103d36799a0683573768bb6baac4a10bd3120e9d47d7798121ab46521d7de8d1c3cd9618347d8947c47676c547231e5be77153f02a3eccaa99a75230e45fd4c1e6a6f951d1a5e6c3be098caf4a16ea3ee88473b1a8d91c0886685409ba9a099bbc0438fedd280f459de3c9c57c92609a865add4cfe76eae9af088680f92a68ab78765f7ad0b95aadfc0a91e175f07ab1f0887b1f448530866f002fc089a63a2e2d33ba63ca1985737ab0b9a73d23af11420d62a8b619dfec0830cf62757ae7f0402a4c0f209d03ed8f1731db5079dc5671c19c5bef712d34479b7f879dbe694e1bfbabc9c05109c615be763dd9ff5ffba888f88b62128b09475527d12203ae67f1ee8da83678b8a4b7b16f7700f919874eaaca48c10cef50a0f447baa17dd19eda59a1f71ad1cdc88e91fd91424e8c668fc93690b9b5914db40ba677a3c71a6d2cd05f42321463c12d55de1a717f69c132dc35e3bddfc23064ee2183e175e1ead1d075c7c1115c8cab91677ad6b483d7151010a7314ad558eafc3128c2dd590aa4e32e8c86cf769ff58ca5f37ee3a4ca0c9f9b2c4a9cdf2a8ae52d1d09110245a8884ac52c597e97b0b0304ee706795abed33f2f1885973253da8728742b54d4e908536c93ee11c1cc36da21d8ed4956255c0a28262baf50ff4a8df767e71a2d920f53b25084ed2cd8069fd13c0d1ef81f6989c0e93609038e9c6174d2a9333b3676ba24886917f32b7316d45dc6e99497f813b599d0bacc432ede0584c654551d3217c63911654b21e0631a5f7abf66d48b2cebff62cbf41ded241a59816fa9ba99cb29a9d000873fff81c689ee95bb9fd31a31863e1bf08fae8b27169c7705344b7085c917bc4434c9bcbaa27423f634233f75b82ebc7adb307f6cc3310ba95478572820973732f4cd3d1f749b728605ffdf23472810d01f6f9580b3852a5c2c7be4f93615960541eb2dc4d5557dffa8646d916370f89e09947e4e14092073357283fff846bd6b83d81092639de3b6ee260770b21275491a6300c12d5ad261f19d8081c9a659bb3f45cff2dc6c04313c7f3fb1b2d4ca96a603259310628356cab1431bee201ef7181f0f9d35e13b6f89a3698a56c3fe08a76418b6ea10b70bb2c0649f7b506f4b15a2578902d6df4065d4c3e79ed26a0d965e97b5ccb47110cf3317b7d90abcc9c7567ad4f2c11c5ca6617e643ee55096894c793d18adcce74c19620b112ab80152984de200d4e4a6ee29ce266b47d662accbb42fc74e7e088138faeb06f32e469d019979cf0b55aec3f420f97029852379417498605cd513fae94c5a5bdf3eec29c54634b94c6a96b0087ef2c8b2e32ad49144a70d27026a5900f9bde658645190ad83583ce8d4a174bf3956f3a581d7e4ee013a4263172d09b3e888299a06a0dd4cdd7e2a118fd753791afd91e0acc9eb1e4d3322feb169e47ac2e9e3e47908f293cb7988387c956806bc4e5bb9f65a84cdf2df9376c2eaf3ebae6a9a710da2083af685a8de79e9e27143c6894a847aa9134cb184b7dc7028b664246dda558891bdbcff3af3a5e0ca8ed06c1402d31cb5afca6260f4cae55fb6a6781768e6a1fbeedaaaee620ec0b7b964a38bf46651de29e4ad7247359df1cf4e50e71f691b73092a2f75f4669a145ffc5a51d51187f42dba767d28a39800789c88752be0c0e0b5aa2aeb3737f1028db4fba59dfba974f9ed8734a57f1f2db29d14f708cb83fbea9e4889f6bfd6f09d714ffe825056215be601bb8b6168d787a6d17335b87986913ff6aee38ad38f571435195b439cd82930a3386ba6e304b72fb5cf04b1ad8d64d8334f5ce0d14718232c613cc12ac1341706f829fa50a5c3010f8d5daf04c3bfde5ba88fc873a2e018d274bcbe85a9559eb224f6c23df124263772aa1262d9932ab813f50317bd7d4a6b0cfc207d8dad53d193d7330c9330d9bf866047237df5baedc69ff546308d2547b5c7f9e0909ff97da474bd3075413b94cf97fe331201f2cb565438182f13acb95529fa6cbd18ef92dab1bd8522f332ab5f375fcfbe01a83e38eef6381a032f9adb60b59e5eb54786f5dff4f5e003b79c7e119663c38e7e9baa0199d3ba32235166936a850c57227b1a16561ee407f7bf09cf6671ce0d0ed0f9d7f916a0ff7f41d8adff8c42b8f4640f1488841cd3cc1e38918dcadd752318080b4f15e58dc7f79aedf3805e1cffc25bb01591f15f54155c59a798a8bb9d5247eeb5d9bbb3abfd65f0bb65f119dc05cc0105475fed4f006e61a1864a29b53770e5b3cae2fa13b5a0d1b05ab9db868a7b1349c9b31d1a1abc19250be50627e8f7283af7d12c57a1c110cbf4acaf5990621d5c04729d475a97cf21c5fb252f5f1514b8d3090cf6e4e22a0146fce697d88d0637b3a60e77b9cbf527c4269adebd5eaddf12633c53f1ff09d869a846d3121371aca8252a5ca1f4fb1b7afbbb3256e53a9f25a3dfbb3a95e9beb67711d27689a28aac998b3129861d9acc72122d43c300bd58d934bd9aaff2ebb55268b94fe7013aa8670a89b19e1cc5d201ce2e73f6bcd8649a18f8caf1af021d374570728690a6cff0f3fb04050a0e17344e7483879798adbfd2ec112325282a3b5d6d72868c95999da4a7c7cacf141a1e2c5e657d7f939ca1a4f3000000000000000000000000000000000000000d1d303d""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
85c8fae58f6c8a7690e2098cdcb1e487e83a1ff669b31724113a0d9f796a68c81164211555e9d9dfec48b46c5eec597bac9fc1fd484cefa07338594b3634b8b58639a8d50a12f76aa7db8ae4c68e733d0903eb94ca3c69012c0b674f198c4f8cd1ed5c345efe6e94d42cdcfeea184fc0bd8986611968503a96f0f2dc5dfd56b6880f211f64d23d4c4e0451381d0a5b917ee0d31a6f782de660381b0f791b371a71506a12b8ed520b9843a34c29abb0795fd661daa226bad6e21345f93ac59aabcef6b7404ecdd11c52fd7c76b5d7e588562489b2a27d039214f41be58f9dc89a6e1daf1d47d6324d96f9dd35e15d83fe686af8f3a65f99a45f918e43d404b481130a1039df8f453e53f7df54ab4fc70006dcc578bb2b2ee96c4816856142de04e43215c0b1f33cb3381ae07062a2698967e965539d435f9b010a38336c303ce8a41591e9cfb9b5cb491faf8b60890a313dde19616a200d844fbe125a25f61495a48af66ae3a490c415fabe05794c841e5e8b27c39e3c05fdd2bc44baca13cbcae569998c172e5325b3f89464d8240273e7a0da097ff7b4116ef1adab1b436d80150bed523682c9ceb8e308b50761ea061b6aa23a0c9e22ab02502f8482183e13cd90a0826698ea63da26d60dd3f7b6d514efba52f351822bb7b2373c2a33318a20f4d74b5bdd17b68e7aec62d80b09278a051c7c769db9a3f416cbc9ba411af50d9ffeb6665cb5b40e0cff170460a6a26e37725f49d1170953a4be705d4fb88086decc49303e761b7bfbea9f289f49378a793bd58be0a34ebd819fd40ae07edb975414dc4e61ef23e5cd503dadd7250e50ab8c6236c3f1b0d836129d735122b6c7a30080347a8140185da8a899fcebf6d8d76387feed318be512d00e9ead0c2d5f8d14fd212019bd68d5084fc4781089d867678fea30c26788f1e724f1a989d542dd96f4d8c30d30dc819eaac63278334a44b4d7b8b91cfe9e3b3999ad77d72605ac293c135061613991403c2fb84367ad98efcc1e793dd717e2ae9e24b8f7ef98f1739f46cc46b7d4226ce5c1dc03b5aa14ddb72725970df13bbf9c7dc607361661d311fec0a6e44f36e115c18b78b9d1949ce5eb36dcefd33c23c53c05b2d17289453fa359d2bb1f1ec04c604b6b356cb86870215c3e474cfc893b1141868958e3707e3d64adf77d4a3c637be8bd7909f0260d91a48f5bed9bf42bd00fb9262d9fc1d40af8566ae13b4043d274ab0a87e9897ec1ea945b88d9eec3beba831999a4acb35e42a3639cf0e8d506b61dce0f0df241326f9892cb93eb1e0dc9fb57ceaa04004ae2a1274aef2596f3daee8ffc4c07df06b476efbedef82325e8adc14279dffdc43592fc8e20ac1f307383defea6e97ae06d96272f4ff56fcd97b15f7fc48b499ab625dde351ace7b3aa8dd6786bb3f376407aa7b1d11aab9a587386ba98fc3a255ba62f00191b464b28cffe3806a0541ddb97308d1172b62353c8e724aa2358226b11480e3d93644bcb552820b86cb46f4379b1f51ef09049c43ff0b97ae65f44ff03380933d80e733f11eedb8001f6ef3bbfc4365f7e1e242f88047f7089cef1385bdc0aa723b1a7acec932884b9df3637bd9218697b91370462ebe8de16163d2aed8a32c9af887f7b282e13fb88c0b062fe2c819217495fc63e81c7b26cfee142ca9568bac3dba7edaa0697976cceed5963697248475aa311a17cea8a24819b8245fb1073de9f13b24804caefd25502940d24f40b5993b135decebe4ac0abfc611185bdc4749646d72f47326b2318c5ce173499a189fad25a2d2e830a381730d5e8c43d3bc3862c6324f8765413468a39abc37631e98bb79059ed"""),
|
|
TestUtils.hexDecode("""
|
|
0B0F604B53752973C4A72EF940C3FBA910AA9AF2916D673D69C4AE4DE92A237F271E84921C309B59B92E795BD26C5C015EC5176155DDAE8FA17D7BEFCEE3A23E0201669CC55A6F270CF0D03FFC09BBE4B47D318B6926808EBB49EC8B57A849896E76648D51117E8F518088D66B69D88E09D298186C10B5678EB8AE43E9C0A794C63CA9D597C4B74C959E9C1E8E0F46698CD64CFF3C0FC6174CFC51095E142DED9F16E5B2D3656555D2D42832280164E0C10C5817AE47ABACEE7C3BFD198A21BDD1C420F2EF0776E5EEFA46E8BCB49388FA6B937FD1FEB2BF09D5B9494A534F19BDE4E7BB8A5E4C558C2A166006B481A7C5865069A3DEA2B880AA503B5C020F045A4D9C3E5C590E4AD5375E74B732695A11164B5A57AA665922431498A9218CEB9ECD92700E92BD11E0A8140938C4FB9543FA5DE8EDADD1EDBDAAD11A6AEFF2EA409638B2C7AD546EFE390729982304F35D7F889C0CCC81D67F5A1D6201BC4BE8D1AD2D3CB85815CB9669B56F845148DA0DD2D6B5D7C4986DD3F10BDC78EAD8B4A88B7AE1FE11C634355F60A43A55C88B37954CDA71F4744C8E2B4D7F8D4A2BF60EF0C44CDC7F7059AC48A94B10279921709827A3E1E7A46DD857616E6B737CDFAB71CBD47639245E392DC116614CA3F099B8F2092AD667DAC43B8501DEA9876E5E0B98B41733DA63A2517A49C169A95E583F18F2E1DAEB4425E307509CC6B0B376827F0BAAFC2FB2ABD4E4151A8DBDCB8C22C78F5DFEF0DD1743B047E58537866795D67E35358020CF75F0D2B80287D62AECD6D34D18494D01B4412B1CFF279CA69C18A263E7B862F514A7A64BF192586ECD460D22DD2280373A66ED987635761C3CC34A5BF6A370F9F8B16F98808767A2D9A1517544D869E674980758B15BA7844027D3593432101FBC51FA4709F4D041BE9FF31DB9B7430F1D7F8E06C22C4BF3F8798D50C92641CDBF0B2C88E88666029FC985FD4E9FFDCD779C7F7600D02AE8D9E3CE6FF76F0B449C41BDB785BBAC9CF58ED7ED1525D7C7E885C0D46ADD0F7CC3B14394235B9176B69A222567E6533870EA540F4DED9A1D78F2CB89E6C1DEBE67249ED8F31C87499E24DAB0434FB9B40EA695499C76A1618A37B1AAA5309A914B6574209A61DE0633F086EE4F2455299C70B981532A23DC453939D223BA3A25122AD498795624C727E973C052E69AC40AD465DF55ADBB20FEEE76BF2906EFA7B0D9D5EAE860FE02500E2E0F4A21CABCF963D91262EAFEE814BDF9775874D656F8BDE11DA29327E3E7C7C95395D0DDF766CF34005CE86592F6787D1044E5CA1962C4DF2719308B2D6335FAC77DF46092CD3D5D228E381BD7E5FB4D2EC18B19E18E4748F662AB34C3F2C33877BF4A8D43A63F9B5DC75861AABB42D34EF37EF19CADBA110A3807D1699B247BEFE3D61AB84941ACB227C79CA05180FD3415D0E76EB31B4DD903D78553F2C22563F9B22BB876E81EDAECA4B8FB9415E2BD5AC32CC08775A20E8F90A1681C9957DFC330B6343E58F841906EE3562ADD6AA53FA1EC4AA2E894AFE769116E29AF49D0FBE2D8FEBA215E470ECEA81B258977A0FFCB17666953C29B2F70559DA00610398A08E0A17D69705707569D6484C4203C06B17439E9D4D9DB8456682A79659DAB332DDF45C67E527304013A422E46F2989BCF033DB143676A4EA720D0DD75584298CBAA765CBB0B09EF267D503F2782A427459FD2A83676DEA43C01D288429A82527A69B1EB19DD3BA1AB7428220BA74F79A81377F7ABBC027D96903AF6ADB4644E9F5CE676FC4D3ABD977D6438F4743476F77F3DA6E822AE61E0AD38549BD21E0FAC1C963F1D47F9E6BA6019591DE22BCEE5D5C9CBC4106A369C04BDF633F41EB1D6821B1F43194CC14B02B753584A659EA46C49B983F592C83BD959690845E872B471A38381CF3B2E8F4DC157D9A60FF56EC63B1C66D2227A069CEE7E48DB0E0D5991F96740D364DF89B08BA67098652958A14516534103ADD9E457E6AFC4DE1AF332EF3ECF6897B3DC8E5D6980FC5E5D829D4326F6023F48CFC9D0D787416EE61A0BA3CFF5E7C69BC83B18928AD277AABBDE271EABF8269701E526960460EEF521E83CF7A61A3CAABBEE1F1C99402EF55FD438753790CF56034AEA3292828AE858B2D3B9C8D77FF4545FAE7B4F2AE1EB17B8198F4846A8F4A105CE250F900969696E477B2C46AE786481BCDF85715BD270F9C29BECF4579F2DFFFF7750E375113E33ECABFC52E4DA5405849FE5D5F4A17C1F0984A1479D561943CD1120037EE821A2B57A12D7F1797E64E38A4B71E2FB10207ACECB96B3F3ADFF82EDCB633E388FCF11C8D105C1F6EDD41B553B4B559C3199745F3B0EB7326B867FD4CEDF4E9ABA1FD6A10E1494847FB5DC83C91F7A2DD351CD1AFDF95865701FDC658A41ACCA58E574B67929EEFEB371589374285148EB09157AA9A67F2FD54FCAFC1248F6D84951AB1A676637E9CB76C17C282DB53B1BEFAD8019F51B0400DC1CB012B97575ED81C129636C38998A2E6FC5AB7F0BF1FFDDB588BDE4590A7A0F879FFFC1183A3C6CFB341FB518D0786A6473FF9614877B1B722AF4B2E1E9B5E0DE7C3DB004EFA16F5CBF07870D7208A93A9FCE0EEB598CC54F04B1BAAA992C02BB2D27217AB20A3381EBEFA04CCB1F23E59E4B0DEC700E069DB7620E22235A4C5F54522D96ED4785ADBA7FF95F2A7DB212D3DD05E58C560E5ABD0EC238B7ED01E54ECACA7D32F7C2A3309A437E68C3AC7A9BC51025409A2A1ED05F8DB0EBB647FEFE6222D6F74DD8E4034580B675DEBA4BBFADEFFEECFF4771A0C1CB0ADCC6E9B050B85D230F6B288AC3FC24880CCBDF9C6A6976D46797B75B8532411FD89BE027CD8C81547B24B535825695A35BCDA4E2E0A3A6BCEDB73DD10DD847C4A0AAE059A07F56B0ADC0401026648BA469C534CDF6E2CAB8F581A7233D2F15BB35DC990EFBFE688F9B9AC5AA5C9B3E95DA7B0122947DA03AB9DB58090FF14B736B9CAC65F966206AE7C84B971D83944D8AB61589A28058E14193751B685058E632E32EF1E8C94BF005A3A2EC5EE2CE2FF6C05A67D87E56998E952E4557250E8AB5A979ECB28B0EE41DEE07F919E67670D9CC4077DB0D90ACCFE17CF6AE69DE0C9DBCD3D552A7FB37383574692A267B0A8BDCAF3532AB47887FCC94AEC3461A9257322095F1024C880273222295107864903F3DC8FB353FBE51C4D89F30FEAA5A570979A38B0B4AC9A4AB6B7169984C576BC4AD6DA1719CD0D5ABA03BCBF1336DE48CBBE167E4293DADDE3997061469F200A391646C8FE712EBE087B448F7A7DE437186D38A4CFBFC2919FC888487B15C60E93373D076DF6A60452E62E05256AA66BD1FB771CADB331661DB4BFA47581A4367069FA20E9C6229F79D6680125D0464F7CFDCA1F5C46688D5816CD90862FDABAE753E56BAA1369AC1AD3530630998CEB4545C4404C8B9A65D5A43443624D62DCEC989AA2CB8B85414E06AAE6BC4E219C5A3FDDF8FCC75381F6A0F73F54A7A2B5BA0F546235E71B233EC107900D8116CCD398FB14F32CEC310AC089D6BEC40255A6A877C30B05355544D115E8F85E428087A5F3670D596E31D25F676B3C6FF444AA0FFE5011AE62D6FFF86E615EBE80622BB646A318BC65950889616DEC254DB332649788C07E46CE590C2362EE66BB33BD43807A1336B94198BECE586CBBE3136B5CC809F24DB5BC3069E9C1FDFE53C6D1DE29DF48A9000A7E89D6862A773832DE2151423D9D11D722D923233137DB6F34F8DFA4EEC134BC9EF5A70424D895638D1B09D95D98CFA17308908D65AF00259DFB5ECFEAC55DD7FAAEEAFD4E94EFB36698D2315D795A93B8BA6A3CA93F6B79F2E599149BFBFC6F5C5742A83C886BDD4539BCC128F30B370FFABBE724AA3F3D571785AA6234FD2359FB3468A06A8E74918EE6E87CB29178900B49891F565A80BFF302BAFD0D5C2C123973BA7B9B425973CB3D7F2AFF3059D272A7CE611F5CDDB5AFF3E2B4024FDF0E01D7AD1C63FB47D9BA986C341030B3E5C6CD3CDC6A3DF9D6901E76D31C141C37619F5BB316209FAF8428AF19236DD426D70EC81E77309D5D9AC33CF3AACC0259A19F91E4579AE49EEBA41CF79B9499CD1211AF1E6DCDC70383A35E0ABF7B53A1203AADCD3AE638862D35EC4E441100E8CDEC7F0E6D22845F6CDCDA801111C4C7F261189C7D67B981101C40F21D33D05E336F1C7443560238C72B34E47758927E37F972247F4457EA60B2546F6B5B7A91B151E8B3800CC1748587E0D5421A43648BBC5D87C591B01C229C8104CA87C0B7F0770ECABD1E2A858147B62F607A86E1C71EF73C036B18C01CA5C1BA8242BC4BB7414FC90C0A8372F860F2EE51DCC1E457135776C377F940400AC5309112E6742617FC226EDDF51E95CAB40CAB58CAE1E662DD78C6E253B373BE970129193DAC7DAE372CBEA847248C2E69273B7CFEE70BEE59DECF64126D44BACAB5F2813CFEE1EF89AA3FD6D030319CDCE94FA86E4E64998266082F8BF74877038ED888C16907A8DF99BB53809E54520E4B5B6AD44849A33EC3FA44A7B179350DB07524823FE8384413F0A7E1936D8CAAAFE1052C462778B36AB8A9A14BCCC0319CF6EE2AFF01EF5077A10BC0FD0DF76D9B806481BAD1F49EA013942F38BFE52FB194EF8ACB283B1462BFFE4AC618D6FEE7E25130EC71D68C81A9532A16520075EBC1E9C3FCDF5FFCC150F3815E8647F34DAA814935D0E1AB68EC6A1B14FC7566415CC11E0C14A9693B8711DE2D3F78EBC468269BC851D2ACDFF5E8A6388B73E33F20C0C7621C6B644649AB088DC191418292A698EFA4871224232A7788EFA2D69F9F9FBE80FB8E6B0106405F6406D00A6D6185EB521372CEDF51C2E0876C7A86A90F1F5DCC0EB3187DF8BC62736663F713A1D403665BD5AEFD6BCD3413FC63CD68B3C5C7FDE3AC4164FC3737C2703AAC85E6ECEB29E34A6ED70D4178402814B5207ED2AE12E9DE009D0DE6A0BABCBC4ED41D5C28B1943C4B61D8B1DBF4395F5BACE1E47ECF0EB9E21F9E7F663EAC3788E935A1AF73B19714ED91BCCCDBEDAF1C74155CF235A58485BCDFEA58A929ED1E959DC99345C36109E42A14438466B1F9E728801BCADD16B2D8F762E4BB8B3F01E531339DE79634F43117DF5C585D7D2FB4A5D3E82BC25FD92BB1298AC79211B3866CA1019666AFCB10BBEE1AB63263F2823A86DD3EC57E8632C9F4975155A01F22859EBC400F5A3B8302ADAA5892A320487AD077B144392528F100F0A222DDCE5636AD5962AC6D62A2382167EA977743CAA6BA2F140655DFDEF168BD620C73A47A8831DFD66DC6F2A9F47E0724081681BE62FD15C74846980683B729AF1757203F457FF12925B6B7BC81775A9E5C53862B07D4B93CB2E9FA896AF58D258384115F1C63779E4189832C29C8B142DFF30C00DCAD2328A63C92CD1E42B2A8D2E18542BA3A81686452C83AFD5F6955A708CC1DAE500718C6DB89ADCBEBF119C4707B931E685BAC00AA60E3B5F9F42FDA6EA90F5C77295E84A3AB05D69212C5368E24F18F43B450181884D7AE8BBC61E1603FDEB13797F9620AD6C2B863C495821F7F726BD5801A3D5A36F4609B595B7653799B3794E4A60090D71F5DE1AA5F0CF562F7E722C55AFB676395ED988A491A34B462B2D18AF517569531308B8190F0148CFAD463802AC62C6CB289FC0C95C207AADF82AA7399E0476B774D9B876829ED91EA3E5C40B504370D266B7B3C72DDE2CCB7F3AB8E820ECB5715289451D352D83DB67EEA889EBF9E8B012C8265376C841BAF6EDA4067A400D4C6FB00539F3839A8D0B29906F9923B9244132282E38242257C339A0D0BA8F05F75D41ADA51E29E33BF65F78981F04F397BD5F9580376A8D1C552363D6BE90EC83C2AF748CBB7783D6B26098C641777A260F5F60A712C7A7D1CE681CA1FF969B8F25B90F9A2B03F71E06A848DF3C5C8571C5626D5A1F123DD14A9F90B3958A7EFB3FD522C7E83F897CBA80B95099F1705E1CB22C7E91DB644880F7DAB480B29FC0F8E1D0ADBAA123F1E1FE36835ABEC924531065354B77DC1082DD690B316A7BF104140F6316C46E81E777F56EECE625EA030C1FFBA3A4D40745E77129230A69D76C226A80A8CD31720B08D9207F22F8F3068C169B41E7136F94B73047377A8AC0987490E4DA2B7619A760E3B61369BF762FA9A3ADCB014CFD0644AB1FE6D8D3EFBFEC893E98289DA93AE19D8DE41AB33FD717200B6949AD21B3290C77D5B1FA44EEC7D0C6A9978D50B40DF77823FF2613BC80D0E11DC2B790B332D5267851B6315AC08D0A2D6FC0A8F93DCD20DA6054894F84C88CE254057CD2FE36693F868D812DD1D978897597840CB336223F8A8EEA9C15AC05D3E40333391680C4F4CD5C2F600CAA684BF09EFC8A9B71E6883E9353C22B379BB6ED8ED83A2468287121207D9ABF61D2DD5116D3B163F262BD3D57A23EF2E6154BF6EEC1DF88B961C4505F7CFD2E23E0E0D245A9418292A5AE6E60F3852D78D19E1EACBE9F42A522FA57554308A1D01E31DDCFB7C38534F7B48E0384AAB4B81A93681ECE4C55BEB089092E757A4633B2F30BA83E470B3ABDEDF9135DF22E2B29CCD0893C54C329DA1B16C2FE4221F1C7EBF6B3D6DE84EA1DA57392762FD9C64C0771966B0E1FA9A6E286C23128DF317F704237B97A339A623C985BFD6A0C60DE48EBDD73A0610A22B02D0978E626B50171FC8390B80F37E5E536CC184259D4ECFFA958DEE1A27CF3D2EFC9B218809909B19D573EF86087A1C9BE161C54DD1279E022F98030669FC93A7BF03FB101A3FB5321F654D2B40EF8298844806BB66EC32F7AB3BC7BED2AA7F22AF20759B12A0E3F82D3C3A141F393DE746D5A0D91F32D8249F0DB0FE37D27E49795C648EC6D96E352115FE4F10D1F56C39FF9140E3E87F13AF3C6480D6150E1B7B4AE614A577D6E81694C19E468761039E970335FDE9945F6119F6ADC184C9F2A434C681D593F34D258F2A8847E02DA5EA2605A007B25031DCCBA8A8C50C77411D197E742D4B3994471AE84E2B612B09B2BBAA38C5E71C22A8E3DD1F284A681DDD45E962F9D061846EDB9713D4F925A9DAC0E32D2A4496F68C68448EDFA87FDE3ECD47411AF5DA95D8C48D5CED988AFD72BCB7A81896EB1496F468D4664A58EC3874BC6FF6A85692790BB405592DFAF53CBAC93884A842EB2D3DE9619843919CD9D68AD89DC7A84BE54C406B8208428066011807D722C2B34D4A279EE43BDEB967360D9BAE50F654B2A06B576B803544DCDDAD670CF8D2D7723929842C6AFC4093BBFBB75D1F5E03682500AA0A34FC66CE4409D08C726552ED5ABB0C646E89B35A659C67F6F398D6BE39D9725BB0322D458DE2A62E46B62013F2BAE5E60C3D41975C6A4C6231F4B0EA2827329279459840911891B0111FB4B1FE99FBB482FED56C7BFBA15882CE5E2FA2C73E0B682EADEE6F68E4E1A9CD92FDC2CF30902453A16622AAB1273407B985FA4B7DB40D87812F2A10183464F8173D22D5603C44586B107B4B82E94DD80E87AD49E9C0FAB5C3330B74E89F742CA1A5940F0F329F56DFD40C6869D0BA8CA412AF9C5116ADBB3C22080F93142C7778D52C4D75F1EABE13FE50877C26D7DB429E991506ECF1DDF30A00F9E0B355306B889F41BBFD1B4D27B67952E4A0B53D1BF8B2E84497F00826D84A913F02649D5145383163F3C3F586EDAD06F518B64D9B300C4540A67593B9F3358FF2A22AC4BD7E7B9AEE507D184E039ECA3BBA0B5C584D3359D7121BCCE01691E11C120925A7D8B100751E8ADE99D3676C7355BA4BE451920BC7D2AD6E8EF0A9693F16FBB570122FE5F5FFBDFA490B3C84809ACD898FC0F807C77937C7CEB6F03308D3E9C657F80730EF3A1CEC6959850FAA6C158F23B23D28ED53BD77531F1012DC1753CE1AD6E0A629E14BCCE9D56B74E09AD6EEC9DC4A5C92049D48AE21222AF706B1C4DE65AA814AEF5B7E1EDF2D8A9C5B98853A17199DDC3233C5583B95756F5A9C175FF7D0891010F5D36A268ED5C9F58433A69185931E11BCBEEECAA240C2C5A4ADB4E770109F3F16CFAA37AF98E1228FFA7C584B13F850FED0187FB836E0A01B19CF700849EFF09BE1A57DE41CE1D52EA6F182E0DDDF741DBD2150113B10CC3D9E44917E0FD9717D6D361A88060E202039AAD8F31E4E6FBB4D7FD1BB5D6DC20C3D83F23D120EC98FF4912F3D9AB18D8EECBD7EFD1CF9B19081B38CD959660E8C63A539939D0CEDA897F5ECDFDEE16ECA492B216BEA35A167178F4A0FB76175D160FE2EF97BD6BA0E296922CE60D91FCBB3343ADF477F8A92AEB56A471B0711CAC45DA8EEBD21FE83FA68EB74C8502C81C65506C92C4A3F19ECDC2B7A5AB47704DDFB2E8D5AE620CA0D67197699677EDA3FC4FB821BFFB5F2DB03D4DDEC0BEB13EF84EC372A5C56C1E712C8D23D1A2DB1BA077645C85689CA2258E9B1B807DCC6394680B72938E1B61AC3E8A5B9E84BB4B58CE5C8C2246A604C05701C026185CFB872BA78CEE33EAFD0486A22C6D5CF9264EC134DD79548F3CF5FAA67D8B1FE74F6AF7B897AB0A0D8CABD5E1B2829CFE66D58CE00E68C6F23FC35397FBBF96D2E63825C96BC3CEB22FCF9CA46C93538F8DF566145D06207533627B665E39DD284F4275051229F3CCE9E9E62EDDFA55BB2AB1D1D8E8E6145B3E38F35F90B89C15FE799EC14F7E415FCE4EFA72615EAD26C10C1FFA4FDBA2EE04C4845489C21BE45C478D8B2116C84AAC21B48BD4181FC28C7C21AC9CF95D8B04C0D817C8ED8083D9CF8B81213AA2E3B8BBF4AD66A7AFDCDC4C420945F5B3E8C8AEC5C4F98005A0CE1B3283F5FC0FCF8567A150E12639CA85D298CE8E4F9E0C53817D3009284A5A0BD5D3A07234AF751AD059E301076946DECFED43DB1176A2BBA4B8A571299FDE4AA3574B6C189A721674E004F259B00B26EF5AA90794FD622040B80CA6C5E9FBD44B3DB21290353878F4D8D87496E374B05E6A5B25742A885569DBA2501367EF4C549BD5CE6169914A7F1D311D52CCFBE2091F0DB436506F210C137C2180B89626F52B4192C67ED06C1F9175E44B9468E6FC2208A98DE577962D9B4C31D5B0DCF4017DB1BBB2F80512C89B9AADE69DBD584452D25CAC97A4A7E6F48BCB909907B93F5B8108EDAD38CF7FB541328C5E8AB867DDCADD6A1B5083869E68EBC785C80ACD260C715624360F2F3D78FC1B2A464FE0525059A3D5E04BCCD72D23BC680CF7B25C5CD2AD6A0BB8366DB24B671D5BB3C12554D37C7A662AF9B9DB61DC6C7DE288DF1976DE08743426CDD30AFFDA05A8390A8F3A4A94D7CCD33BDB229E32850A77B2256CC595BE515F9E6854463966D4DB7A946276F594AD4BDF0B9C59D4D38E211A4465AEE023CE6C062FDF4123ACDED834F672C1A724BC17D44DE9632A588E7EAA77F3183E09D2ED55099BB1AC8198C96EC7B1635139980D5CA4B8B3102375A2E08BC3BC754D9FE659C3FA403218BC8C00FA87A0FA6F096E336865DDF02BB05049CDC9680E99C4F567ACD25AA7CC76C182A8DFC174BF6FAAF4D2553A4207922C1EA10CA8DA3E35DFBBFB5F6919FD4088A3A8E48358CEF25576A3A6447980F1C716EB58E755196A672C378F6615E54E9A16CEBA33CEA918768961C244A561164B61754F679856575DDCB32C70447BB738E84CA590CB523C6553F13EAC77461A58A7D4E1CC1E36E7BC5E85860B0E6B67C70D398AC0BABE1F42426D9E7F12B5E362BF3BDBAC42C572730C5F4EEA957FD3F17050625BA9D9938380249290AAF31BAC"""),
|
|
TestUtils.hexDecode("""
|
|
d90e5ad6ce804eb56c37cc30b96369f19a67ee324697634f7a40b3d150ba7891f9d8e5a7499781b5ef8f462ce1626eba1213bdf47ea40203aa7b9f6632a02c172826d96683de98ef1fbd163f817d6b4c71ed7fc9ec3a2db3d0bc692f94812d69ddfa81c15292b507d7aa3642b100472acdd9db20f19b60d98e10f1f47fd8f1498cc618a00b8c23ddf109957b78ebb9f5a7d6167fa907f52e312fb333b224c2e1b9b45ffe6027a90efea98d854ab6c6de67a5f24ee28d917caf0014774770989a4816f39fef30dc70b7e068bb306ab404611620b9dcfd40e1cc72400e398cfa342a616fbd5eb075d340d9f1d095b54d01d190b055f21d4de73ccebaec652f982535919e8ec7df3ce42f6e0807252f88d4fae025c68e5dfcd9ac0af5af610608011c630beab1b1bc760c550e79696333b34eab93fa7afc68e900686d1828bfe2bdb57332a9dcb84c66f12638a1ca4ab413efb847078b79610c51ae1cd81fac71319f8e43d356baba173c9775f9dd2569c3699a2cd2e9accc5ff725bc951b6c007e7d7b16b5f3efbde405d7d945dd1fb38724c52958427cc14d7a1f913c2c911fbc50e61a1aea400383561c78d32a38677ee62b201067c6744500f27135fd789e6adbafcd841a2796bedebe47059a8917f5eddc09eedf7aa6187f7f9e91e3893a3870b307a47da4366f767045390e1df69909d50e57ce6b2656a9f9eea5222cb8a05142c09ce230dc49edd7c4107241a4f317577c135a656071335408b809a18588f7dba155bff5acab476e99e62b0249e362d75ac201772552865f91eda373f722d19eb4e4f66c94627667af033c4d4f8e6eacdbb2a6abf47c931527c66da42f8ac3bc1a9c38e88a9d862beb1785ef9e1edcc3aac6477fcb78bea88b5a7796bc6e3e33ff1e0ca1fa73e66307e409365ccc8cf5a0cdba2bc96a7150d030b1349b15469ba21c7d53c641402776d61fca08d0a6268b43c063f51f110b8708251030cf393eed4898e2fc4f9654c05e700ca3e9d9b68274556f88c61c35860579ccbbfbf3dc367a88b076a4618772cac1c225069ed77168bc9e50737d2502d6b102a8904cb3118489e39c31507203175b35a295980cce3f9653330307583e3cbe2ec1d6e5578db4e5fed4bceb20922036891dd58b00e0e98a408f2212c5cebc7faaee235162bcfe6e482d4d1ca012078aa78bc9001a021c14e2ce86e484ad41ddae6c256f05cbbd64d99d20ca4fd0fa65d3565bd749689ded6c835d1370b047dbf1da76cb99f43ce660654725a40f7e8dc99716bd12bc3b3cc140eac2d230ee9177c8766e3cdd8d83948c98ac97b28826918a8835b5b563e887fa2ae18fd47d2c56e7a213d92533f05bb608baa68518ffcbb15e6847a776029809450ff9c0d4fa422fee078fefb04e860f5edc713412436e836f873bca3515842f70841f400db22e21c7a9c1ae25727a39e7e00e29abf256cfd8817115303a40c61577ce6e914b8c6e9481165f554be7a58c22c6a66266222ec80f1af4c6455301cbd80f5cb42d69f524d9a121699eca6d78bfc4db7bebdd8d03f83a638882aba3967f377be4f54295205b8f284a341796b4a00ce517e41ad2ac1d1dec2189a702b957a4d5d67fa1625341266585a220f0c276e339c29f58b13227021b6631cc37701899f0d7a761e13220ac0c39b5f98c688571915c38f8d0a23811d11cea0ff0e319e2bb06ff31990e00aa254e671f350bb9be4a5c78a992ea5de9276b0c542e2544d6a9a2e0339805ab40a9066352e2cf864a102406c4a11268b0ea22d029bdf694cd2ae75d9184920a9a707ab649a8f422ce4a85fd30aadcc07d3dde5b3b753668a303267aa1e43c81617b6aff5c7cdfcdb66eae646146903cf84a014c696473d0c52e19fc5da06bafc475ebbc367cd775676175b4268b42132f2959349a39e73ed553fbb50c8b213e4ae9d8682b837a3d8d938d4a4cfa72b564a39f5137afaaa442b562ff09bbb5c2faa2197f227979a9cf580dcbf01a07da6239f709fa91185e1a0d0847d77a50a4825fc0c2a6dc7140de2d4789b1fb4587c2e9b24f33d11728071548ea967622a1b97af44b51b2300c2c87d1f05b8d0e710a2ea5e123e479717cda447c0d4cc2ccfe753e6da45c38f568a8c2a82418420fa5de3fe08e196f2e2c6691b7774f4d4351c37e974721d4c505a6ba037969034627d05014a543e96956cc991e583abc9125aac8324f46e71345811f7ed8553bab0d166cd8bfe2fc21aa96c1ac168b40c61aaa7ff5461cd2c1339e8ac3c54cb1a8abf0ca4e7edd9e9842a01a91eeb6f3702be5e81936d53f11ae7d191cc6b8afbbf1f78dec898a0c30df889f43a8cfa8ce1d2a324c15b501a0ace8076b26334fcf03bb3db377d285a812f3ad76c0ecd7aa3b76f9072e40b272d514fad2d661d168b00c2b27ed394d4cffbbe38ffd1e7b84bfac69b4fca99b8f316471fd37678e4501f16ae1b2acb472c065aad5b482cc893fba258f29a90e1faa8f4c5235f136b25d1e451f20784e6b761dbe4fa68a41285baa9634f7d87807c407a9e7be6e483f3f224367caeba42f0df19b5dce47630396ec6ac6ff1b5c23e02f599cad3ef117ff74d7331facf763c39ea70c2071087774ef8a2ff268f27d06b96e50bd52eb5ab55a9f5530339abe6f07d5a27f64aa8015b5d2a768452f8ca82484113420464d06d7c61ec25c89a422b788f3bae8e79c0020fc93122f53356a9e678087f80b1938e42fbee9efab604f959b7f4d8c52d900d71b24c39a1cac0831c22907ab3348ad20bd6818023a72266983678edad084a13ee07196fddeb52c79bfb925e3ef4bae2ac564b04956c0097800546e965687584c2738a2009b0caa15183ba1b6966488fdcca6937bffdd9cd6f51424a83cb6324d2c845dbcc9237bde7126516ea59d36cf2b63ce239db57c01bce472886eff29ca612510ca318398aae4618b8d6fd9f6c6e8cceb4b3dbe5d059038b9a6b81e07f3599cb1febf3b0dae4eb9d5e3b6a3e11b24aef1377cd941f94a56f7c7f1fd85807d9d97ea0aace9d94516dd7ee271880f4a7bd18b4266c510e16f95aead24a9d3202ef331028b0f4233023aef2d18aefcb5dc66eea08013463c008b86faf617fcb6929a2bb78ee0459788792c9e3b5d3cf92371f4555c0955bc746264cf6f56edcd8bc8d044c170610fe76edf0e875f9d6d12eceeafd955e0130805963455a348ce41788cea9e2601decc02006907f5e092fa70d2f0f21945a5f24edc734da33efef7efeb22c8b142d86a47d9d5c13f93258eaa396e3ce55b8f6ce736a5010a347b7f9298babcc6d7e4fb03192d4e57daeaf7fd03041d262d47676d8b8c93b0b6b7bfe4e9f9fc0a161e3368a1c7cce7f200000000000000000000000000000000000000000000000000000000000d162933""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
c298f170b4286195747d986e0de1fbb602feb53b5f242a12bfa2b7602b22358a3334e7bc913d08f6457753c611730936fabf6e8c5863a0ad142f8b4fa0f1e68ca0e588749fdc255de072dec16e7d62e2b4fc1a20cedc7879c6fad196e4f6de33df29dfd6df65470515f6be6c9f9273473a6a6daf1d58c279e81b578cf5192b839cea97b8fc3d54048772ce1c009aee0381e37f39f82585dae69d8e03ac9d0b2d9a772b0e4a8ac46456c2f98820d1111a4db13eb26a33cef728017a0d9793d880b9d06a57b8dbb41270cc203a0f4367e52abb424533a426034e6e746a077963aba533cc54004e7a4d17a0ca93904bf1dd4da52908cec4df9abe86ea50290d3c792bbd1d629610669975ec9682a4afa4a06a37b8c90a4bfc407161f1ef6539d104c39b14ccb6d7f36ccc0a573d79c70f5b1d1f049893a31a228e32f20ea84503a1b7f2115a74089e61ad991022b11757f5c361b8bda665bc96d6fc2b999e546e48e431457016de365a50163a53ccceb193fd80e4bcfd658aa2b916bac07052d9c17c6d0c8c94017fbaa1a1f4638cc7351dfcd4b5beeee945f5ccd602fea693a105c0834ac9d730fd0bfb83c4ea5d137bbf3cc7a6ed840d5f6a22f4891d29e8d0ef2146f2785acc3404117f606b20a13bd0912e46bb3e7b707f1cb348055ab50da962fdea841bba33d43fcc2a3dc4359b0f7648f648c2600e3c84a0c9cd58b7e05cd041aea383eb7f0b6e078bc425bbedd4a29d09e095e0e44d4778d6f5733581c29231833871ee121aa2c09e44bbd3c3b8411643b67b86494859623d9d135aad0153949af237eab32f50e9cae3a6c30b2c873a5416e2c9d3cf00cc03f29cacf723f9340810c632db0801a8d8de3b7ac08f6313800f7fe501a5ec92b28bd06731fa1b95023fb635c02aa6822d88a28d595068603def2116fc0405e6d936e327364f78329f194e1d9651d7bb607908089eb25d9dec4e56991f4850a32843f10a245d2c71b58e5b5954e75a00e276b03237b23e9ec3ff258c501710e1f7bc4a03b88754ea03d84adf76b0f5e20f3fe76b5fce6eb355941a2875e2ed797069dc9f4ea3659b55fa3eeba496a153befa37fcf3004a6502717f61754854855f7b3e6b7782099603754f201bd1f49355974bb4276c70a59593e44733cb1b5c99964d4ff89611a55a1d82a91b8ae03ca4a3362cadd29ce9207c9c836f989c09b590f5f070becff4c35b318a974a923216385b6b57808ab3fea3bdf6f17ac0e4e1bc0f18473bc97a89ce5358a8c4fa04859a915f15f9a06725c77517ea112ebad0a4913af1080700b8f700af9fee59c3067ba30fbeb995b0b88eb59dbd45a1971240f15fb40e0a1084c482a01bc773559b6b8e83bdb4ffb70df25cc30212e8f22c09abb514f8152bd1affa3c7856c90bdf8b4024a1a8af3d70c3de23999f36834659eeca8bf225e16f0185409609ae8ea5d861794481cfa5b75a275d9294543c4a257f3dfdfce9c91e46468b2235bb161850bcaf76fa405dccf9918a0e2903ffa5433412ff09ba73d3c3c342525c9f653feec2d5b1596d2b8e79612d913e2c371384d1376f56a2cc9268d9c82e80567f1f27434aef775163a8b162801bef77f299c58a3363df141c63e86c717a8091d7a079afdab2835b11be5f216116018d70b0512747a066abdeea688f82d859a79a5cd2a839a907caf5469d2758d5120d4f9d7f4445f0107645e63f6af7b9078842d034ec39337f17f01fbcc31ecc4feeba4588f567a6a467f8a7870c655683c46eb776853c0f1ec4c890cf408d2e3f808673eb455bb9f333a982e7f9f393a65dad51974b1a35fad8e8077a8ef3971bb823d6f9ab494868"""),
|
|
TestUtils.hexDecode("""
|
|
0C39B65F4C2094AC626652CD33CFE44EDB2667CF722443514CAB443DC398A8EA009277BE397E1C1E7ADCD1B24376AF0F19EA50E56C90D683F8EFDE693F0F8834199544E2DEFE392B0BD46048A83C412A14834C4BCDC180457456BC72AA28F2DB247AEE84A1C49266361DA7EDD54BD9B562889131EAADAE071AE5A671646F49B2C1359382F1A3B2A6B437F87CC99A2A1BC821E1F3DBB311B8FCDF28546A479E2F9970870066A2D6447B6CE4FB65ABE7423910B9039EE3234836F924C8E82E1299335E27B0DD642B812480D6FEFC47B121A710827DE1D18DC12064649224FBC4526AE14317CC8E53BC8E9BD42BA444AD9B8B48C3AC807D7A7675F43E3021BA1DF9AC7A42A9E23D696BBD03FB5C4702B55F95854C41F470CDAD8A255436F910C089F71C2E59A44221D78AB81D4E2B059CC92A3841E1431415DAD4E6EB0315F423DA512661E4CCE098D6678F560A4BA19475296A2A1DEB12AF5900FA3A3C188867E0C268EFBF7AC53455552DF4F36E16D50E23048C7DD4E64341E6DCAA0036EE045B82C42121B0B779B5E7FF032F549536ABFB702B1CE4EAA5E389A077F47B1B55595D4888A4C1D17F4E21706779C9CDE25DD1261C8B4761A40B69E2F22F069A264E79CDFD36F307D117FC737D88F50EC67CD07D8FA269CF265A7E7CAC93E97BC29EF95C88904AB2DB61C8865A6EBB23871576DBABC83920AA015D47E8CE699A9E57E139AB7D233C577B46C9C314D084A1674A152D87D2A3D8A5D9ABCDA22E212B8C9A2BF25D8AD22AA3627E6C12C684AD2BE917F094263982D396364F4DE0BAFAB2DB89997DAF8B7E3AA953C055776FDC29F8AE5C28D4071534A9A2E9090CD3F723D3E381A2ADA6D9463FC49B3C6D2B76803F5C21D8DDCE965D2C472389D2BEFF448F2D81EDEF1C851A863AF66B64417BCC2CBBC70C18875055D171BE32C06081362FFF7DE8F8A23B076839602E2368CEEB79E4EA53F42F440D167A902A23ED53E6691AD3332DF5B0160EBC3B5C9567CF619BE2201447EA500332ABDEA9B849C3A395F596F2C96ACD9AF8313E453277B9F4234874E791E9DCFF0C9D9DFA8FA9474C026DD34E5CF3AA10CAB1FD23EA5DA0D0A66E520096C6116944F2E5747A974BF55428A3D2475F6276490AADA25220F2F2111892DB9E9C75A5401BADBF69F31B77535044DC50B1E93849F19C0B6C5184F1B14F68960F9F469805F3843198AC68E51619F3D712A34279AEA27BE4357A99C44C456BD2D9319147285680922B98DBC4D6D2860515D1371D2141C7A1E76EEF8586AFC973713EB89C1F09A84AC064BB7644625224FF1F7316B9DD1091CEB151D1A040F7E60F202728F7862589E7F1FA32D39653383F90C67D96D9949967AF234592903CBB968E0D979B92B5C69D09EF4E767741F1F6E361DCFC8D751CB8C3BAAC4CC393D63F71AA1488491CA06CC20B0BF54C5C225B6F0825677C2C40A395E1B7322288A815E59AD2999D61FE09C95828CE18B2997AEDCED56CA8BCDA4343B1E948256AC5EBDA23A8E6D7102A4474CE23567084547F2ADD9DE77483398D81A9A9C7A573D7EDAF99536D31C3588BB649EFE1495CEDED788EBBFD5775842D91DAAA2F9BE08D63B06DB35E72CD0EE5DBF45DF9B0CA682BD944A733D6875A62F8C53A3FA9337F13429FACB288C73220C29285B2D87DF2CB1A54631AF3D0035C1F3B26A5EDD07760A63576A395827F3D5F9B03D9E47A9E1E6A271021942648B8424234080492BBC56C692C769B5DF32A75F7403C88469E54432A37A895E3CAD3AB110089ACF534A0D78C2083CFE149A2D0A5055EF9F4C943CBE1FD393292518CECFC57E4FFC4D07A563A30528A6A3540636A3BE770B7CF03F5004D7C6F8ADA08DEAAED0422AC0C0C8D7515C9F8BF44195D6DC30D9B3036DA007A910BD05DF06B032812CE8393AE2777D717A691D07E860C1EDA60F6DE31F0787097D0D483E3A51CA7997646503738CDBAEBCC21AE4B984B668FB4020C139D9F581EBACB7BE263A33955DD68C9ED9BD2DD6C0A7BD049972B624CB7E787DE7184023F33EC0A1539C4679D6B4677FB971D763BE17D989FDF8C0AC4E0B5A6CB40A49B5464610A110EBEE9A21BB0D6A2F043015EB2C8820DD966A13EFD18D32367834D41E8673E997B2803638A710580CA08DDB4D90E4E8EE584BCA2FB853A122274142130A1ABCDF7DA6C0056689195099CC3382AF6987BA47EE294353674E7295ACC1C070F1D8E4107AA7189F20CC818F1D86F6D646CEE911B304E2FECD5A14CF5F36331AA86E10C319C96E52996D4CC12810AD7C1DD1DBDFDC78DF029BFDE9E8F9B1FC7D9DA99FBB0304A8129EC58A82177EECB7330E715BB3C0B4482923C7B1EC0D1823FF643014C7D08A8F2D9F9090B0F83663AFC5E601E5FBE1DDBE678B9D93C5A23F564B8A4DD29C8D19106747959E72AFA4B16B879E3C6E7F79A212A144F9AAF665253F1360ACF7DF37642270656583E06FAC85389A3AD76E69BC2735B1C3E13B80CCBD298EE25C29F9F5C275AAD83BA0E7C47526253BB3125EBDF5CCD6E1C4F9D9CD4891167BB4E4D2AA644D5D362C6F790E2776BDBAF8D96DC3A543C72ED46E431FABD737B4BF0F4B32E12E0520E60401CCEBBB40180985948045C58B0017C3D8797E433A2E2C64B9679EC7409D59B3992053EEF2ACD7B152E5F564196876EA0A31CB6ED47F2455BBEE6827D96C6B99E46F3DF1FA21F593E842B26E83D843118F6833BC273E12C7224E00E840B0041544893C6C8A06523DEDE2ACE7365693BCC6A8D7DD81B01310CBB8084C5FD3868539F8B5179519CA6745B56C4A5EEE8F2A8A60CBC7453E1E0990D176446D97F34A2D0BD5C5712E2D82601D0B9FC9A3F2420C65E4532DB3810FBE3635B2AC3A84415535FE41208B907EB3E97AD63DDC4FD694127EF1E948801B5CF651119CE17BEAE3396C098A86548B67DDABADCEEDF60F57D2941815778AC14F78C78516F84C5F9749B433DB97A9283A94697419CF94248B6819D9310324977D47A133AE9F1FC141B56D6302817761BBD52B4A1EF808E0AC761426C99E0504ACB6B552F9550D55DE787C12A0409A9F9EE3674617D15E229AAA98BBF4FE49CDC81DA3AD110645132B332B6D2AA38B35320925135BDD225053D6594E78389909E596C63B85DCA8B3F6C3233A31A1F8F3E900E49DF83F649E592979C9CA4BE65E7D6D1F23A7744626972D52B07B7B89CD90238A5E871666F4CA6DAFCBF34FE15983AEA5BB7F9917736F7BA46F342F0C08F56D19AB9569FD23288EBCBEE7B5924B8C86EF77748F3AA9CF2FB884398F83772C9771958B6DD063162A3AAA42E6A3280FEDEEB7A628A07702950975CD135D6338FF959ADDA2296B3E85A024F63D4ED8A5859786E2BC76C2325F37B4D91EE8B64F30E781BF48ADA774C1641CFAD2D63A59E294B5D99C94108154E38B499E3CA2A29AF7CC77A8BB3A3B712376CD081715EA715305C18B51470D5F3A6A82E9189848311511E8B0ABACF856312AE3916FBBCF6664523684D3C7ACE08D2345A3907C9C07183CB3E68C5EC3899A95430E278A72701E2355A4AF606DD8F8750F7F3682FB84290B2BE23BED99CA06D5E54190A5558C927C369C00C512342EFFC41618CA6F8FE6E3A38D1714FC44BF5679C1A49CD8BC8B28499602E277DC8832F738225920709799DE6961E0B4EC12397E7891AA772627F66F494AF719C55D056DCBF10E8E3DDF1B6C1BB2F0B2FA61949D1CA7D4E1F60EF836B086FF8C03A5916A14EB2670AF56264D7390761E6EB6F638D6FACF56B72A48F271ADE4541C8EFC91D15F69E0AA6B97EC0E9C0C3EF169E4A4DB1C1AF04762B98ECBD0DC374224D98FDF7788435BC154E1FB06C970A914C34DE52678F61ECC1969A2C5B1FF4D82E2C80CB543B4B7C9DB541229CC50CC6C448DC029CA24ECE635233C401D3715671BC75785DCFD929377AF5B65EC43EF45A9B00CC766695A4A5DE9A2E6582F7936B9FE7DBBA6762C41453683146F4ACFD809847F866DDF559972FE0C093EE7C9FAB3CAB0BC2BF8DA19466A96BBF2DD4859E2D1CE122A3CF16AAAA9A4708F72BBEBE285E1B794B2B9C7A699B36F39F033277E8B7BEAC3BC70A572556EE5C070A309D9D0BC35F4B6E55ECC91CE9AD273B0098F64E1327C85CCAEBBE67E8A118669653495D2FA09C29C6FCDF870905B2C8BE0DF806C29D5E7AFACDAC5F89116A3474D2229C76E649F99EB9EC71A2C229764A477853D68C39B8F0BF4378993AE2B26E814A337CFC103760CE92FB564E3A3E4546996CC4D8B6BE069E99861DA9C731B543BFDC006FBDE3B33D2C8C4A3F5789466122616C98F52E5E4BA239E0C3758C5BDD3BAED8809F67A70504BA061409A9D87A499236230EF0F1985DA0D765E9B7F733A154E8300490F458847A89E7C6BBEB7A9ECA7B6CBFFC3124DEDC1093C02C808DA1CDCFF5237745C5FFF51F3F15CF746D3397916A45990070490CA74A55F34EA4BA9EB73A281F123035C005BF6C7B30852665860ED13A2B5808F81435A77A8504B58CBA45559BD3BAA663A571F108685E414FC4DBF8033075E30CD6FCD9B893DA32F7C8D5D971D5EB417F1201B00F65DEF4EEED3B55B7FC7E6194B72A861439B865558157E65D4C2F8A1A93F48192099B375D111370F830B34EAF3225A16006D4749494B9AB9D3B05015E34866A4A2D94B9588A8DE8AD4CF90F2CF422634E8DBFA0FE3FAF27C3F3C2EAF9C1BDF23FDF43D196732E1FA6D2B343BB7D9F5F26FFC31B26C64A8EFE2B2D86AA34BB618FB58CCB54486211A8E66648CEAE52F07A6C1EB5234DA7CCAA971AF984D6050D1A81F10E6D19CC44B5E668CE92F4251924B25DAF41D5E381C3FAE4208D18F710B5F93CF3C776A3D81C608B06CE6BC68FB8A8117CE7BA065675B88510F2E8A440EC363A5983DDC1352E446A482C593A490AD6093258E447EF52BFD189ACD11C87A8B75F08B5D166C1DA69602EAA5916474131E20F704DF84C3FEF2AE99F9B9E8F7315A143A07C7AEDE5797F503086DF7DA971244A61909C4AFB00842FBF4C3A59B991B58AD6C0B8667C449F0D97F34CC41FE935D9F55821299F780359E2F631858617437D4AFE67DE4A1AA382B93CC3FF596726F0D1C071FD0E00883E9E03811FC659495AF2A62B45DA079A66552F2928B6A25C6416F8DECF723623764441E5E581F9B2E36479A1B6CB3DE9B090E3343277CD7F84E80219793CAED4945DF782C4B72B498A62A1F5362745662F711A7E47CB816EC7069D10CA8314845AB0C9FC326C5BCA0E2AFFB4E6948522F8CD9C8DC008855E592AEF1F8239748916878ABC493E33CCFFDB86CC2ADB99B6251F493F0D2A0BE56D133B66395AA695F6298F7F4BAB41420CA9B8CCEDF2719590287928CF6BB3A506D6678B814076B7A774BE9B7029DF9F4719AAC1D012BBD49EBCA6AF124D0AB5C5FFA92B4A895CB76B88DEA9C7105136D78B76D92079A5B001B214DDF7E140861D86ACC260B72ABEF2CB3A75C2BC87B39A9D9052D4283B71C10AE275474E82A5FEA1654EC3ECD468DE4A015CEB67BAE3275C2C79863E2883D46FAE351F0908F42825DC7D9FAE0FC7171791FCAB10E16F3F027E5043AACBDB1F05FCD2B3EC7F6F46AD6DCCD6F9E6A6AC702451194788D14261219F794EA195F2B3778654BB373C68AB4333E224D161A1F89FE440BD8E968B518EEA28E81B89E04FF1A85B879E4B54650FA8DD1322D14B4A87"""),
|
|
TestUtils.hexDecode("""
|
|
c2112c791ee26987cafdde1bc02fbb99d5b97ad71d4c75cc36cda559ba853a351b3088a5727856774fb3a100640034901b886b9aad882c879f7f7a50090b1b4372ef71a124563aaa22ed2b227f76c4c5ad691499766556691ac72d3ed717eb83c06951bc8ba4c8829b225aca7eddd999e9e6e9cfca939ba21d2f7f79c750f43719c520b344252a283cc677fcf1dc27a4dfb396541c97d7e948ab873640d1a1a0d941d2677878360eb2b703f727a00cff03547f5516d5e18b07d904e3d978a905c83b45a2a58f407a5778d6e6da955705f0e55931fb31a1b1be5196b6e80574b8e37022d4e7778bce58a817aeee7ce13c07196dfd6c00a6604e40f3d12a46c11bc6295788be5bcb2a39db2bd64780b966530496a23f9e60ab9c7a4a48a5cfc3b1f657e00aeb99eaf8ae38e723cd14191f927ebd7944da428584b23da5ada543d3c071cfe95910aecd65f7be88aa6c7bfb6e52ec3c925fcb0fa4b09d7612a8b19a4156f44d07c77eb229edc08d78b52ddb7bb3e42e95faa1b013d4861ce5166fbd0d0822baef9bb5d1f41956be5cd1efef4bd3f92beb656957c0ba51dfd4d186e4804b71e91bca6f3341ca585f0c48c3cd496a1f1736f513650fcae2379bd1d127641f1a92c0c394d2c02301d29116b3245ccfcb6ae3b55b29503a49fe6357d3f027a20c30528abe22623c53c73970090b12d994f1a69d5a9877ef15f3475cd1b9d58cc38a0289e12a09ff756c7e93bd675b2354d78ec79492051751db9b3f35a58eac539d4c6efb259de9383d5eea913c98a6daa6173b113f8d7bac440e1bc4652d1645b96c4e3ae6697c9e6e7a1332d27f28704b850cccf469f829a6aee604e0906d1b84fe104303cb9e187a19b9ef212dd334f134cdf6256dcdd39e91283e6d7f3f808fa5cebe6263fba31f766bd86fb271a524042d3b42b9d1e7729c00c6e4104eea77934fb44fbf7b22ad80eba63fcf1ac416429df3c012afd4f42984b8006e5ab52b94fca1f54fe91ddd2ba4f8366cf74597dc4c2fb1554c20ca28ca4262888d70f342b55916f6eb5a2e6df5a9d0299f2c15ca37f5cd688792a5c255e2f684035770cf4a8894b750f1f97f9c226f9c451ce0b5701a4486b9feabdd379ad31f1164706a137aa487a25c088882c282b5f67599f8f9488b3c1b0540cdd48ad57754d760880478b686914cc7cbb3f478baf3742382749edb287e867d5863fc40a5f57805d1a7006a2b45046698ce63bf85fde10d9171a618a10da3b20d97052fa9416e56ebbfc9b1cbacaafdbfdfecf18d23df346f6838d90d2f0a45aa650d08be2360ad8b3259541f86946fa047ba2cf05e9542e67307dff451a0bea83f3acd2a328f0e9a7c870dcb1b3ef6a387c208f5128951b4115aa4f58193844d54113a5d13cc6e58cc210cc4865613db00c6c515720de072a9fbc60dfb50f48fc9ee71072e14a2380b62d644dd49c7c8f5b30233434f56ebb4c00bc1106f2f7b89d6f4076480fd24857efaecb3a3921a3f9d9bb84353792bbc017ec91775660c21cc6b7c2c5b629258fe1655afda4bde38fb66d9f5b90e0f70419d06b38de8bf050e7278cc02b9b7d762dcd32245c9776da3fe15af5bde873bbfd1d84e8083a06ae1d030a7d32e9a50be599ed816e47b54ec7b686f5e8c55c8edb7d7f34302f343ae7027234205c8d3943244f91ea9c2e6f2f33fb56af3a0ccc1c101608275ffd7a18201a0cf3291320e8c1e397684c604dcb23953aac9cbd65fb8fa615dfe77dd2b7033195030b57e005e28f14b316e63c6a62d81fee131d3ae71734e90e3ca43c6516996fe169bc279e3b398e8ef8929760da3389b29c0e7139a2d889403b823b3361c310ab668167eed34f3ff6e32542619d7d5298bdf4c9e7b4849f0310f386faee38f5e94f5455ebbfce87a34fa93b808d5eac6a62b1fdc84d3895d8c78e211a7074c78262c24c5153234882a4bc043703d997a1b8ea707712ed46f6fb654758634d1591ee3d79804c8417ace22343bce4d0754f4e72e2f518bdcdff3bad1313b974f7f2b7100e6fdbf2fcc34f5eccddf570905659ace5cecd78ceb88f7fffa03bcdb71a77f975f3d13146422c765a228063cd9cc92f0031b8ba6796025ecd4caa8bab5c48b0e6f164739150ac00bbfba4ce69cd212debadd620242fd5610f3fab75e7a0eb587e4ccdd010fac040d8c0b71673f6a6165b188fb59293138048805ffaa283b9539b947efc6382c929295769bf9d5e434b9eac6d1b9ff9ac26c0a1d1f0efa3108401e4f522579e1bd504a64d1359e44fa59f4f33ac4cf3e7508aab3388cd5be219937185ef7459b9c565034c8d4920d5fc62080db0f0930630d14c285ca11e360705f8ca5786e394842230636241a461966252d634cba8f68e0fc398b4298f4ecc907f5a1fd9795e427e6de785d7bc87130d986b286afcc646723010b329e8cadbafe1a9ee23f8010fa6ae67d1bf950c5f0e6fd53d31ad52ca81dfc5225f61de691d868130bf71d6428474215c9d5236a796c29f983064a2c9f40e69efd090ba55c47313f13b52b5d9edb7206ceb0eaf57198f32a722f9a60400bf550d5ecbdb0e460c791c44e56a1301f6f6bf0d9c1ff04ef6d238c060bc10e75114f7d055b5c3c0ac2961ff42c1145a8505e5d6c53389f04b20d2cbdc56759b861c803897be3eebf932a4877b1c4a0b63c96ef9369445e48f4b0ac34bf1799075db6dbb7d18d28f15f58152b0e2e618fb4551a85f5d1613a0a908a2edbc40e4d7e9683ebf5f9f8879e415e070a8eb52c71ee5451f95f0d351c3013e160d55c1207883c8e6fc20a4aef495c4194a7bfc8afee6af3b82bbd0a32aeab5023169d0361a4449af7a19318d063e4f2ed690b28f5d0786bd6ce5f72b9a6e411d878abe616767fdae52cdac529eb07074ec518723f8f870666211bd427b5253a67e40a318563a8b2d8916a746fc47e3ce26103c437e07db67ef057bae6a953614ee7acd16532d0485ad02b4bec1b84302e1e28c41e508eac18f33f76c150c3142e1c383c28ed902dc79922749842efc4c91c75754ea5e0678a117612dfc7ea07025cfe2e4213780734c4f18e191cbd815619b41b0f2e9965499ae19666c4ea34dc1af69dd60dbbe78c6f462a20699b58f50682e9602e7f16580149797067d0ed1b0b36099a0c5732d64d1efc1f370d4c71a6e77c5d319571c3d9274444db155b11286edbb625b77d1294d6dce64ad7fe58a7808b7c9edf7699bbc0e0342dc74158ae419c01b64c07bafb6452f131bd0f889cc40419d3dfd9c7c4418a37763218498c29f19a0b0d2b3e404b525d707c8cb9ecedfd22303a597091a3c3cfd1f8fd1d252641799a9bb3c4c5c9cedee10e172b2c33393c5054777f9eb5d9e0efff000000000000000000000000000000000000000000000f1b293a""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
53a902d7abe3103058efce7d2beeea878d48063b6dc8aad68420073c43fa5173338893b842805ab8c6b94060698d44b066b008a8209d8ddb3c4c6c0b69ac78166bc97b52b4302e8fcb4a30d102f863b67cc332a2fd4d3f1858613b126a6416e528f2e7a0e12eb547acd956914391edfb42fba61dd2418ead4d0297336b75ce069e3621f5e729d2974afaf595291030a557f5256f63d08c0b475fd47a05299e29f4dd0aba10ecb6a473af5223445faf46c2d06c326d3e407061c4799f8eda4ee8a1958a16ca8a0b8f3cb8658c77429a459a67210cc325ef0b361a8e226ead6a8675f9f97be9556ff40817d169a95cf026b38afe7e28836fb14ebc9aff7c02254ab5256183312e450646885f6177110daa1675d2b2bbc722391b7e55e6d6e0dedaa772715dea46ad23e03d6b11000a187cf51f8ce5154883f80dcf200197b9b9bbd5fa870327e2d173f2ce1a43d89d7b75db2aed4d790e6e452584dd8f525a7d2e8375dc70d4a85520981d36e5378a429ebbbe858f8ce43d6a24623d7b145d29e9660b36b3ab1729b53806ba0fac817109448422f5a7bf366ce1f424ff8fa8be40855af63753ff59dd1063d39314a95f171c72c42a6a9870d09111f2ed626ede30e58074cfd938fe3eb334cc90d7ff7dfa03d6463597b2a882340ff39d018a698a16126e796e93eef162e215daa91c08106526dbfe79a7837743ca396777300f56c3e969757300f2627ecb95a0bbb553578a679652d0a2ad07efc2a55eb6f5baa7e992e6d9c2650970c6e93ca06293b7482416605b176571b1f516e0c9a2dad7fa54c0256f469e98cb1e82ece83bb4b70ee8750aab2927cba821d53f3425677ac92871d0926a2f1ecbc1dd194eb61b408acb43c712f825e153e1a996a833b199a9436384a2007678dfbc76083d51af71e032c42d4d8998a5c0ebcfc43b1a69f8b1c78c98fe57cf0d56a051fada6148d5ae7284a882ca1e912673b6b5df84fc9e6d8a76a7f57f6aef0ddc005e56bb35cd88597a15499cd55cae68ff75c43e4651d965037e4eba881adfafcabf85efb416d3df34f16372a30c83bcc56663a8439459883c6ea4776de4ae02c1f8e038525ee9a862aabd0b4465ab3c0e352ab5094ba58719c2373b3d34f11d1eb25ac268893fd511a49ca86fe7442cac88af7f2571c512817c3f324fe5a4cfda13a02659abe2c35c750abf9d39cde64b81987a177d9ba5c0759d264a1fa080b4681987bb5e5e04a3460a7c8bf230cb26fe9ddd6a97f633259affd1aafa54ccffb39e5da6241ed98a9e95d3388456e7342cfbc095dd2502456ea067dc640eb421b636fc6da7110ab35409ab52a8597f3bae8d34fcdce772c78293c2aa62c940d806dac0e67737e7480fcdd0c7a9ed9e98a7b1bb70c60df6546b5508c5dde0f75a744802ec5bf19fed717b2a878a80ae472e1895333532d7ed13810fa158cb66d93443a6baf8765db2a18e5fa35cf21001215e4ad365f10c38ee777e9cb38efc319ebe4eb106accfcd8182d9673233403f2b55cff98617a1b8be9cd65ab4c79704f082b7ca9f208177fe25a5d79cda75b4b5381b5ec55ddea73c5e837081e34aa68ac01a1412ac438ccd96f763845d58ea897ca67ced998934e310281c3a60c82140413fa130356a7d7974860ff08948bd955ff8b954a03a3d072fdbd1bc772e5a93ee4c9ff1ba44bf47a5e15de0c9746577a21e7e1c16e41c07780969d442ba5d95ceb93b05b9b5fd6993b090ecfd4b75f18d03fdd5589c830069cb32093aaa556f5a8bc49f1c0eab930899e60401ff4503d6aa56a09abdd37ad7b9536de631b0bd0b2d6eed874cd5774394560d0bdb1f5237b7d332bd"""),
|
|
TestUtils.hexDecode("""
|
|
214BC54C508E63F77B261DC59588A87CF95C233C22A339E7158C47931C1EFEF775EB3C91A32C56E888214F9F68D7CD2525B23F695871CF5EDC6979A677EC19CBC5859C63ADCE2E38C67CAEF20116508F33BE8035E9C47D124EEA5FD1651D64371451B6B96601E4A6E8292ED6841E483C3ADFC3DB242D1D7B3F036492741661F45232104A528B6FF79AA4630740BD16B37CD3E7C711B76A259C0845D6F87E4A4B306E939AD1C41022A7D5938E52B98485D95D11BE629263E6CDE20F63AE16CC2E32B6C1C442EF108D92495A759D3707AB6CF3ECC5AD7C02F133D689E252A26C014A31C65A65F079C622BE3B648496BC57C462051B17175FF81126B5BBB5324CCEAEDE0B5A8ECC0D710F04DC0C751318E8913F149E701AE0568B5426736288CAFECAB1779C7F4E96D9007635F76DEB4D379918447F30167F257B8BA825A50EE845FC4AF7C34AB200D5BF45B5F0405BE2347ACC814BCDC648C274C24F8024561FB66676534F1FC8041B63114679D9F4E8CB0BCD7BC4C54FBB4F9A178B4FCE64E705BF8FE42826EE01F691479A8815E2DA00111DE40B5CDE464A9F7A3D21BE9562FD9A5C5CB3F4F9E8F0D8D8A20B9A5AC9D7394AE4316181621B43D8220FDEDACE345234E3DFBA134BF54E458DBEF98923C1891CFB8DC9B5317E3B16C740EF373666969C95BD1C53F435D7ADE792FF9E310A191246154064D0E8F20032AF4823A335D88D5C2A943CD4CF313CF2999E237F6EC50F63936D0FF3F2C729FAF0232671C94785B67E0CF71A7CA5B32434579711EDF155D5BAEDEBBB8F0C6922AEB9798356714931AF1070C49BCA507E289F005BE9D8B46AA67CE2137935C7EFD192E4CC24DBC434B381E9A15CFC529D0064F057FC3AB592869E5F1AA5FCB299B2CCC0ED6750E318F6FC969E6A3A08059788102CCE79BC92804B1D08F3BA30492054DB6401EA251191BED1B8CD35DEA3A653D5D546D2EE8D31C2D88D6275D6C7B463D449DDAF586D5E57FFBC07ED5558D87F7DCA82E4ADF49EB9135A578468907BD8A6228EB723241D58BAF3C78C46451D2F11CA0552A05A85620001D376C6194AC6494E337388EA49821C233F32579FBAE6D11E9DB257C426D99516A16DA63A7BFA261F2B012CEE4EAF7C5C16C6331B79A26E79B1421371E574505F61D699C6DF33EA734ED14129608260B1233C387638F7ED3A34866D656D74F06C2B8D70AE60A0994F3D6C1267DCA2001EA781E5D6E17BECD284F967788227E060381ECC60A10832091319F225C972349BFEF08D4DD5298BF7EE11B693AAAC682F91DCDA113EFE0F35CFBAFF6C73DAE43B8C1124EB57713C122F0A5FB03D02C4128565FFAEADC0AC23DBE5BF123CBA024DC2F3956EBEEE95918B87D2EB22EB1A8ECC3B267528A62F2280E3DAEC02C89A01F5829B5891914DAC"""),
|
|
TestUtils.hexDecode("""
|
|
8ec19a12690fcc4af18b44a46b33caf661ff986315472e2fb9cbf0db6b11f596b5d540572ff4b722d39e5685205ae44f62645ecb6a4f319b1dff9c685f6bc65a311cdd61204bc23da3dbb96f71ecb3922ac19580212e57c121abe10baca724b0acec03dbb6de182f1bf5090131eb5ced5b8cede5444055d33838272afbf8a9d9752c0536f5b544dfd0f20d4994638157e64ff51ea35539244dfad50261f282ee2fbd5fe3b90607a4b2590cc24e67911927ada6cf9b03fd482df572e6cc7441b6129677f3d3d0c0f5e7212bbc652bf53140630bb0e3236d09943796ef92e7916a2c4fcde8c9af522d9661feb6dacacce83e14a6384afaface04e3c8c0febc6306445b84df88cd91f34235c7351048c0d75b6039a102bb0ef30f6e5fae78718be6412db19dbf7536e42b0e5efd950e764c6a80f70839d356f55d607ef58eb366a840706be8f79e8e2ba251063336c819ea3fc60ad76665cd7fc8ad9e404847e0a8ccd5aadf3fc36dd091972959e3de4a5c49bf799c97fe4ac5e993fccd03994e6afd1562a564b111c52860f564e1b335664d57de6fffe5cc93885bc34ac7d278dd28efb850f3e67e810285f47e170243454ac65a18807dca131c99be1f85e34c1c6c3bd3c1f2a13c0341ca961d871e92a2353d813c06396dd29b835971551cdd4d7fffce4d32facc1026b05ce3ac795d54db67983c5bf4aa269cce8470e535bb2555096769215d3df109e2e21b6ffeb6b7461481b80d4894300400851118abb4253b9b86c774522d544dc6c6c2a3c75ce8fb5c3ff2564b9a696ad05b228b8effdf6f54506e2afd2c284d3a988857e4aa22d9d90feef71eceb135f7d6e9462c7302acde68bbc9a813521293d515e8f36aa5ea94a7727837aca76c6fcab11013eb18921091002701166c586abac8f20770e6df05bc682a19c65dcbecc86bca8c85c9175d5f0fba67b33a383987e7483366793ba7b35942b3627a33c23a9172807b578b536fd0faa8c3d9f3d90b6bad5d2b582634b44f9ea81f3cde12ebcf48999d1da8651cbc89e87e0cc049c4d1efbe3eb625ef4e09c2f879ac1eb7e20ef58544332a50953643b02a73308cd481d0582b4edec16c4f31f8ad1ee6d3575ed3e318a8df9a0bf81eaf7bfc720268c1955033bd16fc652cf68ac5289488532665c4b584fcff68aa04b1d4ee55556973eff4d8713b2c3bb6dfe6614b9e6138ce9799ad65d824159e1cfc1519a741cce18ad822de048f19e01d40287494822393bd6d321b8ec3cfe0f402aabdf03743ed8343d442871a6a56821596144f9005f72f5bb36841975970caf6df22724959ff6c8b57049c88176f61bb1b08543d03a7c872b87ff2fb7a66ac64954feec8343f99dc5a84ef8c207033bb837bdeb64c5d4674014ec3ee792303ce5690f2d47d176037ba7ad21b8d4fa2b83d6bafce3cff48e12e12066be8ec16bb2127a26516afba6a87a1f7951ad2ba40b76a800e2c27aad75f883343ca988862a6dc4e481faea5a6dccc8fefcc79f4970bb831fc514cb993624cb7eab874af102ce5e06dbaf57d37cad159541791afb1a47f9c838db9168b27290633e0cef4446d8765ab5e70c7995d437d1128c0a3b0d5c6da7bb7b3e450574018687549eabb5122a89ebda3de0763497658f160fdf054042465eb25174609f26f4755a50d2df918dfec074aedfdf151645b73461d3eab7234aabe1d19ae9896029b57b44b90654666a2e8847d1aaab3b3525952eeb5f0f8cdbc8e3e54ebbf6be367d689e7140596ba674ba940baa5b9637c685f1a1228acd893478365ce039a0a67155eabc02ccfe8f7731d8ccf754cbfa512e604682bb1be083feb424114da3d7243498be28857f19468e5667f59625902b9cd228c366b684154a47acc23b03ff98dfe0c2d02502f6c5e7a5dd212722f5c06793b86d43494003e88818db45102e790ed30f20eac90be73df9b92f5064827fd43c9be4423f61c23dd661a6fd9856f41a2f65127d555e509919b17b0be2e27bb45b07e39482877651ab5e4222875a988a9f97a6dbf9cdccad27576426927153dc4310583c9bd8cf6fb5d50a2d2956986c7bfac0f552693355d8ce9c4dbf4dc5fd6523cf4d32ff62b4e8d9e281eca16ac706b3b737c0d2c977ce4cd4bb41e5e1e2cc16e63ee0c408713ce2831e68e271b52a86c2b8bd7a9d0fba9706a55a5b62ef3eb8a29c793f7a66e182ba4ea249a90ca8988c00396c2d858e3ad362076a97ebfe8d9870a339c0a12bf997b66ff5367b4591c8b0deff659c133e4f97740802a73fb1cc6bdb46b3f9cb31086efe81f62bc087786d1e984773aa976ac597537ff1b1e84991be89df4c1ec1e29a2d72c2dbc5449af5bb95090d1159d6b80e2c5936db148aecac22d39803cead75e78a05731f382b09b51b9a9b79ca9d5bb51b78e591bde312625e52b4ab6eaca92e95edde3baa07b8d12588c7bcd8c2ca4a7e6e5a776eca1168694da493e96fccfa6f68e25cd4d441a111d8de31a0914e19900b218ae50f21ae0659f8f8dbd7f301a061b80add0697f6201ffb0d8c6d42e3926dfd98897d967e928802c9ea3cc2d3c3b9e36b1a29e95fed603f46d990db7034d53159e5a5cd7a72f08e451b5d7dcbe0437a2f20ba5cb69046e218cd3a7b491d1eb47fbb22e2a3b103396bc7273c218bd0eac9f272e6d01a7ded0595b02694981cba45020c10aad67735d5772078099136786401282c850448fbf27e71c1233e5a992a47cda05c1946c6f3cc6cec3899dbd435a1d016b3c771153f44e46bf55fa7fb3c39d8fd1bc14244fb70d4a5b8823b39e449e4d5237e0d99e49e88a85813efd60296b8bdd24d27725f993850b2f66825b9c469f212d6ea131ad96a089350cb76f434e1d2054fc083571f857a36a93f0e6f5fb80ab74f9bef3c5bb7df3f47885f3d136acea283085b4080dbaa5b555faeee52948e6a5e0b0d7c202fd036108998704022d7361ec72a89ca5008f48d11814e8420b453ec202cd6ddbbdbfeaa03ebfbba50c508c5c1a81f6f4367a9f817c39613713c6ce439cca013e1b645854e10256f48ed38c50a7e4a76d01102782d433e612ece1aecc1f48ce45b1da41962c89e811e26895a4a953c38efb620d2285c05a99c27d8e02ff419924c99daad70827ba815c68b0165fd7c4b6ca77d3db1a61f8f95d2c5e93ed860f90abc418791dcd1f95f29f4a45a8bb637889c16c7bbea2ed4a87eb11d4c2d8a7ddc6a68d1f83b82f0d206ddaf76f796c21e0ba9dc3179e85dae4d7b3fa40da3c65c0d499b38362e179e8306b1361f3212b0df9001f325a747b808991969ea2a9b5c5d5def00b0f3139587d8890989ba5bfcbdde2e3e4e7eaf8fb162326354a53f0f2fb080c1c25474f5355627b868a9fa3babfca00000000000000000000000000000012273041""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
8786af4f2617911e937b31037e66d478136009c090bf4a971bc2f286aa31c2525c8f9b56e09a9fcf16fea34672f563b3155acf083bd828ebecf0efd3e39064b9711f3211e1f39634a3725df3096e7569d1ddcc691b199ca2c20e578ad772eff6cd0d68c97043e2530efc0b1905e48a3edfdb51afdf8a6b2742b63784aaf511e29bef9c39d5fc9b33aa61e95acf13a7109e8a92825f7fde5171ca31b0b22652f90325f96817697a661ffc0b42180be669d2065a0196a2a857bb7a3c79fda83533392b10b9aac11b0ea53aff7c323a7291fea59cd8df052f2d3b22fb268b8cce4e081bd2ff05c57f7434b09d26d222c012bfa3329da7d6fc00f69fb1c162ceb12e4b6af61ab58b0f8ecc0ac3aa1d87c84ed60afd0711c550a29fb13f4e9388dab0cc11eb0e2bec3da4a7e80aafd7f94443ace3ff4aff51c12b79dab5f05f736bcbe3dcc4675a5f339844671d623bc4964d6d771e1696ed85c5749f3b2c4face72cbe8b93d500dc6a056fedd1798f8b01798c317b5a977a4b9e79f8ade91aee8b73c0af3c06e9347b18d797c642303572e168848d60a84d3343fff120edc804fe79bb34065000e316bcbd0c925fa2487e8f10ec89cfb986206f1c6b2d6aaec470b2354df70dd5ecfc396f108b78e0475f2617ee65fab93080dc0eb31a0e12df889aeef18b97417ab5deea3215b238b2413f8d53b22a61388a5364c898eebcceeaacdeec1af995be8f32942797a9863a5ca675864f563616fe52b4c349360f4a9b823d0eeb22d3ae744306f84442e75586b6b1c1f9c205e805805f2055d4d7e836a957de5dce2677256a51b7ab6a30aaf660344c7c2927f180d231120dd9540c968da520105a524a2b141ffc96eb9039bee53da2cacaf5b9b5a750a95fe2b32aab89236a4eba885042c97c61cebbe18cbe34ce20792674be6e32e605b4b2e7461e1e7a95c67c59a7da8e8b0561164f4b8490bb7255ad58951bab2ea936e6446d115de213893d27ed1282304794fe889a6b7a523a051af7e577271ffd0a532e056f7c22b0899f8802868a2932f3d4b3697e769a406e0568fd3f3f371833a7c89cfd035536b766abb9351c2d3a09ab9abb6138f0cea3defb6001aef54314bcb1567cda06cb68565967765474ad31631d001312cbaa60ee16794e26e1c27bbbbf2bf6f2d08e48c0a910f3d79870d6de87feef4915e52f65ed6893d82e03a3c3c9f4d22deba3d9dd8cce4685f16e675d95e2e4254e46bb8d72c553f114ff041a1534b34ce7eb9bdeafbc3e1d3271ef774a8154ca31b068e89bcc41344be537226b57ffb5a7a4e3b905b377ecbe87be3aa51ea17e3eab7561e1b71f40709f9590e8b3fbfb8a89622b495a6356ac1a7d002bcf63ab4774db1ac1e257af66a6ac4175894d3b637d23aec12f57d1004b7a7a8df5766bc78a5ebbe1eb1ee9f84d496f83d6de920503d03e7310f401e6862e63f2b39dc2c899ac5e014a90e574f96c7abfe7a08475d34c4bd8053883a379f362a34cb062eef2a1b2207e50facfb47d97fc111dc887b23df7022186113aaa39caba060f58bed427107de9b05afaaac1fd09c5e86a799d975e3eea727082106b14516a06fc8fd4563c7f7255be155785d3f3ee486b15fcbe0d7feb27a0ef0468ccfc447fbe04e7d4cdc2a28ea98dd279689c1d5192c95db184c8bcd657c436387e816170d8f1b8d0fd970f3761539e29f2a41d73316c6a6ad5b6e1f59804237821a16800072f7bf113c7f874761874223412e533cd5f0d601e18792c17599e535a9accf340de625feee6680ad14b84f33efaa35ef3e57eb11b4fdaa855b91314ec966380e76ea352b4967f4c222dad5a9dbc456a9c"""),
|
|
TestUtils.hexDecode("""
|
|
E742D452F392CD3CE405908EB380CB0225A4725065AFCB0C91C5E4823471376E6424AB24D57FC4265B24DEF6CA73E28FE20468B6E26BCC9267AAD2B7B82960C3FB5A01960FAE078D5A54BB324232B6647C9DAB943533C865BABBD3DC0D1E7A1756212980D75F2C8E999DE9ABD1874E3A86DFD53340B6E424DAD9F53C3CA02B44FF8DB9906D3D4352D0EC4B1A57A33FAFF7107D38637AA410B196BD1BB1FD7AE4B7414E1037454A031839AEE4C796BA98F4A739B785E3854E9EF0D5B7415C8B7ED012B0123C335730C7021CE8C94200874EFE783D7C4BF768538A448E76120635217727C81D08976CE4B5027D4BD9D9E27E4BCA4791ADF6F8DACD1BD3A03BE5CA7F68C2A2247FD3184609EB7243D2366E5EE4C95CDD869DE41A4B47F021DE76CF27464F814837C648A7A7CE2F91104322BE3CB1160A0D10CFE90ADAEBC87BBF14387C8387F4F5AA10FBD469ED5587EEF537106CE0F3AF4CABCD4476F248C21D119523B680067B332A1CA4C657B9DE1360FD23ADE58C5538EFFC8902281FC7B5C12C22CC69E7EB18E5F6F8352B9E4935D06C96BAFD834934618D9E6B1F60292352D064A0EEAE80F7B721312FC1B6C58D68A96351431A8626CC117BE9DFA33A1625BAECF12CB1DE33BEDAD584A91546DC767D0E59764FDE3FC29052CCE23ED28CA5DA4507933C0A7702D9A1225A48B71FDE5D27B12FDFF16AC2802E3629E10D5FFC2FCC6135243A9E2F3E3867BAA0C0F0C77BAEEF9DCFBC723C7A2BCEDA39B53B415BC21A397F9A8C4DC580EC512DE4EE4E0870DF1C4FBABF4906E0CFB08863AF2A89949F8E0FF9385ACA3F588E05781C49DC563EE9E0C5D6FA512932B7F5568C1E0FF1C9492ECAA5465ABFE125B511723998C4071481BF1C53DECD59B440931AAC640D9F78B1B40EE46AC0A8FD18B4C8AADD734B0F03F02CAF6A7BFE3DAF100703BDFADA7DBB50ACE3D40A05AE6E87CEDC0B08C44796D7A63E8B5BC95D97E3EF706E1684E791D3B3A2BAE1E7A92FB70A33D896219E80751A41E16B506FF266C4BCB4346578BAA7732CA745BCB01988AADBCBBCC45C9FA3A5D38F3F8E04005AE777910032D992D5EF9DF2C0422548A980707050CAD9DE56BCE60EF74EAA4465EDE96B055999F81A2C9596A2B35C8AB3CBDDE9D26AED44527DEB9A2AF3BF6A853FA51DCCD913876A43DA3E0E2C5B42571101B7B930840B0AB64419E1043CF56AA3C2FEF5B39CB582971A5776F8FA9696CD9F67E9290E483E9BD1698E961E849A513608C3F20FF678EBE0C778C2A6DC1FD3AFFF89D646A1AB85F005AA14A0635E92191CD41A6A46CC283D2FCABACD2FA07B7E2FF97D17B36E0B222D39DC1EB61BAB8146F147579D02A87DA08AB4ACCEB32AE1C8CBBB0EE0D90A642BB76DEF4AC8C7E477888159824349EB075DF0BED236DA9B2826E67EFF220AC84AC99BE6EEB0DA904887E3A84E5208AF49BB31EAA1552EC79E5BA02458106B5A31D0AC8AF392A63947911400FE78F6C94B3F8E6B7C3B98F6548E7894EA22215C87E121441C53EED726AE26394C825517EF8A477A6DF33B5315C8DEE16ACCE76ECA60835390E65392B9FC5EB88EADBF336FE361D190ECBD0B35B22A6FE6A8D48466B5E70BB6C5FA515CD8672BFE70054038C5893E514E23B16C39198B37B06B21275C2994EDF7F9F921B320B39E29444E3D621F52C9FCE19049D403AFBF1C047C8B065543BF43A25817533A33DE6C866FE9D8A73B2CF7277CA0E8D78F4F104C5CE6FE2025992E26E49D4C49F0798278216453C00C78EA7BAC2BEE71E5273FA46044B4B5578EEBC2A9E42025A8A3526B11CEFFCFF47191109C56AE105CD70A04C3F4EC43E49346203347319D8986D15B3C4A49F02C02994D8798499DAF1E0ADB81A9AC79FE8EB55ABE2BD18EBE18A9E5F35D2F66B38CAD6F6EEBD29AEE054C05D6F0B5326CC5B86BB0FC7CDA720838593238A2FB24E0CC36DB193FB7FA66573B064497F771DB1D965953477FC28989AEA2CC004640524A6DE8270E8A5B12BFF87B3F63FBB7DA25337EE34E6E4EB45DE9A39BC9B95ED37A6A404ED2970F9C79A7C2953420732C496B855F19BBBC8ABCBABE1D26D5BA828EB060D7280046AB93979E0BF90B6F1C07CA70833BEC83DB41684F1842A23417B3BBA0A33D7AF7BAEEC14C9C96FDF30BD201C05AEC6D3D2F539D511FBB356DDF333409EC16411DC7255DF0791BD67892880A4DB082684BBCA8B7E55B421C17DF3B68720E907C1620B142C3382AE6E738F8943CD214A847A6439A682D62CF0AE8961B5F020E7126C5DD6258CA0E8F5711E5472A4C05ADFA9A6B8180B741F382090CD1C781F7CC7F23E041800F42B228C351AA21E4D916BA5D9C56CF8E9507065D729B7C3653A8BB062C0463BF0B97F13A1016BE4851F5A489081A2AB3D2AC2744008BA734ED38DA10F372D97EA0C278C709A23ABD4B07E91ACF6A6F2DB9AF7806820381845FFBDC4BD30A503A0F74F37748E3624BB2AA478210072FCA83AD1A43ACE9F2943AC1AB6CEDED67938AF921FF34F2DAD4F224EF7498BC450A67CA383A9DDA333073286A22B85570A11FE03F55119794BBE8B81EDF1966BCA5E363C15E8E8673C94E3396C9AEC28D110408DA5561296E2928C6C111A4826309F119E5456675AAF935A17E80C0BD82A9CAC2627D6FAEBEC9A928D33980A86ACDB35686306B57D466864A0320F21751FB0041BA0F4F1660774A519D3ADB304438C1709711B982EA84D1B193D026081A4663AE69C5E12C3E4A683FB356DCA618191B29290C5DB4AA6A069C3B8D61C8B7FDA779E1F34A5F62EB7DF5C563ECF1200D3FF499DD06C2BF44A2B4254318BC402EA3A047FDB3570EB40630CF1DF84D1E2BDF5449A1F65A9DEF76954B5814691C4C12BEB10A1C006189968F37A4B236D9EE0D39AC340852EC54AA64FE15E1A4433ED48153D23B2B648C8852F3E3AE485474AB2DFD58A7F0CE6691ED36818DEADC8973E6ED06AB841B0A915425D7B87E41E1E68B00BE2EB725C287FE575736F6E1AD2AAC61F02A3A00ABEB2C0FCDB35564E8446C776E980636D5D61740AB2F0736A021D82C1D66864E5DFA98C4648CFBD9C7AA865F6C97038656C9C8767898FB43B0919BC98C1D0F6FA4D90F711E5D009D4C8FD8A773B7C73CEA654A2CD52A276C6CB62265294869A052FA1634D3EDEBA1F69DA09F0568F9D2F6C511F6BD6169BA0DE25F09FFF63AED2FDD0F6D89BD01FC5B088D3EE5344FCCC0215B6436987D6167A0F2D5EA47A984DC86D45534BAF35129488F3BC2D05BFFB84A51A87A1774033244277D0F2B45EA43500F4034081711CAD67BAA9CB0A58E1D01013032EDD5EBC7095D4BCCBD28A5F32BEB685F7901BA7A839650023B0C908FF33B37D038162FB96EBA35C2919560267EE5A94035825938D168481D8E59813E20DD611E4E23D8D42C9DE1D2398CE3CCB3DE5CBC4BB16D555985F411EB5B56508C6F4E75621304DBA2F4F1A2D8B2BEC5793478E5AA0DAE6F52C43253FE7BC91D3FBA84F8525D002CC307CAFA20BF198BD8F28CB579960A1168A1D26340C8E26CEF1261F23E97B806E9F27BB51F16102527721BE0E8B930A1ACC38F0A63EA1F3FBCEA1031E441FEF4D3746EAA37B7D4F8AB354D5F079E56FF4446333C8B8B7B589CB36DF40EBC5A75D2237F3FB874E7E0FF1B96DE43BCF229DE1FED3FB6D01752B3271E1F98D4134114911BFAC8351E3186E90DA3DE2E7FBBD305C822FE6F06ED1D4774D7A66DCA0CBF740DC277C62FA641ECAFBCBE359A28FEC48D62E1D3B6215392C0F8DB601E35A6CBD978567E806168A9F5B4915A80DE405038C4A370D898ED6441F727985037A040163F14DA78378931D3B96BA486958AE8902C98BE75BD0AED53CFB609923C63615917EF0BC6D07CD183192DE3854133F701B9D4B499F958064ADAABF4080C4A019DF1E5B98C8CA265E031B8CEC355C8FFC3BE16DC3D01533ED17C9769365D023CE7F0384D40F7B6179612B5EC382982E244E2510B4831F2D53F26B142A33877961EF1F845370CE115CA5F0D2FD6926482BF3BA1AEF3212DDF36705A210D8076A4428C7F9CAC411DE590452C761028469947BEC31ADCBA229D8EA58755F2715AF6D51E581D2CAC4182557E6815BFBB84BDC54C9368764CC29AA9AB49EEC37364F85AEB3295E60CE6DB2639669F55CC49D7934BC8566AB5E207B33F29128868BCBC1DBDE1089317088EA3FE1D595376DAD3BDD156802F82B63CF4C5ADEF9A89D94493BA152F9F07A9E9CBF8D821F1D6CD602EC49B61AC4F7633EC810F3D01D4867B1F0F3021D70897593303CFA6B5A3BD0303AEC32105F854C3DBED373760DDEC9B9E8EC4AFDAD00FF2E5A05A0113522024B86F1AEE6F250AE3BF0AF1E6FB7DFA8E04E3F9D5C876731D9C33460FDC13CDCDD433B45A6BF17E98638C264DEDAC262BB03714E020F4576DCA85DFEEBD6D70E557DF9321A8AAC519C419CA20E33DA37C22047D4CF925AD67545D04300A42B22DAC098A912848302D830E06CE5BACCACEB6E9316F9B1DEEE271BC6AD9D74927CAE725CCAD0C596653731869E8071E23BF"""),
|
|
TestUtils.hexDecode("""
|
|
a99a8d52ee69a69d91581ac798a7b34cc594801ad2f15e8769de6761048ad79b7dfebfc6f97cb7694d14fc315c879de9029b2b5331f64ae72e36833d3e5bf3c4ab64b8ad225d7b17a146f4d15f05ff72a7ce975e6558d11e3dd0e24c5b8d81ecbf96c732ddc2af021f62ff48719eb70ecef5e65a3acd389afe3ebf1fd6bc218dacffe07c78ed1ea343b603e61d5af9f6399153572549b29f88139d08ac0899ef084a847ec0fa58d0ee3856dff6262fb2355873cfa1426eb3f80ab52d3f6cfac2bae2a1abb12a68e6476f7593f5e5694d541d7d09b02a39832450c80eb785fd1cc13b441a96f22910a886aaf3ff61df7ff9f079cebeeeee218495f5307da9ce916bd86698560f758896675af604a3bfc2721e8e3dd4bd6664950d7e8575a09d439ff54086efa2405dd362f03c6df688120573884b46e45970e65934b5baa1255d6344fb115ffb51aa25b1bcdee1020e754bcce521ef28bf26d7bdfa498a5a182ec8d202d7dd0c0926b71c12eb74ab4b541c822f399bb4f4a50411ff28784930e8c9a6e77afa420a958528d4848f6255067d19496a23b39b21b572158178fe1e4749b3292133ecedc0db2038fe2eac7ad1fe02f426af8391988e46bdc8b621e2c17704360decaf8d6ed08ca825b1b3b8ff95024f174949c7a6f9d8a4a079f2fab1fa0132c01f09b7f7abe7d6aadf9c53d58a97d270a1f9065b295b5c524f3bfa0de09ae02ea5b98ce4403418af601e5cc876b4f0c95ecb7c1b8bb2f72448f721d81c13cefb99106251d4f37e47dc57d9449b405a132d25a2f08ddd8dc77f0eb905d6f6eb0d0cce96b95068d669286c02f1cefdade77b3dbadfa7cb912c62279d0a4530cc5c52941b19de495e2a2a3713537b584b2f7b76e3952ead9ca20b7bc9bf26bd36176521f4347cc8b3c2553d37ee02066258dadf33306a2743917287c09ab07cef7bc4435d582e3cc2fe79c272d719f133e6e5ff1341cfc139257d5a7eb146327c03e897b9668567b6cd9fcb74711e73df074ee139a57229879b903e55a04c5c9fe9b6cf669998444b93963f85ac7176a3f021d7c9409d7ee827de8a11cdc431521c96ed22fa6f13759eb03687d997a25a9bd60800f3f534b3e9c9dba97206b7c2f326b34a087be1798866d1914e59c8eb2c77414be030f8dc270c6ab76a6e1515fc70ce50c497364fc55f0ee4f49d3d22a08c6b9348042d904ec2f8862ccf5ee0b3d22d2f1a99579d35a916748ef608406883c53f18ef4caeddcd780e4a44c872bf2dca063aa11cc715e23cd996e4e3874463a1b4711bbcdc2418e4df10667930cbc7af5ed9b629ed452c240e02b58ef61ee4f1429a6d9aa57471781887f2e1890e70f7589f8d8b4e5ad223ba9d0f73d3ec74d8249b82596c8ec733881fdd0c96d2455ff5e340298a5a6fc91cbbc1ea5a8a3908f6da6ccbec88756874de1518602557d2df30505dbdd6d59469a6f2bfd240aeab1099c350d6730892585c577936181bc9f7fa6ef3dbb0c1d39a082b1a35a86899cf26261927d52b373120225752792f02cd2f196b5540121c3f9c0fab27b44b9462f6396195e21f2e1f736095554de7221f3c9ba23b72b480852c86b179c0e4778441c3c5242d4feb9851165dad83804c7ce5d534dcf918d27ab36ea1faa48149307b95cc3bf51a6bca256f115e3c618b9787a21941b58ce52abe359eb1a5a19aaf67dd56950a6d0179637ed0ea5421b899325ba05a26771b9449ba0de0b3e674d62398e30363d1d885f424dbbc200af85c87d28ae8a3054d82d4be0196188089d180acc7197f07033cca984e20732e9029e832268ea405cadb00dd002e3506e621d3fa7b023454329abe1a48f7dc35730f5f352c25694eb2a0650f9505866d9013e8b88b19b0c5dc12ce799ce8de35caa4b6552f399f8a7b06bf1e5bea54092b504d9ce81fc3fa2a40dd9ba5a2b8711d02dc46ecc222b14655b151499f4b537260b6595a89703ff56ff4c976a4592dd53d12b6fa9a4a775acba17a1b3dcc5ec0a4e03db9c9402ef6380e62d7f76aacd613a482d31cc17a7ae99311a01916a3abffc336959a491995183f531ca9ed0af40131a28da068038649639155bd12b9d3a06238cd3c4b754905b56dcd52cd213a2ea369623f32ac7877e6150d0f5ee25de926829beda4ef67cd3c4323042aaf3deecaa4d404426f234fca778826dd3f29b007d369ff1a0af66ccbbcf20d9f33565b7ed745c160cbc5242c683588a67223d81409d77611cdce68a0478bc50422da24632852862319f20b446917557588d19d8add012137959e6791aa7ae19597a8a2f875bb8b78b17d6f5d5b10c1996414ffa08e698c7789343487a62a98474a39cac820ecb1a855dc825d1d7bb9c302f9945b4ef5ecf2e85d22fdb7f440018181ce3c71fd8a6493c7e0ac2d38ae115a018a3583eb45abb5542e66cf77587ae2e1da41ef8b98b2c2616f6b62d3e2c7e467955b0ab3431d1f5ab617adf90334d87b2c01e450c5750347c1c98fd4fd4109f13482e11e2a6ebc4a362d26c6ac9e4d112d18c1e90726a2042ea3d5543c33d32ac108dcc34999db8488895315f18fc0d359714eb6c10b0dd405f6baf03c0c7a3b89d6ec2593c317e359488ab2a1e85a722b2ccfeafcdca2e22718a17363634036af5aadae7bbe6f48ea36ae216b827aee084696c7094dfb6e4fa563b51cb1fe41f8e72db7cd527c363bb00bf8d22896f438ba637bb7fe64054d69b628254a4cdce5ad92f753cee7889c460af2fc4cb10ff6458bca2547193ee76e816a39880f48fd2e246b66efb3056cffc0d233a86307e13e7fe87e4b4c8408cf7bdcea51d189dda4c4cb4fa44b222e4d0ed51a18abf77b49fa0280dea06852e864431c1b4473e876e2fe4f00d423aaffac81b95f186467e409583252662a0761a63ac3511058b4b0028d0ad1b760994c98fd7ae64bbbcf8e615e416bf0c1a594c0fdc46f760d5dc394497cecbdbf06d7db93d2a711756a3534f7550dafa01954f291bbbb511b652b032eb00b804d654698127e2ef480c53f47efb10c949f50168b1d888c62c9bbc422dcd07ea4005d751dc31d374357c10af8991adba9e139e75e3367bd18c7e1ac9753b2241960999e6a0ab795c475f5a330baba955dd34fdeadc193d9a6ea7015b44a04d0d5fea544c140c2a419c86f89ea54e4cc2ed8830938b171514a189e5517949c94ab77a5e9521a38560f3bc4e389c7fcb0b49da3f037ad53f75a85c0fff2c43945bb3d3ad65a197c6db5fa9fe3c78293a2a499ab553af3756ddcca3892133c1ee40a7b73bd19262b33364c575e7492a5b0bcbfcacdcfe4e9ec0e264b4d52576c727d9a9da3a7d0d4e3fbff2137789499a3a5b6bac5d4d7dee0fe0317192e4144484d60626f767a7d8c99aab4bee60000000000000014263549""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
194345a0607b1df8fd01f58d30010604261e15d712806f9fb99d3dd6afc994a917dda45b8e4e58058632273a75c00a98e026389b18ba7bfb412cfb510a335d5f7bcf8c192d6e4e643404f1fba8094a76c16682fc7aa910a572be4500a034440dd666e6c1a4f0ec33c699720a44ea8ba52eaf34dab236ebdeff18516606215c8e8071d7f40443253752f9e7593c754ac2891a640633d6d0b1178ef8e52a40f840d78c972b3040eabe17b5d24f99c75b7b949ce2b4d00802b1b0c14c786483310ec86a6fa24d47283c8f3ac2033ba4745830b26751897e121a0b190befe243f034a40f43817308f9f4d37264e99f43c9a6e5ea7c5d03787a0f1e288dc24d93cd0354b32004c9891a11845d07dbabe68ed9505beeda51ce431b38a8fe8f1499b54116956dc11532c6598e0c87e7dd57422c0490f74cfa1d084d9893838b115b4241cd55ad6eb382b0c287d2135d8df9b5d026fdbb4bbba19fcaadb38e26c3d14f844e22f870026f7bea480eaff61bef74ca4d304a5b49974de22951f069744df5cfcb0b8d13d2a8e2682184d79bff6e492ddd04b51014b205a4814e2953f8c94b080b071209187678d9460dc1ae115c83e6e597035dc3578137d781d4ed549f8d66c855022069a86cc91f0ae27974cff924ea9c5e8032c4190a384f9e1eaecb7821497cb44c4bb411e107e6c507d23c877e6417fc313695c99bb71e7ff5c3f8a6093d08228b8342ae11fcb09fdaf38698b98895f519f5c87e754a4dfbbc70867661c5a6a8e6034f1b3153e779406eab5681f7697cb3b2e95f0473405b0126068963b74a08c5810310dd41058fb7180119b5138e44ef42a3debca1260b60c65daaa004616ca73d59bfcc24b18a96d72eea6dcfd018d3234278b56e398cc24367ad598cb1defadcc6e1949cb7894e7dde1e4012f432cd3d3d86e7a8ba4c96dc49002012655a11ddd17d4eab510d4dbceabc40c8bf2879e7e1fd5ae4d6d3d16840b026803e1e06116bbd74c3e3a864a2c72f4b758392377038fcf436fb83aae85c0e56676ed444248f0004d88cca4ecfb96fe1e4ad34e723a5d4a33ddd433c848cef1a65cc0bf8b16cea1bba4660af54555b48c4b1eb89d189419c2bc65b6681c1673d5998c2e51436080d3173229c84ad475b1552cbe0f937e60c4fadf3734683347216908e93cf2d41594a41b703fe7005c6bd7b1762d2ab3f0fe7e69dc5ec4f53e6460f7e924950584ee44fb3354edcf1f971f4c05c8a7be858f601d70435603f7487c9d7f51e4644aaef76e9748d8f2ed2ff6d03b4df231d63e563726eba99e549b5dd3cdc811093d255ce0b59b60e68d89c38bccbf5d37df816a286eeeea5eef12ed8e04f2222d71ae0fef9d901042b22131d7f788ab9d53a6f82f3c0fa46c9ee90d2b5d7187885fdbed61247cd44b80065a543f9806657f0e61d8e27050f817121270e7871c038377b97d3dbb26b6f935a0eb001eca6800cf4bddd0758373583e78e7cbb26db88ac874e4e183e7a0d7e4664bc573728744faa48d83c7f8fb56c06b91adb52c419f7d73446b9ac7c7c607bebb424b7a86a3a8ccc2aad419dbf7999163162facd2036ad2267e34293b710da6e6fa31b904fda337847b83f179a5936cfeecc03fe121964642d6245e63a4a5d264631d7b82278a4a689642fbcb9cfac6af2e9d81363fa46e1b71725779abd771eacfbf0d6d92e59d52b485203d568b2a6b55819a73bd129e939b1095770861a43d0f6cc44b53f50949c755c6b274612b611d5418bdb7753c337c48ef6ec49045644d875960beab7707ae7610c1382bffabefd20eef4c68eecd2c17f1bce375048b236ab98f1fe1db575475db6e1bb"""),
|
|
TestUtils.hexDecode("""
|
|
7EBAAFA6D04129716131907EAD0832AD490D09E97D865B4AFC5D6B0FFF4EDE6A52E961ED88DB60A325AFF2675DFCD6A87984884AFB8680DFA7378130E44F205398ED7B83B1AC32D2580570FD6603827E8E4F5E20A27758CE6D1299BAADB8A895AD586BDF7B64F8D7A52BC15455EEF240F22FE98CE4CEAC03CDF7E8A983D7FD1A59C5EC594474AE77DC43EE4E7B25C556BC1D91ABD2015B99B1AF5329DCD41B93793D791A44AF5D83DABB8E40675EB32120C57D9E6B7757D3E03008A2F788336B8355AD2E47E61B39BBFC2229D53BC9BA514BB20F3F9EE9266BC0015FE81980FDE5637B3018046DD3D4BC3D549EC394E190F1BB788619CFFF86C532B4B9F0F6F951C0ED691C59AB0CC438290E9D6FEC9E75BA4FDF12D2BED2CD988AC411310BFECBDAC48A61099CE0D0CE4B44EC9C97108A44E5C5EEC1D3154B4E72B8397CDB0F7D15AA358076E25B7F3EA1E6E80A214051C440EC4189137610450144641B1E71B5334F0DDCE9D5CA30274E0237E45B4D92D7D458ED9142CC23871E56411382CE40D9CA4358B417261C2E7E845637FD2E9B4357E7EA5F4A8076A7C2F40FF1F8AFABA5393512F690EABEBFB73811B974E57C2D473AC22E747A0EDD39E99FD6E5D3668F3DCA1C795CE27D1A155ED9595EAF9061CAF5C55F3EE97056AF6ED90E05D41E90926F69044746230C990118E4D0BE4C12F7A4AA0464F8FFA7CF64C07FEF171B2E43A917AAC2880675F929583E9040BA6FEEC8262002613AA91A2B8D4DBC1D36F23FA9248A2D3ADB1DC5AD669EA219D35DB17C9C25095AD7673445E59DA6CB2260C8FA57639D6BEC8AEE307BD9C96EEF00C93318DF7DFEED970DC1F61AC5C94D4086300D91199C90C95C1A24F7F1E4292A60AB67F30BA990D58C71002D3548A412276DBEF3984FAB312723880ED479080EEE2B636ADC75AD4423A6E0C5CEB7EDE528F871FAF21855C3164469B9EEB47B6D37CFE4222DCD0B9867B00BEE12C27590DD77C24FE640DDD34E9138E70D15F52E94F3874447CA5CEB48573ACFECA3554E2B76CEE4E31060BF132CED8AB953F0A280F7916810A107AB5BA66047FFF0003B1CF13BFEB77526265B98E54E76B891A89F3AC0ECDF71406674865A0936BC57F87B64424BFC8FDC41E471D951077C32B5AF960457E97CA05F3C378D94B60A9735E9EDCAA96E413FA391AA687FD07D9D021B1014CDF241E5460DB08D3B336DEB4CF0AACEA57E4DC6C464F698CFC2AD10CA72C102A25787E0B89249F63406A39A2A792B2DE04710C41DB36B55D2FA789004E593DECE9865771D8B16B5436A792FBAC9934852B1F55D518F9A07CFA56BCF488D61AE355D63BDC27DDED6A56154B8BA3AFA3EC9C01D6593C83C315527F5FC61BB169723346AB4075D09701789268EC1F02EC4A1CD8A5F2584E29F126B1ACBEEF660CBEF16A8E9FF9C0B542042EA76684F9D70F2E3F3C18606ADCB1D695112B129B301008EDD5E6121A8948E1165D350FF09647DCCF4A1F8605ACC750A0AA8319A6685153A7672B31A3DE785EB22E1D223D6271282AC18AEC83C760190799F082D7FB0F238F627271BE62AE5A36A34D65B5DEEAA12D6B14B59BD0C619D8D9A44238AEF1FF83C30118039E834F7716CD59E138E2ABEC2921D9FA92F6808A760031B2157103FD2EAE988AD6CA4F350F488261409FE91B5667A9A2EF1E226B8BFEDDEDB84ECF993E9A71220E0253D2C4B918C5521C7953FDFA00D50A32879FC0A68D2AAD13EE181DD47DB9E3D715574CB3D566BDF30209297B01A666DD7DBC5464F913599086AA2FC6C8541592CEFFA067B287EEDBF4C9B9D6CB23CE1DEED628935CB2D6B5CEFF3BC442B2BCBBEFE4AECFC455A3A64FA117CFD9289FC27E6289750005877DBF64CD562E2E7D1C99830F5AE63C70685B3898D420862A8C4569F2CFDF564EEF4F94FC34CDFEDED8854855F3A4E52C612258DB5EE4D702BBA98B450D070264FF86A440129DA2C126978DAB3341C4079A66F9C23445C5938FA799E78F157656208BA7C7BC7F936AF49D11148856BA55910A6A736D32E0974E50BFA608975E37AC0601FDA7551204EA66F524DD03F44F5DA28EED5D126C32794F1CCE747DC1E9B1FE287CA607F81FE7C795C96569E66B2F3413DA810035D472B7F5AF74F9CC70306A8EC36F1383617D0FFD92F6DEFA7EFE91C840EDF24430B197802979752FD55A8CA85FD8D4FCE774F1CCC540F77C02E16F1494DF170CD8BA57A86BFB086349D53E8A62E1DBDE03369757EADB0E985A038B31DCBEF513D4FF9A3BA6E8338EDCECA7C3E9417F9E133BC399F2EC0C72E60E809F79D55FE1A917CBE28FEF19D6D08A43F74DF496EA9305072C90AE3BA0D21A1AC0BF040920D3F5B8703C12A32A6864382E9CEE8D00CF4F93830623E76197F7F52309824B08B8E0D5DAF5662A36981D50880FD3A8D73D24430A1CB201A9D0BDE656593B37B8EC47F235B5CA251249A04507DDB81F8E5E4E5E414B3750AB168BA51A8873E6ED153E302F61F7159B658E316D6D183575D87ECA30185CF72C67543CDB658AA07B1DB220032DF80D287E769E3253C80F43570AA538EEF49F45316E176F1F9411F3C085257C6B8C708DA7B924B792389A7EC34C7F778E6100333E8B9FAE75A4D1A32E306AEE36D29FC6823399FF37CDD0D11C8D03F14740342B736C4EFB5302C141A86C857309A70BD74DB6C7C29C839F8D86F2A136F67A0FB3A3749542A9DD8D4A062672C75B67D3BDC3FA6B56F3E79008AEF8D8E04CC7781B23D0DAED64CFD1A91DBBAA2C9C4E765FE2FDFE6E8533848E51FA027B86AB05A0530F15C1B7B6BBB268F09A7865E202B1645F8B4267CB1A49A2929410823AA9B834101E9EFFEAAF6E406639AF7D2710E60A84B6205339B0719E05BC6724FC2892A017AF86D80D361A7FEE8C284CB84F5F09B90CAADD49CFD396E6AC36052F5CCC8E7667CC762A9F173F837A231D57584A3BB19671B8B71907E415A1672475ADFA11998F94F28B00903AC551E651A3F9485DC0ABA3297E561E0B5A5786BAD9EC8169CBD706AFA60AE764BFE01EC514623BAC6C4100F707C5E8A02F4B0D6265502AE4170AC3EF95B49ED1A2BAEF56F63D5667C9FC0AF4C0A8648FB6AC5444EC8A1FAF4715027AC9F5987735D1AF7C55AF4C838FE9FC84FF71F929758DD52E2BD4A34237350642C0E641B6710A66C9C1EA1D9BDA80198FCC56D45D67C3511BAC0971AC9B6166633B1713A969B8DBC3CF60FCD6998137AD713EA3ADA84169D49FBB7F5CDE362ABEB0B71D022D9ACE7FF48C9EC1A7E0C72B564FD2C620272A482941443838D0506E2294B760AC9DED5404D3C4D2898315D3E3A82D2E944D537817B9901AFEC343B95F2844CDC4AAC3836E7713739F4201B95C42FB7C99AF8667628C1B60115BCB185754148B3C7226DF14B6DE1AB4C6043329B176C9DB9B1D73B3814FEB89E84A4C91C84993752B7AD30CC707A71339E8A277A5586BA85CD090F799A6B75523A62C6DF1549D787BD8722D1F26BC2C150D6A38951F3014B83DE665B21F5D9D97F2237333CC10A4114796D56D13D643364306E7445F475729602A11F8BEB002BDDF30E579E26F2BE4AE87DC666974E24FEF2462120B6CD8E79D65A2E80542A9240D4EE1F616326AA528E2A1282EF49F0312174B67D40FFCB1370BAC5D1444D75FBFFB6B0887F4573A8C4622082E1FE349B2C73CDC92592F684769FA7D7CE6FB5AEADF38023E51DA4EE3EDB10368442B218919341FAFB22EE80DA96A52434B184D499A4C49317C62F6D6DC9EC1413D01A1CC3DC8853444E52718798EA158A12B72AF023079E5E76F41AE685494E947618C4AB3036ECDC74F7A043230A0BE116F2B617818A2C94C54CFAC964C73BEF969591A3CB2B7DC9CFAC7B4F9B64AB70BD7FAEC138E42908BC90D6ADFFBC88EF473CA8CE7BC960C4B3EFFCAB92E8259CFAFA85EDB7832B3E630D6D2CF031B8CB570E38C101A56B426C654464228D152ABCC6DEB888DFFD7FFDA974E60CCC2AF7531F38A813E263D9B20DCCB50229E7D8F379F81A280CEB90B64BA3657F1E50381B468D0A6608A4B5E107C4736FB4CAA10FF3045C05453EE12A9FB0B79845E077803C69CDCBF7CCF7D6FE6067ED152F67023CAA6095D1748414580232007AB3426FB2889E1BCDDDBA539A2D79CA523A2CD1B1314C87502909DA849BA9B11F9104772BBA27410018348832B0BFDA4F09AF02B351927F2B6D29D9CA9F330266EC035908C9D4023CDF2343B177F57903D37AB89D0F9E23EB0C4100BC6421235CE5FF2729C2ADCAC24D1151757D8C6D6DE53DEBC38FE866142D1BB593974F4D3198C03DE4625F41BE3D488575B25007C2D5970BB152BC1C23E48A88036C070BD38604C5844E4205F1EF3D7FAC0B4B9FB51F229BA322D3355E458C27685130FCBDF591C0520626E5703A2E85871A62AF0CF2DA3468C401644656CCAB33B2402074C59A0EBB57928F548B5FA4871A8B2AF0BFD9A871A5C257044C17E4967B70D0DFB59F1345526FE59B4BD92A1C06B15E3A6226A4821FD614D8DF612A3D2DDB2DB67BAA3878C68C16645CC747BA9B366677541171A9264B89EE18D9D169D341629393C5526C28B24CD4CFCACEA9C42DB2B1CAFD7F906FC17CCE16612B1261E62E2A700CE74DE73174D3A1E06AA31AA05044EC324F026CD39F7B13399D9D86EEB53A6DE84914719EE31AFFEB630F3D8F08B4FFB10016209C13BA2158ECCB4B74BF04EFA73222554FF5EC49709F7F8DC1D40005E91245F3A5E2A00B9F64678B2D8A9E6BF1D011900D9D12F7F3BB023D1E5985BF78F8D6132AF5C0B9C330F361EDE00473DC9EE7469478FEC02670E8659B643B92C5546C32FE7B0AD816A5080B5E3867DC209EA15AEB4B14E42AD58F34CED65ECB3B519A54BC25117EF8D392A85C2895B5A4B73CF93077E360A828570FFA02ABA84D6534F3EE0C935D97D1D1CFABBC0D82E48937797FAB31704588605082A950CAA23D6569AB793FDC31BBA561E729E80979DAB84ACD4EE6B2CFE06D2EE8C4183D33B9F894C6865D9CD405C7665E0150B2B649159BE684839BD12CF0091614E1F821046238DC9F538F769FCE51E9B8DEC0E98442CABD3A4296F1D4331A16D33CA356B11E3DC13937F814D3D6281A746F054606DC52B737AA40422471139867624CC8E9C559BD25C7C6D7F902677A84BA63E8CB817820048C1C0ADB6288000EF2163B51ADD4D758D1C87FFD574354B41CA5AC72228A7E9E9E75BE9DB18FED47C32E3C561C972A67D50A560017BE794AB9BB6B50CFC43D2F6D57E8D73CAD6227C896BCD18E0D7087F57C365FB9EBF5864DFA4A13B6B5DD7FFFCB648C1E1FE40B6A10EC0C45C74504CF2105AD443DFAD1E306F720B9CC37B4A30198D3123FA9FB2A7A9DB3BDD98D441B03E0EE6A8180989E76CBC71B0E8607C3A9E5D20B6008B010702FC5D59847AFCE122F3FD4FB5D89D3A3331AEFB96B593F724C04885B574A43B5EAC70B543BD191BB818768C67A10AD6E2D62AA4C65FA373A19116AD86A4F9A97064E0C0BF80106DE6654B4A3945983B7DDF3AAF1E14A04F6D3035542B0F710352AFC20FEC78B61D8548B9669F10B3D6E531AD07A84C493264DD49759D95A6AFDBEA5AED1C7D7D2AE6D2FB6747151CB6A5C2F9C1AF5CEDBD9CDE8D5993ACF080A0008BABC759A9DF035C648609E610F226ED128E2656A057862246B65C70774B68F54D68073393B85110285FB463DFE394D9DA0AE85985FD6882EF5B11FAEF2BAC18F9D9D9B5CBF0F80AE7AC4418EA658D68B14BAC135452DF271DD3348BC338BC6C789ED95D5C5625762E4CAC6514866613E6D533AB9814B7C337260BF16716478401689F4079644DF4F734281C16164D19C4ABA20ACCCDC517EF42C19A5B1CAA4658C27B61902ABF88EFF0795D2C971608B0570E016CA0568CCA3F7B38FD3DF5608154A33C1F0D70C2AD0EBB134A8F475A8BBEC8408D3B9B0BFE8A6F10FD6C979B13C3EC73F191B788A79B4D07AC45172950689584C909247DC8A4CDD686186DEA16676851B8A7C311439149B1A963B0CC60E5395B56ADF27C25A51BB4A2FB19E14CE66B6D11781E89B3EC22CB854A12D46970D1A009AAD071C479D9C731770D666CDF0BCC381A3D328542F6371FC6F5FF7C4D3BB06186C048B2A3774EAAA3CCBA1342927B498F2195213326C9E393153BC8846AFE2120B8FF4A455B59AF6E65BC0CE9CA3502BE73D74B6CD12A760A9E0E0D26BD105FD993DD879539CD666CF2025DACD481A122627594CAD7C4FE30948412C1C6A160C358E16B6B67653418A22321DF5B1A9EA0DFC3C82DE3B8CB0F48EEFA7DD6188023D1B8B7632270E63AA38873A2C4472F9EF1E8DA56D5328C00548DDC4D9FD79115C5F6168AA98099BA1AAD606FB92F8D253C9A55773E5629E84350F3BC3B00D803E83CC2516C6C29476018ACFF2ACF61584A175E67EB8952885772E6C2D7F9C2B79C8B2F2A77C73C8B0230F080DE716B2A13DBA5FDC8648F17573A2898E72B8850997B6085F98523F00516DC7A90B9C2701BDDFE505A6C330D1118AFABC731A1DEAB813AA0E17708122C0069FB61A02FF6D5EFDA990A23E1D42C520CF1975FF06F123E1AC0B0A86FE666F8843C406F5F1E1A36FBB7A0B41CC641EB49416D6F0AB03CAA6AC0CE3A3DD1977B4D16EA33CF75A37A6092003D097D0ED8FAEE89F761B40F7E600FD502887AD90BE4BA311B9F4CD9D348DF230A2EACBA3FC356B506ED8C357E228970A948FC4983AC3ED9C3ACC22FBFF56783A73231F7E0B91DFED20E754ACE7DDDDDCEFCCF3ACC76554C269D634DC228B38C284AA35C00487D7873C8CFE8E8657726FA845863719FCE5A9E32406E2191B791F76DA035A4C862176040DA9AC0F37E66FB84DF89CAAAE9D8804824725FEDB95E5380DC66CC72BBCA1E131E6B785EA2B2B4A05BDAE01B22C3D47CA85092802A8EAC42E963A62307476FCF94ED7EBE5538A8C6F28A6C65914CF48299D3BA2B89B3008D29CD874B79A72AB840815827566E50627C2C332B1BC60060BF2FDA320FB040FD14D52CA59B24E325B5783BA1BDA3B27415C9DBDAA01562466322706CDCD0307C3305DB08D2663C57F6D3307E1C73832F8CA712402C7402EFEE0F1BD77CDA08F5F6582540D34F1B2809F84EB2F540558EF9ED46D5C636C45856AE57FD9E4650359635BE72028D1CD37CD876E0DC598E360CAA1DCD1F9F2BB4CA27CDE012980080E91B1C7376622907BA6674F1EB9E80148E6A959EC74950A2B934D42B84D739F1DA528F5C6E1C90A238E5167041D4E9AE5352B74C89DAE368778A90170461ECC0D6B6C6C53CE36745A72F79AAA1C82D494BD89D719800A89127BC3FD55247C1A29FB8387F1E3576E0C45F4D327C0B24A75FE25EC6147C890F25E50AB3C43B94F451E5B5D67F8D3BAAAEA1FE211FCE8622600400F73C1398459EA7FC59D02582C2806D01023D84BB50E99AE9ACC217B7223EDAD956FE155152E7F35B2AEE1535885EC048C6E0C50D395B0F1C9D767048E9D2DA7F15BDE192C923F1C74ACE06600628602D1B0189FCADE0873880EE8544AF3E29314E2B5DF87BEB5A50ED72FDC093800B12CB2F870304289A73A65D7E2384EF3A388EA9F0013B2B5C92149E2538542D95FF020A23E976A7DB3E2C9913D87D6EFF12BB51EE298F1D2CFF18FDBAEF56B70CBA35EB9273F1E58A6CD38F1E682A759FDF8D8BFF60E7CBEA948E25DF0114BEBD4AF13E4E0D4E7C9EAAC2C5F579A1AB14E7FECF9E13F20DF873F8D0E090905D32C8F8C0033F5D8E9F1B9FF17EE04FE3656EB66F5E4777B60B047DAB9BDD883EAC31A6455D1719CB475D1715CA0D12762F94AE78CF3C8EE90E55E71D0AA4EBA6216A0E81566F7813E7759BED30860BF22178407783B9A8AAC30CB4D53AF140E33A47ABD60F33EE700C323277E751E5B32B221E4B9815FDCD400DC544DF845619FD733F164937144FC3D89D8186F8B898418459811B3E66796DE51D1373B248A9B3B9609FEA374784A33989FE9F5BB26D2148F7282E09C35E13295D90BBC7795DD72CDD4955E9D148BC779AEE9C7992BB85D8EAFD102FD690F2C679CB7003FC4E182678320738361C361747F49AC6149CF4CDA4B80581844F5EE4818BF61750047C35A4B10697892A80F07E946F357574527FD2D0187873BCE78EC99062C70CB4ABB72A104A770CD7ADBD20894E7BCE2874E45302DC0BCB9645EF28136F36E7B179BD003D5DFA68A572BEEBD40EB9AC1F9228C74A788671BBF4781AA31C7F8699813F32EA8B60414C3ECB894DC7B01E50924482E5C068F0BCA79BAD9F469770FBFCB3942D1A3E54250E87B3693329479217514A8D7B734D256C5D28EF854FC3F234BC671F5225B1DCC20E590D8E5D09C07B22EF0A89A5B863C2E652CC0B1623579541C63CE9C2C4F66BC43323D7000BBF2923F5B8A76933FAF950D2172C1D90F522301D9A0C22F470EB8673CDA0A1B494FD7EE9AC1B4597B2DBC26FEE33A08CDF91E3C59BA4F93E02D010FE3F1C1FCD694F05B7A8FD32D8E7CBC2934A25C481D9C58FED7E0AF3AAB527D6DEF43D53756F0C95B2B58A426F7F61D09F4FBE55D9AF053B92818ED9FEF1CB41FB5CA23AC85B0241900F73971558116C5809F565F71333713EF5BE87B0AC95364C9FAA80DBB9EA84B5A5790D20343141093F86942817D195ED8DF4A2DFC7F7090CA3DB46A92AABEEAE2D7DD8B9110F23A89E4FA7B5A1DA27D643BB879888A2238E221E2F67D9DF58E73C46023FB7E999059D3B81FB753B2AD333207873831AE42FAD8092AA04C0E4103B1CE0DCBD6B06CC2F0AB37CD1D10EC4C83428CDEF84041D12BF9ABEA5C80050A853CC73FFF3076BEE68078737F6EF483F486215118C640790D0CFB4C6E5243691FB73B1294E0D3A494A4A538B94FDD2746193D9FEA24C1C04F5B20D2D40B638CB932C35D953A9D31260B76DA878FD52EDED058D1DEFD9CE214D14C3112FAB00B7F2DC88F7EBCF79EEB1C9C8607D6919B8D32CC8416E2B981C141198DD9884DC3927EB0192B6361AB556EB3977E5E242E5E26BA60BD42892F46F3F2DF684D0D9FB41BE42C04F0C248938AC79F110075B42181DAE62801DF76AAB50AEDABF4361C0EC597F31245B0390CE2629DB933E450E09DD39E6A1B644B0FF672B52ACE2AF52780D3F6505551F52045028C4DEE6D1C6A34BCD5E95E9DE1BCE849643BD07E0E6FAF8B27504F859D73BDFC07FD2034595AAD85A9DD9AA5B3A72346D6F3C4B21C4CFFAD8247C8CAF0DD9A708E11450502BF3C28EEEDCB0E1D32D3EF1A3F6237E34C0E4D0222F496839B7374EBB7D786973E85392AA8FF2A9901D076DD4C65635286276698DD4388F867D1ED18650FEDA9B03C80A3B5BD0AB3A62A45ABECFD55898BDAFBA58137D4BE29EEE8B3B3D1C4467B63DBA1EFEF2C81CDE7CFB101B1E65084A0E92955690C8CDE6F93E23FD79B76DB475CD24DD92A7504510F8DC3B22EBCD0288B4E479F8DD835297B196531D2DC759364306EB6780FEF31C9E34142B55988F81312B310093F77CB89C6E819A7CD3450D0790CB7B5E33A3E5E51DF05A3BFEF63320CFF072D450D71E7239AB24E4D83A8E8E501A5BDBB041219E15517B15EEE237836672A761D36D11EC973BAF65320B368906392E2689A9936752563172B3A5ADD90066E01EB394C77E40D57553B883F446C42EBB9CCB47FA56816B06AAEB62C21C8F57F926420AB7C1D5E97E73F024C259011CD585C23D30F99D22197B569D67BF5965887AECF553A9B48DCA0C418778AAD65D4843221B8217D2D61BA5A46C4F9FF5B00B78CFA8B6496007A1444503DFB8D7CDE7A63D5D7F54EE5823A33EB3A155C20F0011304068CE0385A09170606FF6895A6955C211AEF5D13BB93866C9CF00A911A4A50A59133113A9C7DC53409097808A6D0DC44A7776B41A7A43818C77CB51F3E20107F080F6682D90399853104B8F3AC4DE8521048B22BCA58B5F7B5EB3E3503F638C1FD24568F23EC8C59A3359A5C9CED0305B1B81677E20EA35F9E896E665D3CBBCB6155E1B0539A0B26BF95396DB8548124519B71BEC19A17DFD4AA2A2E134BEFDCA352B01E1255A12377D811FAED7809C9B881B24C185F1D1273F405F5BE82FED08F26E6C11D39A604E88A1EDFAC8AD3DA9FE8B1111C7E038A14CE58B9598AAE96B7BE84C153A9B26993CECB1CE931E0CBAD5F7F6C18B68E14E83A6BCFA33AD2B3A707118D56803A1E55CAC8AA93EBC47F9EFB"""),
|
|
TestUtils.hexDecode("""
|
|
551742a530ae4d15d68f1e222c8865e6fa59541a5e4b6e137197b52a5cb84548c099c3328b28865c34e90095e8959c65f68d8e4ef9e9cab97590736dac647c93cdec474c3e6d1c934e2eea593479349b6e56b95dc356cab1e2a2a7a94dd6490d9a186879ab75f16e0bb792863a7a8a19ed88d74d22f7c17f3b55b4d6440fffd4c24d814d3c09cd80b3d3d137882439f628337061253522775d68c1072b8df9403ff65679d24b06f1a2779ed76ca3ce153c264a06cf04948eece4f06243f22898bc815a90344479a8edbee87d0c5473474b1b588006f6dce5be82c7bcc2db7b50fab4c2cf06eefed93110aa634f6691e9b757aa8a01ca52912040a3ca6cd6f9c596eedc0a9d49f1bbee32eceb2374336f07e74b425d6a894f8c3e49a255068d08ddff453dff688f9c74a2be872e2a205018fb3e0149113ce438a7b83e60f536ac616d748fb2c590f3ec7e4c81629a4fbd993ced51995432cb8b3778f7d4e375fa54c9511e8e97323ac021b7cb2184bcce98f87a2712740ea1bf33670c4a718b475b31249ddc1a9c2b216efa7b5bc01f792cdcbd07f3e7719f71b81c3a31d8cfb7dc07efa06e0740743c9bc515c0983c845b1c7b2cfe7745c8d0e6967156cd36e88c8e3eaeb3c96ede6f94a53eb05abbd3ce8abb9f4d2c350969a8d5fdd673188cf5f8da51704b7390d8de842a18f5d900da6f0de22b9b4836947acd4d49de53e6bf96295c3f89a01070fa3742ca5070b56afd534fd4bcc280bfa5233ba58e3bcc46cdcefb5a07904ead0092cc088e8ef1de2ae418a8f977dbba6b23a634b93abf5135504ec8adae1647042210be6e6e0c9b333c3f1d0dc906ea63eca4697823fa06cbaf999ffa6894353d0b886bc89b6d8b80d88a80b570aabd37e8bfebb692a61ef6e344b4bc5d10a4d4d7aa2b2c47935ce37c1f2143be5df3d55f9a947c1d7244d80a74e92822a7e178229d703ed770a3a2e8e07cd465d6b4fda758867bf09dcbf050203796ca9a6926196f13d8a5d034f566522954999ab327307189e0791866385a3eede8b8485d6c673ca69452d0a7ed6a32142b74115cd39c797e48f38111b309a3b5a122fff1c8afbfa7eac2dcac8cf225c971b88a49e845447ccfc634341e2eeb214ab57de15ec8de38300871207d8bf98a4b9a44642679a67fc1792a46bc051cbdceb15b4355f56233ea87dd6613afa535b333104292e946ac29b73d04be3b83a0a6afd275fc02d99fa0a0b1796275b45aee6fbf801f5394fd5bb2670d18bba553e533d39d0e66ff194a7555bd23ce14ecc97ebd99facaaeb8a0d0e088d2b9bebbc48b4fe32da39a310e28150936dc5e86bab264baed9721beec5a6ab21db810f1bf539d4e6283b7a382984595eabb42b21aef0a1186d66c988132b0fcd17ebf0bf9347d64e334e165d1e8107f6b49403d77516f55e973469ec6d3ca2ecfa2df3c7a82d08ce5875e4a0997ab9c4189e1b4c37b5567fa7731d6981d96e9fdc35abe9ae1a4ab30c5b329cc617a2f92cb91109738a7a41da00c48eeefd6e003d3e25de538bf85d83a4610c0f86e7af160703666e6fb525122ecbacd13242679cb02298777001fa2ae853ec73eb581229400c93408644bd64cac57854113aff1fff6855e2632e1e47bd145865a142c9ca2000b2595fd4edc7a4b4cced9dd87a596a9e245c25fc87a91d676fa0b02a237f895df9dbf2eb099a60fadc4b8829bbf7aaf94d1fdd10dc560244f0d6f5394318497eeac7cceef0bfd8316914f766396d9a5a7cf907866f85ac6e188133614490e1031dbb8abb003b2fe2995a28fac84d07dde5987a981101087606d6b4d4fc1bf7b3cf56f667ffdfc28adfefe6dfce01579859b662a189306cb048bb4b8d66fa9861e83fb28c325b89abd6838e71e5ebeead3e014f40b48a36f1d468a4a24954f571f4972afdce0d6f9dfea1cb500b6212bbac96e7a3193691eb0823a48e6f49b63eb4b571dc1b60654b6a882d84ec4a10b5faff8c0e71bf1548578a8bb4b772a9dbd1a76792e4186ccaf692a5cfeed5414be448da61b1abed7d58acf60c60022d6f87f25b291c226bd22c9445d15e2dabcdebc6fc91d780493865f4dfe420932d9a106e81f254d97b91d00efba45517edea7c8dbf369a32c9d04a5d141d3427c68b19f189af86b3e2fa8ff622a14947d4a5c4dcd12d3e12c714b32075dd9a9c35e8edd715901559efabebda589fd123d0a7ad33bb67f353bd01c4ef51b26a187986edf0ad892b4c71b2ceace37f103dfa8e933bc422a2799dce9b7ff3de92b578e065b79a8e7d4c028002f5b667886bb783bef181f4040c5b03050f9ce2b9cda0787ce21675222dfe20c40640a37058910069a0cc037ce13a2bada74027901a186b5f194792105708877eecf678aba0436c2dc304e8fc040996e488f764f3d0f52056edc69b5a6e901bb0dcc75acb8acc9f22249961cc5df3d10992a32d724699120a264cddf1450504feb09d82b0181e0148f7ea9ba61e99bcaadef0912e1c545ba9b97a93c9cf5a8c29d3ef2a2608a32684b30ee7d43e6006e81c37b636616e736a019e26079d3025b1c5a3997fd9021634627964a01786891218711daf4812cda28892fd4803dc5ab334f18355cae65eb68924ea9fae67b74ade42b96ebd43010dbd0536f7224fff388433de015721b73c60d4dfbe1101100efe6e69965fcbc8eb442a233654b94f79ac0dd967612fafff60141e1fb714a3e88147072c2b44ac434421eb5295a9ea7752abfd6dfe4e10760f0f1e6e486172d8d4b092e043d085c800a58f5c6882e37099f21565a04ff5c12ad4d716b30164d8951f6cfa56c93388fad772ac2fcbb80276a235fb4369f01c77266f2286b61510eebeccf4a610f995c850b2ca952c27875801b692f8c1ebb61758c44f97ca4628837ab1f6807b57ba56c1b2e39e1a002dc724f06a3fb1510f18b37b0b48dfc21d453ec3a576fcd3302ce89f313ff2aa895f0103e11b3c01291c112a4d9b5f67b48767dbbceb8e1a0393dc8fa7b0b7304a02e30612cee891cad631778726124860518fae5a1b162aac95a6a3aca66e1dfaded70547e4d934bb01034038a23f63e2695f554cda78d42808c750ea5dd3c7c34e74fefaa93a91ca66a472f2c1f8a1de3c6e876fb7721105685639cf82ee003704637125e9177cfd964acec7bc1474ecbb0283e317a03696bcff64e4bf6e58e3893c7fe4d41886690b29c2d6f32ce57ca25559c3739e14af58af1d96f581e469f146d727ed4ff89425f4be0f5384ccfd5941f6c859d6d532126dcf4529564be166d880b4d5b5c617173778197afc8d3dddfec020c17373d494a5461676c7b8c99a3eef2f3f52c2d304160696c7a7e8384919a9da1a7a9ddff071016172229405d707cadbedbdfec000000000000000000000010233645""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
d7910e2ff97acc1d1ab59e023ffe199ab92906dfd6ab2e463731ae484d0393edabdcd6ede796a718c4421fb97c22ed9634ee00dd4b97beb6045c3239c48027aa536f568fe384526ca7595031d0a9f254a7059f5f9654d6bb94535445cac6b0d0a55e26160f6d8dd8bef00d1bfed6c333946e5a23ca8ffdabde68ffa4ae1792cd8debce255f99a305d4cb77145f929d4fda712b0f595486ab1b2efc45818923fb11c1d96faff901f631dfa41a112e042b57f5ee2df7a8924888a22de6000d749babc1662c29901acf7289c893694bc3b09d4148438f8bb532faac79f335287c54413924682b3ab01c01082187530562ead6ac24b7a2a1e91f1f3ebcdfcfb233b22a2f250d3aa97240ca78e21be8e8709807b2c7ff115e4e1f5cd5a899f3466dbad9bd1ed59d305f5cd4d84e4904cc9f28d9930e799d745c3e6089804182e0c18d6a3db171812f8ab1ccb08db164f43893477f6c3b056dbb043b9b3e4e6164688436d6a9384d6aa09ec8005db3e5e490c2b8a8445d8b85b9afa01cf9985c17316341b8f37d2a35aa5239a4fb41a4b1564f7b0ab44f01915e1db94ae448f20f295fc3c3aa5fec745f434d1b9990701fa54f2a18395b15602952b18a10a1aba1e02c53dd9ec4e736e9c3289452f0c179c15ab49ad63c87bc1d74a1ac5405bfa70e21bca11904991bb37cc3e5d4c6efa43f6e697cb761a85e3c0ee987d39e2250a5c09428ee71957575a468dff29301ce72c06c5893eeed5d3128e8dad4f880fb0ec59ff3df2b0a8321b8a3015cb55b52c38ce16a8f49353ef4731c38ed0e747ddd63348e89763b91bc6b4e37616978777a5f57f021868e0c2a75dbefa8eafcffb53fb9732d3439c2234a913cd54ca5d973ac9f07086b45c62ab7ca99133932f638226e31e6aa59f458a45ea8f240e95546b069329c2095d9c9b182094adfc99a1f800cf3894c9a1e034bd00a635c5847d633b6e4d99b7ebeef00b18ea44a90809676feede9dd62ad8585cdf4f8ca5e9c5c236d88c9d19a9c5bef612bb815b4c10b782b40cfc59768138b3336ca4e5a9de60d20280212e17f674d524a51a5018dbc2991599b6547661314c1f38b86b6eef5f1de03a86d95bc919e6becfe9d2c0d646eaaaf173938b7698f4cffc9cf33c189f6174feb11073b4314ed0cf5154c5813c353c06f4f18fb36173f7fb543510168bdc96a47f0c088b9de3d43e63f13e4be4d8e351bb3e27da62c37df0c5d461da8d30b1350d7615f591205d3a0308427498da258658364408e1e59849058a1708f7683a07b8f6daec05142ed4c5ed5b9f59cf6fdd74138702a8d799ce3331b996770873afcc15de2a546bac34f866483b418207ba6e5f1ccf126cbc0456def3c1cbd2b5ebbeecb61d37c8ab2cd413fe3e42cebf8b0bd903426a682977a7d81f117cfbe82a75381af76a58253dadb8e1f2d3e2fc20f6b2b3bd106950ef08f8cfb140900cc29d00265797ac8dd7727e354c8caedbd2f305139127b3d27694c53243a25ddcd67c2ca83f9753acb061c1a0ac52295c28732dd1c4437b6b4fe3480b6b8e3b15e2bca16a7a51492105256f1504718a1954492f6e340177a71989bf5b77f24e608674b550287aa8200a96469a8fae17147d802e6efccaeae8195d2cb5b88ed045359df4820326e5238e376d42f69600b9a7ab03fa9da7f8e32eac544c51aabf8524a108900b8ed928d36742c3ea7824bc2f8f25ed52da46852b728d36c017462b337f4a21ee33d7ba0e43fdef3aed3bd07ccc81f36c62dc3495c22134eabdcd3ffc75ad8ebd59746497eb32ebbb964f50112ee4cf76dca1f467585d372dcb37132770291dfece7be819cb092ea229e"""),
|
|
TestUtils.hexDecode("""
|
|
3F1B179FA452CFFC1F4776B275BC9DC61A4448989A5C74AA4F6A42748E49DF12AA62C5DA238BAB9F4309D563EAFD739B54E8957C0E91DB05F63B2A50F11205F5AB60B0E857F1AEAFC0562A76626AE579BA3387943E8B735A4B1CCBD23A6CF56D7F38CDCF772ECFDB7CD40781EC2622C10D65BCE780852D7930281726CC2B83C8D8179D842CF3DE761B071A6B04A383624398FEBE34CD841CBDF9C256A5EAE3973F0C256F89665A0B23F0B505A2EA73F37EBC11AFC2C3D4FD8626EB86FF0267D00DBC567796011E5548C08208CB0B43A880C1590CBBF0549683BC71A8BBA2CCA5F98011E592F3B5D7C8CCA0165A58BAF8CEA629CBA860511EA2E86B4CD9E721E8D7DC608504114EA98D016C0C0EF67EEF084B8FDD8BA4825A0615F7E09C42D935D9AF0DD847C2435D84B4702ABA573499C9088EB21CFB97E5B5A847476FD25EFE2C2763429048F797FDACD8238937024E5D66B3FB40055C3DF19E213E5941095CD8FA62BCA591007D03CFB879388983D6E7A189782F36F88EE409D490C5FA66B62510AD0D0EE9EFE6DFE23139944046C62EE639C0F82E6D850770A69577DF6034084DB97E4FB2BD206281A79CBBFFFF8A9E4B70252F6F03DE8FFDBFCB0A5267877FED3893CBE5119F0C6930FC0DFD82C63CB1E7DE66DF2141E184646151CA8A927DB49A3EC63B3B862AD60551B0E562F35E109594E4E43B192BFECF066B3C7612BAE0E170F0E1D7D246CCC3A2F94D3FB08BCF9DC7DC44735E258B1F9D0D8152EE79FF9EF095EEC3FCD872D9584361A44B9BDC88BE2AEF1158D1765EB4DEAF441F2407039E98DB8D148DC8B7EE9C44D5833FFE4C52A077F57D9E36CB220251C58F61759D18E4E449E72F29351F6CB08F9D996005A33EA695C21FE883E1C3BC3DC3E8239F2BE16FE445A18AF83639156521188EDF3F15ADB300A17F88C829EB72275F6F35D2D1A72B79A01A50F1A63741A8B1ACCC35E49D331DF670D30DE8855FF27C9F6D7BBD16CDE4C4C4DD48CAA971758D714E89DDEEC7CCEBF2E89F8CF03D7E631B9A18ACCF19FF35AA24AB6A1E10DF105FFE2603C30E16B7194AD615038FE96F4767DB8882D48C97514CEC057EE636C9FEA31BDAADC5CAF6239A805BB05081962A2A5054D9DDB47AD9D3C98D053A5199A687668425139998BCB466364F656B1AD9F13FCF7FDC50652841EE475D86AB89D0CFC01C6B5B876AF9D0312A43DCBBC71B2714B0C3226967A3D1E0AD7E9368EDDEA9120B2C8641EEA203F2E943F43708EE6CDBC6748A33E3DBEDA2AC492A6DEBB9751E7AE4AA33F6ED893AF7054454467E29D7EB7F2163FD24F7B5607C2E77DDFAF72E983AB532C6585AE8D78757DA904D1FDBC10768E3E70D582F17708B51D561C24EE0D5A26559EADF5463097155540F26EBCE03D89F49D7033AA00E1DA5ACBDF148DDABEAB739EDDF99A6B2BBEB48F83E3516380FC7AA9FFACA8DDB53388485061EF5B94E92443C24DDCA823E44A29116F346A22BB3DCE7022C3E2EF35ECAA91CE5F65D7C5EEC85D741ECEBAEACCB39F881391EE2A06BFD7B72173B171B7D11C8792F0A7D9A125011294296B157591A675649716F92234BF074F78EAEFDAE1AD79E4208C6338F42F2A9B105EC5C717301C638C63555AF0A81F63D0CDD04F9C22E2FF223CA5AE1A01C7FC61E9DA4412E80D493A7C0DD49CAC10C62A7D3ABC1B9C74EAA2D8AF248946EF8A37F1F7017E49D11B89EBEC111D85D7C1512EF4F99BFFEE68FB588DF3F39735169D1B5A647D71F52F76C6BC09F5703320DC92BBBE6D7CA592566483636957D235F5D18150B6A4641CED6276319244CD8EBBF74BC5DD3AF82E6C1118D19ED291ECF84E4EC2FEFF28286898E9659B01A37F4612460B34DA8444A4805FDEDCCCA5D6D8013335B4139101F28090517FACAEBBEFE59E44A969FE3B8402D690012AB908EA590249BD9354D456EF65331608478B2050F985C5903FDA5AF0D918E7F7E167C3A669B727DF0CE96B63D4D944493C5D2BCE97F2827CAF54103A18CA8CC0483BC8B98C42657349B8438C0274E4401463CB55E93023BA114FF8CF3A718740756DD8C92958BD07A304FECBACA3CCA8135AAB901AF23E1104E202395A08784873E03FCF2D07AAB003E6581741389C238942D7A2B9FB30B53CF5D0C408C0EDFB1C4FF448D745FAFB0D659B4BB76B16D5B61B0A38039488682907151802A815AF220F82680E523E838ADB47425369CC421DD36C2E60100A9EA7F29B05D985D644A7FEA573BD24B922396A481E33306AC41CEE9DD8ECCD9DD7833F8CC77477EDC2E97A72CE2DD930BBBC58FBFDE78DDE34CA1F8DC758CFCF2ABCD35CEDE0657B35583F9C016524D3AAA5E698BBF85AAAD01D7D3CFFAD4602858BD7E2F173D6A24504E448926DEBA1F70F3B0D5B454B02AFC4D0C482BA8019A0C209ED071BD2D5B341EE06FAFA7FB0D1FFE77FC6F6C49F78EEFEC44999E4330BDF33021EBD91DE8EF2042FE4C3F19E992A5E66FD9BF8E3D428AAA8FA51C7C761C2CAEC8908DB3066D50BBFDA98B82387E92611514605D6CBCC0AF9FE08B39AA1DEC89CE77987BF3BBFBCF362B4AFDF12A8A1ADEC69962A6FB26610C816F023D87E648A77DACC3997127AF770658921DCD300EE2C8C0916593067B3B31ED1B6B73D68EBE68CB22386DE39E57FFF6AD766193F99CDA751316A5B0729FE5307C107FAF6DB4CEF4B1C6CDE957DCD6361606A6606BAEFD9A1AE08A5DB21991F022C4BF758D16FD53D6CD41F637F5569D7357CA048F07F53C850CC56A07A4C2F3BD04DEAE79498EE10B366861EA82A7E04B9202750D4FF4017239BF1BF7088A3F2E2C79DED5A12F75CDD754840868754428BD7392E4F01F36E3B450A9BE5BB95FBA71C960C7D09DBF24E6662C86D8B5C3E37D76B16845B0F88C40AE7360545B3304DA5CBD2B58C29F6EDBD794E9AC779227B0FD198EBE3A172FF4B8896F0C9BFB7A4FD9FE6ADC73E097046FA25CDFEC45CA1E7FFC4FD582DDD8C79A9F3959A4DD7E3473D6F242B0A6AD4DEF109C12DEC994F2E313EA1930ED25CB401B82212E86150BB53BA88138AE3269157FC2A7A919E21CC068E0B9E934701B572AF0E20FC2CDB2B7452CC1E5545AC4CDD34EA0097CF531FD92E3FC38CC50E1FC8ED59272FF3D631FCC239E4AE0AFA46419863A166DAA2CBC63E24C26ED7EDAE476A194F8BFDD540D640DB3A8B294E0DF0AEAB7A735589E23CE524F534AC82D80CC51DFC08EAE4FD02E6F6E0BCDFA0FB23697EE1AFFA735566223A70EAD827DD31881A3C2471677F905B64E6AAE00467561FDD6C79B45016F1326D705A854877DD91D0B147071B00C5F8A600116487D39284F6334FF56F124951333F723D68465B765B32B396FC4C432D51E8C6A9782461EFADC2CB93EE38D4945833435E2E27E17CA98998F9B33057B1C73E2E43B6A184868DA05559B3050FF42C76D7440E1A5B803C8D4B0CBAFF9FF31C7E98FE2D011B3F87416889A81DF9F48643E943336430602C5B44C1D11BC7F62A0D67BCF9964815CA0AB83E7A87DB714F2C1872E5B9F0843B82846516E54A3F7FE311839F4910AEC6CF0D23F86BF2B0B05BB71B5B47E93B80F7060A350EE4D73EA09A6D489BDD064763CACEF5818B319CC973FBBC78E01A505A2F6C4F6812819E02A573AD8F7A345763943B623995B0634562479072D9E42437FCB2D02479DBAF2D088B31EE870F11047E965D04524D0CFF90B943B1BE969DE752249E8B48C609F14FC48692BFF40EA6095F1967DB766C8B4E18FA73DCFEF18F2DE1D295B51A63880E288ACED85B188B3D10A0B025BBD934BA43A5AC5E1829DA836EFDC88F4BC6BA0F4F23A4AB16DEF3B5488BF6C974EE1BBA51D17BD472C731DD35D5B74EDDD3C9177A3503D783968BCF8A1F2549F70069164C965304DE2434530B3841A2AE7DD47DC5FDD9DE046840B4D65A08A71A3D15778865CCA2418F154403183FD44B622982C64F771C87E18C09489493E378476B3B1C8D14C8009ABD3D1A51CF806189496A4D70FE857822049D3DCD4CFECC2F95D2A8A16D94DC6703B4C4EF3E8C7EB9D6859350131E1A03EC8A21E13F045F822C48EE3E3A481EECCA508F189954AC267E6CD19C80F8688410E2E97C71A6C792DD6E33EAB2FD16B82214588B923AF6C6069387F6A72CE06033913B50F0310112DC2143802AA2CA066388C96158AC154C33E9BD72C993B410FE5E9D7CF37A30EB85A127A7773ABFB416419A5B4DDECEC10E2EDB312C86C3F3C8BACADA66D057FDD40740176D137B1F1ADA098D978CDBB938F45D4B7814F2C5B894CAE249CA8E1FDF31E81997F7C55B7A43461F5C7C9893AD0494F4F0272FBC20D80F327EE55250F9560A301078BDCDE94D72A7D113ADC7C739D7AC2B8775D961F89245C5AEA8ECEB1732FA345FCD84A0C07C65F091B4B32DC4E117D24D782C404E8FDDFD6E9E65B3633985D6DB8CA841B9F9A3B3C617F1D69FB454045C5024AD09C5C1080F3EAA64202C08838B42E218F56422722536160F97ED3C08F285EF7BCD1119BDA59DB5EC6BC8E9DC1789B3CBCD469A4BCBE1CE237366A5B51B062D0A08201D4F0EAF6F8FBFFE53F35999763DA2470F2F9FE79BDA60285D052D65DABFBC43659DC76602DC662A3357BC3E4BD07BC32AE5B5E94D7DBDE4B5117BD5A9E3461021A569E200CD3CC518ED6559BF2539D8DAD74920DFEDE8DF8FD8333FA17F0798A17B5385A9569A640685D7365D3DBCE8411D44B17BF79B852B1348AB31335AE013B2877C1D8AF62F88C5186B7313F2C8736472FC5F2B4B38F761009F7623292EF14A4A4006305CC419A3ECC73082F63BB2CECE6A624C2A6DF29DBC6A4F0FD3658C58EE694FA58741DED54889994DC6A3DB4FAF5998B577EFA399E58D822B99623D76050736C17B5218671FDA3BCDF7E81B3E85D87200DB9150253ACB07AFA8FEAF74578125E1E26128116A7446C804DE54FD2D2B1A48E684F73AE91932A37372DB66A230AC4CD54869A0115895D2CC494E6D6E8B12845551B4F3DE0B3A4C114979F0471311434BB3784FAF7F9A9B88D536235543ECED732289B383E8005D98192FBBF41EA8026CA3A14B6895A6EF0548EBEE58C25530F56E0EFF157DF6ED0ED0D5565E9FD474B38EF5BA74D24B82219F317AD51F3E7D6F8E4BD8836B91525E162DB417C87E36B3C0FD874FB4BF4136926AA6D045033C94FD1EDCD69835A116357F341372148C4601CFD84BC36A8E5B2260B90CA797CD5A41362C44B4488399394AAA431A63A74B774E68025D7DCB1963911F2BDEEA60DFB24E87196FF38479D235C98E83F1FC419C87F708677F98C84F9C4848B255DEF2D92E3506A533D36E56DF81F6461AB5BBE9D171ADDD39FDE7552C5D4351DB59543C0FA939ADD6130E25D4326566FDF49CDFAA240BBA0B027257D2ECB83209329944E8F44AB785560DED2BA8EFBC55CA31E48F4C94749E4D205A50BEF3E3F039DEB3EECB213FE92C1C3E98A9F72B6CC316D6C0B87BE7F688000A2433E3A184A68722D44C7F6C90F2AD0B248AFC9E57448E3450888A875CB3006E27C232963740B985484E7FEB07775F4B4FD89AF6F627CC56CA1AF23E3BDF61443786D3F04DECD3CF71E2C6139B584F52B6B656CE0737F50BB270830B102B781E621B3356CA16019696A23EEB238ED74D160269A3EDD35F7ADD9E065F836A61A0CDF99272956555106A349166B2C299B8D0066581DC3608048DD8BC2F267BDB2808E1ADCD37A7538B9435E9E5D7ED4389BD2CCB6E926A927BC6DA19E8E0E946442A6943F65C56E5AB7507FC6EA1DEDEA7C1AD087CC005914CE80A241D42C88380A49BC4B6850536C5A99B6423B77A75FAF76CB17479EADFEF1FC90B832C8F36D92BA3E927C9D60473117267AFE4B115E39D50AC7991BF248DB38E8C99784848013B48D4CD6E034B93E643239E78936DAC6283DB748062220071473B0579FAC64510D033525D786778C53CEBC3BF95C4FE9406943E9D68E17EAB3245C57C00D0C206E3343D8201A2F6C278DD61D0CD42B71CB7064ACCDD38551DC554007F29E1929EBC81025CD1A5AA41510BC5CDFF340F42C4FF6DA37F8E97F5911F37ABF457DE3EAB6114DC858C0C14B9BA5B652DF63D0CFFF4D6F8103E0FD15D87D8EDCA53FBBC70E3B42C410F379BF77DD17F6FF57D7A0D01FFE0044F226F8D65DBCD1803928B29CB6AAB703A0EFFE4EB47329D9D373954F0F15CEF2577EB8F34665FFF2C774EB07F0CA72ED27AFE6EDF158C3AA193F3B5CAF99F52430A3662997DEB386DCF0A6781E42180ECF44E9043AFE95BDA84FD1F9EBDCE26EEC0A4A08D8423111B320EB87156BFAEB3827389108E12E7AAB3F6CC8EF67A7C877BCE3192E503608D6F1E5697941FC1418C16093A55A2ACF2378590F4B0702998A65C8127F13AC98BADEEB32B152F3054EB7D0F200322E40CE632CDAE8F0E6C22497BB6D464ACBE9B461C5D39AF9334F5342FF31C9273146D20F5D4BFC61F980B1862BE4A147474DE89A1A3278004F2CAE293CE2709748507C5DB48D98B484CE933DD3E925E1788F2470C91177ADA3869DF6FF81308DBE846F50C51AD66CBEB2AC91DF1C86EC22ADAA6C702F1CB7A141778BF957663060725A5AD6478E22FC959FE5C918EF1A11964E66B1910018DF4698543CD3015E9876AACE37988370135BFD7047FBFD3996B45EFAB6FFA70A4191F259B8A27EFA05E7E1C75285CF70910465589B41A9D29F51F7BBCE06457A3DFC540608157479B499B2F0CD9D8A8D6F2C01FC79E5079597FB6E2D1C3394B8D8AF65DD133F9D9300DF3DA3D740CD0E7E13EF62BE1D29A3DA6745A5A87558F23D89319BAB09A15F8FC01AA388E1FDDCA117A27426D142094A11E6B49E2C541A82C685D41D6E2520881534012774B4C01CE3D2FD8FDAB8C25E4F0AD1292974C4C141173CA219C07314314FDF94A05955E210DE13F0165C990227EEDDE23A52D7F4C8A181C996D0FAF6C313EB74BBEA4C2CEC0B7B01698C63C2E1D37313B637271DC49A7EED8542EE8BDF7C7D791F7BD59A029419616F9C8F478F060B855CDA73418D0AF090844FC0066DEA9DF8D4F3C9ED58CFED2A78B427B42B033C46485B767D75526DE8682D6AF0BE91169650BA4ACC4D54E0D357E993FAF358BEEE3F7F988381EDB31FBF174239A345130BAE1B0DEAF27BC5E1DFF86B29712CFFAB670D35D19DC5B25DA43D481336C0CCC2120427F30326FC74503548344B585C082A78F96F072510D50E1110EEF01617282CB681CD352A23607C3CF7AD9AC06FB52B38294DE8F87894D25C1D278678B048E3E3F4BA0D884154C5E16780BAE2322C389667A15EFB0B21718F56767EE942E4BCB190CDECA74C92DA8848F41AEA2328D29B10C95C6DFA74B0E162591B1BDC0ED6826ADD0B04C7495FC30E586FBC03D4E871915AF71866278F9CD1B4F1AC56E8E1B7B11DBF0C9A64F608E1C3958910829654057103BEC687A02AE9A568BE514187A3E27F3F9928EEE29519BDA0065179423A7242EDDD8CC337F0B7E7FB7CF90FC682C9E60253BD0997F34F9081FD785712E52262CD17C3508AE4D2FDA3BFE232269ABB185E635E659D405AB12E17A80AEE5BA7DDAF1FAA819A284A60B85B49F1A57DA72A0866B2B9C2D28178995E79D4458B58EDB187B0CDC5C37F111D20371FB8F410A7EBED95474859645FED6F451A396781EF7A02E6B52593189EADFB1226316FE8DF79B23CC67BD2EF973CD561DD612D0C3047698EA0D3895A28B4111938F0A0354E4DA7484697C85908A3BA3E80BCCCAFC73303C767BD3587C1F9D48FD4DB93517A561DAA10F53F330ED14CD65B4A54FC43E5F5CB421B8B6CF7B83D86CBD72A55791588D4B81094BDFE45E3F32A2C3FFE809F66FF310D66032AD6BAA5B33E79F1C476029A49D49CAAE427D8A81EB642B15EF0C544C9EECB7CAFD2A854BA79E4D7EE01A96CDE9EEF45E430EEFD8A16D5D22B751F981667F36DE2E139391980DAD22462BFF4896D277D89DCACBD5CAE5EE90BC2D5954C083AADF632D9051B782190ED4AABE8FFE195000A6BA05115EAA0BCE755B23B10C81DCF4BBED61E6D31E9292DC1A7FD6B453EBEFDE55D6AD8866CCD50473705A24F519548172D3D9F92E668D679D782B7F1041E5A558A625D65E679FC75B15499BFA304435FEE6F6498138848BAD0BFFF6942029BD0C5465395F5368692D6B21B2E22A638D6EBFAF3A0EF1F9BDEF8529C6D0BD328CC82BC66DCDB2F5AE20F53B8AF66400D6C2C0A3C6BCE1E8D2B222FC54F1896E58F61816E301365E12866C1BE7C4BBE0DBDA2B504F0628A4DF1EC7942BC58C0A4CED0046D73FEAF2231FB9FF61C0F7AA564EC1E10BD65B693CFF56DDF3596DDC85CDECDF7F123F9DCB27269A7F65A435ECCAFD89A211C829BC7F5916DDA61959AA296505F6D46543D863F2D3F007D8960634841CB317F5EAC3D3A3E4561801CDFB269257FBAA6A60E7A0A1980C9BFD6053BF2EEF7414704C7160A051355CF48A0C0F6FFD683C453513F8212364775B7424D9315A920DCD5B140A8440EF7E5908D4061F580022399509C0ED416F945705A19FDF8E65C8802B67701FA1D15F06013990C7BB8D0D0404679713222924DB33BC659FE58F82A99BB1AC551426A13C2CF316664AC8037B41755F110F6441C7BC9446430D7BF917AFDB8FBEF84E895388A68763E0E16F89FF630BDE9732852B70A4A3AD8A29D2A4670757AA4202DE5D53E653848FB26C6031D07CD010501F0785D1B1D69BED49DC3B07265D51A15A7C432C3EA63A0B0D228B4F8AD4060DBB8D54B94BAC7F2179829C8D9F9CE4F7BFCCB472EDCBED73B0D18E3108156FE659CAA40B45016E0EFF20F81C29EADC8B638364FACA6FC85F98A9BAA9BB7E5261AEC6786C18487B14B77ED2B62B762D6B8B39AF5A870EACD236CC53C016158DD1E71382475657C512EDEC0977320F1BEC79D0CF39403975210DCEC3ED5B58F"""),
|
|
TestUtils.hexDecode("""
|
|
e870f21e348b630a1326a0334c872302d0a6da460dc9a0bedb6daebc027b22b9b332c967a2f5991252bccc646e484b83d4fbbaf2887629032de5b3e1b86002cb089bbc58e35737f8c07a694b5cfd38ee3976fd25244e6acb2ccaed20d926af4c9c7526475cb89a72a26ee9b2a25c29128d53446f797344d3eff20d91eba8ba9d02f939d38a775911604124896569964fe5f835df7cbf044f2565a32e017caa93a8848f7c4fff257b885374a6af0df150b79488551200332d176955f304d86340a6df8f98cf93dc12909e1693ce62de02192e63b8af668a0fbb2c345bcfb9b5151131b7b4c7d7eeea48666a8219d5f8b0cc430443ea3d531dbaa6360e51a842fbe1e40ec5fc9ecf9bf172570bf8b31399ba8f12f3b83c40205953414caf7324182657e0fbcc2fffff801c52259294f0b23eeb5ef14c34d955b92ae782739a9f9dae5eb03af4bf4e911c7e758cba1a0f1d0ac1c7256e5d5fae242312f18f6747c5b56d907a49151080485999605246550a6ce8e6341bbd1ec122b179b3102a2673c163ed7174089c10b29cf33b9b5fd1ba22dc73a164404804faed60958c6faa6a09b03dd2eed0fa8782212f1da486543ffc688e37bd43621ab857aba0b13c1e0969a482ce92e00d62ebec1870188734135b0419cb3b9f3a9fcdd68b5b4a53169ae0bc4959462b8eed39264c0b0b34e0595c7a719672abedad01638f3ebfe9e4a460cec890339595a9699db82819723ba08c7bc82080f8989d3d8709386ed1c9fc791ae0cf954e3a897a93d8e235eeb69ae131a912736fecdbe1ba34eb03206110fdb1f81e71dceea673fbb98886ee0d94cb4d76e1e94278b8f2501fea2718466802d3d4a068a2ec53029018df3eb088246b767043f843f79b5ae5537924a9b5e5bd46b19bd7dcf7f14d4c9f4dd05b2c941377434cb37d80a899ee97a5d68345cdec8a43cfef1f286c0102c2d8c9b0d07adef966992dc7ce8b9606917e238625707393552ba9c01c4e72f6e3b533a734c0d60e3a2aba08a823a12a45263b61402d8e62da3e5f5a5c12e0cdee0d255551b8af7d500b547699f72b31a91519891850e4109f4ef380757013fd57a0fa0ec0721dbe825d4cce624cdd8b7f7cf64fb31332f374f6c470b9b8a5171f25d005da4e184665430e7ae553caf2ef9eba994f34b04ed6886c1b768f03868522959fdb164e8ee825f08c4a4dce01de6686695b5dfe6102c7463ab54b084c7fb1366a0b292898c0d7499a3a6ae1995bd2139f7d7c84a0f96b497bb2306028389b983f2e02a2fcfd3c5f8a0b4d2e334d4f3a460829efca41806ba82f2e5ef585531a3f1ff67617ec112f613acafb8420a1cf6230468601cd8b0807d975065fd36aefe77111a5a72ee622da403a51194f8467a122e408a0c3998a3a7f18c2f7774915289a1522f5670527e63e6bde7ee0a84750099d949ff87c6dde67de9cb220518ccda5135d3bf58a42b7d96d14dba0ab87e79547888f6e87b4bb9ed754133d16444eca15045ba54026767e93114e8a3a75a1ff65d0f03c667a8222248119fc8994a84fdf73817bc2d61d6b764d86c69d68b7ca3ae85031181204c39085af1c7efd687fb91d00255dcc934d47228c714cbdc66d4b418112ff0ddc030dab0f4edbcb0309419120ac944e15ddedea5cd3a1d62abdfd8729edcf40d43231e378b2c69670c59c30b4218e7b7f2dcc0ded133b585ad673bed77194b98965fd4a04d93db53ce26128e481de6053a14f40b34f60a169e26e99b4b29979c03e4880fe84474f11627620d196369592c0cdd88c3639c1346d3ee265e550d470b8440c5676387769382ad4b57fac799926cba49f042833301834033d668a4f0e95e2bfdbf295ee9732e30a75b1a76d7a4f0c12029514252d98bcc4330fc2a3172bfe72c8f8202a308de53c4587a17c5e149c92ffb88b79d8b07962cdf91f0310d457c7eff09485a01481313b2aebd081c49b47558c252202b4639dce456a4e786db6a91a24a032d47d1cf9d37969d07e2acfce0067a20994310948821510051ea1ff97f0a5e88f0d36825f7a9b71d5c64d42dead04fed5f6b63dd80bc0325bef6d413644c1b5ac212bf9da2edafef2e6b6d99354470e25c5050703e524dfe08af14dd431e609be5809012ff5d0d4dc260f10fff302168b9d73c86ebc71c21d76ed34f08b12a6dc7ea174ba1c2790ad34a7b5d2e55607ab26eea6289fef0886187f43d5b98b7687b227b58692d61e6a8b9bd04a9c3a5df88e03b20c66d618a6d5a979cc0e33ca400f55918a0d2669c19817e9bc0126a406fe4816a24d06e072717435576868303e961abdef730d973768373b4f413b006c137d63fd1a7937c0ddce317078b610a5fcc1a49d83778260c088cff2cd6e35f58263d43edcb81692121d737960b77b17275765218d0b686907ddbcf0f681bd2662451dfe012db5598c061fc03920011a245c3d8fd3a8b0ee6291959a01e811957dfca6351df838ad3cffc5f28926042c1919a446cdd525d0a1b56591ee9574c16f88557d54b97cd4e077289ee304537176c4cf21e63e33203c076b00642665431183c8b6ea4c58b2d11011d1a1fcb3325a1f7cb148e0a0c70484ebfc6a460de38392761da4f101a2274b21dfd8a5b6870cefe3f1ac9fab09c49acd26de288d43326cfa68248fde5a5d0c2adf5ee4f7a87a570374aa40c904bd3052836b275feca785d29a5cf3af7df0ea226d5fa5aa33df234354a84ecfbc2e2a3d2b3cd2630b765dc0d6a7ea00884d7e805cd5b4d7219b7f5452e27b761d2734bc68d6da9b45de8b69007e6a961a73aa42eeeea30700474cbcbafb4304fac39b6dbbdd2f2a9eb5b959ef1a6efd9a41661265c70db1828f66147fdd9a7865dc9f0a605081ef41202c731184d754e499c95c19af4aaa7a018c8f1bcb1bb3ec4357bb7ccdd227f37179eadd63b10c2c10fff271a3765e9470e06fbfd3e5195ef39a52b20041507f3cc360c37608e976bc29797183feb75e61d4653e90c4a82c744b952efa874c92a675191ba7cac12479bbbe83b5a4b2e919b8e318869a9da789be9a8ae806081bee3c6376f54e5f687a2900a9e610094b6d21e4037066f9c85d65fbcfefaea7f2936aa95adf632bb83b1d5630ae48a2b8c3ffa79e44296a60125d14a5ad30e70f97e072da5b00e115313c0f3e572da51faa8741e98bc2741c8c44ab6d4d60fe0a145eec8bb91c742a0a8eb133a688d322a836a2cc4663ebf2eecfb80fdf1f95e83115d10364baa9357e1e133338b01d6ac2fc08910f7ca44ef8cfce5f5d675346417a40010b2c384a58626378819293aeb6c8cdd0141c3c404a738badafb8bec8d5e3f026405b5e6b7e99acd1d5d8e7e9fc01092d3031536062646a6d747879829295a7b8c0dce2eef5fb00000000000000000011202e47""")
|
|
)
|
|
};
|
|
|
|
static KeyGenTestCase[] KeyGenTestCases65 = new KeyGenTestCase[] {
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
796732acba3efdf731bf7c242aeeddf5eba5b131da90e36af23a3bce9c7aa93a""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
60d235ddc4f334bfd91d6b7df1a4fed84c88c2933806f13fe06ef15aed96c9e1""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
c14612e7a22ec88bb5e9dcf865776c37cd5b1c6d1b18798be80b9562ba4752e1""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
ed5bf4a40e4ce8d367598819be8ec4ed706df4d26819f69729c2acf274515c8e""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
78981182b43d78c40b828554c36d70b960a02c66490c15a4caa6a7d5f1e9ce34""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
917a2234587c5969cc1ed10d51b0dcf8b3017143ebf31687930f3e2c610a4850""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
df022c3c86b725c5f2b54196b7d68684b9fde93be78e38beaeef18195321f4e2""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
d69702e666f4086d18d3da173a6d0b44bbebfac8edad421aab72b823fc63d600""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
865f638c38f0852d2d712a708ffbd7d96f0df21071d8bfec74c2302ea4c5adba""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
741a60c9f1715c42a5a9e67b4e69e5f128372002a6c4f54ae5869500171e2541""")
|
|
)
|
|
};
|
|
|
|
static SigGenTestCase[] SigGenTestCases65 = new SigGenTestCase[] {
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
36fa0dd4a24ec6fcb09f2302dadf25bb8118be5ada70e1eb7f57b93fa96b1b84a7e94374f9fdb9452e2748558e6f5a787b2dde0cd9d68747ac506baaa454bfb065f1e500ebc68dadb6def405dad689f5d7fa5772765e8576d5edc6babeb42a69374bbc305ba09b1ab4f9820ce3a63bfa30f237af73c551924bea0f171231a1c7138517400832116516721081381534111864540573008215505304258180167218805633031837711834125446757374064802656602288551324300464424570070430775604467700373727218654382113085402384714385137710073132881352767634653213083382164661807507572063084014331381071513408847516228741575401075645618078474251072366778856403233687514470818323256487352405414024741457321505602326684655106051751226763771126438165164374510847344324473582005510013087276273103305247274346862062415125625613058163863147647838223024704832800525016847583411847321486547525343755162746617268246640865568078283725452875420148460064305561603552781415016532336383827535812536128531582855048732745734304562153661720882314551774378733337650373165711441772228701657277386017735824150430521336520550036374316583310125155614734342460731628214452004760130486772345084803242082312015236540131133778828125485315367333404602814074230332231645775734006082655405074336518265056780405423405171643707672231357803711010227186374560188573728767460207070474058460834711808584073145111570274757730536084417433361080031773164730537111576081735558366046746463012324065660876052137008052508762676453141806072122540753112240128218525337055738681721237286528627580731113241785778878812404656335421440725752111111156405682027841442788638820213821775468455868881572107124844588501722102737751182078020774402721847287133760733436178462865784183457884478713270388562378112101074746047443670038258180805476134351522560745400142355780715532180431550238645138105666571424718347700224316576316240153341251132303832382487412204627864764456730060500534645228115033152663747635135007237347168666208148716707533808368153357853523066243657213114358240560560762242824400720503468848503214451133047326042414766776505632362566828364757557628727414157415555332465830353045707545360708480663616301475251681455722668010152887031873716282756337882326408515168141310476348177234206113218677788287661680051776170836537302227562814480456821237427740234145435547342505460352122655426431817848535455552351110307364674577347661170167232588300102408838001733245265836505674067103567726335661342615280304861068871308556030576265263455076841315203671823018446077528186184441157454628072317228030475837445608207541643840387761867421333788142240721568555218641850673185763821882055574358025326482476866447683505537318274722216107033672426311407351407766566165264047443754760608262846715247610402653383732324630537084112247353840248444247113603737643465255683685837537448132411273502758336260275317671716402152714475531868478637736432604357116462758307044401162120081820772432707307585501206687567887071026881271434401570353027344416280106317363532310068331157303265448711314613062006813077352761435726341110116125784437040253348451460505741467381411200515685843585007382002820405613751758033727624146204482040301733053d1bf1b1a1af54c10411e25eb7b0de530b1e7173975fc197ef3a8a750143bb963c1e63e8442eed45f9d9d52c1cad3b07f6ef7b0b63c9ae6bfac1b846a6cd055a7fad31424db4074dfd83659df20fc75650d6300abbf78efcf70e634d1a172707520b52dab4cb90361801bb2eeb5d29c0d9f3c7679c2319fb7cb91213061bd97f48c649ea13ce226fcb0673be270f7169583ace40af1f03a14f4d16f64ddbcc68f6301ee523477248625f3293f5422241eb08ee7718bcc25a12b923b9825779f1f4f240789fd47a484e319d18008d465f5fc08cc504af12f4ce024030e148423e46e3aa78ec7ee132724d003304848675b7251d500380a613c31945cb3355761902b15d5c8a0ff5503af2587c2938f793ce14521347a2cc4be9bc8d723e3878f0e5df30801fb98bd95724eefa5c16ae55fae1d93b1a14d14d2fa3ebfd811078bed68b485f30f05b66507b20fab2b00dbc9d776bae1b3edce5d99057898491629d6d5b5229f76cdd1b3fc466d322743e43ca3b002a3d4542648155a71e274b42ccc9ea50a1199d3e72020c86c8a57d8a1e3798fd27bb505bb23818c9289d847097ba3c83c54874f2abfe416b14942623de55d874317dec351d88d97e163d729a08e7edc1be5c66ab0f4505dd3496b34271da51a8f8595591adc55cc13bbbfa9683948e511f4db8bd3a458150aae844c72bce87dffb11dd52279598f9750091a3af472666648f69348d457e60cd4d46d900a75bbe9bca3417a8eea32eb8fe46d92b6181b093ccfbc7598289641df2bc0bac8064bddfc801bd1cfdcc8e2b37edb726e1724a2c98e3a4c71ba8e389e30e68a92b50ffe7119c8c6948864f24b3a64669bbcf515aedbb4b1702147aa0e9302de84e0a9536d9528b74dee3693c21f3744c56936bdbf7cd8ef7541dc3afbf58cc3c7638762a09cd88a3a8684bd3af99640db653fef63994e6636cbe2eca91ae3943aba282b24c070b55f8a7326db2161ae3c9fc784be0ea8db00aef4eec5a468e700de2db247e98566a690e56cc8607c29df308ac4830dfa98eee2918e387df0e57a62043bbd35517f4b4c3d7fd5890b8c0a013f533c53774949c7003549211e34df5c1a97f393321b8fa8d5689c3a973c01ce454ef59a6a65b4a04a2212044c69aab73d0ecd69d81a0a275f8fa07cd50f53944e416654b47061100e89542bf9bae7224e098f934d90790296432d53e59cf766839ebf6607e712c8d4fb07a620072d4974e398194f099ea90d1a8cb78286bc6b3e9cd996f03be3ce22c3fdc96a0e01004f5df6343c84a910d5b11bd8ac6778f8747c85b59ab5db48d31cf256f316f0c9d851816e2d55661926beea6c7b5547153829a1d2c1b5e8b94d824114f7beb05780b68ef086218f3ffba3f7a471e6dd89ad3b78bc57e9d43b467c7a82fb5402013e8d99ab99fe7a63fca0e4304059d2c7906d72a546adf05294ad33d1ffefb733bf10c5bd5728ee38a645f433a7e8993c6d56f168117e428318fbb591c07cc0d1eafb990dc9a004428f4cda912bb1892ba329bd00bf7db39f2e3deb80d0cf4d3a875f0852e50dd1f6d06e440e69aabb4b0857f1b4496a5361b721b28195dc3b5db38339d7fa2c2b702269f87cf95f65194aa4de80241eca399fe71afe2e92dd57ce509f3a152036b42d058a5f1815d5764054155ff2ea857dfe894b987d9b38e59ea112a35f9618b43a7244d6006527c740563733203b6cf80c3b8aa13ef9863bf88469c1432bdf582ee1934e31d9b88aa8a195b0e491115a30b2d87df76c4c0357d37f2164db21ef1f7e4a70275499d215d2a8e345cfab9bddb5b66dc2ca37f0b5e2ea828a140ca7a4a31f5ff145d6a5be068ef2163bd93913cf837a6729f1b3009bfb3ab1fd45212ad12e2564042d9a7c27b7be2f2607b84acbb98619c5142c6f4aebf56274c1c6991a773f9170704ab0a0e1e214c94fac9fee3f2b4afd09dfbe57bece690b7849b8f7e6ed6c8dc9c031c97deae660382656d5d9fc03549039e02247cd237954380cd6b958b1e4e4f4f2fd06092810835e10ba9f1cf0f9f036445491191fe580c307f17bb9a3c9e50b8aec761a13ce38aa0271d7338a699bf5b85caba825a45e37b405e247c7cf6f0db6ed834d0514272ae00d25c70aa18d26e70e3ef19b1b9cfe002563149b4239732b9a1d3cac31183f7d588aec578b9b816e698de982da0bcfef2c2998ab639938186339119f2fe89f39327f7a77989d7bdc93a12e26e9548bc2fa14cb455baae40d96baf3749c387e1b7c297dd4c179298c5eaf0c5dd02f6febf37fd0ea45a505d9df9d32d21fe34d8bf119cd77fd469ef396180947168daa54a317bafe46e57399ea395fe8ec12a636d7700d882306a2cced9ace3db9ff5a0ce8d422cde201441f7045637b9854b83094a9b61b92202cec7cbf0aed007330e59bea1d641de6b8a0b72e175d11c32333e85ea0534d6b7316a8726b37ca55d0b66456e926d43e9396861f5ac04a6d235537d940cd765b67abce6d600b58b542664ffaf1afba5750182ddf1e965a70298fc01f2ef1b6d80132650762fcc2da1502a97784e84e9cc0096c86de42c51a07d8a20eb1e92a3e545ffca4500e1a23c2bfc220c7e02592d6cabef6652870de97c7e5dae28712ebf9361a74063320c8d90afc4b9d65ae6498010364c561816b249267f829e8eea99223f2a91ee9f30260e11cba163142f736526b97c70d7317ac2241a82befd6823351efe822cd632d1bf26cae52794489bf681420415cc70b201645bc8e4b04bec1f8420a7f13e838c50ea122fcd2f0b39aedb50a42ac99121f99db7ae23a43f00d91545c7badcc8e23e8acd366f71d6a22def8b4d031b6aca1cf59cbc8101650950a3acccecc2dd308479d7303b814ccda9b72c885b9b1f8d41bc381a3f4150f59802d24bf58b2fb6d176f4a6b74b35e4fdccb7e3e4d04430896f0c9170e422c4fa2d5ed57e83489e777ab1083f4835af038271bbc8943ba53a5247083519f21a5781b64f9d29ff49324f302dd71d28d2c02e0be75671082a31a9649512998b8d5ab1f9db850c664c878ba4dc67ea99d715e4b1d5e451d186fb51e1e57b9dade68e92e61782761ba17fcb69e522e9febe22363c617298e76d7b6e575d177e1ed0ae4391b9d5dfa4fe86c3ccf6994cd51473185cbe666919d27aeaa39453018008a5b10bf32ef08993e1ad3e27bdb643dcb9f9021567868c90749d31bfc229531779c90b695b97151011e0340a165295df9a339321ee4bc1e14c459c45435c2cbf0605b975299c6a29974cf6f6236eb5ff6c39b1d497cb030987207e3ad3e681edd3b16a91c9061cd8068436da3b157ddbc1888a6580fdc1d856a2b78f73565e7fe68b2f2e083a93966151149619cd43947c4e849e2ad613e222c394dd7b789b86370a040bd039fc95e246ebf175d45d8c0e07bf895562cfeb44a33c2744b8d52424dd0377aaa1777d0437ad04ba425552ecdb294b610ce744faab39c4e20fdd8b53ffbd66a8af0eaf265d23f9f8a"""),
|
|
TestUtils.hexDecode("""
|
|
E3D54DBA675DE7530D3854C8CDBD581C6E392F69CF9793D8C0BBAFEE7334C5878BF13B3BDCF1D993A47A7E8EDD4B6C3EC915A5E8FBF2071F112AAC41F08CCD8CC731143AFC223213212A5BD6B6A4026CFC9F7A41C08CB99F2B375D0E04FBBE00503533DFB869DE43566574B49232566E38B13CAF8C1EC1FA11CCA3DB66887996DFEE090D133B1D394F075F8286CA6CCE13C3977D929DEF5943461BD5A22D4BB5E8FB7EFE016932D02ECF4D7B7705412CA14508B13E61925EEC0B77460C4C089C83D687C8F70D141C75D6DF24FCDB64BB8C2721AAC9CE8C6FC4750C1686A7A70DF34957DCC0CE53C3F0D280CBD056D4F921FDEDB35AFCE5DBB348964AD105EEF5A1B07BD0D586B87ADA7CA7AFA93FB75AC0DE1C749C48BD6F192D6279482D3F9781290B88B095D73E728AFC186BFF0816C1DE78119D701FAD382C65ACC42B04D69412AEB255793839EFB9E5BBF6F69B7FDA27A44C04D3AA2FDC6101E9CEC6F75745F20E077EE23D652B7DE547A0FB0E3A153473BC824AC8A31A2C9493DE64B6D40185B60431B1B34EE32797CC77C45C71F4E04E849BF8DDFCF640B83130208DC2495C0CFC6C031B63B80FB45F47BFE3D25EC5B36C2700300D8223074C156C5D9887DE8C5A97BA36A84D7585CC065F20FE8DCE9E8EB814A1D5B7A3B7A3AB68D93EDBBBBF67BD70A0FC536C81C8D6E8B139C6B3B5EEAA3953464549CB38B78A15CE3D5BB4B798E6B142BC48C70C5BE61F82DB6E2EC03616999073574E6FB35D441B78DCAFF56B8CA8F473EC0543C9C69E93B97F95FCA58DAAED511F4440DB252EC18C90D2F97AD901716AD34EE103EAB0B7982994E21ED1AC4BD62ACE6DFE12C8C2CD092E7A7E37BD4E61B4CD51D980171F8D4253A4E7FCCABA0A513038276325372527621B0A3DFAECCD7CDFE98CB79C0662F5D0234AEEE9302438B778238BCA409D5908768779155D659E92D12CEEF3C2C954C3F1A4C2912E9EE994209B608A604D0CD87F79665A25E774E6DC1D8819B85852D9ADEB174C75D982DCE29FFDD24B7AAF5946A74C14A301AE09F1386AB17ACC341D6DAC040FA6527FCB8E095CD4F1651E47CE02E6ED76C085B2FABE9FF5A510E63E73EE386AC17D5C2C94C2D528B3A9C8902D10C1610BA70BA616C58D037F148E6332107DB9F64C579064F19481669C7888C21F0A3374194FF1A72FB6180DC01D29443BC52C318AB03843357A5A98B3D5CDDE9BC49D3ED29EF73CAF44A7849AC6DF4B2D353B6A562386BD480512108CA0ECD63BB3D3A0695679762F8254116D8049488BE6389FAC08916E6407944B1526BF03551504E40E6A3266D4E773E892EAC4DD5128374BA341EB4097E20A9BBD4E5EA26BE6FC325D9B71C232DCE1974928516EA2519974C82AEA5247627F802C6442B67FBC10E359672EEB9DFF768E9333A2166336FF0004DE5E7BCA55998C860FC1A86B75CBEB3FB5A5A2519D5227A6B5A7E0EE058FEE0CAE2B4AA75099FF098089F0261C443B13911CF3250CAE2F2906CB6454A20D0FFFE8C5AFB1DE7C5BA8CAAE00CD7C2D7219FC83FB158FD6D15EDC2924AB41C9B881566C538F5E38978C3182FBDD0C0C532A77A61E5B8E666B3C540DE976098D2BC68C0CDACF57E9BF1BDE8A7BFB13256BC69F2E386D8F458D303BAB781E537517AD7D0F0378D2F258B013AEA01C97A7E8CD2C3DEB203AA8D59084ACC2B09AD3C97EA613A2FBF297038B4E721665D512DDFE5C13F11DF4BDC0200BF610D57EA7232914752F75A544E01D5AE0DEFBC9E18695824058BDFCDDF4D5884840D2B55D6C2D6EDF475CA75F3EB4D0EDFAE99349684BC9C533EAD591085BD1D6D4E4F9B00A54C97244322D505AB52B2D4E0438C6AC5D2C3983BFB2359FB21174AC02156AE11EF233AF40A695854C84E620754419CF7ED9EA4FDACEFC8879B2EBC7B29CDF9C4CA2921E084486477C1452BC3BAF529DD92748E2B1B684B1103CF4C6EE11999E4121CFC7E2F3F6C7BB9C055F800DC46D78D9D94C3B20BD1B697411FF0B41E38173D2C9FF1CCA77B27384026ED2EE25223B0007D2930D700A20EC9159A66A4BBE0BD84DA52F006D7FAC6D59AB2BDE08FBCEB76A57FFEF59C077F9008A4A231FCC302E4DDAE9F3DAA55707C1EDCDE8042176DC7DC6377BEC58B236990AA6C5876D5A27942FFF7FD74B7DA1D2EC470CF71103A64FD2917AF4C45D4C59C13F58472AF408F9C5F907C7C6AE0F402B404AA40CF8D962EDEF7B7654EC8E36C645855BBECC1337EC18F0EA65933F4D07CEE15294139F479A16133D2BF412B5E46D5B06FB170F0C93DFB8AC3F7478002CA76B67A272A3224C8172CDD8A616A4C52F5FDE946CF5733583C53835EBC90DE3ECE34299D7E5434BF072F08A44905818EE9708815CED10E9043E88B6EF12BE72FC1169FF2F925C38E03B827CDE77740C7C2848AA3B09F555E2712B341E248772EFCF01B99CD5403642448B5243F35A3073A6DA7685AD42FECB05D46FC99F7D6B8EC56F39A7E7B3579FCD587E07C05BB7E1F5D49B9015375E09A9A14F2CDF049AC392139EAA3C2547426B8CBC0C4BA76C55014FCD3940FEA2631A75CD2FF5C22B8A65C9AF2DB1B831C30EDC8EB79B797E76D045EF0B8EFF8D41404F626DE8551FFA445885CA1E3C9BF05B5C39CD40E3B37CE3B58514BC70E2EA94CD694CA88C1F47AACF9B4FF6622C555AAB7C71EA210FAA9C0BF9089DC9C9DFA77C2C4A92F59BD7CD24EF4F8D5088DDBE22DE854F8966C017FB414464ED6B991E289F7E3FEA783831CCFB51E227A6DD4F5EF50963E80847FA6B350A2DCDA3C875D176342ED73BB42B416E58D1612C4D066F1207B6E16A955DCD557A9EA37A9F24CCB20E74AC4D6166ACEBCD7D651450E5D4AEA86DC89528DFEBE07B39A160160FEBBEE5B11122B4177FD04B0A49803E498F1BFFBA898BE3B26320966165E136F7F517FEA35EDF01D36831F9AB478CFF8241E01AD7570C26EA62439013F61D48797B92964903802AAAF356C6AF7645F5F4338C7EAD5AB2898C600123888AF42A2FE06FF03D81320FC08E7589E19887EC86CC1B08204C29E86CCF187B1240B81F7D375F3762CBC10F3BADCAD7431E59A4DC136440AA72628E17D2BCFF916DBC8A66B8A83A3C6400EA0CC57A82DB41BB28CEA9E9CECA1ED826719B9B62B6CED5B52FA518FE47274DC6E22E5F8398D42AB23572CD6623EC307FB7EF61892AE3196C48125605F4F09B9C0F0DBBFB9D9015D325C546CF3B1DC886AB0DEFE2C35CD39E2AFD13AEA74F787B410883EB72DB8CA7D225E6FE8143695BC0FE556C6CDDA493F92ED62A38E8F90CC4C713A4798984007A5CBF68F0CDCC01274C96A15C3C4355ADFC75F7DB0603918ED6CB4E4491A8569FB1A9AF32528F6E26B2303C7987E39015573521E024B2230BF1BB803BF2B358880F2840CC58ACE31E551C8E2A0F8349570741F8E93066C8F17608DE35AEC342415A4BFDD13A9757501F5246ECA49913D0F02EFF35F4B3D40DF97A64B0FD02709C0832C423543A850776ED9C0574C26CDAB8DB371F5F4B731E6F510BC09FCE3DBB58BBAE1074CCAC284D5F8068D2435E053A037E3ABDC957B74339EF0063D367F7556E49D2C7A7DE3616F5E8B703B7585F526E9306C59329A18E76B85303C31E3616831F2AA2B173CD0A43CDE76AE52EFB8CF3C381097D7A7598EC833A75E97AE4DD539C31B3E45216EF9C844008C28D12B12D3C7EA7FB89B3B5D20EF5C7636A8E83D6A9F8F7DF29C9716B7D92313048A7E14B9EDF77FEBA874B9410DCAEC4816D2FB57050696F5D4F0DB47C6183D447C5AFBCB948D09944F4271368542E377DEECD006779F6F7649B946E79BBF2E19AB4E93F142BB24E6D962F6648CD0BF1BE876F6F431E883105C3E86B973E30735A6FE17346ECBEED5D101EF0AAFBBB4C072BADAA2F4D517C272F2BD2190F5F8C87D961041A121D6B319EBC959AB0603096017BF7CBB74DBC74FB866358EF8C1AA5B9A10B2C524E822278627C0AC577AE9383C2A529054528E58D56699540E4931BC65A125EF4B459A7A5FC10E0324ACB641BA33C83A7E100CB00FFE0ABF6281F8942AE5490DCCA37BF464D0B061028E46E025FBD5F6DD6CA1BEBEE282B749FF5B002210916B9CDC4D903A95972FCECB9292A554AEBD821AB4CC50D5EA0A33A699FBF07F2CA520FC44D4A9581182290294A8FCC66DE3FB5B7F5EC5B267D1A0E6F84C27C02253649F5903389A0901797A7EC8B78AF12BF2B1CC22D291347A0F8D6EB2698AFCA7CB4C23EDF250A5B77E51EFFA3C675F1FA951D72467EDAF987D5B63DE4177535974BB2006AA9A8DD9E624108229B1C5735BB039CCE47162EB52DE88703A8BDB8ED409BC01DABADFD31EBB95CAD9026705DBAE5A2D06376320BCFAC17A7DAC957BFEE98480C7A111B5ED300447A21FE62448F62CCFF7DA68689A73A2EC70BD13130337EABF26A00BF86E52077EA00DA46FE7323780CF98B3E998BB30C3998017F4BEA455568FCD567086EC68ABC40113DB474C6C88B1C1C7588E7A8C8D2082D4C70DCB8FC3D8FBAC53CAE95286F13254253861567E4715B03E682E422C111169D96359EE18265C3CADBAB3AE61F03F86D096ADAE9A6C4820EBE3B61015995707695B42B67802FAC2D6FBB2B67801A3E48843EB83288AB52C29C1F112F9233860612BA015D4B7CABC19C6294F8871E2ECF6AF334DF9C8330971277E32CF1488F04B4B285AEEAA83BB81D54B6B8426439804B027822373AB99868EC068735C816521BD75DC19F79D2E2166B1A551C998318FE19F5079BAADB12732528BC8B522438AAD252C57D3899400913CD124D2DBE90A891D95900C0256D9DDBF939BADCF6E37E6783DA2A2BAAD872F6C8C11878ED6D5EE2988135A39F2DAC7CF127100C36D2D4E58B3A9B1D7341120FFCA0EED2E98E020A46F1AECBC809A21EF79E6DBCE76F96B6930107F078A5D4464CFEAC414CA41A5EE4F87CCD8868E7922A14C247885F0DA9E23A7604EDE703C2BE3633AF9CCC32B9E5F51CF51978F10A06F5D77C67927D80AE480E7E5E005401ED95467972ED87029029DA05DFBCF2F0B9D50441E8F15804B0A59D23CFC2E3C0FBFCB10B69AADF0B37C06DBF972E264C6CDE4142C04FFD9FA0AF2451F8BEC3FDE9723306085ECEFB17C591E691F9B4D4F796E293C0CD322F02B96938A5F7D1C8A7FEB94C031DE24E71020FF37E00590AE7CA48CA876AFCA2BE3723EAAD40FD27B90FE6EA039C9F3F6069FDBC70F16626A41678A31E8AD88DE9BCE8A25D43B86EBF80E5E426FE21606E67545FF8E55FA7D9802D65AFBDA79EF40DE924FD0DA7B5C8F6A2CF993FA6D27B2861C629CC9BD2E1E6AF04F88065614F7E24CDD19C88CF2D7D2B93B7408D898525E5141FF71D18DABAC186DCD432F3895A1027C92CF8613C80BD46E4758CA26C8CD92B74EEBC5FA5EDF9C9FEC54FEAC40F0944E3FA165E515A03DB57C205D383C04B2CBFF703939EF321DF8A49BC3F5B1409EA491062B7B9982277825B52C6CC8313BA05ABFFCDFA525445B1CFF773D28536A989D257967B50D7BEC4FDE5F338D2AE81BC8EC592BE93BDA0A7DD089057E675674E8B997B05D049CA3DBD60B7F3FB23BA5F4E5A48ED8535234E5C66C41B157C25B5D9EF5C8C0ED016D6B217F4B60BFD0DA223A5D40C2A403DE8268AD5E6207C54B217C2F009C5DD052266722DC21D4AD8314DE498692E3C77C9F8226A14F27D49E0DA1101E32E5B86BC0F0348A20A360A919EC863695D2EC318A61F654C9A1526AF1538F928DB76F9B14EF598F2551EE85D6E0429192C5F18D339DD5A280DD5B1A8F59EC1F2947996C7E190C87502FDF5004772224BBD1C4DD62A8DA1723EDB41176A9AF04B1F30D09050E73579364360DB4F98034FEC1B43E6E9E0226409E6AF1609FEB862D845994BC20E67010237B74DF1AB59EDF14B1623FDC990B87B929FB7E837B1ED905286A886F59B023F40B07A989EF7A99E974EBAEC49B45FEE1F405D11A641B2B150EBE854F7853F06026CB1287FD8BCEFB15D2AEA623D7C3ADAA00B35A105ABF2D8F9715BE65AFCC1381D29C5EF398F2B76FE1651348BAAC147CFAFF34778242B32A1620E0332EEC7AF5E750DFEC30A899452ADC530DD933A07748DD522AC20AE2B2889FAC3237D23C4472FC8C6B236D4A4D19F67264F54BB9B25318156B30EDF273BBF3598AF5B34BAD41585982F6039F6E488308B47EAEA5D21A91E5838F7D9CCC8F726EB2DB82D022BAF103AB2DD444489B94E8DDBA71E62AB6251DD5D5F69E44F377674A5C2B032150C32664C96C072867BB7A2DC29033E6BCCAEDDEA430E5E155DD0724FCBC0415B2AB6DFE68A2E59403B206BBE7F421FAAC53F66040C5CCCEB19F17BF000AEA7E775211E48AE04AB32B2EA470FF97707D9C073FE72A7B77D49FF8DEA36610C2A83306435861BE01DC4B20DBB8AA6CB780328DCFC2A32D74CABA83929CBC85E406E74EEDB727A2FB5BD9D304AF46225832858B295A17B9E710BD7B0B5D19DBBF4FD021EAF29F4D1B6BD7E78C8A3E3235B5D0BC687BD5B428D2318CF4330EC343566D42D17BE838EEEDF70F1E409C189DB1AE0A205D222C92A1ADD33B8E3B126AF62818A2DBE3E3C001098A986865C6B57D0B2F5579B97B6F101EB56FA839F8789F6774074185A8E0F383E9D8813CA1670D8B7586A3A1C27A3F5A3874C4E743EAE21BC519DCC430E281D2F73C23BAB948938A46FC24DA94647150DB72783AB3FAC01D834A8544F144779A51480643CB1ACCA0BF88D203F865664A5ECE18A88CE31B0D8FEEC585F9531329002D4FFABED01EF42AF52DDF08400C58D07E98046D77C7A142B513DA0EE795DD57EA43F4CE36C8F6D2862044945DC293C8D47D9F207B0344220E3177D6E17A4B39B22CCAE3C53D4E0DC87F70CBE9BF743CEACB8932DF8F84A527C9FB84C6CF5206EC2E43D1FF8E846DA06EBFFFB87BEC09C63E9633713768060ECA6259AAFE7C787F3947D5B94A6B80FF0A7A4785836F9A1396833347C13034040D1C6B1F83782AA6458328160FA04971DE04A16B6C031B2571DD131912CDF2515DD56983ED6EF3BBE5B3989E951BF0B99C5605C38181E96690487E87240059DE21BD220059E5D7E3C832FD4569BB7DF06437197CAC141E8FE5B369B542CBEED2F9025A030C54F0B5D2B1E79011CF2A0A0DB14312E352D07BC03E654AABAA95AFD30F1483B57BB1A74A0CDF8C9FDEBE4B0E156FE86BB1E21D861F8EBE0C4AB2B23E776EC01A281F6DA9BEC4C560668B4EEC71856E6CC41741DF2EBBD4E95B661EC24FE31B1DAABC9373CCBC82F3C13C31E478097259850221928C7AC6BB933A5631C896ACA87FB6F5E3EEF36EF5B9CE59F5676813A1A7E768FC9B8AD4A0A072672BA23CC21B21A95C9BBB1A40FDFEBD2D611B773DFA55F87E9AB1CE51CC42B0FE2FE15DA2D73F656CA56279AA16722ABAED5727519EA258794503F1808E4EBF056530B318B99A74886D05D042DF4D829C425C908B58162EE30A073D4BB7D27275B548E7A90E6D178DD27F67CD955270825FB96300C4645E4CD9C175C1185707D4D365955FCFD245A55D64EFB66308A47FC85592BFB755EB4AA8B78B541274E2C225DAD649C248E7F2792A56BFBEF704551588460B192DAFB9BF6798B7D4CECFA424AEAD675DCA081E60BBED670F9AB2316F5012E2290770D3323403DA5748BE6681565A713873A5386A6F1299F0E1EDB341FFF08325510A7F2FE5EB0302727D7355EE48ED5DF4316FD34833238690B91D47165CD4CC0454DA33B87569D38880AD92A92ABA0F24D99ED4CC977A2B4E37954FBE9B9320101C80A858122793062C7AC26E71BE2608DBD2A97CF4E884FD3255D008700FF3531C045750B2EAF7730BC9A51C675D94179DCFCE9EE63C1473D15B4319AA9EDFD19739CC05C5C3C8AA618FA9096C6648756F8AA74FD18A8CD81A2D248B856902B4D30182BFC2F392450F902973043EA0F5E6C872AD43A2D319F99F095808D83A8B02BD380D6C3F3DD227EAE2B4A4867713853D63CFF405621B1EEEEF00D5BA2FF254CDF97B4226334A9866A2B5BDF1F8E8AFDF1238DA9F48FC388A339F79D648CAA0A0A69D6F16E297663E5F4CF1AA95427E68D71E74C0A2FB6B689224BD9978F7A3A4505334774176FD87097D8AB454CABEE138F2CDFC6EF0F3DB14B09DD02E7FABE9F156654433B75B951AE3C196D670192004DC1924D1950AC597682EAD1C087ACB1461247DFAB3CD42279F9169B69B33435DB9D8994AC04B15D45007F0F98334AC5D783219B376D9ED7553F52CBADF159F69282050A4C843467AE7E4C4A142A61CCC4C48DC3AAC6B8E0A8D618E06C60DC924A943AF9000F896446CB62EF4E47AD6D1FBE2B8984A48ACD7C0519D6E87A33106E9A91C298808BF04E1267349334E6C2AC015A9F704B2DDB56D27A8B00D876AD00F62434095A6F7A5E9CD4B27FE09FF69019AE5F27330792CF9A1C07FBE98D23C4E615332A77DB5B6182D277DDFD7572DA75748DFB3B9315294EABE4B6D0FC3114B2AFF5537A6B05A7AA9ABB4930E17B7FD3D8F81AA2D674DB69AD967C8306FC3E1CA8BF78F446B26D8F2FD1AF6F7FD7E52867BCCC3B4DBD7227EA992DD995D77C4A2BC808C7A3E68FA433675F489BC503DB70115A824669E4B1861CDBD557A1F78F1A4B3582B2553AC23F12A4326EF943C56F847B8C679695614BBB1DDEA9CFB7D799CE42DF8B735FEB9DC119DBCA306DA4FA84A50F79905E5C2AC1F61241D88359EE6F62DC9D3E4A1593F41CC5F3C02241CE5EB62C28A547FCAADF1DD688F3DFBA870D9BED723B02B0B1CDB4C08D093C48977E0621930A668A5CD517A0EFFBE248B4AACF3009BAC0D47F49378F30A3D2C2800CD16B3C9464563DA4A7321082FAE95DE5645FCCBC5569E942B5F860A32F04082723E9E53F2D18099BEC5E23A916354198325FA8DAEAA3F6B7AB6AAD6EF12A03CBDC27B83C818F44"""),
|
|
TestUtils.hexDecode("""
|
|
7dfa6f43cf7e66cb9e8830871ea48edb07de9845daf9433d74ba10cded10ae8fb4955732aa5f11581322d945bd5b0c05ca195e5373453435602784c9e386ad0766d81c9c954614533a0ab7407d4eead99582655ed634e9a7db1458e3f91bf0c4ff63adb0b62c4e813c396d8a640d0464aff2abc80dac7a5d0329e31eb34d00c2d90142f47e1dcaa203f730de8723ff5f6e9db3dc53923c1dc413ce54f5049496cb69e1280ba7ecc7cb540a62e441c97743e196a0144db65e3c0022c9a6ec621eb1ef79c93b4b224c4a1df88afe1c4513988a9aa4d6aa2a440a9d2b3946dceb5954b0f5634af19cb9de528dfd8bfe857375a8c903b124fe6b9584fa68f56dde10114aa62aafde3159db334294c06b2774fd660a13e997403f04f5027bda9745e16684edbbdcde4155adfe34e0febff14bb05057ee9188c2f7ec829389e7fb24c24d3ceec6f37e53b592b40fbfde40cec330639e585017f79fc86c68de2d24e49b33b5368fd1c7d027503f12b339aac9a4dfbe711918e9eda6bba049154d4f3aa0519078e9ae18f5a94f31adbcc199a72a7b09de94c7a9ca94a04d016fe4051e5b778d5de31f3fb76fa68a71574fdeafcea5e72b563e99982ffcef751e8422d2750809786b57850b832c34a1ea88176861a4176a6623159d63535b5897ef1621564c1882e2ab954455cfd5eb080f9e979a580fd8ed7b02bd504c6ce24c55c1e582e524b6aaa8ef66c666807aaa994d22df7bd5c1a01b128a408b9dc762f2a5fae6a61da1ff4a2feb7e4389bf3fa4357c61acefdbe386b6e55eb3220eecc005cc0047b45bff02e87f1f55177c78c16f142c27e6e9c3ef81a5c5cc77e70695a7ca57e93da2b5c0b32a8df6a77dccb47f3c9406ac58bcac1ba5aa511e417648c4160979d7cd710d35f4b405e7b3d09d229d011013e7c84ca8d0693696b4028eaec2993755bddee22be25b4ab0c5541d6379a067b9fe755955cf11f7f83399bcf28c331c69e2f9a80431da37b14c7e854232037284e91978ef928fe68021138649d3cbc669126910cd648e39cd91efae120eb275b114d33629bf451416ca9affe96d67ddbdfea590b7babfbb49a8e6fada738b0f2bb907e34a856a835e09a8c9076ee222bbffaa25a30aaa21309449c4cd0a7fcb6110a1c82fa8d4a737bab8d92e4bdde60827442e9f74d135f3834073da3867b5094f4653d88607e8551f0c2951595fde2880f0407b60146b5f83ce3e589ef16368b7e058db6b3e8b98d6d459428635f1fe23fbbae5e96d5afbbded8dc22010c58d11e84edaf7ffb8c6598d15e8d3800cdde92ba519f3773ae13219b7e2b967f360162431f50b0de5c634dce2a361760bf2c656e47f8d10336c0c8a0694c148d43dcadb3f84ba52a2f8a167732f106df835e50af089652c7c806b1f51ed4dcdec2cb5d97b5c06f6c64c2be83ec4c1b228fe5615b7531921a5ab4e2357deff9d75e04586f0d325e0bc6306cc22f59e26dec56a2b0ac627f95be580a8efc9d7c27104a852df113d443664a9fb27c0a7e9181372eab430394ef71bb5327e2ed828b60a7b93a42b054cace4b029a8f4fa8fdbabd0b728971ba99c641ce864b627f9fa17c33a6f50d3df9c97d066546a37ecc518b6eec761351240ed4ac606e498daffcc4cb2ccb061619377d33d791938a32cc3640f45549f625e8c2c284a7fea4fe1a864417183177f9c914348d7a693e2d53a95dff9fbe6b26604ae005bb1244176ddb2eefc07942edc0b0fd336f267006979bd82c4499460185d7ad41301fbf5b17e78491a02b8df328aa35eca2346c1f37ca775d11facf01e26d7473956f28551bae4afa6039faf145ade0da17470beb6857ff7435b7ecfcfe51417282095d7a83316d16bfd0a209bddb52461fbd14a74bfe06183c01c40cd6086c6594921073e6a49580aab6b28c71b960ad575471fc6276b4df624870ed01346e3a6252b8e9ad82b40cc88f5627ea5d8073efa300eec86ea921cde8cec9e172314081eee5f6cc665f2b0f6e5a0e56a9d55d8fd1079ce1b5ee10fd69b1a1e8fce047cf7264edb9c44e51443387f9d2fc54b3ef09055f819fbb065d6f0f09e53b3d5536f1c5a98c1778a5a45755894290e45d27f93fdd72e948fb5a1e4b2b97798eb030933180e8aa5bef5d89770c546320c9e2080eb7a1ee3c03a424891517c3281a0f2a7865a138e7cdb1b417809c3c3f62b12baf9b02f9156ab6c774c03d698a9b52380124d863008bf3875dcb7a8a80191c288fcd856e138783a0fb301e395ade94de2193b7f316c63fafeb388a52bb934409064aa9822f5582f632324e11b6e4bd668c0c3d57267d64311556bf855524191565c02da543f1cbacf62a1d5d9839990ce77590f138e7db0641e51ad911c3c116addea6fad97243e9ee4efa3619e8809d67e8907aa0d63f4d9ed863999212e5edfc8e7c761795792e7d9c1d05af67f10645f76ef119c6ce384e92f1f91003761c9203f2e2e6afb3ed4daa3c24d74b9cec3526159f7f88b6df5354db2e7eb0dc1240cddcdf076b8b8f4567eefb4b27e07aa3a6dd9e17695f58a647002283b2f853e9c5abf16b5c4c1f4cf6dc67e14e2ffac3ea0e98830d8613fa7a149109d054ad4858fca3ee6bcef6bed0ed48a877ee4d0c758cae7394d1fa4d65e6fead01c555ed81e9757641d48ddf8ca28e3a6448e67eb0daf3dfdcbe10a376db16063c1a3c48abf242a5ce4e65ab7d3e535339e5689017337b6051820045bee408764b4578c6d0d7e1e17b9bf537912925cad18cda39c8402e3897ed04ca387dad9cc68d049350c2b9d8440f4195144c5704251e5164cb969f08a4ab01d230dcff7c769a026ae57fdd36abf805d114716a8bae45c099994eef19abaf515a0963633763fd2c42f4fce201ec61da3b5dd9d2d89c62b9dc8dfe0ae91fd52b67822cddc9e4604da09865e3a5f9db7e19f1c13420b07afbd84725095ffaa7f3f301937842ea821ddba3e138a0e2ff251d03830a885b5efa7f38492e376f610d89af18c7878e0e179c587d33c2e17241a570496e9ff8e0e980d8d7eafdea8f6cdb92ce8479f21d0a45855a41f5f20103389d3edcae037113c6777bea02de2fe919c021476b8ba937d1272dbdf038cf74e5bc7c94f25e85a8314ab2c1ebcb0db37daea22c2411c77489425be5a37509fb21dd995badd07c3c0cb55400f3df5253d856068a0c643ab1599a30844664e0c1234663f447a1d6eed317b362ca8574e724c263c29221231e41f980c8a773736572f282b5818220e34ee47ea2266f9291cc5ed376aba26385a5252e44d05a49755b1f7b0856f855070ab9ecb1a9de29a5b3920b3ceda55c0aaaac031f935e563c50c840f9002b49dd06fec768a9a258eec5b6aebb997a9e2fade8a95fb824c9fe7332528e62b23d82f99cb9e13e9a339f1f086a7a60aace5f34d2502a715df1d1ad9ce421ed1802f6acfcc96836e481a9f3963b0f28f5ac8381f83a7447e2cfe35f3f95276d54a8143b458bd195cfd4a2b474923791e8edd3ce383e80c9a87a258734656d7e82cc26aa4f038bff3d13512ca976408466f32fe5202dfef7a8bb8aa0b24d798191d8086b5a3ba1742f2c105439c58ce3288d19aaa535818ebcabf73678f27856da1507aea1df0202b01965042602c582bc9a3642ce2b04d4b0bb4fdf3d82fd3c4f4c99ac960530b04bf5fc3b885b0a5fc6fea3103ec3649f40ee24da9d140ca64f28cf0fe98d57f72fdedd468b27601cb5e34d34beee6151ed6e3c452925fdf6b9601d69ae3c36e9fff6d6a1b6af87b9a09c3f65e121e21d6b5d02e068098dd1394894e472ded09f085396a4a71cac238a878c215e7a955cda7f3742fdd1e2dc4348f9abfc46df4650e82373f08e08dac0a59ca8ffd419ca2886c891e88e41ceb85e10c57a915f14c79f5820ed8dac9a6bde0ad419198efaa1ce3dd2f30bfc82fb37103e7091d75c23ccd5b7d7fdf1ea49aade37b3e7fdfd9892597be68b47c912470b518667c28e7c8ed0fe339114bdacfc4b61ad2268929c0e3d49e77ea2a3a4469b79977e928b4deef31617f8d97d879293318ceb5c16ed2df4f1c0a7259786270836ed39ab184a0390e0d0d084c5313f9cdcfab7490c0f8df7f9fb8d2ba658aaee470524d96d90fb51f509ca6db5b0193f817707b6afe3faf49779c95976d57eb710498d9e7d4e1dbc7026a19d079bd8175ce4f98d07462f1ed85fd34101b213cba0cd73eeaca9133dc380031f6ebdac8f05eb29a4f22ba34e1a6fc29e5aad9fed9a74ad8ebb6463858bd894e390499d715c5140b5cb342effdc7184c53c33624fed2f9aa05e085cb7d68e7e3d425e6a08f91dca36e18c8061453bd980f41d85df2924f3903b1ca62841d4545f8ad8a4949166990499814a3db50a62730c88ab592be1209aeb8d2d5bcb3597d5160ebcc24e8601900010fddaf5842745be0b72359e5b90e6c11bcf5cad521bb23fcf452dadc00d83a9cec6f24184e90a3e35eeb3ec473cb0a9ece0ddb5418734231a399728a09387d82acd1690a66acd28ccde630704ca4e7d232ca5d37eec3925a3874581d181b7391af5d0adaeea556515a2a8e3b164a7b85adbf667992b6bff10356b3c3e085fd3d676d90bcd741577f000000000000000000000000000000000000000000000000000000060c1113191c""")
|
|
),
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
f91692cbc904c6920af9eff6f57b6134b45bda6ebe9ae873a39c1e0f4330b9bf72955189bbc843cd72a944b95833371e4c06bf3eb2a665b4da4df5b987edcdbd5ab0e7c5823abf0bb6bff471837b8a002bd65bf7fcd76328e6fe6f15e57a8ec933a72cc3ed112ee597fdfac91601e2e58582dc4b609080ba634851b25358d0c9754350281637262521374777556415104864154860206041352465214453553137345236775358075282056885647303768587045030113278731814115881114551057578670817173873534401000711068401828428263081481017277750831465187625833523810016354580868548401441857264083372314878161522270727064333711682546124068264412643840758358838408447627025338300737308371266614001014336245214783358451307745761748303240644786363764736471825520567742255620673034736885603143848540366770518635837224344520418782013854701432613146461232406724061145508623762757104474481846413463435761547477850512744612861336161462154873852416844183351672874258434175215466573313077127617803725473868377265620842720484140613811225841166435350043412651265702675883751576272877822642382142060654556010885518346603814832385350857032673022330504364602345802637766037480027500017672070832862507221411804200675641531481158012220062173320173332478120312762320104164307572211150304777112577368026515022475227221526237672850742604350673830034371436706872072077285850737337730722006562010420468188176586122488432407536587767541380746858122020430172573028068160420648031447532653223555442726570477084433678280835588627680013544120740664444462067616224381176624820425675553845610766215101372521016340175780778380183351722838167847841251851220785205763271604276632836107100703635177680045501506353524230801541453041757868356061560200675564087263218478015205085086217587120816787626038643588882256045332002685650850864406716310262225785367023646170404536861170031214215780548215656682163386848637204727003614771133743560622307402732767066875005724512425272665757480306650470488674004187536675155577445440765742464370661551864815504156136385586564574816703676147564638005517426348048822375856871184345217602738766260417585746271507507570510040056317530803348186642144653053831678540337242413885416064200831201636480323423582817278526413532750432252553652348063287644833408001231444005103050185162038400434420347056323560663011208233834176232267471065573612368558534828568744114127618310560854752054526264330215157680613584083161688058026515337171512715422432583342201257422527403383585446750778640127544781836365130507331711865536268214184662407615508115011054020552746102778440301043766846753320370386223010231318077850584875767675687354456847801617844783652736474218216364370170532852111846533242685183301345366137533712315337353808163275816037073475315320481278357032512385723425657218052577281508084872030258232370206340126045035642787353202504281812581273174383414764882523037835526007680523372518155181435704877226072110817710451470716262037413701434382786533247683254721230801265816050461107728147240545711084436157023770440121161026812170048186872204082147300617864005286020058133765464066235461034572838713356310701101481833843686614643073413362213303431440568171734005681464884814c96a6419af7dd18e6a547708560dea1bb476c511c946ef5f593f69649f9ab3123a5ff302107bb4367f068e2f66ef0cc9a16a69a10c91e003811c76aec82791918fb00f736573bda22f517252c72da1f973386e41509e46131701e690a9717053661d4c1ce3dfac2d14427f63bf6f9c53cc3d946a83ca34e09242abe5fffb63781bd21ab2ce57dd687f3f77e1edfacab5014be6c6d742e7e91792b489e8cdd932ce6777cd412729be11248dbc8c31a6f13e430ad1faf5f0d99c19e5e5bd26827f2d4bbf4b7a5ca2fd4026507b81828d84a56ec69485d011bce465b461262ae6aada92a67745b696371145acb33cac858c4b48039d6fb1ced29e3bf963b4530737eadfc1e7d9ece7d24f442f6e0f2e47576def5008cd01e85128e211fc27aa80c558a0bddae7cdfa6f14a9de7c68ee5d611d9527ef9e3feafac55f11e748e125d2fbcad6373338a579ecb332b99095bbab9b2efb3b4da9fad20b48ddbcae17cc05e530c5f8910cca285a23eab49db9b9a052af08307a634b3b8e38144800b32260e0f33ab2fb0ace0f4325b9f091cf99c80de5cf88d62249b68596c5cee719e34cac3bcb25f3f1872d8c358c2f93639c5bbaab0d41f75ed11cf1b98d373c855cbd254c2b3487dd779ba6f28f8977fe1d470531d5efb392bf3ccaefb1c33f5ca462465d79b32aa2ffd9c98bb455b3b306ca41054435b727fda48fce34b31f81fcae6c07296ef8a4a5acf37ccc14384f0d31d21d31d7131827cd0a16e112c7572e291c67bf1900c647b3c1b5872110b9c411b15f7acea2a7aecb97a671e4308cb77227c92333d2d24a0db6945bbbd13c86cbedf46906cf41878f0c3d1e1b304aa9a3cb36549d6fb1c7559704d76bcab57b2b06d4a52e92e1c3cdfd200423d33722671279f9698f23dc56139258c02cf9f44d5c7d9ffa67b0060911084a464485280428481ce1ce470d96fb8d336b9a4d548140607c37f2d1bd3f4645a96519e50be01d3912471254034be81b9b627a3c8f60c70edd394776a7b9506f7886a1f76472674c5c93221babdb60100a379db220963338221c6f811e47229d1116c1ca211131500ba2dc0973c16153e28180f03721f46e2a58bcd521bff6967612bbd5b70f6039e5849534a3789fb5d80d498f91a7db68ceefb7ec802be752c3c4519968024eaea470e33723376dcd7d1cf0cdf67363b805c65f366d5b1d8e967f86347c16bc3fc70b7222de5b5593f65f9b99d8ad8ac8f5a25630d4202c59a8029f240747d2ab784d3a8d20182e0063b8b8ec64217a05abe4960b265c72a75052dbe5e4bf24dbb5db6e7a0ba448b3c8da5797f15fec696dd82f0a2a9eb867d1a65d95f3220a64226ab0148cd67fd6ffc95063cdf7207e015487dcce5dbbb841de6f2d3cbe3da332ad75d8a7b6982e5cfd28aa7cc64947050dc40ddcde3f77f304a7d5342cc332724e19ebf36d083da2289d4536b47bcdaa31dda127dbd90c41868cc81ac638f116f9cbf5fbfc787a1c1f7835d7efd5933ca85965f419c16f3f4d5a618c6af610055667224119f9f869aa618ab5e2fa10e92cacb53c9b4abdd62dc1bd82e8854fa7469b7f4621245ca3c7f97067d40ace3f7e48a3bd6f1006d89047f3e4ca07848b72ff50d3b1de761e8381274f25af3ac755c3d29c1bccdf810933ea9fac28c596928014f07d654c786e61bddeb97bd654a36cc757700f988d3a27b023c889489bbd1c70ad863aa7a8cdc7adf720940d57f24c52c6c83821bb84589a7fc30b52f954da9d69d9e41b046dd3e8b37b4b6e2376aa0e7f715212dad754bbeb64a0a2a0160584f18646ab4c2b19bf1d3c3c383d7b6efaca49e5101ccaa64667e1bc29af611fc94aff9da7334984431e0e4397a355d1c8f9fe76635492aa891b90531b7ee9f5ebf87cddcda8b060d09cf85eb4e7859b93c7c56af470b908a3b31462ca08bdf66ad9e28a7b3e438d967df3c7c844a6da2d57a61fe85adf971acef4bb824ac9a4a9bbb8206e5ead3d96f539325647114585aefe1752e405805b987650ef7fd2ec8aa0069f5dd64e9a3541d43dfe09c96a83bab1c9ca6799cd4789d082d620b4898212288a7a92792803d204c6b77042634f2daec62bfc7b282cfbc80494fa2bce24493f0795d0ca8bb21d79fd5d1e4a53fd695fb8def7786aab4d8a6e6b5a1c48ba6461134ce550f1ffb0e0fe236284789dd3c10e63a748b6b9966518f641c5ad3346c1a6be1437dd06232111fa2045ba2a7521c6662b9aed1397509e7dd10e3343d9d439843af2f40fd3a9b6ffc8dcbbe2f89e3e718e83043fe84e0847dd9276bb20800ac07a6a0ce94e9c2735cdaa5dfc5e626f25b902ade09a1bab18509d1b0e075286272fd99e469a525523f1ef103b71b9870380324c64f4ecd0e1b40f6c2142c49cac8629941cf68318440ccc15933954ce61e48006b9aaa466b3c69a8cfe8519a21aad7a9c04e6e3571878ac468b72f09ba30446d95cc7ada23d7413061224ce2ed10b9a626e3014710444e13101cb5b2eb3e208ca67a755b7f0bc166b53bfdb7b08476c42e8f8123d295cc07d5a7b74df3fcdc1447ec23a5f1d7ab98a965caa69e466e80826696c1f46e7be9cef62f7d82d448bc5a5fdc6f0b3e355db9230b17ef9950356af47ff1f24813f8fc9b667d375b7897d2a7dc0d84c6c7ebb82e3655f1e84ca5f5472d230ed0e2d1ba71bb99af8092fa7c6d4ea037913cc4b265d29bf9d2a2cf9593ebb6448f6c43501da30dcb7cde661a59c9e45bd694f30d3549814f52f3e01733102f48bbaf0f48a3684b37293126abba486d0dfdf8c075262bfa6d9f095dea8ee9328a5bdc0db76498d6ca91d6314f1e3c9ca11018c551785edd5d90bb6e9659f117f62854fc62a0c707c25a42f5be89aff9daa67f0fa026df50548e8c2086d919da914b21f1f907d146e72a286863cae693f1d2022344e67acd3d70357957dfb3e90af2f829427043b41a3b52b1fc34e0d80ce1a47dd5b12877326437f9628eb25386c51c59d0bde81862035b185dbaf7c574ad4abc0d50e86ec3e23c6f51f9c871f2f55db0c4a6fb9a0756b61f86bc3b2f0c9604bbe4a495abc83bb1a07ce7e9d9d60546b53523328104b66fab69db63cd6ef2f44e405276b45dec335e1762aca37f3e348a4c4a348442453cde7ef103bba64269e0152f6e292fc54bd7a84d015e809def97deefd6f24042d5be6bd1ef4b105abbf567ca98ebc8a2a93d0e1fdb5c1027f639fefdbb34a062d83f6b9155171f0ee7133782b6f742071cd2b727563b7d6114360f9c1d5f208b34ccea4a9b4762192010f698c2f160828ce9fff3aced38db4bb47985cdffd3f089128a789696386f07336728380133767e1955595375caefdb9d3c6f13d427f2a61b6a0ad529791f095f22c77c1937cee13b419ce545a82dd1d7f5a79370a2bff47ad9cf0b8da35586da8333ef7658ae73f284e147f78f98eb0f67fab6f588b446c43204edbb0d01344c50bd496c5223318c7dbad4e24ed7dc51e559488e8df5b071fec03b"""),
|
|
TestUtils.hexDecode("""
|
|
DBB70175E063054DDA24BCFCAF671F820D674F1D09CA173D4A1440AAF50F1FC8FADC1810F390286AC101D60507DD285275C6F97C0D2B2CF3C7F50609CEC64EB029C3DAD8B9954807E35D4836BEDF32501D0E7143BF488CD5B4D1A53C980BC70A3794E4392E4560E609B9C49900E1C56D319E1495D085440DFD081D1A7C52C0A8F64917834C64EF32A441C9045689DDD2EC218F58B3BD534F18309E1D780528D3BD1B23DDB3B18FC1F7C85324D45C3E9B25961FA5257EC31927CA35DB25E6FAF7669D60952502680BC7B5D777D77B194D0CC40372FC8F711EB048E01BBD5676CE3F2A9FEEAA4B5F29081C34969C746208E6F2329CB53A22058C0AE0852B7127FC4C74EB3A8300403F60B8AD1F95FD2991CE0C8CE452C2432B6422EFEA8AC0E1B53BC994C606301473D7855EF86687287BF56B450D2762C5E03AF26A987317C4BFB013A6BD791EFD141AB34718A37D1DCFBB63014F7F92C9E2870DE503452E271E9D02768357E3DEF6BAC5A0F0444DEE1FF5AFC79B3562C12696FEA15815B7D9BAA38C66919D137F82FE36B140B960E02966FABA1EE9CBAA04941396D665DD2C6B0559502577541AB0CEB066E066553A2DD407354123DF14F4B1DDE6B8C34E3264161796F48DB5319B3CDDFDFDBF5CE17BCB5924984143839B4EDDDAA8F0568ECCAD253C48D00687F9A07785A67B62D28B86D70E511AE08A525F66FB15AFD112C184785F91E76852DAAA3E78CB96E20249F38979031712440DB723B022E1323818431B897DACC51400DB25635EEE41761089DC47E8EA56DD0DF60B56FC682D000E9D660D0CF38C263B716359F41F3B190D201950E140D67F50287C09D2008664341A829A074F9629DABD88BE69A6058900DE5782CC621A91376E5CA31C66E3C430CD00FAA83BF765A2E6B2FCD20EEEACCB996FB5C4B63235142BD5FFB4390F8CB95BCD5853D0226F931C38FE972FBD0D6E10DC2CF29D1FFD2653CACBAB8B81DBE44A2B8F1C5DBDA7C56252E4B35888DFF7808B3514F4D7E5EAE9B51078E8D2E600EC57200FB48EF946F021CA8209E7DC6443B37D7281C73C6A3B43AA570398E62CD5ED9A34ED23AAFEFDB7DB3141202D940C1411CEFFBCED878C0D325E8CF7FDCC520CA3377BE97855827D2E6F4EC8786EA1374E006539387924161D65782C7B2C262AF9BA8FCFCB5B1477083836129DA973AB8B082324F74BC6320646448DCC8AB56582EC72EB192D3F72255D85FFAC2B5C62F245B73191A9176BA5A9FC0ACD3AD48D37E23EFA0C65F0423AB5CD0EB76BDC035112C7A118ED47C0E67E510A6F7A28F26C3D6A882EAE74BAE6CF1FD969FEEAF6B36C85F62D40CAA26B6CA98120D612598F360CA2628F6FD608F4E1E290B32C90FF71E181D4B72978DFCD189D857DAFC7B2AF8C958EEA6894ED59AD56B9AA6F83092EFECF9EC4091BCC9B8CCA245C30B54B9B8DFF3636BEFD417F46DDD2F6136B983CFAB532FB623FAFC3CC4CE8A91434377F4DCD1607BF04E431"""),
|
|
TestUtils.hexDecode("""
|
|
5c796ec117395c38a9d7fa1a02d81e3b51522aebf68f3fff55cbf7d584ec75e547d413562c4c87f28f57433cdbe7c96644619b9f03d119c7f87f0a970a46075cb8c29c506f67007470bb4843af6d3dd1c91bb3c2c62443eb18a69e675e3711a08dabee5cc1a03d35a1399755566dd2f07084a9039c7710ab57b380712b39cd6f3cd2098225785665bbb94f3761d5a8d431cebcb533cbee5afeba6cc877fbb168009b3f05f9829606055e71638b50f4c6a41b0b226134391ae0efae4cb1d2e31c782b55035cd9e2d0bb53fd72749de022537ad8f8ec49a297f9bc81d1ee0f5e6b96470d30d6b78f48266eea5d3d4805028f90abbe90232fea807b50323e722a42fb455f02cd2c6f5d932b9bc606f9509fe2b1c133eb12de12db0206d78b49154c34adfe204fbf5469a0a50301be999015c5798c567729b60b2690ed93db0eac4021d38665a3a7db7b5ad55d94b8cdc9171a00ffa3ddbea750e83e495f7db132fc253c82b6b901bcd00fe68f0277988a1b0b2cd1d051d10ee189cf971f79ab6d1bb641b1f3b160b4a4d095144d1f9ce0dbadbdf6955622a8b300c69ae67dec7f1b777f0266e71413d57b454cea0dcd8cf3c32b9bbccc36e1eaeb17c87734afde3feec5432a18ab9a7c6a1fb30e2e84af2c367b4f47529bf4e0782a26d41520df8ac3cad44d4e792af7f427c75221e4a5230e282bf938a6072574e23f4cd35aa49758829d521360db34cadf94f9ba90d5139179f877723150d4d6f53a5300ea3e26392399adb258bc8075cd19517cb70ed48ba9c61e5e5f3d245d45f44f5e6e033334dee3a95bff8dbad0a1f8ecedb431cd52530d7c2d06ebc8f1b80e5e30e746f9b3b3fc192e359119170e2216081dd908d0a5b03670cef41420585653521ffbdfa58957d06d7a0ed23088a5835690df344473f44b6213fa10832539197afbb410556b8046e06d814c2702ce1c50fd5677de3015575e42b78aea720270aa303e3a6539bf343c52ff933aa238770e7fda2d0d0702c1c7a829e798b0677c1044a7e4af1df817c4167909c158074a9933f364a1800e76234751e7463c78255c3d5189c2a3cce7c2e55dc55fe97131cd4255d92b3f9f5c888029d4b92ff3a544e25b80ac12e73c9a65fcf0b755ffd0a497c6113897ee8bfcff0dc8c9bd583af6fdb71523be596bf0753b25b47766d5be895dcfb63d7c7d9f6143efc509629d310dfff428a1d5328b5307edb41822695f56a09ff2202567ae1b80318f827e0bc29c5df5e4cb075f1d7c1cf2df62dc258544e3dea90239a1d997e52e568632e259def0bcdcfc6f9306c76558dbb30a880d41fcb4f99988e6a9186296e7a5a31c7b910fb2624a0400bbdc6fe0657865a6537131f0b0dd2f56e2d6e2201a843bef51916226577e6bb0e891247f93b5bc36c49fb37e458d363762c12b4b95ba75ac1b38f177fca6515c240c40007eeecea8dbef687a77d3c09f9b5bc5450231ee83294e5a8d0fa79430fc2e701ab39d3bd891e73a695ac6559d8a8b4dc4a6ceb7472ad032036e4aeaff3154099a6f2e8297c6e4bf121631b545b472ab316aa0a3e1192874793597e0fa0cf173a78507ea55b2ed0c13fb045a96acd9d9bf8cd5197f968efdd359bc4449458ac42e2efa187190790de076f56445f92a79be0469efa11c98992ec82e3a2ca311d76e282e91665f5659be663a33139e80952b444914fab59910ac08daacb6cfcda1dc75c00077391e2b38ca54c1e056968c4c41fe7201a3c637b37f48be5672828d5f20c06bbc818332f48e0a4c0cda579d4c114d0446896b60392bfb66ec8e4eb5c3e8932259c423025da0611e06b34209f35413be186d98f8494d18eb0b2d56aa47c6d72c5b57e2f68da8ec1039dc565dcd5c5937ce1d358d6c83ded381060647ddb52badec80e92a98dcd4be27a5990c85192e2989dc2553e3606f6e6ef8353202671a1f2dab2d3130946254a686121a26a29ac8553ef5a58d31f9607bf3912fd4340562ff48b38a12b7f4d8ef2e058c9c721467e0787aa0eb2ff53ffab5c2b3c40f52524d8ff1cd0df1edba1dcafcf983a9e8e9840ef269f9648d3ed8e7778e086bcb887c54e49c8848d21002ed58f163a6888b171a945a9269f410b3d541b07f7c83c0e6b80dde9bff6c3f6da1f780f52ce0da11c196c0493b6765bf01aaff22e44f2b538672b4db58a616e2d2a36b1a20a618acb6e7523546e61c8ec4b593407d0ccaa0ca85d2db46a6cf188939ed9583f591499fa436443287fda7e49602dd8677f171b487e4fd6229de805f4693fbc8f27b52f283fb0384a2994755c5a6c0ea99a8be6f6f743d05b75405f9e70d68d4904b258d0f5f3ad0b23d62767d54ec493f15bda17b34c31eb50210788d38ccd4490e0b65ed46e50875da092c35b0100aae8bc387ad595be005bb52ad0f3281ac662305e0a62ec6254c4e091b1fb0552398b9cdcf2c12069b90b6ca5d67ebeb22b6aba91a7ddd85ba31addb18ea61d98429e633e5296eda442264dfd6bafdd3f26c9d6cfa7d8c89f273c4058c7b88ddcf79d7cf5c8bedc4ccd69c4b545a0069906c12c0b5dd5514cc1d45a50173c4f51e0cb89e2e56025539394be823889e0b7cd3b2563f756bb6d95336a22a1f84215915507708fa18e425a6de61a7ac74689bd85bef8aee1a48226a96ac318bb3d8fe95be46eebfda3662e04741f93995e5c30b1b3864feae3b476f341c473d449f3d675c3335617a201e992e9e96d35640d0152587c7edf50ee5542164e12d268c0bdd808ebe067e4891172a4d765650decb3e9baedae4c39834b5b6df1c8252a9b588c30b25167c543f389f4d4db14fd1319161453311572c85bdb5fba5886325b5118b6bdf774c76fce3de923761e22054867a19a06e2f84463a737ee6b4f42cf97e062db911ef8dd2a6cfa15a4698ab96c9e70c7823956665386aab0ae235b485391542ff57967b67274a4a308818ffad47b82051e674ae13ff73a111c5da089500f14c7d05af77d777c612628b157f3a921bf8b0cac0fb426866833ee35a2176653dace88dbd03cbad446bece7c6177373db768d561aba1d86ef2a5680f5d71e2c4e35832e8ca69de760893f3e6dca2e9b39dfbfa2bd4e1f3c2f5ac06e7b07c9c3c85de16244a273385f9014263614cecc9ba3bc1679d8b2721211b7fe7fc96612abc39312d8d05dd530e9e6f00977bdb27b0632eff254f54213213f608177334ef02f79cbcd5062c9b50f9c3ab14a8fb019d0c2b11ed1a5f93d769d3fa14eb3a7e2a96c738d1a3d62dd49a5dcb34ddf6944c066ed1d4c662752fbc961eedf9606c40922c43c543f6c79cc4e91432d652c6ee492679f84ddf1e1e6fb885af725a63168a6c6eac8cb180fc2b71f8d83112b81b168e96e42d3f069b69995c351c6b2bf1344f98c5fdb2f3fc503dd6ccf5cbc9a1bbe111ba2380bcc2392cd3726bba4afe7dc66a103a2defa50516d7d0d5bd058c7361bc6a81379a6c48fe76e81cccab97af3cc2a96d4abd8d5399c8ebbec651320d66019aeee16dd9e126a4f6b16ddea40a36f2ddc9e5d91bf8d5a39cf7069ee917c23770c18c54a5d2ca8f23ca2c9d21f9003b7381c077b7607dd3e3b0c34cb12c77ef08547501085370c6225e45c40069c87161bfb45498397c5d714c86442cb1489accfb34531a14199cf29e0e611f4047f22d40db532956a20c8f5561d9c6120a80507c525dd8584d60f41e999686096454475a2c92bef5880e554a09cda2238323fad2827d9ba6cac319b01d2f89d708a593d660f9c19499328167c5843ff20a17bf0ba26c8418fef3ad764a865f471099708048a624c39bc7ac317badb19226d8c0943e0fb8aeee9789c0ab6e43f932621e89c424da8a6eda10b936218264161433976904836c0c913b5a0f2fcd701ae18ff8309f583f75946a02b930c897aa85ccd239ce2edfc7dac8689b8e678b620cc853e5dc57fea9221f3c5ece3a1484022934d9457b6d3a34b801baf8afa4adf307a8c7b6092168dc5fc35393f772b576345b2f6e1fdd9ccf27452174b8ef6bde9cfb37dfedc43755be905373f54e13a1a40c3757a15bc36aa21657ae4a64a16bbd4463fbaaf69cf4778306876b62abd4305d753da808f0728c3f51f838b640be0c093b732595b153e2615da3c0d5ce5801322689ce85f91767bcaeb81cabc3baeb76deb7154b79528766282bbea6d026687d2f823fc25b97ae523e1eecdcbebf460b447b1a2e677c0215fbae2da1dcd182bcfdc912b94c732b793588ffb0d1e118d02b093a3cffa510d159ccc74ceea63ed881ca79957dda6db1329c22c10a082baf48fd6a2b635b3f1b896e77087734528d0943da51d31b1619e549ee1366e9df05d0a356aae84cf8f3d0c8fd5ab534a3524be784eb0208501f17e3b8f70a52de886bc691db2bcdeb63f7bd739fa3dca52e4d44a7b6b57564f17076104da5169b46d47bfd01d2610a9fe55129e6249956233a911eef491d9c5877e55585f62f1d17a84bebd25738d11d830c2bbc5b55d7fc60894f4db0bfcc6639277d290ebffd8a02e4d0593f65223168240e528822a90d4fa94febfd55e5562fec1f279af1bf7333d5b8b8eabaec3ea262a40586d8ea1e12b3b417789ed00010f333a787d86ced10a233e7385c3d4de1c3450557ea5000000000000000009111721292f""")
|
|
),
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
775194fa9e30c689e7302d8c2fc00a7f00841fcdae64e399a53e0be6954663065429981a74f61454a21dc8dcdddf4c4066ddce8e5468b7bd5b26dbd4283fa7a877923797381790c1713da02709968ff0832d6c4d89d20eb3145a7c15ac09eacb033a7da76730e09b3d046aa5af01efe52e3a0f027fba5011fa546fb5fc0cfab8123354588821124761125462867143201068176532572015662021787412776133663461662516613127305076874123764663443174716886480125868463106558201008703176818888335470841078863525124780848221402401271324205864713506180015021080561066460302752630337573872578318172800670886377121683873150166316433017633687422041072550783123188513067875320218141887780241707861057474220312532464675542836737678404710137071730427208884644822180077044878772244308013004077287021731285122144771457608441245004186732638806268712328246273182373310817212362101711217128744356367251232358767873630286444004265228015852545234702853700543220230385386347720606804853040270356121170354546661117884006288624425424261076447101017261433632246067153565133005185584112568087530887400354165514575612710107518105111212880423160320776164322663187851666826475266514506542017236133470881016371558026467184825281620822370012506573522580870410800578835360423727437546187382604545324437380583851840368564484147868560247314316431274136074313628586112642714347270355050863242834182541260623061362670072443286601140011122260170704886474038621622106223074831064667433402301675534076201486620401610182475848155741838435013666012256742055143062248642370042501004404201220472422713362532468454186164808851065576017668724284048886510873771246805247433731476322167183106422148886801663744886227641807258575643350158780032653053403277082020512364842215836461740846432310100831764051262516215812253404208551486515827351162618003733466066543352780177355410552035840806874540435161826802664586320781278338035028133718746822122511552230063508641532268816678453680866581380828033615673280874678758324088400275448388454607317108875831531354227470725076141144534686412537824563825722877183411550677700373524533067445807141178142157871184851387873106405258723664717374150224651476366210256351366353505453335354526742522767451684323424516401350610873104848665032166533585003470786668323686852545850637165171575158723631707561800080148548322850210080726687771640233236848368300075578486270244466218706477857038331816632104585010604237368056736578088326582476813804678062134825523128202303334241720070686472747774265138046574103501028660081182563722570666424860667805087485053108754536312327142124803354804743005550286355268320427431215730548114172563283722026208424375640424116413408624467633266482015723581236203131518862113064822005608608433723653237120352587004423311474456472088471536172214481065711267885838858351122324414845814341224441731416501101677844383118405826224634471523326237030353065105122703137580526125512333342624572870570653773585614446713440410767104157105715385272211378045570506026334811377158286601313708787117102676024340056353641642212118688236601230400305723181867775275010672436885537146518804123060448460341683143361006382558285618843318316025426272581550022725e3ab52ad317a7288f7ef740ffd3fbe62f1a96ddcb6d8bd300d46f4f2cc1cad162d5f0bc4a1c0d46f8c0f567ff3a962f5037da119a596bebad2129918de11be09cffa73a7026b1c4a94ab98184f7f6b214e37b06843bc197f6e54084cd03f427691ebba03207bfc412133b8f73dfee78df80421a3c30b30962b6d06cf8e41520e8c9a7975a48e45b9d6371e3029f63b7972072cf5c30ecaadb3d763f2acbce180c172836e2f866a894cfb2193268616d8bc36157f48d7846b317c6adffad1f4197d5151b1f60f65762de9ab5244a5a7ad8d6feb6cfde27e5adc7e48bbf7f37e7db6d8b42324c070be778426a242e805dc353b88916bf2c32158512be8d0a62215a4e9ee2535a1a123661cba33ad1fe6f8e61c62b34dfc7edb12e9aaadc76d6633315fe128cd6df60830057d5769008029be02154b385bf1daa32633a8b73d39549f2ef157b00cc8e347257c9c409113dcb0008d0d9f9a68ba9c0e2cdb1c5585c76498365e81717906f6e2e6fe9153813500d447c101ad6ba8c0ce13803396cb44e6ee31cad12e9e934b101b9c4a4e18f9a795e270ed2305552e43c74c6f9673cc78e8d88eb2f30674367415944ec31fc5976a09fa62750125d609f5af9f06e4480922100d8031aba6ef774bcba84a1b3b1805787efe2af85a7e592eedc320bab69cf52a9467b45d9132e45e54db62c53154fe963293c252b4e4e29e832016414f4dae7f2e9d0f87d050abd1a72ca7348bd4ef25f9efeb7b4f25795f8f15ffb8b5947f7f99eedbe22f238cebd8d747f50547ec451854a363c726796c9adffee62ddf079b8b39d4d2b9c77ce9a629c1fade8f4a9940aade74d3f6194f72c3af20deb8c5e4588cbd9db261704df134b3b147b526a50dac889551c7c866147e1cef784eaa27f940327f713e4f0e1c2f77a09160ca8cb6acca67778c6f9f5cf50723ad9edd8ee2eb93bf784a4e6ba07c2bfbc581bb80cc4525594e98baacda06999dbfbb49609481c9eeb1082a7f05cfdc95a43a0d309e6d3315ea1a98e658f394f239162c8b417635c5a100687984a3a458e276f6cf964a87c72c275e35771ccfd9293a13aed45526352421447064ad00a5457f04ce2066c92cbc2c287056036cd8726fcfc5e9dfbeedf73493c95be8f260db775d5d733577893d871a0281cba27f93fba8e5520361c5e9108299666179e3f40313e0c6ce6012abe07f2dfe2171f4da5358733188bba4b1059e516b0a2a00493e9e7386b9f00bc402f6986775bd2f1d5ab7455aa574a0576117dbed54e8bd7173a9afe2b5428f1576ba498bfbecb42e6f86164dd5d69b744dfdef0ecdae1ce1c9a03da3e02d707f405ce5cebf694671b41f034bb8757ff3f403d4153573fe46cdf0a91b5e0f34676f1ccdd8b37e12a737e0735cafeb5ba7a086639a7298712e67c56c71c3c81fcf2667187b7c5487a0fd292e1a836dd576d177e01a24949ca3c7251e9c522782dda331ab2008a77c55616cbb163233a45b7ff45af92434c00a590aeb1f4df607077dd9e8e1eeec4efa64fc1b51c15759ac1c3e7c6389614e657d314066ba3d84a5020ab46006424914177b19dbf6ee27a3ecacab4e2779ce9be2651dd4128f1a3c5acd58c3106695eb403d5fc7a8dfdf625b4929dd6903c7f4a27436d3ab1ef51f74845a7ab5498a9e5b10e57714864383bbe2d6584e7da26ea0ca3059ac96fd8020fe4d67d8442d91f3fdfc26cdcc9ef55877a460944251115db42e7470f80784aa8b7e4fd21642d9d91282e52221d6fcd04a9b7acdd23f124149e6823c250281eb1b0ebc31bfa8ba142ae0bfdf6097b14408a9e61b9c2b0f0e10efd2cf3cc1079119e7c23948941de9f927ac5b2d718c19ae41c14802f0675f3b75f084f622daea75d65b05c0e17098b402f05923b9011cc96e86a103fbad491faa1b8be68f8f5738b199e14086da38ce13196e3b2f4b9c038b93bbde1fcc3f277be2d37b4bba08fa8e8504760f63cb954e511b89d8dfef063682502417759885b1a48d93100d6eabf14cbeeecf2ce6c17903ce588036e4e499c22cff789f0d311fee8e4127819679730893009d46abbf837881e26e490c437489437408b64d12114b7201abd6b4591afc083402e959bc9c510930abac67563759b95415251db053b68a5278adfcf26cdcd18463226338b46b07900ae532488a1a4fd172163e36e3f7c219b86292c92d68d6d0123314ca3a75487e920f2b1b12c0d605f153f65eedf3d98a587bf6eff36dd53ef6686a88a3f0265248c5ff91a4a1b755aa1597d1c2cf37174dcf082c3f89148ed8d4852ab2120a53697e9538d4cf661968d6d8d71861b32efbabd9778bfb75607432c765dd3aa2f026f38a477e65958b9e3c2d1d8eb0533b1f9f939279d687e4398d2ba454c29c420be58c3054b3cc2054a4c064f3702a409bc47abbcb70c59a1d6af84719e067805599502608645563c4bae11644415f1b82542feef87605e389d8c9afcc191472fba3987e4a0135f78f97b34cb10889e11bb9ef1149b57735ad77f841650448775dbac5d82ab0294b35dab15eccb5cf979021f59e0cf02bdac2b3533d2cb56543d9b1896ce9e774dac74f647674dfbb9ebf78b9aa02eb756182977a8e5eee876d2fcd9a943fb38850c1de8e8a831249d2c3ab9e3ee4a25c4e37bec0d71bc2a5a06b04706ff801b5f0d0ae9220f667f18480db1df8fbf38be4c3d5bddb133e102c4ce030713609819632c472e85a01262c1e2286897208c3f9871f8640a171bd4e41db5852525ce5a8da599e845169cf140f33f105219e7d03cf4a1aeb90341902a2010a172955983a252c32f0a5e120b099541145b8cf23a3f5a3839d5fa649eedd624a19a2530f570c7ca1941b112749ffdf96717c73506639eb3a96677fb97c66a613aa21bd77a5302be163d726ee5741c15bfb187bec0c0c1052a1715a2cb4573d4c3f9c3618d2c433f38145ff88c8b0287650f6a50d2ee661e699ca59b6385f10e250dc70dad3a5e12c5e002cecaaec22ac8b57f5ac5ebed502a8e1e6f2ff2936d8eb7294aa89778361cf9b325ec79197ca4e67b5836d3d025e5cda054186c214f9b920bf2132d403cd8dbb24573055b775aeb18151b1bfe53cf1b71f58a9a33a62d5431e3e0513cb0b0790f7d4b167b91ddf78e00f988ae84cb81b724f1981cca7f78e5553fdcd93059664fc84ead17b59f5832f67966d93e3dee2e57c25174d217f4c054206e53bbeb341ed71f6fdca79c55bbe8ab26ee08007ceaccb99884400e1a4cefbac6858012419903397f64bcc9949fe070f02f227e62c563887b68c0b1b3c2c2854c4d4e828736faf01c5354fdb9c8a7806ce33047d591d80d3af33cb455818b228627f57b1973fc396f3c3711603b286c4379830044e3982c93ea0e8a9cb1b8a16595f442bcb11b9a51fcab5b37047bc114daddc06d03ff76af94ced219201585039f0ba8a95bfd17e5a8d24cd7c34a99284db28bc54bd2d5c4540451e1858805f188dd41a70be6cfde8ba28d4ee999d3fdf8"""),
|
|
TestUtils.hexDecode("""
|
|
5F8F32FE68B556ED1D2EB8D2BC20AA36DEC7900F8E5D4BD3715419B28771E5B0A080DEB2F3EA6CF415D40EDA46FCF8A439954471B7308D3E4226E9D5A96BC22B08FECEB4C5E3CC2239473F1C9B8DFA5A29C31D499CEEAF6E34A396BF0DA53B54F1AA674056216756DFE15F669FC2E1D8E6F67BE5BFB3D5703F25D62D3AAB0398AEDEDF7C65E051A4A8DDFC725EEE940BD0D06B103EEA32D027CC20A8C61034DC54BD5533CDB1A85107B9CFF283FC3C5FCD9C3D6F8857560311AC2E0E31585E77D0806F9A4E61A70D3FF36895ED447C55DB52002488045CC358A39475BFE8456F4FBC36005218B2CEC1C573E41BAFA7A622EDF776C8AD340680C1B3002F69D3B3D8844494EA9F42D2C9C9D2BC0BDD850BA3C4DE929C1DF49351219F95EA7B9794827FC1A1BB4A6A00809393BC41852820569D7BC6FD55339925FFDF55A0C2655C85144234FDDCA91E8BDCE8CFB7199330763F5750D71CA8C4B3BF7E6469F5DD68624BD6D5B69E5FAEEE53E3A61AE659A364484B7D2BC8A85BE9F8D35C8B97716E8202B610BDF878C1BD83187F7892BD861C09FCDA64606A185B93CD2F601C3107D35B38D76D75AD6023AFDD95E103EEB7283379BD9E44CABAD923856A599B719A18FA836749E5BA95C79B1F2F1B443CE1FD26CBD2B74A0156C381BC270B74FC42DFF8D91DE4ECDDF3053007A09B8E3C964B90DE55DE5193F218685327D8C0C6CE3BBABD57DA8772DB7CA9234A3D19BE16A895E7D14337FD9D50B4A556C75A9D287B44BA5AA4E52C3262218DDCEEE3A7BDBE1B8175E84113F515623C07BAD4FC0985112DE4D77D31290BD013562D12FF8CBC5F2BC463223AA82991D7D60E38037578BBEEED70631CEADFE49823EA3D87EC384B3FBD4974C474FF9D47F467110EA4F3FD94B5FF38D8FC1C75392896394671853FE71DDCF7730C70ED26485F395F180D2F5C31AE0C2C20691CB4BC81356225E6A72DC72A1CD3502E42C22B594118D131BA5EF95F2C18B3061139B047A24E32197F89780B91D36B28BB5EC6C03232A3CDFC5ECF687BA5701F3958FD87FC0C8D09825E8BE4E5CE9089C674049C38EC5E0FC1AD542F57B4770B6E5DDA215D319DBFFBFEAD9141647A508E271CF3B0DE7C137A5AB999CC88082FF0CD495F1F1FB1E367B57BB400D8697B4620B75FE467D9B8BDF9400E14047576B3AD6AABE0C0714686015B8A963A0DBB68CE9E41FFBBDD5A792920916538E4C33F12EF0E93D249E562B71BC1C252E1DD8AA646F8C7B489A2BCFE7D29A6D3FDA2C21DDD78179861AFC766F6885E9959F753C66462DAA6E01C8B06A6F581104B583F7A5B1B4935A4EF08219FA8D114A963F3FF3AF22C3D1C1E3927AEBC886AD0670FC89C08FD4DF68EB990A0F7C51A4439C32F5F51785B20DC82586940C35D80A91865C3154D6C925250B24D4C1A9E76A267711A0813E8CCD2DDE9748FA0464006DDBA963BBDABAADD377239442DFEC6F7E8098604645D63AEA080C1F749CAC589F77B4AE0955FABED757E6576966D539FE1BE5965D03882279B2C9B6899205C9DE8D0B1819DA8B5426E573CE785FEDA3BE95A18A667AD5AA8FCE7894BA11A44B266EB7571A93CF9FA64C1132AE07F0F24773C83DED2C2885D415ABD96A21A0381811D66952252786C39EB68EF0B9B03BA7E2B66A49BC6CFCD8097C321A932E5CDB11EC6E43A8E50DDE01EA5A28F08F5047C67C988E8B4A04701A0237330598ADE8EF8F801A07F2148B44E593B0ED16DA30BF37A341073C6A92066645BD7042C3A59B374FDAC00F7F69BDAFCAE5EC0AE65FCFB785C93E49102F5A5029876BC23B0FDB7FBBC376A9E834F0D19A276BC4E22FEDA18FAB529F15570AB674B844703B47D726AADE3AD4015F52D86843A01AD5DF086E07A71A0236765DE6A777F94B1D69253A424193FA9DF54899AD9915634DA23E6DF351E9608219684EC8C8C949E900718DB6FDCD144D0BBFE1079C1BAEC516BF60C1E24B8EE6DC380F55E0F65DD64025C937EA89FD12F0404ED0C03CBA18CE2FCF169F9A1EC9B96830FAD0149D4A90B13446347CE4E5C6005BF115385F1D22EF6A7E40EE87847BFDA4CF7FC3135C4164091F49DD08389E1005271E9AC76E27B0CDF360EEBEA9C08E233CA58305CB276A8BEC9686CDE0E2DB5CFF9858029F3A5A42759E4AC6DD40AF9617CDEB03FB1F9D7F112A01B87A265C4E27BBFF596695F127A97E1558A68BB5EE4EF0F44D20F318FEE1CE988051F3C09AF6E142932EFE970C1B0C07040E7F3DB9BA53BC4AB1433F7A4F1E480D920C23A07223D7E43570320B3BA590507D580D29CC3A8C85A442BECED5880350F9D2B1AB5C746C1B9909E446D9508D701204F2427F41E043A78024EE3F60EE19B71B5BC925A2557FAA8C7BAC7E3405C920FE3FB3A1BA7C559BD75DB1E4169804B6627AEF19AE6E41B8A40CFB977C1AF53208F4D775A48C220A756783F41E13B7780328992947D215C5B5682DEC76CB035B41C007CE1017EEFBA426EBC423F710C1E962528F7636F200C2E79D8377D621513BA7EB3EE5A0DA55B81F6039D2E8BD42EBA5B2A82C3F033CFEED6EFA7D970B1460CEACD13A0C67AC0A7EBE7963F0FE21D20B2A82EA922FD889253B5D4CE4D47698D43AC11A8F4E1638AD3A4C179C522A3ABBDF420DA3E89B9FB7608822904944CAD615C62B28EDB15D3826D33DCF9FF9BD5DFD8639AF4CAEAA55F9F8409B4E5F70681BB7861F88283218E15A4282E199BFA12360FFB9BCD68D9BE5A3411FCA4E8279562F595FAAE0CEED4FE675DA4A8FF94B180AE9D0C8C687650730F05715820F67248D02EAD4C7BC0D41C880444B94CCD60A66A1C9B5B6F6690A2E1766EE10B5D03AC16F175603A1B9D49F97CF3F91932E97DE67CB523A38839468EE7681909CE997BFE5EEB364B472220403EE4A9AC1F8A4A8F78AFA4D9010A0127C0A75D3CDD87DD269F19A47C78F696218F25AE8A61073644A4F791ABBF1B180267AE41DD44AF65EC6E0AB356CFEE86095B64F4190D69D60284A1EB42744C31536F736AFFFFF186833EBBF43709BBE6903A06F7F06E8776D2AE41CFCA33A3A86342BD11B67EC10F525563A1843C8443546C1EE61DAF7310802AE9C00F44DBE7E04030BC4D0F53AE2023A7647F08A0BC6F5013A61A84E994FE0A20092DE133FABAE3AA24F8F3946812396B0643721AA13417A2423F96CA8A6529B0E17766E88B2AEBD79AA9D4D31193533CE50E4EBDAEEC976F156D5DE5917D54F9CC0527BB4F1F795401210739A42D10A0242748DE5FF6B50932B507057EECF8A1E37800223378642DEDADB464F5CA251D73DCD28A1E3772CC285A33B34C6701B585FC03C94A847CF7B16616D1C3DD646669546D80A27E9DE6424AA7AF6F1694037E774259308E71E15D7408BC1EB517CF0AA2C9E16B802CC8553458BB66D96CBA233487DAAD6E093235D901CF46F31B9A060D88DBD0B7380652EFC73AC1A6BB5E434EB0394F1EDC937E9A99A3867EB71D6E19622137B009D36ED7F9890187CCCE7D884DFE118AB3682EC08CDA8BA6DD4B79C9C18E7438E6914DC1C403870A540B74244964CA31E730A7D7591E42569532DA8094559241F2C7EC182FF8BB5A3F88DFCE3020D8B8CC0D1F54CF67FFD3A97CBA7F5EC79333D9A545221C963E0685763E59F1EBD34FB2394727896CE638E909AE6DFF41D17EE1D0BA036F8AF11335A8C1B5A0E9DC58EAB9C12F46740493A8B5AD0EAA73AF462BDF43CE44BD0973688D9C8DFF8FED961758E1AF88FD5D249FFEC179FE5AA1D135C0448D80F4B0CB68492CA399A3916A2EAB684B44E407706CC3C2F48972BC9531353091F91B427FA32693906DCAE862F34AEBBAEFD30666523EA9C27354F2FCD99A6E810685B51965571E4B4B5AAE158636497B6F952FA0B73617AE35A8D7C272DFEA1CE06E983CC65A501F73BE9D69EDDE6A4A1764DCC4B74EF09EC27C74B677920AE8C49CF4F18160E04B5AE7EFA8D5D92BAA5E4E547CC8AFB9D55F1A9DA7A6AA06626673431889C9996BE0A473702450B960231A617DF4705B07B47DBA1BCCC0EFCD5713F88F394EC4BFCC49EC24B76D531A356A6796785D755F027C664D8966B5CDC82ADE776BEECA8AB0D9DB6ACF5E841BCB4381828DB8F7358A637D04D97598A8B3BC823B891F5EB6ECF54E6F9200C380813FC3210E68894A656796C9A5B780FF486E6A93DE055B8F658FEA17035D9C212D23BB5974E1161E4F6041E5AEC446D70D52CD2F21F1A33C9938032487D9ABA74C448EEB8F8D51169E8B848242F5C769B471F0AF04E965BB0F4AE7C6F7B4AAD4E283DA762DFA49FD01D21887ADB28781FEFBD931AD8E2A26BBBBE5D88B52E8B7133134CA76C6648EA39E3D2F102177F4237219E06CBD05174D503C9288EC9C3E0128A824A7ABF418DC45EEB3A67777F74D6EC52891EAE0BB56DC756ADF40D39151E3A68719C563E99BABCA4C785BF4C2BB1BD25C7EEE22A8B0C1E90B948FC3A691670E9A3A331320CA4416B492907C3FE70AF9A2E765F9607EE1BB2CE52D2DB15F5DDCF59BDCCCB5BEBAC2784FA0896BEECF38C24022046E5DAA7607E8D2DB8CBC65541CFC6A0F20CC3AC5EBD4560BF5E9A3FFC0BAE917B479D960ABFC99EF84A696CE5A95720FED90F3AC58D77D48BD5573A0D85681238AC0EA8F0B58A01378929C691C146068897C5642DE74D79E08E5B94B101182200FB3E2BBFEFC8B44D2D1203075862D77A184B25A7790D76D7CE88C979D73E599C212F04A8B01EC3CD6CED3B5E25487957C56BEF6AB4433FFFE6DBDEA396212A6870284FD1BAACD5F7A5D9FAB90D5DA39D3C5F9AF196D9C46100BF45861679A7679638BBC8E5B5A7606D863478B430BF2C61F52D3D88B0913BF12597620D337DEA52BEE9CC8A1592698D23B23815C596981152C99453FA16800545EE781F24841FBE5A3E5AD8D08F2B898127AF40A681DF9DB68681533C349109C29D19311BEAB4C2F2DE97A5345EA7E41CC0988B2042925F1F9409D947128CE1D38F278863385A19B2CF8338D0FF31B06FD865B9167488EA157C7965F4679286077894660F17BC7289BEFFA93CB7DB990A0E40D998945A77E536902FBAD3C8A278CFE0AC883BBEA0B20E5D70EC6E10B59C2449CD1A0B55F8252C91CDC87E70E72FEC175D6D67BD43CB5AE4EE9C7F9476F4589E2BBAF89E801D5E14458F8A0B96ECF9F080E5150E2A5004C5A89B735639621157C4056DD1106CFC727B921D5890F37051E2B906885C1CA3999C18FB8C9FC9B652D82AFF074EECA9976D612ADDE990DEA418031FEFC4E972B31CBCBDCA0469E3966FF6F97F9788650298DB71CEDFC04659D30FE673602659C19A869FB3EF4262EF3FFA9E3FFAB1A3FE7670061EBB0D49BC60AD0C774913910E26E4213B76DB72AEFA3CCC197CB6F6DF773F86F12480B5BBC2068F61E16D1C0C141AE6F1811B2E0D713AAF60B90BB2F00EEDD4651FB5191DE5A246A4D8F3E9999D85253FA705CD4B94A6A64D9E9B6E18BB6855CAF6B991494A8DF75E56C2A427883E0C27246E5854B8DB2EB0FE639BDD00AD678D1B61D799AC59ADFF6A8616B357A4B12A786EB612E5613CDE533D92E87D51D47D860BCC39687485EA814DC5F5A971EE915C193ED52AED98D7AB301E32342F3D207BC03546460D33B733E1008E48D80E716FD717BA82403DBB520246AC3BC9CB91CC0ECDB7E35E6863C3C11558A8EAE9E1DC49FBFFC0F92F397828A4AE7107785939B96932B9EACB6BC6D8B3A189B5D3F6B0C7A3A413054B25318792AEBA3F4C77629F1E8CE1AAA98FFE1EF50C2E60C11AD76EDDCD8EEAF858364ADD637AB97ACBE4D2124AC0AB559E85229F1B5D81701EEB1D6834FB215984E9DF3847392EB29D2A428DAE7FAC283F93C8FED86FD2377E8216922D46A51E628091F6F8EAF967740B0EFD84F002358D3ABEDA0993DA16D0D8233090A2CD9C27D78DA0A53962FE7DD282B276A30F91C2B734EAD2CCE5E03137205BD97739F6CD75A08491D4ECB22591A6FF840B5DF123FCA7DAA98B11C85C1F8591EB988024C206CDC4A4239E7A91DE75F49541FFB6D91BE4699C0C0D8B4A44A8204F7E90AB863C3183C2270D185643D6A7165C1D043FC5108C340650F38A8FFBB13BE4BE68858C50A2463F7BE998286FFD0F981B45F5E414FDE71637D6EE77B33E10A530C630D63F21A212E844C2F7A26BED4F7B4DCE0C566CBAEF4EB4BDF2B53E743EE13A845D3C7AD5E9525C50CFED35DAF5D993B6377CF1DFC5236D51151B046F4904A02D7D51B6E331754B0E3621DE4CAFC9D8F7247788DF0EA7E6141FAC4B24608282AE29D594CEC0C82DB05C0087AB377D0D504F64F1CBB2D9F3121087AB6F35A70ECDDD15C9AD2A185C16333BB901CA069BBB0B80CB6F505FB3F382CED72CDE60FC050241B1D32818D11AC4421B66CD85D0F7B479C021AC111F8EE8F1C60B2320585EA276879AFE4034DBA277806FEEACE548CA0A5D36CFAE7B99ECB0236CF4838254A20A13A2DEAAF201B09FD027BAFC3F0C5ECA9EB5850A58C6196645F051E57B82AF4B6C2DA9441358BFD2412864950022A07542601631A00E27BCE6E203B1D3F1B844CCBB2EEF71A12AA4E725188073004849A225D733C77C068B0D2AE53E0DA6F759A8E7A5486C529B29A3EDADA69924E7DC200158DB4B612C62039B321CDACE8294DBB1A56ADC685B0B0122A4F3DE0A264F47B00C903BD30B5E4281B0C75DAC5C48E18BB0BF642F8C2CA194AE56CF7EF3B4529FB9271774108C61198A6894FC9FAF896472D1CE78DF00E714045C5F7C77DCEA45B3ED5BE5AD545D8F3833206340A5E10DD3375BDE0A068D050CB4C87E0BA95CBACBE59280BD5CABCEAFC88F5C05E3D8DCDA6B15C487B62B467E093259230D47B79F36572972BB78F90BD384255CFB1E4F1DFB7B5360EBE1230F154C3645A7A233FDDC472432F6C845CE86B078D93A5BBA3F8800C5313593D66A8A103B01377FBC5C6D5FB8A55DC71EB0BC9904B24BAD2F505D6DB5640E914D84FC71FA058902578B72C47659AC07AD4D64C3D28328D2DC8425C4039EFB2F20E3B954BD0B0483848F2C2D9528214514510CB0932F7506E9B98D0E891D8183A907FCA7AEC068B9FDF7F3479A128C6982BED19512A4271D8B682525B5028B77D6B6301181B403E5F62F64BA3CF06F0EDF321114855839E9198E5BA2A65ED952B2204809215B9BA3C366FD5C9D409BD71ACB748E653DA82EBF617D2D57C74CE37BF20AD8D789DA53C086423D86F94A96ABA379F3425554BCF92F82FBBF5C2A15947455D7D7478A84BEC6E3B9FAA14E425D2C8971DCD157C1D9E210620E891AA4304CDEC54BA7B3352556C49A172EAF19919184CA005A526349918F9A7CBFEB83510AD899BAEFD3D1F689DC3F449153597C8D21FA1C7BAF18E689B51F89B9BEF196193B7A781B96B38B9145AF7338FCFEA109542BB1719C9C8540B551A35F733C394F7831900452C0B8D36BB90824699BDB587EFCF5E8410E4ACB8ECAEC5F96E74A5DD3DCD4C85720064A14028FE768041BA1A13A46CD8A0D2C4D09E724591ADCD5EB907038853D8C92C5BA7FF57D5B54B2B324073C7CD2EACE0C521254E9E5C0CA197FDB3C1AC73FA8EDA729A858098E6F5EC11A19D4F655C6DC9AFFC4E67A49EF62D80EFBCAA383DD3DDC22C2A9B7590C16F8CF23D52392186B95EF9E947D851079C35FA11595682DF4EF4D770EB16CBC3994326B8AB3B2C279149122D178BC7B53318406738290596449D797F61B3D0CC8B11750F8D841FDD9D333A5FECC67CC7733824BBE257D40E53B43CCA19C95ACCA8FFF393533AED57D423BE0C38584A81689248BC7F78CB7FA4C94A7BDBF3015B4072B83748E55ABBF4A334AED679D89E2F18BE1B249B3F61363C79AEF6E1FB09D1948610F77A9927AD6D57BEDA02BB1E77415DD7FDD3EFC683AFB1E20C08284B620EB091974FDF8CEFBCEE1461C210E81E86B61F2D5D1882261D60D60689E39C81B981EAEBD9A42E608A34155516E4E385B86BF0A4AA05E3F99B6B3B7E401724D1442A45A696A189765BCA3240111E9259DE161DADB4E0ACFF27818C631A8A2ABD752773A83DC29CD619A58556040A7B27CF56086BD499F8B8D283683377A21BE120374B8D4561AFE781F246AD987E828FB40306366B4BF4C0B4B909ECA91DC85F521ED5869A2F2AD58C74B6C959AC71DB6F11503F026DFFF6BDE6BD70363B5B38BCA0590A5AF2A1054209A36B41B2A671293F2805568400AB282F783C356DDE30E0F87C001D9B1B9716A7C4021928253622F2DD156B3C3038A077A5768AB8AC070BBD9467E9C9630754934186BDA122CEA503F5E274EAED746065CA81A2702B582E82A33CF6CB3917D451FF59B0909E6BF847E6B610DA89AFF98B3323E1385954EDF1175C0C1B158CB905BCFD9AE7FF9389ABB9FBC5194A45DEB0570C58F31D914F9941B0242717B243ABCF5A20676051978C16FFCAA8ED2EA23B8323CD58388860DD64FA39971F9FAB83A4B248EC8161D32565917B7E6EB4937B4743C6C236E75E1747A1C83377FD1D927D385D81A9EA7F4AE5034097A0A77E2D2EB1943D3128BC0134F2D600ABB929A5281C26EDE1C12CDC80F8EAF2E893091EA274EDA1A246AEA3263E43D6C60043CFF6282AAAC620A21B523783E0CBE33F78C89D00EF8920CD53C6EC0E83DD7E1303D9B6D5280BD2BBA26376C17099758F34C22054DA031C86CC50367C81C3059114A71C565B1702981D77040B0FEC1E89436ED1896E93BA202F11ED2BA4EF33A76F86AE8E23B8FD064C8FE894244C97BA7BDA6BB56B7517C236400F591E4F28050C2958A7A79964AF233CFF8655F1603F6A0C7ACCF440D0C82D5528876721434C163D86858B02C6F6A660F53B3E45185FC7777A629C3E4392AEE4A96D900B0F19783DCB6E5028B6E56E160A37D37FACD7C3B992773ABC8AE1ACD6AD41E7340CB198C9BBEA1CDC185AEEB51E2620F0695C2691A29CBCA8E23328E84B6882A59A8C3C2A273CDBD26965564F1F1DF0B2CAF83F30E782C049DBC00596BD85426EA90ED30ED8EAE8A88C0D1363E69868E8CAE56E8DD62CB36D9A15150FE567DF7DC93CE78706BA983885155C9AF05B5FF1D0EBFD9D020BAA9196D9C871236DBEE8A703BE458938D3C882719881BD49476386387DA3508780878271C0DA821BAA1E9719E437BEE6294D8E4E2483932D0257B44B8CCD8C55028B3B7D2BB3866216A7F52CAEBFA0FBAE120609F95213BC05AE24473C98C29F4A46D985336DF8305787A0374098DB279EF0E34E6DD79BDB106EEA24E4DEEAB6DF35C58AE73FEC926174E0942D242AF0D30825274FA1D510D1C0C41FFF59A4381CCE5C6B89AF30C41733EF42E76C9CD58DEA7E881706843BA04E3A170304C551B6C801CAF9B8DA52913D2DD4DC755E0BD7C723C4AA5B001D9855236401C1014507CCB84577749DB1AF29E318241D91C4B23BD80549CD1D6E0D793E966A8A7B755552F16D3A1146B0CC6D92C8C90E97D7EC8EEE7C365697F93AF257BE24691E41F2AD26BCF47D52A1B80F5BE1C658616537630088CB6E227B0EE6EB8DB2FEC0284E58202A73CF3AEC16BAEB59D2A6E0257F0ABDE5926D9A13D89A8B2F69695BA3682E87A77DE06FF54892F56581FB16991654F60EA22856D6FF9E0BE2C4837F0C1F6C54E840F67A75185F0DE9439AB1E37D4FB3E9757B0FBD17C89DF8568755567C390032DE93E9C93E6C89B2E66E9E9D96616919D9FB461F9F33"""),
|
|
TestUtils.hexDecode("""
|
|
02dede66fc74f94ce000d6c4898fcf4464b834b848d2bb2d98d3a5862ec632dc9636201321c793ab26e4a42ae4f13debf105d087b112849946c76b54b801382b9727d65bc732a5620e8f4f158f0c1737b0e4ab8e7404383f76c848b36f58f5f9d70ba14a8ebf622bc848a9bc3e116fd7b2627c41ccaea47d493ebc6d3dd167f79fc6ededc36c809ac87e77ee1b006e96ccccafb88d965bc1cc15388e6410c68a74d72b6632487c284fbfc10135da29f29264cbb9ef620c2668066a2fa80fcf2132e93a29383e56c8bd89b3aaf8a905d4e60c6f8002132d38abc3d3c3b6fdc6cf508c8f6a7cfe9f78be8445f00a13414e41c27ba31efc46d0e028b778ca57b2326d624e3af6be0d4cb2a80e44b3f1b83bf572e8b7516b8e4715376e5da06bdb7d487d6a2d268afdf5654023ef4a13aaee221fdf7b9a668b2f4e1858da3c1ae3a7a7279163ca9c1407e8c0fb69f0ddf75cca64f4b0f277acf9c469dcce264b8f37f9918626dcb4252391526ccb4f068879809a2b115ca1d75d7a1ddbe5c8261531a98494ff634dff81515fe3ea4e289d75631ded8b8ada415f6438ada0738bdf9f89e986dee9c80d82ec13aabf10849dad939e81441fb063aa627c4e316461fff15e61c85821bdd55b2cd1545f810c1f280e7852604be73963b75e33eda2e2300196590b9b77cac44d059016c0b08a2f18f18ededd8dcb1474b3e088a6e84c12eb0470cef4b409214eb47de0e277de2665c661ae7766de5d05bc357a2db50ce51d9087a66b1d3715f5be97a9ac56ef866fc3bd3025738d4310e4761b57b3f901c5165df95385cf70f064a760b37341fe2c8466aca8258fe821308d8be08f4d569e27365dc4be8a2ee4e5e13f9d467d8b6ea272e407386e9f448c1758858d038c18f49dd7f60874cd4059b5950b8e969df6a2400a628759d6d7839488674bc128e947594521a998a7e9aac9d61ced0aa7629035bdcdde11a82ebdee6145af1f9c31ab104219beeb4f222e0f0e155e6b67160f09f6ab6943a589bc4ea4a1eb3231bea73f16da8998af58b8f71d3aab3e2fa736f3307180e6d777bc5ad02be4d7c718855177d7c1826bdf9f3848c1b9b65c6a25a93af48c728b6485ab765d36ebe3fc82104d043238867683169cf120dcdd016156283a7e6171167ed19996ac57e4691ca3f49b43b03aeba25fcb3d5d89cfde475eac580b58291084d8f7d554b463b3620a63bad5c1fdbbf98a5d8200f0e0ff1aefab7754e70e4d666e0b31ba193fbc70d4dfc601464a7642c56385abe64df8f377e2e7b7c451e903a13df6020d3cc7bd73fac7f95dccc9be71af4facc9edd60e9e5cc5c99bdee1339fdde03b3342a4c0635c71106dbcc4ca3ccaa8ae7e0b9ce740fd9a6fce8cd805937b3daf103c246d3bf61a10eea6af21bc42867e471991459ea895bd74d6899da56c22ba33294cce17b88b39691c493d7ca312776dffb953720f02fd814e6b9c96e4e4a9aa6e2d255735ada1d02ebdefdfcb74573c77b4b19f751f55e20a5229a22e326ac75858d7eb4c7fe9a4ed48dd49be353269223d3021365569da4c2cbc3dc6ac620056c5aa7382a363f93b894c0a4fb1af983d90d8127115837531e9ec7ade4a419051d503c1501afdab4d9b9b9a741810693e256e3f03415901ca0eb9eb74083d88d7a1db546c4436e3b19f3be3da87a6e4a7033d0cde55ebc2f7123b750475886244bb6444ea293fe498fb1e98d9ef7b31a86cf05cc660841f0b21a3ced89cffba8cc08112fb9c20a8abaf1e9eeb7fc7c678377ff2edd2e4c4d3140bfa4106f46a8b137c4d68985dbe4b8d67342f409f75a3027dc6a71acfdec2b723a4e1b96a12e42e49eeef5ca77a8961c77c39d5542d5be19511d6bd5364ae79cb254da944281ded04e1e06b7d4de33e40b1086de49543e56e5d7d4ad2e224f31337351707819f96d36db4d3a29018403556995a098cde94138f71cefad7d8dace8a6e08008b22aa5d257508cc4f6a9811f036e7715c67ac369b6d80c425c79a8ee97c094c93dc18771394a56dd527a676d660472b9fcac4fe783500676a9aa6b0322752a73ab982fb28e5eb4ae639033340b9ccc8ba036ef1164d293627c41e094bba0bd851480d2f91ed8ec8a1d4a229f4d08dc25b5b7dadbcdf22b2269cea9c7c6b886ba74bc156590e440a9a0e128a35ec8aec4eac360fd9bb61e9804dedfdbed1e17454394ddaf851c73327022da9456ba7c4edbfe7a0031458088f026830c3695c5d89a60810c2cb6543880b892d8d5c93214ef78d8e7538028419592df1f630144856ea1ef215ef6658c350a50e018cf0dba35fda2694e1efa93cca66931d9560d90bb434501f5f420b8bfa02a566126dc2bbc9f4e0fb929e2c42637de5e2e77e07659ee590fd3b8facbe7847b9400df4bcd858925c15cbf1a385fd395d50b9590c154928cd95798b735faa3acdb4a8874672041d585e45318ee942b3e36711dcc706bda76966cc0100f14014f9ea47ed9c924035e2138107f52dd26bc5d0312879505d7ddb3b468765086169e24a6e1919de2eb169acb18267fd0ab0c468da0ac6436acd2c4e08fb85f134e648a992a69cb871173675e87906f30e7cedca148c00ddae418e07e1aabb8f82f53127635e09cd898b348d4bc5c575cb6656d4bf33af7414bd26a84b5184b9be5e15c384902b1c66a6bf08b16172ed8084de06331119df75913d29ddf181de3bfb9de1242183ee797309ca14ebfd5f8ac368aa72ed7403fbddcac4077d669930d742240dbffc1a2b4a83b043d904285ebc0937c087c9025c0472a2b6e546b6629cddad4b9e60d64c01e0ed4d4bf8e580013e2b215d24893b3dd7629e71cd6c9f906205ac2a1572fece8a7d95adf21ae18f530a6bc18291f22e1b05349abf287d50f1f6724f01d0cb3fb7e0a576997c3cd9c013ddcae7071a7edf496605715568407f86ea78b20e66404676f2b34618060e180e4f9dbfd9a70a1f96acad53deca1db22d87342ad2eead7289c7e481d2068a74e62f9c9b90eb02aed47b57352b23009adc93787eaa74c7b8981525eb077fd502e6c476f6fade93b53c29cea27cb4a7594b55e4ca11b66f94ecd43187fc23d27bc72d0f48a23987fe95b06940a360e9026a022d2ee3a11eb72c8573eea76accc0fc2acfc61fd9e1655c77bd652a5dc40de7dd0182ff371d5a8d3047bd82a69a4b75452dd2f4409c5176b02488b9ce6e8b5c0173d96e1a83e5889ae16b4a07b09afd8f11b9b80f812c9ce794da70ce46cc3e31e24325f5358cc0c64deb9305941c0511ebbdc302c2e362123dc4bb4c9579c6ae2f692949e92a76f9aad182ab69549702421d94c5625904af24a42620f331b8ca6f8d6ce59306517ad93fd6d1fffbfbdd16f4f120540753a630c0f56b178b1672504d1cc0a20bef9d93c8777c036d881a42a72dfaeb14a1a0b60990a8c27f978c95ce44edd72e677d3be62dbd26b3c9bb1ccf1128f79aeb2a41f6ba6d021300f0ccc1ad36169bf63e36b6da9b3a9a6e54815d3445125a2d5078ec0eebd58df4487919fadd4977129aa61ac337f347b3adda82072d758925f4ce6a5125b9e4f87dfdc5cc4b3af5f9589a9cc4969afe7c6b99edd05462d1da3c40d785b8067c4c866a8579fbe4d94786e0fb0b717c6fb96e2e3ebd72b6901acf96c0fb174c272f3559898019a3d87ebd6d9ece260ec913300392b541a1efc0811c10af0671206345b46a588abc932f58be6149ae6591250a8740dde925cb9fa12150c9f8d191163ecb613418058769c54f883e9c0b533f6d8f568c6a907c227d16054af09c6c73676f5b9859beeb5a762ea323eb76853f4a3ecb113ebc42f9c99d89e5869777448a26c40407362a45730621c700e3710a65ef8a49d9c19a2692bbb37c1fb4573498126522468f738da44bbd4a719383582244a284645b318bf7de280d1b9b9829af334d24c49c50fad08a3c1c630a8e682ed700682998fe7b121bce47bbde010fbc9ab70494d5d0b300b846e8987efee9ce09cc1bfcd828f18ea2bc4f40440f89ed48cfb103a80e77e26967b7ec56740d18ee40bfc9fbc6ae8a0d7f46f3bc09b7dfcc590b55e3d8fec26e7f4dbd7806f550519ba3ad64c15b657fc726001b0644054aa24f9b1dad492dadbea8082b176c5fd819a8e73665751578e74ef32779127616a28ebca4be7270c195ac077fd71627faf95fd02f3b6dc45a9f47d3f666c318d752ae08c17d2385e810408d90fe0aaffea328466c5fa82958e840ea6b7ec4f2bc6980db0f3a86461f51cb55dc262ebad5f326533b6bbe0d9c4b283f564949f9cb05291ddd5371af7713a088fb9033bce4436d93190fa742dda242d725bb1fc261925efed8df4b6e3040b7e4989384a464752833f83a087ab09eb0d2be8320ffe552741a5a6b90ac91150fe3df65323ddbfee23f6237c623eb57a44f7dd67be498c97bce8a03dc2f695d0a41e270663a06c67819f4ba401a45886d78853efce02a00335cffa3b47c29b5341f43756fc5c180edb367aa43f104be106d233224623da7738147527e42a904f5a1fcf1d35261139752f9bc38dc992095ac84d03f889024bc8dc211a1b41979ddfe455f696b8199a2e5ecf61625293a6e8f9e36718e9097badaf37098ace700000000000000000000000000000000000000030711182024""")
|
|
),
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
02b250a84d15d015d65daf64921d441de7eaced5dae8d5ed5aaae0780710cc6f297bde76b46a47751c9af90b775ee5fb60558c3223e3eb5732b02721aaf4b2c571e7ef940126874e4da1e3caf1cc2ad7e27ce78891f1291341fdee7cb3956ab7ea4619840bd86c7f9dfea16dfe4183317150514ae0802275ffa49f6024b73fe8647141425335708465313201426464485346242381251600248884382713606716557375714102105768868264738542155467388816816356812542627664178831841037254605688411724580237205731280866143526825234680318656422704153533366183723757466871843688178028881525836875501828568435457286665223064636185645230082113325530524164585450807060828648444577380467366336754361347002616478552715650545343028378024652505823347436461673212376362234025530852856734378445453462845284101853812575565581884827462217026026422104812154576826272426053254068887115864026255272878171100133062131322881708327412284661110206142314411622224337587412032420350668587700242526761482182726675778500830622782044207773116013105023034233776328272350126302720568518583358656451354230083043841277280712565820402201860064335052181175517311735442231750885473485037215718385878270138340154607044703158207867761262843151363863357713438131822607823220673301000044571035402768713538116316681661333581683446254512203172240767614876605304851065554516305534873744587532285306102132174272346747240832551816548184855245064521871825764413883184880638014732810482403611487478652300457226475201288323730148184350722032842227130834781121602654604023710282810767482168615127440306717714253337676650252810422380412017358174362723207845211345873075406185684783381847626578275162801521336142056152170155712241310876237617136086741136380504866038451845470225151278835071185512660605346805647733377213630110431352442082411744260720818165866163256467725736467210364865838535371781843306701265611455343258201250377030186530054148020488730682653287712420076332033632152360007738566311722306842342001442552108785228736068105822832556448320553027240817753888583045860088518418735447717834455361718663826710688326265670546627753121815634362520041561353322020182806804003170603630646666735317632666212644884747232226042203107541782711326203571075272838712027837538612884105214213440255641088764071225378263327161071701133325304617456360706381304876424815454081020463654588185224521206112700043112564040383368163743670720762520847703261453336085324624132272682450408103756773710773186063277457057200638057521356383470147541687564530335405582586576663835354166674556028404827843742364212470042005558685247530877324355223572703600740553684760470530433178478246407657755282728728664872333848341350211277700011176401760584128238436637505138325505065217756818608062404186640767275603751648614303125612236426720624257485313257806504351724443061164254862845182170346255843504017541208163705313707842235716441111165511437066602366003214233060621717318057200645070765311025637234215854421157547802133221647713605385536202724237457842541827665838172167350548151224528361420224511555686218886503218704567755513515188462180482327014724401365004608425761256824684371031461705077834160654441852347634061406138085734353c75788bc566b064f5526de67e27b5f64a800d39cb62e3aff6ffe4617aaf109673efda26bbf69d235d5ce4a5b9d07c36b392cb04a53fa09456c88242b54e4e96f3b72447d6216178506c1f380b2dc277ff6d09613d7ee8aba57fd05a35a69b850ee29a90c857e06b63e904e73bcdf2908c8940598f4bd78b1b642879c8f635c908f7653df743c94d8482f2f727f9fe18bc78a590bd0985fdd040f7b879e2fe8858bfb442890e584c3fd5234529e2852ef752edd0e24dccffd1ecd9f78e3fe754339e1fea97d49652dceb41d3b7209558c860d82f25df260d8a482b3061dc1161ac6b181a4c2bc1a5b54616d0b65744966636ae1ec8bd61c7d7432cf5c41ddefa21b2d84b3b65208d13095cda462cbb08a9d4cf071fee7b6dffde22532405dad2e96e6b5066af20abb7a6a58c5d656774354dd504cc795552f8c2677730e31ee16f39f9a19351be7fb01716b121298da000653be35f50ddb3e7babee81b455eb30e7cbdd4319ea1af95c5ca3980dad25fa11fd69561ac94729e63d2878209ec3fad599a52f742b1ad9fd58dda60ea1ad7b4df59629a6559cf2999b7138510e14a55ac0bd242e92d12f989254d5135736653be42f86c004ad17025a0a234ba21c0e9d9721b46396d5e9a9b95d3007e59a5673d28d3935bad4d58fed72920f160af1853c624181ae74349a914cbfdc01a50e6ec008263f70fbefe9a939e1ac02f370545237a31abf3edfcd0bf395066a1349a99ea2c1cee48d46ede993a300253634820e60cb6340aa1da98a83178696d21c1e701f92133ea8c1ecbd7dd199cdd7e6809197978f40da4c8d22d1f459a8fd7baa08ccc7c5e16951bd523c84181e3d7fee55c8b1544068af3d3cfa6bf545cff8b7207bc288fc6ce3e6db3404a2e5c85005a515881f4103084128e29858c3fe94fa2f01cceff445d7b57f0d8cd12a983ebfa0b5c857c9fc1e37220f82a2df00043867c6fcaf3cd16cb549f4239fc42da69fc35ff58affeb5d4013ef14531e7a6fa437b910989e7f5a75009023702c1380467854974acf722090a7a8b7721941501a34365fb1baeb02ebf3b9c27c04615c2cbe5ac506c69d0c581681d2bd3f8b8f8af00e34ab4e64f21b75bb443c41edb3909c0f5b899df77ea4d4e0d9f3bf12cdc91c010e94d74e1636b0e90c47f1adb2e6f31dbaea300bc9e3604e81044dc4c00a0ed3883682415099f8297a0499fae7d26a0c7017e3abbb8211b5b5dfb24bebb37b1e1dfb9c3de36eb45bf2e0e9fc6faba5db70adceb53ed5ddac5e5f097e6b97a8a1f328e08e0f242316053b163bc950a065b2ea29996e1978dafe0d35263ed72d3d2748f0e289c41d0245a92acc3f06fe4704fd5df117d02350f01cebf300fd19be1c710b85b956c75707840c24183e28a4b455a3bc804b1cf4e71209086efd7f4ee877f341df27ea2842be106bdc8c57b86e127a359b3a26fc148f754e8ca99823d9055b45572f51417b0e89ef34c1e36d4c6d9fd2fdbda0c2d084760583b8afd08e5f25944fd3133fe0fc6a446b2bcf51e7d3473f498ddd4d50c4929c164ada3149236e0d9ad31bd14bc0ffea2ca972c3e7cd2339eb727fdd73b00a958729b9ee58da1a0057483268d5c0992bd0c49a5272695fbdabea68860b4ee535ba1c94fcaae8d74df85fff8e8e5f8146147fb7d0cf1c267981019661db028779578d772c5d2bde7574db97569b9cadcf0eeff8d4226f687f5d1e65b209e5a9ac2941ce6c26c2c0dde60a8dd76dcf124fe32f7665af15d86ce0db8aa4e0e662c6d1f6d319869f1dc7e51a4cca6f3af028e11a837fc4aea7b00f2cfc52e71cb126944f1a7599f3945348a828c6106fffb5d88ce5a234cb6e83f0a2bd3b63a7680f69ab58970a32275a2aff8dcfc9ecb1e1dae60c3d57dab0f9d5ce5420d5af282e025ce51e7130b86a88a209ceaf9a351ec039c9f1948521450ade546aa06a2a7f77c59dabd381b688980731d4fc7754bb9ef99ab175674ac3de181d5c5b21a22a1d2a54ef81566f2c2d157e68b0cd76a1c67896a12a933c0839c7b1ab3dfbc042e426be112b988752cee46cb78c746f0f2f7c5b77a229441b9f338fd34c7e882eccf38c9b0107b9409bce97194ac94c5e26f5c3b09a9ebd0d6ba206ba8a06291b4e4dffc1511c7a8b8e15afaeb5f3c96c0473d23d693b07435d6d2668d67ac57957def609df4ec6e40edc6fdf2251af26a0b023e7236e4c9b1b5b8340c19d791301dc06611c988e8f1d30dc62232c7ffade76b31efd49c978c2ec271f1a2500e5d48b056c3dcf367fb3ef7d4574154c9e51001fc0428ebe89180a68885e0e3ffc47e273bd802874d876c9b8bb1da540e3779b1a1069880fc2b5db177cac551d70a780c4c24fe90b9f252734d0df53559ea363f88101d584dab86977bd9e643dec35a6b98127aabddbfb60f42dbd5fc83e0ea6fe8dd3974f140fd5aebe7f96afaab7f16c49518aed0711e8dbe67b222029c3ba237a9058d09cd740c91e11ae8fb0a343b85d3330ad680080e52f9c7a67cb27c3d6f9f2a8b69c0a65b27870d23987414c968652475896d420f13ce0f511d394774b92a09dab3c89770d0e30fd56055dcc88b6b25b6f42a30f72e37fe2990c4b2faea18bd9f77d0bb712ccd2635ad98d5051ee593f82b2942c520b64997c2271621c335df8a36b4564ca3f80b02b3b6aa0f5317f7d4062b8c890ffe003be32db5607333fef37fd415a37fc7e987ffbb305d96a6bd856d09eaf7978b9f8343c340c477927d82727e91110efdf462132ae09b40101a3c26e9657b777e74ecec165986fd1f392e5c5ef1500d5e98cbb3440075734d0fd38d05ced139589b1a42a1d32de2014cfcfe5b32ac85473d7a877978edf5535c93a2e447f76972ca0d9fa1011d6eb55953ad22e67623cf59ddb2e1acee6c0cd762b565d03e547fe26eef6eba891de2599c1b0825fe70f2b0806959947ee2e956537b7840d982492aa295cfbcd3668203a3d02de4ef54f44e82baadfc4efc50ef42dc005b3dd186851ff44003b74bc48ae4b8c8a431d03af1cd23198e4a8e2da45d0b134133dbd124dccd3a269d64439e79753c4b1074b27a6b99b0339f5630158641c07001493864268ab8409ca6a986f8e7353f0e1cab155ffc60f6f8a70db47ab74d16e271c0e669c2c8c4630470d1397aa40c3040f93fad09033413d96ccc2b1f8b933c7c4d215000e5c4e7c6dcfcb4519e59122a80506b96a4a00dbfc7c02fc29a3360feb00e1f5cbb999f773c1de0f6da976c62b5ef787a3c08f07db51ffceac046ea9dd8f5cdd22eaf7c2ca3be7d410dd87a477df1a8838eab8ef72ea38e5d99c594b57c2f79a831db704c393c29c9659db0dd1082c8df0130b8b0760aee0685a289d8dcdf526f3bac8509cacdb96625af6339664dde755e74fc8acba8b6dcb57d79beba260446e6cc33ab2c27263232db07ead25fae4b2548f652cc193f8a0e93ef835e15aeb18e401e3875ba4b82fac32cab00b3b4abe14a8bdd235971fcfaa8b5852152f0b"""),
|
|
TestUtils.hexDecode("""
|
|
320D1B2976A4A4673900C7B75B23EDBC25B9AE867FBB79B55B29B3780EAE8C159A3AFAA47CF1D9E452CAA8EDDA3304BBAC47EFDCF96CE92DB1981A5088F731E1EDA1EA5FDE9A031595A8F268E92B4D75793C6F408F79B78599D93E80066F8C4432911828A87EF71C877F55B1F18207F01820C0153B647205CA93DDD6B78B94EB59E3EAF01B66953951ABA4027F811877B0F60C9A5AE6281D82348E3EB749C82C81D53309F9B7E624BB1BFC6382F43A58D1951F7FB716C08DEDE4A8028B50544D0F26F7B9DAEA0CD075C3B11B7315022A37198F0C96D752798E0EF406875CE86C367079841F717261A2B6570A8F4F9BE1EA305E73BC8BBD88AB162B4D4BAE86CCCD406A0FF6ED5A968D4C985460FD8FBA5B3FB40E29B6ACA07F70717A0700AD3A0BB7081E09F7219F3F8829692C3DF91C90334DF9E89284D65F7406188C9A1EB7B5C491591A20EDA9399DA1AE8C0C158588FE1426B763FE9D11223FF7A05A3DE036B67541C2811AA459045CE73096F89E6BA672CA7A546D2B0554DB35C547AD9585D14485AA812BFBC88F7B248E03F2EC57043F4DEFC2B27A3B20C2EE7CE334D428EAEB228350A3ABF4628C2DCFA84BC7435818F91CD67F70F3C7D54E2C205E55BC4ACCDACB354470FD5C246F32A542106EEE0EDB38F01FF5C4B657C7C1A00718D2BFD311B8BAB6523351E93CCB44274B8F96EE343830148F5C8594818777C1E798EFB45AF1D2A75D22470B4D7F7C7A5938DF3F8288A0088719C4E36018D9993F9E69B8469E5F2ACF1977D441B82E5340E5AD5B21B66051513553BA1BA1C1D5F788C47CD3BC60079300F6E3D9F13EDAD4DF8521EDD022031A3D74A6A5F32AC6FC51C67F920233C5079A2B44BA7B8EC6DCF9AD4667BD26BD07567E078267A1BF44B15E68B71AD38226EDDF138D2A599944F70D47B26F775BB97D9966845AB3E6AEB96E1414D3BDE94160B6DF19E03BA1BD0361354E5078B3C5733B740314E2DCCCF8F4C9CB179DA62D5C982B223CCEF5F29D7B673680DFA2823A2BB279EA45D98CD91BE7D52E3E386B98B62DF3FAEDF025B55F49EE6FB5E8DFC9F70A4F093EE3898B25102CF3AA52E669D6EC69BF6C79457BBBB7CECF65B1E948DA808025A242841FEC6073326BE16C2D1953209F31BA4A772FF24BC30376EB994398D4177FFFBCF78C9A79B7F1746D077AD146514A2DE0AF9800255F3A11BA661765A7D8E8E7FE5FA46BCD1269E278555186D4BDDD03FEEB70BDFF7E5F616259ACE39969CABE8D4F8F23544918516C977F84C09D6A6749B1CE719676378E82F9B4E563D67AF7D911233F2527B5CC5D0733360CE15A173F10B91360A3CFB08EB44A09157559A0CE8B661AB4A97803C52F156627C642CD02CA5BBC7648833F2CD7E99D2A7AFB736E5AFC4FAE5DE19ACD2F5CE3E3FC887852758411E8C7FBCADB1578964445332113F963AF3E944286DC448471125E55A46D2DE35E9C0F6DD10A3BE4F1E4BDDE51A16F4239A1F6A535D3202055990606C0065C542297D490553204A6E3CA16A7FC9A1D77191E5C01C1507A332C659FD6B11FAE088BBA796F18886195A2B8F5B0064D85F56FB7256F0FE70E9C06ED18B7C8A75ED97A1DF482908D2E3E8D6BE8D0EC8020451C687D10F829257F3D09FC47C7EF008B89E2312792A25EEDC71E9835674CA50235E0A6C832E7BBAB458725EE7BF65D26A0501C91835625C330B0F8B4D46A0762F7773D2415A0DCA573B47EB8658F9EBFD26D9F6EAE9D7A7304BC690F8D2F60C33F8A7D19B52F9340BFCB2FFDC92A7F9ABF85E3352E46ED7591F354A9E19B70A3B247E3E4295E45B6A2CEB59B120B6758654BAAFED2120B226FA778FAE5350E756741093083E4E56A84B64739695C1C09EE39DEEF11D7E5BB7866C90FC9C96CEA071FF82F145592443BBCD6B7CE848839B641C4522016945F711E86152820275A6E16BDF296D34AB38CFF06A63756DAFF7BF230F024DA00C4128F025F091F4341620E0EA883042BE731E82D21DBA6EE737D90346B6189697CBF41F7C2BA7C9CBA20E14D26CA578FB05E92798D57C0060951BDDCA5D96322AF35D80013B48A79AB7684E1E1B040315A350DCF84389E54C054AC4C3428123E01C2FD66FBB2C5BE2D16B22BAB805AB59DF205B71764E4AC9BD4B2D872B8905DA230623C65DD235FEC253468E53928722D1F04C486B46E63FE63441F11B1E3617E9765D4F388D4A2B68B6C86C8E20FE0F3C48A561A0FF5070455C43A7FDAEB58ACFD4BF51A1C37B7751ED37BBC73B9C29DC4FAFD0A8F5FC98C7FF02B404AC08A0728FA82A5ADA4EDC195E679D88187F58004844065F281A67FF0A2BE0AF94D5C97ACFD43683AC721045FEF8C36DEBA2E3EFA248DA65837046B62BD6CCEA84CB1211C5893B0C5F0A5922A989CF7ED093D5D706657AA6E79EF3FAD0959DF594B9CFBE779"""),
|
|
TestUtils.hexDecode("""
|
|
c344d3409be7db98ef0a349092d4bfa68e022cdf72abd10851fb824519086e7cb35ae13a93132867d90ce67d9c99315a3c548f7bed393d9eb71231bd9cfd951c53cf8a7555c2e8899d7914549a5565d8531685c7a02b82f3b95f38fcfe9c24118358f4dc4b0bad89c5e169e8f71e97e5f874bc8dea40c70e9fb2322131eced692b164c011d04844f0cf95a663a90e0409f2b36d8d936613343f6078751a082056d1c077fff3c3e0bbf5a9edac10d8ee0be319df29a998e5a52f06dfd12c47eaf72a457b18c73bce7931b74f28e2b3ca2037f0711b8a4755a860fd79bff06218b965a1e1368128e3db4401bf37185421d4b080e20a017f9695feb484b7a4ec6623cf5f82d99d1e0a3873d380cc5ba715021cc8b24f0839d10eb2b1679098330d772a081bcb20ba8613bad19841b411cb84e4f9bce9449b5d1b79922733e0acaaaf3c518d316c63a51ec49f4a5f30671df7b36e3996201fc625c91ec7cb621b54f98bce47381bc062be82eebbbd2196fc8fb1f26405a80a1cba591820c6b90f9374406c97020e0d8bbc4cf71d5379d54e3412f69d19b59237669e1751355c1721d097f07a218214428348ccbc0c954ea7029dc6aeb605ed6fa8334206e230c39ed5a836664a6c0b848de5c6a219a63ff24264ee44ee5d9f068a41cfe62cfbf885a2bb4c71f17863f5172b9b4203e9e9f21e0e744807277cabd3094d2727d78f930ba8779af85026e45b809b8b3ff259dd8511981e7955924bc29d448a5175c7742b7a1bd7db170c55a9831631267789adf7952fcba1391fc4eaacb7c3429f43a2b634553d8fe47ad9f39f81e54b0461061f6f67ab6b72a25e99801616737e8687c738b45a8ff6f05f6b5a30c8d87f6bb4e2d4aa82ecf9f7ff4d1a6d6b5ba61661e8a75d4dec3daa6ac96c0abf7ac09da08efe3eb73ec0de8ff231078bac1cf98ee9ac6aff210ce15f8cdabb143ec77860bb090463c0e6b63c0b12249633510404cbedad4eb85641630cd131a7897b46443008e79edbcfe471d37159a27a9622bdd6e34c1943e0b5ccf35d8885a9d584f6a54cfe7b1b45162360b573fc19055f6ac05df20662026072faa0f0fbdcf4f9b7d89d77fa0a3ca7ea0d857d0d9b94e95a406bc039799ed56e076114dd9f7c8c028c97e2bb813d8862da972b069d7c1e251487472c291baa0c0a9c9f349f29091d8a4332a56084e11296d1c72b7014045ee584056e9822b113136ca9fc27b1487f64e4fae57b31df3e6e2728fdeddb4437a8257af982cd08fff4c4e6e9aa82067182290da938b3b969e5ef0d15717f0c34130cc2d9bd29d9a4ea6707c9a45830c66a2598d8678581d9a389bfad0e34c3cf45c3596aa986380458c5cffc1dc06c5e143952a211288ef0d67c7375f0d9f59ef10a55623af7b6d2faae4802882d09cafc9da95e7e0254b147fdadd9b8b28498d625e9b0603c9e7e0a710d34134e6b4d2e31003ba30acb30df03a913851d5191adde83fb0278aec64262de99b7ccb1c6ad5358651f336083f59089beb924db5af90be237520b5354ba63393c2514f2f5c815b694258cbd56cb7caa5de34986f214c566305163782b9a67db2f1e51c0172f757e3c8d9804cefb63df98d4297555aa95781e8c1114d5c53b06491b2c4463790030d2d28d159c071c081286071d95cf5fc624b69eda6b2cee5d84ba30ee0b4357eaf5429c26fbcc455357de8730f0b50aca059334ac5af33c7169208be3b060abad80a41d5a720e262075442b1f514958120dfd51927363fb0b43767f3bf4ba7bd2669f79d9ae38c8b244c9a1334f802e7295c1a5b2d236edb5ef8eab028dd2bd8fec9f0ded1dced5a352f55f4b502f5aa12a3131bccbc88a2dfe990cf2cef02ae787db30e8bfe26079bed383e363576ee704e2b2b3b6dc0254ed4039bd0155fafa471919703f632bd8623350cefdcdad074337d5ea637a95f995141b21fef74b93be8fa18ada82dca3bb6ebbca0544d790ca07c42086bc4908a4dfded5d0c09e8c8d4382dd30fd6c586d5c379fdfb11f69faef1dbf46b0b03432c0b9967e6c7417b2488aa22682c5ee0fe6a08e90d6740af02f131c5acb53fed64329f8f108f53d762736519923ab734654f968783dfe8d13d715e9db219ab7441fcb739fc75913b20334155dafe6b85f28512d71a02e463e8f58162a2075d301d4215c61164b5143f096decc998b006051752431e1d1d7d109f92c986c40d2a8f17ce6fe1c32c33631974e47c73b5512697f5e3fcafcab2a4f8b462685fcd5c19decaea96d45a7c3d35eb6b81d52d3d300f4f94f2f831e3412b12429b71b46253c83d849250072c035003b8f4c0c7376e502183848ab14ed9f8b6ed1c87d554223fba1bc99d1d065cbb945de8968fe41c161c301b3cfb9c181ef3bbc120cbef645da02c295d6ed66925802868bc8ac6b437550637e5a16d429dfa4b124c1f1045174507f706d3c01f9343ec58bf79e5611109530e2543ddfaa2fc0641c69ec8f3947b4350bef318a55998fbc25686a5e115c35db12a12e77c8dd43863c2c024745410a0fcf1560f1a902bacc961d931f793238684944140150a99f2894748d03a83e030ca52fd83fe43bb9b7fe43a9451f3850f92df5e242a1e75c3a101efa727667ac45164c35fe7143b4ca2119d76980506e8981c4990c8f391a0c9416647554db2c46256f3e56963bd4f7ef309914dedbd893fc6855caccaee377d70cdd54c64ccc3e3d1c0e197684fc692e9d64be1b07af246bf6d2e4f38d2e8844e01efdac0b24dfbaf32f08492a99b38486a8db4661dac565fd847d83993cefa810c42cabd357b3b1d5669afb73274be28d637d8c2de41305c33ea3569f865834effe4ba3cced51fa00ea3dd7f442894bb2ef9a92378ea447fa6af9ab8b3fc01ac45c7221981471aa121d59e77a1d472906c437004ebbb168cca7f518145494516b1d3a1aaec164e5f73a96c244afe367943eca32c4e61bb5766122f1f19e9768c4eec5d76f3b10376191c5d42005a99eef0fe332cf5cfd4ba59f725bd50916348b5704943cd5d14bfa826630a9529744148d9ebac15a84cbf6490be826ea51fd42e505fe9e74a13ec9a1ad546c8c22e8d498ee7a0dd75387240c3d166fcce4d957fdaa53d0573ed995a229e2744bd8493d44d774910625310b4edb8e46ae665c40599c7b48058f104199ea6ce1070a37fcb383ce4e2af436185c4a3f20e186a25b8dbf4dfbad8304125e186eb76b6f6ceb7fdc51ed324272945e44b0bf11ce27b5b6b683fb4efb7e168ff13e46f1f0f4a136827d8d56cc6fed0a9fc8a2abc8f5c06d1dc0de33042c5b840c6d66a8f27331645a87fa6710f9f057685fe00247cb7f12b229a43f539f9c4a6727a8897c69d8ade9c2af6538c594699a9f428a998bc1e8d11adacba134649315ad51f73c1bdc11d8e5eaca86a138ad934b30b376d754bafb3fca13963eb800818592eca6807867d9bd23ec931a343776da195c8d43830028cf4328701faf124a19beaa44293e797c2bb89b2c9db45c7d3785a0cf5c9fc783d727da3a3f20f5366d9f39bf49bd1ef9811dcd74804716f82c0afe9a73c88138bb23babcf5b7acc87f5dbdc0ce1e39540a5e5979ced0aacc221362e2a18a4af86f34f9b2c03a21dd21f70ffd443be4bab058acac295aebc452b4fd32ea5750f4a2fe6260c30eea5bff0fa17f25c3dabe3b58fa72f75cbfc18a84e2ea3d568cf6e66e401ec82753652f44e9410bbc435721a10da1eec613e71f04023f3121df6b45316795f110c81ec9124b9a5568c08041eef364ee59b4eed261f3edd834741845ece57fc5ad1f50d183d03c0aadd61eddb2f13c46093082182b21d4bc5832081fee8c81c1d9a77f132e8e5e9f5a94650222dbe47f5d7f846b1e91d52f62609cf0420446b55ae4a96c2bafdab6a8793beedf7a7ee9f678a099996b6d6f8221427fc86e1a260d7426ebbfd7b9f3e0b9029907b00cf77409b24f73b7f21fd2030cdd4e36fc09322ff6176f49b6f3492076eb9de2d79f41316a202994871bf7ff96ab0cf94ea11ab959ebb4fbdef3813698b1c78e13f2422efa15198dba6af17ca9b2ad199f133076f9ffbe8496fd28e003575579d6f62c69a237c588ea8bbac99b32c43393b20112779db5f9989c04e9530af29a7cd959fa4eb1276c69d46a67ebe363d635aebe19452416e01db478ab32a32c6e95d43ed4693d51f4ded754c62f53524d4179dd05a102acb6e7057c63aba9c8664d9140f866a359f755ca2bb4b0e66b3794206bfb311535810a24a6256a8c0c79c4a87a8fd40bcb9bc23321fed6cef599deffa6994cad1bdb655eaf85d082cc1c626727918e63eb27521b6de4ef5857a2ea372f64409d4c6885d7eedc15c95aea623bf081991890b8d5673cc9ca26483d6b7bb88fa61b31a13f114923e7332eb2a52b9c42b7b341ac6495d1c4fe01f627350089daa8de8cb8b4c660ec9bb065ce689d965e14488e67976502337f1de27d825cb3e6f563312f1a3467e1d2b2628b5a3ebe401b6533f549263babe79b0ec66132bbde277a1b4b8d913b1c378e864d3c56820b6de08e3462882e72573e8ae08c64861669ab8e92b575c6e7fd5db3a698895d8dfef064b5fbfdef1f411373a788082a2bd0000000000000000000000000000000000000000060d141b1d23""")
|
|
),
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
2bd5cb469bc4c91a3b3064b58eac4e6e03a617650702c0d2d7a74874743bd42ccadfd0a0426a18eb3bd2cfd8725609ec1dd664876ea3166bdfa5661bf98aa6bd4dc43c4310e2e2aba9342cc140161769ae9a63b145fb51948db18bdb445b795e36e0b1dafbcea3f1511748327d816eaac6223285317767e6662cfdbe74165a1f837627263848874756877165276577221012676651444137680132351130784766788147465478471367074350475415218011258206321522104032260216358087115052487816640447746366553266721274514170003637258758343506047250725516568524230380681128162115337361701040586852051744264103454573305535062334537784484077656163074677272568625252463165155875317358360146115625063886554172373584244342527435771442357733353661235042676104117250321606683502032000304787780284453048403518686437812433703270542350835714767753404446076203235271085334487676035830264555553820638166783022256245427730457125514514141754877787346727386770507351017331511724787024054365575235864224380446106330453668340626638555373327516062516306886475621371718244701207532814635187371248030251086845214367337305121680057762817347221343477236268755411121538120032625527387087820444367451140486361827338170805820871463737404481676878720218775500220783387826711830344223526751174102542172057377317130427127801480471835257171264437133768081188782016312740871764452200326044135076454347426856278612352770234227783765776357757573058200813686182602844752021610350156033010746466432146177667445420481264340135175072877232526365606487634201345884304360040750110731501650471000248242232213628325476255740664880703348565832321588525453628717041246764467867301880535846172546126865811071742130263724618348008631416206332005206121853267247108855712233132683424345244848303807538204405258230042874387023163681814017812032137307221648277008410212678058052583746378836842645158534814724670837823578171856506780408155350888617676567180531567033882322162555145138678874828584823364454732222602030751015404558527231541350450340703321417116030531380476526278516178561184083623485516537445054173805185443648434260361525335872750562508727141471515701062834537455105224861345443200067381243725158316423820424705434846600327113226176138138454231433663300613423772776824764225234116254171433001668148037672821722303011538105181471258064724308067107564661085382384052651662161671371345002406584155285674885115884255623875833515644444012106045031335230435125421350485781633764533072382585016230120814462005013470878246287428846070527816201075813467457643587442707224786278733035472163083440581148234114732088143538867042226061853513505227741830721305557406052855436154702188382365521173365277022316072781138710386701325360744315647482770676701727178207307406733252332236826413631243466755010000556060201513176671172088364088733451430652141371747471387788002657666744184645502366471414202007085075162567246527800734147856021313101363062687280452240370150345431545834251037064708377637257784423423561853746000277450201775363821445037005416848448528210732571687768775128345304188263680432021232840435830262414877006657477861158627541208278123144738555315743158402874328317821771457820661201658137582861032041e31fdc3c1b5655d9e975489b7d89e8323046b49a6cf03abfbe1536a5ded60ff7c2f6a4623e6d40fcc62dd75bcc3ff33da3dbf4f21aa7cf1fb38ed42e330891963d504b03020f68a30bba4e6bc2a91d0be9a1a48553ba44d362ddc405f46c426c7342dd4f72694f49bf36fb98eea3ba0cfd5429733aed165610815437adab5aea371c1c82e9231023d2770da62d93941374d5e130e5cf7f57df615313fbd2fd93399b62f09d97e9b055b8cd8c179836416d27e6425c888b64d5d4343c6a5837740cab52c9271c928c3647af1a120e567f3b1c312eeba09002f3ae4e90e96f1fe80c005113d9bc1a1b7e755936a9fc22e670bd36a9077b263a7e286e8b0c57ef594927ab23d88441ce3b2a62ba3e95ca800bd30ea65d0c8a443bd060be70b49d2a1596f29ba16df338701ab6da24c06da858d8be565606e6b579ec8c1ff30a4819b04c83ce8b84018b26695e3e5715f11f9fe2427d0974ceb701b9695fad3cde0aed6d68c8649387cb9eb6ed4b7814e4ac262e44dbae89845e28b58c2b6372f74e8dedb43c4e68717a3d3007fe0e678e1627b3e3ff2a5e1cd2a1f6dfe2a43c736effb67060c08b2b000dc995cff9d47a8463861d088cfe609d21baf712adabce3a30c5c4eda380e61eff53a5341aef7fb5be2fef6c9ff5a03bbfd314eb43df88f20d40c8bf8ec86f4d268846e34585c2c7e7983d28a6136d1ef222ec3754a1ef0d2a155463275ab103bdb2d1a1087646ac0437b15b838c883f2b870fb1e324d20bcade9a80c08f306c2e7fda542f34a3fb242649203df14083cc9cd801e4a9576c60df4e601a477dbf9c1417deef0d0e8564980ccea153af41baf6c68ebb772a8377b222851a015351a748f5ad260fcec7bd9e3bd4651d08ab9475173c98f5846702bb68514d4a5e486e65b09f163b11d29b2293b127fad2703bc3e95925186b6c439c35e979a0163608900df4dc83f28d15582f20a7dd8b4a9c3fdf6cda6cc3c6b98b9c09b9823fe9be87ecff183701781933fcb4e1b877d2e722a2647b8e55e6adf0a498ccc382a27b0fbddb6bce5242ce1f1b0e47ae3f0a1c2a4c49898c56a3e9c49f4d53d3825e0948369f36b4c6b81be9b1c5bede763653f7a3967c9466a9b4dd0cc826d1ff276181bb770b9ce59871e906b5e3102ca3f6e567c6c275958442d66407b5f3a899814d07a0356d168596824db9c84850291cfc7cf119424949a778275deab8a5cba7926d07b82b6c6b296cb433bba7fb45b679c15a6f177562158f8c1a9e54df79cafcaa7bb6e002952250fe2d533bc27a9479bc03db36919d90ae4f074bf88da84e651cfeec8715c918ff605bd60c4bf3843816c7b30e11bab3537f14253f100646c7d0072998761d1122485f80b28bbd24fa0d53aff658202c42efe00385c778c611351d152b353e3265baf90808737271337310c0e8893fa16e9725386737b64ef5e41fb080b65102ec6197910700d309ca7f7643885163be8d9bde7580e591480f0de498c00b22b810f76e11b4b656df3611183c36d17c204e34c18f1d2e2946816506b68647b5cb4222b27499c4a66d3fbab7700a7e1f1419921a19f39a24dd5a905921e7d895f1289a0f07338cc2a72a50c95b2f8bdb3912929354d4945d4c327e6ce0779dd8b126ec891170f073fcfa03daef28f0e3a214224e683141199b25c31b0f47ad1c58e1b47994f2801829842b84dc5d583efecbc528181a39857dd19be0d3cfa07f3e63b358eac6c2786a1aea7ff5ead542985f42149a98a1ddb89ced1279dfbe56363946e27e8ce0046ac2244658c4ed3b97a18bea6c4e1caf48eaa7536c65b936af37fb3ae8f78adadd1588cfb42cbf14b9e30e0a9761fd8701953b3842da1d567b249a1eef29fd29f2d73e15b34eb4d1f11e0db7286303ae426ac2f84dbedf6ce07c1919f0205ff59f369132e27875a2657e6d560e74f8c8f3e5af044585f0272c1eaec7972aac43baaf68e884dd3f88d4ab66a471e4fccfdda4658068611e5f5c33756ddd38ee0023ad2faff603cb0f86659560d10e7845d5175a88c1eed5fc9f7beb33315d2eaf0273829b26ff6f3b99e31adc4752dc5cb651e8de0974ae5d07e38f08d7dea694b56a83c47731b0e14269b4f68cdfb66a5cd33b53fa01bb3f15660b7f21ac6bf82b69d8eefb52b75242e7a2879802bdbcfc3ef969ea12ea287a7a3cc17149b2271012b58d760e00e7b36269560a29cec00cef0d979366fac58fe69bd30e80c051d65268c7e8e50caf51edc9ba36825d7b3f9edaa2b2314bb62d0c244d78a52c4d5e2f3114fd1291bb25355a8cbc250931aacfc716617c884f74c2360fb383a04d5172ac24c7bb01ffe26801c7e20e4c35711dc0d4e9a22de14e047a45aee60d5cb4589aa53979b51a73f720966dd1c1d714af9e5179cae4e760b7a4598d8d46988777dbcc759effacda8075393de7403ef5c1d405572f8b49641799b26db4efd1f2c821b453c0704134a1215cffc835b5a63104cd0110d455902361ba484127cc84ea642405e73904b857e4c94467fe322108f5159eae46449c125ab62bf864c0daca0cb5ff09067b520c69c81ca2fcf59d2bb924ebb443296126198a0615867ceab2636b98f87495cb6f732868d29f27b6e1f4859aba4a83f172ce5e73385f075ff3c37c166cb360ea16dcfdb53c8d29159a65bbad099394bd63a5d3ebb2c46f003424eb81889090876b6ff0a69a18a438ce6989c465d5e32ee545558b75a28f51622831cafef18822100f2bc5b8e45e495b13ec7ee150c02112b70cbf245310344a6341072e48784f01cdae1cb885b1853de04c43121910ccf30c9c24f491e56db7538e99ac00bf0224eaee2e50fa9cdbd0679a500ca1d835ec1a129b42e88c11dd90f84e413d0db6a22a21d7c090d641c34807145bb0ee35fdd8348b75e045fd7e2136ae8bad14feeb2581e862d9ef964280f9ffdd2ac55ce4935f88858da06e683520c9be9aa447691e3bf37c0652b944f1b1bc458b6e67e3b760086e274089ca9177970a5906d45cb50862e5c30620be6943cd075c7babb86a2aa0bbd9fa06d5388239c2606edd34e729fd78a76b597af751cec41ca553300d0db0ee933239487493f606f6b8b5e2f49d87e061d56104444e23659da7a65e6bcfb2b767643183efe835889452e94149017dd16271f78d50cc74ca7e259e128f02f6beb925a9cd8fea3d11b105c11620c10954a744c65df3ed7ca978994b85d6ae53a89c675d58e805ecab90e575a9b553e3b85507a190a62b3e59389892ff078b0d5196469a2c4ef1edbfbf64ec4a917fff3f7361cdb7a31b360cd44a129db7fa091c3b87c89028e49d62dba7db65326ff9358dac88745b1be5975a6d519be7c9caf432cf876bf1463632bf4a9bdb67b1d6a16a7c89e2845af39e1a92c73aaaa39a917bcaeb3cd7b7804829a65eca1a885c08d381e4bbdc6b8792404e8bd273b2940c60613467e6e2756d4035681de14cd875ab004b4df747c4f6e0ae913717ec7054c37b253320e8991bb9a"""),
|
|
TestUtils.hexDecode("""
|
|
C9ED9B897C34D7119115A0758332FE70D4A9E11FFB2D6A800AAE33F85FAC59E715AAD93BD79DC8D958079F3B5C2422F8FD1A1AF9406E8DA3297226440E30183051FC9AA52AFB8BEEA2228E88D193F231F2422977DDABE4AF4F0437628C6AFBE68F70CF4F56153A2691F7A4241EDCA760D4B3AE0A17A8A0214BF1BA65221DE64647AC6578F4C7E4A14C401F7DCC30A10A695A7F72B04393F4E9C4163AB68667B1757154BFE711BB54255F4DAA9D8AE6622C71EC8ACE5BB79C6B4C8AAF1B0A0099EBBD07B292CD7B55E44ECD68DFFF4173743145B71F536E7D23E78C63679FA2F3C72CAADEFD5A9471280CDD3DD8DB83F8AFF14FBEFDC8C5969B050D263EA462C28CA64362F7F165C3EF427FE5E90A83310DCB07C9612E9A0B8EA1D0631D84B4A7F1C7485B0C91C3B7BBB0EC98D353376B692BAAF24C5389D50250F3BBA82173DCDB52382176EC5CB8BD531DEA049C5B815D788491608FFA2AE8BF486849810AD89BF0352ED595E4EDBC0B81467D72944AB83C3CB2F90FCD10810EB65BDA18C43F9A9A5D98E714BE992B7DA02E9F7C389F1A22810DC0A473F8891C43932E0F6B5D3A21C3B611AF6C394AFC576C07572DC4A1E56B4576FE615E516F48544D099683EAA886CD41DA848567F70C2103C467D271919CC5935605C0EF05909635D431571E5A316E299E553EAAFE9C7CBF5063E2057D297F60B5DE1C17AF6B97192E840474CB7266A76D509A10FC7A71721D705A9DAAC5BAD8A52290C1D8DC7938663B24700F992FAB008CCB3801258245A0F5F329A4FE5553F4130DFB1D673338889B357FBF11681099FE9BFF18AEEBB31DAD290C1401D49CBBE38277AAC8A99C8BE4E6EDD8A0F3C901082A789A1037768AB7C3C704BF1C6E890D20B3DB6918C477350F4F25756BE1742DCB31705EA9DC975DE0C38C21D29B340C63438268F6CC399BD644EDCED36A7B50E8D65A507BEC51A31BD136525F4E7AFC1EF9E0E6325D032682EB4AFB7FB22F1716EC6F4C9852054429B5C5FAF3BC86213F6D800281913D5722F3A380307B59E1CC290EE66FB9699FFC627770B52619256C7B76D993FB4024D2DF0602F102A6A1257A200DE1F39DB54614FEC2B60F3728F59482D71C7E5BEC36F0D90D6FB0B4FA252E7FEC4F0FB9EF539257EFE87715ABEC75B2A5FCCBCFA5666F1C9BE2F0489E04E63ACBBB239EA8397FA2EC24C25C538BBBFEB74EB8E15FF93B0FEDB7F36FF67F7CB244CAA067EB2C005EDD2AC9E0765DD38E51E7C71AB72B056B230ECAA8985DCDB50439BA261A0DE57E68700C64655E1EB8608BCCC33480ECFFF1BB75D0AB69CEEA8F2E3E9515331A1EAAFB9BA32AF62798DF761267475DE343CFCF5A352C907A0314365B8CF6FD2E72F2142018C4BBCE4CF0A160266DE320EBBA359344A60D32CB135F5FF943173A3F9C7F4A68489E78621401425E5B8E6273309FA3313DCBF13D7C69B63C1EE34D3200BBB4CF57518A5E66D010984AAF34CA9B7DDC914A3AFB514FA1B9D3FCDF3324998D0D9058FEF10C30ED6B381C41DE363CB31C5107E7C00D4C0CCE485DBB4CD2092CD929E5717DB8CEE4790A48475E1DE9178E49B13C5173B6F301D5B7BFF1A9F8B3807A5FC84DCAFCCD8D585B77014EE285074E64448589A738F1323C7A865C3DD482499640A3F166F38E37C6F9ABA8263E4F3D1C2E7D7AFD16BB02B9B4BE8A055452071F278C32C3247DE2BF83A0633BABE7FA048BB18FDBA27022736615"""),
|
|
TestUtils.hexDecode("""
|
|
6d9ffac759de540cb67a1d3ed0e50afaee62c1bdeae34e94e8c88d8fa0a86e22b911655d83e0197987aa1151adbb629f7d130a143a3c0f34ea817898a86d76f54ec5fbcf4d0ddc93ce671516be812b1eaa2fe2da29d0381d9d5cb8e702c038b8b8e51d3ae18d0837fe459be7cf6e4967233344749fea70a74f143fde0a0a9582366710648c4f1b26152ca0b56bb6bbb6011264960f9639ed7239881337eaaefd07908359dbbea6dca1834f03a753dc02ebf67371af2ae1a82183f654fe20ce6212eea1aa256b8c1366b4d13ed800e116365e8f3277eb522f2793812329e730f56f6af17cfde3273045aae0ec8188cb956a0058dce1c4d481ffb1e114405fab0a5e9a70af8d438a2a266d9a93332e621231c4ca1d2aa02e417a327a6feda50ac402263e797fea04579ff60b9f026bf7a97fc3378790e3dbc9e7b6cc12d1c01813367647bdd5f8b867c9e1b2d05c870b5935e5f19772fcde0d8116a9ca9d84cd340ed26adc1033a8615ddcd29f86659f3e742e7c08cbf197e4c2f680547099b364fc67b8140a22eff4119906322ea1badd4af4bd008bc46d335569052cf26520938e417c8a8a12c72cf0a451ae2f209532e214bfaffe20414b4243d9351093215ec3ea78a5689e4f89397c7d309abc54d55d3dbee907ebcc6a8ef921ad61c67c2094081d901ba8631745ca131a302fa813c7137c1f3fd66207ae753d0eafb1211ca4e0d247182b3155e12a42e1cce1c415f74677928f7db645889ea70928679c7fdc7e36e43231ec831a6a6b6241bf54466bf530553c268cf5d63b22d755fe9d341b0ac7ab830a303d3f74acbba37de4c109a63a6457e9f79955232e368e9b4aaf27c6c5d3984e7acbb9d19d4cce1b8d53a04d7e137811f10ce33ea05a0b25f0f5ad1499e39542a264ea0830cc2b20646c170495e71a428d35ce3b726ccbfa1499ea716df3a01186e776586d431b90978be9536e5587555aba18ac6f7aa3bd44867d85b6fe9727496d6e0c8e8e776cfe346c5546bd262d30492cb480040c42aaed646969120db4dcf7c3adc8a4e469680e1d5d1092594436655355631bf037a3cd4b9dada49c259e0c6998d466d6f3df582bf86cecb7f4c874f392806cb1dd3b08d3759792875a08d589cd8f8dd8bcb533accfe23001773d6b9ac4dd6686b4ec3ef8cf4335f70d86bd155e5e473666c3ab5b27f069616c6d87f3969a55a80e59825840feb3c82816ca0e7c544eae787ced30e7e5d0b911273909ac11c5f0407848a96fe139887569491fc82b02e70134a1325956e65f02cd97254d4f469455f5ddadb32d99b851020ffdebfec3c83fe99ac4143bc4de6e2341948494dbff83f13603bac25fc5801cd694eefa4439afc61ed048a811b355b75ca4f7f7cbe88debd671657bde2840e95032129f2f40fcdfd160a13c7c123fbc811a7759e86f914288b417a6051393fb564a8a2473c3cd5216b31848cae14dd935b79647aeb287a262a59d37da18b085a86745b2090a83b6796203baded78332e5a76ae6d8920473d268230c00a442af276d11c5179e0b776719f02f4d380861ef73ef946dd03cedc6b7e19c812cf6367d6fb847f0f00b0ae2d5296122bf26553bff501afe0d217628dd44a8a39b509fd5a50c2b991d70eaed000d85343135c8e1f9a4bc703559e08da575ce134e07a33e3f3214d75f959c85e28329aa2242d8dc69b12ea2c95be537b8d1de119a7ce7d7a672c7172bb7f9a5df91ed8e10adb5ca072a493f4199f1135ac519484678681bbc88135a766490f99c2b3d4c6951d3e5da5e169b908a60ea803227fb870510c1963196712d0283102d6883b9164d9c30f9853a799696d488ad8834b6903602d14565faf6be82e911ea41d2cdefafa2506b28f1ee5a77eaa115b91e1ab44b7123ec70114d0c4a13846bb046bfcbfea6097220fa91d1e0605017f3849f9e2be6507fa4b7bd4239ed56961e70bef8daec13fb486d458c7186b99adcc45ddddb818e4947c0e6c5eeada18f564bc664f51efac7a8f12a259956ffb2165f450d728ed5a3c9b4cd6dfeb2f90a7711620374a66510fb3c2b3fc316e15e52a5f91d3e38b3313b7f9b5a80b6b181e4c4fc036ea2574d219f179bc1afa98fc918e33a52cfbc95e20c09b4140367c978532e6be246c8cd1d2c5508721eb298db406a92e77d833bfa7c5865c997b402cd8c09df2c5668cb38b03eb0e86da9707853b20f1ab23e11b6d38421ec2d6882a9121b847f55923601914a11650f02f99895f9920e1df904c6f45715a4c0d7218933149297191f72eab16eafb816d5dc1f59c30a249b8545e6947ad81d5b8f562f42c016ad46f19f5ba10fbfd2a1c22974669c376f496519525bc7ffdd937da7845efd848aa2431344c7314d6eeaed5610ed1ff144794091ffdae46c31fa9e7116aed7dc93c4765b9b72e021b825107e248b988d11aad8a9d466b4b109ffb874f26d6d7f1a12dfcaba5093d60179d1cfd2b435cdac23f6b64cfddd536c55354aaf6a76d738bfc12ccb003a14d19b54e6ddba35dedfd5e4f7f8a18dbdb4d7a8b34acfa4ec462b9a9ac8fa962ae9bfe353ba9ee19d576a320e0f9e22347a84fcf58c0ad61429f9a5f22809b72e91574052534e96832a99db4fe9e22e20dc2ea8f5cc4cb70c844ca9a0334f92ee2703b58b2b09e77c71e27851824c78bf3f4d177237b212f73d6681c6bcc29f12116bae1a25666035313ea2af3e4e98af8f6cac0236c392c39516b610234304b4e4d1d02d8d8e349dd00db7b8acbcaa4c79aa99f711ba693c7e93c9a71342453add96a124e3d06e46c503425a311bc5249034ce01fcda3c5809de83a87d4eeca01b26f92d9ea61616fb5383918e87522bb636110aec1d2b43afdb4258a51f06ce0af14a8687276d67033d922026dd190346844df0974280d56c22fc76fca0132615d1d61bed3facb80f8ccf45ab82121ac3cdd34c425f0efc86e1546f35cf470bacc1976e8c8561b086c52dc71d9fca01223707341c9af7ea6791bb08c2d46a578ba479fd36a2ce79558387afe1375090a53aeb2183294e747043eff104374f6f247591860028a49ee51c5327007d08bda15dfe2de5109683f0c10b620e455d265411a460c3474c3c2c9de9e72356bdbd7309b6e6dd2fd9260131b595630932f46c372a3da2563f31fe5dbe9faac52abd5c842eb8eaade71500f235fe806fd906ae53a2b65a906dda24b3839a0492b206687931dedcf96c57f05c28bd3e1e97731523ee0bfb74cd9367676f142f73d861b070843e772fa18a80dd641f430236a96b294c68ec871f957e4f04546a0610b727b4bc9d46433434e43e9d6c0421997701c5464fd62d7f73768f92645b251151bbc11a9a968b863a2a25de9b1bf547cc6857bb65c3fdc38268b9a89d8a4e49f1c62190812148e2c2617a92ee7003a3de676129e1f6b92b81081f1be2d9715bb83c31fd3136c80a0b23b902a9a3e5f9383b1206d2d8638fb0a5e5c0e2df646235b6a40b5f4f2bc4a13041f44850bb8cb1ef1d525f2ced545246b830547136c8fcfe69c86d4846391d1b8d78a63f50a09ca62ba8c1578eb7ba182ed67975889ad92458caeddd358dbeedaa34e160051b2346ba269003fccc4c3f58d511bc74949b152ae37ef64d0ab0560b8c474d3a1f78b04de729c9f0c4ad7ad2812f037195c85f3d3130559a336610541de8dbce1c91ff95b4d73ca6e4f4023378a5e4e49c8a907cf89b3b71ebc5729b783764a8b9f998e5a299c877cad7bcfd34252ca87de197343c01249c205ec4057912afd681c5062897c79b272c9977af12ae543570f2d8c4977684a2689c627ea4f97a8dd9600a17b6bc10a71a9cae8b18737e3d4e070402d8925d8c81d49854806528d5b03fb90a4a01c03cde8213522cc3372e49fb12adede707ac55eeef0c72a1ce7793925ea6416728a2afd328d2241091049beea09b93158c0835f9e28d0fe34ad0e6cc4cd82651b3c9524e50b6e6e509fba04dcd311b679dc7c82d96490b2f3f7c48604860afd25d38786d7adee7dda54acdef35bf58c2fa5bb0c226b535a9f6230c9428175ddc939fbe2f2191adf27a496644d1004c05c06e4a2e8b82a1910665062c10e6fbcb6d4e49df3e6d17b02cb891f89070288c94ce4faff7709cf88994af70a256059e6bc4df8e2769f9d2871aaecd023d11b44c7ccb0b0f40f4bca202dfb1db1890c89c4121c3a221ca70592742c1c624f9c54ffa3ddcfdd40864836184cfb075417f28a6d5dd5ba9eb4fa2a5fed82c86900dc96aca2342d29dd7208270bd4d6ebeba516fa6d8809eef26e6e929853df5b7b22a66628d9a728170da4a4eda26af530fa05778698e85f02d979a76706b2daa3d154db0872ea5c8b06ca7235305b1d5c1021b0334dc8df6b267760e652a0e1a1fcbd0039d6f585879c7b53a2dd3f664e36fca174322e93989f78ec66ecb613b0a694f13fe2715a930b2ac5cc4ee65a120c3c309b97b8e1ff856857cd88c0ba77aa5557f4184002fb96b35f367bb62502fd6fedea2df3ddb6f4015b018fc00ee6a79ab78c25aacfef26b1d5b1fbcd372b296f320c3cbd02128827678f54ff94c2c5a677193999eb2c1d7f7080b1d4667828e292f373b47696f7b91aaccd4e9ebfb020a58acf20a39586173da2d737583d10000000000000b1221262c31""")
|
|
),
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
c80f02072f243218956d3770dfa0eee288f8b5372ccff67c93318ebecefcfbdf18881d022533b778eb8b65b8881dc3c5a2fef36a869bd5cf304c457305af5cdda268b9cec761d38a2314eb1b8317184e325be289861c3518cea2a10dbb70a66f2c5f67c71d0ae6320e319afab670774d6f34ff4ac770a48ccfda9b1d8dfeddb5057025530050677416582278274505667301351576466870331032351083264716862836432486031506605800101361627684822632826581466212345526573758007433333477862751355246324087300847423142180181328073136142622170774306280323704618416477570515142514130455832022610134088876138124058114320611080670118018464085050380678730326046531300536216285206033762276762775135456675305781306813144351058438878403307687115162445758762435444306181475864556088114581615805216153138726620282135405184773253214002763042432742285182025418687637550727618630446721381621561150288271788350383608014736387120213568217622652045405551120320576502871101420474433680435304327652662515883127565314215370838830033816150283507766554275413064230572085558518426058845885530120407528323186266567602237370105201014564604774882172584373620026546053363771278173628600720520652860065382001123825403357873050136310704810102517285164840568604863133864655787425780060514544323632362181675425103051333048832104182222534843223257707062722432431888444556263685673774854726073818648517112141628084551561504640265646442511001786808432003757262538078314515135755137018852833864121201105007256358100857612560813851383702108482160852481266481713382031618845286043105732050857858607353564132122344423377458771167748115086680288573474886275656287884524782738240452330508132453212563243264052512022138236723506415274361568172077584546563246848741847227366113853277677187003120672803312751338731535378660130452317062527513307208683812056457672618347100420828582478354158351014326870707345131061078405044837370213315684511333215646478872283027464677328772837066376715434438300243146756128411654274728230883102040147160236612421547335046566446706883215132525265735424774111734410163874662657464330762111581252861488544800081145110813466088381404533445272646402333765551273564033557176722630105714613135526825771388525741752552048313468426860581660618780270076873311738236518776476873827573031770438878487513011411361583071301445561663156520265240035804757477167382832424463451480481240152163665000582805647367208703027114876055755766242113201847066246108435208437356368155043852753534553884800410550611352563613328277231178785005471510106804217363330510438775850050201541533244435247577721612262085330353712227748025886768140455853781817167865520612743051656428875760637056123627868651516386807077756848254735200340838355075611101746703364144574811707376411548585113884075077423148765742857850822700384480233506021262883121710116835788133723704346757345521270442111754166000801666758036038382282534825367627860280876821686044258467073362032026126470206571804580600827540023301101145187820771648116401787587233440067756345560263886241380357614771073381647234280567584172010660461051813086315325671588023055102007554535774637007241602270404175218044451787766283416771207805266403201725203a5a72c38850214325e10e875c90dee2ae6991fc05b67acf1130453620aa0f16b3eb56700a11ae3340ebb059808062a52757126da288c4d6b913956f99c53715f2b7520caa18f15695ef52294bdfd7ebfe3d668ee773d7b49e7fae905b8e16aec6e314362245f4978fa92e5fa66906f875b74ed5705e4374e90ef2d4dafc3348d49c17027403ff6e18d4576e61b21b540f9b89f5604db87721ffc19a6e58e4582cfe90fdc3c8f1a06467125fc6b133619c19a299c2208ac729a2471152f58ab9221fb1f8b8ee99bc5562295e136c1d7491fe4a3272012e7cf23db42474500a6c3fac8f9fc80f5464feb32a81bad914c1034fb278bc6223e09a3b3a5d891540ae563116f2ab2719368627d70100c7156e1131f8778d605ee6da8b78a7681f79e681081c94c2032655ecbc5c54d813d1d3e4c3875b90a5bf28424d0f3aa44ea16709455e9d8b024f5cd288507cc5c4207a85b1780a40421c996c1e385c96b8a168c27fb7dd18b80ddd5cb27e815cc3456cfd285e3a451483ba46f8031e66bb2f26e3b34dca9229fc737f60e3bec555f749be2ce66967f842f519df636727ae2b0ad8fd7054ab44b3e676bbdc087c5e744ed20ee4d70451a3f991a2e11df9309307848714f5c5173234481528041f5c4cc401a59812652e7536f944a124359e24fe0e915a605f8f8cb656e6e29a2c62a58df629548cc7429fc016953c5c6cdfff738359f156f504d514c501cfbcd63c012e6e4a98a96abd0265a8cae4c287e8d44e9198d53c16fcc50237e227787adaac3e53097aae470812d7885e8a9fdec4c683178fa31699e09b66765e643eb3aefb034c471cf83fa6f6b900d8e9b76a25941356886d8bef84444a788103478bb73ec2e0772698f8d05c859dd7e37eb065e3bd9bf54bf30a37bc784adb358dabb075060e9777c74898d576ffb8b352a576252d203a0fd11b24bd73919ce83271e5ca576cb1237f2df574c65cce4051f89ba91e22e9c1e1e3d981e45597488fb23548a0c6f555a148a6f5b520293a2dc1655b62719d4defb596b613be1a131b08e29d3cac60bbbed0fb11a6bbefb006e6aa7fddd6667323a09ecd9d6b39073092c1162682ab5ed6fe878007609d361abc09f61d156eaeb34c4c01d660458c0e31af7f43e6ee71ca77564bca40f39e2949008afd9028e6bad1cd2fe320971e2cadc9d79a2c860a41c658ea8aa2f8842938bcdf8887cca5df17750722c135f92da46d749c43eda79f966449948fb955a39d90a725298566d8d010c4706ba4137aee184bbfb74650ba401a7d08410d8d8634765868805032b2605714f866c169ee247efc2991c6dc62e5978b787352011e006bbabda578ea283f510906b6c641e999c263f53fac8c00213338f021bd1c07ffc4184050a3c07e926d99e10f53b6017d297c29bc5762ff0eb64fe011a2296810a52c3dc0e0d5a44a0f576bedcada7defbd51595cc7e9d223acef03ce265ebc8e47f326a672daef305df9d8137c93786f791452842837ff9db6c480770edd3c1aab4577527d669d3a656b742f89d153036de73628f6d27c7816b105646cc9ed77d602e5fe2cf1d203aaa9cf8585d576f4a73ebcc5185f541b8dd3c0a42c34899d2350132680f1e95a5caa76cb97ca22ac2d149294eb0cc8a53d597fa77a686cf5699620c393073fcb41636d52861920ab80b8fc5eb1716389991a6517481c107055ea08c341c9da52ec48d44e80900038d0fd105bdf79be232a2c2b3c7d66adb018977cbd762c0f2feffa3aeab21b2ed461326b22ff1dfab712903ffd798c819b493ee7651e179873bf28167d8afee704450e826d7cba86a119e044e52a80b0ce31f1fa95e67c7dcba3e78d0569073e38508e3c2327a429030ea59a4384c8c29561d410dc24630a80673a7068aa518b8274c68cf4355db661804b5b44abaa70390dabce2f16b51537956b7356f46194b5056feb47445756d32ea2b853a3879652dd5a77c4c93cdbf5dfb3c94254071e0e054b49e85149b12b8d0edacceab8f4d8d8351d2c2929d3930c1d684ebd797e9a2528b01b249daced8dd27669bfb184de5e3d007a194a310314dd50489ac49bcd5e0648311a9489ea505a3eb26fe6eefdb5859e479c8ff00b719e0ceefacd729dcb9b00be0c1a5688b192594f5b9da5cda8745b925a6d768ad753c3006e644a1b790ea8906f791f879e1b9c90a124ae504f80f0c17ad9d823a794bf0db57a8240e982d9f99cfd9195305729a279f39dd2b1821fe09d757e875d6e9f162612fe0dfa08be5ce075bbf6845623ed468792a8a15e72deb7f3b7f2b44b903b5170e98f3691f32faad1b65213cb4198dde740b87ce9ee43da004160d773747d7e2506d7c41f0b6ac80b1f0a3c9666d864db66c42b8b4c839a2f19b85e3978807a2b0d8522ed3c6d1afababddfc0a06c6d5897daf6a72f62a49243012daf2e6f08e4077312fee54b5ac8f7bb9932c06b8dca2ec95ad741861bd12cbb87f0ad8e2383b2c1aadf8f9786585ec65d61db5f66d5caa23d86778d5d186537b6e65667212709e7dce06b86d88ab40ce21ec3c75320b08c9f92e216d2e3480e7cc9442e73eb1664e081ca56080c3c4570eb5cd51b0a0d7872c95798ab6f027c2c32044d937d05dd72a0ee4ef973dcdc2623cbfaf0925f375cd22878b2f28ab048cbca8777a6eb52def28d90c5327b21924492ab7d1e24fe6a24b37404e8de633fe6185aeb2cdf1093420b847530601330d914990d764b33bcfb7d3fa90ee25197fa585992c9d0726e3ddb72bb6b03f7ba66a888fb522e33a6a8132a6d39b7b83e255e84be3c6bd55714d0d0146647d7484d5737ff6dcd5e9f128434919e0259f8766d814d69811a25a6d36ded06f7a6ae919401383a87fd451fe1d59ac85205efa636ceedb523d39c048f45c36aa6ba72eaf527bfdfcc4d8e99264455274335ebe5141ea71803e7e2fc66d041848847717d37a4f7656ce2de0c4a23acb5214b78009259eac4ef77980e80ad76442c6df57e7507008d51dcd2b49c28df2bbd66f8a6a9d99c946ed37561384f1b981eff93a64d8282c71fe39cacd5cd8b087ffa3e52eea33d88c06944a025edfce077795525d33c75656fd4f314a0f6089375d96ad2bd29a62df58a45af0a03c7b9d917ec56f3b3083da68aeb20e034e113ef67b07b58bd7e49705fa600fb36be0f345390deb3d82286d4d04329fa60ff76958214775764c7874cff5287e435442aefb809fccdfdb56adcf00c5f420e70ffaa04c0f768750424f16a7b25533ce438ca89e33ca9afaddb2136e6b1c68468aa9e7434adf614d0e9d07a729c2aadeee1cc07db336d3bc2083d0d87f0e6b13659184da03434e93028c93123aa1be5f0ea0d41a1fbc6ac2b7987a66693c46b9d4539b3020d5422897d4f2b5c33e802df1de3e65fe7840b793bf0ae4aee817152b00a9f3ebf6a2d7ce5df3e4ffd5d0e35e958f59fe742d052f8119b4cca8f0f7605b2f7f9fe15f95cca1f59b443005bc97824c3f64d835b6326669ef53c12"""),
|
|
TestUtils.hexDecode("""
|
|
258FBC2A94EE48B415DDADDF470F14FF8DFC069CD949BB88812CD27B2BC3D9522E00F302C0B72533C9A612A251BCD292A291F3652695D318927CE1B922125B287FFF9B1AA2B79180622C32AC624E0463E5F48E86EB5952CA1A95BA51388760FC5374F0561FB8873018DEBF785FEDAE4CCD1A41820EAE9D7056BBD329E7A95F21A4919A109BD27D26779C3588C9A886EDBEA1FB97A8048DED858B299DDFFECD4D678820E5DB6CEEC8B1EA879C9C22FB7F59B227B4F7C6AAC577767D899B2F11FE39D1ABC527DFA0E656F25E53CA05630215C5CCF0FC071F124E48C57C5344BB103D51A1FF24114426A324BB16D8F80D3CF2D0CE573F4E50DBD1CFD66C05430A1109374CD84156D2E31C0C3F4DE2F1E225B5CAC05D56C4478929E356F7F46032E2719E07BB1EC207B32D241C87D87ABF28C7CBCD38267CB011F26A9B49090008389417C7A219A9F18203E6D907D63AF4C42C60F7FD99C7F9394021640F450A9A072BF2C1CC3EEC88BEC866FF1FB5F032567AE053A408342A56E3068EA168B9E902068EF808916EA58004FF31C31DDC3FCFC2CCC92E0DA09623FB523AE46C8CBEF92A1CFCF4C0F523430E60449E5825A81DEAFB2E26B3131F0383B8FEB4B1B4E1499E89E9C5FA2ACAF1F37C422CA41ADBF907EB984DD65D8314E2F71E8AE616C0518DE9B8331FB00983490483362802FBA242E4CB71056E3256BD097504AD13F577B36A2F9FBC1EDDD25D9DBC09B3401D58FBCC9DDC8E74BBBC897552FC826620060D3777455BF76EDFC059E5C02BBCCC0F05F86ACE1903AF2BB08A962BFE9E2C435EE8C580502351669AB7DF3D9F6B4720A0509BAEA97FEED3B8C769AC5D0997A097852C72DD6D5FA0A7144E08D667F21936F434953EC3C88B5BA2EDAFC4F87BE8BFB5A592847D15D5E5D972710A4A75A5772DA4D9F156563C17B1F0F242457A198658524B0D6A46DBCD26EB9400DF3C4C942FF53E1102411101B2FCCB58E3FBD16E725147960AD56C6CB6DB336857EF137C49D53D16E98CD7A0E856E2D6B391A95954ECEFF3B9956A6D0C279DD9E1FA5895D37EEA8C54255A6244002C7542789453B41463B084E7FB3361923C43EE1BA115CB254F47E55E6EB79C74DAB4C9CCFF486B8CF5830F23BA23C5CFEAC2DDF7D71EB5F54141C100E0AA9873D43F0AC1034C54193BC63A560A0C661047C508062A70B3E575CC185462A75230D91A3021330D95F3C807688B032AC15A9623A833DB718D04603ECE983F1D21A4513E80CC67FD34EFF8E377B775142344645872844BA46F5AE6971E68FD8ED640BFDE9F276E26B208A8F3D74ACB739C7EA6CB26165EE182F165EFF21905DCE3D02E432B1193CA108B6ED066CE95D549D9B12445E05E0583EBEF32F17EB121D80EC26C1F154C4DA2ECAC841BE1CC7224576EA43ADEEBA53C4D58785F36B6BC0F8AB23340B92CB87DEB0230869A52DC634F68A83BC1AB8A4102264CCDCA39A51C331F6DBE30C18C00A966E5692CA86399264399DBD3F02FF8706302462D62E4D16B5C2FFEEB02A7E8447C2CF1A3FBA5046C792FAE0B1079621D59C1D7AAD17CD6578964D1ADCF1256F2A4EB4D534C51313BAC17A9383B5BD02EDCCDFE59998D2FCA7F3EF52CE0B1842368EA66E0A83FEB581A7137004655957E91B25F5435BEDC0ACCF69238AA4CACE418F08ED0D961E13B2234187597FCC012769F798D969C13F6BB4042897B0D8C32E6CFFC06680B1E0A40F5F149B5974B0E7F0D45367E93B415F7F6DCF86C2131137DCD0DE30A3F1FBCD5F8214AB20BEC9738AEAAAC200900F4B2074688C8F3026140A354A22F83BC2ABA66407F87671C3E7EA4EC6F8272B6D16F3C66C76ADA231677A9B1CF496B3C241D2D1ED7DB703119CEB162EB097A0AF2729D0D6CA8DA57D83E1BEFB880EBEFE090F6E98D64296F7CA90EA1C2B26131676232BB394BCD1A06BA83004BEDDA287073154D3BE16C242DD65839C2E1125B3E66DC93A95C62F5DD31CAF9895646D5E2D183D40EA09843F5DB189B41AA4CD1B40C5792C2BCF9F44823EDD4246100457299E30EB2C66896F89F4FA250AB19CA06EF5B899CB96FC5E0369B773691E3447E68475A7552C10F96F44B3282D92AE49A246508A67EAEB9F4586074D6FE8A44D2D27C7B8FB4EF6BF701084B73641E41AA7275C1D6B517FBE3D60F64BEB9119F3FBE96A11AD45610E63CBDBD79929003BD1F2DE89DCA036973974FE5C5D5A8B5BF82DE0368DC60D75A138CD91E8A9233BBD439666ED1211EC2FE7D7BABB1247315DC480CC64CD8F7859BB9BFE8C668F112FA96EA48BD91088EA44F40D3E57314D3759F867BA52E52BE822400D9B0C2123F50601EC5F8E8B562C4B1F49F9779A99C926FABD8A74173195CE23173F4CC4098EED74C8E0FA74320772EBD1847AFA1B397F5A6F05A00179DEF2E6C3B092D9182CA3C4E382C4092396005D8BEDF6248C81D3AA0854F0AD43C1079CFA1E0A42650EC9D7B9077BEED377BF5FB2F3D2717BED04CDF2F7E7D1F45CCC6F71A780D2E5C3516E5F6211815FD691E036E4FA002079448AF0E005B67D2939CA88CBC57567F634BD0402EAB06805ADF8BE550B3E27452B372CF8C92A7055714A228986FDCF4045421321555BA06173CA0A761BEE635C541FC984C5BD3857DE696E9B21EBCFB87ECA437E9A7B54F4CBE2A601824EBEDFD5446556B64E1A88B0BD9CBA507C5419CB8CC4CACE48A0C9668FD2D045E9057B13BF0785F59B35338501B73B44CB749EC2EBEA97C9D29EECCA6AE1FB719F9A67E8E175D50B2705B6149E9D5D257B34487B547FD050FE5C998412AD0B4159C2225EECB67903FFE332CC3B86266C22FF7776334543C1E954AF5A89C4FE59C1F1AAB5097024E2AA7BC09831C9A5ADB713591106CD3304873BCF11A9138FB08B7485E123DD8F7C107E336659DAFDB866487E197589DE47D2DE8298EC3560EDE21A633F820BE6352CDE9AD51515D309C4BB4709F171CAFEB407ED1A02BC4AAB53588C2CD4C273BD527F8B4078925FCFF8954536E0B4366E474801F5B938A4B81F037764D5CBAF19F237CE37D00246C60DA652B76469BECABD51F873DC75E520A75B52BF585D664B4CB9A09F8EF3C03FCBDE6B9E595C1371C2CFC24C16EBC392C75D2BA04212947944BC0377DB718A7FAE0F6F9008AC7DD30B94C1FCC6BAF750217C0119736E4F3B7E744AD72F1F0694BC88F71E4BE51ED8669F0E814E12FD9F833286E2064708951DAB852774D4620A26100FB44A8A92B86E17507C036CE6F3ABCFAB91193CA4BC4D4198DEAD7CEFB71B01FE2506995F2ED3A02EBB0355E6B67A2294648B8D1C1445164D99B966588CC253D1EA1361163024372E2550E9D29AEB4234F5F9B20AECEC01862CC98365F1C57FA4D5E0C1F8BF189E169669F825DB43172D1F682DFC7729B2AC0C103ECE4ACD982D86C515A208519D23F62934AF981DA66B97DE2389F2F669EB92CA4A5C4C844FCB19903371AEAEFB32E210F2D1155576566C7B529A98A1CDBA36B450F3948F34F90A49F50E7412E6EA68BC3BB0B0A0AFE3BDDEDB718D5A150EAEA784859953FF1DD1B371C539243547FCDFF4ADB06C61CB49EA5783AD06BC8C1F3E32A95AD3CA6D69EC1D226BF9DE0562888839E6243CD150EF6953C158F9FEE5EDBF173997D08509EAD1ED4DC2AAA33E18DCA6F59269CE457C412B58C4483BC96AF5069D1C2E3F2F8DCC5FE2825DA21AB2280984C359DAE44C2367D6F002D64AB47F9B64B5656622517A5F7D5E1A78D4182B6BAA82E0490659CBF2724080A9ED39BDFCFB21BA362DC29C750C5034A04EA5A85799E01FF8B16ACD2EFB8328BEC686AFA20E591E7C7FC55BCA8BA1A3C388B785AB0F57208CEBBC5619AE3A0B799D1816B013BD67D440A7AECA7D0BA517846B68F70CB5D6ED46C36F663D6F242E8FD8C620C9383EE1BE9250D63467504B229378D2589B525348DFF852AF1676A18DE321DD46D7AAFD3DB1825F192FBD3F160E8CA400B201B1A61D0864257CA340F179F5F1967659AF4789846A4D086041441DCF4267681B83D4C8539086E276C21BDF677961015CE550E41C2C45D67A09AD8F56AC3ECF1058F366F2E35BAA9353A5CA40C7021DD09AC9FE0187C10EFAC7BBBF3B1A462C9C6C96699741AC16D3526BED3B30AE25B8E8A9ACD8CB2BB6C28AB89F0A3F0D0F40D10AFEFCCB067A37A2C93D3E8399A366B5FE4829870DA75B93249DBBE3C9AC9FAA70C4E414EBA720C323E6627759E7287472C3DB9CA9B1A5FF03E872374D6B893BA4887AB227E989D9D4D348B3965F7B96C5094F42D84432EB771BFE757105966C9A08D6C58DED7DC216B3D0ECAD2D0B025DF33CD3D813348B5E08AF95BBA08DB5BFE5D0A151C98A01ED27661CCF80F416A1AA260EBB56526AAA289F17FF5AE97CD0907D9143BCAC73F1F83A2A8DEEB3ED209EF0952D5E463D87145E0E4D8BFA1741E3FB737E14B5924F436D0183D98EF836DCA3F9623B50CC13EBB5F94EFBB76EF9BDF40CE6EAC9C49852D08E2A5A193D1DACFA04EAF3C545E0E25E37E94DF51FC1976BAD069CA530E19EED277141BE62239F47441B88F6555B0A998C1BAB53758A41CFD8CC4CDC54E1158DE15910408A6E79D33CC37F61917027E9D2F186466F704647B1CC1CEC06DC1AC37D1A668D44DD8B12621AC3CBD2039BF5A843A86FA492A847D6552E1570DBFE008F51652D65D03D8B613AD917B81CACDFD19DB7F4DC9A14E237CC6D7268FC5D3B228BD88ED36D8360488509C974E01433D78701CE07108C67D0489AE94076106B045DF7CC508466D35BCF156901E53AD2B5ADF8795751891A5839033A40EF3F5DFE0BBEBFB2C9D1C000691F902AE490D382EBC87FD40E76B30DAA963254674C7B6F304DA2C8BDBE8E1DCC87DE0486B4FE6B57A18D5A9E9E4BAE776D6147FF9C98372426EFD30C3B2479231E624A253A7B0BEE31E0FF739F862010AF03E227A12C3ED1F33EF1C0DC9D48A100FA24CE5C5D8B5F88F92BDB6A3A5328B0AFA983D57A1D3320A682B5CA94E75DCC69BDF2AED0C05887B791CE6F6F8885E4CC55C3FB050ABEFCD3AF2CA603172AC78B3AF2B047E506639498D0391A06DFD328B8E1BFAED8F76C6E4A93E733ED1097DAD8663F5BAEADBE1562D40C772D376786509323BF059FF17A5E6EF5A31BD668954766417E6633BBEC90B53ECA61BADD4037030A55A5EF4129D4958F6A8A5ECAA1AE7E220A87AE996AE8D9AE46B9C60FEDD98FF1E67807037970C92CFF9EA4B64F0BF8907198A6C038F9826CB968B1F301952E1F409DD6AA4EFFCAB157E792ED45830708ACD7A50BE8C08FCD12560344221104827BFA495604A57826A49F90B8B694B2BCACE4040627AA0989E3DB4FB7167F50E8A04982084FB3ECB0DDCCA5F24A7398620D19B37309A4DC0DF28909E16645F35A81EB3C5EF6BFD650571DAB03A7FC02FDCCA5FD09C9D2D3DCA888B8261433DE88D05DEE5D6165080A237D55ED718486AAAF1E2534CEC3A87048ADB40EB9F9DDACFB2C883EA6B20BE1EACBDD72432C7A6C97721FE1E0D9A5589C951F7D46F2C5F0FFA909FBE12E1CCF00161E741C4505681B0B018FFACD460528795CC3810BF7F94FF9B75884956798F21ABF36DEDDC1F95890894EFC15EAA6F19E9148C71EE9BF4CFD41EE3E5DF8A449FD95E5744793B9C223D26ACB44E691D7E5B68D49A19687F0237E7287841D3B0B4483E2A7C29CA81BDAFA5D96D9D2CB6FD9724B9903E8CDD03DA810EFBF94BC7179349E10566B5A314F81327F76C5A8346E222C408EA43FE29439132CDDE79D0D69C45C7217399205C2DA4D33DB521940C4EED74CA22645D5B6A549E8712D0B8CC50DC180067D13457ECE66D489F687DE218449D974620B3B5462FF3A7F00C439AEC73A53303AC51EB84BBEBD51AA48A5DFB8F93556BA540F5101CADB8BDB912D7BC87EC2AC67971AB99093C8616C4D1F3E7B06003E4FF22D99E6CAD7558EAF5C1410199EC97720E5C9278548E7EDE62BE9105A2B27A54D95673849CD5D60424ED97BB64798263F98A63DB58BD55965D3A4283797CD88C7CA67B1C4F90FC7237EA35AA24DB18A4420B827B3FF7FA5472C31499480EEF5A97BB967D1EC46E7B05A3D25212C75972D48A9269D67048132399E1BE0C02150A3D48717E4DEC2ED47458EB870A1EEE5381209B5D182DA2093AE46A4D99E3D4F12ADD71001BDB936FE8AA96797982F88EE67AA2E0F340E7AF498D5AE05C177F0BD2650A02ACD4CE23018F9E00DCEB9794C5C76418EFA65634E01ED5E9FF94FF86AA73641117BD554A9391874A75C7CD1E7759755B9D2A7F367621C0011F61B588D913C7AA0A0EEE3A2201426EDDCD56A020F54AB41CD899721D6E1F05F8774CD5FF6417CB68EE14C20D9234369C9CA59627B8796C37B4ECF1DE2F981ED0FBCD5737DF0B82637D599A61826909C978A2B68CEF01C5CF84B50BE77B49C1887544779BFEAE3F533286287E48F0ECC0D36C27F1209314726855E61E5EB5E9A5D7E3516E29DD369F94D72004742E246AD4699C64EE996BC7B2A079344ED32A528A9CAD6D5AC02970D0168A8B5BC713E28934F2880774418550AC2F534D06B61E627BCB8711AD9FC6F2A4D9301EBB74E1F3C73B05F28DCE5623BE1BFA871C14A947A947CFA806AAC43AE515D6CA65436BA6B66F62B0FDC8AA4A748DBB72D9AB087AA39561271A986229EC02BA3719CBB1798DD333248E4DDD0B6EEA4169D3B03C9F4DEF9616BDF97AE993F0FEDAD31834B6F78E23164B556A39AC1F209581F61AEADD8E504E81A808B1E97F79F987892A8F7FC35FED9B1A2E9D3E17BFC5AA64680DE98664FEA7B479567CBE307AF2A8516BE4CBF9EA030471428CF802FAFF85701AF96CA1D8F50F5A79AD63F20C5CBB954011BE4B1A7F627A8B5F5A0D022D27BA6FCB8D3587E8632A2FE5794C7E8FD09C9AFA3021B9F43BA82EF48A3B1F3E40F2FAE182DDF9558F7033773F5627906E159B794C4220219BF1A9878B175996A16F3CA1DDEDA56B16E63C504354E5E42FB90CE4D2C1AE7C93D8CE27480F3BCCC076CC253B574A7BFA6D3BFABEB3FA6A19F196C7E31A0D6E9477F828689FD951E0FB033DBEFED6C680F0FEDF2F43F48C0136C722601CC7C4B48B24121ECB6BF84D6B3DB240FBA1E014F7E3ABDFC1F9B98A16F4D39826BC1EAE44385FDFEBBD649BDDA129FC7EA3F50A5F481D3B7508EDEB04FDDB3006D6EE943930E3F0AB405D151F21E8AEE5BD87F225DA6E155158DE27290B2048D384BCC54F0EB905961AE4CE5E6E93543016F62445AFB5C39C3EA2F3367A0B8F0FBB83B37518C5DBE1CCA1DA9D0B54F34B15A1349A2F03563732DE14EA9BD238F481D9B262DF69D24A91534805ECF57A538D8F08B2FF11E96EE692DFEB106D3515A7C69386A781DB1D5434AC18713CCA12C92557D1E7DFBB15605AE3BA86267F3E6CBA42B6084478E460F092BA2649C8C94D66128FABA2D0EA7D9BCB20663B0DE6EED2623A061778DCB40373B8CA38B02B7A49F6940D6D11CEF549CE80212CE8D3A85CF2D774431343FA1FFDBC71C5334B1CEC4D4E0EB643E1AAD67D1A5B73FBB1BFE47EFD83CD17C798044A504FBBA5726429F41DDEA7B7265A76A48B0BAB4845704C771638977511092BF6C6DC9D574E6288C6A3B96BFD37FAB695F8DE20F28ECB27EDA70A07FB2ACDAD88DBDFB2DDF06E83ACFD3A136C5DF4811D34C242BF9206D579BA8DC6D20E8600B726C9F1B918EA573B9DB2F96444E17B6EDC15822B85D452CD99CBC847AA205EF79E574ED9625E33B6EDC793E5"""),
|
|
TestUtils.hexDecode("""
|
|
d645f682a1b7aa2650f431a828463cdb131c1c317bc2d9a92477f9ce4a7190d287bd352213726174bb967d2538e6f796698924d4808a15377e3d05877a560d2cfbc13150acab39cc6ec464ae5fe51ef788aad862bdce80a3c3669186598ea3f01dfdf9479caf10033fa89d5bf164b454b1c909edc6a85793b2f3662ca4dabc42bf621b2c5f55b357d2b7c97b21a1748d6e6d0cb3c2e1d891b057f0c3bf482f04add99ecb92d32a099443987c25b1a5e26930082e9719fe2ca845343c3c0208d35cada03bf51f8952ef49c18c916c03417e217342ebf7234cf9270522b3f6bf7dbf5f7aff8b245f1833b8cb314f86b1e407f4e0b49f2f2917bde67c9ddb7fe39a64ad96811980b530df51645a89c365602dc6a6b53b67e56c74951d72e0cc2a7ca5ca0c1b32c3c9700fff54c317b3bd1474cb3cb402a85ba80def7b994f84018b9241ca20cc5ebe6cb24b26b4ee21904b658954fd9716004a009b762c5eb5afccfa8f6153d1cba1358653a88c0b87dc6478578929baee5bf33065aea3dc0bf333453ed0fda613d9a35e00eaef91ea96d87b676b66963d2affec30cbd7dbeed1f36dc93527db0a082d494afded3ac6df843e385a53d8a7a0dddc2a38cab1a92a649072768608fead5c538d8767a75f46bb73f7971a41401b8fd50312aadc6fc5f2096007d6002013ef9fd66be15822ca3b001540652636a8dbe65b2b6324885504ce3233f6fab6bdb5d05a10d85ca8b9934a5fe39d7c3a095530554d058f2f99f9c2775a0822ceccea548a35fcae73ee931ca01ccaadb226f91f0104743c423b220b9c76654c9baa1a1e60310673fe86e8c71eba544763f94b80dd075b3fcfd82956da9ffd4d4a0364e26cf4c4d7f0d2ba435a4e7b51b01e9cf55251a5f8fb4e32ed1fdfb6dffac187bfeab67b7bc06fbd1d623c68823d45d708ab29117ec17fb2df9ff17378ca7a021b504e678e4b7371f2aa05588d710f292e547f719f7d2e66ba39d382807ccd3cfa8ef2d33516053e6ebdb2a8584982efb880180c45480939af7b3d72e71d046fc78088c16aada249506b079daeb16056bcf49d495e5f5bc9b64125f66c809e02282e26a8b8c9656d19b75eddb4310daef82ff90bb199142ce3ea68dd6ef33cf4d0f2e7981f2d6d78beb9aa10ff7421804231b02b39b3e9c4be9363c49fce0b5a460f49094389ef2c28bfc45c805a563dc2202bd9da12485eff443013dc8090be20ba1430eb71516fb36926db06d59f5313d43294d09a5c242edc04ca7f1f69b3f87861fdd572385ad400f66ff9bf127e866957b5b7ef7e16f0cf93cd10d77b87894fd8c0f184f0a359cadbfb5fe6d91a06bdb000720f202f077cd4bf5c8b149565c43b4a07cdc5a3dae7599d26f3931d101d086b9546be593ea0bb85a1807eebaaa798e57d88d4b042aa3e3f621206e22f66335792b606f419d1dc63367d73dc462ebb177d3d9d4532ab6c39341b447af8a982d24300226fb367987aa37ed10223083e4db66a5a344628310d46174e0c8b466fbc0809905d416e1b742f3749ffe7ea56ec6c28b085d71d4e315b4e49d6ec945d23ecf5dcf503c59b839446abaa0ee57179a6567ab4d02fd1025b671aa5a464e1892e9e2b96248107fbe5fc4b792d1b6f62ecc6195be7acd19d76eabee8e8deea2ca2661a382f06e4ef90179a4fbe255f4a617bf6c1c3c564e05d1eac7cf110759364e7d3045b2330a52bdbc8ab2307e876df8b0011bd2361471c6cfd7fec98dd4161bd7f7517fa6bdd2d678dd4dedf71dfef7eef7d28d03131aa2db37f163d16818aac1e4daa94c6fc8ac8d76f03f981d98166431fb42081dc565049be93013f71832aea1c20dba0112222bd1acbd7e7c112ebfaa6e264655950a6fd78da09d55838d2f79a87a311eee67f023af189511c7e215cf8bf5b8f47ec397ff8ed22f5825814c86712c289977998dc8c7ac8eb60cce95ba56efe213043e7065d8c6e6c1c6b7c4b87f807e6375fd93e8133b9ca61735d2399bc2f0cd4e6d28c21c4172f26808a70ec7d5502449e335abfd7ec5e45fd298cdfc8699b2607745c30c89803cc741b1c74fc6698fa95c1397b59ce6a08a19d3572fa395af1f913af021cce85d40f53d511b2d6ca6860ffac07dae4de99cec54b0608ccefa3395e327d67aac3f8940c03c737f0066da5435ff060320aa68868b2fe309669a014e0ce7eebcb3e9f3d27684c0d14be48ef4d8de1f0f541c2dc22160aa238f736de0f31996fd1e554ddfd33892e998180e4a47fbe34f6e9f2004d009e83fc55e7c921a73390f6fd44a7f32122968e174fed54ad1117344325897482707ce6cb45121266c870f3f560c4315f046e3798073ee0ca7ef718176458c761825f7288b6663bf48b6efcc50e35a5ad124772fb64967056ab6a39658973471ecadd3d666e6f0377fad3b7390dc9ea67545fa030d1085244082ac60d0ba4d6f0ab44167571324e40ad664fc95c25dec94bfd59b32332ca5efda8288965284c7f88fb8045af9169eb63e98405e2aa3e949d4ebe07f3450ce6caa14e2b399e26a347d88b2fa8a301032c39bbbd945ef5d213cd4b3418c25cdd175a3ab8ffa41679cf6359ea3c28905309af59f0f92cb1db581e21da648f096171953fbf62d53da61da8eee1d24053270ef6911539a7ee93c6ff45a0b465ca879498e131d37d1a05be88fad8cc28a3026c7853b9a48bb8f1680889ebb3978b738ac7c3c54a0bbf1ddd79819a70e9d083775095e1daff66f72df70cf17e746c70f3d291a343d4530b6c9dbdc861816ad799b1a63f807fcf791fb1ca2e3160543abbd10e4fab61c18c3c4f150519d9690f7d22c10bcfed5c211a6af6f438737402b425c5ae274ca98716bf64b127ec0c7a6cf3598e9bac44149b93310ef5de9fd8381a961d5b9c166b7a687072a1aa27a8ecb2d9a023d353bdd29870650e0626931654ad80a995d6c5ce63ed42ec35444ee57444ef7edf45afe7255739b7ea731dd4c48a1497b5e6c135f4ddf4cae02577920f795809c1d00a391f15e7e376271c0cc0a09ef69efd28f6a44b6d2a9577ab7fd2198f81b92cf4094c7186e72fc3a379ec9e31b7bc12873a0008f40c14a81180f4caa16aee8ed827341c08fa4c98d3be393d524abfdf5546999acc4bb74e6d72b7db9c443bf8bc300fbb0d19ab0a716001cc87dd27bf2605930cfa437c08b0392e8526a26dac97e1e692baefc515eba1b82fec70c5eb4fc950386be3a5eb3379537100649cd192d611dc90e5787dccc69a364afa632abb31de145279e9d736ac1f6185f332b75875006f01eab3a48ad573d4e9b6849cba181d1aaeea5120fac5da72d81e7a36fd0847fdfc5f7f8f589b98511bc086a107d1ccc4797308be5b590ccfdab138078ca19679a5bde6962909491e1df2b048924a235819a7a28e3e3e97105a1a400c0997376ed9ff34b48d6076fc8d9668e6498171b82d7dab2418146610d80c2c7be50f614c6d5adf8511ce282d2175ca5101bb18dac9207813b9be0510a2195cc2c746d2bb99d3049f29374664d74497e0372994583c788765f3ac918db9a4d4d1f2c2482f50d013e7e93e0a5228cc03f4db0cfd14aacd90ed05b7ff5cca2b00f577e0ba47e7a0eda068f1aebbe688f167e3af3bcde28b3bcf0e89c63389564fd60be1c8919ac245db3cab86fef9d0bd4e365c1edb0472f4ba23b22c1918a399e3e08933031b2d0ada07b4c89abeff516f06b67e2b5c6bfe4fb6671ea4a45c375b9310f07278f0594e4943f4e45098e3c68c2c7f8b4eaec3b3d49a21c077469c84407b2ecf958c7aa3ccba4833a0b8c6f6cd8475c4d239608b9d25bcd9324326b4251b89579f2e902724f26943ae92b95487b215d719236f69eafc46070695e8d4a93053e275b93cf87723bdd589c15f722c093ca50c1d54121bcbcdff8c4e306cd4f11fcc681d6af09cc0de076a252bc8583b5afba1405798756432a729b177906ace7f3b8340f3526e7688fd49206e6853b4c72979469a30c584786f2b8c75cadea9eed04cfe68dfefbdd2ed5e1e2b3397ffab7c5d84e645a4049e50bdb9cb2453092354e0112cf00fd214e22681e4111a7d4563b84828d6bf6450facbdeca5137699c551f2b0c7a0bd5ce147dc71dc2bca5b0abbeeb109e6e951115c9c8448d455bf723b8e18e31b480e5b17c8de45d3f73ed313b9bd6a8f5156cabf25eea4737d4dfc8ffe042c6cf665bb346d89477d1faf60ace914eff5db92d82ab2da4e08de466f532d1f7c639d71e6c3dca9bff0c5a4948540cbecf4aa65c4dcd7caae9cc3ac56c04511518c1ebdd02aa8285b05393ce9fc2d2a3d8fcfcf79d4f1811d9073346d67f4f9af28d15706d577f8592c653c315a396e03f3dbe81c339c220aabd4f654239b14dae453dbd213da8819df690f38ab52a1f67319dce8ba5cd33e9bd8f5e61c0e0107e97b7bdc384269d410cbb77e19f2d89e38305c6e7dffb952e331bccdf884956c9c67ddf2d56c048b31ecaadea55e8efbbc94ee0a19980cd30edfc85d6b3ebfbeaa51ab1bb01008554717bbc6b17ce9b8b255707f95b7302d63b0189aa4e9eaa966429c1c1b9d2aaee73460a2335455f8e9df22a2c3861cd354f5163b1f1fc212f709c040516172a63acc5e6ee051f5a8a9195a3c0e3000000000000000000000000080d1418222b""")
|
|
),
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
8ee898ba956b2d9173be3179771f705dfaea460258d89ebb97518aee95f7560af3a7aed5924ba5d41fc95d1e38a50f933d02fdd280aa39c5afe63c3d9d1794d60cd72286b030b4148763878971ed0b5148ed040f91506cc5443983ff03d71e76f9f9c56b1aa8cef53b23b78dfadf10a4c5a1644dd5b2a2e33818effc45eddc2e4335271321448822403470047324138804438087588843706214268172475025276564145746423461361702544370526584123688122766438025344681178752630841205185142880034051070654535540731775307511227772152582388516212136381805636674882762427882403274050386855208724802323635371166346386078303506483716037112661182682653125854143637634378471542132612773664523401452863833035254314658307485600331255344301038588760626073667657566824783054365633462288132682748533875185444862162254814415860001373078718255261684106327781124677850673185831163442273852312501053226141146222163634824506148584236864562146634065825411836882440250464233048824316504534284448710354356011222712187424043071220737224254741123321834651238540136100320462350627487576313802878824634827083482111278134020462438040464126408725167702172738314238282431041864706527654420367467388153108253278207884852246535046221737521426013710361237422631134378231064331038366647860156765065640638568152013685218854640261823187005008782410321125585430133008257133230477257543211558420767576103710054360341783614605248464771084540585787050215372485563434880427653241876310603860874544450548477278031034433603287642374200174807130835462067337683542725204412564185801303727563151045102036044470344241431513253750453344181068301323415742204353382058206486112246730432277510678825603044373307002101505886672800331788627547508848481601812208166603083203168784821438117303781442370283147018313617430171084244275611261755507351877717165262323632087124473071680850882748858017077344541605881657867251885383643636341482257133852421828175577536553188518014245127151435848786816878767508827008813446037762050021601433060112405756553576443238728042504312434387673134061740013051122052603863687228884263102734303648422212081046737102202224817233883384451275044472426612740355787867625181118451686770774617255260137575557073363187168671736888138141114578031460423674014223161125708738168365636487634115108663062235075448825402171750743877411053310363480603171263331785410245534061202488708057726864521028558241854255843757183423680846382543841745715138847777161848558266446618833657585682227476126378777007712556452110415211151557863105527250341262385616773256816580020285012073863107105853065263780724346221555084082217168843148616386286504840733176160868120580618151810200358586663211701312313183338517302461622880660528360255424478558281645501247851806440186653100125027022143448400050752276372082722240442876067275785022216006585466382364038365267686378250502150410212655602182568087652266441770205884064038705815040665563873705223720346716224782001233877143608776246446162061440454784430547646856536083466603722577250585160465535136334037007631745875388337766277366743877607052036743878504071126007836356552360764414077761063784001337335478033158818132673068800873836568074230378648445702875646304c0271d6e8c228b00eafc0d3759106302375985b74ae9848bbc6737ca0e0004e600a1208cca1189f40a7e02deb82f24343ce1dd15b6edf8bfb273ca6b01a29b9dcb7ccfcb3603564612bb0278ad176a72945dd9537ee8e61055db402662736e6d760b2f48194cd3c8f64b7157c0c598231e4994a50d837e29c7153a2ad127735672361e7cd7c50ed7e9466a3794c388dfa6ac647ae4fc7b4fe23e4ebecb77b54b382fd35c9d462acba17a5c143b52df0e5fc607cc4a5c5c504cbe12b8c226a0a954f69139cc1ba4a050c754773e38c5d43524ab7b76179d51ea7cbb54edf38fe67b71031273eb8c38cecab0ef49418716fbd2f2977fb1747e9818db3a8af81bcc4f93531f0e6f1a96666d32b2f5faa306648cb48c670e1597981643cc703056739317310728d16f6b0fa1ec0c27eb3897a76c85a8b33cf7fbc8dc5577c96de4c012563f84e9eb255ef38c2f3ee893a514f854ea1032f9d4ab2f9c12334f1fe48fbd71b6b115f33f6909f154596a3eb69ac7c91455c8097f5ebc088f1f7970f61e62bd19f825e54547c9ffacb0be763f8d85e4aebcc057c4a21d87b24a93969dca10d8ef3d8cbe138dbc8142fe9b25d3e14889d9ebab76b1c578757992eae0242b4fc7085041472ceb93e91ada06a75f7fd0d65cf21535ea945be4c96e6861da836b0a6bc8d524fa0f5559e28de32f5683d83e8359bc1dc63c579612c0b8fc621a7574b360a825e5cc74f24e03f171ef6d1f46e9fa47e2b2b97e377356eb0221a29a0c807c43988ed87433747039fb3757bf45db3c8767136d495e1422ddb72773b6839fa9bd028d9be2ea8af7f2dcdef13fed5f0fd44cc07f6096b03d6d4e7649b2f408b77f77156b7a52170a778e595713055dbac83b783c18765bb7dd90a6de2ff459f71f8171b5e33342a3aefbd500c222bd1224f1a3c3cd659f982303eb76c1a85a54c14c076ec49ff14021d84b51409729358d658e94becc1e3eb1c11bbfe79ef4837e9f0ee82bce0141f6ff8fe89567014c5cb2f077ca957e5d0c8cc77f2c2991f9bd50bfa07de7f5257845b5155e64948f60082027fa48a4e573a5879442420d39868dff08fd4fd4be01f0f4029c1d248bb5f0460cf9ddfbf16ae8f0bf845e472afb0c116f442f65c08f5abc517d3f001c2f6ea767d0ed5392bbb6d0a5183fb9b49410c7cde2fcb06a388b1df37ee982a8a07f0855b19ea4c2debc518b22d2347a1861a253d71cb980da4d9db62a982bba68b5d7b67fcab2d59a12b4a07fa5d720737d3729ac05a017ea2a6a14b1e0d708879561559da4f96721043fb9e525f84a4d5b746eeeb29c786b7fb0067c313ec6c3e1b15babd04503a437fc65f09be43f52deb92afd83c409c3c844d69354c9bc1fa3e4b57b9590efe6c64f185975a82a50f4abfcac043b2fcfec6992c1b0584306d0f6cf87654afe94559a06ee672c0d8650ed629311c63305a9b58679276faa5370a2ec225b693527452edd3a654eae692178995f0020a8f98d0438dfee350430b8a32639adbed99dbd89a32e3a1aac453735fc706369e477c7c176d446dd2a75e39e116643e3ed043d8c1a653a5a6804f5cc5b2de7f0fea5a9dc5b1593bdb481f0de3e4ab6881c81b5785e56a4a4c4651571a063df331bb7171919017a9594334e9befbb31b696a43a50a5768cb523deefc30c681296ca22c6a7d29fe07cc3ceb8693721af0f3d157348b22a7f42fdcb480aee1a878e476add1575e6196ae974075919e7ce786b8ce2b9122d88888452bf8d7d152643dbd3a2ed09d82324f0bfb16322d4cfb5ccbb0ad9a5d6b00a023a2a0a131c8dd26bc8c6ed0af34522c49cb7c171458cbaabfc30d3663bcb5091cd82f5a9564d835cff8362dccd71ed1ce4ff4486faf9f7c1d4f7f4a97f7f6e39cccbdf894828c9ceb0480e1dd8803ae0105deada46ff07bfd10f78e40ac8f6c024df3730f9125895012ce82f4141c1d57d25709c43eda091d15c0516bb88570f85f83ffeb0bc566d4babc7cb000afb3acea4151fa6872bafb8f161959a48bf1350c2de505174ed12b1c8ff13cba9fa06208269efe0b7dfec049990482fbd5e0befc66e6cbfd4a51247777b186fc071d16b6a097a026629d9ac25a8b19c4d792fa83676aeb4095ad170b0444699656838438f44e99e9573843775a513ad2d410c1b75e8387b0f43c85a7a47de8b178c997df7caf16bd0447e58add034c4d80acfc35d028de6cc5bb629b1246ebb814e162580325ea90f11c45163cb54405910bbe326019db6e01a46584672c8d890e1012244c75adbf85427ea5f3ca3885d7fe1bedff5181c4710b5291e9d40762c4ecb01ec87f4c56ccfbce91c8cf5a30cb07971a987379a61884221d5863b8ac975db6cbdeaaa9843a0536db58d10dc69fbdd40d50a87330e69b2f37f68b56eaeef9c954e2ab82ec848c9836877c2626a1e827ffb3e9306b2f5177580fb08796a8c84f45eeb9ec0e39e71323dd29f2cc3efed0e3b45347ad0aafac1a55f27b85a097ff3d472e3433a713fdbb7ade4c5be07db18549d6a8b13e679e5afa6697b7dc09b173582cc2cbd6070947638e5a6ac3fc55395f1cd9d3e721cad91c561c2c6f1702576c164764e5681c2b3b743a69fcfd6f0f83e21b695eb602f0f1c93ee7df80b4bbc1bf9ae1429733a052a232c3e3783a59b8eed4fdd2f3901ed0e0d160075c08c687478ff1156d239e0c21113c9281854d9afef67e2cbb6e41159124d217c57ab53cf667822e7dd01ba93af3e5948541d2e837172ae1623a07ee6155dbde9d2a576df6186de1c2aec399d22682603e7909610e463cccbcdad8addde5a3b37b7ebdb7bc7c2852bc6603568edae193fa204bdb5ff53177d1498b4a6d8eb5ef0a40528fe207567e070f8315fd4a03dc968e3f74edc11a3d2373821d38b074793c2b4bd3a39005d36a787ea2ef9d355fdb535d118af4897c4428d5e9150378e464ecea9a43a791070b64a455729d02565c6ab91771a483375158f24a0780ac7b42226367cca45d1b605d7e60467b50ae7a70d87b3b5020fd4e191e651878b509f5b5fef74fc0cf137ad6d93208a6794f17241fb462833d223a3dff1f179c69d7afcb9d19d803d4c7933456beef432fce5d642f72fef9b0e40211a660eabc4df8354968394a59fab78c44e36e65357e6a5963d828a2e801db6b266daa51de44ba2ac6bfac4a6bd0ae41c8704e290d7515adb26867c4530564bfdc76d98d4250539dffb46fbeaf7efbce573e177378745732dd9325ac98a747abcff929413f73e27502c433b589f879078ea826823d4d418660ea49457b21eff272778b240ca64a56e2349476dbeabb27c57bd51af02cda5b310a0eea25d2910c75784be6910418ae30f36bac9e78f80ea3fb68c681f3556d3f59b9516ecf88b4c16fdc9c5a8b8cf14e496741413903ebd4500b6812e4c3d2f7718d4d0a2e39a316b90f546a5b9aec24606fff6559cdf9ab48797a60ebdd5229a62dc872ec0d36f9f2afdab779b913b5a2dcab68943bebd5ad57a"""),
|
|
TestUtils.hexDecode("""
|
|
7C29C0B8E2A111F457E2384845E7698DE4BC9BAEF093F15EB03828664AD31C387B247A525623282460D60290FC479A928024CF62571A57F77B17DB0AC572CB59723490DF79E9B1B31EF2C9488B6D758C43EDD9162D8F6C0B03F43B08D646172A1F8DFD71D4DD805A3AFCF1C4265BEBB71FB251DC9DEAE670A664BDF943ECB00FB7EFA37624953F94CA760013FF1270C1EE7FF58756CE19C204220713724AD03B10F1D6961CDA361539A8AAB6ADEA92AD782F441428C0018D85C0505BAA793C752DADFE92BFE8F033931D47575C9F83547DB18DAEC0FEE90E83967E0D0DC93281000755303F0F5F05DE041211CF842404CD5E24DDFA3C7C83DE3EA21EEECE37A52E16DC80A350B3A18E88EB3C81C74D25B56CDB446F6198DC88F981F2B1ED8DC94194D81CAAD971A9A3933E9319047C5F31530C7C98793A0633875A14FA5635CD1B0441FE267E79C1E874BEA968CB63E20E7C48E7BAA9CE8393FF9A239B5A1D613DA65F7DE78BDB793AC72566FDCD06CDAAF56E18B773737A82298902F7B4890EDABB766E990ED87C94005A2E2450AC1D0192D72468F81DB414F88CBF07707A95F549B7A9EA0760821AD710D52787730EE8917272497E5891656176F991F254A5D582B5975F95AF740421A3C18A82158AF11DB15C154F17ABE1163F997C64A3BD989A573D12642B9AEE87C1612A39A8A4FAF25E35AFED3F2DBFC8FC8A2F9DFBC683CDFA3227107C50526149557CD773DDA16E36782A278A93CD7F4D8FB47DFC37DC3E389D164913316A885C3A800DAD0C57B1082BD4D804BB6A117C3B41E7D8AE9CC9622AE3CA8EAA9A0B502FE3F5A449BA8E768D2C98013F681C68A5F4AD3CBBB83F302457679BCD3F35C4D6176DD8D2B670E87EA291EDCCEEB9917F98CDDF5EE1689DBBC85BBAA30D191F1965EFF8FA9B0073D30B1E2456FAF880110BA9E75E4E29C6106874D32944F49DC7E7E7C56ECB9D287F2C2E87A779052F9B84FF97AAE007012A5EC497C4809F0193C69E5B29940510A354C866505424D4FF3853C94687636543115A73DC407C47927EDBCC4E0567EF4E451F0E464A1385D2A0D740C7327F6E92EC6091845356C2620EB163D9F774D7781BFBC6F6F652A4A2DEC73203DF5643E1B4C3C3DCDF0B4A0B160598EFB56499D2DB1F1E76612356AF3D708F9D61D968A6A0193D9146B2983972271A4C02E2136E6593DC47FDE4FAF2540A8F7744BC3230529AD1C9D2FF65B7671B5A5B16AABACDE8D45A940ABA4171E21090AC6AFF54CD8230F7BCAFFC42C028E6023E55DD02E4B7F976998AB5614A5681C615BF8E9E6959B038188F71C75F6DE44A6B0498F2A9254F3B0968AE7DBB49872D775CB0A5725206D648862734F202DF470770AAD184F822C56400F16F30F8BE40C463CA3EB5ECBB15D51CEBCCEAB43BFAD7DE7679894B90419B65912D67DCF2335212E82EFDB6267EEA331C1439BE2AF62E584C222C1052AD91C7F5DB6AA649F230248A14AA6A532401A28ADCF822089140FCD3B1CF2358DC26939850DB2721750F1537424F6BF2020A1B4684ED79402917D1028C1B59076867DA809D6C5D3F47277755384C20624388EF0AD68BBFB6A63005AD1B6E48ED654E8362B2AF7BF114F2D144A420712FC4EC71D408BE55EBCA8C2F185E7132196B1B76AA7BE44EB55DF7C82C768943D649631E4D87B408DCF8FE470164D9E8DD1F48CEE7F6BA93E239F889119A4DEA118D93F1474E516139036D640EC788AEE708637A619BD1693BAB6C9EE9EE0C495C0D0F8912C0F14199AA69B960F53E4FD8E2771DE4AAF72117A5B2388FEA0CA3BDCD594D1760905F26482459BDE80EEDE3FC89F592CA16B65B27E9A21F1789BD0327A26EE2224C61D80AE8FA6053480048D15019A80FCB5F3B3C6F64C168690E4384AC05E856BF341531045D2952F2CA8BAA0B8926CC41AF2D8BC5A1576292DD67114D521DD4AB535A77E5E9BEF8EA01DDC7C65446D11F90D6CADA94AA1AACFB1BC3551353D09252FE515A465C1879071F6FBB035DADA0BD25A022B026AAA5B5BD420237FF097099CA2402E68E4530F97A003E50CF693D1DFB551DC4695C760138E88B8D11F3075DBF8A6D9BCB9B1242648C0C9DABDD9D49CF132B0766302437C0CD81A0889585869DE92E6CB30C31265C84F58E9437CEBA891422967AA546EEF720A8FCC16EC7591AA0D47998275DF1AAA5ACAD1E1C5868CA430F4FEFA0277262C69311FEDBCC083114AAEC9F99FD98631137A117A9B48B32A6D88E76F96DC58D741395BFC102E147C456D3A78A0FA3D186485D65B4E6755B53D301BD13CC88E75277AF3CCF1EAC6E9C56FE1F10DE05A796A14381551705234F65DD6E717E9EC275E38690B73973C9CAB27DB909C5C13041723BB18EFECAD808667643E87620191008E4D10F471AD153D27F1FF00D8AC6A8C5E59197AECA5AB496D8D10BC79C49D16DC7948C6AF62703D36059587F6EE038820A84C0F287D79C713B066E1DA5B32BD89E5FEEC248B34AA5841E8666CBF09C47EFB17BC82170CCB557D41D40CC87F2E6C0246F0B272733854CE162538DF34559473BA5979AEBFC0D6A16EA7B399687E672145A1149E382954815B41E7E37CC415057D7536E65FA1A35B8EFAABC7B9B0000E08B593496B01E8F14FC950632C659C0A7F7D59787C7FE6E8FA7FA0211A945ABBA5044918CE8482C6EDB366368A9DDB2F2BB66C146BB50251CE61DDEDD8D6A4A60FEAF0F794B7B0DB91C52D7ED1A54AC85D7907BF3A5A96A60BDDD08F60148C0B3237DBD56628982375A67F025B0E3F9EE13DF254E1D6DDDBB057203CEB267200C7788D01342C064FDDE996183646FD3C1ABBA5D2155383CF391FF16C78660D0BBEB549483A4A4A971017A8659616FBB1C3A8A2E83230B610C0C74B8EB32667765F3C2F31F8C0D4BDA3D812DB64448684AEB482DFEC5C37EDE742091EF7EE6F22E31CBA2C9B9A6656888F446A1E9D52D9E6437D22594A830958CACC6F175D4CE8423178B71E7CC81BD6DC2A7F6580A8A3A1207C34D6A1646BC3D89953A63D22A30EB9FAC74103FA527843D3BDA656D1F22E729C3A004B923D08C9CB18CF406FAA89D0D63782C7264D5A8C8078EE6D259EE168A415E7BC83E4F17D9E674154DF08CCB21ADBF5B35AC28883F6943083AA97210C6DAE492C6CA4ACCBFADD99AED15110B10C9904469B4F06ED32546130B0EC4B281622A5EFC9C94B1F2280F251AFCAE857C4E17FF5CF472F038E02E5B7B3CF5CFD2F3969B9B8D5A27C8EC38DCA4284F0280C24F01DD97A618FDC5EB57C45D9E2A05B44E69FE2E47CB50F596030C70B62437F2B91A67FB84205D95CAE259AB1D5FF0454C5B4D87F439DCB7FC62B704ADC7A84502E1BD8E6F52109BF0F36824834D574E07B9375E693AD477A9D74E94BC4E883206DCF875AEF7FE84B9B7C1C9B1858E4BF6735235FAAE21FA566C866ED7C952B1BC19A911984EC25AEE310D8A342AE32F46255E0E00444CB0EE90C37152EDB6C741F5F394B5D47154825279465F0F8B19DDD85B8D9194A7AFAE5FE609A245AD68786C9AC044C008A1B3EFA3A8F4FA0FD49A65B6FF562F33DCB63754BE76244326FB6E416EE3267F93D7B2BDC4705EE7021D5D2EE66BA8D7B9DA7EE6C354E05470B31406DCFD2C32C94C22A72DE90E5A9DFBA99ECA95F73A014A3E9B15EFCBB67FDFA6D3CAFBE3ABBB28C4DEA6AA21F87693D68F0A60331786DE02BFA9E85A8D2AC8524EE184EE738BB3FEFEAD7E19030AE883707DF67ED12E8757B86E6E5FBA26715DBFAE2BE0F90453868931629FDE97712E08A280FF8888007AC27DF2C7113C30604C5DB17538F026F17C7F07D2A94AD5AB367F9CEA87BDBA712363D11FF5CF0590030BE9B342A7ADA48C08BC42F923DE939DE79616CD346B3511F41CE695B3F939C101F687DE7292CC96691EF3F3CB653F4A67D2EE09C791F993C726D574440EABFBB00E5E6328FA70D69FDD5F2EFFFD37C9902AA45EF4E9D06059B0D8E3686C74C94CF2F0032ECF740B31E3F297F15343A0093EE0B8D7F8EDA1118D329D05A1B992755181429D410771E37B56E28AE2ED8C4DDE8422FFE91ACE348E443640578687C57D79DFDF917F8E60E0A2F1C6223056C373F58C297F0FEE3060D31DCF6851856D1D05BB38B1FF426BADA10FD84B2E08AC149F91DDF4A5CB38B290DED4EA3B02EF7A3DF42BDC6B6205D281CE4A48A1C13FA8080B6B4100AA123097A4140415EC7CEC57790D6EB0B4200AD3DD9FB7FBD056A5E3E9D7B7EF47F44A63DC908B6DD8B020854618F7662391DFC35A88F4F5750D282F81DDC50D0132707174914293E3655BD2942C09F88627C0AFE4B921B766BEF41E246FD23482B5B14F117E8EE340C47C7C405BB3692C4C9E541148C2B38281EF0274835860E19C2D48953545247BD1F7A76CA43956C069A17CCFB4D0B0FD478556A209B5376BE9207AB174D2CEC96E09E1F8C0FA07D8920B2ABAC3490216DEBC67030E9285B3EF6767AB11E8CC935C4019B7E68FB9AF8864358E6927D350CC8B9A40662A0987C1C8877AA9903CC89A93E1979ACFA279FCCD2E171A467B76E1103C4EB166273ED7B4878908B67DB77C4FD4E49DB46109DA4BA78D69E03B48518F302647B8186F787F4CFCD87CC5A45B98F7558ECD0612378306C9D69FBE23B06005CD5AD84F73A563B1A3C7988CE0157D2D2703ECA8575D8BFF972CBED32A231395655DDB2188BFFB413624639D361B3388A9C9E13645C563A87C610F6FE79AD50765CFA8149E27F7083A316EBA050860A69BA56D002A78640D71794980C83573A5DE69A697C2CF2E17C90BAFAAD3D421C6E1D8A55B3FB4700B666AE3CC3EC114E9DB428F27CE427E4101ADB49B84CA7855458841DD1F4FE76D9074D940102FC47EA633744C2A664E22B5C5AA2721017F3FAAF4FB033FBB1D508EB98E1D643406ABD4D69C030A2349408C80993D9F75271F913D7417DA995443377E6F73A7DBA24E034A9C4820117D1F0BD69C93FF55CFFD2D36F8078209F5711FBD1587435517291498926E7354558945F721D00A73014C06B2C9BF04B7E695B9109D769BC2172CA7A70700A1D5AFF6F5FCBE699FAE81BC34B0495A82BED01B983444224B4B860360C07F8C3035FC4F0C4B7DD4D37ECAFD32E8C121C677ED263338359E25BC4173D191E869ACB4A5F6D20FD16FE50454CDD269DF8CBE5795482A2B40D52BCE5FDEBA62D9274C9C67127580795BC01752740E606D849AFCD6ABB8340613C61A764B6B92863779622E40EE7A8994034E7D303F07EFA11ACB70419A53897ADD558CFE157CAA3D47917CFE0287500B3D70FE42AFE36853188BC815CFCEC9F56030C83E85C60401912C14A75A082DE2E0400F6348EAABA59312C51A7E3B6A5B39D606306A304B4DD3472C5B89FC65DDA54650392A02CC6761336FD114D848BD889DA4BFE6D32931793A6515510CD802E3D9F2C6F8F2F9DD96ED039462C587395C7E6861FF48B7980D492C23E0635464C7D1969C12A43BF0FFA3089E6B367AA65D4678A571A0D47A75056B34E3F8819F8B6ECBDD6BE580D423D902D3C22D9D787E0F1B6202DFD392AE028292795FCA0177CBCB09AFF8B579A87A854432827CF797E494ADF9F96A56777AD6215F284EA91D35563F25355D12BD155C6C364B0C8423E1BBC809E736CE0BF03E0C0B728F04E6BC8F3F07A0D952AC9D9530C77547B687E193EE2D3565AC755DDFFE880AB0524624E17E019466B7D0E8FD6E94AC2BEBEFC617BCC5D529C83A90D36D57A93BAA0C2ADCF360377C9E9D58C456FE9F3D49CA37A8C3B5BC7C231842B57D320310943FFC0ED2F5F622988ACC7842F8410BEF0E0671673E7BA61AFCD2EA83CF066A169BBD97098F4B4F3C9FE73F5CD779F502C584849D1AAB52D7059D1D4432C27FC9284FBBEE43D07493A38B139152ACB71A171D454FCF936656ABDBDA03DEF3C7B27891088F940C200AD454308001FEB2DFA0FC38FA74F85A30DF4FFA64DB48E7D40C158F058B58174F18BA482AC445A6A63FB54CC6C7D4C8089794E8AB5B38C41C7FF4C6A8A5F294EDC3FFCE3C01F2C5C7FB569CA06567C8D3BD34F82046DB4EE7F7491D890DA1FDDC55B12D90A7853D8FB52E86AA1FBC669C7ED349A2CEEA9EF18F76C23E817AF58101BC5CCB0346A607D6C60BE5CCDE5DB9889E040223FE98B17D31D64E8C1456C01353887D75EE3B82D66CA0679B1C2366C44E52D73B09D48A39D1BA3FC87D73772DA601EF442208DB763F0BF888D28338709FCB008B83671442CD9F7ECAB2C1E26428391E559306904FDE5BA21E1757D94F84F18A5FD8A067C556834AB257B9D2E1290FE0ABD3BD622A2AD92BEB2C6BC61852D58384A20B7409E4F212F630BB280A46CF89DD702B2508752D6A4DA94BB769797B6E7FC318B0B3ED50D7F8C5D8579526D536E4D43F93C055479D53BF6159BCEAD8CE87504EDF7DB35E1D03EC7B4F13802AAE0207A2414802BECEA39664110A54C37415EBD7BFD5D73E871587967F24EA34B7D06CAD805EEDB95F1023B7BC3A74A59A6C9F3A4737FA1BB087012E0162CFF15A539E86AFEE30144F320FBAF088C6884489F84F16458755561C9CB0723CEB6ECB134083C3B82E93BBB57FCE8D51374D38746BECD09A059AD6623EDE82EBCACE009C0C27D5FFFCAF76C9E91BDF5EB895FA1E9C3C0AEC0BD73B1582C067A45CA5D15E2D45E7316CD4B176D9DC7241B05922A682DF919B2D2DE2F45942D3AE254FA55C5D90B8DA3C7DFE2DD8381AEDCC9558566E8DF302022FEFE51F23AF6A018AAEF3C93FD608B0903376E193CB1C13021808ACD538D3426F9B3399686B6FF4DFC0A4552DEFE49D042BA76136719D62884D8B93A349C22E0320B823740DDB3794AD53312DA5608DABACF69767D76327BEA7A644A304A132F2D2FA8E7C8F4AFAC30E389A995C0A2F912E98447CB400FEAE35B3BE089F46CD48EC8E38D4F2BB44F1734C67D5125D7266AEE3E9D1E91F800ACF8038D43B6E10750DADF6CF70DE75176A2E9C340BCD2F6D87F976AFBCDAF5E35DA9B268D3AE1F0F8172A342CAF9602593A5ACDE03DDB482E80B825A7E91E8B0EFC1C8D00309BD170D9F12BF5017780A54F440A58BE4A5257AB67190C62DAF9332F3594303B419D44A38C3A8032E38599B49872D241AA44905CC851DDD0750D04815ED88711353DC2264C0302DAAF2FFD34E9716FDF8A81F7CCB5757913B380A68F153F62E0BA8335F8525CC3A20145C2416581612B9C29C0B1B941946B2624731FA50420716162C64AACFBF94B43B10E59E0AF3836A05B9335B0C44370CDD2E45BA817631FAFA2E0ADC801772F6F71860CC2623E1A802B370823D02442108E5C142B68CCC9CDD0BC2EB9B861D763C715D516540F19E70FB474E120F06BC19A6629E8DAF67556AC60D17C252A44901839143BE5EC76B834FF11DE13762EB23843D3FCF1FF9CEB41CB02DAC74ED6219288575FA294157E532BD877D1B711AF3B98CB0B4BD7286F88C6C00B6AD9E40D66F38525156A4AF35F2FD42A5F25A201C66DA4AB5C4D1517BD6CC9FD9764AE2756379D73C8D81CD044174860FEE5DC42B4576008F13A3504674E0D224A9F1AA780C3003B7856692676A5E581418C65BA9F049CA20C3EFA566315DA220E837639A899ED54A07B5741097C47FB90A81A41700BB5C0D8C3317E27A0A6CFA77292BE9186396BCDE5C654C565754DAD120719E571A4A14207CFD205BB4A66C02CB68EB9E50DA7B1FFC324AD07D8A8A54729621776FC5DF15CA39F3DEB6B810A735CAE0E1A84C6842E80D1CF95FDF5A6FDCD613C54DA1CCAB4994EBB81C632D192CA9AFD7FA662A865C6F193B7029A9B6F21041E3D13D50E5A1DA47D3D3C4B101488D2308954C801DBAE5029E866E869167BE7DCE6476A64FB245247A84E46B5F0D9FA9F7BB10756FDEA659788C032AC654CBB83F23BEA1F285DE190BBB5EC4135E8FA1B134DB5D1FFDA08C06682C2DCC51E0D848F8CAEEAF51DED21830730F6BACC2A4BACF7BA62D14B009116EF2D157F64A7ECBC971D50349712DDB0871D007B2FBF83A832416CFABA2B9CECD37207EB9DB8A017AC266A5FC28DFE64B52D0CD7FD7498F718B32804CF98D2F17D22C2957782DD83F4FDEFC8A6AC5B6A562C939D2D0A0FA6078F7E6B4C95159BEF010C1DF8448158BA29E1FD1AA076972E64A9D534B1F27930BADA08EB87BDE6FB0A691D4379DF0001D84F2F833050E18869F2FA7C00A6481E4F87C75483310949653D6B91FEF1116F25E5EB0A10C8C8723E9C1C80F75C2875FB0C448B3E25E7B359304C08C310148683E1D8391C432A8413057A7AF45289B1363EB203779550FE1F074D3B4CDB77B90700E3710D6EB4BD1FCC209F2406CAA67B98E44AC91B876762D597D0F03A404394AE81BEF8F54A1A898B2F0F0CC3D3B6D84D759D1F1C5788BFDC7657794E384ECB2D5307CD92F3E135F35720A44743D93D111F38791B60E7A64F51ECD6801DE0ABC356409D00D7F785EEB88FF3FDC801C94CD7972EE402217DF018958A79DFEE835B2E7C591D2604B83E2C8B3CEED7BED4DC66B66EA13BDA4FBF5DC3158035A279F57ECBBCACEE3FF346386ABE41D0DBB32E15B02C49D3F216DB19474D295AE0A8DADD1DBA9AECFA9C92F0429352B558F69AFC7070DE8D47032956A9978AC2F388DBBD63AAD776BFAE969EB990E72B7D74A0D2002CD3CC664E77E52"""),
|
|
TestUtils.hexDecode("""
|
|
98b2f93395be5e131e0c5fb8a0792062513dd8be0e820804d26f937064f5c0bb3525d053e16da6567186dda337dff3c6f30c8cf96891ddbe0e15b349c03c6d53ea00c6ad4f6bebecf17b32a6b57c9ec32ab4397ec8062d9e8cec7e747a8d9fac7fdb897c43003780ad783874c2fcfec8a0d86ec519c07531a8f0008fd88395e44adff523568e526d190c65ba17b2bd7a383bb3f5df73cc2b646b40c49d2b87486a368d43e6d616e45ed0d9b3e772c7261faa5e5e68ceff3b6abf9ab7677949facd2690d6c88f8ffa3e05544603fed81516a829bd3d9bc55e53f85f31e98b01086c31995834d4fa0eb82ed75d3d510e4210ea4dd3cb8f2a8b446ea8283fb5cae01f7e733d3c60356bfb1411f8be5a6d0b6c20558f77e7c101e99419f94711a98b121fb7f953e0c19f91b3897baa245a62c7f3336fddd02358fc3d2672e9147dd3c7ea8cc3b1813ef8045fa37786c83f387731bc9e3e706468fc99a88917499d8603589e5d8b6d028d2dc2ffa4f03d6359bff057763ba7c106b4ff4dda55d9f1b71ded84896d844e44c9f3b1d174f368f220d7fb6dbe0d844f5b10c29d26ec169dbe54967e00f70fef69096bc8354a8bef7fe0be76e5f95758580c93ac8d9a349ceb388df4cc173f4bc2d1fe054ee7c649d238a656194bf77d5afac4a6115ec54278d17e93f73f9a4658a8f9f9820a31222f327613a2b66ab471132565f9dfe0388e622f784c7e09c0218603a17f83f246fb36a40f3b1d4e2a1bd2a49f388d3c4a7a06de761825b8ba7c580ac8c5ec6f44d371b43af52a62c31968155140e3903d0cbbd19397f80192e356e94523f7d4ecd4b2c55f7b88892fe94c0589a01807eaa594ff962ebad271a1f1998c517dcc3b98c5fc4d73b6efe16c4c45fbfbd18f5eb489ed9e1212bd07bce3e486c1264a595496401be6a914b2238d5f39f5b17a60886228e5e9b2d841cba626b26640edc619a444cfd036c54dc610a2102de9dfee18e18cf32a74245501cca7e49d987ef34f7a9adcdd3567e357244c012a7170b0d375be8a445e5b8752301d7ea633485974c30232fce5e6e9ea1be14f466d3a8241943872a1a881cd4ef436f1ead2ad9227143be6792406bd7c07d925091b51e5395cfbd30b8208eb6103a45fea3dcdd7ec9f478d303132705f3126942d19626d5009ed347db6e75e6a5f4f5651f72265f14a01fd48dbce38b2ebf162d25c4c3b0665a5bb30da9321f2cf070e16fe7b12f7ad39ea6b92755c4ff0d988ac561d310f6e492694ddd4c35c48c13d62848205ff97a58a12602c5575a1f755eb14e50f409b90924030ee3b58964f58dd8c600fb999bbd5daee8addbc185c52d7151bad1aef8d83a3a6d80137cea0f9b731249fcfa996b421b046b7cdebccd240b871a8dbd5bc072e69968f482538fb67b40d13f8bbd2341428d5a5d6bf50c19f89d54d239a0adea5bd89c12e548b69a19ccf9f9402316363aa7959fe3ab63f350f3fca1350b892ca634bda0b6656a44ef5995acee1f355fae403b7e05900cc4d6688bce46227c941400870a3e13bdf468646c828a39a072cbdb495c773fecddde1f37b1643802f565ecacfa1ccccc2a2829a68d9594af2cd44503ddfe823c8117f0cfde7c77397d7da69b37bb765e2e7dba9ab70e3b802a009f511bf762820a8c491c6c19ec72965508a82d199b34f17867be0669b4c792434e6e4e4c1efa395f1c4bd83a1414a51d71688544d57c2d5167a1929856076f7310c768a1919392171a57821109ac3e9b1bf7cef03088d98bd2dad5b0290072d7e5db27ae08e4bffe11d359dd5b58468e8d86d787c9adc8717986408b2d67c9e0e53cfebae82cb27f0919c62e89a68ac8903e80a7a11b7bd56ae232081af3146927271d3c2f2f7247a3def6de720917b014d6f03eb6ef9dceb771cabbc645f2cac7acc3f8d6dd40f6fd2bbe69ffcc5a083eb3a10993bbf6edb5872e001ef31e2a0e86ad58f6829c0f1f560fa7ef734de2e84857e3ef86cbbd0c1ef2fbcf282116297b5de572d10968edffa402de0ef9c4273f793598d94aef6e294d4ace8cccf70acd9f86ae774d15e9a1714ac761af94b446e4f0cde48748cc5db05ab4fd3bac0a1c43bb8f73a7ef7285866ff80fb41dc837a0f9d3ecf93ed0b79bcf6e94177d34084c597abd2fc46fdb4acd11d543f8c0b512efbf63ada213b2d955569da12b88b2d6605fc99c76ebef188881c7dd195e6ba6d5e55f1ca19202ac94c360d76d0359c3cb1f801414d97535313ab2ced2db1ecbbc3cb68e81988bff134138cc393b8ace18e20ee4e0f04c2206df124e4cc496c2acc185489cca0aa1f9848382a55d991fe5b1228f913ff81b7c564bc779ab311e9dcae58e7009eaa806896b1f7cb6718cbc8f8b6c4a65738a87e2338c6ffee4cdcc5ac060e0021a5836c45732cd668d2760de9597f719d26bdfd2403f795b8e7d52e657ae968d027b0da9e5e76d2fba34f1de7425b780bfe96c05f817dd8f0cfe176870201da00deb460d12a84f8bbc43c713793530062dc78e92dbde7a9f53e08259333253a42f5f7b1a7f35fb89e69efb700f7c6c465e80cf47efb8b396ae3455af4fa48b45a1fa87a110975cce3e92bc2394a456eab040c2fd333f70d8165e2b6431677fa28edc67dcae5f0aac65f879ca9c690648689c94d6f657065aaeed5dfae5658f4922439437c65a2ae5bb0853478178b890561a69a24bd0419e2a089ceb0196b232c45c7373938c51591ba527df1f21490883e62e99b0c4b914bc5e7be903824fc12da0654bb03d3c15261691db25a6f6fd53e3d4e9d8ece3d331f42d2c99e9f1fd9af4d68a361922b897ea6ab23d8c896208bcfa6f2c3b06ce3c88fb86994befac763586c2f0c37f55edba60286a764e4cccc5ff915739c510a5d45ead80d14465af87377ea019da46245597bb6af0918654596365f20c63c074c8a896e5b6efa0d2ba7318fb5a42c6eb52806ab9c6dd8f3b160900cd4d71be8262217b9877739e8344ec1a90511a23f38c5b5c2f23552743b953168de2bbb3a993691d0d87aa20cc70eda60839a20eb3ddcbd6abad31d3ea359938e76191507f298dcd7110e0ce6216bf9ffe2f361c8246a9299a1fed48aff683ec8475fabf36126ab166601981dab806616f38bb1bb93c335fbfa3b250e31560bc8d0dc53957da03da2f80cdf04764f2e9fa8e7d2f7a89724c74471d2bf713d4a4adfcb4cb178a492e64c1711761f9eb9d0e65e04b64f9b94f918f4ba6835f68aa523d147414531b925d3d9e7d315e1fdc533ee0c498e9f66bf813a25ff95873de22448924b36e6172a87d7adfffb9abc2bf2272c270b83cddece1cf189ff52e209dfb78b8a952142cb72c969c4ad7cff67b1ee5e5bb40caf0dd45cd37673908c430d0d776dc2519dc4984170ee7ca6365936369df16c4a094b86c1b3ed3d3cce82b2e56a5681c204e0acdd4a712b5cff260f4c27ea6c32e23c227dd8e1f8e99a67df32e7a24e0aed3dc9630b4b3331cfd625072c0024e96e79c4cf2ee92ea18a5e9182028d39b937029a4700d93deacdd4933cc31e93cb234214d334e1dfb5c323c964d90387ea4bccccd0e4386e4d770ea889aa480f0c8f828cd2185c18a49ce112c70d140e18d9aa6ca9ca2bfdc12003a63f67eb31f0699586ea8fb50d44fe9da2d01f0be10d6da99783821c07e892aa6fc6b190d9639d9249492c154b12e45e2009adcfa97b86650649599a9ebe07bbf8dc8d452071bc4f0e8203f81671e3bbe599c76589764c0c1923b141df67e260f7ff14752d7a84154dedad28c0bef90c9aaebf5d2b248e2e20a4ae9373e692bbbbd20c408f0ce99cd7435a4610fc51f051b1d17509a34d4804529a877828c0c263b19f84cc0b8d24b9910f6ad8006bb84e1a4c8eeba6e165efd50e5a444bc342bb8ebfea30385fc0c69f53d04286ca24c0a0a402668503bc94237daa53d1b41242a13050232772ac1b2c6ce9f6bcbb53ef6b94ff5d0c8294bd5a4b077c5ad5144b44a63ec630d84fa559ea329d0dc27dc7b8ba68a96777250244066cf1b8971261826d29f18bb34fc37a6a39e4870878eac95503dc5799dc8923a15a7c063f2e4f362294c1bde18d3289e67cc883f56ae5f56fe9ccc1e5101d67a552be55e06d54df6e97b49b33ca50ff15dfa8b7436e5ea540aea188dff17c3c657544d600fa5a3e7b783adc2065f05ddd72e65a69c7619a0bdd93c731afa3336d3e408e9bf09650b66026a6d691447db90e08800d2aa08fe312b5ed3ca2dee411bd17d7239f143259d697216e2f74d7980dc8ba3ef2ca2c95af10f36d9b28b1bb464155ffb6807e15facbad8b3ab23403bb9ae6546b183fbab7d4fe2fc507931fcfabbf868c6e21d23b0e02952db97e610b8857d84c777863f820978e29efc1d9c5ced05bb8e75b1246aaf401ff1d0d777ca6eb8d74c25821fd9a5dde41eb13d766c30345965553af361395076029184d32187e82dd7aeb73cc648893801441476a6b7a2914ab77063878d53a539f7774abd4fc9d19d5af3b143dddad76ba439466d646752b7ddadc708ac9a0751d9eb72559ab30043f41bd91fee7947106bc185f0406a7adcc2327517988aed2eb5bdde90e2779b5e3f6042757749da9c811162a93999f000000000000000000000000000000000000000000040c0f151c22""")
|
|
),
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
ab36c995c472d4212dacc8ea95f1ee25ec693ed8457bc6a62ed291a979b6a6e1c416d7e12a3146ac339866453960f2cc24f111573619dda31c999b213756e600bcb5a9d8375e25785b3c7069a72665195ee513f97cc8e28caa640266d2608fe2ff226de704047cf464619bbd363a3feb73e2d47df01f349cd7625d0b18db432b75565336477487553267568843606205253515824068244711850114744643273532787341658558327430044333402256081587535171344517634807008807633370820620716546413274855846856252544627040674022028836536373827541383208773875186683648348251757680728801003125128261155712544258157561003783166005674620687157083581564877088627841842774555801327868575542204308434338323004214761341056456765383014204440531581435680561577131503777667672352532047844617684265448124123648660177808165135746172300650565522412255582600451666165313587027165521854762330581587085455114053121351480023751688405763412618786711845681776135402575773758344478047280051103556627734803186240861770021185247176527722616358816145814811514060536870221854621103182625663607180318144650624216546754871047354164624168153471233044805141080414748807425068851107065574334428366872837263077015337257003145080344316436144048521253116726263513728883204823510034774420126602825342667117084583176238806802150804442282673267271486472381037062547008151325781823217223485168630253776236628044381354407638670266448373507274370405422728852575225681247624224047810183611221407283627210041154333112305767268423663105344701776876275776517745683745418040746282736048644080338088807621666361225348583347786063141187736408336260660304704562625306077687181373631777676838530485071857324430785113302862380543075448275258445010873417527535411864322146042506652578588203571265358102874051054007007776170787482703271464817538581744672845563458322856648331004411805884263244442853851516248334713570062784255773680035331352808764851703537003444265730315085260866221186817288644666201567677688523466252680113168206560036818856824456538181826060511868565280840760317143604778433077304400237144626857286674168627055580074352625485506271072107874512276371843427885818413042213077704005342270702186026772188022317550666001372885810325505652365822465535512370066430047748068806757050035812872642027575531211007684233425471123235162013764134784547815023440552134372432253283276337435244242126148441271544135651721106665301008825258874607420268833040324132761306885310670370146287074551022775376248768550262631878346375634603880661215657881831633748677608483166410002275602835021486452601600514087467338762747001627354482273888861763812343484084480461145702461577820200710217152348451601811752115404520872323133341274887524408314117823537425067462227764805412734655554112853716412560146010777511244114304537730212331208586841302127078636408840851673413682282356472403680742643508655605151500267084283273334113430051706200026602181421815041272467830421155788883212025787175681764014305848564807130860788478271203230488154661057461528415230351078146182662384624808617877187200274648170028523531546858533027676641325203473546874864283376606416207307326881524723857216011843510612852412265535601518443563181343067be4e4e886f61b24e817847be9d3ad4b033e1f03e2c698f42ffa611d25621991861248d97c61f318726b3eb116bd545400c2f5e1c08294e3bc8c4d4846c7fc5bf23759ba32c95bae32b756ab1ffdc337e7d23e26fe601589ac97b74ea1dab26669d7f5dbdfd017586ebfdc10dafa5c641ed6b8d4c4293d0f76fba4e19e83d843e00922c7b35d9cf4f657e832f2ea4878288288e479ea2988e62e27dbddf355d08f5298c763a23f65b0b9edf84eb7e2090056d1ec21a7f666fe933db5a8413748350bea0e5c49530b18529ae94663b12277cc2fbe2f6ef372a78abf5e3760f036e98562ca5c1ed862337cf8ff8e37c1178b4eba53e50f74650d084541357dba684ec0c63d8b7be0e38793ef4085d6e6a5167536cbf29d36429580c7e9b925de24d11a48cfd43b6b199fbaaea0846c890db3825cf8868f0ef75bed833494583113093347b2a3078686a39d0e0f27900771d252f4930f1d9b5a57cabb712f8c6342f01b61b8cdfcce1c61d02a64f70dd01fce50df23efa5145274ed73cb201247a99997bf7996ef04ac8063d1c9c68e714cfeafc8d0ef261bfea3f88f90c573a4ac7651d441f3ea832bb1b648b509e290a94b11a1341cf61d81bd94b3e2f6bdbc4c652b87d98ac250ba30c7e14850cc92b8d97c67d31fd6c6426c9b53f0de6cfc2d2ebada0d2b8524a1682b3ac360084f5e8ffbe980692d988e499aa3e2aa0a7ee16f7180c29994474a01406fdcc9551c3649854beba55ed18c1707e3ed886cf286abdd07462c25e6d54bb7a66a0d84181e93863fb96006c2900f6c88cd090fa606848da29dd5eb8b0becf44bf6f5e519ba99d68d68d3e158dbf604335d8328fc28a52b3a58f2d78432716f474cd7f6a1030db967e4752d55f8bac1280f7ca3aaea99fa77f8129a5dba6963cb419fcfad7b2f174a83210f86c24c824e7b3209e2d0f52ada2a7e4d5ea0a1b1ba9c7b177869f80ee8a279a3a6d76e7dee2e3550471db770fcad139f03db4b99336eff5c3fc01adea008b7c482b04fef014120ab90338ed94c5b333383c07f180d86114484d7e4616533cb4174aaf7b72ced331b8d57a500f5d73c2e32fef18ba2f0999b6a053878f50115dfdb51fd9c8ccb0aaa78542ade15909466212d6059da9e3105a81e351d44d2aa6a8dabdb7e00bcbd32cdb1fa6f362cac5ebafc3c672aec57a6bda2e1f316e83112271fa86a084942214d869e4dcec2b3f09eda04e488d388c9635cd2c780901eef2b9ddeec1a99d3270b37dee43e827ca0252abf972115637c8e6f67ee39736ec00f08c2709ba7d715a5f1fd5f29c470829a9587db239fe562a8210ef12bd2ef28f8d9385da3cfbb555a09d51113cc7d37d4ec2f73ba3d9c3a8ad9b3513839ccaf0be054574b9ba5e230d866ff5238e14bd43bfeed4d597b4e29ca9cdf3a93cba7c1657ffa5bdee1633bb24c81df0fac649ad231db891111762630df8a7b83545458ba0fe51003c17822d1811a033393db4bd4dcc8c34269a2098b144f3f1251fbde8bc12277817ac7e6dfcff9b1dd7350bf22f8b4f8a5e2f4c79095b9823c995a6a2aad82de004a0a0e5838d2e3361a1f69bc3bb6d425400d3470723d80eb9ad97f159499885cd93d0d317d8ae9c6e80781874ec8b023d9db11e1ade79e3e5f78d4ac2256820fa2fe82137d909800e43bf00a83ec73c050cb4fce1d3fc5a18f88f8611f9fe3de7b4ab1415bc18955c02e550b00dfc6c4b14177d7c9fdc5665154a2563450f892f131cb29de6fc755ffe71e7cbb90a199c46c01b5f20a9c0e177908d340433b0518442897a5f00bf6eb8dbc6d46aceda6fd94fd42f7736941f633f6406d4dab88f2eb276b332f3dd19b641a3abe3a2d095893114a1d1996052ac689b059476e19495df304535d4755f3c8b5367b9d9c6201d100622f4aa48c20722a2a1b48b2df2c7f34695264434755a9cf52326705a44e38fcf28bee00fe9a91c06dc6172926183ec2d6963cc8c330d0bbd74754c74db1d5df618858bcb2a6d31671aa72cd8534568eab19ea67edb2461866c12e409695f41314d6bb6609a77625c3799c1d708e38d387f69d738e88cebbda49cce3e76f9cbd727f65d847408ca65ecd8c2adcc349ab559969d82bc3276ab9ae90e827fccec87b549c677597a8e3bef7e9d93584c5295abd6c8b761a56123ec2c75c5d44d23c98bc0eca433e715e4f745cc8cb0acd056675365406aff32d637d04f3591858993ed26f72d5fd2f51ab35757a2b71491029f1e8d7516697902097b2e820a56b1f0d74bd59dba71927c3d05a741b9227a0dc0e80ab395e9d5dda03a4fa22fe8b9fa5222aa682fbd954def3245338f97f8afe2a02c4f049d7c0adbfb4a80a5bb45660757a41593aa1c70bf5c4d49bc70d0d00893da8cebeee56c83061f4ee4448d1e4d0469d397708898f8d435af0ff9b7aeeb81e42d82a21e1aa02de748715f30c5eeef03c95d758612daf29c5553ac143030e0c7c6d003cd7f83f582c34f28d9003611ce06dd96c4d0a29c6117b3d9269435888542adc989ac164868b2eaa7202ec17ed70d4d45f5d5f5582753b66ce243cc3f5039dcc5f309693d59520c2e02b6b0d67d11b3dedceeb13e6d901bc086372462c97d20aa7519f1c3ec1abf680d111ecb51a40302f5ff185226f4e46ce970d83c1271ef7d3b7ac7bdcf7474a169d76f02deca3d60d7a913e79c8c03c81c6050e974a6b2cec76e2d4673a83c606b69f17767b60da6a4a4d659dfc4e962b212cde0b7fe4f0505be5734da9095cfb6e9aaf0abcdb48bf7997f49fb38b5c9cc366f16eded384ccefc725c5cd36e0d4623500a5badddd0c31d9aff05a15ccaee106aa20b481d029f9e9d502094dae21e651740efe441890124dd9908dff0894ffbaa6dd8a56bf30cec6d0d433bb6540162f6f52b8c121294f7d662c3c36b6caa40970b09e1f06d7942c6872c92fe354704f3a38d5ec1036bbed80b11ca3558490c59858599c9a04c06a4cc0e943c12df6e673f5e704ebd4adfc7a2c2c7f3f63b79147edb224782e85d89b6c4bd119bfecc46ff40ddfa36afb45fb6681e1927938c20325ac0a6862d1ef291d63f7356d67c7bdcfd11629558f96d15dc8e65554bbee419a99f96b5dced87c43645caba673b2f66b37466841f64df734b4ff0d20110eedd3b6677757cbd020263ba85c4466a16bf299f263091598b2f3f6b9eb152c2b51e8adf36fc932d4804d3d4d1e398857d5a0b7e0acb7dcb6dfafe0041bd0a8552d649769bd6a3b0e3e6d4cb6afd0f7f2935e00fe09e518c19bfb5668d38417136f79a5665cdef97b109d1ea03df21cec5ee116cbd8b9d55c6962bb452f8f9fe618b267a8883776d237d1175b51140bff60e0eb1c0911250272612976661964e820312cf9d2304f97207ad71cc46bcf4cb4b396dbcc062eef8d891d88ba38984bfca2c6054ff31085f3525c16fb80dce23e4e13415225cde498f84884b5d768dc2cbc517c4a00139cae2ffb60a4906c3fd0a097816d5b9d84970669bb39762b"""),
|
|
TestUtils.hexDecode("""
|
|
F55B1A381D9258CAC6DD7B5A57899867FB659A56873F31F815716075DBDD56D6D0D1480AE1242A17485AD259BDA2533CBECE28A906271A3E65FB5D48AAA124993738FDAAC65736230FA07EA27D96F372B90A16FF778D0ECD7C0F62174839B8C7FC50F0B0150D47D5CE9F3715F5964DC712A681626821EA27E912B80D2D04C346B67439CB5E06193B6D7F2161B4F8E0341D8F1C0C7F6E3B351C4EB62E48B555EF00EC0DD5CA6A572FB201D1A4570676A04000C382F4C332C34A0436B535CB3C3F2378682A982034E01211CFB23285395204ECF985F478686817A5F6FF4B694082B3032990597A8C3A85B7FB5C2C49694103811F754DF0434D09C1A5245BBA980D6EFCFC9BC63DD42362477537C6712ABDC952BAE377AE7EAF9FF0CE2E9EEE82FBEFC1CE56063293BE659624CCA0E23DD7EF4412DDB587CF3C5302CE5AFB39BA8613151A04491901DC30706B46EBD1B26D4ACA67587595100AC51770080FC32ED0DC109D525088A2579D8873C6929554C30BDD1E2A0A9797B1676A8CEB719F64A336FDDC3F95BD4A68F472F00C4778745203E1A7736764CEB94F33109AF197C98D94BA3F07E857A5B251858ED850E7E578057E833A2CF95D7505C4973B709CEE834A40F32CF07AD1861CD46CC4DAD37DE66F8037DF1B14CD88E62F81B9DEC286BE4968ABCDCE54F83C5E9E4FFA8144A5877D75FDF75A38ECF60DC180E9B72F256BCEEE087F5AFA5C6D779117070ADB4A671839E8032E55AC52E806C82AC16FCE76A659D6CBABBEC066782C4C068AD4FCD5EC425885A5CBC5A4BAB43D1A60D499C497A2DC06B136A971BE8ECEF3FA6606252029FE5B33661883608702542F7EF44720466D91FA1CFEEB9D8CEBBE4E252CBC096D99551BB90A0534D723B02146FEA94D1C1926221092B97F1A143E6B4D5A8438239B2E2842633A6D90A18DD67D05B2CB560BA8A964E0A49BC1987FF47895D664F92E27F8C90059C5C38B02B42D7A179A09B70023BF7D664A94F7289B29FEF89356BB51959FBB82562F6827CA2A3892E934A9F271282C204BC3C6B34C57882EEB552DEDC0644B43FB28284FDFC82A1148447F2457E94EC0437CB5E0E3B6AB7F7E48F0F53C80D7695801DBC0E96F9C00A4A96AF8D60676DC4A6A6D97CEA344D7E911BE7CC9CEBBB23C562BCEC6992AB1148384278D94913DC4BAC4F73313BF83CFA2591420B18429D1F88D68443B960F61A1AB8E2713794225DF2D4EF88CAACABF6F095DA88C52C011AB3A07D7B71CF209BC84DEDD7FF2D8FF02A0727196D50CFF6520602D9FCBE57F890D19EB7845C6529EE5CD98AA2FDFCF37FD7472D1491FC5267F1D7E6E91EE891D880D5EC20FFC761344BAB59A327F829ECFBF8E550208976BDCFB75BCD996599B68CB29B27D9EF68BC975DAE08AA121F4D95805EB89F2E8B2BFDC61058740881E9B403C54745CF6D4AA1747EBBA56473D00FCFC62B5F5DBA4209E0E7473A0A311619437D2DF22F1D5BABAE064970850CD51D4A62A51E9B3D3121B766632B18F8B7CDEF40B249812A6274D4C69C9EEC096044026022B1FF055A05B6BF1C919230723A952589F540E77D7D24A413F542E7E0D3F7F55B8B335CF3693603210E979718E8CBDF76CCED68396DEB561EE27E9008D7BDB428BB293E1A1BF2675D8A4568D3339682854BCF9E8820A084C94D78E5D0938D66676ACAAF7B411B466B6588E9E2B4A387D84F23963E252EF36A948F25625DCCE664281D76BB6EC1B8E20DB3A7140B194872DB439D89F18E74E1861E3CF9FD442F1CACF4FBFD16532BECBD97CC9A007978D17922A68CE98369240A8D1E8AAE6679CA5DB79D83EAC1A571D0871D5AA28F6EA4A8EB60770E8CC43A78E6BEBBD4FC63CAE26F297F1E21BCE999A509BDCDD20AC938E38702215C398726ABA5A7AB3F26DA34DB3CBD58A7882FED91C33803FAE62E9E69FAFBD698962F2C7226A641AA7B6CED1DA8A400992333EF5DAAC77B55F94D51F74226AC03F7ED8F3D567BEB678D98694E9E0D483815D080A70FCE76255C82FE020DDF32D4BB7B1AE0EC1679B3DAEF2C20FCD7D8F74F6FC684FB678F02DE6B53D03FB656A9B9562666F49797EC658C0E8ED14480A0532DB85478FC2AD1E21F8883F2EF3FD97DFD757D883C1507C44F812639711256EF56BF6F8FC4A73EC3AEA3099F6C2BE6B2380FF3AB7007129D4829103AFE70851917E02EC5F2117DE110FD8F4EA25FED6FBC24BA063B7ECF7585519132884FC12DE1BBEF498B92D6E2062F1A4F7C97FEE96BA87ABFAE76C50729AA68C8F374102B3CFBD69139491836E4587D0085F92FFE2A94B6A87AFE29C84D289293D9CB4A733F90389C96198E2250F5BDC83F123FCC4E42844DF74FCB65986CBAB77B692CA210AC22B5B56E30BEE2BDE84663B22507E00E0D066D5B1F5245EDFAC6D860D0493C218A541A1FCA4B48F1A916921153933383284BA268C3AB003CD58FA979A08BC48A57C755688B0859AF7F21061F9F1B7DA44088ECA4D393E8DFCCA52823FAB812AF36212CD137741C14F0860CBC7ACCE1FDA39431C32AFABB84989CEC971D4A257BDD70EC71192148824C17AF8F18816CA94C457E1023E01012A245F28FF6582C9015153DD7662E4321B465B33B1D5DCA9B1CE2FF49EA3A811B5852AF5C42FCE7FF42BCECD31C798C3B8F685AB50B68654192357CEE577F5CF1F85A50F269C28A1F2ABEA382AF5CD089C146B9473C8965A945091ECD1C02BDF64F9C3FFD035D8238AF974E7111BA4AB10288F105659C9E2847544FEC0B29B6692FB53CEA0DD312B24C1ED3CAA1BCFD94E529F6C27BDDBB7C764DC0161FCE578361E02E0F5F3FDB095B6CD311190466177A5FBA62BD18595DC49C29E8EC7E1F2F3FFCDF17D477F4AF8CA3EAC53B7018A026BC942EED87704108027753DF67BD36221E9121B49CD40E8EA7FA2D6961604BE0095099A4413DC11E93B4A876834776D144269BBBF8A9875648702B589ED4CCBAFDD726DE8E8A58AA5D1A6E142A470EC342BC3E2E1B49C7203F283E99E81E38F1D8D2CD820AC98D8244A705BFD9B67E771A0366C7C6958DCB6921A81C0C9D5152DA37CAA8CE18D6B97404B399052051D7343B3739610329A37B8BAAD173018708400AE02B8DB2A2414CD7DAF038F94714031B1D83A5A15DBA53585B606A13814F04FC925C3454E251CEECEABECD8CFBD6FC04F504508C04E25724807004612E2796987D34D04318F82F7E1FBA83A4DEE3C86FD1884B17E77231629F5D5D11CFDE976E639C60B436DD9D302C380E3654E671ED81D44FC595FA34EDF90710A6384BB62DE0D89B50C14A44215DD1121C602A79A003955D860C88470EFD320E8AFEEB114E547E50CE967572DF5A5C4DED09222FF7821F91598A0A9C41A731D64429AE7D9BCE1B4E90120BBF94EED78098C9EE30C38628297C86DF59930E72CA561A61B6EAE517DB39F5A61FBB8C1838E3ADAAB46187F0B5D09962A39955343631B74BBD17BB2E338E5FC8C43BF8B2DF3A78BED744A481A1D789721928962AF2B9E2187E6B52A19274EF68F329C83F42A28B49C447FE284A25B71FC95D9322E752E28C7B4B656A743CF6C56CEEB758E742CFBC4B8D8DE5465D63D3D5D6EE993A4C47AA72BF82126ED6C7423D3475AE098CE6A7E6DD6F3EFD654BFD5DC4414B8F23F9E29CB0D5DDFAA689BABC7B5A925AB19817226DCD242EE46B588D7CB8E88183CD87C6D06FA1A40915A3F19E2368CDD97A16ACC2DF4CBBC0B30C6289D7004A8B48EFE4186BC4D844EA01BA78E4D1F0CDD2648D0363CA73A19032A537F68E0AC01CE6701426A03E071A109D42EE5BF358445907E1D05761B8F41AC8A9CBE2657754A8C4D83A3516EA465D5AD57367BC58DC712A5C055F68D1CEAA494D9A845474F610BAAAA4CFC96EB51D41493930534D58533E20575B980F4379A80393DBF797969405D6A514AC0A9171B79D6EBC5B66ADED19821BFB090BF76FBF50CA6AE07CAAAFF584A7013A71D54A2B60678F6F02DA726E7448A2379C28BCE7DF968154CCD22F1CDDBF25D91C616234539731B8DF4F55E21F37B29BC77DB4BA802D9BE419ADC292105EAE58CC81A636D479B550D33D057B7AAAF28F743F7B8C17E26AB2A846AE08E804E5D4BAC09D11C736DB32F9DC9CEAD0442AB7B6AAA70633692959A36D6DAFACAF2D7027E5BF9562A93A1B35AEE5313C1E2015E65AB805850DCA7A65FFCAF14200E1EF0DD8F8F05A11126EB02C13FDE38F496E5EBFB09E9E2B4920E619A67517FA4749ACD8B0857C7EC5A6E94630CE3EA0841C64D2EB895A9EB7CE5E757F2FB80BB4F0FA429E779BBE314A491B2D45F9A79655396E70CCEB319C3B405C33BDC91EC2169C3A75C4F5CD7AE5AFD6CAF6C9F81A9223484E7A12512B600794351693E1111401F74E1439C99D77E8932E069193DF7562C79EEA22C41DEA4EAF9E93456378CDDD6C8AA97D8D69C222614E203B6A1FA6377A7A0CAEFE709C90CB91939BCFE926B35970B13A06FFECD44DD8A360AEB5D0432A532E8A3C275E1DC4A07D6A3E100B04AEDEF14A52C09AA90438D65C8E6141490BD1ABCAFDD5925ACB040A91A8E11D242521C1F00EDC14D62E1C6FCE721921DF42164B4B34203660DEF02677A6B8C564075865B030936F472CEFFB3446714AE18BA14A6E45247C9AE1F2836E2341B61940A63FCCFAAD809C84906FA0CB1863625E59B96CC2161A4715606DB12FE3E79C90B64CB9D3A93B451E1C746F6B820B4FB3B3521ADE56DF9D50136635F29EA908FFDB32C6582715B06487B391A36A6A7B96505FD8ECE767C38CA4D0F9599FDCC1BE27C9C60D9190139C4F02461A5C42310CBFD5CF506720C9A13067F83AA1FF66CDCDFDF59B673B6C1FB0301DB118F3F49D1BAB49069A9FBC2D653D390DAFC3CC5CB35F0E50EF4CA808DC69F0134E3EEE697597FE7E5C2A2CDC5ED4E81F344879A0536BE0076D7A351A199530C77C0AF25D5C7D5629641FC8A3567BCB1456C1AE1D216C1E408C3AD6CBC1629E14DD834819F94EE0D255AB1C61BC7C324445F67CB7BA0E5AC424EB9C3D5FABC47081752F98B0011AD389581B8C20333C2878367795E31F99FD2C082B04126A3A61273C94E894BA7ABD8C6FD743FB76CC4FFFBEA78A1CFBBD266DB4432ACEA74350AC06F2EC832BD71FB09481A045F7A17F22F9AB65CAE6782A2928147BCA3B521E001D4BACE5FF499B1462709525D64E72201D5620B5537DF7A3E8DBCCC6EB822129B7768469D18C891A60B948DE2C12F4E4DB574C6C8BC586A1B57E727853FBCDBB4EB148DB234D8759B2AC8ADA2FAD225B5420C2B93D7FEAF051B7B768E64BC6EB83688B5E7E59059E1079DC66C5D8696CE758B42AE75123CA0FB72438DB97D39F1340B2891A19A4084BAA1A5149FAA785F09300B9DADA3C45F19568226151382ADB16617D5E59FFE8029F0513A7156F67D9859A13C2BEA574BE10E319F1B69740CDB176A962810B8AA6C368805EFA56E4AF69E908A205DC41CFC3FE69E4A6BB7B1F541DFE0A0EC1B29E3C199EF07538BC8AD7B0BD31B6A4DBAF70B83443A9C6C06268F597A6D1BC50171ABF56D18BB277F83203BB671DE404FBC4DFC66EE8DD4D92FB1AB2ED20FE8E9327CB15CB90908F37171D10E759BB8D1BE2C895604F87E2307AF7720AF99F0552FB15229B0FE7B45A3005E6CB0DC88A6D15AC7C364189A84A6615A344FABF4D0DD82EAFD42892C86EFEE6E9F7C248462E4C6CCA369CED819AE94B3DC856A3412A0DB90353E6C6D9DFE31913C3249195A3EDF9F84BE94AC6EB82969AF272AB8802BA0E8967EC342834B8A38163C90431844DB073DEB60B388710FF880EFB8283648CDCD75615D35451D8AE4711C1D7DB1AA59675061004EF8164AF3B4095F0E2FFC5433BA41ED72AC2C683D3959C9D265C302E0FEE7258B7C870F62D40961AE5AC43D3BEF8241B38A574F75EC7CD608781EFC16B7B9D36C3844B6FBF477CAFBA155B91061"""),
|
|
TestUtils.hexDecode("""
|
|
5bd74b9ad4b08f18b54784c7c6952152a4f597cee14d967851ae2d781f249d926ebb4f4490487d1ab299a179928f69811f39a8a019bd808c500010aa684ac9954aaa005c9319d75d6049ecd99ad4a3dd535d881e8eaea118635cc5dea0ff3d4a7d8bd9d2bd00b78777f6528b94cf8de6ecba3829e8fdbaaafec7a16106457f0204192d88bcc76271fa31718e6ab4be525b04e547f9774fa47a8e4a88a4fd9b058412f92b27a2e191d32f015ee31cad4321c62ca55e572cbb7c2872615e5a2924d7945f1ef161e407f415b4f963d4cf6272d954923da0db3b04649906ef6e2da18592227b2b301a36298861e793b88e7fd1de2957d8a92c727b492cde702ef2b123e9968774604b71323cc4e7e58114c3ec7b59c94d9a17453795f426f706d98235c99ac4b4288d894e480efa3dfd19b14872fcfea1836ca639fc7242a55a0d01e1e21301f39dcc9aa94d2d83bfdefc26cad8614406c70bb96c149ea652f66f8d26ee0455c6cdc8e648fb20886334d512fd940fef6d0d52a14fd9c33e0be6077a10b4729a8f6200ff5a5669b3b533d366b81cb6fab41dbb9dde1581e4f3bddbbbd5f18cc00123c82e9f82412b5fc8970b69bf2e68fd5fdd17b7288949e1a7a6eab8986ba2e7e2f98b5bf2a561ddbd935802fb59a20262a77137c99274f4597d070c0c7ab5eb82aa445fcc882b1dd0a825a1f0a2c8181bb6c608a53704b9d587e555d756333bea70a5e73ccc5ec20260c8ba150a44232aba5ed55f49281b0e697527a59e4cb579d27183921dd55492cfc2abe640e1aff9147927ca2a1d1ac594c52502536d1942fea6b3e52793e2a410fd6ca7dbea45a5a696695100f53b9fe1f28bbc0014ea9fa3b134f2cf0c0a2b0a74525468bccc4677e3959d62f2cff8119e5895211316b448451fee29720a74d0e09bfec52913b0a26d1a60e404b2c2ccd036d73a2cd4dfef3d9a10549287d70bcb561a3d466c8933668f69d2e3f1a90951ae4def67d49fd09dc61342a15d1d576ab41b7f145d73a99faabd04b9afbf8491a28c5483674e9f95f3e4146ea0d9b1ca61359c604b0c821a9cce85e53b5e666cf1786100fa4c4f14dfc178b63581bf502b7909c68e4587892188934c0472412667e552bd32184a306148019d56236fe38b03799c2a8c748c0b969d9d6de27a0b842be7580ec8e186c76eadfdfe4222628448abca620a246214d2629b2be13cfa9e9fa3c26c24b03da758d5870c4f79f68c3be2bf16f97a7459795e1e30d0706f33c4f865348785abc4e6feaaeff79b1b45527357d31ccf575785390c35b2a4c87cca14fe7bbbe6ba82d96cb9bd6f47d9ad73ea3b061e030bc03a670bec41615f86360a01a37a3ccc307e31aa6c32fd558d362142fd5668e948441275f265697e4700d87853b4d1b8f50c1c9eb96d05b96992daf7e9d3dc5b78a62867ebd7b901fc37ff34b67af0ece5fe7050c94a43ca96af0463ddeaebee931bfa9e14226b2c7bd40cc99cb7b3791bd57fbab3d4961fbcfa4d9fac748d73b2de0c7eff554699cee1a72b197d6ad5343aa72d7d0bcfe6c3b458d24e7e75d00a90628100d635f032f24834a3dd0ca0f5fa0d040b98ac6e0ad4a3c09445d91d929ffcd5424800bbf06a747c7a05eb87cebe5d64a383cd77a7cf3dcc80300927443692c50c7aa0d12e1482f071ac1d9acd625f6e8c59068f1a08eb163a11685c7699493cb28b1fcef193aa1151ae7519474629485b7e6fadf01f369f05a1c37d157be7560b38a59643ac997b18a16dfd211e23c1c02f936c773b8b3440115beac0fee20269302ba0ca35d0838799ab67bfcb300e89909e2fa63d83b035d855bee14c47d847ec7f7ed15bf16130ab8fb33eff281407f376b3fa4f6894e1681e6eb025be02de783b22680e6ba9c4646b88d91e18a48f751fbe168096bbbd16a2f4b2a13085158d55c5283a069362f83c9247b0c65639aa21405f343a19dc877843bb72e39e6cda5b7ea3f198cf59c9607e1c5f09bf8962bba657f609f4e9d3ca99cc58f6283689c9ca4d0c4f659831abd54e1f154b26d4b7a103d9ca6b6112cf5bdf0e70103c8147fa7f5223665f75bd153d9e5aa982ac475413083d9baf3cc20584c792ace31ca3c3ce87cc16fde69df770f717bf9b0f10a097595ae2bbab69dce06d1973b01ff9922d8199735d6e16dbf4e7b94493b1106fc938ed093eca657e173b107cf995a251e5b6b7c97daf07bbc2ff89f5f52121522d175ae97cec1e98183f646defd2b15cfa13107cca9ddd0cd9912a23b139f84a2265e35b7053cfb7be23b79f28fddc9e3190b0355d0922543ebff420493a9ee7bc1c18d36e2e76437404301180bd3695d7d059601e204f46da1c5224966fe6c099f0ebf6a2f8c61ccfecf12f9dd4f1a197138e013654280a7c5bd26ab1743e40d8971c8b6e4908113b84537a410faa756251faff8fc8bf0fe8d325dbe0c1a6f7e099535e08bfe584b232a36401d9340ce323eae8e8eb4fb3fb57687037b7b98c6ac8fd7d919b71beb9273f4234028ac2f034685c81e630d57a83162aec955bff545d8d0a9c24d4a023988890301ffd37af5824f59384f596a4c242fa8378ba2b09908c74c8144ef1a6a4ef0b9a6738f8ec52e114b9aea248a8d2d3733f71649222c8737764fb440c9f2972390d3d4ad7467cf238f48a0a299c891210a60deeea020e4b8a56d2b5fa61aec1b341044fabd4abda13c6e85fd70170d18295538bc8da2908c103a799448441c50250455f5481f7a4f6eef5792f97cabeaa99936557b0ca845bea86234c1de788cf2abc1f32a80b13573dc2b21b110fdddefead44d94f01ec772078b1175b0297b0b6de6d6097e8aa3e5278944fc9e7a884d3267632917bf56bb53dc074ea14a8dd6e6c1a73d9959a5d2ae385f5dba4b8447eb451dc441832a69c1c0a3ed41b0997878c966510dd500d61666827435b7dd7ccbd125f157a419ac5b614ba6d65438b6c99e4d8e5e6776809edafe8fa6a76e11f5f400975df6e6769f2c2c1ffe3d40482be08581d5e79088fbff8da514abbbca7b3ccfdfaa1915c373361a971ab7f5c1c09e9499592dccd610f14ed84db0a2be1c94e5bcda339e14ffb27af1ba66c7130f45942c687ce96ed553ad7776dd532ccbb0faf1aa41b7765023d56c9068d56c3c405b8b2890c4fa6bd79466a4a146657d9248d8a348bdcf41e3388993e8ff2be2fc8b8dae8d15269fdcc040f7e72872539205992444a4d19552ddc5e51b778c5b5786f2d7b79036b73e738d7200aafe96850887c44c982b0347c7646dbcbeb4b6b55971004ade87ff20adef58d3aadb40d320d43585e7e55da08344dcd9fd8345a2c612f656ae178c914b5662d088c3437a6e5928d3410cf65dbe2ad31f1fc3781d6a5006ca8136233814be8d655b94152ac70df8cfc6f9e9101f5b53cd5fd37176341e1eaf25f2fb477d1d212333ea200a5e9da88b19db4163a44cd4c9d3ee1af413fc6ccde64a9cedf21c8b8f113d62a63df2233f9a195aa67803d632ca873fa11069b5998c1200dbbdb9647a98acfb4e3229185b8c220a6079c72bd4645b04f32ffc85214bffd8ef2cf27d8459eea21069c13bfe052ef92a070e63d05c9a9a82699676ea5cad84e508d7e811073e17bf943516fd4512d53c7b3fccedcab36921945a19d0ec3d9303bd479a446ea1a5d5e4adc5a97b92db843b54de9498592c4859011bd4df412a6151bcaaa703fcd97e702d96b0ab14d7fb0ee225f8097c174b517ea051f8f8b8af47a75a93fab99ebfa84f8ba8dcc9c9927e24f6c99b66f34f86c2fdc88755154f06d9b1ff731411f35377e14d2375480b688108212f75d74695008a61fcd452b6dd23c4d910c409d9edb69d294a5bb46fbda29d6b31b24613e751b3aa8605046cdb449ba86f27d226e91757a242ec2e9d241aedcabca88269dbda5fe8e5d8bf4a4cf1bb1585f1166d36a388a47241245d0001e35a790d6d201a92f34ea315933c67aa26b4b22ffa7d87482c7a63b7544ab511644b9e95152998af887bdbbdeb6f2218f8936d5fa50686216e30db9686ff1e924c850cfa31ac950bba1cc1124a892fa1c40f62a99eb452a344f65a1410f500ab650f9e91244ce5e962caa13832df55c4b41f53509d13d1765063380b942a5d4e718b9fbdfdf31259b879614b2bcd5c7a637c0868abec9be94a132be2c62111e5f22f420630ca64031ee7f43df2f8709e9b200f0f459d9f0b4bfc370f6faebb0345da46aa11c975670cd94ade1781d56a3ccf2c0729a8238e9cfdb1ee2e575c524661d089f894a1502bde21465f430561a72b835a39a70c60d64f371affb8ea30849956b767a5ad7648be643e0071cf9f08e880f6926ae2fe97b8fd9ba02dfc965b3ef7c102eb207555f6037c634496fe8de5cc8ae0184b6df1201e8ebbabfabc4dee1df3a15a46414e5627c7b99982acf3fcc7806d0e8b9e9356f21f15366d6327a3fe4d332eb8ebd410407b1b57220ed702dba8783c1d7088e66ff9bea1af5794c964cc95c415b26598d39f448a428c575de927e7eb129539a267c3e9d2c7b844e80b1c396810f8b703c2f6f141339bbbd34938cc12ed634425b7d80829a9cb7c8d1f3050f1351587a898c92bda2e1e366b5cbec034750b2b8c4dc00000000000000000000000000000000000000080c16191d24""")
|
|
),
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
48862a8bc5235f5337a82329e949240dade33fc7d17ace18be0227ec719ac4f772476711c39ed4d858cef667f47b1f58122e3439253b354ffd3d915c4bdd94e14e1437d30cb3ca8309258b6817c6ccbffab6c0a3ee80a7f9fff6ec3cb6ac304fee454d34bf07d0dc401088d8e24c52088a2ed7532b1d1132cc318417a77d907823576447516518710576715261823080317441353842046341354050886265582772661606782518508611552437807857666558606283636012283372443712522471787143475036431221671374672177808348236368861183147027640303725752144220330577506201512281522412264744467558561844471460507113285137145681843753253233607103662808040646312553435805068686713021651551288186147173278000431232842530725086636536773248376333615710033580724287113217601158383102361765586225028003127168204582787754742332377107533753763435244134327846130710212236212502511434853724442254425760443666601728131748563348431443881772136248213437648571843333076605047807073574052864732182876230740017065188788771270704823801338454355646476150321745651674118477033827545476526811583337650082472640360778341752532318807731320471123877320418483134405327185031072657067505600530116026654376786484528715283751501655402235447554314302138750568000710650360358713328803146805241243333606411738065128618661601325618272020045460442876423666675125470876321815280508701035085287150558773181677875461325332283334727340248486766321227570432481736758471138718778336553655678374617640076187623705748317870051465306308631471164143125864382210850207037600801483176770823170512204183673005287714683025272251861111883335402830333124682817107801561558206108211583307868462172333836188447073517304086124212046766573468260178581350370628407538556485260427522413086381780024171423115611318634706688173315285184218216530827364657525801602715121163523751110241061654623125368751825650235250504687050676307022630474870177551460272562683173561881600018327858345460086545888832362730652277030632381537043054430486562858656784006651831205857461151350742124275134228231555266425448144823577652200562843884080828074164108067807813048034752063108461004688565567130111503260414200662701827228631380277228312536583180231613518706187317673565216727460305500638601142676751668444553816121742080426160705368816025138664265303251756273518518730862720233072246811417507756553878850845757381845611611422648644164086485286238466162363344057001121677343220818506083371862137010661622364338330831553574200538183745361417458005568372756687548621686745287630528168882410633428605048633053118632852608812837104176254134662751162608810027054020624335538722216288583065164064022144016266843214800315064071387443667213588713004105783804025667840388024407076618450445474568131706508618522810713016468684712241576080034862203542207230705607763336537074655487503315215184658500108525582024400658005247070468306680407777644277626555608647187201348840567607555587763581721687238845086303878721607273784881465433510511023765272770875070743787323471685410337833852203753384551444805788008435488871070137354718580371634437430075140476153835584426742701702300124680652654464582223832650777543526458673251282420373030035772844807176263355c300aa552835b4adb640a708d6c7fdcf8276730c8d30cb56df2cdf1fcee402cbcac2db33776f7f917458b10a470c1857d61131fb46e412a18569d4b8bf289e72bdbaf3eebbdb5fa6586c2b06ee55c39b2bc31db5dcf959366eabe602be533c08ae39d64ce46396bb1e4a8be9ca49afeb48a69e0084b4aa124ed85548ec4e1a992126bad1b391b49b3c711623e17544ec5afa38009bc99696dc6c1a749754adce3573aefa80f8a8586274159a2ac3119b4a8ac94d3766fe22f6eae181c619ec2fd487fe71505e6abbd6424f760b085d44ba33ff9d1a4f4f3de4cc1aba85b44ba77bb5545e9d652e264899e52d91a6fd02fbea09f7eceaf4837d74c8048c18bcfe4e1e0b9800d5c9ae5bd36ecf89ce860fcfcb0ee2f53feb79b1befc511e08fef900088763b959c7f497356c89a23436a98f70404c2d8dbe04c6fe0f82f781fd2e86c20464720363d4b84ecb44c5c282f665f28e0255fe98f260f711619c4663978dd9aa860b768056951ba1187a2c89436b89a161f14d693a230a5b6a65e10d8976f08b30bba4c59969a571216a470a04ef29a19b28b346093349e9a1e1836e1a9c911db91e73636592af1def9a5d6ec2a1b92683eaec682a4746cbbf8c6d5f72d724c41787cb5fe344fa20bdae6c890df2427d52f7bf6bac0234a763053727d24f580c68e890fd0157cc671f686a3d119996b3d3dc93ae2174c4c0883d2fa3edfaaa510b649db5b7d4a927f71d577f45dceca495f031898eada50604d9e7858ef6ebabb6f6249ec499194b5943488b010bda13ae262cd13f587c8ec42eba297e0f76ebf1be24f727071ddae5e32234742343fe63dd4cf59ab948a32beafb14335cb6d0eb60618ba5dac68c83639200408d90f5238ed455ead4851b71f21b7b9eac2d2e63b54ffd813c7366656100e3ab0f7f2491e3abbcaf07fafcb145e5ec677608a3a3c02cbc5e33d9bfc833ddb53d4da04fc3bd9b518b9c604a93d87a7535473f44c050bc73ebc62ba042c47d9c384b3de5e043181246f9bf792c385201173a5c759d18f138e3535e42f540f50c42664992425f57212bfb294d102a1a4094feabc90b27bab69ebb26ce4f49999cc217b7bec571b8c8b4aed446ea4ea105a68e48b9b73e4213c9f7355424fb40f78ee68901947fabe7e8c8be7ac7cf15eb7f6c93d424f2695b272641f83f028c8e13e0f9f2708d319554491fde76759b444681a6bc006a5bbf1bf9f115a37fd99e7686cdfa1312f9f22e915fe65501ba51df73e403e12baa7093088c27adb9da489ae95aec3ecabe59da3fc9036a801fdebf5ed75ab072e6ce1c4ba60bce26a3a4bbb204a22e1114883fc02471931b9aa472ba85731d3218255569f3f3938cacc9a0a9c86130bfc6c50a8574aba9dbc0f1423ff1c195dae72fbc1d2b43eb8bf59033ca66ea7de3968e1e21c3f1e8123a8e9696b2512693e5a2a29346ebff481192f268497b5133854f906114abb48efef96fc4d3d085236dcf5182287aaca94dd75e8ca0d1cc27fd25f7f7c238e8ef0c76d9bce030369e03af39b667a87044493c28a5e66ce15df046e920763e2c892b92216a563e82aaa93410c69cf06b32d76ae9c5c8be300c02fec3c7f4c578a7d74861e4d088670d71de16e56b0e2fd10c6449e877902dd324754e831472ff2559653f1a4a3d00cbef4c3c9d78d93fb121a69f3e1a0d569ef3a339c9f22e2fc10db1fe26e009016a7af39600f4524fadc422689de41fecae27ba755f39974acf21532f94b47cdab45b42ae49e89e80be15287d8f63e8b5cf075055209743c7e848cd1cdc0c24b913768ee317704601a258f31c46a8b20c1740e4f3b2b672b4c5771ae8218c8ec253a1644d1f36549aececb79fb169b31aa0c941da99c26dc4b6e3310ab69fed8358576332c82f3276118b23b609437242ae6b4f0897f9007a661167662b7bc381df4bf1bbc0f2df58f854ffb42d9735003a4fe0380e479e3f9ac63be1daee8adc35326206dd158e8c574f3292207fe4ae5d0500b7ef5a8d15686d2111a040a010691a623e4734d3ea7c2f813a897e81d1d26bb40a4b19e896294bb47602cb0cf1acdb97892ef3aac21b35c5c7cc111a437783550388aa97537a44e700eecb4d5a090c929a785ab5c1318e731c93378ef929e153c6f5ab343da506188480e502bbd2dbe9053df466d011e7c8a29a19eeb71e947286ed418618a6fcdfe157b4dcf86e96c665dc7714f68f0c61c88715f9826b85cefa4788aedf6489dfe53e26db0dcc35521ec218940935e9d02214962ba9c826a136e8043c2e4287eafb348f427ff5fc56f3b0370e5e2d0384f195398e88cbd3817479750b1aba1bd61199623623392d19e21a2edd0887766183567e087889e546971429180f0564a91e4259306a73baa9f12e142c4107c167293ae7bdbc13dc82b698d729bc9816b266edc814cb4f7e844b30e4fb6f5424202977a7220f11e8065c872e63a2545bb12d109f162c8dbb4ab9963fcced90b1735a4e2de740968a6f9b2ef93f9166a94809e9abd21d79437821766afa021909d075741f76c6412a7af8f05d03bb28a30064eb6935838bfc848046b214f43f17bcca2290a8e769f51979bb7c2c9ec7d5fd960a0222194e147164ba3e0552c4c225d31aa053b3c5d3927910769d40c26c300c8ae8b133266d2d9a4ff8a2141fc77863e3130e755c156a1c672475f4b091f956307525357a7f894950c8deb0fdb5c6700c2c6558ae00d29aaf17daee47be70be6a2206d39b04d49fd2b27e9e3b95ea995a2c721ea172d3ebf3ddde306942a030a5acb5b25b4ecf0f9f42d172a7863a12df9ab3015b5a7bd4b370662285a55690f05fdf3d66f7f924df032cbec839c0142917b4321cc8546a6ca0f32e983a102968c2fd2bfc150d1e7a2a61b8f6584beee3617e2a287f26293687596ca6378d7cbc19b45855eb8cdf16985c0eea06acf12a3080918748659fdee069f88310275f606f5232b5b41471aaa6e59cb2e534ddc4839cae92291dedc946a16ed408ab5cb607264b8e789d7e0cc8b693a148e0fd3c22811d8474247bb90c6f70f706cc58213d5d56b875903f7ad767ee3d0193421e69d88b6be7da34736fb36fd53b9566ebe0394b458a1780d1f20b0c155de48e58afa27fc211526d2f4ecf4f1f0165488cc3ecdf15c102c9eb7a22cdcf062c41664302deae6a3c48a6e1a1faa659dfabf0539c47c9245fcc4f8f356d325a36aaaa401486ee1a375725064423a5d9114c35b5e753cb8f6162bcf3fd071f26cef612017f5648fa0764faa4b805724e798b3285a6a93d8226de734cdc63602089f84fbf2f09bd8fc3c23d1e57573b0da75fcfbfd0101a7921d6d6eea998c6659444c0c5ad15460906b653adf7ee831206375dfa8611c4ea5a0c429253bc6cee49f69ceeb4ee700fad3e43cfe04177a4838ff2e4ffed9484a4c949a85268645f2494c01ce621e39c3ee9d168d76e3dc596fabe4a4067494b9ef6308b74cd7c578da7bae4bf8ccf566c2997b583a1266d8ca9"""),
|
|
TestUtils.hexDecode("""
|
|
DA2755DCE32D07B6D2C2DAD6BBF7CF5D4C26FF0C9B6FB9E064B51829A1ED51A712E26DF8047B487FF0755CBBA8FFB60DAC3C45E238608F48205A582BADF82C2E7E83D672057B9A9209386D2AB8D93BBDE0C522CD1BCF2AE95573749E0D51B85EA01494E3BD97D3CE0A61B26249E4BB94F9667D6556CC4313669409D94AA4F3BB9AB70F736D34245E2A789A5FE2917D5F4CBE43010C5215AF880118E1F5FD47A4C195F3C74307523C688AB76B7CCB157F75FFD79149B5508E7E527ABF718CE8E2E4162BF810F35E234F8CB65DE0930202C1896DDDE02BBBEC8D03BAA12AA1C91EE798FF7ECED608E3DDB7BD04A1DD9139F4A5613AABCF7AE495F9CE18D73BDA0C91583B72CCF6A722C319AD5B1051E65C1B91DD05AE5A77220BCC7576F9CBFC8A12CD55883AADCAD1AA109522F286B00B70C8E3D4C6EDDAE7E1752097C85233583BA0E1C05C5624FF65A3F3894158982B633EC92C24382AF48EB2DF5EAD30759E99D67B8BB1144939F4080DF0E1689AC0D4CDC73DF1CC2FB72B92D5A69019087294D5F2DB196CF82B7BBAF953F0568663596F78B5A309738BB294F7AA3FC5F3ED5BFD4768CCF3304C836B476458E14B233C156C8407636FDB3EBECF49B97C96C31F51353B79C378C6F47F1913E5B14A82DEB126D688133F9139C12C45BA24CC9C7E2C16A26329D463ECF59746F5A99C6B03896E851815EF36F499654E2764BB8BC60EBC821C4D0B4C363EEB7849332A9F1053A975B092AA3AAE33F06F760BA1D76DE07A1F48ADBEADFF1E17C34F9D69E409DC5AC83C296C402E042FDBFB0B6B4E023B15B318337B6A1CE69F1CD3D93FDD0FEB7AE259A41383939253C317DB949E3BEB9C8F7A79D083BFB46C50AC00D382C846B78FAAA7399ECB902CE8B73A1E89374B1DA65B0723C67B24899342DF13C07A0BFE3565CBEA5892F8979E404BA84847AF30BFC04D8EC77B1C5B9400CB97622E6D3360836639670BDDF4E9CF9FE3D6B98A5FDA42422DAD6C829B9E33F53686E2663D232162D3A78A7202EEFBFA4917BB8E89375279C96C9054C2570DC3D90DCCF0E418B69E6443C1B2540BAEBE022ED9A9620C030377C67FF4C186A59459DE7DB1ADFE2923C01D9B8D3AC940486052DB67EB67A257BE7AEE0D3C77BBFFD0FC7C94540F11DD96C5100463C27D65D3BB6B7D867590D573D1C1BEDCC0E8D122FE4FB82F1404CCD061DD7C3D15287F39CBCD2448DEFE1FB4ABA858DCE13F74414E1A8C41B730A1DFB45B859545811C2A9DA01C342A1F3C8B916F60B5E4802BE672C2BE31531DD9E7014E681A8AB1240B5E3D5C0D26E7040D4CE05F9017A32E1C760F466A8D7A68FAAD421B2E2D886BF0007858129DA2F6B92C4CACBC1786291D7C95A3F6A12483B750FAAF1DA03059F89C761641C0AAB21A05E78E1131B8F45C60BB5E8681086717B918BD4FBCFCA1BB5DDD740BE289D8DB1C24FE083B3DCF0E496B1941ECB7D51182F9CB9986CF3F04F0CA4E01C63EC879FD4A3D5619EA1085B1431FFC019286ACDF3B4AAB03D6265A7B18F24CC2815269681BD37263B44DCCA5CF6FAC2ABB1DE317118219A73095D1BDA10B66B6B55421F049B71E759DBE6154F1DB98A7E3FC877FA90217A242B21F39490F2116A2BE8067168F26439C8D1928255B5A50CE1ACCC222087536BC37806FFABA03B7E787B04C2C67C1B0BEAA871F39D3DAC2221AF44CC7089E520BADCFD840E5EE24AC53FCFF1E7D6AC26694CBC15B80E48B10C054E8DEB00AE387CEC9972A28448A6BE3A01D5EEA837703D2FCD1EB2521D444F900846F59074D715AEAA2F46E956365B7E67C5528841145C442E6FD7B3D7171BE05BF8BAA415260F645E2FBC93C46B9F94D2997929349B88C2FB1AC6743B73DE66B30B44E5DB3E07E0FE9713D9D7575EE4E40327A58DCEFBA0EE95E22D06FDFB720993EB134073A80A4F06F8303C7758DD37CD7236E5D80AAE2E9569834846E7F6C75051302486B2564A1D8D987D1A3648192A63EEF4C2D25AD41FAA02C9F227CC9F655A72CF7207ABBC66F9C822EEBDC89833757013776C11C310A22C226ECD33E5B0772AE2DE8B8E9A876650D4A57B863BCC6197261D7D06903D414AF0922312B7DE6D9E64F99509CAAB8D808DFC5F046BA2CE55817512535EDC2477D8462A1817E45D33B9D7390A11E30C3860CBE2C4B519812ABA3AF7050227759DF3B6FCD6D3EE5C60C1042DFCDD7880888A147AC47A282EC51D0DF664451E37D7C40672A27B965CDB805CECD3EEAE38A0AF4C2349FF39947659686D30B9ECBDADD80C9B06293FC4BD5E7A0E1E9E883D7A4EB05102CC1FE45F1C9BE23043BB458E6B8B6C1C187761004EEF59E398B1124B98B0EC0F7B29394418B38D8A3003ACB85D96CFA0C3C63B2ACFDC2BF5540D029A261243E06393253B2C3FE253A220DC7AE4BDE0AB4B386DECA15FA2A05465740B072FBB0C8E81663E320AE931A2DC7A627C805AD80819B9D12EC271D9D16736156195302C93490B4F85E8B4F5199CAF233974079A7AD590374C4E5589D0FC26F70FF2CE51FFB3E6742AD5BD9840F62F745C42D6085E46182FF73FD079BD2625338105FB39110B660F8C55D0830587671CC802AFF63FA7FCFB3BDF6D65B362CA0B68B31FB802E7870C3905B04B41440F549583EC87218DF6A0BE0E209807AF053CA121D704DC0C90A499D1742658BB096C776514C89F6B2D3FC7FBC4A38C10DDBD3C08F64AB076C9BA4C7BF24EBDCE9C82B1BCB8E55C4135976C878B95B6ED108C2031F4E53DBB19205A7109C50289C743818B90ACACFDEF20EE33F5C9A7142B5640F4D875122E0E5"""),
|
|
TestUtils.hexDecode("""
|
|
1fb3b6053f9518cc51b4a20cb33d02a7abcf1cad4ae7806efe9fbf8652e3755275a641f27879f163a1b265e886a1b21b129d48807bc4933df0cfee53f26305170c547145f3ff67fc6f317c5ffcd94f96fcc4453ac3fce38cbe41b6dc01c2146ea3d1e7a0bf001be3136362d75aa2785efafce667640dafb1b39d555a106b8cea129c5432867e0eaa493c43d21ab388aff1b6037621c1f134adab6093ee7e5760e9f33a0d8e8c63cd70c86438d3f94461a2d4bc9f41243e362bdfb4c809fb28157a6e5ab2f5c6e16a7336cdc4183ac4272920485fe34fe03057ae7b1440aaf99f28ba89ef1b0021cd863ba36e8deea60aa14cc7f2dab46dc401f12f5b61fb82a195781e337c195160fc474e52aecf4c6ff277908c481d51adac39219b29fa7ac703027354491b869e3ec404b4c35b214196822828079ec85ed0edefa0ed2a426ab9bf4c3784238390e8eec61cf7fa1c4a1ea1308e0815202f1109250fdcf69309ef634c4f0b134ad6d33ccb4a5e30c0472bd292c42de895de1c5989922bba6004283fd1376a0a263ebf74e414da5c058ed9788a862408de4de14b54d2adc7fb5e36f827f53b779e549698c8ae7fe4eccbca4b41b81e7239114720147851f0a72cd3183e33c6e82c557a5eecd4d07a824c6ea653168bdaac37a444fb63b29cbc35bdba265c5718421dc104206d224ef985992786180627df4b2f3ec5e6c200c2e0cbb6fad82db3f54d67f5fa7a9d1396c3b8376b3d83af731fbe8eed49bcd99e4fb693c87e259f20f61a6d67c8d87c967d65d03fe81e5d5f14021f8deb4d1a5d25902065e4ef707205a8159f02b4469be4c2094aa73580572a3568481f63e470bc86cfdf7b809c17801918f2a6f742892aaf696e2cbd2bc617f92efc482dc6bf8640a91582e988112cdb6161a41ab879e8c3c15e48bc2a7dd6b4fd25b5e7efd7388e6f3959bbafe518db3b73df504a6f6cbc6086ff160b3e7391845c9797a494000a23a9488008a595334b7b92db4b2f9a267869ee63b8d3b83bce7d57b9018bbc858943f0c7e8fe0c94cd0718672e4473692a2809423b2df248b2e61dea545b2f1db86b7246a345ec591083f4662b64664bc9200c3ae8ce7006cd795cc146aac8315129d62eb20e940aac6430165476742a19c17d906c3fd94a543b453a2f5d3c880ae6a1f64125efef20d7a0091e4bd66801fab9f7a396c84c4ed28526fc1b0042d4245d3f57731d56165e26e1ee72976cdc40b3574801255709cadd4361e7984527e6b9168a8f1b507b1a3f94d20b76bd4a0fd5ec81274207df86ef1b18c09e4f77d0670534a6ac9eaf076052d6d037ec469ab453404749c3c15cceef412a87301cd438c1e5c8d016a2c125a296c4deb4a12b4bf04d9593bd9d66814dff60549ec0a91acc5bb00a2f445c7989af4d3ba9d35868f7fd8a3687495f2580780f8a4c3e9f012f0cd07cfdd7e513c9a84bbf7dffdbe2934480ad3cb241a155248e9c30ba5f5d1574d73488beb96ae47913ef87530dbc9c941bcadc6a69b9acb06be7ceffd8cc7745a4fcf978c1fa126a22864e912e9c14fa73914ab1b9ff31988e6c859bf069bd1f912766680111d9996ce8565704046ceb64610f0c6162f74de87be26889ba868eaa8e3fd8c1c4eac20deba9467f4fe5427c06192a5ef0e84d2a063532131a366ba13b48a3735b7ac98d5d800f6ec7cb5b8bd604f7d3c72dc56e126ae14cb101afc3f5832fed4e94e5e7614e1232e970597997cfb3b9e6c5bba771552c38c9d6729ba0ffc2bd146754a3605c64718e9744e4f7c1ea184c477de17208f7baa9ba1913598889ac44b1d30f5b81aaa06a42c8f31c889737a8d15e6d473e0eb16fcb57a56f2fa9169a56a4d5b687b50e77bff964522f14530608fcb7f405cb5faf36ff235869b99b08765fbc6e21c91833a5c5e6e85aaac997fee4e800dab3c8fd5b35e1cd639931690f656f05b325ed80bccff2013c683b0419b5f43c3c14c245e40f537b55d20165a92e7b6bf8af9c81cb4b205f327b946c39a0ff087915b015c77930f221bb6c2c8d6500a521ea549f2d7fdb4108aed7a5aa6217450e238f1727535b3635f7e1b15b583743ffc9a2436e99c8f6e2a46bce90434f345090a76c422d778ebd3d9f4364af2c89d1353d64ec72d691d414f56c7a1747c7ea3ee8b284d3aa6612fcd30a08eb7eafc3dd42f221200fd0b394c99235ecebac79fe467c747b3ed5c09ebbbee5dc240287cceefe186f0a5b5f4fbddb0675f0159c750d715d0b01978cdd4e85ba77cae57024c6e6348155071016a96575e5f9b227c87e82db0a8470124b6572da0cbf2cab372d85708adadb04165b6cbe6950253e2c1034537ade941ab6633c1ee634371764ded5c131cd57eb9d3a794a2d26750d01498214ec9b78ba4c9400cbf7b910643a6ee5fb12fe1f2cb348d566e63dba6c1fddca6a0a6644eb7187a53d0b5d8bee99d31b92981fd81cad326a8c107abafb623a0d11e861177a58f1e3307fde29d63a3924bbeb0e946bf7f667599b92d98ab6af9d896e2ede95ca65cdc98b07456bdd037aafdc4c91bd387204ba7ea14dfe387430d290ada9a8296198e89b746f0264ef95c45ef3748bb9806f24a61565624fa84326594a572c701602c7317fdfa1990426ef70a5d3434e7b1ffd779e13b23bea25d63dbd7d9fcb713bca6c203d1b2f337a6e768ff8d5a1b1fed4d69f973f0e0a59f3c3527c30a1942054d3cfd04443d4611259b63c14f8eff56d17465e29a824afe408168acb215b5bb0252bb7c705280cc003311303373f30074bfa769676ec7a48df2d9f68fdb043b035fc1807fe7457e01e794a5130a857c56e92a8dc234f03c5c7fddf0f385f63b4ee438a2ed5a027af36eadab17dbd7eb9eb541e6ed5af00e1415622b083855f23d1c4639dc7c5b95c71673a2580e88092e446c29236900f685219aabdd06720f0e50dfca6bdf53c09ab3477833bb835304ffc65f1d6513acee999682bb70665806deb596566ac785afebd6ae7227ea882941257ebb10809923ae562cb34be2acde2b8b0de3f2a8b81c53d47a80a3b1d360c9cce2b484cc5dc62b948a6f990aec5d9c34b745943ba361e14de27232dadf5c72ad2f47e24d0872b2517843f3c43d1f348fdcb5fb589c4b304ddacd5451771ab0c53c03a33dcfd13e2720ddbca5fcd3f112eb81ad6bc1aa059e2261d7cfeab30fccb952a0254d92ab6c884ebe18c878adeee97721267393bfc85a5a4ebb7327c6f69a71a864e8fed0665b0ef302f16ca3d6ae033bbdb9443bc40c78eb7b3c5af66ba91ecd852e4682ae25575cd7d09adb3b74798d14bffca4f5bd837e80afbd77510ee78c32ee219f4156076dc6bc9ce87971e232aa4d034366a3e079e21cd17ce42c3f60f47225ec2407147bfe01eace5552956e6697a0a64eaa3b02ced7a39d1a1c2eefee96c2f8bd2c122ddb0960929e57247fa3a85fca43f63de635ad5d4fad02565aeb7f00db0c55c5552fcbbe5889b6495c59541a77a8dd20503cdf916b3bfc8f5e87b217134f2fc7a6cd13a736059348b3106bc431d929c09d4d6c0e39a93759953ed35f1df0ee90366e73cf0ddaa03bd39293e95929cefe9cfd06079b592b42c6e9f47ad6c4263233123092155047ee7c48e3e4e62f531d3810011a76f477a8650bbd7be790606775e1f932dba57e5d4bb2b2401a01a20b83b69ed97bf1ad8c765c93d8d4e1bdce3a524eebd6e54734d568711804d4da19fc69997129876d235fe53c78408e78081da0edb8d9c085c863c6603c06b8eec7733dd5713d79830b8debcf6d3e9183852502fc9bce62e85c20cc098cfce099d0a810df722d67932c2e3fbaef6efabbb67a83afd4cf9514598f316b72551abff34d1d13c93dc679bb58868148fbd33628d8279fee785dcc605073a000473e8ea9dd6646242ca2dc3c4863de1d0f8ad955682a9ba9fe52317c2e5d130892d5b6dbc41bd0ff3148308393d717ac0e96fc1f45e0539bb55eb50549e508da7db93d68f1711342a9d6ab64e178f55cd6eed8e8c28a497336fdee128df52ec475e46cefe3651ab9935ade5adf0b29ba5358d35d3b6516c8d3996aff1e2cd06363de48eab1bd00120a0d407b092870c2e76b276c70d4d7ac85366f60f2343241200253f92de66b037fae4fdeb1db275b7ae6ec196902ac69e9783fa6684584dc9067c7cd4a68405e0aeb2a4eddca1959cf788c0a516eb94f0824120ea24b9fa2354028afedbafff79917820d4d15b12def7f9efe49899c715c7b500f70980a8c799b93db838ca2859a06cdbdd5f84ced9987e1dbbf74ecf24d5f2484950dcd57347da8b8aece55d4afc7adcb0b232082157b0bbd455ca7ebcd0ebf257b184b3eb0d1ef736dc7d02681624622947c4f31f0dec5b430616a19b1300427495088898be15f27cbc4688ad4a93fa208ea20bed26e94984525db33a34b7631018e55d1b8ec54dc75c85e0c9a95c4f212092801e1578ea2e1a8a7850952a1bbd2642d7328a558c0fba8c167eb38d105d31be1cc497460fdc3973b7f004f1aa58fab493d29501e09568b3fdd7b1c8447cf154bf57356fca7c412c79417dc20e2d34485e6c757aacb1d7ec1c6d7bd97374b2c2d0132f6e749fa2b7eaf3ff2b385c6df71c232458babc000000000000000000000000000c10151f242a""")
|
|
),
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
4253129ba04cd46ebdd117f477bae35bdc6eede60df6a94a580b28abcf8bca383dcd4aca34a318f090c2e236534f4553838b273b1e19dae5a0a6e70df38f33620e3f56d4771ab8edd27ecbee13b41307dea5ffc221ced73da8412ebf90f75e2aa93345937b9904a2ed07488ba7ed7e4a81090fe062407bee215ebbcee51da2e828261181076284017672316008373864314512556411366470351751143502866044174407124820856040124488104747272515157471031535270113332160138362452220861568703310713026080445200335431724117012102776173821368242414322435313184718783246033107615466525681321552700103062228600000840774147702724033480557386354023651330688348535523803036286522510808766140743508450507325777827878388653358828424230141362086225062486351844571254365553532888807256428865656187770583403731862707663306640370460154257323706150367768487752435420042742000513678740407626635145864204641386338346560256308062427383571700177385585843713267024345387573110261418834745377370755318806263742534245857530816728343281562502028178701327753748533284210485466764187235630784126521676840661086401264013631703807186376500638136763122620442512142676466534030816270880344503216655687600047664410317731124621554758747218007662107353206105566073663637081672051334882604615032232175024506440432064120430260450083670328621582421263218843557281084706151204677842415170883722854410034757158564146427433758348366115784744267072344336485111151074443578456122766023544273207851855377881232551654715102510021504036666050106505181807202727601475270388715857665482658610113502167076780287676474561852324234606005157113274325186444642470880201270443712501306260351304114821810185605303043238284024437451570501376818478325118637534878857561622073620761344171515046664327007668000250703168414702270712204854655478324382503648846018628324746162773268200331863534240746136243061806136513225515463704681748620517137525684815620567421644267582106184168262077744160744640345713287127475166803710860415216047606452515703723634771387073742473032414765016712438084131313707771744375662530042820602754771770732427347323015241056073588430468326642327633874772054784104288772127348184355306138573334063016081114262046005810176822754772155254184315401382566282513565023308512153305535166000375507505468255224611413162316477215685285240584136066250035404431257447544533343721406440410427154285517050886855413301515367856571818385181216353325456801442712220023633562061334384508683454077205058063306076017652740557282608146518640164805154524586314027143055784545430125532435466675334181613266512656618060266525616044526063355534408344640284357448206104624813586486385052737045107351812257722833754030787678053325738580428316055350681501643208864705287440678342323163267667345570457764846348710225558572315558323425473721125854230718764686451881373313105016726435620741154216770706556760718055054212814415730370754160475426486577163328361465582221712086205043168328155862243642470841072233880412735188447232451728835468422631647766377207132637428468083840544508143008035708525281067178685206541635074543234105443801377662237826630832273024730474837626134806557367081725831768171583080066473638657717e70bdfdc8bad9d0d859850ac3d18cbb32b70bcba14d4e918230a54a8132484ece197ae8a2a6311d0966f800594271dfd7859fe7b49e9a8a0afaf0ea5a4196428683334fbed3b2925023da8c6db5f6dcffe45d237072acd40f8c75f205628f6be070a24cbe2f41d1d4c08d2fdf9576e08845c31fdb9041f70dc18add5a64d548cd0706d8180687d15b98bc2973944f951ce63765f9a8ba439732a76554223408b658118fb347942439a2a1a38f9074b64b9df696f245b83029e59b352f5811a11ca86a46bb6a84c6eee2baa3672bed15876f1ac1c7c90d3aec56ed2907bb991843b6c2421b4ca6e503bea965671f85dc5afdfa79fb5e512496ee8b096e12cee410c973aec9673ad11fc802972195af9395042c71ad560ee16476b56c12c94786985928874633aa61c5396f819588d8d8d59b0b7b507c371060a974fa1afc142116a1fd7cd6923a7234050edec5c3096d11c9ff9c73c374d7a8e2415be0f277716ca566ac3760c87a98b2b7ce7b2f4932d8f8f2ee9a20a17532934642f39712948c8db39c9a8d1de46a4bfd6db147546db864f9bb95bae22845079577b771f7bae4ea6df336ae203185f9b08803f2fd4c2f0c56b3924b9f3328ce242ecfa31c5841125d5c16f975087d98dbc3f8141b1e4be6c9ab3f3cdff90a6104d2ccb6bb6e4ae7db2519432b728ad46308ac1f81e96568f60dbf4d36e45c663a29c4963a0c51350cddb77d8112ccafd4ce2ba45eef4cdabe7a83c53d5d4c98ed9999666e71d2cff7b07a9a65e35670f23e7eceaa04eec4ad1db0998ee5cd9e03496af5c174810266f7fbb2abeaf568944c7dc3f801941304d72f3644dcd8e2bbc034374750d328ef5e8a52d13936d7147af311cbf9b43c36e32df55be0f19cca9356ff9217bbe7ba2ac63af7d33c43702edd8aab86cb24fd6debe0678dd230dbde3fdbdc2d0d8ad74229c377201b794cfe1fd38bf0ac11f59c765aa3ba2eec27f3bdd2f6440b3a93392030e7338ac012622e4cbcc854d52fa39314ab36269d0848b8cb7b84e491de5bc55f42f147588847b48d62d72b448d112d4f7efa2279bd970bbf428a1ab9b21558e1234638237607adb6c74a01c4337cacf5ce2148c8b8fa9406c57e2c817cd810e552ce2f22d7833d1baa56c791f20421ab96f4b1786edd225b1d1b86a1c71d069c56d67da303aeb30aa7ed170370b04da8a325860eba8d88636861afe173b48deba835f04bce8c723da490d5c01ce033d6f360c3f13c07f77b8841362a69ac1884cad08871cb6b5b6d44b3aa8a6379d52c3d313a38f55408e6373d67d90ce7aee2da39a5f4baef11cb029f6185c4095b9ebfa0c21e3868b048a09cef166ea4998baa869e7bfcb38c4f21a355f268ed4ac94622654992d81f067556f20062186b7371aee40c2e2039d328f4055fcb89ff3ca2a386854c33187d924b5b2759c115c5c2db629ce439b336d84d24e3757c29c2cd942443b2d25d82ac88593da79a9e94b8f2cd730a9b11b3a3b4c95ee312ecd6252f3cb75642e74047f0b9091704d62d79478b199346dd49f3ede0264942d9c407b0e1d7f6351ef62ee2c4a88e0a33ee3292667711cff0f8fdfe8ebb97e06d2cca8a2b1539922f076e21656be5313c37da55a032b9c63b39076b365369a6774e2c3912573f6074a9d53202540465622f98efb447c57dee9d3d9be834824f9a01272293b5623bf062eac9be3a36e94a30df6631e5192194cfa4598699be808ab90935625dbb76e49e868328c19aaf6f6e0627e52b2ce30dde55da986579772370d3a17d2fb7e996595d8c2f8c8c66e97a51dba18174f4bc91ba39de6027318dfec5b083e2e931c420fe04b33e590c2010751013aadd0088fbd832f4318026362963e9e74e1eab1b7634f427040ffbeb2be690f0f36b55ce72be3465f7bab45f0b0861871430f0f063e7b3c3ed1fdf5f2eb2ebaea3763d60cbf578899a76dec331bddb4bb8730597c2fd13c97192b03d2d9199e3589c90e48042481f5169129c52f12469d8d20cecb8cebd5539dcfbba31bf02af7aa6656335530c51c2f9685aa9a658da2cdf3db47d841dc3eacf9ed9374cf07a02adf76cba9ad3102116cba090969a4cb3e2fe0ecbf73c7742645e718dc141d613947744970fdfcc3104c99e742e1a2e54c7bcc5e4530eaf55bf64c4b8d5639026dcc181f68ea40c5ceb84af301e9552474fea73695376d6c2e48104e61f8a9e0c5dce582c50433c583cddfe4ca40fa5b3de2a49b18680f0b07d1f1b563517af97ddacb984ab391a1d1c6848594b68d13389fc110a04551bfbb6d937e300d4b2d73013e052b215189ba0c11523f9c1f80482fccbcf438dba0a68e9fa6ff9b08b966ce916bf46951dd2e03e9eebb47adf1db15abdef480ac1b5d4adacf0142d3d8c33c0c959157bbed6c7240b48cef19112f2bb1cd98e84a23ba46c494a802b194da40aa5df2401c1423ec0a14cfab7728805c407413031a6d6b1998e7c6624343acdd90ac56a3f158883babade104802037b531d8b763050816caea682b0484ff0ab5be3692b1b59e78648087abefccd2314ead501a9f5928d42b64ef5fce259c69d2208143384b7740ee96a4aa1407cbbc4a6f191637168f0ccd8e7e2c21ce2aae1b363d7ee66e44cb53ffd1ec9093650b1f436e311eb16605b22fb1b3bf2e44e165f1b16c526ff0121af634d36a3fb594046f4ce5c9e4f3282a3cba9dd859fb957f20195d591996db6c55308978c03b7e241f7f0ea8026f5d324b859e5a4f0312c7d15c694be788b89d1bb2bda8dc12cc8591a1f32ed662fd3abf7c46be3ba804df0d3e17693fe1702ed8f360f1f92294e73d4ab2e4fa003a8104db60fc88252165272a1e9d1fed431727b06907605e3cf92bb60631ff5b94675883e37951323623b49b77ba5d477908d943f3cfb6c82c1e32a17b0dbdd3ce0647cb47a483e2f036ddef6c8361f15acf6fed93b751e6bfaa7b7a06493aeded3d1659945fea951918c0f2162a0f56934dda177f745d5734b4ba3503914ed460e56cf844bc82abb4be5ad413c0b4891ea5eb16e4bb8ea9984b20721231a7d2d3242b9941bda7df08bfff643bf9683f50b130a194d53808cbbaebd350532e07f2ac5857464240b066655717af04e3e9e5ec9d39351c8a5164055b28b411f4baa88540f8fbb0184eb8994181691e20cb4c79ff2a470262da05269f08a8e6c48fb2071f8c38eae0debf788b6dcf2fc6ff15f6a6be15450652089486d9e4fd0742c83ad6f7898baaa5d7197268c1498e0a426dbd32d2afc73cb44f7917391cb5ef2888cb46516d7269d098d5d63e3e59485337ed26fa18b9a54712e555af1bda8c1391c131f9d0113d058aed3c20cbf0348c65f110766b1a24bc9049ca9fc8b780b964b941065c66d4216d3c78462e6999c360f50709fe1de08ef86d42e1a9957990ed615d197fb77aa1f30b8ec6cfec3de1e3580acd7b57006140e680f3a3b9cc22db2d7d15e9f52db332df876e3d9f6b4340f6e1d84130db69e2a31cb8fb33"""),
|
|
TestUtils.hexDecode("""
|
|
5870BB288AA6130708F7BBAD9FBDD6D41E249D620495ACFE90C61737B57DBA890213D4741718545CCD8B3FFFC2DB33C39AD631D5B5CC902DE4D340DF03E09248F67E89D28071AA50FA532E94C391D2D1A61B1847C6B1088BE555E5C2694EB0FC1F029095ACD9DEB21EF886BE577682CA96AA2EB3DCB24B871336AC5F23C8488011860B455B687BD4CEF5FA11381BC292B4098BB2CFC1822B48ECFD28AEADA71809BFDA190836D3215CFE755FDD9374115E5A0CCAE15240EBA0147C2F89D8D24454D7A5AC2D20ECC0D46C040FAD233FC51C870080F1FCEFAE6C073AF5F7A78D610E23831D5990985FDBFDC6D101ACF3DB0A74D71739E0"""),
|
|
TestUtils.hexDecode("""
|
|
4211c0fbcd62764b125a8c5263404d7848a1812dad1056f3368817cab3cdc97f852487ff9d2bf404029ae58f9ddba2fcf1cf5006568c2f424aa647b4024ef30a1ac57d831cb0eeb85414d3b9069918d92e0fd933b640f0a6a777637245081aa0d27b2fbca9deb27ca1d1338189124269a14120101f0fc279ecedaab6b5006ca4c7c0baee72c5d44f4c330c56bb4a822ffd3e9c3f2602ada56da71ff40a712f115cbb4bcfc484b9e778bde49ed7df2d9f233ce065d1a9b3eca2c494fb8b7ff6b35d64ce62ca335c27a3c157c801ee1988dd9c7d0cb0b6d9c2295b17f88ca760496dbdc9f68910fa07e48986bab423f9059ed8d4ce90b8d1943d1231c8442dff36a63d28e667bfd075a66a7d729a2d852e89d8f580ae18d6652d8c06e02bcdd48970a658ff1293b6eef87108f9192e65001a21bb2e5dbe932a524cd0a44155e52ed18e1f09b9c5d46483774b49a6559fa78377442c9652b879597b0569cb791731007d556a6a26efcb57910692925f041d4d55a71c7a221f52cc578df50d0b5176a262250f55bfa3abefafef82d31d1af2facb5b6d46c554f67d27a143fe7ad83d4529183a02594b584baf860c1141d50ec50db36ab24adf208289635a7106c3b0bfcf48c6ab881b75f379779fed7f1dac26a4698d1ab9334f88ffcbf9a96eff8e85b34a6ae4d2228b7ba474bb2bf32706ae6d35409477269baf4a8effd70f98fe8aa791bc49b7fda540d80d31d699508d3f9a502f90ced18fd6512aa02a22d941acd43e3ff4fc802f05da84ce5c367f9497e165ed4c5de86fd284e0c181a2cbd1f16b66bd3221fd07e368b1e00193020162ab47e61d05f54be7354b497cf7b6e8d77b932eb0f8161cd015c089ae62d604b647193819b21171c1f493bf0fc7f67407045f56e022ed791c17606633967986c9d93219b7db49f3ba21ccfd1bedaf84315a770d978ab657ec5d4e3e39d8de6a163ed199b5d713d206c9eaaaca1ec4415b015aed58797e4e116b366081825dfa54c25759212f4485eec2cef8f455109e893b4732b437c301db78978831edc4154a1be9972d4facf9137e59e2b04b89fce1b6cecbbdba092518d1d78d7086e55125e22edbdf53dbc67f38eabbe9e76c69554fab97dbb290192f1a5c66384a062c974df996b618fa8478fbdd0e30f11549040643d583ad80480c1fd0106c1f2367cf2ab8eeb641917381815b064905ed6e900b7be712d3ccdb0b1004ad33bb6e8a34b94c228940afa09623c85e490c32023e157b451f02aa6017c1656ae1dbb4e795aba6198e6b6abf66874acd91ea4028e3a9e1b68321fb6e707a72443a0a4749ca460cfc0422c7c6b2d322ace8b51270514d0fbe36d6dee137a89d32e2d55610a60dec2266fd7218ca4d925f15a7c84edeaefe84cfe9a1d672b551f5f2e32308d0a456d59c26b7a1689ffb0a3e4817c5e385a0f4658868814272451015ace5bce4150306621cf53e232cedd3dae72eb1a240e625de8556f5cbee438cbd913b3cd744146228535ea23f310379ab18c24ceebb685d0f61e5c81a2c3c9b4f4a7a533a49c8ef32ad14f2e77e210eaf1eed44cd6c845aeb78c63d7c12c6e5f91b59489fdcf68c4c0948a858933604033209a9d5a2bfb68b101f604f6f10bd9703fb9768c2aebca6ed5b00e4974bb348da101f7f2653d55decfd624a7d79c13c05a7da0ea3211f7bdcf7bf1df8d21ab5f4130f67d5576a4c8a927b7c7890fcf42e1a431c0befa7b86a5c56b283ec96a2f27309ed629b8bbacd4eeef278d7775d1c5ec5bd331cf622298a343cd473b905abd0904803d72bd2463d9a88cc11d62068f0d7fba61781fbbdea6842bcc58385c4f3493ceaf5d105a2ec7764030961546d89a8aa5252c117611c8313ee2d7c96cfa76b1f3daa4e9c885b2d271781c654b52ae904f5ddb3d58335dd81e2e6202925268eff4a6676b80f9042c1e1971fe8a9d6b7c8d88ea282e1696c70619a1baa29584c0acd26967b4dd0252fdc8dfb645a255d32b6065951e7c3da633b92017bf381f1788cdc24b205dd6a7db1335440d62d81ae8afbf2640162cb92095270a8ccd65ddf5fb667fe2b5d33fb1bc5014a6af35cc4e4232fe052014cf4bf2ad9b46684704532f33a0f165473ed2850293f6bad8fa8cac3d74a995b02980fe5275aefa92374719e218185a5d62a6347f64f9e64ee8d06cd9d509294f18542d432ee24177a0af0d2374b5e29735abec655bc4aa1eccb6b8c6cd5d0602b8de15ecf20dfb64f5b0b57cd4bf2e88495da925e98f46799d344c070d95e7527ee7d2bc1e5da7e7e857b2c3c91489d188b4b43477082773c95479290b13779c25682dea8fbe6c8d7cab9b07342894eea86e708d1e1e7f3ed998df17cd752e947e5d2cf4b4c3fb9adc9049bdbed6badc20124a694dcff1deab7a33fc3f7c8a9c7fda5ef59ba4ed3f3ee925aab58cc74b789103500aface7eb0311a90c13b1740a54541e95ed0982c9409800f89c9519ebe0f1f8017d639ea1f9cf33a70633ebe2abcaad745ef5edbbd50442265b477a2eb61e89054d50c8956e6e2743c23a387d316cc5d0b02182989c1f01580b597e0a9f578d3a3aa6d5f0ac1534497c5e8312055e434c7719567be933cf6d213be58ac37527999a9260e7a0850cab48097fd68175d24c6f1b1ad8e104b3578e4fe746621a50bbac09fcc3a0951cc968d708bbeea3e7437bc269416d826e8ffa279b755abff5bfca14e90d791ae0357d45a301d166c19dee82f2c2e6035895b294f0ef30d003c60422f78178c5305996363dc281f8627ac75bcbd28c2a7e1ca918d438c88cfaa57766a372513615592861b9872ad6fc4639e885bf03e32820a49687e0df3598b45a2f81e33fed4e91b9bb458fb55ca35d99351b20dbde76038188f01935c261f07b4287aef1158a5e2db5fb136446cf1ac6bc8265f84a1314f41cf40e283ec5da03269307a31cbc5a3a80b723b63c0366febd211a0a448604bd7e56d4d5d9a7e6d8a1247f098f01bab54f27e598fbe6483744e3bee936adbe1fa4869ed81931cd1d7b4f9ee02ede169104f910cb6dc75e10358e1ddb3f2a661595eb44cb851c53c3f2835f5434ed0945a354483203564d3377e78e3959b93244e836ed4475f82fc829946037bfe7300742203d35d55cbb5c18eff04f30bb9ff99ff1b45858d5a46774088bf295ccb5e03792779dea64d4318f800e10029995e3bd7cae442a8d9ab8cde1a26c1de7aea6a9a70bc16597e54e93729fe27d938b205a0edae98eb80c95e6ac8770f5a2db81bf1fef6fe3063e4681751e9003db29209d1f84851a0afcf62eb0e6605fa69da74650cbc4fd7347743075d9cca143a8084c15d4372a1d325adff6f2b945ac8f7e9bba76b6869abbf9704ccfa718d6926562dfc899c2498b073184ea1c6824a245be772b9276f279e2dbdf62fb28d3295f364f18032361a5db82d16cfa57b21b4270af55130c029b573ccceaeb81293f29c1ba5c0cd6292307c9f0c88100ae57ac1892e422891039541287499d3afbc1d3c68e93a14d5a3b0efb6ff267039fa3aef140953b23cc1d7882023407e7c77dc0924f58529e18b41b2f89747d8f1fb6c166807193100ee0a26b57beb8da3c34fd134a28d5df3cda61683e0ca0f9d92266cf0675081dc18946586e5b9e070504d6125fd485094f3df2eff6d9197b3c7953303f62e276df391c8abf86aef1931d60488556e412ae00f7c201e8d64070aa72e291e804c209c8dc3fe968d06311d569d726fca4a094c7d4dd4b16014d4a1cebaa97131ef1ee66d734b9f85c9a6e70afedb26e7ee8d150d611b852b0bdb34513ee3db302395492b845affb16680f5bea4896b866fc13081eb86f509970b69df9d7c023c160456eb94d7eba2e9e2e076c10ad52b9c966ac387f808811138b9f7416bd0a9d21dfe8b706ce321f284342aa301f4d8361bf20bccd478386673d2afbab6288b8aff15eebfcab25406864842b7fd6bcf6c42fbd8b2cd526c5dca80e46a04be95cd7d63d936eb8f5430415b9b1232e4ad3dda1abb1b1c0286e4d89b9750fc67eeb22342a2aaaf83766ffd72efd993dec4a06dcfbe5dc3c067dca721d41b14f8a3536e69923d34bab47021bd1a16640da14fee5e587a833f2b415f4c454b80c700a4d9bcad4c94b6db9cd969d199f0a3f4fdb7225d445cefee5c67b1d6ac63e8e51d80cf32ae75247436bef80affa4b36096b19b1dff52a88f7a3f2e29dfdb9c5dd994f3bcbafd976f318fc59e3d1ab60e92a2c0ca7eebf68da24253b4bf1bc99c98ac429becba641fc2642074a07a9249ebe6508dc5d0d460f6c7bb873cc6a2ad7b91f03edcdc731507ad451ee3d9a4527721a5e76a55dc008f438014fd0797066a51910e958d5a0d92ee2245c853b4c9a7b2e7efb1e9e749b420b126f0a0240c516882686660b38c60007f45d7648eaa2d7b1c6b1bdba8aa5ca140e8c38b0cb6d54e3083e903f7c3f6ac97d95293506613b3a35f1c2a8d401f66d917906210c758563e4722d30b05d375c8ecc41d898574c3a20d218b581db4c85ddb2125e56c4918d021f96bac324ff9e9789c921cc5281c0f0c98a98fcf218232a8b99a2bc34a4b7c9d9031b1d408bbec6e3e633555e8fabcb0115324e000000000000000000000000000000000000000000000001080d161c20""")
|
|
)
|
|
};
|
|
|
|
static SigVerTestCase[] SigVerTestCases65 = new SigVerTestCase[] {
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
36fa0dd4a24ec6fcb09f2302dadf25bb8118be5ada70e1eb7f57b93fa96b1b842b748c1f9ccc78cef5d647c28fe8a346ec60afd8a79dcf46d5a9666b0e50816972701861835ba933a4ed0df8b13eb32f07761ab2f9fb622346059777c7c75b2f370fa623cf1d71595827294cf14bfc36f0ccaeb3b9162825737481012d4547d1843873aae1a2ac6f262ec5d4b2403ff7cbb3e6758920a6dfc12f48396f8f96e144c1afa6f0a150c1a05047e35e95a3530748c121f953682cea77ac0e4dc7cf205cd63e8aa64e278cd6ea2726519fef2d0180931cb2e06739ccf01e2bc1ef7cbfdd6bab7b9bf82092e18440945bccd91ec8a703765615cbc42492925b3515a20c8e676593d0a4492011a3cfaaa78a21ee10bd266e27faf13ea69691bf5bdb89bf7bd13642fc757af3e5217696b6d0f25386a8e2e2476742b5b050813afda57377141f0fbea06f83544f14b1f027a05d9fe5d431ab6adc86623824c466f3d37b9f70a9318b52688d209a869c78a1f063742380c18961fd3cb19b3e0d90898025fc8d7785791d6ee155899e1c0c082657dbe848c1c03ef6ae62ac00e1ee2a71527338776085554a3929db26d61d842c15e24a917fff823ac1bd9deb37af188a6584bda29bced6401230efeabdc5e96bc2c77c23347e5f60ba29c581877edb9eec6831a9db4f93c383a5f2f770055a50c9d4579e69a22899901d1c9f2c5b892976d980ba4ad0864c0a046837791ef23540b603a5f7cb074d94620661e924d017d29d6fe6b4b9168cab2325a6f35e7d1dab818d4fca14f6af4b0eef66f869a0e1d7a8ed15ebb9b1d3cada4fcf106ce5d0c740c9d8eb5771933226ad5af16f8364d506cd700fb5270cb26dd0b17e04d7db7e5f503c9ce3c44d0b8297e619dbdb382c29d7801a9cde6cd5e6f8e4ecd6cb9e8e89ce2782812496a0948788fefd3fa8172df501475cb6d68cde63edce6b7b989281b2b95d60a301f10f60fb23d8dbaf6e4b4b345b0249434623580936e9ddb6440d7ef60fd96e1115585d16725e224a4c86356bf5275ac911864cf1631c6fa8e6ca3f093914638f40517a2102f23505a571e8578d4b5a7b97af3a0df8ba735d6e53bd6e0563dbb21c37ce4ce99f45752d69322675bd522046a89dd447a34fe781095126c774bba2b26c9d7cfe4df858e7a5304c5183d24bd59f41d7f22414dd6ad5865dcf10bb42857b738d11b2d6712d76bd252615e68c91aab09c8de5cc36cd9ea66a8ef4b65a91e86cc39bd107ba15b1e5be3f7e856070026827a16dfccb6943877ad4d3dafdf5afccb3ead3bbe493fe4d2928c335a9ec128f11dbcfffb8d439a7807cf035c01ad29d90f767d7f8456b4511321919e0a27220c411d94639de6ee232da1544671981c200642de22f01a8b14e8ea8ae91cc05f2a41acd085239ee00dd3e31bd21673fd2ed5a5692b3d163d99b1c19539445a3aaee990daba896e67ac125007115f126bfb6902fc8f53501656ba204677dd4b6132813d9064000d024cf0b2ad70168c8bfd6f78ffe6d1e6ad8731e880bdd52056f2bd42c825ff5dcad7b4b42275adc52b8eea33e23178ca2361d55d829de69edb56bb2a9ec300a4691cbc1fbe0b8f8f999eb6259fe49d6fa63d665722e542fac9a2ab5f203d1403ef328ed290fc2bfa1da1240076123d425e485589eb6c7ba701658fa6ceebe2fc2d211d0c14160ca5518aaac2c7763c4393e41c31a8b62b3af2ab12bce0f2324ffc1bf4d1cacb245da239406fbe105310f494502d6aed8fabd2042c7b1e4bbcc8b44d22f34850db34f8d8134ca2d7a7e7c57e447d66660c83001a54aadbf616517867f1a9a127a7073ab120ef4f6ebed8b66640dbab85f7e4f6c379d6962ea30b849b1919442aa6cd3defcddf35cfe6e4e9443b5c130503fb37dfbbaec995cae8b2bee478b99cea9a030368aa1070b17909d27024bff039dc4e1916d8006480d83858c04f22e0876e9eafdb67688d62c94252a74c1275c135631e162e4588b3f6d9f8140f28e8ab98e11cd96c7d5a528dc8af32ac90831bd74f2481983c62ef4111057b02621f89c85731edbd1b17f525f0a7c732fe8738df6f20912159a3a44b9b1518017e59e02b418dd08d066642c120af3ce2d22e7925fa7d811aad41328c66ec31ab05e1185351ef5cd3f88d931e70e4d60175634a8df275a96b669024f2a5d7dd9e8fb09ed16d5a754a25bfc0148b6b690ac7bb9e44062baab6f2c7e2dbda94a641a07fbfce7856bdd329ffda4a6ea637caaf36d1776ffbbb17241c7a69533adad3c242dd98168f0dddd11df24c0e2ad33db04cce7d8422d7211b6b04a93314655b7999093954674341f25989b19c2cc7851f8d3632543e5f706c1a4a71cd37f9d9aa06bc81220e8792baf65e69a75b9f1f9d709cf73f4819300efab7505f3f2a3ccf913cdea82c65a446817b316fe1048db8e7158a80ec221497a243a16b6292131573a6374c68deab40bcfbd4bc955778345eaa8fd9c8e405a9cb2ef79842bab9f48bbec5764dc6159cf34f4d6729e1451dff16a92b9920301522650ec397c4839857a03e991185fad483898e37485b7329a74929e7b865d1805ed02158b209fbc0661d4f9324f3be701928d65a04784b8fdae59666d70b1ed2d5310a2a66a3d7b948b160e16dee03a694403b7e10f4c9d860ab54c34b49dfc4789118f0bd4141158be72d710d9812f66f2070f5542064cd9fb7030e9b8a82e2ea74c2cfffaa3ba0046a59f4cd06ce680f5a9f2"""),
|
|
TestUtils.hexDecode("""
|
|
E3D54DBA675DE7530D3854C8CDBD581C6E392F69CF9793D8C0BBAFEE7334C5878BF13B3BDCF1D993A47A7E8EDD4B6C3EC915A5E8FBF2071F112AAC41F08CCD8CC731143AFC223213212A5BD6B6A4026CFC9F7A41C08CB99F2B375D0E04FBBE00503533DFB869DE43566574B49232566E38B13CAF8C1EC1FA11CCA3DB66887996DFEE090D133B1D394F075F8286CA6CCE13C3977D929DEF5943461BD5A22D4BB5E8FB7EFE016932D02ECF4D7B7705412CA14508B13E61925EEC0B77460C4C089C83D687C8F70D141C75D6DF24FCDB64BB8C2721AAC9CE8C6FC4750C1686A7A70DF34957DCC0CE53C3F0D280CBD056D4F921FDEDB35AFCE5DBB348964AD105EEF5A1B07BD0D586B87ADA7CA7AFA93FB75AC0DE1C749C48BD6F192D6279482D3F9781290B88B095D73E728AFC186BFF0816C1DE78119D701FAD382C65ACC42B04D69412AEB255793839EFB9E5BBF6F69B7FDA27A44C04D3AA2FDC6101E9CEC6F75745F20E077EE23D652B7DE547A0FB0E3A153473BC824AC8A31A2C9493DE64B6D40185B60431B1B34EE32797CC77C45C71F4E04E849BF8DDFCF640B83130208DC2495C0CFC6C031B63B80FB45F47BFE3D25EC5B36C2700300D8223074C156C5D9887DE8C5A97BA36A84D7585CC065F20FE8DCE9E8EB814A1D5B7A3B7A3AB68D93EDBBBBF67BD70A0FC536C81C8D6E8B139C6B3B5EEAA3953464549CB38B78A15CE3D5BB4B798E6B142BC48C70C5BE61F82DB6E2EC03616999073574E6FB35D441B78DCAFF56B8CA8F473EC0543C9C69E93B97F95FCA58DAAED511F4440DB252EC18C90D2F97AD901716AD34EE103EAB0B7982994E21ED1AC4BD62ACE6DFE12C8C2CD092E7A7E37BD4E61B4CD51D980171F8D4253A4E7FCCABA0A513038276325372527621B0A3DFAECCD7CDFE98CB79C0662F5D0234AEEE9302438B778238BCA409D5908768779155D659E92D12CEEF3C2C954C3F1A4C2912E9EE994209B608A604D0CD87F79665A25E774E6DC1D8819B85852D9ADEB174C75D982DCE29FFDD24B7AAF5946A74C14A301AE09F1386AB17ACC341D6DAC040FA6527FCB8E095CD4F1651E47CE02E6ED76C085B2FABE9FF5A510E63E73EE386AC17D5C2C94C2D528B3A9C8902D10C1610BA70BA616C58D037F148E6332107DB9F64C579064F19481669C7888C21F0A3374194FF1A72FB6180DC01D29443BC52C318AB03843357A5A98B3D5CDDE9BC49D3ED29EF73CAF44A7849AC6DF4B2D353B6A562386BD480512108CA0ECD63BB3D3A0695679762F8254116D8049488BE6389FAC08916E6407944B1526BF03551504E40E6A3266D4E773E892EAC4DD5128374BA341EB4097E20A9BBD4E5EA26BE6FC325D9B71C232DCE1974928516EA2519974C82AEA5247627F802C6442B67FBC10E359672EEB9DFF768E9333A2166336FF0004DE5E7BCA55998C860FC1A86B75CBEB3FB5A5A2519D5227A6B5A7E0EE058FEE0CAE2B4AA75099FF098089F0261C443B13911CF3250CAE2F2906CB6454A20D0FFFE8C5AFB1DE7C5BA8CAAE00CD7C2D7219FC83FB158FD6D15EDC2924AB41C9B881566C538F5E38978C3182FBDD0C0C532A77A61E5B8E666B3C540DE976098D2BC68C0CDACF57E9BF1BDE8A7BFB13256BC69F2E386D8F458D303BAB781E537517AD7D0F0378D2F258B013AEA01C97A7E8CD2C3DEB203AA8D59084ACC2B09AD3C97EA613A2FBF297038B4E721665D512DDFE5C13F11DF4BDC0200BF610D57EA7232914752F75A544E01D5AE0DEFBC9E18695824058BDFCDDF4D5884840D2B55D6C2D6EDF475CA75F3EB4D0EDFAE99349684BC9C533EAD591085BD1D6D4E4F9B00A54C97244322D505AB52B2D4E0438C6AC5D2C3983BFB2359FB21174AC02156AE11EF233AF40A695854C84E620754419CF7ED9EA4FDACEFC8879B2EBC7B29CDF9C4CA2921E084486477C1452BC3BAF529DD92748E2B1B684B1103CF4C6EE11999E4121CFC7E2F3F6C7BB9C055F800DC46D78D9D94C3B20BD1B697411FF0B41E38173D2C9FF1CCA77B27384026ED2EE25223B0007D2930D700A20EC9159A66A4BBE0BD84DA52F006D7FAC6D59AB2BDE08FBCEB76A57FFEF59C077F9008A4A231FCC302E4DDAE9F3DAA55707C1EDCDE8042176DC7DC6377BEC58B236990AA6C5876D5A27942FFF7FD74B7DA1D2EC470CF71103A64FD2917AF4C45D4C59C13F58472AF408F9C5F907C7C6AE0F402B404AA40CF8D962EDEF7B7654EC8E36C645855BBECC1337EC18F0EA65933F4D07CEE15294139F479A16133D2BF412B5E46D5B06FB170F0C93DFB8AC3F7478002CA76B67A272A3224C8172CDD8A616A4C52F5FDE946CF5733583C53835EBC90DE3ECE34299D7E5434BF072F08A44905818EE9708815CED10E9043E88B6EF12BE72FC1169FF2F925C38E03B827CDE77740C7C2848AA3B09F555E2712B341E248772EFCF01B99CD5403642448B5243F35A3073A6DA7685AD42FECB05D46FC99F7D6B8EC56F39A7E7B3579FCD587E07C05BB7E1F5D49B9015375E09A9A14F2CDF049AC392139EAA3C2547426B8CBC0C4BA76C55014FCD3940FEA2631A75CD2FF5C22B8A65C9AF2DB1B831C30EDC8EB79B797E76D045EF0B8EFF8D41404F626DE8551FFA445885CA1E3C9BF05B5C39CD40E3B37CE3B58514BC70E2EA94CD694CA88C1F47AACF9B4FF6622C555AAB7C71EA210FAA9C0BF9089DC9C9DFA77C2C4A92F59BD7CD24EF4F8D5088DDBE22DE854F8966C017FB414464ED6B991E289F7E3FEA783831CCFB51E227A6DD4F5EF50963E80847FA6B350A2DCDA3C875D176342ED73BB42B416E58D1612C4D066F1207B6E16A955DCD557A9EA37A9F24CCB20E74AC4D6166ACEBCD7D651450E5D4AEA86DC89528DFEBE07B39A160160FEBBEE5B11122B4177FD04B0A49803E498F1BFFBA898BE3B26320966165E136F7F517FEA35EDF01D36831F9AB478CFF8241E01AD7570C26EA62439013F61D48797B92964903802AAAF356C6AF7645F5F4338C7EAD5AB2898C600123888AF42A2FE06FF03D81320FC08E7589E19887EC86CC1B08204C29E86CCF187B1240B81F7D375F3762CBC10F3BADCAD7431E59A4DC136440AA72628E17D2BCFF916DBC8A66B8A83A3C6400EA0CC57A82DB41BB28CEA9E9CECA1ED826719B9B62B6CED5B52FA518FE47274DC6E22E5F8398D42AB23572CD6623EC307FB7EF61892AE3196C48125605F4F09B9C0F0DBBFB9D9015D325C546CF3B1DC886AB0DEFE2C35CD39E2AFD13AEA74F787B410883EB72DB8CA7D225E6FE8143695BC0FE556C6CDDA493F92ED62A38E8F90CC4C713A4798984007A5CBF68F0CDCC01274C96A15C3C4355ADFC75F7DB0603918ED6CB4E4491A8569FB1A9AF32528F6E26B2303C7987E39015573521E024B2230BF1BB803BF2B358880F2840CC58ACE31E551C8E2A0F8349570741F8E93066C8F17608DE35AEC342415A4BFDD13A9757501F5246ECA49913D0F02EFF35F4B3D40DF97A64B0FD02709C0832C423543A850776ED9C0574C26CDAB8DB371F5F4B731E6F510BC09FCE3DBB58BBAE1074CCAC284D5F8068D2435E053A037E3ABDC957B74339EF0063D367F7556E49D2C7A7DE3616F5E8B703B7585F526E9306C59329A18E76B85303C31E3616831F2AA2B173CD0A43CDE76AE52EFB8CF3C381097D7A7598EC833A75E97AE4DD539C31B3E45216EF9C844008C28D12B12D3C7EA7FB89B3B5D20EF5C7636A8E83D6A9F8F7DF29C9716B7D92313048A7E14B9EDF77FEBA874B9410DCAEC4816D2FB57050696F5D4F0DB47C6183D447C5AFBCB948D09944F4271368542E377DEECD006779F6F7649B946E79BBF2E19AB4E93F142BB24E6D962F6648CD0BF1BE876F6F431E883105C3E86B973E30735A6FE17346ECBEED5D101EF0AAFBBB4C072BADAA2F4D517C272F2BD2190F5F8C87D961041A121D6B319EBC959AB0603096017BF7CBB74DBC74FB866358EF8C1AA5B9A10B2C524E822278627C0AC577AE9383C2A529054528E58D56699540E4931BC65A125EF4B459A7A5FC10E0324ACB641BA33C83A7E100CB00FFE0ABF6281F8942AE5490DCCA37BF464D0B061028E46E025FBD5F6DD6CA1BEBEE282B749FF5B002210916B9CDC4D903A95972FCECB9292A554AEBD821AB4CC50D5EA0A33A699FBF07F2CA520FC44D4A9581182290294A8FCC66DE3FB5B7F5EC5B267D1A0E6F84C27C02253649F5903389A0901797A7EC8B78AF12BF2B1CC22D291347A0F8D6EB2698AFCA7CB4C23EDF250A5B77E51EFFA3C675F1FA951D72467EDAF987D5B63DE4177535974BB2006AA9A8DD9E624108229B1C5735BB039CCE47162EB52DE88703A8BDB8ED409BC01DABADFD31EBB95CAD9026705DBAE5A2D06376320BCFAC17A7DAC957BFEE98480C7A111B5ED300447A21FE62448F62CCFF7DA68689A73A2EC70BD13130337EABF26A00BF86E52077EA00DA46FE7323780CF98B3E998BB30C3998017F4BEA455568FCD567086EC68ABC40113DB474C6C88B1C1C7588E7A8C8D2082D4C70DCB8FC3D8FBAC53CAE95286F13254253861567E4715B03E682E422C111169D96359EE18265C3CADBAB3AE61F03F86D096ADAE9A6C4820EBE3B61015995707695B42B67802FAC2D6FBB2B67801A3E48843EB83288AB52C29C1F112F9233860612BA015D4B7CABC19C6294F8871E2ECF6AF334DF9C8330971277E32CF1488F04B4B285AEEAA83BB81D54B6B8426439804B027822373AB99868EC068735C816521BD75DC19F79D2E2166B1A551C998318FE19F5079BAADB12732528BC8B522438AAD252C57D3899400913CD124D2DBE90A891D95900C0256D9DDBF939BADCF6E37E6783DA2A2BAAD872F6C8C11878ED6D5EE2988135A39F2DAC7CF127100C36D2D4E58B3A9B1D7341120FFCA0EED2E98E020A46F1AECBC809A21EF79E6DBCE76F96B6930107F078A5D4464CFEAC414CA41A5EE4F87CCD8868E7922A14C247885F0DA9E23A7604EDE703C2BE3633AF9CCC32B9E5F51CF51978F10A06F5D77C67927D80AE480E7E5E005401ED95467972ED87029029DA05DFBCF2F0B9D50441E8F15804B0A59D23CFC2E3C0FBFCB10B69AADF0B37C06DBF972E264C6CDE4142C04FFD9FA0AF2451F8BEC3FDE9723306085ECEFB17C591E691F9B4D4F796E293C0CD322F02B96938A5F7D1C8A7FEB94C031DE24E71020FF37E00590AE7CA48CA876AFCA2BE3723EAAD40FD27B90FE6EA039C9F3F6069FDBC70F16626A41678A31E8AD88DE9BCE8A25D43B86EBF80E5E426FE21606E67545FF8E55FA7D9802D65AFBDA79EF40DE924FD0DA7B5C8F6A2CF993FA6D27B2861C629CC9BD2E1E6AF04F88065614F7E24CDD19C88CF2D7D2B93B7408D898525E5141FF71D18DABAC186DCD432F3895A1027C92CF8613C80BD46E4758CA26C8CD92B74EEBC5FA5EDF9C9FEC54FEAC40F0944E3FA165E515A03DB57C205D383C04B2CBFF703939EF321DF8A49BC3F5B1409EA491062B7B9982277825B52C6CC8313BA05ABFFCDFA525445B1CFF773D28536A989D257967B50D7BEC4FDE5F338D2AE81BC8EC592BE93BDA0A7DD089057E675674E8B997B05D049CA3DBD60B7F3FB23BA5F4E5A48ED8535234E5C66C41B157C25B5D9EF5C8C0ED016D6B217F4B60BFD0DA223A5D40C2A403DE8268AD5E6207C54B217C2F009C5DD052266722DC21D4AD8314DE498692E3C77C9F8226A14F27D49E0DA1101E32E5B86BC0F0348A20A360A919EC863695D2EC318A61F654C9A1526AF1538F928DB76F9B14EF598F2551EE85D6E0429192C5F18D339DD5A280DD5B1A8F59EC1F2947996C7E190C87502FDF5004772224BBD1C4DD62A8DA1723EDB41176A9AF04B1F30D09050E73579364360DB4F98034FEC1B43E6E9E0226409E6AF1609FEB862D845994BC20E67010237B74DF1AB59EDF14B1623FDC990B87B929FB7E837B1ED905286A886F59B023F40B07A989EF7A99E974EBAEC49B45FEE1F405D11A641B2B150EBE854F7853F06026CB1287FD8BCEFB15D2AEA623D7C3ADAA00B35A105ABF2D8F9715BE65AFCC1381D29C5EF398F2B76FE1651348BAAC147CFAFF34778242B32A1620E0332EEC7AF5E750DFEC30A899452ADC530DD933A07748DD522AC20AE2B2889FAC3237D23C4472FC8C6B236D4A4D19F67264F54BB9B25318156B30EDF273BBF3598AF5B34BAD41585982F6039F6E488308B47EAEA5D21A91E5838F7D9CCC8F726EB2DB82D022BAF103AB2DD444489B94E8DDBA71E62AB6251DD5D5F69E44F377674A5C2B032150C32664C96C072867BB7A2DC29033E6BCCAEDDEA430E5E155DD0724FCBC0415B2AB6DFE68A2E59403B206BBE7F421FAAC53F66040C5CCCEB19F17BF000AEA7E775211E48AE04AB32B2EA470FF97707D9C073FE72A7B77D49FF8DEA36610C2A83306435861BE01DC4B20DBB8AA6CB780328DCFC2A32D74CABA83929CBC85E406E74EEDB727A2FB5BD9D304AF46225832858B295A17B9E710BD7B0B5D19DBBF4FD021EAF29F4D1B6BD7E78C8A3E3235B5D0BC687BD5B428D2318CF4330EC343566D42D17BE838EEEDF70F1E409C189DB1AE0A205D222C92A1ADD33B8E3B126AF62818A2DBE3E3C001098A986865C6B57D0B2F5579B97B6F101EB56FA839F8789F6774074185A8E0F383E9D8813CA1670D8B7586A3A1C27A3F5A3874C4E743EAE21BC519DCC430E281D2F73C23BAB948938A46FC24DA94647150DB72783AB3FAC01D834A8544F144779A51480643CB1ACCA0BF88D203F865664A5ECE18A88CE31B0D8FEEC585F9531329002D4FFABED01EF42AF52DDF08400C58D07E98046D77C7A142B513DA0EE795DD57EA43F4CE36C8F6D2862044945DC293C8D47D9F207B0344220E3177D6E17A4B39B22CCAE3C53D4E0DC87F70CBE9BF743CEACB8932DF8F84A527C9FB84C6CF5206EC2E43D1FF8E846DA06EBFFFB87BEC09C63E9633713768060ECA6259AAFE7C787F3947D5B94A6B80FF0A7A4785836F9A1396833347C13034040D1C6B1F83782AA6458328160FA04971DE04A16B6C031B2571DD131912CDF2515DD56983ED6EF3BBE5B3989E951BF0B99C5605C38181E96690487E87240059DE21BD220059E5D7E3C832FD4569BB7DF06437197CAC141E8FE5B369B542CBEED2F9025A030C54F0B5D2B1E79011CF2A0A0DB14312E352D07BC03E654AABAA95AFD30F1483B57BB1A74A0CDF8C9FDEBE4B0E156FE86BB1E21D861F8EBE0C4AB2B23E776EC01A281F6DA9BEC4C560668B4EEC71856E6CC41741DF2EBBD4E95B661EC24FE31B1DAABC9373CCBC82F3C13C31E478097259850221928C7AC6BB933A5631C896ACA87FB6F5E3EEF36EF5B9CE59F5676813A1A7E768FC9B8AD4A0A072672BA23CC21B21A95C9BBB1A40FDFEBD2D611B773DFA55F87E9AB1CE51CC42B0FE2FE15DA2D73F656CA56279AA16722ABAED5727519EA258794503F1808E4EBF056530B318B99A74886D05D042DF4D829C425C908B58162EE30A073D4BB7D27275B548E7A90E6D178DD27F67CD955270825FB96300C4645E4CD9C175C1185707D4D365955FCFD245A55D64EFB66308A47FC85592BFB755EB4AA8B78B541274E2C225DAD649C248E7F2792A56BFBEF704551588460B192DAFB9BF6798B7D4CECFA424AEAD675DCA081E60BBED670F9AB2316F5012E2290770D3323403DA5748BE6681565A713873A5386A6F1299F0E1EDB341FFF08325510A7F2FE5EB0302727D7355EE48ED5DF4316FD34833238690B91D47165CD4CC0454DA33B87569D38880AD92A92ABA0F24D99ED4CC977A2B4E37954FBE9B9320101C80A858122793062C7AC26E71BE2608DBD2A97CF4E884FD3255D008700FF3531C045750B2EAF7730BC9A51C675D94179DCFCE9EE63C1473D15B4319AA9EDFD19739CC05C5C3C8AA618FA9096C6648756F8AA74FD18A8CD81A2D248B856902B4D30182BFC2F392450F902973043EA0F5E6C872AD43A2D319F99F095808D83A8B02BD380D6C3F3DD227EAE2B4A4867713853D63CFF405621B1EEEEF00D5BA2FF254CDF97B4226334A9866A2B5BDF1F8E8AFDF1238DA9F48FC388A339F79D648CAA0A0A69D6F16E297663E5F4CF1AA95427E68D71E74C0A2FB6B689224BD9978F7A3A4505334774176FD87097D8AB454CABEE138F2CDFC6EF0F3DB14B09DD02E7FABE9F156654433B75B951AE3C196D670192004DC1924D1950AC597682EAD1C087ACB1461247DFAB3CD42279F9169B69B33435DB9D8994AC04B15D45007F0F98334AC5D783219B376D9ED7553F52CBADF159F69282050A4C843467AE7E4C4A142A61CCC4C48DC3AAC6B8E0A8D618E06C60DC924A943AF9000F896446CB62EF4E47AD6D1FBE2B8984A48ACD7C0519D6E87A33106E9A91C298808BF04E1267349334E6C2AC015A9F704B2DDB56D27A8B00D876AD00F62434095A6F7A5E9CD4B27FE09FF69019AE5F27330792CF9A1C07FBE98D23C4E615332A77DB5B6182D277DDFD7572DA75748DFB3B9315294EABE4B6D0FC3114B2AFF5537A6B05A7AA9ABB4930E17B7FD3D8F81AA2D674DB69AD967C8306FC3E1CA8BF78F446B26D8F2FD1AF6F7FD7E52867BCCC3B4DBD7227EA992DD995D77C4A2BC808C7A3E68FA433675F489BC503DB70115A824669E4B1861CDBD557A1F78F1A4B3582B2553AC23F12A4326EF943C56F847B8C679695614BBB1DDEA9CFB7D799CE42DF8B735FEB9DC119DBCA306DA4FA84A50F79905E5C2AC1F61241D88359EE6F62DC9D3E4A1593F41CC5F3C02241CE5EB62C28A547FCAADF1DD688F3DFBA870D9BED723B02B0B1CDB4C08D093C48977E0621930A668A5CD517A0EFFBE248B4AACF3009BAC0D47F49378F30A3D2C2800CD16B3C9464563DA4A7321082FAE95DE5645FCCBC5569E942B5F860A32F04082723E9E53F2D18099BEC5E23A916354198325FA8DAEAA3F6B7AB6AAD6EF12A03CBDC27B83C818F44"""),
|
|
TestUtils.hexDecode("""
|
|
7dfa6f43cf7e66cb9e8830871ea48edb07de9845daf9433d74ba10cded10ae8fb4955732aa5f11581322d945bd5b0c05ca195e5373453435602784c9e386ad0766d81c9c954614533a0ab7407d4eead99582655ed634e9a7db1458e3f91bf0c4ff63adb0b62c4e813c396d8a640d0464aff2abc80dac7a5d0329e31eb34d00c2d90142f47e1dcaa203f730de8723ff5f6e9db3dc53923c1dc413ce54f5049496cb69e1280ba7ecc7cb540a62e441c97743e196a0144db65e3c0022c9a6ec621eb1ef79c93b4b224c4a1df88afe1c4513988a9aa4d6aa2a440a9d2b3946dceb5954b0f5634af19cb9de528dfd8bfe857375a8c903b124fe6b9584fa68f56dde10114aa62aafde3159db334294c06b2774fd660a13e997403f04f5027bda9745e16684edbbdcde4155adfe34e0febff14bb05057ee9188c2f7ec829389e7fb24c24d3ceec6f37e53b592b40fbfde40cec330639e585017f79fc86c68de2d24e49b33b5368fd1c7d027503f12b339aac9a4dfbe711918e9eda6bba049154d4f3aa0519078e9ae18f5a94f31adbcc199a72a7b09de94c7a9ca94a04d016fe4051e5b778d5de31f3fb76fa68a71574fdeafcea5e72b563e99982ffcef751e8422d2750809786b57850b832c34a1ea88176861a4176a6623159d63535b5897ef1621564c1882e2ab954455cfd5eb080f9e979a580fd8ed7b02bd504c6ce24c55c1e582e524b6aaa8ef66c666807aaa994d22df7bd5c1a01b128a408b9dc762f2a5fae6a61da1ff4a2feb7e4389bf3fa4357c61acefdbe386b6e55eb3220eecc005cc0047b45bff02e87f1f55177c78c16f142c27e6e9c3ef81a5c5cc77e70695a7ca57e93da2b5c0b32a8df6a77dccb47f3c9406ac58bcac1ba5aa511e417648c4160979d7cd710d35f4b405e7b3d09d229d011013e7c84ca8d0693696b4028eaec2993755bddee22be25b4ab0c5541d6379a067b9fe755955cf11f7f83399bcf28c331c69e2f9a80431da37b14c7e854232037284e91978ef928fe68021138649d3cbc669126910cd648e39cd91efae120eb275b114d33629bf451416ca9affe96d67ddbdfea590b7babfbb49a8e6fada738b0f2bb907e34a856a835e09a8c9076ee222bbffaa25a30aaa21309449c4cd0a7fcb6110a1c82fa8d4a737bab8d92e4bdde60827442e9f74d135f3834073da3867b5094f4653d88607e8551f0c2951595fde2880f0407b60146b5f83ce3e589ef16368b7e058db6b3e8b98d6d459428635f1fe23fbbae5e96d5afbbded8dc22010c58d11e84edaf7ffb8c6598d15e8d3800cdde92ba519f3773ae13219b7e2b967f360162431f50b0de5c634dce2a361760bf2c656e47f8d10336c0c8a0694c148d43dcadb3f84ba52a2f8a167732f106df835e50af089652c7c806b1f51ed4dcdec2cb5d97b5c06f6c64c2be83ec4c1b228fe5615b7531921a5ab4e2357deff9d75e04586f0d325e0bc6306cc22f59e26dec56a2b0ac627f95be580a8efc9d7c27104a852df113d443664a9fb27c0a7e9181372eab430394ef71bb5327e2ed828b60a7b93a42b054cace4b029a8f4fa8fdbabd0b728971ba99c641ce864b627f9fa17c33a6f50d3df9c97d066546a37ecc518b6eec761351240ed4ac606e498daffcc4cb2ccb061619377d33d791938a32cc3640f45549f625e8c2c284a7fea4fe1a864417183177f9c914348d7a693e2d53a95dff9fbe6b26604ae005bb1244176ddb2eefc07942edc0b0fd336f267006979bd82c4499460185d7ad41301fbf5b17e78491a02b8df328aa35eca2346c1f37ca775d11facf01e26d7473956f28551bae4afa6039faf145ade0da17470beb6857ff7435b7ecfcfe51417282095d7a83316d16bfd0a209bddb52461fbd14a74bfe06183c01c40cd6086c6594921073e6a49580aab6b28c71b960ad575471fc6276b4df624870ed01346e3a6252b8e9ad82b40cc88f5627ea5d8073efa300eec86ea921cde8cec9e172314081eee5f6cc665f2b0f6e5a0e56a9d55d8fd1079ce1b5ee10fd69b1a1e8fce047cf7264edb9c44e51443387f9d2fc54b3ef09055f819fbb065d6f0f09e53b3d5536f1c5a98c1778a5a45755894290e45d27f93fdd72e948fb5a1e4b2b97798eb030933180e8aa5bef5d89770c546320c9e2080eb7a1ee3c03a424891517c3281a0f2a7865a138e7cdb1b417809c3c3f62b12baf9b02f9156ab6c774c03d698a9b52380124d863008bf3875dcb7a8a80191c288fcd856e138783a0fb301e395ade94de2193b7f316c63fafeb388a52bb934409064aa9822f5582f632324e11b6e4bd668c0c3d57267d64311556bf855524191565c02da543f1cbacf62a1d5d9839990ce77590f138e7db0641e51ad911c3c116addea6fad97243e9ee4efa3619e8809d67e8907aa0d63f4d9ed863999212e5edfc8e7c761795792e7d9c1d05af67f10645f76ef119c6ce384e92f1f91003761c9203f2e2e6afb3ed4daa3c24d74b9cec3526159f7f88b6df5354db2e7eb0dc1240cddcdf076b8b8f4567eefb4b27e07aa3a6dd9e17695f58a647002283b2f853e9c5abf16b5c4c1f4cf6dc67e14e2ffac3ea0e98830d8613fa7a149109d054ad4858fca3ee6bcef6bed0ed48a877ee4d0c758cae7394d1fa4d65e6fead01c555ed81e9757641d48ddf8ca28e3a6448e67eb0daf3dfdcbe10a376db16063c1a3c48abf242a5ce4e65ab7d3e535339e5689017337b6051820045bee408764b4578c6d0d7e1e17b9bf537912925cad18cda39c8402e3897ed04ca387dad9cc68d049350c2b9d8440f4195144c5704251e5164cb969f08a4ab01d230dcff7c769a026ae57fdd36abf805d114716a8bae45c099994eef19abaf515a0963633763fd2c42f4fce201ec61da3b5dd9d2d89c62b9dc8dfe0ae91fd52b67822cddc9e4604da09865e3a5f9db7e19f1c13420b07afbd84725095ffaa7f3f301937842ea821ddba3e138a0e2ff251d03830a885b5efa7f38492e376f610d89af18c7878e0e179c587d33c2e17241a570496e9ff8e0e980d8d7eafdea8f6cdb92ce8479f21d0a45855a41f5f20103389d3edcae037113c6777bea02de2fe919c021476b8ba937d1272dbdf038cf74e5bc7c94f25e85a8314ab2c1ebcb0db37daea22c2411c77489425be5a37509fb21dd995badd07c3c0cb55400f3df5253d856068a0c643ab1599a30844664e0c1234663f447a1d6eed317b362ca8574e724c263c29221231e41f980c8a773736572f282b5818220e34ee47ea2266f9291cc5ed376aba26385a5252e44d05a49755b1f7b0856f855070ab9ecb1a9de29a5b3920b3ceda55c0aaaac031f935e563c50c840f9002b49dd06fec768a9a258eec5b6aebb997a9e2fade8a95fb824c9fe7332528e62b23d82f99cb9e13e9a339f1f086a7a60aace5f34d2502a715df1d1ad9ce421ed1802f6acfcc96836e481a9f3963b0f28f5ac8381f83a7447e2cfe35f3f95276d54a8143b458bd195cfd4a2b474923791e8edd3ce383e80c9a87a258734656d7e82cc26aa4f038bff3d13512ca976408466f32fe5202dfef7a8bb8aa0b24d798191d8086b5a3ba1742f2c105439c58ce3288d19aaa535818ebcabf73678f27856da1507aea1df0202b01965042602c582bc9a3642ce2b04d4b0bb4fdf3d82fd3c4f4c99ac960530b04bf5fc3b885b0a5fc6fea3103ec3649f40ee24da9d140ca64f28cf0fe98d57f72fdedd468b27601cb5e34d34beee6151ed6e3c452925fdf6b9601d69ae3c36e9fff6d6a1b6af87b9a09c3f65e121e21d6b5d02e068098dd1394894e472ded09f085396a4a71cac238a878c215e7a955cda7f3742fdd1e2dc4348f9abfc46df4650e82373f08e08dac0a59ca8ffd419ca2886c891e88e41ceb85e10c57a915f14c79f5820ed8dac9a6bde0ad419198efaa1ce3dd2f30bfc82fb37103e7091d75c23ccd5b7d7fdf1ea49aade37b3e7fdfd9892597be68b47c912470b518667c28e7c8ed0fe339114bdacfc4b61ad2268929c0e3d49e77ea2a3a4469b79977e928b4deef31617f8d97d879293318ceb5c16ed2df4f1c0a7259786270836ed39ab184a0390e0d0d084c5313f9cdcfab7490c0f8df7f9fb8d2ba658aaee470524d96d90fb51f509ca6db5b0193f817707b6afe3faf49779c95976d57eb710498d9e7d4e1dbc7026a19d079bd8175ce4f98d07462f1ed85fd34101b213cba0cd73eeaca9133dc380031f6ebdac8f05eb29a4f22ba34e1a6fc29e5aad9fed9a74ad8ebb6463858bd894e390499d715c5140b5cb342effdc7184c53c33624fed2f9aa05e085cb7d68e7e3d425e6a08f91dca36e18c8061453bd980f41d85df2924f3903b1ca62841d4545f8ad8a4949166990499814a3db50a62730c88ab592be1209aeb8d2d5bcb3597d5160ebcc24e8601900010fddaf5842745be0b72359e5b90e6c11bcf5cad521bb23fcf452dadc00d83a9cec6f24184e90a3e35eeb3ec473cb0a9ece0ddb5418734231a399728a09387d82acd1690a66acd28ccde630704ca4e7d232ca5d37eec3925a3874581d181b7391af5d0adaeea556515a2a8e3b164a7b85adbf667992b6bff10356b3c3e085fd3d676d90bcd741577f000000000000000000000000000000000000000000000000000000060c1113191c""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
f91692cbc904c6920af9eff6f57b6134b45bda6ebe9ae873a39c1e0f4330b9bf87aab1b9261fba98fc8681bd292e3e83cdf26046b01439457225d4fe957d9fa30e2edcbe49c1e920e9b4e1da4144a7918c575673b5728a3317247c1c38bbf42ba2491adc298d3f93d9061053b72d2677a5b168927d1739bb0540b3eba64ad0ff3869c7ca75bcdef3e697ddd18282f7e31622773f49cd2de94e93ee48f947c537ab55ae7cf18455a3b0ca3a933b562c51515beee14324e51416669fb931e4289e73ad6180f11994f5202af25df3c01dc9d8aad259c310e8bb17a77787b6492316c1b38785e127683653c33df908bcde08f4d4dcd56f70d44f3e37cc978019d04ffe2b2d940adb6e12197d951ee44b1c6219d4633f750066e86d3cbe36395ebf0e41f124522a6bd13f6ba9e95271ca11e4f6ed4ff76c08b3d3449ef64585ba266255b9f331d0ef2d7ee81cfa9918cd806b88cf3d1eb2e2e8444238d78929c3bb8a7a46b54b346bd0597d9bfefedd0d9267cafd84b11dc0793dc4bc9476fda6f1ccfb0c07d494345b50859a686f39c3aa487b6709790fad1688703c27baa9c783b77a07686c98b66063efbfa5a8de3ef43c59760607ef2b775396f096e3d9e4bd4bdc30a28bb62dbed11a0f9b02c64c1b43d98c2da2efdee1edf36dd2883a67c619204f0a6317899ea0269bfe5c6708920401e78a658dc4dedc7b35f5249d706f70c8b6e835093cd9b7dcd3afbcd8a94cbbed4600d86d7019a9b96d10a7a0bb4be62169195ace3dff5ddaf4c18815789ef97bb91023a33c3044f14068553913af1726ab597c534ac7011cd018f4a85b6d78648a3a1e5ddb20bbe862cd31b603bb275738801de06fb2133af9eb60a38daf9591c03a6c74c56283f658ffe6e0758c3e732bd7c0dde78ebd95d71302f3ac2d8f362cb8dcb5e8df32924e4c508c2e0166524e9f183df5933623ad00019730d2e8586a14776daf9d72dec6e3643aa32ae33fa5657bb00ebe779e4e9489abf8f768b181826617893321310b72e58f751d7a0d85bf68ab81daf73389700b65f8d16c2b075d1ed4e8db23619e960945978bd2db49ec1e17a9b7dc62c8037f20c45090d7482c0f66a1099cbfaa74669a2b7ca33e009d2a74db56453bab247a5bc28454435ae4196d74749904e790bb9fcf0108a471278debbb1002c5474040be81778077d02595a6b55123fa463a84343bf3501405b84fcf3921ee4e58aed85b623b14ca1b921494b26cb1bf53f5129e1f2184dfbdcd6e33675c09b4b1af71415849ad88c8c8a39f28300aaf8eb394776dbe1f2663014521011e41ed7fa1300febdbb59923bbaf121bba4dd42f3811e5d785c5512cea5e2fb787b26238a97845a9a60402484939932a183995fbe89b34120a839a91732bd0e7ba6864073967bce180af23f6ffb12b7e47cccfbd32a52d28a4acacf8e7abffd727e8c586c93e72e246f36060e88bef41c42a4ee0fd3025e24e739b6a648cbf2211d7803f9c94e3fa4adda936e30813aa9448dfed56b8c06695ac3605fa8754b4e6f1308cbe5237e0706358e1fca470c60757b9880f471f6655d138cc1dea586fb6765b6e0c2aa4cdaff60a6b2a696aacd5cfd433fcc6331d2cbae3a0f260079b692055012a1b684996ab5fe9a12ddc6b6a04437311408f938d634be38437928406ce2fc62d000e92398e8b06ce73def5fbe7d9f3f0e63854bb65269c9fc96590cd312d150d8447444c0581a4f6f35aaa90e1370c6b676133f2f78f151f223ca2131f2d561b7d08f4f83b255d1b33b9845284310ed342bba58e1f3ae9b5285803c7575b0e8c9c3be2fa58ed1025d9e9ca20ef203e9362222ddc0009a7e33dffb4de33bbd0a0aa7187d583cfa935ce26890f63f97caf2afcb8aaa482b5b6dd0ad1570e6e008b28bd9679046b9118d187be2e7f7f8ad6fbe10094b1fad46f78f372f68fd870566afd524e39216aee752ff5f9fc8a9eb6f5adae11ae83da416b982408376a99530f1bab6119f472a1d45864e611bb2a474342000938b5f9612d876b4278596a00d3db2351ea296fc2d606ba494b07b0dfe846b04f9899af02f9116b415279470e35663fe7e32d3ff5a2162e9f10b1fe42a5d04b14a55fb658e86eee8ac3a2ad85a1171a9e001a7a3bdf834db3192c5cdda3b08d31fdaacd3667d3577d40e0f79f037f4538de224dd3ddc62232e50e61b2f3de62823d58437a7c7462fee714a29b5cc366617fd12bf924f86a3308f8e57609dec2031fba77b52cf2888df554f814ee984f0108e55cab728c7af61d1f4e4b12ea7d027788ab973ecb10b7d668c3e77f7ae1b4b05ab8cdd73b0722498079a246ebc7eac75e831aadef51153d9ccc0cf5e82f7c57a5c57d95f2e0f623c24e05a3e8497e3937d9b8d095745beb6dc6c7a9d20d57f89864088a1bfb137726742e2a82ac544428fed5725b4e78ee4a9c66ba91eaaf4dc7c6c7cf23a37ca8db3ce626cd0c3fb086aa2866b6ad8113e2349908dcf155426d1c208467bcf8eccbfb74ab2e84a9de986b16a3a4bbb822f5dd6f9fa0ac93c4af7b4b332b0efe11e66482215102e0ce72617c1ae45d6f5fee32b27cd5bb18416f3f6f11d13c75be821dddc55df6c5d736f44371456b3827cbecb9d06d19513b8ca24dd0ee4dd31e9a6ae9d1b1a10b10e5bd7acbcc562449da200aa2ad9b3c4663b1be48fbf0b79cb7ac43ffd106699301c4412aa7ada34d1166056ab6cf9e0daa73240a3b0bd1267acdec0b04d5eb48"""),
|
|
TestUtils.hexDecode("""
|
|
DBB70175E063054DDA24BCFCAF671F820D674F1D09CA173D4A1440AAF50F1FC8FADC1810F390286AC101D60507DD285275C6F97C0D2B2CF3C7F50609CEC64EB029C3DAD8B9954807E35D4836BEDF32501D0E7143BF488CD5B4D1A53C980BC70A3794E4392E4560E609B9C49900E1C56D319E1495D085440DFD081D1A7C52C0A8F64917834C64EF32A441C9045689DDD2EC218F58B3BD534F18309E1D780528D3BD1B23DDB3B18FC1F7C85324D45C3E9B25961FA5257EC31927CA35DB25E6FAF7669D60952502680BC7B5D777D77B194D0CC40372FC8F711EB048E01BBD5676CE3F2A9FEEAA4B5F29081C34969C746208E6F2329CB53A22058C0AE0852B7127FC4C74EB3A8300403F60B8AD1F95FD2991CE0C8CE452C2432B6422EFEA8AC0E1B53BC994C606301473D7855EF86687287BF56B450D2762C5E03AF26A987317C4BFB013A6BD791EFD141AB34718A37D1DCFBB63014F7F92C9E2870DE503452E271E9D02768357E3DEF6BAC5A0F0444DEE1FF5AFC79B3562C12696FEA15815B7D9BAA38C66919D137F82FE36B140B960E02966FABA1EE9CBAA04941396D665DD2C6B0559502577541AB0CEB066E066553A2DD407354123DF14F4B1DDE6B8C34E3264161796F48DB5319B3CDDFDFDBF5CE17BCB5924984143839B4EDDDAA8F0568ECCAD253C48D00687F9A07785A67B62D28B86D70E511AE08A525F66FB15AFD112C184785F91E76852DAAA3E78CB96E20249F38979031712440DB723B022E1323818431B897DACC51400DB25635EEE41761089DC47E8EA56DD0DF60B56FC682D000E9D660D0CF38C263B716359F41F3B190D201950E140D67F50287C09D2008664341A829A074F9629DABD88BE69A6058900DE5782CC621A91376E5CA31C66E3C430CD00FAA83BF765A2E6B2FCD20EEEACCB996FB5C4B63235142BD5FFB4390F8CB95BCD5853D0226F931C38FE972FBD0D6E10DC2CF29D1FFD2653CACBAB8B81DBE44A2B8F1C5DBDA7C56252E4B35888DFF7808B3514F4D7E5EAE9B51078E8D2E600EC57200FB48EF946F021CA8209E7DC6443B37D7281C73C6A3B43AA570398E62CD5ED9A34ED23AAFEFDB7DB3141202D940C1411CEFFBCED878C0D325E8CF7FDCC520CA3377BE97855827D2E6F4EC8786EA1374E006539387924161D65782C7B2C262AF9BA8FCFCB5B1477083836129DA973AB8B082324F74BC6320646448DCC8AB56582EC72EB192D3F72255D85FFAC2B5C62F245B73191A9176BA5A9FC0ACD3AD48D37E23EFA0C65F0423AB5CD0EB76BDC035112C7A118ED47C0E67E510A6F7A28F26C3D6A882EAE74BAE6CF1FD969FEEAF6B36C85F62D40CAA26B6CA98120D612598F360CA2628F6FD608F4E1E290B32C90FF71E181D4B72978DFCD189D857DAFC7B2AF8C958EEA6894ED59AD56B9AA6F83092EFECF9EC4091BCC9B8CCA245C30B54B9B8DFF3636BEFD417F46DDD2F6136B983CFAB532FB623FAFC3CC4CE8A91434377F4DCD1607BF04E431"""),
|
|
TestUtils.hexDecode("""
|
|
5c796ec117395c38a9d7fa1a02d81e3b51522aebf68f3fff55cbf7d584ec75e547d413562c4c87f28f57433cdbe7c96644619b9f03d119c7f87f0a970a46075cb8c29c506f67007470bb4843af6d3dd1c91bb3c2c62443eb18a69e675e3711a08dabee5cc1a03d35a1399755566dd2f07084a9039c7710ab57b380712b39cd6f3cd2098225785665bbb94f3761d5a8d431cebcb533cbee5afeba6cc877fbb168009b3f05f9829606055e71638b50f4c6a41b0b226134391ae0efae4cb1d2e31c782b55035cd9e2d0bb53fd72749de022537ad8f8ec49a297f9bc81d1ee0f5e6b96470d30d6b78f48266eea5d3d4805028f90abbe90232fea807b50323e722a42fb455f02cd2c6f5d932b9bc606f9509fe2b1c133eb12de12db0206d78b49154c34adfe204fbf5469a0a50301be999015c5798c567729b60b2690ed93db0eac4021d38665a3a7db7b5ad55d94b8cdc9171a00ffa3ddbea750e83e495f7db132fc253c82b6b901bcd00fe68f0277988a1b0b2cd1d051d10ee189cf971f79ab6d1bb641b1f3b160b4a4d095144d1f9ce0dbadbdf6955622a8b300c69ae67dec7f1b777f0266e71413d57b454cea0dcd8cf3c32b9bbccc36e1eaeb17c87734afde3feec5432a18ab9a7c6a1fb30e2e84af2c367b4f47529bf4e0782a26d41520df8ac3cad44d4e792af7f427c75221e4a5230e282bf938a6072574e23f4cd35aa49758829d521360db34cadf94f9ba90d5139179f877723150d4d6f53a5300ea3e26392399adb258bc8075cd19517cb70ed48ba9c61e5e5f3d245d45f44f5e6e033334dee3a95bff8dbad0a1f8ecedb431cd52530d7c2d06ebc8f1b80e5e30e746f9b3b3fc192e359119170e2216081dd908d0a5b03670cef41420585653521ffbdfa58957d06d7a0ed23088a5835690df344473f44b6213fa10832539197afbb410556b8046e06d814c2702ce1c50fd5677de3015575e42b78aea720270aa303e3a6539bf343c52ff933aa238770e7fda2d0d0702c1c7a829e798b0677c1044a7e4af1df817c4167909c158074a9933f364a1800e76234751e7463c78255c3d5189c2a3cce7c2e55dc55fe97131cd4255d92b3f9f5c888029d4b92ff3a544e25b80ac12e73c9a65fcf0b755ffd0a497c6113897ee8bfcff0dc8c9bd583af6fdb71523be596bf0753b25b47766d5be895dcfb63d7c7d9f6143efc509629d310dfff428a1d5328b5307edb41822695f56a09ff2202567ae1b80318f827e0bc29c5df5e4cb075f1d7c1cf2df62dc258544e3dea90239a1d997e52e568632e259def0bcdcfc6f9306c76558dbb30a880d41fcb4f99988e6a9186296e7a5a31c7b910fb2624a0400bbdc6fe0657865a6537131f0b0dd2f56e2d6e2201a843bef51916226577e6bb0e891247f93b5bc36c49fb37e458d363762c12b4b95ba75ac1b38f177fca6515c240c40007eeecea8dbef687a77d3c09f9b5bc5450231ee83294e5a8d0fa79430fc2e701ab39d3bd891e73a695ac6559d8a8b4dc4a6ceb7472ad032036e4aeaff3154099a6f2e8297c6e4bf121631b545b472ab316aa0a3e1192874793597e0fa0cf173a78507ea55b2ed0c13fb045a96acd9d9bf8cd5197f968efdd359bc4449458ac42e2efa187190790de076f56445f92a79be0469efa11c98992ec82e3a2ca311d76e282e91665f5659be663a33139e80952b444914fab59910ac08daacb6cfcda1dc75c00077391e2b38ca54c1e056968c4c41fe7201a3c637b37f48be5672828d5f20c06bbc818332f48e0a4c0cda579d4c114d0446896b60392bfb66ec8e4eb5c3e8932259c423025da0611e06b34209f35413be186d98f8494d18eb0b2d56aa47c6d72c5b57e2f68da8ec1039dc565dcd5c5937ce1d358d6c83ded381060647ddb52badec80e92a98dcd4be27a5990c85192e2989dc2553e3606f6e6ef8353202671a1f2dab2d3130946254a686121a26a29ac8553ef5a58d31f9607bf3912fd4340562ff48b38a12b7f4d8ef2e058c9c721467e0787aa0eb2ff53ffab5c2b3c40f52524d8ff1cd0df1edba1dcafcf983a9e8e9840ef269f9648d3ed8e7778e086bcb887c54e49c8848d21002ed58f163a6888b171a945a9269f410b3d541b07f7c83c0e6b80dde9bff6c3f6da1f780f52ce0da11c196c0493b6765bf01aaff22e44f2b538672b4db58a616e2d2a36b1a20a618acb6e7523546e61c8ec4b593407d0ccaa0ca85d2db46a6cf188939ed9583f591499fa436443287fda7e49602dd8677f171b487e4fd6229de805f4693fbc8f27b52f283fb0384a2994755c5a6c0ea99a8be6f6f743d05b75405f9e70d68d4904b258d0f5f3ad0b23d62767d54ec493f15bda17b34c31eb50210788d38ccd4490e0b65ed46e50875da092c35b0100aae8bc387ad595be005bb52ad0f3281ac662305e0a62ec6254c4e091b1fb0552398b9cdcf2c12069b90b6ca5d67ebeb22b6aba91a7ddd85ba31addb18ea61d98429e633e5296eda442264dfd6bafdd3f26c9d6cfa7d8c89f273c4058c7b88ddcf79d7cf5c8bedc4ccd69c4b545a0069906c12c0b5dd5514cc1d45a50173c4f51e0cb89e2e56025539394be823889e0b7cd3b2563f756bb6d95336a22a1f84215915507708fa18e425a6de61a7ac74689bd85bef8aee1a48226a96ac318bb3d8fe95be46eebfda3662e04741f93995e5c30b1b3864feae3b476f341c473d449f3d675c3335617a201e992e9e96d35640d0152587c7edf50ee5542164e12d268c0bdd808ebe067e4891172a4d765650decb3e9baedae4c39834b5b6df1c8252a9b588c30b25167c543f389f4d4db14fd1319161453311572c85bdb5fba5886325b5118b6bdf774c76fce3de923761e22054867a19a06e2f84463a737ee6b4f42cf97e062db911ef8dd2a6cfa15a4698ab96c9e70c7823956665386aab0ae235b485391542ff57967b67274a4a308818ffad47b82051e674ae13ff73a111c5da089500f14c7d05af77d777c612628b157f3a921bf8b0cac0fb426866833ee35a2176653dace88dbd03cbad446bece7c6177373db768d561aba1d86ef2a5680f5d71e2c4e35832e8ca69de760893f3e6dca2e9b39dfbfa2bd4e1f3c2f5ac06e7b07c9c3c85de16244a273385f9014263614cecc9ba3bc1679d8b2721211b7fe7fc96612abc39312d8d05dd530e9e6f00977bdb27b0632eff254f54213213f608177334ef02f79cbcd5062c9b50f9c3ab14a8fb019d0c2b11ed1a5f93d769d3fa14eb3a7e2a96c738d1a3d62dd49a5dcb34ddf6944c066ed1d4c662752fbc961eedf9606c40922c43c543f6c79cc4e91432d652c6ee492679f84ddf1e1e6fb885af725a63168a6c6eac8cb180fc2b71f8d83112b81b168e96e42d3f069b69995c351c6b2bf1344f98c5fdb2f3fc503dd6ccf5cbc9a1bbe111ba2380bcc2392cd3726bba4afe7dc66a103a2defa50516d7d0d5bd058c7361bc6a81379a6c48fe76e81cccab97af3cc2a96d4abd8d5399c8ebbec651320d66019aeee16dd9e126a4f6b16ddea40a36f2ddc9e5d91bf8d5a39cf7069ee917c23770c18c54a5d2ca8f23ca2c9d21f9003b7381c077b7607dd3e3b0c34cb12c77ef08547501085370c6225e45c40069c87161bfb45498397c5d714c86442cb1489accfb34531a14199cf29e0e611f4047f22d40db532956a20c8f5561d9c6120a80507c525dd8584d60f41e999686096454475a2c92bef5880e554a09cda2238323fad2827d9ba6cac319b01d2f89d708a593d660f9c19499328167c5843ff20a17bf0ba26c8418fef3ad764a865f471099708048a624c39bc7ac317badb19226d8c0943e0fb8aeee9789c0ab6e43f932621e89c424da8a6eda10b936218264161433976904836c0c913b5a0f2fcd701ae18ff8309f583f75946a02b930c897aa85ccd239ce2edfc7dac8689b8e678b620cc853e5dc57fea9221f3c5ece3a1484022934d9457b6d3a34b801baf8afa4adf307a8c7b6092168dc5fc35393f772b576345b2f6e1fdd9ccf27452174b8ef6bde9cfb37dfedc43755be905373f54e13a1a40c3757a15bc36aa21657ae4a64a16bbd4463fbaaf69cf4778306876b62abd4305d753da808f0728c3f51f838b640be0c093b732595b153e2615da3c0d5ce5801322689ce85f91767bcaeb81cabc3baeb76deb7154b79528766282bbea6d026687d2f823fc25b97ae523e1eecdcbebf460b447b1a2e677c0215fbae2da1dcd182bcfdc912b94c732b793588ffb0d1e118d02b093a3cffa510d159ccc74ceea63ed881ca79957dda6db1329c22c10a082baf48fd6a2b635b3f1b896e77087734528d0943da51d31b1619e549ee1366e9df05d0a356aae84cf8f3d0c8fd5ab534a3524be784eb0208501f17e3b8f70a52de886bc691db2bcdeb63f7bd739fa3dca52e4d44a7b6b57564f17076104da5169b46d47bfd01d2610a9fe55129e6249956233a911eef491d9c5877e55585f62f1d17a84bebd25738d11d830c2bbc5b55d7fc60894f4db0bfcc6639277d290ebffd8a02e4d0593f65223168240e528822a90d4fa94febfd55e5562fec1f279af1bf7333d5b8b8eabaec3ea262a40586d8ea1e12b3b417789ed00010f333a787d86ced10a233e7385c3d4de1c3450557ea5000000000000000009111721292f""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
775194fa9e30c689e7302d8c2fc00a7f00841fcdae64e399a53e0be695466306a8c2bcff2f1de6a5c7b2034f2581179849bab2b4166de1c203dc8c85878e9309eecca9cc75283fc90ef0e01e172630a1fa8075644c31e94da3d541eee7e08a1c3bcaf746798113c7a7d70f4eac26fdc630b692bd734e5a65b913133dca7d9a432e2f1195d4a76a6a011f2577a1699ae37852fa0ece9f007a429411282115ac4d55d1e7f073758e8dce2d93e2e81a857985a6567d28a155a0cc1dde48a3abdfbba3e562acce270827c77421780fa60556ccf9764f636cc54d094e19155267985d066b8af7a7cdbd0e76e18324bd77d92aa27795ad2f9abb5d68d0f768e1b124189b2078d133ac72cdf4d9d697c24aeab5684386c81dd11f5bff5039c0da8fbd0143278660abb563248fdcbe666a708ce2988ac38891a4e953913fe544014b4f05f75a92b14e29de39eb008b6b23875bf02076518036aebe85bff546d326d9bb9f7226271f5f6b655a8824029acdd548c075107e8316c839d9e4f94b71ee49ee62101c3dd49960eac7c6bb9f113bc7ae4975f50dfed974dcec3bcf3b90c77211bc4304ae5a73a277732ea37247ae7410858cfb053316ac2426bad05c656c6fae3f3c762b384cb6a3626dd14006e9621d3615249a61e39d665f516ae5720ca55f5a52aad68e5217a0ea27a8a02a4c502bcce7d9f80d5ad0ef395b9e55bd2b6f0fdb12cb7817908f2907f8a625e65a13d7947f15fab77009aab91ecd20964af49d008d32fab27589f393a36c088578f7b8207298cd028731b614ffe2fadf0b25b940cddc8b7d80c3885f437789d5bfe7668d51cdcf0db684fb4afa7506b828aead4fc51964af184c63e94424520c99a44ec01c1d7074d09ff0bc8408a7a6cc9b1d6af804794c4d81f71828e3ee97901f92d4a8ce677744492e15b2499ac9424850bf89126d8e7e895fafc2581ae1b593f9bdcd1eff97ada3be693eeb7316a6b41ae9cd719d7e1b0e9f41ae109a15ce1dc9407d01941826b7523e2ca34e8ca07ba1e94ca3ae63207c6185378dae26e4c675a676406eff2e89eccdb516059edb647c79aca7cde5a17f592d3334346b3148b34fa723f4a005a0d16864128560e805db41c6eae80fa1d8f0a07ba509baac7a10d0d34eee421a01a4d752853bf8cf5474109dc49d0a2e25b08cf36481902f911031fef980c5cdacea31f22949009c540e033e21495e740b559b3065a1ea6cb602979f331000dd442124ef0b1be09a4bad6668ca435c34c2a20ed8b254b12bf84992b43159efaebb5bb34a8cdd692c41be6c88dcb42e802f01d3a1ecddb061ff829487a3f5055c6aee621a811100ab764c7a20d662af257bb0def598e59b5d7c3f8729e5dc55535ad77e611fb20662a30f8267d20d8f60614e2a71585dd46b6762b93696bd012ed319e7c8f65c253bdcb977c063499672901214616d8f699ff0b04fc074384c648014f15225e5786fa1534cc85202db0213bcb1e494fe0da6110cc806f029b27625275f9b5bd783e86e494795fae430a042f90485cf18adaf974344d43dfb5ad13af1144e85ee57836702b2133774451a7d51007370b8d621f155980a417789537f7e1012ad2f9c5e70a579f7affb84e3a41cbbf33a1dc197776f816dff08e2e0f7e0537f4fe16589c66fd28e36feee9fbb959e269fb919f07ac55cd424f6570a55bf0514b86db71bf626786d6ec56073151b97974ae857eb651bc6a3866ae5fd61fc16ae29db7996d277b7f6c85b3d78928f4c84f0789348bf122768e7b17577667ccb5b7bbbbe5373e1b5aad9c3c4f7f3f1a96d6d4e42ced4e18760068a4a667550bee909946e57d5fdd66e92cf2bc195b5a2b2bf0214210640891a71f7be9aceebcb9cb463dd8b02190ad9aa006413c2784d468a2730ec70225c2a8eeab4c12bee8cadaba579c3db5b3f4dc210994e1bc26c8c548b9ca340a658368a405db1efc98114e24f2cd20fc8743261a262fd474ee6c7f254f89f0cb6c16161202342a8d1aa31e7d8a829a7e1c980a62306e7a3032f4addb96582966b56b37818875a14aa80457bb281a87ce72a5f90b0b30ed57cda8146f9dafb2d7e8ae79e8b0067f3323337c799aa849779ebf718ab52b8bca6a660795ae5a4adcab49f9f5555c1241100962d2d8f1c78a330b5ddf49bca2e06baf77d8480fe32570dc55cd009e94106de4cbcb6f0efb3f9b41308a5ce341c573ef085735667ab20ce51320df124806e7afbaf9cfeb57ada0aaff578056993aa5fbfdca313b1b0142e9159f89f25def669c8846feb01d2e06c6a1c1c4faf302330fa223ec9b52ccb85e284a98007e61f889bba87dd520f2f9d836741d01112928363a1e968cd77108fdf0b8624d5f01cf4af2354377e70c61da9ece5c40e8bed1b62da6a3c9840975bf8854f075812ec58c4d814d7c0d0686438b5d9a2bf273a54be6930e336928fc04657a17865a073c6ec72f8eac813b9e944edeab724185c75ab2910ec4a9b47d7abbdd41865936fe5cd7778bc0fa0db378c73e404c96f093123b183e5d9da04f157990bd3274892681d40be1387f96776a272300f2b3ce6d581a8faebbff01e6e0d5aaffe8f4412cd7bf3e593170dd0e3fb42cdefb4201e4448278571ade12a62f6ec6240951ee8e731a0f600c7c008900818bf46a585d64fc47d9897abad71a258a35e4ddd78607b175b60e3732ea47ec5e06b1cd47feed7f4116cee6e0c815bdd06e72c9206700e10a60deb5f2a7c03"""),
|
|
TestUtils.hexDecode("""
|
|
5F8F32FE68B556ED1D2EB8D2BC20AA36DEC7900F8E5D4BD3715419B28771E5B0A080DEB2F3EA6CF415D40EDA46FCF8A439954471B7308D3E4226E9D5A96BC22B08FECEB4C5E3CC2239473F1C9B8DFA5A29C31D499CEEAF6E34A396BF0DA53B54F1AA674056216756DFE15F669FC2E1D8E6F67BE5BFB3D5703F25D62D3AAB0398AEDEDF7C65E051A4A8DDFC725EEE940BD0D06B103EEA32D027CC20A8C61034DC54BD5533CDB1A85107B9CFF283FC3C5FCD9C3D6F8857560311AC2E0E31585E77D0806F9A4E61A70D3FF36895ED447C55DB52002488045CC358A39475BFE8456F4FBC36005218B2CEC1C573E41BAFA7A622EDF776C8AD340680C1B3002F69D3B3D8844494EA9F42D2C9C9D2BC0BDD850BA3C4DE929C1DF49351219F95EA7B9794827FC1A1BB4A6A00809393BC41852820569D7BC6FD55339925FFDF55A0C2655C85144234FDDCA91E8BDCE8CFB7199330763F5750D71CA8C4B3BF7E6469F5DD68624BD6D5B69E5FAEEE53E3A61AE659A364484B7D2BC8A85BE9F8D35C8B97716E8202B610BDF878C1BD83187F7892BD861C09FCDA64606A185B93CD2F601C3107D35B38D76D75AD6023AFDD95E103EEB7283379BD9E44CABAD923856A599B719A18FA836749E5BA95C79B1F2F1B443CE1FD26CBD2B74A0156C381BC270B74FC42DFF8D91DE4ECDDF3053007A09B8E3C964B90DE55DE5193F218685327D8C0C6CE3BBABD57DA8772DB7CA9234A3D19BE16A895E7D14337FD9D50B4A556C75A9D287B44BA5AA4E52C3262218DDCEEE3A7BDBE1B8175E84113F515623C07BAD4FC0985112DE4D77D31290BD013562D12FF8CBC5F2BC463223AA82991D7D60E38037578BBEEED70631CEADFE49823EA3D87EC384B3FBD4974C474FF9D47F467110EA4F3FD94B5FF38D8FC1C75392896394671853FE71DDCF7730C70ED26485F395F180D2F5C31AE0C2C20691CB4BC81356225E6A72DC72A1CD3502E42C22B594118D131BA5EF95F2C18B3061139B047A24E32197F89780B91D36B28BB5EC6C03232A3CDFC5ECF687BA5701F3958FD87FC0C8D09825E8BE4E5CE9089C674049C38EC5E0FC1AD542F57B4770B6E5DDA215D319DBFFBFEAD9141647A508E271CF3B0DE7C137A5AB999CC88082FF0CD495F1F1FB1E367B57BB400D8697B4620B75FE467D9B8BDF9400E14047576B3AD6AABE0C0714686015B8A963A0DBB68CE9E41FFBBDD5A792920916538E4C33F12EF0E93D249E562B71BC1C252E1DD8AA646F8C7B489A2BCFE7D29A6D3FDA2C21DDD78179861AFC766F6885E9959F753C66462DAA6E01C8B06A6F581104B583F7A5B1B4935A4EF08219FA8D114A963F3FF3AF22C3D1C1E3927AEBC886AD0670FC89C08FD4DF68EB990A0F7C51A4439C32F5F51785B20DC82586940C35D80A91865C3154D6C925250B24D4C1A9E76A267711A0813E8CCD2DDE9748FA0464006DDBA963BBDABAADD377239442DFEC6F7E8098604645D63AEA080C1F749CAC589F77B4AE0955FABED757E6576966D539FE1BE5965D03882279B2C9B6899205C9DE8D0B1819DA8B5426E573CE785FEDA3BE95A18A667AD5AA8FCE7894BA11A44B266EB7571A93CF9FA64C1132AE07F0F24773C83DED2C2885D415ABD96A21A0381811D66952252786C39EB68EF0B9B03BA7E2B66A49BC6CFCD8097C321A932E5CDB11EC6E43A8E50DDE01EA5A28F08F5047C67C988E8B4A04701A0237330598ADE8EF8F801A07F2148B44E593B0ED16DA30BF37A341073C6A92066645BD7042C3A59B374FDAC00F7F69BDAFCAE5EC0AE65FCFB785C93E49102F5A5029876BC23B0FDB7FBBC376A9E834F0D19A276BC4E22FEDA18FAB529F15570AB674B844703B47D726AADE3AD4015F52D86843A01AD5DF086E07A71A0236765DE6A777F94B1D69253A424193FA9DF54899AD9915634DA23E6DF351E9608219684EC8C8C949E900718DB6FDCD144D0BBFE1079C1BAEC516BF60C1E24B8EE6DC380F55E0F65DD64025C937EA89FD12F0404ED0C03CBA18CE2FCF169F9A1EC9B96830FAD0149D4A90B13446347CE4E5C6005BF115385F1D22EF6A7E40EE87847BFDA4CF7FC3135C4164091F49DD08389E1005271E9AC76E27B0CDF360EEBEA9C08E233CA58305CB276A8BEC9686CDE0E2DB5CFF9858029F3A5A42759E4AC6DD40AF9617CDEB03FB1F9D7F112A01B87A265C4E27BBFF596695F127A97E1558A68BB5EE4EF0F44D20F318FEE1CE988051F3C09AF6E142932EFE970C1B0C07040E7F3DB9BA53BC4AB1433F7A4F1E480D920C23A07223D7E43570320B3BA590507D580D29CC3A8C85A442BECED5880350F9D2B1AB5C746C1B9909E446D9508D701204F2427F41E043A78024EE3F60EE19B71B5BC925A2557FAA8C7BAC7E3405C920FE3FB3A1BA7C559BD75DB1E4169804B6627AEF19AE6E41B8A40CFB977C1AF53208F4D775A48C220A756783F41E13B7780328992947D215C5B5682DEC76CB035B41C007CE1017EEFBA426EBC423F710C1E962528F7636F200C2E79D8377D621513BA7EB3EE5A0DA55B81F6039D2E8BD42EBA5B2A82C3F033CFEED6EFA7D970B1460CEACD13A0C67AC0A7EBE7963F0FE21D20B2A82EA922FD889253B5D4CE4D47698D43AC11A8F4E1638AD3A4C179C522A3ABBDF420DA3E89B9FB7608822904944CAD615C62B28EDB15D3826D33DCF9FF9BD5DFD8639AF4CAEAA55F9F8409B4E5F70681BB7861F88283218E15A4282E199BFA12360FFB9BCD68D9BE5A3411FCA4E8279562F595FAAE0CEED4FE675DA4A8FF94B180AE9D0C8C687650730F05715820F67248D02EAD4C7BC0D41C880444B94CCD60A66A1C9B5B6F6690A2E1766EE10B5D03AC16F175603A1B9D49F97CF3F91932E97DE67CB523A38839468EE7681909CE997BFE5EEB364B472220403EE4A9AC1F8A4A8F78AFA4D9010A0127C0A75D3CDD87DD269F19A47C78F696218F25AE8A61073644A4F791ABBF1B180267AE41DD44AF65EC6E0AB356CFEE86095B64F4190D69D60284A1EB42744C31536F736AFFFFF186833EBBF43709BBE6903A06F7F06E8776D2AE41CFCA33A3A86342BD11B67EC10F525563A1843C8443546C1EE61DAF7310802AE9C00F44DBE7E04030BC4D0F53AE2023A7647F08A0BC6F5013A61A84E994FE0A20092DE133FABAE3AA24F8F3946812396B0643721AA13417A2423F96CA8A6529B0E17766E88B2AEBD79AA9D4D31193533CE50E4EBDAEEC976F156D5DE5917D54F9CC0527BB4F1F795401210739A42D10A0242748DE5FF6B50932B507057EECF8A1E37800223378642DEDADB464F5CA251D73DCD28A1E3772CC285A33B34C6701B585FC03C94A847CF7B16616D1C3DD646669546D80A27E9DE6424AA7AF6F1694037E774259308E71E15D7408BC1EB517CF0AA2C9E16B802CC8553458BB66D96CBA233487DAAD6E093235D901CF46F31B9A060D88DBD0B7380652EFC73AC1A6BB5E434EB0394F1EDC937E9A99A3867EB71D6E19622137B009D36ED7F9890187CCCE7D884DFE118AB3682EC08CDA8BA6DD4B79C9C18E7438E6914DC1C403870A540B74244964CA31E730A7D7591E42569532DA8094559241F2C7EC182FF8BB5A3F88DFCE3020D8B8CC0D1F54CF67FFD3A97CBA7F5EC79333D9A545221C963E0685763E59F1EBD34FB2394727896CE638E909AE6DFF41D17EE1D0BA036F8AF11335A8C1B5A0E9DC58EAB9C12F46740493A8B5AD0EAA73AF462BDF43CE44BD0973688D9C8DFF8FED961758E1AF88FD5D249FFEC179FE5AA1D135C0448D80F4B0CB68492CA399A3916A2EAB684B44E407706CC3C2F48972BC9531353091F91B427FA32693906DCAE862F34AEBBAEFD30666523EA9C27354F2FCD99A6E810685B51965571E4B4B5AAE158636497B6F952FA0B73617AE35A8D7C272DFEA1CE06E983CC65A501F73BE9D69EDDE6A4A1764DCC4B74EF09EC27C74B677920AE8C49CF4F18160E04B5AE7EFA8D5D92BAA5E4E547CC8AFB9D55F1A9DA7A6AA06626673431889C9996BE0A473702450B960231A617DF4705B07B47DBA1BCCC0EFCD5713F88F394EC4BFCC49EC24B76D531A356A6796785D755F027C664D8966B5CDC82ADE776BEECA8AB0D9DB6ACF5E841BCB4381828DB8F7358A637D04D97598A8B3BC823B891F5EB6ECF54E6F9200C380813FC3210E68894A656796C9A5B780FF486E6A93DE055B8F658FEA17035D9C212D23BB5974E1161E4F6041E5AEC446D70D52CD2F21F1A33C9938032487D9ABA74C448EEB8F8D51169E8B848242F5C769B471F0AF04E965BB0F4AE7C6F7B4AAD4E283DA762DFA49FD01D21887ADB28781FEFBD931AD8E2A26BBBBE5D88B52E8B7133134CA76C6648EA39E3D2F102177F4237219E06CBD05174D503C9288EC9C3E0128A824A7ABF418DC45EEB3A67777F74D6EC52891EAE0BB56DC756ADF40D39151E3A68719C563E99BABCA4C785BF4C2BB1BD25C7EEE22A8B0C1E90B948FC3A691670E9A3A331320CA4416B492907C3FE70AF9A2E765F9607EE1BB2CE52D2DB15F5DDCF59BDCCCB5BEBAC2784FA0896BEECF38C24022046E5DAA7607E8D2DB8CBC65541CFC6A0F20CC3AC5EBD4560BF5E9A3FFC0BAE917B479D960ABFC99EF84A696CE5A95720FED90F3AC58D77D48BD5573A0D85681238AC0EA8F0B58A01378929C691C146068897C5642DE74D79E08E5B94B101182200FB3E2BBFEFC8B44D2D1203075862D77A184B25A7790D76D7CE88C979D73E599C212F04A8B01EC3CD6CED3B5E25487957C56BEF6AB4433FFFE6DBDEA396212A6870284FD1BAACD5F7A5D9FAB90D5DA39D3C5F9AF196D9C46100BF45861679A7679638BBC8E5B5A7606D863478B430BF2C61F52D3D88B0913BF12597620D337DEA52BEE9CC8A1592698D23B23815C596981152C99453FA16800545EE781F24841FBE5A3E5AD8D08F2B898127AF40A681DF9DB68681533C349109C29D19311BEAB4C2F2DE97A5345EA7E41CC0988B2042925F1F9409D947128CE1D38F278863385A19B2CF8338D0FF31B06FD865B9167488EA157C7965F4679286077894660F17BC7289BEFFA93CB7DB990A0E40D998945A77E536902FBAD3C8A278CFE0AC883BBEA0B20E5D70EC6E10B59C2449CD1A0B55F8252C91CDC87E70E72FEC175D6D67BD43CB5AE4EE9C7F9476F4589E2BBAF89E801D5E14458F8A0B96ECF9F080E5150E2A5004C5A89B735639621157C4056DD1106CFC727B921D5890F37051E2B906885C1CA3999C18FB8C9FC9B652D82AFF074EECA9976D612ADDE990DEA418031FEFC4E972B31CBCBDCA0469E3966FF6F97F9788650298DB71CEDFC04659D30FE673602659C19A869FB3EF4262EF3FFA9E3FFAB1A3FE7670061EBB0D49BC60AD0C774913910E26E4213B76DB72AEFA3CCC197CB6F6DF773F86F12480B5BBC2068F61E16D1C0C141AE6F1811B2E0D713AAF60B90BB2F00EEDD4651FB5191DE5A246A4D8F3E9999D85253FA705CD4B94A6A64D9E9B6E18BB6855CAF6B991494A8DF75E56C2A427883E0C27246E5854B8DB2EB0FE639BDD00AD678D1B61D799AC59ADFF6A8616B357A4B12A786EB612E5613CDE533D92E87D51D47D860BCC39687485EA814DC5F5A971EE915C193ED52AED98D7AB301E32342F3D207BC03546460D33B733E1008E48D80E716FD717BA82403DBB520246AC3BC9CB91CC0ECDB7E35E6863C3C11558A8EAE9E1DC49FBFFC0F92F397828A4AE7107785939B96932B9EACB6BC6D8B3A189B5D3F6B0C7A3A413054B25318792AEBA3F4C77629F1E8CE1AAA98FFE1EF50C2E60C11AD76EDDCD8EEAF858364ADD637AB97ACBE4D2124AC0AB559E85229F1B5D81701EEB1D6834FB215984E9DF3847392EB29D2A428DAE7FAC283F93C8FED86FD2377E8216922D46A51E628091F6F8EAF967740B0EFD84F002358D3ABEDA0993DA16D0D8233090A2CD9C27D78DA0A53962FE7DD282B276A30F91C2B734EAD2CCE5E03137205BD97739F6CD75A08491D4ECB22591A6FF840B5DF123FCA7DAA98B11C85C1F8591EB988024C206CDC4A4239E7A91DE75F49541FFB6D91BE4699C0C0D8B4A44A8204F7E90AB863C3183C2270D185643D6A7165C1D043FC5108C340650F38A8FFBB13BE4BE68858C50A2463F7BE998286FFD0F981B45F5E414FDE71637D6EE77B33E10A530C630D63F21A212E844C2F7A26BED4F7B4DCE0C566CBAEF4EB4BDF2B53E743EE13A845D3C7AD5E9525C50CFED35DAF5D993B6377CF1DFC5236D51151B046F4904A02D7D51B6E331754B0E3621DE4CAFC9D8F7247788DF0EA7E6141FAC4B24608282AE29D594CEC0C82DB05C0087AB377D0D504F64F1CBB2D9F3121087AB6F35A70ECDDD15C9AD2A185C16333BB901CA069BBB0B80CB6F505FB3F382CED72CDE60FC050241B1D32818D11AC4421B66CD85D0F7B479C021AC111F8EE8F1C60B2320585EA276879AFE4034DBA277806FEEACE548CA0A5D36CFAE7B99ECB0236CF4838254A20A13A2DEAAF201B09FD027BAFC3F0C5ECA9EB5850A58C6196645F051E57B82AF4B6C2DA9441358BFD2412864950022A07542601631A00E27BCE6E203B1D3F1B844CCBB2EEF71A12AA4E725188073004849A225D733C77C068B0D2AE53E0DA6F759A8E7A5486C529B29A3EDADA69924E7DC200158DB4B612C62039B321CDACE8294DBB1A56ADC685B0B0122A4F3DE0A264F47B00C903BD30B5E4281B0C75DAC5C48E18BB0BF642F8C2CA194AE56CF7EF3B4529FB9271774108C61198A6894FC9FAF896472D1CE78DF00E714045C5F7C77DCEA45B3ED5BE5AD545D8F3833206340A5E10DD3375BDE0A068D050CB4C87E0BA95CBACBE59280BD5CABCEAFC88F5C05E3D8DCDA6B15C487B62B467E093259230D47B79F36572972BB78F90BD384255CFB1E4F1DFB7B5360EBE1230F154C3645A7A233FDDC472432F6C845CE86B078D93A5BBA3F8800C5313593D66A8A103B01377FBC5C6D5FB8A55DC71EB0BC9904B24BAD2F505D6DB5640E914D84FC71FA058902578B72C47659AC07AD4D64C3D28328D2DC8425C4039EFB2F20E3B954BD0B0483848F2C2D9528214514510CB0932F7506E9B98D0E891D8183A907FCA7AEC068B9FDF7F3479A128C6982BED19512A4271D8B682525B5028B77D6B6301181B403E5F62F64BA3CF06F0EDF321114855839E9198E5BA2A65ED952B2204809215B9BA3C366FD5C9D409BD71ACB748E653DA82EBF617D2D57C74CE37BF20AD8D789DA53C086423D86F94A96ABA379F3425554BCF92F82FBBF5C2A15947455D7D7478A84BEC6E3B9FAA14E425D2C8971DCD157C1D9E210620E891AA4304CDEC54BA7B3352556C49A172EAF19919184CA005A526349918F9A7CBFEB83510AD899BAEFD3D1F689DC3F449153597C8D21FA1C7BAF18E689B51F89B9BEF196193B7A781B96B38B9145AF7338FCFEA109542BB1719C9C8540B551A35F733C394F7831900452C0B8D36BB90824699BDB587EFCF5E8410E4ACB8ECAEC5F96E74A5DD3DCD4C85720064A14028FE768041BA1A13A46CD8A0D2C4D09E724591ADCD5EB907038853D8C92C5BA7FF57D5B54B2B324073C7CD2EACE0C521254E9E5C0CA197FDB3C1AC73FA8EDA729A858098E6F5EC11A19D4F655C6DC9AFFC4E67A49EF62D80EFBCAA383DD3DDC22C2A9B7590C16F8CF23D52392186B95EF9E947D851079C35FA11595682DF4EF4D770EB16CBC3994326B8AB3B2C279149122D178BC7B53318406738290596449D797F61B3D0CC8B11750F8D841FDD9D333A5FECC67CC7733824BBE257D40E53B43CCA19C95ACCA8FFF393533AED57D423BE0C38584A81689248BC7F78CB7FA4C94A7BDBF3015B4072B83748E55ABBF4A334AED679D89E2F18BE1B249B3F61363C79AEF6E1FB09D1948610F77A9927AD6D57BEDA02BB1E77415DD7FDD3EFC683AFB1E20C08284B620EB091974FDF8CEFBCEE1461C210E81E86B61F2D5D1882261D60D60689E39C81B981EAEBD9A42E608A34155516E4E385B86BF0A4AA05E3F99B6B3B7E401724D1442A45A696A189765BCA3240111E9259DE161DADB4E0ACFF27818C631A8A2ABD752773A83DC29CD619A58556040A7B27CF56086BD499F8B8D283683377A21BE120374B8D4561AFE781F246AD987E828FB40306366B4BF4C0B4B909ECA91DC85F521ED5869A2F2AD58C74B6C959AC71DB6F11503F026DFFF6BDE6BD70363B5B38BCA0590A5AF2A1054209A36B41B2A671293F2805568400AB282F783C356DDE30E0F87C001D9B1B9716A7C4021928253622F2DD156B3C3038A077A5768AB8AC070BBD9467E9C9630754934186BDA122CEA503F5E274EAED746065CA81A2702B582E82A33CF6CB3917D451FF59B0909E6BF847E6B610DA89AFF98B3323E1385954EDF1175C0C1B158CB905BCFD9AE7FF9389ABB9FBC5194A45DEB0570C58F31D914F9941B0242717B243ABCF5A20676051978C16FFCAA8ED2EA23B8323CD58388860DD64FA39971F9FAB83A4B248EC8161D32565917B7E6EB4937B4743C6C236E75E1747A1C83377FD1D927D385D81A9EA7F4AE5034097A0A77E2D2EB1943D3128BC0134F2D600ABB929A5281C26EDE1C12CDC80F8EAF2E893091EA274EDA1A246AEA3263E43D6C60043CFF6282AAAC620A21B523783E0CBE33F78C89D00EF8920CD53C6EC0E83DD7E1303D9B6D5280BD2BBA26376C17099758F34C22054DA031C86CC50367C81C3059114A71C565B1702981D77040B0FEC1E89436ED1896E93BA202F11ED2BA4EF33A76F86AE8E23B8FD064C8FE894244C97BA7BDA6BB56B7517C236400F591E4F28050C2958A7A79964AF233CFF8655F1603F6A0C7ACCF440D0C82D5528876721434C163D86858B02C6F6A660F53B3E45185FC7777A629C3E4392AEE4A96D900B0F19783DCB6E5028B6E56E160A37D37FACD7C3B992773ABC8AE1ACD6AD41E7340CB198C9BBEA1CDC185AEEB51E2620F0695C2691A29CBCA8E23328E84B6882A59A8C3C2A273CDBD26965564F1F1DF0B2CAF83F30E782C049DBC00596BD85426EA90ED30ED8EAE8A88C0D1363E69868E8CAE56E8DD62CB36D9A15150FE567DF7DC93CE78706BA983885155C9AF05B5FF1D0EBFD9D020BAA9196D9C871236DBEE8A703BE458938D3C882719881BD49476386387DA3508780878271C0DA821BAA1E9719E437BEE6294D8E4E2483932D0257B44B8CCD8C55028B3B7D2BB3866216A7F52CAEBFA0FBAE120609F95213BC05AE24473C98C29F4A46D985336DF8305787A0374098DB279EF0E34E6DD79BDB106EEA24E4DEEAB6DF35C58AE73FEC926174E0942D242AF0D30825274FA1D510D1C0C41FFF59A4381CCE5C6B89AF30C41733EF42E76C9CD58DEA7E881706843BA04E3A170304C551B6C801CAF9B8DA52913D2DD4DC755E0BD7C723C4AA5B001D9855236401C1014507CCB84577749DB1AF29E318241D91C4B23BD80549CD1D6E0D793E966A8A7B755552F16D3A1146B0CC6D92C8C90E97D7EC8EEE7C365697F93AF257BE24691E41F2AD26BCF47D52A1B80F5BE1C658616537630088CB6E227B0EE6EB8DB2FEC0284E58202A73CF3AEC16BAEB59D2A6E0257F0ABDE5926D9A13D89A8B2F69695BA3682E87A77DE06FF54892F56581FB16991654F60EA22856D6FF9E0BE2C4837F0C1F6C54E840F67A75185F0DE9439AB1E37D4FB3E9757B0FBD17C89DF8568755567C390032DE93E9C93E6C89B2E66E9E9D96616919D9FB461F9F33"""),
|
|
TestUtils.hexDecode("""
|
|
02dede66fc74f94ce000d6c4898fcf4464b834b848d2bb2d98d3a5862ec632dc9636201321c793ab26e4a42ae4f13debf105d087b112849946c76b54b801382b9727d65bc732a5620e8f4f158f0c1737b0e4ab8e7404383f76c848b36f58f5f9d70ba14a8ebf622bc848a9bc3e116fd7b2627c41ccaea47d493ebc6d3dd167f79fc6ededc36c809ac87e77ee1b006e96ccccafb88d965bc1cc15388e6410c68a74d72b6632487c284fbfc10135da29f29264cbb9ef620c2668066a2fa80fcf2132e93a29383e56c8bd89b3aaf8a905d4e60c6f8002132d38abc3d3c3b6fdc6cf508c8f6a7cfe9f78be8445f00a13414e41c27ba31efc46d0e028b778ca57b2326d624e3af6be0d4cb2a80e44b3f1b83bf572e8b7516b8e4715376e5da06bdb7d487d6a2d268afdf5654023ef4a13aaee221fdf7b9a668b2f4e1858da3c1ae3a7a7279163ca9c1407e8c0fb69f0ddf75cca64f4b0f277acf9c469dcce264b8f37f9918626dcb4252391526ccb4f068879809a2b115ca1d75d7a1ddbe5c8261531a98494ff634dff81515fe3ea4e289d75631ded8b8ada415f6438ada0738bdf9f89e986dee9c80d82ec13aabf10849dad939e81441fb063aa627c4e316461fff15e61c85821bdd55b2cd1545f810c1f280e7852604be73963b75e33eda2e2300196590b9b77cac44d059016c0b08a2f18f18ededd8dcb1474b3e088a6e84c12eb0470cef4b409214eb47de0e277de2665c661ae7766de5d05bc357a2db50ce51d9087a66b1d3715f5be97a9ac56ef866fc3bd3025738d4310e4761b57b3f901c5165df95385cf70f064a760b37341fe2c8466aca8258fe821308d8be08f4d569e27365dc4be8a2ee4e5e13f9d467d8b6ea272e407386e9f448c1758858d038c18f49dd7f60874cd4059b5950b8e969df6a2400a628759d6d7839488674bc128e947594521a998a7e9aac9d61ced0aa7629035bdcdde11a82ebdee6145af1f9c31ab104219beeb4f222e0f0e155e6b67160f09f6ab6943a589bc4ea4a1eb3231bea73f16da8998af58b8f71d3aab3e2fa736f3307180e6d777bc5ad02be4d7c718855177d7c1826bdf9f3848c1b9b65c6a25a93af48c728b6485ab765d36ebe3fc82104d043238867683169cf120dcdd016156283a7e6171167ed19996ac57e4691ca3f49b43b03aeba25fcb3d5d89cfde475eac580b58291084d8f7d554b463b3620a63bad5c1fdbbf98a5d8200f0e0ff1aefab7754e70e4d666e0b31ba193fbc70d4dfc601464a7642c56385abe64df8f377e2e7b7c451e903a13df6020d3cc7bd73fac7f95dccc9be71af4facc9edd60e9e5cc5c99bdee1339fdde03b3342a4c0635c71106dbcc4ca3ccaa8ae7e0b9ce740fd9a6fce8cd805937b3daf103c246d3bf61a10eea6af21bc42867e471991459ea895bd74d6899da56c22ba33294cce17b88b39691c493d7ca312776dffb953720f02fd814e6b9c96e4e4a9aa6e2d255735ada1d02ebdefdfcb74573c77b4b19f751f55e20a5229a22e326ac75858d7eb4c7fe9a4ed48dd49be353269223d3021365569da4c2cbc3dc6ac620056c5aa7382a363f93b894c0a4fb1af983d90d8127115837531e9ec7ade4a419051d503c1501afdab4d9b9b9a741810693e256e3f03415901ca0eb9eb74083d88d7a1db546c4436e3b19f3be3da87a6e4a7033d0cde55ebc2f7123b750475886244bb6444ea293fe498fb1e98d9ef7b31a86cf05cc660841f0b21a3ced89cffba8cc08112fb9c20a8abaf1e9eeb7fc7c678377ff2edd2e4c4d3140bfa4106f46a8b137c4d68985dbe4b8d67342f409f75a3027dc6a71acfdec2b723a4e1b96a12e42e49eeef5ca77a8961c77c39d5542d5be19511d6bd5364ae79cb254da944281ded04e1e06b7d4de33e40b1086de49543e56e5d7d4ad2e224f31337351707819f96d36db4d3a29018403556995a098cde94138f71cefad7d8dace8a6e08008b22aa5d257508cc4f6a9811f036e7715c67ac369b6d80c425c79a8ee97c094c93dc18771394a56dd527a676d660472b9fcac4fe783500676a9aa6b0322752a73ab982fb28e5eb4ae639033340b9ccc8ba036ef1164d293627c41e094bba0bd851480d2f91ed8ec8a1d4a229f4d08dc25b5b7dadbcdf22b2269cea9c7c6b886ba74bc156590e440a9a0e128a35ec8aec4eac360fd9bb61e9804dedfdbed1e17454394ddaf851c73327022da9456ba7c4edbfe7a0031458088f026830c3695c5d89a60810c2cb6543880b892d8d5c93214ef78d8e7538028419592df1f630144856ea1ef215ef6658c350a50e018cf0dba35fda2694e1efa93cca66931d9560d90bb434501f5f420b8bfa02a566126dc2bbc9f4e0fb929e2c42637de5e2e77e07659ee590fd3b8facbe7847b9400df4bcd858925c15cbf1a385fd395d50b9590c154928cd95798b735faa3acdb4a8874672041d585e45318ee942b3e36711dcc706bda76966cc0100f14014f9ea47ed9c924035e2138107f52dd26bc5d0312879505d7ddb3b468765086169e24a6e1919de2eb169acb18267fd0ab0c468da0ac6436acd2c4e08fb85f134e648a992a69cb871173675e87906f30e7cedca148c00ddae418e07e1aabb8f82f53127635e09cd898b348d4bc5c575cb6656d4bf33af7414bd26a84b5184b9be5e15c384902b1c66a6bf08b16172ed8084de06331119df75913d29ddf181de3bfb9de1242183ee797309ca14ebfd5f8ac368aa72ed7403fbddcac4077d669930d742240dbffc1a2b4a83b043d904285ebc0937c087c9025c0472a2b6e546b6629cddad4b9e60d64c01e0ed4d4bf8e580013e2b215d24893b3dd7629e71cd6c9f906205ac2a1572fece8a7d95adf21ae18f530a6bc18291f22e1b05349abf287d50f1f6724f01d0cb3fb7e0a576997c3cd9c013ddcae7071a7edf496605715568407f86ea78b20e66404676f2b34618060e180e4f9dbfd9a70a1f96acad53deca1db22d87342ad2eead7289c7e481d2068a74e62f9c9b90eb02aed47b57352b23009adc93787eaa74c7b8981525eb077fd502e6c476f6fade93b53c29cea27cb4a7594b55e4ca11b66f94ecd43187fc23d27bc72d0f48a23987fe95b06940a360e9026a022d2ee3a11eb72c8573eea76accc0fc2acfc61fd9e1655c77bd652a5dc40de7dd0182ff371d5a8d3047bd82a69a4b75452dd2f4409c5176b02488b9ce6e8b5c0173d96e1a83e5889ae16b4a07b09afd8f11b9b80f812c9ce794da70ce46cc3e31e24325f5358cc0c64deb9305941c0511ebbdc302c2e362123dc4bb4c9579c6ae2f692949e92a76f9aad182ab69549702421d94c5625904af24a42620f331b8ca6f8d6ce59306517ad93fd6d1fffbfbdd16f4f120540753a630c0f56b178b1672504d1cc0a20bef9d93c8777c036d881a42a72dfaeb14a1a0b60990a8c27f978c95ce44edd72e677d3be62dbd26b3c9bb1ccf1128f79aeb2a41f6ba6d021300f0ccc1ad36169bf63e36b6da9b3a9a6e54815d3445125a2d5078ec0eebd58df4487919fadd4977129aa61ac337f347b3adda82072d758925f4ce6a5125b9e4f87dfdc5cc4b3af5f9589a9cc4969afe7c6b99edd05462d1da3c40d785b8067c4c866a8579fbe4d94786e0fb0b717c6fb96e2e3ebd72b6901acf96c0fb174c272f3559898019a3d87ebd6d9ece260ec913300392b541a1efc0811c10af0671206345b46a588abc932f58be6149ae6591250a8740dde925cb9fa12150c9f8d191163ecb613418058769c54f883e9c0b533f6d8f568c6a907c227d16054af09c6c73676f5b9859beeb5a762ea323eb76853f4a3ecb113ebc42f9c99d89e5869777448a26c40407362a45730621c700e3710a65ef8a49d9c19a2692bbb37c1fb4573498126522468f738da44bbd4a719383582244a284645b318bf7de280d1b9b9829af334d24c49c50fad08a3c1c630a8e682ed700682998fe7b121bce47bbde010fbc9ab70494d5d0b300b846e8987efee9ce09cc1bfcd828f18ea2bc4f40440f89ed48cfb103a80e77e26967b7ec56740d18ee40bfc9fbc6ae8a0d7f46f3bc09b7dfcc590b55e3d8fec26e7f4dbd7806f550519ba3ad64c15b657fc726001b0644054aa24f9b1dad492dadbea8082b176c5fd819a8e73665751578e74ef32779127616a28ebca4be7270c195ac077fd71627faf95fd02f3b6dc45a9f47d3f666c318d752ae08c17d2385e810408d90fe0aaffea328466c5fa82958e840ea6b7ec4f2bc6980db0f3a86461f51cb55dc262ebad5f326533b6bbe0d9c4b283f564949f9cb05291ddd5371af7713a088fb9033bce4436d93190fa742dda242d725bb1fc261925efed8df4b6e3040b7e4989384a464752833f83a087ab09eb0d2be8320ffe552741a5a6b90ac91150fe3df65323ddbfee23f6237c623eb57a44f7dd67be498c97bce8a03dc2f695d0a41e270663a06c67819f4ba401a45886d78853efce02a00335cffa3b47c29b5341f43756fc5c180edb367aa43f104be106d233224623da7738147527e42a904f5a1fcf1d35261139752f9bc38dc992095ac84d03f889024bc8dc211a1b41979ddfe455f696b8199a2e5ecf61625293a6e8f9e36718e9097badaf37098ace700000000000000000000000000000000000000030711182024""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
02b250a84d15d015d65daf64921d441de7eaced5dae8d5ed5aaae0780710cc6f6478e91ececa60d2de17019195875bb3bcc202adda53a06e8b8faef1dbb67e391e8c8e7145908fbed14602f4cd5e8c5c5024cb3e65fcd88368454b7fbf8b08553c0abd7dea5834b8ac4da6968cf7d4e4a6771111de335b8a1ed45a18a20d7cd4e9eeaf18868950880600a531f49ab5a53deed6c37ea1c22fc0769d8a8ba5a3c49134a80a649b0435e457314c10b7cebe346a822a005b4adea250c449c4025db99c8cd8a3b44a3582e8fe2c1f37dc64503f90143a4f60df3a0e123917d68ea2bd0ed734718e38a306e64516e7a30eff69cb22956eb3fcfca07806ecd92d31ccb06d2db525118fc75973c04c3ded11f9425d2f89e3442e8a4393f469278cad14b61b6a7b15931d647a867f2753b69b22f3ec80dae692d7cc06bd82249da6e24570831ee4088b052687d8277385fdd1f88b4291db8736884928eb2a3fedc6b57e0a4c9db49962ba32d0b75b0c453e63a17a85932e18853bb860869a022dc48a96d6ceb1bb78d262ccafea8f05d61d4f9131efd3683e371c60781e36219ca5648cb69e65b11c2f2035f26827a123ba43e86de7f3f2d91f07f0bce7bb833634fe33d094b9c0ec790a8560e7475f9570fa638f104b67a7c0bfb8ca02df96596a4a7c41b5d192c44c9086e387f6a868b8600aac16fab9582c7db786d859348d66ed769ab476f69aed6513178d594e268d4a2edd29e684ff71aed82504281589da608904bcfc3e21ae7ebf53ae4acfbee19324cf10bd49803a2508cb0d80940840a9b8c0d7ccf651f134e03218b076d5ba213491163bcbf407e42dda28aed332d455395866e6d5e11c08f4b76b25844fe2a44c28b13299a0f924d6b541492977c6d779a06f8e7d19a145f70b42a55f4d200d6bc97e052ace5af0d2429d752046f25a8d51eb43c13faa172d4a9553d0ac05e6655c57be3f232329c97c97f7315016a80e6e1c79d12c269129fc89b9f859d298933d7b0128a69508c6ff454fbb56a502cb740acd4623b23382f3b3857d1bfb0776c3f1405271c551cca1b4083a8059d755f2a55c39c2ea836f8992a1f386800627f30fb3ab6998d3b644855a8ebe7c92f45accdb7ddbc2ab67932cc4e75b02c78fac8edb89d5e68cd9bce2187eae5f612e7e4e80ebb50fc63abacb76e0f317a299d72088253308f8c5c1b9772f064c90496aee1282a4e3a9de98ef74a2c3a4899d117376aa2f5ebac04eb83d57eb887ddb6419bb266c94578fec097ff2ec3f06230430b1fed1262992f0172ccabbce8979b5cd43c87c2cef2144270561c6823a9dbdbc408b81af10680f1c6939f7c8f2487418d7eb696f491957a4ba1a9a261eba8d234a958c7ea2766915a3d483019d83daf0b4e1e8059e81c3894c4280288179700b0eb984a401d80bc537e979d3a50543e6865eb5b73e4dc0ba55514f22c034cda20874124d95ef6df0eb7e37d7e425dc53d0b0b81d6a3b222b6c066af30e1fd6d04b732e4ea9be724bc115d49e0ec3db841db81d9e0405c5005b475a1ce6f84b8ae38019cf2c21fb9ba58a59e983b55aed4b758851dee4885127c5655a54e3a79eac74256c4928274147d61a4c6f1347f4e3f49fd25b154caf3db3cdf7f885bfdbeb24ffc02226569ce08127fb17701bd8ab0c792891d0433013bbd62a359852c5f90bafbab1ecfc0b74d6937320b9019a955c05d9e121eaf87d08c4f55068f3b2973a2f4d1cbbc74887654d6ef8ef201d2b0c90af205f15bb460c4a01808bdc27911342a476458504c01de66877b9acbd8c015e049e37fd1f90c0b4e50b54bd83db0f87011f5d56e85eb4cc75e9bfd9e92b739f833119590e409be30bc75adcacfd0e6f31555f86bfe4436b9230e519d0983da0138f31278e6b7ba165030855d433fef12032855ac24d7d8148a2ce54f3ed2996bfbaaeaab3595ec02bcfd0c77480e87252f2ba6874d713a61849d303794d940deb31c1306963111fcb6ae6e1db1715c1ad5b49b0ba4262abe8d7c8227ac428d51ab503d12caafbe0539711c956cb5a19adb5cef22bd1c52f8a297913403d8bde655af805e96d20f277fe873c463b0bb747342804a0e74657c6c14d53049f3e42eac9e945e50d771c7467774a755a2209a1182a7f7e5e131c61f792e4fd962e40d5cfcedb4add6eb476689c508ad8dfc5552d65c937e39018b151555d605075023598fc479dca05d227fdce3bff4e2583dc972d3cbeb3b2d6d2de7e6ec44c00ded46ca34b8358842d0415f7332bd032b933be3b758b7ef285354610c0abb9d05ad104d44fc8e057f6585c2a1844cccd3bc394b0e097ff09da8841ff7e3fe82aef8cb8af844e70a1cfba3d7b88cbe2a82a01f49c06d00a8a44ca2ddb0d8080faed34fd0da509e80361ab110170631d00ca8d5d8c85cf788f105aed5e2d90f870d47c07d08dc16db01440c671d1c7f880bba7a69a76c3bf64ead43c3b7f0477c5fa030f93286a2781b435778450b4e73572423671f4861419c8057a4d5672877970e9121fcfe6b51ec469a0f71b5c69718c54c3165041d177480d761152eb05e2c3cd49a063a25b05f5e75a597c840235fd599618d72f99f088086cbda1a2a655aa528df1d694afbb5e27f910449863c01cbec95a297c5f89ef2e67fd0064ee5fc2449098a43e2bf86c2943007ddf82708326d5fcbdd6e8a5821f9707b6a7a509e27306f8808f5c0bb85b8edad600f1bb4d58cb4b9cf6a74767f9ff52dc"""),
|
|
TestUtils.hexDecode("""
|
|
320D1B2976A4A4673900C7B75B23EDBC25B9AE867FBB79B55B29B3780EAE8C159A3AFAA47CF1D9E452CAA8EDDA3304BBAC47EFDCF96CE92DB1981A5088F731E1EDA1EA5FDE9A031595A8F268E92B4D75793C6F408F79B78599D93E80066F8C4432911828A87EF71C877F55B1F18207F01820C0153B647205CA93DDD6B78B94EB59E3EAF01B66953951ABA4027F811877B0F60C9A5AE6281D82348E3EB749C82C81D53309F9B7E624BB1BFC6382F43A58D1951F7FB716C08DEDE4A8028B50544D0F26F7B9DAEA0CD075C3B11B7315022A37198F0C96D752798E0EF406875CE86C367079841F717261A2B6570A8F4F9BE1EA305E73BC8BBD88AB162B4D4BAE86CCCD406A0FF6ED5A968D4C985460FD8FBA5B3FB40E29B6ACA07F70717A0700AD3A0BB7081E09F7219F3F8829692C3DF91C90334DF9E89284D65F7406188C9A1EB7B5C491591A20EDA9399DA1AE8C0C158588FE1426B763FE9D11223FF7A05A3DE036B67541C2811AA459045CE73096F89E6BA672CA7A546D2B0554DB35C547AD9585D14485AA812BFBC88F7B248E03F2EC57043F4DEFC2B27A3B20C2EE7CE334D428EAEB228350A3ABF4628C2DCFA84BC7435818F91CD67F70F3C7D54E2C205E55BC4ACCDACB354470FD5C246F32A542106EEE0EDB38F01FF5C4B657C7C1A00718D2BFD311B8BAB6523351E93CCB44274B8F96EE343830148F5C8594818777C1E798EFB45AF1D2A75D22470B4D7F7C7A5938DF3F8288A0088719C4E36018D9993F9E69B8469E5F2ACF1977D441B82E5340E5AD5B21B66051513553BA1BA1C1D5F788C47CD3BC60079300F6E3D9F13EDAD4DF8521EDD022031A3D74A6A5F32AC6FC51C67F920233C5079A2B44BA7B8EC6DCF9AD4667BD26BD07567E078267A1BF44B15E68B71AD38226EDDF138D2A599944F70D47B26F775BB97D9966845AB3E6AEB96E1414D3BDE94160B6DF19E03BA1BD0361354E5078B3C5733B740314E2DCCCF8F4C9CB179DA62D5C982B223CCEF5F29D7B673680DFA2823A2BB279EA45D98CD91BE7D52E3E386B98B62DF3FAEDF025B55F49EE6FB5E8DFC9F70A4F093EE3898B25102CF3AA52E669D6EC69BF6C79457BBBB7CECF65B1E948DA808025A242841FEC6073326BE16C2D1953209F31BA4A772FF24BC30376EB994398D4177FFFBCF78C9A79B7F1746D077AD146514A2DE0AF9800255F3A11BA661765A7D8E8E7FE5FA46BCD1269E278555186D4BDDD03FEEB70BDFF7E5F616259ACE39969CABE8D4F8F23544918516C977F84C09D6A6749B1CE719676378E82F9B4E563D67AF7D911233F2527B5CC5D0733360CE15A173F10B91360A3CFB08EB44A09157559A0CE8B661AB4A97803C52F156627C642CD02CA5BBC7648833F2CD7E99D2A7AFB736E5AFC4FAE5DE19ACD2F5CE3E3FC887852758411E8C7FBCADB1578964445332113F963AF3E944286DC448471125E55A46D2DE35E9C0F6DD10A3BE4F1E4BDDE51A16F4239A1F6A535D3202055990606C0065C542297D490553204A6E3CA16A7FC9A1D77191E5C01C1507A332C659FD6B11FAE088BBA796F18886195A2B8F5B0064D85F56FB7256F0FE70E9C06ED18B7C8A75ED97A1DF482908D2E3E8D6BE8D0EC8020451C687D10F829257F3D09FC47C7EF008B89E2312792A25EEDC71E9835674CA50235E0A6C832E7BBAB458725EE7BF65D26A0501C91835625C330B0F8B4D46A0762F7773D2415A0DCA573B47EB8658F9EBFD26D9F6EAE9D7A7304BC690F8D2F60C33F8A7D19B52F9340BFCB2FFDC92A7F9ABF85E3352E46ED7591F354A9E19B70A3B247E3E4295E45B6A2CEB59B120B6758654BAAFED2120B226FA778FAE5350E756741093083E4E56A84B64739695C1C09EE39DEEF11D7E5BB7866C90FC9C96CEA071FF82F145592443BBCD6B7CE848839B641C4522016945F711E86152820275A6E16BDF296D34AB38CFF06A63756DAFF7BF230F024DA00C4128F025F091F4341620E0EA883042BE731E82D21DBA6EE737D90346B6189697CBF41F7C2BA7C9CBA20E14D26CA578FB05E92798D57C0060951BDDCA5D96322AF35D80013B48A79AB7684E1E1B040315A350DCF84389E54C054AC4C3428123E01C2FD66FBB2C5BE2D16B22BAB805AB59DF205B71764E4AC9BD4B2D872B8905DA230623C65DD235FEC253468E53928722D1F04C486B46E63FE63441F11B1E3617E9765D4F388D4A2B68B6C86C8E20FE0F3C48A561A0FF5070455C43A7FDAEB58ACFD4BF51A1C37B7751ED37BBC73B9C29DC4FAFD0A8F5FC98C7FF02B404AC08A0728FA82A5ADA4EDC195E679D88187F58004844065F281A67FF0A2BE0AF94D5C97ACFD43683AC721045FEF8C36DEBA2E3EFA248DA65837046B62BD6CCEA84CB1211C5893B0C5F0A5922A989CF7ED093D5D706657AA6E79EF3FAD0959DF594B9CFBE779"""),
|
|
TestUtils.hexDecode("""
|
|
c344d3409be7db98ef0a349092d4bfa68e022cdf72abd10851fb824519086e7cb35ae13a93132867d90ce67d9c99315a3c548f7bed393d9eb71231bd9cfd951c53cf8a7555c2e8899d7914549a5565d8531685c7a02b82f3b95f38fcfe9c24118358f4dc4b0bad89c5e169e8f71e97e5f874bc8dea40c70e9fb2322131eced692b164c011d04844f0cf95a663a90e0409f2b36d8d936613343f6078751a082056d1c077fff3c3e0bbf5a9edac10d8ee0be319df29a998e5a52f06dfd12c47eaf72a457b18c73bce7931b74f28e2b3ca2037f0711b8a4755a860fd79bff06218b965a1e1368128e3db4401bf37185421d4b080e20a017f9695feb484b7a4ec6623cf5f82d99d1e0a3873d380cc5ba715021cc8b24f0839d10eb2b1679098330d772a081bcb20ba8613bad19841b411cb84e4f9bce9449b5d1b79922733e0acaaaf3c518d316c63a51ec49f4a5f30671df7b36e3996201fc625c91ec7cb621b54f98bce47381bc062be82eebbbd2196fc8fb1f26405a80a1cba591820c6b90f9374406c97020e0d8bbc4cf71d5379d54e3412f69d19b59237669e1751355c1721d097f07a218214428348ccbc0c954ea7029dc6aeb605ed6fa8334206e230c39ed5a836664a6c0b848de5c6a219a63ff24264ee44ee5d9f068a41cfe62cfbf885a2bb4c71f17863f5172b9b4203e9e9f21e0e744807277cabd3094d2727d78f930ba8779af85026e45b809b8b3ff259dd8511981e7955924bc29d448a5175c7742b7a1bd7db170c55a9831631267789adf7952fcba1391fc4eaacb7c3429f43a2b634553d8fe47ad9f39f81e54b0461061f6f67ab6b72a25e99801616737e8687c738b45a8ff6f05f6b5a30c8d87f6bb4e2d4aa82ecf9f7ff4d1a6d6b5ba61661e8a75d4dec3daa6ac96c0abf7ac09da08efe3eb73ec0de8ff231078bac1cf98ee9ac6aff210ce15f8cdabb143ec77860bb090463c0e6b63c0b12249633510404cbedad4eb85641630cd131a7897b46443008e79edbcfe471d37159a27a9622bdd6e34c1943e0b5ccf35d8885a9d584f6a54cfe7b1b45162360b573fc19055f6ac05df20662026072faa0f0fbdcf4f9b7d89d77fa0a3ca7ea0d857d0d9b94e95a406bc039799ed56e076114dd9f7c8c028c97e2bb813d8862da972b069d7c1e251487472c291baa0c0a9c9f349f29091d8a4332a56084e11296d1c72b7014045ee584056e9822b113136ca9fc27b1487f64e4fae57b31df3e6e2728fdeddb4437a8257af982cd08fff4c4e6e9aa82067182290da938b3b969e5ef0d15717f0c34130cc2d9bd29d9a4ea6707c9a45830c66a2598d8678581d9a389bfad0e34c3cf45c3596aa986380458c5cffc1dc06c5e143952a211288ef0d67c7375f0d9f59ef10a55623af7b6d2faae4802882d09cafc9da95e7e0254b147fdadd9b8b28498d625e9b0603c9e7e0a710d34134e6b4d2e31003ba30acb30df03a913851d5191adde83fb0278aec64262de99b7ccb1c6ad5358651f336083f59089beb924db5af90be237520b5354ba63393c2514f2f5c815b694258cbd56cb7caa5de34986f214c566305163782b9a67db2f1e51c0172f757e3c8d9804cefb63df98d4297555aa95781e8c1114d5c53b06491b2c4463790030d2d28d159c071c081286071d95cf5fc624b69eda6b2cee5d84ba30ee0b4357eaf5429c26fbcc455357de8730f0b50aca059334ac5af33c7169208be3b060abad80a41d5a720e262075442b1f514958120dfd51927363fb0b43767f3bf4ba7bd2669f79d9ae38c8b244c9a1334f802e7295c1a5b2d236edb5ef8eab028dd2bd8fec9f0ded1dced5a352f55f4b502f5aa12a3131bccbc88a2dfe990cf2cef02ae787db30e8bfe26079bed383e363576ee704e2b2b3b6dc0254ed4039bd0155fafa471919703f632bd8623350cefdcdad074337d5ea637a95f995141b21fef74b93be8fa18ada82dca3bb6ebbca0544d790ca07c42086bc4908a4dfded5d0c09e8c8d4382dd30fd6c586d5c379fdfb11f69faef1dbf46b0b03432c0b9967e6c7417b2488aa22682c5ee0fe6a08e90d6740af02f131c5acb53fed64329f8f108f53d762736519923ab734654f968783dfe8d13d715e9db219ab7441fcb739fc75913b20334155dafe6b85f28512d71a02e463e8f58162a2075d301d4215c61164b5143f096decc998b006051752431e1d1d7d109f92c986c40d2a8f17ce6fe1c32c33631974e47c73b5512697f5e3fcafcab2a4f8b462685fcd5c19decaea96d45a7c3d35eb6b81d52d3d300f4f94f2f831e3412b12429b71b46253c83d849250072c035003b8f4c0c7376e502183848ab14ed9f8b6ed1c87d554223fba1bc99d1d065cbb945de8968fe41c161c301b3cfb9c181ef3bbc120cbef645da02c295d6ed66925802868bc8ac6b437550637e5a16d429dfa4b124c1f1045174507f706d3c01f9343ec58bf79e5611109530e2543ddfaa2fc0641c69ec8f3947b4350bef318a55998fbc25686a5e115c35db12a12e77c8dd43863c2c024745410a0fcf1560f1a902bacc961d931f793238684944140150a99f2894748d03a83e030ca52fd83fe43bb9b7fe43a9451f3850f92df5e242a1e75c3a101efa727667ac45164c35fe7143b4ca2119d76980506e8981c4990c8f391a0c9416647554db2c46256f3e56963bd4f7ef309914dedbd893fc6855caccaee377d70cdd54c64ccc3e3d1c0e197684fc692e9d64be1b07af246bf6d2e4f38d2e8844e01efdac0b24dfbaf32f08492a99b38486a8db4661dac565fd847d83993cefa810c42cabd357b3b1d5669afb73274be28d637d8c2de41305c33ea3569f865834effe4ba3cced51fa00ea3dd7f442894bb2ef9a92378ea447fa6af9ab8b3fc01ac45c7221981471aa121d59e77a1d472906c437004ebbb168cca7f518145494516b1d3a1aaec164e5f73a96c244afe367943eca32c4e61bb5766122f1f19e9768c4eec5d76f3b10376191c5d42005a99eef0fe332cf5cfd4ba59f725bd50916348b5704943cd5d14bfa826630a9529744148d9ebac15a84cbf6490be826ea51fd42e505fe9e74a13ec9a1ad546c8c22e8d498ee7a0dd75387240c3d166fcce4d957fdaa53d0573ed995a229e2744bd8493d44d774910625310b4edb8e46ae665c40599c7b48058f104199ea6ce1070a37fcb383ce4e2af436185c4a3f20e186a25b8dbf4dfbad8304125e186eb76b6f6ceb7fdc51ed324272945e44b0bf11ce27b5b6b683fb4efb7e168ff13e46f1f0f4a136827d8d56cc6fed0a9fc8a2abc8f5c06d1dc0de33042c5b840c6d66a8f27331645a87fa6710f9f057685fe00247cb7f12b229a43f539f9c4a6727a8897c69d8ade9c2af6538c594699a9f428a998bc1e8d11adacba134649315ad51f73c1bdc11d8e5eaca86a138ad934b30b376d754bafb3fca13963eb800818592eca6807867d9bd23ec931a343776da195c8d43830028cf4328701faf124a19beaa44293e797c2bb89b2c9db45c7d3785a0cf5c9fc783d727da3a3f20f5366d9f39bf49bd1ef9811dcd74804716f82c0afe9a73c88138bb23babcf5b7acc87f5dbdc0ce1e39540a5e5979ced0aacc221362e2a18a4af86f34f9b2c03a21dd21f70ffd443be4bab058acac295aebc452b4fd32ea5750f4a2fe6260c30eea5bff0fa17f25c3dabe3b58fa72f75cbfc18a84e2ea3d568cf6e66e401ec82753652f44e9410bbc435721a10da1eec613e71f04023f3121df6b45316795f110c81ec9124b9a5568c08041eef364ee59b4eed261f3edd834741845ece57fc5ad1f50d183d03c0aadd61eddb2f13c46093082182b21d4bc5832081fee8c81c1d9a77f132e8e5e9f5a94650222dbe47f5d7f846b1e91d52f62609cf0420446b55ae4a96c2bafdab6a8793beedf7a7ee9f678a099996b6d6f8221427fc86e1a260d7426ebbfd7b9f3e0b9029907b00cf77409b24f73b7f21fd2030cdd4e36fc09322ff6176f49b6f3492076eb9de2d79f41316a202994871bf7ff96ab0cf94ea11ab959ebb4fbdef3813698b1c78e13f2422efa15198dba6af17ca9b2ad199f133076f9ffbe8496fd28e003575579d6f62c69a237c588ea8bbac99b32c43393b20112779db5f9989c04e9530af29a7cd959fa4eb1276c69d46a67ebe363d635aebe19452416e01db478ab32a32c6e95d43ed4693d51f4ded754c62f53524d4179dd05a102acb6e7057c63aba9c8664d9140f866a359f755ca2bb4b0e66b3794206bfb311535810a24a6256a8c0c79c4a87a8fd40bcb9bc23321fed6cef599deffa6994cad1bdb655eaf85d082cc1c626727918e63eb27521b6de4ef5857a2ea372f64409d4c6885d7eedc15c95aea623bf081991890b8d5673cc9ca26483d6b7bb88fa61b31a13f114923e7332eb2a52b9c42b7b341ac6495d1c4fe01f627350089daa8de8cb8b4c660ec9bb065ce689d965e14488e67976502337f1de27d825cb3e6f563312f1a3467e1d2b2628b5a3ebe401b6533f549263babe79b0ec66132bbde277a1b4b8d913b1c378e864d3c56820b6de08e3462882e72573e8ae08c64861669ab8e92b575c6e7fd5db3a698895d8dfef064b5fbfdef1f411373a788082a2bd0000000000000000000000000000000000000000060d141b1d23""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
2bd5cb469bc4c91a3b3064b58eac4e6e03a617650702c0d2d7a74874743bd42c097727845d5a69c2146cf89053741be3476ad6a7d574fa59f868e30f5d4d1f78157b0db9753ed7e6687383c367d9168806c52d5ee1cd548c65449576ca155cd2668aac7faa7a692f3660832c4e3d65ca6e31b1fd5f7a1ecdf76d4eee120d353e683b67760c52ddeb28c967c5a99cfea6a74a1bbbf468d8a6ec400253b81c6780292965478d5b1d90c37bb6a42cffc2d086d2bb03845e9f1f1d09b0bdd27a9c0495b9a86a4d0535d84c3c2748c7345090c2cb6d4fd1dd330bfe860d1f666567e0e164602073d427c293046ecc8d62d50fea16458e7cc18dfdcc76a01dfdf5a8dfef558c94e6200f65220f67d5831809b2c17911778ee60e724b9cb8cf7d54f3fc8717b2067c17926c69d7d05830ccb3d3d3ef910b622a95127e0b017eef9bb43823f977e904c7fcac76aa44b08ebae23f8898409db11fc2697225d06ea646fe78afe6c6c5861f361f15bc3008aa194250b3d2d14232535bc612afb523d4967370021ea8b6e4a8406b4e933c6f96c244eb363b38b65c35a3ae906051d2980f98483653c03a8e36490bd8d5bb80608eeca2ee9e8e570262ad2e0c77850eb8bdd1099de5aef34aacccdff2c152c3cbbcba38980f227d76d563b6ab1b8f62892e51d24dc2e648160f4cee0b095f9d9bd406ab0f1dc4ba9706611d9b5eac5fab8e246e2686b3ee96bfe4ddaeb26d0b1accde64707406572898cb41ecbf927794e422fffed966a0247a76dcf13d61c3fd256773ac41466befc8aad6f6c26d7a63d0f51efd63fe12274e0952c0047af384e7ce9bf7d7cfd329dbd9bce351290f9ec015cf784f49fc31648147bb46bc9bdd59418f998eb36636d82c5f6acd769ac965a04119aeddcb199f055ec3770c19329926830226d12a990057a2c60d4fccfd4fb20350b54ac2e7b3822cb6a81b0c2928a95c37ad33fc7760018c1a09c50b5e0ae0ac0fb0f89b3224b5c21adb473df9a1aaa9a338256b54cc5eaf2883bd282ff8c406aab2b67575fa1f6039d59bcdadcf4306f1e6b3f28e843205033101f7839b63b067fc1bb727ea98f9d2d30e874d2f825c1115a6b24623e0526246d9a4b8e8436231a9c815df3689596fead6c7bba5e739ae08b59be3c01241e73c1a7a2f9f0cf3feed564f1a2d5f045bc550707c52b367bded98e00d91190830024c28a3fa944edbbd4f292dddab123fadc3b14166e55c8eccfab9fcad135acb7bab9d00510d422232d5eef19ce46d742be4c2fe83cf6143028b8e0bb0aa4660564df0d717afb305638553170116ca5622e73fd7f92ec1a5a702ba0e26b0e1980c4eb38faa56ea64711e0e2a141e9e4062e6bc9bfcc387b100677a9deb0999fbc064a997b3a0c809b11456433ae9220ba1b0f4029fe4da9be24e66124e48f9edc05e9e86656fb7b1033cced41d50a0055be663e9bbb8a5d161b78226ecde3d7cb6e5b1995631cecac52be9c8986c0b22e3e8dcaf108d09ef484c579c6a207598aab00446b0bc847ca42e155b730570c365033498f0105023ca8859421aa3b43b37210eda50ac4d9ccc6aa69580fbec6d775aa2d31d6f97d3a079e0a164b5b5d48b5bbfd7ed8eceeee109e051f357f658bb41623120fc116bb202154def1bc1c11fa9956ac89ac065329d00dd0390e2611d244377a7b2aef7f00911fa3a464f68c88fe01e1dd5ed2743c11802af5a531f0956ca860f02009fb4dcb3034af02c905147038e3cfdbe401ba8998a91be1e119f9b1c674846bcb10c6c294ab4ba9e8732a01c1b8a0691753299c7ebc20e888e232cb56842aa9cb232dd585d52a1a46e7537a4fb271adf102b87e65a7694198ddbec6a697237a06091c81d33159a9b1b09af04fbbf368d6b44fe6ff7948977d339883821132959cf9f4c7b01eaa18c7bc0c38ef87e5c782e2f5de44316490e4c94621fb6a967241c49307d1356a7770eb5d0489e4631a159e4559516e0ff342bc093d2bc3bb4c4fd27ce3d21bbbc906c12c8060d11202de3ab3cbff4488676531bad3bde099adb4b547b8e916ea61565b6986325c7f2fd8649d79f42ed035104ceaea3afe21caeff7941a5ab5728c070ab717b675dd9ef985cfc0a9103d89ce52822aa532429bd612a0c13f65d24cfd27ede804411f81665fa13e08f9a1e39efa23821f2d21209bd02a05a41e6b5a9847becd791978fc3d90b78c57b5eb693548104f959822a78c097cbd1c12a09bc175ef97ae954c738588590517f6a7afda7732d2864845316d17121ce00e889843b76fc250b3c865e4509b1811cfdbeb619f21f6579ee26ea37e35198e59d416841876785cf967ca9d17ae1e31688035eca51859296ba364c8bb88f28580a75e195c00a036c8ccdb6f13beb393f4f5430479516c98efae15f2124a46a6b506830e50a8e37ee6e64a6722d659eea4a52d2d6def30d6387fe820ca189ce3c3ba7f45b0eec9fda6c18448cf33ec43906d6bcf98e20045c7b30967b6b28c988ec7e9aee979f0a310046a48641f982a7d9997c7f0bbe386f05458ba7dbf49647708ef232b3ac57fafd418bcef724ed3bbc9f540f2a186df0187b1e49bb0853acdf9dd18b95331ec1d5628a51c352a0f10b63ef512fdb150c63d6531b0811d9a4f071c76446b3aeba7fd2f0fc301e5f56fe5386ecf5c1759530a88e642b4b45ff7b67d7d3a234532890ccd8803a851adee2aeb35f6b4de938da6b8bc76668739a63da699a9b731bdd5a8b2f"""),
|
|
TestUtils.hexDecode("""
|
|
C9ED9B897C34D7119115A0758332FE70D4A9E11FFB2D6A800AAE33F85FAC59E715AAD93BD79DC8D958079F3B5C2422F8FD1A1AF9406E8DA3297226440E30183051FC9AA52AFB8BEEA2228E88D193F231F2422977DDABE4AF4F0437628C6AFBE68F70CF4F56153A2691F7A4241EDCA760D4B3AE0A17A8A0214BF1BA65221DE64647AC6578F4C7E4A14C401F7DCC30A10A695A7F72B04393F4E9C4163AB68667B1757154BFE711BB54255F4DAA9D8AE6622C71EC8ACE5BB79C6B4C8AAF1B0A0099EBBD07B292CD7B55E44ECD68DFFF4173743145B71F536E7D23E78C63679FA2F3C72CAADEFD5A9471280CDD3DD8DB83F8AFF14FBEFDC8C5969B050D263EA462C28CA64362F7F165C3EF427FE5E90A83310DCB07C9612E9A0B8EA1D0631D84B4A7F1C7485B0C91C3B7BBB0EC98D353376B692BAAF24C5389D50250F3BBA82173DCDB52382176EC5CB8BD531DEA049C5B815D788491608FFA2AE8BF486849810AD89BF0352ED595E4EDBC0B81467D72944AB83C3CB2F90FCD10810EB65BDA18C43F9A9A5D98E714BE992B7DA02E9F7C389F1A22810DC0A473F8891C43932E0F6B5D3A21C3B611AF6C394AFC576C07572DC4A1E56B4576FE615E516F48544D099683EAA886CD41DA848567F70C2103C467D271919CC5935605C0EF05909635D431571E5A316E299E553EAAFE9C7CBF5063E2057D297F60B5DE1C17AF6B97192E840474CB7266A76D509A10FC7A71721D705A9DAAC5BAD8A52290C1D8DC7938663B24700F992FAB008CCB3801258245A0F5F329A4FE5553F4130DFB1D673338889B357FBF11681099FE9BFF18AEEBB31DAD290C1401D49CBBE38277AAC8A99C8BE4E6EDD8A0F3C901082A789A1037768AB7C3C704BF1C6E890D20B3DB6918C477350F4F25756BE1742DCB31705EA9DC975DE0C38C21D29B340C63438268F6CC399BD644EDCED36A7B50E8D65A507BEC51A31BD136525F4E7AFC1EF9E0E6325D032682EB4AFB7FB22F1716EC6F4C9852054429B5C5FAF3BC86213F6D800281913D5722F3A380307B59E1CC290EE66FB9699FFC627770B52619256C7B76D993FB4024D2DF0602F102A6A1257A200DE1F39DB54614FEC2B60F3728F59482D71C7E5BEC36F0D90D6FB0B4FA252E7FEC4F0FB9EF539257EFE87715ABEC75B2A5FCCBCFA5666F1C9BE2F0489E04E63ACBBB239EA8397FA2EC24C25C538BBBFEB74EB8E15FF93B0FEDB7F36FF67F7CB244CAA067EB2C005EDD2AC9E0765DD38E51E7C71AB72B056B230ECAA8985DCDB50439BA261A0DE57E68700C64655E1EB8608BCCC33480ECFFF1BB75D0AB69CEEA8F2E3E9515331A1EAAFB9BA32AF62798DF761267475DE343CFCF5A352C907A0314365B8CF6FD2E72F2142018C4BBCE4CF0A160266DE320EBBA359344A60D32CB135F5FF943173A3F9C7F4A68489E78621401425E5B8E6273309FA3313DCBF13D7C69B63C1EE34D3200BBB4CF57518A5E66D010984AAF34CA9B7DDC914A3AFB514FA1B9D3FCDF3324998D0D9058FEF10C30ED6B381C41DE363CB31C5107E7C00D4C0CCE485DBB4CD2092CD929E5717DB8CEE4790A48475E1DE9178E49B13C5173B6F301D5B7BFF1A9F8B3807A5FC84DCAFCCD8D585B77014EE285074E64448589A738F1323C7A865C3DD482499640A3F166F38E37C6F9ABA8263E4F3D1C2E7D7AFD16BB02B9B4BE8A055452071F278C32C3247DE2BF83A0633BABE7FA048BB18FDBA27022736615"""),
|
|
TestUtils.hexDecode("""
|
|
6d9ffac759de540cb67a1d3ed0e50afaee62c1bdeae34e94e8c88d8fa0a86e22b911655d83e0197987aa1151adbb629f7d130a143a3c0f34ea817898a86d76f54ec5fbcf4d0ddc93ce671516be812b1eaa2fe2da29d0381d9d5cb8e702c038b8b8e51d3ae18d0837fe459be7cf6e4967233344749fea70a74f143fde0a0a9582366710648c4f1b26152ca0b56bb6bbb6011264960f9639ed7239881337eaaefd07908359dbbea6dca1834f03a753dc02ebf67371af2ae1a82183f654fe20ce6212eea1aa256b8c1366b4d13ed800e116365e8f3277eb522f2793812329e730f56f6af17cfde3273045aae0ec8188cb956a0058dce1c4d481ffb1e114405fab0a5e9a70af8d438a2a266d9a93332e621231c4ca1d2aa02e417a327a6feda50ac402263e797fea04579ff60b9f026bf7a97fc3378790e3dbc9e7b6cc12d1c01813367647bdd5f8b867c9e1b2d05c870b5935e5f19772fcde0d8116a9ca9d84cd340ed26adc1033a8615ddcd29f86659f3e742e7c08cbf197e4c2f680547099b364fc67b8140a22eff4119906322ea1badd4af4bd008bc46d335569052cf26520938e417c8a8a12c72cf0a451ae2f209532e214bfaffe20414b4243d9351093215ec3ea78a5689e4f89397c7d309abc54d55d3dbee907ebcc6a8ef921ad61c67c2094081d901ba8631745ca131a302fa813c7137c1f3fd66207ae753d0eafb1211ca4e0d247182b3155e12a42e1cce1c415f74677928f7db645889ea70928679c7fdc7e36e43231ec831a6a6b6241bf54466bf530553c268cf5d63b22d755fe9d341b0ac7ab830a303d3f74acbba37de4c109a63a6457e9f79955232e368e9b4aaf27c6c5d3984e7acbb9d19d4cce1b8d53a04d7e137811f10ce33ea05a0b25f0f5ad1499e39542a264ea0830cc2b20646c170495e71a428d35ce3b726ccbfa1499ea716df3a01186e776586d431b90978be9536e5587555aba18ac6f7aa3bd44867d85b6fe9727496d6e0c8e8e776cfe346c5546bd262d30492cb480040c42aaed646969120db4dcf7c3adc8a4e469680e1d5d1092594436655355631bf037a3cd4b9dada49c259e0c6998d466d6f3df582bf86cecb7f4c874f392806cb1dd3b08d3759792875a08d589cd8f8dd8bcb533accfe23001773d6b9ac4dd6686b4ec3ef8cf4335f70d86bd155e5e473666c3ab5b27f069616c6d87f3969a55a80e59825840feb3c82816ca0e7c544eae787ced30e7e5d0b911273909ac11c5f0407848a96fe139887569491fc82b02e70134a1325956e65f02cd97254d4f469455f5ddadb32d99b851020ffdebfec3c83fe99ac4143bc4de6e2341948494dbff83f13603bac25fc5801cd694eefa4439afc61ed048a811b355b75ca4f7f7cbe88debd671657bde2840e95032129f2f40fcdfd160a13c7c123fbc811a7759e86f914288b417a6051393fb564a8a2473c3cd5216b31848cae14dd935b79647aeb287a262a59d37da18b085a86745b2090a83b6796203baded78332e5a76ae6d8920473d268230c00a442af276d11c5179e0b776719f02f4d380861ef73ef946dd03cedc6b7e19c812cf6367d6fb847f0f00b0ae2d5296122bf26553bff501afe0d217628dd44a8a39b509fd5a50c2b991d70eaed000d85343135c8e1f9a4bc703559e08da575ce134e07a33e3f3214d75f959c85e28329aa2242d8dc69b12ea2c95be537b8d1de119a7ce7d7a672c7172bb7f9a5df91ed8e10adb5ca072a493f4199f1135ac519484678681bbc88135a766490f99c2b3d4c6951d3e5da5e169b908a60ea803227fb870510c1963196712d0283102d6883b9164d9c30f9853a799696d488ad8834b6903602d14565faf6be82e911ea41d2cdefafa2506b28f1ee5a77eaa115b91e1ab44b7123ec70114d0c4a13846bb046bfcbfea6097220fa91d1e0605017f3849f9e2be6507fa4b7bd4239ed56961e70bef8daec13fb486d458c7186b99adcc45ddddb818e4947c0e6c5eeada18f564bc664f51efac7a8f12a259956ffb2165f450d728ed5a3c9b4cd6dfeb2f90a7711620374a66510fb3c2b3fc316e15e52a5f91d3e38b3313b7f9b5a80b6b181e4c4fc036ea2574d219f179bc1afa98fc918e33a52cfbc95e20c09b4140367c978532e6be246c8cd1d2c5508721eb298db406a92e77d833bfa7c5865c997b402cd8c09df2c5668cb38b03eb0e86da9707853b20f1ab23e11b6d38421ec2d6882a9121b847f55923601914a11650f02f99895f9920e1df904c6f45715a4c0d7218933149297191f72eab16eafb816d5dc1f59c30a249b8545e6947ad81d5b8f562f42c016ad46f19f5ba10fbfd2a1c22974669c376f496519525bc7ffdd937da7845efd848aa2431344c7314d6eeaed5610ed1ff144794091ffdae46c31fa9e7116aed7dc93c4765b9b72e021b825107e248b988d11aad8a9d466b4b109ffb874f26d6d7f1a12dfcaba5093d60179d1cfd2b435cdac23f6b64cfddd536c55354aaf6a76d738bfc12ccb003a14d19b54e6ddba35dedfd5e4f7f8a18dbdb4d7a8b34acfa4ec462b9a9ac8fa962ae9bfe353ba9ee19d576a320e0f9e22347a84fcf58c0ad61429f9a5f22809b72e91574052534e96832a99db4fe9e22e20dc2ea8f5cc4cb70c844ca9a0334f92ee2703b58b2b09e77c71e27851824c78bf3f4d177237b212f73d6681c6bcc29f12116bae1a25666035313ea2af3e4e98af8f6cac0236c392c39516b610234304b4e4d1d02d8d8e349dd00db7b8acbcaa4c79aa99f711ba693c7e93c9a71342453add96a124e3d06e46c503425a311bc5249034ce01fcda3c5809de83a87d4eeca01b26f92d9ea61616fb5383918e87522bb636110aec1d2b43afdb4258a51f06ce0af14a8687276d67033d922026dd190346844df0974280d56c22fc76fca0132615d1d61bed3facb80f8ccf45ab82121ac3cdd34c425f0efc86e1546f35cf470bacc1976e8c8561b086c52dc71d9fca01223707341c9af7ea6791bb08c2d46a578ba479fd36a2ce79558387afe1375090a53aeb2183294e747043eff104374f6f247591860028a49ee51c5327007d08bda15dfe2de5109683f0c10b620e455d265411a460c3474c3c2c9de9e72356bdbd7309b6e6dd2fd9260131b595630932f46c372a3da2563f31fe5dbe9faac52abd5c842eb8eaade71500f235fe806fd906ae53a2b65a906dda24b3839a0492b206687931dedcf96c57f05c28bd3e1e97731523ee0bfb74cd9367676f142f73d861b070843e772fa18a80dd641f430236a96b294c68ec871f957e4f04546a0610b727b4bc9d46433434e43e9d6c0421997701c5464fd62d7f73768f92645b251151bbc11a9a968b863a2a25de9b1bf547cc6857bb65c3fdc38268b9a89d8a4e49f1c62190812148e2c2617a92ee7003a3de676129e1f6b92b81081f1be2d9715bb83c31fd3136c80a0b23b902a9a3e5f9383b1206d2d8638fb0a5e5c0e2df646235b6a40b5f4f2bc4a13041f44850bb8cb1ef1d525f2ced545246b830547136c8fcfe69c86d4846391d1b8d78a63f50a09ca62ba8c1578eb7ba182ed67975889ad92458caeddd358dbeedaa34e160051b2346ba269003fccc4c3f58d511bc74949b152ae37ef64d0ab0560b8c474d3a1f78b04de729c9f0c4ad7ad2812f037195c85f3d3130559a336610541de8dbce1c91ff95b4d73ca6e4f4023378a5e4e49c8a907cf89b3b71ebc5729b783764a8b9f998e5a299c877cad7bcfd34252ca87de197343c01249c205ec4057912afd681c5062897c79b272c9977af12ae543570f2d8c4977684a2689c627ea4f97a8dd9600a17b6bc10a71a9cae8b18737e3d4e070402d8925d8c81d49854806528d5b03fb90a4a01c03cde8213522cc3372e49fb12adede707ac55eeef0c72a1ce7793925ea6416728a2afd328d2241091049beea09b93158c0835f9e28d0fe34ad0e6cc4cd82651b3c9524e50b6e6e509fba04dcd311b679dc7c82d96490b2f3f7c48604860afd25d38786d7adee7dda54acdef35bf58c2fa5bb0c226b535a9f6230c9428175ddc939fbe2f2191adf27a496644d1004c05c06e4a2e8b82a1910665062c10e6fbcb6d4e49df3e6d17b02cb891f89070288c94ce4faff7709cf88994af70a256059e6bc4df8e2769f9d2871aaecd023d11b44c7ccb0b0f40f4bca202dfb1db1890c89c4121c3a221ca70592742c1c624f9c54ffa3ddcfdd40864836184cfb075417f28a6d5dd5ba9eb4fa2a5fed82c86900dc96aca2342d29dd7208270bd4d6ebeba516fa6d8809eef26e6e929853df5b7b22a66628d9a728170da4a4eda26af530fa05778698e85f02d979a76706b2daa3d154db0872ea5c8b06ca7235305b1d5c1021b0334dc8df6b267760e652a0e1a1fcbd0039d6f585879c7b53a2dd3f664e36fca174322e93989f78ec66ecb613b0a694f13fe2715a930b2ac5cc4ee65a120c3c309b97b8e1ff856857cd88c0ba77aa5557f4184002fb96b35f367bb62502fd6fedea2df3ddb6f4015b018fc00ee6a79ab78c25aacfef26b1d5b1fbcd372b296f320c3cbd02128827678f54ff94c2c5a677193999eb2c1d7f7080b1d4667828e292f373b47696f7b91aaccd4e9ebfb020a58acf20a39586173da2d737583d10000000000000b1221262c31""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
c80f02072f243218956d3770dfa0eee288f8b5372ccff67c93318ebecefcfbdf44eb324573f1e7cab8f0bf2c46e14121dfa84a543892c7c90dfd5a6e2d9e97ebbe6fcac50f96b1471833441ea67805670c91d070814d14ed96d43d8478aff217c5045047e832a55914de5c621ce927144a790873ad5bf955e6b84650b6dbd479fd99ff33fbd0b58a9d057cd6ca317cc9e47a830badf04377d34768ab32b7316f2fd1e40b3a413370c0d64b360f3f46f447e9d3bd66a5207c73415add021ad7a32c0229f1b12d70f4b4bc545e8f56610ed11db236a139ff2eab8d38c2c39f258a94d52c3c947f0a3cf7acc0be3b0bed7d63f046644f28ff966c4f40d499c9350d74a81f76248603fce5692a0db585ed18c2d0791baf6eae4e932e2476e56f7b59c73acb881279ed46adb0116820456d9f4cc2fcd5c0b6bed1f1d1f5a83af213dbd244a10c1e3965526261481c4512df81faaad7f730052ee184841140f0f2002671f4031412a31117fcdf55534435fe123dcd0374e331d2136bada30418330d67b747ee45ba7b47b917257db42023048219635d07694064b5bb4b47e4a3950c50d15ef318eb4fc532ff7a2a455dbacdf04a3389b2d11e403247c84a6cb66cf9d2441ef0c453aac1d69f45be2291d4870dd91345b516d0243c4a76956a6880df06f9b527b32b6b05b0acf884a58b4ab42b4d4f92bafaa3d2c2bf9fbf6fd4804f884ce38c6f4501318a3efa1b0f9f7dee7d573a86e3108e3ce93f69bd35888cd0f0f98d3eb11c7571cad0573db31a692f09189eb5020d52196aac39a621380679a246868554e9f6b85eac016c1fc0847784ab92ce22c3a033892c09a834f68f03275d7b4e5980fdb51098d3fbb951e7599600e36f760d202f7f76f9f61a6e04a974b08fe2e6c2fafde4ee15d97d7c0c6e049ee9f66a4fc4e11fc65f29c91e31fb63a667dfc3b6445b56e7cad1aa237c56b16b6cf6d82349fe3dfb9eeceb332f97cb6fead2c791c846275e389835db39abd041ec91726b93a81bf3c45b948ca8dab2f98773b33f9e1ee1bf8bb0971c3dd10f2eeafd84f391f3fcbc481a3f6b87efb5756ca9699aae68f6effaa27b5c78a43b5c64411c7923937e7e03b0c9a39c125d268106e2fd2fcc1cdcf6f37e02a0848b46f169d65a184213f7d65026c57ba242a093c6f651cb7bd47d4adc50cab9ed9e9aec5da84210c7671e0df9a620fa27c43e44f3e0f8a1e143eb6fc1c120c4da0e30bf9de21f0a973e796ec08fb4d01976d9996af6c8bfa33400978ad16810faa80723b4e3748734891ae6e590eb411dd291efc808cadc857f64cbcf7e5f66f1a0fe7a687e1c83228722f3d111dfe2f9b0d992ce32795d3ad43f3022cb635234d7dd36320bb6dbb5289a03dd9e7a68febe91e6076e19eb979601199bdcd0239bfc9cfa43958a05c7f3185564cc457a088d0b02ee953e7c665e2eb53d709cda597d0fbe25f7538611086a5f42e1b8756906eadc43ec6bdc3d813b5e3e08fa7f8d9ee200bc098a16b5e5c382f500b45232dbff31a632b5fbb846b65a5a2829b4692b192569206ddd0d8b972e5273166919915c7bc77d5225aa75132bc115da4399b05009c258539f514005603c34e83d1a7ec6b277354d7128f09c5c05250d4d4567a7299bcc30e2a4475ca3a476cb61e2f994bc481c30d24bb11139ba0aebaa4dc48a229f3e6abf570ac3794c1117eb9b1fc682ecba28224274f63baf26bf1fb25be6120871958e81ab6e27594e15bbb06bbdd5b05d727f9e31328c7e60d5a069cf22eac5d4d617f3be9ad78e78b10c37b4ff083085230e23f8a57c4eddf6930bdfcb9484759310d62c4ed02cca6ba7fc3f5ebb23b65dffef3c1d5d020570865f7d2e13dc090c8aea4f6f02f666abc01d2b17623fd5c9bada469ef4b70f74011e494eb040357acf588aa2cfbb3ebdc4d0c087d7692c4c39be0bda4894c834dfbc11083586a641133ddbdf87a1078a73b4187f75cafeeafeb674a64b83cedf3a2d65e9a494a6c01df470c5b46f3581c36462301c9ae910daf7a8309d95f39e630f8f53ac368f51c7fd77dec9cd73069b392cc5929269c0a2eb82bd29e8952a27e03ac427498b6310fa2e93517b1388d125330a9ec3431b95f1f724bc6711b3e9b7cc111ee39a485281adb05d422f0833d6cdd5a9ba3f8b29796a8706024ab87f8f46e459bd6e8db00346d356d8d9ab9b7ec821fc8d962c5373f146243036e3c859972985f574874094a3f76cd925375485113778c4b4905bf8a50268781b96acf0539baf9d2a05d75ea81142198feb5fe2743783c83a8c80b77eda68e353d18cbc07894c460bca8f1cf96eb73cf39a300c9ac13dae0995423f19ee40665d6277014b9266919455bc2a1a7f3589c426593ba3138cf7fa976fd768db68e86356b7606b1e713b3c41c065ce17dee516b673689b7520dc4206000c5c5f47d64559ead4134b74a6ece8eca619dcc36fc61c825e6416dbcf4821db0eb38496d0e2ad86786e3176cefc73909023c4b50e60f1860d3b9436c20c5d91f1471b95f82df96825deb20d84c8a3fd053c3e20b8567c1694c20ef4a66f5edc24c07f511f1732427943414f601c9b376629a2bd307983834e167bc6552ed069517680bb2d3cbda51986c5331ca35806bdf327a9c262e8a26770c84d227e1cf3cb785429960f145e2ff4232d5f80388f15916cdccf82a44b548605138c5312b087aeae0f2712cbd61d3557160b14d4abf04317fda74db11186f0"""),
|
|
TestUtils.hexDecode("""
|
|
258FBC2A94EE48B415DDADDF470F14FF8DFC069CD949BB88812CD27B2BC3D9522E00F302C0B72533C9A612A251BCD292A291F3652695D318927CE1B922125B287FFF9B1AA2B79180622C32AC624E0463E5F48E86EB5952CA1A95BA51388760FC5374F0561FB8873018DEBF785FEDAE4CCD1A41820EAE9D7056BBD329E7A95F21A4919A109BD27D26779C3588C9A886EDBEA1FB97A8048DED858B299DDFFECD4D678820E5DB6CEEC8B1EA879C9C22FB7F59B227B4F7C6AAC577767D899B2F11FE39D1ABC527DFA0E656F25E53CA05630215C5CCF0FC071F124E48C57C5344BB103D51A1FF24114426A324BB16D8F80D3CF2D0CE573F4E50DBD1CFD66C05430A1109374CD84156D2E31C0C3F4DE2F1E225B5CAC05D56C4478929E356F7F46032E2719E07BB1EC207B32D241C87D87ABF28C7CBCD38267CB011F26A9B49090008389417C7A219A9F18203E6D907D63AF4C42C60F7FD99C7F9394021640F450A9A072BF2C1CC3EEC88BEC866FF1FB5F032567AE053A408342A56E3068EA168B9E902068EF808916EA58004FF31C31DDC3FCFC2CCC92E0DA09623FB523AE46C8CBEF92A1CFCF4C0F523430E60449E5825A81DEAFB2E26B3131F0383B8FEB4B1B4E1499E89E9C5FA2ACAF1F37C422CA41ADBF907EB984DD65D8314E2F71E8AE616C0518DE9B8331FB00983490483362802FBA242E4CB71056E3256BD097504AD13F577B36A2F9FBC1EDDD25D9DBC09B3401D58FBCC9DDC8E74BBBC897552FC826620060D3777455BF76EDFC059E5C02BBCCC0F05F86ACE1903AF2BB08A962BFE9E2C435EE8C580502351669AB7DF3D9F6B4720A0509BAEA97FEED3B8C769AC5D0997A097852C72DD6D5FA0A7144E08D667F21936F434953EC3C88B5BA2EDAFC4F87BE8BFB5A592847D15D5E5D972710A4A75A5772DA4D9F156563C17B1F0F242457A198658524B0D6A46DBCD26EB9400DF3C4C942FF53E1102411101B2FCCB58E3FBD16E725147960AD56C6CB6DB336857EF137C49D53D16E98CD7A0E856E2D6B391A95954ECEFF3B9956A6D0C279DD9E1FA5895D37EEA8C54255A6244002C7542789453B41463B084E7FB3361923C43EE1BA115CB254F47E55E6EB79C74DAB4C9CCFF486B8CF5830F23BA23C5CFEAC2DDF7D71EB5F54141C100E0AA9873D43F0AC1034C54193BC63A560A0C661047C508062A70B3E575CC185462A75230D91A3021330D95F3C807688B032AC15A9623A833DB718D04603ECE983F1D21A4513E80CC67FD34EFF8E377B775142344645872844BA46F5AE6971E68FD8ED640BFDE9F276E26B208A8F3D74ACB739C7EA6CB26165EE182F165EFF21905DCE3D02E432B1193CA108B6ED066CE95D549D9B12445E05E0583EBEF32F17EB121D80EC26C1F154C4DA2ECAC841BE1CC7224576EA43ADEEBA53C4D58785F36B6BC0F8AB23340B92CB87DEB0230869A52DC634F68A83BC1AB8A4102264CCDCA39A51C331F6DBE30C18C00A966E5692CA86399264399DBD3F02FF8706302462D62E4D16B5C2FFEEB02A7E8447C2CF1A3FBA5046C792FAE0B1079621D59C1D7AAD17CD6578964D1ADCF1256F2A4EB4D534C51313BAC17A9383B5BD02EDCCDFE59998D2FCA7F3EF52CE0B1842368EA66E0A83FEB581A7137004655957E91B25F5435BEDC0ACCF69238AA4CACE418F08ED0D961E13B2234187597FCC012769F798D969C13F6BB4042897B0D8C32E6CFFC06680B1E0A40F5F149B5974B0E7F0D45367E93B415F7F6DCF86C2131137DCD0DE30A3F1FBCD5F8214AB20BEC9738AEAAAC200900F4B2074688C8F3026140A354A22F83BC2ABA66407F87671C3E7EA4EC6F8272B6D16F3C66C76ADA231677A9B1CF496B3C241D2D1ED7DB703119CEB162EB097A0AF2729D0D6CA8DA57D83E1BEFB880EBEFE090F6E98D64296F7CA90EA1C2B26131676232BB394BCD1A06BA83004BEDDA287073154D3BE16C242DD65839C2E1125B3E66DC93A95C62F5DD31CAF9895646D5E2D183D40EA09843F5DB189B41AA4CD1B40C5792C2BCF9F44823EDD4246100457299E30EB2C66896F89F4FA250AB19CA06EF5B899CB96FC5E0369B773691E3447E68475A7552C10F96F44B3282D92AE49A246508A67EAEB9F4586074D6FE8A44D2D27C7B8FB4EF6BF701084B73641E41AA7275C1D6B517FBE3D60F64BEB9119F3FBE96A11AD45610E63CBDBD79929003BD1F2DE89DCA036973974FE5C5D5A8B5BF82DE0368DC60D75A138CD91E8A9233BBD439666ED1211EC2FE7D7BABB1247315DC480CC64CD8F7859BB9BFE8C668F112FA96EA48BD91088EA44F40D3E57314D3759F867BA52E52BE822400D9B0C2123F50601EC5F8E8B562C4B1F49F9779A99C926FABD8A74173195CE23173F4CC4098EED74C8E0FA74320772EBD1847AFA1B397F5A6F05A00179DEF2E6C3B092D9182CA3C4E382C4092396005D8BEDF6248C81D3AA0854F0AD43C1079CFA1E0A42650EC9D7B9077BEED377BF5FB2F3D2717BED04CDF2F7E7D1F45CCC6F71A780D2E5C3516E5F6211815FD691E036E4FA002079448AF0E005B67D2939CA88CBC57567F634BD0402EAB06805ADF8BE550B3E27452B372CF8C92A7055714A228986FDCF4045421321555BA06173CA0A761BEE635C541FC984C5BD3857DE696E9B21EBCFB87ECA437E9A7B54F4CBE2A601824EBEDFD5446556B64E1A88B0BD9CBA507C5419CB8CC4CACE48A0C9668FD2D045E9057B13BF0785F59B35338501B73B44CB749EC2EBEA97C9D29EECCA6AE1FB719F9A67E8E175D50B2705B6149E9D5D257B34487B547FD050FE5C998412AD0B4159C2225EECB67903FFE332CC3B86266C22FF7776334543C1E954AF5A89C4FE59C1F1AAB5097024E2AA7BC09831C9A5ADB713591106CD3304873BCF11A9138FB08B7485E123DD8F7C107E336659DAFDB866487E197589DE47D2DE8298EC3560EDE21A633F820BE6352CDE9AD51515D309C4BB4709F171CAFEB407ED1A02BC4AAB53588C2CD4C273BD527F8B4078925FCFF8954536E0B4366E474801F5B938A4B81F037764D5CBAF19F237CE37D00246C60DA652B76469BECABD51F873DC75E520A75B52BF585D664B4CB9A09F8EF3C03FCBDE6B9E595C1371C2CFC24C16EBC392C75D2BA04212947944BC0377DB718A7FAE0F6F9008AC7DD30B94C1FCC6BAF750217C0119736E4F3B7E744AD72F1F0694BC88F71E4BE51ED8669F0E814E12FD9F833286E2064708951DAB852774D4620A26100FB44A8A92B86E17507C036CE6F3ABCFAB91193CA4BC4D4198DEAD7CEFB71B01FE2506995F2ED3A02EBB0355E6B67A2294648B8D1C1445164D99B966588CC253D1EA1361163024372E2550E9D29AEB4234F5F9B20AECEC01862CC98365F1C57FA4D5E0C1F8BF189E169669F825DB43172D1F682DFC7729B2AC0C103ECE4ACD982D86C515A208519D23F62934AF981DA66B97DE2389F2F669EB92CA4A5C4C844FCB19903371AEAEFB32E210F2D1155576566C7B529A98A1CDBA36B450F3948F34F90A49F50E7412E6EA68BC3BB0B0A0AFE3BDDEDB718D5A150EAEA784859953FF1DD1B371C539243547FCDFF4ADB06C61CB49EA5783AD06BC8C1F3E32A95AD3CA6D69EC1D226BF9DE0562888839E6243CD150EF6953C158F9FEE5EDBF173997D08509EAD1ED4DC2AAA33E18DCA6F59269CE457C412B58C4483BC96AF5069D1C2E3F2F8DCC5FE2825DA21AB2280984C359DAE44C2367D6F002D64AB47F9B64B5656622517A5F7D5E1A78D4182B6BAA82E0490659CBF2724080A9ED39BDFCFB21BA362DC29C750C5034A04EA5A85799E01FF8B16ACD2EFB8328BEC686AFA20E591E7C7FC55BCA8BA1A3C388B785AB0F57208CEBBC5619AE3A0B799D1816B013BD67D440A7AECA7D0BA517846B68F70CB5D6ED46C36F663D6F242E8FD8C620C9383EE1BE9250D63467504B229378D2589B525348DFF852AF1676A18DE321DD46D7AAFD3DB1825F192FBD3F160E8CA400B201B1A61D0864257CA340F179F5F1967659AF4789846A4D086041441DCF4267681B83D4C8539086E276C21BDF677961015CE550E41C2C45D67A09AD8F56AC3ECF1058F366F2E35BAA9353A5CA40C7021DD09AC9FE0187C10EFAC7BBBF3B1A462C9C6C96699741AC16D3526BED3B30AE25B8E8A9ACD8CB2BB6C28AB89F0A3F0D0F40D10AFEFCCB067A37A2C93D3E8399A366B5FE4829870DA75B93249DBBE3C9AC9FAA70C4E414EBA720C323E6627759E7287472C3DB9CA9B1A5FF03E872374D6B893BA4887AB227E989D9D4D348B3965F7B96C5094F42D84432EB771BFE757105966C9A08D6C58DED7DC216B3D0ECAD2D0B025DF33CD3D813348B5E08AF95BBA08DB5BFE5D0A151C98A01ED27661CCF80F416A1AA260EBB56526AAA289F17FF5AE97CD0907D9143BCAC73F1F83A2A8DEEB3ED209EF0952D5E463D87145E0E4D8BFA1741E3FB737E14B5924F436D0183D98EF836DCA3F9623B50CC13EBB5F94EFBB76EF9BDF40CE6EAC9C49852D08E2A5A193D1DACFA04EAF3C545E0E25E37E94DF51FC1976BAD069CA530E19EED277141BE62239F47441B88F6555B0A998C1BAB53758A41CFD8CC4CDC54E1158DE15910408A6E79D33CC37F61917027E9D2F186466F704647B1CC1CEC06DC1AC37D1A668D44DD8B12621AC3CBD2039BF5A843A86FA492A847D6552E1570DBFE008F51652D65D03D8B613AD917B81CACDFD19DB7F4DC9A14E237CC6D7268FC5D3B228BD88ED36D8360488509C974E01433D78701CE07108C67D0489AE94076106B045DF7CC508466D35BCF156901E53AD2B5ADF8795751891A5839033A40EF3F5DFE0BBEBFB2C9D1C000691F902AE490D382EBC87FD40E76B30DAA963254674C7B6F304DA2C8BDBE8E1DCC87DE0486B4FE6B57A18D5A9E9E4BAE776D6147FF9C98372426EFD30C3B2479231E624A253A7B0BEE31E0FF739F862010AF03E227A12C3ED1F33EF1C0DC9D48A100FA24CE5C5D8B5F88F92BDB6A3A5328B0AFA983D57A1D3320A682B5CA94E75DCC69BDF2AED0C05887B791CE6F6F8885E4CC55C3FB050ABEFCD3AF2CA603172AC78B3AF2B047E506639498D0391A06DFD328B8E1BFAED8F76C6E4A93E733ED1097DAD8663F5BAEADBE1562D40C772D376786509323BF059FF17A5E6EF5A31BD668954766417E6633BBEC90B53ECA61BADD4037030A55A5EF4129D4958F6A8A5ECAA1AE7E220A87AE996AE8D9AE46B9C60FEDD98FF1E67807037970C92CFF9EA4B64F0BF8907198A6C038F9826CB968B1F301952E1F409DD6AA4EFFCAB157E792ED45830708ACD7A50BE8C08FCD12560344221104827BFA495604A57826A49F90B8B694B2BCACE4040627AA0989E3DB4FB7167F50E8A04982084FB3ECB0DDCCA5F24A7398620D19B37309A4DC0DF28909E16645F35A81EB3C5EF6BFD650571DAB03A7FC02FDCCA5FD09C9D2D3DCA888B8261433DE88D05DEE5D6165080A237D55ED718486AAAF1E2534CEC3A87048ADB40EB9F9DDACFB2C883EA6B20BE1EACBDD72432C7A6C97721FE1E0D9A5589C951F7D46F2C5F0FFA909FBE12E1CCF00161E741C4505681B0B018FFACD460528795CC3810BF7F94FF9B75884956798F21ABF36DEDDC1F95890894EFC15EAA6F19E9148C71EE9BF4CFD41EE3E5DF8A449FD95E5744793B9C223D26ACB44E691D7E5B68D49A19687F0237E7287841D3B0B4483E2A7C29CA81BDAFA5D96D9D2CB6FD9724B9903E8CDD03DA810EFBF94BC7179349E10566B5A314F81327F76C5A8346E222C408EA43FE29439132CDDE79D0D69C45C7217399205C2DA4D33DB521940C4EED74CA22645D5B6A549E8712D0B8CC50DC180067D13457ECE66D489F687DE218449D974620B3B5462FF3A7F00C439AEC73A53303AC51EB84BBEBD51AA48A5DFB8F93556BA540F5101CADB8BDB912D7BC87EC2AC67971AB99093C8616C4D1F3E7B06003E4FF22D99E6CAD7558EAF5C1410199EC97720E5C9278548E7EDE62BE9105A2B27A54D95673849CD5D60424ED97BB64798263F98A63DB58BD55965D3A4283797CD88C7CA67B1C4F90FC7237EA35AA24DB18A4420B827B3FF7FA5472C31499480EEF5A97BB967D1EC46E7B05A3D25212C75972D48A9269D67048132399E1BE0C02150A3D48717E4DEC2ED47458EB870A1EEE5381209B5D182DA2093AE46A4D99E3D4F12ADD71001BDB936FE8AA96797982F88EE67AA2E0F340E7AF498D5AE05C177F0BD2650A02ACD4CE23018F9E00DCEB9794C5C76418EFA65634E01ED5E9FF94FF86AA73641117BD554A9391874A75C7CD1E7759755B9D2A7F367621C0011F61B588D913C7AA0A0EEE3A2201426EDDCD56A020F54AB41CD899721D6E1F05F8774CD5FF6417CB68EE14C20D9234369C9CA59627B8796C37B4ECF1DE2F981ED0FBCD5737DF0B82637D599A61826909C978A2B68CEF01C5CF84B50BE77B49C1887544779BFEAE3F533286287E48F0ECC0D36C27F1209314726855E61E5EB5E9A5D7E3516E29DD369F94D72004742E246AD4699C64EE996BC7B2A079344ED32A528A9CAD6D5AC02970D0168A8B5BC713E28934F2880774418550AC2F534D06B61E627BCB8711AD9FC6F2A4D9301EBB74E1F3C73B05F28DCE5623BE1BFA871C14A947A947CFA806AAC43AE515D6CA65436BA6B66F62B0FDC8AA4A748DBB72D9AB087AA39561271A986229EC02BA3719CBB1798DD333248E4DDD0B6EEA4169D3B03C9F4DEF9616BDF97AE993F0FEDAD31834B6F78E23164B556A39AC1F209581F61AEADD8E504E81A808B1E97F79F987892A8F7FC35FED9B1A2E9D3E17BFC5AA64680DE98664FEA7B479567CBE307AF2A8516BE4CBF9EA030471428CF802FAFF85701AF96CA1D8F50F5A79AD63F20C5CBB954011BE4B1A7F627A8B5F5A0D022D27BA6FCB8D3587E8632A2FE5794C7E8FD09C9AFA3021B9F43BA82EF48A3B1F3E40F2FAE182DDF9558F7033773F5627906E159B794C4220219BF1A9878B175996A16F3CA1DDEDA56B16E63C504354E5E42FB90CE4D2C1AE7C93D8CE27480F3BCCC076CC253B574A7BFA6D3BFABEB3FA6A19F196C7E31A0D6E9477F828689FD951E0FB033DBEFED6C680F0FEDF2F43F48C0136C722601CC7C4B48B24121ECB6BF84D6B3DB240FBA1E014F7E3ABDFC1F9B98A16F4D39826BC1EAE44385FDFEBBD649BDDA129FC7EA3F50A5F481D3B7508EDEB04FDDB3006D6EE943930E3F0AB405D151F21E8AEE5BD87F225DA6E155158DE27290B2048D384BCC54F0EB905961AE4CE5E6E93543016F62445AFB5C39C3EA2F3367A0B8F0FBB83B37518C5DBE1CCA1DA9D0B54F34B15A1349A2F03563732DE14EA9BD238F481D9B262DF69D24A91534805ECF57A538D8F08B2FF11E96EE692DFEB106D3515A7C69386A781DB1D5434AC18713CCA12C92557D1E7DFBB15605AE3BA86267F3E6CBA42B6084478E460F092BA2649C8C94D66128FABA2D0EA7D9BCB20663B0DE6EED2623A061778DCB40373B8CA38B02B7A49F6940D6D11CEF549CE80212CE8D3A85CF2D774431343FA1FFDBC71C5334B1CEC4D4E0EB643E1AAD67D1A5B73FBB1BFE47EFD83CD17C798044A504FBBA5726429F41DDEA7B7265A76A48B0BAB4845704C771638977511092BF6C6DC9D574E6288C6A3B96BFD37FAB695F8DE20F28ECB27EDA70A07FB2ACDAD88DBDFB2DDF06E83ACFD3A136C5DF4811D34C242BF9206D579BA8DC6D20E8600B726C9F1B918EA573B9DB2F96444E17B6EDC15822B85D452CD99CBC847AA205EF79E574ED9625E33B6EDC793E5"""),
|
|
TestUtils.hexDecode("""
|
|
d645f682a1b7aa2650f431a828463cdb131c1c317bc2d9a92477f9ce4a7190d287bd352213726174bb967d2538e6f796698924d4808a15377e3d05877a560d2cfbc13150acab39cc6ec464ae5fe51ef788aad862bdce80a3c3669186598ea3f01dfdf9479caf10033fa89d5bf164b454b1c909edc6a85793b2f3662ca4dabc42bf621b2c5f55b357d2b7c97b21a1748d6e6d0cb3c2e1d891b057f0c3bf482f04add99ecb92d32a099443987c25b1a5e26930082e9719fe2ca845343c3c0208d35cada03bf51f8952ef49c18c916c03417e217342ebf7234cf9270522b3f6bf7dbf5f7aff8b245f1833b8cb314f86b1e407f4e0b49f2f2917bde67c9ddb7fe39a64ad96811980b530df51645a89c365602dc6a6b53b67e56c74951d72e0cc2a7ca5ca0c1b32c3c9700fff54c317b3bd1474cb3cb402a85ba80def7b994f84018b9241ca20cc5ebe6cb24b26b4ee21904b658954fd9716004a009b762c5eb5afccfa8f6153d1cba1358653a88c0b87dc6478578929baee5bf33065aea3dc0bf333453ed0fda613d9a35e00eaef91ea96d87b676b66963d2affec30cbd7dbeed1f36dc93527db0a082d494afded3ac6df843e385a53d8a7a0dddc2a38cab1a92a649072768608fead5c538d8767a75f46bb73f7971a41401b8fd50312aadc6fc5f2096007d6002013ef9fd66be15822ca3b001540652636a8dbe65b2b6324885504ce3233f6fab6bdb5d05a10d85ca8b9934a5fe39d7c3a095530554d058f2f99f9c2775a0822ceccea548a35fcae73ee931ca01ccaadb226f91f0104743c423b220b9c76654c9baa1a1e60310673fe86e8c71eba544763f94b80dd075b3fcfd82956da9ffd4d4a0364e26cf4c4d7f0d2ba435a4e7b51b01e9cf55251a5f8fb4e32ed1fdfb6dffac187bfeab67b7bc06fbd1d623c68823d45d708ab29117ec17fb2df9ff17378ca7a021b504e678e4b7371f2aa05588d710f292e547f719f7d2e66ba39d382807ccd3cfa8ef2d33516053e6ebdb2a8584982efb880180c45480939af7b3d72e71d046fc78088c16aada249506b079daeb16056bcf49d495e5f5bc9b64125f66c809e02282e26a8b8c9656d19b75eddb4310daef82ff90bb199142ce3ea68dd6ef33cf4d0f2e7981f2d6d78beb9aa10ff7421804231b02b39b3e9c4be9363c49fce0b5a460f49094389ef2c28bfc45c805a563dc2202bd9da12485eff443013dc8090be20ba1430eb71516fb36926db06d59f5313d43294d09a5c242edc04ca7f1f69b3f87861fdd572385ad400f66ff9bf127e866957b5b7ef7e16f0cf93cd10d77b87894fd8c0f184f0a359cadbfb5fe6d91a06bdb000720f202f077cd4bf5c8b149565c43b4a07cdc5a3dae7599d26f3931d101d086b9546be593ea0bb85a1807eebaaa798e57d88d4b042aa3e3f621206e22f66335792b606f419d1dc63367d73dc462ebb177d3d9d4532ab6c39341b447af8a982d24300226fb367987aa37ed10223083e4db66a5a344628310d46174e0c8b466fbc0809905d416e1b742f3749ffe7ea56ec6c28b085d71d4e315b4e49d6ec945d23ecf5dcf503c59b839446abaa0ee57179a6567ab4d02fd1025b671aa5a464e1892e9e2b96248107fbe5fc4b792d1b6f62ecc6195be7acd19d76eabee8e8deea2ca2661a382f06e4ef90179a4fbe255f4a617bf6c1c3c564e05d1eac7cf110759364e7d3045b2330a52bdbc8ab2307e876df8b0011bd2361471c6cfd7fec98dd4161bd7f7517fa6bdd2d678dd4dedf71dfef7eef7d28d03131aa2db37f163d16818aac1e4daa94c6fc8ac8d76f03f981d98166431fb42081dc565049be93013f71832aea1c20dba0112222bd1acbd7e7c112ebfaa6e264655950a6fd78da09d55838d2f79a87a311eee67f023af189511c7e215cf8bf5b8f47ec397ff8ed22f5825814c86712c289977998dc8c7ac8eb60cce95ba56efe213043e7065d8c6e6c1c6b7c4b87f807e6375fd93e8133b9ca61735d2399bc2f0cd4e6d28c21c4172f26808a70ec7d5502449e335abfd7ec5e45fd298cdfc8699b2607745c30c89803cc741b1c74fc6698fa95c1397b59ce6a08a19d3572fa395af1f913af021cce85d40f53d511b2d6ca6860ffac07dae4de99cec54b0608ccefa3395e327d67aac3f8940c03c737f0066da5435ff060320aa68868b2fe309669a014e0ce7eebcb3e9f3d27684c0d14be48ef4d8de1f0f541c2dc22160aa238f736de0f31996fd1e554ddfd33892e998180e4a47fbe34f6e9f2004d009e83fc55e7c921a73390f6fd44a7f32122968e174fed54ad1117344325897482707ce6cb45121266c870f3f560c4315f046e3798073ee0ca7ef718176458c761825f7288b6663bf48b6efcc50e35a5ad124772fb64967056ab6a39658973471ecadd3d666e6f0377fad3b7390dc9ea67545fa030d1085244082ac60d0ba4d6f0ab44167571324e40ad664fc95c25dec94bfd59b32332ca5efda8288965284c7f88fb8045af9169eb63e98405e2aa3e949d4ebe07f3450ce6caa14e2b399e26a347d88b2fa8a301032c39bbbd945ef5d213cd4b3418c25cdd175a3ab8ffa41679cf6359ea3c28905309af59f0f92cb1db581e21da648f096171953fbf62d53da61da8eee1d24053270ef6911539a7ee93c6ff45a0b465ca879498e131d37d1a05be88fad8cc28a3026c7853b9a48bb8f1680889ebb3978b738ac7c3c54a0bbf1ddd79819a70e9d083775095e1daff66f72df70cf17e746c70f3d291a343d4530b6c9dbdc861816ad799b1a63f807fcf791fb1ca2e3160543abbd10e4fab61c18c3c4f150519d9690f7d22c10bcfed5c211a6af6f438737402b425c5ae274ca98716bf64b127ec0c7a6cf3598e9bac44149b93310ef5de9fd8381a961d5b9c166b7a687072a1aa27a8ecb2d9a023d353bdd29870650e0626931654ad80a995d6c5ce63ed42ec35444ee57444ef7edf45afe7255739b7ea731dd4c48a1497b5e6c135f4ddf4cae02577920f795809c1d00a391f15e7e376271c0cc0a09ef69efd28f6a44b6d2a9577ab7fd2198f81b92cf4094c7186e72fc3a379ec9e31b7bc12873a0008f40c14a81180f4caa16aee8ed827341c08fa4c98d3be393d524abfdf5546999acc4bb74e6d72b7db9c443bf8bc300fbb0d19ab0a716001cc87dd27bf2605930cfa437c08b0392e8526a26dac97e1e692baefc515eba1b82fec70c5eb4fc950386be3a5eb3379537100649cd192d611dc90e5787dccc69a364afa632abb31de145279e9d736ac1f6185f332b75875006f01eab3a48ad573d4e9b6849cba181d1aaeea5120fac5da72d81e7a36fd0847fdfc5f7f8f589b98511bc086a107d1ccc4797308be5b590ccfdab138078ca19679a5bde6962909491e1df2b048924a235819a7a28e3e3e97105a1a400c0997376ed9ff34b48d6076fc8d9668e6498171b82d7dab2418146610d80c2c7be50f614c6d5adf8511ce282d2175ca5101bb18dac9207813b9be0510a2195cc2c746d2bb99d3049f29374664d74497e0372994583c788765f3ac918db9a4d4d1f2c2482f50d013e7e93e0a5228cc03f4db0cfd14aacd90ed05b7ff5cca2b00f577e0ba47e7a0eda068f1aebbe688f167e3af3bcde28b3bcf0e89c63389564fd60be1c8919ac245db3cab86fef9d0bd4e365c1edb0472f4ba23b22c1918a399e3e08933031b2d0ada07b4c89abeff516f06b67e2b5c6bfe4fb6671ea4a45c375b9310f07278f0594e4943f4e45098e3c68c2c7f8b4eaec3b3d49a21c077469c84407b2ecf958c7aa3ccba4833a0b8c6f6cd8475c4d239608b9d25bcd9324326b4251b89579f2e902724f26943ae92b95487b215d719236f69eafc46070695e8d4a93053e275b93cf87723bdd589c15f722c093ca50c1d54121bcbcdff8c4e306cd4f11fcc681d6af09cc0de076a252bc8583b5afba1405798756432a729b177906ace7f3b8340f3526e7688fd49206e6853b4c72979469a30c584786f2b8c75cadea9eed04cfe68dfefbdd2ed5e1e2b3397ffab7c5d84e645a4049e50bdb9cb2453092354e0112cf00fd214e22681e4111a7d4563b84828d6bf6450facbdeca5137699c551f2b0c7a0bd5ce147dc71dc2bca5b0abbeeb109e6e951115c9c8448d455bf723b8e18e31b480e5b17c8de45d3f73ed313b9bd6a8f5156cabf25eea4737d4dfc8ffe042c6cf665bb346d89477d1faf60ace914eff5db92d82ab2da4e08de466f532d1f7c639d71e6c3dca9bff0c5a4948540cbecf4aa65c4dcd7caae9cc3ac56c04511518c1ebdd02aa8285b05393ce9fc2d2a3d8fcfcf79d4f1811d9073346d67f4f9af28d15706d577f8592c653c315a396e03f3dbe81c339c220aabd4f654239b14dae453dbd213da8819df690f38ab52a1f67319dce8ba5cd33e9bd8f5e61c0e0107e97b7bdc384269d410cbb77e19f2d89e38305c6e7dffb952e331bccdf884956c9c67ddf2d56c048b31ecaadea55e8efbbc94ee0a19980cd30edfc85d6b3ebfbeaa51ab1bb01008554717bbc6b17ce9b8b255707f95b7302d63b0189aa4e9eaa966429c1c1b9d2aaee73460a2335455f8e9df22a2c3861cd354f5163b1f1fc212f709c040516172a63acc5e6ee051f5a8a9195a3c0e3000000000000000000000000080d1418222b""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
8ee898ba956b2d9173be3179771f705dfaea460258d89ebb97518aee95f7560abe8e02119cec52c27d34c28ef28453699fd6ce193970443d211c471db1d15d60c59facdf1e49a57e03e2398a1e1375ba9f1250828cab80097369832edbaddc174c175033649f9dcaf8cb0e3bfcea913eb47a34946919f79809194df8daa2c4ae96c85bfbaef5d2519e3248b475b1e3f99cca049afc80599e671eca3ca8db36163dd4356d03929fffae072fafb039c2b091e89294083573550f5f7a5d8eed887e26379856a771f65d31a70a74db83ffe8814b7b52ae41bbce25aa4c33082177045d6d2acdaaef17bb73855f42001469c6b0717ea0a1dacab68372d25b575abcda54cc68db475132d20cd722f2e9eb7c2de6280ec574ece4c921952e79833f1338307d468df5cda8a70441b362cedfe524f2e9167070d475eaf2339821a1a1d576574b986d20e82d69e91cc84ce00cc82f4aa1c9907f6462119997701d9bca1788f1472c03bedc490d840301dba631eae8c1113274faf8923ab9ebf52cc80bce16b1db45d2ed8e4a14c4d63a74cd8d91a48b1663f8246312624c125e3abebf2d57229ded63f422e4bb0f126f9e47f5c301493d4c63b0ef611a7b141b74bc4971e2b16d8156dd759213ec7febbe076a8a534535353d01617b2d119f912d112e4f53a06b9f267b1b4d2feb6688195ff5d57065f54b2a18cbdd8f9d57a3588acb5822291cb8e01e2cca5d74547db3cb84cddc2fa2afb9008af15aba2409662989772108283c78b6a745b3f8e311998de25c880ee8a74f2fe99e45a7ab3db69e7849accfce7f8c5b726a888dd2bba623ab26145c933db5ccffcf7dad6fb7ad918f93fdef9f710fafa54a29b774d1ebf7f21c339c56616fa1c3865a0d57b45d0c4100efb16f8f62972cf5c9855bcc537270dc50c354c324462ac1c71d671e0bf37db744542e4ea766cd5d96c9e6349f64046d8c402036372d43705b33fbb3a261ee63700f79e1c18ccacab0d351c697ef40029c08a76c3a7c2bc185e03589a91d4851af6bdf83e3711aae0037452a2495d7a88d881504d4d251a24dfa389721c52afbfd0ecef34ea2458acf120bb122e614658fee8af89dac06797ea2d74ec3ccf3a1ab4ff120d5d69e0e6b08caf9ece5c58d0907419107d610ba0a61359dcf3fdb6209c6ace63e9442e67b7e8e78e94cb21143386eb5d5011ab83cc9d5c5bd03af2e1131e18433f0372a29c4f187049f7d58b18ddef1fad39c46c433268ae6d09ace463a5e49a130376a0dd89b38b3728161b14ade010f532172b71e887487e9ab4eb97f471f6aaf1e61b9e7c6742cc63d6b96443d67488746a69fa23cd89e977b891c2b57351ff75f2e0fd0316a561fbd37720cac1bb938ecc8fb5f5a96b97fffc1029dd1ffaeb87b20ac792e96294eccd88d2e8ec625e0fa8fec32b1592eac7f63c53320653dcf54ed35a05809ebabc6d382fd6eef515adc3e47319052278fd2f6f2aa22f6b85a71294e9d905228090a70314287802dbde42cd94e06747d09371e9860089f62c2ffcde6913a7b01880ef254ce9f02e6817ca231053d1578eeecb88c5afbd1cc23d5e8f10d983bb9b653f03c21fed44c3a327b967fec03ddcfb6fcd6ae38f2b0e1ad455c772b5628f2db1a9928a5be2e782871dc99c5e53d47a7adffff983ddc0768a52a4ffc3295f804bd06271f134c3d54b7539ec4431b34c7ff5dcbadb2cda2dc2934da8c153df98ccc225df28998467a782593225e7dcfa86f51c65777fb79d26473353a871d82341bf9685ecfb2a10a8525d7962247c399d19fdfcd24da464b04e3e312292bc7749f15fc3948b1b49c592f0b5ad01b0d01cc63c3274a16c1ca68b27ecc446a440895009251245a0989d2a643293ee17569c6f8551125279d3454472c8697914d22dcf5c2b0da92466fb66f08710957cd1d54928de436409760d481e9279fe250d3d4f2759db8fd7d7702e552cf5cb8aa30acfcd2af2c0546fb2aca0c687570dd398cbf0c1578b39c1b20e433f0b8a96d9ff715cf72b09b78f011f9c0c05ee2112074b7824179be2eb9099748fcd2d79919399e16c31adbd4decbb52bafaf895575e0c7bab7688f237cf0e0b88b714a3ac1b7742257d5ffce53f92c793f5c06b6193e55fd4dfaaf05559e2df4e12e5982c3679520db10dbb04f88a2a643d6ea0d96a0cae9b45c9d185d2a896083cb2c002d56f4559cf2aaf8cab564e7a5f14628b22cb8c0e2818f2e7da1ad694f9164228a773113fdb0c3734932d9c845fc694ec3c8b0237ece02ee1675e26ed57aa28d932caf8d31f9f6043b326211161266ddbd61a9c8d241ab049713977d1bf2d446f3c0860270a401095620db0f6faf43af3b1a6b1e33fd0d769501a27229e4195a138057befd232417282d9e65754d2311e5c547e5a85fbc34900edca8cf487ad2e3e7fea9ca7d88fdbebbc2fe736353df14221accd45de5ec983847d37821b8456c687eec93ce790e1a2cb6c84dfa2fd9aac2bd669d23c02ce78abcb1de43c4f3ea879b8b73123c00b48517b3de903922ebdf51fa632bfd4debb845113ed4ff66f9f20133a3f2a02c933a16ed747668313bf533bed5515b3058e86ee68f0d3f043e797e54aecdf7ccdf5d771613b000b7ac754a4ca6f2e2227d00dfb5231799698f12ba2975f842aff5f7252d49f05a6713487cebded694aa861bedd2fe11fd0fc4b4dd6a54fafcc6934aced6c75680042cb4137b669786219c197803f34b27ebc00c13"""),
|
|
TestUtils.hexDecode("""
|
|
7C29C0B8E2A111F457E2384845E7698DE4BC9BAEF093F15EB03828664AD31C387B247A525623282460D60290FC479A928024CF62571A57F77B17DB0AC572CB59723490DF79E9B1B31EF2C9488B6D758C43EDD9162D8F6C0B03F43B08D646172A1F8DFD71D4DD805A3AFCF1C4265BEBB71FB251DC9DEAE670A664BDF943ECB00FB7EFA37624953F94CA760013FF1270C1EE7FF58756CE19C204220713724AD03B10F1D6961CDA361539A8AAB6ADEA92AD782F441428C0018D85C0505BAA793C752DADFE92BFE8F033931D47575C9F83547DB18DAEC0FEE90E83967E0D0DC93281000755303F0F5F05DE041211CF842404CD5E24DDFA3C7C83DE3EA21EEECE37A52E16DC80A350B3A18E88EB3C81C74D25B56CDB446F6198DC88F981F2B1ED8DC94194D81CAAD971A9A3933E9319047C5F31530C7C98793A0633875A14FA5635CD1B0441FE267E79C1E874BEA968CB63E20E7C48E7BAA9CE8393FF9A239B5A1D613DA65F7DE78BDB793AC72566FDCD06CDAAF56E18B773737A82298902F7B4890EDABB766E990ED87C94005A2E2450AC1D0192D72468F81DB414F88CBF07707A95F549B7A9EA0760821AD710D52787730EE8917272497E5891656176F991F254A5D582B5975F95AF740421A3C18A82158AF11DB15C154F17ABE1163F997C64A3BD989A573D12642B9AEE87C1612A39A8A4FAF25E35AFED3F2DBFC8FC8A2F9DFBC683CDFA3227107C50526149557CD773DDA16E36782A278A93CD7F4D8FB47DFC37DC3E389D164913316A885C3A800DAD0C57B1082BD4D804BB6A117C3B41E7D8AE9CC9622AE3CA8EAA9A0B502FE3F5A449BA8E768D2C98013F681C68A5F4AD3CBBB83F302457679BCD3F35C4D6176DD8D2B670E87EA291EDCCEEB9917F98CDDF5EE1689DBBC85BBAA30D191F1965EFF8FA9B0073D30B1E2456FAF880110BA9E75E4E29C6106874D32944F49DC7E7E7C56ECB9D287F2C2E87A779052F9B84FF97AAE007012A5EC497C4809F0193C69E5B29940510A354C866505424D4FF3853C94687636543115A73DC407C47927EDBCC4E0567EF4E451F0E464A1385D2A0D740C7327F6E92EC6091845356C2620EB163D9F774D7781BFBC6F6F652A4A2DEC73203DF5643E1B4C3C3DCDF0B4A0B160598EFB56499D2DB1F1E76612356AF3D708F9D61D968A6A0193D9146B2983972271A4C02E2136E6593DC47FDE4FAF2540A8F7744BC3230529AD1C9D2FF65B7671B5A5B16AABACDE8D45A940ABA4171E21090AC6AFF54CD8230F7BCAFFC42C028E6023E55DD02E4B7F976998AB5614A5681C615BF8E9E6959B038188F71C75F6DE44A6B0498F2A9254F3B0968AE7DBB49872D775CB0A5725206D648862734F202DF470770AAD184F822C56400F16F30F8BE40C463CA3EB5ECBB15D51CEBCCEAB43BFAD7DE7679894B90419B65912D67DCF2335212E82EFDB6267EEA331C1439BE2AF62E584C222C1052AD91C7F5DB6AA649F230248A14AA6A532401A28ADCF822089140FCD3B1CF2358DC26939850DB2721750F1537424F6BF2020A1B4684ED79402917D1028C1B59076867DA809D6C5D3F47277755384C20624388EF0AD68BBFB6A63005AD1B6E48ED654E8362B2AF7BF114F2D144A420712FC4EC71D408BE55EBCA8C2F185E7132196B1B76AA7BE44EB55DF7C82C768943D649631E4D87B408DCF8FE470164D9E8DD1F48CEE7F6BA93E239F889119A4DEA118D93F1474E516139036D640EC788AEE708637A619BD1693BAB6C9EE9EE0C495C0D0F8912C0F14199AA69B960F53E4FD8E2771DE4AAF72117A5B2388FEA0CA3BDCD594D1760905F26482459BDE80EEDE3FC89F592CA16B65B27E9A21F1789BD0327A26EE2224C61D80AE8FA6053480048D15019A80FCB5F3B3C6F64C168690E4384AC05E856BF341531045D2952F2CA8BAA0B8926CC41AF2D8BC5A1576292DD67114D521DD4AB535A77E5E9BEF8EA01DDC7C65446D11F90D6CADA94AA1AACFB1BC3551353D09252FE515A465C1879071F6FBB035DADA0BD25A022B026AAA5B5BD420237FF097099CA2402E68E4530F97A003E50CF693D1DFB551DC4695C760138E88B8D11F3075DBF8A6D9BCB9B1242648C0C9DABDD9D49CF132B0766302437C0CD81A0889585869DE92E6CB30C31265C84F58E9437CEBA891422967AA546EEF720A8FCC16EC7591AA0D47998275DF1AAA5ACAD1E1C5868CA430F4FEFA0277262C69311FEDBCC083114AAEC9F99FD98631137A117A9B48B32A6D88E76F96DC58D741395BFC102E147C456D3A78A0FA3D186485D65B4E6755B53D301BD13CC88E75277AF3CCF1EAC6E9C56FE1F10DE05A796A14381551705234F65DD6E717E9EC275E38690B73973C9CAB27DB909C5C13041723BB18EFECAD808667643E87620191008E4D10F471AD153D27F1FF00D8AC6A8C5E59197AECA5AB496D8D10BC79C49D16DC7948C6AF62703D36059587F6EE038820A84C0F287D79C713B066E1DA5B32BD89E5FEEC248B34AA5841E8666CBF09C47EFB17BC82170CCB557D41D40CC87F2E6C0246F0B272733854CE162538DF34559473BA5979AEBFC0D6A16EA7B399687E672145A1149E382954815B41E7E37CC415057D7536E65FA1A35B8EFAABC7B9B0000E08B593496B01E8F14FC950632C659C0A7F7D59787C7FE6E8FA7FA0211A945ABBA5044918CE8482C6EDB366368A9DDB2F2BB66C146BB50251CE61DDEDD8D6A4A60FEAF0F794B7B0DB91C52D7ED1A54AC85D7907BF3A5A96A60BDDD08F60148C0B3237DBD56628982375A67F025B0E3F9EE13DF254E1D6DDDBB057203CEB267200C7788D01342C064FDDE996183646FD3C1ABBA5D2155383CF391FF16C78660D0BBEB549483A4A4A971017A8659616FBB1C3A8A2E83230B610C0C74B8EB32667765F3C2F31F8C0D4BDA3D812DB64448684AEB482DFEC5C37EDE742091EF7EE6F22E31CBA2C9B9A6656888F446A1E9D52D9E6437D22594A830958CACC6F175D4CE8423178B71E7CC81BD6DC2A7F6580A8A3A1207C34D6A1646BC3D89953A63D22A30EB9FAC74103FA527843D3BDA656D1F22E729C3A004B923D08C9CB18CF406FAA89D0D63782C7264D5A8C8078EE6D259EE168A415E7BC83E4F17D9E674154DF08CCB21ADBF5B35AC28883F6943083AA97210C6DAE492C6CA4ACCBFADD99AED15110B10C9904469B4F06ED32546130B0EC4B281622A5EFC9C94B1F2280F251AFCAE857C4E17FF5CF472F038E02E5B7B3CF5CFD2F3969B9B8D5A27C8EC38DCA4284F0280C24F01DD97A618FDC5EB57C45D9E2A05B44E69FE2E47CB50F596030C70B62437F2B91A67FB84205D95CAE259AB1D5FF0454C5B4D87F439DCB7FC62B704ADC7A84502E1BD8E6F52109BF0F36824834D574E07B9375E693AD477A9D74E94BC4E883206DCF875AEF7FE84B9B7C1C9B1858E4BF6735235FAAE21FA566C866ED7C952B1BC19A911984EC25AEE310D8A342AE32F46255E0E00444CB0EE90C37152EDB6C741F5F394B5D47154825279465F0F8B19DDD85B8D9194A7AFAE5FE609A245AD68786C9AC044C008A1B3EFA3A8F4FA0FD49A65B6FF562F33DCB63754BE76244326FB6E416EE3267F93D7B2BDC4705EE7021D5D2EE66BA8D7B9DA7EE6C354E05470B31406DCFD2C32C94C22A72DE90E5A9DFBA99ECA95F73A014A3E9B15EFCBB67FDFA6D3CAFBE3ABBB28C4DEA6AA21F87693D68F0A60331786DE02BFA9E85A8D2AC8524EE184EE738BB3FEFEAD7E19030AE883707DF67ED12E8757B86E6E5FBA26715DBFAE2BE0F90453868931629FDE97712E08A280FF8888007AC27DF2C7113C30604C5DB17538F026F17C7F07D2A94AD5AB367F9CEA87BDBA712363D11FF5CF0590030BE9B342A7ADA48C08BC42F923DE939DE79616CD346B3511F41CE695B3F939C101F687DE7292CC96691EF3F3CB653F4A67D2EE09C791F993C726D574440EABFBB00E5E6328FA70D69FDD5F2EFFFD37C9902AA45EF4E9D06059B0D8E3686C74C94CF2F0032ECF740B31E3F297F15343A0093EE0B8D7F8EDA1118D329D05A1B992755181429D410771E37B56E28AE2ED8C4DDE8422FFE91ACE348E443640578687C57D79DFDF917F8E60E0A2F1C6223056C373F58C297F0FEE3060D31DCF6851856D1D05BB38B1FF426BADA10FD84B2E08AC149F91DDF4A5CB38B290DED4EA3B02EF7A3DF42BDC6B6205D281CE4A48A1C13FA8080B6B4100AA123097A4140415EC7CEC57790D6EB0B4200AD3DD9FB7FBD056A5E3E9D7B7EF47F44A63DC908B6DD8B020854618F7662391DFC35A88F4F5750D282F81DDC50D0132707174914293E3655BD2942C09F88627C0AFE4B921B766BEF41E246FD23482B5B14F117E8EE340C47C7C405BB3692C4C9E541148C2B38281EF0274835860E19C2D48953545247BD1F7A76CA43956C069A17CCFB4D0B0FD478556A209B5376BE9207AB174D2CEC96E09E1F8C0FA07D8920B2ABAC3490216DEBC67030E9285B3EF6767AB11E8CC935C4019B7E68FB9AF8864358E6927D350CC8B9A40662A0987C1C8877AA9903CC89A93E1979ACFA279FCCD2E171A467B76E1103C4EB166273ED7B4878908B67DB77C4FD4E49DB46109DA4BA78D69E03B48518F302647B8186F787F4CFCD87CC5A45B98F7558ECD0612378306C9D69FBE23B06005CD5AD84F73A563B1A3C7988CE0157D2D2703ECA8575D8BFF972CBED32A231395655DDB2188BFFB413624639D361B3388A9C9E13645C563A87C610F6FE79AD50765CFA8149E27F7083A316EBA050860A69BA56D002A78640D71794980C83573A5DE69A697C2CF2E17C90BAFAAD3D421C6E1D8A55B3FB4700B666AE3CC3EC114E9DB428F27CE427E4101ADB49B84CA7855458841DD1F4FE76D9074D940102FC47EA633744C2A664E22B5C5AA2721017F3FAAF4FB033FBB1D508EB98E1D643406ABD4D69C030A2349408C80993D9F75271F913D7417DA995443377E6F73A7DBA24E034A9C4820117D1F0BD69C93FF55CFFD2D36F8078209F5711FBD1587435517291498926E7354558945F721D00A73014C06B2C9BF04B7E695B9109D769BC2172CA7A70700A1D5AFF6F5FCBE699FAE81BC34B0495A82BED01B983444224B4B860360C07F8C3035FC4F0C4B7DD4D37ECAFD32E8C121C677ED263338359E25BC4173D191E869ACB4A5F6D20FD16FE50454CDD269DF8CBE5795482A2B40D52BCE5FDEBA62D9274C9C67127580795BC01752740E606D849AFCD6ABB8340613C61A764B6B92863779622E40EE7A8994034E7D303F07EFA11ACB70419A53897ADD558CFE157CAA3D47917CFE0287500B3D70FE42AFE36853188BC815CFCEC9F56030C83E85C60401912C14A75A082DE2E0400F6348EAABA59312C51A7E3B6A5B39D606306A304B4DD3472C5B89FC65DDA54650392A02CC6761336FD114D848BD889DA4BFE6D32931793A6515510CD802E3D9F2C6F8F2F9DD96ED039462C587395C7E6861FF48B7980D492C23E0635464C7D1969C12A43BF0FFA3089E6B367AA65D4678A571A0D47A75056B34E3F8819F8B6ECBDD6BE580D423D902D3C22D9D787E0F1B6202DFD392AE028292795FCA0177CBCB09AFF8B579A87A854432827CF797E494ADF9F96A56777AD6215F284EA91D35563F25355D12BD155C6C364B0C8423E1BBC809E736CE0BF03E0C0B728F04E6BC8F3F07A0D952AC9D9530C77547B687E193EE2D3565AC755DDFFE880AB0524624E17E019466B7D0E8FD6E94AC2BEBEFC617BCC5D529C83A90D36D57A93BAA0C2ADCF360377C9E9D58C456FE9F3D49CA37A8C3B5BC7C231842B57D320310943FFC0ED2F5F622988ACC7842F8410BEF0E0671673E7BA61AFCD2EA83CF066A169BBD97098F4B4F3C9FE73F5CD779F502C584849D1AAB52D7059D1D4432C27FC9284FBBEE43D07493A38B139152ACB71A171D454FCF936656ABDBDA03DEF3C7B27891088F940C200AD454308001FEB2DFA0FC38FA74F85A30DF4FFA64DB48E7D40C158F058B58174F18BA482AC445A6A63FB54CC6C7D4C8089794E8AB5B38C41C7FF4C6A8A5F294EDC3FFCE3C01F2C5C7FB569CA06567C8D3BD34F82046DB4EE7F7491D890DA1FDDC55B12D90A7853D8FB52E86AA1FBC669C7ED349A2CEEA9EF18F76C23E817AF58101BC5CCB0346A607D6C60BE5CCDE5DB9889E040223FE98B17D31D64E8C1456C01353887D75EE3B82D66CA0679B1C2366C44E52D73B09D48A39D1BA3FC87D73772DA601EF442208DB763F0BF888D28338709FCB008B83671442CD9F7ECAB2C1E26428391E559306904FDE5BA21E1757D94F84F18A5FD8A067C556834AB257B9D2E1290FE0ABD3BD622A2AD92BEB2C6BC61852D58384A20B7409E4F212F630BB280A46CF89DD702B2508752D6A4DA94BB769797B6E7FC318B0B3ED50D7F8C5D8579526D536E4D43F93C055479D53BF6159BCEAD8CE87504EDF7DB35E1D03EC7B4F13802AAE0207A2414802BECEA39664110A54C37415EBD7BFD5D73E871587967F24EA34B7D06CAD805EEDB95F1023B7BC3A74A59A6C9F3A4737FA1BB087012E0162CFF15A539E86AFEE30144F320FBAF088C6884489F84F16458755561C9CB0723CEB6ECB134083C3B82E93BBB57FCE8D51374D38746BECD09A059AD6623EDE82EBCACE009C0C27D5FFFCAF76C9E91BDF5EB895FA1E9C3C0AEC0BD73B1582C067A45CA5D15E2D45E7316CD4B176D9DC7241B05922A682DF919B2D2DE2F45942D3AE254FA55C5D90B8DA3C7DFE2DD8381AEDCC9558566E8DF302022FEFE51F23AF6A018AAEF3C93FD608B0903376E193CB1C13021808ACD538D3426F9B3399686B6FF4DFC0A4552DEFE49D042BA76136719D62884D8B93A349C22E0320B823740DDB3794AD53312DA5608DABACF69767D76327BEA7A644A304A132F2D2FA8E7C8F4AFAC30E389A995C0A2F912E98447CB400FEAE35B3BE089F46CD48EC8E38D4F2BB44F1734C67D5125D7266AEE3E9D1E91F800ACF8038D43B6E10750DADF6CF70DE75176A2E9C340BCD2F6D87F976AFBCDAF5E35DA9B268D3AE1F0F8172A342CAF9602593A5ACDE03DDB482E80B825A7E91E8B0EFC1C8D00309BD170D9F12BF5017780A54F440A58BE4A5257AB67190C62DAF9332F3594303B419D44A38C3A8032E38599B49872D241AA44905CC851DDD0750D04815ED88711353DC2264C0302DAAF2FFD34E9716FDF8A81F7CCB5757913B380A68F153F62E0BA8335F8525CC3A20145C2416581612B9C29C0B1B941946B2624731FA50420716162C64AACFBF94B43B10E59E0AF3836A05B9335B0C44370CDD2E45BA817631FAFA2E0ADC801772F6F71860CC2623E1A802B370823D02442108E5C142B68CCC9CDD0BC2EB9B861D763C715D516540F19E70FB474E120F06BC19A6629E8DAF67556AC60D17C252A44901839143BE5EC76B834FF11DE13762EB23843D3FCF1FF9CEB41CB02DAC74ED6219288575FA294157E532BD877D1B711AF3B98CB0B4BD7286F88C6C00B6AD9E40D66F38525156A4AF35F2FD42A5F25A201C66DA4AB5C4D1517BD6CC9FD9764AE2756379D73C8D81CD044174860FEE5DC42B4576008F13A3504674E0D224A9F1AA780C3003B7856692676A5E581418C65BA9F049CA20C3EFA566315DA220E837639A899ED54A07B5741097C47FB90A81A41700BB5C0D8C3317E27A0A6CFA77292BE9186396BCDE5C654C565754DAD120719E571A4A14207CFD205BB4A66C02CB68EB9E50DA7B1FFC324AD07D8A8A54729621776FC5DF15CA39F3DEB6B810A735CAE0E1A84C6842E80D1CF95FDF5A6FDCD613C54DA1CCAB4994EBB81C632D192CA9AFD7FA662A865C6F193B7029A9B6F21041E3D13D50E5A1DA47D3D3C4B101488D2308954C801DBAE5029E866E869167BE7DCE6476A64FB245247A84E46B5F0D9FA9F7BB10756FDEA659788C032AC654CBB83F23BEA1F285DE190BBB5EC4135E8FA1B134DB5D1FFDA08C06682C2DCC51E0D848F8CAEEAF51DED21830730F6BACC2A4BACF7BA62D14B009116EF2D157F64A7ECBC971D50349712DDB0871D007B2FBF83A832416CFABA2B9CECD37207EB9DB8A017AC266A5FC28DFE64B52D0CD7FD7498F718B32804CF98D2F17D22C2957782DD83F4FDEFC8A6AC5B6A562C939D2D0A0FA6078F7E6B4C95159BEF010C1DF8448158BA29E1FD1AA076972E64A9D534B1F27930BADA08EB87BDE6FB0A691D4379DF0001D84F2F833050E18869F2FA7C00A6481E4F87C75483310949653D6B91FEF1116F25E5EB0A10C8C8723E9C1C80F75C2875FB0C448B3E25E7B359304C08C310148683E1D8391C432A8413057A7AF45289B1363EB203779550FE1F074D3B4CDB77B90700E3710D6EB4BD1FCC209F2406CAA67B98E44AC91B876762D597D0F03A404394AE81BEF8F54A1A898B2F0F0CC3D3B6D84D759D1F1C5788BFDC7657794E384ECB2D5307CD92F3E135F35720A44743D93D111F38791B60E7A64F51ECD6801DE0ABC356409D00D7F785EEB88FF3FDC801C94CD7972EE402217DF018958A79DFEE835B2E7C591D2604B83E2C8B3CEED7BED4DC66B66EA13BDA4FBF5DC3158035A279F57ECBBCACEE3FF346386ABE41D0DBB32E15B02C49D3F216DB19474D295AE0A8DADD1DBA9AECFA9C92F0429352B558F69AFC7070DE8D47032956A9978AC2F388DBBD63AAD776BFAE969EB990E72B7D74A0D2002CD3CC664E77E52"""),
|
|
TestUtils.hexDecode("""
|
|
98b2f93395be5e131e0c5fb8a0792062513dd8be0e820804d26f937064f5c0bb3525d053e16da6567186dda337dff3c6f30c8cf96891ddbe0e15b349c03c6d53ea00c6ad4f6bebecf17b32a6b57c9ec32ab4397ec8062d9e8cec7e747a8d9fac7fdb897c43003780ad783874c2fcfec8a0d86ec519c07531a8f0008fd88395e44adff523568e526d190c65ba17b2bd7a383bb3f5df73cc2b646b40c49d2b87486a368d43e6d616e45ed0d9b3e772c7261faa5e5e68ceff3b6abf9ab7677949facd2690d6c88f8ffa3e05544603fed81516a829bd3d9bc55e53f85f31e98b01086c31995834d4fa0eb82ed75d3d510e4210ea4dd3cb8f2a8b446ea8283fb5cae01f7e733d3c60356bfb1411f8be5a6d0b6c20558f77e7c101e99419f94711a98b121fb7f953e0c19f91b3897baa245a62c7f3336fddd02358fc3d2672e9147dd3c7ea8cc3b1813ef8045fa37786c83f387731bc9e3e706468fc99a88917499d8603589e5d8b6d028d2dc2ffa4f03d6359bff057763ba7c106b4ff4dda55d9f1b71ded84896d844e44c9f3b1d174f368f220d7fb6dbe0d844f5b10c29d26ec169dbe54967e00f70fef69096bc8354a8bef7fe0be76e5f95758580c93ac8d9a349ceb388df4cc173f4bc2d1fe054ee7c649d238a656194bf77d5afac4a6115ec54278d17e93f73f9a4658a8f9f9820a31222f327613a2b66ab471132565f9dfe0388e622f784c7e09c0218603a17f83f246fb36a40f3b1d4e2a1bd2a49f388d3c4a7a06de761825b8ba7c580ac8c5ec6f44d371b43af52a62c31968155140e3903d0cbbd19397f80192e356e94523f7d4ecd4b2c55f7b88892fe94c0589a01807eaa594ff962ebad271a1f1998c517dcc3b98c5fc4d73b6efe16c4c45fbfbd18f5eb489ed9e1212bd07bce3e486c1264a595496401be6a914b2238d5f39f5b17a60886228e5e9b2d841cba626b26640edc619a444cfd036c54dc610a2102de9dfee18e18cf32a74245501cca7e49d987ef34f7a9adcdd3567e357244c012a7170b0d375be8a445e5b8752301d7ea633485974c30232fce5e6e9ea1be14f466d3a8241943872a1a881cd4ef436f1ead2ad9227143be6792406bd7c07d925091b51e5395cfbd30b8208eb6103a45fea3dcdd7ec9f478d303132705f3126942d19626d5009ed347db6e75e6a5f4f5651f72265f14a01fd48dbce38b2ebf162d25c4c3b0665a5bb30da9321f2cf070e16fe7b12f7ad39ea6b92755c4ff0d988ac561d310f6e492694ddd4c35c48c13d62848205ff97a58a12602c5575a1f755eb14e50f409b90924030ee3b58964f58dd8c600fb999bbd5daee8addbc185c52d7151bad1aef8d83a3a6d80137cea0f9b731249fcfa996b421b046b7cdebccd240b871a8dbd5bc072e69968f482538fb67b40d13f8bbd2341428d5a5d6bf50c19f89d54d239a0adea5bd89c12e548b69a19ccf9f9402316363aa7959fe3ab63f350f3fca1350b892ca634bda0b6656a44ef5995acee1f355fae403b7e05900cc4d6688bce46227c941400870a3e13bdf468646c828a39a072cbdb495c773fecddde1f37b1643802f565ecacfa1ccccc2a2829a68d9594af2cd44503ddfe823c8117f0cfde7c77397d7da69b37bb765e2e7dba9ab70e3b802a009f511bf762820a8c491c6c19ec72965508a82d199b34f17867be0669b4c792434e6e4e4c1efa395f1c4bd83a1414a51d71688544d57c2d5167a1929856076f7310c768a1919392171a57821109ac3e9b1bf7cef03088d98bd2dad5b0290072d7e5db27ae08e4bffe11d359dd5b58468e8d86d787c9adc8717986408b2d67c9e0e53cfebae82cb27f0919c62e89a68ac8903e80a7a11b7bd56ae232081af3146927271d3c2f2f7247a3def6de720917b014d6f03eb6ef9dceb771cabbc645f2cac7acc3f8d6dd40f6fd2bbe69ffcc5a083eb3a10993bbf6edb5872e001ef31e2a0e86ad58f6829c0f1f560fa7ef734de2e84857e3ef86cbbd0c1ef2fbcf282116297b5de572d10968edffa402de0ef9c4273f793598d94aef6e294d4ace8cccf70acd9f86ae774d15e9a1714ac761af94b446e4f0cde48748cc5db05ab4fd3bac0a1c43bb8f73a7ef7285866ff80fb41dc837a0f9d3ecf93ed0b79bcf6e94177d34084c597abd2fc46fdb4acd11d543f8c0b512efbf63ada213b2d955569da12b88b2d6605fc99c76ebef188881c7dd195e6ba6d5e55f1ca19202ac94c360d76d0359c3cb1f801414d97535313ab2ced2db1ecbbc3cb68e81988bff134138cc393b8ace18e20ee4e0f04c2206df124e4cc496c2acc185489cca0aa1f9848382a55d991fe5b1228f913ff81b7c564bc779ab311e9dcae58e7009eaa806896b1f7cb6718cbc8f8b6c4a65738a87e2338c6ffee4cdcc5ac060e0021a5836c45732cd668d2760de9597f719d26bdfd2403f795b8e7d52e657ae968d027b0da9e5e76d2fba34f1de7425b780bfe96c05f817dd8f0cfe176870201da00deb460d12a84f8bbc43c713793530062dc78e92dbde7a9f53e08259333253a42f5f7b1a7f35fb89e69efb700f7c6c465e80cf47efb8b396ae3455af4fa48b45a1fa87a110975cce3e92bc2394a456eab040c2fd333f70d8165e2b6431677fa28edc67dcae5f0aac65f879ca9c690648689c94d6f657065aaeed5dfae5658f4922439437c65a2ae5bb0853478178b890561a69a24bd0419e2a089ceb0196b232c45c7373938c51591ba527df1f21490883e62e99b0c4b914bc5e7be903824fc12da0654bb03d3c15261691db25a6f6fd53e3d4e9d8ece3d331f42d2c99e9f1fd9af4d68a361922b897ea6ab23d8c896208bcfa6f2c3b06ce3c88fb86994befac763586c2f0c37f55edba60286a764e4cccc5ff915739c510a5d45ead80d14465af87377ea019da46245597bb6af0918654596365f20c63c074c8a896e5b6efa0d2ba7318fb5a42c6eb52806ab9c6dd8f3b160900cd4d71be8262217b9877739e8344ec1a90511a23f38c5b5c2f23552743b953168de2bbb3a993691d0d87aa20cc70eda60839a20eb3ddcbd6abad31d3ea359938e76191507f298dcd7110e0ce6216bf9ffe2f361c8246a9299a1fed48aff683ec8475fabf36126ab166601981dab806616f38bb1bb93c335fbfa3b250e31560bc8d0dc53957da03da2f80cdf04764f2e9fa8e7d2f7a89724c74471d2bf713d4a4adfcb4cb178a492e64c1711761f9eb9d0e65e04b64f9b94f918f4ba6835f68aa523d147414531b925d3d9e7d315e1fdc533ee0c498e9f66bf813a25ff95873de22448924b36e6172a87d7adfffb9abc2bf2272c270b83cddece1cf189ff52e209dfb78b8a952142cb72c969c4ad7cff67b1ee5e5bb40caf0dd45cd37673908c430d0d776dc2519dc4984170ee7ca6365936369df16c4a094b86c1b3ed3d3cce82b2e56a5681c204e0acdd4a712b5cff260f4c27ea6c32e23c227dd8e1f8e99a67df32e7a24e0aed3dc9630b4b3331cfd625072c0024e96e79c4cf2ee92ea18a5e9182028d39b937029a4700d93deacdd4933cc31e93cb234214d334e1dfb5c323c964d90387ea4bccccd0e4386e4d770ea889aa480f0c8f828cd2185c18a49ce112c70d140e18d9aa6ca9ca2bfdc12003a63f67eb31f0699586ea8fb50d44fe9da2d01f0be10d6da99783821c07e892aa6fc6b190d9639d9249492c154b12e45e2009adcfa97b86650649599a9ebe07bbf8dc8d452071bc4f0e8203f81671e3bbe599c76589764c0c1923b141df67e260f7ff14752d7a84154dedad28c0bef90c9aaebf5d2b248e2e20a4ae9373e692bbbbd20c408f0ce99cd7435a4610fc51f051b1d17509a34d4804529a877828c0c263b19f84cc0b8d24b9910f6ad8006bb84e1a4c8eeba6e165efd50e5a444bc342bb8ebfea30385fc0c69f53d04286ca24c0a0a402668503bc94237daa53d1b41242a13050232772ac1b2c6ce9f6bcbb53ef6b94ff5d0c8294bd5a4b077c5ad5144b44a63ec630d84fa559ea329d0dc27dc7b8ba68a96777250244066cf1b8971261826d29f18bb34fc37a6a39e4870878eac95503dc5799dc8923a15a7c063f2e4f362294c1bde18d3289e67cc883f56ae5f56fe9ccc1e5101d67a552be55e06d54df6e97b49b33ca50ff15dfa8b7436e5ea540aea188dff17c3c657544d600fa5a3e7b783adc2065f05ddd72e65a69c7619a0bdd93c731afa3336d3e408e9bf09650b66026a6d691447db90e08800d2aa08fe312b5ed3ca2dee411bd17d7239f143259d697216e2f74d7980dc8ba3ef2ca2c95af10f36d9b28b1bb464155ffb6807e15facbad8b3ab23403bb9ae6546b183fbab7d4fe2fc507931fcfabbf868c6e21d23b0e02952db97e610b8857d84c777863f820978e29efc1d9c5ced05bb8e75b1246aaf401ff1d0d777ca6eb8d74c25821fd9a5dde41eb13d766c30345965553af361395076029184d32187e82dd7aeb73cc648893801441476a6b7a2914ab77063878d53a539f7774abd4fc9d19d5af3b143dddad76ba439466d646752b7ddadc708ac9a0751d9eb72559ab30043f41bd91fee7947106bc185f0406a7adcc2327517988aed2eb5bdde90e2779b5e3f6042757749da9c811162a93999f000000000000000000000000000000000000000000040c0f151c22""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
ab36c995c472d4212dacc8ea95f1ee25ec693ed8457bc6a62ed291a979b6a6e100ce9fd5dd70be6f21f54ef6648cb4882ed6eb92916a7ed3a4230ea9e92f8a3d03d7587ee6bedf6721f6d053cdbb9a487e2fe5604e0dfd0cbbe7679ddb1a4a27eed08d07da3e3e0c99fd7b3a50830effbf4502422264648ebdfd319664aa8c044f0a66e1ccce5a4b16cb7b180040b981191c751e684df289ed95f0974f82601aaf29dcc4d76ab93a3db4db5b4776cbff98fad420253968639c02b63da7f4659e9174c6abaf1c8e83f6b266a6df25bf52e3acfec600361ab92fee2590327e8879477e85d6f58349eab0ba292792ce6769affb157c05e79df66a498c4d312c55c292b7d6cf25d5030eab40eef294c36dbede934d32ca45a6a9fccc5cab367521c60fd1d79a7513812c9fc9698480a7d7a2add5afe1e24fbd2256b760c91f0cff0db3817ae4952ea7df13528987bfb441777a85d9e36df043a3182a07c410f4b6bc23b28bb860c6f0ea769db2848fd7b21459e08f10141b4fa63e52d92ded8fb54983bbcf1d854b87f4bf025fb5a0a09df89bd3f725da9bfdd413d1dc131d1ea5d54f899301c2c68afbff488a54122eae136cc38ac30b105273a8a1f89e115ca8a57b52e8b9fb1f85e4d126aa968d3125918355716a8ebab72e51e79678251f64f5d3daa326dbe96bf5bbc2f3f78659da5317773e379aa31457f446d84319da92caaef07d82d4c2a5cb2c6a03f1865be0fc1808862b46d30ee13c855237651844fc45a13162aecd01c56231e01507deedd06d432ef7ecfbe123cec60359df65bd276040eac6d7a4375a38bb62abb4e5121670d94f74b31f798459bd195006f8ed8b9319b572e74dc82842dbd403c0a8a63f7f7a2b2f48f71d13f96f37b0dbac0829ae5b6380d64cd468278642120442a59784ddccf85464e783f3d99a2dd613fc301521c0cd9d38488debaf36e47c93df341a50e4f1a68a2e615f91969f196e3f969f36119397fe59eb9332c2097d8e7501dfca1d1ea7499ea5f602cbbabf826a8b16cdae05a700f50212d62d781fd393fa238c83294b7ce60e0059523d6337b473bfdb80f9fb655533d3743984ffe028676519cb5d2a4a1a38f139a0c6c896ed9ca988e82c16c5088e8d15c2243bebff9c20ff059cbc91e93b29345f783658071f4be8277ac27c6a9d394749ac3edc77c9f3a93964e3463f075cd0b91dd6b5045fd6767447104e78cac5c0675533ca1deac92359d1fe0334902fa6f6619a52df272dd458552f1cc6f27c7c0274f49a2a80416b3a99d5666516cfc630f9c28280b3b522a93ba98ff91f08e8c1988e4aa32b965c59d8c8a6466912d351648065169ab873678ed25157a8dde08c1a2181e84d1aaf4f98bd5f3f7ed46f68ede8410c543e5a814305fc0cdbf82e416392600d29dbe2cded9938c086befd7d0adcbad5da5b4004b962109928ca5728fcc4ffb28e4fb337329217e31e61b99391a37340b990e4fff46303576899a383d663aa17cb212f98ee01276c071e84e6448d93513bd1ae775d448496f48508752732df8589e5dd030e1eb521ab986c4a3dd0f58269c3a74acc144396a6a83b9700d58c760d8b1af6325cd3f11136e45902283146c031589cde05c53568e14eb06e9cbe3e1c2ca20ba15226e6eda3ad9d274d86bfc8d3deebd0fb6b30da0aad3142d45ce40d8c531b928a5f7eda470f2ef443f790c649645264b35f1f1af690cc80b591d02281ca979f87a1e09c1b2ac16100178be5dcaba6ea4cc4a45dcc77f4d4f6f7be8fecba275047fb572c5ca4cadc7e3016959a16cdbd241b4adde01100ea0e3c7994b90a16e590f2aeb9de243be0614520d41a70fbce0ffd3c85a18be640cbdfcb1379318791f1cb50bf51175592c88edd4816833083f2b7b5554d59a23e4cbe712d2d49cc1a9f2208756f050f8120cead2cd8fac0e1f65ec5ad6ec0e06494217acff5219860233a65dbd3e2b1e20916137c0cf4518090ee4897b5fc90921279ec30cea06d116ccd8159403f3d2197ddd95c7e21a9ed25404a658c64437d98d9525cbbb223d91578257f0e63ba8f78c217f985390206e01acd31dda5cb260367cb68233b85e4bb72d82932538f50efcaa67f97284833f04058576656e770840ccb72f2157be55a6107b8ca27b12a6cabaf45e70ed6bdf077022bed277e1259e12255504777b0cd961a9d0cec2b985977893c43b6c22e4bacc99180eafbf1e59fc1532aba2ff9bb0418c80fc9d33ebb18531049ce73541fd96bc1c92d94da2e7105e2e2471eeecf32b1c51c1e00a9d3701b73b57b9e406d700ee4ed9738e0067ee58f2ed871252599e01315a168d452f496e8efb0ea455537806780f83d976e7e9b839590568f1f799f4c1282f00cbb571d934de2a610df4ccab317648ac384d32a5959ecad1f65f31932152a8a66aaf7acc9dd597db79c85a76f38ace97807fc0c8c759d1e58b9d4a061f62cb8826417ec7c7dd06608568bfa5d8333ba6ced03e9f06044218f19222ef5f79823b5e015f965ee9a17d25c09095cbcdbf08344f4d0129c44fcd509c8a76355aaa09cd726fd085f74b321069e53d151662fffa8bca2274fd35d84694fbaead2430652a60129f9173dd7877f01e21c50965895ece33bf904523e10765174a69986669ebf95d1515c605f1e38c34f83ee28aac1e362cc052ac558e1d5c9c24f20e447b12d25c81f75c4cb2f55a6f1522c21ab8bfe5c18f76b460ab41d202c47a9cc02b05c7ffb07"""),
|
|
TestUtils.hexDecode("""
|
|
F55B1A381D9258CAC6DD7B5A57899867FB659A56873F31F815716075DBDD56D6D0D1480AE1242A17485AD259BDA2533CBECE28A906271A3E65FB5D48AAA124993738FDAAC65736230FA07EA27D96F372B90A16FF778D0ECD7C0F62174839B8C7FC50F0B0150D47D5CE9F3715F5964DC712A681626821EA27E912B80D2D04C346B67439CB5E06193B6D7F2161B4F8E0341D8F1C0C7F6E3B351C4EB62E48B555EF00EC0DD5CA6A572FB201D1A4570676A04000C382F4C332C34A0436B535CB3C3F2378682A982034E01211CFB23285395204ECF985F478686817A5F6FF4B694082B3032990597A8C3A85B7FB5C2C49694103811F754DF0434D09C1A5245BBA980D6EFCFC9BC63DD42362477537C6712ABDC952BAE377AE7EAF9FF0CE2E9EEE82FBEFC1CE56063293BE659624CCA0E23DD7EF4412DDB587CF3C5302CE5AFB39BA8613151A04491901DC30706B46EBD1B26D4ACA67587595100AC51770080FC32ED0DC109D525088A2579D8873C6929554C30BDD1E2A0A9797B1676A8CEB719F64A336FDDC3F95BD4A68F472F00C4778745203E1A7736764CEB94F33109AF197C98D94BA3F07E857A5B251858ED850E7E578057E833A2CF95D7505C4973B709CEE834A40F32CF07AD1861CD46CC4DAD37DE66F8037DF1B14CD88E62F81B9DEC286BE4968ABCDCE54F83C5E9E4FFA8144A5877D75FDF75A38ECF60DC180E9B72F256BCEEE087F5AFA5C6D779117070ADB4A671839E8032E55AC52E806C82AC16FCE76A659D6CBABBEC066782C4C068AD4FCD5EC425885A5CBC5A4BAB43D1A60D499C497A2DC06B136A971BE8ECEF3FA6606252029FE5B33661883608702542F7EF44720466D91FA1CFEEB9D8CEBBE4E252CBC096D99551BB90A0534D723B02146FEA94D1C1926221092B97F1A143E6B4D5A8438239B2E2842633A6D90A18DD67D05B2CB560BA8A964E0A49BC1987FF47895D664F92E27F8C90059C5C38B02B42D7A179A09B70023BF7D664A94F7289B29FEF89356BB51959FBB82562F6827CA2A3892E934A9F271282C204BC3C6B34C57882EEB552DEDC0644B43FB28284FDFC82A1148447F2457E94EC0437CB5E0E3B6AB7F7E48F0F53C80D7695801DBC0E96F9C00A4A96AF8D60676DC4A6A6D97CEA344D7E911BE7CC9CEBBB23C562BCEC6992AB1148384278D94913DC4BAC4F73313BF83CFA2591420B18429D1F88D68443B960F61A1AB8E2713794225DF2D4EF88CAACABF6F095DA88C52C011AB3A07D7B71CF209BC84DEDD7FF2D8FF02A0727196D50CFF6520602D9FCBE57F890D19EB7845C6529EE5CD98AA2FDFCF37FD7472D1491FC5267F1D7E6E91EE891D880D5EC20FFC761344BAB59A327F829ECFBF8E550208976BDCFB75BCD996599B68CB29B27D9EF68BC975DAE08AA121F4D95805EB89F2E8B2BFDC61058740881E9B403C54745CF6D4AA1747EBBA56473D00FCFC62B5F5DBA4209E0E7473A0A311619437D2DF22F1D5BABAE064970850CD51D4A62A51E9B3D3121B766632B18F8B7CDEF40B249812A6274D4C69C9EEC096044026022B1FF055A05B6BF1C919230723A952589F540E77D7D24A413F542E7E0D3F7F55B8B335CF3693603210E979718E8CBDF76CCED68396DEB561EE27E9008D7BDB428BB293E1A1BF2675D8A4568D3339682854BCF9E8820A084C94D78E5D0938D66676ACAAF7B411B466B6588E9E2B4A387D84F23963E252EF36A948F25625DCCE664281D76BB6EC1B8E20DB3A7140B194872DB439D89F18E74E1861E3CF9FD442F1CACF4FBFD16532BECBD97CC9A007978D17922A68CE98369240A8D1E8AAE6679CA5DB79D83EAC1A571D0871D5AA28F6EA4A8EB60770E8CC43A78E6BEBBD4FC63CAE26F297F1E21BCE999A509BDCDD20AC938E38702215C398726ABA5A7AB3F26DA34DB3CBD58A7882FED91C33803FAE62E9E69FAFBD698962F2C7226A641AA7B6CED1DA8A400992333EF5DAAC77B55F94D51F74226AC03F7ED8F3D567BEB678D98694E9E0D483815D080A70FCE76255C82FE020DDF32D4BB7B1AE0EC1679B3DAEF2C20FCD7D8F74F6FC684FB678F02DE6B53D03FB656A9B9562666F49797EC658C0E8ED14480A0532DB85478FC2AD1E21F8883F2EF3FD97DFD757D883C1507C44F812639711256EF56BF6F8FC4A73EC3AEA3099F6C2BE6B2380FF3AB7007129D4829103AFE70851917E02EC5F2117DE110FD8F4EA25FED6FBC24BA063B7ECF7585519132884FC12DE1BBEF498B92D6E2062F1A4F7C97FEE96BA87ABFAE76C50729AA68C8F374102B3CFBD69139491836E4587D0085F92FFE2A94B6A87AFE29C84D289293D9CB4A733F90389C96198E2250F5BDC83F123FCC4E42844DF74FCB65986CBAB77B692CA210AC22B5B56E30BEE2BDE84663B22507E00E0D066D5B1F5245EDFAC6D860D0493C218A541A1FCA4B48F1A916921153933383284BA268C3AB003CD58FA979A08BC48A57C755688B0859AF7F21061F9F1B7DA44088ECA4D393E8DFCCA52823FAB812AF36212CD137741C14F0860CBC7ACCE1FDA39431C32AFABB84989CEC971D4A257BDD70EC71192148824C17AF8F18816CA94C457E1023E01012A245F28FF6582C9015153DD7662E4321B465B33B1D5DCA9B1CE2FF49EA3A811B5852AF5C42FCE7FF42BCECD31C798C3B8F685AB50B68654192357CEE577F5CF1F85A50F269C28A1F2ABEA382AF5CD089C146B9473C8965A945091ECD1C02BDF64F9C3FFD035D8238AF974E7111BA4AB10288F105659C9E2847544FEC0B29B6692FB53CEA0DD312B24C1ED3CAA1BCFD94E529F6C27BDDBB7C764DC0161FCE578361E02E0F5F3FDB095B6CD311190466177A5FBA62BD18595DC49C29E8EC7E1F2F3FFCDF17D477F4AF8CA3EAC53B7018A026BC942EED87704108027753DF67BD36221E9121B49CD40E8EA7FA2D6961604BE0095099A4413DC11E93B4A876834776D144269BBBF8A9875648702B589ED4CCBAFDD726DE8E8A58AA5D1A6E142A470EC342BC3E2E1B49C7203F283E99E81E38F1D8D2CD820AC98D8244A705BFD9B67E771A0366C7C6958DCB6921A81C0C9D5152DA37CAA8CE18D6B97404B399052051D7343B3739610329A37B8BAAD173018708400AE02B8DB2A2414CD7DAF038F94714031B1D83A5A15DBA53585B606A13814F04FC925C3454E251CEECEABECD8CFBD6FC04F504508C04E25724807004612E2796987D34D04318F82F7E1FBA83A4DEE3C86FD1884B17E77231629F5D5D11CFDE976E639C60B436DD9D302C380E3654E671ED81D44FC595FA34EDF90710A6384BB62DE0D89B50C14A44215DD1121C602A79A003955D860C88470EFD320E8AFEEB114E547E50CE967572DF5A5C4DED09222FF7821F91598A0A9C41A731D64429AE7D9BCE1B4E90120BBF94EED78098C9EE30C38628297C86DF59930E72CA561A61B6EAE517DB39F5A61FBB8C1838E3ADAAB46187F0B5D09962A39955343631B74BBD17BB2E338E5FC8C43BF8B2DF3A78BED744A481A1D789721928962AF2B9E2187E6B52A19274EF68F329C83F42A28B49C447FE284A25B71FC95D9322E752E28C7B4B656A743CF6C56CEEB758E742CFBC4B8D8DE5465D63D3D5D6EE993A4C47AA72BF82126ED6C7423D3475AE098CE6A7E6DD6F3EFD654BFD5DC4414B8F23F9E29CB0D5DDFAA689BABC7B5A925AB19817226DCD242EE46B588D7CB8E88183CD87C6D06FA1A40915A3F19E2368CDD97A16ACC2DF4CBBC0B30C6289D7004A8B48EFE4186BC4D844EA01BA78E4D1F0CDD2648D0363CA73A19032A537F68E0AC01CE6701426A03E071A109D42EE5BF358445907E1D05761B8F41AC8A9CBE2657754A8C4D83A3516EA465D5AD57367BC58DC712A5C055F68D1CEAA494D9A845474F610BAAAA4CFC96EB51D41493930534D58533E20575B980F4379A80393DBF797969405D6A514AC0A9171B79D6EBC5B66ADED19821BFB090BF76FBF50CA6AE07CAAAFF584A7013A71D54A2B60678F6F02DA726E7448A2379C28BCE7DF968154CCD22F1CDDBF25D91C616234539731B8DF4F55E21F37B29BC77DB4BA802D9BE419ADC292105EAE58CC81A636D479B550D33D057B7AAAF28F743F7B8C17E26AB2A846AE08E804E5D4BAC09D11C736DB32F9DC9CEAD0442AB7B6AAA70633692959A36D6DAFACAF2D7027E5BF9562A93A1B35AEE5313C1E2015E65AB805850DCA7A65FFCAF14200E1EF0DD8F8F05A11126EB02C13FDE38F496E5EBFB09E9E2B4920E619A67517FA4749ACD8B0857C7EC5A6E94630CE3EA0841C64D2EB895A9EB7CE5E757F2FB80BB4F0FA429E779BBE314A491B2D45F9A79655396E70CCEB319C3B405C33BDC91EC2169C3A75C4F5CD7AE5AFD6CAF6C9F81A9223484E7A12512B600794351693E1111401F74E1439C99D77E8932E069193DF7562C79EEA22C41DEA4EAF9E93456378CDDD6C8AA97D8D69C222614E203B6A1FA6377A7A0CAEFE709C90CB91939BCFE926B35970B13A06FFECD44DD8A360AEB5D0432A532E8A3C275E1DC4A07D6A3E100B04AEDEF14A52C09AA90438D65C8E6141490BD1ABCAFDD5925ACB040A91A8E11D242521C1F00EDC14D62E1C6FCE721921DF42164B4B34203660DEF02677A6B8C564075865B030936F472CEFFB3446714AE18BA14A6E45247C9AE1F2836E2341B61940A63FCCFAAD809C84906FA0CB1863625E59B96CC2161A4715606DB12FE3E79C90B64CB9D3A93B451E1C746F6B820B4FB3B3521ADE56DF9D50136635F29EA908FFDB32C6582715B06487B391A36A6A7B96505FD8ECE767C38CA4D0F9599FDCC1BE27C9C60D9190139C4F02461A5C42310CBFD5CF506720C9A13067F83AA1FF66CDCDFDF59B673B6C1FB0301DB118F3F49D1BAB49069A9FBC2D653D390DAFC3CC5CB35F0E50EF4CA808DC69F0134E3EEE697597FE7E5C2A2CDC5ED4E81F344879A0536BE0076D7A351A199530C77C0AF25D5C7D5629641FC8A3567BCB1456C1AE1D216C1E408C3AD6CBC1629E14DD834819F94EE0D255AB1C61BC7C324445F67CB7BA0E5AC424EB9C3D5FABC47081752F98B0011AD389581B8C20333C2878367795E31F99FD2C082B04126A3A61273C94E894BA7ABD8C6FD743FB76CC4FFFBEA78A1CFBBD266DB4432ACEA74350AC06F2EC832BD71FB09481A045F7A17F22F9AB65CAE6782A2928147BCA3B521E001D4BACE5FF499B1462709525D64E72201D5620B5537DF7A3E8DBCCC6EB822129B7768469D18C891A60B948DE2C12F4E4DB574C6C8BC586A1B57E727853FBCDBB4EB148DB234D8759B2AC8ADA2FAD225B5420C2B93D7FEAF051B7B768E64BC6EB83688B5E7E59059E1079DC66C5D8696CE758B42AE75123CA0FB72438DB97D39F1340B2891A19A4084BAA1A5149FAA785F09300B9DADA3C45F19568226151382ADB16617D5E59FFE8029F0513A7156F67D9859A13C2BEA574BE10E319F1B69740CDB176A962810B8AA6C368805EFA56E4AF69E908A205DC41CFC3FE69E4A6BB7B1F541DFE0A0EC1B29E3C199EF07538BC8AD7B0BD31B6A4DBAF70B83443A9C6C06268F597A6D1BC50171ABF56D18BB277F83203BB671DE404FBC4DFC66EE8DD4D92FB1AB2ED20FE8E9327CB15CB90908F37171D10E759BB8D1BE2C895604F87E2307AF7720AF99F0552FB15229B0FE7B45A3005E6CB0DC88A6D15AC7C364189A84A6615A344FABF4D0DD82EAFD42892C86EFEE6E9F7C248462E4C6CCA369CED819AE94B3DC856A3412A0DB90353E6C6D9DFE31913C3249195A3EDF9F84BE94AC6EB82969AF272AB8802BA0E8967EC342834B8A38163C90431844DB073DEB60B388710FF880EFB8283648CDCD75615D35451D8AE4711C1D7DB1AA59675061004EF8164AF3B4095F0E2FFC5433BA41ED72AC2C683D3959C9D265C302E0FEE7258B7C870F62D40961AE5AC43D3BEF8241B38A574F75EC7CD608781EFC16B7B9D36C3844B6FBF477CAFBA155B91061"""),
|
|
TestUtils.hexDecode("""
|
|
5bd74b9ad4b08f18b54784c7c6952152a4f597cee14d967851ae2d781f249d926ebb4f4490487d1ab299a179928f69811f39a8a019bd808c500010aa684ac9954aaa005c9319d75d6049ecd99ad4a3dd535d881e8eaea118635cc5dea0ff3d4a7d8bd9d2bd00b78777f6528b94cf8de6ecba3829e8fdbaaafec7a16106457f0204192d88bcc76271fa31718e6ab4be525b04e547f9774fa47a8e4a88a4fd9b058412f92b27a2e191d32f015ee31cad4321c62ca55e572cbb7c2872615e5a2924d7945f1ef161e407f415b4f963d4cf6272d954923da0db3b04649906ef6e2da18592227b2b301a36298861e793b88e7fd1de2957d8a92c727b492cde702ef2b123e9968774604b71323cc4e7e58114c3ec7b59c94d9a17453795f426f706d98235c99ac4b4288d894e480efa3dfd19b14872fcfea1836ca639fc7242a55a0d01e1e21301f39dcc9aa94d2d83bfdefc26cad8614406c70bb96c149ea652f66f8d26ee0455c6cdc8e648fb20886334d512fd940fef6d0d52a14fd9c33e0be6077a10b4729a8f6200ff5a5669b3b533d366b81cb6fab41dbb9dde1581e4f3bddbbbd5f18cc00123c82e9f82412b5fc8970b69bf2e68fd5fdd17b7288949e1a7a6eab8986ba2e7e2f98b5bf2a561ddbd935802fb59a20262a77137c99274f4597d070c0c7ab5eb82aa445fcc882b1dd0a825a1f0a2c8181bb6c608a53704b9d587e555d756333bea70a5e73ccc5ec20260c8ba150a44232aba5ed55f49281b0e697527a59e4cb579d27183921dd55492cfc2abe640e1aff9147927ca2a1d1ac594c52502536d1942fea6b3e52793e2a410fd6ca7dbea45a5a696695100f53b9fe1f28bbc0014ea9fa3b134f2cf0c0a2b0a74525468bccc4677e3959d62f2cff8119e5895211316b448451fee29720a74d0e09bfec52913b0a26d1a60e404b2c2ccd036d73a2cd4dfef3d9a10549287d70bcb561a3d466c8933668f69d2e3f1a90951ae4def67d49fd09dc61342a15d1d576ab41b7f145d73a99faabd04b9afbf8491a28c5483674e9f95f3e4146ea0d9b1ca61359c604b0c821a9cce85e53b5e666cf1786100fa4c4f14dfc178b63581bf502b7909c68e4587892188934c0472412667e552bd32184a306148019d56236fe38b03799c2a8c748c0b969d9d6de27a0b842be7580ec8e186c76eadfdfe4222628448abca620a246214d2629b2be13cfa9e9fa3c26c24b03da758d5870c4f79f68c3be2bf16f97a7459795e1e30d0706f33c4f865348785abc4e6feaaeff79b1b45527357d31ccf575785390c35b2a4c87cca14fe7bbbe6ba82d96cb9bd6f47d9ad73ea3b061e030bc03a670bec41615f86360a01a37a3ccc307e31aa6c32fd558d362142fd5668e948441275f265697e4700d87853b4d1b8f50c1c9eb96d05b96992daf7e9d3dc5b78a62867ebd7b901fc37ff34b67af0ece5fe7050c94a43ca96af0463ddeaebee931bfa9e14226b2c7bd40cc99cb7b3791bd57fbab3d4961fbcfa4d9fac748d73b2de0c7eff554699cee1a72b197d6ad5343aa72d7d0bcfe6c3b458d24e7e75d00a90628100d635f032f24834a3dd0ca0f5fa0d040b98ac6e0ad4a3c09445d91d929ffcd5424800bbf06a747c7a05eb87cebe5d64a383cd77a7cf3dcc80300927443692c50c7aa0d12e1482f071ac1d9acd625f6e8c59068f1a08eb163a11685c7699493cb28b1fcef193aa1151ae7519474629485b7e6fadf01f369f05a1c37d157be7560b38a59643ac997b18a16dfd211e23c1c02f936c773b8b3440115beac0fee20269302ba0ca35d0838799ab67bfcb300e89909e2fa63d83b035d855bee14c47d847ec7f7ed15bf16130ab8fb33eff281407f376b3fa4f6894e1681e6eb025be02de783b22680e6ba9c4646b88d91e18a48f751fbe168096bbbd16a2f4b2a13085158d55c5283a069362f83c9247b0c65639aa21405f343a19dc877843bb72e39e6cda5b7ea3f198cf59c9607e1c5f09bf8962bba657f609f4e9d3ca99cc58f6283689c9ca4d0c4f659831abd54e1f154b26d4b7a103d9ca6b6112cf5bdf0e70103c8147fa7f5223665f75bd153d9e5aa982ac475413083d9baf3cc20584c792ace31ca3c3ce87cc16fde69df770f717bf9b0f10a097595ae2bbab69dce06d1973b01ff9922d8199735d6e16dbf4e7b94493b1106fc938ed093eca657e173b107cf995a251e5b6b7c97daf07bbc2ff89f5f52121522d175ae97cec1e98183f646defd2b15cfa13107cca9ddd0cd9912a23b139f84a2265e35b7053cfb7be23b79f28fddc9e3190b0355d0922543ebff420493a9ee7bc1c18d36e2e76437404301180bd3695d7d059601e204f46da1c5224966fe6c099f0ebf6a2f8c61ccfecf12f9dd4f1a197138e013654280a7c5bd26ab1743e40d8971c8b6e4908113b84537a410faa756251faff8fc8bf0fe8d325dbe0c1a6f7e099535e08bfe584b232a36401d9340ce323eae8e8eb4fb3fb57687037b7b98c6ac8fd7d919b71beb9273f4234028ac2f034685c81e630d57a83162aec955bff545d8d0a9c24d4a023988890301ffd37af5824f59384f596a4c242fa8378ba2b09908c74c8144ef1a6a4ef0b9a6738f8ec52e114b9aea248a8d2d3733f71649222c8737764fb440c9f2972390d3d4ad7467cf238f48a0a299c891210a60deeea020e4b8a56d2b5fa61aec1b341044fabd4abda13c6e85fd70170d18295538bc8da2908c103a799448441c50250455f5481f7a4f6eef5792f97cabeaa99936557b0ca845bea86234c1de788cf2abc1f32a80b13573dc2b21b110fdddefead44d94f01ec772078b1175b0297b0b6de6d6097e8aa3e5278944fc9e7a884d3267632917bf56bb53dc074ea14a8dd6e6c1a73d9959a5d2ae385f5dba4b8447eb451dc441832a69c1c0a3ed41b0997878c966510dd500d61666827435b7dd7ccbd125f157a419ac5b614ba6d65438b6c99e4d8e5e6776809edafe8fa6a76e11f5f400975df6e6769f2c2c1ffe3d40482be08581d5e79088fbff8da514abbbca7b3ccfdfaa1915c373361a971ab7f5c1c09e9499592dccd610f14ed84db0a2be1c94e5bcda339e14ffb27af1ba66c7130f45942c687ce96ed553ad7776dd532ccbb0faf1aa41b7765023d56c9068d56c3c405b8b2890c4fa6bd79466a4a146657d9248d8a348bdcf41e3388993e8ff2be2fc8b8dae8d15269fdcc040f7e72872539205992444a4d19552ddc5e51b778c5b5786f2d7b79036b73e738d7200aafe96850887c44c982b0347c7646dbcbeb4b6b55971004ade87ff20adef58d3aadb40d320d43585e7e55da08344dcd9fd8345a2c612f656ae178c914b5662d088c3437a6e5928d3410cf65dbe2ad31f1fc3781d6a5006ca8136233814be8d655b94152ac70df8cfc6f9e9101f5b53cd5fd37176341e1eaf25f2fb477d1d212333ea200a5e9da88b19db4163a44cd4c9d3ee1af413fc6ccde64a9cedf21c8b8f113d62a63df2233f9a195aa67803d632ca873fa11069b5998c1200dbbdb9647a98acfb4e3229185b8c220a6079c72bd4645b04f32ffc85214bffd8ef2cf27d8459eea21069c13bfe052ef92a070e63d05c9a9a82699676ea5cad84e508d7e811073e17bf943516fd4512d53c7b3fccedcab36921945a19d0ec3d9303bd479a446ea1a5d5e4adc5a97b92db843b54de9498592c4859011bd4df412a6151bcaaa703fcd97e702d96b0ab14d7fb0ee225f8097c174b517ea051f8f8b8af47a75a93fab99ebfa84f8ba8dcc9c9927e24f6c99b66f34f86c2fdc88755154f06d9b1ff731411f35377e14d2375480b688108212f75d74695008a61fcd452b6dd23c4d910c409d9edb69d294a5bb46fbda29d6b31b24613e751b3aa8605046cdb449ba86f27d226e91757a242ec2e9d241aedcabca88269dbda5fe8e5d8bf4a4cf1bb1585f1166d36a388a47241245d0001e35a790d6d201a92f34ea315933c67aa26b4b22ffa7d87482c7a63b7544ab511644b9e95152998af887bdbbdeb6f2218f8936d5fa50686216e30db9686ff1e924c850cfa31ac950bba1cc1124a892fa1c40f62a99eb452a344f65a1410f500ab650f9e91244ce5e962caa13832df55c4b41f53509d13d1765063380b942a5d4e718b9fbdfdf31259b879614b2bcd5c7a637c0868abec9be94a132be2c62111e5f22f420630ca64031ee7f43df2f8709e9b200f0f459d9f0b4bfc370f6faebb0345da46aa11c975670cd94ade1781d56a3ccf2c0729a8238e9cfdb1ee2e575c524661d089f894a1502bde21465f430561a72b835a39a70c60d64f371affb8ea30849956b767a5ad7648be643e0071cf9f08e880f6926ae2fe97b8fd9ba02dfc965b3ef7c102eb207555f6037c634496fe8de5cc8ae0184b6df1201e8ebbabfabc4dee1df3a15a46414e5627c7b99982acf3fcc7806d0e8b9e9356f21f15366d6327a3fe4d332eb8ebd410407b1b57220ed702dba8783c1d7088e66ff9bea1af5794c964cc95c415b26598d39f448a428c575de927e7eb129539a267c3e9d2c7b844e80b1c396810f8b703c2f6f141339bbbd34938cc12ed634425b7d80829a9cb7c8d1f3050f1351587a898c92bda2e1e366b5cbec034750b2b8c4dc00000000000000000000000000000000000000080c16191d24""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
48862a8bc5235f5337a82329e949240dade33fc7d17ace18be0227ec719ac4f71fad5a97f5d2cdf1c20dd6ef13760d4e0a1fc9535aaec433e7cf198e9b538d0a4a6482d60a005b195667769b820f677dd046b2b21af2c092abb4852bd66cad25888946d501cfc431187b25f773911ffb9e82785ab72df779f415cd506e52ef5b1828e20bb1ed742fc434ab38f3129dd3c50bfd1db5dccab13f2328740c5fd9f48da27f3f13df19e576fde636ab53f3c4ebb08681e288cf42b8bcdabeb3dc6c6c4e1a43e88e63d4e3797d7e8ad84835000206ba20f003fc90cd41e8b0230a1d80320d1a14d4a04788094aa376b2cfa10b72c66764fdc83223c39f8876407a05a5307f7748339547ef844012b48bc11799e72e67f993c601c6bf9bee389af261cbd8d07532a9d53888c543293e66e9149d8ea8862f69213c3421cfa0c2f121b5145cf9c4278b8dcf8facb6c5249837cf7c67b41c491a3345ba1dd03e6721b63ba12953055d5572dda5e34c0af2bccc6c4a0f98484108caa81d595ca4b23dd797dc814e4d724763cf782a531791873941f9873d7f6c0ba62080059cf0c3eeeaf7f04cb0d21ffb7608d279dedad1fade567e9f4725a98f041fdef9370cf1a1680feba08bb8205bb95cb9aaa16b7d2a818c3c3fcdd5bebc63099b4c4eafeca407e16678f3f15cad13c11275d786c033dd6fd280e263c83651e094bdcf87499323d179a383cdcf99fb8953228ca51382f81fe110c20265639636dbf562bd51d6398eca94e02daa1699a72c8d9ad005c4f4e21bcf4d1d4d935d25d02e0a672d419307cf720f65e11f0f1c45a0222c4583d94072381e8d5cafb06debbc117bb4fecdee6161e2a72589ed6da1b17f3f1d3ee85fba69993a9a7e389969de31ec514c1dcdb7ea4f2a5046ce463fa79ca665280cbff802b611ffe9ec0d63324626a83ad99535ac565ab42f17802d8e6f1f72edd03344d865270e374dac7e4701357ffdf256b185065521084319edcb56a55cdb91ba16c6ac647c8bdd9739de7ca426544ac9c0c59cba79897420531e1e1858f715cada8ae69d48d95cea603ef3569b98dcdf3497d784929aa0428a190908f796bba2e88b809c21385dad8bc18a05736efdfba2a81cadc11d06774c1a976d42b11367dda0a7daeaa1a271a54217a38acf3bedfa756eccfeef5ca121e4ed57eb006a103c471b5a104554e2f66d93f0c7343d78a6ec02dddccc2aee0d045cc9426fe6fac1e87ac8b2bbd6aaed7022d36719cb2d5324a1ae7d58ed779d3b33a4226b2156863a2fae4dc53725217751757a25e487be29a2507dc078aa0c45fd275ba4cb0874b74cc77eb516fab1bdc83cfca42c77c23dee74bae46afcee27d99f3035c67ec00bfc9d55f5317890bb744c15c5e2c871298a76413795d3af7bbcadfad9d1bb14a2aea340a08aa26c1c29f297bd31e40c5be7020fe29fe6f2dfdc86197389ac2b67d8b78ec6943b561dad1cec3324e7d7809ab3f6dca3e0c3568fec588e70f3ecec53112f6e7d3505eea1892a4fde381a2b672db39971d27a6400058a4b72bb7c51648ee3acd8fb1bf0b85f44fd20fa0e217ee9b9b92dca1e3b68e50d8d7415d08eb4d711c1dd7cdb3f43c87d60e8af1f2a6722fbb50c9d242674937573d0d9fee8a3f16aa781a1bf5df9cf8541a00ad026c2a0be05b3113576b6b84365f2cfcb110760ce7ff47d2e152436c8cf245c8a54da42062e072f9f90a83c73be236fa45d26129ec0791bd91fb5c389abf9315e27a0535b26e761e4441bcfc2b3b9a5dc0509affc072886852afdbd0869e18ca80960e8eb3cb77b2bd635a59ab0990a2c32e905288928f8063084c3ec9b53d31231cfbfe06bf15c6500d10ee110817f42253ee753c57cf5871929d9b512ee557cb4f9b8fda70fc43d1aaa7584842c6729cba6253c70faaf15f322434f39eacc0fe52079aabc00693b49d73223ea9341fecbbf5fd70b09bb2b5fc4e7c638f63d4eb4113447f8afa3766e3d39b0c507413c488dcdb53e5ee20118446684daa4e3f74e4b2297077f301151b06879e6ca608af5759c7b1297af86543755290c341442c61fef8c4b04a8579c9f321f4b8bc744c1f9d8ce90534a5bf92d780a222b1d452193cc6c25ecb816a3f4edd4a3a961ace14577dc824baadb5bbd363b3a426d8161c463538c5a6b15a9108024f4bf64e32e1cfe96e44063b27917501c87f10a7524694473554dbbba8f29a572846e54a16e6fd895a15b106ede3aa5ceae9755bad27a09b0fe67c41e8ce9006ffae11abd1b9b3e359b65f4b6181fc8d8c512fc22662ce71890335d9811180e329553dfa037a8fb0053e669d5d870b0d2a5100c4bb78fd297520bbad94d67471741bcf2e1c2ca4f6304e35663399f67840cdeeb9edb621c8ba854de5c52f306cc3d42e1c081e1debc8021f972549b8a9cfa033c7901da060e17f982f6cd2f195c87614d8bb787cd1b10ed6d31c5d4d561c1bbabaed7ff626a312470fae5ef2e51a05972b905b9c5bc284d7053d0585f1a91bd403769e8cf9bde215229259c43e02323155b13b5fb0d542aa625c0d6628579929f7040644e91ce4fcd47a895bf3dde0d0097bb42647807d7008caca01304f403ca8f49cf5c11d276d115d000fb2f220718649fb73dd06ae38fead76e80c20932444cba2a4aeccedccb7a29d57214d72780e38921a0d50879a014f52ca2604df524bc5fd650fef98cfaa1eba14d7380ca1f6c303c0aeae7cb9cf0cc2e3acedd6f151d"""),
|
|
TestUtils.hexDecode("""
|
|
DA2755DCE32D07B6D2C2DAD6BBF7CF5D4C26FF0C9B6FB9E064B51829A1ED51A712E26DF8047B487FF0755CBBA8FFB60DAC3C45E238608F48205A582BADF82C2E7E83D672057B9A9209386D2AB8D93BBDE0C522CD1BCF2AE95573749E0D51B85EA01494E3BD97D3CE0A61B26249E4BB94F9667D6556CC4313669409D94AA4F3BB9AB70F736D34245E2A789A5FE2917D5F4CBE43010C5215AF880118E1F5FD47A4C195F3C74307523C688AB76B7CCB157F75FFD79149B5508E7E527ABF718CE8E2E4162BF810F35E234F8CB65DE0930202C1896DDDE02BBBEC8D03BAA12AA1C91EE798FF7ECED608E3DDB7BD04A1DD9139F4A5613AABCF7AE495F9CE18D73BDA0C91583B72CCF6A722C319AD5B1051E65C1B91DD05AE5A77220BCC7576F9CBFC8A12CD55883AADCAD1AA109522F286B00B70C8E3D4C6EDDAE7E1752097C85233583BA0E1C05C5624FF65A3F3894158982B633EC92C24382AF48EB2DF5EAD30759E99D67B8BB1144939F4080DF0E1689AC0D4CDC73DF1CC2FB72B92D5A69019087294D5F2DB196CF82B7BBAF953F0568663596F78B5A309738BB294F7AA3FC5F3ED5BFD4768CCF3304C836B476458E14B233C156C8407636FDB3EBECF49B97C96C31F51353B79C378C6F47F1913E5B14A82DEB126D688133F9139C12C45BA24CC9C7E2C16A26329D463ECF59746F5A99C6B03896E851815EF36F499654E2764BB8BC60EBC821C4D0B4C363EEB7849332A9F1053A975B092AA3AAE33F06F760BA1D76DE07A1F48ADBEADFF1E17C34F9D69E409DC5AC83C296C402E042FDBFB0B6B4E023B15B318337B6A1CE69F1CD3D93FDD0FEB7AE259A41383939253C317DB949E3BEB9C8F7A79D083BFB46C50AC00D382C846B78FAAA7399ECB902CE8B73A1E89374B1DA65B0723C67B24899342DF13C07A0BFE3565CBEA5892F8979E404BA84847AF30BFC04D8EC77B1C5B9400CB97622E6D3360836639670BDDF4E9CF9FE3D6B98A5FDA42422DAD6C829B9E33F53686E2663D232162D3A78A7202EEFBFA4917BB8E89375279C96C9054C2570DC3D90DCCF0E418B69E6443C1B2540BAEBE022ED9A9620C030377C67FF4C186A59459DE7DB1ADFE2923C01D9B8D3AC940486052DB67EB67A257BE7AEE0D3C77BBFFD0FC7C94540F11DD96C5100463C27D65D3BB6B7D867590D573D1C1BEDCC0E8D122FE4FB82F1404CCD061DD7C3D15287F39CBCD2448DEFE1FB4ABA858DCE13F74414E1A8C41B730A1DFB45B859545811C2A9DA01C342A1F3C8B916F60B5E4802BE672C2BE31531DD9E7014E681A8AB1240B5E3D5C0D26E7040D4CE05F9017A32E1C760F466A8D7A68FAAD421B2E2D886BF0007858129DA2F6B92C4CACBC1786291D7C95A3F6A12483B750FAAF1DA03059F89C761641C0AAB21A05E78E1131B8F45C60BB5E8681086717B918BD4FBCFCA1BB5DDD740BE289D8DB1C24FE083B3DCF0E496B1941ECB7D51182F9CB9986CF3F04F0CA4E01C63EC879FD4A3D5619EA1085B1431FFC019286ACDF3B4AAB03D6265A7B18F24CC2815269681BD37263B44DCCA5CF6FAC2ABB1DE317118219A73095D1BDA10B66B6B55421F049B71E759DBE6154F1DB98A7E3FC877FA90217A242B21F39490F2116A2BE8067168F26439C8D1928255B5A50CE1ACCC222087536BC37806FFABA03B7E787B04C2C67C1B0BEAA871F39D3DAC2221AF44CC7089E520BADCFD840E5EE24AC53FCFF1E7D6AC26694CBC15B80E48B10C054E8DEB00AE387CEC9972A28448A6BE3A01D5EEA837703D2FCD1EB2521D444F900846F59074D715AEAA2F46E956365B7E67C5528841145C442E6FD7B3D7171BE05BF8BAA415260F645E2FBC93C46B9F94D2997929349B88C2FB1AC6743B73DE66B30B44E5DB3E07E0FE9713D9D7575EE4E40327A58DCEFBA0EE95E22D06FDFB720993EB134073A80A4F06F8303C7758DD37CD7236E5D80AAE2E9569834846E7F6C75051302486B2564A1D8D987D1A3648192A63EEF4C2D25AD41FAA02C9F227CC9F655A72CF7207ABBC66F9C822EEBDC89833757013776C11C310A22C226ECD33E5B0772AE2DE8B8E9A876650D4A57B863BCC6197261D7D06903D414AF0922312B7DE6D9E64F99509CAAB8D808DFC5F046BA2CE55817512535EDC2477D8462A1817E45D33B9D7390A11E30C3860CBE2C4B519812ABA3AF7050227759DF3B6FCD6D3EE5C60C1042DFCDD7880888A147AC47A282EC51D0DF664451E37D7C40672A27B965CDB805CECD3EEAE38A0AF4C2349FF39947659686D30B9ECBDADD80C9B06293FC4BD5E7A0E1E9E883D7A4EB05102CC1FE45F1C9BE23043BB458E6B8B6C1C187761004EEF59E398B1124B98B0EC0F7B29394418B38D8A3003ACB85D96CFA0C3C63B2ACFDC2BF5540D029A261243E06393253B2C3FE253A220DC7AE4BDE0AB4B386DECA15FA2A05465740B072FBB0C8E81663E320AE931A2DC7A627C805AD80819B9D12EC271D9D16736156195302C93490B4F85E8B4F5199CAF233974079A7AD590374C4E5589D0FC26F70FF2CE51FFB3E6742AD5BD9840F62F745C42D6085E46182FF73FD079BD2625338105FB39110B660F8C55D0830587671CC802AFF63FA7FCFB3BDF6D65B362CA0B68B31FB802E7870C3905B04B41440F549583EC87218DF6A0BE0E209807AF053CA121D704DC0C90A499D1742658BB096C776514C89F6B2D3FC7FBC4A38C10DDBD3C08F64AB076C9BA4C7BF24EBDCE9C82B1BCB8E55C4135976C878B95B6ED108C2031F4E53DBB19205A7109C50289C743818B90ACACFDEF20EE33F5C9A7142B5640F4D875122E0E5"""),
|
|
TestUtils.hexDecode("""
|
|
1fb3b6053f9518cc51b4a20cb33d02a7abcf1cad4ae7806efe9fbf8652e3755275a641f27879f163a1b265e886a1b21b129d48807bc4933df0cfee53f26305170c547145f3ff67fc6f317c5ffcd94f96fcc4453ac3fce38cbe41b6dc01c2146ea3d1e7a0bf001be3136362d75aa2785efafce667640dafb1b39d555a106b8cea129c5432867e0eaa493c43d21ab388aff1b6037621c1f134adab6093ee7e5760e9f33a0d8e8c63cd70c86438d3f94461a2d4bc9f41243e362bdfb4c809fb28157a6e5ab2f5c6e16a7336cdc4183ac4272920485fe34fe03057ae7b1440aaf99f28ba89ef1b0021cd863ba36e8deea60aa14cc7f2dab46dc401f12f5b61fb82a195781e337c195160fc474e52aecf4c6ff277908c481d51adac39219b29fa7ac703027354491b869e3ec404b4c35b214196822828079ec85ed0edefa0ed2a426ab9bf4c3784238390e8eec61cf7fa1c4a1ea1308e0815202f1109250fdcf69309ef634c4f0b134ad6d33ccb4a5e30c0472bd292c42de895de1c5989922bba6004283fd1376a0a263ebf74e414da5c058ed9788a862408de4de14b54d2adc7fb5e36f827f53b779e549698c8ae7fe4eccbca4b41b81e7239114720147851f0a72cd3183e33c6e82c557a5eecd4d07a824c6ea653168bdaac37a444fb63b29cbc35bdba265c5718421dc104206d224ef985992786180627df4b2f3ec5e6c200c2e0cbb6fad82db3f54d67f5fa7a9d1396c3b8376b3d83af731fbe8eed49bcd99e4fb693c87e259f20f61a6d67c8d87c967d65d03fe81e5d5f14021f8deb4d1a5d25902065e4ef707205a8159f02b4469be4c2094aa73580572a3568481f63e470bc86cfdf7b809c17801918f2a6f742892aaf696e2cbd2bc617f92efc482dc6bf8640a91582e988112cdb6161a41ab879e8c3c15e48bc2a7dd6b4fd25b5e7efd7388e6f3959bbafe518db3b73df504a6f6cbc6086ff160b3e7391845c9797a494000a23a9488008a595334b7b92db4b2f9a267869ee63b8d3b83bce7d57b9018bbc858943f0c7e8fe0c94cd0718672e4473692a2809423b2df248b2e61dea545b2f1db86b7246a345ec591083f4662b64664bc9200c3ae8ce7006cd795cc146aac8315129d62eb20e940aac6430165476742a19c17d906c3fd94a543b453a2f5d3c880ae6a1f64125efef20d7a0091e4bd66801fab9f7a396c84c4ed28526fc1b0042d4245d3f57731d56165e26e1ee72976cdc40b3574801255709cadd4361e7984527e6b9168a8f1b507b1a3f94d20b76bd4a0fd5ec81274207df86ef1b18c09e4f77d0670534a6ac9eaf076052d6d037ec469ab453404749c3c15cceef412a87301cd438c1e5c8d016a2c125a296c4deb4a12b4bf04d9593bd9d66814dff60549ec0a91acc5bb00a2f445c7989af4d3ba9d35868f7fd8a3687495f2580780f8a4c3e9f012f0cd07cfdd7e513c9a84bbf7dffdbe2934480ad3cb241a155248e9c30ba5f5d1574d73488beb96ae47913ef87530dbc9c941bcadc6a69b9acb06be7ceffd8cc7745a4fcf978c1fa126a22864e912e9c14fa73914ab1b9ff31988e6c859bf069bd1f912766680111d9996ce8565704046ceb64610f0c6162f74de87be26889ba868eaa8e3fd8c1c4eac20deba9467f4fe5427c06192a5ef0e84d2a063532131a366ba13b48a3735b7ac98d5d800f6ec7cb5b8bd604f7d3c72dc56e126ae14cb101afc3f5832fed4e94e5e7614e1232e970597997cfb3b9e6c5bba771552c38c9d6729ba0ffc2bd146754a3605c64718e9744e4f7c1ea184c477de17208f7baa9ba1913598889ac44b1d30f5b81aaa06a42c8f31c889737a8d15e6d473e0eb16fcb57a56f2fa9169a56a4d5b687b50e77bff964522f14530608fcb7f405cb5faf36ff235869b99b08765fbc6e21c91833a5c5e6e85aaac997fee4e800dab3c8fd5b35e1cd639931690f656f05b325ed80bccff2013c683b0419b5f43c3c14c245e40f537b55d20165a92e7b6bf8af9c81cb4b205f327b946c39a0ff087915b015c77930f221bb6c2c8d6500a521ea549f2d7fdb4108aed7a5aa6217450e238f1727535b3635f7e1b15b583743ffc9a2436e99c8f6e2a46bce90434f345090a76c422d778ebd3d9f4364af2c89d1353d64ec72d691d414f56c7a1747c7ea3ee8b284d3aa6612fcd30a08eb7eafc3dd42f221200fd0b394c99235ecebac79fe467c747b3ed5c09ebbbee5dc240287cceefe186f0a5b5f4fbddb0675f0159c750d715d0b01978cdd4e85ba77cae57024c6e6348155071016a96575e5f9b227c87e82db0a8470124b6572da0cbf2cab372d85708adadb04165b6cbe6950253e2c1034537ade941ab6633c1ee634371764ded5c131cd57eb9d3a794a2d26750d01498214ec9b78ba4c9400cbf7b910643a6ee5fb12fe1f2cb348d566e63dba6c1fddca6a0a6644eb7187a53d0b5d8bee99d31b92981fd81cad326a8c107abafb623a0d11e861177a58f1e3307fde29d63a3924bbeb0e946bf7f667599b92d98ab6af9d896e2ede95ca65cdc98b07456bdd037aafdc4c91bd387204ba7ea14dfe387430d290ada9a8296198e89b746f0264ef95c45ef3748bb9806f24a61565624fa84326594a572c701602c7317fdfa1990426ef70a5d3434e7b1ffd779e13b23bea25d63dbd7d9fcb713bca6c203d1b2f337a6e768ff8d5a1b1fed4d69f973f0e0a59f3c3527c30a1942054d3cfd04443d4611259b63c14f8eff56d17465e29a824afe408168acb215b5bb0252bb7c705280cc003311303373f30074bfa769676ec7a48df2d9f68fdb043b035fc1807fe7457e01e794a5130a857c56e92a8dc234f03c5c7fddf0f385f63b4ee438a2ed5a027af36eadab17dbd7eb9eb541e6ed5af00e1415622b083855f23d1c4639dc7c5b95c71673a2580e88092e446c29236900f685219aabdd06720f0e50dfca6bdf53c09ab3477833bb835304ffc65f1d6513acee999682bb70665806deb596566ac785afebd6ae7227ea882941257ebb10809923ae562cb34be2acde2b8b0de3f2a8b81c53d47a80a3b1d360c9cce2b484cc5dc62b948a6f990aec5d9c34b745943ba361e14de27232dadf5c72ad2f47e24d0872b2517843f3c43d1f348fdcb5fb589c4b304ddacd5451771ab0c53c03a33dcfd13e2720ddbca5fcd3f112eb81ad6bc1aa059e2261d7cfeab30fccb952a0254d92ab6c884ebe18c878adeee97721267393bfc85a5a4ebb7327c6f69a71a864e8fed0665b0ef302f16ca3d6ae033bbdb9443bc40c78eb7b3c5af66ba91ecd852e4682ae25575cd7d09adb3b74798d14bffca4f5bd837e80afbd77510ee78c32ee219f4156076dc6bc9ce87971e232aa4d034366a3e079e21cd17ce42c3f60f47225ec2407147bfe01eace5552956e6697a0a64eaa3b02ced7a39d1a1c2eefee96c2f8bd2c122ddb0960929e57247fa3a85fca43f63de635ad5d4fad02565aeb7f00db0c55c5552fcbbe5889b6495c59541a77a8dd20503cdf916b3bfc8f5e87b217134f2fc7a6cd13a736059348b3106bc431d929c09d4d6c0e39a93759953ed35f1df0ee90366e73cf0ddaa03bd39293e95929cefe9cfd06079b592b42c6e9f47ad6c4263233123092155047ee7c48e3e4e62f531d3810011a76f477a8650bbd7be790606775e1f932dba57e5d4bb2b2401a01a20b83b69ed97bf1ad8c765c93d8d4e1bdce3a524eebd6e54734d568711804d4da19fc69997129876d235fe53c78408e78081da0edb8d9c085c863c6603c06b8eec7733dd5713d79830b8debcf6d3e9183852502fc9bce62e85c20cc098cfce099d0a810df722d67932c2e3fbaef6efabbb67a83afd4cf9514598f316b72551abff34d1d13c93dc679bb58868148fbd33628d8279fee785dcc605073a000473e8ea9dd6646242ca2dc3c4863de1d0f8ad955682a9ba9fe52317c2e5d130892d5b6dbc41bd0ff3148308393d717ac0e96fc1f45e0539bb55eb50549e508da7db93d68f1711342a9d6ab64e178f55cd6eed8e8c28a497336fdee128df52ec475e46cefe3651ab9935ade5adf0b29ba5358d35d3b6516c8d3996aff1e2cd06363de48eab1bd00120a0d407b092870c2e76b276c70d4d7ac85366f60f2343241200253f92de66b037fae4fdeb1db275b7ae6ec196902ac69e9783fa6684584dc9067c7cd4a68405e0aeb2a4eddca1959cf788c0a516eb94f0824120ea24b9fa2354028afedbafff79917820d4d15b12def7f9efe49899c715c7b500f70980a8c799b93db838ca2859a06cdbdd5f84ced9987e1dbbf74ecf24d5f2484950dcd57347da8b8aece55d4afc7adcb0b232082157b0bbd455ca7ebcd0ebf257b184b3eb0d1ef736dc7d02681624622947c4f31f0dec5b430616a19b1300427495088898be15f27cbc4688ad4a93fa208ea20bed26e94984525db33a34b7631018e55d1b8ec54dc75c85e0c9a95c4f212092801e1578ea2e1a8a7850952a1bbd2642d7328a558c0fba8c167eb38d105d31be1cc497460fdc3973b7f004f1aa58fab493d29501e09568b3fdd7b1c8447cf154bf57356fca7c412c79417dc20e2d34485e6c757aacb1d7ec1c6d7bd97374b2c2d0132f6e749fa2b7eaf3ff2b385c6df71c232458babc000000000000000000000000000c10151f242a""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
4253129ba04cd46ebdd117f477bae35bdc6eede60df6a94a580b28abcf8bca385164de3e24f7792faf3d87c7eefe208adcca6f711f57d4860bd6df7f3950fdde40ca14784f71a397f300730072cb47d82ebe5c2360b09201e54b0e371efea2f1602ce195786dbcbd291a787e9fad05bcc548c4a8149d69b1b600f1111984774aff6083ba2dc1d1aee5d0d34483f9bf970229d87c858159225c3bb28b406f060dcd62f95770c78fba88f99e27093908cfee69b3d71a12f2d165bc8ed692209989f37c6bfc194a1ed596a38c4dfd284d734777864199cffd431d2479b24b3d77d6f33d92b684685e04dca571ca860f757c6cbadf7b1a96bcaaa2d349fdb057e066c613ea88c59c656ca5c10f521fa8bd770d982d7f042701146e16434dfd174a7ffa4efbe5845b6640763ae0b8df89e19beb0f3b21dde514da0693dfb0918ea8778ae0bb668b306a842b9c058aa8b3d3128fd468e4cd88e76e6f7cf737f85a36d52a1a8f3e185c455f57ad8fa5b1ca0e8ddc6548dbb6b217d1aed1e3fd82a335b8a41f2276c07bf9b08d2dd4e56ff71e22a66c7727f0a6a354c4c97826c9226b3de7931c252d11e098279f5a2b81117cfebc677ed05a2a81a0d74382ace17dc6a42e98df023115e03412b55a0e9edb4f1c7ea91841678c5c5cabaddd8fa57b5f1a5c1570ec341628d2f56268fe48ec9ad88f0cfe1a0b546bd10da7d81c39036c6a852841b8e060da573c61983502aa36e2874127f6f2c3461c7bf96119dbc5e1ebce6f33aa62eda8c7363aa842cc21cbbf2c1151d009226ed4f1b3afa65b06818805e41e7e2e63ef2a816f1d88f53f80963e9918136f84b1114bd2472c351816c4770722d797b6ed610526f8f27642d13bd31eeed3f8bd5cde13edc38c5d288e190fc7eeb5603ecccbf2e97ac9222cc7531dd1736cc6e93abfcc5386d1ba9f7143bfd369ca09f5b959e7700805597dae9eeb54194817c1b29d7f0519c39282b4ce257b191a1dc287ede4bde95f22c3f3b49c33a2f939c9dae34375ccb3d8995b3ad06af98d5b7370ffb863dc321c12d49bb94597ce00ba560ee60ad72cce2567c06f1d3fb5e277d252b6fdd2e291cf57438a015ea85b4977bb4766b3e439be35576718ed67a0ece1b590967082d6b813add2790d59ea20b088d30da760fc054f9d0d798c2c477d81a3d0bdc2197b74d41a9be185048c7497e8397b6881b5acf15090661651cd27f5ce524b326301221c06233f49396781dbc25f72caac8f26dcb17833647a4c704e4b1adf084bad42e041af26af4bfd75182fbafe5e6450a774548ef7f3ced7f4ce107f4c0e4044cf55f8f7d5e09974c79e36a85a6e7caf60b3693745ec9e09b047c7de351074ab58cbba84b0d93460086770d7f59d5e1b6291cb44a62e90ff7732b0d7d1e238ebbaa9dc8328012e1520e6a36ec864a769cbf39788db9a95a78e2d29f40b673cde57490ffbc36f973e7b13f0bbc977e43dd16716ca23fb865ba1b7c8b02d5323c166275472e90e6c72de1f08101084012706309c4aaa95c7b5c4165e7731782b508b085b825f2dfbb5017da0066a7b17fd22b7b71f9cfbb799589b633dd6de11f156d7aa0ce4278415b6a0f896e33e055f40e4c9f5fe63e72cc0d623100137a4cc43e90776d58ecd533fa1fadd505f416b65d528a209d29af23e268d420e67627f88fca6b019115cfc5d4731f793c9a7b7c8627e801d2644425e8cb2735361d4fb7866a460dc12cec76a4d82f1c2c0174b585b6a51f5aeae8e90c0d17c02f85ca2548ba685b1b04031fc82a12b55b00fad79e494f6285708502e3e387387e8ccbafe1907f33aebcf2662a4ee6097aff44a9117b3fb14403eeb36dd779782341527d59f5e7ae04f18a242c907927e27d32c46b5f0f6e2f097ae2f5f817dd66b6ed80c7d97aa3828de63df8975c4e83dd69d30fbca2164c61dea8d1c553c20afb3061ee242d33dc5c53fb0045c07d837ed97c77756b7fccb948dc89bb4221405f7d65388d62a52139b1b489afc181ee209ad37afb879488e14e286005dd4b3459722c5f2234cd5125b627ac46716d5f0e92712da986e95dc8d22fe9681645e9d7d2ed93fc223aebeeed8b1bbfdfde8c932a3052b6e45f49f85ee1561e455e96f6dafbb9fb89f2a64631e0757172172099a8b9e43965f014684b527576c72f6cb5b7d84df202830989d4ebc1160ff9e170f6b36d7136621611c725758b1e5713d99732014e6ae2b6b30c1ad4ed1d529fc3e4db71b16c03b0d12ef8f2fd2d5f9a2a3c369d4250472e5fc8d8987f9334a5b54adbef49ba79bc9e2249e2a2b726a354b596a957e17e03e4f3dd7562f6f7c3d8f8ed1f93b026d4f77e14cac27fdc6f5e567ddd8ac4ad88aba3b418bf03041ef47f4ee2e29ae4bcb0c4d0a40cec26a808d4e9a8fe90d4df0c2aecb9c713b55220306b4bf58b0373e7450388922f2ff2adda092a11127f6442a8e358914b9a9eb48196e3ffd9dbaa66c9730682b84c048a4023dd220b80d7cb185cf35e21369eed4e92d3c0ad70a33c409aa20402a2f0856f87e562befabc8ae292d720686c2ba269847ca0f1878e43056ad20807d1433e7e1e6c0f97bfcb6775505f581ff8dbeb4d11ba1a8343c517e472b631e6c325df855ba0a8b0a7b1cd21767375a34f60c61a72667e8bf2594c6f21eaead5efd2159a3a116a8dec925cafe3adbc050bde5a64292f18f0ae2a38a2206f33782b51407104a733f31b4922c531f6f6b57a626d97239e698"""),
|
|
TestUtils.hexDecode("""
|
|
5870BB288AA6130708F7BBAD9FBDD6D41E249D620495ACFE90C61737B57DBA890213D4741718545CCD8B3FFFC2DB33C39AD631D5B5CC902DE4D340DF03E09248F67E89D28071AA50FA532E94C391D2D1A61B1847C6B1088BE555E5C2694EB0FC1F029095ACD9DEB21EF886BE577682CA96AA2EB3DCB24B871336AC5F23C8488011860B455B687BD4CEF5FA11381BC292B4098BB2CFC1822B48ECFD28AEADA71809BFDA190836D3215CFE755FDD9374115E5A0CCAE15240EBA0147C2F89D8D24454D7A5AC2D20ECC0D46C040FAD233FC51C870080F1FCEFAE6C073AF5F7A78D610E23831D5990985FDBFDC6D101ACF3DB0A74D71739E0"""),
|
|
TestUtils.hexDecode("""
|
|
4211c0fbcd62764b125a8c5263404d7848a1812dad1056f3368817cab3cdc97f852487ff9d2bf404029ae58f9ddba2fcf1cf5006568c2f424aa647b4024ef30a1ac57d831cb0eeb85414d3b9069918d92e0fd933b640f0a6a777637245081aa0d27b2fbca9deb27ca1d1338189124269a14120101f0fc279ecedaab6b5006ca4c7c0baee72c5d44f4c330c56bb4a822ffd3e9c3f2602ada56da71ff40a712f115cbb4bcfc484b9e778bde49ed7df2d9f233ce065d1a9b3eca2c494fb8b7ff6b35d64ce62ca335c27a3c157c801ee1988dd9c7d0cb0b6d9c2295b17f88ca760496dbdc9f68910fa07e48986bab423f9059ed8d4ce90b8d1943d1231c8442dff36a63d28e667bfd075a66a7d729a2d852e89d8f580ae18d6652d8c06e02bcdd48970a658ff1293b6eef87108f9192e65001a21bb2e5dbe932a524cd0a44155e52ed18e1f09b9c5d46483774b49a6559fa78377442c9652b879597b0569cb791731007d556a6a26efcb57910692925f041d4d55a71c7a221f52cc578df50d0b5176a262250f55bfa3abefafef82d31d1af2facb5b6d46c554f67d27a143fe7ad83d4529183a02594b584baf860c1141d50ec50db36ab24adf208289635a7106c3b0bfcf48c6ab881b75f379779fed7f1dac26a4698d1ab9334f88ffcbf9a96eff8e85b34a6ae4d2228b7ba474bb2bf32706ae6d35409477269baf4a8effd70f98fe8aa791bc49b7fda540d80d31d699508d3f9a502f90ced18fd6512aa02a22d941acd43e3ff4fc802f05da84ce5c367f9497e165ed4c5de86fd284e0c181a2cbd1f16b66bd3221fd07e368b1e00193020162ab47e61d05f54be7354b497cf7b6e8d77b932eb0f8161cd015c089ae62d604b647193819b21171c1f493bf0fc7f67407045f56e022ed791c17606633967986c9d93219b7db49f3ba21ccfd1bedaf84315a770d978ab657ec5d4e3e39d8de6a163ed199b5d713d206c9eaaaca1ec4415b015aed58797e4e116b366081825dfa54c25759212f4485eec2cef8f455109e893b4732b437c301db78978831edc4154a1be9972d4facf9137e59e2b04b89fce1b6cecbbdba092518d1d78d7086e55125e22edbdf53dbc67f38eabbe9e76c69554fab97dbb290192f1a5c66384a062c974df996b618fa8478fbdd0e30f11549040643d583ad80480c1fd0106c1f2367cf2ab8eeb641917381815b064905ed6e900b7be712d3ccdb0b1004ad33bb6e8a34b94c228940afa09623c85e490c32023e157b451f02aa6017c1656ae1dbb4e795aba6198e6b6abf66874acd91ea4028e3a9e1b68321fb6e707a72443a0a4749ca460cfc0422c7c6b2d322ace8b51270514d0fbe36d6dee137a89d32e2d55610a60dec2266fd7218ca4d925f15a7c84edeaefe84cfe9a1d672b551f5f2e32308d0a456d59c26b7a1689ffb0a3e4817c5e385a0f4658868814272451015ace5bce4150306621cf53e232cedd3dae72eb1a240e625de8556f5cbee438cbd913b3cd744146228535ea23f310379ab18c24ceebb685d0f61e5c81a2c3c9b4f4a7a533a49c8ef32ad14f2e77e210eaf1eed44cd6c845aeb78c63d7c12c6e5f91b59489fdcf68c4c0948a858933604033209a9d5a2bfb68b101f604f6f10bd9703fb9768c2aebca6ed5b00e4974bb348da101f7f2653d55decfd624a7d79c13c05a7da0ea3211f7bdcf7bf1df8d21ab5f4130f67d5576a4c8a927b7c7890fcf42e1a431c0befa7b86a5c56b283ec96a2f27309ed629b8bbacd4eeef278d7775d1c5ec5bd331cf622298a343cd473b905abd0904803d72bd2463d9a88cc11d62068f0d7fba61781fbbdea6842bcc58385c4f3493ceaf5d105a2ec7764030961546d89a8aa5252c117611c8313ee2d7c96cfa76b1f3daa4e9c885b2d271781c654b52ae904f5ddb3d58335dd81e2e6202925268eff4a6676b80f9042c1e1971fe8a9d6b7c8d88ea282e1696c70619a1baa29584c0acd26967b4dd0252fdc8dfb645a255d32b6065951e7c3da633b92017bf381f1788cdc24b205dd6a7db1335440d62d81ae8afbf2640162cb92095270a8ccd65ddf5fb667fe2b5d33fb1bc5014a6af35cc4e4232fe052014cf4bf2ad9b46684704532f33a0f165473ed2850293f6bad8fa8cac3d74a995b02980fe5275aefa92374719e218185a5d62a6347f64f9e64ee8d06cd9d509294f18542d432ee24177a0af0d2374b5e29735abec655bc4aa1eccb6b8c6cd5d0602b8de15ecf20dfb64f5b0b57cd4bf2e88495da925e98f46799d344c070d95e7527ee7d2bc1e5da7e7e857b2c3c91489d188b4b43477082773c95479290b13779c25682dea8fbe6c8d7cab9b07342894eea86e708d1e1e7f3ed998df17cd752e947e5d2cf4b4c3fb9adc9049bdbed6badc20124a694dcff1deab7a33fc3f7c8a9c7fda5ef59ba4ed3f3ee925aab58cc74b789103500aface7eb0311a90c13b1740a54541e95ed0982c9409800f89c9519ebe0f1f8017d639ea1f9cf33a70633ebe2abcaad745ef5edbbd50442265b477a2eb61e89054d50c8956e6e2743c23a387d316cc5d0b02182989c1f01580b597e0a9f578d3a3aa6d5f0ac1534497c5e8312055e434c7719567be933cf6d213be58ac37527999a9260e7a0850cab48097fd68175d24c6f1b1ad8e104b3578e4fe746621a50bbac09fcc3a0951cc968d708bbeea3e7437bc269416d826e8ffa279b755abff5bfca14e90d791ae0357d45a301d166c19dee82f2c2e6035895b294f0ef30d003c60422f78178c5305996363dc281f8627ac75bcbd28c2a7e1ca918d438c88cfaa57766a372513615592861b9872ad6fc4639e885bf03e32820a49687e0df3598b45a2f81e33fed4e91b9bb458fb55ca35d99351b20dbde76038188f01935c261f07b4287aef1158a5e2db5fb136446cf1ac6bc8265f84a1314f41cf40e283ec5da03269307a31cbc5a3a80b723b63c0366febd211a0a448604bd7e56d4d5d9a7e6d8a1247f098f01bab54f27e598fbe6483744e3bee936adbe1fa4869ed81931cd1d7b4f9ee02ede169104f910cb6dc75e10358e1ddb3f2a661595eb44cb851c53c3f2835f5434ed0945a354483203564d3377e78e3959b93244e836ed4475f82fc829946037bfe7300742203d35d55cbb5c18eff04f30bb9ff99ff1b45858d5a46774088bf295ccb5e03792779dea64d4318f800e10029995e3bd7cae442a8d9ab8cde1a26c1de7aea6a9a70bc16597e54e93729fe27d938b205a0edae98eb80c95e6ac8770f5a2db81bf1fef6fe3063e4681751e9003db29209d1f84851a0afcf62eb0e6605fa69da74650cbc4fd7347743075d9cca143a8084c15d4372a1d325adff6f2b945ac8f7e9bba76b6869abbf9704ccfa718d6926562dfc899c2498b073184ea1c6824a245be772b9276f279e2dbdf62fb28d3295f364f18032361a5db82d16cfa57b21b4270af55130c029b573ccceaeb81293f29c1ba5c0cd6292307c9f0c88100ae57ac1892e422891039541287499d3afbc1d3c68e93a14d5a3b0efb6ff267039fa3aef140953b23cc1d7882023407e7c77dc0924f58529e18b41b2f89747d8f1fb6c166807193100ee0a26b57beb8da3c34fd134a28d5df3cda61683e0ca0f9d92266cf0675081dc18946586e5b9e070504d6125fd485094f3df2eff6d9197b3c7953303f62e276df391c8abf86aef1931d60488556e412ae00f7c201e8d64070aa72e291e804c209c8dc3fe968d06311d569d726fca4a094c7d4dd4b16014d4a1cebaa97131ef1ee66d734b9f85c9a6e70afedb26e7ee8d150d611b852b0bdb34513ee3db302395492b845affb16680f5bea4896b866fc13081eb86f509970b69df9d7c023c160456eb94d7eba2e9e2e076c10ad52b9c966ac387f808811138b9f7416bd0a9d21dfe8b706ce321f284342aa301f4d8361bf20bccd478386673d2afbab6288b8aff15eebfcab25406864842b7fd6bcf6c42fbd8b2cd526c5dca80e46a04be95cd7d63d936eb8f5430415b9b1232e4ad3dda1abb1b1c0286e4d89b9750fc67eeb22342a2aaaf83766ffd72efd993dec4a06dcfbe5dc3c067dca721d41b14f8a3536e69923d34bab47021bd1a16640da14fee5e587a833f2b415f4c454b80c700a4d9bcad4c94b6db9cd969d199f0a3f4fdb7225d445cefee5c67b1d6ac63e8e51d80cf32ae75247436bef80affa4b36096b19b1dff52a88f7a3f2e29dfdb9c5dd994f3bcbafd976f318fc59e3d1ab60e92a2c0ca7eebf68da24253b4bf1bc99c98ac429becba641fc2642074a07a9249ebe6508dc5d0d460f6c7bb873cc6a2ad7b91f03edcdc731507ad451ee3d9a4527721a5e76a55dc008f438014fd0797066a51910e958d5a0d92ee2245c853b4c9a7b2e7efb1e9e749b420b126f0a0240c516882686660b38c60007f45d7648eaa2d7b1c6b1bdba8aa5ca140e8c38b0cb6d54e3083e903f7c3f6ac97d95293506613b3a35f1c2a8d401f66d917906210c758563e4722d30b05d375c8ecc41d898574c3a20d218b581db4c85ddb2125e56c4918d021f96bac324ff9e9789c921cc5281c0f0c98a98fcf218232a8b99a2bc34a4b7c9d9031b1d408bbec6e3e633555e8fabcb0115324e000000000000000000000000000000000000000000000001080d161c20""")
|
|
)
|
|
};
|
|
|
|
static KeyGenTestCase[] KeyGenTestCases87 = new KeyGenTestCase[] {
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
796732acba3efdf731bf7c242aeeddf5eba5b131da90e36af23a3bce9c7aa93a""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
60d235ddc4f334bfd91d6b7df1a4fed84c88c2933806f13fe06ef15aed96c9e1""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
c14612e7a22ec88bb5e9dcf865776c37cd5b1c6d1b18798be80b9562ba4752e1""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
ed5bf4a40e4ce8d367598819be8ec4ed706df4d26819f69729c2acf274515c8e""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
78981182b43d78c40b828554c36d70b960a02c66490c15a4caa6a7d5f1e9ce34""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
917a2234587c5969cc1ed10d51b0dcf8b3017143ebf31687930f3e2c610a4850""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
df022c3c86b725c5f2b54196b7d68684b9fde93be78e38beaeef18195321f4e2""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
d69702e666f4086d18d3da173a6d0b44bbebfac8edad421aab72b823fc63d600""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
865f638c38f0852d2d712a708ffbd7d96f0df21071d8bfec74c2302ea4c5adba""")
|
|
),
|
|
new KeyGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
741a60c9f1715c42a5a9e67b4e69e5f128372002a6c4f54ae5869500171e2541""")
|
|
)
|
|
};
|
|
|
|
static SigGenTestCase[] SigGenTestCases87 = new SigGenTestCase[] {
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
f72a05ee9f7d9072a579e3743771e12eb5c748904b15ff67e6a82e1bb77cafc30e16139c1793315fa0b9f5947c2c5b423ef79dda9a5608d73fab61fdf5ade1b323042a98cecd925d9ab15eb79da754237d157db7937297373e8a8df9ff72bfbbc7aa2846a0afd39f61b35ee1e3b3bdd9aca2400d1b007a8d84264e688731d0714a068440100e923048082749e33491c4c04458124e5c4261098480039344043208012760a3a60098200513420952180280042264262288446a52348518374204162043a829a49220cc2626e3b430893430ca2481caa8610014090a842418b488e0886513278c812221002412a1b44913b9614a160c12322098242423370e1b028dc9a86462160d200202a0106a5a3812032108910230114801d9a0490bb148d8122e23464ca4c600581432d8002de3c04d410045e0c2641134448a1012c2464e20484a1ab0689a4265198840da284c4cc00523c58c24204293388614b56d0b170e4ba46820a66cc91600231802d4b2644806828c96485026244a428664402e8c92481214415a0660a18481d18245cc409010141082267018378d10406a2283450a256012314ecca88d53c80148100524a92ce1284e23412621a405613605ca4832d1845043c62498c041d804281bb2718c948c101345a18645a2084891a660e2964443183240b60420c710624662d8c451d34245243428c1c0299c82311a496d9cc811a142040c160a08412904c941634208c286294c988d630409c440291c39895bc0609c02714108291ab345dc843122342208280604364648220da34412dab41124b40d21c7011bc324ca8250d8146c80c08d60b20c83124ad13666cc46259a00880a07484aa8290b8204024862dc203021862154981003304409b96de42420c2962d88b46822c06c1841016118100b2449c14449984206e3206a60480652828513118888b2681ca549d0864ce4342a1b929161802dd9440000964d2310461885612119660934684a080098067122c32111b8889a146d244944cc1485c1828852288e6480410c870da0c010e2c86490c87158424c9442618a984420254e0c84898c28098a4805114089e03846e024040ac190dc388060221119018cca422489204da40085104350e218614338915b408de24411a32081e4122d53c43003b06d13458a1988218c1686511044e1c849a1260e1306481c46520900659aa630e4228eda209113036190888d531851c3b664028768009941a448269a4044d0944dc1a844e1c028c2980523b48d64186e88a4641a058563386dc9804c94862502271110333204a9604426665430459a98001c31401a330d19c98509036940005058062d0bc26114168d1ba111a2380992c2709c308910c830d19071d4926540388609148e00278c4c92890438051c038563920810266948b62492b28190b44014a0211433205334709a2051121389c33462d8986c1a42221bb188dc243049484d1ab1640481601b06500a936982c24823280c03c9504810661ba871082666a00692cc12840299100342029b266922a56cd2088803417009138862124d41140042342ee30200e010491cb025c3202121b990c4a80520802cd018280a39469202205144401a428d9a441040264260246153882c23316e14a241093549048424081652d1405299246aca10060a15660a31250a47521a052813b52908252d010802da04055c9681a4180983026561a22d10958d180146a4b081522080c026414b287100c53124466902015103b370824482243661c212065a1832d9427100088e0c279204076d0315804026111c175109192554006d4ca48514494d8b1689e2120a19016da0386211306e82c2240c932d44a86404028dc9464c02b50da318420049458b220c09c02814c30918a56420b58480984d4ac60411c0700820494a488ddb3611c9002c642081da48504b047120180ea3068219346e949065d9c42d03a9899cb64ddbc831d1342694206619860091b66001014e5948705c288523220c1b81200488240cc34023c740c22045d24250c33681220646c1c4685a306193a6685aa22dcac6210909264906290a992c4c42714c224584b004dc0072a228690841419a3020e4042a888071993244643662cb106409398dc2927058884123352c41180ca31804dc08246132201a1064c2848c12372c611201641604e2388a1c3950d3c8019dac3259917e5cd5cedc8d8305d2f2e16c706b20a3165c635370df6083a64be12031114dd323be97ac280053b276dc5f65045a54c13712955917ed389f5b46e884e256af84a5e957183d0cc38a6c089fd764521a78a244e930eed89a632702849993a7f00c501e383bc265558313637a7b234ec6f3d1543071d61350603efcf9004015f5048415cad1f297a9c9d1b15f7542721222b50c30c26b87db16aad438a2b34ba750d58f48213e351a472e48e54996b421952d00ec579ec39bc0b855389c837f2963bbef650a986cb0f32ce660d539da55193389014130cd102f4cfe130f537721585bc2327cc7daa3cade515981571060c46c015cfe52c9008628228486f880702f97ade1a5e6320eeabf4e1ac3f72776863c8e8a3e89368385173a509c2d7cdb9d07777cb60fc42d0210570c2e8f59a8e043e3343f2086917dd317f62750d310a51744842752bd1a60400a2c3389a874b88a66d2ece5a9b9c864c9d3d4ad5fd79e95955ae3e48bfda369e8fed4e38764a38193481bb5c79a054085ff2b762b241783dfd2d9072d0352a726c32ec38233831585e021a0c97fd1114b7182cc6babc319984bc5a999450e595e03a88a24453c9d926a025b80b53a4a47c58ba9bf5e5fa69151391294bb5004d6e5bd1c730a4b07f0402a15dd600ee13163a5a63902efd52861520197986b7ba28f988a420e6c81fb0afd647873d724683ffae1d6c9e65d001fc1e22f68bd96eaafce4c2041b13b02e0b3d3ac6885cb44e2c254d9ab56ee42189d7dde62cac7c74ae5b6175f430735de71a047ed245ec77195163737d5bf2cf880d1e42d6ffebc751708ddd43a60bfaad314e69208f140ef140a2435d3b64d3e9e3339b64c303564f92384fb9d132072aa2b53239f2022e211b7b023c503faa1f886f4e0f21f814811b0020c2a31b857dad723ffec88da75a4705c08f7c3a28f1ce7680e9ff66d47cec632abfc98fa1c7bdb9e5709e1022ea50d54c7b57e25d13c5990fdce177a198fe7e401e7b51cb73408f358d91b7ca3afb2bef8af7378bf07ac21bcd4668b99591a433981d0d8412d758873de0f12a6de4a37ce12cfb7e5ff8e32dab15a8ad9830e188390d0d8ab109b662c8b61372873d80f2a24f7bc12021c73384d2c38c4c28d8055a85a5df24e6167c0c6ea24ccb4d349c35355b3e924423ca06307f78656b7c0279cd5a25000e7c501711e5fea3ccfa049f59bd9702e6b5c9675416d16aab1e58a878e21242447828c29327bfef77594d4c52c36d33b83f66d81c53632268d2db050ae37a86784ef62ab14939aeb3a8567ce95293dbc155afce0664630b9aa76a272e8db240c736444975b5031c9f7676c7fcf2af3066197d87af0e1efd8c6068ed8bbb387cb359d7e05b38b3d04a4ae7d944d58e8db3b100ded132ea1dc3e3241c5dea374cfe691a050a7de51eb807158319a6893f1d141fdb3094450817c8af9ee50e44e65934d5a1fd039a7dcbc0274bbe98142fe6f50b69cbc2f5c105c0150ae1cf0df64bd7cf73c2714130166c35ad1b5bad3431354305ffbd354bab3e77274bc933c110bc96cddcda6986f0993dc63cfecaf177b8343ff937fce2978adc74b36c8ea698eca417b91548155df19163748121b31f1f075562b2aca99c89459641da7106831ca0a3aec9603597b1a7bec843fd7dc50f644ed6e5fbce214c0c7863bb47a45fa73c884db1d440d3da5c1a7599a73dedb6a093dfe8ae0c8a702d1f37a6cea458a40e8dccb8b4f667022ed84bf613b3f10ad57bce248d2569b11054a43fa9e0152f9bdf331ee7f0b051b3fa90f3f411b719de22c3ba7b2e78481100494a4aaed9d321885b395a63d9db18bc7412ad9704cbcca305b3b04da6b47cb3b8382a7c2de112c46f2d0b870ab38cab5bfdf23413af1b964bd68868a34ed8129d522e0255660a6b717d450c2ffcbf467177e00e5c55acb1ec853832d00af31e8d36b58df62bcfe7f95831fcd9cfb7f51cf7f1a12b84d5cc6ce6d818e7201fb15c2217738d2de405301f0ee1f3f8934d13dcb34852afaa7e0af86a5d31a85c6bb02431be3e0b05fed5209d3f1c51c618d8d261a20043f353d30cfcae57e8662f7d6ad92278cb988f85363cfb6fa2e0f9efccb6c154d0385f2e40e57e82c814ba4903971df4e27995f4a788c36329a715b0b2ff58ef48ee65925c557bb4ac45e2b3d0e1b0a23f9120d731f73c8da7c52fcdcfbe02edc0afdad6f3e7af6b2ce0a29c2ab8ccf775ba2135230ee0a55f9b39e9f392fc66039434c47292bfd4cbe857dc12418442996b90155373167a5b84a9fda96229610bec43d32f403b816e873cb39989e2ee3a885c0fac0bd977546383270acd725904d08623b984c9e46707b9c5a934c624b3b7c817a37cffc9cf093ec52b2b00d33a96d6bb9132673a39a5684c6efe1d1d11f9ebb7dc17c36d40fabb33e396276343c8a2a94fd4c6c8b2415ca91e9be9bd89b31902fa260ae9495d3562316bef4735a830ba7d20fa6e22aeb80b09fa07c9d6419e6dc3c23623427dda2bdfdd5269758399012fd6ce62a57b819c5dbc227ed99a06046fb7137ec13950ddcd577f4b528b34fe3b18ac114d5da5bf7871e13e24a5e38cbf2ec211fbb9698ae59577f66746f3dec2f04b48c68cd0803f0a9bed8d3a54da72d787d5419c8f2bc7ff40be74147ac1b2a471d5fc5d9a135508f203bdd28948a6b2b06ba41a33f598d208e5d857c23342db274ee63cb7813a3c863c8e1bad529f5aca98ea4e9b602497ba913b98e9d1c21510b02e388d958032e5cbf1ab0475b3c3bdacb02142eef236ad34ef9d011122173910767a691f55642fae6b762e1242341aaefa38ea2744ee67bffa470c7b32d87175b5c57ddc1a16aeddc915ac1835c6f0040470f6d3ca4f2611a61f4cbb55570f91406d0f3e0abebcd8abff8b344e582b8d17fa651c89f82181f75d3c88e30563413915255430a29f885c4e51f054da4f304e2ddfbd7f41782f1093e8268fa40d02e970abda862beb0051ea3ec3068f1e3958696ba329c62670a582670834047bd433bb2485c434172f4192b598f04cca6d36f7bd83247bbeec937f1f6e1cfd05f5af2c5f0bed0467a5c3697ee7772051492f8e7345691247d0a151791062062184427801423b398b098043ac0db62fbbdbb76be4c13992d33aa0b8525ba037b76c7f2ee0c76144fd033003ea6720f29ba9ef500c8d78acc27ede081e88766a4f368d87c14d900b45b65046e3652be033c1c83f6ef86c9e003279a798fe58382209a0005661ce13e53afdff6370d6b6c782061016e77f3d3f705b25aca287d5b634b0928d39949bf68bf35e7a1917c26fbfa38f73300a6e849b3fd8f908d37dfab5664ec3d379d6a4eb0ef4554b0f0bc5ffbe85dbf7447c9c5164471dc580494831e3212472d3d2f84189854c98762e8d3ae016425a3418319a8f186dbb781c89feb8ff09fa8f173bcb60b2b352bc2aad3d1c7086ae269ef37e92108285a815b1c1e3517a5426c5d94c2888c10cbdd815c9a7c1f83b4d8b0774377a1e7c799e8c652fb35389f283ebe142a1a2dbe6574ae029194936ff61db61887d4103cb1e2bd21f2a0de551e6f9e1e423a0ef516ede1abe694a97f82decf666708aa8672a3f9b063bf4fe5606a76b3743b16c1381e3e5f4208b9c4f8bba582bf60b3b5d3fa1a90648db008204ea56a9863365c4e478cb9f1155357be84d1faab4db013e49aa46bf050e3f0de60b94de01704c26268b9342a3a33b8ace7fcf9bf80c23fb912fa36765a41bbdaf51d6ead90097176c586f65be9857fc6b07b721fbdf788129aa979124692b9b1b7851fe236a4098d45679d3cce0e4c7aa723259ebf101f3202088f4afcadb686475444bf0c7d38bf7fcf909ccc6c01d12e2cc53823bf9adda6c8138abe27dc835ca7588d9093b1697fe156a6efbecbce0c3115fd1cdb985621f4836cf27835239b24cebfc3b26b0e0b9f9346360e2428c8d7210933c94abc05ac01e7196dd3de6588a3189d7b2fb7efed84d6c53428522a4763f110429d5995ab83de1443560d942becf1d2d741db6fb6d37ad521f8f1426ba8e3dea7d14e3750cfa17f10e8d2a04c01a34185c9113587288349a8c6a70a62539a7f3851e03f74186a3354f83f358500318749e1c34f35bee080d25879a44eab7f28765345e10493bf266607a977e2090d366d07eaa0fc887d4b6c574e9f215748e746ce9c52c46421aac960b014591760f4717eef1b2359342fda9b810a821698afe5270aeaabb9eaa621706497dbf6cd4cb5b4b6b32f870f05b1dec64c67077c8db2f80c1adc1bd5faa31f932fd4c993118733e7a9f544b2985deeddd39670a7d1562d95e6a4746a6c255b8f74772c8ac313726b649bdcb7f7e8b83b558f7352c8524837768f10de5c39dee63f348c25964b1902daa8ded48e03a1a07acb72f0738d42595a4cdfc0c10120ce027175a3f86ee51a3880dd1f470b24d129fbc2921ea1073472ef9d0ecdb634121bce9dcea720a115871606fec35e970fc0ccb626a8ed2962a7f4a7eccd3c93e73ab8aa3d75a3bb0a66d1f7d947f5ce23fc505bf135fa4e6986319299fd6d93ddd12f6f84e191eb04d8df4da1198cc98414640a6d70b6fb2d65fa37d2c7d61c175578bcf194c73143755f0e69375387aef20c27e58d9b870e7b6d6279e55be1a0eadb6de09bf35a79b7"""),
|
|
TestUtils.hexDecode("""
|
|
67D7F4FE3CC57FC8BE9A3D06BCA0FE4A39F39E3A6158D3E4ADA9CCBABEB542CA67CAC48167928336993C569AB5AE55BF95C8291AE1A1AB2B595C90C0FB19041435F3B411609412630D80DB0C832D413D69C8D3C3CA78BD1BDC24167AF590B67449DAC7F6ECBF87698BF3929FBC874F6FD68551B28E4EEEFDE9A0D0E7FE9E569F1F9893D39C17C3BA7A6211B875A7BCAD0C14194C30D60CDDAD640EAF7A02CC9DAC074779345B83F0D282899B2B9B61F8504BEACA3C02A76611C82F2007953D04FD3C54D7A00DF8F6DE554FD83D1EA5DC841645B706C9D900DEE7862D526245215AC6B9D178E60F9602F1931503864D97F582834DB797CAB60DCDBDAFA3FAE8726B525E8BB69B5E0763FC4ED17FE7CD9C9629273AD5B073B9516F6CD7EE729351C213FDD122E3C11DBC58FD2A501B267AA4AB21364BAA856823816E77B81B6061279FEDA6617247B86073E55B19973BC0E725F34ED4BAF0AFB95E436A9B2290A2B316C18CDC0D9F98F9F6F13C5A3FC767EC0A9A49BE1378E92BC9B3010B41AE52AF409AE0FE27CB816EB2614DA41C796D5F4FAC4A743FE34EF7C0B3A78E0E4A5B439659D4AC27B698550E89A1626FAADF71420F559DF2E808144707B5C02090F754C3BD4EFCEBAF6FA4493C5D48F895FE7674C81F069E1F00E455BF5C965BE2926BD19AF76E20533A6115F4BCF2CC5DD3A49E10A2B3FCC9EEBB2B6E4F25118599062F2AA6CC3A9D86167B1BD08DDB2C53A5E46E1BF4E8C1967866320BA66AB67CE581981F2003B812BA058B75924254EE3715BADB8E6B1B9E4F4AA9844D578CA2F0AD12E1C964685FBFFC87108711E022EA7F63330CA72AF86262838863780F4115138672643E6D9B48C782B8637E01D3D20CFD5C98A1B57720762037FFB12742B4EA8E89E4B32EE7DBFCD5C11E4A6E839A83398ABBC32BA39C6A25922649971D88A102D1019B560C96B820C44551E14509468196CEAFE3B7BC8F253ABFC59FFBC01A13008F77C91B19083A9E7BE733C1A5E558C64557389CA19249CAB77014D0569BAC7812862A610DC6EE074C844A055ADCAAD496F6976C932587BAD9D7E2080F8623C5ED8D9D4FB9EFBDDCC4CCC1284D22A2997824577A619905B0D6E451CAA3B2D30DAD9728FC7623F9ED71F80599D65D9F2AA285BAE393D05C15891472B2DD2ED5CA669785EC4D441F3308EB4BBDAE8FC449962EF9787C39A533847540965601D8BCB6B4299AA636589BFE371D3904E18BC9AAC9B3B6EB8B7E8F322C22A6E01E6B26244F9E39586F124AE4E504FBC9D860A61B20B4C127FD0C55EE810AB9803D810233E6126488A6E95F8ADBB3F8E06D113DE6A3E361209E0D36B326E042CE9D2698DEE469DA15464AFF82D5603434C07CCFC4D956A7D55FE79CC127AAD2A56B34EB10E8B85C3CD5163C4BB8C1083BCE5E5EF986AE028837809641A6AF2B8295B743DD9B03931E755673DBDEDE56F6294270532D685DAF1187137CD7D29248F21B290EB8317E3EB28B62E45E140F4AFC6D1438F81E9EBFC6FC0F1A4146AAD83AD1F0EE2952643E7B6872CB2823AB21A155C281ABCD19E20A52611C6FFAA724578A070935B1A0BFEFBF061101A81227187E14E96B016242DA269FC91253FD827A73743A4BC49FB63E2D830D0FF409AA1C73706D7C2297CBC552CED567DFED72CD15060A522F9B88EC910B03CD2794A9FC07A8FFC5CB97817DC769E64D8C474A305035A49D05B1C572363913A315932E391B62AF291DC203B9A40F04F40EBF26A4AE186056CEC45EB7D21D88CF50258DCB5EF40CB2ECF949B18C72626469978FBE0964C8A25E8C2D27149C2266748F2B06746E8C9E7E2F0977BBBFE3FBEC7353F583FD5F7C2B0139EA928AE1F67004706F6D4ED7BD8D13BC68E0F4A49877C0B2F692936BE5FF99544B2B19B23A97EA6B5F585ABC9E69E689EFE25E15804C650444C479E0DC63C9CA2AEC41A316039EC7F675F1FD7C0476707370CFAEC9C3418CCF30B5D85FE0E15056D6C015DA59F9BE9028D9C2D93434F99DD8C1BDB41FA1EB021BFD0FC12EF0D038CA32B0FE1449342D83CD6BAE43A8CC4077074FB1191A8887BF29238D27415D93880682017470A42872D6CFA729AA2B3F8B37038C83583E4C33256FB871A704527594596FE858777A93D3095767BCAD2FE295352C93D227E1766A59ECEB38FB7C2E3664D6DA0DD4C063975FAB3AB4B68D125AF16D233389D96A337DBC18DA11F37F430C1E49BF8AD30258601CAC9215F32771C6FC2B7BC03B55AE9664E0D719C3B40C3E4FA7DEFED8571CE8E46FDE8701975D94319DC5FFBE93B4FC4898E2EFEB3CCFFB3494AC50BBA364C22A3953F052F62E46D0C35692AF40D2FBF899A23C1A4721375F307E2FDE2E588830753F908FAD96EBD5FC360D742E2CB2C38A7E142C95376ACAE29DE8E1034207D1CBC1DBF2968677AECED152B1EC1AFC195F3320352953F2503227152444BAA74EE8F98F2B4512F7ABB43D7F87889CF1F8C12D9BAB91EFCA5AED21058E322CEB4E59DB4DDE13BE46FBDFB225F4AEDF7137B548503008002A36D7A3E98C0ED65ED9322D66FAD4A741125EA4ABBB26A2FDD7AD136590061E7BC0D5228555D1A59F8A6E4B97ABB61F4B1AD9564E84C000585DF8BB31AE61CD25C9D91D1A1FC21A69AD286CBC7E00F592DFC1C65E2BE755DDF041486F3B52C8F72ACA97A149FE0CE1378236D99EF099A668F6847659F7EF617B66192CA452ECE3010AAC18A65D8964381F561B48D044096DECC22736C902D7E23EFFD26245018D9D7EA9E2F907932A1EBB405BCFD29F7A397C71A5E08962ABEDA5203988A81F787B25EDE84A7D85DE92A2B19974EF7D0378877B82BD7CB28B67F45F7EE625CCD054B44B4CD51802B4FE2E219315CA9F4C24065F5578732DC671C3004D31830DB435C763143CA209D7DDF3F5EA42244E68429102F4D90297B7C987EEDFF0DFA7F31964B76432E1DE27FA38570F2BF64D5FA3F12DD9772618ED2B95F51AC90410350320E19084F1596F6B791AF1EFC24DBFA2B7E30015AB14FAF43B568C5149A1152A47D278B5F01786F242858C210D28812147646A1A3A7CD69996809B784BB2F0053CFE18446F060622FE3B9181AE9175D6CFD8033AA752296016E7BBF639842DD4073AB282FF50F94B9E116C63DDED805277D4FD7987F740EF8118946851A5336A9F6F6E2FE3ECABCC518B31E741AA79AB500D9C6DEFCC437569966EAB1D4BD6CFF8AD0E5698D15F1342ED46CB6DA986F0C4B2B427752C18ADC5070043FFEEBA98569E90C79A3D5E0434119A077A097D69DA6E9AD7E32C6E8875A893F6D69424DCF4C0D4EA12605E5E8A9853E4B58E5659FED6D724CBAF582A89A228F99BE89D88F55095D0627B40B29365863C57F82B9EA22FDE731D1A2D8A9037665213F2C410D4AADCE12CF888DD4AF53FF839E962F0F53BEC60F97133D131C2C8EB588AA7D25EC025B9E821DA8E8FD8E550EC5E4D5923BFDDBAC522D1FA64C503078618B52F452B57874285AFD3F6B182CA6C979734C94F040EBAEDFEB547683E98F4D13F12A252E8839317A827CD97A7C3D81962A25DF7D8C62B57812EAFEA9EEAAD7D6A9E755AE4CF3AF42CA2152F663C1BADA0E653EB165F6FB56D86212378C0B9BD5733D4C37178FFB58E7357487B98DEA35127AB58A804B13E61E6D3E385C96884EA91C744DF6CD44B3EFBEFC79ED19C406AA6ECE144A44F1E78B33046C33EB17E3BF61A17D849493D08F0FCF8232AF2922D96213647A47A05A9A08D28AADD3B3BF412F29063C9D78CDD3385BFA9F8BF06DCDA23FF79A5912D867EE1B0D526718EAFA6F0E231CE6C51959BDCD8D201838A50634F1C6BEBE2E4F5235FD01A6D27B90C58C12D8210692BF68FEA5B8A8651E64EFC1DFCE07EE670D473F29AFA63E080F7675F23E7D2866E5F2F9A525BB657E8BE5933FBED1E206C7BA9FF097EC95B91E14612E16F0F4082F70A1B01EB6219D47C716455F4C1C60948CF3228557E787A3186B4758AD35922AF28BDB328693BAED15487F7448D1796BB9DB5C931EFABB4BE436B2710EA280368A8E20C5782A7FE986417003236BE9CADC560B3D7C2CA92341536CF67D412E855B92D0229C45B1C518D8BFC82DFC9F413D3FB23D37EBD96AA0CD0B39EF88B23609AE0FC2BD16FA9E934329558759F05C8D4C8F3F8728335B659D3986E44508322E47121E592C9DBC6F49656B473EF7DA53FF8EF7BAE07D1BBC68EF4AC369D7F8BE60948F34444C0C443A100443EFC444E7FCF0BC4DB6A2C2C64662A538D1F68F4DB95B0B83DFD744ABCCBE5DA343621F0E182CB9E915B2097C186F1B98E7D8F297C347B60EC26D04B6D9C1FFC01EDB2551FB8D11D49E52956F69CDE0E49E2E7DCC8E7C8E78C41A9B2A01483BAB11733A0943A9B765A5811451C07A195D87060F157D114358E478FBA2F2B755A2A455E9831B77EA9D33FAEDC1C562E1CFBD8DE156FAEFF10AF655713E36FB508342D9B4A239D6DB786CF9F57E1C39AE65A7329E434AA88C68F82359E6F057873968F9FB63D898F24BC13C0F7748F92E404C6185CE24C98D4E4D8D4B3C129CB46C614E773A89EAD73CF0C30CD7E6C9F6435F7C83A4C3F877E034755EAFC5F30ECE03F6413F4C7DCCD01649B6ACA9C1C3AC3D112F216AB852A27DB3B846CAED86B76FB699AA7623548EADFE6D16AAF5A3ECCC298D5CAA7E84ADA0B75290FC6ACE736051924DAE8FC5BA6DC9AFEF65F369D054A4A18950E71901F4483A4BDDB2584DEDC31A04C5F8916DA2DE33B37078E5DAF3304344A8AC368A6668464FFD7898A18D10685BDE6D0097F95A3587717F6A3A8827B46653D56E461EF861D6908AB7D865B532DAB37E02A7A6A72A06F25572D83ED6DAA540FE56BFFB2BC9D104A74F135127ECE457991152DD0564BA955971E8C9767DDFAE190052A98A63C4C0DFBD1B51BF60643E4C5EBCA678CE5150F03A6EF09AB0B1C2A0D2C19C2B30A645C7DB9B56B5AACFB862837A38407070DA9C7DDA20B99CAC7B03D10C8F28D6B1C686FD26F9A8FDCEDA6B188D472BC593AD51EA62DCF73D32EED5444484853AD0EFCAA60DD42DD2C50F5AD15DEC7B71BF585581B9F9C68C7C94C154CC7E0D19ABC90508C8EB2DE93F0BE4295973C1F443A1B2419E20F3D5F883912BBD5CDEB938A4452FE0BF2361A9E3B2ADDFBF000DB07EA19B2735CDF0E8E5C7EC5CC7CCE1A9C3E869718272E54CD9875C21DCCBB06FEDE38A4E787D111DC6A253A4604B314FE47A9B6F6FEBA3F8F013A456DBB78B497C4CA7F90CC6145F47C96D266BE5507DEE27E968052CAC85EC87049CDC68D723D8CF89B0C91F67CDE2908C0C71808004A070CFA2EB6408F5FD6108749406FFD3D5DEB6FBEA00FEADDAC4CC0E22A9F6F50B9893CC4CAD028FBB73C1B7BD4292AEAEBEB668859BAD444D0C5FEDE3C469CF28C5C726B59E828C473C8787453BAA3AB2BFC29C691FCAC2CF496ADF3949CC42FB16F3677D456E614B1F88406E6C9DA7DB9937B00764D61C3D347C140FDDABDF8CE5E3E2D385C3FA6FD9F13F3BF8073B5D6AACD5294938DEF9C6ED414FDE4B3C5EC43865A7FB02787E50F94033CFE32A85BBE24B09FAA3B55B8BDDE60E325B691A350F2F128CF74FB5B6DFCD0E946AC7BCFB839B3765616DF35AF29F3AC82F4E2DF7D4AE87A016094719A07B5897105E2B08AE3D807960FED396CF38863E69662238541EE295C06B290404985444F4B28388DD942E51867216C734580B3F1D5BB204B05D4993D6F8ACDC8F16FB77B607FEDA67939A2B6AE285ADB2C98E7D37A81AF0101A5CE39CEB2C67CF99441C1FD980C2C542E7284BD21F1D30E68EF3606C65D3230B5146DAB41D4ECBD5FD89FFC68441BCFED9AD8B4E0B616127A7AA39E84DBD1343E2A41B4DB1AEE0627657438034E890C8EBAE19791705BF6C948C630DB1423D310A34BF151AA8ACF3269253BADDF5B40AB7EB3A7AFE2D7891B925F65EA206F4CA121175E8F348B4162917A68FA768928AEB0504A60C4F42802DA25DCECEC60ACD21FB236080AF1FCC9146BA30AD964416F4B524ACC416B5357206980305555CE3485425EB8F87401FB1D8CCC184C486B5B563242BA9531147D6A2E7C0BEC1A56E083F05344BF97A18D0CE0FE56E8BE869C746D4AAB365225D8871D4F99020DDB1CE2B5D7D2E5DFC8A0DE780CBA0A9B9ABAC87F19C73639965AC2382488387F06199A08F283794E1B8D3580E5CCADE811ABA6881908277624D5395021016DFE21C345B9A21B474043E187403E5B0ECFABE43991865A424BD33D233AC4BD30A3CE73DCF49B58CC4A3D2CE25C54FAB3480FFE0D51A43B71FDB7E1126E66856D263DDC3BF1A31DCDB935DECCF858FA2CE5AC89BF32E36D8009657F11691201290A243B5680E060D2CE30F1BF2444D67DC94A24708F8F9261945D1B5275ECFEAAF40311CED5C3770A1C194EC44501DD25B7F5FE67BCF62D1BF31119F8EA7DEC1CF536C1026A8E72C7B2E167BCAA8673AE5506CF6208F3E1B6057B5D488B29EB84D6F94AB8AF322B8657075B9EAD3297505AA521D601C21540EE71349614CACE0E7F14EF42D6CD5377DDD0241E34CF273A1171135A376B98C53B218503A908577C268F6DD46CA9C26DFF5942998851627474DE9E6B46F49DEDE85CEB993A52D01F6AAD6F96439C18B0DD5A4FD559812227BBC0567A28C1299626B171855AA0C74E2F9B1AAA781D34CA58C72C708AC49F5AE1453902A1FFBB8458E8B4786771780ACAD999F8DB036CF4C3F77AE345817EDA2AD8F7D2AA9228C994F6AEE512F7C2D2AB72F2099EC932D818E495CAC8507B06CDC6702944237DBCE338C20EDC84D958C14233C1884BA09A023BF5284F0B0157048B6AEB508415DF337A553F6435140D0CE5D5CAA77F9137B2C1AD5A02B13738772743F192E53E970DDB401983535CB096F7D98644797F487CFCD18F1B22BA7494D892C1E5AA05E66B1A4326C70E348350C97DBC26CB110AE8289C97CCAAB150020827B7D7AC7913B4FF515583677018949D39CD73BC7DBB90696D5EBDBAE6BD6FC78E3826C8218996F079A387A17456875952B268211891404E80F8360F042EA3D9F7F7BEF772E64FA1EE8B4EBE0A1162A46EC1E9899766BF4D3099AF712A847CC86291B3D6FBF51B3B3CFF87D7DE71E73069619480F6056AAACDB9ED8E228BA075622C2FF242CB050342DF8F02118D071D27D1FDCBFADFF49184F5A100F95E1BCB019864E58E0F02672C8F5FEB97EFA06FBAE6EC3D57A10EC712BE0144323292A2CB27F1B1FCC104140F556D09A6074F853AD4328B00E6F2F24A61A7932311BC999805F2E774DB44ED72ED244A945928B9512556EFCB2BA7BE0E668C41AE7601339F0162CEC0A1AA91C3FEB6A8A40158D7A3560924455B9AFBD4B3881F6C08EC2895C84CEC30CB0F5B499B4A66267C719785F94A9B9F96FCEBEE939AD0FCF42D0E65DC241698DED0EDF1A9BB4147898E6E83851499175105BADFE4CB00B9000404DC92EFB4EBF41D9A9262EDA550DBD0B99353D001F90AA05591100BB678634FDE4E0B1C174222C253870DA3B8A797CAEA9B446309DE5210F9A932D6AD48A4A7361A943C1BC66BFDF75CAF5409034A8768BD535B20996A728A26E28340191E03DB17A7032FFF883EF664FD7351DD37DC2D72F0CC4B80BEDD1DC33BA3046162F5D0003140DF78FA588A9FDBDF778836C6CAE7E5A20FEF030C57867B295712DED14474FB87A301C31214FFBB4F8D166498ED93B6E233A669CB88D441A38A0E5846EF68F5DB20245980CA184878BA8BE1992A0638B058CD3A3A501CACFC818D2B5D7876DB6EB08E9F26430FB06EE0B9E834D1C331B66CD0BCCAD7A66ABF4A9D8F7A872932A3C0B25C5BBCA480159711E0BADCF69A1107B286AB199B210CE95BCBC4244780C074C42B6BD43869F27BD666F9B2541B1561B4C207E9A667EB1E31942697FCEBFD0B920EF80CFBC5CABA6F528187403D7E8262C110458B5382BC376799032362CE57ED39F0D29D7822C408923C29242385CA9749FACA43EB4483E095851E89D24CAC7BA5AAC60815CB5C8C5331CFD66352BC8623D5700F49FD98FFF9E869D5AE173961138D76E00CED6DBA09144083437CC8FF5ACDA10BAEC0081C8BD2F5838666A093B412532C521753C4E11ED0521923D1EE6BEF3B4FABED7467B9C8F75FB24FD8D96759A6146B34EF951C4DF92228C2E58231A8D25E3F08ED5A27BF6041AD7011DB41F815FEA503973D4E7B5798489B261A0AA4D0C32A19D17C584B1702713D1174E542BE4EDCEF27016BFC78118445A63FC1D17FBEE5F71DFF46F1EDCD050239C68DDBDEEFDAE7EB8963B5BB4819186D45191C05AA049E50C4319936C8788AB72744912AF28BBF5CC77C835C35BB4F987DBA6657BC2A7E58B7CE69AF37AF680DC0EA7797B29528AC70D92F295C561E2EE0D0E530854AA19EDC43C01A383035F6A5DFB354E9306962EAECA25EC85B9B78E8A1DF6CA50EEC733F60C81BF812981337F784F8CE07D0C03D8B3E72BEE1FFA55FB92DD0446CEE29D8825CBAF1A6ED295E613FC700FA31167224D99338C4F59B1BB9C1E63CF77476BF84F2001D42E4161F7737B47C1A5F219F6AC8B8E3ADAECA827AFCD6BC0CA09615BCE15F1BD0803BDCBD41E68F781517907EF3DD8E8A33A1E30ED09D7EC1D3605DC72C9232EF9F92475743164E92D953177B98906DFE5E414E134EBB63C79220D4907869CB2D93280F60DBECCC81B532CA336510E2A7F1D631F7BFC517AFF223430F9804C4A4877D8B7A385ED48F390ED9666A56EBD62F6C943D0E52AB1EA247BFB07C05908E99358A51E6111486133F4A6BE3BAF6B2D4C01529925ED911CE728B4CE4E8CF8379BD216108BF964496269BE76379912E94A4984B890A4BBB9692107D56AAADAF27ADE475E98A566C0C9E33DD1970A3DFF0E2F79197F6315E320BEB5E2CA3E3C904B557075981118B363042BA687DC682F13D213974B1647FB43DF7FA168C9D4F599C5BDFF2941C111C6C43FC75E69C290601EBC9F23D665F944A9B75932DF7792CB8A005A7CC83DD071376DB11F9C950B38B270E06C907FAA102AC76722325934755F53F3650B42D0FF293FA37086241C00E99B9C03FCE21F8D7555CFA93D09A0EAEE3733A8A5E4C45E74DD5EBFFD2F75EA60942BE34412BC82FC9959CFA155DC87FFA0AFFC1E7CA5057EE016B9751C16DF25610F1981A08B8E3352254AFA433E9B86D3CC13FE9B5B7FBDAD83CFA0FFE511E44412DFF1636BCBB49E9769FC52B302AFC7A96A3DFB233831007CFD6C302CCABC119DAD45EE63303DFA1F11C39C702AAAE00FCDCA913371F158BE5493A9B5C3B06AF66C8D5DE2BF9563FB617D1490FF6510971203DD25B27E1AFB289DF894396B8C26548BD53B320203AAF053B19CFC815C5D37E3115FD6CF8231B88FE4C330545F131A01124BB2487A3363B3E534BFD38B1D5138F8887EA63776D78783AC45675ED598617077AEAD86206B9FF61E3669C93C3C3A3A8F39E7848A88C0F94878E5D359C22BAE891FC7478BC8227FF320B047D0DFFC8218C1110136FA803EF6395E52DB8326CE8E3AA928CE42FBA04B1E7F1AC7B73296CBC1567090B9E92238859A87686D8E623B780F0376B8537F41B1BB102CC8C480C0B6C069F562468D4E1FE111B24D51F63E9BD38C47F35D8C2B5BE2E737274229974CC4CA63BD0E1F0446F6C4448EDB2498F2376EE26BDD8581242703715AD434E425908D61EAF865FAC5E82578EEB0525F54320B6C264F37DA36B55C2308D4FC6C7FB2F4D12A88CAFD93953193B7CC46804A0C464740B4972A71B7EAB5F6098FF78BDD452540AC5BAA894C10CD69A992217B422C88CC7849B4D8357D86234449B452AB4D49EDB1D2769512CF8A797F5FFF4E1E0A3FBDE292D91722D71322F0BD48C68A3CC998D03F7581EA7B5F5150E7AF58A076D09D103E9F64E61A2D375461007210DB511EA89FC4EEA75FFC71F7BF31400E7783F12F69A1EB5B7228952E2CD1D6FD57109237BDC024780006C229EAD71EBF4B543647FDD9216D98DC78B43CFEAE12166CDEDDE09B52BDCBFF089B1F7427EAECC21CCAF3FD5A35EE72C3107DF0670891E1AE12C1FB81581F3A45480F1FE06BECE6A494074FF3C47F90C961E371E8014707AB0FD004D19166140AF7B1C9D6B7E4B6826601AE104CE18E17939CF77C2A31F711D5C7D5126F4CB642178CE542973466696FAC1A0858ED62E4F2741E47B83B97DCF4610B1E4E262E700A06FDBFC6709BB1D4AFA7C20EFB72E0D623389DCCB049054CBBB322E63B09176E2903DBCE49083B01EB07F140D498B793E149573D8CA91DD2BBF8DEABAD9CECA0F896A7B306C22F8A761A65CE2BC1358A6ED07327AA0FF4C0B6E2906882A12C50D61D021A1316646461013D8169C4B54C61614CC9EDB2CE0AB0BAC96B36908BA3ABDF92D11D96EBBB9A60DA780AA58B804DC6F91E54D82068FE2FB10EC1FED54B794836F54503135A7F91921E2BBC2A61C99B6A0BDC04FBD2D4E7E430F16B5D3C7F06243517452BB7D2D51340BAF550D260A26A2F3B5451AD7D4E3A70CAF63F92E25D137C9E9B1433CAA5502DA269211F58AF2720FE3F899282C2C02B78E66D3302C5B9DC04B98197D3685EC4E6D4603D79B357282932689C2928361022E79C197A470212A69AC2BFC7505366CBB2BAB8D2E31314FFD77A04E85076D76948E836CF2A87918D43208CD856FFA33740FCAFFF9F690B2E6B33F1D89F65C71"""),
|
|
TestUtils.hexDecode("""
|
|
a7a908a5bd14b14de2439fdbaba72b5ee9bd54df9c52b17b2e3561949f4739205c112010edf1acd95513c740e1a23beab2269f5db9b432bbbee5db53bddc1fd355d8ee23f018cdf3108404b0d1ddd3b815dfa8b1c724bfc8f9e0c0e610a8b1260ae33ed202e1e270cb27755f10404dd66d3d32c530aed7963b5ae36aa4c1d0ef442b149b71a0756c9e016b7ff63fb4ed25c59edb578d01a0dcf04935a4b5609f4018a32d18f9a59f0edc0d2e90bd7e0ae75b5402652dfa30cc0938c7e35b3666093157f1c2f6ad80024539443557db996783056c63730cfa60c46c86b79ce446e2e66d2b279c192cb4773409fb8cb918e363220c0c1ed95e9a7524d0c0ac53c172eb3fe311b14d16c2460d0e583aa3ce251057b5ca59fee59f72627fb3b1c8e74a8920f10ee9f96a080d6f0a143fdf029c71f20451757b2519fe0c10e006134a2ef8d51cff472dfa63f934e13fa2d9f9705092712bca99be482313668f52a5e996a59511ab9bed2a7a4ec0ec1f17a3df944d4222b32e7c4826cdeb3abdbf325f7f9c76f5b7de28b1d5208ce9e19e853b90c9c7e2a26cd1590152fb61ae4fe56238b5e52fdaa6a17afbe5078d4af5403b620acc4942d01a432849fb5a6bc19bac30efed04e629d3caa74fb0d7c2873a3609c0b6f8c41d88d394bce13f3a144f0fb3d60a5ed31225badb206848c13c156a2b7be5d9df517d5d71ea3b578f90cc85fa72c3057442c95571dd20c9c9b1424566a408f6e135d74728b4b1aa1918aa38dd2108346a3189f54c9ee83684b1630a29a69d6280e47099ef989c3907b95fa9c1119152d97f9d9181fe2bb89759987a7dc16556223bb0738d1a10ad7959270bb737fc7601f2552a322181e1730228c4f0889cf196bb570002cc439ddb83bbea27f5ad9db5e62ef69290368544e271dad0e880a032a188cf4ae1b290f6576ea5c20ff9ac3b3950566fb8081768a4bd804c22539684572105505d2d2507308e5e50d05ddf24655089c2cfa4185265737894310f66d29551e842e9df5dc36d2e1a894d10504099511c68a0a81900c70fc6c2b32e84587d6e4654c97ada0ac1b7493a8efb756a4aa0278b773cd302f0746a6a18e3b1aea24ffcb32a57844955bab9abb85076ebbc568b4c5ecc898f9a1d9e65c6852c64a1995733420e0ba5a61329b191e750e212a68ee37717ca8961593f146e0093d1b70f07cca6b6f2805f48e66c1b3d6405ae5f6a95fe27d427482fcc5bbbc2c5e0e0449c73eadbdc261ee9636bfdea73a13c0a9ad432b4b7037432c799cff8051a331b261028739bfcb17544732bea4c2c3ec1d42685d007740bf49d8f8caa8bc31c7e59f9ca033f27eeb57f03af68b8ca30a27f78c06dd3a7f821f58579353c325982273415975b03cd8649c9632374f25bf010aa1c0bb82eabba168c3e2ed17213734718cff337eafe9e48b6ab79655e98a38bb1f74519aa07ad10529370ea2581f99c59a824a5ee0747fb6bce34396514a6a3dc4755e913304a28f4bf4019a42acda382a7a7211a30b2878264c4266043cbdbe2c711fd0da53106b0b5b16e78bcd1a075b253c98cb0aa9b980af82425751a7192e42f5057d5e5e71a2d0dcc9404035e63a905133c7724ffa110c942c54e8970dcbcf99fe1987931a5fc14e83b731aad5f2ec0a29f6872e43f18a94f5f9f11e2b7508ebe29a803fe159aabe2cdc242a6ffe976044feedd0b5826c129dec3c05764451feb8b99953a635e7250e74772da18755e819be7db6560b5ebe2de9eac9fdd490a6aaeff8bf568a38f70bd0ca443d336ae6776212e0d99593f4123d91dff7ef68222d497d1799ebe6decd2f7acc6c363e43dfdf9f72b88c25e9bf740cd1207421b476ec3b68843cdd285e292986409aa4ef04ce4b6479c95e52ccc8b5b0247afb94f43af536ad9ee79b58b636afa64a2be3fb22fd128f1f1f05b949921bb050892ed61cbcdf66b11ec042eaac3765d7aa524c0cb022d386032ed7449262529d2a6eb8c5a7a539deb3d1db814f0284e9dee64661f8cf3906a9802efb7fb5c4033502eeccdafd77a6d0f6ecbbbd39aa21f14afc3ec5def48b48afcf5ec99acefeb3007a90a54da935eb5d4aaa68502b1c469acb166646a3af67fdbb51d1338085d2798174db7ce74f2ea9c61a50a6fbb718dbf62ac33dcb7fa80aa982924f4310adbc07b2b672438c837d1c58eb8b9093229cab0d6047091b4152a75beffe7b17e44989dbef1c68feacf11a47d9dcbb230b9b180f9a7d10036ccad63454f3da00537078db225cb746466f1d56df35fd9380620e37f4692aa0b9b5bb1784a4cb80a53a25bd9cbd7ffd2d3177ac7023ebd1127adc732ef7d4963f70b130af5c33a824c3b7ed6d2e1bbced1959560cb753917781af33478ffb947488c8372d227e5efc9f5db11bb010c278cb40ead48ae49b2df5f927363a9e78bc125072929ef80efee18c7592271393b6f29cd1e339e512b1214fc5757b1ddf0bd1b9742a0a11ce469a78866b24035d8499c42be66110a624c928641e59078bd1cf6771c7446bd1977578c165695c4d6aa4ba9383ecd2c41677c3c5cf9af096f4c8c9f5f244e5395ef1db825d2593554c7c741ff0e0540f0ec897a1d8cd88d2f86a1aa21e5473b1fd21a8065d49d682d4dce206f4b511f4d466a56be1bd99d1335b17f4170a08899c2015e687f1caf70140770dddc885cac8c29dffa7d5df823b3b8d64e96008f5aed8d52ed710375e34a7743a98f714dbfaf70e78b177156634c0ae931f5082d2c6b7e8d7b1f025802ad9f74c711e218955938b14fec5d0983bd2f44d9288edb72bd1eb41839297ba5915e518a1e57e28a4ef8eadbc6ac4e14b4f61ff5834b1fc6f21a8065f7e84cd99e1d86cc9fb8582fd40eb4f1f1f4e05161cba9e54c823e77f882cdabd8ec501be12e855e0f492fe572311a01e2aa73c9c0c0ef43df7256ce9a41502e15d7fc76a3786dfc2812ba4451ee9a4d159d1052e0fcac791df2027258c5f0ef51d23498d0ef333c59eaba21765783f7fe51db331be068ec4e3e779eb5cd47e036a5bfb6634dae1e4fc719636a3e4944b64af890b1ec70f89b73b33b626d5b3f4c33e45ffae3472929818e1de7eae0f0135937f4e065b2b1dd045ba8372820a294d4a4c9d44af6e321ff565c69ffe8babd43d095509163bbf8a503ec55588ac3c58074a96f3e32499a6845387f9f8b4520cdd3ad129165501d28b68339c1b0b43dd1dac6d02fa89b3c381373a94c1a59ef4839a671b7fcd08c61cb12b6c66edb631988fdead1a818f843f070a66ec46523f8879d43c98e3a4884c8683f9eb73a4d186fb43a343165202bbe8e1735749b64c9ee36f062f2f8129e227ef8d38a7f35677b01f68162d9c5310aec1a8f8ab1365546ae313c90be351030641004c735c2ffb07d7edfdd7434ba984790cc7c3c843c23531593caf985d63c4eef255962825a44a2c9a5c73d1878b6e149fa754a46b77239539851b2adaa293dc29cac659a0d0840bc545401984682144d7b651b125dcbc3ac272edd7e8805e086e7e33e2367beeee06458dd2dd80deb7e36ae6f9d10f84459a9b828aca738136f2dfdec4dddb3dc6c0ca72e2bf19b5b87ed28ff661de8ae64d7dcbfb71f17f362897e12e94f3197e58b2d62eb849a169524ab78962b25288f87321a753241b123b2aee98e60e2ad7341d8e1796a160932c51ab8c6a0c97b188ab05dab278cb64f025a42ff8e40a424858f7e56b27d0eb08746def560c8dfd11bc359b8afb1a3b922bd34dd1f4588572d26401074e4ef4f37500d39456e458b6a9f30b94003fd110987ecec56629a013245b48be1f8df1b2ad80b3097552841186ee787be2e8ebd555253f59e12c255db9967f8f506746b8fa49203e4b2bb48d04bc117338c40a6badaad1bf8f100b8420aff9231d20bdb2e78ce173b12a87c83f0b594ee7225d4d0b975a60ad615f8a21f3a4abf819bad041fd01c740233cbed5e690e6061998af1f0fa406862025feddd62ee72ef314eb3b12d40227d92de05a960cfe96707f9c9fe8d51728fc8258531ad38cb8206d978283436f6b7aea2282cf63b27b639c78abdaa21be576a55388febd14807625391dbb8689896d08ca7d41d28d6cd342426dbcec96d6d44e78739818a757a94f615cfed9134e38c4d34569242c51b8992aa6419c24b4a80c9593ff77d8bc840e6bc7328b69a95354606602f0f8f13d480166c4c69fb5c74fe5874ec7d98a9170f47096fab89d9ada1285aa2ffcc968ba5dab962248471b2de8ac7126988362b845127bee0edadac224e552b0bd83f0a0d9439bf24de27d54243f8106b5e95716d835a7813fe504f195b6f2d28e12dc041f50e31858cc79ed3a143d9c7f4fc8badcfc3a8b756150168ec302ede64999450b0359b368e3acf00bbc9608aea9c5714dda27888d63f60830cfa1ce2b224b854136a204dbed8e034cb5c77f9b86ea2d342bf3a0b37a2fe3978e4a9c7d881655014bb23d8617ff04f6bdf39c01da6a324ac58805396ad35733e42629ef4ceaf840fc83ccdb66e96c6e148256059e3b9eb1e8de429c77f8fff51bc994fe35900059b044c1ef5b336031f3b67d3bd471db0b7c8138b36ece1f56101e9298d7f222fa9f48b9f195f1dd87a869bf8cd0810e424b82cf6841e686f91fa3c443c7e7e547f7b920b774207212de69e7e4ac8d79b45d076b82d8d8d78c9c55aa6f57a7fbfa48e03005bb65fce5548f3fe6ba2af580f5881ff739a098f7c5841e4f1351c5afb3258c39bb39f96e751c043c98b46f218b44aeb90947d291cf6042aecf045cb51fcd687769eb88f07099d3718de8a836f7af203028a5560544f170099475f374f8cd296e4daaf3963d3ac620966584659600233838d0c5c62796df7085b19d42982315cde7335f73178cecd12708124004b937fe29ee2b72fc91b94e2a6a433b2a35449bbe0bae6b866e1a10b4021357e7dabc76c6b9eebf238473e953abcedffb63b4dcf4f73dc21a2beae5036cfec91e22dba6470d2ce404a7b22883b8735567dca179df3d908a725e2e5af4201b6be97f11e9dd58ec44256e2fc223156a07040bb3008aa633a70c76879a4311918a748c98c9f2e485ad45b90b9a59defbfe2741b96904f1619ae66a70180a1c3b550cb2fab06f80d4fd2ec44cfc09ed26da85163f7c51e8357ea149774b77c41a11dca2b70ea2a6f82375f61a4e1815cd019220a8ce7a24b6f94eb3aabab0241c8c585c1d35422268a3c9bb9ef43d3a3490bb231fab37a466723ee47366d71f6131f52dcdb19768a911ae8d9b11e31c946e0a663171d53ec51688603bdea9d2830bc87ebe860c8f7bc1ee1d18980f95ded0b462764d840b70d4dba5e022110993cbf58888ae3bd6dff8f4b2e1acf367df31d03375e45379e33defb73b2a605f402d364d8b9f7e48223c979239ed5b2b9707555a698bffb93200ba565b38453c9452186300ecebb1294db3a092b3ea1ff78ee1bc1f85a51f50d1fca7ca0d634a027ea705ec6cbc10ce51fa13afa4e7e756eed9d19e9c0b8a9daa9f00b11d2248ef3dd74bd01ae7a93ea2ad16fd0f0a8321a67d39b07eb49418f475513075082fd9e0fddb7d225d064d354c2b3f57343220211cfce889e69149b5db154054dde2736df5efc993e743ac1445e676d6401b5039834fe10c49011e3f03bcae6cfc3eb2ecb8f8055d6a17de626ce8caf8d8061f7addb6fc9c229a2b3152bb17e6c40ce3ff89acee7fb5ec800fd18ad698306e2c25146f22aaa62aef8e054ae7730d2dc0477c51b0efe2148ffd7daea402118658bbe0cf265e29a046258d3b3977b0305d30bb496e24e0ed6d997b235c310f36f4cc884abf0fe62b6fd3f164914e6d78c6d4abc9d130a442163b4f2b3234286ab7b361ad062c6d6d4a2908e3033ae5db787717a6a4abbd5975faa48ad91738d0b29f50ae36d0712fcb86ed1820d9bea175e295c0e9213be5226414718842d3539d7eedd89d6459eb50cc34a058b8b453d38890d76893be1de65d6d2cc8d23156e2a414073aebea846bc157a92feee6f6a256fcf4346ea061041774103be4161229c079c5a529e3f375256f9731a60d7c106aea032927baf6b3991c2bfb69433a3f21bdb0271132eb43e027b404cd9a882798995351facc5acea7b2b006b649fd1cdf6628fdca1e4fbbc71006743ac2767501b2116567b911deedf5936175edc26a65a6fcb29dabbc3f8db466a21a08fc34267c557e6371f23b7ab7f698565d9161b0a658cdd82278c7c0f9728f5a63d821260d2b33428f728bfdc32e3f3d3050d2b87e19dfc9603363b2718c039751746396eed60cb7fcf3f7b965503d6ebab7e04faab921a143c37b8fd68260f3f4e6e0ee396876c2df262e5f55d145e410294d1da139ecf80c792e12f121862b6edf6cc5a9de9403a0d141a1d4eb8ca2e8aabb6babc44cad5fd4d647ea147d00e122633575f94b2d0f10a1e34570b0c2232505e7a898bb4bbcf0000000000000000000000000000000000000000000000000000070d111517212531""")
|
|
),
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
a12619d8176840867fd76c85b14a43f92b39487e19dc0bc5078a6ad5bb20ca92ace50ce68a6bb9ba3da7e58c2a40ad87729bf63ac51a2d4a58b9481279ed7d7a4e6fa5cb2f0e044555d05a83176c203f85d02157a149565b329a18d0963ffc378d02874aa78fb009073a6bb453d992a240eb7ef84149d000acfc8fe56af5be9390062e082991432664122412a2822114b6810bb581cab4650049894c824892824c8228020a3472909271cc28208a462a0833129828301c83401ab2849a48322097055a3628a028488c285194824d624282480206042281428624e49265822440e1084a5b42015c183163228192b4295ab82983b63101816d490004d4480e8184858cc805e4c089c9a05122348ac4b26801a9480a2902cb9829db108623230250488e439461d4204a9028699b960588286c94200c089484d3a864018604540811c8a449a12001e1c46d002106d1248d0c36848200819038210220128926280341495ca66c20b9880a1224dca6911827059892514c16919a06000a090d13128254140892406c11a76452c27054164408440051449289020020017209178d0ba801602869240865ca8464ca44652022218b082859c210219120c1b24c594441832660c30611e4326c53c40d50340dd31405634852e08409c218514aa021110366d022715b80050815708aa401e4302114b68541b004e1002e0103200402601a252858a22c8430685bc27001096511050699482ee03424880440daa42163062d944011d8328922a9310235210a484a54c02481c8681bb825e2448624c821e0384e1b150c8a168681c80402922981046d62444d8c08600c0904d0b245c092480aa930201810421028cc886992c870da00081423601812481b3322892652409884548285524089a136292326402028681001309018429910405a484d114692240860d1861108122d53b211c2c24c24c42019214da3c4500c2410e1262241a450413492214665d94091d22840d9c84d580426dc8650caa68412282a01a71188464a84a46021c38d0c390a8b081222846c1cc48444228642120accb26493328adaa41001154a94108e891406a412458c9680a0082260b208813882e24011244011000464482612113064622872e0068493004523012218b40408318d584280e31844418891c2228208098d1ab7852244804346261342861b36094c046c62040219362911026d24c6094834521a878513208a141065d34211e2486e884860003305db340492201008a12864446501936c50880c1b324c0cb4809b3086810224d48221d0b2844c020813478e0b874051342d238969db148124a4884380701c104924002913174223a5404326111c3382894465e410304c3829242610433690a1c8900cb4241933855b9490140364198949090269c2c04004978d22100e0cb8881c003193240c11022ae4a225e1002a62200dcb0821c9064d80104018a70c5024224182708382285aa4448c044a09160d48a42942442a04092a03174213059158b85040006a112724011726a1464dc9c605c0807012430ca4106400a245e2804008282cd4b20c58208688922824472893b829243520891812d3880ce24288e1888891462d82925050962d12448809954062c648081006132270211549d8806520431111c48c82b8085248210417451a94458cb86589882c9bc6488c206cd346828c0490522885a2460c1b08258018818c1262d9108e41a80523b7719ca40c1202425816724c4610038068144308082431500411193861a4306e14026ec49445a3a489e1125221141013b8800287311aa6701a398423a56de2142619032ac3266953281153066a90b66462028444b290ca04860a312e9cb2300a492080162d5122908c180204274220084cd3141151262d1807840b3608448824c3840d1ba2088c822008a2891ab62414c81064908012c6492093284b02615cb82d4094109a3060dc220064c86c8ab45123348da3022d00c830a3126a044668e1240619b9642328680bb105922809db302450180a209188801062a3b8116298319a266263288a11892d41289283844918c82410c1111114220bc88904859191286a143148a4828c51c480c4042659365001862422870c5a969119308d00a665e13830ca384910a00c0c923153c685d2c410499465a3866441801013262e6316000c49811c160211b92cd0c0497cda1a2038e94cc9434a919eb67de0c9982db1508cbb8471e4c0a2409980bdd2c41d4ada62f2f6a8a783ad512eeeab3b46f501b0a0f9a5c6e3572d1ec107bc431a95f7321bd2bcabbd951b2a544666141d24e2c200fcf2eac7ac8170e137971121862e74a9929db36472e42e1d928ae6ac4c15cf130b5fc7ca39c87dae2327f58bf048591416996bceab419a1dbf6d64bb53fdfc4c9ba426a6b1c20a21005fe2a80ee053814a44ae6f9c5a2af37785f5360f7f9e89e0d4d9df1a3a6d37a5b32017a7ea1196a6891c46ab6050b8e3af590d98eb670607ca1f3d8069200bdf40cbf61981ea4ef96392d56e2669e65784f57fca0e0dece5897fadd854482bc47d4407925a98750fd0a5a94a891b6cf66508e70e8971ae4b8382a7bc93613726eb26fe38931e4c5f384fdae6014d680451d723cf65aeef4a64609aa7d1df828ae3d8bd422e20e2b5cd44ea45d27a0c7223d72f1f93189a5eb39d9e3b622987cd57be3231ec5d6e9c6d73b54db0a9430c203bc6424c9783941bcd85ad59089dda8f71b1e0f620cfb7a24c0e16dc68681e6fc7060e28d216e5211de4c405b321ac0f7053a3eadc7bce05b34afbdfddbd30fa79abb5524a2600e83c935d70e0e31d31f30d14ddaba909fd868414412fa11696cbfe7338dee676f146e5032764e830897a022ca3a1d5e0fd78f360789d50a8f885ffd6ef62e1ef686f3020c9592d675280f9f99b4aad173e57a8ef11ad450c367e220dbc1f76f1a549954cf319cc859b8fe69b90aa0f63033e93a454ab569c570dc99fab2a5b42ad091904c31affb3569103545dd02e14621ffa97dfa373dcba17d970dec2fa02d99638348202b06b82fa65e75c2bab28a85ef546e760921acdc7421925aabe2f5af75bf7c361f326e3521d95763fa507607c43b2056f16e0375f3d742367ce49b841178a6f99c32fe99db478d78fd4607c3cf02823a6fef86fe2f77017b028f3518ce40eac99a80e0556b4de6e79c26c1bb5369f6ae01bd86e485ef4e45dcbb795af382d151db6b030c4d1e7fd35e3f7a757ad89a7577e65626da96a8a778763a4c764291b88436b7f731e62194f59cdbb60089b8f09c938e1b0055d489cd35567dc7748fe2e4dca6fd24005841daa87cd2a9403a869c93316f7acc22ad87ba0b8bcef3c0e270fe14dadcf6f95306fc2caa8086046ea8f1c6c11f304eff5a60a3a3c3390c9cc91616f78d72ecd5d9cfd2cd63a745433c3d96f3b3492df5e301f3b9576a8ea6f807e19ab3b75ba9759e6d325300a76ef7a8df818f43a2949c40f2c71ebbeaf5a21e2acb0b3b493349c82e7846e8740ec0ebee35b3e73e197d4128802abcfb9c4d5f48e1296dc13e868ee67ad00ccfcb0b09ca4036187bd5bad3382bc54d85d9b375bb27255276c2528fd2dde64770dbc59c49b4e000d1ac54ec66bce72fb50048073748462141daa2765d237612317fab755f83f2e83d3f7d20cccbb5b7c3f16a8d56e061216df7c1827591c3b75a46563be548840be63781d929bc08aef7ad6523d29e84bab02bc9c7eae34e760319e9ebda2fc6e1082489c8493693da37868ba7ef00b4048d555065bee64dcdbfea9d1aed92943e7a437fba543675e749790098da3a0774abd3d7bae399bb68d283c02032b0f3f39683f66eabf5025b870a16670f5c1ee4efe3ffcbbc3bf0da235ef4767f4ad8557f348ef0b49ae214a1ae4ddc7d95b74620c8c4d838cbd842b40229c0a0636513f78d8aac02f5862cfa8026acc57157cde593aa4f5da5e1a7293d4752c5a5e3e8a4a2789b759e392ac4261bbd6eedec10d496d874b8be5df5adc9819ce72305a4164d59122d59739e789229941767ee2e3137973264a9d15dbd151ae6589f497cb7d5d89df571e7392bd452e54e3bbf8376665e0a6ea8495410dfc268910f240eb2296c547633d86b0d67f4816ce21f50f771d093c81850f3fd0e08d2ae9ea659f636c13931a386d9f26091f47becc5d3a9e8cd7d7608f34eea7353d92dfc8bd73938e616eadb59c9587ec2dd946dcc71558c1e1b3bde7b3c576dccdc787687dd3a6e82f03add4cab5e703a1b49d348f6dcb270d59ca35d4192a4a2f4d34559996566db8ad704f8ccf5fd993d6fd7cfbe95e23d4832f37d59174c29ed5f6e81b0195392a6cd8e6d98c5f07225df8e9845bb019876971f6d7bf9c65cd14aab830db62bdb1909007f6e6a3e3f83cba9b2b1dacf01158923f078cf0f00b1c7e2a6fb0d58ecac00ba84b06ff99bef03109d19db64f641620c8a9981f670db917c4bf0957283547cfa55ddd7fe7ec05f1c3b3d11c0708e961a6fcc2e3dccc3fdd72d7345f51c530d22f3f8132f117de2c515935175107d93865f3c785109efc56bd9a7a8f6bbf2e0b7b79cc9b1b616b937b6d85516e48b7acf6106419f5845a751c7dfb247d8c8d93e24af0e5a85706a7d0d40ad1bf7e7d9c118f9748c40ded2543f83059922dca232968b88ce0b1755a693b5c57bd572477be7a1dea9b119b80830832462ddb89aa3a641199b15b067930bdb10b7ca4959019e700f065630ac1df5b8b4953847462ec1e9ae3d7152506aa92f2109b90a7ab2fc016868f627b5dc5c7e3d37da672a3ea4c3285bafb72d4db33373acf9d46406cca5d8823c3bfc0aaf8e91a9aadce204e2c10124e48d9482b2c254d2f221941e619d45ca9c2c7dd23c86c22112a59ff851648bf891d12bd6a7822470a8d934b3550c7fd8a1fa622c0da69ca2d36d8c5bf85b1ab20bd286f8c0c50fcb40a3decbf231a111a8637a7a97311ac3f620d7ad373965079b7a6b426173abddda12aea3d5daf9071ec87379845335886407b9d1a5740b5905ff06a0d0ea48934828ab8e80a28ef06483965ccc78dba14c1dac75d63b0b636131d43d6be22a7ac1e6fcdccc36229ab90e1e22e48d61fc6f52d177804f7dd47131fa7d3452fddc77b873d97e2d107ee6bd610739123e92496f0ede1532dfaa3d1dc762369bc76b202ca19295c5fcc02b59d8a744c487bf4ab50802564c1fde84678a3fd04fb21206e3e72ccc64f617b675a394dc1ff13cd220f09add174c418aeffe992a623c5cbee9aac03bcf5fd57d0520bd025b3332feb1fd4fd60489c391accfd32a83fe60eeab20590f3d8d8a4b5425df91ef0b7aa9414ae253896f05cd076f0fdd7954056d1b06aa5d35eb552422b9f77666cf477939f298476fc627c5e053fbfeb94aed83794e85e43aefdef8b6eaf6e2f4615af9e7566b9326f71837c423c91a98edf9bbba43e48fe49440a3d3957738c54e1aa6f5293e7ff2969d046111af130280745eec959e69703f77e9ec6906f417e367b3d7c093e15a6413eaf1a461dd00b5e0866114099d77ad24f45ac13e2d4870cf764858e7530cafb5b9d23c1e0ed0992fc0817d93628ab47eabdcc1bb781c4a5443ae20e053bfc58342396c2bca64d331169e316b3df073cadc87b4c9742b26e7c9d9cf9493e48e148c89d9639551c2ca98c843b27bdd9b3ea6821d26572dbda3a6aace7bf6102f11e91a64bdcfd83bb75ff6fbcbcdf33f82d026ad8d4eb189126573fae906f4104a668d0754c231fe0418e3644f64c1741db1a4c9a45554a12a924bee0c513076268421ae2621938ffb41394c80737a890ffa44b236329caabdc3d162af0beb93c3900c5bddf154f53f29f6ca9d3c04d60de97d8fcd314eebd93731677f52236793e423d37046188e9753fe42f475e36b2b66b55757958082b4ade20e47be6ea790ddc1d40f71a01adcfdf6d09d9db36707c13a66475e00bb98335eae6f283a7626c03ed45d5e2e910c0f83b3697ac58a7ca1db4076b1f8e80d88da73d6a0f786fe7b34104c335aaf53b9d73b89d517a62337729e99a7945aa32b8fc6772e735a649a27e6bb6065012ef9514bcf29bcf15581dbbf52d144d254328ec6c1030f870478b20d9fa844cf5db5111924f294ecc4039ac8e594942f2e60ccd62a244e224d487741218fb169e49ffcc48d6639ce66409e1f9638ecda661c871ad7a7752f8ec9b3af5a33b13fd7f816e97f300a506360dfa894e97428f8dc9ad64e79c1537945fea2b821d2fbf738ac4c126031e5b40d846dc3ace19ff3a46db533ba71a09b986faebb61ee77a709b45dca1b3c4d650e801a94b992485b5eaad7479631127c5b5a77a6331f8b2df656fd3e30badec74a0c2e2fd505147d3aa24ad26440cd7d724b7fea346476176a1002be8f4eb2d0f3b65f17a8050f77af6bbe2efa2d18c9be5fdc304f4bdd5ddad9e5c8fd4c4c9ce65529aa846205bb1531ccaa83bf9fd02de6bafa089d73a795c0d7c084f4d8c344eb1f00aaef38c53e0616571e4b0a46f5606fca5a9448b179c889ceacc444b33d6bd01dcfbcb09441222dce92cbd889790671fb536aa22ccc73ec34fa3fd63a2b2b1fe770bbcf758d9e1213fdf4014edb30eab83de89ed535947f34112680a3c85f18ff5ef055dc45403eafe35d22c741e1d498ba0014a2216c6b8791828c910ae231b717d75a61e07a0da4abdb846bf407d56cec5a54501cfc78e960532d3c440fb5c082a6d16c47b0a9b1d2cc7c415361ef20456c798689d457314378ca7bfa7812539481594a26e4cb0cbce956362a9e751272026706f95c560ad41ca190534d734486ffaa6182e6995d09543c538c4c7e066c3366fd7824a87ac587a9fa7994a7306acc560ff602c565c5ba028a624db4d9f"""),
|
|
TestUtils.hexDecode("""
|
|
36DC7A310D995379B796EB8F9CA346EDF60DEC7F6C00AA311B3E09EF96A6795C4B077C1D371DD8D4A538AEB78B81927D08008E817A6FC6B3F9B14FE56EF9B2664E76112F214EEE848E67EF33B4A4E26A2378E9480CC7D25C369E6C25A2673B946B635B6EECB5F5F1499B484DCCFD5165D6F14CAA8E1EC9A9E4FDE417403720D7B4BB30060AB95C6F227767D671B75A1BB5AC5CC33EF0509C69652748251869B072B9042618071233B48A9BDEBA330F0C450A2FAAE79291B9E2480D1CED11FABE56210A80C39F25E5574356CFAA32E57782145920D6C0D27C3AC7C63DED6A770A5A45119FAA92209F2A066AB90FCB81A886FB87641C550368C1B412E43F4FECC2FD659B2BDA6B7309797575DA2893314DAB058DD92C7470F570EC0B1D9C9A149FE0934D40182CAD14D5B3D98C4B7454CDD2AE7E54EFCD554AA5B458888048BD5201C04E7D6004FC2A597DA781BF15AAC9748B6659EC16602F10AD44145607917C3599A1F53DC95839086A6A4FFD66F8EAC8AF8F11C4F2EBA3B58C46B93D0494C4CDA4E8B8FF7278049D2B4BD7BA16BC57678219EBCB5E211D51A168B5CDF66453412565B9BD606CE29A5A70E60F3D451D4214B0A258D6E9325EA5196C55125F0E115B14FF34FF6B172471C2B4917FC36B0DBDC82D0475AF56249AB9297790535C0F0265D2A853DB0B41B418072D0ECC17CF91FCA86F6E10762EBC520F0AADCC3C79EFC25E9692FC0A66389B15ECDD1377A9C3D744CCCC4BD160FC65A45D4144DDCA04E5408576DBA6D5C875BB4071729361B0514E8B96405E2F48D47138D2D2DCF4DC865F717428FA1262DB0D2B7B1A356E9E76301D38BA506456B4AD70ED09B0D5A1375AA6E132D7E06F8745E7A5B5E4F6455F4282A87D2B372C40A34C09699AA8C2B2E060107BCDE0F9D99B64F17DA5FA01B6DA87B1738882976B21AE12D1BA0AEB37644AAFE5AC20E7F3F631FFC2A24EEFB61DC37485DF27FD9045BD9BB5D3F00B9B2694CB94B01E7A4F0D909B8612DD28BD64E6C1C5A612CB30DF6004276FF58491B8129FCB0B539CDF891A97AB58DDF04AE40BAA5781C3AEC65FD7E84DFD0369A53CF36303270DC80E3E428854D82B08C7AD022BD99AC0851B16C7D8D462DA21126F70D661A59E4D0FE4441806DEC48E37AC4A271F15D916135408A2751CAD53564967196763B512D52240B2B0D3D924B83CF482B5316B7988D73A16B773705097F5ECE0027CCB2C2EFF598B8F61ED4D6BC015E56D4549432A6A95328FE3122EAED0149E2144E4CD2262C7FE7495E41E0AC9FAC9A11E21AC940D25E74AED8EF6FECD21747FF8166589B7038EF1DD504F51E01F1ED911FCCF44949638AA6E8526F0B9DBC5E536FE2AE7D4DA9DEE66402A45CF55D0137FAFDA9207AA7E22FE396455F2F43108961FA6B0339D89EB8ED7EF13B936E3D2DA18E5EAE45B05DCAF5D845DC62CC55553E37CB328AA2C649ABEED0D862E8083962B81B84A85EC12D3CE5B600123AA7CE4764139BA7AFE5CD02F70D06DD9AB0BBE868070A9AACB951D362E2606FD940A8F5BE632393E0A179C2A62151A094901F5625D952D39D7CAA87B77C4919A8633458AD9B6DAA16D1B1CAEAA8075741094FBC0C08D30D9956812C1D3A75926C546ABD78A2B9D44C1B6EF8D6EC2A2EA8B7C23D0EA57E1320ACFB576FB9C575DA98B714D6B01F03364E618A2C03BA84BDF0E5D2A0403B1379416D87B5E022BD958B0C9170E82F8E9A727D39C8F7549E34A14792776AF0D72A27FCF63EA985B3882A717091EF35F5835D4DA127554B6637AC313BA3BAE8170B9E70A6DDA2DBE813A49F045D8C3A65ECFB4D5F71FC75AADEDAA91A81A958273ECF0CDC4512F0D0ACCF9D9D001A30D0B6B2D50BD216D6086AC5C9DE7388A7B1319F2E9E6CE128B1F72F765804E060A8A92C93295A99C66D6D79BD7DD4F7F02317927D60B2E9FD59EC3F95A874337228339EC673BBBF53BF0FE1886A4B14F19CD7FA9B771894377F904EE8BE48D64EE5D40882C684C81DA3198604FA599DA8D4EDEE8EC3294620B6555B3BC9627D4514DBD1F7E3E9DF7B56BDB4CD395A8CCADC184B2B8DEB2AC7CBEC6C96001EDB67E6CF6F872469B110097C69EDE1121D22FB5B5AA4CA540474630651A4F9E8F7B0ABA5DF568D882626BD158F925F8DCE1D81668EF7CF770DC615ED0F5A807E25991EC97BBF2F9E997A532A1BD82A2A616250D2232F72067A17550EE516F28940D8EDA9CCC0E02EEFA496010E499E62C50B03F1D3C1571342DB8A5BDE1F432F7B6163BA3AEF35656434937A42C4E1F473331E38467DEAA483189902364463832ED8C5E04E0195D3435A6FCE75EA3BDBDDB0A0319262083141B1BBC0C278CFD40319647E90BFB51374B0AA5EBF3C564EE95B7AF618669C935756AFF3150A93EDA92F0ADC29253758A6C8A83EF55F97F1A4C0DB566668F30DE59D93D8185BDC1CFFAFAE472E0B0FC4B1E16F0B748220EB2EB85EF127838D576638E738E9F93A05D41CC1264AC6BA03B202D9E3B06946CCC68DC15261A029B0C5E91DD81EC1D79BC51F74BB5EF778F00AC091513443308410F60AC1850F2548C8101DB3B6B4D453541E36F0ED57C2C14F465196F8F1D0D3ACD49CE3252BAA0C10521311B8B8366C579A430526ED58BDE92FED3F0B359ADB31D67BFD212BEDA7236DEE4615ABF13C856CCC93DD02AA28D1CE1F12C2DD69FEA828BDB9F4CBC9242E1017D1063A7BF842B00C75243303EF9060C8EA501BC73B3EE470919443EC91D1F0D6D0F23A899AB86F2E8A0898D318BA520DD15D9B24F4F10A1B9FC52457714A151E075BBE419E4216857500B8354A8445B5FBB526A6E008229F33D8DBA14DD42F424DE3675E704DB308048B2D17904DE46B76622BA08C62F17EBA3E9F414A1B10921858832EEFBC282755B319E176ECCDC32A25CC5E76479AC112570AA86518BB1E6CA3F46E010E8132C0A1E8273403C5C4D7046A05398D461CB6843D70EEF8C94DEA5DF53CA1A4C7842AF5DBBC6451554FC7F9913E56957C51E0A602D882BC389C5E5C7899539DBE6832B0AAB5EF26B2C96CB03D1795179A62F748CA501CFA34D5ABBAE3271AC1F005112645F10863AABB062FD2C781E4573173935B5392CF9E88A1A31989E1B8E94F77CEFBEC591DF6529C6D2FAB72E678C534C4EFF40177C41D02AF0EFEB6371835CB55AE0AA99C0653876CCB56ECA127A0A1DFC0F9EEB49525C9A5786F618DBF57C41C5CAA971A9505BECEA8969D9DB28B0E707C659EDC42280035254E91C522300368F49F2C36211E455FD620DC956AFEE41A2493BDB2B0B8AB78E0B838DA6584FF753BF88CA6A523042A285F84ED90E0FD5E28F75A21B53F618145C16925486DBF6B1E7D76585D0D117EC562E22239E14A49ED714814F01DE2B250E9B3B6A1C99D1A71CEDEEB3ADADF611C4A4F97E1B26AF9780AFED5783129FD58B1232C7E2DB9050AD3D494EAC254DC46B0461A1B4B63840621D45ADE97EE5663C9BD8FB7261152545AE35536611B5C65DD6D66878DB71640EA429F801D6FFE291B06062EBAB9B416DDA7D261A46E58B154684E86176169CFDC4A60EA38300C3D44F9A4C9DCA0CE1BF37DF8F786F28B5B3CC7B0199D3322CFDFD2CF88C5B794C69F59543FB985890471DBC93A313992ABD33691CCF69B96A9396E5F55B54FF7BCA82A31199E5E81CE94B6B523EC5C3E2F2884D8BD744CF0C072E29E4B542DBB370FA5966F68CB20ABF40619E76C099BC7A9A373707707624E8999D4CF0A75D4AEAE113D7823D7D2ABF54FB4E68B8A6A57A198B128DC69584D2DBA473B6725FBB8EC9561D6614D606ADC4FD9CF449008C0D54BE4F62EC1441FF79EB59442AEFBDF1F0976844B4FA3969EEFEA10794FDBE35E89EA52F50AB26319BD1604D3FF5AC660431F1073575ABFAEEA00E1246DCD1D9399939D655C222E19E9DBA5FF42709FC11E7E365D7F7CE2274FBF1738DC5CF5631547549F2BD4DE896C8FE039720F5E0149BD81533022DAEE22B93A3AAB9AA9DA15180EA071D98E9FD176804A5B04D089E9C2D386271A8B13E7D668AA74BFFFFCDA3B4E528937C41D43A87DBB46C2B49B63BEEAAB978415536A87D845F6C2484F21D71D0F904438C46E7B0A3C6DE5ABC01C6F7CBCFF21D3E74AEE96C20C32884DE4EBA0F282C0FAD06BD9CD6B7B5031F149E4788F102D2AC2C99FD09B14A4AE3BD6859CAFE6F5A494EE8CEA29F49D871B79BB66AA6E6EC3718B97E83765E96D5603B209027BBBBCB09EE6FDE3AEB65AB1D73684820AB1FDEF88086B93B6338BEC7088E04F5F6E520E3D715C6C5E5B79E73B9E7AE1C5EDEEE4015860CDB9FA21FB434C3F28AD865042284A7FE9A5FF47E8C6158DD83EDF28BFB18DD5AFA07A48BD5AF25B9644400CC976A9B0FE9D9071E708113802A78CFDAED28378AA4FD6FBD9390D8A17D6500A0E1835652C7E0B332A382576AC4381CAD51A31E64E5E24FEDBC62EF9D0CABA0C8EBD8B94625207D0C8C1C6DF4EA2B20832EE44D1E2DEB799BC97B7245EC404F10764296E5BC4A919EC24B4F5F7D18692FA8DCDD5BBC170A81BE7590B7BF4058DC7BEA0C545BC85F0B3F0936386C37115A333285451CCAFB8397F1AE1B56D0A8F884BC968E729D622D21FA26B89BA2726C91E6886838DC9912797FF2BDF6800665C1D1DADFA4A240BB9BBE21B6DD750389AFA49C5C366ACA5E9C3B31B358FDEC42B0032D9E2C22112E43BED2023B364DAB334BBBE2C3B669EF700702B5D1837A6EC15CEC2B2036D56B8760129F593A669FF00237D26BAD9F9C2F4ED4018D998E555D2C3CA1D53EAD6A1E27906353983D4408904E5FD9D79AFEFEC26ACEA1F39218C36637977F6E2F3F6211AA06AB9D5F991C76F420B152BC95C4BC10047E107CC82E3B00B2325ABBFDB0FFB2966D5FBA0EC7E8DE1DBCC053C4186AF23A6BDF3F14A7186665AC2682FB94B0E10516D500B7F67BE4BD2523E194A1ADD8B5564FAD9105C86B6D16B08AABA604419D55F571F11F4989197144DD12867D1636D12800D54D36FA88C620008095560103366711B8E3AADD5624FBC7FF51318D17311F02A807770466AD559CFDA0AE1439442E4413944855D4D0074D529CA8DD621DA02FA98F46327A7BA600387EAE5E724D64A82E94ABB760C891EE39F27F0CAE8D1AACFE20629DEC5DD9BF4CA91E65BF413FD2A9566B7DCA9E500C2C328F533AF2A957E46D9FB11F0DFE99127656B1D4BE20C946BAFF58E5FE1A9ED282ABEBF6EB35A35AF324DF0A858CA8AF507CE43D228ED81D863F7096044A084DAA37ACB6AEE98E5A94D363963D4F852B955C2F076848092E6199E07990372E56BA1D590BB83D0C7F834C852CBC39B666B801CD32A0C36B034264F3BA6911A719001FD0F4B63D2D628FD0CAD34B4C9355534A8A38512E758B110F48E5A09B504D20D178508E09B1423A1E61164E7D138B4A9455B95EC8EA786F5FFE67806781F1E619505FD7DDE9A904E9003CA7E5EA1077C94C228D36667031502D78B3B52C3B5A09FC398D8B5497B6E3F0C5381BC99DD7B11DADA2DCFAE352DDEA2C749F8CF5AF39587083C2C19576EFFE871AB94D1C7CA2183FABDB74B27A80FC4F20CB86B46B0B7F86384540EFF1C888168F74634F2C0BF7FB54F7002EBF90B6C4B2B25DFF068DFC7D087A27749D6C36AB0A33423044AE027DCA8C42678987005FB9DE5C2774924AD2A5A8FD2E89C288975F89B5C0EF70A20EDAD1925060A12606A9B03626039635BFF332A0E6BDDC4F5DDDA209AF8DAA0FEF045FBEA9523D04458FBB0BD81F65396938436AFF5FA66E997AE58D64E7B5C1B589558B3DFF6D035E31008D2C76CA426B07F1644F609945909DBD16559B36461CE882A361D0415A9D93CB98A5370C56913A299B2DD1AA372CB75C7E590A9629CAA6C439CC5C7D94A21F36F998C6FDEC1C1721ECC500ECE1214EFFDE65E479D38C635EA223286DB326EF9B19B3CB862C96C162D3DE238C2948E7613A0FA4843E39EAC51EF293AD7EEAFF0F522934C982890F83E922B2BD52815136D0A758B33641C54E7D4E0F3B19AA85859B750E7A7FB80892C3DAC5048767132E2DAC5804709B8560A4B3828B1CD25DAF263A2466AF7FE328ABC84EBBA26902FFD92B0D765AACC0C0DCBEF962E1B35B1195676E8A67ED593B23B2B0305B611F9E16633E77E3F31794C58C5309BA07DB5CF9AA1CC108186318A3F16A7141854C2FC8B469BC0F54BCB22976A3CA05FC2C8E23F1B6A891E7527F204ECCA0A5400B68565906E795FE4DAF52ADA95A9883676F9110B14CEEA389CE9BFFBB5D040E60D3D03C4E6D6CBE9ED53EA44B1AB6ED7EDBACD0AE0613DBA5A5C673A534D48B539DC85F48175F13404016C5289348504141338FE958AC28331853AE80ADFEB49A6637936BF82FB26B95295B2E46F4F9534720A4E86FF18B31335877C9CBA96A9B450C1C8C9C9862E51CFEDBE3DE5C8B901D792A179AF9A782C330035A14CE6A710D398BD28416CD72373FE216744F6237B38B97351A77D5D0DEA1A26A0A9A24FE15503240933E1CB5AF458E6FCA8624669A0DF439CD7FC13F7A1F10A0CC7DB8C6AFAD9C99B5FC45A7C565B5DCB74FF0EF426FE7C260D3ACB1E9E83DD8E6E11A642145BFBB7566D582D0540D7931AA28B7F8F682E6E2D90B6E6812FF8B7F15FCD3DEE686DF06E8E6C456C99C6B4215C4E874BCEEE3B4F94BA825C6A45C2A2B4C6DC04F8FF5939C74E7DA37E02D8230340C6E2AB7CB82BD226DDC1A7C7BD0C0FB36F71F9C772233132B8871A0D76728C2A141741C2662438C5CC7B129A6C8FC587A0E475545D176818B51190F0F19E91E05C04477283A0A7D4D646EEDA3BE64459780BAC1862D83E6B99C5731DF91F0CAB454E70A0D94D934D0CD83C8B8301DE282F9A1FFE49E73EDCB520C016FDB4AD02C261DC1A1E73E38809E60F91A4E38C69EC70D2A621DF0D21588F24CCD59D331C69E16F0F6BCAA8F24031DD5718875BD9EDA5B420C116E4316137D4B77623C9D73D182900BD7A0F90A193CD16107E692D469AF09F74702492E22C796B6B4A960D47FDC571B4A264EE3528A0F5A9D66DDAA33FF20C3101D50299EDA3225834C9429976EC8E590C6D48A721A14972BE70955EC1A0348D2F84347C1E8E21EB0C1FE67223B42A6BCCAC43648F3BB5464121180F8E3E682B4B664D91584AF55FD1C7D2E6F79A93C680238D29CB7FF36D259CB703DE03B2EEF6DE0CB77AAA8F49C61EE482A8DAD30824E603411D5F09482DC84BE794BB6EB65A7BC1DA92C8BC8364AA88D4B8212561745BCF3CBA0D6AC8B8AF80373DE3F44EE39CA3CE4C5763F422CD4E8827B1E7BDFF79DB990A52530E4A1E21F6CCDF50A322A086AFDF24EB5FE4D99F1D1BB4D6DA965D168E9726FF7A4C82F327A748DDB1DA5A3D0E9C8E0B060872B009CC9F913D35D94FAA912B0D6FBF233DEA3AE3C2A4E35BBCACE21CA3E5F7A7B9A486AE9D7A7D2E0B79FDB11D87072F1B307402BDB22746B86A1A0E6B41433D5BAEB2048ECA53A1ECF895E9EB9BC5D6AB5D5DF72353566BB90578F12C6A16A163E95CD35DA27C79379756141DD05C315B466871E2B726B8821FB6FB439B49430CB3CA47CD211D03DF40AE4A0BE87B6000BC9C75AD23552E2129F47AB64BC9E5E1620C99405CEDF7BC059547D547E2868A6D470D813AA5095D0AA4BB18D91964988391EE6F05DD47CA1DA0423CA238C5E50D43CFB0527973506B9F1DA4A8055C47D1FA1E0DC783CE3CF75FFAADF574EC2849631E2551368291AFB5F2C40A4F1A184E37A19E511F482B7920F6D51B13065E6327F3C21DAA7F73986F2D1FBF375DFE2505C0FBD35F403D253BDFD0BA1B00CCC5A20B683D4F1E1F2374FD914C7D674901A0F01BDFDC007E8021013BB9A2F885F0699D16805F9F2511A0C7D3CDC06E36679983A2A0F12662C88BB7DC643FBFFB58CB51AAB3CED28553910D063ED8FA37FD756B79AE4151521450E552E4F2B62EB6F6BCC8086BBBD30331F3F2534AB3ADEEACCF2A6E66F205935A167FA1D5C747936050E276E8E4CCAFD9E0A056E4AC2AC08738BC3A598F07E933B0ED285BACE3D24AE6FF7574351758F983FD7EEB3944473EDB4EC9A9828A5FC656BBF04DC623C75F8B8038F3699BD5F255CCD3EEDE4FEFA12AFE8F64436DDB1FF2DF100B09BEC657DC5D2B18E5722D5AB30D075D9A52A576B6F9FC8C8BA3ACA6A92E6596F688FF5D2A7E3183B696AB277B0B17F004843E58760683F90BE0C61DD0D1BF9099A865CAFD1BD1D8AB1B7D4AF2F86D51C18D7868BEFF3F6C53EC68FC46EC9F23D1AE1FE85CD97D8CECFD57A562E7E574ED1D0A7005813EB980C2A46A98CEC602C0E022E87D4A6EDBFD7DE9FDA8C02EF85701BB1CEF6013F4869D32CBA56B0AD6EB007591D03C76A839F9D01985C546C39E49D59395B10346820324F3E298C5CD977FC2FF83BD422CA550DDF2A69607BB8125647B389246ADF0095F22692BF907EC86BF8D70D7E8F2C50E35DC6EF34FD1258E1FEBA0B254470D43C77CB0073AEB2D4CE5F6772D49A101052D8CE943E1C7760F2994071644D27D26BACA88EA07F29B2F2050BAC5E05F2226F1F584D17DB80E4056B7F9C60A5D9DA0CC577C6BC802FAB26E570BF017DCC7236A1173E273397E373640ED02B4F9863C40D2A2A7828C3875D8081AEBEF349143BAAECF9089EE736EFF0EF80078D2CA7942FB24A92071D229A1FDD0F6A87D362E5165D57F62D927757BC31964B5DA63B90EB3591552F2B9902E2269A163FF221863ADEADC9BC92CAC0087ABDA02004C0B9F34E5CA8599DC3C4261489F7527FD27AD2B6501E602FDE47DEEBF3F3EFC0166B1EED95116CF43C8AFC0EF89BDAA9ACFB6DAC613770DEA78960C99C9628C0D21FAF63A0FF7A3F2733EDC0FC07B83F107A811BB3C1DFC6CFBFEC105193272A4BF915B1DAEB232E16216E40FD3F9D9399B15CC4C073BAE8D08A4EC42D91609574EB009A9B52F06D3F428F6EA9B0511D8319A1B1299C154C94B103CB586370A58F18F04F5D21AD3B638660D6C04E99D356A7289E37EFAD643A5EBB488D54F4A0194FBC4283A8C4ABB8D9A1D70150AA50F991204C038AF54B5B74F722CD6515045D62276A9E936476F42B282C3B08D9328089AEA259510240B95BD5E81FB9D7E006DCE0DA832BD9A833799E05CAAFA6305D16DBA4461BE13D3CAA95773B98F09230F2DBE13936495C2DF5BE3A8F3EEB4FD211810F4B07D3E2BE1A11CC87079DF1B32D44B6FE7942DF2627AC19FD9F584E771D7ED98AA4C074A9DA5B7C156F83D90EBBDAE78D636D51EB0CB30C7C7CBC1A96273C0AE0ACAD8E15D1196BCB2EEBDA332896BABAEF76B4275F863732D646C24627AB014AB602A47594D6031795B17144E6E2C23F0341422886C1E2512222ECD530017DA02FC015EBD5BDFB319F3AE942D75A55C21BF347A44B300ACCED7A339007A2527EF4499E3BA5DE334BE58D59918DD0CB55B2F478837F71E9CEFCBBC90808E0BEF8CC7712A3B008B69476C61535FF0787B7833B70C69B1EF506EC4F445B72AA12FAC2589815874E9123BA13A17477D61E41163CB21ADB8151658C99F1422C71A8183B8D0B1D489EF436564C47ED8482A0DE9170CD1BC34D88CE76E1B47B84E770020125F718B4AFB1E4587668634FC7464114762A9D74A93E33A5C0CDFA824CACBEB097B5CAC3B554BC0D41C402812D8E43DB37C730A6219AB6F0BACD096BBF261C78E991DE0A2278DCA7D1BE0E5F2FED72CA38BAA86924A84275BFED3B91FC8DCC5024316EA0587C96E030544F631076DEF65F05F98C7641A958313686B8580CFC20221ED50DE4D2CF32461FAACD0174AC46A6949EF8ADEE6FFA3F537228AEDCFFDB2250D7BDBC848AFDFEA67AE53CE9ACA45F349557E81F70F9DB92926FD0CED8C104E6B7AD180C7B3BEB86171EE84A8DD2C243F6869E04C2DAFDF0C938C0768415C56330C9BB6EE756BB335BAAF96EEAA5CB52E554E39E2435B0731B0062376F4730108DD2F05824A798DA24C239724D19F12C6F2FBDB52652352021E0167F31E0F5941C4687DCD13A81A20A0AF05A55D2533280941865DB4D5715AEC293A64AA2E5151C8F44A14B72C0879499027E67E4E2B487612216F6122361E8D34E92C2163B0C88583E3887DA93A3AA0E77FFAE3FE8FD5455BC86AE6D6D5AC7CB7BDF156A960C98B0BE50E1370A43E7D183636DEB2C64B264FC5922D4BD46A8206F911E7A742E72E4EBDBA39B6151AEDF5A6CB4157B375D9A59899808F1838C61EB4388B923423D3879E8228AFE0CEE9561135849A89363F84B41BCB166EBCD0E65A2A74FE710F2B3B55CA9DE2FA9DC163BFFF4BE91F10493936FCA15F5F39422C75233DB22299456D1EA3BAC26F6671557B2A5FB0E9460997DCA797C67C49DF109CFD597BE34C8E0FA0353F28B815D0CEB31DA93E49EF29CEAF20FEB0A8F5924DCC62E830353463245899900304A8C8DB5830BC0E97AB83853D8EB05660D6A9303833D170E138FF6F1C30D9DD64574D5F875F974225DA81ADE3D97924A38F552276F46A5208403AEF82D1E92959675EA6B353E5C6091034A295D9C12C288241055A2334C30DF0A37D2590626A7D1787A4F591A6E494BF55ABC76842BBBD508FE54C5630D11C54386A487A756ECBFC0AE8957E7CA8678D5B9B044117365AEBE79AFF2E6678001D23624"""),
|
|
TestUtils.hexDecode("""
|
|
e8b08c99776fe554292851f9d80f785b8109d6edcf9d30b4b3c8c11fe8b2e024e333272f4d72e697aa20953d03f013c0c3800e840aba56daf36846b0e958f7e1a465deee3fae6e45931424ac278b6d1916dc71760b7518643185cdc7b06b1dc0a54c83597e6a2aee0894c2066b5fb1e2439b2782ceec63aee1742d10f4c36793b845d5b86db9d22a200e12611bbd102cabaa00ed5cd47e6cdbfc06d7bee55e65e4ebcae019ab28f0f05ff2efcc3c44a5c89a5e80fc8758d774ddb3554975346aad922319273ea930b3718562c3a96602645c58e375e8b78f38cf636b42e674ab4c5e1a8da59c64100984605035e1f735d6ebd2948b556b056a07ab86f8d07f8cbc72cb7251543ceb39a9deea50b8189face6b5ff23bf62ea3686fc0f97598f36ca445942cf3c2acc5258f9a870eba919b99c75bf598031edb693552c086377ab84aed818e795b70a62c14f84d5d01fe9257cc9df2f4cb2f40173be7d11592e9289eec23ad30a8e5dfba2f6a779464e79cb5b07e6e5a19dbb9a829eca1ff64c0a672844ed2e636903bac6edfce1315cab8751e9f12635160df14cbf5ddd341824e8033507de1f6cb7dd87c5496342a27a8746e94da455ddbca610c7990ed01ae5dedc90cee503d525ec5033258465e282cacb2c0e0ea7457e62d06c194a958322e64a5433e4936292fa700dad6fb7ea4d5689d4e3efff132d61493859aa5436c9087fa9ac5b67419a836460fc9bbb4d53d0c9b6fefab2d513b76f0600d097b0c3eb7d7a82e01ba3abed5354fcbce02cc7e85fbeedefde5652187fceaef8e6c05b4f37c33a752fea5af6160a7da084e41dc7134534fda67c4e1c6b8dabf7bf05d25a0ab7e05c41c4e0070e8add04f20d8c72bf941ca284eae27cd9568e9938adf4f55ab2c40d03bb49c58c6fd8d74245cc3b4922891b865dad534e256ebbcecdf5227b39ac335005bdefe1be10c2b7c969f4dea6f581c278f8479cd7a40a6d369bc5e1fe5e074230d01795dc664e488e4e360b169976b99a0b9d257badf3f397ac914b15b8ce4b3c38e6c758a169ca015fb6fd339c4255c51013e7430c991a006591fd69a069cc2f966c24ad78b8c0a4f4601ea08ccb683e8d427d1a0db844308e86afb0e3f6965af9ccca755b5e2a8358fd2417b46bce7a69b2edd6e9b3fb617dc5bbbf2803a557e33c907b4ee7fa7a9cfd9f148730d48e471097526e4330515f3dfd5e4f0e6c6dd2c2db73c2c0913c82559032c15b3e580e3b11f5c319db8b04ee4a3dcc87a4251e8ca8f77a8e61d67a5586f2494c3be2d70d95076e6470cd3c3ed1b780ad9217153fda872911bb01edf13c13143e4082cfc9fba96f14e7844f3ab040567faef1f03caf66eb10d92eada39afc6d70d16325008f628489ebd9e80913227e270a8c272709658aa843a486039a21951467dc1e5df0feabc68c28ae9e9cdf95f7db12cff0167657328985f19595b5aa33f44701a8f40242a0f33ff9829078abc53be36c002405557c61b9c5585f7d61d0fae020b2ad18358a278aee3250b12bc7f0887d8cf42137f26ca12a866c35876bdc737a22b8a722e71ef500ce958723728aea23748924eab3552a7cd4142dc7e138c84df1251a2ed8f94c939bc7aa0ea4c0ebb4cbe817aeb65ee5f0f9cd407899459e719f0558f8f40d73b1226a004b910e26648852bcb3b08aa5340f6ac6426aac89acc4945b180dc4f401d97a6fc68e3fa4b8ed65ac74727e3ee5da732b02caec13b88cb167b15e4c7da21dbd937549685e8068c3eccad584698291b9c3410aa8314762fc838f9336b6b09c191409d1aa2dd5e2a075b070413c805f116d42f90af6c7ebf8c322bbaa14a5692ac0749ec7df91e5eddc7ded2dd873907e07b01f14fea1e0efe6d7a1a5ecb95f822be8f3a2f65224c3d801284de6f29a25725c3784d7bccd1253706e107fb9dedbec4620c87c615f4458c4c7078a1e69a0f5178b318fcec51e73995df8dda6ece7b7267d28daa1fbe7f36680fc001974577e4a128282b67819227e5d100baa5101c5a1422f096083b3b522a6b71f8943b536d7798e86e18129d1484cee60ac63cd849f5c9e8a58fa42c0298e3d595c3c4f145aef17f79fba8d7424e5ad7d6831321e51ac88eb1c54c6c1e2f3263c899550b65cfc52da78b7ebfabd474851b3a2b5457f4e646c15ff50efee6a8ad5c99e91853656255fd429e8982c56d65d005cf3ee1a725e224c768e8c92003a72f3060cb088f7a8cffac0d526c028f3dbbe84600d5a9568f03b2304ef37d5ed28941169f8e204a1240e6d910dcdb901932982a6d45a7a10b1630587d31551b6e4424fd929b5a7fee3c4a20929102f5791062acb3c53a6edc93ab5ccc703b8cdaa39857ab06b7f818a59d8324dd1ab342aa1c3b0a32dffa0512b92c1ab9a4f66e57e9bd27734ce2b2788058637cbf94b03b7a1b640f03735f36bb36052bb461c22fff6c0580b6eb4bc572fabc9a141c1964d664168116d9836f7c7581cc9537bba32d1e3e5519e29858f889e282c805084fe3a64db0234bb3e1dbf57956ce4165795648f4865c1232e24a6769e24c0b271aef1146425a9032884393d275fb68e3b3c91599ee82a4cc34338715a8590f436e4185246df9bc4c066ed975f502b967a5761c1b8f5aeee302f96aae3dfdb6f4519aba3e04cfe5c9b2d342048a4c2721484e9b311c9a18ee5f726a512c93a8d37cdaf6ee96928fba315a4680dccdfced6a13f46e06aa162a7ae445bae5b1134f1656a2d700dcb2b5138c780b428d346feb98be8ed911de7aa5ebd72e2a6a8592a81ad4fd6a6da64edd2f5490cead76fc652998181018457f1cc0ec4f4588cb8f418f1b6d801635847914c3f317369027b4c4608e65457f949e08110b23dbb6941632afc1d1292c55c169965f0153ec72d93498f5a68140ce2c8282a59b1011ac705fd5f0a8ed1ecdadd58d4a1fbd4b09e94802a0c67f2f5faf905bc4a35471f886a8f2366c25b710eb43aee8fea692d12b4f94513337b0ea9fce3c255188ab7b432ae37383470eb94abc2554c6f165bb356415a1f8d8790e1bf76f4411c8f32fc550e38a0ea7b8d37537855724c08eff4730484e55accb2f975637b74f29937c19fdedb5aab7d5a3bc9ee1df2c83ae8d0e59782fe18b3a17c82cf649a4299b74f022012e189f19d88b06387314b65add0720aefd0018a09bb3d13cd63f98fb73b8a57564137e89811d59f1c74a047e264ce816b01e942038574a9d1f4fa5408ad1661c31bef7e97742aec79b74df757065e8e1b059b5134e53cc8560bd87e9a68003b124b15afb6534cc6181b6b71eda535ae7a3c107abfd2d8e5886cf8a7d67a4b723ba794c0c5a9d1a63f67a6c42de3e3632b8a9e7bc7eb9a5e404930265a7d04c1e16ac17a7b5e1535e1bc80ddd1800a7ba1b0d73ba053688137e1db64eebfa9b5dd8573a51db93aeb0c6c644c97ba9dc87efb2a5d79b3e3ff396a45ac1f0aab064dd05c1e6ae48b2686d662b8bff1e87db3745c7b3126a091e688091d84d3caa1adb471df496e79e42b276088a600a6f8d2aaf3d31b22f7e7efd2b894fdef314f2258d32371fa022e272760c704997b2a605b0e1a8d0602ad3a134357b0f2785d79c557cb04121fb054354608655afa7a763c8276170c13f9e76dfa711e26ceaa999fc14c686e2ebd61d18e74ed08fa1b872e09246856d9e0477e5e21a72c7869b57785248aef0d516f670978ba4dbac563b77f365cd46cecbce0b7fc7c9fe7373d6ad47d094b3669849dc21084124999ed55f13106d4be1e52433d86ffafbad0e4f221c305aca71063037b7a26ca73ca37129aec69e665cd2e70a94dc5aa8d22e1a425853645a3eb05f8998c6d766806087f14f08fc95ae3b2b9190721bf536ac20cf49222f5a0dd03307995adadefa43a205fe9dc839b5f27447611a93012d3abccf3f5d7a766756111dbdadf6c5920782545c853ae1a550a08b14a87bf296ef0aba7669fabc13a8d0d85d67e36abb24a77bf87bdebbcec1e28c1f82fcb95e82ee936f0c1a60a38ca3ab846eb39cf27acd9a219abc2c6244878ee25efc38a6552773b7444e466c24a15458df3cac856201a12c3bba6483d886482d58112effb0cd72c7aba4df0c11474a41e1fac0419495166d5b88b7e5e169c96c9ea6ac96dc5c2f749c858ad524e7f3d32177aacbc836abbea91ff9dac9d313a8004a186ab52083662a03d42518199bb2b81f9b03501ed8d1e8a8069e6a4fcad2657d4e69c0cd8e4ee56389d026717c72c99f13b2d21780c122bdff75c0469f32a1c519afc5900855539b1c75a3019342b7d5fd8ad7fb02af96fc94ec29583a48b964c65586a6f17af9f268a6cb9bbff237ddf393dc40d03b69ce5925a5fa8af87a6d0f497ae82d6468726714f7b53bfcbb647253c9db17a7bd5e760531ed90d7cf044ec0bdcf9724b640a201f5a08e223ff20e818e16e88fd92300b07e89ca333bbc05e8fd01d847bf9d7ce85da9478833f5566662888c8238b70cc3481ce0b8fb5c5e144d05ca8b8952c4374b261e48352bda2bd2e8de39b6318a0cbcfe3c36e6dd924e52d82928e964930ea6526aae08ca596fb732dfa02f2f6da72a05a227648e1fbf49554117aed210263cc6f5ebdfe2ba852d1c4c4af8f71a8a6501927109026e544432504a5bd066d7c03d443a191629a2c67b00f634023bb07c676294159db4df69555ffbd6c4b5a6d4726a54f9a0ab243cac6ff603e2ffa3c4acc6046a849b099654d0d894ae6536deecfd326aee5164eb1a59838da8cb33724697c17d6735687c860a13c8b8fbe497b99c98b58c8a0f0c67e1239b5a0880c1d4b0e2cbfe268141d035c02047d0a5c64c4fc79f245e50c43f3f64130be4b8def3085330461a12b1cd047afce58b05d2d75ac4980376a2739821149c95e17dee53f6da1afab57c02c7cfa3652784caf90f6f66a93966c636a29df19b2ed5699ffa1aa0cf5de784f5b57c15ccd22f5963924fc55f997b8a508f10d8520c5498f3408daa04028ec66b3885c5495e10666f8125f4761cc09071717244928ebcb985cc8ec8ac777fd411b8a2aa51320c60f6c71bdcbae9f6e37eea62c1f595ed27bb83b25842d2e26988d48217862afade93f152155166ca55c13c143d6c176208157fc8a836ca68ad5094de00d82665b2675baa86a6012fc36593e1c9aeec4da750c5c747643072dea8fd786738f5e788e36767bbd29a87ad1731adc579396eae378f8c4fdfaccdba49304649d108b19dac8caed2d08f116cd33af7bd22091330ff4e99936dec531ca9d735430cb4a0cbc4652a9c1c43168b1ee012a46b1cb92d3035714eb4f7f4d6b63b60589b946e5a47e961f3c575d13e1486d9a388dff8c8e9aa4663e5ed91cdd8d3d59f02deb394ba37ee4a05df162208286c19bf0204f4d609b229087351981b6e62fc580ab06ff34474db029a16466d9630eb263de0b76e8b53239a044f15f90c4836aee8b2203d6db413b583d62c8bbe7d657b2c1185a5720457a79f621bad76674112e28c34ac65abbf65e73f54f918d0b912c429b29c5c32a370ec1810cbb07375a85df5167b32a321844cc54c34ab54b87fa6378924e54a874ab871c928d49e704dcaa40b88d7a7c5774163522a6620abf5d73643338be36e5b2e30659d0e39695fa97a6ff8cb8064e370eee36c5a3b57de7d218fa325646cfa4fa2e9a0622bcf139eca8acc28de6f0a5d2e37dd2b0d6f6b39989eda0de372b20e2cbbde73857ae39b7f0cbb2f4337e04a52f1549bc4daf89e484b06177bc9cd6b199906b62789431e4a29251cbb4539c62ea6fdca9c84721c02b8af585f64e8420a7ec91e6387a897196685ebb760d1b4276cfa36b51f4d3e840e2c5e074c69ec7f6557afad4ef6774dde534f88cd7683a6855bbbf8d43d520cbe0312c9e189f710c75ad64926a97ca0e3b2b575e3aecf7b9145c160c415f8c90160aa5208744addd8b52580645fed9c66a2f6d8b0afe577ff63e3fda7e9a25519f0d2fbc3bffa9f45c40f70452a78b903d923e4f0fa9475659910f75455d144295e4091f8a760e1e68460227d37fa6220b4f0322d61b8fd7a40275c4d9446255862682f775176c67d294ff45205726eb733e5d21302f4df66fec98102611e3bf8084035b42448e86ff9225935ebf7db9a847e8a0f72ed177fa3812f4f5c0dfb7e452acf0e1a23d781607de22bdf31177d5eb5e2840bad442feb2f8baeff6f17bd63ed9495b0351949ccbb6337d907831e22ed31cedaff7cdd13bc3de40421ac6afb536ff89bf041a3026ce04316b6a082c06e0437440313ffd36ff78d6e31a4f5652c52e53f06fbeac2a7f13c64c061dca9ce9dc2e7598ed90a12307e5125397629887f0a3d3bf8d24b675db85ecfbcdf8b3fceb50e96b0a863d30a7791db30ce4cafe8d85999ea1282ba61f667497a8c52a2fa3bfceea070b2e8a9cd8e51a244b73a0a60a1e4076829c1a4668717495adbecde4f4fc0323325d71aae30000000000000000000000000000000000000000000003090f161c222e35""")
|
|
),
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
f5e15972ad2246b58dc056182273172d39b05662b5048af41a6516a04e042cf25c9c233ecaf6416295430b3e77e8bc81d1939c0c6a6304ff1b750bd145a18a2a85e53116f2d3ae39e39afb5e342b59e66196b1155c886ed149278db268c22e7202ebd8ff6da2768ac4d5fb15b1f3307ec53dad5e6ad6db55255e7460677ed6cd8ac2446414600185000ab66d1292600b8120ca1611c2486c628828099929c2a6640411651c164684364adb887021348c094182da0664c0386263020e40926404b8410336228a046292421111956800032dd0321014832001122cc2042113100d6048650b108ca24428020865e3022924c28514c34580a864c4308290c86181982912014c92308d04901001852c44402a59b4414b022c49822100329199b00dc204915a082da42245e11632c84044ccb82488469022b66098288ea2a088da4432c3124ea01469233546134708c8a66dc02825120084cc868901a5311bb8500b0046820088218804a236481aa9411a0351d1340900c62861384109b081d1208a9a282160448818996859c60d011829429485e4a6900b9129210368081545240522d44444a002121294048a3840932852019590410870cc068ce4380923828512090d44b20082b8651ac42c22922dc2c03119a7259048208a0286e4c24c1c170224c58c02174a5a380811268a19298a08232a01010502b361d39270e2b409e40830a11629099821c222059c3661a3b050d3844dc92431c03029d4400d2443468ba4645c36054cc828a1b4201c4706102648a4466d00a86848b26464884914454d23b1644a3440a446525432521000911b4580a0b4219210311b802491120d1a16110c432e92122a1b037012111120096d1a252189c40d8a2849e1168d804602241170cc842462b08d890068d29004022884013421dc8401a2328d58260e49140244b081140946e2383089446c1a2946e398459b224c9238000915401b956523098ea2081208937021264903210621c79198026c1a4869c3424219908dc83452923650221571c4125101866cc3829058a6480c442a1305066338919c422dcab431a030298108110b425120c42010b28c21388e9990491412105986495046441cb405c1b8501897840ab9240b3260e2c6059c30628c48211ac78800182c89408881484de0260d1044108b920820166c12381019b78460286ddc328e4c04099a8450c396659814814288214a4405948484a0c8045a08040c3529c8488e8aa66d183890d9b46101394941a64549986c9ab20484c4110431914b002508330683487090c251224006d0c84121090544348622b345e1960589009010344eda02515948468c0462882491a28830010606c0b4008c24292436508c14662046085822244c90610c066dd8b20054906d8300919118259a04001a014809c42d0c088658b28ce0984ca3060d8b162563002e20340613b93183c624442884c1140512354e58028e8a8849dc4266a3b0210b3690048988da383153b6105b124e99182c8924918bc80ca1c48d194751c9c42da3a4911439241b19819a28868b320e48c26483c42143c6690907215c30660c086cd2b88c19c9004286054cb28d9a00295ba2401b3409c028129b285003a96c20146aa2044a60486922170ee1b6308b186cca085114b524643800c210055ab48112378c12420423c98dd0a82c90309124164e2496840b1924009300181160e4466219a620d3c04de1c04510301193202e60086c2189851131309ac84c9bb230244001024384ca245003c44158a06021b761882091999805d4926954a201c0a4288ab42d81a80853086ac8002614c12cd30825849024d3c40023002e08276d1c270d8ab86861a62118a648e230248c862024a584598804d2c849a4048922394c13000c11a310c9b08014016284448911b841a3c24d62a0890b861123146524006199200e520830940890c0c001c436600ba791d98601cb268292c221c8c668e01864491088520865e0062c18882ca2006a64c28919196c90220514178dc8000a11a6851aa8841213440b176959c02590804899260448b670c0a06943089212170554c02522000d1b360d01068e23376c1905648bb481c42202c824080a002e11064c2335725b1222132969cc2030100725c010821c17500027880ab70443a68123a82d0b8149584621d2c8215086280a896c233282440648f7997f3a4a02dd96ea05f99886e7035f7b872fd07fa322f21a3dc47f787d9914bee7c696dc22a45366e839af8eb0bb2bf61719b225d0d53ec79c27dbdb681f325d0a4c58d4e86f7dc0767a4d3f20e19025679b924d3953b1213ce7b1a08fcbf127dfe860cbecb06b90ff62d704fcfbbc0b7478a4e63e14ead7ee05634c7278f7d659a8706b0f16c40bf909b18f01bec20e95437aeb585899c0bb0af3328015af0aef1f14029b01f3a7d9cf188022296ac5501a61a6145b1ae36eac142b5c75fa314fec0a1d482690fe98c0895a042e2d893f42fd446cab8fea7b6f2eeae767abcf521aeae0620a7d5c6d8693371ff320af03cde468166b0b592d9cc188efa31b42b0e7eaff7356436ab7382e0a12a57aecbe989fc249f6c0dbdc11441e63b1dcd707eee1948df10d6a2521f8abd525ea05987867e9ecf3a1cce6b978ef0fd869c8d0c0539b58f3355f0dcd6ec6016d276e38455c67638572c6738d90e2877a6bac552cbbc596e474d403d8ab8ab69f40b7c694179a5e7db3664d4107de70c5ed848012af5edaf718380da6bb3eeac6250bb50d1b994bb96524e580cc3413c9e7bad19065c0575906ba4ee7b582be8048c5126ff2c45f1be6eabaeeee090c1fb716e16477cd029bba2ab1085fa4afab3481ad0aefbb216086c6c4d82986ab1f5d4695fd2f9f2488f741346a7fef2574568d0632a7d1b8ba706c849e524c0cbb397e18f2085c5ae5cbe2a829b3755127e35c2db720194824dc40e75144d764d7a2ff253a6f1b109a455e319c5ab28578121d641f41af2beb6bb71514a84efabcd56c19319e1bd3468531e8a4ce78c4f1b89164ba170123ff8efc61f01a92dd9a19027e11e2141ba7b4211e47ea5206608fa8fd9abefe0995a6857dd0bd3ed0cbe96cafacd110cf3233b67e8daba02a1f28c14529676f9902a87bcd0b05fd183ef4ed1cce31527cf25a30ec2098af07d8658e789c2b94aa9169708ed686401b73d828bfbdc8e943c259585da6ee392853c1f7fdb65ce2b5871f67b38aa35cbf851d4c721ba59b3a49e251e533f92c40128ffcc3403feb3d66b342e3fb58ad621e86ae4ea694e33c24e132ca123be19bf33f933edee5ed9a5ed6eaec769815eeffddf1892f9e76ea0893efbc9377366eabf1e32a628e26a0362451e4db704d1445f4aef183c43ae37d9e96af9702e5287275d2fc2c563f6a03528be62cda89cacf9458eb4b336ee78c814e52222b503dee582fee523473b97fc08a41b4f4068db2ed9ff94527c38b3e4369b702983539aabea9c88aff8f7c4a424f45634ab5258e3959681bdf1a038777b7525e53748abe024d824db279ebf2534adca871fe186b3bca61769c065486cd8c289c9b88cf6500fe7d691e1aaed1579ddea5f149ee1b4f5be1ec98b2978a82b8dde4a79b799fe6c98c7f0a7ab2aaa4d103e484014d6b989f560dd2ea6d9e6df9b1b267ffa1ed895ae6bdd5b13f9f0a4ec1a5d65180119abb4a841ac1d73841d481c37ce1b40b9ddb5bf36f0fceb9f33e98ba0cd4b57fe9c36cbb07a104c2e0b3481831ac2da6824edb76277e9c06e48347184208e4137498864dfaef57b45232afe4170fe85e7dab426b8f918d34ae28043f81a914062cc5e35d761c701ad6891ed3d008a800f1c63600690f14ecca044373648a0c1e7f15bb7655c88abeca60883f275a23e50de845f594ae839dec8cf9676f3abf2e2223aadcb68815d4519343f73e551ee7fffb015196728977bc8c6addd870e96bf439b37ed849f42ae9ca1d850b601c74382604d484c742874dc35ab740df13473b5bd55e61adaa012c5dac04696df0fa2ca3df9943ecfb6a76bd8ed39f185f45503b3dbaf7d4582fcb7a3825f3125e1c804488474cff917eaf61143750da50136311663a4fd4e8a9addc415ffd694c4cd7d4998c057aba4adf6c07ec5b1f6d622ff3f8f8d77deb65bd6c088a47caca00d551c38a55b6b2ecc773be718719a6355560d00686a77c68cda8efeea442026d99badbaafb6a861f222d6f9d7edd75267f5cfc87731801ca22a863afd7f4b394d90af2008fd2e799659a0843584bc6329b6a84f7ebdb3c374cde50f6bb5f9884b39830c4409c967654f5a64a6b8d7e0e316c7936fb84a3651eb5bce7ba80f3ae6093273dbd3ba337484720712caf9b3cbf191c8a49968c1e5e2499c4ade3cb350fa6049c491d52c2ed697d2d70d62aeecce9ad561547090b7e4ea7ffa0f21bed61468686f75303721109b440cc8cac0814c293bd9b219cd86843e6d3ed498203e7ca8f4ff82c9cccd229a2210c7f32e7b0a6b0646b8e4e9617707183f0f5edb0124bd0201588baf7e8b23fc7bf2d7aae16f54b37c963b3660a2c3257bc889ff9d00de92e1c2da98e25ca31549cf854d58af17fe346f0ea6ac4bbefb393f5908f1b64254e6176cb28fb9dfa70b7a0462cdb263a2a46858d1f37dba969e0226ab9af0b22a141e52bf8c0ce9f7234194a462deb924ff4771a5beeeb6d5686121a5fc01ac1ab9fcf701d7401373fdc2af3d8810a6783d3fc175f23f85a113bef7027057a967fc94a5c93b60f15b1d87d1be3d74d1d377b1604536720af47f6a7c2ea931a9fc6a0d9de8c2cd4c9b71c7e653a67b7aed5a8c2d0ce3c4e3c51ffe12357ca08438934952de8de66ea836a90b644e6a4241da70a15c08ca9f74bf3fc6d7f5eaa7cc2e8abcce78c8a19aa597980603ddff36eebed77f658bbf3d5e7498b16668bc8956066f3f5c64df78c6b9301834c91943be35c6e4f860e7662d1f6d9b36fa30a4b23322e6f7b328bd86e92da8937837fde1766adbdf647d7a2718f5447536280bac48bb1b53d884327b7077e17c4de67e6ecff8e89f18afb82f5e2b2e2dc7d78f8273affa55efc33e73935ca0016933259fd09e07d183ff884298df3aabf7e7907b08e457403cb99e99ba95eb854234f5593003cfe661daeba368aa456f9408b46f7ff92fbef9886bb93fecd778d09c4f43ffa5fe88f32dc4a404fec7a6d4b368403c38efff8d1758049a778af5023e626a01046f36e5c569ecd3859781caf50558cc8649301d0fdf323042834d7ccaf212ee8a4955fa9e4cf65ebb2029a0835e5db69993956956545de4cd1715980ff554a160e1f3e48c323e35b64274ef64bc7106c15e2f9d41ab4a92692a9f6edec8e66a73c2d4a6ff1a881e63163764fd3cbcb3f5601a84d4c26bec4fb978a3e2473d50bd561c08d16af2542a49851c8f63e0653bbd6b489799736fa39d8707f477218d918fb283218619bdd569e52b63fccc6e3c859a7febc7196326a69143af3da337cf0653a5d6370a5323f6c31f8791b1d5e55032261c5df8e07b8df185a31a9b398abc345b87ed8198555a0841e0927035f5f3cf5da4fb2c0ca18b1bbbe3a9c3b3df9d1d448e242513f5d0dd481d3d586ef61d5b857bbf2d1f771a2aed0ef2bced9a6d0bd576c1c8bd2e3ea9ca6a6b6f9e8296117012d48af013b1a607dd70fb2edbf409a0a9d5fc0a438464c773e045b8d124a0c2ab99b26f81afb2dd5d11ef44aac1eb1242de61af723667d1d25a349b4d842544fcb4e3bcb45e0e9563039bed3c0f25f6e3584c80a5c19e4f5c83929549ffc9f9c2be16c4bd36394ff69634a1550eb60c53d7b17e08f21121e10e2d792cafe97cfacc8ac6728d3d0950d3c33c5ddeec089e979598c6839cf981e48b5dd11003e91564f8bf52d2d20dd61001d3fbd329c22a89b6cf70816c268afcfc3576a29285c9123fbce1f0f6bed472a23d9b09f7eaa7be73451392f9130c7264ce87b942e679af7c91954cfe529869555a4cba8485f9ff3a9419649477ba45c1e7e852c3dcdb637cbec5261c94df5ccc30e904bda8413c4570bb978abc02aa0e909bf74bba0549ca34377ccbe36f1e132c074244926f0008671c9ca6a04aaa8f8466eab60543f5a0a39826aa231c97ee6704d685caf2873d918ee42ca7454dfc30746b8078829e8c89c831dde2ef7a6b2e5d6038ceaf4e24bab7b4a54792b58cd14548979e0fbc10114fbe23804eb997b765bff34b162a354a4d9702f4acdbf46d11b679e0f423b5c6e942bf5567cacd39053ab5512bd6e745c9073911f5735be1e5289cb7239ae1c784074e76d9364ae0f6482c1a31692156cdf4cbf4c140745cbbcb3b213ab1d8eee1370e9174e62bba205659507b195bda05b229d00be377c6697fc35cbbb14f9ddc32ecc66357321c915041dffe20be5a6d71d5236fff001ecc4b69fe08bb4533498e00695f6dffd34564e5c69a63ce0a0492b40a7aa45d0a6c90d6fb86f8ac006a1df480eae6adf7c78ae447ba7a771114345972d2cda9a0af25ffc15ddcc243fc2e90fdcaad91a216bcdd35a5f7d735ac4048a72dd510c6824df4098d9ffd7d71229ade24c5dfdaeb09070c99bb6b84cc91d1bb754e963e5a0d88a04282620102a5266a5f0ffb43a0e41e4370d66474ca6bb95144336a4c54bfdac1e59a678706f6bdddaee602c9bd3c0081c13dbe1644a755928f206a9e28006b3db33b6f265815e666ff3403d118d41c099c5be988332141bb73d2ed7ec71b3c2c4b2541b9ec06c3cd563c5e7ee8e6ed289be91969ad646b1260b4490aead12ba8f206e438f9260914f9c79549157455cda2dfbba3b4c1aa48de004bf002f366afa46573acce2c54d863c865415e887b18f31fabe9cb109c222f97097891f4198776cc8d710526956"""),
|
|
TestUtils.hexDecode("""
|
|
CA0104B9DF99E87474389167359968A307F63AA32F0C804A96B18FFBE00C748B1D6894CBE2B7BA06EF17B6947ECE31DDC9F614348F01995FCCE77099A0D88B2BCD1035667631991C2BCAA4C86B4D31074A2FD46C38429B52CF0BFD7CD3E5D194DF22E2B0D57C0C9D624C772B54686AC963447E716C6B4DAFC00AE383CFFC69A2F6F931D616954BC9A140D785F15C5DB28ECC793D88C78D11F8F8452046ADDD3AD26988B21BF895DC810739FA7C45A8062B2931AD363B0C7EAB4CCFAC71CDD0DA3B54CA9A6388DCBF79AF799446395DC7A5B7ED1788188E9D03EB3BF7B80F8CFB9B7F33DA0D4DBE1840B9C6C5D80F6AE64487BBFEC86C596E2ED8E721A11D783F7552A4B01FA24F60B5B683E287BD75EA0DDC15314E014D402F527C5DAD74CFC49B4D824EFA77C359B90AFF15AC89C1AA35959570E2148DF7A09E27E2FC096AB5CB306B4868AB80A24DF745DCF9EDDE57357866182A9AF50796EAF97A1A1051FFE6F9038BE1F6239CADBF0BD81B23E2991941F34D0851AFCEBC4D3F8B472D6259CF61FFDB87F79928C66E69D969B254D57541A87C692160E5D58A837A1FE90A1799758A70F958DBC1BE5D6E6836845940C75E745245FBCE59D1F83462B9578534D7A05DC3F21C34EA93ED78387B32DE09ED3CD2A51EE2B8F7387C8C2D426EAF3795E99B158D467D9A039234FDF207D65D2577D1688E1B1E72B5EB096FB6377DC8EB6B3F51900380BEA561C03D546EE242EB4264C0369AA2D53B2B190E0422FBC4CF896CD549C2A08A37070331F15A9ECFFA0E91B1FC4D5157418914308EB8C6A992B197F33DDD517DF4610E88F2E35E505BA7C7CACB8E76677CA9B39A4094EB4590F6154FAAFA76C1D95D4072B5CE01F42355C47AFE569FA80142EDB49E2ADB34D3C356F4D882A52021C5216B3678AA6A5D52C51CC8BF09E7EAEDD2501A9886FAC977EA5F385F46E8718D39073D8995D392074C2525A4ABBE228F531E6B16AD5BCD5EF5CC4C3C71AA77EAC1747E2B763D0B3D66C7F35458BE43369BAA0ABED23202B733B3C7A111F9CF407A7D62EFF5BE3A5DDC3E49AF130012BC6D5D3641EBF268236473EAB09BE87BAF7707546B7AB194D2ECF5B03A56662B1D6462898DA94747CEE9DDA08A9026538D799F163E1E771EF7EADF8833C0510104FE7AD7EE75F44F8D4572E299A87FB17429718C576B29983B50FF81F8D48D41CC764809429A7CFE05F68168B6B36FF66CD75DC0021D774D07BC716A74F9450EAD2995089FEB89D1EA73A9CEB83155ADBA737B3DE33B6B617EE7F5CB6C6672AFC439990B612A6AE71540FC6D7FF535FC88DED0E6A80A484735F63209D39F12E6E129C4ED2EDD8C8B5A24472B83A058B0F1C86B7F4C53D88927C7E9EDB5C40C5D6C7F0ED8A626C5F35E1D3981936F0F1FE4E8CEE0FC7F66F0016B14F3D1EAA993A5DB9B92C03D99C0A867FEB343D9F43BBBBBD85F58B2380811CF153FE66E5B5DD07D5A87ABCADBBD472692358777BF17AAFB622D487A100062465D9BFBE0E63B9D862A02F09E371EE820D969B29B4E6F6A1120CDA9F9E3FB804B26E2E9C3DE219044D1D6E62A28CBC90C262B76914B8929465FD901777F6F5C112D196A002A0F4C4FFAFD2578B5CAEA21452968400DAD6490E313D32A708A42F64E9CF412EC0E358F6B833EB0190C5933037202C266ABAD212B570E609FB7D338AD3F850EFDEE9347EBCFEBBBCE90E7F27372E244C3F035D4ABF1008055215E573F0C4001FFCDA5E6B6C5B29B7F59132CD86481FD0E1245EE4084DCA3D44A0C9E6B6B14E1BCBF56F470F15609DE76588795D5CB62BFC9C253EEFCC155C116D70CCF9112D8E0A801A3C640C7D16634EA02DA9DB9AC57DC2F7D43F48ABE631D3438C2BD3EC97832244E81223EEE47054878BB2472F64E9ACA0D5A8B0B04F783C5052E0ED6AFADA5274C94084621E989084EF9814128226346996CEB6FA07FB957C7432878505442FAFC4D945A953336F9C92B8ABE4E4A092DA65E2BF1A7A274E1EE9D7958E35334D9B7CF8B314F0AA5C45E93111460A8F5409C0BCB842DF9C9887FE4643BF8958CDB40EB66438BA53972E359EB712BF4C553D871ED702F74C41D1217D7887C891E49043C0826FCCEB2897BFAF9F217DC9F566DE1C416DE9118491162113E2EB56CDD4C024DCA4A33359D88CB0247BDD6802455063DE9666A4C52075359316B3B557D42B7C99700F55CABCB2B802AE4209C6B937C798433AF94159A4EC0A7DE00C809F6E6675A4213A1CE8A7099FB7FE6A0C7FB383233444B64AA120BABA1C4E61C6426001184E897A3C6B0BDCF9759A72146EF848EFA65EF09076A4FF2E6DA518C5A08F2A2A12D904C893297234E53CFFA04F285F350412456C9A13E153421D65DD30B236653AC13CCE3D5CF1EBCB8AB46808414BD3725987D6E464EB4F97321595153DBF9994F7E19AFBD19E9BE929D18563789567B28B1AF05BDB5D2C5C289FCBE8EB159D0017E09DA8FE5E9D49D3A231814778370DFE703ADABFB175859A895A6ED86F9B6B52CCDBBF936622C5E5A01D50E2B6D5730EA4588680EFCCF390211F211472F9E10314482CFB45A24706BBCA8CB515B6A9AA6EE1D2509E8F9AE9D6F545BD3971A02CC26699608FE1F076A925008AB6CA8576CC5A962326A369BDA8ACED3618F02BBC55337FAB2D66050514F904083D4386B43B6EAD553DF5603201C6D684F7156FBD2D3DDE3D7EB0D569AFD42886E57B747F21D44B88AD58FA2370FE6BF2DFA4D94D8FF983A1C2B89876E75AAE3828D1306DB9A639D052EFA6A0EFA0F61737CCC45E0C516815E92E256BA49E7853F9E9D4670593BF9402E59EE80F6CDFF8244D156FAEA8220D483601794A3CB5E1D7B60DCF991A545D2C72F62E5EA05BEAA77FA86A80400A07B97D8159F0EC170913ED885B578767CCA7A5BFB8BFDB7AC99002555145D9DF5011654700D6FBF2EC2BA609C969EBECFCC0EE346FA01B6CF07E6855F3C832BF1DB6E247448438BAEC055FD41CDBE921E5F62D93F4E7964258A9CB3991E8084BFFC2E5B29BD1E32A64E32BF5E27416CBA7FA3DFC143281F3797E1927AE9D9E07FB424833A7911C23F231D676EB0FB061C179C72FF0038E48068D43A805D56C3B6A16F5A2E5E8457F1A3E0F927A8880CD261F0D0AD8F82EF0E52E1BED003661F1D4510F7BCCE680CE84A0181F046366126A53EE67C7309C6982C28966B6CA1F324D03F5E09AEB111486C44B6551B1C36E84C2A72F78AEF5CA31AA66EDFB0792C00579C0C7C1FAE501735706CCFADE03E9A0847E498A24AC1DCBC7DB8FFC946B8D914633559B63E3031C214414BCC1921D2A53726695340648CF6C2BB4FDF132C77BC39E9CEB2E4D22EB138D807D7B79F78CD9713F5BE7512FD32E73E886DE16A9B1B19026B91EE6AB92DE4DE663D9774344B283149AF4890BFA57ABD1C9DFF128F9F169E4CECEBA0FEE1C33D4E34B877EF04DC887F7109B2BA65EF5732ED4B7C6B33131EB5867811D4A8A3536102F5AEFCACAA681A6A45A3BDCB24C4FDBF49A134244044E2B424996CF6F3C514C77EDF2AEC177B8F80A1AB77F6D3D920E508C76EB71ADFE2209A132839E9BB16BD9991A545AA0587B7594E0422647DC84CD355B20983AD582324D4F19E33E9CFA5CEDC739B26F43BBAD1F165720306F48CB15B23B961E5990C2DCC39E5BF58A9BFC10829590A7AA8F60E13EE1DBA85EF5EB9B1F6DDA891ADF7357E16CEEA4ACDC00E20F8F364AE3EA838CB4A0FDCCF8B439A242F8D18B8E0B9FB8E074922E0C25922CBEC46C98A82E93F0E95884BA9853CC738AFADA3F08BFB66C17DE7977EB7CE5495B8620B537B49D1D37EA4B3477B79759EC7D9AF17EFDB2EF89945D453BCBDB349CFC623FBDB8F125EC492CCBAF30006523B543B6A17245CDC5EE7E28EA895654A5EA74781CCB0F30343C73B4BB88CE07BD37DE9220712F11748EFACCE925626FFDD8447D37BD9CF2476437C093BA4CC0AB674E4CF9543CEA67BC25B9BD56946C0D077F0849796EFB74C7F66D5B86CD9A38B8138D816F677CE08DE6A6A911BA4DD1834751548578CEE4CFAC50C11D685E52DECB77A475FF5468C38DB23853BB2118C78AC3D52079042FB7F370B3D0406E402EFA6432D3055C572C81DD999876E8306021118BA87D5D430E4AB9C24670EAA1274ABF4BFB8149D9067C427DCC026A61C5B724CAE1858ADE366FB42CEE52C36F0F99AC02E8BDF784EBF311334B83B2B277982519DFFA3AC35D97F9F30635CC17BF8E017EC4E209EAD104B52C58E8762052CA62BA7A82FD011860E4F298D889A11F6A2BB1B4157CDA42AF9CCD0B5324329A92CB9FD6EB81DB3FC58431BC5C9A6DC1B07F7D2B00B32E5A39960C5E2CD69CA2914F23365B518ED746B27733D713E8ABEAF9D1FFC6D3D9B601FB386A6911F24CC818C0353658CB826F43FEEA792055720065601F1364BB6184699F16E3EE2B359CF0642C85E9115B18E55482356E2F91121C5884578F3D2C45462E47A3D477B3D63448A8C1679E68F9B7AE509100B7B2B142FB6BA20179E599259414520B02B745E592FD10D0D40D780A95C164D651E96A7052B69BBDA979216989A57506638F891336E2EA123303F997194B7AAB4F22CB192AB59A8BDA7CC88D0F43E4DD949146006CA3F91CF28535ED42662A61F630AD6E7319A7B98FF5C7200FECA768F14BFD43BD60DBEC814E22C26F1A8191ACC869A6BCE61991E4F36148908A5B1557A507C407D73A6FE75A548CBB8CACF13E57BA6B01FF0DF900051AE7C0C346D5DADE5F1C1BBFF967236BA5BAEF19A70FEB320BD76035F3A6B11383F13E6DCB8D1533A6529C98334A3F2A9105A5CF1C940659459C405C197130EBA44F0A2881B4614B7A0BBDAD5930DE5C3389A7349265629E29C0123CC89F3F540FE5C9019662A4383A38248F22201967D908EB48D530D17D50A08B35FCAB73AE8ADFDD72A8A7551EC28C7573E2B33EA4F61EE84C3DCA33DD5861B8FB7176C4AFBC174250D51F86B1452903191E39EF099C0CBCC15B3FB5DD30A2822F68AA37D59583BDC1CCDAB1B2E0337BF397647FEA9111A5B94C6A3369E90F3B86C266F4C11C9A7D9E24802B31B5F93B8EA9AEDC6C2944965D6B54601311D251E81C77AC1BB2159263D0A92F377F111DBC8D554C3AF747FE7E82A6E6BF0E4E3743B7AA42C3B5B8D3E5D9C3B427B3290452136E61592609826F4B61D4960B7C3784D0E2508363212AEEAE624489B739D0573CE23B35D30826182DB5F4D09772582E4D6B61938041344EA434614C21B01530327C08539A84F03275D0C4A77FDF230FBE6639CC7A12C34545C5CAD34AABF8E25D64AFCA8206948737DBA643867A146F17ABF81A926294E2368A5A2F0C381E2C244B21843E3ABBA680CC3F1F0509DFAFF4C70B68C82D3D7EF8EE053DBD154376FAAB5D561A19362314B037CFE18DD03BB817444FBF08D771A13B9D745DC066C89C10ACD53597B74916BA719F9EEEBA865252FE13EDDF97978092FDD1524CDD865FD6AE9C14329EB62B322F46905804AF1CFFC13B46B6AF4ABCB107D44DD27B460101F7A38DC786239E34CA9D1A444898673BB3DD92EE88478A3C539A563CEAF5CF499AE8E07BDAC0CD5419DEFE2977105B5E0138D84A8F9BFAD82F58884377B803C8B68164A3E678648C18127A832FA994EBEDCDE4FECE85DAFF8CD6F44F4CE57694522DC30BFC492BF62796D05A9B87BF13A7D538EE5C55E6898D50ED127E8C12F87D160AEEBD3CB126BC4144A51F685079E962DB6FDDE3BA6D0C8038BD6FD8377C4BEFC2EBF1A876833516D206C2E309C61E4CEAB5F86ED83FF20C8723BFE63D8E480798292E6EC6D418D3CEB623AC6983A3F8A3AD568F73E408F15AB88C8F56F3CCF5B32C76BDCEB1FA41357C42E1215CC503A316EA0A83FB341ED6ED20B1154E5001A754F92E97570F9DA7EA8AB7F2EFEE7B79A1DDA705645ABC5B1E04CE4F922BB03435D11FC83EB580CDFF7EDEB78F2CEBBB6053410E84477864C16D4CD7CD9D16B932372FDB99DBCCE2DC3B5CDCCF7DB86AEC9BDCB8E4F27B65ACA9A3FB985CF95C5BAE253797C8474D0C25F0FFBD151E6558E524C6E96267677EB7A3E128C918CD3B09F1DDE311401152C62B4C59EA1D408ACCC4A12A34664D7C0858D7E99A0327724AE9CA55A9322D865EFB4FBFD37FC79F8D7B2BF08B1824D44777153ED6604E05DB1FC9B1ACCE05F8C53C32594A84F32D97AE49E819029204AB7713AF2AF2C281448A34C69D5F3DC76345031D2CC05B6B26303198E182901FE65710EA95793DC8495F1995F0196DC9473B7AB922786BBC61A91868BB0BE05E2034EFFB288502DDFE2595887CCD144E98ECA4D1E0C044C642396F98473BFDEEE796530467F6B5EC0D5B79674EBDF5D1416F94A8EAC7F4833947F1DE610029779CD436729E55AE3D959F99D5438E0E4407D0A870A38AB31E08F16A06345B7BA730CCF55CF1FDA1E9D04833ADE5FD74A34E2629DCB75A3482312860404F7E75D94D7FD2C8215C6A21BD5FCAE81CF4467931A984AA24B927039526B95C2F5F39AB2040A23C76B64CD2D04E95DE6DD9B8EA849F9F7919A619EFAC498E7E3F4A70432E28B1C5DEDB08D122AE503E98D34D13A4E8A69FA267C3E20671077F977F71308D3EA1AAED5DC33B3F41E0ED981050B3B915EDA07AFD71CFD3AF13A2063813039BE85EF98706399299118D2427A7912A131DB7BA731D18DC2838A116E05C4CBC660895294A73D170C060CD83C9AA0884C5F3FE52F4891C2101997D688709F356A556CE202C571E1170BC339F3E2A75A5A13810E3A2F2133438C1705895523D03F00BBE4F4FA9BCE6D7A14517BD54E281F202BAB40DF35253961DC9E94DF5C2C5C3F0E420AC67A85BEC2ED70545B94202AACE5E58180104E42C5AA6F7F59915BEA69AC10F678D40506AD2B502D77EBE4D05CF8253B4795094F04BBDFCC8033EA131BE83F3F647D22D1212C16895F52FEA576EFB344A476D2A8EC74739BA62632C4B5B08076905BC0103CC9B2193EF6C4785685F2B3F79FC39B5ED09B258E5E9BD346557F24CB542B69A3ABE367123179879A02F941F9781935D44BCABCC563BB1F31C44BB77D5E7A4FC7EC2C11D597E7288C6088497DCC97910CFD8245A4F255CFBCB8FFF95905E8224B770E910A253356916EAF1B3277D831BEA5BD6681C6C7D57D363608EE78973B7BBBC156FE5536C963030B6BC8D306F3C1EE72F14163DE0DCD0CE741EF975A9DDA77EE386B991F3096FEC95FD394E26578269F491572B36AF42CEF1D86CDC82D63DF00AA397E1960378763F5CED239BD2A6D0EB7C5BD7CDA2228B684FA57B7FAF497310D510CD386DE6406924CD592ABB1E9753EC8BCC594ED52B70C04F7C53E19B0CB607DEBA79FABD6748A52692CDA34BB7CBF95D1ABBFF8AEF8F8AC7E5D52EF58FC79B0C7662DA90A0F737CBD42E64B648B624AB497162A7B27E41850A9BB4AF0489550773EBF1EC6742CE8D53A20921149563AA74337ED4CF1EE8685F41D36F748B6DED5F894BBC50A8DEC84621B6AAE690D6EE0B392A7266A480CF985295361B14AF0A5CEFC1EB737ED3AEA5E5894FDE80CAE477FE742395CACD1174CF2B345774BDDF71853BA1854EDC8F5CB03D33C5F58EC386ECBAC8E4209F8881473A4FFE306ED3194F455D4441D132B7685425435E58AF1F2964B657C71EB6E28FE3568183F7A0E570821EA49DECFBA3128002E77208749DCBD3F5E15453AB6DE9EB313D7445377B3BA74BD2F67AE31F560ABB628CA0DDB120CAC6CB62EC9CCC65051F70FC41BDCDF29F885FC9A558929F58CDE1200072F96C3D8F22032A0AB3F705884F0D827823FBDB62FFAA39EEBFECD9F57DA083D1ED541CF36465A999558F2299A865456C94D67E74F1EDC7166F91F4CBAC8F89E680BDED946A174E9260DD50C6B0A980A4B886850797149FCAF8871AB3080A76B645E333290A0DF319DE058981B8CFAD7A54FCD62345DFD9C3E6F7A26D212C97FA6F09866E23D5A19EB9CAE760E876B2AAF43BDF9004D5CFDC41570EABACACD4B57662087B6A91B6249CDAF905BC2B1AF5934F1A05D20E6C6784F0FFDA0A3E79A2C0939BF36C55EA0E31B1AE614D44CD413118EA165FA549026574D1549FF7D63B4C464A896C5C0E8D5569AB2B10D1DC56458FD1E069B5F91B1D084F7AE34F67ECDCBF33299B12C102F953CC48B0661AB4EFB493F7E4B2EA8F6FE59C3D5EF7D121B26B912B86BC0AE987B6A3543558F0B935AE62B4711A586DDAC9E5960C48B99CB80191B11F4053527905123D20C549457BA87608948933442CB06BEA0E73FE99E3C4198E9E7C51BBB7074DA46E752E46B3E419FAE2AD60D180303D710C0A59C6B980B24F0BFD39959368B5F56AB3845A2167F4683AA82A9613257BC801F5146CFCA857F2DF4FBEA85C54930D4373F70C083F661077567F1173819EBAA585EA3675F97951CF8C9997887BBEA9B99E17A1E0215DFC2B9A66760A277F68E747141AFE5CAB6B25D73D562B91BADDCC7938F2EA75F1C990E88311549F38FCE2C52933498B22E2810227D1EAFED4BEABCB153324622E107A6D96214F3C6D5DB91855005056A8D1BC5D5518867C373709D24DC1FCE21537C58999E26CDF4FE61ABE5E1225DE80F98D02253999F39A145FF3008F12880C173A7ADEE15025E3E186FF0C2090872A0A51505A09094FA2946AFA1840B0D6D526DEEEA95FD8E259E70B2E794C97F50E7833B165E7BEEAF5D3CAB7C3AA1CEF00003B94159F0F6DCBC74808E3FF237D5C3E94353FC0E700CAF48DA8BD94B991EFFF2DACC9E423A2AD63824CF879EF838C784C7D4C0CEE3DACF5884941BCC14E043082D382AFF598BBE0321DFE9406434DDF558EE2BDC272C2B04CBF8CEF92EF8180D0FEBD3D62E1F73F3B1E7FB0EDF9B50538D49C52CEE53F3000E581FCD7E6FEA1CEEC9DCB4876B3F1D1B1A301A2D395DEAC54D68181406D7ECA05A416D3D8E0EE10228483D8515A0F662D933C53F945B50C65C5B8D51EC45360661C92761A1F74EE06FAF8889244620DABA05593DDD4D6A82A30F34DCEF50B1B1D261CC357AB0673370A38DFEDEF3D591377CA29DF609682EFFA212092ABF84FCAD677DFAD758575CA35046467C6925B6185F9B734D5E194F5CA48DD10D0B84B7E9096703A9EEF0D3EFEFFC0F58C4D38D741F15AE766D06156B26E9C82B464C9F609F0A4FF699D52E0E11E054738476456CB81859ABE457F3595E9D7F1CFEE5D0437094CF093F468C79C093CD615F7409A505C610169010F46E148F3D264FEEA1DF42B3E78D1C4B33C92EE9BBD9C508E89BC4CE0BA0C412F75821EB54730FBB627C6C93694810CD741167D5288768165A68034CE2B16B0E73ABFBF75A905C9A9E577024EF2070EBE8A68076AE37BDF3507C7CB10EAE13D3A05BB3DA33F873F488150CE67AB892D61A11FAF5850B6A26862FF0CE85E4B0AB3EEBDC81F68BFDE39B0582185E4322404A0195BF5951BF7CDDAA6530DB0EFA0A2E6B2A9CF8DCD8B0D15447448847D1EB5FCCDC80EEDF166988D55DCF3BCE37E24A0A5F302F820C2782849E70BA47523A7AA1FF12F144148E9B5A1E05035A346FC4028BDA824B8D5FDECEC4036EB2C3A7DA612A703EFBE4D5E5E17CBCE1EBF546880C227EEE2D9CA4113D0ED61AFA70171700F0F9A1BC7CE7807A081EF09E9CEDA5DFFDDECADAA7CB5ACB2DBBE26550ED006C5B7DD89A2585EBED5995F8F76F3EF8F13B6AE77084727DC894C74268D4D91000155FDC94DEE049E54F4E4D2494EF926F23B73E60EE16CC3711B67B6F6B3A3BA6BA8CE602AE1BA87ACAD58650AA8F7F0F36AEA21080CA8DFC618AAF865B14BBD69FF7B413FFC81DC6C8BF2A7B122EC2C13DD7832610DB9E6EA0E5CACBE1703AF551997E6C51BCE7BAD4B3EB1F392EE12C5691F795090C6F1D6405D0E682F279B3DE64A9F45B1853346D8D337FF8037370CB4DBE5B241959FB8DD985A4F154470833E422AD9EAD7A14EC1CAF6308FCF7E9AAC13ACAFAAD98011148A2D52D40511CF13C7CF0ED1E320617B908BD1A6A442FAFB2E543703844B0D40FCBD1B392CDF5DAC9CE4C2CA69C8F04AA033F5D6D11DC1A5667FB352BE6BF88A9978AAD37B01BF8652A2C475E8516AE1A6E56F8CD596B9A780864ADC65A04F615ABB2BD4BA97301FB0CB7D9AB5423BB14C29030DCD5345C54D556ABB116051C04D79C81402B70AA9F32CD01B6C06FCFB416C4CB7709CEB12DF3E8BC541333C90E6D991B24D7D1D98D0839AA86614F3D91ABBEE5DF138A9DF2C0591204FEB3D9DD546305FD017B72FCA4DF01A7C1728606EDBA07EC101D7172971C9F4ACE7D6D09E06BF9E8552A4CB3ABF6FD84FD350F60A3E1826BBCBA484D4B5B284E2E1EF2A164FEDCD0D22AE77026C4A6596ABCCEBF6ACE68C11ED108BD3C"""),
|
|
TestUtils.hexDecode("""
|
|
a3426182a616883300b2c714932258a288d6f9d23c8339e1639f0cb6affa7245fcd901acc5612dfafe3e4fff1171e24db746e388f629bf6ab0e2090deeeef36a3b3c610ef0570193067af930c98accbc0d6830173136316ac7d5459e4a2cdda6f26f6509c35d1232af44470fddd0142b6d584766de939dbfa3edc9c905189e0c861eb16667d53576a9d4a7df0073a5d54058500e1f54d3898faaafc08b116336669568d1d18004d33c2b71acb0686472ad04b23a667d6d3d7d0d9e3a434e34d505d63f17b26933b4427931701aa35f2f6864465b650c9a6673397ff4aeb6af2730206f1049febad306ae06f30c856ef643c8c8ae9e3cb249a10a4646f9b7d985bde15103d57630cdbbb6716f41d0b7b1064346ec31907531bd35fff03872661bba13bba7d9a03031ee4943fb2aa549a208709a528555da3a42020a5c5827b06e7c917eb07c02732f7f559c122c545fc36cd006f33bddc2ec1a2dd67a60355c971e699d400110aa001a442fae92e24d05d1d091eef447f643aaa825d974f4b049e6e0f988ece4d510e79db57ccadf9b5e1a564c64b029cd265845d41474868afd6554996e7dbb2b3e92fa5f544de6f8840e841e886f7a5b77d1afe3b29f74dbab86a3f68cf223f9cbf41715e6f1f14b91146b64475a336fdeb668b27ea28fb87321f340c910b1814ec7305e11a0dfd0eac1283c0d0131092267de75cef5b2586399804afe72f7da133d04c02f19c2289c17bf4a2ab1d01bc2830b34bc77b15edc8fddbd0359587fb9316c3ea1ac8a146fd5229f86c38920907d77eff0b1c581f6925a1bccac2d234c52d159ae44f6d93a11d133edd6d0f6683f5165abf5c7197a50827fdaf713eb3bcd562ee9055be72e879849b7e4105755d0b9052885195e100ce302d3372fa4e41e3ab9e48f61a2ca054fea7132ee7ef77b62d61e02bd8acf7bae2b56cbe5f0224d15c3ef29fa051d2f27d56b0057b846fefa044ec57171549c81d7baa27e59e134c28cf6326d49fcbef62af5937d42953bf5662b60729ffcdb8471733c44cbf34765996a58430c02dacb23c6dbd9d8550eea2dfb669e1738fde0c9fb34f0051fb99cee29bf5ffc1ee95419580dc56c9b2118ea80a7b34c1a2231074195f45dd778dcb1426aa7feadf475e065f9ecc00333d05ec3ca0e0cebb2940fd7ee81e8a18821b59341582acc43ae576cf850f8e7cb040d4c4dab557b2a80fb3891669f86a00879c45c73e6a363ebbad67f99df0c5fadecd53494b5872f902e20f3d41e4be6b7ceccd89783ae2464feaa9fec596440fefa3111bf3efe416481f5e739fff33e3b7ee1c90064acfe18528b8ad3a9f3dfea879308521416da9f6131a3279def7f9ecf8a46373352cd14a0765f4e28ea8f313a988dd751d0a15b525c3f2b19ef0d098298014230bd7c8a042afc6d6eb6886e22449a36ade8b5c8e114cd408dc54ca4554f291882272645f8c1c10eee4ee4d6206525d0656867c0d2b4a134a40ea26019897e6f2bed4b325ada4af846b1db43358d140d54bf61bc8ad585715345aa2fdfc6ff62453bad6d00ba9ea11b053e776d72e0bc28f54056c7e0feb06314b3dd0023b257eed796bfd594d2a2b0ef19ed5eedf68a6dd19558fab24c9a751021c5fd964872e4a8eacbbe9406dbdb98fd505870ce79e64ed57c83887edf6ea916b29ad0c1c34d02f115e9a81b76d70ed6bc0900ada79fb5f7dc069fd7fc2f87ef9ada6be01f3e5c2e87ce02b38bb4c5372fe69fd7cca02898618d952c6706c88bb7a8b05a3ac163baf9deb64a0c5523ea486825f00cc298da63274b4d085b7fc6324b984d86d9e39d2cfce97c2e2a3ad8c3c04399e23af07f4e4c8a49e58971f8c379c88258e7ba25f6c6e9bf8c090eaf06424ace3e91e3ae12bd552193057f2542c6bb89bf1d16b7039395a8f8f54bce4a67caf3baee88af88a4a34ffd0d3673710dad8b1a98aa7a7678675f87da138971b0446e868fe1a39ef268252fb06366eb194d1f69c7a86b7e805761ee0de00c7113a2e1c5f405cea7207ec634cae3a43308d6d3caff7a9baa0670c9256fb90c61a116abb81910fdd638075283bc76928a82074255a4375872f02cc9ff13b75240609fc44125d46e8071a94cfe1e8fc68ec03665daccfd0dc385687c79e5537661bfdca8462d3fd86ce26d599f5add12e57c49c0ab1347c2fd967cd62b6e88613051904a975051309d5a43f9782ee31fdba8ca641f8d5a27c8cac9131e33e24bf5a1425dd771aadde8bf0fb7a0b7b896dceba013aa5c0687e327c27106ffe79e545f2249eaddac393a6e062dc296aaf4496c4936dd0365d3d248dd2811a95b2789797fa05e33cae686819789fd2b1315aa90395b0afb2f6084836ab2c78216b27ba6a65f09b23006957522679a4e372369aa65a3bbbb8c8af19039ff0cbd191ba65c0d7e0acddfb468a253f631c4495a808083e945496432a10195fc221535e240fead5672421cc1ab3010ffd3faa39f818ae105dba8d6a6fb621f0b86ba9abb68dbbeffc24b26e55184d4f21d8ad733ef0fecd4c6cfd5a403e551c91000cb9b6a26c3f6a246eace5717c784921cf154bc7fa61da54cd0eb55846c086a6a134716dcc49f44b55994217d5e92523a07a28733a95efdb2c6ecebc6d3ef790ab10ccd113d4fe96144d0e4caac971370d78331fe91648d32c2373c595ae848ef70a5a786c36c61d5961195b8a2c287608b9596224ee165c22336c07643b08d3c92aa5808bdef9c3c35bb3a5004f386dbff06c9dddc925fceb7f10ada52c9b5e100ce0e45fc23869f18ac4b3ca6561f98c148a86ae197d17066da6421f4d73ff4c16b489e84c4b09afe4c1e8f728f9dc4e4563c36ea110870a341632a390981fc1d114052eacffcc06d550c329bf38d7460c51a3ee0342d87157450989c43788b508e9537d08ba1017bcc0dc4c5a8d99ae5591d82fa8b258cec35a1446054aa449b48371db2f04f25cd618636309b5a40b7a32e589c80b69ef5cf19bfad44da6687abcefdd35603f32028fe079c1e541854e5b0b56998b4bb02ad89b3ef22229c9a8da7a381fda304ecbd458c625c779d7e52c8c44fcc45322a21e7a78d896417b513e298700389d0de1a50c7a3b653c87006bff64fd297a54fca09a4662d9710132d16e2e38ff4eb2a4eee0bf9b9d59da5d828da4cafe77262af02a279fc22a1a83aea33f9887880542e274c950d707e766eafe8610b0cb8aede80cf900f6a36432019e4d1f561f33ba1d273573cf1908a9dfe9922804f9e5ac279270b21d3b5edddd51c1fb2e8aa8789d0cd75c672eda3b06686ff6e8c7f5cc3fd67d2fe91aeda8a22e73aa9624b7b18d0060a64d6ce2ec77657b1d1a878672d5bc033aebbe3b9a7a224b74d859d47d89a360e2f7a1b03a4bb1ae92c063ed85d5d60391d9553e4d3776c5d4628146aac13c22eadd0ac57c46e65c525775ed3edbf0b41a01f83a2758aafb5324c1888a284ef0d47c12b15c6c5d68affe6c330110e0e8bdfc2b1a8f2fd67617e76f975a7d72630cc24e98eb45b5e9c8c442a5af3ebe4b3d3809db4abd88e49004d339a36265898c5a65bf5263d062cc9a307563081ec6b0c46bb45b92eade67a15449e0ba26e280fcd403cab8c29ffa15d306285b4052611ab63ea0549e8aeeb037e29cf23dbf5baaec582754768b2e357187343b3186bd6e1128ff92bd7c707f8b5f7dd9eb88915229eb0c8437d715f1b59d1e478b696da3ae27fb756db092c885b6636f6c11abd70ba3f0bcaa6340aff1acbf2182186981e74490f679c6b619522a85441902f9983231c2319a1420a2c3e050fd62433631a7d9b6947b247571303e22121d25c30c130e90b73fcc0367d4b7747688ec709079d9b28b981576e0fcf89593be1bc2868d12cd9b2159244286f46d3c270ed38bffe97bfd1d51e0254313703439c148f495dc73c6e534d05d0041c3a4f02ddec5fe88842b4ee59284a1cb2dbc3ee0c4c5ff17a5fd6b9ece5b23f8f9548cf537c4dfb6d231c0e8ae2fa7352d2c6df9d78865418415fce33cb613593071d83bbc30ac710d2c313648543a762977d43979b5f48c2608a68769b2abc933046762736a42a9b319c78e98be5500fe55b9dfe9976654e95999eaa2dfcc090500c8155369f49f3b9d296db180268de2bc26e3fbb428803d9075a20582e075330aa8d84fbe36417f9a3ffc3204583ff4d2731c27ae4620cf065acce9df4e8c728dade6eddfd09acb726d27a7abf9409a49739f84044d6403f5b9d1855da0daab9d54e2ac26e4dc9c71e63da692f60a755902e9930c21ed5c3ba5d1afeeb892794c5c948a236a2e01066892cef70267bda3415ff51a404207f2f681bb72fc0a14e2720277558dc201958eab0acf7157cc78ef8a9c12266932d2548a559c401cb4c63b36600638a61cce16da6005fe9d59f6a7ef14fb2a4b860fd7b79f0a27b8a7d631075f6ffdb9fbfd8d2764b069f0e10b78605b25fdfd14bfa6825db8c46cb6aa0c976fde81a5929c92240e0b5dd8d664013e561cfdfc59bc7f09bd499aeb45b8623698ad7242808e50f568d830cbbe864aa4bd403dad6a4eb67c33d7db2180d7ef9df51b91bb946bfcfbe0d216673ec34bf2dd72b2656344311191b8b24b263aa6852d1fafbe14b45e803c2b6d0b6293d4f58de21f6ea849f3e8fda46111416eaf6b8284de908f28e7f07eda6d42e4f6196af945fc41301545a848d76201cb84b3be2be65d14425d7cf0822177be934488a439bcd1120f3131d5c78c213df7bca4f92d39bc4274bf0b984fe7d6a35af08362f07250d98e8941d7859fb19a2fda77481d13563eb44b0ab019801d3535ce9ee1b8c24170196a8d42549345bc4d8af3d7a12f66b3dbab325ba4451c345588878c697f16fdc7c75a0077c31b2542407d339a90db740a9f2f3f696ed9d8729c61d296e0eab52a95eb5d3d6f1a9207cecb9b85661128ce3fd6f53b205783c95b11f3d599639d66967729fabf5e0dc1d4e24d7126c73ff941d6d996592cf26a6f124b5a08272b88d6f9f3869b10a7adfba87cc683f2a99e695bc29220b611203e82f67d80ca3275a79004479802182431d2d7d8dc4859820d17c483cd94b0ea11c286fddf5766a048456390ec48b2d5a94d2a59a236ed193f14a9d65f30e82d3df3571bcf7883da9bfb2d95dc6549cd0b9dde70ac082efdef59beb75299ad178cfe7f00679b9fac03adfd44677b8991f9b2da8e3a74b47b4f41f9a063886073a19a43408362497250e8428cd18ed437643766577306975a566ea499ccd3b78ab89382cd5b0bd9b84edead83285a6954264ab6e602e018e69754776070566408719e16ed075d9129fee670113899015690b3696d55b95b15ce290b2a9e8aaef3b869c215de4e1775a480a05be21e2a699717c7c568a755f4411bc2f05800841284939d08bb3bf552c2630f541cbaf3f5e12a12f907863afc72172bc56166c0ebed4e904c05a767dbf47683af7f8b98a16c859180cda8ee3d92b143aad733bdcafc7fd88fce16c39667e9ad26b73a496de9f5065eee7fdf2e7babf2ec58ce83d3762fdfcf44f76aa8c48a32d546761c1011e785fa09bdd5b9b08acf3e5f407b1c733270d495005d5f8709fbc3b3eeaf3b4845e437ba8d2ad2c20faa5c7f4de572ec1357e9c8ee7fa2987529a72572b59bca31467a6b77720acc272529b0e00ef04331e143946287d0ac080d80240d2b31297687f56a7a199b8f49a727d40cd14b61643b6548aafb0d760f3867829bde610960df12851e32c8ad61a507ce824fffa4656e92ab12dec825104c5a19379e11a2eca89165569d0de12b25a9083a355172c34e4a0e26b32aea3ded77f04bd2a6df6f951e295a6544871a06c4554a645b2e29216b3131832b4291230a0f85af29c1a5bf84e38c0753d8bb381bc5414b458c9c5568837885431d5db43edb64d81ef9bce7c20d89a5e574f376600d3e9b356fb1a819b73f6bc16491f7f0af200b787359e5de299f35567888796ae99b3a6c82e2b579c8338da8ecd499cba4a1ea92dc8090487145ad6965e702f3d9ba5a09f32e18a507a2ba1b40342ea2e3c4e02c908c99a2ac2c4a25d08387d8c444f78a4cd6237c047bc605afedea209df85ed0924489209a3da321dbe671041d827e022dd97ced029b73f6c8bb503bdffeb6d326c6a4cf5bd3716fb01a0d3cc43ee43dbe5692049591171209b47b86154d91cabcb955646479ce9d11ea660c39d7b4bcf1ad8b459b4f1589bcc7e1683bb4966cfdecb626ae1379fb66539a3cd5b28e24a0ebd290d2f214307f3d39c64d15e45d5aa17d339fc6a09a14db59e1dc2f07d16c97b117712c468b1beae5037ec65ccd569262fc9b8e250f6951bfaa7ec3b0511eee88d13001c4fa091efe03e41be5eb09e2a54d56b166ae26b4cea5869937801359193aabe0d17313460697e82b2cce51936393b6ce83167c5eef9131b2f7d85893a464a6bbfe7072fbac1f74c5f6579ebecf3fc000000000000000000000000000000000000000000000611171c22282d35""")
|
|
),
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
b5ddc2872c67aee1328b8becc910a85ebc35da9cb9ac8d19f282096d0022bc51e742ef864c6da6116ca688a707e1f4bb86b77749f35d50d0f196d788539cc83fa9c2066c61d643639b246a346f2ed24b2e585f0a43b16277b8d4a17f68c9d0f8aad05598b904ed2de85e7dfcc478259e10b452cd33c058d477abfdb4e97e5d13102944211091984860443421d4928944105182b82c99c65118394222292583183118b305231584a3164e08886504488089b08498b40500380508b148dc022114872c1a330001044619134c10c9011a36829a407240947060c4689190045b9600c2b0514a429009a6811819658a16854bb090413492232690c048488cb68d4a0664da1082c9b080422852a1860c21a18124b590921042a484480c900d01154111213062c80de4c00022849003094814c1092034800380311805481122702325319206861b93114148048438706110620932620cc60480a22848020658348201866920808d60085084c84420264c0a1272893881c246889c947042442a13b420a190305c420e5208714034260183258c064a1918655882700902601c148cc2340a931204c89265c2468188a2849a8880530472dcc008d122410a014999104a90442124373004372a12c37112002d10b180a248929cc2250cc8042396681c004c09c46420a92c09974013296214054e61942d18210e809631142284cbc04d8ba681030321504426181531030882e1120961168604186824c14d91268d01108a80444c53a02c6392655c264d1110510b1665d9b8490b336248242808852c113462129591d8008c843884a33671c49640639428ca406e53c6001124649cc000c34290a38690d9060c24c3011a8350504246093784d0146609130c1c39101cb90589923021a0845c90840802511b9924c0982d1407018b262d18099021062813900cd9288858a6841c480120081260906449087099a00ce1386920a42c21b56099020942808423460d133089642622e1c44d88a28121814092b42cd4a40003336588246c443429898641114981d010515ac40c123420c1c86189442a144771110632180102a02012089965021081183989819489ca40020b282112074521a84813834509398299146051368e01480841042ea2a80d24a680d04065c9222614029122a9298c8624c42470014086cb406902036e11a2251037640017088c988404496154269049a070249861d8408e2106094a122d64224d0cc59114441299c070124931043065114500213765e0b240a00071208140c8826c13880949068e0030021449258c26269448045b026d0c842de3368189446cdc40450cc48c90206943422843106cd1168c4186804006915000891ac148c4202ce3a429cb8805cc4262e4166582882413c3401437401b3204909640d09044a2308a63268e51b22d0a1624ca9224d2186601118149b8048c30895c0822990005e208894c000e01a24c0cb57040c82163840441948818802914b130c0382a8bb89002220010c38d8cb22cd8284624a7701b4741184461a2028e0915869408480ac96dc4440a0a927008252902064c0c346592946c4c4801c004641b170c4c022884b6512125611bc90012c184981251d4968c13404c523868e0344e4332645220914bc4515b8609d4c841d3260e0cb94964265140240461482e8008820a3025cba29109462a12010e019985d39425e148800bc51113b92018437209188ca10662433241c8c871d4346d64a04d9c360013a300929691922621dac0891a346ae0c6641823511ac080a1888498a66800244c5c8868240501c14861c2206e092865c944029a486e83080648a00552c04c09396453a20803115103290223c52482824cc2b86924178e02428a94262d82a46011a705249860e3040994c41101904402b101a044285ab4118cb8092437429138009244240cb925832809e1c240e0006ac1282498b0405c406d504445114342a4c63061b408d49865cab80854b620208741cbb04409132248848813206c81b85002146012074a1946491c420a0337050cc42520b351601062501029ca1422c9a06c0407020b90618b323102038404404a03024404074062228619930d541011909240d04806c90252944270110568030830cc0612c3c085442280da408992b0650220614186294c404d91343160144a4196691a154d1904214b266660206084838bcdef36d832a9f7ec4fb59f74ba844968c5b6af5fff4aaace98c3a72fdc15ef08d34c9408502f59947b051408b44e5994c7f9690f1c62ea8e9d28c28035b015c5686cde3cf6701b222877ea972204e42e6122927b89595b79d347a63b98d54ddd0174e4b17ee672dec0b36e3d10b849eda667c4e6fc973a56d2e2e048451e27aad10ffaec0b7cba07a1c1600b78b25c0f5057798f8a394a06a95bee4265f900520855fc268eb18907805f48779076e43f9d7377f109292f932d3539f41ce74ba337762ef193d2e10a26cc96b89c53c7615ca39fdcfbac0b7e98504bbe2b63e1b12f851002958734a742cf4fd4d623d557fcf5bc4c30a44234e76fa15e8d151cccc190d1d41546919304a284c8aa13e7be101e628da63c014e6208c0ed1a686ed261f6df4620d47abcd375723d3bdcae88bb5b2892828636030e55c65b152b45a93c775f597e87965b06fd357c0a1b3f626524fd54eeca30854a79a9229fa3655235af6cb282c359be16c38115d3c56429cc9f06c69615e745fc331d1f22154b393aad861ad2c32f84bb86d191ab2c3061886d8d19d98f61ec8d7d367c4b49e0bb0e397c357d03488e61c839482112a5f048e459c1c17147f3b86ec6084800a1e76b40bc93015a8a970fa303fe0a14611f9b56f3ffc158a0a56d2fe88e79e3d7f6b081e45101685e1d39508bd4e12885e528f2851373b098a6f194d3de6e9691f7c6da983c851d57a3fc7f880eff8763b442f259b7ccd1b8512efd92cb5998e34fcb66800d262750ab5a48b06302a6bdf3e5db99295bfab4495e3b000c9560d1e0b47f3b09c8ac152aa3ea2beb0baaced4ac848dd0bca3d469e7185ea8ccdaf3a00dfc5b94d8cac2e2808a124ddebc0a9cd8cf149b0667bfac04528036dbb4f712119bc16d64a3021b2224b87d71eeec8c7bc76fcfe73b379e88f3333de4907c37275f687716d9a800f20daa4c997d31645c607d68675ca11786fc0ef0661dfd86999f8f74ef0a725eeb0542322c8d93b44e88ed5f5c14cbe844298883328e3a308dc45f5f1621acbcdf07d6d9d50046ff4b9291c29da17ad852e6c9fff7fc079744c43f5e15b09dc936c2e0bec0b193e46fc554eab6141edf6ebb6f1c2850c2b86d7de1328168d452e7e5579c5b073a644ec6a7fac8bfa84395a61ca58ebeae4ec25904e434fddabc46b5f20995e3c9777b00a596ff5941b5a314f107ff6f998498b3105c4af87e4ecfcd8028f45f1bd153e755a5dad284d9378831eb7adbf77fd9aff89ad3103ae36a15c1ce0e0790779b831d41f1b46c3debb9cb0de31014b256bff1e762648e8281cbfc14d9d112ab09bc0797edff3e9091891dd1d3d4793a5b3e3bbff48c547c4f85ca692a119dfe7441c391631cdf88bb96c87b604bd07b0fb8371442a00184fb25a5e667b3941bf2efac804846f083ed3da56822580360053820730f2d2a5e1cee420d6dfe4d332c1247ea5289723cb85e388ce90282100589800d3cbca235188ecb2d5abfb570c7eefcdf22306f21bb4da8c43a15ba12e9c6fef7285435b27cb68220bac84e391cfe771155d76765029a419fffa8e816e5ff29a68bb06a7f47cbcdf1a26e906244fc72c386e659d19df4eee6d367160ffc2cfe817f29d7ff909da9409c3299e234f134d9973925f36629a8782bc9ab3512d8728bfb5050a5869224a5cf48bd69d2872aab8ab5adddbea766fd0232f4d356db56e8b160cf96d6091bd5d778e168799b324d9956eacaee57addf8d248651e818510e84e0c4405fc142619b684d7a877b1a38c0185e4e6868f2fd5127e053787df17b5c395912f398ed3bfe4cc71266f70c03669e832ffed231d0205a80338adf332aecbebd18f144d49d5f4a56df53125293588ae01b0759d89f9065892e34d2a3249b8b725578f0f3cf714dfad1974988c4ca3773b9645f4b3042aede71e7806583a6c99a23034a30b11d9781cea44ff6682169a7674707dbb1ea2fb116e040147c09b136a659859982bfd823ed02d1a0d76e31881d04d4fda5abd11ac7c1e940e47862d97060a19f6ac1d1e765f3beb1b1b2dd4598cd7919f7532b809a6868f1376a37775a878c70893151dfa0295e26b28d02fab07de2230c655b93b3ce9a100edff4de288ec6342696a19cfc94cc2050b7f9a31320746b098d58eb1ae658b9498ba464e22813e0fc4857c6859dbb25839130eecf8739088b15922b58b2b313d1485d246d45b01604d24f824520f8de195a1be7bcb091a73da2dd24c9b6ed7f7e37b457dd159a42d2ce3b583ed58a9101af5952049e13a48cefe3fdbf2742ff036bde3033903e4ffaec611e56930111fa57de20491b27aa3d0a4b9d49f2edb4b2cb5b2158e5d2afb85a120c7571e302ba8282c72a642dce90518040852855e0a5014104afb9ba59e99694a3115684d584e53c6b7e4b91da922634bdbd39989a78bd1a78a0b704d19efde686e0335a4b9a336377a61defed1df47392e3a7d8fb54e9cfaad9152f151ee3becb9d2cc120694aa7226e31297f075aab8ddff85b9e8d2432b0aa1b4f566c1d5450309cd04a87cf7fd98d1c32798e20ccf5186ef04f6855d1ffdd007258769cf503426181c0db43fc4475b15d0fbaee1a108caebd0e45b61f4f713f0930d4245639bf5a280ec5f9117107352e40441f55384d65219d0bd16581d84b66db1ab08ae02fe364143c487a792fe25ddd943c79216f060b26722213af273a77c71b116d472c1192ab17476e14329e91b97e628c0fe31cdab79776743d1b5502febaf7b4997c5acb7f972e4c14f29404729503c2b777798107436654ef7d587109a7c84cf3446e9acd6e02098470ca57d362666807d070106fe0b2dd8b5ae2df7df00af2fbb16d1c8b682c2d78cbb30a012c61381bdd4f4bb40e782be5f298b238a78daf7d7b9fee2cf5741fc874143a3b2a23009fe9c393fb07b9eb9bd47c81da68cf36ea55d026513e8b24e32256023bc25c04ff1012a53c391e0e1a9d67d9c0534ba3851658bf5aab9358e1058d0cf765a5342c1a22ff844093170c98a8978cbfe9fdd66ee2f0a5212402fb671ff514176b6e682476f99c52a3c92415b16bd0683f5934a72c5896f0ef8e66641bf57d8a3c32d439df35daea00233156e7bd0e0344472a5c61b12f0f56d685a2a33a930f01abdc5486afbe88acd708bd1d91a8ad67ff790bcc1c5182d90b3c773888abed5d40858a6772466cfdd615c939a5d05751c31a840f8527c92b1610199f8b805f49eb2f6357c3514edfe1408f15d80a279acac7b81bcb0573929efcc46028e010fd63da182b275f782b440f97ad406fc7874fd82fcef86e66474e495da746b66761335c5c4f91ea4ec4ef1e0a6e7c1d2b387038c9c1ec2f0a3d43723ac87a3dfb11fcec3f5237711eb51ae05e922bf191bedd7195701ca7eb4954e0ffd4b5847aea2b2371a1190655877fb3f6db2b2b711e7d78f94bebe7a13c80bb60fdf39ef3ab8a41f2320d54afa737544fd4c15676f3f233d66fe0a15d3359d391e8c3459a4c7d45832e3bfe9ed84d259322844b1eac42c4671c4c83682ee33fcead04dd9f7071e0c05141ef4696a34f04312c33a422a99c38c908ff288c82c615ed6547caef3ad525c159304ef2ef0d43fae4931025616592d52e74abbcd29c4f70e5e3f34bf518812f856996039a5d935a83e50c8fbbdad797b3b8f7384e32eeeae3311914b4c3af5ab44f571b951d93b4223535be0710107b179ff0ed2e54ea1a1ee0c1f16f9fd0bfb49067c7d1131876047372b088f8edae28743d1ba88db1446766ccca6da5920d8906e6efcbde6900e7c1258855c8beceeccf688c0fd33c662e299ae99d6893808a731e153388d34f9800fb79962ca0ef9a74a8436027f9e3f7e675acd04f7a229fb90a8528ec858f54f27d86470d41be50e2d0b7429287585650f8fd4fb8d6e59330a48dcdf3006fe6f42df93daa5895c58b88f0aad85750d3c334159b28f10d2789fc7b6da5151495b351bfacba9d93e095312fdacfd4ea0820f01862fa15eb854a0e6b35555e175c9943774f597db629bd819b7f9fc2739d0d05d7d4c0597d0f47559d1ee568d3b46636e84bd8655bdcc860b8bd83b0224fbe0012e65807d11f32dae38386ca685f7e29293597898652db252be08133dab4e135cf51f8b0d673d3044c609745ae0f2ee1be7424ad13b7c9b1a4cee828ae9e42e67eb6d788434332ddaccc39461482d2735794e83dd84a3a06c79c5ce6890c6edc46a5c659526ac61918080ba96aeae6aba17f6a7251abad39ff239ce1b246c1633c7c3cb23baaccffd2c14e8166e592464bd52af8692854e18398dff5dcbfc0b13bd5354765083e7f5512ae0944a682c874c85b4daf0bf4284d1192523b43e31c138d8d539437ffac9ab1f7b87554de81b2d0c6ec325da31dbbeb0a02bfe7aded25961d104401c59625f4527ad3c6387e98289a2ca2ece960d8d17d3ef8898753f09242cc7cf4d5e1c012efe7c2941a884c974138981f4459d19f2bad9e635d80d4c5155fe0da12e712406861fb8347af5dcc60e58867b860ad3824f713fa41022747387d0da1f4f973fa1bf65ba4fb4c805b9ff38559535c40acc74ff0cd8d60534257c668017bb041944e37096243ecf3e79e479938175edfed4a14432773aacc5a245a96c1e5fb4e5735bb07332e6774a36fea31dae9f471c1ec818677345c67"""),
|
|
TestUtils.hexDecode("""
|
|
D46F4482D570F26C7E9F0F74A354174CA145033097CED3896350DFCE8200CB9448F522B118698DAD51F6C672E1B12A412DB6B7B95CDBDAF6205DEB631E44634412F026CD95440258FE5F0C72C5F3E64FB3FD13E545DD856EC2B7F51AC28C0D5D698C66C700DD3E409BFD96E14A9DAE1677ADEF2CA2CCD178B826AAD3859E569541561073095EFCA329B5B216563D956D8B7BB918224FB479FF7025FD8168F54D14ED1FDF0B399130C6117B5645D0E8DD242C3C7AEC6A8361361CAD9A8FC3B5A40BF7E73F1BBA9AC7F5A583A5B0EB95AD0AB4C1360D0145FC2C3A9AA50186D649B72B41DB7EF392E663497B3166AF9BD0C1AE21650D6CD04DD36532AEA0FD1071D6E9554CBB575B2C1ACEA3DD4E18615FE83AA211F8AD330C78FD32D920ACB40627CA4AC80F840A64C019124079484B053F525A5403383C21B164D0C6BC1B462C0E1C269A1EA0B2438FA64934CEE47149C4EFF566D9C2234E656969C1C89A0B0A4DE124EB920FF534B934172686A18A1A269960C725940D3307B8A913D56B78A6CDCFD559FF97E225B61AFAE7F62B060E7D3E2D4040D8D9233A24827434AB4EB31B0D528CB0085953D9A1A0FFB748588A2DDEBF241F93B41F5C856159EBBBC6571AB12F4EB534ED3C624CD3F5F836A99C7E6E2FFA0369654A5C07C19D44BC9FAD96983660E4D6F95DD9C38D84DE11271D23A6158B685CF050121425AF91C6FFEFD0B2061F54CC4393F99857F3B9775F81B6526444AB705F9CB88A2D276AF2F530B646FC3D93DE7087EBC1FBC7F9A8DB3F3C8FA186F7B636CCEF99FDC4532E54F560519C94B79B1158D85BFBE23D4F36B64F8056BEE7558252DBB3D9A43748E2E6A338162F5E2BC0934E89DC79091180C93D340D3615F82E7780FABF782E5FE2B5D504F3BD1874EB5DB76CB616CC034D9B2B080319FEB8EB97F62FA4498878FF049FA97C56ACACD2414E0BEF018F25A6254448F02E64815E525AA06AEAB53969A66D453B732891E31C36679B5C0A4637611A5983F21F6D4ADA1DA5E890C909A9E968F947C686C17EC73A0F9BAE5C7BF7433133F35F22D2A0B40CC135A7591E2CD216F7D8018969940EB9A5C4BF21579C524C41AFF5DBC0E141FBD02F1BCF376DFFCFBD06F9CD4384E128CF1F03139C853CDD04DEC61EFB8F1DF1A6450E4ABDDDD8A9D85BA79479562A08CDF06BDDD2E740DE7AD9AD1016D72A649A73246E8DAE183AFCD6FBDC64B6B6B2EFDDF525F3B764CAB39BF8D617D47FD3380B4A30081AE6C3165E9437B2F37A73AFC5E596AA626FE5A32D8873712F99910DADD0DE296577D4749F88639D07F83B0F6A05B1668D8008EA749580EE5A629FC2313FAA2F8ADDB5764B242B6B595A39AD76CED4CE5BC34C580069071BED1F98CAF4BDF740A5B1DE3FD30C29DAD808537CB16D0EF22D937F297F50E1681C898375FE0374ADD6EA1B84C10261DBECCCA8E1D224A4709497CE696BCD2BC1369F4135E815A781EA26A055DEA28AFCFDEAF6AB1117085EBF6B8AA6845FD4763FF9274BFE5FC6E377B9F9DA8263DC1F3D53C83F446ABA5EEA4095AFF91F3BE30022B9BBC2C74FC52A3B15CC76F29E541A84C5BF42D499F9B5EA134E24F01E8D866FCD20B7F7A302120B13DE636F48FE8EB99F17ACC153CE4371B266CA61D13E19793CBEF12C0EBA9C728096A3DC6A6750DDB0F52E3807C22EBE4DC6B2407593A1B7BBCED799DC3EAFCE50B483818D903765A63FF572F5D4481357CD6ABD89EC260417306DA1CCF71DA568240D4FD6858BB7833B2C9C98B9E7286FA491F9E318F25D0459071848BBA0D3DB8D2BDDFCB7B8E9C64ED67B4A2B5E1E49B55C6DCBF93394010A078E6F52065AB777C7F6D831DDCC115CF316ACF3680BE8766B4E15574AA383030EDA83CA45B965836FB2374695B50472C4159CB7980FE48B58B40C6CDD2629FE3C6DE6E13ED6728FCE45024C96402B78BAF37E74A1C071F4BCC2A1B84933C872FFCD87C02DBE65438A3E770903A04DF96C569FA69828CCC32D13A0A419FCCE454F06EDE43A97CE5A9A169C6E849F075C66BAB418791778ECB2C158FC19FF5927ADFCA90BFDB3B4216E19BE11157E858610BAA373237B42F811EA97EEB93D735828B2ED092518160A2ED894BB108AD74AB0113A8D5882D99A06CE2313BEE3F902D5CE9CECC835974A47FCF6FD1648C635FE56D1B2404927C49EB53FBD625E0624D5AA04D6C0D5A082C37BD67F477850458B8672C408CEADD9A55CC268B75BC51D7B3D75668D52BB701BD980ED22CC20611EF618277B82624A1192287B46BB5C4468F94C68D96F3CA3ADED476A18BE6CCED70924139F2E16C8A54FD6C9F6695E624499AC8E9AF86A430AB856924A0899E75C1FE4A51DA0DE1588E66044B2465C04809272B2A5C8EDBCAE42B47E439FAE06938810526DDFF4B64C515787B41885BE369A31F90E2D6F6C71528412572A67DF6E155C3705929EB28B80DF15345E0E32540BA9AB7E1D1CF0C015E50C9180372C678CE6C34BDACADF45B0172A1D3082565E16938F57CE6B55D9A711CF72E362A2ABFD45B7B56D48E89A0079E973F597D2E457EFF423E229AD439C3193C264E0BF9A8A1FB50266AE4E0BB671817CAEF10A3BD43452A2FD2DCBB2481D63BB539E0C81F6986400D3A619AA92F250ADDCF661FFEDE7617162B532EE2088A87F58E1FD071F5D720FF1F72335A5B4582F1BEB3BF19DBC9D51A62CDF68A855F7F6DBBE5FEB226C9918E7FFBC8A38079E411EDB44177F843EB8CC1F73B9765A0EAD825B3C43F6760B5F03BB75DC7469701AE555C2B7037952180255612DCC9CD35DDB31F3A9218397E1924791D29C410D2E4C3F5549B7EADF75045EC78D579EA7948D121E8297BC5A3A9F7AA2E2EF5776CAE3B9CB73316170F9B48B657BBE365B352A8129130BF1E718B386AA27E493016ADA86C4B3D3D116B7252A747FD50DC14AA28676F1C25150A86C9F4547189523280A3A897F80FDBBA073EC645C9953B7F8CEC3BD08BC0CA5640545B08F728AA38A860ED38C068F0D"""),
|
|
TestUtils.hexDecode("""
|
|
4e4fc796e18a11fe191e08e2e59c8864e0040297897b07d4f62d8a003c50f26e7a6e3d6aac87899b27b308c206efb435b7d48b32a6384e6c733ff5f47bb86ab493d403027cda502831dee50a116708aa01dafa83fefbbbb7aa7411ed417620ce6b035cf27cfa6ad1cbe7e1979f024a436a39fb6a6db40dd21ec16b90a42f61daab8b86efd38ab87121c17fa77bcc761afda7d9196de6d6e4a9b45f32d9cc64ba40aec6c9ec42a4350f841c1e280d60fb1382540f5ea25ad4e7c72333d4a6a4c911a9bf142062a50c2c7f61329ec502e4b4295409392facedf088c321929be05caff934dea89cf0f13b771bbb7832b956aaaa329c666e5582d3e4c51c53bfffe1502559c542f5cd0c6961f1a8a6f4db4e109818519c85f781fc8b81ad4db1a2444016523d79f33b9deadc30030a453bf9c9f48b8bfeac3a563038544141ae621961de26af46860e0d80d4b66bb47607a559dfc34cedbdadf7903ae4271ced072c49c8b91aefac658d1482c913559325be77794481ef2ee6007b643a27a3eddcf29a89237c340867dd3a8bdbbc0a1c8d07586fbc8c3bdba699f08afb44d728376d12aa7547912fd9b8069d5d699773e426f6aad6256853c65a896b5266475b283c17e60dde89a3b79f6b8c262d418b219a9aee8de0718f171d31c24a632e0f9db87dd6ccde3e295241a1f85e439f09a8e17a8cbc8d2e2c5f68147c3cb0138a6b386d42652efcc71315ffcf218630f96734f0c93d0f7ae946a71ba6939401b7d60f9fafab00021628408c3cbdc4c25e2eeb9af29a16871843d124551a4437af15a6042a9b2ccc227190eb7b22eac650a5ff9bdc1bbe867e0ce4222b2ff68d042772f7035ba911f2c4e3f8aa094290584d3902e4e1416f11c313efe437128761e2c9bb160aa58be7f2e3b821c128d69849c6fbd2a4ea4662477491e48c482051ef8f9e1c62fbcb03ea8fc25134e59cdc995575570056cb57fa0460731f3a82af5441759ac4f7c1ab5f2b2f5207e9d1350e1d47cf338c7be3aa05bb9ea4ea2632eac008ec50d7980d681bf91d1bcc583332c949674cf42de62632fcfbed112da44fae1845ee2490801528dc5a9f14f226d18db70a744e5bfe097ae1d17d6e557f670998317d64b45be39b9fae81adddb53aa5c451fa9d525d8205adef6bf5a500adc87a0af2069db0da6dc56a0a8807cbf19172bf8f96992c3c0d2b4e83722463e6f6a702abb058c0f868e9d9080760f2c80a1f85e30018642c3c88b1489145de6d53d27ce3c9f1765dbb459e865d3f8c05afa507d6421f303080c77647486a0611dadaa0a9a58d83d0859dd57b492c941d47f97529d962863821455e52415a231e3704e8d208c15ccd4a1e5cd0c2b434bcf9f82495f0d94f3c91d1cb74cf5da019d0c2a42fd45580db8545366a56febec804a944ade29a2cf87fe5772b3c969495e304c6a7ec148651ee93e2d894342c830849db83f40d9908d11ab2c919704ad55c74aa968501a38069ab310945f0dfe253d1f58fb8dabea9a8160a9fd2b5a0455b6d899a22386c8e814cf50c0aaa35e4b0420c59c339b84332047c9f193de73a9cdaa6463ed2bbc81060a36dec8b10f002161dc56f2085ac03475a6ed6f7ce9695f8a0f4fc044d2494d632598d778afe58221e5d435491ebdc30c2a719f90ce17ec6aad77df11b50232bf1d4eed0195765e3d1c636ae13f0cf95984581fc24a699640ec5ec9374588f8d74baaebb831c219b4df35b73eab7e6e15bd5a17a2803152c0053f3f3aa8096facd15a4ba1d2e0d90300f548180cf9b9ffcacb0cab9d6e4877f7a63d2ffda4d9697149b61f8ccef1daa976f92889c3090c7fc5c69bd87cd39d02d2de8ce16c6eaef9ca623872cf4f91fd426eb23ecc9457ff881da1b25373f1f6959dc4986cb0fbab15f7ed3497896621dd6b45bda78b7ed75c7d38cf7e74443a53ffd456ca84ee9070421b796285e023b5165020d3dec38078e599ac79ab1eda37a09b67d4e20fecf31c0244846fe3ad9b5ff9ed2b2f1400b7647a1a12db22bc24a2a5f1becab6bbd4a911e0faa4f4758219c19d970d07c90efcf8f3de432f526082f73b4a6e6b9b048e00e9887c164a62f3758b8b2a7d0ae30ade451fb5b405fd3a7aa2454a70ac22af75b986e03d8de972814b25ca0ffc3335206d30a7b748a10ea20149477610874348c07fd45ddf69c65d1e1854e3eaa00f6e6e0018c7238c7c311285f1ab9c876c52d212781006a8300bc2ce4c3729121b8b2edff63b99a29a8bc8166351b84ad61b66620fc7d0d5760b6409e42450d5fe58ceeaae5abfe937091d2d2d022057b2bdbca1ff2c6f1413021611e09b3a79455aaf2512c6a3d2a949e45db154ad328ef646db243a3242440159f05ec72ee2f5cd2eead4885f2d6dfe23ddc70ecccedab451645e61b17e88cb39d6bf1f1600b2272e3fa523ee9b570e515d59c8e04ccda564ed5ac3651d206695a0b8eea30a097bda798645d6ce20164a2cae126154fb5d50ca5749ec608db68396d9b6ce620cd8d78b701d6f9dfc701a7900db628fc9c25f06e41a70ba6e9745c4be3c0c9b0913d2c584fb2630582cfa1d74fb598515a104423124ed855a9a900cd6985eca4fe1a921a43188fd87cfa5e9defc046000641f58573a70222f6bc22462fb959df93d1d5c2a2266dd4bb01ba465e4e301c26cb9f49ccd87f92b5d92a30c4e7e4583d95a38ba2fd2fda90c8beb60ea9510a43608b817a51b3c5f05275dea1a857e581cde0a5751a334c9e233353a213bf3f7fc38d6843c839cc06df3c6e76b4b6df73c9aa90bc24196f9668cdc2df584aa10dc8ab41882a532bfe758cfcf16f2e6d0e7ef2fc900a3e5f3e261b4062b1fa3aa49422c7c6baf56d0120710459b949ce7b21089c02a14d5907ffc10c53557477599d59d83f368d5ba349c3f3693da678f2764dc4caa11a669e5b703a97a908ea7abb18175b1f208e448b1b05f1cb3deba9b4f244c5905f4659c51f0152aff9cab8bfffaa61a98150425f14acb154e4db9aa03d73860973750377284c275405d726dd615802c8f4738799fac49515f8c04a9b2fd693d083d3ace8b5e872413767114fcfd32436181f30c25621bd6e808919c0abc67fba98af581aa4383133b47d7d8fb67de035f65d507aafb8e1908c8a3ab305b0b40ebb2f70958cd69ba48c3d0f94807f0159f3c3205affad6b2e48fdd54be8e5a7e5bfdb3f1599f62a52c11819b0a7852a3bc1a424596c4da3b1ea7e6e7989d3c403979263424397ebb5b5a739137c1b3d1566ead912214341ddae970955904d9a5e79a002e3cae156694cd895873fa5559a7a9d21f090ad77d09471d0d00f3ea2238043fbcb76e5ed947a3384b05b838a796410b87971f95910bbee1c6815dfc9b3752382f980d48db75e28ab8efd094046de4725c802e1c3de5fee6503d383acc450ca7d637a1b5a68d7f099ded08791a3e845b0a8f6dbad10395b76745a4576bbb66fd6a8750a83616fb5dcedf961c2aa6d90d602d0526974a93ea30b26b01245c74ad5d060f8cdb3476e2a6c155a676ffe0e4939790daac867517a48271501a702568e7b349507db9383f6001c596077f82458291ec65813d6d7306e8a83c36d76ccf76e7531823e8ba7becaccfce8ff2e25504fe2cf86434d81a43b28daa7d479ade72e302f82030e240bd61a52b84b372d460d606fb4b2f649bdc51ff2cf379274e1c6bad82b5407516b792d7c3cb6545557fb2db306945dea8092e7ba6d033afe77833375214c816a4c463374cf36cbeb77a12ff095e9bc4631a3b459273bd3494b1cd49493a712bafd08c6a4d2c866958fbb773eed52f7398275128622b7436a39eb724c28d70f55694cf22fc3ab311653fc7c210265fd6eee872add33250ac495a2f54c9bb856d1ec8704c1c9fe0208a312ef3a08445ce3e9b4db2ea1c4b1ca4e79aa5ded13ac3c7fb69612e74255e0e6cc3a063d28b8e883fcbe3fea5db704e674497fecf7ca75110199434d79ed8102c510d732e612a18a8ddb3384b60f19aceb88e4cc35cc4af247edde5c8b26101db84dff825f9878761a6e96e104303441b9954091e5406aa9cf5d8e4010b4c075c374cddd31f471f694b3b9191a1f3d7e399693e235898bedc55628de4fe245e59fb02ca5fbf1944ab74e2783d9c9fe59f0e6f0de1b2bd70ced8f5e87c732c82bdac560e714546afa3836b73ad16373b72eae416e31b2ef999b2f3fd13f6f52deac065d0de6562cce840ba490d7fd1121d8fc66a53a27d3cab9db374e5b96d44f64b11232b2859df9468286f268bd4f186d434ed3b3c807cff498d1140d7d4b018a03b7b2b86be6c6b3a76a49c94a821989d2372744b1ed2e93e6e978c9cdd5564104d6ad141415ebd06a2559887af6b20f6b664e0bf7582d0dc1ed3e66661ceab0533f4758ca9d9c20211adfbb18a7eb7ed460539a48a131c59ead08680e8723276c1926a35081573d4e0c057457047e0a8e031861e5305e04c0619a06867be34f58200e4504919916c0f85945d19c7d2b2fc20af7c058e5f99fcf83206607f561e9619219da8867c73c933896e24f55363c0deb0d258c3f05c3ad71b3c03e2005145a6d7aa4546d53dd24109f20f902f7b77c8c475538788d3c0d0cd7cbe07706e144ca238c08b3f95672b90076ed237212adac8751d335320d2ee0ae94e95bc7f5c27af3c8da67b8b5d3630c7c6d006ae3ee184b5ff781ee470b7a2a9fc87f5d64187538100fde4bbd67be7a2f9c25c4a6f8e0301595963c280457395883a80ca695e98af29f0ecdd33dc3b417d09d0b2d01c5e074cc1abaf544ba9048649525f59ed02df6b9baa0b61871c4605678124cf5fd1dad07e892d2b8c0b14c0a9bf031493aa304bac36ea200f8247305394bef54f4608efad7435ef3ed5d5f5393225587e1ac3123dc1d92ee383e17d74f0ecb1bb025fdcfdbe7f2d41d0708f1ad2f766ebf69f4933ec0f8ef6f65abed4d883a38e0127530e8fd6ea36bacf454abd510b1ec49dc1d3bc31bc7d2b76c949a24cbbe7f676ba4677e19198d86ce72628e26f56b7c595cd07daaec87602c78a7838ae0d7d03a8ccaa8f90fc2f9e4cb9555d096bdfeacf4619eb3562d91a5414d2a5ccc90b565453f03a0f08d4ab41e6542bd2c687f62a9f41f348a7382bde0561e7c03700b0102962314b014b83980eb887783858a0c2e7818e7c7435a02c21a004360f29097eb414eed5ad78084a1f3cce2112639ec7f9ee6efaf166b3e31aa4af7925e6866743ff8c22d865f28ca97e47a3c979d0c2ba32eda8f862db63e07acda1757c8c7aa4b61d6011f5169f0fed9638b3662af701e486fddf0d599892d4215ef4252dc3248d9fd9f5ba3b5fb3fdd9ed601ee2a1b2192a5e01373441004841190d4a3b44eb80ead8bfa9c541939732913eae7904374d288645f4d5832691e338c82e2fc2ced10cc75e353103f383cdedb81e22ecb341ee19e400451ad3bbf0d10181a796c3063c66b1db825ea00e197d7b41558eb05a18c8e2accf0592a331055d5d09e436983efca0c334919d44f5cf729a26dc9c2abaa4c9086c7c0bded5814de50b86b86408473172e0e90d5d32fd6f93621a37abe618ccb7dcc2df0573d4006bdc0d832156c82735bcfe95527dd6b10e71f38e8b46ecddaf6eb7175879b7f843d821c7edf653b776cde1d389db91c3333a1c733dc45ead2f72644e125e4e2c7694dc4a80b4bb594cd052b470afa7323c5d9de044e9de8fc307512df126e794fcda65d4906ccd8caa5607eb203d4d183569d9cc530bf8db3989b331c7b4372ad0514614de405634d8cd1dc603189bce42e53584dbd7412dc3a7c9fed69f194bc753f45e24a289db30970a9a68245cb62196cd8a36a02dbed39edd9c40f4f5e6412ea5d9ce4d92505112f6dfc1fc46d0e83916693a35e01deb29b5c0d08c9ffe75aabcfb9af18c35e04611429e52285c5936f782c11f2b849280f009d83911bd6ed58b7c0ec9f8d822a538db8492e5f410020973536cc460861e41515c2e137d1f373e6687136a5057903e1afa8aa7700d5e39a23be933e972dcb1cd67ae7edd452dd3d229d957c5822fc1846175d48a5dd25adbe1963048bdcb5ebbea8bcac5498e7d805a0746a95f6ba9a8386c387d4ef863c424d62276a90c847e9019eb752ac6d844e0e45d78aaaaf567af013c3bd313ef23e06f4fc751537561ba52f7ec15cd460d8ab9ec917e1e33f175c3c1f38ec99a09da921ac62dfa458ef2d0d15d4669aeea8d797ea057ccc86431b4010f56fcaf4e7894b97d542bfe0321886333608e9d56674c8eb885086e9f312c6926713ad129c6faba2b764e4646500b72ad52f4158a071e0c0697dcd50bbb17b4689092a36bca28b1c6c02d39dae78e2484ff6b00ef8b5311cdfbfd061884d23dd65d1b0ca4a9aa491939e13202b515d6c709ed4eb0b86c4ee45484f84b2c8d5ec485686999bcbe0e746acbce53977aaeaf400000000000000000000000000000000000000000000000000000000000000000000020c10181d202429""")
|
|
),
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
dd746786f61c3e55ab5c50adf85106c1e6b427fcd102ca6495b52558626a21a47f456ec45fa057d0e1aa9010416f9d3e8481ed052935217b3ec0baae80beb73688b4f772a3c3ec7114072a3a9ac5e19a0c32fcbe7331521bb83ce5560700240420fedf21d515a4b69121325116da94da0ab9b51f0c66fdaf466baa0ed1d354a51b41685942056304820103911881001a1480e04251814632c894804ab80121166d0ab64d04a36cd984508a462503458a20873059a02899c06c510268da865140982859c48c0a106ec0c42092b86508363022126cd144254ca2095c0062c3968cc9a80490029103128d19288dcb1448184784633241418670c434925a322e9ba228038905dc1880a0322dccb22049b80861a00c819044194680092345a02231012221cc00122316001480401c46400142268c027198b84004024ce098692425895c440999a28460182c1b898d83b08d10a50c120466c99004e2860949080d1c08410b49219a022e59c42d212770818664c90624442440d8a448a4c8400149655cb24410c9081c4664c2a284001668a24644214404814825c90021e4801044368ad2b00559a82524b391e2c229d4304524838cc9162114206989100594009121354dd4045012a86403418ca21865a44421e196309ca44c0aa210238984d8b82c229600002041db328214c02560124609c985cb32115944891a13429122048308491cc621d9c829880245e3a60990802554042cd80465da066d03060a01c10800173200206a5ba4315412254bc2240b089000242d83468e243105a406658b285103264ad1b42c5cc04c09a18180226c9c98910a35840b868d44106204b52cc8482441100c01846004b065c1a86960882ca1288d94b265a1c20123c369214721622042981489212962228500540072594029cc0622cc342091866902c889643025e1242cca406c84a48c1c1321c1924dc89209e4148908b121d8a4011a957048166d01190951320c99148d18150a6314688b44260214469b140d922822c0208941a86d191220492806604209898888541085a122484aa28dc1846008110414c60199c80509088951440e84a04d21a271a0b02c03282c894880c43011e220881b1846da36241a499220a061d3068048c00488a0299916042123402411690222699914925c262c48963192044c08304e8ab67104216160266c03456e2290618140051c049223354d0b42500407924a306551c470d91012133385c40806248640e202498a8289cb08661c3650049844a3a20c0944250a872d01c6485ca48c11931184464222018018a145d4120a2147605910209b9605e1288213854412a28d1c930004c065e2362062b4601282495436704ac245a0a801c4b631ca82282201921b922920a925d8348658464d110449809668cba484e398500b470288020582a82cd4b820d34231caa08d6222890b236c0b87211909281925128c40709a2808e3c851ca867059148aa248729210285a0812c89450d1300022b8654884202490082396116128001a460dd1b0280aa14104044840c045539401414832a19421dc2686e0b01019184888324a09026da0a045119429238005e028255c968082087220a3910b0452c0b04124b505d8380148126898088c6406301a842c53c24d112409422264cc0602d00869c4468d0b366a218649a114301a95704440128b286cc0388edba648119881a2b2702244690432685484289cb2451008720005101a881002250510a2500b35724ac05050a2811a1688cab8205882610c152523166a93107053348a00438ddb08328308094a10080bb98103c3851a16319c0461e33809d8268c4ca041012591d9925104a6688c8024dc4886142310c2386a843289c948450c128ac3826c8448221c09801c108d19048804373022308401285024c561e3108e09322111b404d102096148128a866513a02562162003194251122024324d183666e024614116888a46910bc24802368de0341058046150445150b689a3a091d4c488d1b0059016329b48654c100ec9b84d2096809a088aa3168a930084a3102418c54599808488841118a7699908604b108cd40608a4c82044a0415410845cc06550424d10379104360083c4404b448d9ca8400a876c9ba4609b0211d3b209d410891319058212060b2551a3c86812a69140b6005c862ce1882044920819b3101bb860ce18425f2c44a094f3f95c4b2b11bea59d00c8adcf72931628dbe4a8b1c4aadf1bdd97e0db31ec98e63b76a8fb0cbc0c9487e76ebcb198aa0fcb2c82162ef9c980e437810129717ee8f285a8b6fd0dfbe360de8a006966c495c560a1a57a41cbff1857dca6efd5359e3b31f5dbc8a3d79c6fb73de995b77fcd5cc359321b18636392ce1a9aa47b7ff9fd4deb6996471ffb7d34a1afc3cc59a1b8ed15cf2b1cc1862de68d421a7029d79adfa9eebeeaed25237344b0a05693e4a61370ed3e08c4f2fe844674ec64c70fe2fecec799e3ef09348b6bf74de004098e6fb5a8351f4749fa43a2035e443e0b5f1bcb0db0ea30958c417def6e6111a68f101ad11441a758fb8ba2212044b7524041fa12a417793a708b31f7e4ebc8850616143efbb9b1db20e8e306a05fae31afdf6f1a5a389cf8aa3e17befa6eada3d231186d7be8e076b3dd72345fe539bed1622645b75a7cce268753e95974277f242d52f70e61daa57a630311d7f709d59b782445cc3be2509ced95bc4ed23daec3e130684d9ed85cfaaa457b877a940786ce854e9cd0d0f87b37f3683b2cdc8540afc14270a5c661d3d99f8dc978e67b57b4792d4626202e8f61be355aba47eefa5a3e55a17b49eb124be57836f27e5cfc0289d28b2c3960eaa9d677a0d2698bb5bb9d3b53aa48eed8a828ccb71987bf65e443c6e38f5f5bd143bfade0a1b48d60ce5f0ecff2029c9122bfbae67cb74f956dc36d6fe9a722b24e6aa2cefbf084141f725c7178ca5e7892c076ea64ead689efe46c7bb64d825c1cb567e00228f1ecdb84c9c8c5f49508addffe58830981f2f57bd88a3c8962eb4b22195bcdccf42d584bb878d10ce5bbf38ecefe75f285f2ab3a594b8a3a12a889162d6a45895db914e99e35884c9b031612b2cc1e0bc552f49142666914454b1069ccb13cfea0e30b7e4c978aaccc77db7049db19a58f0bedc857d869ca91bfe2dba2fc8495d2c557419b7f92a1db1084321a3791b3811d7ad096a121b338c15dbf494dd703f7ef85b44c445f6e93847039da73409ef04c75ccd4bf524238f4cc2ed1da38198ce8a20a1a956eb078cb59309d11eede544c36d273ad18ff32234d906ff357f4ad6f5d85fd8628d16114cbbea2810f3af8c484681354ff6bba268d5553d1a2962672fc2eed27f2e77fe47b96e11903af01c96d919322f533013dfabdde8a3e94f56bb8377ee3be1a7583142655a49c52eee7c7503c65be61ce0ec04341a71187acfe329b2ed51678a7c63f750ca2932bef1bb60dd7889f4e0565e0afa105b19918fe47e57eaedd6fbbac2706a2de315416d54874b065958df969d7c1dade1e0b615a90c1f2708cc6dc27ca66b3d261f933407baf18bb51736941628034dfd1fd1730421dc92ccc7e29b87067c17a03d12a921eeb642a7705d9abcc023fed08a34b621a265262f706f13b7accd54017acab57b2bd7813c5058abc6d1c3e393f3cb7c6c2be70c27c3bc2f7cd01011d71a9a682dfff4f7037c2db2006bf8c30423b3e94298075f7bf7ceff8453143109202c93f1dca8d5d60bb276aabb8ee2dd07e30e8a720abc5ab9957abc3af8c478e8b5ca2520d81b9d1f6bdcdfc588862deb4c67071f18d90a95f3d4805a8e1d44b8590659096d4f7cee1df9f55f137f05a316b293b36a06f4a2b66d428ba141d45cc0d85abebfac417a56933313e9faffe934c9d930de5b5b1af5df86881bedc6691fe899ef9c1398f0ebe790e5d7ac055050f7bfd319e151aeddeed96f368035f82114a85aaedf5068f81e6daef4430d4e4a1b30703278cb3f72f370108e78649706da8003ea913ad4586ba821e313aabc5fb4abf57aeaa53a641f8b9ef2c1153efa20916d3a1ede4580e20c93b50dce1bfb4d08ac6c4f1e7a0e1a860b809700cc42e2baa77bd691757c7766a61d535e2710d2a61f25dbde1c08fd373400b733a7734f580c53e3460ea4ec5dbd7a628b237032888f665758c38a17380c4f29f848355fab6db832e48f1c64ace6d227f783748da451d080a58bd4edceac5c1318c17c9780a3d7838c9977dae07a24f5414911c519a52659640d3ae703cb8ad7a8f3ed7b43e862608a4fd54e2218acf43b1b8c0d0eacf4e019c38ba7474ab4f614d3ee034b5907159a9a37c07f74381f66efaabb51af473a271361c6654cc60f3f992120f9072e466b0c0e99f95efd64c9b56d02a138c66f558efaf6e7118659bf14137eba0e72149992e88689db0177e099b3eba33c4ea14c74f0366ff699a45c80db076a16390d64b18168a03afdaa0e028aaf5e96d9dc9e300c2de01471dcc3aabefc758676895609fc53b7d49a3cf7db81d314f295955d3a19dcf279fc8ced5c4e101df8e0d4c40de7fff3a1eb6811bec0c88e0daf9306547ec320acbd1b2221ea016a4c21de0d6729174fcd2939ea354f16da58f69a911cccc60bc9189d4a98991b20a3279aa560971549f8406d7e31bd393730b7cc2837b228144876b8327f4bd13c59f46ebb23acc80f3763decc027542f9b939331baecc47fb979e8044ed740d5c3202df98c46b387da579373a9e454260d96e6c6f40f8c080506a08c891ab9be829b309292e8d064297ff9aa1c1360a3821317666bc8ae7316e12642836e17e344c063ad9c5686bd6dbe41bf87f2987cbd75c0ac83ce63ea7241f93e413b78eb69278a062b99dd6dbd5e76a77f47eec2a024adc31f50a2c76049f93bca73caf5f4956dca7f52e758299589a1b985008ba07d0691e6fc6dd430dcb099b0549d3ac09a941f89f5f5f6e9e45bac41c197229c757d1d56d3515e054074fdab808377b68cc1a2d5b115411df06a8e3a0c8191c2b078d3ec29d1e17c2ee657e7ee63fd9bb120aa97e5fdf1b6b01b5026007d7e65934280b43164a9cc408281d2e91c330f49aee15d5e5b2db0d579e897f80d1cccbad5014cde2e1987e3b5766a926f875457088ceb508a59464632a798a47c3a2a2dd15f7558f26b7c750405f90ce2211dbefab598da23da68f00820eed189eed8ce73ae9845ff79be89e3f42228d53defbe2fbb8de0df315e6d96632c81f6f455ef87e0d2079f6aebab3f5b318e178157d5ae0de7729ddfaf8a17c1536ea9f05bcfd01d7d8992cc7ae7be182c8c7c6529f381615ceb8fc4cd39e3630445a65575159727e56bade8c331b9579b42f9c92197a239969825ff6d7bbc1afc517efe8fb48b792e823b2c2a34507b137d8d92675ba19ca752fc102c652536755411f40b2b135daee04bcc34acbb428541ac894e52d02b29b5b33ebb46ff4a499b1a5a143181f8b143ae0f0f7d47666c0ba7c058477c1e86d030a384c1a4eb670aa4e1a979cae06b60f3f53bd69d7cabd28554adb61666e1722e17b32cac684ce514b8b8f497899a27423c97efe80d8d0c157b2d34ae04d632cd7a5cafdf3ca06be5db51b478dcaafa0dc9cd0c3da2cb98af35361f8cf659fd73af41f536c8e50f940908507ffd8e99733831e1858eb6046348cc85b1067efcacbb157da93ea757af2b9bba0c22178ce1001a57483e30774bfabe3116225613eb5291936c48b2d0b5273c5be7863b677c628dc3636da5ed2fc4acca2da553b2bd0f2cd4ebdbfae4b5782c2a9b0f62249d1c1fa04b5b641aec8faf451a1f342a430a0b2104064dff17c85cc7ad8020cde6bcf3fc4d414c2a2e98d468a02f4f4a060223222817cf2013e24404c441e448b6e88cb8fb7420281aa007cf980cb7bbe1d9bd49f3e832f5ef6e8af20b1ffc9d63d68862ad5582a23b2a568daee6a3aa368e441a477e275d917d53db06285c56864d9e29ca08e34ec9ddba84b4b02fe11148fa01471cfef24f37f697bb9ea0f81449bb6f81f3c860a08efaf658c5bbf049691e08f5be510d88f3ca1ca6fffa4cf0890731e865811f21d2daee7ea57ae7cde041963091d7a8ea7d47ac649a72a9d1e1db6d428acf9de800bce90bd097391d281ff0d18f6faf4fd7e1f47411da694f1ae6f38e68a561a7d7a9e8bd7dcbec874e5946c63b5dcc707db8a32a7e9d6e6a642430402304a7acc5b4cfc4a7981f2187f7988b78601d9e45f767f80c7af2bc102d8174319ed108745f3ab7bcaeb6d5e8ca7d1c466d214871ebccfb1386d4e5e7a30be8b85a447273f6f14f9d6c2f3931810bfffb1648514b245f25ae4b1c2ae3df9dfdfea596ba3784e937f4ca2d1cbbfe09111b753d55c22149dd41efd2807c349f80f18aced772b3178f1c6ae4c03d36319384c8bcd061e881df41114d5b26d4145514d52800fcae2e72eed53a86164a69b72bb48e124916e3648d99813a7ae05f446373a1a582d21426c3533f34503c70982a15fbd9602ac997f27588d34ad16821e6f11b4903635099c2ab02bfd6dabca6334560bc6e0ead7b2205f483b0b032ffdc8af9332978ad9657917897e8666b1835938553188280dcaa2c704a5eef827209a1089c99c8869f23db2c102589963a70e85fb0f8ce503a8b9f5e0aceb65acac58acafe6d82d3320a5b828b49f9f21061ef74dea4262fed180b5f88dd8d8c1794c19e01e3ea26bd6c31f7befccbaa422138809ebda613d145ea5ad67008a794db89460face27a1b0b715be9b21abb14128d7c7aab6cf2c646ce2557f692c0d063a265e3e8e91f0ae9e4a8615fffd8c2d84d8585e1927bc50218381a8df3e976e73bf8bb3932598c8d89d67b70e030e0c6ad710a3d79e449ea1470"""),
|
|
TestUtils.hexDecode("""
|
|
78A2B7A4C8441C36E0A9831F65D41773FE6B81B3FA6259A320AB03D460D7E38F4AAB2B93C6142FB0F9584E4D47074670B07F3CC4513675A4367EB8F7F4168F2EF7CA26AC45C8F23B2FD3E970068F21D9A3F7EAF005DB5A7157715CB94F5E83E3C955DD68E0EA689B6F419FACA7CD159237085678FA5883D5330796AD64627CCE7F913D1C2259E1F970E44988B08E78ED1EC01CCC2D0274067100C1C1E3D880B9CA4F3A1FBB345354D4837A6E5FF4D5F5C87985E51C471EB9B0F85075ADB57DEB53A87D85834167A4A538134CBC24FEC2756F7760C3D46248D5BD6022D8F88CE7D037935DB74A6440DA49B97E8FF376101B296E3A9D4D22E70634CFE88142EE5FB6A33F323519EBE3A915AEE5BB687DA4A5E264C657438B0F6AC977A22D0E56882F74E70D981CF37FF0C57D285D8CB07ED7FDF6D7CB1DD39EB0D84F2999DBA9273E0B716CE754A29CBA2FE32BE13BE8B9F2117DD7359494A0E0CE623AB9ADAFD3F15F644545A39055D42C6C5FBDB46D121308D649AF9B86A350B70F77A977C8268FA1E04F4EFBC2C95A2D72BC37E558F0460BB281D33F75D2AEB240086CEB8246E8A44416A5B31EC58AAA88246D355591BF7C622CBEB1CAD3B785026CC04C73E352DFF28D77186CA93870339E132D57B11F0154E0CED426DB31BB2E125C5635BD489B52C5E77593145D3100E48CFC8FE6975FC3F60ABC7FA4A4D9030A2CCADA3854BF9AA213EF11E2F85E9D4E79CBB434C65ADC378F8A7DE33E66B4F8588B73FA7F79AF4130554173975280879FBE0A59D25B969FC45AB20401CBF85463A83578E63D0C8324878F5CFAA191428E7EAE37BB17A18D0459378CFDD4C8C0B23B1429950F054DF5C67174E99AF9FCE6B0D8C98BAA9078D2CA87EB8A014995FB79F7F49D78F2674839E14C8F74588B45C28E4769C439A930B2A187764D87D71200E841263EBF74F7428EC554C12A7352FD3912D95C96E4BB1D325DECEAA9D6FE360DBAE7AB897ED467A300A8F4C6630F8E721F24860D1FBBCFEDAFBD94DC9B4237B91B243A01C41D5E98E67B52B4A8CDF0F1C985EC0EB85131F5E970A6DD6D4E1F525D9D94530157F70B333F5E50B1B95D569A012ABA959456AF773B59BC2891D745CC036D06238AF3F34081A20F00A831422CCF6E4593EB56CAA3B7DDF44B388CD54E5EF9E3FB8A260847BEA5EB5FF9665530A4F4B56726A4C5E669904A933AB1E56C020967FE61E72185D56B38B03D343302712FFC1DF9D857C6F744E3ABABDEB3F65628932D69C65FA112AE3F7D6ABD2B4C3CF572EDA73C959637D0C5C188343415E9A26E698170F8E31CA45A8E6E8E96BD066BDFDFF49C98C491149D61AA7C456D3DAE0C017A32B81CD5668A400127ABD4316F3DCEA171C3F6A3E99B398CCD4AA7E45BB51963C82C43398050B8923CAE2D4E2A2FF5232AC8F2C770C9A775F29C261E1C7DAF54F9FF606560F869638B666C90112B29F469C3620B0912622892A432EAB443F8A93E3E7953235EE78CD3FCDAD3F1391A2487DA621526EE92735284C347853D5F65395ECA2B50B0CFCBD988F99C86B5AC56ECB82813A93208096ACA04F22AC015CD9860889E9006DDAFEE0B472FF7FC3D5677EE089B0AF7C6C2FD5A322D60BED621B8F099C30C2344F453320B6FF405639CF764B101E1CDBD312495C2D4FB30E2FA7B3C345B9935BB28EFEA69C829EB57BF2E2E5E42B8515DED4C32F9C84C33DEBDFB345A4BC592CA56A769533FBA0A631D5D0E07DAEEDD2FD588FAEE648B6391422924D28D08B4CE36084C20E827E6E73A97852BDD7508E1CDC1630094C9D3A2C8517A25A244FBA388EC7DE2CFABF139888EB7372E2BE3BC4FC71788AC3CBBB3EA1CCBD9616E76F2CEB356C13257A8E5490F3C4F7DBEBF942BDB941937C956DFADAF3A78903B49C5DE34F5EDBF0E98E3E04E51021B686325955C14AA335427C4A116CFCB3B89349B1258B8E0E354F13F86C86E5E8EF8F57D7B7501C5D75B1D9615D942B04E1FAC4EACE0FA10E6DE9B9721EB0651EB3C9DE4C61EEAE7D7E17C0D699EBF7EEB122B8C1A599A2CDCBB9B665DD9A653698735D5572EC379ACC6A8470CD7CC8245F871C83E6FD92111F5128A9797AE802889E4362104775CDB69FCF37AAC22EE4532FD0B5ACFDC4DBD56D9CE8B9EE2A8B923F42FC512B54204CB971BBC9677EBC49D287A3F68A31DB8AA49D6477B287285B88AF298E68C6EAC3C73FDEC94F7062D204AB310686144168C155281627F78C883AFB49DA50C0F5139E2A0ACB9A9CEFCCA39C6F4F0F5356D2898A4F5DEA78FDD20B79662F4D066E73EA4069DCE6CAE300B3028F15C98801912A86E0CF34DF53F7F6E1868DAD92DF22A238C710F471596A49843D3E60E4C381F713C21C3910ACB1515E5E30252C94F040F00A9D1A08A4FCA329DFE190B5464521BBAA32932022BCC5E119A96DFC941965CDF3B739F53DA156553C6BCD72927B07CC3CC945FABE44B7348257A9FB41EF85AD5423304E016E74E03D5164D9F15838C3A4BFDC29C6B9F134054B53B29183A6A145CECACB3EAC7C18E31CB4BF78BC8FE60A3B8EF880CB6C1EFE7EFA8D77580CE200ED96713E32FF23B86CF532D8EFA2FFC8DB1A9E65A78EDC30090E3DC02475D84F8D9F2BBC48B114C9E4A01FA79C17FCACCAB1FD304C7F901942B9EF57C918588C9CCEF0DC5FCA7AC84ADAD547982EF9E855F6E88D02751E8E7B8B76C3796F94C9F7B7C6860042A3A33EFFA55AFE1B94C97D68B76DD240346355012F036DA9C7E025C3633CE867510D54CACD36D8638FAA8EE47D315FCA9D5AE4BEFD6150086DFC368DCE8DC623ADEAAA07287F9B291252628F1BDBA5FE6DE45129509651FB048D3A686FFAC5F2299AB0133FCDBEEE8445555F5C649598649678847FFFCE6E0DD9C4E75E2F6E77B1CEE3A1740A94E678C1191EF46FC4D9648887DE6277B11D4C242DC4A427AFAD5459BF213E0A20EC74EB0C210D0A922B9E690EFDCCC2C160E011AB94F709C174F22629969B6332738654A133E8A13EF7C914CE75ACA1C37DE05A84708DA741161EE4D23C025B405CDEBBAF9040A1CB7492294C381FD069C4622BE1EBB0113F25F4E1D5A415C121055CDE5616662599C2364481BCDD35F7E498E80D2350AD3B34C205C5EA73F1B923E6197E07C502BC6F4F4288EB46013BBACC49A5DEE5071ECAE62B192294E904BF3FD7BE08F0C43E3EC6E23A7F68115FEB285AD388A0F8FB94126EDC0331834179C1F10CA5EC54159FC256D7E0AB3129B22E5AA5D662C6A03C7D9A6D066400859EC2D5B091C37E35DE31365F5125793E7F653013C722045F7292C014123246D611A7FD59E9B09EF24221C7EAB249330C91BC9F4D3A223D9C2CBF7130C5C057961BE89894221AFB1EB27A4604BE310EE3C395E479D852CEBA4C2F74D4DF416C8836861BC13D0692863667AFF8EC89BB9194407222589E1C27B9D59AC49131765273228E79C2933445B83D07E48A789FD6E406064593EFBAC4FFEE64614C5AB34E5C2A717C50AFA79A96161203531C161E46D71F447FD28CE4AEEF197A3DCA6BCA306AF09086D6BDF35A861820C469A40958923BA824F3A95CCAF8531E930210BE46D66CF7156EA0728F3448292F47ECF20DAC7C5E78A2A0AD5215FF37594D37A2AF4778B15BB1B5C4E0A44AD5910B62CA3FAC5BCAA4CFF5BF97C8B8CB239126CA09E92492121C9E6977111E6E5248661AD122C87007318BD3D98ADDFA1B2CD60F12AD1E072643FCF82C630C2093CF4A75B2D3F809A0496727E04AD60F14CADC7331B23D9CBE28EEC92C68C97E597C2EBF99F2B"""),
|
|
TestUtils.hexDecode("""
|
|
b9e56f9dfe73c5da4ec32b02af5fddebd5c84e216deae6a4f8611a876fa4993b9b333360ee00007dbb16bdacae8af597cc2d3a82359d8dca6582fbf9546b31867497b6cdf6f42ed3b09cfd094672218c40a24c8905ea468ba91c02c677a45abf5aa0421bf5bd398fad978fddc4634f6e9d36a03cb3d6eb64ee2c35f85481b1c4bed1b268de1483ddb4896a89bd9853c8f5beaee8b760c8202d17af8012a859f30c3023507d6bd8e41476174c2fb24fb1c944fc525b35c6e81d090c69713836e236b12106e02792ad51000aac32cea27d42c197e88f500ad336bc6feb4b79dbbd29a90c6e0f30011821357d111ec1cbb395212cad14b339a40fd9fce06bea1397369188c0d79e112f8c453605aaa3e28afb24730578eb8bc738d1c8e699fdf40438a16100e30d023b5d5be050a934d84d735a5650e2f599a52d36d1f9bdd91e46316bd62e774bcbeecdc7f43a89fa59241c12d2788ffa8e7277707c7df292da5141167d130aff17369c49d978add54af557dab19e746391c9f67157a58b4efc7463ac0615368006fb12c3554ecf35902e5752dfd7c34c97846547c3da9020ecd665487607c084ce909c2b7719acd1c3768ab6464c07c17e1329608afffe63a4ca07f6c9ceb74605c02772615de81364524121f8ffae29360d69f8900e5e9fb628e9ab0af8200fecff1ba1bd01fb6f1470a3771ef57d9b8e8103b3c2201d233de6e6602d490ba822b8eb4ec515c46b7b7dd0bf95cb7eed44573cfe11c168217e32961180d74e4f10463a5f38404540afbb48b21c878f1e7cecc13d664b03fddd6a33bb4d8c89023bc54602acc1cc434f5886906b5de13e89b5a414ba0f75d8253bbe031f2d82863e4e2f85f882a8a64ccc90a663ec9b6abd7edf2e8992f9aecb12a24acb52e0b05dee0803f521f833d0c0f238b06dd530c14bbe9a64a38198ce98a91f80358e6af37fa804710f043e7fb8cb5562f0c093d40c57f1b2c476520ab60782702d79423c64c874ea0ea0f4d9bbcf029b54b11bd114d50ffd80f38b21b4caeb54e9b83e0fd4551b7d56aa89ff0ea546433abc7e2b71a1a73897c803709a85b9f2c45996243445b089d8b3a75fce6decd0c42d622b52dedae2dbcc83181fa23a9d7b813127d58457f03b5e0cf4326188ed9bb894b9d468044897ed7397bfb6634808687937c8dc0d9883d9926d1cd63e0755ab868ab1de5a6d8cef72f72ce4e183d626605d6ceb6da8bb821161f3ad12eb124a1f09789b67f71a7b5819c3a285b7a8027d1cbef580779444dec21bf6509f27e7286c9d8274106cd3ad0baec6fc6f40fa3bd30a96c27d48280b8f051ce1679ea89a4981d270cf34eec5ca1ac399c422ff114232e68601d328f4a4c23ad3d52843c963b21f106f82eb38a379442b0ac389c59992c4326c9a54573b54ccdf1358389346df8c5d8c4064dd216f1d5e8f5ffe31205da0724de69187349a54b916fba25bbc4fc9b4518c57d5b715bbbfad14e50f8f48c81baa2246712b02cbc6f83cfb0e033ea90734495c9f82d185038a843a1f2d0a40666168a4df0b8e7c08973f64c4af66006109fe69a016242709877801e73319e1b2409825f9d827fccf2001b4dd0a4f455a92a58d13886f5ce9efe226dce7f3b4e817fb4f2185eb328c3b20192cb01901d5563b83fd7e13d0fbc3cde890cfccf91abfcf6c93a8c9ff31bfbe12a592e6337a0451983fedeecb6ed9ce67b6a3628fe15d9d6e8281097f8200fbd8742eb1138d3e6c70c1ed95c18d156bd9bb879610c28e5087097dd4a40a102a400b7ccea6babd3c419436024052a8a3c6c4233627d967a91bf700e10687a30316b67379fed8f4d208e27cd811cd27021abe8a295245f865655d2956d60d8564902fac029b65a337aabe99073b70162027995799552e779aca9ae9de29a458d6eec2f8d2fee0102786381b4ebe8707bcf9400c0241b83a4724f81e776b996c112226b8c7e1f5c1d090e9fa9b88c26445367935ff26c8d3c08a2347851a8f40b677b6fc5503a48f99782bf182a177fff9f28b5f2224b77454b545f018a131f8a9df7c61f35ac74edd7481a4bc18492cde936d5cefe03c96fe2f60be3edbe53d7b5d3f8b883523ac6235fb777f1d7a41906dbaa1727d1defeb67504a482beb8ac2ccd9261aeb746f422b5e9a11cc21ebd22dbea164c46e59b09bfb5213576955089ade4ba711d4f03646ae86df0c5495e0b5b5356d55628f40089d4d78ee33ba6f0f4080aae73fb20b47e979ad7dafda20c69925ce818ae62d2a534727d146d8bff6276eb02a52b2d56712da8cba1c0b48ed1f3e180d1bb4c365d6f14946b5f76147aeae4c55fd8be9d11b4633659df5a6a2e6dbcb56d32c7bbb88fd102e8515e959f322db8b6ddb21bad4a5c345d43f1b9a244a24578c75c626dbafc3f10e65e023783394a8357a6d5e005962af2e2f8fe8757a7cdc45823b50a0bcbbfcc6a46809d46ad639e918c97d1f038d7a3d9d87fb67ca95023d40793f96aa31c4bd3431d997746d305579495e41fd4d5b08cba5176924025bcdde3e36ff0c7b04b1b157021522d76e61ac37cd4fd8afb8c86609afd86a521f42b6e1892cf64cf278b02a7df422953e45c49cd07b9be6a0694e977d8e38b582c353442e850d488e26403f42fc2b533247eece1bf8dcc3808592ca51e100e71b50ea0714652f15c308b59d2b5936168acd227cf1a069e607fb6fe0fef48d582811106aaa4eb93ac836466319ba1597dd6a21ee2221bb0a6c068aca48b10a71ed42814a5273347e176c860845445c6f3e8dfd85ec2da37cb08fb2fba67bca6ecc5616e937e5f24464e22e4a699f27ca0aa321162bc5dcb799d4eba8f9725f9240dd2a10e1057e625f286bb999db6bad91f53c7abf54ef8e8a7741d5528f1adcff8783e69c535d79f279cd046373a012da01a3530d65c5aa3d0772e773dc7e692d0b8e17892e4808a24188c0bd48dea755b98a92ed4d8bc9046c81c9bd9800d8ebb100baa447a3432c4de07a68f666177230109c733be367d73c724a118fb665c858417512d91e993d83047622a9f5594a9e91467608b62c27bc07988be98187ee0ecaa7120d0ed54531fd9ccb17329b033b1b9c771c32a2bf99be223271c91feafc475656cdf78b4acd5226236cf50e9a4e79d7b4b4d9cfd14622a2638fd2c634acd4ee0b91977802ba013a98fffe5d6744d75d1a20a3cf3c851387d08c79d9b6b4dd418965eaff722b926c02f1a06563f0d963a2e6e99f10228152fd2a6bdd6468fe97955d4e81d0ad1f0ee301b1fe33c6935c3f5f8d4f7cef773550d32825b7ff05867c76e9797c71aafe5fd6da4767bf4f8c1a62ccf588521157c252c6d5431c5d4b1f15fe45ca0780989a9e99b7e1ef1d73cab9906a27f7d92609388d11b6381a9c21da36cd5245b2c9193dbc1c74e7967ef694a0e928720646b90a296dcedb5de5d90541641220e03e2abde8c2cec28ee3e7b04ef380dc913ba595c7c3352a5edde20b85c2d2a7525035e5f6db59d82a01768c7c1be0c57ca4eb389d958e0c96443e60fc6ff57a1e37c3bd0571215097fe26a87b835da2ea03c83fdf607ce72e5c76ec4a89e1378cc042bd70effa1e823f2129feb64e5ed7ed216c0d37fdf8d42a5320dcefecdeb28e99ec636f01973df6610767341da3233f1d2d50a7d922e93b14dd5d713049da206d3f31422f9f8d88014aa6091820525b50d1ba5e1f9d33f084bd2b5b65210c37f352cac249bfdd0c9d38d4d62e6c2bbe3541bd692721458b3743f902ca8ef6a150e8538d9dc348b704475d45ca3480bafe55265c578f3cdac8c0b0e281a6827687f391775f05979791d3e673b2cfb1bea5dcbb1cebec43a32b34b2e3ad97493c179abec83d02a249d52dd10edec00299704f0daf869d28c2bd29597215aced1e184d5e587caba773461499b46ed8c7a036ccb433982cb89af1a7e243a3466b1b2a9243770e427feee9dd64a96a3a8b526bd2df6ce6ce3425a59b7147c86997804cb109f862df5151e94a734020be056df7769e3f164de280bb45d7a5c43da8b8dccc48d4b4bd3400f31aa5c04a76e863fcf9c7d7e7eb04f5d769aa3cce83251a40e3e32f0d437ea9a279fdc21b4331286441faf0e0e18abcf11318b127daab6c8e2a8c2d67aebd6fac6139e5cf996ba502080dee6cb6fa55aed98f8e28211ee175702e9a16a2cdee3d08a7150881ba3b44f785ab768cc857bedecc1ab8f006a1377043f731ad801b23e6f18d6404c58c0d738cf5fad7cfa87cfe6446eceacf44ca811e1a48fdeefd940324c904fccfaf2a36b2bbb2c2383fb8c995051881a7e9d96327ee92ac43832f98932997069b21bb0868403c6c586f986949a43a42fc982d33b5039acff3d3dedd48ef05e61afbecc2d113de784925a101552d5084f05720230b6fcc357b63a72588317af5fbadeb229fd1221c5bc5f7a53efce19ac146d677027a87e0d49876e12830b43392f1f68069d5702699ea0321ac7ea78c18e64af520c333a8f3f591a1835d4b34b428abe29d1f0377c9305e0aca4f903e5127a397149d4be75369cd42135c7415d0298610572c6b95cffec5b0ae2fff70de6e12386db711ec9b676ec483be1cea8ddfa0df57bc60d2c8a76fc87d273c6ae4b724c4d8d3dfaaa11ae2da40f7990f8591adf689cf800ceda9ef2c8faa96de3290a3bedb2b73350846de4b754d3f7ef20c4defed3d9cb5afeaa6e1d686a3d16c4f1b2e65ed51b505dc3fcad64aea1c491338c4a33292088b60bfe491e1e6ff0314252cdd6767e983b53cd660dcaa4fe83bf0433edbc28b53a5efb2f5e6793ab1177f29be6cbe572619c7d191117a7bc4dad806dc102aff25067eb47a5bbb1d492f80d37c5968c2e40e9d600e7910ec77a0bafd7d8fd938ec3e0086d84926a75f9908392764c8dd8a76439f0adc99ffeb7af9d0966bad2b0a924184a5e9415c1abf791e15c700a69c0e7a62a854886797fa0d5c7a42519a6c887a23165808a608d9bc625f7775fe7635b537b5a35eb94eb5e81fd9a7c0b1c74b27d0af81938714761081411cb484ba7387c6c233bf7ce09091ab8673a3f10aac3f126cbb090f55336caabbe31d05695185635fc85d2ac59ed0066e51b023350083b2b2408ba874b19b98bd360c12885d64634d3c8c2f19f0feda4bcab389038ace498af6e2824c101fe5b069f6679044aed84ca5dd4dc2817b3c3e6fcd4e2f1874f6011ad05fe9e6a5b474b6c082e7ce64f3ec5d276074af695b6d3ec3b158a99d6de3f4237592abaf05a460ed2437e66a78fbabb0bacf03aecf9b96b3ea916d96db12d7cc6f8bbee54183459748a9c8837824d5f7c6015b564b146c255cbdf16ca894186566185574273344098aa03acdfcb8679387ed2c98dbacb6f2e6150306ea35f1bc05694110d83394fc1a7b4b93557a969131b70890933c530204ffc2371cdfddb7c6342a06d87c2229473654efb2b53f0826a349ee93d90fc4d4ad3e7e3ff8c16d74ebff6faea4b07dd5e88999bacdb1b51d8a9d9c0b5e5276153ac0483b96ca76dda17b931c526c7b5858bfa793c166bb680a44a0c0c66148f81177d8e9bcfdbfb64346c9179bf45390ac550db7af5d9a9b43bcc168ad29546e0b168cf9a5b44747a36b9c4e1f630c832883f9e6d10e2f89fc436de0c59f3b8e23ee0c156cc395de1c135a9de0e24568cac9c2911b21a0a9cff405a8ac222a3ffdc0d9ffc47aff2a3e89ddfdc6a8cf60cf28b3c7cae78b6bebea7bff5a8a47a3b707f24b8b6c4441718ef88108ccc26034ece28f80517991530273a5888eb1e36352d45e917b0283534830e914c5f083704e87e3c4c4f2205d99e1480d3ccc44f66a5dfb0607ec052a5a114c73d7bace17576b9345149325614c0076d7f044ab3f34482091be999a269a266f86a95d11baeb907e636f85fda7439cbe8d31839816ad20fa2fbac9b9ed2414a28d7e70cbcfa80f8e4e059ed003add7553056f7b94cdb4459f3ac54cc2c003fe60d6a44a7fb6fd0520c50f5c226a2bdae8b6e8eb7f18f94ee1b2692675f1b52c8da3141e5f859f7468b88e25a7d556fe1598137e893ba1c07ddd1af840e7f568db4b139f1d9f791451f76261f3948ba69354b16187cb77996848b629fade50a4d33e5760673e7b7466633f5426b17157e7165933de8547163903aa002df55a20a1a90a5c7c93c25bfb53f3f57e0045dbca341b9f14fbe2710532947e3e1bbf9d98a2f46bc526db5455189fd359f4a9c52dd5e5350650b010cc58b6ba0d5d11bebcd9b6e512d3c2faa728456b7053485f24fb351de898dae7893f08aa5509f808e6d0cf2b3bc46d3a9d3fb73633de694a0ec1d73dcd22e818b61558be653590663c3c66cf008ce3f74f0cdb241a9b54d59e426ec1a0436ed7e7fef471fc927432c09c8a65591531726723e0a46527cbd28527ca0bde9165860839dfa2e405b71728a8d96a1c3eaf516327895fd14476265777e828792a4b2f230638790afdc0312214448b1bac8000000000000000000000000000000050b111d222e343c""")
|
|
),
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
846d5071be9f3c8a2a99cb9490b9aa8c794e568b4c2da75439df54fb42f618280fc24c2b6d37d4a841f700c29115645a056aacd102a508bf68446b00ca392f0da08bd805296edfb26d8b885fbeb00743923c30b75f74a6af4be86b02e83c7a5fac80ec7fff129e338d766a4c75f8d35a18819b860306c6d44ddf230cb26718e942308810322d90263120890504422a5890242004850b3648c9465090b06053a40d48c48483920009a23124c20921307262103201a4304c248d520231e24630da262dda382962446d21484d8132885aa8405c326001c74104004684a86da3c41141b60c82002894184011114d51983019234118b3001c356994282261a688d83450121608033705001506220746cb467262a46c12212410478ec130710106725a1640d3482ea3a289c9a40d5b340c484426c3980443b24444124092c290544251c924300c1705cc06849bb26914234dc90611948669934092814421c9c0019918861cc5618a802ca0922c5aa04463808822156409b69082c02cda2606428261e3426491c21113157221196ad2067091164adc3085c49091500440200611d404121a862d041672e1b4052101320129611b991064880c51c281531408d0c80c2344010c45511c126921c171db820040108a9c48620303299b060a01078e0820919b304cd1a2054ac2286240865900641417411a836943a46d00473114424092c88140044a13a951c0264801058c24b80d9246109294684928241ca3289a9209c4389259c6908a3652da089100390458c290d0129160846184a4856120021195891b941150a209d4140194402e94102153329108032c830022539004230386c816254ac04588b81094403299a2681a3672d04240a20285482864ca20100135520bc36410176c04c02d81985114100a03c370cc30041b421154b60903a4405116891aa0405b044a42a63099208c10074503962882868508273003a4110c4431cc846c132570611448a326621b206ecb4664420228a12290991646a282811b95319c122451b8319c46319842284c284cc0b0210c990991002da1a86958348d22168114318a1c8691a4240a24256a50089104284ad236019008045348800cb58c51166618c689a2226419094a1a4385c3c44dc3b82813130a04c7290ac74124894194c86943b86808a30c4ca4299b243211b9880c9228804449099431c2a840189630d8368d54a64c21498c04b82c03174acc063243466899320a51866043284c00461124246662a48dda044c132985a1264e18b044182188834009c4a8500321469012910848444a1669400845c4306d81222c19283110a6059a9069d0a88de1340cdcb664020146ca2286e132911b1702cb167222a650809601143531a1a600d2242801845198368501062e0b0105e3008822b7850235414434891b333022374a800885c8142554368a9020055a442682c244c8241100262e0114648a064ecb8811d38205a008401c348d94a06900386022424c1240020ca8699440821a140083326ac0284622c3501bb740a100505b9069e2040409924d19436a43165224174d9bc0904802055aa20489b42d9308911248298210500a432d13326a9b341224246e828604022862143184d4b281502689dcc8009b02700bc344a4840120436583b23108134a1021680037255b207013a20882324823414ce04240598481e4346902198da4440c60b0515b2431d82825634808829268d0044c638631cb4630244021421260848288d200024aa0218c242a0a022d82026c9a144c9396914ca88823143222a5655a920c4a24319b324c19c60023a341ca96611c112920408e54066c21260521918902160d4996510ac590a0328d9210259b94441ba69009884509156dc100509938091b33501c460c1c909152304424c440ca8205023426a3284802394e62000a8c04900c021220046ce1004418a06418a951a10645132546c03461c48431118524da166913934409474d81c04c49a660c8066d9214701a0291e1221283022e22b389ca022801a0019bc8450b446d13486609c28c192090100128e1b84c1129820404444234310c4428a04609420649d4c48dc914221c264e54164e641230611292e496094bb8840b098cc80808a21630809490a3104e22350044103040146809a9852317225a480c22120ca112645b1630128440543066193006210926e6c23cad48453c6e03f5c98d6c20db81181b02581e8410ab820fe98d518d35181824493ec940daad34d09bb90374b3763a57cb813ba4caa9b3696d793f6515dcaa31a1f58fb85c931c8ded334a20950bc9a82b3a6df9052970c09033ca0b5c3fb95410b28fcceddd5cc4ddaf0f313c5db025077856a4bb9d04b3459171c68b1e3f7a233ead36f40f1f20c8d8f4c478a5c73e26aac5e9aeb0aba57147031df73106b05ae4159a5e9ff514620a7919f360c3c94e4965e48d350f4492675d6c86bd5eec098895f657c036182f8e3ab3dd467a23fa4a5d6aa775319f86d38945a415bbd2ae6166fd619e5461560af8241c585beb7f15564d0503adaf4ad6b6242f698768b70f306d66487959ec26c3eb7d2bf074533ba3f99ea291b51d72fa15302c74c03c2ef2d58cd241bafcfdc081398bf85c6f9754f699d602bdcbd789d415631cbced0b54c35d19f79a71410c828d3840de9131b607000f1516420caf078dc85fcfd087c8047235c878440a07668996c149a5980974bbbf4dc32f82139900c5246e002d5a211c63e5c3d873dcc966bcbb48ca6bcfc8d8f54e3a7055f5efb3cd8af0b46b3dd5dc26d5b70d249e0073647f3ae84d835675e871c5222f317b5c243e3fce32017ca9a03891acd4c986898e174f80a9436be2d4b0a99ba4511f8ee21dbdf44689d085846f8d8c2ee48faf14d8cfe6cd7ceb6fa1bd61721492f1ba5ad52dec7b49dc9a23d939152e4042a0096c5556174da9a589a226b6f5dfe5448b73555b2110cdb09cca3edea2c7afb6f38c6432ad7c6a0405a41bb570f0570e5a056820b5dc16e80ff419ad7160b98a386a7427dbd4b1e26ad0839f542c5e71534b6c5285fa5f4b12f75ea94b9272eea21e163bea4c0651fd59b0c54262f70ee81303e3b3df93a8bfd1243f1a1b692110de4a5e2cc5e75dc201c491d8a1336f1e21edd5b9d20a59fbb89cd6d4715a04a0b923155ad110771c0ce326fa4c9e3d2e62e3baf9ddea1d3f0c2d0432b8073611058ca545dd387267bd3fae1ab362ecbb952625a9cb2038c7feb192aea08c6a92d141f06e888206330bfdfdb552ac5ebc6c2fb7ad2619fd1f149a93cad33615958e064f0eb89353b82cd26e4a34c518983e882f171d91aa75c62a6b4b318d732b063e8ab3862c97e40ffe20571f065901bea3e2d9e89c08e22a000b76b788cf5442add8495b63545d939a18de4e1b49821ead033c7479602b0c2388e3434209b00db520a7b16f22af9d3e5508d6d848aacf6b3055f82384e637a0981b4fdb68a61d1a845154a65c4287cf8da9159a2650bba6ebc853e2b6b32df16d1588d8f5b48732c6154efc55295cd8a5b765e35f88a9b4025156963aa7ff2e414af1305af3ab9aa9723881005ecb1188f36d21d2f7074c74f17c4c37eeb959a602362443c62e40d628a5c47682a4ca3346ad90a8499dd28d7d10f72872b7e0b73eb3041fc2de354bd3fcf962f0589a2859c8ff71b0146af27bb66d3757a6dc26ba7c5bb7eca491bee443c8d48d6df9f24d40e81fe168b545a34dc298271920fc97546f6f304c505fe43d6c8e75487c04640474e3943e34945f30f7ed533855c716c5ecfe6481167e50114b784ac3860fd606ae4e7fcf4b01f11f7b48523c81071e7c9c234a4eec5c329d83d38e82deb37f1f18dc7cab2241507795674f830e00681ed9cfb2765a6e81193be5a8cd5b832765eb814539f8522fd9b4802e26049aad26ec3c5feaf9203e65d5c4f544b8f214cc5831180fbc2c096499edc37ff51c44b3dbd826777596ef0da35bcb38daf077e2fb717910e5b68ca8a7c5e70c400c107a972ab3cd13694c5c21f7ff2e4293e5cd8278e37806a19c053947df531d843aae717dd2f5f7268e9b642900324993cccec5fea04db7778cfa203e6e9781daf9f53582f80c8ccfd5f0d32bb627a12585c98b57ecafaf7f00217dc99bc9a0148009e0fdcf9c2cacba1c1a7d3aaad3f6dc969f7363ebcba222fb3def7ab17d3a28dd4a16235e64bfd4843956faf04732c4b226f25fd831865b3f17cb1aea0fd409feac59ad100a37020d91f7176c8b6e11c3957c6b8835c4c0ef25280d321c8621e72100248bde7bb9c1b8d1eab666414aaf9a19ad34f97fb68e68f3b0e58d29cc01ab09b8b73ef51813427ae84662bbd753d6864f0902f02b1f2f52abcbc0d580d971d13feb60b949befc22889aaf7223b09b22883884ed491b527a6dd7c420d8990bff759ad5ba9dff47631abcda7396c75e3f420a295ce38a1d3109c85571a69fa5ef7488f21fcb02cc20765e09a9cc2928925affcfb997111da0fec5d5e3f540822afe153b1c55687f7b6463e690ef816160707effdf743de401494504d28c8706fa70aab284e235e6b576f84c9f8ef70f0cdcc1a21f091871f146c6dcbef0f90baed20096c1d94ebdd6ad568fb97fe122df75b80fc3180b76c25e9852e94ae7394cdec927ac17011d43959d0dd0c5cf4c8d3b7a69f2bd311ddd7cfa202d39524b087b10a7e6c970f3698c21c0a18d639a56ade76f22e192f3ba2a50e415df716a3436f82de8318ab7d82f3ed86e3e9138a53b82da653f768183d653352436df927ac92a5e21adfc3647d6a3ed7ba9e238f52b5510b31f61591d89b2cf468c9d1594589ad2e7922424fea97b04b012153bdaae7f0e5ac84f2277a822a0e509d0e5f05eee5b5454b76288537c348003a9ae12bf01a4d747bad04b3f25cc776edce8e0d96ce9cb6082d7ae639ccfae14872d76710a9559f478e876bf0c3e1081bc64881287441eb3b79eb2354cc8703802267d5fe37c68e9410fcef8072a73ab8b9fc2e8c088a1de7c6534a38d7ba422fe79966b4bf222d9387d01e83856a02b6d0a985b0c496941e78a9e6f49e27590105ec1390a0eacd09eb3c8b828dec970c9a060c7031693dfb8a3fc3b44756d780f3399b806a8b0a5802f553b6085916fe619490a8158dd8b0b4d02af33d9d831915b5245d41c0474c4113a053860c75e8b36d9f84d5e5341d8361efafa2b0acc8976d74a568443f70a87d00ff488437f5f76d15d3bda26ee3d271a5178e0baa0f2ccd2927fea5e351aad15f71da838d210bcbec73f70f084887f4e013af4bd0cfd44d775b0f02421dba1356e6c83bc88f1c917c5f4dcb8f637ae36e425062a0f7b5b4a31c5a16a366c8fbe1da0a2e5b6d83379db1e8d1cebd9749bbff7d66806c0982878bd9b54b29ff158d4a1f36f515f27322f9ac4119b88d723cd37a66901e4f45a64cf3272169f8dba8a57f83d1ab0762d3b7e679432572dbba5946f9014a803f8dc823781a72334933a10d59cdde09e1248ffdd493dde94f9b07e933ebc6732c0a84ce233127ffbd4e6d136adbcb45ee02beaa6c0952d364ee33a4a0724db751f99719d1d52195d78e363aaead6e2addd8b04c174c3aa5ebba2a2ea395a314d6b85be9f391e4d13c586ffc63f9f4532c003de1b6fd07a549cc3b72220ca39ca73fc447d0fba82c42948b42cef9e88762fa5d5f00d7c3f41789640f1a70f57a9f8313e0085af505272098630b0e6d7ffd601d887e48220f323acd9b6f6c71d49ae9d7d325424f94a7f537e775b8c6b3957a1feeeaa2c4977477b12752b21a219504f9c7cd030ea7475422c810049a9eaf9e2e838881d67aa8491f41334640f941ee966f370d0245b7d7c90b15107c9a2ca9b5cc4df050f57ad3b9ecc10f41b501f6041c52c1b2d82b65ed49f4cf69df483e62ecdb8d33c14d9736ab11e560b443a5704bb023a71a814bf3711562362af9b89babc229181ff804e5d0d0315b198939377574aff8054ad079e4ffc18d77c4b93071842a2907b0dd8f6d7c3910403b34848bb030b16e6e57ac801f2cddd7202cc99192f810dbd41428847a93b18c2a5cb72f1207a2caf341e9e175162575f3649cc2f64f7d86367b87177c7317f86af8d14eb411272feec8693cb1745c94a1850d726525b563b2625430e9545e6ebc5df8a7bc44c5d11ec4e7c8af86e12e0dbf9a6dfb23efa2f74f612cddf04d3e696fb0e15b606694bb5412472cc2f29cc9c2ad22f48d6c3f270fb94116278f6f6f37525752f942f71060d41622970dae6b7f2b355f619c509b62a17f61007495e1e33053fe776a3022b34710ad48e81eb1a7aee5c8acbcb9e97c9fc1469973fe5a0a5b119fdd39658a56e8397f358898c41e44638362829f5106557ab81b0504f9751a2d3dcf2da9a88869fc04278cdbd68e6e5c0c8135ffaa114f16c68245ecaa9a1a105fb5c9630579016b975fbde1d6a0567224da9c32b3e1b42f2bfbe4828d1c3c2bbcb3eaea5fbf19ea55d86a58948150bc0a8c126487adae8906432369d93412481501bf32b423d5db70cb3413b52bc5a586faf82622d5331d1e1138045849bc8e1eb9fd02d3e713bb9f7e2a2a25c5cbecaf7b2463b9f42d33d52e17521364178c046741a408265ff0c95a2a1a61fef9667b17225c90169e991a101eb71e428bbfe730a8b3fd83370e7436dac68a81e5c4c42e8474fde53fd98db57ef79bdd13721b6c7b4e8ff982729c14b04a653808ce18077bdf210bbfbb7fd07fc39b8919500da55c0ba13c21725c7edc69c3f4abcf07b047f63397f3afab2b1c4d5918bb6328c3b522eb19a83af43fdacee087955b734c45266eed1cdb112ff8612db42a2da0ccf3abb22f198fd38f234ace12e80c0dc3edcf3d98323d0cef04e91987c"""),
|
|
TestUtils.hexDecode("""
|
|
B5CD00AE06396DEB95C9BE213BEA279AF0D10F1423B5A71854413E99F7216D9EAE76C8AB884545496559B14AC9A69801EE3FD2EEECCC557D7988F34B82D244461388C7D4EB16DAC3C0FCE0783321A1488DC16C3C688126754BB4C26308054545D2E46C6BEE26C25A7C3B701341A0323BEBFC50C718162B7FF3B6FAAE7156FE300F2219655D8D44DE89845393011A2B466233B907355467EC49C9F832044BDFCFCF722D6DE7946FA503861C80037549ECE8FFF95026CDA33C9000FACC334765A60456084A0614455C83E0D5D991F7ED43952B7A69F1E326D7BD33822CF1F286D85FAE78F0B8DE186368EB334CA56070122DEBBEB920C5547C46C1291E78AE48B72C7A39020A1A2E54E59A2E46606C99E652FADB39AAB25399B0830AE733FDFD973294B93F47C30D0824686C735E05FF51A95C1C76467A4BE6BA80C5182353BD510E8D4B60BD43436F7021B3F5980D1A769B2E3BF04E0C257EF577828B327E2AD85E0581787B9B7FE44D6B826BF8405D3D0BF8974D2B1C569006C7FC3D2891DAF38DAC36F64A256E337B660CA59D2B45F1B4AA1C0C72B78495FBCC9EE9CFFA4B5A101F973E3211E728040904B0B2515DA4B1CB3774EBEA1324EB6907324E733C7F17BEF6FAD0F6BCEC1F08F785DC6FFE02FFED5C0B7A631907196835EFFD0730FC8FE020B0545C920DD7B2D705F22D8D205804397F6FCC60386F4A576204949EF60DEAB269905707396CCCD8DA9B895270CB39839BFD3EE64149B0085B96FEDAAF8C738E449E585ADBA037BD560EAAE978A6ED61DF432B6A9C2E50C2EA33A8702A23E6848401F85E2C18C7C767DB15920C9B3B030728FD9511F8903DFC8572A3679F986CA1B684B3AAF489DCD93C622C6C4D475DD60F10C390873B09B5A352B6F5A104C90782E053F8121317EB8D1D4C0145E04E3B68446B69A0EF81097CC6BD0B756AF78963724D9C83C61B7B79647F0844867B605E2B60988D2D7AD07CD6BE2D8F904F0D269187C141AC67C9DCF9961BBFFDDF3BF34D9CC5781D1BEA348F49EA8FF7750F7F3E0624C16FAEFAF1D8B6A818AF5FC5C04E2504A0CF4C2DB54930EFA759A292A2AECA1EC3A08918513D95C44BD133657FF043318A17BE4A5DCAC54B87FF38869D017A4B14DEB60480AF1C5F19A9F87B94B8EFE0DF3F931CFADFFD7AA50AC86D9CAF6D434CC81E6ED123711E34B8295A446B554F6DD5350B44C614324D8727F1CE501743043DE6EA085DB5154AD8E30E114A02CDFC96BEB4F2718033B227CB8638BCF617C73BA4473851E62C8A287CC4F9C659190E60AEC468DE7EA8841E3CEF893F3DC79DDDD56B63102EAA5B2793711A0451EE1655C6768393F59CA6085866FB41541D9997C94BB56F6ED5D731585E7B25B1DC853830DE5DD75F66298BDBD2E505DCB3850F96CCE0D7274633234EE2FA1E2782DA3D6CD8F5DA2C3063A923DCB6A2F82614527CA2A88C1AF21025B88A08C3104C679175DE2CF00602B13E58FAC9376BECAE56A60A6A8F144F1C98C8FBDCDE6FBCA4ED13228FA77CBA5CE631BCDB368AD9219568777FB4397BB40485A9AB63E9E3FB343154108D8117CE25BEA30BC854A241745FC6C26AF0D64124AF10BE4BE01B8A3D842FD9CC4D805B2BE26F8B7BA0631443F48C7F74207F640B215E0DDC42B1954A1EAB2C68E63601DE3AE3EA54E16282BDED00FC7665A9E8B098BF034F5E950ECDC46CDD22210244F102E41E0930FDCB24AD6C72507E5AB6FCCD4D6B2A2703C358EC1B51AC87302A5F507BD01CA6B5FE04EA2A5322EDFAE8161965524C61956CD201C4BF2F01B54F008F5F4B6770D0622099CDBF94D6C41DAB4A5362D630B9BF9CE240ED08D698D1AABF29E60BA533697C3C830521314F13EECD95C7D2600E2A756AF19AD94D9EA39FEEF0E3EAB3EB401225C2E55B2F2A8D7D1A3AA77A38BF9BA31399F6E6458F3F21DE354BBECC2E29740FFF91FBB23E0F61D7E0698CBF82D439AFB018DC5F5011B7BE98993E8B655D83C666FC0CF84A532C7655365746FDB97874D62329B1EFDB0B0C8A46056A85B60E38AF8979FA4910D2D9CACC3B5C1E42049D04C44273953350E0F756081D2DF6429193768802577C381897BFE540BC036293643360C848A1AE388CD17781296A99AF0CF75F81D568D0648C8A15436BDCB16FD83287C6A54F88F2F75E6B28E1C5A3AC03501D6D723AC5EBF90517D194A596F7F95947CC169CFF2A65D2BC9B54CA6AA45BA9E901D4AAC81FFE9E62A479EEC5B3F9BFF24C69FF56EC52F1183B5AC48A5BAA90BF595990B6EBA5B1CB6D88511C7D0D165FDF2615351B0343918B966ED1CA0CEBF6956BD2CA599E18619E1A5930E47CAEA92B8E9647A0262A2B24E955040750E6C7B935982CB742EE756DB65B462F677AE09A7521B0D3A42C2E97890C47148618FA6089975F5D491F4D3F69EBCD54C2B53130698A1F4A47505194F675D68F2DDF5983B008E498AB4A25956CF724F5C1250D5F9C75F3DF9BAA696E300AA86FB4B9378EE18E79D015CDA55D6ABBF5B0BE819F9EE58B49656D3B112AD8FA6651A8905061A8E37760C3F2EBE6DA611BADD44268975B5000051BDF7158EE3DC200B47FBF8568C9F22719FBEFE5906444DE9300689BFA1AD167"""),
|
|
TestUtils.hexDecode("""
|
|
fca242816e6b98578837b5592bcd66732c06ac3794932640ca3b71112407c8a4c0989723966ef76b5409a893b8c2981d6b72a1f5cd92d81c12b9cccfc75547f44c27a56431f324a4f73ce4f91da398fdbe6a97ce171f4483fd0c1cbab53fb80c41963798eb10dc422ea82719a0770ba82e1491512bc40d726b83b3cc1887b5648204b00e8231a654b4a796d7c1c0304e93579ae6ba4f0945afcc0812b86cb8872842ee8782ede142087a46dccc78275aa2e52f2e9344a81c4a0ee65d4a9b8ce1ad020ef6fd1e6cbdf8d5e56b1751e67be662b90fba01a983df891eb2eef4886a1da0b6bc0cedc4b44f33df8ad946b68e5389104b46e213690ebad5b50fef7dbf2aa6f51b125657e779d9718244aaeaa55ad0bbacdb76dc66973e331be8aa3e6a13dad7d227121e5fd1edffdaadc6bb667e40d49c1d95c6db663b4cf374a3b93e5f270139c28e98fee799a3ea015ceaafb881807058b199dcf0b447f46d263bd43d02cf232ad1c27c3ca8e0cfc1c07541aece1980c9240e77b9f134694be94bbf05eb6710797a2ea2436cd6c10b18a260bdef24530eafc2618d17f86922e91c9fefe7528de98bcfca9194e53affc13da5787124dfdaa0e95f3924fcf6fdbca78a61aed2b5125c6b94733eab6a215856185ab31106fb293d996c9a8e80f9bd1bb2287a88df24f7f127c371d5c8503622b3986206acd99395bed7633e5f73a918a45362d58c921362053a0d2133a1989516cbb8bc29dd2fdae2dbb94669a122e81ddeec46fd04ba600d149cd728285f2836a3023521ab1362736a8d33635a6fceaf6f9684af304a557225e4a80ca403583b637c4db7e9185df6bb77dbb3b09ff915400bca75a645a8ebe36b99948369cad683c56f0030f4f8b8f6610d20c7662f538c855bd1d08b719df8b34873c4dfed8046372063ef58800ee7abd99ba66b60098e0004395c2646ffb158411526dede3d9c9e1b481a2dc5298f27538c6ed535fd0e7374ebf2ebf214eb14bc3c674f61c1baddef4435344ddbb08d6fc8240ff5e41b817e9795670f399965cee0d8a4540b795580ceeea3a31c61c81e3613331f21b496e8dc833ff7494f50e81f0366718622602759d598f1831042a5779ffa9ada2a00c79b0419ecb05d3ceed113160653bb7db0d06a40fd272afcf7f20fa18dcef490387b84dff70e761dd1bbec5e1b25eb30fe2c4d18135b3c5f315da29a98855f81f9b1e01450557ce6fde5b2471dfc90da07207a6f6d181cd71e33af713c0dc353f7166bd6aa7b90f82eba2c03423144fd12883e80538de76f02a0e12cc65051b981eff9d25a36ff79b4c6c84ea537075886e9be23f700570e43e76e8d61f54b49a576a99a57b464f2be6dc8c993c78a1330ff3580138964a6cc2cd46006ee1a72a268ababe373646674dfb4bf33126fbb8f5dd24f4c79596c783fc88b393a75355ccaaaf698a45d678b01f175bb31bf7d28bd44a766a60dd8d2510f55bed7fed53f6718578fde622c49d17fa64926be1a084dbdff206c025ff726ddd2adeea11a021680f3e75b865bc364dd7d752d3b62b7b240838c5645f5338326897e751e968fca1b99c0baec1c9fb227d6f1fe61abddbe26613e5abdf6bac54d658b22cbf8cd498114019f712027aac6e7b1fab7016aa96ff61bde12a44d540e33c30bcec417f11fec1a0536f61eeba565d4faf3b624eb1205143e3b6e6d22b8a0ab3767739206a89eab990bef3f3d763a816cba5aba2b2d8390235a197362382c2487d80f9f47f0714206b1aa9f40840098c6f94d920fe21950274f7ca9d22a506a76a328cb28a50ba569909897b15ac2964a111ce48ffe137d86c5aac313050e25f43b9c041c93dac0293a8694f76845a7a83b8e14db7fb2a724df1f4e64a772e6c3078e465565e1eacd56c0c4f13a3a90b53bcaa0451b44ee94be4d6d23707057b4eaa6879203ba81ea953090eb450408eb6a9dab8c5bca27c87cc302f286e703be7022044e0ac4559d4e861f4e31f8915831cc9b81dbe937c8b0abc02b61c57debcfd0f5f8ab3d7bf0b05a5eb7fb0bb587de8c2bdc41299e744db3c6f92aaae2008a14f965023f17ea55fb0a5ec6c884c478cb3a95722844dd823be55f15a363354634a1b3171e349ad6c69f1342bb3dcbf0cb44efaa6d06932e064311057a97fccbb1430aff5509d0f34aa57a7cebcd5eb5e9fd373960065c79f52a414d16ce959c97c1fe0101e4bea038dc6b27ee847335073f62a91d1d74ebcdab4965e1cc501c07cf4a6050c406028f6250d24796fd4736144ff84616a63a2136fe4b8ac9652d95965659d55b67355f5de40f6f11e08fbfbc2ef005b3937204345e03c07e67803a8c378368a7cea377f53318bb140e0760bf79fae16f4132bbc88d8af335c07496fdff21e36ca375889ed56faf2622377126d399fd76ef9b2746e1ab666461a949c06727d1ed191e197418ab7574bfe292b92ca61e7972e4d0fbc6001dfc5438f95b54c9f226bda6968fe5e5df06e915fbb58c6123799f6c8624a40b18542c18cf82b89b606ba532584b1542f0b0684be46457fd6f295f0a3e79ab8634b8fd747d5bb87ac0b33902804f691c16874f881a3acc4b1f88183dfc3defe276968bf7f7ed53e59e2e5fc0db0f13dbc772286f6d83cbd47617bd067035c93259ba9daad2f229835f7c9ce8759109bd1db0e71b9d015c55ea94325cae586fb1b50f4792bc4c57569c83c26ba4cd7a809e799b5a45961ffa5387f91d9d653fe2cef5783312e12fb695a1b9d2004bf5d73819dfb406a7d3243613356b851370fa34bc32aec270984c77cb373cbf6c65d1774ef95539d4b4142d50f3cdfc9695e96cd1a0a3844ff8507ece66c2ea7bf27bdf020ea8fa95c6a7cd0dcf37a591f2cdf7a6d7a04de5a89583a094a53f68636bb57fc83968ceb47a53d37aa7099c76633e23b5eb1b828d2efa427fde9cfa24df7518886af10ed7734aa278bec197a60dd8279df60fd5012852167e9038ffd1388f6753af0b75800aec92ccdc0feb08684c28d51ad1ba8a14b33eb0a13ed08020f8416c9817a63dae74a2ad51bd9c9db0c187ba1df3deda995727ee0e8d78c9a3d70d2bbaf759fbde9226646a412500865e2391189e46a671f7a9b2281509c412e5ae2cd89ef17a42414fdaa90d12e39b07ed4744217e4a461a48aab8e427eb7cd1d07cae97886ca0f4b8d2c88c397c96436b0540aad3e6962c78914b3ad092b1a46cd1aea2cadf236c9d0d1e7669bb3035bf8354ccfe5ca70e7e6e6acea47396800a8407017d64c4199cf13155bdf44b06e01b92628836712d34e2ce4c8d635cdf1c3ce21b7a2ff1268c9ee9df0792b79d35e466242f25209bcda6f68f07d80db030e244c479c66cfe823220075e9c08c2f8406ef7a5600677f4a0673b0b5bac9d5e388dda323cf3e2d967cc0b3a705a456cd194c1833855af620952dfa2fd1f147d6a58ac35231377956e4b91ac100e3f9d8b966db4861ca45ccaccc6ea63b0d2d71d4367bfc0911e106ce7cd73f31887536754c880b54b5a6abcd3913c505c2145fbed44a23dd7b04280410cd648b59e7ae00b10099ce56a3d615f031f9091ff00c2248ce6cff217fac3158aef781b88603ce37e9aeb4efabafdd59f0a460859b1f1a1b4369043869a27cbde6a8914d1d3d88e440927af82083950eeb3bab126e9507c8baadc1fe98353f01022df09d8848142ccb7429a5b4a7669c1008d61ac50d6373b258f8afee8d830990853b9cd18b869544bff788f5cef93a9e3debae6afb138bce6ecdd9b071dffb5d629e0fc544bd909bb7bbeb3597d0a285e447eb49f7ddadb510dcad32807d3d0a571a731069e22aab4e730f50e295357813cd46ac3f34c4fe2d5029fc19a772f7e647cb18635fabe67f1588b18a7cd0ebcb6994cf4334316f6a538370887a0f009adf3348257fe9668b7d784ea64e8e9931fba22bf2f673b222196eb5df852ae2715b58cb9b737583c4b8c1003178093fc288736c246fa0357daa68e89150cf7876928b9525a264625991fc403b1b5edcf4f9a58a570925044c669a3f1960c06f35a21b826603086e7e889adae25db3eff02f990af85efb01e1bcfce2eb1520d2846c5de1ad3caa65c968dbcd8af5b925a13871f19524f1db6c914827c818d76b1e05df95ba322ed03061eab164cd501545d3b4ad2c4f9b5d7abe1dfd3d92a422a114ef56a4b2b47d31f5df38fa7e3853ba5b1c1e9e955dd4a294119c3c314fbe4ae14362a6522e34b7fd467d22aef1a31bc8bfda12025701df52ebe6fcc52c1fcfb8ff94d62d2a7b0f1b8db243391320e7fdcc0ec40576caedd0f327c5a0a950ddb2994fc389fa77e54f569217f4139b91e545432cb7ed0d11e1d27e9c4536a9012509d9043557051c01911393c592f36a4f162f131af522f978e940774aebc0b672fe88c590ea572f39dd5c87828d3d9d16e78b9433e54da904418c5ab6e8db7851f4807d4c93c60503ceecd837bc068aad6813206e382e84b6e64510f64f1346b9fad25c37d77be5292f1fd9d5463c640baa331ccd636e7485b752db11ebdebefab0cd9d8b9ae11f724439525661fbce8341badfc03ec2375536876a954a0c553e274027f9f53582bfb7d20520e1b8ea9322fe0abc9179711768bb2e78554eaa5b0be9023e6acd94f5eaa7b74a98adafcfac88fb21d810feb9f38dbc0c8cc006618c771c31fc82aeffd693497bbbcdfba2028cbc73e49ce074f425ca33585c891bde72455606aaa252ed42e2edc7ad7aefbd9ede2a51217f2c6e1ac300f6868cb8d0fb6bb5ebcdab839d4f63255b7079ad483a6fb383c4f0acb7128c500da9fcf7ce9e28068f265d3e266dfeca0e808c0cf8e98de0f61fe495eb160888df53bd872bdd9a7b8c89ba1a5517ae69c2b49753dce1fa1c215d6c1efca5d241cab5229ca657d28a57d34aa16c6fbd829b0aabb4099e472b922387022885de324ca45a8eb9245ad53923beec04f245e4fc6147895e7e0fcd457a3786db95174d8480701e2d659a2131d89ac98c627357851bf57dace645a1d00b3636c45374a5c2229b002a0ad8c9aa148fb6521fe35dc4ed09e3e0d5cc6bcda45925ef6f5df442f1ec4da7583f63bb2381fce6a7a9da4fb79d0ccaf2a4bdceb6cfe584a33b9cdfd6c9f3c4a8b71d4b3da17f174d6fb3b8c48a6a6f6cb78289f3f217bb377d7d210845e09ba7543fae4de9d397bc76b3a46bd7aa47a93a891775898cf4e865c5587746b353ddf1edbd0b6384512e558a9f346ceb265cc3c4d7d37ff83e6f60899f3768c495f49919ae6e80aeba85c4cd34b7d90d311f03a1f4356188df30d402031b916530e0e9da31b17ce87537f0b0b8d918fdabe536ae6bb6b903173f834921f5c998b39dc5cbb74a7ef677d72aa4cbe88a8823a8a0efc7de88713ea127c7e8fd10bfeff3e19334c7fecef45876f89a6800de74276920fcb6c248263b850b5c7a945e1a3a5129e774309c606f6585d037c15e5f824dab8fb74a9cfd49b659c98fb1c66c2484761cbed75343db437eab18ed7b56e5a3c0cc150ea98447c3b5c08c9f9d1801bd6b6ba15fc3be608aacb92c4abe8f3f506e75714b6876f5b2ec036a1456627e567c6e488cb6ace2cf54e42ddd41b6810bc93f83270b40fdbb79be84ce8e60cf527a1d04f89f22c4b936353015a8e05c23799cfbfc7fa58405c07ced8fc16d50004e364a6db3d3d11afec9f6f6037bb7061ae0b0f4f4ba3157728d24f819a3d12e237421a22c0efd8ae99651437bfa486c033e833e360935dd433a1d5aeafef73c71b5326b65d6df9994f988d00a03898d2354f58e3308b3c73b149c8a2b0165309d64ffe190a4bbf89a8633f30d674d73b1910811951b25aef8313e510cebc2f8e4a5c4286e2dd4db0dcb40b1745358f511c29645a0cae474954fbd907345b30203a32ed6848f10b5489f58914397046796e143bd412a2ea5feaa811e0a7ac8a756ce752d75eab8b6606d8d3da0900d621fb42b90e94e3aad05e0c42f9daed64af510f4846a4f66b1782d9d76dce9ac84fa2912808851c9bd23656465a64c5fa582e7bd1fed8c38e7200b601d0504f2578497be90818e69d1dae9a86fb5c2772e891d699f002bb4d579d3023df87651ec9dbb06ee3bd4a9ced0451a1c5e0a658712d704a92c2bf21527417278c8c105671e68b06aa838ead92c6a8566ee5912a18b995e9d1b6f9978fb6e378eb0924143da6fa15198686b8f5620b607e25e0540827f3454ca9dd085adc6e2c10763a20d6c70c5bfe0bb1d1b773bd267ce33a2b9c08a04a254d9c844475cc013c4276f947ceacad1c31976898d198c91e5ebf2623ba825e762665caedf1674775d15310972ddded3c75178dc3fb715d75ed071a292040223fcddf82a3e29af547a18633434534b15bc10334bd1c8504e210b104100c3a4e596573b2c8f11c304eb88ebebfcad0df1b2f5361676f899eddf0233b5d6f80828410172c36397f9495aff2001f4667a209394a585f607bb8e0000000000000000000000000000000090d131d242e333c""")
|
|
),
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
a163f0cce9b86d8807e6ed09b486e1aa12807f2370f2cb6d886eb2ba3978ee8462f903c8c43e7c35ab95413dc49c9cf6598e255ac8a4226e38764e3ef4cd04fd408ef017e7b8d3f418422c71e12a228cf65ecff31d2ac2334c9848425f63c9594b6644a26861997faf2b82aaef2a804d3c9114b4c64db479c8041cdee8c8fe1d63164c081221923408db142684084183062212076148c2906082898a1410d0b62d61104180488da3800501004080c648d9844d63466d0999111c440493448ec82482523068901862222686a2368a1c424840800459b82d9b448dc8a68004c12092a88c4a3869c202715c324d2415646404109208050cb26cc11062011689dbc4459ac0901ba8494328080a10619a462654026910432e4c8660d2300543c6459b127123490419285084882104b74523279114b9098120305a8484e22464994262c8c00de2a28564c4680b0251501691a0224054402c12a689248321c216610ab95013b285da306922482c19c90d10c6918a46818a260000986809c10014b9710cb368c812081a285019808410102050328d8092081132520b033211a32918156e042629a0a011cb124a1922801a042419154591384424230411346288a66de4141150328c09c6205bb2290446089a945143042e1bc18ddc828d48c04512039253986820182a82102243464589a444123402213162a03264a4b2718aa40181900dd1869014930010c865140570103544d2a44983462123b605d1440e0b36281816329c2850a3084221a56d1b148249908c8c0889cb444213310e0ca16da18890800202d31404c926501a14429a0671cb4685501488d30412090865c2c6440b3622dc022648305281986dc8a4880b286a50348a0ab7451ac969201726122588101384102061a0120521a1880b410082048a5c042e233984db224ae3060c20877012a0210042718c888d889449890620614064e148480495811a2132492801a1402c09b03102811192122491c22950188813174a11a06122a601042492883668d1024204236482246a0b07869440051b3862d88090500209a4243281b440a2420940b291883232c29805c93086a028694a40204a008540362dca44450a207224c58cc4204cd18240d1a6609934220c35820a2405128251db220903438ce4122a02912c14186d62184c82069241062a43388500b48899168624a784241349882870d4181143c6258aa284e2366a024261c8c26088b66d5a844d931246c84449a326108c484c219928e4b84540b04d9b020919908102142d424040c2848d0cc41192b84dc94824c30846430664d9342e203849cc2050c0202d08940d5c369263b02009b551828440642665542264c20411631401c2422611974959340c9cc4704a246619066510113249284ce4c884048945c42021d9b660d21069c9a64c5aa62c5ac0840c346e18104500289124822821442c91486ddc34649c9610d902440b142149444c12c10c881408c9244a1c034d53062112166024185063c288d382054b004188a6680b176ad9382823100d93186a49082ccac028234328d91262e2400583460dc43071a33620108421d2c891a4466c0986049b1280180511e48031c400320b9849141688818400c3c62c1b462641080901050003428090882d9086642016411820699b2225cbb2504b028084882c639605db2028188540013282e046608b2291219605409884a1880419086110055110264e00308d20a74d0c884c033080030825a2087208284d18324a1a96850c80710447484ca86994406da3843189228101405143226d9aa84c02b364c9986418062921320d204861d2987023138c43a8244b82908246205396910a380ed0a02411996822b7718b368d0a806902c67144a02912350282b4040a91314b2404182228199640a2426e904809020160083041092352643621d1064504b70114b04d4b424902086ad0b4305a00311b438458b80552142e1c2301229684989625501602e0242e014162149440633829a4b64c01354aa4106a0413111b854050969101132214b88520810d21856913202c8494010a3812482842c3142684162581927151c8051a9008d8442c01186e13034423b73050843091344d5bc65122a700820222112720141404c31864c3180483962c222132dc848c04a76819164c41228a4316518b840000b0705b424920b5815036108286941d2c20b22a5d79c004deb5dc374c0bdb539556c4b634d40da50855be06d8d36b11059aa84db6ae3f4d1c2167d07081a11a7f53a15c35494cf79319c17d6d9299cd94bdf976b0c944cfcce53d853bf421e2384c1b613d49da392012b100c05a190450877f0721f5cf930a81736eaa2098ffaba84c274b2a3e8abb8b5091342963674d95c46911db81fed0db546c97252415bc8e4d180749bec73dbc34f819dec3544b0b64e44070c225a6171342a7f3d9c35c4a2cf01f6f4a46fbdcaae316e9b946093058b7217f5da366c6ee69db19168bcb2f485370e0e80ad094d81c2061bda7362473c99e26dd4b7213c58e8a66bf6378aef003d90e0f74999fe0ed315f61318e2f09cfa31c3b77962cd3a98e65c1a39d703849d719ce1085c99e0df37d215227da4c2987d63cbe5cab98b1bffe0c6f0c6402fd44b27586ca19a4cc594fd9f3faa1e0aa8fec1b790cf8ed6cca095c457ebd57d0a89071b8371b7a6f65ed35f6e90b51731c09c5ee8760fce61b81cb37e7f82fb8ea45682d065aa6fbd17eb7f119a8bc3342cef4b9afcd225437b8bd9110dfa7a5ceeda7657f651211c09cd314ea63f3c8ef8624429fc4caeb94cde59ac6f63528d4990af5c4d6238aeba9b933aefc6911cbaa5c352fc2e0a31771b8479462ef3011865da42521da4f28b5cd3b564c52d5110382199f149af1d0968ef6d009ac528eded9b75f05e1c1fab84793cc5fb8eb734e8f25ca337676b8ecdaefc7f828a41a71691f701cdfd4b0c24d19b9a8a2ac7195af559e0b19a18e25a4f369e442a7104169473a7eece2b82cf061a45dd73b6857faa70d98739369e64ced1abbc600f63074b6270ea2025abd90844f4aaa226c92871a6e47a2ade36f700b5c56e1899f27076eb37406a39f4c5fcc8253e9777f84f847211f6a665fbfb7659fe160287342074b9de16542c1d1cea4fb6f2e8e53e7a097b384a4281e48dccf3a9c34ca5a18bcdd67f046b703b144ab3f95a18498da217fb0fbe38c429a04d92032dc5d1f70559198604a1ab55986d5736f36c9e6a5e0afc487bed3fea09d580ed55f3ae240f4c914ebecdd866e839401da3450547da22b3706a626570d2cb13fa68c7f248b635aa6a87b819b2c56f3ef34f2f8cb786e3d7a07d53cdc3396611961c289b52c4fb7b1b3802d0efcb20bffad9c11b3015a23f8145015b2905f83435e9570a123bc37e8298ea12f1e23c4ff4f4eb9f07bd3e1fb6b33233656ca4745086af7578cbe377e87eb8265e80b12eac8c142230d040a373f58d758626e3d7db31f40c81c974e82f806f81d320539d1c26c22dcef85e143cbc22f0ddec442464e1d5b68fcf18b32b8980ddad469fbaa75c9f57f51c7ec36f7f641a3dffa45477e28ac254b414030e8efb55984d94d747cbd8c6f5613e814449c5c41d1b816dde3fc0a8f298aaefd6c3f26eb1406d57d8b644461bcc7f108fcee5ecad8c0e554a5178d68bba842e1042648e76f5ba7e70d44acdf6c1ed0e993552ec8b83dd0885e3a747500eb5a23bd9577c418b2fd572becd5af7b6cff842b38936f8350db784b34e601f9a548be49bb79a700f858bc1b8f06bc50c288e81df024aa93337e0f0dc1316b23779a84a3443b47985c118792950b1161d4c498317b6a84b339462c3b01b504fe093063771171027c37c5501f78d01a291a3d4c3bfe2b8a4e375c5586b2d25650f54305bb00fb9e950c2f18fefa95ce61aa70eb9657ce6e003f679e274035a2c61c8f2e9f33cbaaa86f5aa619c35e3398babd960d4fcc0c8513deab5860be248bf171080187ed76a420417223544475c8941e9b040baa988e1a9a327130eb281d1a7c06bb9eb5de26b166a3eaae1c226dcf781cc86c717ef334d74ec79de525bd97eb9f9558c652b758c38b4fcaf1ba0c3d15f9d3da495dedae25b8e9e059ae4c347238b9ba355ad4fd5bae85b85cd47d0a67e13f986700b1e5ca919350364a2d8c72f97be3b0493d02a0266c1fe806d520da5753585abb0f3d39ef5d464042d39119de9a7f3ffef132611e47b69e6c1250b8214a40c8b701e2bd5bde16651b550ef0e75a13598a47d2a33be3ead32394d88c3d799785fc70dfbea2dc42e5e77534250410558d3a8f5592164e78accfabe2e040967c21d3d8d30490133d4a9d3981df7c0777f49fa8671e449ce5dc445c2def7d7c2704067d28e5d85b5d39ddfcdbe6abfa4b19e7f7582863b2e636b0c9451dceb0b959ed38c8f85571e567278cb872abf78ce645769308b2df27d13533912c969757a1e540f90dd3f6c9a5e768cbf2dcb6ae6eeb4d7fc0a82e8db38f4b8283f0649fd00d1891b28c79f0df11d749bebb6fa0b1c084286a2c74add86d82b1513237e134dc1b44b2a12323d84a11799dd980c87e18a54f223c476527345b55b8fab4485fb5522a98ef8c8f3e5339670e836c8d54631f741fc4b3d4cc30d646a4983c45d5b3bfa09bbc87e5b3c22a0332886ebeba1453b4c002b1b8be06a8be16be13b440eae017cb90a61bab9e3d3dfcdf5a0836e47669832d827b88881c99c1b1ecf8085344522a4fdb5ca7c3393e7df89ac3c89f3b9757cd476fe15af14341c2bccf47014cfcdc42a5b72222f466ca2b324a7c3b2c9ce0c1abe933ee39159e3f4b502ebde7c1dbded5077cbd69f66e3d23d358e0b207150526f42ff0862058d928ca604db982f4e41092bed105f7d288617d55bae32e96c44f50c9955af0247eb3844269f95834e28d4e0a37ef5b03b79455c0ae660e32941ac675cc8d7e2e036353cf615b45be3fd0029121f72c68280f5353d1286bf10cc0cd378db30e7f8c0bd0fbde1cfdee548ec7faa55251f07d8551432cf572569836baeca30db5bd194be89160f449857799ae7e765a99bb8e468127f65c7e9a1f7de9cb961bec1026455f503ce5d199dd07a6012d74efd44403fcfb246eee1fc6f2945867f37507feff0b641eba4e94c532a4bce063503add362874523d88cf1502ec6b1f7b64fd267e754018152275f3465acdac0c94ce28ee844d93dca47686675deaa3e0492870d3c7e2c5271f843a7c29b952d0536ca961ee0d69a2a4fe5a23f672e5aa920112cac08b771078348197d381ccb4d2b9c2001fd3bf042a44bf8de877ef7c0ebea6933f23657cedc368f9a51ea8c1e33f4b52850162bab8ed40d6e01e0ce3258cc28504f1a594aba83969230a3e4655f85756b4d835867d7cd6c0b73794fc894bdb0e77d4397cf46bd81050fba18ff6f168b7cf09435243fc635727bd5f600e45cc157c7ac9a328861bf8e9c49cba350147e1b861948800300710abd5ab3af61f1303bc46243656a64f4ecb655be8614b5e4d6ac5da50472a3661891eabb731524a31b646e6998317ec4e46f62c3c946a610905cbd83926c907be48a15d7f5614b0f7730aed5cba25a684c3178caf93fed05baab1107f0512f63f9636fb001026bd2e7eda3cc1dc31a7eec5c5d14e206bfa68e1ce5fcc956a65f98878e09e5304b481d2db018873dee5aa6d2855e596c8e8c388c64fd7ee42435894c5bf62e7c05f554d471b8fd10184d7cf2b4a8abe84942915b3eefdbb38bba5a92b2a5495bdb612c31770e5ae46c745e609263dade6a873346577f9c3a70a1813f57e35ae2fc248d563229ab03b81f3ff5e4b0c93ad944851e99daf551e2c1f685a0d034b198a7a89d75c05399443c5c46f1c1158da88132a1f116b387eaec5bc7d6e5bc55657a7dcb7312129e1f2f78173771e58349501b63c7f9e5a41b51cfb10765190a3c0d328fa7a205dc7fecd8544cc14fa1a0f26bbd12560710369ca3fc995b4524393d700e42203f3c33731cfc71a77a22e197cb595a6e2a3d197fd299a2bbb32fadb8b694df8bf11510764b9ab7df1e1a3c398de2b49683b84cfe0ed9e615d8ff07b55762c495bbb784af37f737762b952eac37d9d894861b33c9ae075d0c1e8e8d9d85e4f1d99247727edb6c31a0202ab85be0a3bc550d59d699961fee34d2fef1c975256366f99429a60dc411eab31ea5d531769241d4241a7e482899745a3910ed84baa3e58d1e0ccc311eac6ac45a5d96034fbb4589ddc4035b8911472bc579473d9091b15fad1b5112887b32e8d2287f82d2c6fe6a2d37931244cc25d33fba2e3e00b47f5c8d5ae2aa53535183b72147c65e0dc4052c6a38466b777aaf404a6c8a5522427afda01b4d7140c9f7f057b47491af06a557b9b4443ed9c4625d4c817d7a128c97289349f9cdf14371f7bf933c4654f0968df4f5dc0cceced0f305a5efc0d8778977a9e549d09a6efeb3034aca5d5f1d1f04170c8da622826ce9fde2b05e1063cfe1b0063af1bde69034dfdc7c1a912972a35b4b3def486ff1546fca7193ecaa8c9aaf1355368e9c143f59674211fa7cbbc64ee2a7a51ca3c3e9d8035e0ff0c5889453777538066e6d122fee1d332f6a41ba0130400c531952f23256f5443d75d718355d1497bc522f5b0b671185ed21b4dd6bbf7e91c27a0384a4d7216ab6a29675cf07de1c67eebdf31b491251591960d28570f00abe45353c26c61ebd9cc30036f4297d9a1cbc4c45a8f71f0a860179270beb3707bcff3ed7d86a7713b9e4a1259cf4f351dad881d1a40f897d661c32721ab409fd87ef2144c2bf03b763267d137224d11ccc9c5b94fbc4118732d1df1c1a5729ba934a5e9181f5c6778f33a7a72ab931647c40d8f788ddd3259"""),
|
|
TestUtils.hexDecode("""
|
|
506462786389055DE2E4AA2A7C80388315711A7B5DCC73F2039DB99380D48D9A3DD8CC8B929B0AB224DAE74EA90808C302197EE9D847261DEFF4136D3B2A37CA32533384443B9D935AF2C384EA63E7160BF4BEB89EC0EE705D10C72F2F65A4E75ED2B1901F14B8C1D21DA9C6B8842DB62443D3DF12969CE4E45298FCFD6FB103B87B0817190C5ADED4D04E3BA4D2C3F60CC49FE0695D6366EACB9C79F28C9121584D997B7A3A7AC3243C3C75FC86AF81CC8B888E90095051F7825294CF7E1A11464BC153548F8195522FEAB9AF5AE93C5F6CF80D9ED76C19A0ED0BFBCFCDF30FF6EBD0E5C20EEEC4992765FD23F13F027E2261C38D11FD1631846142541ABCB82C0EABEE5D675EC130861F9BEE9D9E02305F168C85201DA1DA2E4D21CF1E4BB8C2539BC1F3706194AEE7E3ABB2D7447EA531619FD27F0CC7D09E5FBFFB0DA81432D173321C433391FEE90B92E8EE3F39ED492E78327D8A3586B7052602607EBA79CC9AF21132C7D3A9931D5DB4937FD5C5611F79C722E0CDC48564E416DD251C46C02567C4059A0DC2F59A124A4EBAEB9B1B04277CC47A9F345FF8AC3F8AC844A668AC6F7E1BF1C9889C3E42C1142CBC31A46EDE21CC84F230A483B5CE23A901375B27770BEC8F0AFA25F301B7AB43B714C6D0E98B009FCDDFB75C0E26EBEF7C9DF5ED04CB4183028DFADFC09963AA8CB3A9A1BDA047F62460F2B88FEE1C05D9E68D646137F660B68470308225FFC097474B2B2BC5D50A025724FB2CF70873BE7D04C05AFBF1D7DED56693AA4A4E495B1FAF9762DB83DDA6E75F530ED5351D171B7BD06E5ADF46DEAD06AEA37CF262AA33D062141F8E394E731B3942D084E583090F9CADF87C2B81C4B7F114D150C221A12393BAB92727B828C9EB86600B969E1B80F33E1304CEC68A1B3B474762175EA19A4D67220004FD4EB0B2C643B69C00FF3876E9AF63BBEF8AB6BBBE247668DA8F2E3CFD0B95D6926AA3A2CFF4587C45DA60BDB03DA78DDD9758FCF9926FA1F080A61FC0FC7660BDE9B4913C40534887B04E2DC666E981AEEE38746C52BF46FCE0E2233CE02C9307262499BE567C150CC54FB9D96B81D3A3E200EC8F7E87E28272E7B956600DD7692799473A8C63AEDBC8F3F43542B9E399398349B896BBA16E5F26210558DDFFB984FC924E1B0D272CB8834B1FF641A894EC113460C65C66BAE86248B48F675F1313EA76EB4DD0AB6EE41014FD7589D1A7DAB16CB8F113A3FBE7E01EC67B0B3CCD81C0A8C7E9824658C926736A574E9A0729C3BFCC34E0D4BCB1606E93287494577A6C4B1090FA6B997DA098C6CF555B5574473B1063B739CCD139C2541CC3F962EC42BFB3A40F4E64D322836EADA5F574B48B5722D7809A3A20EF1FDF5F3EBC000E466BC4CA10E0CC6A1390FDF159BCF0182293D9C408A8570789C485DBB977642074C869960E9648641C2A80D8A1C4E474FB98D7A3DD75D7AF01D2605945E89493699EB53E30EBB0F936B63ADF5859D9EA1DCAC44D0BCDBF2A069982BE907F1B560AD8327BAE013FBFE6E2709C9FDD498491F1D8603F9F6C9B1A643F6FAB97DCA752D9BDA1DD6BDBF52B03ED7768D98E46092D556C266E30C77A10E68AF76AC3D359D8752E2453B2E75DFECE6F66E6AB00EF37DA6E6A367FC808E1F4905339F4FA73545D13DA7E7DE49CC0A2A63639A96EA039C4EB643627B7EC4FACA1374EA800A505A80F554B3AB3233FA492ED6C17B5832BDEFB3A99FF1C64B35F1531A023415290124EEE2C9A7E34FE8563528B6A4B64DE425A8FFA91B753973CF0C96FB2A8A3F71D58B77C93C5866DF5CB5152B3A0A32884E349C63870E9CACA82F121EC2ACAD7B6052B0D74E9C28B20C76A7A821D192E11B59A7C8059FC49662C655551A7356046D46FCCCEB4DE1F5FC91F35B950F630D743C8218A10AB25D2FAC25308225540FC24CA794EF171DAD7258C2B7FCF43297F6E77A6E83184114DBDBE408EB644ECF49E04FD79769E4FE9B0530F21F8E3913A51094D0E49DF012144EFEC415B8B2A34AE2462607E7B89BB86F0C733A5553CAAFF9B19E0799A1901657BF4FF5AD6DA7886B477358E90D56BEAC6A963E0669C38EF47173503B0E9255AF1F153E673813053A899418E2BF217D01D9162C073F256CEDB73DC062D201FF6056180A8A6887B286AD6D3BD6B1462231D6223D0DF2BBB7299FA6FEFAA9A297C56ACA28E163533406141EB2E65F0C94A6286A0579C76A3A8EF96DDDAC9DC6A550538AD345FC4AABEBAC04682D4AB0977D439CB14F02FB504E10252C1F3ED01A7C4BFDA6E689D842D9B9086517A84AA4257D1C8CB842E15DFA615D2E3F2464E4012C0067EEE60489C044F43050E5B1AB3E54507422E1368CB3EC8CFB03A887DDF9695AD95378F875F14F7DEECFA54A775C60C6B7025E5D6C0563E0E76C05C93E33C3E5AB6D1E1C051B52D2805D3BE0A4D3E8F0DCE6BBA1DF04C7F76F7E13D8C3CFCB2AB04A1E605D4DAD72A43D5223FCC36EFB34D999095E742FB9DD7B69A28E070FD28138B403DF1DCA75E00A160ECE9562C92091DFD3A24C53645DED8E17B39D8CCA4C20C96F9C9F9D14AD3B45A1E87DA75B831D400AC14BF34A9840936C3277A135BC0E8C65E0F5E670AC912FA586FBB4E149B09F64D338C8C886BA65730039B5DCD0DCAD9D6EF11C228213438A1489F4FDC39395E8447212599BEB570D186883E02B442F8BF97884EF98D3D6E59254B3DDB77DEB8429D110F0689715F3E0A4F65908E5EEC867AC7BBF27CFB965727AF0A1EF37B21EC18CD60A1C87287527BCBF5249596083069315699CAD10FFEB2D87810C4DA090074FB26978E56B7D06186C48BFA4830A0BFCEF8FC7B95E73F64EFF78043E8D93F57EF6DC636C8FF612ED22FB21174EDAA59BCF89D1A60F0E1C15C5F8EB8E6A39139D500E8F28A5DB86C125C6C76A99BC47DAF66E679121557D85F5093806B748B3EA65CAC386B59C0A372AF2FB7C84111F0E0FA2C71E137958239534C4A012B1B421435B7BB8CA577DCD8C8B0A798902BAC9B95AB87B6A0735D1839DEE336996C2357C748F4EDAD858C81E2115595ADBC173782E36D4E720A5D29A5681231F9BEE91D455554A8632F7F02FAFAC0FD9D03804B10DDF4828A69AC1CF0581D2C88877BA30EF2982E0827147766F8B71E264E82C3949BB87562F810DE835CCF78A7E5FAB219E64B1FC615E7C952577B9B482F78C0D0C512833994895A125F43EFF066CEE293004E9E0E5288A61EF209EC52233EC64BC0DE76C78EB2678559724FBC05BB5B43CDBE86F6C481AF3BDA11EBFC0FB384AE00F4ABC212B0518644638F01C38030DD05FB06A7EDC6406CA18878DF38ACE8E974123D3699613ED46673BD04ED51C352F124A8F89DF8C13D2B44245084B7FA02677D5287D22102AEF4A4A0AE046BB1C6D9FC9733AE5066C69A10589B0F33780622C1709F179D4E8857564804BF5C4D83E03484FDBD1CC4D71C6A2421AA59043DA85F0B51EF91FA5DF9555072278331BF3102F5147021662D135F3011FA48DDA7C97087F01B7F86D549F41E244AD7374C7C1F698801CEAD305026D17666435217799A4A5FD0ADDF9B8BF6E31E51B654E4D697554D5F574213CF579EFB1B11CB2C136FDB9EBC0DE4D16DC9DF43E17D88EE22EC88326F65875439066CB47E4C656A3AC59BD9A576D05ECAC5B3E7AB7B1A3C0C1C48807C06F1AE4881158D6BAE9620B08BBFFCB9940B6A6D04396014CFD54E93D863156D16F6F9C1556DB1E13E630326C8B681CAAD146F32B6977200B204B632F6CBCFB2BCE9670D89A9CE043E2004773913188608455FA715D1577E03826A2471EF0143DB3C39E03D890F0CBC85040D1675821D282822F80EAAEFF5CAA49699B68B89422D1BEDBC3041AE2A3D6D5205C72123991B21AFFB312F5EC8F96922EBB44D7A0F8ACC2E390F9E3FD82353276D73E85FEC904AE6319B140E5C54FD5B6F19D17E65DAC5EE270DB3E402534B0F408BB3C554D93BBD32B255D478F33BEDF4A192233294B320393D38284D7D9987708C019742F2FC023C041219FBFE2B603501629BDABB9C4223F5B751DB78C144CC50D3A35370EE563D6DDECFD6D715F08E14A00FC265D8433055083048396F1BD4E9F010EFB974D6102401B2FECD972C26008A4B94952EBC61C35DC846FF7B3E20DD9C6E033BF1185F35A5F02139068E1D4F30C4778FF87057F34CE1D2D40BB61423EC055BB57B56C502DB8D0685B0ADA42F9C52B590610CE2F8237F92B71B3AC2AB75D2E6ABBDBAA1E554D99CDB687B72DE98ED0FCD618AF5D2B0196F1D3C19DB77686F01228C3D1DAB1F171A56DF9311939CCED0F7B22A1B77F473E8DB65C0FD6E307B6F7A0F0FAD69E5C1F87D01EA4699F4D5DE39880CF2D8E910313AA6026C17941C41252C06687A085903A502048726AE8EDDD2D8918B71A19B807889B6C2E866FB818810F427D2A7B6CB137D94746A88BBF068EAD31216A5511A54D81031D36C8139776E0FE29EF7C8A5EAA730C3BBF05988BB892F699F72F098F2931F9B4DA17243404F64C311767A98547284063D44AE74735DD246B0C189DB322058198F1D176EAE6E076965CDE68DD0DF2B284D23B94BADAFB8650F21B148B9C990F7044A777F9BD229F7905B242CC2E267610A42A5C3185C64079DB340D86598C589F9A96F3741356BF3E6D2A811B6551850F917E07E5289A07382B8B506C510C9396DDA81DB336179EAC1F84DB9D0E7BF52B906E82FD132647A84A299BA202DEB338B79F976A8D257E246B2B1B60425161C72D534B04355B2665129AD8A44C09D73AF51DEE7043228EDB62B858399B5A4312DDD7ABDA09A846A60FDA8D0C00E0ECC364A6CA95643FAED93D44BC8BF1264FAFA6D98528CD3BD1BFA352BFE1FBCC202F44496FDAF9F9EC53007915EB67F9F8BFBC88D82100210CD471C48F5092AF4253302475F9E60C287F0A8549DA00538432A342814E1F6043BA4355D72268F6E84A43264EEC3CAC024DD6E79143EB502A58E6F8478AE985797F00A295E84A0F669BD9252A3AAC6B2AFACD7AD398DF546"""),
|
|
TestUtils.hexDecode("""
|
|
fdec4bc58e167745f07a2c4e30f8d8ecf9c7a6eeee6793f77c27353dab270398dd811c611b6191d597edf44df73fdc14bdc440529b77ffeaf18ed94a613fc3f340c55dd156e8d56769d509416beb75167dedc3fa35281ba7913e94ff5a374e0647a7f6bc99ea6ac30c3e477e69823f663e8748e8b5fc43f1728612d109a2947019331c718ac31e663d44041f88b7861e074f4e1c12ab2077dc59587fbc451aafd29e9a7d584b744d83d36f794ad034c014bcee229b847e8bdb120407201121f9f58fbd0e17ae318dc1674f1c7d9d3481629cdf02fe819de516854b2819cd6a9e97bb92662757a9861c113f67ffb191a086cc6cf612d13f0147bcda5fea3c05fd29115359bbe08a25c33a58a3b38c3214f8e4379b64fbabb00a7221fb01181c7cc2dac81e6271550bce192958a93f2f5a11035b411a00b610728f704d59d7a7e51ef2b06a2000fce618a6f82a06d18a899f7c59a3d12141979e8ba62aa4485caedbd6b8ae8f2dadfe21b7e27f911daaa80b6e22b91012ee5fa16164c5a734265b81aedcbd820b8fc5c8802a5e7cee4f50adc824dc0f0ffd626aed8fc5173b51ec373dfde19973df541b031dcc238a7fff8c01b36f8df74a0a5705a13880f1b49bb82cda0faebcdb8445048ed05cec1fd95011316a53712241f837f7a544c99c631422072ff58f579e5148885f5df4172044aa9ac4bef20e852b46ebba4410b05a5a8cd5993203f44075b0b96901fb73e1e561fe40b0decdc4b719c16391891957f97bd0eed0ce3c3b82f83d0afc9658d84d5e64bc83b2b68762b00eb2a0a474c2386fbbc87ec8b2dd03432506169f3f58f69f0dc62f140d437ef524700ff0e55e39264aaeeb3fc62940bbddc9fd1a13b9d291d82705ec87507e28c1ea90e15c8d3d6e94a66adc386b10a07c81daffb2b8d1176b958f61370ef1f0189285a49058a31c2257939df230e1218693f3dfdd9820407b509f7307cbf02b1dc1f182f9b3aadebfa7c73a6d6fe4aeffd3aaad272443df14939dd94af7543aae1212bb24dc7962e9e96d70f85a17464639f2e89344cc9b6867a6bdcd4191c91da327a003e62c1117af999f2f027ae14522bfb753bb93def9153c2d6c2a6fb8ffbe7923701e516c6a9c67ca2b2b5f66cee09864b6414716a0684fd2e3c2ff1f1d09731237dddad175b9debb722728049ae1a78401b7dcce662fa33fefc2c647b116467f25a42a932abe1742b1f486df764075ee8e765dd139f58762f3c61564b5fd52d4e511c900eec222116d27ad9dca25517449bda55b1509569677b2f0bc99c4d22de9114a8469a4e401f33e7576057d4f735e1c7661a8e986a5aad28026f6af030242535fb87372ef76023761a2b46fe30002e947a0b208f95663b34f8e92f72f8c6b58a9df690426c3c7352b8100c87b48639c072f0ad37f66d2b0e6c84fdbcb7ff506b911425a260f2a4e3ce3d6abf5d42af4fda4f37d0d4d511efd204c09fdc42d868cb8e036ef79b2425780df904fbef6e22f5117434da776e99253f0d444d1ef9cfb10f4e0782d3a5ae10b1627f7b71b040f081c6f5377dc927e65965bec75a5cbaf4eabe36c65ce71c75476c0b962a278077bd765600330570474fb68a30e9e427030825674408c0534eb2db8dfa2e986d45f06072cbbce4b3a2e03a1209fa8a9eca591128166b40bbb20419d31bb82e30b2ee7962c9fef7e788b55be7b9bac11cfbce39259ec32bf200d0b490fb540e1d218b52d04dbed8c3f650c8310e257d887c472e24ea02d3108712fc88de316657cadaa0d8ebc417da228dbda1ec98a61d1d1989dc7f10a0b4fca9f6dd2c614755bfbfe26586fdf8046bde39a2f8130d5bb9f55f67db1c9d9c7e626641a97b09d4dbc3178039d78e92b5049b7a5cd637cfe35d6c6b86771db2442040d15667c256c6beca875675a5106ca68ec6f7a01257c9c7b3464e01e8146085cc3a9aded04711d2c363cf7f262ef90f17c8ea28a0c15fc2eca9d970b33ab22fc43619cd42839f7ef53660e9aa88a32fbdcc5a74f370c6696922c4981048cde02342bcd5182f0d633cdc90b383068178de2499d41159d32f6c22989d230e0802ef40823a64625003c29b0b6c1d9eb39d15baa69947508c141dd169caf1c617a2ef16149876a56c6b2c4a92be4d48b3d277bb5967fa9931611a57893486fe3b8e8b92a8cae0496b0808b49b712cc6473ad44216ce3d1855d704561abf8988ca52cbcf7cf95d6b071acb061f03aadf2c50c4159380262edda1827050675cc375a82010e3e3299911db2d93727497ca0d75f5e539cf75d412177469afd91b1a8c8f36a2e4ac5484020eb0c7124ec570f94778e8a43e80d8fe145205ade385ea279d4bf6c4ce8998b118147edf888391488596f2737bb381cf46c939db876de724e141dbe7066f4a13c35cde58c718bea1e2b75f6b6d9600fa08835abd0863f2e3fb8f7d776b1604fb068f0c8260672fda6062e5585c595b087e399f6a6d1d26857425f600ab13113528bd2de7b8b78e933aaf344880e0aa06facaa7090627b4bce3b193308f8c152eb82e13573770e3a9171b2177e9593911ef00efee1237166261a38111f07cacd74f6a0c2283757f182a508ff531568cb05572eedc6e5b706c5ee3b3e8139b7ff6fb42a9b87cde81b21ff2e6e48d0f89a8adb77aa4be8db46ebad82b4033e857f6575c1bfc0500ae6b95c4c43843cbe7d83e8684a1275ee586e50b7241ddc72c017bd7d4aad25e468b824a043504ce3950b79a5dd2919fe3411dd250ea82ce01477306b09d0cb9a789bf24d22288e73909a57ffb7a1a395be080518d4bdb46e8648486ca8af29cf0311548690a2800648cff58534afbb5226c2e860178308236beee319c14811354b6b05a324115dbe53ea9bf37b7f8284f4b39dad5ffa4ea97ebd9bdf35d593d63026667da30e0df76941822908f6df732a8dc018bd2a93be0a21d64e33da01292fe3fdb5370a0fcae68f860af88dd8a4055960621524ceffc2391dfc237205efadb78f1df769e070b09431fb7206c2cbe3319312668eedbfdadd9cd246d3d5dd648d20758882ff7f3f156412394b7568dba0150e27fd442b6217495d2c42108e9f16e9167684caa81366cc25a31766e4743c49eeabe051cbccf225016f067939b238fa3e9330e4a7443d36134d7df29f8b260d0b7a3e14345b497de4816cba4921e18dc9dde508075da67ab8c210c730abeaddb040cf4e673ec03bd8d803fded05e1256d90d3c050aea4c223c174dc9242de76e95fe9ad0970c3ef6eb5e7afc8725c77c5fb8d265699779f9cb2bf8bb26a095472c939bb3356bdd218f0b2d99b29f0475a4858dba236123ed647e94ed485a1aaac64b7c2ed19d98f2d24019055c5c7ecc88ed2cca17019388419b3f9819b489eb837bd3c7daccff555c7daf5e5fb5c75694c96f566aebc5ad5a48c6f272f812b4606e21473e295c006c190a6430f7137c9ac20727e68b0eb6fbc8255cbab5cf3832938b7d85e6a4c46e7f7051571981bc3f6f86b9a6b149ae260360d21587485ca40dffc6e93c78e15b875bc82d31e04538863ad8bb8f736c23bed9a9698b51550f91caaab6731bd6feef0226fd3e08b3dcccd33cc6f7c8d8d36e8ac344f851c3596fe6f432017653df0030a64e73b1758322786694613bfe06cf75586e12b92ab563b583161292f328b56ef3648b050f75fb108102f0e28be8c4cb7dfc4283f68eb6bede47696b1c9156194c7152b79a96cd36639488215ec9d49f8abcd5264d89b51d72c447e31ac2011f7223789a82c702340a4ce59a298713aa95e17c6a3e92011f5ec81a3a9b6537f1331ae446965e58c2e1aff4931824fba76940c5f0abdb079f4ba8b32e169e3947594173832dc34e824f296e93099ae8e20437ef564da9fd48d6b6a2cb938a9cf884fcf3327e1ad935257157d0e8e379971cee3d5df59135207930ec1212b7f38b324aab2f172726712a9d60e40a0054f26586d5b3a794edf8f33819da983c209f9f4b514875975e40f72cf9ac1ec28811cca5896e9b4cccff414650d00e71ae2e37c4bb03274df43ea5edb923e157ed3adbfb79b2410b088c6ae9f78b10eb87b0d336c5adb19db50093a7b26fe1f39cb7c6b19001e4baccce386684acd8850cfc64aa0e16ac6cd15625e73b798651fd44828f2d6c4179b21af6dda2262c79322f41a49b9327f8ff0381fddcacc5d1444f449b54d8cd0103140c292aa49bd3a807e5af3fcf33a0176a3bf32ae337c4e187cff519a2589ec5a75bc531ae8092b72fc906f1d82735070b76818d0d5ca9266e7c0f4b9506f8adad55bd8f04f5b9baab4662d20eb3cfab00ab81bca5926b6909b5fd30b14c5581152aa37a3a275642f790913aa9f44f95161bb00c736eae908f7b3c0745514b595d947f97e67758cca97f754cd359d5a4cafe7884c10f379c9233e8f9de5e1a4688dbf92d92a256eccdf06819d7badfadc0f5235b3fb9c66cf65c6d755c5aed48610cea135d8e1bd748fcce6fe74cbea0cde943ef57d26cb7d0699f9069ea14ce1a66a5b57fc442c123409b896535283cc724c27240850ea8b9014d01d4ab2d8d151719f3b2421b60e2ce0792345f88bc26f2e3d4f9cd3a69777a114014ab481459d5c5d74278cf1c0ebbbac2919fc1a77e0997aee5ed24560563448b471e5679b13adf445634742ac1acab6fa5a0b6a0e8e285714c12fc05031c0ee83ed821bfeb0bafe978f785ba36392aedeed53e4cdefca5f4026b535d7a1a1c4ec9155b42f79c8224d286927c8af6b24c0d87e9089d2becaa48f11365e40df4810dc90e12ea6288cbc3cb2b84ac36af1867843be343c3c734eea10a54519d9c6bc0f04cd978360d5eef8c5fff75a3e4748d4dd37735919a1d6c7c4c48f5aa34567737d3084686b1fbe2f23e4a639542cbbe7f99c18a80f97033795a81c9ea029d51e2111e59c7b66a2c78629a1594db70c5ca13f3a55cbddf56f1e66fc9f3176bd073532db09afdea26530bbba27ecac9d5c164ac88f7fc3fd71781dee0612ec04b790d66bef2f748e93a6215408bfab48c4932277e3052dacb3384588456dbf15fde73c3a2036123e99d698ac5785f7027bdc21a130e875870513c1acd7802959f29cc2c3a27c1d9b97256e48666efe178bf7a1b6764cd25a4e8e97f0f55089af7fcc40ac1c3174f9e9d7c2601c8ccdb7c62930ea25e3ad4b63af9c2dcfed98ec7360e85327622f01fdb3617aa4c47ceae1dcb3b64471cd1d810d03540685d2a34cdf58ebed79b81aa1b0d2157f68ffbccbd4e617d61eb23c4c77c5bab60c1bc66e021c67a26e383aa01d3b9f53f20b9ca367d1e571dbff0bc8baf1baf9a934f7cfd06103aff1db525bcabb83b254460909151355d60303b86bce2a5d0642e951a5f1b356fedc9f6cb84fdc9c30e39231b15ca1d5e26730cb175803f4f9df3521e1f15ec7ad77fad4664cc1f96813c119874e5390b2b3b04682bc5ae2a81788426b185f57b308e3b061df87c9e69b1629dcff9b4104146c063143a40219e4c0844a58d2f91cc58dc9012de1b4c7ad6afa9ad0741fa13c651be4f27b09ec40d8bb47196068ce43e9585b1813ac01825dba7b02aded59d3df27ab5a18a7100b5df7f68b51d0557a5c26d794cbe0a63539a16e1c3f612d8a30965271ffc16a088c9b70967ee3229e2404d793086ca6f378cfc5d0c560f9de81493cfebd6349b7923e16980d2f04c5c48f7f85e56853b11f78e21900b9d9dfdba973b87c1db5c860a4c890292c4aa4760cf5aa9972a1db9ebae714c93e29af2d9b3ecea7e9777e6d4fb2550f3f952666686cad6282e0dee72b88d1b68bb1ac9021d89dac8a56a01c0c2138fd71883c7654f30117019dc70c85fe42cb57c23a2a37060402a37f8fae690abd43221fdcc23d992150de4ab217d35aa5752c3bdf2fa3fdca3202f7b0edfa83d6a0938a3e2349c51d6ce1680654c38c8d6bf2659c1885f8ead0bd687cf56144f1fa6f32e90e08f059bcf34e3493f42a85814c24cd68103230430567a960618dc99cda88cadf09e854acd79a2a54dd70dcaa5510e0cc3e4bd32b86bba8f8cef4e08867fea37a14d3412ab5f2c36c61e6e96eae2a00ae94dd5f27d7a914fcc2eb6f88b8a73fb0ecdbef7a4e2d15b7e9263a37880d242f8c230afafda5a7e919260b6e14a8d65381d73878858b0001a581e7add55c06ce1d8e30caf6802b33805e2b78d4b8eeeb20c747f7cef3a27cf17e3c1be070e8fa1adf20ddadf2e46e53d8702d75c637c2e9d9b244e12faa41f1ecabc5d98979dbaf2f0a00d061f1bbd0231c94fa5ca97a75b93a48bb3d2babc9cb0a589df0f8cc72265971e49172b588490752854f599ea4a97e71b0a6d415d058dcc875ef3f09c37fa7e4c0f45045a7bfea8fc0bd9e0c1eb36a0d3e7e03240baed7cb5d3e6aa8ceda0a0b394584bde43190bbd0ec6ea5fb3973799db1f0fc11232c3e588ca4aadaf4f7141831468183a3aed6fa4caceced00000000000000000000000000000000000000000000000000030a0f1219242e32""")
|
|
),
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
89ad3b5244d66fc84f3dbb02bb51be6fa25bd2ea3deb3bb6d964448351d9821ff3350a0923768e299160662ec5f29db9d9591e3b6730565c74af37804e43d888b6ce506ec5390c18b510f7f40702ba377ecd3e482c23f10ddd8e2dcf132ff6caaa6cbbe799d88e81dc0465de420f7dee501868661eee9c9a2113091bbabd22a2d10692099725cb201163862d88c4845944051a414010460912c764a0066a081666e3484cc4c440d8a408c4466ea3460509170909844ccc2822da9481901449880831c0c20c9b106082c6601c9871d8320ed1942161246c91068201386dd21811183131c108282091450a248d09329219277222042891020ec80228e022429b2011e1922004b92c204440044329e3983110435118232d19b761448425d918901347614ab6084c8428083229c4206403b364d246856230721283000ab94409086188c64d24164012c281182186144632143825c48281cb9230dc162219414820432e1124221023124c1068e086640883811884210446525810725348485a142024119101166c1a8011d0244900934dd13891828470e4260919b06183b649d3b488819285123692d1b685d08261c1080e21b78c0a305013408d0a101098208a81c24d44102143202d0845280208264ac8700b342cc2186102394423280c40369208047020b948199951e420204b464e124066e2c06522202d10236dcc246a89926040281008c1119cb28898a630cb0464428045d006909b8211192646da90241b824c2212892005861b9451013165e21604c8347200448952124c1a290d21a74581942812268048382240400d0007301a056ec1244c1219822088480c4829d930828488048c40489a064c4aa40061308d1a25314c348e58822093a204212268800684d2328211244a1ab96512092440140a91166e4a845019057120178559426c8aa41114c0651b98654b9609d146480ba24c99024142344222024042480504883022426984024d23205244006ca1806c14060112c2251c289052b66452b82808b30d9308094126100b8749c81285483429c922019924450bb16d000460202742c1162590380622b5050a4060c0b24018266c89000964882d81320aa3b68de328250218469b34899180894c20012419469104611bc931a04052d4400d1b04300933648a0031c4a8500c430802252cdbb631c1482e00a92954a850a43804a3006ddab88820078ad03880904620cc4846a0960d10b5211c373289346503a2201b88084482805bc644d10885929208da84211292841826329ab43051904141a844a044120212311992290949244c4428c99251620820141244508404d1049112262902b620603208a3a270c4367241422593882c18a00060a24521378c4b14441c222061366e249641e3a86d59c201a292700a0006e3405021174e090942a1348dd3a0299a96219c924d1421520b430e0812129cc868e2b04804b94108b64c24016d5a868c20c8459a082d5096689994101aa5608c0091088950a4b4484b24654380211a266411968d80a22049369118c6290aa16c62806cd4a40d8cc201e4324619261008122924c42409a10c10230c01c609c010069b84699a14240404814324620a1162031548203191418209c4165220b72181a20010396163b86814374641a06d98344a9314869b92459c044ed03805980249a3b041d0960c5010048214060439249c02498c4220082828e3426d2228308b3451a3046463466a19018c5bb24022a30454146403221210182689044e53828804a72193b840c0c06d0a8144d9100440b20444900181a664843825c386812394645b806059080d08c760922262e1b2501a41721a3100029111e01065900000014669d8021122c8401b1192cb0850e0166a22812c601261c41649613442003089a3a490e0c009e3b8289ab42820242a0aa6451a073264482d04362648882140002ecc168503286e99b0614c342c802260e0b0080392110c841018130a19188a9c36610b465041b88d22a129db307083008423a124629661e00465c400681b28451b444dcb802c54c688db4265d0121119038c0c036a0413115016048ab2090b09260c050954486163a2640c281092800c03804053928508004904b9845b186144a85194186ddc92040a4904a00811c8b26c548645189544121685c04265c38860d4c42d61844d11b52c42228400b611241a129dcefb764c1653d46b842bdf5501ca1428a8af384c3016be82afe02e5a8c299790705b58a1f23e130b87ee9058545ca4762cc1fc1bbb0b5f9e7774e12c40cf09d64146aceb54d786746a48974aa907cdbe16dcdd77eaa11f1d6681e810144694fa949a4342b6b7511314bce155af629d90a93a3cd10a6b2ef2486634aa06121a8f1c1595e6e0350f470c0f44b37724e8bfa4773ff0c6d76d9a597d4fe2ee9f388ae8dd477beba96ea6be86e026468ef471e5135a5350d72e7f82d775eaf3d797c89ae0b90bcdeacb6752e775d7e90a3095cb725b5d6a82b994b439d0df25115cee06c9d0369f237684178860baa33fec3248860483389b8379e53c6eb16fbc8191603197c63f0419e9a98e833f4691229dcd5d94c71e37144efdbfd3a3d27e31d29d08abf2cf5ad55c3d93fe29650990f00859d0d2b6ab597246e7fb071a213c7c9e6090eb450a1e3fb1dc67c1f82fede9a3b84291930bd18975476dfa714ec3a2abad61a3bd4ec0210da3691d40aeac169ea03d9252fe7676d6d9262505e560796fa073a55f8c08b88e050dbcf80b813c55496045e2c8c45fa6da9248e18f5ddc1c3f1578a65eae7406d7cf41e67aff1e47520a1a208b6cb98fc3e6efb11c735287cc64dca777a4a9d269f40f77a99bff4bf40c18ff417b6ff9c4bc4927b0faabe301f6d98a52a9fefd655ae1f25d1d39d8a2963a8dcd54d3a9a6103d676727dae68e774ab301989f4d8f7ce36f0eaf5bbb736305ae2631e783799354d4124c75eb03973aefdbed89b6a91578eaf23a57cfcbafb9bd453320eb6e7dab046bd83629778226190ffab199abb162768975a6daac7a899d4586aaacc03497bf99e4ef318ec68e08d38b19d71a5c637941494fb428ac8273ac37b829bd8c9efb230e1c5925251f0f5e97913ae05ae2b9a94a06c3a3f50e720615766d2996625376d1c3837e587a9a6bfb7b22a52f1239d137dc5f82b4003a082e1afd13ec71f0177ffb29b6c7ca1d029a848a7a51615dfd49f1238ab7ecd99a4c247c6521136f713bd607b64d688e028ff223f4abce8ba86ccf2e467819556f7ca046046c3745211de9619087cfaced23db4d37c4d01756df82f3b2abe99ba612d222e5c013eeb0b75b4bbd55bf94201cacb7c6c661eefa52fbd8a1fd06567695a07fb596b13222141f7ffc72cf791d5773dcf847749859c27aaa4b5704c3b92031af9f527076dda5f45de8ab53bd023c3816478325782cb71b5d17335e235cd6386a816a10a7ed30f8dd9137cd5f66e76b6fd8862a8dedd5e6c388dfc4f73d060c6a19a6bb792ec2ef5f96fc5e470fc3d3895188dd051e59f43094ee61fde3f7b98ba1bb22debdf26acceb87ddaa01363f81beeec856ef25902a3692d0f46b3a37ea4c47a72aac18d77f3417a901de6e5b5117ac810017c280c37c8e0f19b157d84087ea8f74e817a1c647c699fb8ee25c473c8932cf723ac4df3d96475cc77fefc54ff6cdd8490519c97328abb27bf387c78274c42bf6beb338e07dbf954f37da0964a36bdd7740a93eb2a15b553e0879bf08ffef6f48a6983d3a419bab890f0fe797ff96aea354fdd4720aa4a80d81f58ce31039c4176dd6894f19ad915bc52645f4098c6a99306e9f842ee21e735a4092ea05fca13d63c6d41c9d799965124946dfde3108f45334af1daadff53ad649654c176d3d1239c7433da7a383b09d335b1219cabfa72faf74aa4c9ace7d7c35e3ef24283fbc33d52d9f9ae369edd9ba948c6a6e0c8ff652c5dd3249ba4ee9190548df9d44553ea48fc35521eaa19e5067015ffff30bdce2378c22493d4ab73678173a68f5c28e9b3b08de6ca1ad3feb47ae9b95708ad2abb571099faa68c92d2f64af1d3ac55301e71ceed47c9c21738397cfb834b6441ec1b1ae9a96f326590867cde1375634f74a42b5fe376a1856d9d3b4370407d99edfe986235f62e8862a4b2c25d37f15aa1ef6420fb7a9c41f1fc59e9e621084e8babeb2164dfbd0c8c27de2c938896dc918afabae6af451e53fe3478e41a9fd95a339bb010fa98353e5f17e07fe1581386b0d860991d1b3ce8be86c9eb0f6dda114448f42bffa2467a4ce338ee2e41d5fda6af91a333345d904a8ac8d1f9cad18f06a23b02d32c480fabd9982adee870acae3fc0b018bfeda93b163255814cb7a874ae669070ada5a9ba584baa3737d7729ea50d233c7e4a002ba3a5feb7b738fe176193a628f165204fd147b1f8d48c39122cc2987eed7f5f059c176836a28333fd5cdc1547a62e647e17c29e9f5e55c7707211dabde4983ea5dc9b6fdc600fcb8e522953d2bc3ac7d14c3bdcf1bd2ffb62db49c0c756875016adf31909e9c7a409279cf074e230267a7c30d07cba46652e6209e3be8a970af8c8ba6e0abfe8fa53340f06ab556be351cdb6df4f88a892a569a54bd3ecd71391094f2805f6c97e2c4dd8ef01caa44aa0bbf01e5f6b96c37c6f59f2aa8abae86cbbb01ab64afedf832772897ceee3c1a8676c25eb2d306ede14b53dc4b131201196c6eaaf52e5ccc1e38c904fd00951fc0f5368792841384091d47ca81b2f9b15c5efdf13524e97101911f89ac3065dd6888253f9bc6a13464c822791a240f1867dd92a43bd5f2407cd2c85bebcae207acd4e18630dee496a926184757eb76d6567e2be02f8e1260f4b996d689bbefa840f69bb410393e6eb1dafd44d9e9b5d16df766ec1acfc36c7cb0393343d266b1f1038c7a93e96912f5ab45c4152f5c41e5146f94d363bf7507ce873a9e3aae23f2507c5593cd3aba4329b9cc282f51a25fb50e6a8c87911f36d7e249603fd8aeeb7075839b4cf6dd2a39d19bc4d6a3e7c1864d682700d70972fcb47d614df7697685ed768bea835dba162c720c2f4edf2e6be50af9b198cb46ac8791a4b86e8c677a572ec142cfc8aacc8fdc655654c4afa8fdafb3bda9bc8c9d719b9b47da3073ffe1de8e60621c4e98372252673abf4dcddd2a48b9c431ddd3fa156c16fac044dad53e30bc38bd58d7f36a9751161acbaa04861a3fcdb3a3b6d92217f9d43f093198de2ba201d3fafe8f8b9501ec822335d3e38ddfe2f85259d29df67d6a6b54a4ce9b42950d4879db4d5e2fc8619ec15737f2a986ce120160fe68100eb4997aea3531948031445f0f0c1047fdb41e09440bf5655e1a72becc30369ec37729967fe08e75c6bbe07d7a9e25016540f3a1902dab57d8ac90fc4ffe079e0c4e42f9ce69b201f878e0b63a85702ae51a27a0fa5ac968eaf676e2759bfeeadadab6b70cb54510b8d0c5d9fcfecdb5047cd333872d5754b3018b5cca68d78114bac87d37bb3afa465e3e7dea2cc023b56e729d7df130c9161911ed1d56e5eb8617596dc4c1e167f4a976d63339bd444c31362716554c7072c65f483a3bc44e93b3ab41f177dc20cf32550b7346d42d28421b23eea1a3b2c38738ce9803996369b3dc44b5042ab7ee5faba539c208e65562757242dcb1b9dc34c453be1869fd575b3b32336beadc238a3486e9fb9f2c13c3c4688928397224e06294302d158eac9405b11f607020d8f410410460b2b54c4612dd992daaae186d130d2cd6cb59b3db055449d4293d0ec7459f99a5c89a6bbda86956b28b372f2e4b330b07bf280d2b498c785597536fad5c3e5bd2ea1061f036ad4df26dd7a19e3a5ffbb61831761b622877b0b61fff288d340a5bd9e67b32a3b1a182f2334273ff29ddc92c9af073280659c5180cc38eccd73417ddd1250ad04b7c241e41c993518dbbc9adeb525b102fa52d6c5c82da07d09364e14b2722eba04681408056e10c3cb95d68905ac63512c66da44186edee4db51d2ead4af3ba930ce11bfcf316b007a3eaaecb36f99aafa98f9eb58aa4be48afb11bd9ba5bb0c11ed31f2f221766204796aa21a6be78afeeb2bc239602be1c4c5d37643ed6847b3396a3e3f541493a6d038531b08d3ff3bc9b0bae0d686612a19c8786af55f744afbd0400f79381a4949a4918f9dfa67e7428b7449edcb13ae371fdbcce79a2e09d5e43f8f89511ec74482885bd2606fc5a50c46a57ff5f9fa416dc163e47e5e55de6e15e91c1ec9da4c424fbc7491c5863affbc4ff8a3e70640a4a200c8c332fbd6438adcdd402bde5cd2ca3f44365aa1b5bf6a4acb87f953521bd04c4dfcaa108726a9143338ea67a60543a383c2d95c6810e96f75202cc13664fc60df2e278aa81dc7309cae1c0bab58ec267e39dfc01ba3de9af0713d2c7882a6787b5d2cec943a5925449b912b5e5f9f2ceebdc723c375ca5fdbe49af7fcb5546bf3c741e1e1decd8f537a9aa7f351646807e6b6f2476913c1868245a1bd0a8421869feb3bf7db2d19151a7e918a0aed4ebbb3199e3fd7af74117f51900969466814323ed64a3aa9c817178c1a6d7dbc465bd2301d9e6f9878fca977dd82411807a747f5f33c4d4ab5e7bd6cf3d361292c7fe43ee50bf40ba8597a725333bc4505fdc08629feecad7eab499f6ee6fd3033986779920c7056fc7f8c01223efd7c5bc52d65a51c5d3fd5d96db44ef6650a26ddaa20bba2565d753e5667c4e883643c02dd5b7b62cd590ed41a2a970642c3be4c427347539e4b19e8a8ce898d014caac039cb822cf49bb225ff4ad402827e7784570ad6f5a99be49c167de94cd81a3acb72be029b50c072b03906c0e88e26b631034c9279fa87bf75a1ec57f87f5af302fc0cdb272"""),
|
|
TestUtils.hexDecode("""
|
|
701B8AE25CD8187095349A4D41A067D4FD48732E62547E491D38845B3507A7A6AD8F8AFC53D139E47FC5AF2723B1BB057FC797519AC93CFB18DEB496BD9735455CBDFFFCA5E69C95990EF89F509728D1CE41F36A4C0364AC8C30E3EF67D3F3776400BF4C838A477231E455FF76C92CFCCE1B69B00F99451B0A8287ED59CD79EF0D6E697C93F7ED38F20204921E6E2F141D3DBDE1C201E5CE7C524370C339753676746DA5DE4A398CFC2CB1F568C16D4DF34A27CF04F0637B1447C6CC83E965A3F86C538CBC235E440CC2D1257CF916421EC75928DD6DA3CA002AC93C8F464ECD522EEF7E048C154D73053DA7BB63A5DD845512D2B6B7D1E7EB5818D170D14A4A698C8922D69A98319A10E0AF558E2318FC390ED990B75ADB50C6199DBEAF5D53B49235DE7CA116932EA38A109322AD05F5D681CE25FFDC9F6A05C4ED2EC6D4242173D2039318EF7D0733D86D57C4E114B3476392D47FC68796C9F66B1F1EC70610E1D57436614D5969564DEB8673686170E40BF5CDE506F7E70964E07258D4551F5EE0BF2651F8BF3D3177DA76AE90FAAA69C4F373E664F0A1FCC62F208A8BE130C499166D13CB34D77FDB32D5A7F3AD38856BFD3A0419B8744DD2F186D03E18634D826A5BC87F1566FEF88D9ED93E74ED4C005EA3EE2EB22FF5DEED283132D00C7A0B131BE1FA38E30EEC68B748AD533BFB23B9A14A936F609D4C560163235367B0D64C2C796F1106A1A9365E8F507B4BE0514C849A81E2C7388C8AF300D98D444BF808C4F9338C47A853222D5AA8ED283F57DBF0689E5FB89A456005B6B95AC3D791077C79BAA2BB42B423F93A7D0D999241AC5B9D64D65274817F9BEFCEFBCB4D5CAA67427F69ECB279553EF0D33A19E14FD4B284A72081F949FBE2A7543497F314CD7496EEE866F33102BEE5CF9C706426EF2365EFDF1AD141552BE65D1DB4373B0E8D449F3FD1733AA164C1F2C24F74E240C5096CD201A11113D6BF5CA19595C4B0A81E1153A4EBF88F38F1812BE517158787F2B378E8E32C9F97432BC9027292E5EDD7DA64FC6A32788154B62E40A85701895E13287BB18883820DBDD7647AE4EE1FC1D43C199EE69B1A2E2A7067AFAC541A8F44E660B2A7C114F402E2054DA7ACC41DDDEDFD7291CD4573DA22739C7785EFC2240B27A90BFCAFD1AFAB6C2B0EF5509D0DDF349C173E9A6C906BAF5692C39F6E0D1442F84AD2FC118A14B12C3AD5DF8A79056017F4FDD76603717B080E3AE560D7A601EE7FCAA36DF7289AEEA59EDD0B73BE91782377150F03C2C2ED40F33A250356CA17E153480A7E848F090DDA29C65FBBFB495FE9B7A2BEE342C7D422F28631A8C9CF643DC76F07F162DA1AD3F24589971032796BCDCD262F55A8C34FFCE05FA9DC001FB35D6FEE75B42DB6DDD2138C0517D003512F0EA8E982C2ADB5E5BC1F19B8ECE67E4AA1681383A97976B6A8F2025EA80B1BFA1796C27F6A54C583711E2EA46D85C515EAAD22ECFD68C5D02853D688302704EAC4863DB1FC69F8C35411EC6F4A9F0A7E7B3385ACF6DF805447BFE863181A945E8E7944770340496F5A19CB7DBD0D9010B7EEA3C585926408FD40F245D852DD208EA97CDAB0C16C1EF80B3E5BE77D953A04C1B6F53A23080B54F439705E417B9874B3FB524794D26DE3DDE88E9DB9FC36B1508754EB51D389FCC46F822F50FCE199DC14E4B4468B8B15A2460EAD05D0C47668C05A2315748897AF99D320E70F2AEB96936D7D739F72ABAA6960DA6A3996988F6A3F7AE7772D49915753B936367E022179E69B6853E1A83B429B42BE19EE03520A5666124B657D2FD6D15447AEEE45AB1FF4593DE9A2E6D152C64DF45C1F62AB9B67257B2A2115D224850A3AB2FA028F8F9FDE7C9A9FBA2FD291346037A1B4E00B0642B07ED54BFD70F3DCA3D1B8628627859611006DB2DD17A351751F85C60028DCF21481291526B1DEEA4C7CD2D3230653E6FEA1DDBDFE1BC3DA93FBFCDC5A405975A5DC68DA0D8338EFBD6CCDA1F2374D72FBE007599E81CF7D5C37985EA09C561A1EC40A70784FC606FB7C3FCD981F112C599C78B15B7739AF4DE129D489336BFD3966C10363A60E749162D1D8311C5E850B22910B999080DFC86D1787C35768CD5470E9F7A51D4EEBA71241DB57021D6569ED2BF201C06E235D6621B292B686D23E29DA4E81C873371593CB07B3DE46E91FAA3D4A2AA6F62FBF6BBF1954647E731AF4B99EEB3C0FA6385699F8EF2D8E1D7F75161129A1C7F8C7C68B906EAB8DAE8BBB3541FBC65F36BB67ECF19EBEF54BFC2EC4E1130A2E4F36B5644A73CB0E244738B6E5788A4B4457291B57F1FDAD2C11FE5C7DCFD4E742A0AECC460BB660D7BFDDEE4CEA074958AB94B6FA4CCEFE02FC7001D3A2CD013684A1ECC2E2F6D90D246726EFFFA99C12D1FE4AD10A6BE38D70AE3DE5C4843FE6CCEEF587191B56F666C1662F5C6FB03955C557E1B4CE247A2806DE39EC40CF8B97835EB0E3F2D829E0FEA02FE60C934FE72A25930FD6692B9ED979F14536F406F04C3CF0BE98647A5967B81DFAC353A2F8236FE147BFD7D3731C49476C3191981C9AF239AE8C72570C6C53E7AADD48E721E623D6CF11A1E386EA7C30F070E7AC4F63FB42AB74881BFA3FF3E8A35EBEF04D39B853DDE0FB17DD9DAE37A76C96FF55F64669CD9521DA3900B7CB297E813521239D87703CA395CDC8D8CC4EC21CB10A1C672493E013EAC0298F8076C8E0B56AFDF9C31EA01CBC1BDA4AE17FE103C9812E940A34EB321BE7BB288CF8BE7017AA58AD528C9DE09E269B10C6FBFBA5E8B6883FE7E08A0D184F8561FE3F43582CA045DC25CABA52C0157495410382A048BA67D051EA115D867D780CDE5EF512BCDD14489C43604F86D929F83D118B905C63BFF451FF3540E9E220851A402BEA0DB1A7CD94DE0407AEB9CF862BFA3FA703924D0A4803C463AAA827A04B0F09556054F27DB98E22A96D07F81662E0E910836B9423968C3F002E605BB688720FA7CF3167140BC21398B5E4968804F3C3065FAF125BB6D887C869FE3FCC27D88E048FFD0925E748C096C74BFB1E54A8FF6E2C838F16769FA4D8564E5CCC58DAE3B102EA300361EF89EEC689FB5BB0DE16C5CA98A60B8990EEC0006A147036871FC2A6ACFC6A6EC907D28E18A76560A5436BBF9353789C8A5DFE559FCD68C117066EEE5B00F349D6591E104295E78F445FCDD3D6883DF50D1DA6A04541C7E8171523FF36A9C072164147D14985BA30FD449667B580D73B06A5971B720A8B1D2A6896FDC5E4D4DAC78353ADC3449AA53919AAD15EF250AE12E9E40B8487F66AEF0B15E42BF34AA816F559062EEA24EBB01BA369747B29404DC1F1108DEAD021898298E72F4BC1DD821E4C88329D6F03F971F554A87FEC87F34430ECD1CCC6627D8CA49EEE1D5DA6704CE960021C847DAEC2DD544D4EAD2E2086058CF131296B7F4FA4B71A1DC6D6C642A256AE0C0EF9D1211EFA3845B12243BFBCB4F423E913A2976C1015569ECCBC159AFE70F1EDDC3AFAAFDA45CC02EB60BA0DB9EA83EC604113479BE848F381FC63C63B3111DC5179A637E0832A26EA32555908D79B308351CB104C43668371DB32056BB63540B9C3E5551A063D2B525F8A016BBACEB402CE7D7072CB9F37CEC13E1EAF7D867534C013D78B9DFE01C13DDCEC7A3444AFF9E182F12B6901CD9A70F21908FE692E4C0536B069C89685BFA9D973983AA8C1DA461D18ABD27A6A717D9F2122BEAA9BB1742622F51FF616FA2EC3A6D4724A3A9215D7B29A1BA372282CCF60DE90B3834FADE6E3743AD6B2F9B7344F45A29740DD7DB2D642F94998579A5DCCD2EFCD2F7D08486BB327B844EB19ACE3B4FB0D85F8A24FACBF318C98199A0B2C7FC2CCA59AE84A522890E22C2A7207CE91623362C7DD8E9F946817C75B71FB9654E2B7F2E83E46E75ED5638741E414D7F8E70914315F0E37B5B4E3E1CFA8288B1724113E4A00B59B7764C2D61443537849E77083FD13BA652001F39DD9BD4B20AB77CB945C5EBE686A0627ECC52F38A852BC9E1AC8D303E3B96D9D086920A19E5088054DECA635E802385600F673D3BD0A5CBE7A5B9BA8B1C4B73B9246C1A1C1071E5F98ED42041037FAB67184C89BF4FFE3CA0AE2A9BCB020F390F0B76DE2B8AADBC99268D3A1D467A024184CC9A455A8F2FF287A4C9DD1B0C86C8E176BB15B12023B291D44E7FF0C44577F7A6D788D82A75C68C9F5BBE504E7D64FD2AD18BE209E85C45627FC045BC81E3531A2B886173F3C3029D1FA98C792501A4942C72A7A892232F390CCBFD7863AC38D837755011F919AD8934742D0795523E6D48A958BACB9A9F7B9A5A9D914C37114CB111CB536EED3D753D6333219EC993AA5D39BF74E8E9FA02D8BEFF369EDAEC67A5CBD128FC9BA6F82E31A4C59D783A99912C7C389EC708824AC7FF05D56BA6D228C0A9D96324C6D9725E3BE17C44CAC7C4D49235BD15384F95345DC36519466A13110A58300F7E3362295DD7069DC6A88B542F2BC5C9F33328D9D8D1683902C025427F32FD562BE3F0680FA05851296E15C5FC67E96BAC924407AE6BE37E9B61D9A6383FFBDC6E77CC0887726C474AD735BC50039AEC665D827B0F6BCDF7EC87EA6BF793386F2A65C997545FB93F0D53737C53D00685DDC13960AF2632380F105840A1699ABE53999C568978ADAFBE21913193DD0844D89BD582418BF8B6BC430FF1FF7750AE8507495C14DF21A3437AFCA7DCEE7B1F1247C802081FC5ACE5B125AB2BF11ABAC97E201EEC2A8C90ADED920728EE77E1FE2BF31A222A1CA5263586A16FCF80E582258654D0793B1551EA3C24C4EBD27C52956ABCE6ACD05FC2F088273FEE8ADA0256F30B5ADA8768D8E9B70279DF95AE5CC68FFA99934C7520E12F57D213FF18ECA6046A9A3F32E280044023220140E2485A3B3EF7778006B18D4A9DCD177D190CD903CAC1EE0897F58762299A0E026B8EEC6F4F3D0BE1F070C648A2D73869F22DDA21246CCFDEB7A9784AE967F0DD0A2011C637099AF33E0D608AA0A5B2103060CA1A6718328D451368EA3049FF60FB66FE54E778DABC48413966EA14E22083A884E8C8EC33F885093F01B5E34477745A9F82C645C8C5498306AB00B78684252ECD74C163BB8AF9B49AA03E244F4EFC4A2E7099074F512D465C84773DBD1FA96D26053230C192DB289A1596E60B96178DD8CDD72FF14B340FB5830696B393CA319649BA56DCD517F5A08A528350E2D9531B3AC187414FA6E06C0F05D9987BB2FC98F7C8D4F922B8AA45287FA83B900ECB6C9F02669063296F1EA389858F6D2E10228E136FAE35F21DA151EA7AAEC593E5948536B68BE58ABC57771AEB406A0C3F931E7DCF85A350A3558E5C1B1F70E6299EC9FF8B9CC13E905D9902FED957ABFD7D09FB84FF22BF8410D387BA85D8555A75F432EC5789498EA36CF235276176ED48D1E374DB5C2DD1A64714D64FD20D4FDE2A605034E4DF607EC6E11D0465DB25B9D79C83182384D64477C126E9B8558489F69AF29730B4D5650B9860326249777DFE9EA5669736692D0780E9BA346C1727138F5DDD4914487CF32A4E9CB1DDD5617B6B45CF8C981944684BBB7921C88F5A25120047BAF2D9346E220EA08AD168B30A1B82B3B63C4913C708C02258B6AEF1CAC96E2A90EF7D0E1EFC0BC5BBE05D286E143FC0CA4A23833CA12727F0F83079F7BA80D809D6C739EC4D0DD9CF75C4FE30B12A892096BC4B9167F16819694B2CD5DB4B80DE8DE988AD50677695C4FB3E0940913C250645333B6F55E36F649A43C3A39ECAA3DE3EC1FD4F9F65D9F7AAF75B60DCA3BD1EC06495FF5F1D4FD6D83CC6316E40BC469EE5F44E5AE56ADB229A7CA5CA37A1508531E44B0142B4330048350A40FC82279D25A87E043240B4BFA7321340502F0D37073DF068596C4753F8709BAA2A7264ADBCF5F934E857B3225CA47D8A182B80D3DF24C3612FE4931EED565BE563115414CC2B6BD102DC6BCA9F104CEC8B24BA5465FEBB7E9730C928D6FC1144224232A990F8BED27FE6D28AA35A91F90D6A0AFE9A7E37A5BAE51D8AFDEBB7D5670F2521095A56862354D2AD946663B4BBC7049ED1884347734BF3E78ED227428476F1070F4DB011F8DC86EDC5BAE1BEDC9C5D253E4C5C6816347EC96C5F62AA3298588625304118EC32DB2DE0597BF2056046E17C69EAECFD26475066AC54D40A673741BCE72F138DD98F1939598E5D94D565C1337D1179DA057D4453DEE27B5C04777EA710D77B317A6E8DD3B4F26A6A9B3F4917A0E881E5EE528462508DEC6762DE2BC3F8F8C42E8D721BFEF7583C99DFA4D1CB49DE2A303B67AFD505F8A3865D853BF19C4A0F7CFA92F5CB18CD5D8E378A5B041449EC9ECFB80E0865CEC1734D34BC44E664243AA8F605366CE9F849700593C76BE0CB19CA1255B074A8630FC962B50106CD93DB41C6E4DF53B6B1257872B0D8CE9AD5F245C3027A3F75F19DC568ED1E0F60CC20DE625241D300DCDC8C953676363868B680B471C2EE623DA408C7E030833DBAAEE8E701374156A6B785E0EC7D1A0A55A599605BCA0FB517EF99939889C862CD790240709BEE0226DC7E8177F641C747A151A89340A6CCFF6982EF39683325390DE72E4451BBA74E3CB102870F1E9ACED30BDBBEF160A49746A23C432C3ED7EEF580969110AA438D00AA03F54E039195D61B7840222AC994784EEEA538B7E830A6508AA0B460DA4B4C0DD9CB052CE6254774FB147F7E4F80214AF1FAE59F8ADA6509123438E90AC13FF7CE71AAEAEF7A39C434C3824D49B894C389CF320A430A7F84A5F4972FF98C388D61C936E453BB1A340528A9FA5F0B0DA9543275435E91B0F5560E95F9AE4EFCDECDE1584761F8F60F0280ABF40FC5834BFE456EF66AF66ECA1098DD49BA2CC4B12CA9CFE256FBEEC328D049BD6BD19E2358502672F029888DC3AF3350BC2EDF5C4E07D59DF8DB9C14B86F1FE384227953E98978997902C8F237C8BDF300A72248B3DDEFD52577BCC0F99F75B92BC056719243F7EE67932A2DECFB15B59C95B43E183BA3DAA41B97E177D03CA320A5FD5D7E5A88C4D54A8467B883E0CD5924912642A65F191DD4DC2B08DD28EC0AD2B1CDB86EEA3DBBF6D47754B1BF7036A0BE90CC3775D263A5BC688844BBB9B1D9296804176E17C55D6DB888C2BEDA3D546FC496EAC5243AB5D51686AF9B29BF6D4A138BECD49665458B816BB09848CC4318136E6B170BECA544E8ADC35D40DED979111B8B1D4577DE2FADE6A1D97F9E82E9D3F069F3287E559E99224C6494F36233453036DBA617088D619395518B4E6725125850B3121EA957E721244DF53FB343483D27E6C3A53224B38C11C1D64CBFCD7041A44836AA606D170A80E84BBC0973556B9E4B1BD776C6A0876D727BB0526809700A0EB318BED67843CE4A6BE2BC10FE9D8228A4C94D7A506760E580E8A0E544ECCB07DD0810D79443046951C72E017CEE5B2C959754D477D706C3E043298CAD200189F4390F59BA27B0099DC551673B5138AA654E054676BF30DC61CAFF444CA22EB32E5952A598C07AAAEDDB83B8B3789EEF97663ECBD33FE356DE981A24C29DD5217E14DFCA30C0109419D8765A061F747BFFC1E221D3ACC7FE239375A9548483543599C837F48EA189880278AB2E06EA44417EB945F20ACB464CC458E249A8969273A460F063C5FAA907E42C9EE304B27C85BF41FB170708969A2BFDEF37B97DB4A16BBFE07370039369D04D0A9155623AA390ABB75D47FE2394E4606759648954FECDF4554F660D3176AF33153A9D7B0A935753B11E6C7295B0FF5680A18A42ACE577981C500581F741CA23DFDDBF22EB6511E19C016EDC96DA545AD16D5EFB9A8F10C45D78E01C74E3552FFAF35CFA1BC0C3DF9D14C1BDA9D510FC7C7A755C71B5273CD7CAF3AF44AF066DCF18B1B7D6C0D546C9C0B0B1BBE88F512824CB8B512438ACBB23CAE1178DA05DD67DA6392649213805D680AA61D26092BC1B2CE50CECEB7541D7F10808DB2D4A6B12841C8B4B6C5519C8683C998A74AC3BC3CC44D81B606A9A3174929E4AF06E032A24E67E9C66885004F07D4775A6C66A8F42F94920749FF902A8F1C3BC5A1A35BFA24040EF3B7ECD05654CAB696D3323485EF855361DB57A65C5AA0B238DC551ABD6B4A8DA0EB987A82F56E5EF05CEBCB4155181BBC61C645B2A4FA8B316FC6C5B3BA12829E74899D0A42B42821094B57E6D221FFA108D5D0EDE9012A88A2BC361D90673BB3D19D6355B9239131B42FB3CE832DEEA6E4551BF6C6533CD8DE572ED3E5DC51BC1ADA13C0C7E4F723CB964125DA08E0D08F1CFAE124568DE55E2B39B1475DC8F6558ED763FD7EC2DE373F4C54399A0317087630AED2A64BF13D113E8AC32E6318EB7BC0DE20E846C0CACD876F47CBF79DB6FCDFAB75B371156CF74B443E8DACBEAF94203037BA14E821A66244BBB7E989567D176FED12AD0BACF79834D067662C11422631554D1ACD6BCCBE23BF1D0C042C1CACA4B9BD01D6C5757E52877FB5DFC92161C8BB15A60222D12CEEE973812B4920B38547304E720AE246FB503C9F97BBA79640485624DFA2F4D508300BB80C70CF8E271770876062AA1EE0F548F6F7D95CFAA17FF1FAD847CBF6CF90B01D29C33B43473379F4B5491532432F6CAB98C365B84D357B48B416C2A00B25D07594ED4E4CA0E1BA5C92AA2F1DC7A6109AE8D71B9F06440A770FDC2501900B9EE466DDD853CA5482B4636BFD58AD8B24D91852ABAA0A37536D4118A122951DC78F02DDA8EC8029ED938125D759B24C90B0FEBA1F589AA1C10FC9597CB7E703D93AC4AFA43D3C239337AA454BCC471CC6BECF89266F588C3EA71AE50F146097D9CCF21E75790A5F3A252977E4D848DCF5D96DDD4FC1D0CB583A28AF9D7648BDAF8F1E94A83CF5349B1F4AF63AB1C66757B75C58D10F27F8619A5A6BADA67E841B6429AB40A09451313EED76B93166B3A5D5561CFB6421D83A5E343C8D277389950328A1646C3DAED357BCF2E8615695D7E8922030148844058D177D4E68A8EE31D5D810C73D9B38F6863083A8266652DB82A43615A45E6D14EFDF00A4333404DB65194EB432187C1EA7C48F819C34E48EBCB0836C84534A238C42E0B9BADFBB15B220DD0BF40F8C0511BA69EF82FA57D099BA84EE4AB6FC422442C3BE1E8DD910B4117BF4047D49419FCD2380966F665001FE4793F06F272E14E1893D502BD3343AFF5EE94A58CEE04E745E72E51124AE8013EAF2C2141012FAC54CD25E97B6FD3F0891BA1DE663EBF009A7008222F461B4E7D50628133DCCBA7CD0AE44BFE9F675E094D972D896551A1205FFE0CA8FCB739192488D2BDDD4E10493B43C7EFEF60888CB11ED68F34630623206E81ED04D300C2C43B6F27E41F18241651FC6B84C19EE1EB018BFD7A0D4483B0B6DCF57236AB27BF4CA17E52739E4D1C508C78F6B6E9FD53F423AFFAB01F75A9B1AB725C247492DAE3227ECEE2D60EB186BD8972FE455C393919E6D9760AD1BB706138824FC3C9EA0F673C1323366DEAFD260591DAE60AEA2DC22FFE5EA2421F35920550C0FBD78C4F6469092F89FB6908457BC81A175D75B1F97E2750194E68705B9D1E9F762068EE2FA9286BCCD3ABE98007AD1AB27AD2A094C6E164C5BBF88CD4C5F325E4E91FE2867A94E9FE1A78DAE2ED1C11CB4D365EC2F3888612FF58B493268645BE9ED69C196857F8C995A42D5CF4542E609BB35B0BB1B4BB85295ADE635E8FA237C5DF471B8CAD7E98420077BF1DBF6DCDCC1322C8BE1B8DD5E228B6E6E04ADA1D533B0C6221FA83BE7C19273F9AADADE041CEAE389D0572D2317906005BFAA17940026CCBAFAF8C7A4BBFCE30EDBF4EF82902E181B41A1FC006AC01BE64CF6E4A4A14FED995D6F323405242BCC5797E43276ADFBA44EB8E3EEC029292D2DCDC8E6C93AA6C02766308CD367D3"""),
|
|
TestUtils.hexDecode("""
|
|
16c069f82e6f6efe9eb825ae1b6e908e32c28e3b0ffc443e9472356bb19fe58378012592c1afc414e0ff970a13a9b8cb51b968a7ba9a2f7d0c326b5e1d074f5af742c2b548f87b8cf1baf45f86000801486773a4240372f8f1c05e0e9ceb1bf5f18556c62765cd06c472781f73f6c766b44c2f94e436eaedf8612cd1fe381e645689cb6e7befaf031823029f5a6d8913e2245fec9159995956825ee81fd66ecac65d960506f2b3f58aa4e9a6606bae585205b351c5654b9ff455b08aa9ac45ad3b20e7619a3383913defcc42c0d25acb6aa2f3d4e17e4febb6dcb59c31e853fc5db50770059aa70d8d3c58d3b98efea00f9756260d843cfda0c079fbbd4933ff8512ea6e379b7b1b92ed4146cd0135b2c8ac61496cc70b55de5eff005a310eaf50ea88666e342850ec6c22d2d5cfdeaeea40321c8278e341b8422bafdfe71b42cd3483d71df4c1ac8bb0c86a72480055d272dff99203919fc2a7836adc985befb8025e6e491957159183949343d316004c075332466101f14aa78296cba1072799d978c1b36e94f042eec38b989e0c7e40db362fbccdbdb56236397435b65b12cce3f13bf55abc805973dde8f9c65157c3a3751209afd01396ebd7bb20fc16229ab289848c1aa48f5bf86791468df8950ebb317d72c050270f275cc219faad9980c69c377679c4e137810813734726ec78ce545199e43552ed33ab3689b6ac18fc54fe847af97fff3e2d6fd2bd6885fb675278c4d897b507d37b5cd1eb291d6195c03b5beaecfd90244a497c69345f70a118f88ed8568386b1af2bd23c9d0f2763c19b669a7378c42942a242c3721c59a5c0390137077ab10d792e2670da72dcae6042778d691ed96dbe126c2ac03e6f5a71eb1cc363997ce106c6111e3ddf50da12a23447af30d684548536c2402b60b75805cd0a8ff2ce7b4d7863a0baffd5c0b98df8dbe6fecdc37b2c882027f0d5b78ba3bc35a352d419978bee8f39faf096d31196590c415044500140e8ca976340496f084eef29a1a1fdd8df215da732f37e140aa48aaa393e5d3af9b266f98f5ed1410c9b4c88936f1e2b225a6e1c99ee9ddb7aab09b55be15aff94d2f43a8ba09d673b5d1327ea95f42fd26b4e13cd02a6a26c0d20fca8dbea95e71a9d9b6ce80fce8c7c0cf0ccea591916e4b9eceb3b42645615a40fd063d1e0c7753211ffca88a67b3029d6f7e387b11ca34d5357df38f5d92042b2f9a7d8d27ef6c8ebbce9377568cdbdb146d2e15858cd7133b5cf242406a857e4247462d87994959ab3b350cbdbe521f81b9375ee660b53eb534195a7cb0751c54f3af3ba72ef2cb3aa6c748270a64b17685d046641c20156575846e42b93fb1c754140ed6a6a02df039cffd970c21349e2bbcb6323815f1849d38052e6bb143d11890518da4a213434b820c79994586638b70d6c006acd43e43a79821478bba9ec09f9442fb15308d01f533c460b70a28c710da2b3f4ac7449129081081c4c87a241ab2f9483add71974846a3f32c3c96a08ad090098f38021fdfeaf50a36261c728aa6395b2114a88cf9577793cc7bfe45a7e238b997bd35b2ffb0c3992f188de916f7c004c5f83da5aac274a47bb7348df3590668efe9c2503b2c316dc074262fe874ea700b93a9d2545ad3e22b395d294bca1a2b5615d259744c56cd3d736be2c4624a1302cd31ef33f75373d2bf8b22a9e85db1df34ea4d24f0593cf9d494ede243517e2618dd0a6bbd0ff46987995805ccc3439e39babab22a53893223e25eff5276ff7a5eaffb88fdd248f3b2a4936ae56bfac6d778126930b25f05bbf031fb0574aaa129e4614eb1a38171e9d19b7fa0ca5fe7b4860ae3447bf2de8a89b8d0e85c7e130bdeb0f40e6326b1167f744e2b664e370f8a9d31f662364f442f1cda1da1f9437ae6255367e242253a325de08f6a12774612997a2f8b2a6a6e084ba51a07947ee7f4eb68545594756582be6232224172439c1105f46da151fcf9ca328497f952151b38631f4797f6d6ba367ee502dac0b1c5f45137578a5fa947e311cc84b73c56f058a1265ca45c10423aa165f08c53bbbc7ea42309297f7f37a98d146c48a7cbb566e005b76ec243ce6f7b9231428cfc17eb4b1e0b8d3002628e3ed7bda600a5840d4c1b2fd97024bf2f9ed637b521e8e1645400a7037ce6db2bb696b604d6b5f4b40a9e4eb443517c00a5ac6c1859dd18b6fb772155f2d8be3099b638602bdb9e3941d31bbbba3cc52d7060f7b45416c9923ee3697caf14e7f51361051bcd540cda6a14a71cb62e033603bc9d58ecb39ade2144b13d1746f0de2d1742cb6b34d91917adb69634084e08b9b37dd2c62f55eb64ca81a60ab5b71bcafe2c42f9c8d9ce59e6be9c2f0019c3d96c6ab738cc9df2976f0b9c47579fcc2d72161317c541d5f7de0bdc19b6f7d3264db1079cf3deb1619fb6531aa0032b19d2cb2ccef9fd6c1149c12b701cf8387768c6eb004fa6bb876f7ec010abfcf631caa27cf36d30c1738d50e868214ff8989ad497d0b12ed2ae83be1772a531610e4698bd721630dc427f07bf6b4356d720f335ea66969d14b246b757ddd96d1607dcc72d9d36fb10f9a529056255b9f962ba7a02950a0b9c988fd381d801af73d7d9abdd842cac56a77c5e2a9ab91785ad17966a2fc31e42a663ac583488081c236d13b82b09933afc57e25847f8511b0cfcf472ca6b21898ae47ca8fe674a55f8737053ddcf963dce0568839660b47f2dfc9eaced787aab897d16cf1a1e969f4e5fff7a8ec5c3ca33b6047fccd8d32f4c3a61d2c69075e37640d9120330cdb9732ea9325e4fab3e94ed580fc5be75acfb14468fd12f6e4cf87a7ac340f990e33ee4e1d2cc48a793c8c480b59fcc4bec660d101fa1c61a50b423c16c09a29d2dfce1d2011d4e4cae986e4822090379c17ff077cf56d72478a9bd703c2ea037ee7419b8b4464388d3bcd5544d3a2ebf12be85917021388950c180f2b020ed1d6dcb3a7e0770c7c1f5a44030bb4076e568996c307182b103050bd43ae645aa96be787f1d82cdbd629220104bc5167c0a8b8436d828cd70d34c9ab0c039cdb0a1ef137783e92bd7eac1c995268ada3e1e8a494fb00c5d678f5b6010c8687b57bde36d001452b0a73912f6ad0f7076481210a975b44410fceacd0699fcf7c1489e42728ad705600cfe6c2267a9c7979274e73bc2aab80155fa561390cc9460a93f29c4db673b00dd95d5421b8c9ab003fa7b48f82fd6bfaa264f0debe6af3aae7716b66c5533c94bc595e646c38b004bfd638e261b14562ae061164db1716208f79e5ec5e457a9ec47d2b0b7b7b68a62c95de164217b7472fe600a52a3aac43775f267832bf98ee2112ca9db28be3e8a828bb1ac676178ed490e0d27fae273a7d1de1fbca15aabd065890467ad7d4648487c525bf1ded91ae1bd3a99c6c734d580c69895dff04f3409c2f7a3e0416b8a2c53c75dacaa8bc020c803ad12e8a48f850737fe8d88f08643bb6863ae7b23103b0037255cf87f27aecaa703db904d789c61147b8307928bb184bf94ea902f14032d3ab1d6d13066ef6dcfd80cbf155f68024fd9fe95ffa782b2de5c97e1027e7f794c4ad6a2c23e3b5c2de5289a1f96a4f549dd32e9e4cc07771da9d1c170a315ef9d6846bf10dc97c1ec7b748b5cdcecab920d93bcb5a706b23e70bda6ac80b8efc06eb3594e5edfa4326caf3afab8cbd479f5c689e86e20247a42e828e589d831a6f1b2eeaf747f903100540ae7d725b0e48a3d921c303e13cb2a3ab5f8cc20502b90ffbdd69cb42ec092cd2a24ae408436e77565084a7bc20742fe0983744d7c876b646b1385a383bec18fabda857b91088b8c7fdb5ac5591bfd8b4f5c8f880509d0b6a54ce45d15c639f3b818508c08e6ed4a37497b2080364ddf01465df73e2e91a7a9424b10ed9a6bf1f05bf559eced1d0b667c35885c43db657520609a3f55017f8ab363fd83ff7a88974aec48d9b359d25ac9e201302102b8e62ec176918449e7fb745ef5dfc03381237e259f4cf200714830b2ccc4925afed71a4b956d1bc55b9aacfd42aefd9d4815a6e1f6151fdc9379e34faf98911e2d5a64152c426c0e8f386e06a86190fd5aff238128a62f07e02934356511cfa2212cfe3df6d5c87cdef644e7a78b34a95dde40002d4fdb43243a2f33cd3bcbe00d3503451073c3b13bc772f98a579c72116f57f7bbd07f966bafea91fe80541acc19e4010723daf868ea6b5760e66d317090ae218f57ad67c2992b36e84d513052eceee456c29cf57b8336516148ce3835d6ca526913cce6acb9a6fa1e0ecbfd9f34609a6751367c07a6017a78e078f2627e9f7be020482731cb93e778728e0a35a7f5bb2d6c4c9e893f0f7581effe6881f645223b699367feb54b8bae06a68e025a9d8ff507efb1ee6a0b9a74b14d47c8c32a4188f98d9b359ad1dc9967d19aa737355356442e659db0097635fd03e6d2f629380a5a6394e28a13ff69f36ea8f0fc4b70d2d002500f988db49c8d4da0a71e720be07034ebb3389b2c75e3c6254a82e2e841ea0c99755dff1ae01e51367d4e02eecd304932510a947f948007414e2bac773d7359243b8bb9e973cd4a11f7e6406f450e42416ad0927b133e0767adf949efc3dcabd9b523dd92b63add6c12d211edda7dcc73deefa427ac96b72589ae0c9808e7bf62ac31ed8aa5bbbdb33db466bf8a33a7e3b170058b1cfe84c96eacf005ad0796aba2c994c375b79862fcb6cae4d13bad1dab2b838c657a55f85b988892f62c3581cf60f24478735c04288c1fa09896e7fccfe1a102daa51c24924ce9ea1ef8831c91d526a55ba7ef2149e0a5045d8362329b6e3487ce8a7f0c33a428149c55543bbaea26b533ac8103820d405138c17510970cf367b3e3a4c46822d10e05ed47ba4c3bcdd02eb7e4fd990da55a518761335f9d2efa6878f8d0e29b2704d3af11dec3f7a8c2fa9a7104e971ecdb7f18d93ad2a1ecdc8a4d1dcf8ccdd66608859438ed23e5179f6594c631103828dc2d9f8c784d2a4cff15c58084318c18571af7940cee704e9f3cd0bc758ae7cf9d70995f1f1422bdbd2bc441831aa72b66253be6ce186f6e93613f2d3888a555b578481ca324878518dd9537e5e1e7b27094dc5114a4e51a776fa8e5e86c556f45145cc3216569c17fe22bfe281579a6fd70334c574d1d7aa5fe461b3c0262830a2afd4b485d348babfe81a3418bacda574019077cfdcbef5de1e73c8a8bc3eb9113713b563da34073670cde452e84866d688ac9f691916bd443b02c8bf15c672e1e75b50156e1e5254fc23e0b0d6fa530435ae5fe06132d691a3e59489c7102aeec1ae9656aa334321b8f07aac206dc80cabc6b3c8aeae941438ff5cfbfc494fe08661ea496b7a81cfc949d60928251ba6217813140d050fa68c34dc58771b80b84e79f469442584db07c6b5ed39a5f83398965b715966a3ade89570b09a501860accccfe10aada86ae989bae9adc4ca7480916e1bd4733d6484959e4cd199086f413c17b61e16f42ad93a85ab8ee86e09fc1dff1087384ad087a6d95dd845e457f740e538faea88985df42fa2e0ad89c8885de6e0b1514cdfff9e86364dd37ae591a1843f60f71b8e8b6aedc3155ce76d1fd9c4a20d077050d7942e8369cfd9e0cbc19e62e32d15edd34b7f2645dc31c1de6ac3c36c5850d43a6c479e7680f02e23c8870c1730ad163dd31d38e1e7de492ffebab9f3366e85dc9ff42dbdd1eee8bf448abc8017a2bcee2367e958a01986fe9d7083e45e262595937e3287b499090d4ff466f52824b032428757eac7756ffe76ad43e6f70c98b4e0769ab91695a6ead1a1ed45ee36218dfbc4994b7e5227f0fa0536a9b73b01701d10f97d0c4b1bc9adfe7c2bda52e8e042b976a0ba1b9d988acacf9481831cf6881e70b21520cb0abfbca56bc3fde95dfc84de3b3aa9d4f598dc5aea2473ab0b2d9758b4bcf353c3fc2c6a7e487cdf1af90ba9b5a464539e788b86077ad0ef611a2910f784d72c75169ca095e14e4916c346e55cc1bf042b0d578d2923580709536adf49bbcbb7fee7d4c8a61fb39dcac21ee50f80a7bc76e82b285b0bc3f0b0fc9e70563e82ae65345d521a5ecbe211dc07acfc85f707c6d23326124eae586bf2fc77b6021630ccdb6dab8569b00374a1623f1a99138b870bc25d20911836d1aa907e9029436cf0d17dbc9bb350ecaed0bcbf4d48a4a7cb78e602e33d13f243347496765c40c8b786d8bd4ae6d9eb6ab879d4f56a004f9d6a3b6e98e2ab72296b546cc34abb697e7eceea1273f7d8658e60112932673e090be0c212d3d664237b91714d93edc6c86ec4a3c98731f7c102652015d58abca17b412ba07502d79ba43963dabc05bcff231d342951f36dbf8f8097e363595dcf7141215284cb4517474a85e0f0212c2e3c687d868794d51d1fa9b0cf102a62a3de0e2082848b90f31f203291b8bbbcd0eeff6b769095ebf9ff344ca7dee7eb000000000000000000000000000000000000000610151a212b3238""")
|
|
),
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
a01e3186a88928fad593837cd6f24d201ab8aa8cd445521805be6ad197e670b8119552cd53b89c7240f90d6338b72556b13b536a015192d33c5cd605381bbc81a8b98cc0eba107cd87de9f70329dd0fd02079212805b9160fc2a5a9a60d441e3ba26dddb791b77640f153b1b81f3e48274f1d040fbe3bbcac672adc977b3de8fcb26892097491c424624b08419936809c44980422d0bc52858c04d12246de036900b1552c92082e212294a1491d482006244014a884d5284810b928513c5042290485a462608c7086192118b88699ba621a1484823148ecc442e44189091b6090b4701d016901a036218a920a40622d0220611b18110164e8a022c9288410b2690d9882101118551803020392ad188245ba23113110ad4c808d0a281e404026246519b9889a3c068a2b6115a326208344a11c3895a982843940c03021121356c0a218accb24421c42900480aa2004990808002496513010d882011c1386520430644b22d00928c52224a00a8099c822881224020168d031166c49204012011e3104a044641598081414665d31422080788990884d9026588224610812c88462888c44511908014846180162041480a0aa3891c345023b1509c826508c1011c8485a1480502223123464c40304a11256e0312244cb88880226891b4801a21500c27840cc300c2c64082182e40a620589044e1a251c3166d5b964d98820404152180a0649a1862e43812a1b84d503005033989020324d9844514420d24a14424830488949101c22ca3067014284a89340458360c92267282968549482223c50980865040448d09812100048c08a24d021382849604003286c8424ec9464c1c308a193046a0828c18b62543420401c4205b90815b084d220268081405c1980022092c00a1114002819b967001b00520234911c6219092881b8410e1300881840d0a040091a445c99285011330d84850a0b6711888611038108c3472c40040a4326843b0610c186a000600c2a601dcb480240386a000058ab6440cc281182769134565131090c4101201498a10b10922a1511aa92cda28251a844d4a06715c3600198490e2941124176a94164c4212490b0765c1c80c2006240ab38954042c43422601434ce1c44d1ac450c1b040112141c3c461191531e4882c1b260d10118148084e238790caa04d01040d032284c9028d0cc05061a20d8b884082282141b6080c208d993640880229d1a66512c988832828e44022881031c1266554306d19231049804153882c1a9745db264813364dc13851442430dc886c00c349014306221008d296241b124a41128219c705c490898b16209aa06841b48022985059066501801160285101c1459994889b84800c02809c4482099661d4c45063a001e28869413870a1b42118144d90c848581846132966c1380060b41120008409326c442270443600184010e42692a124901a072adb125210498220379124c52c84c2840a3849e380410b2389092892d4a071a2b28000c511d4461151367010b08943088c6110720a014502002611b650d182250a24040383099c3091e39830d1b471818249d21680c44600a4c0209836488912851b920cc222660b302112050918b384193862dac229cc800c62c4681a990920962c10834de2842908222aa132821b09856132512015701b1484a440650b4790dcc8801a10311813404186808292494812698c2470981826a0886d14314602a36003289120098823062ad3268ce20451148970d3366c02a6681245454a3092a4186a5a90111b3864c2109191368e440882008344d2920c143149d4206659404d219444e3325190a0899a322d0cc530c010928c408000162413186c204872d8428404306e18a00cd4b24118c8701b22681b266821c9254c1288220091d4c009191950d8c6081111262388881cc8041125460aa8449c444588124ce4a42d03a311e4b88858928c18966c241521da887023264081100540946403a36864b00149b489dc26614ca440211342d2465214456c59224d0c052882b43159125121120844a049d040290cb270110711d932645b060620216089228c03a911caa464c42401029749c9205098483283b06c19290e61b24044a688448681593810411048c4c22149104591101010c6501a3940cab47120a22084802552b011422050424804d1808d0849324088044200081b804d9136922feecd418babb28c61376c9c351e1bc00c8a240f716116db00b6eccbfdbf5ef2f846486c0b7924448d1d803c741615efea5fcc8e10c6d62b9610bbb81ee811d7893c49735721a490539c6fc0fcbaa4e39437bcf193288a48dfd1a9c0904bc7ead823acfc3c3a8a0d794185088ee6f2d2c3d52c1ffe802dfc3c6e174cdcaf2e9157c43dd2a1ab564566458ba32e883df122b81139981cb3c39d0fbc5ef8d99976f3ca7da7774be9356083ee8a62cd1fb2cb75992485d99e06c3b80e730ae834ba0e9712b03b5043ec23ccff02818b633d08adbfbbca8c73fdc2e13987e7e41059992305dba7197107436c150f7d6d32d5287f9525fc223abacd6b738e5c9e0224f782d572cace63db70ad231c4b4f847813b83f7fc3bfa1773be383ff9ee5f2f4fb6cf285aa29c85f79354c5aebc52ef273a18906ff1c8090772ad99c2b36ac609ce4dadc7bdb5413da59318dc99467c2fa50824362f1d3a90b5687e0a538806c376b66c9c51279429bdf512a95aaf44a6a111d8965155138e204115830bbaed35e48f49a11a005b158d50d9817888aa6c5d0850975a2e83672653b4e96b3714dfd0e7ee462d9e102e68cde6b74a7c2db937139b45bb0a7a5cdec9c78c05c87b3911bc62793ba5b30be3ddcb8f53df6819a5c3caf15d5feffb2a9e604cd56565685cf1073c4a6a055d79f7611f0787a9f14c986fc3bd355aa2798d5b5a82e3455e372bf3a7c464b9df7f7b9afd3f79e897d2289ec7e671b31908dd6922fe5095e78a59295e11bfc99b439199ba20999d792a71bf6c89fd4bab83831a82867ff448a05153f0c08829c8f60651a0bcb758390596686dad84d89b1cbe0f5789b9927bebc1548da0469324aa11c78ff3f71b1ceee67a7b081fa27568e1a931a01c401e28fd054c2c9e06f77486cb1ca8d63f0f9005711391617a8a5492d84fea3bc6fce46bf4dbb35d0533fbf71b84724fa7d633c06855981f6fedf5d27c659d7db2d15c7f5f61bb3543df201e314d29433aa35ae101fb46ba5a72b6c222e5a5e953e3f057c5d8c0e2a22ffb01bc79353fd5d5078e66f110a4053c04a541e6bd274ec4e3d33bf93490564ee3c0fe3eabcaced466947472314fba5fa531cd49b94cd1924924d00503e681a280762f18c05b3e26fe8cb68b40ac0149e1fb912eae03101c763f7b3ff32dae52b9c5c7d616c6c0243536a6f1f5a2b9c68257f3f3f33c966c2892a42940b20a29cd52e418484ffb4f956023e464c60b762580208a340056aea262b14c70bcd5518071d514ab5899f9da5f06c4cb49df15d2bbf9c0da6f65842604861769fe51695bf0c37f986a6f71b75fa7799b24c1b7b04a6f3f5db7d9d3083c503d0a4d35470010cd06ec41e2dd8d071171ee1a3f55077f405b58be9a57e772583f35c4cdfc15cbac417ed746b8117d906df3374d41c48b892dddf227069a6d3e74547e8e197f1a52d4243f124b7505310916e02b3d12a9b67f9def13b19abc0b5047ba0ccff1f2ee7b4a45d820b70c365bdfa6c43affeec05a804f60b95743a40f89af27fc68655f0cde5275b4fc29de0f924d16ba08d1769f97c204773c1ce0024a75bada5480beea6118b9d0ca14b1ae13bc3bc1d5b5c3862738f912aefe10bd34a0f2d7ef421906741b7555a1b1e466f962178210826b67f96dcfe906fb42aa1562d228dec1c3602d1317f2fa064f687387bbc54def6d2ab3cf56c5eee183394e0aa3e9b713631023858156cd6e653dc0f7ac14a352e74777d610ccb627df440f9813f32037176a6d829da5d1e96798c4e11d593fb11703929bce06539f62c3a240ff8ca0afc48295b862181fe5f18561f8afec8d04cef4a21c4d722ef1f28a576c1d3b7ef34b2b929b7413a6cfe17d427a48cc63ecc57a6c319e29a680221dd170a09e5ca741931579159183ab153502131b526e64cb3d9dd2e54d97aa55592ffddd7579596a7c914cd4eb58206bae6ca45ae77fa10bf594551c8fe54e3d19ee186f16e9f4095ed00025f60b2d2eb5a51764220396dcb5eaab8579ea0d4758b0b50745ac6f3eff405abea6f79305a45fa60b3c0b985cba79237464487f42159dbaf40678a493995e2cad9b34077b82d121f5d4c09e43c4655cca7cd101f231352d49155c2048ef22668006cc6468c88d18e584e66bf20fbc8158f12da209d5b46004acc588ee5c57798be1c76e2ff042eef7fddad582181589c38e9bbfaf66178f23425582c4cb32847dd6a97d0c68c3090290c4f195308b98eddfdb785d9cbad02da8a75e91040067ea5b39a0ce35ddb8b335954613957d6e20d4c86517ab282fefd5215f3f67bcde507de19f7591eaab854183561e718bd6b5559548a843d695acaf1ee18627c01df6be8739ee0f613cea0715dbe08909698ec70ede5fbd3a2171ba7270f15283ccdd07532ed99fbddedf8e71a5be19af6901d9e6a3c8cf67f5625649c045fe83ceeab6ce4f7815c04196d9df019197637fca994fbd464b90577ee3c71112e48a308a82cd05748f1c8ccae603c5712ac9e3266c14e1fc6517b21d4b4aa0529848015e88fbf8f23791f8281bbd3b0a15f6857567858aaa1c09de9ff64a21bed7280fa3a8da10a00c1e2100c94e0407e44b5426902aaf628e164efee710488c8195d1c893bd45cbd663618596fb6d0177f4df8d1b33433d5f77a00fe9fdddabd3d244a674a59e307d7beeb0635b3b1a5a62c55ae5a517e1c866cb65a3ecf35140a5e196c5022bb8a453a3893bb706cc203d663da21c5f1fab533260ec6e89d0d0c489ff259c5843a318e9e84d1426c4552a8f3a021cf7e80d6983d9004ba0ad05be45e72e5982a9fc2d27537d63002006f828c984029ef9c68395c352791f26b6148523c107ca06a1c0dc8d7bf456523b172f8723a5fa87c2a67a9567fe88bde24287bc4aab8707bb1d0398b06d1102c008d563c7f20da9eec461a399e752ed46330a22cfb6b771207956225a6a2929127cd2b754ccf529ce917895bf163262f373d788ed13fd935c167ee9dc74bdf86d47d96f4f57514c12f5017ad536f7570272fe531327a44b5186814dcb358fa64b74f2deaab4e02a48678334d394911fdde0fe031f33719a38245891bc88251cc3b5f08c0c112311df85094cdf5ad8176dac30e14db04bf08e208571884b6c760262bff7699081fbe3fad6d6dbea91789718375b7ec126cd202ecce6f45a82e6b0366ca4b38e7babf1f4449a1ab10c24af43238d92daef68a306e291662f946ccee2213070be28c6309b60b71750323473bea788a3a62ebcf36a3f0e385f3a8d73bdfb23a11a25b3d9bb788640917174adb18992ba039ebb8952c9cdfadb09175cd9dc99161cd4226c428716cf286a4a46e690a7344a227abffd8a44c45245dfda6dbbbbbfc43f804964f18890d8598c65a8b2190dc64c63c11843c036fbf78f7d474c7cc4e6bb0061c7c895fa3be6f490394e43f2d3299790f0b4df8c95cbd613a6e4fd14c12f12a819944e9dc5ccafc923190cb81e4965b665a054fe8a31706bc946ad02c22ff82f2e907751ae7bd8d2bf79e89a33e06d64fa609449c7e961e36db8932e47136bc13fe765dfe6c14f10ad5868c6cd0e9e14360057488eb539616fd314681669554c783fc82764026aef71c6da8d2c2450273993dd0d754de43dda5e06903bb545e8a0cf40975b2d5854d00f3fab2de99443c3f3e47f6d2f1aa3c852966997ff83a28e63f72de52d77b59db23d6f8871eb9d003553185a970b7ec3d8ccb378251868decf460cb8e404316be05e401f205b9edfceb56a5e8d9a51c36ebb6d0daf0a825da082d71d49b0fe44d4e6b4d090c225484083abcf40d90762d601c3e9732a03baf44f4946ccd7d2a9a6336a401bd7b710d2925ea48c91d22954ed77027aee78afba4db204b33539c024f0ead4e511e74c8e02de35c3c0a76cb673bd74af6b9d953404b58bab7d1858259f71d3a95c48c5d8f37213b1a921bcd18061126b09596686233fc5261c811c5c027d760798aa529e0f4e38ac364066c4016600d7d627826f1390ca3dfa1977b4eb692592a7242de5c39394e9b6197190f71d86ae8e053e2e212593acff4563a05c60e8c74a6dc1a5b5971533b62f5be776add5901353633c0144b16c3ba55d7858bd9b10157f45651fadc369f6ee6014de59769b57b51c9c7ee4bf95111b96292349cec45d511be4936859844ea45da7b111d37ee78f7da498d0756d30fe337f3b37793d3561219d8809f425baeade422fc4af67b403a8cadffa25ae8a38babb6575b687e3b9c2a714958e9c3fb38200deaf1a49d9f74ffc5f6e4bbe7476f898c86ee7ec497efc4058ac272adac5df5fc8eac3c8313844ce4fb5a17c0c159094f00a64b78869f25fb8b459d56117758ada058009c51af5b0fe8b824929b4ee7237c8a7a78257253bc54187633a25bc9b5c6a826b2f5a904fe692d10b0dcdd5fa77da652b793c1c5b7374fe01cd8043247eefec7c35e96fcfaed4d69e87ce0efaffa9096e3fbda53fb48102306885519d424ee45d3d6af88f362c72e8dd51fd04e6c78849afcf45ac52dbe4273d229642f2ae715367a6365135be67cb68bf251538bf61af416e5dfe6816801a03324d23866be83817f1541b84126131165cad1ada28bcaafbc7f059c4c7ac8dfcd0a92612fa215aefde1861e1ce7ff10ea331019495e02e1c2e27f020ff7c805023f75b340"""),
|
|
TestUtils.hexDecode("""
|
|
14A8B812B4C9129CED02A09C8AB19443D34DBCEE85AA12528B61F84A2AA9D9DA49011C8E2C3C3856FCF761EA9C9882FB18666F3EC2C8543037E54FEC1F0F944FED3D350CACADA9428B7FB7D9DA4937DA4D1859BEF8C6177F0EC93BD67FC3D5B3D13C34D472D01372246704DA4763FA73BBCEB0F4C3658B2111A7DDC01FCEAA9059FE3DD5BDF2A9FE0D1C2384E82926EB895AA529532FB20E12F1C61BCE208E48ECED036E4F84CD60F8042475749E13D8C3ABE0AE17967D5C6D8C598A53A10231929822FB01EA976A08BCC0D18B1F9B6C7C1ABDD15121E00EE80459E6EFD61CB8D5AF950F0A8FF2807C32CFF7A56661C67348617059D7E128A72C8AF36B149DD8B46537EDE60EB5DE8A16A93349883B73F7C4FB8CAFD01E0C9D7B1EBF6D7C9725651980E0DA598A6ED5114178E47EA4C6ECF870033A03F134461146717C8AEFCB8E8DB1ED4E286C68C7358FA105641EE3ED9B4A5D4826B31706CF0946C152A365B246DC036191613655B829ED1AF8044F5707C320EFA1126B90137EB05FC220F122AA990AB476EBB0BB3AFF5B92442A857F6808E144C60F4B5190794C411C705513BC32447D83B760E907E6FEED63FC0A60C0CCD01734AD55EE178E6BD6D4B8A238ECBE8E4F8A464C381F16F11BFE62DFFC5021FABEA941D24B81CFC3D0F07F00F902FC5042F95A81BB8B795907F8D6BEDB5E5C56D4B2A4353D0188A90C01D7B2781EEAF2BC3D3D58A6F6AD63DF7FD4D32ADBC5A7A2F81EE3F5B98E8052017868EE59D8DCCC0199A006FE4FF39699EECC82DBAA846AC60B51FAB6F456DE4357F5EA43FDCE4B57AED55F2F6EAE49199AE90F6CC4AAF662ACEC2724337AD7F9CF74AC990D3083FE384685A1E616B233752E31CC4FAEB8048EF77480CC849D3376464621E2BF48CBB55E1A7CAE855A216DF4A8D1AE4E4016958F5855FC395C53C23327403720271EFFDF1A90C44E93E74D71BA29D860679E877E410ADE48ABD0EFDECA426DA792271D813116ECC894D799369EA8094C328D7694E8CA47459F31F5065858252C1EEB1AC4750AEDDD327048894F7D79A1D64737EF6E8B93ADEB938C1EF31E38DD60E8B4174AE093697DE4207C7733D82B4FE92590358515D30264A408746AC252ECC0BC28A9C98BFCD76C75845E9611909B0089B571259D1D115EE0D5DC6BD6F3697E1289C4742CD99F97B5D3A22631E33A81734A5D2BD1FF4A819CD6A22A938D3F18AA90794C120F4BE7E14324E89EAD34820070F8160B140E8CD5D68378C081DADABB41D365663AF26C606940E08B20581F4E63AC6E68FB5A7EF5DF86047BAC502223AF08F6CD82E6ACDE60116593046B5CDBFE2411A3FE89C438A1E84CE6D1CD72CFD3E5F67C331E72754F6CF2BF921FDE2C6DD5481F20F509A6852AEBF55BFB4B52D1F8B3E397C9B147433198073049638DDEA7E21C2043C786C88E45E566B6A7E8742209F5ADBCD34FF26962E87CD235CA1052AC02E4BF75DAEE60A06B19A4B0A61A15D9651473DF8AAAC6DB951EB6E669FA5F89175DC1FD4D881D688C477D16CEFE809E623B2F2A996909C3E10CFEF756ECE8E93072AF27B87715953E0C48946DA8E893160CD351E48FFCC6847975621E5C75D5DBEBBFB79297AB368D13BA95308E3D576F1C54CCC1C4D5EF2A41BE63AEA2A9F9A27822ABFF58B06AD99515B97F260843DD2304C855184EFE96BF10420184CBA2CD3ABC38D11B7A74E4A9E40FC26CAF3A84BFE8794477335EB1F4C67ACC9513BDA5D8252E608D03C69D493F8876FFF25D39DCD71442707AF2681CC6D5E117BD24315B0FB5C9E8175CD42AEABF699B7B77C9A8918AB94518B48DEE1777EAD8F18709A824F277BC06CB67915A5A2508E18094B0ADD29FC7CD554D8671CFB47EED2F850FC84B1C0F27767B3052869B653BFFBECBF6D8077697D1F440019E3381FCB917F5C06008A04C8A88B4493698C1964E25A551B03805244570D0EB6999AF2BC467EA4732B460A40F7C2EDD2CBB07A2DFA99B4E5F4663A45F2774C1ACB0C8B965E1053E3AA140E973049714DD644CB9317D9B3252150CC9A525E8729ED4A9A7900B417875391F7BDCEE646B1009CA479A1295555759C5A7597A775A1D1CD8D870A71DA7ACE7CCC7D2F38B18BD66441D80068F76AC194FADB3ED5F4201F26F670621D254264A4D2A88426FA6077895B9BD794C8C84DEF942FC43F2FA115509429A939052200196CC921454A65C4BF1A6E871970A3409FB9773F356BC17E03EDDE8CBF2F91E7D2B548380967F756D36520009DA5032F20D8C8CAFCF4B561A4C2894CA13929DF2AFC2C1C9FC41968746433FACD66309D2A7FB5D90EBCE40ED1E80C12D07BCB075FED76DE423D9EE6B1C787E1039749A0E559B86C4079CCA1CA7E4A3EAACB300C453782071725F6E2DC0652DB5EBE7D1C16B6EE0078004ED1F49DF439107AED04A2E69F70A35057C36A307C8F5BC13FCEA76AA997DFD2E2E4B835677EE961234895BE9C9E7D1486C04ECDE36AF4F7075C0CED9A33C372C33F751C953A2096815D9B6186632D3CAC31AE6D0A931258014D6F88157ABEBEBA1C11B9CB2956253D4950F5B2F64476E4125848F27D9ED4F93035FB5F5DEFE2435E67DADA015F048A90EAA9780B983748CED6056D021D21F6FBCB1A2DE0C627F2D9015B3D9D35CA17C54B0FAF85D0C45A53DC2575E2CB54B9A5681FDB66C9D5A09A3F48DFF29B24E45BE82856C6C76F0B9680F7B666B22221E14DD8B22A15FFFDA1D666F4EC6ADB5B929C2804ED36077E1A39F166C777770124253ADDE6B77083ED159CCE35894597E7BF3DEDB346571C2BBF69AAA9ED133E94AC7E31F2C30AD079EB4B4452232D83E49B43DAB60BBD92673D90F187FA6F3859EEE1630D3A232B99F3F960E8BE49CCA0F1A519156D2D861F8B6C15FEA4C4635C23F2ABEFDE8589A45947D391CD1DC3439F965C6DBB5C5C9AD14192B3D784D1C78B3DF6719D5C474E02D471B9B857611E2FED83869BFE8A2A74493C25D39C78DB019BE93E3BE331131CE85C4586C0D40D676640405FE363646C2264DE6F64365F19F87A8C54C884703DD369FF52F65CD9179B8A09EB92C38C284E06B0537EE686D7BF3BD399FBA8E1703BE3236F8BA262E2C84D55EB1E1E55DC14780DBA04BC1106D98B05593F9164F1651809E8AFA0A04BB0B51F9FFD5062B495133B509A569845CBC3003BFE23A7D7ED433B70C2EAFF5FD898009CF1ECD9E9B6F37CD7794234A098CCC39EF078E3C152017CC73A19B811FAB4A2CEF721029F6200A4D1E4F9E95A0A758A7AFCFA047B6707CE048C3BEA6BC561D152AC4F161347C098F4F44AD92006090324757D73DC074F1E1D445A500AF5A92CBE19EF631D99FFF870C60BCA8515125EEC36D004F22FFB420F5CB01330315F00CECFEE3254E54A047A7FA3C7495E6ACD579A9159F667FCAC4C4448579E7A68148D5518EFE269E97D90D67CEEDC378657A45E9DA855EC55E7BFD0AC3E52DADAF76E800ECFA61F2BF532E7365C4FBC8CE882AB327961C6A48C24CF0F0E6F2C54D732BC9B592008F2E6C80F7EFA788AA6BEEF0B6AB7B21DA3F9D92ED8A8F5F3F4B1D1BED6F66B6BF3ED52E49715C07DBAFD67F4F253DE368619A306C513E645CB5F154F7823781EB3E15F38EE482757009E42CEEEC1530A0159D25F052F4D4326412CBE6CD11C0DCC56B6556DDF806868B83602671C96F81D8210842144757A36CD187EA0900F36A0A9DB85B9609C11DE03A38A9984003EBFDD4E7C07CCA7A7DC7FB5F9F16E6C0C32CF86774B46C56BFE2840D8EC51E9FCB719DD1CAC4206372126DC8EDC9A4A2EDC8FDC8370C7589CE9FABE0DF3C8CEA90E82944B8D489C0F52F73EA3E3BF56BC3644A1BB0AF88F4B556A554851593E5FCAB03E235670638E4AD77BF012AE074F331F67222899694CB5EABBF0D6E6E6CEF75151FAFE89DB9D66DA4464353526116B3C2F382825B11CAB3CBD221DDA588F4BA13548CF627B52478F47D9B61479730CD9CB3F6622702C9A115D69EC232CBEB3FA88AEB832EB266B855A98424B2E08A699453A891C89C45FED7BBA98D6E7A2179A24D41D201C4214444BFFE6D01A15CBE640C3C54458E8DEA5DED484FF7AA78541686C60F9FEE76D1A7ED1F5686A2EC1F0AA037E6CE38FF695DE0C17895C9326415840FEDC1675E9CF30B8C45F8EACA1E65DD18290E8ED826738876FE8B69DC3432174151C051FD23CA4675A75E73F1D3DE4CE172FD657B57D5D03FBF8B29E268B3EBB8E9BEA96A4750168E8AE5AEF6B34701276DD18F1FEB01FFFA2A984D3A59D05A56552639D506BAB3021D507D56D0FBD80DC582B3C20940DF2393AF24FA5233DF073C7FF28B54C7A921949960CB2593AA4F93A06D38D896D547B28E9CAFDB479B7D1BA2EA7B4A6BAD33BA8B59DF8792B22F5FFF41EDB1FAA926FA3CF602FA63ACED78E85DD7C3094ED48D1F3381BCD084A9909613873513657879AD8599403A52ED0D16AF0B3B43C672867700167323D37FD6373C4D51B90327F4981A897CD54C8E35A6A5904F5AE0CDE36440393A59119437016E8CC88894B2A6FF661C10AAD7C7B03B7085B70A8145C305D5E66CAA265AB42B34539CFCC9A62B5D9BD09FA4D3B94BACE361B4C6BF6B550B89922EC01041CF05C0E4632274949D244B7776D6504C9803A67CECF65F750F9876109167CA77D412A7EFF06CBCF129D057143BCF03CB1C1AFAF937E55477F5B15020149D64F53887467AA16C6692FDDE61406D552660B88AADF65C03FE1B8D485C57FEBACF8B11C569622FBC56CA1056FD3600E1BF51084FDAE32876BAA1E97637F73677E8FA1462222DA72FB0936ED66C16A5E892C44093CFE7B4E3EE33F21091E04FC4A07C6CA21E93A500E5D7378EC716A9ACB27A5687BCD7F4559C32F6C82E8C06E82135ED16C35762E94BFD6BC33D5116E4FB209C98C871FA8E9230FA807CF1FD509A75DFDDFBA5CD4F131FF8B666878697B372B92CDDA15D0113E8BB91A7750843B3D14AC4E8C956B44C7A3A26720E774EC1A1F68435B122E539C8A7515A1AC94D456BC4DDD54839AAF6EEDDFF8797C9BA3A15AC70C34DAF78AF1F0C21734DA32A79C1BD3CC8B2636E12B9D2E42AD10446EA1A9FFD45430E03A78D8F38B64B64C9D308D18CDDB4D5DA13F1B4D15157063E58C36DD71677334B4D9BF09D8C765FC68B233B31105D0957F1B675798E5B9E982B1BAF1611EFED0E39E1E9E70BC790886A422DEFEF325A07D97FC603866C2C3682FC651CFFCA09B8122B636A65E2D6B8B9FBE6BB9220959038AEE11AA7003A9C4C4EC9E27F4A8350FEBF1084C292B6BA9A6E03C00979854CDFE566831B077823B025FD1B9C7127BDBBEF34186C74759E32FC222023EAC24A6A6653A7073F4033D77CF83831E8B6BC8F26AACBC3EFB2328C6EC35C3A509FA85E2E04532DB6E466BBF8071FA6020CF5585C70C29320786EBA815EECA6FB2BDF9C9F3A3DDD0F1800E93DEC3C5E6DB4EA5A695865303C48986CE26346B6CEA4A734668D5BED675EB0C2A1FFDBB9E5511EC715BB4BA3604629FA28A53CC0DBA1E819A521AF8B7BFF16B4FBC6766543C0111E232157B7BE4D561618D6ED7D13AC8817641E7AF77042E96C7209F1B65C42D115234F6C63B84D381F1820CD656C88BDEC7CD2A814D6346E90841005F66D6E36E63C5906D19904EA0D33502BDED36E7D77FF5E2592290D6F29200668A25A6B6F44FEA1D3EA00BD4BA165D122455E8F97EDB36061DCB335870F44068EE4A64FDE5695896D6A5B30D7613BD8C8B11DB330AEEB0EF239C105CE6C0B2E1BD81E867A2D823FF88E3E82FCA69923E281A2933D5FDFAC6B217D60958D18ACED57D670851D5A6A445A120F5B563070995793E618F885F149A3A3D498C69A0B9D99D92C16327B7568BA8CC35128500FF515273099B645C683EDA30092C225D01E6337AC652586C0872C9C5EBF09DFECA43697BD97B86FD5463F529CF303A105194BCC3014F4458CD3BEE8088B8B05D58A960334C73E1CEA934CA0ABB2597F703428EAC5DF6983A76A5EFBB4A20221E6EA04F67273D52D0311AB99979CB0EBCE738B0BAD72F0DA80097609F4422D962DE43D5B9E27F2FB3FD55DB5B9E98C1E74533DE23930052446A31E656E150261C6658324BB243E0C55C43BB397367D9E6EE51FF7A3F4FBB008F87FDC3448C07B88F4EC3788FB04944AE1D734E00E1CC58052AD2F908B55B39C0B1FBFB889EE2CF91CC1B3FCFEF11C14B083F8A898BB28B838662274B9974AA8E83579181944CEDA7FCD9C36D5FEE67522E828D6FD9CD28537D9FD57C8ACC7B8F888FAE4673FFDD859F6446B41609135BEEB20804F4331E31AE057171D27D1C338DD976634A460436977192E7FED668FF01B7F996F00958FEF2F89C78367507225C458A7EF81513D849081E4D22013A4A8DA7E6E9AF687918486E785E2E5D4EA5CEC4F92910E6A6F89198FF7911A16D7B46BAC5752AD5F7457E9B65AF0DB57148812FFE9F7C70F5531D11CF96ADF7A3AE1D86039FA5CFD5BD5465AA1649C40A513FAD60B54F7AF15A5A6B34F0935BAB28A1AF631816A0F5F1E53E1A7DDB5FCE521252E25910555D70AE1A309BB1BAFB7ED3856618161CB41206810AACFB9F748B06F6BB8ECA8EAE07B77934CAB2FC72FFDB061D5FEAC548CDD1BCE7CE5D04E9D2E4F38834AAD674F0D540DD6EEA85CEEE4F67B1D572597E9F2B66554F7F835894E81F4081EAB2578CEB8FA95964742436FC6741A5A9D1F2257572E7026360708EAA41D31ECCCB55811D5BB7648EF4021268C8AFF001F2D6BB3E1D4D304374E892E4384D66869CFFAC575398808D2042B2A33A874BF364B6E7A859BBCC67ACD4B5DC3494C1A6B55CE004A354C8EA8F14E9D9A4ED282AC4D78909F42BD38D044FBC1C730F921A1C678062A200CAEDB0EBD42D48C0B758F138EBD6BEEE1E45BF92157E3279C6534232AA6C361953A0AE37E81261832F29CDEE864962D44CC6C3C68C05B16915A8FE35B067EA754777725EAB0BB4E20C3BA7D6E75812C498F29A94D18D90D60F49339CF46DCEC6F0A546A90E0BD6E75B95441CEBC0B25945F2A38F3EEB1A9E20805A81E3008750588397A9A168C73C81C97FEC1BC16659DB16AD7BCE275A884EF801D53868B0DB816FDE421A9D7FE37E61B699736986325592EA93DC18B036D5B237115C35AE3862E355A1F3CBECC5BA89947E6E304A86196E0AD6A113BED701D21E07532A6D02D014C9BDEF9F9060799BB79AFFB218F3B98A4BC9488E5D2CA13531842C6651621484207723F41055274364FE30601C33663A6DA49C8187008BFDB1FFF4B7B3DE89F7FB0BF57F2E273EE84ACF8EE91A5335364BD034DB6A1F8025E6522B4F3D6212F3E75AB34179B21AA28FF6911736724FDD4F3229C6C26142BE5D6F2148C9BEDEEBE6C56B6A20746875A6F74CACCDED95179AF50E1C5E09B942B4E3C5E227C1A9DCA36F04CB89EAC24D5E87D07BB407922341590A739B825AFB80F544F2B1B70D877300B46000E660A568999EB8F54A3809D6879935492CDD67DF15A1FA902AE6ED30D5C5EC1178AAEA8E539068EA2A0132EFE51DA8A43E5D48ECD5D8BBD0FEF8F90288E3068D17EEF4204D639665BA3DB7C172E99913E97613DC4304006CCB37F1E9F62327E1C2B5D97E31822A52298BE0D6457708E0E2EF25A0C4C932F16D25A277C5BFE1AB13FD488BDA7BF30F26E89585F56D827DAFC799D7DE3BEF0B41A3EA3491514ABF11E633D7F4B8A88CB6F3ECA3D48495475A33C9107EF39157D53D447308BA03139C7A1A9AB4ECB178D818DB6F83B4489626E2EE9464D7392C80F8B4B6317095926370681D1ABC3A48D82DE7A810124099E375F39E5C6683F4972556FF258996BFB0FB81C44E3C0C1A814AFAE8CBC041D7E7EA4FD830568DE534B65926D6CB83D306A36861FA2874234E33F4EA5BB8AAE05C3DBAB96CAD63295D7BECC26F5A4E862546A166A09E059293AC85937FEB612178B8812541A929B81A090FFFBB17DFC3C774C5BCEA1398DD530C5286658D326D7BA7DA3F2E15FAEB038B8A397B68AEF622EB10B248DCC942E7BF4B4C942D33A4427B685A0DF2BEE8271E89A366708C9E48F6A3992174E8D401D821DCFE12099D3EF0BA0806E7ECD674422731B0DB2B198C495E9DBA6294FC736F41EAD9232A5E404A8E918A18D7A7846E0BB6716C4343C2FB00286049D7BD823410EE8F71347008A89DF42EFE049C61CEE782102730944DD15C0DA322F6DE4EAD8F9EA549767BF02BEDB1F091252F08B34B6728165B11D2C62805ED24ABE65A8E95441D1D5FBD361FA87B39135A75D749325F09416CD3E1ACBC04F6AC8B989716C55B06FC784B0254A884EA4CCE8ECB2EA278CD32FD1FD99C3085585201EE9492B7F7A2259479B1FF820661466022321457088B202B5F1E67709B763A3A945B19CB5A6EF0A322272D98F8921B775A37B6CF92F66CF86FFD26F84547BBA75AE82411E890A7D8F1B74D657380287606ACC8572D8522B87CF26C0247F25A7F8CA12911081224128ED444C5AED9EADBFF6EEA9FB7485884093C340CB326BD467CFC4F6E6C17D4F13C7F9F76192BF4A10F2F28F538C76BDC1F8528ED1360922E5A6DF1A38AF9FB28542357231478192219477D554507A47E9FCA585730292493A2B3EE225E0DF87C747E0CED460BA677EC691637F444D248805FA183666FA65110AD3ECAEFF59B2F8F619A275034CE415DCEC6E68A3530D17EDE27E93D87EE1EA55D22045CF436A34F907D35264116A848DF0B448E4BBE32A18BBF16A8DAC00CA6B07876ED0720591345223877E26D2DF4C0C3FD8484DF1DC40F1B7D4D49E871D8F527837F1B790CDC9FD95D698231CD090C60915C98F1CE43F7825613FCF8EC929BBAB9BF663A555210868653131556553F7A36368B0D83AED6F9A970CB2D63163C607ED896FC7342A71C6A1C90A53DA0F32141600F28F31A9340ABE97D0C6E8AA3270850B6598670DA455F8E2816EF82D3267D39A8163D34B135221D7D5D98069A8233802810C7605AF9764C6DB44FB55E29470503090CE6A720617DC9D17A5091CD3267DC4DBC1A2B7032B50CE46522A2FBFEE7BE29C3DCFA1FCDD43AE2E09DAE7330D2E6F2B15D10F53EC6D607066504AC50AA7F18D3C290296A8D9ACD1F5A3708BC035979CF03966E0081FC53F654AD68A15A3D17A65A768A4CA5F647BB21872B1ACC5BA3DDB5F69DC215735A5CDCCF50D555FE968551D507A7272FB591587383DC5930C5A572BE9FE0C2797B622DA16C6B87A03EA563845B8201168C45E7603B80E5780E493AE87584A40A09AD6718CDA3759CF1940479545789F08DE83333FACC26D28AEB54E2088934332EB7DBD5829F0ECF89D22C62636063532B4361B9C7C2B1D582E9A7DC72FF7F2DF667D9B7BAA543FFA20AF6BCA1A9CC22B7D7D177B73AAB087F868AC68EA0CA808EDE0C2F931B3B0CCB28E472CB316C0DB0367D4D7FFE0C02977CD2E5B20F28867DB1EE0DA77C5935155175B33D3275426C3CC5B73748426CEBB3ABFC50405E30EC21A53073C83A85EDB485B26AE7B633692326003004A822F261D5E20246F99B03D0AAE36"""),
|
|
TestUtils.hexDecode("""
|
|
e3204112bf82f4849550037d8b6325da7435333c716595e2f17c8a85d66bc4a612e19abd17411d3f4b7e3a8eadad39a819fe5ba968c8640243fb5d18a7674a3368099088c000a1c9906573a2957b57d5132fa2df9423c64e0f7d89a338d0d41e9300f563a82993c8e43009eef3fd91c10dc21bf4524dde27c4013756a1cf7b5c2829aa1698a5ebc4c46b80cce01384678f5c444648ed513a8e0c6e4d29b3b4721627c1c8832d736d98c17f6c00aee528abf0908b030edb381770e6d23a261731817b4ba5e632b1f77e5beb60f2e34bc2f16e6feb6fcf8605367b5d2dbec8668cf6a7b47fe5802a9eb93451f96e2ad72432726c9579cf08c4337ded15690a1906b82df1e07fa995eef43df8edb543bfc3a7403877b4bcca16aa105b625dd23e1d938d4d89293e841245472a0c38b77a6697923e213eada80659269fb642089b311e2818f8ee998b227a2130ba594a27e985aee0c6a3b34652b54581eea40f2c1e235ec06e055247cdc106164d6856fa8798e0da03c1b4a6b89778fef781dd6c5c77147db302df8ae78b819da5b8ce171f53bae732a100211cf232faff1e0588054a0ee99891a26f88b19fccb49693a844270fcb1a43f26677abdbe3c33261ebaf69f8f417ae6df03b55506c463088d49415c0e5f3d9cceea7518692649fbd2e0153b1612a84e229ca9a69eef15882d402425bad02039426358124d0603decfed2101e93876d057725f6cd131ee346f047d7e2e0398a5bbda6e1fc5029b57f78e49a49cab5febc682931f3a2b167d553e4f1b6511b8b07a8f62e4744c20a7b2731b317ebfa1e89825d4b7fec5c775243c9af25fef92f61261f2b4377593dbb3008385c92bb779ec703a7e76b785b8aa46c8c3a2bc5069d69ed865f1e5e6283f2aea3740a62226d341deb55d420eab001398596c88406387b293ebd1663c2bf94041f3c13b8579111fd7d53b66a3528d9bfbc6b97e72730a53ba95e0549473cb4141abca8c8330b1b4e0e0967b2aef589efee973c3718eef61d27b2a355be3c92f7654a6d33e5441e3a0f389911b40f6640080a752ca53ca9db239216dbc3d95eff963ab43973fd8633299d5adad7020a862a594c656e34af356066885494b1a02fd6fc5cb257cdbd56e85e74de7005f2b160f6ec6f0a61083bb046d9ca90c04478d8489cd75e176d027351a84bcb6fff940eca4fcd464dd577780473eea0a72732d435eb41d219ef7c2619400339ad2c30cb4ecd48deb40d713e148b474c4de28b91efef85e4f16750bec38224c0916892032bff8b89a4e0aff665ebc050e46cf7b7cba9fe8dc8696c5842f82e6e6bb6b58663e1669be1e4469cc8982650e468b6c9e5a1d49a44172f86676d9f4731994d74c4eabb9086eeab469a8a7de0e18845797ed73742864149d659df3118658f8cee2cec3c8a8b388432ad98d4d78f3dead445af3fd698fc01bb81d4658624312fe1da6465b7f53ecfa4e6f958b9f474711c9a2ac9fc8abdb0682b5eb282e5ec116c45c3236baba0cdf49a7478400dd8a67fa4704a8e98b29b7dc9913d15f56e613592dc60db932f374b1a0ddc46435feb7412b290587fd9e925987e80d155ff821e27d77de3141b8cf38694e3cd0e7ee0d822c213656fcb7be166767da6522cf9c1f29cf044efd1fe7f0d9e9df64c417aae894e354bad581a66432f4ba9b94226b1b577f64a931c62bcc6c97e5f20f0c53f35ae39f38d33600208a1c6986aca3bd143e920a430e9b6a311a751509316abadd632dbc82abc94ae234243edb75d362928f0d8a7ff9f7ba927780bd7bf62f3849f3fd937960ed08794f8df99dd27c241539c41d27ece05215f2e63e7305d09cc384223a3bdf8df83d0cb1f76231529faebaa18e76b35ef77d9ce6d2973ecdfde9ebb91d7fe2ff38bf0e4ba8f9c3efa3185f6ffb72a10bdab1fb829931858ca37e1d3356bb199d9e5d9d90b11339643ce9c528ff7fda54f907126fc745cffd1d9c60dcb92efc39469c70899ff3d5fdc6c18ccb0b3bf04bbd9d14b34c857467185e5f427b134c95622d34f3bb5fc4bedb7fa8e7c16abc277447ec511acb82de3d1372f63d9a30c40e6485598e707415a572a29ed1c82bf0e138bf6c6267380760f6f2d42040948e96d4a792abb2912ce8dfd5ad3c20bcd63fc84717a5b0c79bf6acf89199cca48e502661a949cb3123506318dcd0079edd930126c0e879cad817ee9faf22a49b11f44b0719554da894a7fde9e67ed576f562c787832b7cdb0ce85dd90ad391abb590cc33c83a57a1e7c088fef90937f39b423977eb5d48028af46a43d664f3ce89be3f153857210668a7f152d94aa8ce1305e5c467b3fe47306dc75cd2717b67f1bdbd77b7acf6d4bc79cdb65b291e7356201f7fc0176f826290cb70b54ee4f2442a658812274e08c0ff222750703f7127c72184fefe2cc8e6b0769c56eaada9bdc39d44e8464c3c789b8254919fccc48d692ee13e70745b790f5e89ccf04eac5708734ef847a00d4bdb4a7773d8a8e14779741b76b1a3be2b5bff279d8ea3f750c4ea5aa82203f55b332b785536e30d5448acc215c10a2e63a6104afc5d9002eb3cd9b98f76f66679766a0562a1e0ef9a69d46a453d0777046097dfe965e1b380cafbd62ba18753ade14c2a663c7ebe2fa88ec4cbdbc841bf49366dfb13162ef6d6dbaae627975d3f5d6ff47f7685c713c59dab2e0629d6a14fbaf1895526ee00a32405d2f4930ebae1d4c0ba243e0b77b0575650c1964cdaa8a09d70592a6e50f0586fa398009bd40a2666f0e9f4512fd9453e54df633b6ed72916cf87455ad6e67bfeb91e5bf15221e01bd61738f5e92d5fbb15d43df14f3355d54bfc97b061a1db68354e06d1a2fe0da4e1a6c0c0c593fff12496e42761235ec1238879a2c9797d97c833a76a3a65bbedb8012722c4c4347c30bab6d0897f9bbc0cd8b20030d7e84507cee4069192cae1437715c2179c6165d38b534c63123e9b6f07fcb4dc1c73c376d35d94fb4ff945d6b9f2e8f41a01ba5b58d7b5afac6f7f74d5aff530e3183a0b8992d2e885bc6c2d5415a572cd8cb8b5f09094998025b86eec33fee6f19e8fa5fa11cb49932508f066f38192afa3d11b033a6b635e9a32cf0dce3512a9d7af02dcca39c3c7d62861402586f8f08e0ca459e96f2767e991f70590a1303917476df719c38b8c7dbcd8f61e787131c093e2ba97cecca4d52c75e18d855c491d1bbf517542494928061f24f142fb8fff689635d57170be21f8bdb1944729eb2c48a66debf5399ca10d883c37c860921feeaa1ce240c419a987f71484762db1f6ab4cfc83c1bd9e4ca85c7730e9a58630150784fccf9faa926a28bdbce010a355ef4e8fe3bec648ee207e187fc3a8f73f80850d254cd0f9d9e92a0bf91e73d63faad0f6fe7908158ced03f396527e7b96ed2bcd521a5ac0e81fb60afbe91bb0e70fa6d5c39317158f67bffc160f0b80663267752bb5a9aa97d85d9e9f40f557a215aacc03d022341baebb7ab7eeec8425af176f3b97eb80351158095708083dd51d896bfc03d308906c31eddcb816ccb28eaac48bcce688a479dedf9417c950a7a8c95ae7b452cf83dc548b64d58b52928e2f6411d4b02466543e361de3db17d8994ef28dff206b493564876d5e274658e69b5cd70a0090d669a865e56e24150b57ea6d3c261b11c1e45d7bc387aee61add50c7f756e593de9c3057855ff761e95760813e5d30b41ad700bf544c451bc6ff51998bcf48bd6046d9bd461924121a3d8daaf3978f792d9cd23978f1c8ccd999bc79d2a10daebb3c9d065d30e970ace94a0f774d872c700949f2ff6a997c6e3193c5782c82a077c4524981e7aa6abb27b86bdc75928dc9599a1376a2a0ab53b6668292e4d34346dd2658fc9d10232b7e39ff5843c620319e530c71052952f75f2ab69fa193ee321c5702b6e3107dfb93b60cc99cc88f1fb48c0bf48c032e2ab5a3085fc9ae1f542f7e0abccc90b8dbedc9a2468da43edd62864be9f7f50149300ae6e2eba570ded34fdfbacdff6bedc092e49810a3e0e860438e3ef56f15dae6a1f3e01d1fc6624602a486d4f2494a3a81694971fad50647f1f0d2bf9e2b4580877b98917b22c55207689da27039b3e46e7f37bc785c338cd0519fffdf11c1bac606dc58f36f5a6902ae32391c7eeb9fe1251ea7575632aa86ce0bf516bc370b3b02ac8a66c2b82a5d69506211c5d3ae15d3c78d47df76babf0c7fb0a5ca3dea741dba47e67851ff66b84c8b3004f8862d6e8f6317c708ddcd6f232f78d081232ad98aeb17402a9ced35420a5e2802381912f9773d0d431544b7466f778ea3f379cd9b095fd51c2a3bb6fe7bdfef1188506047a31905a3a62ab7ddebd4c5655797b90e7fa78cc80dc7e9acb634da42540cb27720f67699e357ddcf45fb4bb9c8c555793cc885c31ffbf6674648615faf691440dc456126a5194ada986c9387e282a3e8c4efd5601f55273296dd8a351adb1e1f954a7d466e75057d8ef0f3d187cd0f8c2203967c7aa3049968ece39674260ec8ce49a25c87cb4fbdb73f1ad1981c19984c8a7fc6ec2e8dbf74889cf6ee30ad325fbaf3ce1be4d06255353742b14128c74765d32ea790b3235a3ca4a6e3adbeb39c26daf148ce4fbcb993b48f04cbbdfc88f67da205c910cc6d0c85b355689d7a5f6794990cd5a8380322d807f4282f79f2d2686deb4d598f072bfa2df4644c8f098a1c9589ee93fb48926675c7e1481de74304aadd8b104384f4df77cadf60df790a394f021889e098f960650e40b9f71193c642c2b28dc8e73934646862a9ed47763ef721c0c01be4da0de58dac976c7e52ac407eae45bf11243f741d05b90ba2a351d19f0d91d115dfb4626e2baa22a8d1a047b7a527ee81cc059756cfd529db5630068c8d5120ea7a6125d5fdc982f6dd91efa9d4f19891986140cc788285f0cc715e9b21f2175360b67dbedc68ff3b41bfbbd1d3adbade1c46083eb973876fcc9ed1e264e8213111bd18beda97fa555b1cd2f9fc8d216358fbcfe430751152c09c02a78b8437616d4326e6d9b87a71e5dc04e61ffcbad9c2dd9e2f9b28885c3b5383d968611de6be2655f24dd0cdf262e134e8cb9db1abb07d6fce167a9dd323b1b8f7232a8355d3ecb3bd4ba9a3ff17bf0d97fa29064762a6c9b7ba14b1264cbcd276d85e985926862c96e322308242ce44679502fe70654f54d41cc4ecfd6933df5eb3b3f2bc47d76e85cac79393bf6d77bba0164f6f06922474c9c1f9ab86da8051a7ceb0a29aac113b4d1430424e8e498a6dc40d46fd0c341b00a069128f37e56a25734e9e446a500e6790ddaf9acb20f5f67037b2267bae2d4003e1f6104067ce5a360e031cc604dc828c7ee79fb9aa5261e14f473d6b5f0cd365c5dbaeab2997624e705b0a09650bd386b78bb38cf7e5a3cd67aee3a985bf25fd1017d3f1870d726d4f211e0987e9251ed9dddc27f5322c68254850b4a4845f1610fe728092d34f6f9b55af7c167bd8f5939f1f5fecc9d1e375f97961a304c775c36bde5c065076245a9d6bc90c8476d958d00f5421f869c4109f6388a8c905850ef8cd80927b44eeb042adfeb13d808dc337b0d3eb738782fb4322becff76b85105e0e737dddfbfb423c11bbf3bf93aeda6af3634ad5d2d49b5d36aa2d9c72537a69fc0db81d8b033b82c8921b7d50a51546415e51e7e5a47f3c71c5da157e25ecb701cb9128400f0a7fe4ef801a306ee61c2cd975143959f7ee2df91fdd3678719597df544a1686aa9a81b81cebaf521deeab903c45659b270b5906698af28afeb37ced3362e43a0adeab50e2c9a2019f338aea7e29195ad472467cd35fc8d7bc8e5e16f86b273e5af3583718cd0967b32e39ede17770e77abc124b0879e997caf22ca684cb60ca3860f4f2525a989434b132c2ff173383c74582cba5dceea5d947263b6980eda24555a778e8d676d2570e5049d38f386d68b13ef53b035a83364d8247a6b32627756bcedf14c9dafaf82a4af23b232e37eb4b4b36f4bdfbc9ab5d1a963bbabfec682c548789b2ada1d73f283aa8b98ad214c7e509f5943daab0b54a5f9d94958a0e3887feb46afcf00bb0202794af85caff85580f7647fa3e0a9183f202487ea5ddb661416be051ca0da39769fe2f99793509acbfc3efa82318c69803f386cad629b4160a33b743594b0e379b7e9d483c2e5d2dee40489b306981aef5541a8639533f46e058b83ccc878600a43f1c97e36aa1a5b65ad3b2dde0362e35063d6ab2018e2b866ee1d13cc204a2949ec14ff98b36408392751962c889e975de56ac5bf00ae7df15768f02d9243685207c530531af5b4d838d63f418e9261fdb9204e14139e7890e290c047a795dd7aa9ed45a2ae86e0a20bb1489b2366d292b5c8cd2401c5039ff21b734600a046696d728ba8e4e9697f9ea7cddcfa1417272b61689d9fdfe5f95c626c92d6ef364447505e6188abd7e544838aaceffe14768e94a6e0ecfd4e5c6b91cfd80000000000000000000000000000070e191f292f373d""")
|
|
),
|
|
new SigGenTestCase(
|
|
TestUtils.hexDecode("""
|
|
fe28a25123cd888c478aac1d081ea7efc0ad28c299b7cf879c70474654b0bfc86095607a496c78350e34307d09bfe1c2440919feedd0b55e8f495f7da65c3415cc63f6996debcb3c67831c2db563ea863c2ca586cc66742ee69b014ac318e8553fb9a3d3c407f9f27c5fe91702bd52331103624c503cdf2a6dd0e9dac9f27aab90261120b905ccb81043122d21146e1b83308c12220a34521a3646a1942103924d1337700844890b098283a891d980685246458c004912388dd91828d2300e0c82690a3288a29689c8a67190826de2425224b45000306a424292dca22954946483865192b22414c46520a91194a60d0948809984891a160218074e6324845906511931715832615bb091da9229a124861a963008020c23246662a24dca98801a369204c24888221123319064a440caa828233131da344911412913038863b48d8aa6301ba4884c4249041990211745cbb848203509d8463004272a21298d12b26840b22843005211b381d2466c02048d0a1104db260811078a012590014810020210dc84651836024c0622db2208cc96259336280821268222101383900a364d22108dc92802e3126091c465a2a42c9c000613133102c1641a202a11c820149928e1228c5892251c1851c2a0049a982849484200166001996d22a08d8aa804cc184522496dc816910c4331a28268e4466a4cc66052a42449a6250a15468c480d02c72840462cda302da004241a170c1b387161124213158c5b920812886001844d4142600b4891a2948d8b802c08b250811224c4a0911304845b14819c9690213806dc88858ab810113760cb80300c212eca2661213081cc2625e432488834400a808912234e5036121836665cc868d0068199186113a42148206609466064486a13362061447021c601208671d1085194066cc3845059242e641640ccc83050142e98884d52066a8118460180919c2482239550e1400c54b868c3c68c5a3064c81645db422c18448d0a914c1344821c27680b212a5a246c1aa76d4a0226dc44804290311b3464238524c4020d88b28492020253b8311cc91098404ae40030a2924522018ae316429c44719c460451b04c14a63052126edab4511a246d2226714bc891c418249c186e630049221446e40069c8102211262e14c86189a4044bb6901a28861b02604914210b118e0bc18c13252a8236910c47889c246c02988840886059460150b06c11a18041260c03a42c9a300d0c48448a148e41400d633866e3b280a14422ca027011440411814041c609500046d138801112454ca2719136009b4865c1442dc0b084c380405838821ac22cc2124114904de140211c39122414019b1691838671ca30516184642295690b808919c9891280012223325098651a01119b421002a14599c6615804700911012349605ba25118229122996c1a239112048cd4b80503300114888058b6512332445a4491c9464551120cd004812195200bc33140182ce2122a184652a48268a336681a1121db348214446d84a060e13424da400d0ca6090214521a05720b361141804550186699a01110b60c198525d41628d3446240366d5b0286084750cb268da09465d3006d64842922368c1c096ac23011c23024a0949120464dda400c20816591209163086118016e88448e11a5059b148a4b38208004641c4051cc80081b074861824562c84554286ca0340014056d58282c8b021222c20863b804cb4472d2229284982d22885100c421149270532251832682c8366ee296088148319a444e201902002544e02091e2324e080742db0691dc0206a4468ac98011009645a2004a50380558200c1cc76852924d08a74c141700e0462108000a1bc03058964551a86c14153151164624040501097120a88411988503367262209153403109396ac8448e9912099b862550004d63c63108a208143821003982d302862022519c448d58126d624669894026cb2222802868c8106d92100144260d1a93300b166264884409a2415a886c0899040a3929db264d140644a430115c9865211541432865d2a2201ac00542b050c11230e4a8400a4180c004101c90296426919b84409936401236446310628240924ab00dda3066232942da048d223492d8302001900822a98cdab25103174a4cb03104186e924244c4281119a80d1932304120459a8601e1a04c11882412006299a600d0de68d40b4872c5c415d2aca8c2feaa1ae9dc06b16212d382caecea0b4bea0a1a4eedd4ed8203ee52e2e455b5d542a745bec1f76d74a497dc7172059da0fbb4ac038204c13cf6e8c61b590534ad23f02fb6d32ea4964898d9768c319e931861679a1cca240b2c0cb6c01a2474927e1dd15b63475b3fa68924d4502b3511df5b91723e59d9d97e909473f9cdf3e9c27391196d537273b3dbbfd7a16d808425f11f5fbf5e6c89b80e0df01c576db331ee6562b4d2ea4632b5c9132f4b88a409f93612ce7b2a074a3a6e8f498dcd1fe2996d9d7f604f1063d0e803cd71307d3dc882d5ded30fd5a799a52e28896b9312bb53d72f3bc4a7dd9e963e2f4d05d06cc4d80230ecfb70c5b826a2844d714729d9b8e391571adbe98766d5b180d4216e902ebff86c226e0bd5c3d00ec141b00f17b0d1d6f3a4f407a0cb015d70c7ececa5026c143710cd530a15052b4f8c4092de12bfd598693922007139e0a6c924d2a8491d982b653d5ae9b8762939fbe8870aef52714e7fe67a2da7751c91f8ab5fd73b2dce38ef6b21e869dbcf4224b9af61a773553701783a17187e2a5b28c8dfe501946f16e15621ba55f169b10542b6f07c445e44deeb1ed07708ca5d5c14230ddf8dd5faa0eb2e209dc3244039611cc9fce09c2c2b6d56b23c790fccd3787667e252823ce6bf9d60155dbc855a4c7b274883c5e2d7ccabf9b0640f8bfee4acc35f0cf8c7a9d71735e2c22ead23d6be69926de7010323083e66571680d2508d6e9e4c752eba3a3f050d4e53ddd657a4d09cfbfb9d8768ebc539874d27458dcfc8d2fc84e8a78ae7bfe1ffa6c0fbba1fdcb56b65ed5985f2e35243328b4f43771fcd9a735b3a721d84cd92082ae4b4d050d0954d9814627385e5cb538324c5a315474c156f4710be47eb9e5c66bb4eefd2cb13d066838d8ecaf73a4ad25af96c570d9b5ca331eb03040ca41e2d23a469072d506a6496fd33163f391b914c36f681ddbe497b5108bb5363b162c7e333f2172645f4363e8c849adc9c5f53d26ca93146bf967e77acf6106ec06db4c909e97cca3b005eb790ebd994bfbc8316c749b7c3c55849288a18f65004a3a975b3f72a8ae8aad361a1c7c5572a99713af4409b1f91d3d8da85def0360442f46b86bce3bcc53445cd93647d0168bbe1df9b9edd77c7d02596dfda2be9ca70b8d959e06961efb24e2effdc4182b347904587a80bc9a0783cd65fc32b3e6b48f67941b8842d3f48a819d52cae5dbd54d0d2a8479dffd63afdb882ceb95e36211861e4cd3ef0341c373951e8446df7fd2bb43beaa246d0bcfe24770f42861ec978d00efafb27e8b1b4974177f192e490eb75ba2faacefbae949b7a236ca1b4141a625683aa652d90f0876fc8bf90dc843715f869b0db24f9bd9a42ba188b048998e7f0b0691dd0087f0ac1cb770120c63af237a45f9fe45b3687c9f9ae9a66525af9447f0944cb4ecf84f01a2b34068b8457d01051f092834e6be601160a5ee17d94e168f6a9ebabd85686fdae3bd7f60f20aa4f9e669b1fc39da73dce2014dad3820d6f125c0c8bb3386b3ae5de0e193f6ddea02da3a5f8873bf8b0cae80fffb5e1acba58292bdbd9d380deceab59a29147f6b05f26ecd3d69a8e428cbba2b78f2069bbba85a28c441222e649dd7adbb3c3b2b3456a026f806834b9f3d43186b9720a7154ba4a12de629997f9aaca8139e3a773d7330c3da727037021618a2adb7ad5aa119bcaa3c366ba2ece4f48ac6ebee1df641a33e14f9ee478fb59c04a2051c88b09cab337af5b5908b4312abe14e1dce9dfca692cbc59625dd0dd7faca4ae82facae15dc860b4649032ef6bcf1dfeca621962bcb3101d1c263dfcfc8c7f14fe007611df65d8c2f308df5317edb623e18bca8a569c74c2c63e4be52ee4b0df90cef8b31c81271c2ccc8a3b21be2da5b733826f66e29fc91e299ba4f2f3f2701d51ab9283185c02746cc9d4350a3ab0781d3a2ebd37992a2439586abe5c23642dce99a413cbf2e1177b0a396ad5c0ef18949b1cd5c067a9e558de1b235a7b5b86b9abe8cd7cfb77752b692c28248823d09d52158e81205cb4342cb032d655b93db39ddda37d03118f70063e04a3a52b50c6112671643f53098e62078599323b9b63ae618aaccc9c28bf995dda6923287083671b10277b95fcc1649a2694c68cd5c35fd87042fbd83dfa792c71332e7a98fd7d98a85cb4eebd3ed4a3570b99e82e9fd421ef3ba9f7c1693ef62687854b32c3e8d22812726ae71186372a1f7c8af334a62bd1373adc9daa77ad5984aae2adeb45c9ee3f268f1e07f9cd4afaeed2b008dc38322bf820666aca43052f4503d47f2a9e2d78ad3381f5156f52b64fb793715dd812ab19bf7e7d65acae18e0ae092d403a3d7fcb551996becc7a7c1a195a418b91e4f4b8df8a478230b8e7e3383135d5a3084c4da9cfba60229a7bef26032e50a721ffd0b279681c1d8ce2e37afb9f58f5e871be0303d484af6b6cd21f6475d3b1514ac221d6ed2b756346875594b0b4003e6a4a798312fc76833b6c04d5aadf1d731283e898226642436dc59b933fa1dda83f7cf2f5fc4b0f16320e5f963b431ed2211176916937c43ef261ba2a930699555114ffbaa00ac6361d2e35b440ae4c063d6856d837103497c8b487fa00b6360d86251bd5faa7d23a213fd16106f8891a103167f167008c1d09c7e1c9d82fae09e5a3ea7c7193147930fef0b8c04a63ccfb986ea736b5d3fbe7a80a2524994332ecce5f0439c0660f9c7c1245cf622749fff13c132b5190aedca8b19fa660063bb18c7a6a3e469643bacc479c6d9df840dee239b582b5f469333f9abc063052d74f75d98bbb0d06c5c5da6d7b93b617a0f574274b2d8b25aa3b21079d463013e961fab521c67f5183e0a3613cfbd8f5ece6d3791efdb20ba9777c5cd95aa1209a9a95abe030134afe843d15e6a6874f3bc6570ed17df31c7b15ff9f3e4b8ec000cbf520dc164afc8c511cd35efba2b178e613908489cf5a17039df559abef9e8033c8c772052eba33577fb840b276ac325041ffaad171880f37830cb60da1997241cb6ee5594b97fb353bdd575916f9705010d04f9f90835b81bb949b6f35bff409d5588cfa50838a96b22ee7d5b66d973f614f6d323ba3b0581ee407791a20ff4a66cb4c208f049ab46617dc6d26d51c4b6dda716c018b70d6331aa999bcb898511191dcaf47001d1127e1f9886de617c2002e2ba2f27b04d3e53515a504a2d8d31c1fb587a160a9edfd1dd31966c013c2406725e79a7a93a73756b9a29f5e5b8b80e3b9c53977541df0c2043dc42dee4ed68819bb8387a33bc2be6f4b33db215d28a983873e200f685d7794d9a1d2c38608f477dd24178817f05884c01d1f2ea94738b5601ca99fe21f07234c7174c5b20d88986cf717507699ea651de129878b2264083dda1beb6afeca929e98df36308be0c8213ce94d4e5954c6cd1f2a4e19a3ae9e5e9d94178cfb6a9c90bc3bfeae5acc91e0493896bf8e20fc3d78204449eb3aad69261d768c263fdad21b4631d08379bbc27e4070a5bd3b10d8727351831a7ef1decb217366f4bdfad707c9e1698d6869bee22f3579e9a79e7107725303ff48353eec66bec3f00d23f2e56cc872f29d1865550b4584f0079804655375e07738b9bcb4ae00414243cab9ba6b91f3e158e87f8881401da309d549b456290a13e0f9e4d48432663edb082fcb0d84d0eed0a8b0ec2df577240b92638d99ffdc5246f6ee8ddf37af524625abb38c23792133c8a7fea5054040b1e64af208f1f0fd02b4ea1f62197390aeb4275328a32e4c8f6d68001b6b9323d4763a72abb5f7246856ce65faa9431c11e13457ea3698611659ada89b8d755e8ce1711420608b67be66a9e417ddf39bf9b4f9f63c160f679955c6cc80f2ecfd72c280e1c803d1afbaaaa37dbf996b1d612c861b8e42ecb1c1a3d40c35bed6b2378af865d5ea21a3511a4dcc4710769443ca30636c7dd175b6afbb976bbd849073e4f3ecd3095cda97c74682c0307fd13a3b754150e2d282c8b42b6d312e901f74f3fbbab48b92cb40d271588f1f71eb8f68fe494ea9feee165ee9e4c038229e707ec8f4b79bae7f3d908a4c1c71ebd574aff7772bd1d7baba202d472b3c24d44f0f2c459d8b903b171d2b39d5da366bbc8c03c2487fa0620db7346251a86aca3cae7b62ef4d0d487430463640c47748fb7d52a53f683f5a49d3f7eee3cbfe59696ddea73d2956aa9f7322f4828f949d42330e65880a1d7b3ec79eaddba9043ebc9e47b9c010bd230b2b68870401c42694ee96faabd822c5d216cdcab834faa71e3d3c2d24d12f70948e3b7b5a4e5511642c3b43157e2b9d1d54b1ae8a5d7deb3d4aac990a040b8320b0ae049bf25dd0ad3fba1beae1d6ea69c1f1ab631f06dce637a8244a3cbdfaca18d1375e0448992affae4a7d08653f6a475b2ca80057112e77b8e6a7c0f91e365b74504b3c19eb529741d2f6df00d965b611ff000d7e85f087ba0a99f1c4ebd1d3e8c30ebc2e6ed249154a709077d7683173c0b160f8aa7cdf7f6a7b39f85f4ff70ce1fde27e7a6197165a08faa439ae93a3d28cee7b1ba2e20f39ec6217aaa6800e1314408552ceba1f8dbbbc216403b976adde8509cdec0650b70a3d1b5daef27354bf1ff057b9992bd1f8512a04020c45d35684a781a3d2e891"""),
|
|
TestUtils.hexDecode("""
|
|
4F4C7E0134BE5200C4512299D134770A64A76B73A82463FD8C86594939DCFD9DC55B895B32A2E96B8AFDB8CA83AB857679C372CD88754CD8A7B0A31D2ADDFD7D1BA64556AAF1CDD674F3E8F5FC0BAD2FA38326365918430AB2344CFF785D5F73F2B5D631DB29FAA0F9CCE5CB7FFE0CF4AF1C7A8950EF32F1D72080A492C7A25ABF67F409FF5D4B1E0D77268C0A1B2A32D9DEC61BB71EDAE6BFD58F274707182058F0E6AA31E6D3763732A82BD6F2C76647C7ACAAE7FB4AA51125F0D2D48351B6A3FC7FD18172FA8689AE1602C4EC0CAFA863AA98BDBB1CD8C2681C2B6C5C254E346C18E2A270CAF2606A6504D30C0E2E505C2FF9D18523BBDF21424C645AF0EFB2EA0FD21B5D0CD85C7C1EE176FCF904B481855C4CD739443F3340AE48276E7F4BDC00CD11C2B0D6B97BD00AC962EE1FCF8A73D3DA3CCBB3B72095CB33C5542D86E843641CC98E27545F99188AF064D5FE74739C54F5678F411D96A0EA043652935BFB2E37EC934327C7C841CB0CD04EC17FD06A18E88882177B51B00DB6EF1DA164245A3F2554CEDE8C84DD777F0B92CDA456D922D8B7B8B63B548CBB72CFACA540C0D69F9EF21759F243CFA03EBD6B080D23DD62945E623BC4F8323DAEC1215B251C35EA13A0F081B86E803BF37DAE6D913B7D942BD1C276ABEA3F8F74D0C8727EC21EED2AFD438BB7"""),
|
|
TestUtils.hexDecode("""
|
|
74bd615dc15e9ddf76b9f9bfe3092d48d80a2e8fe813b8b54d48297a3a3cc255927f7d8eb3bfacf8ba83c73455ef02ad7fb58606a401c0b29d8ee5c2146dee8824eed0d40dc886a5a0f4cb73a0a25c563fb78d9b347c1b0677d5b1f4fd9b01cde28958ff5ed00199921e2d72a63a4d5a3c43b9f5a47f5e80dcac8db898353bcdc754e89b0fd3279ef60fdc3114761c611f5d51a7c4ec9d4a3616376956a6b755d2e162db6df7c916d1054cc9e624a7b05fab4ae9080358497d8172b90bd2fdd8219e86663deec82ba86c2ecf63624c5d7aeee9f1ac56738c58dbc87d968fa3ee5098c51188169b188120015a00ef3a5bc03c52616cd04579604cc1affd3aa92270491673887b232eb65f3c0b2135157b6e57184b10f262605c26424cdf5c3a5694beb6a74ff252df89bd7693abc92ca4998d9c644cc737e8baa2ec6380d10154c212422c069c9d6fd38aca468ac10e08fb4e49b4d734f284c3e641182276a45be15cb2a75b78d52dc63799a5a2e4e800b30871655a507c2d0b6baeaaef0923d67057574559b87d8765a4c3f87ed76f1ab5bfd5eac40870dd7510b3bfcd84dd9ea15e5845626319e5faac3255bd9aa7686aef2410dba1221f67b3a649c5528a7f87f0ce8556e3f32d5c48622844c113454d08855d8a930b1c7d68522a9d284f1970f8944ed9882d515a877c21d3a85cc247da447d8005d72b688cd17490d88c9028c140f70052416815331fab6c073ed191288bfeebaa7325991edf0ad3520628f91d6aad43411e7ad0f8aeb6825f9b9d63b2f7d5c0f18c67d58634a9d85ef2a932cb231cac3f057656ad2c0e87a35fca332f132b68d60e39822409657c06dcc1cc92fae42a6c940c379e1fc61b6af60022a76e52c1a73033d6877fabcf9b17583aac80b5922148aa45434fcd0212634d5009aa509fb35e57905e033fe1026cfd4e227861d5be4e69838a92e070b96e61c747596e3bf27084e804dbf380aacb659ae79cc4c17f20ae64117088e297c82b8df7235974c4eade96a4567891eaaefdd7fc8ed1185a8ada618e440c4b85b698028f7ba29d46010d2f965d357a8b469281f5a2d3ad786092d5954ac780793f70ec4ce0ba58b2d755c590284c0062374d9a1453119d78b900b33d0ae9a7c2becfb014516d6b5a71da7c16c9215008cd1fa18b0e2d4b1a189c698e0ef49d230b7b284283b54cf907710730020e4c64a935ae5817803ea1f295f19464122c952de6870cef17bb4830f74e253ed99fc9d39618d1755003ce2c6434d5b4815a791df5478388dc9d6b3a72fcb326b71163922a7660304a9b9a0dc3a4df7f7d1d12fca8f3337adad6144add960229ed4b0de6eaca288ffd38a0a0ed6e0454e95527c18efbe3a3b4a18885e5f568577d903583ead64d60b82175aa2b19e100068bef823e2e8972feb348ec9f315b0a46d672d17effae1b47d60fcefef137956df1b4addad9587f6769269ba0d4e8d90090ddc2fe579dcca0980787ff8e41837e4306dda5f10d3f63762cb2f1b88558e749402b37ffa8cc75dec83fb44a6ab62260a15bc5f6e55eb7c1bec665ff4fd2a3d6e5360b3965187daff84ea0e42ebd3c33e57be120002e17e27d23cc5db3519afc91d9a6cdfb04bd7ee04a69ed087c4eab2ceeacbc0a0f4d6997f8471cebc6552bcb17e33ee72a197b5025b1499b1a19183fbca863b749758023dcca325bbf934fd1eee220e10ad10a49a3c5d861e91fcccde741b28ee26065812b371e25ade89e9a4bdb74956b9763ae2ed876b012d9c9e1278845806d9b22774b107443293848f2c510ea69fb45283ee91d08784c88f31de801244012ebb472b1a5032ec6c7404a03e6ba6c804aaa7aafacb204e3dbf5b9b7c455ad35a976706b0b217ddb0009562daa02a09e6a16484d4d85a4b5e5760b8b7e05c5310cb9eb1302447fd94b64963f64e2f182e5cac29ccb93233d43c398a7adc0d782da927a5978f7678b693d3c91988eee0c11f8614d351f48a3b35c8a5d1cd343ddd8f913e91f82f13922d84fe4a1c1599eb4574d1b1c3b0664695ad132627f8e24e0422caa6dbc0631d44244eb1025020f3018a14629eed3ebd1020b65ca21cc46480d958f67dff1926f99c7eafc6ff893dff9d804ab937dd9a5249d377eb2a9dcb8461c3a45e010690e8179343c8fdd033a2ceef78f2fb158087c93533d3b12b0d02417eb067cb63b3f961f56f7924d549e8a4ef12fbed383997e41ca1dc7ef6bc6629c947ea1a4750e3de3477c9d278d35f109f877d8af9dbf8a5be216b7a3511792efe170d79309910206de37a69877079a6d74b2a46192bee571b47e64a1458f590203789137bf3fa3a11defc15c00b976ee977e97a173502a3c13e01d1ab7c385f216ba812263096d0ef9d7c0c61dd2656771bae1edd5073e6a0e61991e4c163b5f6847231dbc2dbe261cddf6f31b614158cf41c3baa1e9b82bc2c4624f1be8322fb23f94912c2b89d82152e84f19ec84eab678fc79cb31ab6ffc25a56056066784fa5356cc4a39b33ee83f41ace4e6ba647d43e5717137c294093ba7c4d5d2f462d63b9ee0fde8b02d430179c84e79c168dec2e0a24578d067b6445972e0576cf5517284498e061ccc215898e15bfb1be5d8eadfdebe789188852a4e596474c0aaf581ada0f472ccd1a1ba6705bbbc6b938e2bf0b115557d73c3f456badae8422835bd12fd4f5a48ade113261eff298097c33dab6320603d813a198bcf6cc7fd9ccb78cdab417e6a8047e11867c91ab4072763d5e63369a58e8a3cd53258aca1c13f153c226a356b3c111a6fdb0bb51e5e6fbb400584fd4258bec8ad1b72796f0920a316564fccbd05e9bd5dd98552e04abc6a402ca47a9ed76bac30bd66df28aff95d7b86d95377349b7ff0a775b32dc5d6f726d16821c217f9deec62138e6b7b659d985dbbd57c7af7d6d0b8d234b47b122a02ea2813bfaeea52fac4100abe3567b18640f0e39828798b9788cc51f2cf987cd41602291195d4cd1fa1d1f152a2130fa6631dbf21fa1ffd933dd9137f7d1cc0c7fa133d3e4d04976ad8270ee85887b3d630576b45be5f2600a5c8159cee9154d7a0e4acb1bac445c033e57827908ae303d59564268f14abbf4b616e21b944c907ac9a30646f37d53b6d512f9c3212254d35e87aaced28d5d3bfebbb3c9e06c806a5b2ca6702e276c74d9900e08f8345001b1f720240813243c78aeaabce954018ddeda0ee6b1d7638e97b6d5b159984a901f297f10921a681ffc28834cf5b51c9fc761d327ee9585bd88c425459ab657095f793c8f07b255c84c5a0baf15c6cbf14335031347a03d11ba6ba49536d6812ec4e35dff2641bf4782f3c57d2d8e4b0d5d16b339caa4517ce6e8fe2f13f7d9837adf95500adcde6aa4191fd0cfd66f866c520ad3871f4f3bfaa5d0b8b3e1954bab44ac6b26713d2af52133c704d5237a32ed5e8ae69b897c29358c4a89ebc7431aaa97a031bf243e1a41658c8de7ba7e769e73b0b57a5b53cca25993c43f63244789e41b9be75859efb110390b8cda0aa314f96bc73b176d8cfe5f0acbbfa245ac49aeddc82e2fcfe9742c26a0f6128afbfd02ced63b67c26ed4755ccac4bb26963bf98f29c5146dbe5593d7a5b372d726d23e2947f6d98fa34454f6b9271a0fff5bb32a91b9140ef7e1751b3efe5571629784b271bac9d4b48c7fb0ac426dbd46dbf86aeb137a8c9b0d3025be5d71d7123581ddddac339535825eec433455a38ca8c6d6ddc59f12f6b4fe4e5ecb35bb3ad77a2bcdeb5315dffc072ba16565ae879e52e7652c9a45cf8ca840e913cd71dda69a81a09faaeb51a44f342812df6e88ddb34ce2e6a9a39b72d8128dd973ee94d6f86ac4b95af05940914f40ff800c3b25f3ef7f8a0261700415391ff4e9f8bca688b4ada9639da8e0ed0c754eee0e1d75f7c4e148971e7a72ab0233ee2aa77a4cfd345fa3062b921a9e49d444acafeb8c7796725dc84f2e5629b91f876fdfea92484aef3f28f9645973b47e9c607ab78877b035f64b8df0789fcab17f8d7ad2bf3a30bebd4233dd9ec3761bf23ff636ce7262974b332cbc3033c38bce5f9452dcfe3ed46aa3ae7c2c133160996e93a83ac01c4a50b0bdb0d6fe30c0d2b88122514aca33083a88b86768a46d11808beaef3412ba771eb77a17bf6328581d8213c5a7271adb13ee318f6b11624ac249857237d13c4308fa3aad7e148d0fe8b7a2c32ec48db9c2fc12fc536f5e9356dc83a8b57fc082a687a854ddb1aaace41e07845600cea04572c98a2a5482301d6c6e77be14bfb481ed5d36d9ead04ebd29e2c72f6855d4e13c58b338608923ff7ce5d366dfa8692b92c5356b6980d7ba133a979cc5f0e5fa066b575b0f7fac0e4eb0b531e404dfe328ee6ef263fc652a5ed151585d7fa47b11edba2b6ea5aca517b2bf5a38785caee5096354f4b703b8f2b6e2e7cec9b3c4fe09b0785734ef10555eca3e0fac89bc0293db20f64891f4b2773e2a2124e64ca5e5904c5d17e5d8dae7bd268c8a537d6fb7f11287a49e63e028186f9686b3bc6ba6c55a851f28804f53a0bd43098a63f5c005c4d3970cef231379a46561d41a94c18b2141843896a3644f1f19675ca47b4bceb6da613c0800c214df0c543dc6449831a7486dce0a6f9a349a4327209ffd5d240344912fe4315d9f38ed9e9995c814864de81e093517ab59e4ac5ff9d3c625c2e3db325092eeb5dacc6c3e5e3841b6df280543ab79b7edaa510dd39fdc44640b37f1cf44160c067432d32e4d83e60064e803a7c2bb5749e8cfb4c65f4fd515a15db304930279e95cbdaf3df8960f59ab547d527031d3d63d94d937a3115d3405e622a3f0a6c14c8aadb7464d5da999f16b327b61e9ed9296b0a8ffa10bf4ee900c2a3b55ac356f98076b705a8712613844aad76f961cf4829a1ba18238f2265a08c74e0f7ae875c19f70e9f73a328e48a7fd22e5657abb9b393bf766557fd834c6e81b07e1d1d92ff689ad1c794a46e6eb85f4d342caf54a0ed148ede130b7bbe1f1c2e868ffb20ea9c20b45f0311b352b85055d3e162944c91a89d00f2f9cf0e9a93743646379eacaa4ab3e54bcbce08e4ff015d0c424462c2acdf08c747fc3b7c7baee4e909af894c09395b570ae516ae687ac6d75c695b06fd8767b871ee41113b9eb7f5eb7d0d46d88369fed3148798736f31678d06b0d3402bb1577dc0f3f19a0a2f9d101a611d1b33ff99aff52937fc21d44e3f2c293d37b9a901ca71bcbe03965f2a458069c9dad2310b58a0c5662dc113d7ba619ce3e2b66b929e6770ecc3f6026e9ccfead7df2e44cd7e7fae06683a4b5c0a3a77bad76c8754133d7c548bee11be8cc084605f24668b294a6a0a633c7fcbf3822443a90477c8c501fd33c8778848f049a710971853bcbc2ae666493faa6426a96483ad0bcf8ed0c4ef0b58164b202650fce31b3ab76dc96edf271415c5a8b0414d7f60a51f01818b4e8c4df3f35f51f7738ffe534b2f9c2fe2acbf7c5e272a2d1fd4996ed30acb03abb0dee3e099b0430dcd620bbd639f3fb8b32d66c02dbdb262596c6e177d4aa7f74a959e90bd1dbfc061363870c42bd573abce58ac853b85766cd52724f158be47d62a90dfb5f0025e208c9daa5a386433ef5072da5d8938ed6683c7131dc5b0c66a4c4c2e14b04dea6fef564dac183478620e5c0ef74497974222f2788c84523ebc5391516ad6dc540095080042a5a52611cd4bc7785fef1768737ff1d9775a29a3a442f97dedf434d0fcaf2d8ec4931960e5ee03b91c6b16bb050bd9b64c9f8858958e1e6884cb916d6fe9643f05887b97f1696a7c111fc949009cad4f2ffd42f891cdb39292e9183b5eaef8c463a9226e71cf2ea4db2a6c66b7564b38aa04ab38d718aaa8ec5cceb4589e4f72e31e80910d209296e4342c65fae64b55be04a8927f0b9e7bab21f37af331218f43439087bd67d639bdeb92c3f774f7fcfb4fb33171659e00f03537983cd481895349a534395c40addddec7404c6adb90ad2a049ee457528a40821d4e57b94224d686a7ba70b5b2d35102b73de70870bafedf2b30ac3fb7f26679a2471afbe8f9c0f645e7d50d2d9b1e921ec8b84a1493e96e3463d1785b452a58077bd78708c1b54a96d8cb5b186e56cffe16f6ef668ed05cc0967305b409714679cd775168333d5042c9ca581c3ae2ef99e76fc7c42221c2ce3e138bc85e202fd3136c35613396fc259c4e223ea528bf7e0d7a48ee2ca96bb81e687813bf2c04dfde469c649a13816d3ea3e13b2f1fc1f6faf526dea7e3e39715ea1d6542e1a3b007fec2051531404040d929fa91c88a73ee9a717a93df44430598fa2d5922564a73b77651f24a4265c83ff09b25daf7c1b682da1498d5377ec73b00b408a4dcc9bfbfeba175220a6928623238412f1937228e9daf416a6c9aeafc06083d4d525c8eaf1f216299aec3d7e9ebf4193a42649fb4b9bbd7dd27367382849ae718394d86adc23270737c8fa8aebbd4001eaad3e4e700000000000000000000000000060e1822292f383e""")
|
|
)
|
|
};
|
|
|
|
static SigVerTestCase[] SigVerTestCases87 = new SigVerTestCase[] {
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
f72a05ee9f7d9072a579e3743771e12eb5c748904b15ff67e6a82e1bb77cafc34ea6f06d0f391a3eaef39db6331f1f9660795a5e7415ea21799da7f73b9e11d1f349dd10d258fb5ad40e6421b71a2fb114f893c051929bc4b5e5d9ea311c3c892ab045948fffaf578319fc5a73314fa93a88010bbaca9eb5ad63cf8f88497dd7520d12138628a52a5bb3010a3ee713ae6bd21fbc3ba12e2d444e8d96a3d06be555ac317d856fbfa97b46efcc1b15625457f065c9f8c73c203ea957acd2b865866869399ab9bdae1d30242b31bf8f29e445f07c74afd7e665bc9087d3fc94140393c6b4a81621c534cccbe0018bb3fc3e50342caaaea0f374e23500a2fe2d73dc1b0b0f7047de062b44e2e1362e16dc62306cf4edd306fa423d1b95b847b7974f547f0ee79181a4937094f1efd2864931048f5fc3535434c2b2df5b846ab4c7817b2814c6b4a984b8a3fe290cb63984fa8daed775fe4c2e452548476b2f33c727a0278b4712ce339fa7c68a6db7fb0c25dbd074a9b3bc5f6bbc22232f2ce264246fda6784f18282c904cec36fdbd92a7474733c63ce05a6e7a911cc85cc7ae477a301f069b62da720879f1ee02469ac49a69119c61f4db5bee7f00d93892b05e57ce3f58de9e3429c9432df433d6e111c8eaa02d1583b28a07dc5b3eb57261b7f158df82255cdac5bc7a559ac2fb30706029b843d304cb3e6b4a67f06f465ba45057e0d1220ada4e636075613acf81ed702ca3f1ee717dab24abd513514d7d893c2d10506f95b3988f875200801bf7a4739ac5cff8a30553131b10a317954c11e490793ddb7ce0faafa9f276ef47ba7545422e15653487300d678806f10e5025a7e9667c456fba359d09a11a17b0d0ac75ce9ea941b0fd218d6f3e81761831b9613c641cd85f658a9aae69a8b2b56342a1d879dd21c8485aaa5c3db1f3e19b00d1c83395b2045ce76a2067773e4cbd9408674184b3c333d3e887ce6c0b576808ced66eaeb8a8cd166b94796d60218d37aaa21ef12ef3b3b548bb72a672629583fd994b9f26759d71c7e15de4b10453ca02a64b37448a5eb632913e084db89ebad69eaa9587c1d205436a871a3ebfa7a2ca6a0b657b615a101e4fa29eb7862e804ab0d6e7a61f973c47171eedfe909807c88a0c9f0536f1c2eeb4826b68adbd4f987449e7a5e45b7efe1eaf09226778522a1998f9d79fc62ec7de72a05bd5e99f6aead845fa9ac32929ca2514671db615c916c0046e36951efa903571926766b8fd96db3e187c9c6355b92ca681a2244767e5bf7c1f565940e072536ced11f37a64036749cfeca9cabf0905e39d6d1a434831bd89492e9bf1a5ab9aab5176e697cfd5b0982266ecffd197a20326783972c972be1c21605398685bfe4091332fc53a396111b24f072d0b0e21e67fdc9a8d8088c1f9dee7430e8c75f69f3750aa6ce9ef7dfbaae0d58de48ae87137260e7a5f9ca430e141aa81921cc02a304dd3cbcb1c444eb96b4e689aa61a77f58cf5546b58b51287f4a9bfacc2096e8f555d5f69f50f5e8efc33715bacd6bc920439fd9eaf9968f6771275e16e286606a860263fd947febbdf046247a460f52f3f5e422a7b88b42ca4fc771dde31076254ed22402836af677b32773a9f331a2314c31925957a96c801fc20da62118b5074cffb95c2d31a0b80ae6fac13c13fcabec3cbe4731aebf1fdd3e4fb00e5a30f368d63cf7366631b56d691664e50367cc20753c6e9f6694ab7d090f94d337b54d00413b38531fa4f5bd9e56842e9574f226de48cc283c4c23fec937a8369d9b1a4bb2150ac0ee50b8da8d2dc874b53de33752d7bab603d1fb49c5ea5ccf7b6be07d6fd11e04dab95ef3b087abf23b1983461efd3a5db010317417fbf59e7fec98746be9be60b51381f3e5647ee7ee8b17e3e6c1157d992339f098e424f335bd17703d7cb4cf3d695f0e2d9c112cc71f8ff0d28ae3e2e3a0ad57051396b7b044054d6408a568aa0fe0bac15265c22d9274c5bf3977b4ca5b441da6dcb301e5e14406ee5a1b7f10e682f55c94fd2c0f6b97e6a75a4d7ed7b641cc2d01a2e18adbd02af4cc798a5c11c4d74a342a6e44e85099d4fca4eb68aaf1314f0f9e157c38b15fda038fbbe2bf1f8b3a4464c57104786e92dbd18c6e69c3bf6a6700b1b0873551e5f949ee94bbea0ebda0c036804b4fe6664456fd961e7f3141a0c1ab1b985876c998620944f89dd207ff7baba22bd198636102b3ec3deeac711edd17ea302fe9fd99897487788a3f5fb117b4d2cc64062a7ddc90f2f421a03044ff7d7a864e3a110fd002a9207f7b3d0214406a30dded64c5c76e04d0b09d3fb8782327172d4f27fef14ab8ec3efa160ebe010203460eb6694d0b6994e5053a03df54537101d48cc63930dc35e5360c3de909f8e060e53ec15ec2652b17a12befdd313bfc01335cd678ca4fed253398a61451e4ab83eeb7c29ef8a617b1cd3a09a470b4ede67593aa3f20ebd3e49e65840a2c5c6abc8a7365d4eb18d73e1f6fb5308ac006c8c43d33477a0b4329b6a9271f02ef6094ac6d236df8d5c95b0111dcde62248cc4bece19fdcd7869e9df88047cda20eee20a663d9c48b856cbe1ac561049b8366dae8e811bf9e307a7ee37a2d801e7fa02cf6177940dc6732544dc9293c751c547068f91dc984bb024b0dfa6c9702adb74df91cb6dfbebe498c0f715ab0cc744f364559929fe1a44855dcc43a6afb49e73643e5160b9b5fcf8df8d11ea90f1e573f94ea1a7f472cedfbd8de99b2748370dde471484c58ae5c337d8d5ebe022e3a1b2498a6897d4d0b4a20e2de6f6ebbda6aa83ab221c9f89bd0807d3461580018d83db68d632e0ec538c3d415d022a4411a664e669711513525f89e1fb47d7d3b54b90d227d5bd64d86a4a7b29266116a804f77db66195ac93070fe6b81d7480c360da18b8b57702ffe608010ece065c42695e2033690d1cc14f167de0bb3e5de2b5340c67b2eef8105b4a0f8d4daf5ee3134aa2ae557f1250abb6101d1494a34716d1b91bdb21afd8566662a5b6d4cdd968bdb2500e754ccb42826de1dac6612a43188b847d69ad8aa23b6745aa965d44d7d82b9ad1044706dafb952e1cf8a9db9681414467fed1471cec2fc9c49562529d7b8b22cd7b825f37783747fdfd2f2bb8f8d95b499cda043db9189d59d66b486485192629ce2ae833e9ef0487f8d9735e1b8651a45dcbf9040197c1b026143b3042117e0ec190942c72f120f13265816a6865113b8c7816f14ebe5ba9afb3e772b61330d0494705a5e31fb7a7823b0ea6553ae1736de468ffc67765d1474d8d2dac5140600718ff82d38ff19468c9f0f7747a3ca90db86d7d7c579d2e47bafcaf92d145250a88d11ad6556e24fef74a857fdd216b5b394f229b70e6dc5be32724cbd6b59889685e9ad1c36335f52e3ca2c4e96d332a950fca062cc31360a2fc405e418a25b237df6a393e92c4c02c987c1d8b88778481a825e3537dd8f1013d64ef1aeb966f0f94038e901b8c1814caa1cc8642497591f9c670888a2b7362543ecea4af57b99a5f1144a797157b842220df4b96ca7088c981f030fce4fa85d29ce754638cae597603793062d5d01acdc08aecc52ba59d8e46cf7eb84c5ccfac75f01cb8ec8c45c761d20d6c59e78bf36df162"""),
|
|
TestUtils.hexDecode("""
|
|
67D7F4FE3CC57FC8BE9A3D06BCA0FE4A39F39E3A6158D3E4ADA9CCBABEB542CA67CAC48167928336993C569AB5AE55BF95C8291AE1A1AB2B595C90C0FB19041435F3B411609412630D80DB0C832D413D69C8D3C3CA78BD1BDC24167AF590B67449DAC7F6ECBF87698BF3929FBC874F6FD68551B28E4EEEFDE9A0D0E7FE9E569F1F9893D39C17C3BA7A6211B875A7BCAD0C14194C30D60CDDAD640EAF7A02CC9DAC074779345B83F0D282899B2B9B61F8504BEACA3C02A76611C82F2007953D04FD3C54D7A00DF8F6DE554FD83D1EA5DC841645B706C9D900DEE7862D526245215AC6B9D178E60F9602F1931503864D97F582834DB797CAB60DCDBDAFA3FAE8726B525E8BB69B5E0763FC4ED17FE7CD9C9629273AD5B073B9516F6CD7EE729351C213FDD122E3C11DBC58FD2A501B267AA4AB21364BAA856823816E77B81B6061279FEDA6617247B86073E55B19973BC0E725F34ED4BAF0AFB95E436A9B2290A2B316C18CDC0D9F98F9F6F13C5A3FC767EC0A9A49BE1378E92BC9B3010B41AE52AF409AE0FE27CB816EB2614DA41C796D5F4FAC4A743FE34EF7C0B3A78E0E4A5B439659D4AC27B698550E89A1626FAADF71420F559DF2E808144707B5C02090F754C3BD4EFCEBAF6FA4493C5D48F895FE7674C81F069E1F00E455BF5C965BE2926BD19AF76E20533A6115F4BCF2CC5DD3A49E10A2B3FCC9EEBB2B6E4F25118599062F2AA6CC3A9D86167B1BD08DDB2C53A5E46E1BF4E8C1967866320BA66AB67CE581981F2003B812BA058B75924254EE3715BADB8E6B1B9E4F4AA9844D578CA2F0AD12E1C964685FBFFC87108711E022EA7F63330CA72AF86262838863780F4115138672643E6D9B48C782B8637E01D3D20CFD5C98A1B57720762037FFB12742B4EA8E89E4B32EE7DBFCD5C11E4A6E839A83398ABBC32BA39C6A25922649971D88A102D1019B560C96B820C44551E14509468196CEAFE3B7BC8F253ABFC59FFBC01A13008F77C91B19083A9E7BE733C1A5E558C64557389CA19249CAB77014D0569BAC7812862A610DC6EE074C844A055ADCAAD496F6976C932587BAD9D7E2080F8623C5ED8D9D4FB9EFBDDCC4CCC1284D22A2997824577A619905B0D6E451CAA3B2D30DAD9728FC7623F9ED71F80599D65D9F2AA285BAE393D05C15891472B2DD2ED5CA669785EC4D441F3308EB4BBDAE8FC449962EF9787C39A533847540965601D8BCB6B4299AA636589BFE371D3904E18BC9AAC9B3B6EB8B7E8F322C22A6E01E6B26244F9E39586F124AE4E504FBC9D860A61B20B4C127FD0C55EE810AB9803D810233E6126488A6E95F8ADBB3F8E06D113DE6A3E361209E0D36B326E042CE9D2698DEE469DA15464AFF82D5603434C07CCFC4D956A7D55FE79CC127AAD2A56B34EB10E8B85C3CD5163C4BB8C1083BCE5E5EF986AE028837809641A6AF2B8295B743DD9B03931E755673DBDEDE56F6294270532D685DAF1187137CD7D29248F21B290EB8317E3EB28B62E45E140F4AFC6D1438F81E9EBFC6FC0F1A4146AAD83AD1F0EE2952643E7B6872CB2823AB21A155C281ABCD19E20A52611C6FFAA724578A070935B1A0BFEFBF061101A81227187E14E96B016242DA269FC91253FD827A73743A4BC49FB63E2D830D0FF409AA1C73706D7C2297CBC552CED567DFED72CD15060A522F9B88EC910B03CD2794A9FC07A8FFC5CB97817DC769E64D8C474A305035A49D05B1C572363913A315932E391B62AF291DC203B9A40F04F40EBF26A4AE186056CEC45EB7D21D88CF50258DCB5EF40CB2ECF949B18C72626469978FBE0964C8A25E8C2D27149C2266748F2B06746E8C9E7E2F0977BBBFE3FBEC7353F583FD5F7C2B0139EA928AE1F67004706F6D4ED7BD8D13BC68E0F4A49877C0B2F692936BE5FF99544B2B19B23A97EA6B5F585ABC9E69E689EFE25E15804C650444C479E0DC63C9CA2AEC41A316039EC7F675F1FD7C0476707370CFAEC9C3418CCF30B5D85FE0E15056D6C015DA59F9BE9028D9C2D93434F99DD8C1BDB41FA1EB021BFD0FC12EF0D038CA32B0FE1449342D83CD6BAE43A8CC4077074FB1191A8887BF29238D27415D93880682017470A42872D6CFA729AA2B3F8B37038C83583E4C33256FB871A704527594596FE858777A93D3095767BCAD2FE295352C93D227E1766A59ECEB38FB7C2E3664D6DA0DD4C063975FAB3AB4B68D125AF16D233389D96A337DBC18DA11F37F430C1E49BF8AD30258601CAC9215F32771C6FC2B7BC03B55AE9664E0D719C3B40C3E4FA7DEFED8571CE8E46FDE8701975D94319DC5FFBE93B4FC4898E2EFEB3CCFFB3494AC50BBA364C22A3953F052F62E46D0C35692AF40D2FBF899A23C1A4721375F307E2FDE2E588830753F908FAD96EBD5FC360D742E2CB2C38A7E142C95376ACAE29DE8E1034207D1CBC1DBF2968677AECED152B1EC1AFC195F3320352953F2503227152444BAA74EE8F98F2B4512F7ABB43D7F87889CF1F8C12D9BAB91EFCA5AED21058E322CEB4E59DB4DDE13BE46FBDFB225F4AEDF7137B548503008002A36D7A3E98C0ED65ED9322D66FAD4A741125EA4ABBB26A2FDD7AD136590061E7BC0D5228555D1A59F8A6E4B97ABB61F4B1AD9564E84C000585DF8BB31AE61CD25C9D91D1A1FC21A69AD286CBC7E00F592DFC1C65E2BE755DDF041486F3B52C8F72ACA97A149FE0CE1378236D99EF099A668F6847659F7EF617B66192CA452ECE3010AAC18A65D8964381F561B48D044096DECC22736C902D7E23EFFD26245018D9D7EA9E2F907932A1EBB405BCFD29F7A397C71A5E08962ABEDA5203988A81F787B25EDE84A7D85DE92A2B19974EF7D0378877B82BD7CB28B67F45F7EE625CCD054B44B4CD51802B4FE2E219315CA9F4C24065F5578732DC671C3004D31830DB435C763143CA209D7DDF3F5EA42244E68429102F4D90297B7C987EEDFF0DFA7F31964B76432E1DE27FA38570F2BF64D5FA3F12DD9772618ED2B95F51AC90410350320E19084F1596F6B791AF1EFC24DBFA2B7E30015AB14FAF43B568C5149A1152A47D278B5F01786F242858C210D28812147646A1A3A7CD69996809B784BB2F0053CFE18446F060622FE3B9181AE9175D6CFD8033AA752296016E7BBF639842DD4073AB282FF50F94B9E116C63DDED805277D4FD7987F740EF8118946851A5336A9F6F6E2FE3ECABCC518B31E741AA79AB500D9C6DEFCC437569966EAB1D4BD6CFF8AD0E5698D15F1342ED46CB6DA986F0C4B2B427752C18ADC5070043FFEEBA98569E90C79A3D5E0434119A077A097D69DA6E9AD7E32C6E8875A893F6D69424DCF4C0D4EA12605E5E8A9853E4B58E5659FED6D724CBAF582A89A228F99BE89D88F55095D0627B40B29365863C57F82B9EA22FDE731D1A2D8A9037665213F2C410D4AADCE12CF888DD4AF53FF839E962F0F53BEC60F97133D131C2C8EB588AA7D25EC025B9E821DA8E8FD8E550EC5E4D5923BFDDBAC522D1FA64C503078618B52F452B57874285AFD3F6B182CA6C979734C94F040EBAEDFEB547683E98F4D13F12A252E8839317A827CD97A7C3D81962A25DF7D8C62B57812EAFEA9EEAAD7D6A9E755AE4CF3AF42CA2152F663C1BADA0E653EB165F6FB56D86212378C0B9BD5733D4C37178FFB58E7357487B98DEA35127AB58A804B13E61E6D3E385C96884EA91C744DF6CD44B3EFBEFC79ED19C406AA6ECE144A44F1E78B33046C33EB17E3BF61A17D849493D08F0FCF8232AF2922D96213647A47A05A9A08D28AADD3B3BF412F29063C9D78CDD3385BFA9F8BF06DCDA23FF79A5912D867EE1B0D526718EAFA6F0E231CE6C51959BDCD8D201838A50634F1C6BEBE2E4F5235FD01A6D27B90C58C12D8210692BF68FEA5B8A8651E64EFC1DFCE07EE670D473F29AFA63E080F7675F23E7D2866E5F2F9A525BB657E8BE5933FBED1E206C7BA9FF097EC95B91E14612E16F0F4082F70A1B01EB6219D47C716455F4C1C60948CF3228557E787A3186B4758AD35922AF28BDB328693BAED15487F7448D1796BB9DB5C931EFABB4BE436B2710EA280368A8E20C5782A7FE986417003236BE9CADC560B3D7C2CA92341536CF67D412E855B92D0229C45B1C518D8BFC82DFC9F413D3FB23D37EBD96AA0CD0B39EF88B23609AE0FC2BD16FA9E934329558759F05C8D4C8F3F8728335B659D3986E44508322E47121E592C9DBC6F49656B473EF7DA53FF8EF7BAE07D1BBC68EF4AC369D7F8BE60948F34444C0C443A100443EFC444E7FCF0BC4DB6A2C2C64662A538D1F68F4DB95B0B83DFD744ABCCBE5DA343621F0E182CB9E915B2097C186F1B98E7D8F297C347B60EC26D04B6D9C1FFC01EDB2551FB8D11D49E52956F69CDE0E49E2E7DCC8E7C8E78C41A9B2A01483BAB11733A0943A9B765A5811451C07A195D87060F157D114358E478FBA2F2B755A2A455E9831B77EA9D33FAEDC1C562E1CFBD8DE156FAEFF10AF655713E36FB508342D9B4A239D6DB786CF9F57E1C39AE65A7329E434AA88C68F82359E6F057873968F9FB63D898F24BC13C0F7748F92E404C6185CE24C98D4E4D8D4B3C129CB46C614E773A89EAD73CF0C30CD7E6C9F6435F7C83A4C3F877E034755EAFC5F30ECE03F6413F4C7DCCD01649B6ACA9C1C3AC3D112F216AB852A27DB3B846CAED86B76FB699AA7623548EADFE6D16AAF5A3ECCC298D5CAA7E84ADA0B75290FC6ACE736051924DAE8FC5BA6DC9AFEF65F369D054A4A18950E71901F4483A4BDDB2584DEDC31A04C5F8916DA2DE33B37078E5DAF3304344A8AC368A6668464FFD7898A18D10685BDE6D0097F95A3587717F6A3A8827B46653D56E461EF861D6908AB7D865B532DAB37E02A7A6A72A06F25572D83ED6DAA540FE56BFFB2BC9D104A74F135127ECE457991152DD0564BA955971E8C9767DDFAE190052A98A63C4C0DFBD1B51BF60643E4C5EBCA678CE5150F03A6EF09AB0B1C2A0D2C19C2B30A645C7DB9B56B5AACFB862837A38407070DA9C7DDA20B99CAC7B03D10C8F28D6B1C686FD26F9A8FDCEDA6B188D472BC593AD51EA62DCF73D32EED5444484853AD0EFCAA60DD42DD2C50F5AD15DEC7B71BF585581B9F9C68C7C94C154CC7E0D19ABC90508C8EB2DE93F0BE4295973C1F443A1B2419E20F3D5F883912BBD5CDEB938A4452FE0BF2361A9E3B2ADDFBF000DB07EA19B2735CDF0E8E5C7EC5CC7CCE1A9C3E869718272E54CD9875C21DCCBB06FEDE38A4E787D111DC6A253A4604B314FE47A9B6F6FEBA3F8F013A456DBB78B497C4CA7F90CC6145F47C96D266BE5507DEE27E968052CAC85EC87049CDC68D723D8CF89B0C91F67CDE2908C0C71808004A070CFA2EB6408F5FD6108749406FFD3D5DEB6FBEA00FEADDAC4CC0E22A9F6F50B9893CC4CAD028FBB73C1B7BD4292AEAEBEB668859BAD444D0C5FEDE3C469CF28C5C726B59E828C473C8787453BAA3AB2BFC29C691FCAC2CF496ADF3949CC42FB16F3677D456E614B1F88406E6C9DA7DB9937B00764D61C3D347C140FDDABDF8CE5E3E2D385C3FA6FD9F13F3BF8073B5D6AACD5294938DEF9C6ED414FDE4B3C5EC43865A7FB02787E50F94033CFE32A85BBE24B09FAA3B55B8BDDE60E325B691A350F2F128CF74FB5B6DFCD0E946AC7BCFB839B3765616DF35AF29F3AC82F4E2DF7D4AE87A016094719A07B5897105E2B08AE3D807960FED396CF38863E69662238541EE295C06B290404985444F4B28388DD942E51867216C734580B3F1D5BB204B05D4993D6F8ACDC8F16FB77B607FEDA67939A2B6AE285ADB2C98E7D37A81AF0101A5CE39CEB2C67CF99441C1FD980C2C542E7284BD21F1D30E68EF3606C65D3230B5146DAB41D4ECBD5FD89FFC68441BCFED9AD8B4E0B616127A7AA39E84DBD1343E2A41B4DB1AEE0627657438034E890C8EBAE19791705BF6C948C630DB1423D310A34BF151AA8ACF3269253BADDF5B40AB7EB3A7AFE2D7891B925F65EA206F4CA121175E8F348B4162917A68FA768928AEB0504A60C4F42802DA25DCECEC60ACD21FB236080AF1FCC9146BA30AD964416F4B524ACC416B5357206980305555CE3485425EB8F87401FB1D8CCC184C486B5B563242BA9531147D6A2E7C0BEC1A56E083F05344BF97A18D0CE0FE56E8BE869C746D4AAB365225D8871D4F99020DDB1CE2B5D7D2E5DFC8A0DE780CBA0A9B9ABAC87F19C73639965AC2382488387F06199A08F283794E1B8D3580E5CCADE811ABA6881908277624D5395021016DFE21C345B9A21B474043E187403E5B0ECFABE43991865A424BD33D233AC4BD30A3CE73DCF49B58CC4A3D2CE25C54FAB3480FFE0D51A43B71FDB7E1126E66856D263DDC3BF1A31DCDB935DECCF858FA2CE5AC89BF32E36D8009657F11691201290A243B5680E060D2CE30F1BF2444D67DC94A24708F8F9261945D1B5275ECFEAAF40311CED5C3770A1C194EC44501DD25B7F5FE67BCF62D1BF31119F8EA7DEC1CF536C1026A8E72C7B2E167BCAA8673AE5506CF6208F3E1B6057B5D488B29EB84D6F94AB8AF322B8657075B9EAD3297505AA521D601C21540EE71349614CACE0E7F14EF42D6CD5377DDD0241E34CF273A1171135A376B98C53B218503A908577C268F6DD46CA9C26DFF5942998851627474DE9E6B46F49DEDE85CEB993A52D01F6AAD6F96439C18B0DD5A4FD559812227BBC0567A28C1299626B171855AA0C74E2F9B1AAA781D34CA58C72C708AC49F5AE1453902A1FFBB8458E8B4786771780ACAD999F8DB036CF4C3F77AE345817EDA2AD8F7D2AA9228C994F6AEE512F7C2D2AB72F2099EC932D818E495CAC8507B06CDC6702944237DBCE338C20EDC84D958C14233C1884BA09A023BF5284F0B0157048B6AEB508415DF337A553F6435140D0CE5D5CAA77F9137B2C1AD5A02B13738772743F192E53E970DDB401983535CB096F7D98644797F487CFCD18F1B22BA7494D892C1E5AA05E66B1A4326C70E348350C97DBC26CB110AE8289C97CCAAB150020827B7D7AC7913B4FF515583677018949D39CD73BC7DBB90696D5EBDBAE6BD6FC78E3826C8218996F079A387A17456875952B268211891404E80F8360F042EA3D9F7F7BEF772E64FA1EE8B4EBE0A1162A46EC1E9899766BF4D3099AF712A847CC86291B3D6FBF51B3B3CFF87D7DE71E73069619480F6056AAACDB9ED8E228BA075622C2FF242CB050342DF8F02118D071D27D1FDCBFADFF49184F5A100F95E1BCB019864E58E0F02672C8F5FEB97EFA06FBAE6EC3D57A10EC712BE0144323292A2CB27F1B1FCC104140F556D09A6074F853AD4328B00E6F2F24A61A7932311BC999805F2E774DB44ED72ED244A945928B9512556EFCB2BA7BE0E668C41AE7601339F0162CEC0A1AA91C3FEB6A8A40158D7A3560924455B9AFBD4B3881F6C08EC2895C84CEC30CB0F5B499B4A66267C719785F94A9B9F96FCEBEE939AD0FCF42D0E65DC241698DED0EDF1A9BB4147898E6E83851499175105BADFE4CB00B9000404DC92EFB4EBF41D9A9262EDA550DBD0B99353D001F90AA05591100BB678634FDE4E0B1C174222C253870DA3B8A797CAEA9B446309DE5210F9A932D6AD48A4A7361A943C1BC66BFDF75CAF5409034A8768BD535B20996A728A26E28340191E03DB17A7032FFF883EF664FD7351DD37DC2D72F0CC4B80BEDD1DC33BA3046162F5D0003140DF78FA588A9FDBDF778836C6CAE7E5A20FEF030C57867B295712DED14474FB87A301C31214FFBB4F8D166498ED93B6E233A669CB88D441A38A0E5846EF68F5DB20245980CA184878BA8BE1992A0638B058CD3A3A501CACFC818D2B5D7876DB6EB08E9F26430FB06EE0B9E834D1C331B66CD0BCCAD7A66ABF4A9D8F7A872932A3C0B25C5BBCA480159711E0BADCF69A1107B286AB199B210CE95BCBC4244780C074C42B6BD43869F27BD666F9B2541B1561B4C207E9A667EB1E31942697FCEBFD0B920EF80CFBC5CABA6F528187403D7E8262C110458B5382BC376799032362CE57ED39F0D29D7822C408923C29242385CA9749FACA43EB4483E095851E89D24CAC7BA5AAC60815CB5C8C5331CFD66352BC8623D5700F49FD98FFF9E869D5AE173961138D76E00CED6DBA09144083437CC8FF5ACDA10BAEC0081C8BD2F5838666A093B412532C521753C4E11ED0521923D1EE6BEF3B4FABED7467B9C8F75FB24FD8D96759A6146B34EF951C4DF92228C2E58231A8D25E3F08ED5A27BF6041AD7011DB41F815FEA503973D4E7B5798489B261A0AA4D0C32A19D17C584B1702713D1174E542BE4EDCEF27016BFC78118445A63FC1D17FBEE5F71DFF46F1EDCD050239C68DDBDEEFDAE7EB8963B5BB4819186D45191C05AA049E50C4319936C8788AB72744912AF28BBF5CC77C835C35BB4F987DBA6657BC2A7E58B7CE69AF37AF680DC0EA7797B29528AC70D92F295C561E2EE0D0E530854AA19EDC43C01A383035F6A5DFB354E9306962EAECA25EC85B9B78E8A1DF6CA50EEC733F60C81BF812981337F784F8CE07D0C03D8B3E72BEE1FFA55FB92DD0446CEE29D8825CBAF1A6ED295E613FC700FA31167224D99338C4F59B1BB9C1E63CF77476BF84F2001D42E4161F7737B47C1A5F219F6AC8B8E3ADAECA827AFCD6BC0CA09615BCE15F1BD0803BDCBD41E68F781517907EF3DD8E8A33A1E30ED09D7EC1D3605DC72C9232EF9F92475743164E92D953177B98906DFE5E414E134EBB63C79220D4907869CB2D93280F60DBECCC81B532CA336510E2A7F1D631F7BFC517AFF223430F9804C4A4877D8B7A385ED48F390ED9666A56EBD62F6C943D0E52AB1EA247BFB07C05908E99358A51E6111486133F4A6BE3BAF6B2D4C01529925ED911CE728B4CE4E8CF8379BD216108BF964496269BE76379912E94A4984B890A4BBB9692107D56AAADAF27ADE475E98A566C0C9E33DD1970A3DFF0E2F79197F6315E320BEB5E2CA3E3C904B557075981118B363042BA687DC682F13D213974B1647FB43DF7FA168C9D4F599C5BDFF2941C111C6C43FC75E69C290601EBC9F23D665F944A9B75932DF7792CB8A005A7CC83DD071376DB11F9C950B38B270E06C907FAA102AC76722325934755F53F3650B42D0FF293FA37086241C00E99B9C03FCE21F8D7555CFA93D09A0EAEE3733A8A5E4C45E74DD5EBFFD2F75EA60942BE34412BC82FC9959CFA155DC87FFA0AFFC1E7CA5057EE016B9751C16DF25610F1981A08B8E3352254AFA433E9B86D3CC13FE9B5B7FBDAD83CFA0FFE511E44412DFF1636BCBB49E9769FC52B302AFC7A96A3DFB233831007CFD6C302CCABC119DAD45EE63303DFA1F11C39C702AAAE00FCDCA913371F158BE5493A9B5C3B06AF66C8D5DE2BF9563FB617D1490FF6510971203DD25B27E1AFB289DF894396B8C26548BD53B320203AAF053B19CFC815C5D37E3115FD6CF8231B88FE4C330545F131A01124BB2487A3363B3E534BFD38B1D5138F8887EA63776D78783AC45675ED598617077AEAD86206B9FF61E3669C93C3C3A3A8F39E7848A88C0F94878E5D359C22BAE891FC7478BC8227FF320B047D0DFFC8218C1110136FA803EF6395E52DB8326CE8E3AA928CE42FBA04B1E7F1AC7B73296CBC1567090B9E92238859A87686D8E623B780F0376B8537F41B1BB102CC8C480C0B6C069F562468D4E1FE111B24D51F63E9BD38C47F35D8C2B5BE2E737274229974CC4CA63BD0E1F0446F6C4448EDB2498F2376EE26BDD8581242703715AD434E425908D61EAF865FAC5E82578EEB0525F54320B6C264F37DA36B55C2308D4FC6C7FB2F4D12A88CAFD93953193B7CC46804A0C464740B4972A71B7EAB5F6098FF78BDD452540AC5BAA894C10CD69A992217B422C88CC7849B4D8357D86234449B452AB4D49EDB1D2769512CF8A797F5FFF4E1E0A3FBDE292D91722D71322F0BD48C68A3CC998D03F7581EA7B5F5150E7AF58A076D09D103E9F64E61A2D375461007210DB511EA89FC4EEA75FFC71F7BF31400E7783F12F69A1EB5B7228952E2CD1D6FD57109237BDC024780006C229EAD71EBF4B543647FDD9216D98DC78B43CFEAE12166CDEDDE09B52BDCBFF089B1F7427EAECC21CCAF3FD5A35EE72C3107DF0670891E1AE12C1FB81581F3A45480F1FE06BECE6A494074FF3C47F90C961E371E8014707AB0FD004D19166140AF7B1C9D6B7E4B6826601AE104CE18E17939CF77C2A31F711D5C7D5126F4CB642178CE542973466696FAC1A0858ED62E4F2741E47B83B97DCF4610B1E4E262E700A06FDBFC6709BB1D4AFA7C20EFB72E0D623389DCCB049054CBBB322E63B09176E2903DBCE49083B01EB07F140D498B793E149573D8CA91DD2BBF8DEABAD9CECA0F896A7B306C22F8A761A65CE2BC1358A6ED07327AA0FF4C0B6E2906882A12C50D61D021A1316646461013D8169C4B54C61614CC9EDB2CE0AB0BAC96B36908BA3ABDF92D11D96EBBB9A60DA780AA58B804DC6F91E54D82068FE2FB10EC1FED54B794836F54503135A7F91921E2BBC2A61C99B6A0BDC04FBD2D4E7E430F16B5D3C7F06243517452BB7D2D51340BAF550D260A26A2F3B5451AD7D4E3A70CAF63F92E25D137C9E9B1433CAA5502DA269211F58AF2720FE3F899282C2C02B78E66D3302C5B9DC04B98197D3685EC4E6D4603D79B357282932689C2928361022E79C197A470212A69AC2BFC7505366CBB2BAB8D2E31314FFD77A04E85076D76948E836CF2A87918D43208CD856FFA33740FCAFFF9F690B2E6B33F1D89F65C71"""),
|
|
TestUtils.hexDecode("""
|
|
a7a908a5bd14b14de2439fdbaba72b5ee9bd54df9c52b17b2e3561949f4739205c112010edf1acd95513c740e1a23beab2269f5db9b432bbbee5db53bddc1fd355d8ee23f018cdf3108404b0d1ddd3b815dfa8b1c724bfc8f9e0c0e610a8b1260ae33ed202e1e270cb27755f10404dd66d3d32c530aed7963b5ae36aa4c1d0ef442b149b71a0756c9e016b7ff63fb4ed25c59edb578d01a0dcf04935a4b5609f4018a32d18f9a59f0edc0d2e90bd7e0ae75b5402652dfa30cc0938c7e35b3666093157f1c2f6ad80024539443557db996783056c63730cfa60c46c86b79ce446e2e66d2b279c192cb4773409fb8cb918e363220c0c1ed95e9a7524d0c0ac53c172eb3fe311b14d16c2460d0e583aa3ce251057b5ca59fee59f72627fb3b1c8e74a8920f10ee9f96a080d6f0a143fdf029c71f20451757b2519fe0c10e006134a2ef8d51cff472dfa63f934e13fa2d9f9705092712bca99be482313668f52a5e996a59511ab9bed2a7a4ec0ec1f17a3df944d4222b32e7c4826cdeb3abdbf325f7f9c76f5b7de28b1d5208ce9e19e853b90c9c7e2a26cd1590152fb61ae4fe56238b5e52fdaa6a17afbe5078d4af5403b620acc4942d01a432849fb5a6bc19bac30efed04e629d3caa74fb0d7c2873a3609c0b6f8c41d88d394bce13f3a144f0fb3d60a5ed31225badb206848c13c156a2b7be5d9df517d5d71ea3b578f90cc85fa72c3057442c95571dd20c9c9b1424566a408f6e135d74728b4b1aa1918aa38dd2108346a3189f54c9ee83684b1630a29a69d6280e47099ef989c3907b95fa9c1119152d97f9d9181fe2bb89759987a7dc16556223bb0738d1a10ad7959270bb737fc7601f2552a322181e1730228c4f0889cf196bb570002cc439ddb83bbea27f5ad9db5e62ef69290368544e271dad0e880a032a188cf4ae1b290f6576ea5c20ff9ac3b3950566fb8081768a4bd804c22539684572105505d2d2507308e5e50d05ddf24655089c2cfa4185265737894310f66d29551e842e9df5dc36d2e1a894d10504099511c68a0a81900c70fc6c2b32e84587d6e4654c97ada0ac1b7493a8efb756a4aa0278b773cd302f0746a6a18e3b1aea24ffcb32a57844955bab9abb85076ebbc568b4c5ecc898f9a1d9e65c6852c64a1995733420e0ba5a61329b191e750e212a68ee37717ca8961593f146e0093d1b70f07cca6b6f2805f48e66c1b3d6405ae5f6a95fe27d427482fcc5bbbc2c5e0e0449c73eadbdc261ee9636bfdea73a13c0a9ad432b4b7037432c799cff8051a331b261028739bfcb17544732bea4c2c3ec1d42685d007740bf49d8f8caa8bc31c7e59f9ca033f27eeb57f03af68b8ca30a27f78c06dd3a7f821f58579353c325982273415975b03cd8649c9632374f25bf010aa1c0bb82eabba168c3e2ed17213734718cff337eafe9e48b6ab79655e98a38bb1f74519aa07ad10529370ea2581f99c59a824a5ee0747fb6bce34396514a6a3dc4755e913304a28f4bf4019a42acda382a7a7211a30b2878264c4266043cbdbe2c711fd0da53106b0b5b16e78bcd1a075b253c98cb0aa9b980af82425751a7192e42f5057d5e5e71a2d0dcc9404035e63a905133c7724ffa110c942c54e8970dcbcf99fe1987931a5fc14e83b731aad5f2ec0a29f6872e43f18a94f5f9f11e2b7508ebe29a803fe159aabe2cdc242a6ffe976044feedd0b5826c129dec3c05764451feb8b99953a635e7250e74772da18755e819be7db6560b5ebe2de9eac9fdd490a6aaeff8bf568a38f70bd0ca443d336ae6776212e0d99593f4123d91dff7ef68222d497d1799ebe6decd2f7acc6c363e43dfdf9f72b88c25e9bf740cd1207421b476ec3b68843cdd285e292986409aa4ef04ce4b6479c95e52ccc8b5b0247afb94f43af536ad9ee79b58b636afa64a2be3fb22fd128f1f1f05b949921bb050892ed61cbcdf66b11ec042eaac3765d7aa524c0cb022d386032ed7449262529d2a6eb8c5a7a539deb3d1db814f0284e9dee64661f8cf3906a9802efb7fb5c4033502eeccdafd77a6d0f6ecbbbd39aa21f14afc3ec5def48b48afcf5ec99acefeb3007a90a54da935eb5d4aaa68502b1c469acb166646a3af67fdbb51d1338085d2798174db7ce74f2ea9c61a50a6fbb718dbf62ac33dcb7fa80aa982924f4310adbc07b2b672438c837d1c58eb8b9093229cab0d6047091b4152a75beffe7b17e44989dbef1c68feacf11a47d9dcbb230b9b180f9a7d10036ccad63454f3da00537078db225cb746466f1d56df35fd9380620e37f4692aa0b9b5bb1784a4cb80a53a25bd9cbd7ffd2d3177ac7023ebd1127adc732ef7d4963f70b130af5c33a824c3b7ed6d2e1bbced1959560cb753917781af33478ffb947488c8372d227e5efc9f5db11bb010c278cb40ead48ae49b2df5f927363a9e78bc125072929ef80efee18c7592271393b6f29cd1e339e512b1214fc5757b1ddf0bd1b9742a0a11ce469a78866b24035d8499c42be66110a624c928641e59078bd1cf6771c7446bd1977578c165695c4d6aa4ba9383ecd2c41677c3c5cf9af096f4c8c9f5f244e5395ef1db825d2593554c7c741ff0e0540f0ec897a1d8cd88d2f86a1aa21e5473b1fd21a8065d49d682d4dce206f4b511f4d466a56be1bd99d1335b17f4170a08899c2015e687f1caf70140770dddc885cac8c29dffa7d5df823b3b8d64e96008f5aed8d52ed710375e34a7743a98f714dbfaf70e78b177156634c0ae931f5082d2c6b7e8d7b1f025802ad9f74c711e218955938b14fec5d0983bd2f44d9288edb72bd1eb41839297ba5915e518a1e57e28a4ef8eadbc6ac4e14b4f61ff5834b1fc6f21a8065f7e84cd99e1d86cc9fb8582fd40eb4f1f1f4e05161cba9e54c823e77f882cdabd8ec501be12e855e0f492fe572311a01e2aa73c9c0c0ef43df7256ce9a41502e15d7fc76a3786dfc2812ba4451ee9a4d159d1052e0fcac791df2027258c5f0ef51d23498d0ef333c59eaba21765783f7fe51db331be068ec4e3e779eb5cd47e036a5bfb6634dae1e4fc719636a3e4944b64af890b1ec70f89b73b33b626d5b3f4c33e45ffae3472929818e1de7eae0f0135937f4e065b2b1dd045ba8372820a294d4a4c9d44af6e321ff565c69ffe8babd43d095509163bbf8a503ec55588ac3c58074a96f3e32499a6845387f9f8b4520cdd3ad129165501d28b68339c1b0b43dd1dac6d02fa89b3c381373a94c1a59ef4839a671b7fcd08c61cb12b6c66edb631988fdead1a818f843f070a66ec46523f8879d43c98e3a4884c8683f9eb73a4d186fb43a343165202bbe8e1735749b64c9ee36f062f2f8129e227ef8d38a7f35677b01f68162d9c5310aec1a8f8ab1365546ae313c90be351030641004c735c2ffb07d7edfdd7434ba984790cc7c3c843c23531593caf985d63c4eef255962825a44a2c9a5c73d1878b6e149fa754a46b77239539851b2adaa293dc29cac659a0d0840bc545401984682144d7b651b125dcbc3ac272edd7e8805e086e7e33e2367beeee06458dd2dd80deb7e36ae6f9d10f84459a9b828aca738136f2dfdec4dddb3dc6c0ca72e2bf19b5b87ed28ff661de8ae64d7dcbfb71f17f362897e12e94f3197e58b2d62eb849a169524ab78962b25288f87321a753241b123b2aee98e60e2ad7341d8e1796a160932c51ab8c6a0c97b188ab05dab278cb64f025a42ff8e40a424858f7e56b27d0eb08746def560c8dfd11bc359b8afb1a3b922bd34dd1f4588572d26401074e4ef4f37500d39456e458b6a9f30b94003fd110987ecec56629a013245b48be1f8df1b2ad80b3097552841186ee787be2e8ebd555253f59e12c255db9967f8f506746b8fa49203e4b2bb48d04bc117338c40a6badaad1bf8f100b8420aff9231d20bdb2e78ce173b12a87c83f0b594ee7225d4d0b975a60ad615f8a21f3a4abf819bad041fd01c740233cbed5e690e6061998af1f0fa406862025feddd62ee72ef314eb3b12d40227d92de05a960cfe96707f9c9fe8d51728fc8258531ad38cb8206d978283436f6b7aea2282cf63b27b639c78abdaa21be576a55388febd14807625391dbb8689896d08ca7d41d28d6cd342426dbcec96d6d44e78739818a757a94f615cfed9134e38c4d34569242c51b8992aa6419c24b4a80c9593ff77d8bc840e6bc7328b69a95354606602f0f8f13d480166c4c69fb5c74fe5874ec7d98a9170f47096fab89d9ada1285aa2ffcc968ba5dab962248471b2de8ac7126988362b845127bee0edadac224e552b0bd83f0a0d9439bf24de27d54243f8106b5e95716d835a7813fe504f195b6f2d28e12dc041f50e31858cc79ed3a143d9c7f4fc8badcfc3a8b756150168ec302ede64999450b0359b368e3acf00bbc9608aea9c5714dda27888d63f60830cfa1ce2b224b854136a204dbed8e034cb5c77f9b86ea2d342bf3a0b37a2fe3978e4a9c7d881655014bb23d8617ff04f6bdf39c01da6a324ac58805396ad35733e42629ef4ceaf840fc83ccdb66e96c6e148256059e3b9eb1e8de429c77f8fff51bc994fe35900059b044c1ef5b336031f3b67d3bd471db0b7c8138b36ece1f56101e9298d7f222fa9f48b9f195f1dd87a869bf8cd0810e424b82cf6841e686f91fa3c443c7e7e547f7b920b774207212de69e7e4ac8d79b45d076b82d8d8d78c9c55aa6f57a7fbfa48e03005bb65fce5548f3fe6ba2af580f5881ff739a098f7c5841e4f1351c5afb3258c39bb39f96e751c043c98b46f218b44aeb90947d291cf6042aecf045cb51fcd687769eb88f07099d3718de8a836f7af203028a5560544f170099475f374f8cd296e4daaf3963d3ac620966584659600233838d0c5c62796df7085b19d42982315cde7335f73178cecd12708124004b937fe29ee2b72fc91b94e2a6a433b2a35449bbe0bae6b866e1a10b4021357e7dabc76c6b9eebf238473e953abcedffb63b4dcf4f73dc21a2beae5036cfec91e22dba6470d2ce404a7b22883b8735567dca179df3d908a725e2e5af4201b6be97f11e9dd58ec44256e2fc223156a07040bb3008aa633a70c76879a4311918a748c98c9f2e485ad45b90b9a59defbfe2741b96904f1619ae66a70180a1c3b550cb2fab06f80d4fd2ec44cfc09ed26da85163f7c51e8357ea149774b77c41a11dca2b70ea2a6f82375f61a4e1815cd019220a8ce7a24b6f94eb3aabab0241c8c585c1d35422268a3c9bb9ef43d3a3490bb231fab37a466723ee47366d71f6131f52dcdb19768a911ae8d9b11e31c946e0a663171d53ec51688603bdea9d2830bc87ebe860c8f7bc1ee1d18980f95ded0b462764d840b70d4dba5e022110993cbf58888ae3bd6dff8f4b2e1acf367df31d03375e45379e33defb73b2a605f402d364d8b9f7e48223c979239ed5b2b9707555a698bffb93200ba565b38453c9452186300ecebb1294db3a092b3ea1ff78ee1bc1f85a51f50d1fca7ca0d634a027ea705ec6cbc10ce51fa13afa4e7e756eed9d19e9c0b8a9daa9f00b11d2248ef3dd74bd01ae7a93ea2ad16fd0f0a8321a67d39b07eb49418f475513075082fd9e0fddb7d225d064d354c2b3f57343220211cfce889e69149b5db154054dde2736df5efc993e743ac1445e676d6401b5039834fe10c49011e3f03bcae6cfc3eb2ecb8f8055d6a17de626ce8caf8d8061f7addb6fc9c229a2b3152bb17e6c40ce3ff89acee7fb5ec800fd18ad698306e2c25146f22aaa62aef8e054ae7730d2dc0477c51b0efe2148ffd7daea402118658bbe0cf265e29a046258d3b3977b0305d30bb496e24e0ed6d997b235c310f36f4cc884abf0fe62b6fd3f164914e6d78c6d4abc9d130a442163b4f2b3234286ab7b361ad062c6d6d4a2908e3033ae5db787717a6a4abbd5975faa48ad91738d0b29f50ae36d0712fcb86ed1820d9bea175e295c0e9213be5226414718842d3539d7eedd89d6459eb50cc34a058b8b453d38890d76893be1de65d6d2cc8d23156e2a414073aebea846bc157a92feee6f6a256fcf4346ea061041774103be4161229c079c5a529e3f375256f9731a60d7c106aea032927baf6b3991c2bfb69433a3f21bdb0271132eb43e027b404cd9a882798995351facc5acea7b2b006b649fd1cdf6628fdca1e4fbbc71006743ac2767501b2116567b911deedf5936175edc26a65a6fcb29dabbc3f8db466a21a08fc34267c557e6371f23b7ab7f698565d9161b0a658cdd82278c7c0f9728f5a63d821260d2b33428f728bfdc32e3f3d3050d2b87e19dfc9603363b2718c039751746396eed60cb7fcf3f7b965503d6ebab7e04faab921a143c37b8fd68260f3f4e6e0ee396876c2df262e5f55d145e410294d1da139ecf80c792e12f121862b6edf6cc5a9de9403a0d141a1d4eb8ca2e8aabb6babc44cad5fd4d647ea147d00e122633575f94b2d0f10a1e34570b0c2232505e7a898bb4bbcf0000000000000000000000000000000000000000000000000000070d111517212531""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
a12619d8176840867fd76c85b14a43f92b39487e19dc0bc5078a6ad5bb20ca92e505b3f93603bb83db02fa9bdf62c7265a7cfaea6cacdcd374e271d3d6ac510ce9158b03163e38327a68a1ecd5250c3d4dd32837d802e124d4fed040f7e14db378d1b8c3609a47c641fb9d9f9895fc968e95dd51c36b55fbbcbb5d0dc8e7067401c983eb0d0e31158e96960541f7bc0a721c2124e88eef835bc88387ce8e50f08da1f192499f6a722f46e2edaf1fa459fa98b753c8bc6c9b494d21d95b76e39e0b296279bfb37a0d7ccbb804d0098461325a53e8c61a098a8a19ef767200de1de9a50867f0860b37f022720d0a050ac9ec738c56f3839a0ecc0a6825adfe08efa4d5aff1314d4345cf74f75d44c2babfd2fe751397ca453a1b835471fb6afa4d33405ec9f3940d03cb1b1baade4088a9958c3fe56dbdef0ef1f7482ad9aab7c05cc5b1d6b537eebcb3453dea0961cfc8c370923dd97b4ed7c37ad628ea456958d98aca0e8a0c94f027e359b3a6d3a0401720899a090cb163b8643b9247f58fffdbab10d76517ac25c3cdb65f8fb9fa8ed5370f4005cdd88ee38c2e6c84ee06857618bb143db9462c256b0242a0be101fd459c180b5f1a1e54a123e0577d38e1616fdcc2480784c25c8e5da8740d132be3f5a498be74eba102bdad5716c9b9af34628c1a9dfe14b44aa52b69e5aa21f482f14d76228d49cf73c4710679e663be5242df2de684f5e1538827f612e7d2e2df673c97b4262990b4af83163041564c8f82abd740f434cdaf68e3ba0b33fa68a63807aee5b998091fb4c6cdfa37b4b9379d4e841054cd0d4df3b353e5c1960cebc031521da09cd4875fcd216ac0a57f3a95db3ccb6415f6da06dcb9cfc1f40d7024bc619a7267a78e0b1b8431e25580915c2dc2b328ad88ca3b551f271b217b0e1f749dd53c6d2de9ac24f93b683f268c2ffdeb1d421dd91ad3b3f9db1af344d27ee4bba7c6add4340277aac9759de7612f64192652e464269e919f73e50372df8d9854471b997fd4d84320fc17eb53da8c7980b36ae1351221d9a8a1f893a897e6043ef1962711cc4babf1b6a08353b03bed793d3d5c1d2da8aa8f6303a5e74fe2570876c9fed2e65db4b73a6285b68aac8d7eae27ea873d07f28d55f98b65bb0e19fd2d4302b5b0258b11d40a5afa0c7661b6394c1d0e533545e45c185a38b98a2f54010c87a58b321b6c5da226b4a326700457410903c2ccd591adda69ed0799543cabd39019314aeaa125ffbe4cd71abb849998e98d781780fb1425d32339f20f5b8562888aaab6beba58ec69c40520ab2f62d1d30b66eef52419196796ca59fd0d990f09f7375a6f32c2a473b2e58ae5ee07d8af938993c1b9b827936d103910719b6d46851d28e9d14189e004637c494f48a0c62cb5cc421ac919222cea674c8bb40fff2021352a7c504160ba7fb11a67b8e7743a11f8be1149e61961e82b284193d965632927a17b0d5dbcbafb732333a7fdbd7b14ad0e74f63999193fbd5613993997fd8cc79fb77b7f1228cef72acb76fcd9187dbb40135d3f6da905dfd5db52c61fad72767aa72c120d8b60e831fcd1e85c2d3a4262fd098e019ff4775f8b2506c33f1ac969da1a5b4dddeaaeae533916c18cc5e986b9f1ec39a374d375a1cfe8b41422ea4b316a50be72f56ab39e6107234ecb087031083b2cdc34076d76b0a25a3dc6523dab07fdc55e88dbd6ab7355f464db2636a6efe2eb2f12502f2ab38acb143058e636536fcbf6bc50fca85b353179f506c8647dbda379e0f1d04df6f785e56486144d5568579250bc18088714653df6350b6618889f28ac4117bd2c82e9f1ee80c29cb9d41541bdf27589b63dc300d49b72e1fd9f9836038396b569b4c02a58ad98e344a5a7a72c907058a193d840388e1f3a23a7ae512ca1e3ae2ad910ef498b19b0678a6b382b0aeffff8aa26851393f602dcf3348a303439b63c4856756b8dfd4fefc601c2f39b68e6274c6bcc58e56859b5d3b22b90ddc5047ddc813baa7fe0302833101a4bd217adfb3de05dccc25bc0f786ba55b8c498fb92203ebf2441b087d28799901452abeb87fbe8e6eca37342e782978f187d471957530379f573fef8d5b059e6a080be35fccd10b1d880609583488c15c49c4ae298a313ee008ff66c7eae1f78a657ab126d5402d4ed70fe9b93f278f2282c20763592bff5e6f51b415717ed651e99a93de7312811a35240b70f8a90449906b62c83a78e6c76449de415c84951001f2bc61c8c99d88c2cfa44858a91d4ce5323a3865e4b85bc281e5139f219d00ae9ef8f850778571fba831394774dfb237ceafeea621d6b32b8480ea566eaa95b4dc31dea36dbcbc8f4a370b7273047dce6ab39ec54ae2225eb64398568358eede9566d2a0a19794b5efa5b4fcf742b6098c800f693a26b3cd8d2834417a471f55c9160bee9ef34792b80f6692a066a951ddc520dd1cfe9354a3229cf030b625e7bc0a2bc60847d7bce334c1629f73b9f4d44ab5f0ba588edbe5a9c477a6c4716e8a8bdc47582b25f9cf94b349ce8aec25c8bf23efd8b393f66ff457a92cab8f04dd039c54ab0d42899410393507733e29d2094dbf57341108082ad11a127edf57d5f9b47e5a31e30c7e8708a00d9dd5d33eac2c3418435ef1f2e9d7b675eced020c4b38abafee74e66c3f6fd18126087a0154a429b40603d4f95a7db725d167690feaec9b9654bcdfd181741af7f0c00b8f8c558f6fffd0fed1b3d3c501ea911f0709bed24e57a68bda19441a3c420bea91f0b43733e4fbf23072727131315314933924a50cdff938c1e4754a05447a09b5b01140b4b095986fa0c5f065d36d83d47974c86c29f09f3bb4306f8927d4c7843d16dc9ad1ea594d742cabef956829042d550137aa38cd98be854b3dc02442c8358a4994ebcf253078dae428d084de52936079da403eca30b93d4ca5f3b0f40ad15052fe501d27c63a6af4f1ec3ce9dd63be7b3c1fcdd539f6d27cb58f9e6487cb95d268caa6f3e98c761bb651627c193e2e9a9b99fa56b4b608990983c8f4d4d14dcbdcc43b56fc8d35c62656188fdacf1970aa4dcd8e4de72ce813150e1ee2c9ee3ce5eca09fdd8e9d518ce0a4c32bccef10e566b305c0a93bb58680908988b84fb90087387fc41b013367d170dd64e11f7f245351f24d054d18ced50faf5fa58c30732874b76163b5e38a0665790c1b49ca13ee419abe708093d80e628d9ecce057ebee211b5dcae6e938575fde133a2ee7a011891c53cd6ad59716a2719c675d36ad09ff8fe60f7821584a21345ffd3072685717efd29f3b977c028606df2a8407c1a60449a60c0bb837dad423d1367429bf85f19eb539997f0d0db1fca77e32014fe50e17b449b0db6a5b5b7efbbe4593e24cffbee6eee071fec63163bd5968431b32a6fa996fbcf270a91e91710bb537ede6c8c84cb7145f78a636c205670dc8cf8db465431b377fa6b1df41c4a44cc89777a1144fa77db35b6ebcd8a98722b3e0d6111037c34fdaa632fe3ebef1c5bbc3c70852ef5cdc9edbf9c280407d213606af1180483e3d6a33781e9a78d8734d72a3675d7575ff567f6944447df15d75e306df470cdc12d6a3dcce7fa21ac11baa4c7f7d081cb0f10f60f02247452bb0e2bd1c676bf47a1ccf2787"""),
|
|
TestUtils.hexDecode("""
|
|
36DC7A310D995379B796EB8F9CA346EDF60DEC7F6C00AA311B3E09EF96A6795C4B077C1D371DD8D4A538AEB78B81927D08008E817A6FC6B3F9B14FE56EF9B2664E76112F214EEE848E67EF33B4A4E26A2378E9480CC7D25C369E6C25A2673B946B635B6EECB5F5F1499B484DCCFD5165D6F14CAA8E1EC9A9E4FDE417403720D7B4BB30060AB95C6F227767D671B75A1BB5AC5CC33EF0509C69652748251869B072B9042618071233B48A9BDEBA330F0C450A2FAAE79291B9E2480D1CED11FABE56210A80C39F25E5574356CFAA32E57782145920D6C0D27C3AC7C63DED6A770A5A45119FAA92209F2A066AB90FCB81A886FB87641C550368C1B412E43F4FECC2FD659B2BDA6B7309797575DA2893314DAB058DD92C7470F570EC0B1D9C9A149FE0934D40182CAD14D5B3D98C4B7454CDD2AE7E54EFCD554AA5B458888048BD5201C04E7D6004FC2A597DA781BF15AAC9748B6659EC16602F10AD44145607917C3599A1F53DC95839086A6A4FFD66F8EAC8AF8F11C4F2EBA3B58C46B93D0494C4CDA4E8B8FF7278049D2B4BD7BA16BC57678219EBCB5E211D51A168B5CDF66453412565B9BD606CE29A5A70E60F3D451D4214B0A258D6E9325EA5196C55125F0E115B14FF34FF6B172471C2B4917FC36B0DBDC82D0475AF56249AB9297790535C0F0265D2A853DB0B41B418072D0ECC17CF91FCA86F6E10762EBC520F0AADCC3C79EFC25E9692FC0A66389B15ECDD1377A9C3D744CCCC4BD160FC65A45D4144DDCA04E5408576DBA6D5C875BB4071729361B0514E8B96405E2F48D47138D2D2DCF4DC865F717428FA1262DB0D2B7B1A356E9E76301D38BA506456B4AD70ED09B0D5A1375AA6E132D7E06F8745E7A5B5E4F6455F4282A87D2B372C40A34C09699AA8C2B2E060107BCDE0F9D99B64F17DA5FA01B6DA87B1738882976B21AE12D1BA0AEB37644AAFE5AC20E7F3F631FFC2A24EEFB61DC37485DF27FD9045BD9BB5D3F00B9B2694CB94B01E7A4F0D909B8612DD28BD64E6C1C5A612CB30DF6004276FF58491B8129FCB0B539CDF891A97AB58DDF04AE40BAA5781C3AEC65FD7E84DFD0369A53CF36303270DC80E3E428854D82B08C7AD022BD99AC0851B16C7D8D462DA21126F70D661A59E4D0FE4441806DEC48E37AC4A271F15D916135408A2751CAD53564967196763B512D52240B2B0D3D924B83CF482B5316B7988D73A16B773705097F5ECE0027CCB2C2EFF598B8F61ED4D6BC015E56D4549432A6A95328FE3122EAED0149E2144E4CD2262C7FE7495E41E0AC9FAC9A11E21AC940D25E74AED8EF6FECD21747FF8166589B7038EF1DD504F51E01F1ED911FCCF44949638AA6E8526F0B9DBC5E536FE2AE7D4DA9DEE66402A45CF55D0137FAFDA9207AA7E22FE396455F2F43108961FA6B0339D89EB8ED7EF13B936E3D2DA18E5EAE45B05DCAF5D845DC62CC55553E37CB328AA2C649ABEED0D862E8083962B81B84A85EC12D3CE5B600123AA7CE4764139BA7AFE5CD02F70D06DD9AB0BBE868070A9AACB951D362E2606FD940A8F5BE632393E0A179C2A62151A094901F5625D952D39D7CAA87B77C4919A8633458AD9B6DAA16D1B1CAEAA8075741094FBC0C08D30D9956812C1D3A75926C546ABD78A2B9D44C1B6EF8D6EC2A2EA8B7C23D0EA57E1320ACFB576FB9C575DA98B714D6B01F03364E618A2C03BA84BDF0E5D2A0403B1379416D87B5E022BD958B0C9170E82F8E9A727D39C8F7549E34A14792776AF0D72A27FCF63EA985B3882A717091EF35F5835D4DA127554B6637AC313BA3BAE8170B9E70A6DDA2DBE813A49F045D8C3A65ECFB4D5F71FC75AADEDAA91A81A958273ECF0CDC4512F0D0ACCF9D9D001A30D0B6B2D50BD216D6086AC5C9DE7388A7B1319F2E9E6CE128B1F72F765804E060A8A92C93295A99C66D6D79BD7DD4F7F02317927D60B2E9FD59EC3F95A874337228339EC673BBBF53BF0FE1886A4B14F19CD7FA9B771894377F904EE8BE48D64EE5D40882C684C81DA3198604FA599DA8D4EDEE8EC3294620B6555B3BC9627D4514DBD1F7E3E9DF7B56BDB4CD395A8CCADC184B2B8DEB2AC7CBEC6C96001EDB67E6CF6F872469B110097C69EDE1121D22FB5B5AA4CA540474630651A4F9E8F7B0ABA5DF568D882626BD158F925F8DCE1D81668EF7CF770DC615ED0F5A807E25991EC97BBF2F9E997A532A1BD82A2A616250D2232F72067A17550EE516F28940D8EDA9CCC0E02EEFA496010E499E62C50B03F1D3C1571342DB8A5BDE1F432F7B6163BA3AEF35656434937A42C4E1F473331E38467DEAA483189902364463832ED8C5E04E0195D3435A6FCE75EA3BDBDDB0A0319262083141B1BBC0C278CFD40319647E90BFB51374B0AA5EBF3C564EE95B7AF618669C935756AFF3150A93EDA92F0ADC29253758A6C8A83EF55F97F1A4C0DB566668F30DE59D93D8185BDC1CFFAFAE472E0B0FC4B1E16F0B748220EB2EB85EF127838D576638E738E9F93A05D41CC1264AC6BA03B202D9E3B06946CCC68DC15261A029B0C5E91DD81EC1D79BC51F74BB5EF778F00AC091513443308410F60AC1850F2548C8101DB3B6B4D453541E36F0ED57C2C14F465196F8F1D0D3ACD49CE3252BAA0C10521311B8B8366C579A430526ED58BDE92FED3F0B359ADB31D67BFD212BEDA7236DEE4615ABF13C856CCC93DD02AA28D1CE1F12C2DD69FEA828BDB9F4CBC9242E1017D1063A7BF842B00C75243303EF9060C8EA501BC73B3EE470919443EC91D1F0D6D0F23A899AB86F2E8A0898D318BA520DD15D9B24F4F10A1B9FC52457714A151E075BBE419E4216857500B8354A8445B5FBB526A6E008229F33D8DBA14DD42F424DE3675E704DB308048B2D17904DE46B76622BA08C62F17EBA3E9F414A1B10921858832EEFBC282755B319E176ECCDC32A25CC5E76479AC112570AA86518BB1E6CA3F46E010E8132C0A1E8273403C5C4D7046A05398D461CB6843D70EEF8C94DEA5DF53CA1A4C7842AF5DBBC6451554FC7F9913E56957C51E0A602D882BC389C5E5C7899539DBE6832B0AAB5EF26B2C96CB03D1795179A62F748CA501CFA34D5ABBAE3271AC1F005112645F10863AABB062FD2C781E4573173935B5392CF9E88A1A31989E1B8E94F77CEFBEC591DF6529C6D2FAB72E678C534C4EFF40177C41D02AF0EFEB6371835CB55AE0AA99C0653876CCB56ECA127A0A1DFC0F9EEB49525C9A5786F618DBF57C41C5CAA971A9505BECEA8969D9DB28B0E707C659EDC42280035254E91C522300368F49F2C36211E455FD620DC956AFEE41A2493BDB2B0B8AB78E0B838DA6584FF753BF88CA6A523042A285F84ED90E0FD5E28F75A21B53F618145C16925486DBF6B1E7D76585D0D117EC562E22239E14A49ED714814F01DE2B250E9B3B6A1C99D1A71CEDEEB3ADADF611C4A4F97E1B26AF9780AFED5783129FD58B1232C7E2DB9050AD3D494EAC254DC46B0461A1B4B63840621D45ADE97EE5663C9BD8FB7261152545AE35536611B5C65DD6D66878DB71640EA429F801D6FFE291B06062EBAB9B416DDA7D261A46E58B154684E86176169CFDC4A60EA38300C3D44F9A4C9DCA0CE1BF37DF8F786F28B5B3CC7B0199D3322CFDFD2CF88C5B794C69F59543FB985890471DBC93A313992ABD33691CCF69B96A9396E5F55B54FF7BCA82A31199E5E81CE94B6B523EC5C3E2F2884D8BD744CF0C072E29E4B542DBB370FA5966F68CB20ABF40619E76C099BC7A9A373707707624E8999D4CF0A75D4AEAE113D7823D7D2ABF54FB4E68B8A6A57A198B128DC69584D2DBA473B6725FBB8EC9561D6614D606ADC4FD9CF449008C0D54BE4F62EC1441FF79EB59442AEFBDF1F0976844B4FA3969EEFEA10794FDBE35E89EA52F50AB26319BD1604D3FF5AC660431F1073575ABFAEEA00E1246DCD1D9399939D655C222E19E9DBA5FF42709FC11E7E365D7F7CE2274FBF1738DC5CF5631547549F2BD4DE896C8FE039720F5E0149BD81533022DAEE22B93A3AAB9AA9DA15180EA071D98E9FD176804A5B04D089E9C2D386271A8B13E7D668AA74BFFFFCDA3B4E528937C41D43A87DBB46C2B49B63BEEAAB978415536A87D845F6C2484F21D71D0F904438C46E7B0A3C6DE5ABC01C6F7CBCFF21D3E74AEE96C20C32884DE4EBA0F282C0FAD06BD9CD6B7B5031F149E4788F102D2AC2C99FD09B14A4AE3BD6859CAFE6F5A494EE8CEA29F49D871B79BB66AA6E6EC3718B97E83765E96D5603B209027BBBBCB09EE6FDE3AEB65AB1D73684820AB1FDEF88086B93B6338BEC7088E04F5F6E520E3D715C6C5E5B79E73B9E7AE1C5EDEEE4015860CDB9FA21FB434C3F28AD865042284A7FE9A5FF47E8C6158DD83EDF28BFB18DD5AFA07A48BD5AF25B9644400CC976A9B0FE9D9071E708113802A78CFDAED28378AA4FD6FBD9390D8A17D6500A0E1835652C7E0B332A382576AC4381CAD51A31E64E5E24FEDBC62EF9D0CABA0C8EBD8B94625207D0C8C1C6DF4EA2B20832EE44D1E2DEB799BC97B7245EC404F10764296E5BC4A919EC24B4F5F7D18692FA8DCDD5BBC170A81BE7590B7BF4058DC7BEA0C545BC85F0B3F0936386C37115A333285451CCAFB8397F1AE1B56D0A8F884BC968E729D622D21FA26B89BA2726C91E6886838DC9912797FF2BDF6800665C1D1DADFA4A240BB9BBE21B6DD750389AFA49C5C366ACA5E9C3B31B358FDEC42B0032D9E2C22112E43BED2023B364DAB334BBBE2C3B669EF700702B5D1837A6EC15CEC2B2036D56B8760129F593A669FF00237D26BAD9F9C2F4ED4018D998E555D2C3CA1D53EAD6A1E27906353983D4408904E5FD9D79AFEFEC26ACEA1F39218C36637977F6E2F3F6211AA06AB9D5F991C76F420B152BC95C4BC10047E107CC82E3B00B2325ABBFDB0FFB2966D5FBA0EC7E8DE1DBCC053C4186AF23A6BDF3F14A7186665AC2682FB94B0E10516D500B7F67BE4BD2523E194A1ADD8B5564FAD9105C86B6D16B08AABA604419D55F571F11F4989197144DD12867D1636D12800D54D36FA88C620008095560103366711B8E3AADD5624FBC7FF51318D17311F02A807770466AD559CFDA0AE1439442E4413944855D4D0074D529CA8DD621DA02FA98F46327A7BA600387EAE5E724D64A82E94ABB760C891EE39F27F0CAE8D1AACFE20629DEC5DD9BF4CA91E65BF413FD2A9566B7DCA9E500C2C328F533AF2A957E46D9FB11F0DFE99127656B1D4BE20C946BAFF58E5FE1A9ED282ABEBF6EB35A35AF324DF0A858CA8AF507CE43D228ED81D863F7096044A084DAA37ACB6AEE98E5A94D363963D4F852B955C2F076848092E6199E07990372E56BA1D590BB83D0C7F834C852CBC39B666B801CD32A0C36B034264F3BA6911A719001FD0F4B63D2D628FD0CAD34B4C9355534A8A38512E758B110F48E5A09B504D20D178508E09B1423A1E61164E7D138B4A9455B95EC8EA786F5FFE67806781F1E619505FD7DDE9A904E9003CA7E5EA1077C94C228D36667031502D78B3B52C3B5A09FC398D8B5497B6E3F0C5381BC99DD7B11DADA2DCFAE352DDEA2C749F8CF5AF39587083C2C19576EFFE871AB94D1C7CA2183FABDB74B27A80FC4F20CB86B46B0B7F86384540EFF1C888168F74634F2C0BF7FB54F7002EBF90B6C4B2B25DFF068DFC7D087A27749D6C36AB0A33423044AE027DCA8C42678987005FB9DE5C2774924AD2A5A8FD2E89C288975F89B5C0EF70A20EDAD1925060A12606A9B03626039635BFF332A0E6BDDC4F5DDDA209AF8DAA0FEF045FBEA9523D04458FBB0BD81F65396938436AFF5FA66E997AE58D64E7B5C1B589558B3DFF6D035E31008D2C76CA426B07F1644F609945909DBD16559B36461CE882A361D0415A9D93CB98A5370C56913A299B2DD1AA372CB75C7E590A9629CAA6C439CC5C7D94A21F36F998C6FDEC1C1721ECC500ECE1214EFFDE65E479D38C635EA223286DB326EF9B19B3CB862C96C162D3DE238C2948E7613A0FA4843E39EAC51EF293AD7EEAFF0F522934C982890F83E922B2BD52815136D0A758B33641C54E7D4E0F3B19AA85859B750E7A7FB80892C3DAC5048767132E2DAC5804709B8560A4B3828B1CD25DAF263A2466AF7FE328ABC84EBBA26902FFD92B0D765AACC0C0DCBEF962E1B35B1195676E8A67ED593B23B2B0305B611F9E16633E77E3F31794C58C5309BA07DB5CF9AA1CC108186318A3F16A7141854C2FC8B469BC0F54BCB22976A3CA05FC2C8E23F1B6A891E7527F204ECCA0A5400B68565906E795FE4DAF52ADA95A9883676F9110B14CEEA389CE9BFFBB5D040E60D3D03C4E6D6CBE9ED53EA44B1AB6ED7EDBACD0AE0613DBA5A5C673A534D48B539DC85F48175F13404016C5289348504141338FE958AC28331853AE80ADFEB49A6637936BF82FB26B95295B2E46F4F9534720A4E86FF18B31335877C9CBA96A9B450C1C8C9C9862E51CFEDBE3DE5C8B901D792A179AF9A782C330035A14CE6A710D398BD28416CD72373FE216744F6237B38B97351A77D5D0DEA1A26A0A9A24FE15503240933E1CB5AF458E6FCA8624669A0DF439CD7FC13F7A1F10A0CC7DB8C6AFAD9C99B5FC45A7C565B5DCB74FF0EF426FE7C260D3ACB1E9E83DD8E6E11A642145BFBB7566D582D0540D7931AA28B7F8F682E6E2D90B6E6812FF8B7F15FCD3DEE686DF06E8E6C456C99C6B4215C4E874BCEEE3B4F94BA825C6A45C2A2B4C6DC04F8FF5939C74E7DA37E02D8230340C6E2AB7CB82BD226DDC1A7C7BD0C0FB36F71F9C772233132B8871A0D76728C2A141741C2662438C5CC7B129A6C8FC587A0E475545D176818B51190F0F19E91E05C04477283A0A7D4D646EEDA3BE64459780BAC1862D83E6B99C5731DF91F0CAB454E70A0D94D934D0CD83C8B8301DE282F9A1FFE49E73EDCB520C016FDB4AD02C261DC1A1E73E38809E60F91A4E38C69EC70D2A621DF0D21588F24CCD59D331C69E16F0F6BCAA8F24031DD5718875BD9EDA5B420C116E4316137D4B77623C9D73D182900BD7A0F90A193CD16107E692D469AF09F74702492E22C796B6B4A960D47FDC571B4A264EE3528A0F5A9D66DDAA33FF20C3101D50299EDA3225834C9429976EC8E590C6D48A721A14972BE70955EC1A0348D2F84347C1E8E21EB0C1FE67223B42A6BCCAC43648F3BB5464121180F8E3E682B4B664D91584AF55FD1C7D2E6F79A93C680238D29CB7FF36D259CB703DE03B2EEF6DE0CB77AAA8F49C61EE482A8DAD30824E603411D5F09482DC84BE794BB6EB65A7BC1DA92C8BC8364AA88D4B8212561745BCF3CBA0D6AC8B8AF80373DE3F44EE39CA3CE4C5763F422CD4E8827B1E7BDFF79DB990A52530E4A1E21F6CCDF50A322A086AFDF24EB5FE4D99F1D1BB4D6DA965D168E9726FF7A4C82F327A748DDB1DA5A3D0E9C8E0B060872B009CC9F913D35D94FAA912B0D6FBF233DEA3AE3C2A4E35BBCACE21CA3E5F7A7B9A486AE9D7A7D2E0B79FDB11D87072F1B307402BDB22746B86A1A0E6B41433D5BAEB2048ECA53A1ECF895E9EB9BC5D6AB5D5DF72353566BB90578F12C6A16A163E95CD35DA27C79379756141DD05C315B466871E2B726B8821FB6FB439B49430CB3CA47CD211D03DF40AE4A0BE87B6000BC9C75AD23552E2129F47AB64BC9E5E1620C99405CEDF7BC059547D547E2868A6D470D813AA5095D0AA4BB18D91964988391EE6F05DD47CA1DA0423CA238C5E50D43CFB0527973506B9F1DA4A8055C47D1FA1E0DC783CE3CF75FFAADF574EC2849631E2551368291AFB5F2C40A4F1A184E37A19E511F482B7920F6D51B13065E6327F3C21DAA7F73986F2D1FBF375DFE2505C0FBD35F403D253BDFD0BA1B00CCC5A20B683D4F1E1F2374FD914C7D674901A0F01BDFDC007E8021013BB9A2F885F0699D16805F9F2511A0C7D3CDC06E36679983A2A0F12662C88BB7DC643FBFFB58CB51AAB3CED28553910D063ED8FA37FD756B79AE4151521450E552E4F2B62EB6F6BCC8086BBBD30331F3F2534AB3ADEEACCF2A6E66F205935A167FA1D5C747936050E276E8E4CCAFD9E0A056E4AC2AC08738BC3A598F07E933B0ED285BACE3D24AE6FF7574351758F983FD7EEB3944473EDB4EC9A9828A5FC656BBF04DC623C75F8B8038F3699BD5F255CCD3EEDE4FEFA12AFE8F64436DDB1FF2DF100B09BEC657DC5D2B18E5722D5AB30D075D9A52A576B6F9FC8C8BA3ACA6A92E6596F688FF5D2A7E3183B696AB277B0B17F004843E58760683F90BE0C61DD0D1BF9099A865CAFD1BD1D8AB1B7D4AF2F86D51C18D7868BEFF3F6C53EC68FC46EC9F23D1AE1FE85CD97D8CECFD57A562E7E574ED1D0A7005813EB980C2A46A98CEC602C0E022E87D4A6EDBFD7DE9FDA8C02EF85701BB1CEF6013F4869D32CBA56B0AD6EB007591D03C76A839F9D01985C546C39E49D59395B10346820324F3E298C5CD977FC2FF83BD422CA550DDF2A69607BB8125647B389246ADF0095F22692BF907EC86BF8D70D7E8F2C50E35DC6EF34FD1258E1FEBA0B254470D43C77CB0073AEB2D4CE5F6772D49A101052D8CE943E1C7760F2994071644D27D26BACA88EA07F29B2F2050BAC5E05F2226F1F584D17DB80E4056B7F9C60A5D9DA0CC577C6BC802FAB26E570BF017DCC7236A1173E273397E373640ED02B4F9863C40D2A2A7828C3875D8081AEBEF349143BAAECF9089EE736EFF0EF80078D2CA7942FB24A92071D229A1FDD0F6A87D362E5165D57F62D927757BC31964B5DA63B90EB3591552F2B9902E2269A163FF221863ADEADC9BC92CAC0087ABDA02004C0B9F34E5CA8599DC3C4261489F7527FD27AD2B6501E602FDE47DEEBF3F3EFC0166B1EED95116CF43C8AFC0EF89BDAA9ACFB6DAC613770DEA78960C99C9628C0D21FAF63A0FF7A3F2733EDC0FC07B83F107A811BB3C1DFC6CFBFEC105193272A4BF915B1DAEB232E16216E40FD3F9D9399B15CC4C073BAE8D08A4EC42D91609574EB009A9B52F06D3F428F6EA9B0511D8319A1B1299C154C94B103CB586370A58F18F04F5D21AD3B638660D6C04E99D356A7289E37EFAD643A5EBB488D54F4A0194FBC4283A8C4ABB8D9A1D70150AA50F991204C038AF54B5B74F722CD6515045D62276A9E936476F42B282C3B08D9328089AEA259510240B95BD5E81FB9D7E006DCE0DA832BD9A833799E05CAAFA6305D16DBA4461BE13D3CAA95773B98F09230F2DBE13936495C2DF5BE3A8F3EEB4FD211810F4B07D3E2BE1A11CC87079DF1B32D44B6FE7942DF2627AC19FD9F584E771D7ED98AA4C074A9DA5B7C156F83D90EBBDAE78D636D51EB0CB30C7C7CBC1A96273C0AE0ACAD8E15D1196BCB2EEBDA332896BABAEF76B4275F863732D646C24627AB014AB602A47594D6031795B17144E6E2C23F0341422886C1E2512222ECD530017DA02FC015EBD5BDFB319F3AE942D75A55C21BF347A44B300ACCED7A339007A2527EF4499E3BA5DE334BE58D59918DD0CB55B2F478837F71E9CEFCBBC90808E0BEF8CC7712A3B008B69476C61535FF0787B7833B70C69B1EF506EC4F445B72AA12FAC2589815874E9123BA13A17477D61E41163CB21ADB8151658C99F1422C71A8183B8D0B1D489EF436564C47ED8482A0DE9170CD1BC34D88CE76E1B47B84E770020125F718B4AFB1E4587668634FC7464114762A9D74A93E33A5C0CDFA824CACBEB097B5CAC3B554BC0D41C402812D8E43DB37C730A6219AB6F0BACD096BBF261C78E991DE0A2278DCA7D1BE0E5F2FED72CA38BAA86924A84275BFED3B91FC8DCC5024316EA0587C96E030544F631076DEF65F05F98C7641A958313686B8580CFC20221ED50DE4D2CF32461FAACD0174AC46A6949EF8ADEE6FFA3F537228AEDCFFDB2250D7BDBC848AFDFEA67AE53CE9ACA45F349557E81F70F9DB92926FD0CED8C104E6B7AD180C7B3BEB86171EE84A8DD2C243F6869E04C2DAFDF0C938C0768415C56330C9BB6EE756BB335BAAF96EEAA5CB52E554E39E2435B0731B0062376F4730108DD2F05824A798DA24C239724D19F12C6F2FBDB52652352021E0167F31E0F5941C4687DCD13A81A20A0AF05A55D2533280941865DB4D5715AEC293A64AA2E5151C8F44A14B72C0879499027E67E4E2B487612216F6122361E8D34E92C2163B0C88583E3887DA93A3AA0E77FFAE3FE8FD5455BC86AE6D6D5AC7CB7BDF156A960C98B0BE50E1370A43E7D183636DEB2C64B264FC5922D4BD46A8206F911E7A742E72E4EBDBA39B6151AEDF5A6CB4157B375D9A59899808F1838C61EB4388B923423D3879E8228AFE0CEE9561135849A89363F84B41BCB166EBCD0E65A2A74FE710F2B3B55CA9DE2FA9DC163BFFF4BE91F10493936FCA15F5F39422C75233DB22299456D1EA3BAC26F6671557B2A5FB0E9460997DCA797C67C49DF109CFD597BE34C8E0FA0353F28B815D0CEB31DA93E49EF29CEAF20FEB0A8F5924DCC62E830353463245899900304A8C8DB5830BC0E97AB83853D8EB05660D6A9303833D170E138FF6F1C30D9DD64574D5F875F974225DA81ADE3D97924A38F552276F46A5208403AEF82D1E92959675EA6B353E5C6091034A295D9C12C288241055A2334C30DF0A37D2590626A7D1787A4F591A6E494BF55ABC76842BBBD508FE54C5630D11C54386A487A756ECBFC0AE8957E7CA8678D5B9B044117365AEBE79AFF2E6678001D23624"""),
|
|
TestUtils.hexDecode("""
|
|
e8b08c99776fe554292851f9d80f785b8109d6edcf9d30b4b3c8c11fe8b2e024e333272f4d72e697aa20953d03f013c0c3800e840aba56daf36846b0e958f7e1a465deee3fae6e45931424ac278b6d1916dc71760b7518643185cdc7b06b1dc0a54c83597e6a2aee0894c2066b5fb1e2439b2782ceec63aee1742d10f4c36793b845d5b86db9d22a200e12611bbd102cabaa00ed5cd47e6cdbfc06d7bee55e65e4ebcae019ab28f0f05ff2efcc3c44a5c89a5e80fc8758d774ddb3554975346aad922319273ea930b3718562c3a96602645c58e375e8b78f38cf636b42e674ab4c5e1a8da59c64100984605035e1f735d6ebd2948b556b056a07ab86f8d07f8cbc72cb7251543ceb39a9deea50b8189face6b5ff23bf62ea3686fc0f97598f36ca445942cf3c2acc5258f9a870eba919b99c75bf598031edb693552c086377ab84aed818e795b70a62c14f84d5d01fe9257cc9df2f4cb2f40173be7d11592e9289eec23ad30a8e5dfba2f6a779464e79cb5b07e6e5a19dbb9a829eca1ff64c0a672844ed2e636903bac6edfce1315cab8751e9f12635160df14cbf5ddd341824e8033507de1f6cb7dd87c5496342a27a8746e94da455ddbca610c7990ed01ae5dedc90cee503d525ec5033258465e282cacb2c0e0ea7457e62d06c194a958322e64a5433e4936292fa700dad6fb7ea4d5689d4e3efff132d61493859aa5436c9087fa9ac5b67419a836460fc9bbb4d53d0c9b6fefab2d513b76f0600d097b0c3eb7d7a82e01ba3abed5354fcbce02cc7e85fbeedefde5652187fceaef8e6c05b4f37c33a752fea5af6160a7da084e41dc7134534fda67c4e1c6b8dabf7bf05d25a0ab7e05c41c4e0070e8add04f20d8c72bf941ca284eae27cd9568e9938adf4f55ab2c40d03bb49c58c6fd8d74245cc3b4922891b865dad534e256ebbcecdf5227b39ac335005bdefe1be10c2b7c969f4dea6f581c278f8479cd7a40a6d369bc5e1fe5e074230d01795dc664e488e4e360b169976b99a0b9d257badf3f397ac914b15b8ce4b3c38e6c758a169ca015fb6fd339c4255c51013e7430c991a006591fd69a069cc2f966c24ad78b8c0a4f4601ea08ccb683e8d427d1a0db844308e86afb0e3f6965af9ccca755b5e2a8358fd2417b46bce7a69b2edd6e9b3fb617dc5bbbf2803a557e33c907b4ee7fa7a9cfd9f148730d48e471097526e4330515f3dfd5e4f0e6c6dd2c2db73c2c0913c82559032c15b3e580e3b11f5c319db8b04ee4a3dcc87a4251e8ca8f77a8e61d67a5586f2494c3be2d70d95076e6470cd3c3ed1b780ad9217153fda872911bb01edf13c13143e4082cfc9fba96f14e7844f3ab040567faef1f03caf66eb10d92eada39afc6d70d16325008f628489ebd9e80913227e270a8c272709658aa843a486039a21951467dc1e5df0feabc68c28ae9e9cdf95f7db12cff0167657328985f19595b5aa33f44701a8f40242a0f33ff9829078abc53be36c002405557c61b9c5585f7d61d0fae020b2ad18358a278aee3250b12bc7f0887d8cf42137f26ca12a866c35876bdc737a22b8a722e71ef500ce958723728aea23748924eab3552a7cd4142dc7e138c84df1251a2ed8f94c939bc7aa0ea4c0ebb4cbe817aeb65ee5f0f9cd407899459e719f0558f8f40d73b1226a004b910e26648852bcb3b08aa5340f6ac6426aac89acc4945b180dc4f401d97a6fc68e3fa4b8ed65ac74727e3ee5da732b02caec13b88cb167b15e4c7da21dbd937549685e8068c3eccad584698291b9c3410aa8314762fc838f9336b6b09c191409d1aa2dd5e2a075b070413c805f116d42f90af6c7ebf8c322bbaa14a5692ac0749ec7df91e5eddc7ded2dd873907e07b01f14fea1e0efe6d7a1a5ecb95f822be8f3a2f65224c3d801284de6f29a25725c3784d7bccd1253706e107fb9dedbec4620c87c615f4458c4c7078a1e69a0f5178b318fcec51e73995df8dda6ece7b7267d28daa1fbe7f36680fc001974577e4a128282b67819227e5d100baa5101c5a1422f096083b3b522a6b71f8943b536d7798e86e18129d1484cee60ac63cd849f5c9e8a58fa42c0298e3d595c3c4f145aef17f79fba8d7424e5ad7d6831321e51ac88eb1c54c6c1e2f3263c899550b65cfc52da78b7ebfabd474851b3a2b5457f4e646c15ff50efee6a8ad5c99e91853656255fd429e8982c56d65d005cf3ee1a725e224c768e8c92003a72f3060cb088f7a8cffac0d526c028f3dbbe84600d5a9568f03b2304ef37d5ed28941169f8e204a1240e6d910dcdb901932982a6d45a7a10b1630587d31551b6e4424fd929b5a7fee3c4a20929102f5791062acb3c53a6edc93ab5ccc703b8cdaa39857ab06b7f818a59d8324dd1ab342aa1c3b0a32dffa0512b92c1ab9a4f66e57e9bd27734ce2b2788058637cbf94b03b7a1b640f03735f36bb36052bb461c22fff6c0580b6eb4bc572fabc9a141c1964d664168116d9836f7c7581cc9537bba32d1e3e5519e29858f889e282c805084fe3a64db0234bb3e1dbf57956ce4165795648f4865c1232e24a6769e24c0b271aef1146425a9032884393d275fb68e3b3c91599ee82a4cc34338715a8590f436e4185246df9bc4c066ed975f502b967a5761c1b8f5aeee302f96aae3dfdb6f4519aba3e04cfe5c9b2d342048a4c2721484e9b311c9a18ee5f726a512c93a8d37cdaf6ee96928fba315a4680dccdfced6a13f46e06aa162a7ae445bae5b1134f1656a2d700dcb2b5138c780b428d346feb98be8ed911de7aa5ebd72e2a6a8592a81ad4fd6a6da64edd2f5490cead76fc652998181018457f1cc0ec4f4588cb8f418f1b6d801635847914c3f317369027b4c4608e65457f949e08110b23dbb6941632afc1d1292c55c169965f0153ec72d93498f5a68140ce2c8282a59b1011ac705fd5f0a8ed1ecdadd58d4a1fbd4b09e94802a0c67f2f5faf905bc4a35471f886a8f2366c25b710eb43aee8fea692d12b4f94513337b0ea9fce3c255188ab7b432ae37383470eb94abc2554c6f165bb356415a1f8d8790e1bf76f4411c8f32fc550e38a0ea7b8d37537855724c08eff4730484e55accb2f975637b74f29937c19fdedb5aab7d5a3bc9ee1df2c83ae8d0e59782fe18b3a17c82cf649a4299b74f022012e189f19d88b06387314b65add0720aefd0018a09bb3d13cd63f98fb73b8a57564137e89811d59f1c74a047e264ce816b01e942038574a9d1f4fa5408ad1661c31bef7e97742aec79b74df757065e8e1b059b5134e53cc8560bd87e9a68003b124b15afb6534cc6181b6b71eda535ae7a3c107abfd2d8e5886cf8a7d67a4b723ba794c0c5a9d1a63f67a6c42de3e3632b8a9e7bc7eb9a5e404930265a7d04c1e16ac17a7b5e1535e1bc80ddd1800a7ba1b0d73ba053688137e1db64eebfa9b5dd8573a51db93aeb0c6c644c97ba9dc87efb2a5d79b3e3ff396a45ac1f0aab064dd05c1e6ae48b2686d662b8bff1e87db3745c7b3126a091e688091d84d3caa1adb471df496e79e42b276088a600a6f8d2aaf3d31b22f7e7efd2b894fdef314f2258d32371fa022e272760c704997b2a605b0e1a8d0602ad3a134357b0f2785d79c557cb04121fb054354608655afa7a763c8276170c13f9e76dfa711e26ceaa999fc14c686e2ebd61d18e74ed08fa1b872e09246856d9e0477e5e21a72c7869b57785248aef0d516f670978ba4dbac563b77f365cd46cecbce0b7fc7c9fe7373d6ad47d094b3669849dc21084124999ed55f13106d4be1e52433d86ffafbad0e4f221c305aca71063037b7a26ca73ca37129aec69e665cd2e70a94dc5aa8d22e1a425853645a3eb05f8998c6d766806087f14f08fc95ae3b2b9190721bf536ac20cf49222f5a0dd03307995adadefa43a205fe9dc839b5f27447611a93012d3abccf3f5d7a766756111dbdadf6c5920782545c853ae1a550a08b14a87bf296ef0aba7669fabc13a8d0d85d67e36abb24a77bf87bdebbcec1e28c1f82fcb95e82ee936f0c1a60a38ca3ab846eb39cf27acd9a219abc2c6244878ee25efc38a6552773b7444e466c24a15458df3cac856201a12c3bba6483d886482d58112effb0cd72c7aba4df0c11474a41e1fac0419495166d5b88b7e5e169c96c9ea6ac96dc5c2f749c858ad524e7f3d32177aacbc836abbea91ff9dac9d313a8004a186ab52083662a03d42518199bb2b81f9b03501ed8d1e8a8069e6a4fcad2657d4e69c0cd8e4ee56389d026717c72c99f13b2d21780c122bdff75c0469f32a1c519afc5900855539b1c75a3019342b7d5fd8ad7fb02af96fc94ec29583a48b964c65586a6f17af9f268a6cb9bbff237ddf393dc40d03b69ce5925a5fa8af87a6d0f497ae82d6468726714f7b53bfcbb647253c9db17a7bd5e760531ed90d7cf044ec0bdcf9724b640a201f5a08e223ff20e818e16e88fd92300b07e89ca333bbc05e8fd01d847bf9d7ce85da9478833f5566662888c8238b70cc3481ce0b8fb5c5e144d05ca8b8952c4374b261e48352bda2bd2e8de39b6318a0cbcfe3c36e6dd924e52d82928e964930ea6526aae08ca596fb732dfa02f2f6da72a05a227648e1fbf49554117aed210263cc6f5ebdfe2ba852d1c4c4af8f71a8a6501927109026e544432504a5bd066d7c03d443a191629a2c67b00f634023bb07c676294159db4df69555ffbd6c4b5a6d4726a54f9a0ab243cac6ff603e2ffa3c4acc6046a849b099654d0d894ae6536deecfd326aee5164eb1a59838da8cb33724697c17d6735687c860a13c8b8fbe497b99c98b58c8a0f0c67e1239b5a0880c1d4b0e2cbfe268141d035c02047d0a5c64c4fc79f245e50c43f3f64130be4b8def3085330461a12b1cd047afce58b05d2d75ac4980376a2739821149c95e17dee53f6da1afab57c02c7cfa3652784caf90f6f66a93966c636a29df19b2ed5699ffa1aa0cf5de784f5b57c15ccd22f5963924fc55f997b8a508f10d8520c5498f3408daa04028ec66b3885c5495e10666f8125f4761cc09071717244928ebcb985cc8ec8ac777fd411b8a2aa51320c60f6c71bdcbae9f6e37eea62c1f595ed27bb83b25842d2e26988d48217862afade93f152155166ca55c13c143d6c176208157fc8a836ca68ad5094de00d82665b2675baa86a6012fc36593e1c9aeec4da750c5c747643072dea8fd786738f5e788e36767bbd29a87ad1731adc579396eae378f8c4fdfaccdba49304649d108b19dac8caed2d08f116cd33af7bd22091330ff4e99936dec531ca9d735430cb4a0cbc4652a9c1c43168b1ee012a46b1cb92d3035714eb4f7f4d6b63b60589b946e5a47e961f3c575d13e1486d9a388dff8c8e9aa4663e5ed91cdd8d3d59f02deb394ba37ee4a05df162208286c19bf0204f4d609b229087351981b6e62fc580ab06ff34474db029a16466d9630eb263de0b76e8b53239a044f15f90c4836aee8b2203d6db413b583d62c8bbe7d657b2c1185a5720457a79f621bad76674112e28c34ac65abbf65e73f54f918d0b912c429b29c5c32a370ec1810cbb07375a85df5167b32a321844cc54c34ab54b87fa6378924e54a874ab871c928d49e704dcaa40b88d7a7c5774163522a6620abf5d73643338be36e5b2e30659d0e39695fa97a6ff8cb8064e370eee36c5a3b57de7d218fa325646cfa4fa2e9a0622bcf139eca8acc28de6f0a5d2e37dd2b0d6f6b39989eda0de372b20e2cbbde73857ae39b7f0cbb2f4337e04a52f1549bc4daf89e484b06177bc9cd6b199906b62789431e4a29251cbb4539c62ea6fdca9c84721c02b8af585f64e8420a7ec91e6387a897196685ebb760d1b4276cfa36b51f4d3e840e2c5e074c69ec7f6557afad4ef6774dde534f88cd7683a6855bbbf8d43d520cbe0312c9e189f710c75ad64926a97ca0e3b2b575e3aecf7b9145c160c415f8c90160aa5208744addd8b52580645fed9c66a2f6d8b0afe577ff63e3fda7e9a25519f0d2fbc3bffa9f45c40f70452a78b903d923e4f0fa9475659910f75455d144295e4091f8a760e1e68460227d37fa6220b4f0322d61b8fd7a40275c4d9446255862682f775176c67d294ff45205726eb733e5d21302f4df66fec98102611e3bf8084035b42448e86ff9225935ebf7db9a847e8a0f72ed177fa3812f4f5c0dfb7e452acf0e1a23d781607de22bdf31177d5eb5e2840bad442feb2f8baeff6f17bd63ed9495b0351949ccbb6337d907831e22ed31cedaff7cdd13bc3de40421ac6afb536ff89bf041a3026ce04316b6a082c06e0437440313ffd36ff78d6e31a4f5652c52e53f06fbeac2a7f13c64c061dca9ce9dc2e7598ed90a12307e5125397629887f0a3d3bf8d24b675db85ecfbcdf8b3fceb50e96b0a863d30a7791db30ce4cafe8d85999ea1282ba61f667497a8c52a2fa3bfceea070b2e8a9cd8e51a244b73a0a60a1e4076829c1a4668717495adbecde4f4fc0323325d71aae30000000000000000000000000000000000000000000003090f161c222e35""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
f5e15972ad2246b58dc056182273172d39b05662b5048af41a6516a04e042cf2f0c5ddafb57cdadd0def1a82bfc1a4f6fc1c5f2e934016eff45dcaf88535735c50f3bf6e8cf4193e53e118a828cee10640664ac6fe927f1d3317e26333d1320fa0cedacb8cdac09f35aa4ffe425e9d76c4dbcf07f5853c521f80689a8f8dc36b4ee2c2de91cbc3ae01cca416522008a0372515438a42398b3cb6e8162e003dee631a0d6ce6ca42662cc5161aab21dc999bf840665fe093dd7f3eadf35eddbd3d5712b49735724d367ede964eda26337c412310bbb326b1a83454d90dc2c64a477db6c90ef3a451a38ab814cbab44f19e8c2fc24283ec18f60b4b3c683954bc78afb64ab8e0f6817ae0095b14c83604b934cdb75c263e99bdb5cece8382539dce358adddaefdb2a568071347a68f75893fd210057de0bea4c2fa882a86f120934c72a94dfc8629ce6aeb024c5c561e1f5e8230d830b0a593b42ba6d29c52997256bb9186446786566d9224120d95e8c1793aaee0fac3eec75aff47e90547cb7b42cad315ab5c0813ea269cfbbb4eff999002de0541ab117e6d374b9f956f44ac01371fbbb2cbfcc47e6696a16d1d731f878ee362f3355c6b625a9f77a9455b51cf54468d1a71580595dd4c7968149a0c39580016b1d01ad59504db610f7891b5e0d2ffe9bce4a2f32d64894396bc6a91aef4722367ca39e4c723f538d4e8d444d0e53fa8f434040751069e62f42a6d8ec29950b8fba9878533013983c8809af7e8252ed9186919c561c12a39a75be5dd4d1a8a6bffb00d7b305f13be81c188718a128b98c5795b2083fd221e950898c6c929b5b06b1e9649025c68a6fe0ac6b0de9a8acf6d53dc361e3727527ce4100bcd9a99293e85c0cf2c6c4e13b349c1f2b0512278661b3e1d08420d15cdbd0265b6eea3540641b18e5f301b63cb46cd7c404c8a0e5489f072da3cc013f7895f2d368dc37cfe65d50c613b5dd6b2d1d27bfd074cdc20062c00d8a32795e61056a4287bfc455dc0c9a9832f188a1f390a5ff3c7cdd8416ac997480982935480bad96c215079f32cb9dbacf094e0f36fcb701d834ab851d98f478acc3fe5cc352d8c31be7571dea6a4f2dc003264a5673fa9a8254fc0bf489c39baefea294e808fd6ccc6bcfe724042b9bc3e2d57b82ade7f3a85519829a1e39313ed34ffb00853bc3cefb0656529d7cd3557a7a3fea8a07239a9d2eaa4cae666b4e77bdb04e0cfaa75516658d53f1c99d6122ff64fba6f01ed7ad50619a62d9af7325e549ef4d8bdd09284cf10432f58826d29c1e3c06991a04affdc5d1af3aaa7c8bcb5929c20fed0338803db2db0a3ef6cbf4745c511b0824da52874b1f3e3efe9812017b9eb3dda24f12e8713bc5f23c4abc34fea3ff86489c16e12d5d1729549f8140649963dda606affe6884a7759cdbc9c7d1f7c0ea84d0c8b42bc133b43d3cf24a404eff4853c458d795c1a3097b6350223aab7b86aa4e9700aa0794c0993dbab8ffd4ed89277a51112b20feee0fe66207db1e9b98059a80c6b0739f55859eaf867f0a64c08596cf08942266b61b391ec772c2c809319d177b081362e1ee216cabb281e79e896d093d13761fc0b5589db0d72c1995e05fd4b2095b57c24917b8974421ffcead3900834ca801c841dc4aaa46ad0e2b8b64b84d66c8668aa3d78ef19c6e13eff3d3d45be3b35fdbf88845b868df1bcb25f7ba7b7e52542b79e829682ce01d55b254fd66119cb8583ab33177b86b6fd92ceade0a8471016a3ec439df031c9b15439e0295a3050962bc2e9acfff0da13b9ddfdf864b1091df92132e9120573474fcc15594d9248ffaa873d0597e77d63fae88a69c0fb226dbb81b304fb3b9f3869503c18aac521938985af600b55dd67387704faadae2376514a12cba29dd0486c954fd48fb3e36d54d72dc81991275c17db80c900ee6197321ba86faae1404c7d091cab83a0e4b54d39b9f2e3bc7431da20263ecffeb3b732c24e81a814a0f4798739d856d89c976e2ba1910d4fd5fc4090322f7ab5892ba2b45636e0eb9ad7d39a1fe65f6917ce299c862682fcedf6a357f82df9daebac485e5c44213980f1042e0c5f01221ffc73495dffb389a3a49fa323338d123dca12a11109d3c2f983f13b79e35b525ee2496e9e0daa9237ec2556af9fefd3d79fba73bd291b3de7f95326d60d029d418639f0a6724fc6c38f7862a7f1bd84ec9f90f090b5dc56d2186987f4b2ecb491f7f271151c7c270962ca1337ccb7fca3e32985e370b11985dc143d5eee404af8309e102798f8f39c829c693e1e9ceac552d4a782ac70758a851caec473ff3900c52f6f5c372df2a132cd4f216c5ed6cf4c9b827ecbe313b0254dc163389329223769de91631793d8325704768bc824994b45c3084c9498669d5b89a2d39a5fa83d27d41490a2c7232c8d26efde3887f82ce24c7436626ddaa2b4a049e84037a6708db1948ef1b95913366b695e4c097fc73e6d1d24b670c81b57806d0fd4520f0ff772cd9f7833a6165b6a9e4a0b6b8428c9a21f34f195c4057e313da89a55e21aaea8c5fb9165385d0e9d475e9088f7fa701db2bf4fa32cab7851cd538a6851ceeb3a21a44bd89df644c919dc95cde8c946d2b33ff19138b33d5a81421f47b9c8ecc2e2d9cad606216e9e35f4ac025f3c49aab0db157449ac7c471ca4317755b26b3561d279aa193ab67d91da3e33a7ab072888f5df300c0ccaabb9d2cc34522b0e865b55f850bcdb835a10d41befa6fda0f84a86877e6c83de62ebfb5bc7c0f291282a70bf3f6ec5b6109c3d9fb30b5f596c8177f996d3b4a91eb113de00361ee6398ced54b65ad054cbe1bef0a9586f2d6fce45358ac9da2f62a1285e71832c762265128c53836bb3d488bf13a4452053a6b2af4e98a32996a5218a761d3a847b0a2abe9f222970f0cdba9f40e5e04ee155ec9cb3c3d5172408d7b0d99b93d15266be3c174fd25729027fb02b23ce3304b5553680fc6bccbddbf8cf18d0290c865d55d057442e37f02726c89affc7016124ee3e7cafffde04f8f6588f63266bb5cc91169e954d98502a8fdd9cd68e786df2e4d512dc4a05a58945f2a4e66651d4c53f921e234c7f24fda5402570ff610f56c8fe45c5947f217f7935e4f7014bb14815b9c7d49c5c64b1178fdaf39db843f94e711658a13178a9bc5d46f0adbcff5232ab09b84ea33940b94fd8fe885c5c7fea6d0505d675b8d602f4c91893c09170b6596bde36f3f118a8c375563f94ac6d7a19d581f31332588f365608cb09bd01d7f4e5e01655578b28a366379f760e6de3ba8d031cdaba280349f9e4f8091589476323039c7e08f3c2cedbbfb69d64910a7b50ed2654e56a8e119838656a8049ff33dd81e7ed46766e1dfaa7a0480565f0e2ce6575ee811f4f854c8341ab1a72742970a3cbabef8d4e8eadc579eb9ebdffa35ac2860c8168540c0ff06427d3b4f065134b972d97f6ce49fed68b0e99e61d17c0f89952a40d375dbf2f971dbc67d7e64a6ff0ce7ecf4d921d68c67dfd55faf634ed322449a9ee445327be4df5762f17104de608abec72396f450bf60465b04644035ada94d19cdca98a4dbe51c75485b665a8b0fa6174d7ac9b385bbb964255d74f7b61ced4db2a1d7bb37562a2acf0e25070449"""),
|
|
TestUtils.hexDecode("""
|
|
CA0104B9DF99E87474389167359968A307F63AA32F0C804A96B18FFBE00C748B1D6894CBE2B7BA06EF17B6947ECE31DDC9F614348F01995FCCE77099A0D88B2BCD1035667631991C2BCAA4C86B4D31074A2FD46C38429B52CF0BFD7CD3E5D194DF22E2B0D57C0C9D624C772B54686AC963447E716C6B4DAFC00AE383CFFC69A2F6F931D616954BC9A140D785F15C5DB28ECC793D88C78D11F8F8452046ADDD3AD26988B21BF895DC810739FA7C45A8062B2931AD363B0C7EAB4CCFAC71CDD0DA3B54CA9A6388DCBF79AF799446395DC7A5B7ED1788188E9D03EB3BF7B80F8CFB9B7F33DA0D4DBE1840B9C6C5D80F6AE64487BBFEC86C596E2ED8E721A11D783F7552A4B01FA24F60B5B683E287BD75EA0DDC15314E014D402F527C5DAD74CFC49B4D824EFA77C359B90AFF15AC89C1AA35959570E2148DF7A09E27E2FC096AB5CB306B4868AB80A24DF745DCF9EDDE57357866182A9AF50796EAF97A1A1051FFE6F9038BE1F6239CADBF0BD81B23E2991941F34D0851AFCEBC4D3F8B472D6259CF61FFDB87F79928C66E69D969B254D57541A87C692160E5D58A837A1FE90A1799758A70F958DBC1BE5D6E6836845940C75E745245FBCE59D1F83462B9578534D7A05DC3F21C34EA93ED78387B32DE09ED3CD2A51EE2B8F7387C8C2D426EAF3795E99B158D467D9A039234FDF207D65D2577D1688E1B1E72B5EB096FB6377DC8EB6B3F51900380BEA561C03D546EE242EB4264C0369AA2D53B2B190E0422FBC4CF896CD549C2A08A37070331F15A9ECFFA0E91B1FC4D5157418914308EB8C6A992B197F33DDD517DF4610E88F2E35E505BA7C7CACB8E76677CA9B39A4094EB4590F6154FAAFA76C1D95D4072B5CE01F42355C47AFE569FA80142EDB49E2ADB34D3C356F4D882A52021C5216B3678AA6A5D52C51CC8BF09E7EAEDD2501A9886FAC977EA5F385F46E8718D39073D8995D392074C2525A4ABBE228F531E6B16AD5BCD5EF5CC4C3C71AA77EAC1747E2B763D0B3D66C7F35458BE43369BAA0ABED23202B733B3C7A111F9CF407A7D62EFF5BE3A5DDC3E49AF130012BC6D5D3641EBF268236473EAB09BE87BAF7707546B7AB194D2ECF5B03A56662B1D6462898DA94747CEE9DDA08A9026538D799F163E1E771EF7EADF8833C0510104FE7AD7EE75F44F8D4572E299A87FB17429718C576B29983B50FF81F8D48D41CC764809429A7CFE05F68168B6B36FF66CD75DC0021D774D07BC716A74F9450EAD2995089FEB89D1EA73A9CEB83155ADBA737B3DE33B6B617EE7F5CB6C6672AFC439990B612A6AE71540FC6D7FF535FC88DED0E6A80A484735F63209D39F12E6E129C4ED2EDD8C8B5A24472B83A058B0F1C86B7F4C53D88927C7E9EDB5C40C5D6C7F0ED8A626C5F35E1D3981936F0F1FE4E8CEE0FC7F66F0016B14F3D1EAA993A5DB9B92C03D99C0A867FEB343D9F43BBBBBD85F58B2380811CF153FE66E5B5DD07D5A87ABCADBBD472692358777BF17AAFB622D487A100062465D9BFBE0E63B9D862A02F09E371EE820D969B29B4E6F6A1120CDA9F9E3FB804B26E2E9C3DE219044D1D6E62A28CBC90C262B76914B8929465FD901777F6F5C112D196A002A0F4C4FFAFD2578B5CAEA21452968400DAD6490E313D32A708A42F64E9CF412EC0E358F6B833EB0190C5933037202C266ABAD212B570E609FB7D338AD3F850EFDEE9347EBCFEBBBCE90E7F27372E244C3F035D4ABF1008055215E573F0C4001FFCDA5E6B6C5B29B7F59132CD86481FD0E1245EE4084DCA3D44A0C9E6B6B14E1BCBF56F470F15609DE76588795D5CB62BFC9C253EEFCC155C116D70CCF9112D8E0A801A3C640C7D16634EA02DA9DB9AC57DC2F7D43F48ABE631D3438C2BD3EC97832244E81223EEE47054878BB2472F64E9ACA0D5A8B0B04F783C5052E0ED6AFADA5274C94084621E989084EF9814128226346996CEB6FA07FB957C7432878505442FAFC4D945A953336F9C92B8ABE4E4A092DA65E2BF1A7A274E1EE9D7958E35334D9B7CF8B314F0AA5C45E93111460A8F5409C0BCB842DF9C9887FE4643BF8958CDB40EB66438BA53972E359EB712BF4C553D871ED702F74C41D1217D7887C891E49043C0826FCCEB2897BFAF9F217DC9F566DE1C416DE9118491162113E2EB56CDD4C024DCA4A33359D88CB0247BDD6802455063DE9666A4C52075359316B3B557D42B7C99700F55CABCB2B802AE4209C6B937C798433AF94159A4EC0A7DE00C809F6E6675A4213A1CE8A7099FB7FE6A0C7FB383233444B64AA120BABA1C4E61C6426001184E897A3C6B0BDCF9759A72146EF848EFA65EF09076A4FF2E6DA518C5A08F2A2A12D904C893297234E53CFFA04F285F350412456C9A13E153421D65DD30B236653AC13CCE3D5CF1EBCB8AB46808414BD3725987D6E464EB4F97321595153DBF9994F7E19AFBD19E9BE929D18563789567B28B1AF05BDB5D2C5C289FCBE8EB159D0017E09DA8FE5E9D49D3A231814778370DFE703ADABFB175859A895A6ED86F9B6B52CCDBBF936622C5E5A01D50E2B6D5730EA4588680EFCCF390211F211472F9E10314482CFB45A24706BBCA8CB515B6A9AA6EE1D2509E8F9AE9D6F545BD3971A02CC26699608FE1F076A925008AB6CA8576CC5A962326A369BDA8ACED3618F02BBC55337FAB2D66050514F904083D4386B43B6EAD553DF5603201C6D684F7156FBD2D3DDE3D7EB0D569AFD42886E57B747F21D44B88AD58FA2370FE6BF2DFA4D94D8FF983A1C2B89876E75AAE3828D1306DB9A639D052EFA6A0EFA0F61737CCC45E0C516815E92E256BA49E7853F9E9D4670593BF9402E59EE80F6CDFF8244D156FAEA8220D483601794A3CB5E1D7B60DCF991A545D2C72F62E5EA05BEAA77FA86A80400A07B97D8159F0EC170913ED885B578767CCA7A5BFB8BFDB7AC99002555145D9DF5011654700D6FBF2EC2BA609C969EBECFCC0EE346FA01B6CF07E6855F3C832BF1DB6E247448438BAEC055FD41CDBE921E5F62D93F4E7964258A9CB3991E8084BFFC2E5B29BD1E32A64E32BF5E27416CBA7FA3DFC143281F3797E1927AE9D9E07FB424833A7911C23F231D676EB0FB061C179C72FF0038E48068D43A805D56C3B6A16F5A2E5E8457F1A3E0F927A8880CD261F0D0AD8F82EF0E52E1BED003661F1D4510F7BCCE680CE84A0181F046366126A53EE67C7309C6982C28966B6CA1F324D03F5E09AEB111486C44B6551B1C36E84C2A72F78AEF5CA31AA66EDFB0792C00579C0C7C1FAE501735706CCFADE03E9A0847E498A24AC1DCBC7DB8FFC946B8D914633559B63E3031C214414BCC1921D2A53726695340648CF6C2BB4FDF132C77BC39E9CEB2E4D22EB138D807D7B79F78CD9713F5BE7512FD32E73E886DE16A9B1B19026B91EE6AB92DE4DE663D9774344B283149AF4890BFA57ABD1C9DFF128F9F169E4CECEBA0FEE1C33D4E34B877EF04DC887F7109B2BA65EF5732ED4B7C6B33131EB5867811D4A8A3536102F5AEFCACAA681A6A45A3BDCB24C4FDBF49A134244044E2B424996CF6F3C514C77EDF2AEC177B8F80A1AB77F6D3D920E508C76EB71ADFE2209A132839E9BB16BD9991A545AA0587B7594E0422647DC84CD355B20983AD582324D4F19E33E9CFA5CEDC739B26F43BBAD1F165720306F48CB15B23B961E5990C2DCC39E5BF58A9BFC10829590A7AA8F60E13EE1DBA85EF5EB9B1F6DDA891ADF7357E16CEEA4ACDC00E20F8F364AE3EA838CB4A0FDCCF8B439A242F8D18B8E0B9FB8E074922E0C25922CBEC46C98A82E93F0E95884BA9853CC738AFADA3F08BFB66C17DE7977EB7CE5495B8620B537B49D1D37EA4B3477B79759EC7D9AF17EFDB2EF89945D453BCBDB349CFC623FBDB8F125EC492CCBAF30006523B543B6A17245CDC5EE7E28EA895654A5EA74781CCB0F30343C73B4BB88CE07BD37DE9220712F11748EFACCE925626FFDD8447D37BD9CF2476437C093BA4CC0AB674E4CF9543CEA67BC25B9BD56946C0D077F0849796EFB74C7F66D5B86CD9A38B8138D816F677CE08DE6A6A911BA4DD1834751548578CEE4CFAC50C11D685E52DECB77A475FF5468C38DB23853BB2118C78AC3D52079042FB7F370B3D0406E402EFA6432D3055C572C81DD999876E8306021118BA87D5D430E4AB9C24670EAA1274ABF4BFB8149D9067C427DCC026A61C5B724CAE1858ADE366FB42CEE52C36F0F99AC02E8BDF784EBF311334B83B2B277982519DFFA3AC35D97F9F30635CC17BF8E017EC4E209EAD104B52C58E8762052CA62BA7A82FD011860E4F298D889A11F6A2BB1B4157CDA42AF9CCD0B5324329A92CB9FD6EB81DB3FC58431BC5C9A6DC1B07F7D2B00B32E5A39960C5E2CD69CA2914F23365B518ED746B27733D713E8ABEAF9D1FFC6D3D9B601FB386A6911F24CC818C0353658CB826F43FEEA792055720065601F1364BB6184699F16E3EE2B359CF0642C85E9115B18E55482356E2F91121C5884578F3D2C45462E47A3D477B3D63448A8C1679E68F9B7AE509100B7B2B142FB6BA20179E599259414520B02B745E592FD10D0D40D780A95C164D651E96A7052B69BBDA979216989A57506638F891336E2EA123303F997194B7AAB4F22CB192AB59A8BDA7CC88D0F43E4DD949146006CA3F91CF28535ED42662A61F630AD6E7319A7B98FF5C7200FECA768F14BFD43BD60DBEC814E22C26F1A8191ACC869A6BCE61991E4F36148908A5B1557A507C407D73A6FE75A548CBB8CACF13E57BA6B01FF0DF900051AE7C0C346D5DADE5F1C1BBFF967236BA5BAEF19A70FEB320BD76035F3A6B11383F13E6DCB8D1533A6529C98334A3F2A9105A5CF1C940659459C405C197130EBA44F0A2881B4614B7A0BBDAD5930DE5C3389A7349265629E29C0123CC89F3F540FE5C9019662A4383A38248F22201967D908EB48D530D17D50A08B35FCAB73AE8ADFDD72A8A7551EC28C7573E2B33EA4F61EE84C3DCA33DD5861B8FB7176C4AFBC174250D51F86B1452903191E39EF099C0CBCC15B3FB5DD30A2822F68AA37D59583BDC1CCDAB1B2E0337BF397647FEA9111A5B94C6A3369E90F3B86C266F4C11C9A7D9E24802B31B5F93B8EA9AEDC6C2944965D6B54601311D251E81C77AC1BB2159263D0A92F377F111DBC8D554C3AF747FE7E82A6E6BF0E4E3743B7AA42C3B5B8D3E5D9C3B427B3290452136E61592609826F4B61D4960B7C3784D0E2508363212AEEAE624489B739D0573CE23B35D30826182DB5F4D09772582E4D6B61938041344EA434614C21B01530327C08539A84F03275D0C4A77FDF230FBE6639CC7A12C34545C5CAD34AABF8E25D64AFCA8206948737DBA643867A146F17ABF81A926294E2368A5A2F0C381E2C244B21843E3ABBA680CC3F1F0509DFAFF4C70B68C82D3D7EF8EE053DBD154376FAAB5D561A19362314B037CFE18DD03BB817444FBF08D771A13B9D745DC066C89C10ACD53597B74916BA719F9EEEBA865252FE13EDDF97978092FDD1524CDD865FD6AE9C14329EB62B322F46905804AF1CFFC13B46B6AF4ABCB107D44DD27B460101F7A38DC786239E34CA9D1A444898673BB3DD92EE88478A3C539A563CEAF5CF499AE8E07BDAC0CD5419DEFE2977105B5E0138D84A8F9BFAD82F58884377B803C8B68164A3E678648C18127A832FA994EBEDCDE4FECE85DAFF8CD6F44F4CE57694522DC30BFC492BF62796D05A9B87BF13A7D538EE5C55E6898D50ED127E8C12F87D160AEEBD3CB126BC4144A51F685079E962DB6FDDE3BA6D0C8038BD6FD8377C4BEFC2EBF1A876833516D206C2E309C61E4CEAB5F86ED83FF20C8723BFE63D8E480798292E6EC6D418D3CEB623AC6983A3F8A3AD568F73E408F15AB88C8F56F3CCF5B32C76BDCEB1FA41357C42E1215CC503A316EA0A83FB341ED6ED20B1154E5001A754F92E97570F9DA7EA8AB7F2EFEE7B79A1DDA705645ABC5B1E04CE4F922BB03435D11FC83EB580CDFF7EDEB78F2CEBBB6053410E84477864C16D4CD7CD9D16B932372FDB99DBCCE2DC3B5CDCCF7DB86AEC9BDCB8E4F27B65ACA9A3FB985CF95C5BAE253797C8474D0C25F0FFBD151E6558E524C6E96267677EB7A3E128C918CD3B09F1DDE311401152C62B4C59EA1D408ACCC4A12A34664D7C0858D7E99A0327724AE9CA55A9322D865EFB4FBFD37FC79F8D7B2BF08B1824D44777153ED6604E05DB1FC9B1ACCE05F8C53C32594A84F32D97AE49E819029204AB7713AF2AF2C281448A34C69D5F3DC76345031D2CC05B6B26303198E182901FE65710EA95793DC8495F1995F0196DC9473B7AB922786BBC61A91868BB0BE05E2034EFFB288502DDFE2595887CCD144E98ECA4D1E0C044C642396F98473BFDEEE796530467F6B5EC0D5B79674EBDF5D1416F94A8EAC7F4833947F1DE610029779CD436729E55AE3D959F99D5438E0E4407D0A870A38AB31E08F16A06345B7BA730CCF55CF1FDA1E9D04833ADE5FD74A34E2629DCB75A3482312860404F7E75D94D7FD2C8215C6A21BD5FCAE81CF4467931A984AA24B927039526B95C2F5F39AB2040A23C76B64CD2D04E95DE6DD9B8EA849F9F7919A619EFAC498E7E3F4A70432E28B1C5DEDB08D122AE503E98D34D13A4E8A69FA267C3E20671077F977F71308D3EA1AAED5DC33B3F41E0ED981050B3B915EDA07AFD71CFD3AF13A2063813039BE85EF98706399299118D2427A7912A131DB7BA731D18DC2838A116E05C4CBC660895294A73D170C060CD83C9AA0884C5F3FE52F4891C2101997D688709F356A556CE202C571E1170BC339F3E2A75A5A13810E3A2F2133438C1705895523D03F00BBE4F4FA9BCE6D7A14517BD54E281F202BAB40DF35253961DC9E94DF5C2C5C3F0E420AC67A85BEC2ED70545B94202AACE5E58180104E42C5AA6F7F59915BEA69AC10F678D40506AD2B502D77EBE4D05CF8253B4795094F04BBDFCC8033EA131BE83F3F647D22D1212C16895F52FEA576EFB344A476D2A8EC74739BA62632C4B5B08076905BC0103CC9B2193EF6C4785685F2B3F79FC39B5ED09B258E5E9BD346557F24CB542B69A3ABE367123179879A02F941F9781935D44BCABCC563BB1F31C44BB77D5E7A4FC7EC2C11D597E7288C6088497DCC97910CFD8245A4F255CFBCB8FFF95905E8224B770E910A253356916EAF1B3277D831BEA5BD6681C6C7D57D363608EE78973B7BBBC156FE5536C963030B6BC8D306F3C1EE72F14163DE0DCD0CE741EF975A9DDA77EE386B991F3096FEC95FD394E26578269F491572B36AF42CEF1D86CDC82D63DF00AA397E1960378763F5CED239BD2A6D0EB7C5BD7CDA2228B684FA57B7FAF497310D510CD386DE6406924CD592ABB1E9753EC8BCC594ED52B70C04F7C53E19B0CB607DEBA79FABD6748A52692CDA34BB7CBF95D1ABBFF8AEF8F8AC7E5D52EF58FC79B0C7662DA90A0F737CBD42E64B648B624AB497162A7B27E41850A9BB4AF0489550773EBF1EC6742CE8D53A20921149563AA74337ED4CF1EE8685F41D36F748B6DED5F894BBC50A8DEC84621B6AAE690D6EE0B392A7266A480CF985295361B14AF0A5CEFC1EB737ED3AEA5E5894FDE80CAE477FE742395CACD1174CF2B345774BDDF71853BA1854EDC8F5CB03D33C5F58EC386ECBAC8E4209F8881473A4FFE306ED3194F455D4441D132B7685425435E58AF1F2964B657C71EB6E28FE3568183F7A0E570821EA49DECFBA3128002E77208749DCBD3F5E15453AB6DE9EB313D7445377B3BA74BD2F67AE31F560ABB628CA0DDB120CAC6CB62EC9CCC65051F70FC41BDCDF29F885FC9A558929F58CDE1200072F96C3D8F22032A0AB3F705884F0D827823FBDB62FFAA39EEBFECD9F57DA083D1ED541CF36465A999558F2299A865456C94D67E74F1EDC7166F91F4CBAC8F89E680BDED946A174E9260DD50C6B0A980A4B886850797149FCAF8871AB3080A76B645E333290A0DF319DE058981B8CFAD7A54FCD62345DFD9C3E6F7A26D212C97FA6F09866E23D5A19EB9CAE760E876B2AAF43BDF9004D5CFDC41570EABACACD4B57662087B6A91B6249CDAF905BC2B1AF5934F1A05D20E6C6784F0FFDA0A3E79A2C0939BF36C55EA0E31B1AE614D44CD413118EA165FA549026574D1549FF7D63B4C464A896C5C0E8D5569AB2B10D1DC56458FD1E069B5F91B1D084F7AE34F67ECDCBF33299B12C102F953CC48B0661AB4EFB493F7E4B2EA8F6FE59C3D5EF7D121B26B912B86BC0AE987B6A3543558F0B935AE62B4711A586DDAC9E5960C48B99CB80191B11F4053527905123D20C549457BA87608948933442CB06BEA0E73FE99E3C4198E9E7C51BBB7074DA46E752E46B3E419FAE2AD60D180303D710C0A59C6B980B24F0BFD39959368B5F56AB3845A2167F4683AA82A9613257BC801F5146CFCA857F2DF4FBEA85C54930D4373F70C083F661077567F1173819EBAA585EA3675F97951CF8C9997887BBEA9B99E17A1E0215DFC2B9A66760A277F68E747141AFE5CAB6B25D73D562B91BADDCC7938F2EA75F1C990E88311549F38FCE2C52933498B22E2810227D1EAFED4BEABCB153324622E107A6D96214F3C6D5DB91855005056A8D1BC5D5518867C373709D24DC1FCE21537C58999E26CDF4FE61ABE5E1225DE80F98D02253999F39A145FF3008F12880C173A7ADEE15025E3E186FF0C2090872A0A51505A09094FA2946AFA1840B0D6D526DEEEA95FD8E259E70B2E794C97F50E7833B165E7BEEAF5D3CAB7C3AA1CEF00003B94159F0F6DCBC74808E3FF237D5C3E94353FC0E700CAF48DA8BD94B991EFFF2DACC9E423A2AD63824CF879EF838C784C7D4C0CEE3DACF5884941BCC14E043082D382AFF598BBE0321DFE9406434DDF558EE2BDC272C2B04CBF8CEF92EF8180D0FEBD3D62E1F73F3B1E7FB0EDF9B50538D49C52CEE53F3000E581FCD7E6FEA1CEEC9DCB4876B3F1D1B1A301A2D395DEAC54D68181406D7ECA05A416D3D8E0EE10228483D8515A0F662D933C53F945B50C65C5B8D51EC45360661C92761A1F74EE06FAF8889244620DABA05593DDD4D6A82A30F34DCEF50B1B1D261CC357AB0673370A38DFEDEF3D591377CA29DF609682EFFA212092ABF84FCAD677DFAD758575CA35046467C6925B6185F9B734D5E194F5CA48DD10D0B84B7E9096703A9EEF0D3EFEFFC0F58C4D38D741F15AE766D06156B26E9C82B464C9F609F0A4FF699D52E0E11E054738476456CB81859ABE457F3595E9D7F1CFEE5D0437094CF093F468C79C093CD615F7409A505C610169010F46E148F3D264FEEA1DF42B3E78D1C4B33C92EE9BBD9C508E89BC4CE0BA0C412F75821EB54730FBB627C6C93694810CD741167D5288768165A68034CE2B16B0E73ABFBF75A905C9A9E577024EF2070EBE8A68076AE37BDF3507C7CB10EAE13D3A05BB3DA33F873F488150CE67AB892D61A11FAF5850B6A26862FF0CE85E4B0AB3EEBDC81F68BFDE39B0582185E4322404A0195BF5951BF7CDDAA6530DB0EFA0A2E6B2A9CF8DCD8B0D15447448847D1EB5FCCDC80EEDF166988D55DCF3BCE37E24A0A5F302F820C2782849E70BA47523A7AA1FF12F144148E9B5A1E05035A346FC4028BDA824B8D5FDECEC4036EB2C3A7DA612A703EFBE4D5E5E17CBCE1EBF546880C227EEE2D9CA4113D0ED61AFA70171700F0F9A1BC7CE7807A081EF09E9CEDA5DFFDDECADAA7CB5ACB2DBBE26550ED006C5B7DD89A2585EBED5995F8F76F3EF8F13B6AE77084727DC894C74268D4D91000155FDC94DEE049E54F4E4D2494EF926F23B73E60EE16CC3711B67B6F6B3A3BA6BA8CE602AE1BA87ACAD58650AA8F7F0F36AEA21080CA8DFC618AAF865B14BBD69FF7B413FFC81DC6C8BF2A7B122EC2C13DD7832610DB9E6EA0E5CACBE1703AF551997E6C51BCE7BAD4B3EB1F392EE12C5691F795090C6F1D6405D0E682F279B3DE64A9F45B1853346D8D337FF8037370CB4DBE5B241959FB8DD985A4F154470833E422AD9EAD7A14EC1CAF6308FCF7E9AAC13ACAFAAD98011148A2D52D40511CF13C7CF0ED1E320617B908BD1A6A442FAFB2E543703844B0D40FCBD1B392CDF5DAC9CE4C2CA69C8F04AA033F5D6D11DC1A5667FB352BE6BF88A9978AAD37B01BF8652A2C475E8516AE1A6E56F8CD596B9A780864ADC65A04F615ABB2BD4BA97301FB0CB7D9AB5423BB14C29030DCD5345C54D556ABB116051C04D79C81402B70AA9F32CD01B6C06FCFB416C4CB7709CEB12DF3E8BC541333C90E6D991B24D7D1D98D0839AA86614F3D91ABBEE5DF138A9DF2C0591204FEB3D9DD546305FD017B72FCA4DF01A7C1728606EDBA07EC101D7172971C9F4ACE7D6D09E06BF9E8552A4CB3ABF6FD84FD350F60A3E1826BBCBA484D4B5B284E2E1EF2A164FEDCD0D22AE77026C4A6596ABCCEBF6ACE68C11ED108BD3C"""),
|
|
TestUtils.hexDecode("""
|
|
a3426182a616883300b2c714932258a288d6f9d23c8339e1639f0cb6affa7245fcd901acc5612dfafe3e4fff1171e24db746e388f629bf6ab0e2090deeeef36a3b3c610ef0570193067af930c98accbc0d6830173136316ac7d5459e4a2cdda6f26f6509c35d1232af44470fddd0142b6d584766de939dbfa3edc9c905189e0c861eb16667d53576a9d4a7df0073a5d54058500e1f54d3898faaafc08b116336669568d1d18004d33c2b71acb0686472ad04b23a667d6d3d7d0d9e3a434e34d505d63f17b26933b4427931701aa35f2f6864465b650c9a6673397ff4aeb6af2730206f1049febad306ae06f30c856ef643c8c8ae9e3cb249a10a4646f9b7d985bde15103d57630cdbbb6716f41d0b7b1064346ec31907531bd35fff03872661bba13bba7d9a03031ee4943fb2aa549a208709a528555da3a42020a5c5827b06e7c917eb07c02732f7f559c122c545fc36cd006f33bddc2ec1a2dd67a60355c971e699d400110aa001a442fae92e24d05d1d091eef447f643aaa825d974f4b049e6e0f988ece4d510e79db57ccadf9b5e1a564c64b029cd265845d41474868afd6554996e7dbb2b3e92fa5f544de6f8840e841e886f7a5b77d1afe3b29f74dbab86a3f68cf223f9cbf41715e6f1f14b91146b64475a336fdeb668b27ea28fb87321f340c910b1814ec7305e11a0dfd0eac1283c0d0131092267de75cef5b2586399804afe72f7da133d04c02f19c2289c17bf4a2ab1d01bc2830b34bc77b15edc8fddbd0359587fb9316c3ea1ac8a146fd5229f86c38920907d77eff0b1c581f6925a1bccac2d234c52d159ae44f6d93a11d133edd6d0f6683f5165abf5c7197a50827fdaf713eb3bcd562ee9055be72e879849b7e4105755d0b9052885195e100ce302d3372fa4e41e3ab9e48f61a2ca054fea7132ee7ef77b62d61e02bd8acf7bae2b56cbe5f0224d15c3ef29fa051d2f27d56b0057b846fefa044ec57171549c81d7baa27e59e134c28cf6326d49fcbef62af5937d42953bf5662b60729ffcdb8471733c44cbf34765996a58430c02dacb23c6dbd9d8550eea2dfb669e1738fde0c9fb34f0051fb99cee29bf5ffc1ee95419580dc56c9b2118ea80a7b34c1a2231074195f45dd778dcb1426aa7feadf475e065f9ecc00333d05ec3ca0e0cebb2940fd7ee81e8a18821b59341582acc43ae576cf850f8e7cb040d4c4dab557b2a80fb3891669f86a00879c45c73e6a363ebbad67f99df0c5fadecd53494b5872f902e20f3d41e4be6b7ceccd89783ae2464feaa9fec596440fefa3111bf3efe416481f5e739fff33e3b7ee1c90064acfe18528b8ad3a9f3dfea879308521416da9f6131a3279def7f9ecf8a46373352cd14a0765f4e28ea8f313a988dd751d0a15b525c3f2b19ef0d098298014230bd7c8a042afc6d6eb6886e22449a36ade8b5c8e114cd408dc54ca4554f291882272645f8c1c10eee4ee4d6206525d0656867c0d2b4a134a40ea26019897e6f2bed4b325ada4af846b1db43358d140d54bf61bc8ad585715345aa2fdfc6ff62453bad6d00ba9ea11b053e776d72e0bc28f54056c7e0feb06314b3dd0023b257eed796bfd594d2a2b0ef19ed5eedf68a6dd19558fab24c9a751021c5fd964872e4a8eacbbe9406dbdb98fd505870ce79e64ed57c83887edf6ea916b29ad0c1c34d02f115e9a81b76d70ed6bc0900ada79fb5f7dc069fd7fc2f87ef9ada6be01f3e5c2e87ce02b38bb4c5372fe69fd7cca02898618d952c6706c88bb7a8b05a3ac163baf9deb64a0c5523ea486825f00cc298da63274b4d085b7fc6324b984d86d9e39d2cfce97c2e2a3ad8c3c04399e23af07f4e4c8a49e58971f8c379c88258e7ba25f6c6e9bf8c090eaf06424ace3e91e3ae12bd552193057f2542c6bb89bf1d16b7039395a8f8f54bce4a67caf3baee88af88a4a34ffd0d3673710dad8b1a98aa7a7678675f87da138971b0446e868fe1a39ef268252fb06366eb194d1f69c7a86b7e805761ee0de00c7113a2e1c5f405cea7207ec634cae3a43308d6d3caff7a9baa0670c9256fb90c61a116abb81910fdd638075283bc76928a82074255a4375872f02cc9ff13b75240609fc44125d46e8071a94cfe1e8fc68ec03665daccfd0dc385687c79e5537661bfdca8462d3fd86ce26d599f5add12e57c49c0ab1347c2fd967cd62b6e88613051904a975051309d5a43f9782ee31fdba8ca641f8d5a27c8cac9131e33e24bf5a1425dd771aadde8bf0fb7a0b7b896dceba013aa5c0687e327c27106ffe79e545f2249eaddac393a6e062dc296aaf4496c4936dd0365d3d248dd2811a95b2789797fa05e33cae686819789fd2b1315aa90395b0afb2f6084836ab2c78216b27ba6a65f09b23006957522679a4e372369aa65a3bbbb8c8af19039ff0cbd191ba65c0d7e0acddfb468a253f631c4495a808083e945496432a10195fc221535e240fead5672421cc1ab3010ffd3faa39f818ae105dba8d6a6fb621f0b86ba9abb68dbbeffc24b26e55184d4f21d8ad733ef0fecd4c6cfd5a403e551c91000cb9b6a26c3f6a246eace5717c784921cf154bc7fa61da54cd0eb55846c086a6a134716dcc49f44b55994217d5e92523a07a28733a95efdb2c6ecebc6d3ef790ab10ccd113d4fe96144d0e4caac971370d78331fe91648d32c2373c595ae848ef70a5a786c36c61d5961195b8a2c287608b9596224ee165c22336c07643b08d3c92aa5808bdef9c3c35bb3a5004f386dbff06c9dddc925fceb7f10ada52c9b5e100ce0e45fc23869f18ac4b3ca6561f98c148a86ae197d17066da6421f4d73ff4c16b489e84c4b09afe4c1e8f728f9dc4e4563c36ea110870a341632a390981fc1d114052eacffcc06d550c329bf38d7460c51a3ee0342d87157450989c43788b508e9537d08ba1017bcc0dc4c5a8d99ae5591d82fa8b258cec35a1446054aa449b48371db2f04f25cd618636309b5a40b7a32e589c80b69ef5cf19bfad44da6687abcefdd35603f32028fe079c1e541854e5b0b56998b4bb02ad89b3ef22229c9a8da7a381fda304ecbd458c625c779d7e52c8c44fcc45322a21e7a78d896417b513e298700389d0de1a50c7a3b653c87006bff64fd297a54fca09a4662d9710132d16e2e38ff4eb2a4eee0bf9b9d59da5d828da4cafe77262af02a279fc22a1a83aea33f9887880542e274c950d707e766eafe8610b0cb8aede80cf900f6a36432019e4d1f561f33ba1d273573cf1908a9dfe9922804f9e5ac279270b21d3b5edddd51c1fb2e8aa8789d0cd75c672eda3b06686ff6e8c7f5cc3fd67d2fe91aeda8a22e73aa9624b7b18d0060a64d6ce2ec77657b1d1a878672d5bc033aebbe3b9a7a224b74d859d47d89a360e2f7a1b03a4bb1ae92c063ed85d5d60391d9553e4d3776c5d4628146aac13c22eadd0ac57c46e65c525775ed3edbf0b41a01f83a2758aafb5324c1888a284ef0d47c12b15c6c5d68affe6c330110e0e8bdfc2b1a8f2fd67617e76f975a7d72630cc24e98eb45b5e9c8c442a5af3ebe4b3d3809db4abd88e49004d339a36265898c5a65bf5263d062cc9a307563081ec6b0c46bb45b92eade67a15449e0ba26e280fcd403cab8c29ffa15d306285b4052611ab63ea0549e8aeeb037e29cf23dbf5baaec582754768b2e357187343b3186bd6e1128ff92bd7c707f8b5f7dd9eb88915229eb0c8437d715f1b59d1e478b696da3ae27fb756db092c885b6636f6c11abd70ba3f0bcaa6340aff1acbf2182186981e74490f679c6b619522a85441902f9983231c2319a1420a2c3e050fd62433631a7d9b6947b247571303e22121d25c30c130e90b73fcc0367d4b7747688ec709079d9b28b981576e0fcf89593be1bc2868d12cd9b2159244286f46d3c270ed38bffe97bfd1d51e0254313703439c148f495dc73c6e534d05d0041c3a4f02ddec5fe88842b4ee59284a1cb2dbc3ee0c4c5ff17a5fd6b9ece5b23f8f9548cf537c4dfb6d231c0e8ae2fa7352d2c6df9d78865418415fce33cb613593071d83bbc30ac710d2c313648543a762977d43979b5f48c2608a68769b2abc933046762736a42a9b319c78e98be5500fe55b9dfe9976654e95999eaa2dfcc090500c8155369f49f3b9d296db180268de2bc26e3fbb428803d9075a20582e075330aa8d84fbe36417f9a3ffc3204583ff4d2731c27ae4620cf065acce9df4e8c728dade6eddfd09acb726d27a7abf9409a49739f84044d6403f5b9d1855da0daab9d54e2ac26e4dc9c71e63da692f60a755902e9930c21ed5c3ba5d1afeeb892794c5c948a236a2e01066892cef70267bda3415ff51a404207f2f681bb72fc0a14e2720277558dc201958eab0acf7157cc78ef8a9c12266932d2548a559c401cb4c63b36600638a61cce16da6005fe9d59f6a7ef14fb2a4b860fd7b79f0a27b8a7d631075f6ffdb9fbfd8d2764b069f0e10b78605b25fdfd14bfa6825db8c46cb6aa0c976fde81a5929c92240e0b5dd8d664013e561cfdfc59bc7f09bd499aeb45b8623698ad7242808e50f568d830cbbe864aa4bd403dad6a4eb67c33d7db2180d7ef9df51b91bb946bfcfbe0d216673ec34bf2dd72b2656344311191b8b24b263aa6852d1fafbe14b45e803c2b6d0b6293d4f58de21f6ea849f3e8fda46111416eaf6b8284de908f28e7f07eda6d42e4f6196af945fc41301545a848d76201cb84b3be2be65d14425d7cf0822177be934488a439bcd1120f3131d5c78c213df7bca4f92d39bc4274bf0b984fe7d6a35af08362f07250d98e8941d7859fb19a2fda77481d13563eb44b0ab019801d3535ce9ee1b8c24170196a8d42549345bc4d8af3d7a12f66b3dbab325ba4451c345588878c697f16fdc7c75a0077c31b2542407d339a90db740a9f2f3f696ed9d8729c61d296e0eab52a95eb5d3d6f1a9207cecb9b85661128ce3fd6f53b205783c95b11f3d599639d66967729fabf5e0dc1d4e24d7126c73ff941d6d996592cf26a6f124b5a08272b88d6f9f3869b10a7adfba87cc683f2a99e695bc29220b611203e82f67d80ca3275a79004479802182431d2d7d8dc4859820d17c483cd94b0ea11c286fddf5766a048456390ec48b2d5a94d2a59a236ed193f14a9d65f30e82d3df3571bcf7883da9bfb2d95dc6549cd0b9dde70ac082efdef59beb75299ad178cfe7f00679b9fac03adfd44677b8991f9b2da8e3a74b47b4f41f9a063886073a19a43408362497250e8428cd18ed437643766577306975a566ea499ccd3b78ab89382cd5b0bd9b84edead83285a6954264ab6e602e018e69754776070566408719e16ed075d9129fee670113899015690b3696d55b95b15ce290b2a9e8aaef3b869c215de4e1775a480a05be21e2a699717c7c568a755f4411bc2f05800841284939d08bb3bf552c2630f541cbaf3f5e12a12f907863afc72172bc56166c0ebed4e904c05a767dbf47683af7f8b98a16c859180cda8ee3d92b143aad733bdcafc7fd88fce16c39667e9ad26b73a496de9f5065eee7fdf2e7babf2ec58ce83d3762fdfcf44f76aa8c48a32d546761c1011e785fa09bdd5b9b08acf3e5f407b1c733270d495005d5f8709fbc3b3eeaf3b4845e437ba8d2ad2c20faa5c7f4de572ec1357e9c8ee7fa2987529a72572b59bca31467a6b77720acc272529b0e00ef04331e143946287d0ac080d80240d2b31297687f56a7a199b8f49a727d40cd14b61643b6548aafb0d760f3867829bde610960df12851e32c8ad61a507ce824fffa4656e92ab12dec825104c5a19379e11a2eca89165569d0de12b25a9083a355172c34e4a0e26b32aea3ded77f04bd2a6df6f951e295a6544871a06c4554a645b2e29216b3131832b4291230a0f85af29c1a5bf84e38c0753d8bb381bc5414b458c9c5568837885431d5db43edb64d81ef9bce7c20d89a5e574f376600d3e9b356fb1a819b73f6bc16491f7f0af200b787359e5de299f35567888796ae99b3a6c82e2b579c8338da8ecd499cba4a1ea92dc8090487145ad6965e702f3d9ba5a09f32e18a507a2ba1b40342ea2e3c4e02c908c99a2ac2c4a25d08387d8c444f78a4cd6237c047bc605afedea209df85ed0924489209a3da321dbe671041d827e022dd97ced029b73f6c8bb503bdffeb6d326c6a4cf5bd3716fb01a0d3cc43ee43dbe5692049591171209b47b86154d91cabcb955646479ce9d11ea660c39d7b4bcf1ad8b459b4f1589bcc7e1683bb4966cfdecb626ae1379fb66539a3cd5b28e24a0ebd290d2f214307f3d39c64d15e45d5aa17d339fc6a09a14db59e1dc2f07d16c97b117712c468b1beae5037ec65ccd569262fc9b8e250f6951bfaa7ec3b0511eee88d13001c4fa091efe03e41be5eb09e2a54d56b166ae26b4cea5869937801359193aabe0d17313460697e82b2cce51936393b6ce83167c5eef9131b2f7d85893a464a6bbfe7072fbac1f74c5f6579ebecf3fc000000000000000000000000000000000000000000000611171c22282d35""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
b5ddc2872c67aee1328b8becc910a85ebc35da9cb9ac8d19f282096d0022bc51dfd6718ccc09f953319df7a435f6492f9ab11438f6007646030cfe2d41849d540e6ffa22065d712eb7b36a2974a7e566e8672554c1d5ea9fe6a1f122a6ffa98102dd59d43193333d38fc6a1be550672ff1bcc4bcab186df01a9584c52047693c35e998827c0d855f0274584cb09776311470523e6d35eef3771e1b8d553e19f62c31cf3022113314f25f322d6791a670766f95d3e21c2faa57e714b2d8dc03e28d77bf8d6a102cf218c8a4aa4fded4cf88ba4c9558c66488127b8e52cdaa10487fcf90515a5216d0ba6a6e89756c664d31cd38d281ced994a1b1c72369b82c2a49b606e3cec00fb2746ab6f2b53f7b4ae4ed2838e9d7d08f9bd1709d7cabdf1f3f4113f06a0c8f0c8c8ecd0b516b3d47d9133c3ae054262c7190f23c802fb760c02a3dd60b182be708cb158caa516165a0919fb0738f72bbee1a4a270967461f3c707e5e03c76f8139a6976a5602570f3fe8bb15843301a51625a664bb45af4e80f6beb7be5b30a93f1658443aef86ca794a384a8e391a1f90ba6abba29702cade0c31aa199f4d5e01d4f8f26605f4d1dc03b33e269f27aebe4eca4fb85bc99043ef37a2be5fe91a9c273e1e06e1b38d6ed67ab34ca81975f9e1eba3ae888cb339152b9bece9e90d57154f728d0511aa8d3b210142d11de874a12160d7d61d73c176f35f547fdfda27bd5d5ef1d6fba1aa881e7766847b920c49bc389732fbf636fe3d13440207699b0ad309f7ee917b84b281e9661f920cb8289da2a8b9bd17fa75db956461e16cc494c3a3c46e4f7e2df3b5b21bac9ff26930be68c92315ab527dc603ddca5d4a12f4517a20785e791332bf898e50fe3292c4f1b9b9db4b41c5daab37cc8c75f90d5a586d97d0ba0ea01d9e177cacdb3e5f0e6e9287d3f2fb28fc0e4561139cd41266fe6c861785eeeba1ddcbb6c7bc03a4f268e9834d64c555ed30872e8f0b5643efe0f62afbe2ad9efbc4843c5733838ae72006437c254f968022745a49447365f39d1c189b7a7bec75cf345cc62dda809e64209f2302a3942035d0abce86f627fa07065d064428c02d9a48dac5466175ce9b83bdfcdefc9364da1ad356ff962eae2c22d580e915c8a003a62a20fe204a7fb03fef5c0fa56bff205f4e3cc1cc54d0b27df5450b93261ab21f1e056b9bd913f10d5c57bdedc888a0cd8c3f61febd456ca9d6d9dcebebedd2b732c80d6d5a2a2db403e8176826d47d4e1ed7267092879e5a4880ac9a10dc249adb18dc763ded9275a2dc580da01fdd0d4c60a2a2b918f163d91f423e4740f8d92a1422494842b36189dec000118b468456f43f0c48930065472f71810040d4ce3ccb51c800e62e164367a05f80c3283a562c06e4a8f7017b81ef0b0df71081a672454ffadc60dad337f4170a056935aeee88b0f81f356302e8a577d9cff5ca1e812f9ea7fd01b97d4211686206868403ccea209dfd24b89bc2d437f9ea81e1667b09a2e0893fc9c65f99d7a99ac266ab92983b3c443675f680772d7693864e75071ae430ebf59b56d6c73033e6b00476c0f0a596351fa2bad14517671f6a73206d0896712b824590fe2ff7ebc591fa6d556252c59083622067a1390427719e6301b743199cf14471a551e8962415b4c64c2847f76013409f6504238edcdb4616bb5ae54150b339499b30bcfaa09db9a30b612282cfea47c666735d3ff2994eac8dedaea997c337157e34afe74c563ae5997415ca2d1e59a32a29be23f51b0e5d763a5b0151f0abd44144073602451380ee27524dc89016dcbd5685dc34b18a41da3c483c6610abee38055d6668e9a4d5548047a10128877e57a9e55e3868393814e8e44ab79a099b51694b6196daa5e4d7e8442bb59c53c3b13e899727ca79ff9153fbc9e2810404076f07c60537d4ae110f2fbdc6fb8bf2e73211d5ed153589799db063be2df9378a14ba8704770c141af838cca295f33593739a6f94187827032704e716736c3f9b0af684b485822cb77c87c30f2783bf3fa9d4e1ac2201f8793d85e60049ce8f6ad2c4699e5364f3bd3a225b46d713890cf3d1f7e591893c9563dccf566ae6f880cf87d198e6f2ce29cb8683911858b3518bc4406845393f0e7240470119af07f4a5747249af96cb074a395b21f2a4fbaf50a780e688e8acd342ea93aed5fa9256e366506240738adf50369381520521538a5dbc4b73caba8a52c5e8184d9c40c14f5f0fa8bdb7b93b6e95aef7e1c79491c90b6225307c3fe7727f928f85f728a9480410b805496cf605ff284ab5a160b3fcd9c97ee4a8249cc90e1def62ee4621579ca78760b63ffba86d70e32e642cf4d4bfe3e65d221ff3ba11bf8c5fbe3303d94dd464d08dedbbc3b6e9c223dddb17d84f800e4a4002946baa6e327028d7f96c1299f7b3c8d630a0c56df6d4724d1fa14158f48b0b132eb56a73e8861c18ceed8df1b12c11c1009be26415c1ec76752c60bd8e850ec2337437fcce7e54cb9d0725ab60e0991759e61371ee7f3e90214ada3e2804c0b41eb77910a567a775bc9f548d90c51b1c7cbcc13b7de64dd0912c334f5b0beeb47b8e5bbb8a256403a66354382ae881d794e83d3254423816bed41456acad89388babd6b6365878438066cbec43480d713e0a11aa85cfc9b4937dc962b67d9d286453974cc85bf6b85da2dede72d2e42ef6f02e3bce340a0109fd70892661cbbae2a5aee9a17222e713ccd05e4b1671ee0c7baea4930837083fc33038843b95570a190e60fe1894573dc3e277bf005aebb27212fb4c4f30fa3148840d1600a9ea9b2a2356f1d528f76b0ce13c4c0e700f6192518c324ab0ae21add8f3ab29465e4eba6dc40d8c8d0c03c4f9835d4a941b82ccb86f021338f4297ff378fe6873e582434c6da35d9b854db0a8beb1725e3895f333309ad31bb23a4fdd6e6dc323c2f83865ddea3b60d1d1828c816d305494be5fa15df73b9723d454221e9bb262f2671c412e60e1353f542de2aeb5d379f552b963ea65b630a3b35e4d1dde64583b48e6651b4891000da1339e61f5823390df035f596c25d8f8028b2203b446ca4f35a979f9dded0268222cd3114957d087692517ced7dd73304e1a3861cd85ab9abcfdeab0179f4dc4f58351243ef76215f989d73882eddee5c83751684877353e9c4c55d37efdd4e9f8f8a8e01e8910c5721ad3f2d8cab4102dbd604d8b304090e21afffbbcdf48a87b35499441d8ce0d9680f7f2cb147bf4f28d2b3ab5574a5c51f2415c34fb4fa9a2e97badb824ef46753b012c439ca057768e7318b1bf1c7343955b6a8eb434ec62a236440d83c985f47692a425619e3d6f197c9b24b3720b20dd9bb21858d14e00f577d37b1030e5c39d4b17a01007c32d4fcd982ba4821db371d0bc9a4e13789c8f7481f9a687af04a91a5657a190ec75a12cb973c6123dcbc728d1bcea67afe1d752d05ce6fd53aa510d541907276305066500dfaeae4219876cd42e039e009ecd79acd6cc2a3e4270f1f3b8d9615c0825a13227130e3fbf4b4209ce1aad976a7134ba93455121be23cb7ade9486b9bcb3414645fc1075785bbfcad4389b0eaff8cb54d69a6be42abb56ee6d5a2505fe3658cfbca5d020f824febd71baa578c3fd67e4"""),
|
|
TestUtils.hexDecode("""
|
|
D46F4482D570F26C7E9F0F74A354174CA145033097CED3896350DFCE8200CB9448F522B118698DAD51F6C672E1B12A412DB6B7B95CDBDAF6205DEB631E44634412F026CD95440258FE5F0C72C5F3E64FB3FD13E545DD856EC2B7F51AC28C0D5D698C66C700DD3E409BFD96E14A9DAE1677ADEF2CA2CCD178B826AAD3859E569541561073095EFCA329B5B216563D956D8B7BB918224FB479FF7025FD8168F54D14ED1FDF0B399130C6117B5645D0E8DD242C3C7AEC6A8361361CAD9A8FC3B5A40BF7E73F1BBA9AC7F5A583A5B0EB95AD0AB4C1360D0145FC2C3A9AA50186D649B72B41DB7EF392E663497B3166AF9BD0C1AE21650D6CD04DD36532AEA0FD1071D6E9554CBB575B2C1ACEA3DD4E18615FE83AA211F8AD330C78FD32D920ACB40627CA4AC80F840A64C019124079484B053F525A5403383C21B164D0C6BC1B462C0E1C269A1EA0B2438FA64934CEE47149C4EFF566D9C2234E656969C1C89A0B0A4DE124EB920FF534B934172686A18A1A269960C725940D3307B8A913D56B78A6CDCFD559FF97E225B61AFAE7F62B060E7D3E2D4040D8D9233A24827434AB4EB31B0D528CB0085953D9A1A0FFB748588A2DDEBF241F93B41F5C856159EBBBC6571AB12F4EB534ED3C624CD3F5F836A99C7E6E2FFA0369654A5C07C19D44BC9FAD96983660E4D6F95DD9C38D84DE11271D23A6158B685CF050121425AF91C6FFEFD0B2061F54CC4393F99857F3B9775F81B6526444AB705F9CB88A2D276AF2F530B646FC3D93DE7087EBC1FBC7F9A8DB3F3C8FA186F7B636CCEF99FDC4532E54F560519C94B79B1158D85BFBE23D4F36B64F8056BEE7558252DBB3D9A43748E2E6A338162F5E2BC0934E89DC79091180C93D340D3615F82E7780FABF782E5FE2B5D504F3BD1874EB5DB76CB616CC034D9B2B080319FEB8EB97F62FA4498878FF049FA97C56ACACD2414E0BEF018F25A6254448F02E64815E525AA06AEAB53969A66D453B732891E31C36679B5C0A4637611A5983F21F6D4ADA1DA5E890C909A9E968F947C686C17EC73A0F9BAE5C7BF7433133F35F22D2A0B40CC135A7591E2CD216F7D8018969940EB9A5C4BF21579C524C41AFF5DBC0E141FBD02F1BCF376DFFCFBD06F9CD4384E128CF1F03139C853CDD04DEC61EFB8F1DF1A6450E4ABDDDD8A9D85BA79479562A08CDF06BDDD2E740DE7AD9AD1016D72A649A73246E8DAE183AFCD6FBDC64B6B6B2EFDDF525F3B764CAB39BF8D617D47FD3380B4A30081AE6C3165E9437B2F37A73AFC5E596AA626FE5A32D8873712F99910DADD0DE296577D4749F88639D07F83B0F6A05B1668D8008EA749580EE5A629FC2313FAA2F8ADDB5764B242B6B595A39AD76CED4CE5BC34C580069071BED1F98CAF4BDF740A5B1DE3FD30C29DAD808537CB16D0EF22D937F297F50E1681C898375FE0374ADD6EA1B84C10261DBECCCA8E1D224A4709497CE696BCD2BC1369F4135E815A781EA26A055DEA28AFCFDEAF6AB1117085EBF6B8AA6845FD4763FF9274BFE5FC6E377B9F9DA8263DC1F3D53C83F446ABA5EEA4095AFF91F3BE30022B9BBC2C74FC52A3B15CC76F29E541A84C5BF42D499F9B5EA134E24F01E8D866FCD20B7F7A302120B13DE636F48FE8EB99F17ACC153CE4371B266CA61D13E19793CBEF12C0EBA9C728096A3DC6A6750DDB0F52E3807C22EBE4DC6B2407593A1B7BBCED799DC3EAFCE50B483818D903765A63FF572F5D4481357CD6ABD89EC260417306DA1CCF71DA568240D4FD6858BB7833B2C9C98B9E7286FA491F9E318F25D0459071848BBA0D3DB8D2BDDFCB7B8E9C64ED67B4A2B5E1E49B55C6DCBF93394010A078E6F52065AB777C7F6D831DDCC115CF316ACF3680BE8766B4E15574AA383030EDA83CA45B965836FB2374695B50472C4159CB7980FE48B58B40C6CDD2629FE3C6DE6E13ED6728FCE45024C96402B78BAF37E74A1C071F4BCC2A1B84933C872FFCD87C02DBE65438A3E770903A04DF96C569FA69828CCC32D13A0A419FCCE454F06EDE43A97CE5A9A169C6E849F075C66BAB418791778ECB2C158FC19FF5927ADFCA90BFDB3B4216E19BE11157E858610BAA373237B42F811EA97EEB93D735828B2ED092518160A2ED894BB108AD74AB0113A8D5882D99A06CE2313BEE3F902D5CE9CECC835974A47FCF6FD1648C635FE56D1B2404927C49EB53FBD625E0624D5AA04D6C0D5A082C37BD67F477850458B8672C408CEADD9A55CC268B75BC51D7B3D75668D52BB701BD980ED22CC20611EF618277B82624A1192287B46BB5C4468F94C68D96F3CA3ADED476A18BE6CCED70924139F2E16C8A54FD6C9F6695E624499AC8E9AF86A430AB856924A0899E75C1FE4A51DA0DE1588E66044B2465C04809272B2A5C8EDBCAE42B47E439FAE06938810526DDFF4B64C515787B41885BE369A31F90E2D6F6C71528412572A67DF6E155C3705929EB28B80DF15345E0E32540BA9AB7E1D1CF0C015E50C9180372C678CE6C34BDACADF45B0172A1D3082565E16938F57CE6B55D9A711CF72E362A2ABFD45B7B56D48E89A0079E973F597D2E457EFF423E229AD439C3193C264E0BF9A8A1FB50266AE4E0BB671817CAEF10A3BD43452A2FD2DCBB2481D63BB539E0C81F6986400D3A619AA92F250ADDCF661FFEDE7617162B532EE2088A87F58E1FD071F5D720FF1F72335A5B4582F1BEB3BF19DBC9D51A62CDF68A855F7F6DBBE5FEB226C9918E7FFBC8A38079E411EDB44177F843EB8CC1F73B9765A0EAD825B3C43F6760B5F03BB75DC7469701AE555C2B7037952180255612DCC9CD35DDB31F3A9218397E1924791D29C410D2E4C3F5549B7EADF75045EC78D579EA7948D121E8297BC5A3A9F7AA2E2EF5776CAE3B9CB73316170F9B48B657BBE365B352A8129130BF1E718B386AA27E493016ADA86C4B3D3D116B7252A747FD50DC14AA28676F1C25150A86C9F4547189523280A3A897F80FDBBA073EC645C9953B7F8CEC3BD08BC0CA5640545B08F728AA38A860ED38C068F0D"""),
|
|
TestUtils.hexDecode("""
|
|
4e4fc796e18a11fe191e08e2e59c8864e0040297897b07d4f62d8a003c50f26e7a6e3d6aac87899b27b308c206efb435b7d48b32a6384e6c733ff5f47bb86ab493d403027cda502831dee50a116708aa01dafa83fefbbbb7aa7411ed417620ce6b035cf27cfa6ad1cbe7e1979f024a436a39fb6a6db40dd21ec16b90a42f61daab8b86efd38ab87121c17fa77bcc761afda7d9196de6d6e4a9b45f32d9cc64ba40aec6c9ec42a4350f841c1e280d60fb1382540f5ea25ad4e7c72333d4a6a4c911a9bf142062a50c2c7f61329ec502e4b4295409392facedf088c321929be05caff934dea89cf0f13b771bbb7832b956aaaa329c666e5582d3e4c51c53bfffe1502559c542f5cd0c6961f1a8a6f4db4e109818519c85f781fc8b81ad4db1a2444016523d79f33b9deadc30030a453bf9c9f48b8bfeac3a563038544141ae621961de26af46860e0d80d4b66bb47607a559dfc34cedbdadf7903ae4271ced072c49c8b91aefac658d1482c913559325be77794481ef2ee6007b643a27a3eddcf29a89237c340867dd3a8bdbbc0a1c8d07586fbc8c3bdba699f08afb44d728376d12aa7547912fd9b8069d5d699773e426f6aad6256853c65a896b5266475b283c17e60dde89a3b79f6b8c262d418b219a9aee8de0718f171d31c24a632e0f9db87dd6ccde3e295241a1f85e439f09a8e17a8cbc8d2e2c5f68147c3cb0138a6b386d42652efcc71315ffcf218630f96734f0c93d0f7ae946a71ba6939401b7d60f9fafab00021628408c3cbdc4c25e2eeb9af29a16871843d124551a4437af15a6042a9b2ccc227190eb7b22eac650a5ff9bdc1bbe867e0ce4222b2ff68d042772f7035ba911f2c4e3f8aa094290584d3902e4e1416f11c313efe437128761e2c9bb160aa58be7f2e3b821c128d69849c6fbd2a4ea4662477491e48c482051ef8f9e1c62fbcb03ea8fc25134e59cdc995575570056cb57fa0460731f3a82af5441759ac4f7c1ab5f2b2f5207e9d1350e1d47cf338c7be3aa05bb9ea4ea2632eac008ec50d7980d681bf91d1bcc583332c949674cf42de62632fcfbed112da44fae1845ee2490801528dc5a9f14f226d18db70a744e5bfe097ae1d17d6e557f670998317d64b45be39b9fae81adddb53aa5c451fa9d525d8205adef6bf5a500adc87a0af2069db0da6dc56a0a8807cbf19172bf8f96992c3c0d2b4e83722463e6f6a702abb058c0f868e9d9080760f2c80a1f85e30018642c3c88b1489145de6d53d27ce3c9f1765dbb459e865d3f8c05afa507d6421f303080c77647486a0611dadaa0a9a58d83d0859dd57b492c941d47f97529d962863821455e52415a231e3704e8d208c15ccd4a1e5cd0c2b434bcf9f82495f0d94f3c91d1cb74cf5da019d0c2a42fd45580db8545366a56febec804a944ade29a2cf87fe5772b3c969495e304c6a7ec148651ee93e2d894342c830849db83f40d9908d11ab2c919704ad55c74aa968501a38069ab310945f0dfe253d1f58fb8dabea9a8160a9fd2b5a0455b6d899a22386c8e814cf50c0aaa35e4b0420c59c339b84332047c9f193de73a9cdaa6463ed2bbc81060a36dec8b10f002161dc56f2085ac03475a6ed6f7ce9695f8a0f4fc044d2494d632598d778afe58221e5d435491ebdc30c2a719f90ce17ec6aad77df11b50232bf1d4eed0195765e3d1c636ae13f0cf95984581fc24a699640ec5ec9374588f8d74baaebb831c219b4df35b73eab7e6e15bd5a17a2803152c0053f3f3aa8096facd15a4ba1d2e0d90300f548180cf9b9ffcacb0cab9d6e4877f7a63d2ffda4d9697149b61f8ccef1daa976f92889c3090c7fc5c69bd87cd39d02d2de8ce16c6eaef9ca623872cf4f91fd426eb23ecc9457ff881da1b25373f1f6959dc4986cb0fbab15f7ed3497896621dd6b45bda78b7ed75c7d38cf7e74443a53ffd456ca84ee9070421b796285e023b5165020d3dec38078e599ac79ab1eda37a09b67d4e20fecf31c0244846fe3ad9b5ff9ed2b2f1400b7647a1a12db22bc24a2a5f1becab6bbd4a911e0faa4f4758219c19d970d07c90efcf8f3de432f526082f73b4a6e6b9b048e00e9887c164a62f3758b8b2a7d0ae30ade451fb5b405fd3a7aa2454a70ac22af75b986e03d8de972814b25ca0ffc3335206d30a7b748a10ea20149477610874348c07fd45ddf69c65d1e1854e3eaa00f6e6e0018c7238c7c311285f1ab9c876c52d212781006a8300bc2ce4c3729121b8b2edff63b99a29a8bc8166351b84ad61b66620fc7d0d5760b6409e42450d5fe58ceeaae5abfe937091d2d2d022057b2bdbca1ff2c6f1413021611e09b3a79455aaf2512c6a3d2a949e45db154ad328ef646db243a3242440159f05ec72ee2f5cd2eead4885f2d6dfe23ddc70ecccedab451645e61b17e88cb39d6bf1f1600b2272e3fa523ee9b570e515d59c8e04ccda564ed5ac3651d206695a0b8eea30a097bda798645d6ce20164a2cae126154fb5d50ca5749ec608db68396d9b6ce620cd8d78b701d6f9dfc701a7900db628fc9c25f06e41a70ba6e9745c4be3c0c9b0913d2c584fb2630582cfa1d74fb598515a104423124ed855a9a900cd6985eca4fe1a921a43188fd87cfa5e9defc046000641f58573a70222f6bc22462fb959df93d1d5c2a2266dd4bb01ba465e4e301c26cb9f49ccd87f92b5d92a30c4e7e4583d95a38ba2fd2fda90c8beb60ea9510a43608b817a51b3c5f05275dea1a857e581cde0a5751a334c9e233353a213bf3f7fc38d6843c839cc06df3c6e76b4b6df73c9aa90bc24196f9668cdc2df584aa10dc8ab41882a532bfe758cfcf16f2e6d0e7ef2fc900a3e5f3e261b4062b1fa3aa49422c7c6baf56d0120710459b949ce7b21089c02a14d5907ffc10c53557477599d59d83f368d5ba349c3f3693da678f2764dc4caa11a669e5b703a97a908ea7abb18175b1f208e448b1b05f1cb3deba9b4f244c5905f4659c51f0152aff9cab8bfffaa61a98150425f14acb154e4db9aa03d73860973750377284c275405d726dd615802c8f4738799fac49515f8c04a9b2fd693d083d3ace8b5e872413767114fcfd32436181f30c25621bd6e808919c0abc67fba98af581aa4383133b47d7d8fb67de035f65d507aafb8e1908c8a3ab305b0b40ebb2f70958cd69ba48c3d0f94807f0159f3c3205affad6b2e48fdd54be8e5a7e5bfdb3f1599f62a52c11819b0a7852a3bc1a424596c4da3b1ea7e6e7989d3c403979263424397ebb5b5a739137c1b3d1566ead912214341ddae970955904d9a5e79a002e3cae156694cd895873fa5559a7a9d21f090ad77d09471d0d00f3ea2238043fbcb76e5ed947a3384b05b838a796410b87971f95910bbee1c6815dfc9b3752382f980d48db75e28ab8efd094046de4725c802e1c3de5fee6503d383acc450ca7d637a1b5a68d7f099ded08791a3e845b0a8f6dbad10395b76745a4576bbb66fd6a8750a83616fb5dcedf961c2aa6d90d602d0526974a93ea30b26b01245c74ad5d060f8cdb3476e2a6c155a676ffe0e4939790daac867517a48271501a702568e7b349507db9383f6001c596077f82458291ec65813d6d7306e8a83c36d76ccf76e7531823e8ba7becaccfce8ff2e25504fe2cf86434d81a43b28daa7d479ade72e302f82030e240bd61a52b84b372d460d606fb4b2f649bdc51ff2cf379274e1c6bad82b5407516b792d7c3cb6545557fb2db306945dea8092e7ba6d033afe77833375214c816a4c463374cf36cbeb77a12ff095e9bc4631a3b459273bd3494b1cd49493a712bafd08c6a4d2c866958fbb773eed52f7398275128622b7436a39eb724c28d70f55694cf22fc3ab311653fc7c210265fd6eee872add33250ac495a2f54c9bb856d1ec8704c1c9fe0208a312ef3a08445ce3e9b4db2ea1c4b1ca4e79aa5ded13ac3c7fb69612e74255e0e6cc3a063d28b8e883fcbe3fea5db704e674497fecf7ca75110199434d79ed8102c510d732e612a18a8ddb3384b60f19aceb88e4cc35cc4af247edde5c8b26101db84dff825f9878761a6e96e104303441b9954091e5406aa9cf5d8e4010b4c075c374cddd31f471f694b3b9191a1f3d7e399693e235898bedc55628de4fe245e59fb02ca5fbf1944ab74e2783d9c9fe59f0e6f0de1b2bd70ced8f5e87c732c82bdac560e714546afa3836b73ad16373b72eae416e31b2ef999b2f3fd13f6f52deac065d0de6562cce840ba490d7fd1121d8fc66a53a27d3cab9db374e5b96d44f64b11232b2859df9468286f268bd4f186d434ed3b3c807cff498d1140d7d4b018a03b7b2b86be6c6b3a76a49c94a821989d2372744b1ed2e93e6e978c9cdd5564104d6ad141415ebd06a2559887af6b20f6b664e0bf7582d0dc1ed3e66661ceab0533f4758ca9d9c20211adfbb18a7eb7ed460539a48a131c59ead08680e8723276c1926a35081573d4e0c057457047e0a8e031861e5305e04c0619a06867be34f58200e4504919916c0f85945d19c7d2b2fc20af7c058e5f99fcf83206607f561e9619219da8867c73c933896e24f55363c0deb0d258c3f05c3ad71b3c03e2005145a6d7aa4546d53dd24109f20f902f7b77c8c475538788d3c0d0cd7cbe07706e144ca238c08b3f95672b90076ed237212adac8751d335320d2ee0ae94e95bc7f5c27af3c8da67b8b5d3630c7c6d006ae3ee184b5ff781ee470b7a2a9fc87f5d64187538100fde4bbd67be7a2f9c25c4a6f8e0301595963c280457395883a80ca695e98af29f0ecdd33dc3b417d09d0b2d01c5e074cc1abaf544ba9048649525f59ed02df6b9baa0b61871c4605678124cf5fd1dad07e892d2b8c0b14c0a9bf031493aa304bac36ea200f8247305394bef54f4608efad7435ef3ed5d5f5393225587e1ac3123dc1d92ee383e17d74f0ecb1bb025fdcfdbe7f2d41d0708f1ad2f766ebf69f4933ec0f8ef6f65abed4d883a38e0127530e8fd6ea36bacf454abd510b1ec49dc1d3bc31bc7d2b76c949a24cbbe7f676ba4677e19198d86ce72628e26f56b7c595cd07daaec87602c78a7838ae0d7d03a8ccaa8f90fc2f9e4cb9555d096bdfeacf4619eb3562d91a5414d2a5ccc90b565453f03a0f08d4ab41e6542bd2c687f62a9f41f348a7382bde0561e7c03700b0102962314b014b83980eb887783858a0c2e7818e7c7435a02c21a004360f29097eb414eed5ad78084a1f3cce2112639ec7f9ee6efaf166b3e31aa4af7925e6866743ff8c22d865f28ca97e47a3c979d0c2ba32eda8f862db63e07acda1757c8c7aa4b61d6011f5169f0fed9638b3662af701e486fddf0d599892d4215ef4252dc3248d9fd9f5ba3b5fb3fdd9ed601ee2a1b2192a5e01373441004841190d4a3b44eb80ead8bfa9c541939732913eae7904374d288645f4d5832691e338c82e2fc2ced10cc75e353103f383cdedb81e22ecb341ee19e400451ad3bbf0d10181a796c3063c66b1db825ea00e197d7b41558eb05a18c8e2accf0592a331055d5d09e436983efca0c334919d44f5cf729a26dc9c2abaa4c9086c7c0bded5814de50b86b86408473172e0e90d5d32fd6f93621a37abe618ccb7dcc2df0573d4006bdc0d832156c82735bcfe95527dd6b10e71f38e8b46ecddaf6eb7175879b7f843d821c7edf653b776cde1d389db91c3333a1c733dc45ead2f72644e125e4e2c7694dc4a80b4bb594cd052b470afa7323c5d9de044e9de8fc307512df126e794fcda65d4906ccd8caa5607eb203d4d183569d9cc530bf8db3989b331c7b4372ad0514614de405634d8cd1dc603189bce42e53584dbd7412dc3a7c9fed69f194bc753f45e24a289db30970a9a68245cb62196cd8a36a02dbed39edd9c40f4f5e6412ea5d9ce4d92505112f6dfc1fc46d0e83916693a35e01deb29b5c0d08c9ffe75aabcfb9af18c35e04611429e52285c5936f782c11f2b849280f009d83911bd6ed58b7c0ec9f8d822a538db8492e5f410020973536cc460861e41515c2e137d1f373e6687136a5057903e1afa8aa7700d5e39a23be933e972dcb1cd67ae7edd452dd3d229d957c5822fc1846175d48a5dd25adbe1963048bdcb5ebbea8bcac5498e7d805a0746a95f6ba9a8386c387d4ef863c424d62276a90c847e9019eb752ac6d844e0e45d78aaaaf567af013c3bd313ef23e06f4fc751537561ba52f7ec15cd460d8ab9ec917e1e33f175c3c1f38ec99a09da921ac62dfa458ef2d0d15d4669aeea8d797ea057ccc86431b4010f56fcaf4e7894b97d542bfe0321886333608e9d56674c8eb885086e9f312c6926713ad129c6faba2b764e4646500b72ad52f4158a071e0c0697dcd50bbb17b4689092a36bca28b1c6c02d39dae78e2484ff6b00ef8b5311cdfbfd061884d23dd65d1b0ca4a9aa491939e13202b515d6c709ed4eb0b86c4ee45484f84b2c8d5ec485686999bcbe0e746acbce53977aaeaf400000000000000000000000000000000000000000000000000000000000000000000020c10181d202429""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
dd746786f61c3e55ab5c50adf85106c1e6b427fcd102ca6495b52558626a21a4fb55fe9ba5eb91b87bce568487ebcc93e0a21fedb007f71d08cfd354477e9037e89d2a29f95069de968d619058963dba16a62b6dea9d773f7c1c269d889c622240233a6a092118c0545a06ffd50ffcb1dbcb5750aa4afd30458502c0d0efd753e7c86819353c71287e31de22e48a98e69c22cd25875844cf29e9a3e19749101a7a0dcab9daa82954a7a9106e274ba1da75e46f9d80ef302b52da908eeaead2fcce93be69c2c62532f0a666d6621a616767f2397973949d7b434773bef0a03c9481bf2574c225b5be10edee03c612dfe8adf07a5e1e6abda7168e04d128aa900cb82687d5f738969360b03626043946caf151717d27a1d3d0172696b9ba476c215fadc652d25298775fd4d7d3e35261d58d081d5393851b955b8f09aba98889fa54f78267d4289043a041fe871521e7f6518ce67a0c3e83ac47895a3fab018425a0532987855d4fe4a549ad372f1aa9483e3c6fca47beba9e2e217d606684c92f56709758f3da75929c37eeb99c031a9b446319e79f07e5a676275a59ad658738634ba8b8a7f8ce6d29eba2889c6d2b7d1914220e60137eeda3f6277f1399677c149fe6cdafff59fe1e31b38c863ba140e35c88fe8e3164b9e0715ee9dcc0815a4e1b3f4ae5b0ef18b1b76501f05d1304ae1e444c62899e74588cf9a262ebf2721badd1f3b684f56efb78cd38845dd3b0f417bf3b3157464b96c04946cd825b2b02278cc88173b7415dcf35ef6948087c84fe130c5a0b28cd6b0c45c3989050afa72c5b406dd2dc4d6ecc65821c716361cc8735d703073c50536e7aed7430eb35be8ee3d193812846ec860b9a0d363b83a3ff8415e2a9512a09fe671945e5b32702e477ba1870a53abd27544af0b431353d2f09f323a6cc69ccb5541da3d29ca3d6608b98640bbcbdcde5979b4d6b7a5b829c10b891f1b4f49eafe6e7464d78ec377b85290889bfd5cb5aeef23c9d6628834813867b7969b6382b9c4a18d81723c8c68d983009b03a1a8c269030d8eef2f84d5b860e8cbad943487ef691c78027e41be206c692e3214a13719b45c2273843b042711c58ba8711d31c0e6055ac73527de16afd81ce41a2882633a8b03fd975c3579fe4beb04fb6530567f5985954702e45734918adfa15431e33f65e10b8bdd9a7ebeaafc57562b47b1db5fdc8436f07c00d1c04d598cb6191c0e1fbfdda1549e5e0fcea7f27b6d4d34296eb39958129dde5b7e61eaf7440a75c07ac5ff2c3c656cb8d424dd992914f530984ed09c62b067f419fcde877e6333ee1875ff5188c7c35921e2e803f3d6abf93ee58326cce90fc22de31640c46bb44de19c20d72bc7672d39a02025eec9010defef580152c84b3763227b1958e2200216e9983dba36009ab592e2a2c9a80084a3595816098e53c424522fb89c154087e8da923672a3a9f3ae7c5225cbcb1cf9b0eed8bf98633da2b4bb5bbced0c08c81fde4156c9c6a5f8203bf52ce662343df25b5dd04c9fb0b814603274d503d6c1c335f71693830fdcb18f14e358d9bd49ec412201713022e00496674d43fed07068409cac95236b117943822590a3b756d9af2051ace8ea5933df1fcccacec0e291be9a4c65ec0e2b30a27768bb41eff2ee1f862ba7274f0a473125f9182461ecddfdbfd8fbe891822f088659acb0f1f36776ba219c4bf07c2a6ff9154f98c447cf0292cef0b698cc91173f5d94a629db45ea1c1ee1de5cd4b29630756fbf5b5ec7afb33dea594d45e7d37ded62efcd6063ce7a33068ebdeb4c444accfd8915bb24eacd7c5e537d4bad580b87a6273f1d0fc76750df29521102fc83ca432b918d9b66327b661ae03363df65256e4d642b55484dbb5203223c957940d3b059c822aa036d6e77178fbbc54fb020df2e81296ae6a7360ac767e2e88b74a88830eafb203ce5837e14a083c46de3bce7e0eecaafa5e7de831564191a8b9166c36df7d6a60343b837aecb8366de91509b54d973c9d6d8b5921a7ded1f2e431fbaeba893d4e5b9363d4bd737ab270cbb2c6d5655b8dea2c4a931a719428f3e9f905e03d885ca15f3d1647cc26a6bf91b7ca400eb3ae4aa03445bce54634cde581b471e3c03040413a7ac5019a113749918c1c8d24c979e7914f677f5135a84fb0535b6781e5bbd96d7ee1cda0afcaf28b1d47ed240cab6f2388e3c826d34fc13adfca7c41d6eda4ccf7021f2121f16057e70a1a68c97943dee4260e783babc3377a9a4a73a4393ca57ad398904f116e33fd83ee291c92602696c5b3806bf5898c4e56216be8a7691cc80c2563cfd1df4a06e437465f8a155a795880c61de03492bc9aa3dc9c6249582ce894b7e55ef06376da4088ac64c4bc227099c2ea30963f99ec6c7149d233276f15f2f0e21af7fba63c8caf54bd96d674f824862417273cfa7547cfe89692ce254bd6986a1cf52f480ab6f4cf8edfeb676fa4bccb0dfb2ddedc87c41cae31c5699a2a6cb413434978dbfe44025a0294db796a8c6e892be55220fe5e2be391366f7506f78cfbaa16f7cf43384182743fca7861a3d4c7af134037e297a55a5f1abda942dc1acb5a4874e5af451465a6dd2840545e9dc9539fffbd34c8db9834e7a7a9a5dc368c80f33ae01ca4453420dd9de645b209c8bc3dab783d7ffad5da47f318bdddad918d4b15608e7681c695418345bb64f67f5c1270fb97708b39973d8b4aaa2dc9c66efbbc6bf7239d781bef6885b8b35f11ee4028dcaf58cf8e23ce27a1b0426087a6408c43fb97ec56565d7c9fd7291ec8d24ef6b6c857f5f830d3a032b06a89f2ff23e62ec34beaacece7d4bd2ec04d70a2586694e208909d0da2190a03915b853bfafb36bb6eb6e9b8386f7d1ef8425d98c0d2af53f50cccc33a7fc4c8422e202038e320af2edde374b80d310f2972cf1cb80c279cb55668a298c9fc4489dafd79361aa4368c8e411b360f5c40eecf727a1850fc8522b210e39a4872a3207f2e73ea761e235031a1c2e33a337a6c1e1e365379fc96c3599bf8ba1af7b4b1000e7b64ead57893e24564201a04416bccc1ebdd8826933e0d7ac15f0ed8e70939c9660d0a23711b4ec8c1659e658e1165d2eac42f99751b4c0c2ae1a444c0e61441956312e279ae940914edad7297480fd44ac29b6a71f97eabbdb7090c3cb45e4a78e223877867227a9dcf8f2476f92b9329cb674b4bfa14079fb6b0acb38ad69dfe947d13424b0820e7860654d2a48dbd09e8d29d2ac1a51a6c1b300a536ea30aab4e26bbe287e47b2601a5822b6aecf3761907924c0906a1f91649b1bab2ee5e6996515118dbd0b77016c1a5622496d2a22e40f66be9963f6cc8f7c85dfbd3402b77b4ca78c59c494ea8703d5a656732279add7f0350bdf0baefa88216f9a09d065a339fc2132a07eb0019ef97fd0663a4b68ffb809f771e95f279f57e3d70d0bef7859ce3f22facd32f4dcb1787bc8a00f0e547c9d40940bda8aa13455e8a82b0a5cf4e482aa422cfe55d163d638fcac3d4abef3278be141a9c67d1588441f5b8c5ccb5930adb6d323fb086834a1cb5c6d2feaa8677e22cbbf992cdc742af799d7d17f0b30bb0f36d6ef7ac3fbe41d696d4896269a4c64825efb9b412d6fe4b3f3ee1386f2b5f1750"""),
|
|
TestUtils.hexDecode("""
|
|
78A2B7A4C8441C36E0A9831F65D41773FE6B81B3FA6259A320AB03D460D7E38F4AAB2B93C6142FB0F9584E4D47074670B07F3CC4513675A4367EB8F7F4168F2EF7CA26AC45C8F23B2FD3E970068F21D9A3F7EAF005DB5A7157715CB94F5E83E3C955DD68E0EA689B6F419FACA7CD159237085678FA5883D5330796AD64627CCE7F913D1C2259E1F970E44988B08E78ED1EC01CCC2D0274067100C1C1E3D880B9CA4F3A1FBB345354D4837A6E5FF4D5F5C87985E51C471EB9B0F85075ADB57DEB53A87D85834167A4A538134CBC24FEC2756F7760C3D46248D5BD6022D8F88CE7D037935DB74A6440DA49B97E8FF376101B296E3A9D4D22E70634CFE88142EE5FB6A33F323519EBE3A915AEE5BB687DA4A5E264C657438B0F6AC977A22D0E56882F74E70D981CF37FF0C57D285D8CB07ED7FDF6D7CB1DD39EB0D84F2999DBA9273E0B716CE754A29CBA2FE32BE13BE8B9F2117DD7359494A0E0CE623AB9ADAFD3F15F644545A39055D42C6C5FBDB46D121308D649AF9B86A350B70F77A977C8268FA1E04F4EFBC2C95A2D72BC37E558F0460BB281D33F75D2AEB240086CEB8246E8A44416A5B31EC58AAA88246D355591BF7C622CBEB1CAD3B785026CC04C73E352DFF28D77186CA93870339E132D57B11F0154E0CED426DB31BB2E125C5635BD489B52C5E77593145D3100E48CFC8FE6975FC3F60ABC7FA4A4D9030A2CCADA3854BF9AA213EF11E2F85E9D4E79CBB434C65ADC378F8A7DE33E66B4F8588B73FA7F79AF4130554173975280879FBE0A59D25B969FC45AB20401CBF85463A83578E63D0C8324878F5CFAA191428E7EAE37BB17A18D0459378CFDD4C8C0B23B1429950F054DF5C67174E99AF9FCE6B0D8C98BAA9078D2CA87EB8A014995FB79F7F49D78F2674839E14C8F74588B45C28E4769C439A930B2A187764D87D71200E841263EBF74F7428EC554C12A7352FD3912D95C96E4BB1D325DECEAA9D6FE360DBAE7AB897ED467A300A8F4C6630F8E721F24860D1FBBCFEDAFBD94DC9B4237B91B243A01C41D5E98E67B52B4A8CDF0F1C985EC0EB85131F5E970A6DD6D4E1F525D9D94530157F70B333F5E50B1B95D569A012ABA959456AF773B59BC2891D745CC036D06238AF3F34081A20F00A831422CCF6E4593EB56CAA3B7DDF44B388CD54E5EF9E3FB8A260847BEA5EB5FF9665530A4F4B56726A4C5E669904A933AB1E56C020967FE61E72185D56B38B03D343302712FFC1DF9D857C6F744E3ABABDEB3F65628932D69C65FA112AE3F7D6ABD2B4C3CF572EDA73C959637D0C5C188343415E9A26E698170F8E31CA45A8E6E8E96BD066BDFDFF49C98C491149D61AA7C456D3DAE0C017A32B81CD5668A400127ABD4316F3DCEA171C3F6A3E99B398CCD4AA7E45BB51963C82C43398050B8923CAE2D4E2A2FF5232AC8F2C770C9A775F29C261E1C7DAF54F9FF606560F869638B666C90112B29F469C3620B0912622892A432EAB443F8A93E3E7953235EE78CD3FCDAD3F1391A2487DA621526EE92735284C347853D5F65395ECA2B50B0CFCBD988F99C86B5AC56ECB82813A93208096ACA04F22AC015CD9860889E9006DDAFEE0B472FF7FC3D5677EE089B0AF7C6C2FD5A322D60BED621B8F099C30C2344F453320B6FF405639CF764B101E1CDBD312495C2D4FB30E2FA7B3C345B9935BB28EFEA69C829EB57BF2E2E5E42B8515DED4C32F9C84C33DEBDFB345A4BC592CA56A769533FBA0A631D5D0E07DAEEDD2FD588FAEE648B6391422924D28D08B4CE36084C20E827E6E73A97852BDD7508E1CDC1630094C9D3A2C8517A25A244FBA388EC7DE2CFABF139888EB7372E2BE3BC4FC71788AC3CBBB3EA1CCBD9616E76F2CEB356C13257A8E5490F3C4F7DBEBF942BDB941937C956DFADAF3A78903B49C5DE34F5EDBF0E98E3E04E51021B686325955C14AA335427C4A116CFCB3B89349B1258B8E0E354F13F86C86E5E8EF8F57D7B7501C5D75B1D9615D942B04E1FAC4EACE0FA10E6DE9B9721EB0651EB3C9DE4C61EEAE7D7E17C0D699EBF7EEB122B8C1A599A2CDCBB9B665DD9A653698735D5572EC379ACC6A8470CD7CC8245F871C83E6FD92111F5128A9797AE802889E4362104775CDB69FCF37AAC22EE4532FD0B5ACFDC4DBD56D9CE8B9EE2A8B923F42FC512B54204CB971BBC9677EBC49D287A3F68A31DB8AA49D6477B287285B88AF298E68C6EAC3C73FDEC94F7062D204AB310686144168C155281627F78C883AFB49DA50C0F5139E2A0ACB9A9CEFCCA39C6F4F0F5356D2898A4F5DEA78FDD20B79662F4D066E73EA4069DCE6CAE300B3028F15C98801912A86E0CF34DF53F7F6E1868DAD92DF22A238C710F471596A49843D3E60E4C381F713C21C3910ACB1515E5E30252C94F040F00A9D1A08A4FCA329DFE190B5464521BBAA32932022BCC5E119A96DFC941965CDF3B739F53DA156553C6BCD72927B07CC3CC945FABE44B7348257A9FB41EF85AD5423304E016E74E03D5164D9F15838C3A4BFDC29C6B9F134054B53B29183A6A145CECACB3EAC7C18E31CB4BF78BC8FE60A3B8EF880CB6C1EFE7EFA8D77580CE200ED96713E32FF23B86CF532D8EFA2FFC8DB1A9E65A78EDC30090E3DC02475D84F8D9F2BBC48B114C9E4A01FA79C17FCACCAB1FD304C7F901942B9EF57C918588C9CCEF0DC5FCA7AC84ADAD547982EF9E855F6E88D02751E8E7B8B76C3796F94C9F7B7C6860042A3A33EFFA55AFE1B94C97D68B76DD240346355012F036DA9C7E025C3633CE867510D54CACD36D8638FAA8EE47D315FCA9D5AE4BEFD6150086DFC368DCE8DC623ADEAAA07287F9B291252628F1BDBA5FE6DE45129509651FB048D3A686FFAC5F2299AB0133FCDBEEE8445555F5C649598649678847FFFCE6E0DD9C4E75E2F6E77B1CEE3A1740A94E678C1191EF46FC4D9648887DE6277B11D4C242DC4A427AFAD5459BF213E0A20EC74EB0C210D0A922B9E690EFDCCC2C160E011AB94F709C174F22629969B6332738654A133E8A13EF7C914CE75ACA1C37DE05A84708DA741161EE4D23C025B405CDEBBAF9040A1CB7492294C381FD069C4622BE1EBB0113F25F4E1D5A415C121055CDE5616662599C2364481BCDD35F7E498E80D2350AD3B34C205C5EA73F1B923E6197E07C502BC6F4F4288EB46013BBACC49A5DEE5071ECAE62B192294E904BF3FD7BE08F0C43E3EC6E23A7F68115FEB285AD388A0F8FB94126EDC0331834179C1F10CA5EC54159FC256D7E0AB3129B22E5AA5D662C6A03C7D9A6D066400859EC2D5B091C37E35DE31365F5125793E7F653013C722045F7292C014123246D611A7FD59E9B09EF24221C7EAB249330C91BC9F4D3A223D9C2CBF7130C5C057961BE89894221AFB1EB27A4604BE310EE3C395E479D852CEBA4C2F74D4DF416C8836861BC13D0692863667AFF8EC89BB9194407222589E1C27B9D59AC49131765273228E79C2933445B83D07E48A789FD6E406064593EFBAC4FFEE64614C5AB34E5C2A717C50AFA79A96161203531C161E46D71F447FD28CE4AEEF197A3DCA6BCA306AF09086D6BDF35A861820C469A40958923BA824F3A95CCAF8531E930210BE46D66CF7156EA0728F3448292F47ECF20DAC7C5E78A2A0AD5215FF37594D37A2AF4778B15BB1B5C4E0A44AD5910B62CA3FAC5BCAA4CFF5BF97C8B8CB239126CA09E92492121C9E6977111E6E5248661AD122C87007318BD3D98ADDFA1B2CD60F12AD1E072643FCF82C630C2093CF4A75B2D3F809A0496727E04AD60F14CADC7331B23D9CBE28EEC92C68C97E597C2EBF99F2B"""),
|
|
TestUtils.hexDecode("""
|
|
b9e56f9dfe73c5da4ec32b02af5fddebd5c84e216deae6a4f8611a876fa4993b9b333360ee00007dbb16bdacae8af597cc2d3a82359d8dca6582fbf9546b31867497b6cdf6f42ed3b09cfd094672218c40a24c8905ea468ba91c02c677a45abf5aa0421bf5bd398fad978fddc4634f6e9d36a03cb3d6eb64ee2c35f85481b1c4bed1b268de1483ddb4896a89bd9853c8f5beaee8b760c8202d17af8012a859f30c3023507d6bd8e41476174c2fb24fb1c944fc525b35c6e81d090c69713836e236b12106e02792ad51000aac32cea27d42c197e88f500ad336bc6feb4b79dbbd29a90c6e0f30011821357d111ec1cbb395212cad14b339a40fd9fce06bea1397369188c0d79e112f8c453605aaa3e28afb24730578eb8bc738d1c8e699fdf40438a16100e30d023b5d5be050a934d84d735a5650e2f599a52d36d1f9bdd91e46316bd62e774bcbeecdc7f43a89fa59241c12d2788ffa8e7277707c7df292da5141167d130aff17369c49d978add54af557dab19e746391c9f67157a58b4efc7463ac0615368006fb12c3554ecf35902e5752dfd7c34c97846547c3da9020ecd665487607c084ce909c2b7719acd1c3768ab6464c07c17e1329608afffe63a4ca07f6c9ceb74605c02772615de81364524121f8ffae29360d69f8900e5e9fb628e9ab0af8200fecff1ba1bd01fb6f1470a3771ef57d9b8e8103b3c2201d233de6e6602d490ba822b8eb4ec515c46b7b7dd0bf95cb7eed44573cfe11c168217e32961180d74e4f10463a5f38404540afbb48b21c878f1e7cecc13d664b03fddd6a33bb4d8c89023bc54602acc1cc434f5886906b5de13e89b5a414ba0f75d8253bbe031f2d82863e4e2f85f882a8a64ccc90a663ec9b6abd7edf2e8992f9aecb12a24acb52e0b05dee0803f521f833d0c0f238b06dd530c14bbe9a64a38198ce98a91f80358e6af37fa804710f043e7fb8cb5562f0c093d40c57f1b2c476520ab60782702d79423c64c874ea0ea0f4d9bbcf029b54b11bd114d50ffd80f38b21b4caeb54e9b83e0fd4551b7d56aa89ff0ea546433abc7e2b71a1a73897c803709a85b9f2c45996243445b089d8b3a75fce6decd0c42d622b52dedae2dbcc83181fa23a9d7b813127d58457f03b5e0cf4326188ed9bb894b9d468044897ed7397bfb6634808687937c8dc0d9883d9926d1cd63e0755ab868ab1de5a6d8cef72f72ce4e183d626605d6ceb6da8bb821161f3ad12eb124a1f09789b67f71a7b5819c3a285b7a8027d1cbef580779444dec21bf6509f27e7286c9d8274106cd3ad0baec6fc6f40fa3bd30a96c27d48280b8f051ce1679ea89a4981d270cf34eec5ca1ac399c422ff114232e68601d328f4a4c23ad3d52843c963b21f106f82eb38a379442b0ac389c59992c4326c9a54573b54ccdf1358389346df8c5d8c4064dd216f1d5e8f5ffe31205da0724de69187349a54b916fba25bbc4fc9b4518c57d5b715bbbfad14e50f8f48c81baa2246712b02cbc6f83cfb0e033ea90734495c9f82d185038a843a1f2d0a40666168a4df0b8e7c08973f64c4af66006109fe69a016242709877801e73319e1b2409825f9d827fccf2001b4dd0a4f455a92a58d13886f5ce9efe226dce7f3b4e817fb4f2185eb328c3b20192cb01901d5563b83fd7e13d0fbc3cde890cfccf91abfcf6c93a8c9ff31bfbe12a592e6337a0451983fedeecb6ed9ce67b6a3628fe15d9d6e8281097f8200fbd8742eb1138d3e6c70c1ed95c18d156bd9bb879610c28e5087097dd4a40a102a400b7ccea6babd3c419436024052a8a3c6c4233627d967a91bf700e10687a30316b67379fed8f4d208e27cd811cd27021abe8a295245f865655d2956d60d8564902fac029b65a337aabe99073b70162027995799552e779aca9ae9de29a458d6eec2f8d2fee0102786381b4ebe8707bcf9400c0241b83a4724f81e776b996c112226b8c7e1f5c1d090e9fa9b88c26445367935ff26c8d3c08a2347851a8f40b677b6fc5503a48f99782bf182a177fff9f28b5f2224b77454b545f018a131f8a9df7c61f35ac74edd7481a4bc18492cde936d5cefe03c96fe2f60be3edbe53d7b5d3f8b883523ac6235fb777f1d7a41906dbaa1727d1defeb67504a482beb8ac2ccd9261aeb746f422b5e9a11cc21ebd22dbea164c46e59b09bfb5213576955089ade4ba711d4f03646ae86df0c5495e0b5b5356d55628f40089d4d78ee33ba6f0f4080aae73fb20b47e979ad7dafda20c69925ce818ae62d2a534727d146d8bff6276eb02a52b2d56712da8cba1c0b48ed1f3e180d1bb4c365d6f14946b5f76147aeae4c55fd8be9d11b4633659df5a6a2e6dbcb56d32c7bbb88fd102e8515e959f322db8b6ddb21bad4a5c345d43f1b9a244a24578c75c626dbafc3f10e65e023783394a8357a6d5e005962af2e2f8fe8757a7cdc45823b50a0bcbbfcc6a46809d46ad639e918c97d1f038d7a3d9d87fb67ca95023d40793f96aa31c4bd3431d997746d305579495e41fd4d5b08cba5176924025bcdde3e36ff0c7b04b1b157021522d76e61ac37cd4fd8afb8c86609afd86a521f42b6e1892cf64cf278b02a7df422953e45c49cd07b9be6a0694e977d8e38b582c353442e850d488e26403f42fc2b533247eece1bf8dcc3808592ca51e100e71b50ea0714652f15c308b59d2b5936168acd227cf1a069e607fb6fe0fef48d582811106aaa4eb93ac836466319ba1597dd6a21ee2221bb0a6c068aca48b10a71ed42814a5273347e176c860845445c6f3e8dfd85ec2da37cb08fb2fba67bca6ecc5616e937e5f24464e22e4a699f27ca0aa321162bc5dcb799d4eba8f9725f9240dd2a10e1057e625f286bb999db6bad91f53c7abf54ef8e8a7741d5528f1adcff8783e69c535d79f279cd046373a012da01a3530d65c5aa3d0772e773dc7e692d0b8e17892e4808a24188c0bd48dea755b98a92ed4d8bc9046c81c9bd9800d8ebb100baa447a3432c4de07a68f666177230109c733be367d73c724a118fb665c858417512d91e993d83047622a9f5594a9e91467608b62c27bc07988be98187ee0ecaa7120d0ed54531fd9ccb17329b033b1b9c771c32a2bf99be223271c91feafc475656cdf78b4acd5226236cf50e9a4e79d7b4b4d9cfd14622a2638fd2c634acd4ee0b91977802ba013a98fffe5d6744d75d1a20a3cf3c851387d08c79d9b6b4dd418965eaff722b926c02f1a06563f0d963a2e6e99f10228152fd2a6bdd6468fe97955d4e81d0ad1f0ee301b1fe33c6935c3f5f8d4f7cef773550d32825b7ff05867c76e9797c71aafe5fd6da4767bf4f8c1a62ccf588521157c252c6d5431c5d4b1f15fe45ca0780989a9e99b7e1ef1d73cab9906a27f7d92609388d11b6381a9c21da36cd5245b2c9193dbc1c74e7967ef694a0e928720646b90a296dcedb5de5d90541641220e03e2abde8c2cec28ee3e7b04ef380dc913ba595c7c3352a5edde20b85c2d2a7525035e5f6db59d82a01768c7c1be0c57ca4eb389d958e0c96443e60fc6ff57a1e37c3bd0571215097fe26a87b835da2ea03c83fdf607ce72e5c76ec4a89e1378cc042bd70effa1e823f2129feb64e5ed7ed216c0d37fdf8d42a5320dcefecdeb28e99ec636f01973df6610767341da3233f1d2d50a7d922e93b14dd5d713049da206d3f31422f9f8d88014aa6091820525b50d1ba5e1f9d33f084bd2b5b65210c37f352cac249bfdd0c9d38d4d62e6c2bbe3541bd692721458b3743f902ca8ef6a150e8538d9dc348b704475d45ca3480bafe55265c578f3cdac8c0b0e281a6827687f391775f05979791d3e673b2cfb1bea5dcbb1cebec43a32b34b2e3ad97493c179abec83d02a249d52dd10edec00299704f0daf869d28c2bd29597215aced1e184d5e587caba773461499b46ed8c7a036ccb433982cb89af1a7e243a3466b1b2a9243770e427feee9dd64a96a3a8b526bd2df6ce6ce3425a59b7147c86997804cb109f862df5151e94a734020be056df7769e3f164de280bb45d7a5c43da8b8dccc48d4b4bd3400f31aa5c04a76e863fcf9c7d7e7eb04f5d769aa3cce83251a40e3e32f0d437ea9a279fdc21b4331286441faf0e0e18abcf11318b127daab6c8e2a8c2d67aebd6fac6139e5cf996ba502080dee6cb6fa55aed98f8e28211ee175702e9a16a2cdee3d08a7150881ba3b44f785ab768cc857bedecc1ab8f006a1377043f731ad801b23e6f18d6404c58c0d738cf5fad7cfa87cfe6446eceacf44ca811e1a48fdeefd940324c904fccfaf2a36b2bbb2c2383fb8c995051881a7e9d96327ee92ac43832f98932997069b21bb0868403c6c586f986949a43a42fc982d33b5039acff3d3dedd48ef05e61afbecc2d113de784925a101552d5084f05720230b6fcc357b63a72588317af5fbadeb229fd1221c5bc5f7a53efce19ac146d677027a87e0d49876e12830b43392f1f68069d5702699ea0321ac7ea78c18e64af520c333a8f3f591a1835d4b34b428abe29d1f0377c9305e0aca4f903e5127a397149d4be75369cd42135c7415d0298610572c6b95cffec5b0ae2fff70de6e12386db711ec9b676ec483be1cea8ddfa0df57bc60d2c8a76fc87d273c6ae4b724c4d8d3dfaaa11ae2da40f7990f8591adf689cf800ceda9ef2c8faa96de3290a3bedb2b73350846de4b754d3f7ef20c4defed3d9cb5afeaa6e1d686a3d16c4f1b2e65ed51b505dc3fcad64aea1c491338c4a33292088b60bfe491e1e6ff0314252cdd6767e983b53cd660dcaa4fe83bf0433edbc28b53a5efb2f5e6793ab1177f29be6cbe572619c7d191117a7bc4dad806dc102aff25067eb47a5bbb1d492f80d37c5968c2e40e9d600e7910ec77a0bafd7d8fd938ec3e0086d84926a75f9908392764c8dd8a76439f0adc99ffeb7af9d0966bad2b0a924184a5e9415c1abf791e15c700a69c0e7a62a854886797fa0d5c7a42519a6c887a23165808a608d9bc625f7775fe7635b537b5a35eb94eb5e81fd9a7c0b1c74b27d0af81938714761081411cb484ba7387c6c233bf7ce09091ab8673a3f10aac3f126cbb090f55336caabbe31d05695185635fc85d2ac59ed0066e51b023350083b2b2408ba874b19b98bd360c12885d64634d3c8c2f19f0feda4bcab389038ace498af6e2824c101fe5b069f6679044aed84ca5dd4dc2817b3c3e6fcd4e2f1874f6011ad05fe9e6a5b474b6c082e7ce64f3ec5d276074af695b6d3ec3b158a99d6de3f4237592abaf05a460ed2437e66a78fbabb0bacf03aecf9b96b3ea916d96db12d7cc6f8bbee54183459748a9c8837824d5f7c6015b564b146c255cbdf16ca894186566185574273344098aa03acdfcb8679387ed2c98dbacb6f2e6150306ea35f1bc05694110d83394fc1a7b4b93557a969131b70890933c530204ffc2371cdfddb7c6342a06d87c2229473654efb2b53f0826a349ee93d90fc4d4ad3e7e3ff8c16d74ebff6faea4b07dd5e88999bacdb1b51d8a9d9c0b5e5276153ac0483b96ca76dda17b931c526c7b5858bfa793c166bb680a44a0c0c66148f81177d8e9bcfdbfb64346c9179bf45390ac550db7af5d9a9b43bcc168ad29546e0b168cf9a5b44747a36b9c4e1f630c832883f9e6d10e2f89fc436de0c59f3b8e23ee0c156cc395de1c135a9de0e24568cac9c2911b21a0a9cff405a8ac222a3ffdc0d9ffc47aff2a3e89ddfdc6a8cf60cf28b3c7cae78b6bebea7bff5a8a47a3b707f24b8b6c4441718ef88108ccc26034ece28f80517991530273a5888eb1e36352d45e917b0283534830e914c5f083704e87e3c4c4f2205d99e1480d3ccc44f66a5dfb0607ec052a5a114c73d7bace17576b9345149325614c0076d7f044ab3f34482091be999a269a266f86a95d11baeb907e636f85fda7439cbe8d31839816ad20fa2fbac9b9ed2414a28d7e70cbcfa80f8e4e059ed003add7553056f7b94cdb4459f3ac54cc2c003fe60d6a44a7fb6fd0520c50f5c226a2bdae8b6e8eb7f18f94ee1b2692675f1b52c8da3141e5f859f7468b88e25a7d556fe1598137e893ba1c07ddd1af840e7f568db4b139f1d9f791451f76261f3948ba69354b16187cb77996848b629fade50a4d33e5760673e7b7466633f5426b17157e7165933de8547163903aa002df55a20a1a90a5c7c93c25bfb53f3f57e0045dbca341b9f14fbe2710532947e3e1bbf9d98a2f46bc526db5455189fd359f4a9c52dd5e5350650b010cc58b6ba0d5d11bebcd9b6e512d3c2faa728456b7053485f24fb351de898dae7893f08aa5509f808e6d0cf2b3bc46d3a9d3fb73633de694a0ec1d73dcd22e818b61558be653590663c3c66cf008ce3f74f0cdb241a9b54d59e426ec1a0436ed7e7fef471fc927432c09c8a65591531726723e0a46527cbd28527ca0bde9165860839dfa2e405b71728a8d96a1c3eaf516327895fd14476265777e828792a4b2f230638790afdc0312214448b1bac8000000000000000000000000000000050b111d222e343c""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
846d5071be9f3c8a2a99cb9490b9aa8c794e568b4c2da75439df54fb42f6182850b620d6efd426e4a843d6d7ec259d33a3631f45f153b2c1ac14fe1579c5aed8566f5ad80eade4ee8290e3f2cedc98290c92b83f94e0ad6910163f734ebe5f92bf6fb3ab56e03725a86593c35a9f7fc5bb99664beb330b3cab837772dc2ca1fef7747589758898d62e0c53373097fb2b2321f8f8c397d2631c4d0900e9ff7d5a8e3fcb453034e1c70f3bc4451c649cbb31989b8b0a2d3e33b9f138458c5eb2fa76a2b27f9aa34841e8c108daa5ccb0ba3847d2847055bd1553a467e8554ab3c54c0cdcc439ba7ea6a39795d7008239599f09d5c7060410a8a12301dd5e68f65865b7cb636d7cdda135436615bca0a20d982274551e549373f43c435729c98147f87bd0b344411750da35ffe77b73d9d429bafd7f2c7d6f43fb6a00afe8492f45c0be3431db3aea58e945303c5d1d4d4672727848d72e32bf2f7143e2de29e3c00678b64a7a9c275322f1039ea4f751e4b5fbead29b85a823bce1d4c0d1cff1a5084f252b10d8281764c1ee8aff68ababc78567c759095fb64425d4ff00a5491ae6812658478e8b062742442bbdff9ac8e288af8f2a64087c2dda5c116edebe039135c5ed850c190ff60cdcc64a10b3a849a028e0c66420f7643e98aab79dee9d943ce7438e82705dd1d7a8f7c45cfe442ecf3f7b474f0aaaf1891f857351a2438f2d688384ddd33f0821167189edf67908c0f9ab6dc928fb6e0f69ac40363ccc7eb1bba1c38726eaaeddd350f3a5b077800c2f0557f9bb1f116f0256f99ae103bed8e8250f2f1ae4c01dfae76aac4f4025fe9897ebd7baca7a74ef7d6eda19e80c5701c1dc995f0de8c15d7767c11c572d4c5c4af1f8155d8ae1e196f83035d5fd89f2b6e4893d5df8b16b70a36a674892f393cf4f83168c3b12e428e1ee2a16770ee7d4c2bca95763a0ca91452c5643835196ae0c00d6bbb8ba6a76ebbd198577cfafa536b71c8b837f2b501ec08be9470bccb69925b625876812e02254b17ec5a7a7f2aa2f32707bb84831775a8e49ae31d82b006e76bf4c4e965ed437f5298b985248261df1e657b6fdc51f7340be6a56d3d358667f9df996bf97fd6fb4c7870565f49788e600e9e54fcd8c3a487523c6ba49a2d5f0afa819b01f00ca75b846c0f398df771b34e253db4e6f7748c4630b1d32e047b7686bc201ce3e850faeffff7a2a5efc3433a6e5a386fbd8204c18243cc582e9f3ce606be436b0f957ad73dc7cd65b3dd0c0b336556e4d9247cb041aa33ac5e7d8080883b0e7359b7128ff0c6ba39d6f392cb1f7371e4c496bee32f0785eb0134f74ad9bf244a6ef9f1cd67175795b9a965b6316fc008c1c02415a20f44713724e1c9a644a6b5d1150e31cd54c29368afaf2293f7c2ff68906cf99f5d32fea44b7c4ef08f627ff91627f8a0a2d828803e6af4b93905125640a32409fef71e00837a9d89e776b88d50e2c0415534223af6c950bc2a2e8a7cf852bbd21a0f2f20cd03a9fb7e8214df84a3dad03a3345dc44a1d15eaee127f50ed2588269f1c6cf55157b9f96239607cfddbcf55bcf1d24ecd3953e20a54a073ff3749c8882595decd36d8b0fdfd0571807e233208b34324c244a2887adfe1cb5daf8b79440a44a019c872813ac2dce13fef6e58ac58987241ece2a3299024b7adbdc89120d88823e1bc8cb8ce2217b443770e411ea969459c8c56e40346b2899db2abb764cfdfe82c7dbc1ae868baf4bfce840f68826e41e627df189910a780598cff166be972117b5c61c02dcede2d298acc8eab96ee718cbf4614d1bbd93d8f231dc6d18e4d8f4b396b5474e70c229e6219c3af9b41b83bb5525c1ea4f415fd06da7787a9d9d318c298446071e13971f7c742f3ff61d86bbb9a2347e0608fa335f006db2a618b43c2225ccffd8e34d924f8dc60bb1e34c1822bf1860a64df7b8a8c0d09e78a3fa17587d50aac69a6eeac1204a23fd3c4d7f02635988fe5555ee85a247c2bf6e952346b8ec11e76149e672a8be470132a010c73ce62171da95cc84bc086070d13eedc88840540f81d2980fea2cbfa94e5255e475c51732fa82c7a8795df3421ee7e55d391cce70e7daf7a80766a84d23063f93f75119a70bfb8086d41fe9b2840b4a48f0157f6a0382da9c332971d99805f2af01941b654cccafdfd95818131373b3746c00cb663cda6592e913558e61eef2eb5a2bcf2936f86ac5ab935d525fb0202b116e4ef0ea063643c7b58a172923aa8b312ab64be7ab8dcb04dbb35136d7d7a15d9b77ab3fd6ea1d45fe3b8c9f7286456d33f2cdd48c5f777769e570ac0d7ae56543ee4b0c6997041e0c67d82cd21b8b6d6f4399a7372f95ea0b580254704cef65e8d4bfb2ae556cabbc26f513e02c2be2cd9b1352b925dda37310d72df63436289bfbcaeaaeccb84a34ca75552f7b545e97c75add87bc3b93c8c7cb01f0fd813dd47eff1e40ae3e230c203b7d982cd29fd22f2b8548b98699e706155539b05d052c7ffb3150abcb5d990c9171db4f88ee7e42cf56d10eba0cd08c17ae14a7b41da377121902564c2088e647bac379e062b04643acf9d07750d3b95f7132e41434d4e3bb73ce29267761fe66866db875ad5d798c10bd14cb7c382132f19b577f3c24b1994b97bf488a3b3075a1c20c4447618694bc25b4f92283819a6a445fe7b3b389dfc74a544dc26a3429502601d19c38fc7cfdcf5d0aff6c28264cef679daa32d0bd0b80532d02478c09514118d9ef3aa3b093983c1f800d048454c7ab27a8220fc00a4285785230e7b97c415eb2cdc2c98131fb49ad4a7fd96d51b6077ec872cc95935aeb42da23e5e23342d0c5459603cb948d2426f68be756ed544a300474b4de646841b6ebdf4ee27e80d6820212335093eb29a5224ccec99af8cc84c65ab1b648f24aaa48be9c9fdb91dfa44e071a69f127e2206a00171513404f051a829271380a1d0eb14493fbc9ad99a205a2b76049489bce56af1946873a0900ac6294c11acd40a026abfc366198786eea707d5c97cb1bff25471125295d3e3ef6cf9ef7913a71204d162e00a614286c06325439d45ea06fe03e07d97566cf100b7e24ae606ebb7681679003517be905e7faa97a4ec9e57b97793d91b998be6c4d78b72b37dedf10620d57702445655b36476e893b3e212c0dc0b12c1a84b163189f008217945b60108d058029df8affb251756001ce79d5d8b917b20c4cc246548011824ea921d376ec7edb15e35d5e5d66646714244e228bc2f7956291a38f2f36da55f1a2134ede281026b32ed374c6023259c43e85437bc3938a869f6d5df3a50df8f2fc70622e1671a4ea290e36be376a99c681b517aa68bef04a252a4dca9dc19ce11e8a75c8a9f4146d670771855418b2c19a861e4bae7e73587a4aa9036a7d99a261ee745a03a32e5a13008c9b81d0837006beea487668296c8b683c98a44f5c155ee35277a4b97e7beaf690a21c5cb208cfc53d3c7949922cdfe18493efcb1426e8bc5707aa7282ca81b00e9d3d86d33d3b6b3364abaae0d25ff027d471b03abef975e27df7d8aa2ce5f657e2f9e120ad97a6280836754f16e86cce203c1246cffed258b0ce9c1848e05720663034019c43b2a43e25cbe96ab2fc8c7b58485f9bb105f"""),
|
|
TestUtils.hexDecode("""
|
|
B5CD00AE06396DEB95C9BE213BEA279AF0D10F1423B5A71854413E99F7216D9EAE76C8AB884545496559B14AC9A69801EE3FD2EEECCC557D7988F34B82D244461388C7D4EB16DAC3C0FCE0783321A1488DC16C3C688126754BB4C26308054545D2E46C6BEE26C25A7C3B701341A0323BEBFC50C718162B7FF3B6FAAE7156FE300F2219655D8D44DE89845393011A2B466233B907355467EC49C9F832044BDFCFCF722D6DE7946FA503861C80037549ECE8FFF95026CDA33C9000FACC334765A60456084A0614455C83E0D5D991F7ED43952B7A69F1E326D7BD33822CF1F286D85FAE78F0B8DE186368EB334CA56070122DEBBEB920C5547C46C1291E78AE48B72C7A39020A1A2E54E59A2E46606C99E652FADB39AAB25399B0830AE733FDFD973294B93F47C30D0824686C735E05FF51A95C1C76467A4BE6BA80C5182353BD510E8D4B60BD43436F7021B3F5980D1A769B2E3BF04E0C257EF577828B327E2AD85E0581787B9B7FE44D6B826BF8405D3D0BF8974D2B1C569006C7FC3D2891DAF38DAC36F64A256E337B660CA59D2B45F1B4AA1C0C72B78495FBCC9EE9CFFA4B5A101F973E3211E728040904B0B2515DA4B1CB3774EBEA1324EB6907324E733C7F17BEF6FAD0F6BCEC1F08F785DC6FFE02FFED5C0B7A631907196835EFFD0730FC8FE020B0545C920DD7B2D705F22D8D205804397F6FCC60386F4A576204949EF60DEAB269905707396CCCD8DA9B895270CB39839BFD3EE64149B0085B96FEDAAF8C738E449E585ADBA037BD560EAAE978A6ED61DF432B6A9C2E50C2EA33A8702A23E6848401F85E2C18C7C767DB15920C9B3B030728FD9511F8903DFC8572A3679F986CA1B684B3AAF489DCD93C622C6C4D475DD60F10C390873B09B5A352B6F5A104C90782E053F8121317EB8D1D4C0145E04E3B68446B69A0EF81097CC6BD0B756AF78963724D9C83C61B7B79647F0844867B605E2B60988D2D7AD07CD6BE2D8F904F0D269187C141AC67C9DCF9961BBFFDDF3BF34D9CC5781D1BEA348F49EA8FF7750F7F3E0624C16FAEFAF1D8B6A818AF5FC5C04E2504A0CF4C2DB54930EFA759A292A2AECA1EC3A08918513D95C44BD133657FF043318A17BE4A5DCAC54B87FF38869D017A4B14DEB60480AF1C5F19A9F87B94B8EFE0DF3F931CFADFFD7AA50AC86D9CAF6D434CC81E6ED123711E34B8295A446B554F6DD5350B44C614324D8727F1CE501743043DE6EA085DB5154AD8E30E114A02CDFC96BEB4F2718033B227CB8638BCF617C73BA4473851E62C8A287CC4F9C659190E60AEC468DE7EA8841E3CEF893F3DC79DDDD56B63102EAA5B2793711A0451EE1655C6768393F59CA6085866FB41541D9997C94BB56F6ED5D731585E7B25B1DC853830DE5DD75F66298BDBD2E505DCB3850F96CCE0D7274633234EE2FA1E2782DA3D6CD8F5DA2C3063A923DCB6A2F82614527CA2A88C1AF21025B88A08C3104C679175DE2CF00602B13E58FAC9376BECAE56A60A6A8F144F1C98C8FBDCDE6FBCA4ED13228FA77CBA5CE631BCDB368AD9219568777FB4397BB40485A9AB63E9E3FB343154108D8117CE25BEA30BC854A241745FC6C26AF0D64124AF10BE4BE01B8A3D842FD9CC4D805B2BE26F8B7BA0631443F48C7F74207F640B215E0DDC42B1954A1EAB2C68E63601DE3AE3EA54E16282BDED00FC7665A9E8B098BF034F5E950ECDC46CDD22210244F102E41E0930FDCB24AD6C72507E5AB6FCCD4D6B2A2703C358EC1B51AC87302A5F507BD01CA6B5FE04EA2A5322EDFAE8161965524C61956CD201C4BF2F01B54F008F5F4B6770D0622099CDBF94D6C41DAB4A5362D630B9BF9CE240ED08D698D1AABF29E60BA533697C3C830521314F13EECD95C7D2600E2A756AF19AD94D9EA39FEEF0E3EAB3EB401225C2E55B2F2A8D7D1A3AA77A38BF9BA31399F6E6458F3F21DE354BBECC2E29740FFF91FBB23E0F61D7E0698CBF82D439AFB018DC5F5011B7BE98993E8B655D83C666FC0CF84A532C7655365746FDB97874D62329B1EFDB0B0C8A46056A85B60E38AF8979FA4910D2D9CACC3B5C1E42049D04C44273953350E0F756081D2DF6429193768802577C381897BFE540BC036293643360C848A1AE388CD17781296A99AF0CF75F81D568D0648C8A15436BDCB16FD83287C6A54F88F2F75E6B28E1C5A3AC03501D6D723AC5EBF90517D194A596F7F95947CC169CFF2A65D2BC9B54CA6AA45BA9E901D4AAC81FFE9E62A479EEC5B3F9BFF24C69FF56EC52F1183B5AC48A5BAA90BF595990B6EBA5B1CB6D88511C7D0D165FDF2615351B0343918B966ED1CA0CEBF6956BD2CA599E18619E1A5930E47CAEA92B8E9647A0262A2B24E955040750E6C7B935982CB742EE756DB65B462F677AE09A7521B0D3A42C2E97890C47148618FA6089975F5D491F4D3F69EBCD54C2B53130698A1F4A47505194F675D68F2DDF5983B008E498AB4A25956CF724F5C1250D5F9C75F3DF9BAA696E300AA86FB4B9378EE18E79D015CDA55D6ABBF5B0BE819F9EE58B49656D3B112AD8FA6651A8905061A8E37760C3F2EBE6DA611BADD44268975B5000051BDF7158EE3DC200B47FBF8568C9F22719FBEFE5906444DE9300689BFA1AD167"""),
|
|
TestUtils.hexDecode("""
|
|
fca242816e6b98578837b5592bcd66732c06ac3794932640ca3b71112407c8a4c0989723966ef76b5409a893b8c2981d6b72a1f5cd92d81c12b9cccfc75547f44c27a56431f324a4f73ce4f91da398fdbe6a97ce171f4483fd0c1cbab53fb80c41963798eb10dc422ea82719a0770ba82e1491512bc40d726b83b3cc1887b5648204b00e8231a654b4a796d7c1c0304e93579ae6ba4f0945afcc0812b86cb8872842ee8782ede142087a46dccc78275aa2e52f2e9344a81c4a0ee65d4a9b8ce1ad020ef6fd1e6cbdf8d5e56b1751e67be662b90fba01a983df891eb2eef4886a1da0b6bc0cedc4b44f33df8ad946b68e5389104b46e213690ebad5b50fef7dbf2aa6f51b125657e779d9718244aaeaa55ad0bbacdb76dc66973e331be8aa3e6a13dad7d227121e5fd1edffdaadc6bb667e40d49c1d95c6db663b4cf374a3b93e5f270139c28e98fee799a3ea015ceaafb881807058b199dcf0b447f46d263bd43d02cf232ad1c27c3ca8e0cfc1c07541aece1980c9240e77b9f134694be94bbf05eb6710797a2ea2436cd6c10b18a260bdef24530eafc2618d17f86922e91c9fefe7528de98bcfca9194e53affc13da5787124dfdaa0e95f3924fcf6fdbca78a61aed2b5125c6b94733eab6a215856185ab31106fb293d996c9a8e80f9bd1bb2287a88df24f7f127c371d5c8503622b3986206acd99395bed7633e5f73a918a45362d58c921362053a0d2133a1989516cbb8bc29dd2fdae2dbb94669a122e81ddeec46fd04ba600d149cd728285f2836a3023521ab1362736a8d33635a6fceaf6f9684af304a557225e4a80ca403583b637c4db7e9185df6bb77dbb3b09ff915400bca75a645a8ebe36b99948369cad683c56f0030f4f8b8f6610d20c7662f538c855bd1d08b719df8b34873c4dfed8046372063ef58800ee7abd99ba66b60098e0004395c2646ffb158411526dede3d9c9e1b481a2dc5298f27538c6ed535fd0e7374ebf2ebf214eb14bc3c674f61c1baddef4435344ddbb08d6fc8240ff5e41b817e9795670f399965cee0d8a4540b795580ceeea3a31c61c81e3613331f21b496e8dc833ff7494f50e81f0366718622602759d598f1831042a5779ffa9ada2a00c79b0419ecb05d3ceed113160653bb7db0d06a40fd272afcf7f20fa18dcef490387b84dff70e761dd1bbec5e1b25eb30fe2c4d18135b3c5f315da29a98855f81f9b1e01450557ce6fde5b2471dfc90da07207a6f6d181cd71e33af713c0dc353f7166bd6aa7b90f82eba2c03423144fd12883e80538de76f02a0e12cc65051b981eff9d25a36ff79b4c6c84ea537075886e9be23f700570e43e76e8d61f54b49a576a99a57b464f2be6dc8c993c78a1330ff3580138964a6cc2cd46006ee1a72a268ababe373646674dfb4bf33126fbb8f5dd24f4c79596c783fc88b393a75355ccaaaf698a45d678b01f175bb31bf7d28bd44a766a60dd8d2510f55bed7fed53f6718578fde622c49d17fa64926be1a084dbdff206c025ff726ddd2adeea11a021680f3e75b865bc364dd7d752d3b62b7b240838c5645f5338326897e751e968fca1b99c0baec1c9fb227d6f1fe61abddbe26613e5abdf6bac54d658b22cbf8cd498114019f712027aac6e7b1fab7016aa96ff61bde12a44d540e33c30bcec417f11fec1a0536f61eeba565d4faf3b624eb1205143e3b6e6d22b8a0ab3767739206a89eab990bef3f3d763a816cba5aba2b2d8390235a197362382c2487d80f9f47f0714206b1aa9f40840098c6f94d920fe21950274f7ca9d22a506a76a328cb28a50ba569909897b15ac2964a111ce48ffe137d86c5aac313050e25f43b9c041c93dac0293a8694f76845a7a83b8e14db7fb2a724df1f4e64a772e6c3078e465565e1eacd56c0c4f13a3a90b53bcaa0451b44ee94be4d6d23707057b4eaa6879203ba81ea953090eb450408eb6a9dab8c5bca27c87cc302f286e703be7022044e0ac4559d4e861f4e31f8915831cc9b81dbe937c8b0abc02b61c57debcfd0f5f8ab3d7bf0b05a5eb7fb0bb587de8c2bdc41299e744db3c6f92aaae2008a14f965023f17ea55fb0a5ec6c884c478cb3a95722844dd823be55f15a363354634a1b3171e349ad6c69f1342bb3dcbf0cb44efaa6d06932e064311057a97fccbb1430aff5509d0f34aa57a7cebcd5eb5e9fd373960065c79f52a414d16ce959c97c1fe0101e4bea038dc6b27ee847335073f62a91d1d74ebcdab4965e1cc501c07cf4a6050c406028f6250d24796fd4736144ff84616a63a2136fe4b8ac9652d95965659d55b67355f5de40f6f11e08fbfbc2ef005b3937204345e03c07e67803a8c378368a7cea377f53318bb140e0760bf79fae16f4132bbc88d8af335c07496fdff21e36ca375889ed56faf2622377126d399fd76ef9b2746e1ab666461a949c06727d1ed191e197418ab7574bfe292b92ca61e7972e4d0fbc6001dfc5438f95b54c9f226bda6968fe5e5df06e915fbb58c6123799f6c8624a40b18542c18cf82b89b606ba532584b1542f0b0684be46457fd6f295f0a3e79ab8634b8fd747d5bb87ac0b33902804f691c16874f881a3acc4b1f88183dfc3defe276968bf7f7ed53e59e2e5fc0db0f13dbc772286f6d83cbd47617bd067035c93259ba9daad2f229835f7c9ce8759109bd1db0e71b9d015c55ea94325cae586fb1b50f4792bc4c57569c83c26ba4cd7a809e799b5a45961ffa5387f91d9d653fe2cef5783312e12fb695a1b9d2004bf5d73819dfb406a7d3243613356b851370fa34bc32aec270984c77cb373cbf6c65d1774ef95539d4b4142d50f3cdfc9695e96cd1a0a3844ff8507ece66c2ea7bf27bdf020ea8fa95c6a7cd0dcf37a591f2cdf7a6d7a04de5a89583a094a53f68636bb57fc83968ceb47a53d37aa7099c76633e23b5eb1b828d2efa427fde9cfa24df7518886af10ed7734aa278bec197a60dd8279df60fd5012852167e9038ffd1388f6753af0b75800aec92ccdc0feb08684c28d51ad1ba8a14b33eb0a13ed08020f8416c9817a63dae74a2ad51bd9c9db0c187ba1df3deda995727ee0e8d78c9a3d70d2bbaf759fbde9226646a412500865e2391189e46a671f7a9b2281509c412e5ae2cd89ef17a42414fdaa90d12e39b07ed4744217e4a461a48aab8e427eb7cd1d07cae97886ca0f4b8d2c88c397c96436b0540aad3e6962c78914b3ad092b1a46cd1aea2cadf236c9d0d1e7669bb3035bf8354ccfe5ca70e7e6e6acea47396800a8407017d64c4199cf13155bdf44b06e01b92628836712d34e2ce4c8d635cdf1c3ce21b7a2ff1268c9ee9df0792b79d35e466242f25209bcda6f68f07d80db030e244c479c66cfe823220075e9c08c2f8406ef7a5600677f4a0673b0b5bac9d5e388dda323cf3e2d967cc0b3a705a456cd194c1833855af620952dfa2fd1f147d6a58ac35231377956e4b91ac100e3f9d8b966db4861ca45ccaccc6ea63b0d2d71d4367bfc0911e106ce7cd73f31887536754c880b54b5a6abcd3913c505c2145fbed44a23dd7b04280410cd648b59e7ae00b10099ce56a3d615f031f9091ff00c2248ce6cff217fac3158aef781b88603ce37e9aeb4efabafdd59f0a460859b1f1a1b4369043869a27cbde6a8914d1d3d88e440927af82083950eeb3bab126e9507c8baadc1fe98353f01022df09d8848142ccb7429a5b4a7669c1008d61ac50d6373b258f8afee8d830990853b9cd18b869544bff788f5cef93a9e3debae6afb138bce6ecdd9b071dffb5d629e0fc544bd909bb7bbeb3597d0a285e447eb49f7ddadb510dcad32807d3d0a571a731069e22aab4e730f50e295357813cd46ac3f34c4fe2d5029fc19a772f7e647cb18635fabe67f1588b18a7cd0ebcb6994cf4334316f6a538370887a0f009adf3348257fe9668b7d784ea64e8e9931fba22bf2f673b222196eb5df852ae2715b58cb9b737583c4b8c1003178093fc288736c246fa0357daa68e89150cf7876928b9525a264625991fc403b1b5edcf4f9a58a570925044c669a3f1960c06f35a21b826603086e7e889adae25db3eff02f990af85efb01e1bcfce2eb1520d2846c5de1ad3caa65c968dbcd8af5b925a13871f19524f1db6c914827c818d76b1e05df95ba322ed03061eab164cd501545d3b4ad2c4f9b5d7abe1dfd3d92a422a114ef56a4b2b47d31f5df38fa7e3853ba5b1c1e9e955dd4a294119c3c314fbe4ae14362a6522e34b7fd467d22aef1a31bc8bfda12025701df52ebe6fcc52c1fcfb8ff94d62d2a7b0f1b8db243391320e7fdcc0ec40576caedd0f327c5a0a950ddb2994fc389fa77e54f569217f4139b91e545432cb7ed0d11e1d27e9c4536a9012509d9043557051c01911393c592f36a4f162f131af522f978e940774aebc0b672fe88c590ea572f39dd5c87828d3d9d16e78b9433e54da904418c5ab6e8db7851f4807d4c93c60503ceecd837bc068aad6813206e382e84b6e64510f64f1346b9fad25c37d77be5292f1fd9d5463c640baa331ccd636e7485b752db11ebdebefab0cd9d8b9ae11f724439525661fbce8341badfc03ec2375536876a954a0c553e274027f9f53582bfb7d20520e1b8ea9322fe0abc9179711768bb2e78554eaa5b0be9023e6acd94f5eaa7b74a98adafcfac88fb21d810feb9f38dbc0c8cc006618c771c31fc82aeffd693497bbbcdfba2028cbc73e49ce074f425ca33585c891bde72455606aaa252ed42e2edc7ad7aefbd9ede2a51217f2c6e1ac300f6868cb8d0fb6bb5ebcdab839d4f63255b7079ad483a6fb383c4f0acb7128c500da9fcf7ce9e28068f265d3e266dfeca0e808c0cf8e98de0f61fe495eb160888df53bd872bdd9a7b8c89ba1a5517ae69c2b49753dce1fa1c215d6c1efca5d241cab5229ca657d28a57d34aa16c6fbd829b0aabb4099e472b922387022885de324ca45a8eb9245ad53923beec04f245e4fc6147895e7e0fcd457a3786db95174d8480701e2d659a2131d89ac98c627357851bf57dace645a1d00b3636c45374a5c2229b002a0ad8c9aa148fb6521fe35dc4ed09e3e0d5cc6bcda45925ef6f5df442f1ec4da7583f63bb2381fce6a7a9da4fb79d0ccaf2a4bdceb6cfe584a33b9cdfd6c9f3c4a8b71d4b3da17f174d6fb3b8c48a6a6f6cb78289f3f217bb377d7d210845e09ba7543fae4de9d397bc76b3a46bd7aa47a93a891775898cf4e865c5587746b353ddf1edbd0b6384512e558a9f346ceb265cc3c4d7d37ff83e6f60899f3768c495f49919ae6e80aeba85c4cd34b7d90d311f03a1f4356188df30d402031b916530e0e9da31b17ce87537f0b0b8d918fdabe536ae6bb6b903173f834921f5c998b39dc5cbb74a7ef677d72aa4cbe88a8823a8a0efc7de88713ea127c7e8fd10bfeff3e19334c7fecef45876f89a6800de74276920fcb6c248263b850b5c7a945e1a3a5129e774309c606f6585d037c15e5f824dab8fb74a9cfd49b659c98fb1c66c2484761cbed75343db437eab18ed7b56e5a3c0cc150ea98447c3b5c08c9f9d1801bd6b6ba15fc3be608aacb92c4abe8f3f506e75714b6876f5b2ec036a1456627e567c6e488cb6ace2cf54e42ddd41b6810bc93f83270b40fdbb79be84ce8e60cf527a1d04f89f22c4b936353015a8e05c23799cfbfc7fa58405c07ced8fc16d50004e364a6db3d3d11afec9f6f6037bb7061ae0b0f4f4ba3157728d24f819a3d12e237421a22c0efd8ae99651437bfa486c033e833e360935dd433a1d5aeafef73c71b5326b65d6df9994f988d00a03898d2354f58e3308b3c73b149c8a2b0165309d64ffe190a4bbf89a8633f30d674d73b1910811951b25aef8313e510cebc2f8e4a5c4286e2dd4db0dcb40b1745358f511c29645a0cae474954fbd907345b30203a32ed6848f10b5489f58914397046796e143bd412a2ea5feaa811e0a7ac8a756ce752d75eab8b6606d8d3da0900d621fb42b90e94e3aad05e0c42f9daed64af510f4846a4f66b1782d9d76dce9ac84fa2912808851c9bd23656465a64c5fa582e7bd1fed8c38e7200b601d0504f2578497be90818e69d1dae9a86fb5c2772e891d699f002bb4d579d3023df87651ec9dbb06ee3bd4a9ced0451a1c5e0a658712d704a92c2bf21527417278c8c105671e68b06aa838ead92c6a8566ee5912a18b995e9d1b6f9978fb6e378eb0924143da6fa15198686b8f5620b607e25e0540827f3454ca9dd085adc6e2c10763a20d6c70c5bfe0bb1d1b773bd267ce33a2b9c08a04a254d9c844475cc013c4276f947ceacad1c31976898d198c91e5ebf2623ba825e762665caedf1674775d15310972ddded3c75178dc3fb715d75ed071a292040223fcddf82a3e29af547a18633434534b15bc10334bd1c8504e210b104100c3a4e596573b2c8f11c304eb88ebebfcad0df1b2f5361676f899eddf0233b5d6f80828410172c36397f9495aff2001f4667a209394a585f607bb8e0000000000000000000000000000000090d131d242e333c""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
a163f0cce9b86d8807e6ed09b486e1aa12807f2370f2cb6d886eb2ba3978ee84b7929d54580b5a86b0b7c29360399d37ac01374ee32107c9a97d857a7cdde38bfdd98150c2cedc2f10221a9061eda3b576958b8350cb89e27d4a3c30fff090a550643bdd0075da1b9831f971256805f102a6d59bb803b3201eb312924efda3e379f7b6130da6814c91529c23031ac3909d0e02e2110ad1f9d56abe22a1d359ae7db28ed5b6adfebf17055803967a1127d771f4c9adee662dbb277862240e03f2fcb6915fc99436775c91fdfd84151cf571a728cce6c4055ad18bb9ec10e39e6b3c7094ed3db3193256926a102cc94d2567a37f665dcf052e20863e9f8fc66b56bd471168681fef3ec42b641ec2eac3f42f99f702da13d9aade502e04e41cd57d5b05cde8861406b99e12e37a482014dec0cb4a6b90d97d5ed10153a23a86093105e27da2d7f3f34736f1613c4e86dec37597a85460c104508a5fe555bb77e951eddab081f9cbac0487c76dbe00eaf1c1ad87c06a4d7572c57037e94eb60be1ee07fa39b343335b16cf487f327bcb731f1592db0ea833121b21c2712374aa0fce26d676ef67ebbeb3f220e4c5caed17aadd42f09cef9b2fb7d5b5a6dd983eaf15312bb69186607bb3144dace7e4a603d3f82b7394ccfe67d555057e822c86e68b6ce0f18c218fc5a0145eed4c32a792c3cc8c9a56b6cb5b80fa444314470d72d6d84bed3db7328153899cdc04c2b753285fc44e3eab5d74e77977db248fb774166086bd37856f0be4cc7a0503a901443ae965b183dd75205d8dc86349b38d1b58ca7b8415a5f3ce70fc6fba330cb5b22067ff75cf074d91fc57cd95e74633ae348eb89efdeecb6e2f40cebf31122e0ba834cd30a35cf52478bb9e6a2c7b880a88f76ecc534d928d75f59be681a181d22fa5661a7d58cc9748eaf8d789c1a5741b2ab91219cada5047d815714c1e66e476dab23af40c1275408f3cbf8c8d7e591e571885f64c6548a066eaac99b9f92ed7c5abc4267fa926e961deb28a98fe0492085706aaf4810518bdf965ac32c6666b59eee893e773febcbe5de8db551f409593600659428be7b23951359d5394875f00c31fa7b707929550dbd62fd2696a193c49687f872936907feb2bbde12b3fd874a4e9d72d2765508f9ce08d9fbc2964c9abc93e83556a51f1e446d9b92a2834e316c822fa5f361d44c05948740ecf776794e453ca7057465e20e6819d617c8d0e245d2588e15c71e7a7ddd5cf3613f35da272c437bc8c334d6f9fd186d31cbb9de5a9f739258d44497086deb7e564a0c95d6a5431f31d470a1f872b20bad7af0a8b03c01cdf71567324efa383eba0e1f15f8474bb4e205f6e89f9a85d66eb57c6d9be0e50a958dd4b587ae9b4c3c7899d5bbf7d4d2945598bce9111ae4bede064d57f151fa171736719e0fd27625ecd15fc8b46e06477fc9c8f29c01874eefa8f7bc964ae223ff1e9c98814c01f5ec513509447cdabbc73cf7b96d06166e5524d2d433315c4d4f2e9d709fe0f78e88603336d47c7e301aa91a3fe1dab1eeddefaef17ac096017069e2ef40e3bc17035b80709142d8eed4c34637f41c4045ebedc268f6fb20c339dc5a5e89584722a4a156c26b04ea424426d70580bbfd9a2e095e5aa0ebad35c825d19df64557826f0c5c455107a5c06644afc4ad1115c1a08764d3af872ed3487a2e40e894c1515b16c953d07dc01ea9f2a54b2f2502661260e64b9a58c5000d4adede0347eb75c6af9add72e595fcac36ee0a08d7cd2da6e0bb3a3023b772c5535c3a8e6ccd52b3aed80a1f50a86906eac6a552ba07a8c7b16eb17b62f63f423dec086262bbe90736a47e4d5501682c5147c03d06a8060166790ed0673c2eb8bf54e890c579b2fa77a863411467a09a7673f5234c5213321ccada607a58a55229f8953159d3b67688305268c2a7c799a619a7d3fa69d4ca86969d428033b5adf318db78818f136f651f2696cc3aff43c3012fc1781aacf3de7973b165655f98ac9e7d5158a4edd4cc4b33064bba97b57f30908630624c13dce7627823b9708df52389bc4f1742d86b244f74d48dfe67b2076723294eab5cfc8539c21401480bcb1e745c1fe803e6e1fccbc0dab6273abf1e2f27155534f6b9a2d06aa82a7a7aadd1fc574f42214f3442422e12d3bbf7b2857fdfb8bfe4398b16be9a225f94934615461fd9a430db0c5e50c25beb3e3341e91dea7e8b3f2b05c25af2c1e63448fe311115758432cb09d8330d28398d9cb360eda112c245144742b733f524e8e7368acf8c48c1c1a3641822ff56388f0db4f3988cec2888bdee3d67a75bbf0ae0e6661582c7975e9a05d3b7b50c86359aa4240573cf27d7a6011cd295d3edf1bd0162290c0ea094546dd36d470c63166fcb4950a96f7272cc0b05144ff5d6342a27523787af5f23dd985720e1a8bad426f6dbf2c5f42178d8a71b7f473a0c9dbe278a0ec837da78b9cbe74b230db8a4079b2cc2c49539f78d55a1253995a2a822c7711f46c1cfd379ed523fda80ea91af7c5d872a5b6119cb70cda9bdc3fa8c4a83531c71f5da27ce6d876fe653e2e808eeb7209eeaf4b492c09d47385763775902afb05ab939f6406d582442ac3bf1113f172601c168b1407f701799d16b56c82da29ae0067d6c7f48c2b4a6b34d53fabc300ae7f55ef5f7094e403df40731538204b47f8fdf28f855722263e3c3f058f53e585275dd8cc5457003d60fdf32dc3703696c23fabad72cd64dfe195f2a5a3a54bb5c8e39443fc1c621fa1c140b5291617974f6f2600f47420b3332208c1f39f6155bb0c2502bcc942278ed27434077046d7a9d393ea87ac2990b9f3c7aaaa3107f40614a1fcb5711151f85f595018e48234d567814674aa0ed81a3a1b597d8c410124cec8a45cffc4acfc8a9429ed52008fe6fcedaa856b5001ce12da270aa7b7adf5c079eb88dad4d640064cf3ec2eef00934b75aed8a03cf04bd154ffa5804dc96fe81bcc2fd48b3b59ee470c4cb841b7b73e21e3b35a3c6aa8c793b97f51d552e66b8a5dcea3e138666f957beb6c64c3f8200f147bdd2714dc60d605fc6e47ba644fbe648f5cc8ea2bf52251242bfb4796c6462e48375143fc4f9ddb0543ad0ab15c54bc029b9c95be7da19aca2235085a2157b3a2968f987b738c395f99095c490f8a3f3ac186a86f2d09c8280799e6810c9fec0af33bd5b27b855c70c3b6ffa6cf85b6f76d32f076ca4f11878bc38d58e308676e8ab1587f9f889df68c3712394478987e70c3a15ef5b5249293f8e18ef6024776cf53b10f3611bae24ad3e3a4a78319e7ee8ddd478a43894a7c104e42a5b0f8d0f0774553c4efdc2bf72188e23d954032e2dd1dcbe5282e800057ae0f170e4ea9aa076c60cd4840ea1ee2d887b9a1c95aed4b0df041aa3c88214d47107f8e11315b9cdfdd2f488c88baf8479a163ca994880b3607c99625e1d1cbf59effce1661a520943242c63707f1b1ee6d331c2834e4bad510d04d96159ffe1e76be6ef380afc6234c530c479ebb1431a0eef0dad3b909e75977b25336b76899ed0ffb50897f2d523e8d5e346adc4d5bda3f647bf624b85c66c29797c97c579290f7cbfd5bf20539629ccc65648238b02ca58ebb2a8fc314357747a95d2821b1b04485320d"""),
|
|
TestUtils.hexDecode("""
|
|
506462786389055DE2E4AA2A7C80388315711A7B5DCC73F2039DB99380D48D9A3DD8CC8B929B0AB224DAE74EA90808C302197EE9D847261DEFF4136D3B2A37CA32533384443B9D935AF2C384EA63E7160BF4BEB89EC0EE705D10C72F2F65A4E75ED2B1901F14B8C1D21DA9C6B8842DB62443D3DF12969CE4E45298FCFD6FB103B87B0817190C5ADED4D04E3BA4D2C3F60CC49FE0695D6366EACB9C79F28C9121584D997B7A3A7AC3243C3C75FC86AF81CC8B888E90095051F7825294CF7E1A11464BC153548F8195522FEAB9AF5AE93C5F6CF80D9ED76C19A0ED0BFBCFCDF30FF6EBD0E5C20EEEC4992765FD23F13F027E2261C38D11FD1631846142541ABCB82C0EABEE5D675EC130861F9BEE9D9E02305F168C85201DA1DA2E4D21CF1E4BB8C2539BC1F3706194AEE7E3ABB2D7447EA531619FD27F0CC7D09E5FBFFB0DA81432D173321C433391FEE90B92E8EE3F39ED492E78327D8A3586B7052602607EBA79CC9AF21132C7D3A9931D5DB4937FD5C5611F79C722E0CDC48564E416DD251C46C02567C4059A0DC2F59A124A4EBAEB9B1B04277CC47A9F345FF8AC3F8AC844A668AC6F7E1BF1C9889C3E42C1142CBC31A46EDE21CC84F230A483B5CE23A901375B27770BEC8F0AFA25F301B7AB43B714C6D0E98B009FCDDFB75C0E26EBEF7C9DF5ED04CB4183028DFADFC09963AA8CB3A9A1BDA047F62460F2B88FEE1C05D9E68D646137F660B68470308225FFC097474B2B2BC5D50A025724FB2CF70873BE7D04C05AFBF1D7DED56693AA4A4E495B1FAF9762DB83DDA6E75F530ED5351D171B7BD06E5ADF46DEAD06AEA37CF262AA33D062141F8E394E731B3942D084E583090F9CADF87C2B81C4B7F114D150C221A12393BAB92727B828C9EB86600B969E1B80F33E1304CEC68A1B3B474762175EA19A4D67220004FD4EB0B2C643B69C00FF3876E9AF63BBEF8AB6BBBE247668DA8F2E3CFD0B95D6926AA3A2CFF4587C45DA60BDB03DA78DDD9758FCF9926FA1F080A61FC0FC7660BDE9B4913C40534887B04E2DC666E981AEEE38746C52BF46FCE0E2233CE02C9307262499BE567C150CC54FB9D96B81D3A3E200EC8F7E87E28272E7B956600DD7692799473A8C63AEDBC8F3F43542B9E399398349B896BBA16E5F26210558DDFFB984FC924E1B0D272CB8834B1FF641A894EC113460C65C66BAE86248B48F675F1313EA76EB4DD0AB6EE41014FD7589D1A7DAB16CB8F113A3FBE7E01EC67B0B3CCD81C0A8C7E9824658C926736A574E9A0729C3BFCC34E0D4BCB1606E93287494577A6C4B1090FA6B997DA098C6CF555B5574473B1063B739CCD139C2541CC3F962EC42BFB3A40F4E64D322836EADA5F574B48B5722D7809A3A20EF1FDF5F3EBC000E466BC4CA10E0CC6A1390FDF159BCF0182293D9C408A8570789C485DBB977642074C869960E9648641C2A80D8A1C4E474FB98D7A3DD75D7AF01D2605945E89493699EB53E30EBB0F936B63ADF5859D9EA1DCAC44D0BCDBF2A069982BE907F1B560AD8327BAE013FBFE6E2709C9FDD498491F1D8603F9F6C9B1A643F6FAB97DCA752D9BDA1DD6BDBF52B03ED7768D98E46092D556C266E30C77A10E68AF76AC3D359D8752E2453B2E75DFECE6F66E6AB00EF37DA6E6A367FC808E1F4905339F4FA73545D13DA7E7DE49CC0A2A63639A96EA039C4EB643627B7EC4FACA1374EA800A505A80F554B3AB3233FA492ED6C17B5832BDEFB3A99FF1C64B35F1531A023415290124EEE2C9A7E34FE8563528B6A4B64DE425A8FFA91B753973CF0C96FB2A8A3F71D58B77C93C5866DF5CB5152B3A0A32884E349C63870E9CACA82F121EC2ACAD7B6052B0D74E9C28B20C76A7A821D192E11B59A7C8059FC49662C655551A7356046D46FCCCEB4DE1F5FC91F35B950F630D743C8218A10AB25D2FAC25308225540FC24CA794EF171DAD7258C2B7FCF43297F6E77A6E83184114DBDBE408EB644ECF49E04FD79769E4FE9B0530F21F8E3913A51094D0E49DF012144EFEC415B8B2A34AE2462607E7B89BB86F0C733A5553CAAFF9B19E0799A1901657BF4FF5AD6DA7886B477358E90D56BEAC6A963E0669C38EF47173503B0E9255AF1F153E673813053A899418E2BF217D01D9162C073F256CEDB73DC062D201FF6056180A8A6887B286AD6D3BD6B1462231D6223D0DF2BBB7299FA6FEFAA9A297C56ACA28E163533406141EB2E65F0C94A6286A0579C76A3A8EF96DDDAC9DC6A550538AD345FC4AABEBAC04682D4AB0977D439CB14F02FB504E10252C1F3ED01A7C4BFDA6E689D842D9B9086517A84AA4257D1C8CB842E15DFA615D2E3F2464E4012C0067EEE60489C044F43050E5B1AB3E54507422E1368CB3EC8CFB03A887DDF9695AD95378F875F14F7DEECFA54A775C60C6B7025E5D6C0563E0E76C05C93E33C3E5AB6D1E1C051B52D2805D3BE0A4D3E8F0DCE6BBA1DF04C7F76F7E13D8C3CFCB2AB04A1E605D4DAD72A43D5223FCC36EFB34D999095E742FB9DD7B69A28E070FD28138B403DF1DCA75E00A160ECE9562C92091DFD3A24C53645DED8E17B39D8CCA4C20C96F9C9F9D14AD3B45A1E87DA75B831D400AC14BF34A9840936C3277A135BC0E8C65E0F5E670AC912FA586FBB4E149B09F64D338C8C886BA65730039B5DCD0DCAD9D6EF11C228213438A1489F4FDC39395E8447212599BEB570D186883E02B442F8BF97884EF98D3D6E59254B3DDB77DEB8429D110F0689715F3E0A4F65908E5EEC867AC7BBF27CFB965727AF0A1EF37B21EC18CD60A1C87287527BCBF5249596083069315699CAD10FFEB2D87810C4DA090074FB26978E56B7D06186C48BFA4830A0BFCEF8FC7B95E73F64EFF78043E8D93F57EF6DC636C8FF612ED22FB21174EDAA59BCF89D1A60F0E1C15C5F8EB8E6A39139D500E8F28A5DB86C125C6C76A99BC47DAF66E679121557D85F5093806B748B3EA65CAC386B59C0A372AF2FB7C84111F0E0FA2C71E137958239534C4A012B1B421435B7BB8CA577DCD8C8B0A798902BAC9B95AB87B6A0735D1839DEE336996C2357C748F4EDAD858C81E2115595ADBC173782E36D4E720A5D29A5681231F9BEE91D455554A8632F7F02FAFAC0FD9D03804B10DDF4828A69AC1CF0581D2C88877BA30EF2982E0827147766F8B71E264E82C3949BB87562F810DE835CCF78A7E5FAB219E64B1FC615E7C952577B9B482F78C0D0C512833994895A125F43EFF066CEE293004E9E0E5288A61EF209EC52233EC64BC0DE76C78EB2678559724FBC05BB5B43CDBE86F6C481AF3BDA11EBFC0FB384AE00F4ABC212B0518644638F01C38030DD05FB06A7EDC6406CA18878DF38ACE8E974123D3699613ED46673BD04ED51C352F124A8F89DF8C13D2B44245084B7FA02677D5287D22102AEF4A4A0AE046BB1C6D9FC9733AE5066C69A10589B0F33780622C1709F179D4E8857564804BF5C4D83E03484FDBD1CC4D71C6A2421AA59043DA85F0B51EF91FA5DF9555072278331BF3102F5147021662D135F3011FA48DDA7C97087F01B7F86D549F41E244AD7374C7C1F698801CEAD305026D17666435217799A4A5FD0ADDF9B8BF6E31E51B654E4D697554D5F574213CF579EFB1B11CB2C136FDB9EBC0DE4D16DC9DF43E17D88EE22EC88326F65875439066CB47E4C656A3AC59BD9A576D05ECAC5B3E7AB7B1A3C0C1C48807C06F1AE4881158D6BAE9620B08BBFFCB9940B6A6D04396014CFD54E93D863156D16F6F9C1556DB1E13E630326C8B681CAAD146F32B6977200B204B632F6CBCFB2BCE9670D89A9CE043E2004773913188608455FA715D1577E03826A2471EF0143DB3C39E03D890F0CBC85040D1675821D282822F80EAAEFF5CAA49699B68B89422D1BEDBC3041AE2A3D6D5205C72123991B21AFFB312F5EC8F96922EBB44D7A0F8ACC2E390F9E3FD82353276D73E85FEC904AE6319B140E5C54FD5B6F19D17E65DAC5EE270DB3E402534B0F408BB3C554D93BBD32B255D478F33BEDF4A192233294B320393D38284D7D9987708C019742F2FC023C041219FBFE2B603501629BDABB9C4223F5B751DB78C144CC50D3A35370EE563D6DDECFD6D715F08E14A00FC265D8433055083048396F1BD4E9F010EFB974D6102401B2FECD972C26008A4B94952EBC61C35DC846FF7B3E20DD9C6E033BF1185F35A5F02139068E1D4F30C4778FF87057F34CE1D2D40BB61423EC055BB57B56C502DB8D0685B0ADA42F9C52B590610CE2F8237F92B71B3AC2AB75D2E6ABBDBAA1E554D99CDB687B72DE98ED0FCD618AF5D2B0196F1D3C19DB77686F01228C3D1DAB1F171A56DF9311939CCED0F7B22A1B77F473E8DB65C0FD6E307B6F7A0F0FAD69E5C1F87D01EA4699F4D5DE39880CF2D8E910313AA6026C17941C41252C06687A085903A502048726AE8EDDD2D8918B71A19B807889B6C2E866FB818810F427D2A7B6CB137D94746A88BBF068EAD31216A5511A54D81031D36C8139776E0FE29EF7C8A5EAA730C3BBF05988BB892F699F72F098F2931F9B4DA17243404F64C311767A98547284063D44AE74735DD246B0C189DB322058198F1D176EAE6E076965CDE68DD0DF2B284D23B94BADAFB8650F21B148B9C990F7044A777F9BD229F7905B242CC2E267610A42A5C3185C64079DB340D86598C589F9A96F3741356BF3E6D2A811B6551850F917E07E5289A07382B8B506C510C9396DDA81DB336179EAC1F84DB9D0E7BF52B906E82FD132647A84A299BA202DEB338B79F976A8D257E246B2B1B60425161C72D534B04355B2665129AD8A44C09D73AF51DEE7043228EDB62B858399B5A4312DDD7ABDA09A846A60FDA8D0C00E0ECC364A6CA95643FAED93D44BC8BF1264FAFA6D98528CD3BD1BFA352BFE1FBCC202F44496FDAF9F9EC53007915EB67F9F8BFBC88D82100210CD471C48F5092AF4253302475F9E60C287F0A8549DA00538432A342814E1F6043BA4355D72268F6E84A43264EEC3CAC024DD6E79143EB502A58E6F8478AE985797F00A295E84A0F669BD9252A3AAC6B2AFACD7AD398DF546"""),
|
|
TestUtils.hexDecode("""
|
|
fdec4bc58e167745f07a2c4e30f8d8ecf9c7a6eeee6793f77c27353dab270398dd811c611b6191d597edf44df73fdc14bdc440529b77ffeaf18ed94a613fc3f340c55dd156e8d56769d509416beb75167dedc3fa35281ba7913e94ff5a374e0647a7f6bc99ea6ac30c3e477e69823f663e8748e8b5fc43f1728612d109a2947019331c718ac31e663d44041f88b7861e074f4e1c12ab2077dc59587fbc451aafd29e9a7d584b744d83d36f794ad034c014bcee229b847e8bdb120407201121f9f58fbd0e17ae318dc1674f1c7d9d3481629cdf02fe819de516854b2819cd6a9e97bb92662757a9861c113f67ffb191a086cc6cf612d13f0147bcda5fea3c05fd29115359bbe08a25c33a58a3b38c3214f8e4379b64fbabb00a7221fb01181c7cc2dac81e6271550bce192958a93f2f5a11035b411a00b610728f704d59d7a7e51ef2b06a2000fce618a6f82a06d18a899f7c59a3d12141979e8ba62aa4485caedbd6b8ae8f2dadfe21b7e27f911daaa80b6e22b91012ee5fa16164c5a734265b81aedcbd820b8fc5c8802a5e7cee4f50adc824dc0f0ffd626aed8fc5173b51ec373dfde19973df541b031dcc238a7fff8c01b36f8df74a0a5705a13880f1b49bb82cda0faebcdb8445048ed05cec1fd95011316a53712241f837f7a544c99c631422072ff58f579e5148885f5df4172044aa9ac4bef20e852b46ebba4410b05a5a8cd5993203f44075b0b96901fb73e1e561fe40b0decdc4b719c16391891957f97bd0eed0ce3c3b82f83d0afc9658d84d5e64bc83b2b68762b00eb2a0a474c2386fbbc87ec8b2dd03432506169f3f58f69f0dc62f140d437ef524700ff0e55e39264aaeeb3fc62940bbddc9fd1a13b9d291d82705ec87507e28c1ea90e15c8d3d6e94a66adc386b10a07c81daffb2b8d1176b958f61370ef1f0189285a49058a31c2257939df230e1218693f3dfdd9820407b509f7307cbf02b1dc1f182f9b3aadebfa7c73a6d6fe4aeffd3aaad272443df14939dd94af7543aae1212bb24dc7962e9e96d70f85a17464639f2e89344cc9b6867a6bdcd4191c91da327a003e62c1117af999f2f027ae14522bfb753bb93def9153c2d6c2a6fb8ffbe7923701e516c6a9c67ca2b2b5f66cee09864b6414716a0684fd2e3c2ff1f1d09731237dddad175b9debb722728049ae1a78401b7dcce662fa33fefc2c647b116467f25a42a932abe1742b1f486df764075ee8e765dd139f58762f3c61564b5fd52d4e511c900eec222116d27ad9dca25517449bda55b1509569677b2f0bc99c4d22de9114a8469a4e401f33e7576057d4f735e1c7661a8e986a5aad28026f6af030242535fb87372ef76023761a2b46fe30002e947a0b208f95663b34f8e92f72f8c6b58a9df690426c3c7352b8100c87b48639c072f0ad37f66d2b0e6c84fdbcb7ff506b911425a260f2a4e3ce3d6abf5d42af4fda4f37d0d4d511efd204c09fdc42d868cb8e036ef79b2425780df904fbef6e22f5117434da776e99253f0d444d1ef9cfb10f4e0782d3a5ae10b1627f7b71b040f081c6f5377dc927e65965bec75a5cbaf4eabe36c65ce71c75476c0b962a278077bd765600330570474fb68a30e9e427030825674408c0534eb2db8dfa2e986d45f06072cbbce4b3a2e03a1209fa8a9eca591128166b40bbb20419d31bb82e30b2ee7962c9fef7e788b55be7b9bac11cfbce39259ec32bf200d0b490fb540e1d218b52d04dbed8c3f650c8310e257d887c472e24ea02d3108712fc88de316657cadaa0d8ebc417da228dbda1ec98a61d1d1989dc7f10a0b4fca9f6dd2c614755bfbfe26586fdf8046bde39a2f8130d5bb9f55f67db1c9d9c7e626641a97b09d4dbc3178039d78e92b5049b7a5cd637cfe35d6c6b86771db2442040d15667c256c6beca875675a5106ca68ec6f7a01257c9c7b3464e01e8146085cc3a9aded04711d2c363cf7f262ef90f17c8ea28a0c15fc2eca9d970b33ab22fc43619cd42839f7ef53660e9aa88a32fbdcc5a74f370c6696922c4981048cde02342bcd5182f0d633cdc90b383068178de2499d41159d32f6c22989d230e0802ef40823a64625003c29b0b6c1d9eb39d15baa69947508c141dd169caf1c617a2ef16149876a56c6b2c4a92be4d48b3d277bb5967fa9931611a57893486fe3b8e8b92a8cae0496b0808b49b712cc6473ad44216ce3d1855d704561abf8988ca52cbcf7cf95d6b071acb061f03aadf2c50c4159380262edda1827050675cc375a82010e3e3299911db2d93727497ca0d75f5e539cf75d412177469afd91b1a8c8f36a2e4ac5484020eb0c7124ec570f94778e8a43e80d8fe145205ade385ea279d4bf6c4ce8998b118147edf888391488596f2737bb381cf46c939db876de724e141dbe7066f4a13c35cde58c718bea1e2b75f6b6d9600fa08835abd0863f2e3fb8f7d776b1604fb068f0c8260672fda6062e5585c595b087e399f6a6d1d26857425f600ab13113528bd2de7b8b78e933aaf344880e0aa06facaa7090627b4bce3b193308f8c152eb82e13573770e3a9171b2177e9593911ef00efee1237166261a38111f07cacd74f6a0c2283757f182a508ff531568cb05572eedc6e5b706c5ee3b3e8139b7ff6fb42a9b87cde81b21ff2e6e48d0f89a8adb77aa4be8db46ebad82b4033e857f6575c1bfc0500ae6b95c4c43843cbe7d83e8684a1275ee586e50b7241ddc72c017bd7d4aad25e468b824a043504ce3950b79a5dd2919fe3411dd250ea82ce01477306b09d0cb9a789bf24d22288e73909a57ffb7a1a395be080518d4bdb46e8648486ca8af29cf0311548690a2800648cff58534afbb5226c2e860178308236beee319c14811354b6b05a324115dbe53ea9bf37b7f8284f4b39dad5ffa4ea97ebd9bdf35d593d63026667da30e0df76941822908f6df732a8dc018bd2a93be0a21d64e33da01292fe3fdb5370a0fcae68f860af88dd8a4055960621524ceffc2391dfc237205efadb78f1df769e070b09431fb7206c2cbe3319312668eedbfdadd9cd246d3d5dd648d20758882ff7f3f156412394b7568dba0150e27fd442b6217495d2c42108e9f16e9167684caa81366cc25a31766e4743c49eeabe051cbccf225016f067939b238fa3e9330e4a7443d36134d7df29f8b260d0b7a3e14345b497de4816cba4921e18dc9dde508075da67ab8c210c730abeaddb040cf4e673ec03bd8d803fded05e1256d90d3c050aea4c223c174dc9242de76e95fe9ad0970c3ef6eb5e7afc8725c77c5fb8d265699779f9cb2bf8bb26a095472c939bb3356bdd218f0b2d99b29f0475a4858dba236123ed647e94ed485a1aaac64b7c2ed19d98f2d24019055c5c7ecc88ed2cca17019388419b3f9819b489eb837bd3c7daccff555c7daf5e5fb5c75694c96f566aebc5ad5a48c6f272f812b4606e21473e295c006c190a6430f7137c9ac20727e68b0eb6fbc8255cbab5cf3832938b7d85e6a4c46e7f7051571981bc3f6f86b9a6b149ae260360d21587485ca40dffc6e93c78e15b875bc82d31e04538863ad8bb8f736c23bed9a9698b51550f91caaab6731bd6feef0226fd3e08b3dcccd33cc6f7c8d8d36e8ac344f851c3596fe6f432017653df0030a64e73b1758322786694613bfe06cf75586e12b92ab563b583161292f328b56ef3648b050f75fb108102f0e28be8c4cb7dfc4283f68eb6bede47696b1c9156194c7152b79a96cd36639488215ec9d49f8abcd5264d89b51d72c447e31ac2011f7223789a82c702340a4ce59a298713aa95e17c6a3e92011f5ec81a3a9b6537f1331ae446965e58c2e1aff4931824fba76940c5f0abdb079f4ba8b32e169e3947594173832dc34e824f296e93099ae8e20437ef564da9fd48d6b6a2cb938a9cf884fcf3327e1ad935257157d0e8e379971cee3d5df59135207930ec1212b7f38b324aab2f172726712a9d60e40a0054f26586d5b3a794edf8f33819da983c209f9f4b514875975e40f72cf9ac1ec28811cca5896e9b4cccff414650d00e71ae2e37c4bb03274df43ea5edb923e157ed3adbfb79b2410b088c6ae9f78b10eb87b0d336c5adb19db50093a7b26fe1f39cb7c6b19001e4baccce386684acd8850cfc64aa0e16ac6cd15625e73b798651fd44828f2d6c4179b21af6dda2262c79322f41a49b9327f8ff0381fddcacc5d1444f449b54d8cd0103140c292aa49bd3a807e5af3fcf33a0176a3bf32ae337c4e187cff519a2589ec5a75bc531ae8092b72fc906f1d82735070b76818d0d5ca9266e7c0f4b9506f8adad55bd8f04f5b9baab4662d20eb3cfab00ab81bca5926b6909b5fd30b14c5581152aa37a3a275642f790913aa9f44f95161bb00c736eae908f7b3c0745514b595d947f97e67758cca97f754cd359d5a4cafe7884c10f379c9233e8f9de5e1a4688dbf92d92a256eccdf06819d7badfadc0f5235b3fb9c66cf65c6d755c5aed48610cea135d8e1bd748fcce6fe74cbea0cde943ef57d26cb7d0699f9069ea14ce1a66a5b57fc442c123409b896535283cc724c27240850ea8b9014d01d4ab2d8d151719f3b2421b60e2ce0792345f88bc26f2e3d4f9cd3a69777a114014ab481459d5c5d74278cf1c0ebbbac2919fc1a77e0997aee5ed24560563448b471e5679b13adf445634742ac1acab6fa5a0b6a0e8e285714c12fc05031c0ee83ed821bfeb0bafe978f785ba36392aedeed53e4cdefca5f4026b535d7a1a1c4ec9155b42f79c8224d286927c8af6b24c0d87e9089d2becaa48f11365e40df4810dc90e12ea6288cbc3cb2b84ac36af1867843be343c3c734eea10a54519d9c6bc0f04cd978360d5eef8c5fff75a3e4748d4dd37735919a1d6c7c4c48f5aa34567737d3084686b1fbe2f23e4a639542cbbe7f99c18a80f97033795a81c9ea029d51e2111e59c7b66a2c78629a1594db70c5ca13f3a55cbddf56f1e66fc9f3176bd073532db09afdea26530bbba27ecac9d5c164ac88f7fc3fd71781dee0612ec04b790d66bef2f748e93a6215408bfab48c4932277e3052dacb3384588456dbf15fde73c3a2036123e99d698ac5785f7027bdc21a130e875870513c1acd7802959f29cc2c3a27c1d9b97256e48666efe178bf7a1b6764cd25a4e8e97f0f55089af7fcc40ac1c3174f9e9d7c2601c8ccdb7c62930ea25e3ad4b63af9c2dcfed98ec7360e85327622f01fdb3617aa4c47ceae1dcb3b64471cd1d810d03540685d2a34cdf58ebed79b81aa1b0d2157f68ffbccbd4e617d61eb23c4c77c5bab60c1bc66e021c67a26e383aa01d3b9f53f20b9ca367d1e571dbff0bc8baf1baf9a934f7cfd06103aff1db525bcabb83b254460909151355d60303b86bce2a5d0642e951a5f1b356fedc9f6cb84fdc9c30e39231b15ca1d5e26730cb175803f4f9df3521e1f15ec7ad77fad4664cc1f96813c119874e5390b2b3b04682bc5ae2a81788426b185f57b308e3b061df87c9e69b1629dcff9b4104146c063143a40219e4c0844a58d2f91cc58dc9012de1b4c7ad6afa9ad0741fa13c651be4f27b09ec40d8bb47196068ce43e9585b1813ac01825dba7b02aded59d3df27ab5a18a7100b5df7f68b51d0557a5c26d794cbe0a63539a16e1c3f612d8a30965271ffc16a088c9b70967ee3229e2404d793086ca6f378cfc5d0c560f9de81493cfebd6349b7923e16980d2f04c5c48f7f85e56853b11f78e21900b9d9dfdba973b87c1db5c860a4c890292c4aa4760cf5aa9972a1db9ebae714c93e29af2d9b3ecea7e9777e6d4fb2550f3f952666686cad6282e0dee72b88d1b68bb1ac9021d89dac8a56a01c0c2138fd71883c7654f30117019dc70c85fe42cb57c23a2a37060402a37f8fae690abd43221fdcc23d992150de4ab217d35aa5752c3bdf2fa3fdca3202f7b0edfa83d6a0938a3e2349c51d6ce1680654c38c8d6bf2659c1885f8ead0bd687cf56144f1fa6f32e90e08f059bcf34e3493f42a85814c24cd68103230430567a960618dc99cda88cadf09e854acd79a2a54dd70dcaa5510e0cc3e4bd32b86bba8f8cef4e08867fea37a14d3412ab5f2c36c61e6e96eae2a00ae94dd5f27d7a914fcc2eb6f88b8a73fb0ecdbef7a4e2d15b7e9263a37880d242f8c230afafda5a7e919260b6e14a8d65381d73878858b0001a581e7add55c06ce1d8e30caf6802b33805e2b78d4b8eeeb20c747f7cef3a27cf17e3c1be070e8fa1adf20ddadf2e46e53d8702d75c637c2e9d9b244e12faa41f1ecabc5d98979dbaf2f0a00d061f1bbd0231c94fa5ca97a75b93a48bb3d2babc9cb0a589df0f8cc72265971e49172b588490752854f599ea4a97e71b0a6d415d058dcc875ef3f09c37fa7e4c0f45045a7bfea8fc0bd9e0c1eb36a0d3e7e03240baed7cb5d3e6aa8ceda0a0b394584bde43190bbd0ec6ea5fb3973799db1f0fc11232c3e588ca4aadaf4f7141831468183a3aed6fa4caceced00000000000000000000000000000000000000000000000000030a0f1219242e32""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
89ad3b5244d66fc84f3dbb02bb51be6fa25bd2ea3deb3bb6d964448351d9821f8b1bb2aac85f6bdd7573795e228fc04b4b30dc6940c3d6fcdd803035a8d61344515b7983ecbafa0c23e961ebcce057ba857d058576d0cd929d9e5538c5b3818c2a697677ca30faa37b887f0309a8f59ebbf7f34b471abc65f533955172ee610971f85662ce59db9b4c7e49e75c5b03239533094362b94d5d399ae4b7f94d0cdfa51e0bd6d720eb3468c177273c3c0afb7569ca5514849053e433464a6136b160b35ff19406613e31e7c3b8265b585792a8e69d53a83498b089da59798b54d62cb669ac1c917f77901392fa1d667545e3103902104103c2ef080025978041f324196cfa0de5d9f4e2929b6a9a67057fa479c9484ce55165c9d0a60265b2ecc69430e3081b1dadc91056c8ea701e2ea48495153c86ee3b317ba127aaebd85349b94cd8fb60e28a4fd027ff1d96da4bd2b8fd1c0ded721f61168dc73823e9b68b8f6dfd3b27769e3f737be70a19c20b5dd06f91c5172eac3077c2273aca458315bceb77f3d2e84e4ef8ab66e26f8194b8fe666e66d34bb779406f1f60245e4014d4aa8b6d265c9ac85df71709d9d09cf9278d1ff37765698879fc3fef617139998f37630fb51e76b47dff86c367e270905643032387bc4fba84a63c539ceee7247b68e95a5c513c43b8b35e2f1228ff1c06478dee9461eec9763a227f9bc90db9c20796dd98c5d178de643df332e229daa52a1bfc0f445e2aa8ea64f233aced5d7197a32dd2954eb8ef28e8ede22aad2edcd334ea41995355eed254bbaa46af4c00c33862ce3c3f88bb2e60f6b1b9997769c91e4aa6e16aaba35688751054abe29545527b761e7b84a25a7c932706a772918994b446e531e75c94a00c1e4d5b2fca578664ad492517d149d656de717c834d6ed62bec4b78a6a7290497c0f6fca54de83cb42cf8480f67e83d0226f5b6f99562a024962920e75d4c6f766a6de0d16f7965d0b68b322743ef29f84dd1f374eb4e2be7b6deed0ec99c778994e2b267edb1b198e49a27d54306a484084d9906425be4232edfb9477651660876dd3b234c16f30496dde0704004c7474ea045ddde3ab0a13f62fc5367a4be561e1ff50a4d035e6360dab880429471ee57ad84898732d9f8f93763624ab53d8ce7e7d03029749ea625d424da59d22c593302cced4b7da41e9727cb9ee5d4a5ff5c7e6e4a2ec98520553d90afc6d0928201576210ed2dea2ace73dd5c072ece53068bbffe6a0ac44767df1433b4353540595f28d0238509f52b4588be42d9eccf8d3480199945e2d83dd64e279e25849e22bd4216af75045c5bc5ace43f3a5045bc15e7b6a8e099a709afa8c86bbb5c153d6d5cc522c115b56dc6eab85f76dddc857369c3355c15d9cdea649208c7a7579380fee044d98f8f1f6b108589a89877ca10d5bf94bda70d5d218efea9a24b9b6a6e724a056343099c04b2a13477d6d87c16817ffbceb55ba0046d1840e1f9d1e316fe35c6f06b4cec777013960a87712e3f33bfdfcca8c214bdb9a646d2eaca0f8ceedbc230d888de849c37035b550f17a927129fc04d4a51508a36ea478127b87e04116076e215aba3a925facb757bb5947c09e1cee47b4987983e1bbff5bba5432178dcb18b4f58c4aea40732ded1ee98858b936998fa5e7539a81b8fa94a852b44d824c3607856f1de4f8bc179673e0370cdb4f57f9c1a958174dced4f50c1f7eee29f8cea9518b48986e0f8867d96b0b497fb83a7feea379ef9fad3792c60d3f0e08fd70f09065396c9e2b1dc3072bdcd85ca66a5e541ce76426a56ba840a1a14f080dd3efedd7b4c1aa80aaab9c51a8878b7d7ba79122fa3356cd59fc8e616587e3214bd925808b5a7ce4dda34f42c76aa8d2916d5605c1d265f9abc7228b680aef5ae5e71b2281cc3765ba98ca9771dc2f0992263622232ae9aea0c790ffbb765028f17409a2e19a9d3ad5bff30c1e82bcb584245183d70cca5b2707384ae504f3ca475d2daedd1feb8ab8bde4e25f25326fe9e2f69557394010d346b025ad480306d46b259329a84d6b9477910529f6ebb7a92c9a196f495700729d71ab94890f1ca2d4a34128d1807bd2987df2b37cd490e7ebc91167b9dbcc34fd896089b748c63d6b6b4c8cc156b3e554f326eb08ac7170894b2eee348c9478f1f2ba488a1c3ce8ff7aa19a31474a8054de2b1b14bee71fe4abb259fac2da5e7e4a43f5b70948d44d03d3be1514da9ee932b4e4415f5f70de11f5ed3f437d2d0885cb7e4131c97760ddf5014b137e25869daaf0302dc26dce0b557187d418799392490c75dfb0d40469eff1b83ccb0dcd48ef1175e9c035b29b5f6c93ac5fe41b2cc2fc2d7cb8912f6a1f79d38ae7fba2600ea9a91be79dee4550fb613a8e29cd90e575cd55b54a3375a10bfe6de49d33f0d1a3f70a9526330c97e191a133a07d49ee12d9fe18c7c1c1ba5b6a74ba57c794e296e95ee063d615d77048e919977011087c419118deab38d7df9f7e79ecf51e45318df85820e2bb7c2d69a11c17d31ed1e86df304a4845bc8cee05d36f59d610a20bdf9b16e428fc267f585faa573b779bbd6e540b3e32ad3d9cd1c24a818ee83de5a91008e33e0a46a511c26a88fc61399efa2fdae38f75d1634fd57f9849c5a361b94f8b97c04cac9c0f7109bcb638775238711867f7b32b852feb3ee5653b0cce063415c9fe9dd7f8add3e4f996db03ba5f37a1cb344693ea95e35357772c68d090feaa3d2c61f4156bc530178b70e4b9a8e75aa1c3738a2219d3fdb5dcfaf5d9d77b541c944eca7c9af42a358222ae334ff5fa5f5eec2367040414d01b4c6876b79a78c006afb5a357a78b96ec3d502de789828b04eeae19cfc5fbfc01441da3e86934c4fe38804751e2d3b47d16c5a9a246ac5731186e97c9671eda1fd0f68ae37c00065b8c4092640153d30023a3298acee9550ada9aa5315c46fa879efa35280074f80b3a689f41a3408881f8b9c42eab59dddb4358776dea5d7a553545ac5a6a9de2ec05f70e29d81627eaf1d3e23eb019f1921752779b71c2a8f24fbeb800a12556cb12cbf7b426d3aea37a32b2782894cc23b5fad1f1dbdadd1adcf9df42afa30a2e2829b12f6050156d6c5c39dbabc32a02dc4383e889b0edd16c3061f730679a7bd95c07b197076675422e480d642c7b1d1865a7c472b30c50cadbf222374ff392d5a9f72dd8441ca3f3d688366e7f918142bc00e5045cbfa5df33abafa9f22a205bbcb1f3009b903480c5a72f804afc37808a29fc5a732fa606cb4b9745dde61e50faf8cace5b203b3c24828aab5140458cb4acd31d4795726dcbe47e27a48705062994584a7f51c3ef1d2e3e64d1149da353fea5ac3fdf544b5faf728e675c77341d0c6ab0dfde580a0cfa07ac93f4280357886c072b2afcae3c0c678c9003ddd1a0d2d9b9a04e93789cbeee7a13a58981c77e6f8b6190895d629606bc1c0f38b2ba1b1507c1a7a02d195c4ca2ecea6de3f793eed2541fcb96cc2ef03f82ce4b23ff0b5536d64c178dd6d24203409f85c8707a319cacc11ede0fd14344f7348908ba8f9179fef6c7ccb52f81c5ac8621467ab977d59ca0ad4bcaf38d36fb2776e4ca7e2c082297905d4fd95a7dff36857b3a4d45025eba22f3a893c748"""),
|
|
TestUtils.hexDecode("""
|
|
701B8AE25CD8187095349A4D41A067D4FD48732E62547E491D38845B3507A7A6AD8F8AFC53D139E47FC5AF2723B1BB057FC797519AC93CFB18DEB496BD9735455CBDFFFCA5E69C95990EF89F509728D1CE41F36A4C0364AC8C30E3EF67D3F3776400BF4C838A477231E455FF76C92CFCCE1B69B00F99451B0A8287ED59CD79EF0D6E697C93F7ED38F20204921E6E2F141D3DBDE1C201E5CE7C524370C339753676746DA5DE4A398CFC2CB1F568C16D4DF34A27CF04F0637B1447C6CC83E965A3F86C538CBC235E440CC2D1257CF916421EC75928DD6DA3CA002AC93C8F464ECD522EEF7E048C154D73053DA7BB63A5DD845512D2B6B7D1E7EB5818D170D14A4A698C8922D69A98319A10E0AF558E2318FC390ED990B75ADB50C6199DBEAF5D53B49235DE7CA116932EA38A109322AD05F5D681CE25FFDC9F6A05C4ED2EC6D4242173D2039318EF7D0733D86D57C4E114B3476392D47FC68796C9F66B1F1EC70610E1D57436614D5969564DEB8673686170E40BF5CDE506F7E70964E07258D4551F5EE0BF2651F8BF3D3177DA76AE90FAAA69C4F373E664F0A1FCC62F208A8BE130C499166D13CB34D77FDB32D5A7F3AD38856BFD3A0419B8744DD2F186D03E18634D826A5BC87F1566FEF88D9ED93E74ED4C005EA3EE2EB22FF5DEED283132D00C7A0B131BE1FA38E30EEC68B748AD533BFB23B9A14A936F609D4C560163235367B0D64C2C796F1106A1A9365E8F507B4BE0514C849A81E2C7388C8AF300D98D444BF808C4F9338C47A853222D5AA8ED283F57DBF0689E5FB89A456005B6B95AC3D791077C79BAA2BB42B423F93A7D0D999241AC5B9D64D65274817F9BEFCEFBCB4D5CAA67427F69ECB279553EF0D33A19E14FD4B284A72081F949FBE2A7543497F314CD7496EEE866F33102BEE5CF9C706426EF2365EFDF1AD141552BE65D1DB4373B0E8D449F3FD1733AA164C1F2C24F74E240C5096CD201A11113D6BF5CA19595C4B0A81E1153A4EBF88F38F1812BE517158787F2B378E8E32C9F97432BC9027292E5EDD7DA64FC6A32788154B62E40A85701895E13287BB18883820DBDD7647AE4EE1FC1D43C199EE69B1A2E2A7067AFAC541A8F44E660B2A7C114F402E2054DA7ACC41DDDEDFD7291CD4573DA22739C7785EFC2240B27A90BFCAFD1AFAB6C2B0EF5509D0DDF349C173E9A6C906BAF5692C39F6E0D1442F84AD2FC118A14B12C3AD5DF8A79056017F4FDD76603717B080E3AE560D7A601EE7FCAA36DF7289AEEA59EDD0B73BE91782377150F03C2C2ED40F33A250356CA17E153480A7E848F090DDA29C65FBBFB495FE9B7A2BEE342C7D422F28631A8C9CF643DC76F07F162DA1AD3F24589971032796BCDCD262F55A8C34FFCE05FA9DC001FB35D6FEE75B42DB6DDD2138C0517D003512F0EA8E982C2ADB5E5BC1F19B8ECE67E4AA1681383A97976B6A8F2025EA80B1BFA1796C27F6A54C583711E2EA46D85C515EAAD22ECFD68C5D02853D688302704EAC4863DB1FC69F8C35411EC6F4A9F0A7E7B3385ACF6DF805447BFE863181A945E8E7944770340496F5A19CB7DBD0D9010B7EEA3C585926408FD40F245D852DD208EA97CDAB0C16C1EF80B3E5BE77D953A04C1B6F53A23080B54F439705E417B9874B3FB524794D26DE3DDE88E9DB9FC36B1508754EB51D389FCC46F822F50FCE199DC14E4B4468B8B15A2460EAD05D0C47668C05A2315748897AF99D320E70F2AEB96936D7D739F72ABAA6960DA6A3996988F6A3F7AE7772D49915753B936367E022179E69B6853E1A83B429B42BE19EE03520A5666124B657D2FD6D15447AEEE45AB1FF4593DE9A2E6D152C64DF45C1F62AB9B67257B2A2115D224850A3AB2FA028F8F9FDE7C9A9FBA2FD291346037A1B4E00B0642B07ED54BFD70F3DCA3D1B8628627859611006DB2DD17A351751F85C60028DCF21481291526B1DEEA4C7CD2D3230653E6FEA1DDBDFE1BC3DA93FBFCDC5A405975A5DC68DA0D8338EFBD6CCDA1F2374D72FBE007599E81CF7D5C37985EA09C561A1EC40A70784FC606FB7C3FCD981F112C599C78B15B7739AF4DE129D489336BFD3966C10363A60E749162D1D8311C5E850B22910B999080DFC86D1787C35768CD5470E9F7A51D4EEBA71241DB57021D6569ED2BF201C06E235D6621B292B686D23E29DA4E81C873371593CB07B3DE46E91FAA3D4A2AA6F62FBF6BBF1954647E731AF4B99EEB3C0FA6385699F8EF2D8E1D7F75161129A1C7F8C7C68B906EAB8DAE8BBB3541FBC65F36BB67ECF19EBEF54BFC2EC4E1130A2E4F36B5644A73CB0E244738B6E5788A4B4457291B57F1FDAD2C11FE5C7DCFD4E742A0AECC460BB660D7BFDDEE4CEA074958AB94B6FA4CCEFE02FC7001D3A2CD013684A1ECC2E2F6D90D246726EFFFA99C12D1FE4AD10A6BE38D70AE3DE5C4843FE6CCEEF587191B56F666C1662F5C6FB03955C557E1B4CE247A2806DE39EC40CF8B97835EB0E3F2D829E0FEA02FE60C934FE72A25930FD6692B9ED979F14536F406F04C3CF0BE98647A5967B81DFAC353A2F8236FE147BFD7D3731C49476C3191981C9AF239AE8C72570C6C53E7AADD48E721E623D6CF11A1E386EA7C30F070E7AC4F63FB42AB74881BFA3FF3E8A35EBEF04D39B853DDE0FB17DD9DAE37A76C96FF55F64669CD9521DA3900B7CB297E813521239D87703CA395CDC8D8CC4EC21CB10A1C672493E013EAC0298F8076C8E0B56AFDF9C31EA01CBC1BDA4AE17FE103C9812E940A34EB321BE7BB288CF8BE7017AA58AD528C9DE09E269B10C6FBFBA5E8B6883FE7E08A0D184F8561FE3F43582CA045DC25CABA52C0157495410382A048BA67D051EA115D867D780CDE5EF512BCDD14489C43604F86D929F83D118B905C63BFF451FF3540E9E220851A402BEA0DB1A7CD94DE0407AEB9CF862BFA3FA703924D0A4803C463AAA827A04B0F09556054F27DB98E22A96D07F81662E0E910836B9423968C3F002E605BB688720FA7CF3167140BC21398B5E4968804F3C3065FAF125BB6D887C869FE3FCC27D88E048FFD0925E748C096C74BFB1E54A8FF6E2C838F16769FA4D8564E5CCC58DAE3B102EA300361EF89EEC689FB5BB0DE16C5CA98A60B8990EEC0006A147036871FC2A6ACFC6A6EC907D28E18A76560A5436BBF9353789C8A5DFE559FCD68C117066EEE5B00F349D6591E104295E78F445FCDD3D6883DF50D1DA6A04541C7E8171523FF36A9C072164147D14985BA30FD449667B580D73B06A5971B720A8B1D2A6896FDC5E4D4DAC78353ADC3449AA53919AAD15EF250AE12E9E40B8487F66AEF0B15E42BF34AA816F559062EEA24EBB01BA369747B29404DC1F1108DEAD021898298E72F4BC1DD821E4C88329D6F03F971F554A87FEC87F34430ECD1CCC6627D8CA49EEE1D5DA6704CE960021C847DAEC2DD544D4EAD2E2086058CF131296B7F4FA4B71A1DC6D6C642A256AE0C0EF9D1211EFA3845B12243BFBCB4F423E913A2976C1015569ECCBC159AFE70F1EDDC3AFAAFDA45CC02EB60BA0DB9EA83EC604113479BE848F381FC63C63B3111DC5179A637E0832A26EA32555908D79B308351CB104C43668371DB32056BB63540B9C3E5551A063D2B525F8A016BBACEB402CE7D7072CB9F37CEC13E1EAF7D867534C013D78B9DFE01C13DDCEC7A3444AFF9E182F12B6901CD9A70F21908FE692E4C0536B069C89685BFA9D973983AA8C1DA461D18ABD27A6A717D9F2122BEAA9BB1742622F51FF616FA2EC3A6D4724A3A9215D7B29A1BA372282CCF60DE90B3834FADE6E3743AD6B2F9B7344F45A29740DD7DB2D642F94998579A5DCCD2EFCD2F7D08486BB327B844EB19ACE3B4FB0D85F8A24FACBF318C98199A0B2C7FC2CCA59AE84A522890E22C2A7207CE91623362C7DD8E9F946817C75B71FB9654E2B7F2E83E46E75ED5638741E414D7F8E70914315F0E37B5B4E3E1CFA8288B1724113E4A00B59B7764C2D61443537849E77083FD13BA652001F39DD9BD4B20AB77CB945C5EBE686A0627ECC52F38A852BC9E1AC8D303E3B96D9D086920A19E5088054DECA635E802385600F673D3BD0A5CBE7A5B9BA8B1C4B73B9246C1A1C1071E5F98ED42041037FAB67184C89BF4FFE3CA0AE2A9BCB020F390F0B76DE2B8AADBC99268D3A1D467A024184CC9A455A8F2FF287A4C9DD1B0C86C8E176BB15B12023B291D44E7FF0C44577F7A6D788D82A75C68C9F5BBE504E7D64FD2AD18BE209E85C45627FC045BC81E3531A2B886173F3C3029D1FA98C792501A4942C72A7A892232F390CCBFD7863AC38D837755011F919AD8934742D0795523E6D48A958BACB9A9F7B9A5A9D914C37114CB111CB536EED3D753D6333219EC993AA5D39BF74E8E9FA02D8BEFF369EDAEC67A5CBD128FC9BA6F82E31A4C59D783A99912C7C389EC708824AC7FF05D56BA6D228C0A9D96324C6D9725E3BE17C44CAC7C4D49235BD15384F95345DC36519466A13110A58300F7E3362295DD7069DC6A88B542F2BC5C9F33328D9D8D1683902C025427F32FD562BE3F0680FA05851296E15C5FC67E96BAC924407AE6BE37E9B61D9A6383FFBDC6E77CC0887726C474AD735BC50039AEC665D827B0F6BCDF7EC87EA6BF793386F2A65C997545FB93F0D53737C53D00685DDC13960AF2632380F105840A1699ABE53999C568978ADAFBE21913193DD0844D89BD582418BF8B6BC430FF1FF7750AE8507495C14DF21A3437AFCA7DCEE7B1F1247C802081FC5ACE5B125AB2BF11ABAC97E201EEC2A8C90ADED920728EE77E1FE2BF31A222A1CA5263586A16FCF80E582258654D0793B1551EA3C24C4EBD27C52956ABCE6ACD05FC2F088273FEE8ADA0256F30B5ADA8768D8E9B70279DF95AE5CC68FFA99934C7520E12F57D213FF18ECA6046A9A3F32E280044023220140E2485A3B3EF7778006B18D4A9DCD177D190CD903CAC1EE0897F58762299A0E026B8EEC6F4F3D0BE1F070C648A2D73869F22DDA21246CCFDEB7A9784AE967F0DD0A2011C637099AF33E0D608AA0A5B2103060CA1A6718328D451368EA3049FF60FB66FE54E778DABC48413966EA14E22083A884E8C8EC33F885093F01B5E34477745A9F82C645C8C5498306AB00B78684252ECD74C163BB8AF9B49AA03E244F4EFC4A2E7099074F512D465C84773DBD1FA96D26053230C192DB289A1596E60B96178DD8CDD72FF14B340FB5830696B393CA319649BA56DCD517F5A08A528350E2D9531B3AC187414FA6E06C0F05D9987BB2FC98F7C8D4F922B8AA45287FA83B900ECB6C9F02669063296F1EA389858F6D2E10228E136FAE35F21DA151EA7AAEC593E5948536B68BE58ABC57771AEB406A0C3F931E7DCF85A350A3558E5C1B1F70E6299EC9FF8B9CC13E905D9902FED957ABFD7D09FB84FF22BF8410D387BA85D8555A75F432EC5789498EA36CF235276176ED48D1E374DB5C2DD1A64714D64FD20D4FDE2A605034E4DF607EC6E11D0465DB25B9D79C83182384D64477C126E9B8558489F69AF29730B4D5650B9860326249777DFE9EA5669736692D0780E9BA346C1727138F5DDD4914487CF32A4E9CB1DDD5617B6B45CF8C981944684BBB7921C88F5A25120047BAF2D9346E220EA08AD168B30A1B82B3B63C4913C708C02258B6AEF1CAC96E2A90EF7D0E1EFC0BC5BBE05D286E143FC0CA4A23833CA12727F0F83079F7BA80D809D6C739EC4D0DD9CF75C4FE30B12A892096BC4B9167F16819694B2CD5DB4B80DE8DE988AD50677695C4FB3E0940913C250645333B6F55E36F649A43C3A39ECAA3DE3EC1FD4F9F65D9F7AAF75B60DCA3BD1EC06495FF5F1D4FD6D83CC6316E40BC469EE5F44E5AE56ADB229A7CA5CA37A1508531E44B0142B4330048350A40FC82279D25A87E043240B4BFA7321340502F0D37073DF068596C4753F8709BAA2A7264ADBCF5F934E857B3225CA47D8A182B80D3DF24C3612FE4931EED565BE563115414CC2B6BD102DC6BCA9F104CEC8B24BA5465FEBB7E9730C928D6FC1144224232A990F8BED27FE6D28AA35A91F90D6A0AFE9A7E37A5BAE51D8AFDEBB7D5670F2521095A56862354D2AD946663B4BBC7049ED1884347734BF3E78ED227428476F1070F4DB011F8DC86EDC5BAE1BEDC9C5D253E4C5C6816347EC96C5F62AA3298588625304118EC32DB2DE0597BF2056046E17C69EAECFD26475066AC54D40A673741BCE72F138DD98F1939598E5D94D565C1337D1179DA057D4453DEE27B5C04777EA710D77B317A6E8DD3B4F26A6A9B3F4917A0E881E5EE528462508DEC6762DE2BC3F8F8C42E8D721BFEF7583C99DFA4D1CB49DE2A303B67AFD505F8A3865D853BF19C4A0F7CFA92F5CB18CD5D8E378A5B041449EC9ECFB80E0865CEC1734D34BC44E664243AA8F605366CE9F849700593C76BE0CB19CA1255B074A8630FC962B50106CD93DB41C6E4DF53B6B1257872B0D8CE9AD5F245C3027A3F75F19DC568ED1E0F60CC20DE625241D300DCDC8C953676363868B680B471C2EE623DA408C7E030833DBAAEE8E701374156A6B785E0EC7D1A0A55A599605BCA0FB517EF99939889C862CD790240709BEE0226DC7E8177F641C747A151A89340A6CCFF6982EF39683325390DE72E4451BBA74E3CB102870F1E9ACED30BDBBEF160A49746A23C432C3ED7EEF580969110AA438D00AA03F54E039195D61B7840222AC994784EEEA538B7E830A6508AA0B460DA4B4C0DD9CB052CE6254774FB147F7E4F80214AF1FAE59F8ADA6509123438E90AC13FF7CE71AAEAEF7A39C434C3824D49B894C389CF320A430A7F84A5F4972FF98C388D61C936E453BB1A340528A9FA5F0B0DA9543275435E91B0F5560E95F9AE4EFCDECDE1584761F8F60F0280ABF40FC5834BFE456EF66AF66ECA1098DD49BA2CC4B12CA9CFE256FBEEC328D049BD6BD19E2358502672F029888DC3AF3350BC2EDF5C4E07D59DF8DB9C14B86F1FE384227953E98978997902C8F237C8BDF300A72248B3DDEFD52577BCC0F99F75B92BC056719243F7EE67932A2DECFB15B59C95B43E183BA3DAA41B97E177D03CA320A5FD5D7E5A88C4D54A8467B883E0CD5924912642A65F191DD4DC2B08DD28EC0AD2B1CDB86EEA3DBBF6D47754B1BF7036A0BE90CC3775D263A5BC688844BBB9B1D9296804176E17C55D6DB888C2BEDA3D546FC496EAC5243AB5D51686AF9B29BF6D4A138BECD49665458B816BB09848CC4318136E6B170BECA544E8ADC35D40DED979111B8B1D4577DE2FADE6A1D97F9E82E9D3F069F3287E559E99224C6494F36233453036DBA617088D619395518B4E6725125850B3121EA957E721244DF53FB343483D27E6C3A53224B38C11C1D64CBFCD7041A44836AA606D170A80E84BBC0973556B9E4B1BD776C6A0876D727BB0526809700A0EB318BED67843CE4A6BE2BC10FE9D8228A4C94D7A506760E580E8A0E544ECCB07DD0810D79443046951C72E017CEE5B2C959754D477D706C3E043298CAD200189F4390F59BA27B0099DC551673B5138AA654E054676BF30DC61CAFF444CA22EB32E5952A598C07AAAEDDB83B8B3789EEF97663ECBD33FE356DE981A24C29DD5217E14DFCA30C0109419D8765A061F747BFFC1E221D3ACC7FE239375A9548483543599C837F48EA189880278AB2E06EA44417EB945F20ACB464CC458E249A8969273A460F063C5FAA907E42C9EE304B27C85BF41FB170708969A2BFDEF37B97DB4A16BBFE07370039369D04D0A9155623AA390ABB75D47FE2394E4606759648954FECDF4554F660D3176AF33153A9D7B0A935753B11E6C7295B0FF5680A18A42ACE577981C500581F741CA23DFDDBF22EB6511E19C016EDC96DA545AD16D5EFB9A8F10C45D78E01C74E3552FFAF35CFA1BC0C3DF9D14C1BDA9D510FC7C7A755C71B5273CD7CAF3AF44AF066DCF18B1B7D6C0D546C9C0B0B1BBE88F512824CB8B512438ACBB23CAE1178DA05DD67DA6392649213805D680AA61D26092BC1B2CE50CECEB7541D7F10808DB2D4A6B12841C8B4B6C5519C8683C998A74AC3BC3CC44D81B606A9A3174929E4AF06E032A24E67E9C66885004F07D4775A6C66A8F42F94920749FF902A8F1C3BC5A1A35BFA24040EF3B7ECD05654CAB696D3323485EF855361DB57A65C5AA0B238DC551ABD6B4A8DA0EB987A82F56E5EF05CEBCB4155181BBC61C645B2A4FA8B316FC6C5B3BA12829E74899D0A42B42821094B57E6D221FFA108D5D0EDE9012A88A2BC361D90673BB3D19D6355B9239131B42FB3CE832DEEA6E4551BF6C6533CD8DE572ED3E5DC51BC1ADA13C0C7E4F723CB964125DA08E0D08F1CFAE124568DE55E2B39B1475DC8F6558ED763FD7EC2DE373F4C54399A0317087630AED2A64BF13D113E8AC32E6318EB7BC0DE20E846C0CACD876F47CBF79DB6FCDFAB75B371156CF74B443E8DACBEAF94203037BA14E821A66244BBB7E989567D176FED12AD0BACF79834D067662C11422631554D1ACD6BCCBE23BF1D0C042C1CACA4B9BD01D6C5757E52877FB5DFC92161C8BB15A60222D12CEEE973812B4920B38547304E720AE246FB503C9F97BBA79640485624DFA2F4D508300BB80C70CF8E271770876062AA1EE0F548F6F7D95CFAA17FF1FAD847CBF6CF90B01D29C33B43473379F4B5491532432F6CAB98C365B84D357B48B416C2A00B25D07594ED4E4CA0E1BA5C92AA2F1DC7A6109AE8D71B9F06440A770FDC2501900B9EE466DDD853CA5482B4636BFD58AD8B24D91852ABAA0A37536D4118A122951DC78F02DDA8EC8029ED938125D759B24C90B0FEBA1F589AA1C10FC9597CB7E703D93AC4AFA43D3C239337AA454BCC471CC6BECF89266F588C3EA71AE50F146097D9CCF21E75790A5F3A252977E4D848DCF5D96DDD4FC1D0CB583A28AF9D7648BDAF8F1E94A83CF5349B1F4AF63AB1C66757B75C58D10F27F8619A5A6BADA67E841B6429AB40A09451313EED76B93166B3A5D5561CFB6421D83A5E343C8D277389950328A1646C3DAED357BCF2E8615695D7E8922030148844058D177D4E68A8EE31D5D810C73D9B38F6863083A8266652DB82A43615A45E6D14EFDF00A4333404DB65194EB432187C1EA7C48F819C34E48EBCB0836C84534A238C42E0B9BADFBB15B220DD0BF40F8C0511BA69EF82FA57D099BA84EE4AB6FC422442C3BE1E8DD910B4117BF4047D49419FCD2380966F665001FE4793F06F272E14E1893D502BD3343AFF5EE94A58CEE04E745E72E51124AE8013EAF2C2141012FAC54CD25E97B6FD3F0891BA1DE663EBF009A7008222F461B4E7D50628133DCCBA7CD0AE44BFE9F675E094D972D896551A1205FFE0CA8FCB739192488D2BDDD4E10493B43C7EFEF60888CB11ED68F34630623206E81ED04D300C2C43B6F27E41F18241651FC6B84C19EE1EB018BFD7A0D4483B0B6DCF57236AB27BF4CA17E52739E4D1C508C78F6B6E9FD53F423AFFAB01F75A9B1AB725C247492DAE3227ECEE2D60EB186BD8972FE455C393919E6D9760AD1BB706138824FC3C9EA0F673C1323366DEAFD260591DAE60AEA2DC22FFE5EA2421F35920550C0FBD78C4F6469092F89FB6908457BC81A175D75B1F97E2750194E68705B9D1E9F762068EE2FA9286BCCD3ABE98007AD1AB27AD2A094C6E164C5BBF88CD4C5F325E4E91FE2867A94E9FE1A78DAE2ED1C11CB4D365EC2F3888612FF58B493268645BE9ED69C196857F8C995A42D5CF4542E609BB35B0BB1B4BB85295ADE635E8FA237C5DF471B8CAD7E98420077BF1DBF6DCDCC1322C8BE1B8DD5E228B6E6E04ADA1D533B0C6221FA83BE7C19273F9AADADE041CEAE389D0572D2317906005BFAA17940026CCBAFAF8C7A4BBFCE30EDBF4EF82902E181B41A1FC006AC01BE64CF6E4A4A14FED995D6F323405242BCC5797E43276ADFBA44EB8E3EEC029292D2DCDC8E6C93AA6C02766308CD367D3"""),
|
|
TestUtils.hexDecode("""
|
|
16c069f82e6f6efe9eb825ae1b6e908e32c28e3b0ffc443e9472356bb19fe58378012592c1afc414e0ff970a13a9b8cb51b968a7ba9a2f7d0c326b5e1d074f5af742c2b548f87b8cf1baf45f86000801486773a4240372f8f1c05e0e9ceb1bf5f18556c62765cd06c472781f73f6c766b44c2f94e436eaedf8612cd1fe381e645689cb6e7befaf031823029f5a6d8913e2245fec9159995956825ee81fd66ecac65d960506f2b3f58aa4e9a6606bae585205b351c5654b9ff455b08aa9ac45ad3b20e7619a3383913defcc42c0d25acb6aa2f3d4e17e4febb6dcb59c31e853fc5db50770059aa70d8d3c58d3b98efea00f9756260d843cfda0c079fbbd4933ff8512ea6e379b7b1b92ed4146cd0135b2c8ac61496cc70b55de5eff005a310eaf50ea88666e342850ec6c22d2d5cfdeaeea40321c8278e341b8422bafdfe71b42cd3483d71df4c1ac8bb0c86a72480055d272dff99203919fc2a7836adc985befb8025e6e491957159183949343d316004c075332466101f14aa78296cba1072799d978c1b36e94f042eec38b989e0c7e40db362fbccdbdb56236397435b65b12cce3f13bf55abc805973dde8f9c65157c3a3751209afd01396ebd7bb20fc16229ab289848c1aa48f5bf86791468df8950ebb317d72c050270f275cc219faad9980c69c377679c4e137810813734726ec78ce545199e43552ed33ab3689b6ac18fc54fe847af97fff3e2d6fd2bd6885fb675278c4d897b507d37b5cd1eb291d6195c03b5beaecfd90244a497c69345f70a118f88ed8568386b1af2bd23c9d0f2763c19b669a7378c42942a242c3721c59a5c0390137077ab10d792e2670da72dcae6042778d691ed96dbe126c2ac03e6f5a71eb1cc363997ce106c6111e3ddf50da12a23447af30d684548536c2402b60b75805cd0a8ff2ce7b4d7863a0baffd5c0b98df8dbe6fecdc37b2c882027f0d5b78ba3bc35a352d419978bee8f39faf096d31196590c415044500140e8ca976340496f084eef29a1a1fdd8df215da732f37e140aa48aaa393e5d3af9b266f98f5ed1410c9b4c88936f1e2b225a6e1c99ee9ddb7aab09b55be15aff94d2f43a8ba09d673b5d1327ea95f42fd26b4e13cd02a6a26c0d20fca8dbea95e71a9d9b6ce80fce8c7c0cf0ccea591916e4b9eceb3b42645615a40fd063d1e0c7753211ffca88a67b3029d6f7e387b11ca34d5357df38f5d92042b2f9a7d8d27ef6c8ebbce9377568cdbdb146d2e15858cd7133b5cf242406a857e4247462d87994959ab3b350cbdbe521f81b9375ee660b53eb534195a7cb0751c54f3af3ba72ef2cb3aa6c748270a64b17685d046641c20156575846e42b93fb1c754140ed6a6a02df039cffd970c21349e2bbcb6323815f1849d38052e6bb143d11890518da4a213434b820c79994586638b70d6c006acd43e43a79821478bba9ec09f9442fb15308d01f533c460b70a28c710da2b3f4ac7449129081081c4c87a241ab2f9483add71974846a3f32c3c96a08ad090098f38021fdfeaf50a36261c728aa6395b2114a88cf9577793cc7bfe45a7e238b997bd35b2ffb0c3992f188de916f7c004c5f83da5aac274a47bb7348df3590668efe9c2503b2c316dc074262fe874ea700b93a9d2545ad3e22b395d294bca1a2b5615d259744c56cd3d736be2c4624a1302cd31ef33f75373d2bf8b22a9e85db1df34ea4d24f0593cf9d494ede243517e2618dd0a6bbd0ff46987995805ccc3439e39babab22a53893223e25eff5276ff7a5eaffb88fdd248f3b2a4936ae56bfac6d778126930b25f05bbf031fb0574aaa129e4614eb1a38171e9d19b7fa0ca5fe7b4860ae3447bf2de8a89b8d0e85c7e130bdeb0f40e6326b1167f744e2b664e370f8a9d31f662364f442f1cda1da1f9437ae6255367e242253a325de08f6a12774612997a2f8b2a6a6e084ba51a07947ee7f4eb68545594756582be6232224172439c1105f46da151fcf9ca328497f952151b38631f4797f6d6ba367ee502dac0b1c5f45137578a5fa947e311cc84b73c56f058a1265ca45c10423aa165f08c53bbbc7ea42309297f7f37a98d146c48a7cbb566e005b76ec243ce6f7b9231428cfc17eb4b1e0b8d3002628e3ed7bda600a5840d4c1b2fd97024bf2f9ed637b521e8e1645400a7037ce6db2bb696b604d6b5f4b40a9e4eb443517c00a5ac6c1859dd18b6fb772155f2d8be3099b638602bdb9e3941d31bbbba3cc52d7060f7b45416c9923ee3697caf14e7f51361051bcd540cda6a14a71cb62e033603bc9d58ecb39ade2144b13d1746f0de2d1742cb6b34d91917adb69634084e08b9b37dd2c62f55eb64ca81a60ab5b71bcafe2c42f9c8d9ce59e6be9c2f0019c3d96c6ab738cc9df2976f0b9c47579fcc2d72161317c541d5f7de0bdc19b6f7d3264db1079cf3deb1619fb6531aa0032b19d2cb2ccef9fd6c1149c12b701cf8387768c6eb004fa6bb876f7ec010abfcf631caa27cf36d30c1738d50e868214ff8989ad497d0b12ed2ae83be1772a531610e4698bd721630dc427f07bf6b4356d720f335ea66969d14b246b757ddd96d1607dcc72d9d36fb10f9a529056255b9f962ba7a02950a0b9c988fd381d801af73d7d9abdd842cac56a77c5e2a9ab91785ad17966a2fc31e42a663ac583488081c236d13b82b09933afc57e25847f8511b0cfcf472ca6b21898ae47ca8fe674a55f8737053ddcf963dce0568839660b47f2dfc9eaced787aab897d16cf1a1e969f4e5fff7a8ec5c3ca33b6047fccd8d32f4c3a61d2c69075e37640d9120330cdb9732ea9325e4fab3e94ed580fc5be75acfb14468fd12f6e4cf87a7ac340f990e33ee4e1d2cc48a793c8c480b59fcc4bec660d101fa1c61a50b423c16c09a29d2dfce1d2011d4e4cae986e4822090379c17ff077cf56d72478a9bd703c2ea037ee7419b8b4464388d3bcd5544d3a2ebf12be85917021388950c180f2b020ed1d6dcb3a7e0770c7c1f5a44030bb4076e568996c307182b103050bd43ae645aa96be787f1d82cdbd629220104bc5167c0a8b8436d828cd70d34c9ab0c039cdb0a1ef137783e92bd7eac1c995268ada3e1e8a494fb00c5d678f5b6010c8687b57bde36d001452b0a73912f6ad0f7076481210a975b44410fceacd0699fcf7c1489e42728ad705600cfe6c2267a9c7979274e73bc2aab80155fa561390cc9460a93f29c4db673b00dd95d5421b8c9ab003fa7b48f82fd6bfaa264f0debe6af3aae7716b66c5533c94bc595e646c38b004bfd638e261b14562ae061164db1716208f79e5ec5e457a9ec47d2b0b7b7b68a62c95de164217b7472fe600a52a3aac43775f267832bf98ee2112ca9db28be3e8a828bb1ac676178ed490e0d27fae273a7d1de1fbca15aabd065890467ad7d4648487c525bf1ded91ae1bd3a99c6c734d580c69895dff04f3409c2f7a3e0416b8a2c53c75dacaa8bc020c803ad12e8a48f850737fe8d88f08643bb6863ae7b23103b0037255cf87f27aecaa703db904d789c61147b8307928bb184bf94ea902f14032d3ab1d6d13066ef6dcfd80cbf155f68024fd9fe95ffa782b2de5c97e1027e7f794c4ad6a2c23e3b5c2de5289a1f96a4f549dd32e9e4cc07771da9d1c170a315ef9d6846bf10dc97c1ec7b748b5cdcecab920d93bcb5a706b23e70bda6ac80b8efc06eb3594e5edfa4326caf3afab8cbd479f5c689e86e20247a42e828e589d831a6f1b2eeaf747f903100540ae7d725b0e48a3d921c303e13cb2a3ab5f8cc20502b90ffbdd69cb42ec092cd2a24ae408436e77565084a7bc20742fe0983744d7c876b646b1385a383bec18fabda857b91088b8c7fdb5ac5591bfd8b4f5c8f880509d0b6a54ce45d15c639f3b818508c08e6ed4a37497b2080364ddf01465df73e2e91a7a9424b10ed9a6bf1f05bf559eced1d0b667c35885c43db657520609a3f55017f8ab363fd83ff7a88974aec48d9b359d25ac9e201302102b8e62ec176918449e7fb745ef5dfc03381237e259f4cf200714830b2ccc4925afed71a4b956d1bc55b9aacfd42aefd9d4815a6e1f6151fdc9379e34faf98911e2d5a64152c426c0e8f386e06a86190fd5aff238128a62f07e02934356511cfa2212cfe3df6d5c87cdef644e7a78b34a95dde40002d4fdb43243a2f33cd3bcbe00d3503451073c3b13bc772f98a579c72116f57f7bbd07f966bafea91fe80541acc19e4010723daf868ea6b5760e66d317090ae218f57ad67c2992b36e84d513052eceee456c29cf57b8336516148ce3835d6ca526913cce6acb9a6fa1e0ecbfd9f34609a6751367c07a6017a78e078f2627e9f7be020482731cb93e778728e0a35a7f5bb2d6c4c9e893f0f7581effe6881f645223b699367feb54b8bae06a68e025a9d8ff507efb1ee6a0b9a74b14d47c8c32a4188f98d9b359ad1dc9967d19aa737355356442e659db0097635fd03e6d2f629380a5a6394e28a13ff69f36ea8f0fc4b70d2d002500f988db49c8d4da0a71e720be07034ebb3389b2c75e3c6254a82e2e841ea0c99755dff1ae01e51367d4e02eecd304932510a947f948007414e2bac773d7359243b8bb9e973cd4a11f7e6406f450e42416ad0927b133e0767adf949efc3dcabd9b523dd92b63add6c12d211edda7dcc73deefa427ac96b72589ae0c9808e7bf62ac31ed8aa5bbbdb33db466bf8a33a7e3b170058b1cfe84c96eacf005ad0796aba2c994c375b79862fcb6cae4d13bad1dab2b838c657a55f85b988892f62c3581cf60f24478735c04288c1fa09896e7fccfe1a102daa51c24924ce9ea1ef8831c91d526a55ba7ef2149e0a5045d8362329b6e3487ce8a7f0c33a428149c55543bbaea26b533ac8103820d405138c17510970cf367b3e3a4c46822d10e05ed47ba4c3bcdd02eb7e4fd990da55a518761335f9d2efa6878f8d0e29b2704d3af11dec3f7a8c2fa9a7104e971ecdb7f18d93ad2a1ecdc8a4d1dcf8ccdd66608859438ed23e5179f6594c631103828dc2d9f8c784d2a4cff15c58084318c18571af7940cee704e9f3cd0bc758ae7cf9d70995f1f1422bdbd2bc441831aa72b66253be6ce186f6e93613f2d3888a555b578481ca324878518dd9537e5e1e7b27094dc5114a4e51a776fa8e5e86c556f45145cc3216569c17fe22bfe281579a6fd70334c574d1d7aa5fe461b3c0262830a2afd4b485d348babfe81a3418bacda574019077cfdcbef5de1e73c8a8bc3eb9113713b563da34073670cde452e84866d688ac9f691916bd443b02c8bf15c672e1e75b50156e1e5254fc23e0b0d6fa530435ae5fe06132d691a3e59489c7102aeec1ae9656aa334321b8f07aac206dc80cabc6b3c8aeae941438ff5cfbfc494fe08661ea496b7a81cfc949d60928251ba6217813140d050fa68c34dc58771b80b84e79f469442584db07c6b5ed39a5f83398965b715966a3ade89570b09a501860accccfe10aada86ae989bae9adc4ca7480916e1bd4733d6484959e4cd199086f413c17b61e16f42ad93a85ab8ee86e09fc1dff1087384ad087a6d95dd845e457f740e538faea88985df42fa2e0ad89c8885de6e0b1514cdfff9e86364dd37ae591a1843f60f71b8e8b6aedc3155ce76d1fd9c4a20d077050d7942e8369cfd9e0cbc19e62e32d15edd34b7f2645dc31c1de6ac3c36c5850d43a6c479e7680f02e23c8870c1730ad163dd31d38e1e7de492ffebab9f3366e85dc9ff42dbdd1eee8bf448abc8017a2bcee2367e958a01986fe9d7083e45e262595937e3287b499090d4ff466f52824b032428757eac7756ffe76ad43e6f70c98b4e0769ab91695a6ead1a1ed45ee36218dfbc4994b7e5227f0fa0536a9b73b01701d10f97d0c4b1bc9adfe7c2bda52e8e042b976a0ba1b9d988acacf9481831cf6881e70b21520cb0abfbca56bc3fde95dfc84de3b3aa9d4f598dc5aea2473ab0b2d9758b4bcf353c3fc2c6a7e487cdf1af90ba9b5a464539e788b86077ad0ef611a2910f784d72c75169ca095e14e4916c346e55cc1bf042b0d578d2923580709536adf49bbcbb7fee7d4c8a61fb39dcac21ee50f80a7bc76e82b285b0bc3f0b0fc9e70563e82ae65345d521a5ecbe211dc07acfc85f707c6d23326124eae586bf2fc77b6021630ccdb6dab8569b00374a1623f1a99138b870bc25d20911836d1aa907e9029436cf0d17dbc9bb350ecaed0bcbf4d48a4a7cb78e602e33d13f243347496765c40c8b786d8bd4ae6d9eb6ab879d4f56a004f9d6a3b6e98e2ab72296b546cc34abb697e7eceea1273f7d8658e60112932673e090be0c212d3d664237b91714d93edc6c86ec4a3c98731f7c102652015d58abca17b412ba07502d79ba43963dabc05bcff231d342951f36dbf8f8097e363595dcf7141215284cb4517474a85e0f0212c2e3c687d868794d51d1fa9b0cf102a62a3de0e2082848b90f31f203291b8bbbcd0eeff6b769095ebf9ff344ca7dee7eb000000000000000000000000000000000000000610151a212b3238""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
a01e3186a88928fad593837cd6f24d201ab8aa8cd445521805be6ad197e670b8ac1410aac5c88a4469cb7ee7b1e2588fe97a400d5cb948553a8bdd0ace8201d7ad26e7db90c6f841f7a30f31f167e5a3873dab36258655ef0cd745ffc8e3ba7be7f241ba2e97f456aa4292288d0825b921d8b266eec4fd51fc0d5efd1d9f67ce4bce0a521d2e693dfd86f3d3d308bb337ea64625b1404f0121f90c6ff06e14059bbe9cadb32051cd3bc9181d78f7268438729e1570e2bd89ce7e28afb134373120afcc99bf30d963f4bd616d8cf0c02c4f436592395ece85d2bf650553fa720b1ce842b0daad2f610a4a458ed4a4ca98f87eb5ed4bc0a57d892eaf62e9b525e6e6e30f0f9f0a5490ade1c10b8aeedffba0bbd7976aed7a24f1cae8670e9901ea3d72d6a895307ec5caa87b18ffa6286a802248f6e1eda5c5191ad3c8f015bc607b79e91522f729f966b1685752a927ff28b59b0e4584f02f456a6c6a81ca4ab7548e4768ea744461882c24cfd4d4212fb4733786e10b23574a3ed5310e65fe9e32ede340e6a2349b551f5a99b238e4bb0496e56b65d88cce8551b23a89937c534c1f38b2f09958d0b017c06ddd26fe08463dc6737a31c1d74add57eb32fb5acccef4258551bf5bd845a2e872cafd171a030db69944b594fe5c7214b21a0f5edc80ae3d3c6c8472fb546ef13c0d0d764087c8c68c39b61f805de2b3d9cd02a86a00c4cd585416a8c25369c959d2a0911da264404a5a95db3688a2b25461a5f26e941ac9da45f18d1ad2fe82614327ded1ebcdd50471e7ed37d32e3b48d12f090cc550b2e64e3527a81b1e66762ad75198787487c4bc3743ae3d4bbcb6cc2b279f088bbb2624980f9ad78efd1c0dadb870e6732b53e63a025e012628b9cacf5cd0ecc66b21754fcafb6e5fbfc99214b080b0373c5dd5bc70b28b727f943223dd69c8908a54e49c86f74da456492d06dd8e454953033de489dbc3fb7c98613a79f303e28b0f01c82270c671490105ff598f7e6f6bf6a6ea0288ec7ffdb90c4c7c8961874c8f020d7228fa79b9b0f86ca39738b755058d341a90bf63fe98104de55fc04a287905933c49e5d5475a49b873272a8498fdfc1e6b043bc0881bedaae1abde9ac55ba925af591037bcbfc768932e3749f2336ed3affb2530b4bd527cfe1589a0a0ae83320dbb8905d31a48d77c1df191d76311ab02de75591da5f2b9e34e470cfbc6e3459cff655518cd2e070c4b506d24f1281349d57732cdc303af02436dcd57ca2d1b716ba8f70cce68035f1bf9b932618d3913b1dc9a9bb6f60d35a68d90584077d02d93af025f84a414fb939b0246888dac3680534b2ba9f2e224b10e44ca412c94dca680b62845e441d3efad02ffb944950cce3c6fcfcfa14e3c9208e9fabc52b1499830cddb6bf6db50f9899833e2fa09e09d06555978a4006c0188bc13150cbf94232938f382633ebc6d41a8c5a917c4abb86b2b5c160dacbdd4a3a33acd5c158e0d95fca565deddbe2042912079e796b5b67905254bada03057326acd332a7c52492fb6a8b8876ab3a9935d11649475de72816dd6b756f204b6d1aef5f5acbf2ac139568851644f622a945526bcb3c86581fbb2e5298ff01b2aa48fb69b5de1a901167996eb41dd8fac44c5a02c3a36ecdba25a7edb2612a5b01b5e242b1a55a9548a962f93ca3797901ed4beb510c11a90821c5c1586cb82f2f095e87c8a42b81670d342bc34fa7bcccac96b9cfc2966f3b2337fd648534449c8d8d7c6f1c12330c2631201acd5a8c8a20d7b2006507b1ce5204cdf8bcaeee8b3036f9f0b7f47d5aa28df4cc55ca9c82bb2d59aff4436ed8a09ae1d44bcfdca5d13c4d4d8b7803bfabe2f8bb88e25eec965b0dc904e48e17acf9a84f50bd98d6739b312419033087ac252287562e9e88bda07b8de3ed0e503610da09e994a81ebd0ba89467c58dda3c2e9c963190f2afc949ef97e595dc445cde87b7303cd3aba04a35b348ee2a9d8421d1fd69ce0d3bcfec9d93d243f45eff6430e75ab1fcfce14659edc3f7d81efed055f948325d28fddd90fd7efc48812f267b828ae94a9964ae4a8e764fa6463840f8a6cf078b39f12ff36db6e03451d4996226b257094ddd73a323036fbee146e1ea3865dbb6d7a3dbdf85490b04c28908d4ab713fd403d97eccd18955707683723ac946b6d90b4ee63a771dac2bc66ed08cabb29fcd96c2b55513b4e3d9815567f5f8788fd22b6364b8cc3d2a86bf9ed5fe775e131206192a85406208c402937dab551fa4e8ee4e4254546a687b212c538a779f50ff39274d8f22cb2ba5ddd74a6440246b005e7fab095eee8c47243a274e11375232478df603bbcc729ea9b6778a37f64c4f314d963301c9a1f92cc8884dd393f3a4b6d42910110183d5fe41a0b950dfe477d505ab76a31fdb5195d1854b7487cb65c378b0494b45370dc64858041654be2ea89a704a6a903d044c962e3b7e068ac0ac837357ee49ae14d612f1e3a319eca339ddb1bab1104b980aae1ae07ddb27bb6a69ed585e3e7cb2c0987d51409d1fb23c4cce7108f6819153e7c670778852a7c7fb929d1357aab51bc9f0e32006bd7167bb39ddf9ecbde2c63e492a8dae0de0574c364e851b9937820e49459b5e9591f12b16f50c47712b2729e031b4e3de4042c51bb51b0dee5b44fb9cb37e915e64cc0761b9e3a8e0793fa49812d2909e8376db7c0dd611499ad7ec5c527c153f916a020d7c23597fdfc954171cc1ac1116a13c0e182d4660ef724c852a347fe9cd07e512f0712b55eb141ea4fb931ab8915f3dc3fea2fd8deba0640a5c60a8670216ca967fb8f89437cc7acda5db202129181ace745e0357a6884eaafd08e8bb992c8d68bae86a940a4d756526f38e115dd75a2ce0486cf170951130a8344bf3ebd241ca694a84d2af21c77f77460eff8151040be2b3b0922684e5570b1097f0a419af32453da40f52676006addb2b9d9124c206ddaed4cec1dd46d08dbfeaba8fe279e0ea1ceb6ee9722f67ef2f70d9f651fe4219f1732e35b3b824d3709621d42b6472a9a9c5a4cf2bc534464169d3dd3763f8ed1d80d43d656e32790334238c1d1c61f3852eeabcd9424d1f9e12d4a08a1da9d937b35c1ada0feee310836417d241c0d7261446f836ab3e9729797ada42635ab2b86248560724242a044323a078f28321c111340423770ccb36d548b82fb2f3db2f1f7eb2e801e510412a91854b574668205aab9d4719d09568b4392131620f3af1308cd02efde135423523e6b1a243f693364df54744a809f483ad375fb792a651cb7a81ff1590bace3d81d02ef26a33305156c620c7ba256c7bdd6b6567aff0ee45d48c8a087da1e91e39c4012221e2baf5c73c8634db7797043bb106a287d2f0af1389f382a452efe0d5ed1f4eec269bb0183eb6d6c73da1647edaecad7c07760543d4869f80674ae0d2a33834b4995ec00955f954fccde46b6b3c1fb37116b74cce6084ffeb1a9c384360a95b4626cec377a964144c0731c4e74e6eab065411f3a46dd97ee0a8a4635ec2409042e8196dd7e4e254eac645e94b99636fcd084140211d9bc34d0b104f202182baa97413e3cdb139c1b4cf1d88ea229f1acc6040c448c7278fc64f835480b1e7dee06cb1ec3c4244739930ae60b208a"""),
|
|
TestUtils.hexDecode("""
|
|
14A8B812B4C9129CED02A09C8AB19443D34DBCEE85AA12528B61F84A2AA9D9DA49011C8E2C3C3856FCF761EA9C9882FB18666F3EC2C8543037E54FEC1F0F944FED3D350CACADA9428B7FB7D9DA4937DA4D1859BEF8C6177F0EC93BD67FC3D5B3D13C34D472D01372246704DA4763FA73BBCEB0F4C3658B2111A7DDC01FCEAA9059FE3DD5BDF2A9FE0D1C2384E82926EB895AA529532FB20E12F1C61BCE208E48ECED036E4F84CD60F8042475749E13D8C3ABE0AE17967D5C6D8C598A53A10231929822FB01EA976A08BCC0D18B1F9B6C7C1ABDD15121E00EE80459E6EFD61CB8D5AF950F0A8FF2807C32CFF7A56661C67348617059D7E128A72C8AF36B149DD8B46537EDE60EB5DE8A16A93349883B73F7C4FB8CAFD01E0C9D7B1EBF6D7C9725651980E0DA598A6ED5114178E47EA4C6ECF870033A03F134461146717C8AEFCB8E8DB1ED4E286C68C7358FA105641EE3ED9B4A5D4826B31706CF0946C152A365B246DC036191613655B829ED1AF8044F5707C320EFA1126B90137EB05FC220F122AA990AB476EBB0BB3AFF5B92442A857F6808E144C60F4B5190794C411C705513BC32447D83B760E907E6FEED63FC0A60C0CCD01734AD55EE178E6BD6D4B8A238ECBE8E4F8A464C381F16F11BFE62DFFC5021FABEA941D24B81CFC3D0F07F00F902FC5042F95A81BB8B795907F8D6BEDB5E5C56D4B2A4353D0188A90C01D7B2781EEAF2BC3D3D58A6F6AD63DF7FD4D32ADBC5A7A2F81EE3F5B98E8052017868EE59D8DCCC0199A006FE4FF39699EECC82DBAA846AC60B51FAB6F456DE4357F5EA43FDCE4B57AED55F2F6EAE49199AE90F6CC4AAF662ACEC2724337AD7F9CF74AC990D3083FE384685A1E616B233752E31CC4FAEB8048EF77480CC849D3376464621E2BF48CBB55E1A7CAE855A216DF4A8D1AE4E4016958F5855FC395C53C23327403720271EFFDF1A90C44E93E74D71BA29D860679E877E410ADE48ABD0EFDECA426DA792271D813116ECC894D799369EA8094C328D7694E8CA47459F31F5065858252C1EEB1AC4750AEDDD327048894F7D79A1D64737EF6E8B93ADEB938C1EF31E38DD60E8B4174AE093697DE4207C7733D82B4FE92590358515D30264A408746AC252ECC0BC28A9C98BFCD76C75845E9611909B0089B571259D1D115EE0D5DC6BD6F3697E1289C4742CD99F97B5D3A22631E33A81734A5D2BD1FF4A819CD6A22A938D3F18AA90794C120F4BE7E14324E89EAD34820070F8160B140E8CD5D68378C081DADABB41D365663AF26C606940E08B20581F4E63AC6E68FB5A7EF5DF86047BAC502223AF08F6CD82E6ACDE60116593046B5CDBFE2411A3FE89C438A1E84CE6D1CD72CFD3E5F67C331E72754F6CF2BF921FDE2C6DD5481F20F509A6852AEBF55BFB4B52D1F8B3E397C9B147433198073049638DDEA7E21C2043C786C88E45E566B6A7E8742209F5ADBCD34FF26962E87CD235CA1052AC02E4BF75DAEE60A06B19A4B0A61A15D9651473DF8AAAC6DB951EB6E669FA5F89175DC1FD4D881D688C477D16CEFE809E623B2F2A996909C3E10CFEF756ECE8E93072AF27B87715953E0C48946DA8E893160CD351E48FFCC6847975621E5C75D5DBEBBFB79297AB368D13BA95308E3D576F1C54CCC1C4D5EF2A41BE63AEA2A9F9A27822ABFF58B06AD99515B97F260843DD2304C855184EFE96BF10420184CBA2CD3ABC38D11B7A74E4A9E40FC26CAF3A84BFE8794477335EB1F4C67ACC9513BDA5D8252E608D03C69D493F8876FFF25D39DCD71442707AF2681CC6D5E117BD24315B0FB5C9E8175CD42AEABF699B7B77C9A8918AB94518B48DEE1777EAD8F18709A824F277BC06CB67915A5A2508E18094B0ADD29FC7CD554D8671CFB47EED2F850FC84B1C0F27767B3052869B653BFFBECBF6D8077697D1F440019E3381FCB917F5C06008A04C8A88B4493698C1964E25A551B03805244570D0EB6999AF2BC467EA4732B460A40F7C2EDD2CBB07A2DFA99B4E5F4663A45F2774C1ACB0C8B965E1053E3AA140E973049714DD644CB9317D9B3252150CC9A525E8729ED4A9A7900B417875391F7BDCEE646B1009CA479A1295555759C5A7597A775A1D1CD8D870A71DA7ACE7CCC7D2F38B18BD66441D80068F76AC194FADB3ED5F4201F26F670621D254264A4D2A88426FA6077895B9BD794C8C84DEF942FC43F2FA115509429A939052200196CC921454A65C4BF1A6E871970A3409FB9773F356BC17E03EDDE8CBF2F91E7D2B548380967F756D36520009DA5032F20D8C8CAFCF4B561A4C2894CA13929DF2AFC2C1C9FC41968746433FACD66309D2A7FB5D90EBCE40ED1E80C12D07BCB075FED76DE423D9EE6B1C787E1039749A0E559B86C4079CCA1CA7E4A3EAACB300C453782071725F6E2DC0652DB5EBE7D1C16B6EE0078004ED1F49DF439107AED04A2E69F70A35057C36A307C8F5BC13FCEA76AA997DFD2E2E4B835677EE961234895BE9C9E7D1486C04ECDE36AF4F7075C0CED9A33C372C33F751C953A2096815D9B6186632D3CAC31AE6D0A931258014D6F88157ABEBEBA1C11B9CB2956253D4950F5B2F64476E4125848F27D9ED4F93035FB5F5DEFE2435E67DADA015F048A90EAA9780B983748CED6056D021D21F6FBCB1A2DE0C627F2D9015B3D9D35CA17C54B0FAF85D0C45A53DC2575E2CB54B9A5681FDB66C9D5A09A3F48DFF29B24E45BE82856C6C76F0B9680F7B666B22221E14DD8B22A15FFFDA1D666F4EC6ADB5B929C2804ED36077E1A39F166C777770124253ADDE6B77083ED159CCE35894597E7BF3DEDB346571C2BBF69AAA9ED133E94AC7E31F2C30AD079EB4B4452232D83E49B43DAB60BBD92673D90F187FA6F3859EEE1630D3A232B99F3F960E8BE49CCA0F1A519156D2D861F8B6C15FEA4C4635C23F2ABEFDE8589A45947D391CD1DC3439F965C6DBB5C5C9AD14192B3D784D1C78B3DF6719D5C474E02D471B9B857611E2FED83869BFE8A2A74493C25D39C78DB019BE93E3BE331131CE85C4586C0D40D676640405FE363646C2264DE6F64365F19F87A8C54C884703DD369FF52F65CD9179B8A09EB92C38C284E06B0537EE686D7BF3BD399FBA8E1703BE3236F8BA262E2C84D55EB1E1E55DC14780DBA04BC1106D98B05593F9164F1651809E8AFA0A04BB0B51F9FFD5062B495133B509A569845CBC3003BFE23A7D7ED433B70C2EAFF5FD898009CF1ECD9E9B6F37CD7794234A098CCC39EF078E3C152017CC73A19B811FAB4A2CEF721029F6200A4D1E4F9E95A0A758A7AFCFA047B6707CE048C3BEA6BC561D152AC4F161347C098F4F44AD92006090324757D73DC074F1E1D445A500AF5A92CBE19EF631D99FFF870C60BCA8515125EEC36D004F22FFB420F5CB01330315F00CECFEE3254E54A047A7FA3C7495E6ACD579A9159F667FCAC4C4448579E7A68148D5518EFE269E97D90D67CEEDC378657A45E9DA855EC55E7BFD0AC3E52DADAF76E800ECFA61F2BF532E7365C4FBC8CE882AB327961C6A48C24CF0F0E6F2C54D732BC9B592008F2E6C80F7EFA788AA6BEEF0B6AB7B21DA3F9D92ED8A8F5F3F4B1D1BED6F66B6BF3ED52E49715C07DBAFD67F4F253DE368619A306C513E645CB5F154F7823781EB3E15F38EE482757009E42CEEEC1530A0159D25F052F4D4326412CBE6CD11C0DCC56B6556DDF806868B83602671C96F81D8210842144757A36CD187EA0900F36A0A9DB85B9609C11DE03A38A9984003EBFDD4E7C07CCA7A7DC7FB5F9F16E6C0C32CF86774B46C56BFE2840D8EC51E9FCB719DD1CAC4206372126DC8EDC9A4A2EDC8FDC8370C7589CE9FABE0DF3C8CEA90E82944B8D489C0F52F73EA3E3BF56BC3644A1BB0AF88F4B556A554851593E5FCAB03E235670638E4AD77BF012AE074F331F67222899694CB5EABBF0D6E6E6CEF75151FAFE89DB9D66DA4464353526116B3C2F382825B11CAB3CBD221DDA588F4BA13548CF627B52478F47D9B61479730CD9CB3F6622702C9A115D69EC232CBEB3FA88AEB832EB266B855A98424B2E08A699453A891C89C45FED7BBA98D6E7A2179A24D41D201C4214444BFFE6D01A15CBE640C3C54458E8DEA5DED484FF7AA78541686C60F9FEE76D1A7ED1F5686A2EC1F0AA037E6CE38FF695DE0C17895C9326415840FEDC1675E9CF30B8C45F8EACA1E65DD18290E8ED826738876FE8B69DC3432174151C051FD23CA4675A75E73F1D3DE4CE172FD657B57D5D03FBF8B29E268B3EBB8E9BEA96A4750168E8AE5AEF6B34701276DD18F1FEB01FFFA2A984D3A59D05A56552639D506BAB3021D507D56D0FBD80DC582B3C20940DF2393AF24FA5233DF073C7FF28B54C7A921949960CB2593AA4F93A06D38D896D547B28E9CAFDB479B7D1BA2EA7B4A6BAD33BA8B59DF8792B22F5FFF41EDB1FAA926FA3CF602FA63ACED78E85DD7C3094ED48D1F3381BCD084A9909613873513657879AD8599403A52ED0D16AF0B3B43C672867700167323D37FD6373C4D51B90327F4981A897CD54C8E35A6A5904F5AE0CDE36440393A59119437016E8CC88894B2A6FF661C10AAD7C7B03B7085B70A8145C305D5E66CAA265AB42B34539CFCC9A62B5D9BD09FA4D3B94BACE361B4C6BF6B550B89922EC01041CF05C0E4632274949D244B7776D6504C9803A67CECF65F750F9876109167CA77D412A7EFF06CBCF129D057143BCF03CB1C1AFAF937E55477F5B15020149D64F53887467AA16C6692FDDE61406D552660B88AADF65C03FE1B8D485C57FEBACF8B11C569622FBC56CA1056FD3600E1BF51084FDAE32876BAA1E97637F73677E8FA1462222DA72FB0936ED66C16A5E892C44093CFE7B4E3EE33F21091E04FC4A07C6CA21E93A500E5D7378EC716A9ACB27A5687BCD7F4559C32F6C82E8C06E82135ED16C35762E94BFD6BC33D5116E4FB209C98C871FA8E9230FA807CF1FD509A75DFDDFBA5CD4F131FF8B666878697B372B92CDDA15D0113E8BB91A7750843B3D14AC4E8C956B44C7A3A26720E774EC1A1F68435B122E539C8A7515A1AC94D456BC4DDD54839AAF6EEDDFF8797C9BA3A15AC70C34DAF78AF1F0C21734DA32A79C1BD3CC8B2636E12B9D2E42AD10446EA1A9FFD45430E03A78D8F38B64B64C9D308D18CDDB4D5DA13F1B4D15157063E58C36DD71677334B4D9BF09D8C765FC68B233B31105D0957F1B675798E5B9E982B1BAF1611EFED0E39E1E9E70BC790886A422DEFEF325A07D97FC603866C2C3682FC651CFFCA09B8122B636A65E2D6B8B9FBE6BB9220959038AEE11AA7003A9C4C4EC9E27F4A8350FEBF1084C292B6BA9A6E03C00979854CDFE566831B077823B025FD1B9C7127BDBBEF34186C74759E32FC222023EAC24A6A6653A7073F4033D77CF83831E8B6BC8F26AACBC3EFB2328C6EC35C3A509FA85E2E04532DB6E466BBF8071FA6020CF5585C70C29320786EBA815EECA6FB2BDF9C9F3A3DDD0F1800E93DEC3C5E6DB4EA5A695865303C48986CE26346B6CEA4A734668D5BED675EB0C2A1FFDBB9E5511EC715BB4BA3604629FA28A53CC0DBA1E819A521AF8B7BFF16B4FBC6766543C0111E232157B7BE4D561618D6ED7D13AC8817641E7AF77042E96C7209F1B65C42D115234F6C63B84D381F1820CD656C88BDEC7CD2A814D6346E90841005F66D6E36E63C5906D19904EA0D33502BDED36E7D77FF5E2592290D6F29200668A25A6B6F44FEA1D3EA00BD4BA165D122455E8F97EDB36061DCB335870F44068EE4A64FDE5695896D6A5B30D7613BD8C8B11DB330AEEB0EF239C105CE6C0B2E1BD81E867A2D823FF88E3E82FCA69923E281A2933D5FDFAC6B217D60958D18ACED57D670851D5A6A445A120F5B563070995793E618F885F149A3A3D498C69A0B9D99D92C16327B7568BA8CC35128500FF515273099B645C683EDA30092C225D01E6337AC652586C0872C9C5EBF09DFECA43697BD97B86FD5463F529CF303A105194BCC3014F4458CD3BEE8088B8B05D58A960334C73E1CEA934CA0ABB2597F703428EAC5DF6983A76A5EFBB4A20221E6EA04F67273D52D0311AB99979CB0EBCE738B0BAD72F0DA80097609F4422D962DE43D5B9E27F2FB3FD55DB5B9E98C1E74533DE23930052446A31E656E150261C6658324BB243E0C55C43BB397367D9E6EE51FF7A3F4FBB008F87FDC3448C07B88F4EC3788FB04944AE1D734E00E1CC58052AD2F908B55B39C0B1FBFB889EE2CF91CC1B3FCFEF11C14B083F8A898BB28B838662274B9974AA8E83579181944CEDA7FCD9C36D5FEE67522E828D6FD9CD28537D9FD57C8ACC7B8F888FAE4673FFDD859F6446B41609135BEEB20804F4331E31AE057171D27D1C338DD976634A460436977192E7FED668FF01B7F996F00958FEF2F89C78367507225C458A7EF81513D849081E4D22013A4A8DA7E6E9AF687918486E785E2E5D4EA5CEC4F92910E6A6F89198FF7911A16D7B46BAC5752AD5F7457E9B65AF0DB57148812FFE9F7C70F5531D11CF96ADF7A3AE1D86039FA5CFD5BD5465AA1649C40A513FAD60B54F7AF15A5A6B34F0935BAB28A1AF631816A0F5F1E53E1A7DDB5FCE521252E25910555D70AE1A309BB1BAFB7ED3856618161CB41206810AACFB9F748B06F6BB8ECA8EAE07B77934CAB2FC72FFDB061D5FEAC548CDD1BCE7CE5D04E9D2E4F38834AAD674F0D540DD6EEA85CEEE4F67B1D572597E9F2B66554F7F835894E81F4081EAB2578CEB8FA95964742436FC6741A5A9D1F2257572E7026360708EAA41D31ECCCB55811D5BB7648EF4021268C8AFF001F2D6BB3E1D4D304374E892E4384D66869CFFAC575398808D2042B2A33A874BF364B6E7A859BBCC67ACD4B5DC3494C1A6B55CE004A354C8EA8F14E9D9A4ED282AC4D78909F42BD38D044FBC1C730F921A1C678062A200CAEDB0EBD42D48C0B758F138EBD6BEEE1E45BF92157E3279C6534232AA6C361953A0AE37E81261832F29CDEE864962D44CC6C3C68C05B16915A8FE35B067EA754777725EAB0BB4E20C3BA7D6E75812C498F29A94D18D90D60F49339CF46DCEC6F0A546A90E0BD6E75B95441CEBC0B25945F2A38F3EEB1A9E20805A81E3008750588397A9A168C73C81C97FEC1BC16659DB16AD7BCE275A884EF801D53868B0DB816FDE421A9D7FE37E61B699736986325592EA93DC18B036D5B237115C35AE3862E355A1F3CBECC5BA89947E6E304A86196E0AD6A113BED701D21E07532A6D02D014C9BDEF9F9060799BB79AFFB218F3B98A4BC9488E5D2CA13531842C6651621484207723F41055274364FE30601C33663A6DA49C8187008BFDB1FFF4B7B3DE89F7FB0BF57F2E273EE84ACF8EE91A5335364BD034DB6A1F8025E6522B4F3D6212F3E75AB34179B21AA28FF6911736724FDD4F3229C6C26142BE5D6F2148C9BEDEEBE6C56B6A20746875A6F74CACCDED95179AF50E1C5E09B942B4E3C5E227C1A9DCA36F04CB89EAC24D5E87D07BB407922341590A739B825AFB80F544F2B1B70D877300B46000E660A568999EB8F54A3809D6879935492CDD67DF15A1FA902AE6ED30D5C5EC1178AAEA8E539068EA2A0132EFE51DA8A43E5D48ECD5D8BBD0FEF8F90288E3068D17EEF4204D639665BA3DB7C172E99913E97613DC4304006CCB37F1E9F62327E1C2B5D97E31822A52298BE0D6457708E0E2EF25A0C4C932F16D25A277C5BFE1AB13FD488BDA7BF30F26E89585F56D827DAFC799D7DE3BEF0B41A3EA3491514ABF11E633D7F4B8A88CB6F3ECA3D48495475A33C9107EF39157D53D447308BA03139C7A1A9AB4ECB178D818DB6F83B4489626E2EE9464D7392C80F8B4B6317095926370681D1ABC3A48D82DE7A810124099E375F39E5C6683F4972556FF258996BFB0FB81C44E3C0C1A814AFAE8CBC041D7E7EA4FD830568DE534B65926D6CB83D306A36861FA2874234E33F4EA5BB8AAE05C3DBAB96CAD63295D7BECC26F5A4E862546A166A09E059293AC85937FEB612178B8812541A929B81A090FFFBB17DFC3C774C5BCEA1398DD530C5286658D326D7BA7DA3F2E15FAEB038B8A397B68AEF622EB10B248DCC942E7BF4B4C942D33A4427B685A0DF2BEE8271E89A366708C9E48F6A3992174E8D401D821DCFE12099D3EF0BA0806E7ECD674422731B0DB2B198C495E9DBA6294FC736F41EAD9232A5E404A8E918A18D7A7846E0BB6716C4343C2FB00286049D7BD823410EE8F71347008A89DF42EFE049C61CEE782102730944DD15C0DA322F6DE4EAD8F9EA549767BF02BEDB1F091252F08B34B6728165B11D2C62805ED24ABE65A8E95441D1D5FBD361FA87B39135A75D749325F09416CD3E1ACBC04F6AC8B989716C55B06FC784B0254A884EA4CCE8ECB2EA278CD32FD1FD99C3085585201EE9492B7F7A2259479B1FF820661466022321457088B202B5F1E67709B763A3A945B19CB5A6EF0A322272D98F8921B775A37B6CF92F66CF86FFD26F84547BBA75AE82411E890A7D8F1B74D657380287606ACC8572D8522B87CF26C0247F25A7F8CA12911081224128ED444C5AED9EADBFF6EEA9FB7485884093C340CB326BD467CFC4F6E6C17D4F13C7F9F76192BF4A10F2F28F538C76BDC1F8528ED1360922E5A6DF1A38AF9FB28542357231478192219477D554507A47E9FCA585730292493A2B3EE225E0DF87C747E0CED460BA677EC691637F444D248805FA183666FA65110AD3ECAEFF59B2F8F619A275034CE415DCEC6E68A3530D17EDE27E93D87EE1EA55D22045CF436A34F907D35264116A848DF0B448E4BBE32A18BBF16A8DAC00CA6B07876ED0720591345223877E26D2DF4C0C3FD8484DF1DC40F1B7D4D49E871D8F527837F1B790CDC9FD95D698231CD090C60915C98F1CE43F7825613FCF8EC929BBAB9BF663A555210868653131556553F7A36368B0D83AED6F9A970CB2D63163C607ED896FC7342A71C6A1C90A53DA0F32141600F28F31A9340ABE97D0C6E8AA3270850B6598670DA455F8E2816EF82D3267D39A8163D34B135221D7D5D98069A8233802810C7605AF9764C6DB44FB55E29470503090CE6A720617DC9D17A5091CD3267DC4DBC1A2B7032B50CE46522A2FBFEE7BE29C3DCFA1FCDD43AE2E09DAE7330D2E6F2B15D10F53EC6D607066504AC50AA7F18D3C290296A8D9ACD1F5A3708BC035979CF03966E0081FC53F654AD68A15A3D17A65A768A4CA5F647BB21872B1ACC5BA3DDB5F69DC215735A5CDCCF50D555FE968551D507A7272FB591587383DC5930C5A572BE9FE0C2797B622DA16C6B87A03EA563845B8201168C45E7603B80E5780E493AE87584A40A09AD6718CDA3759CF1940479545789F08DE83333FACC26D28AEB54E2088934332EB7DBD5829F0ECF89D22C62636063532B4361B9C7C2B1D582E9A7DC72FF7F2DF667D9B7BAA543FFA20AF6BCA1A9CC22B7D7D177B73AAB087F868AC68EA0CA808EDE0C2F931B3B0CCB28E472CB316C0DB0367D4D7FFE0C02977CD2E5B20F28867DB1EE0DA77C5935155175B33D3275426C3CC5B73748426CEBB3ABFC50405E30EC21A53073C83A85EDB485B26AE7B633692326003004A822F261D5E20246F99B03D0AAE36"""),
|
|
TestUtils.hexDecode("""
|
|
e3204112bf82f4849550037d8b6325da7435333c716595e2f17c8a85d66bc4a612e19abd17411d3f4b7e3a8eadad39a819fe5ba968c8640243fb5d18a7674a3368099088c000a1c9906573a2957b57d5132fa2df9423c64e0f7d89a338d0d41e9300f563a82993c8e43009eef3fd91c10dc21bf4524dde27c4013756a1cf7b5c2829aa1698a5ebc4c46b80cce01384678f5c444648ed513a8e0c6e4d29b3b4721627c1c8832d736d98c17f6c00aee528abf0908b030edb381770e6d23a261731817b4ba5e632b1f77e5beb60f2e34bc2f16e6feb6fcf8605367b5d2dbec8668cf6a7b47fe5802a9eb93451f96e2ad72432726c9579cf08c4337ded15690a1906b82df1e07fa995eef43df8edb543bfc3a7403877b4bcca16aa105b625dd23e1d938d4d89293e841245472a0c38b77a6697923e213eada80659269fb642089b311e2818f8ee998b227a2130ba594a27e985aee0c6a3b34652b54581eea40f2c1e235ec06e055247cdc106164d6856fa8798e0da03c1b4a6b89778fef781dd6c5c77147db302df8ae78b819da5b8ce171f53bae732a100211cf232faff1e0588054a0ee99891a26f88b19fccb49693a844270fcb1a43f26677abdbe3c33261ebaf69f8f417ae6df03b55506c463088d49415c0e5f3d9cceea7518692649fbd2e0153b1612a84e229ca9a69eef15882d402425bad02039426358124d0603decfed2101e93876d057725f6cd131ee346f047d7e2e0398a5bbda6e1fc5029b57f78e49a49cab5febc682931f3a2b167d553e4f1b6511b8b07a8f62e4744c20a7b2731b317ebfa1e89825d4b7fec5c775243c9af25fef92f61261f2b4377593dbb3008385c92bb779ec703a7e76b785b8aa46c8c3a2bc5069d69ed865f1e5e6283f2aea3740a62226d341deb55d420eab001398596c88406387b293ebd1663c2bf94041f3c13b8579111fd7d53b66a3528d9bfbc6b97e72730a53ba95e0549473cb4141abca8c8330b1b4e0e0967b2aef589efee973c3718eef61d27b2a355be3c92f7654a6d33e5441e3a0f389911b40f6640080a752ca53ca9db239216dbc3d95eff963ab43973fd8633299d5adad7020a862a594c656e34af356066885494b1a02fd6fc5cb257cdbd56e85e74de7005f2b160f6ec6f0a61083bb046d9ca90c04478d8489cd75e176d027351a84bcb6fff940eca4fcd464dd577780473eea0a72732d435eb41d219ef7c2619400339ad2c30cb4ecd48deb40d713e148b474c4de28b91efef85e4f16750bec38224c0916892032bff8b89a4e0aff665ebc050e46cf7b7cba9fe8dc8696c5842f82e6e6bb6b58663e1669be1e4469cc8982650e468b6c9e5a1d49a44172f86676d9f4731994d74c4eabb9086eeab469a8a7de0e18845797ed73742864149d659df3118658f8cee2cec3c8a8b388432ad98d4d78f3dead445af3fd698fc01bb81d4658624312fe1da6465b7f53ecfa4e6f958b9f474711c9a2ac9fc8abdb0682b5eb282e5ec116c45c3236baba0cdf49a7478400dd8a67fa4704a8e98b29b7dc9913d15f56e613592dc60db932f374b1a0ddc46435feb7412b290587fd9e925987e80d155ff821e27d77de3141b8cf38694e3cd0e7ee0d822c213656fcb7be166767da6522cf9c1f29cf044efd1fe7f0d9e9df64c417aae894e354bad581a66432f4ba9b94226b1b577f64a931c62bcc6c97e5f20f0c53f35ae39f38d33600208a1c6986aca3bd143e920a430e9b6a311a751509316abadd632dbc82abc94ae234243edb75d362928f0d8a7ff9f7ba927780bd7bf62f3849f3fd937960ed08794f8df99dd27c241539c41d27ece05215f2e63e7305d09cc384223a3bdf8df83d0cb1f76231529faebaa18e76b35ef77d9ce6d2973ecdfde9ebb91d7fe2ff38bf0e4ba8f9c3efa3185f6ffb72a10bdab1fb829931858ca37e1d3356bb199d9e5d9d90b11339643ce9c528ff7fda54f907126fc745cffd1d9c60dcb92efc39469c70899ff3d5fdc6c18ccb0b3bf04bbd9d14b34c857467185e5f427b134c95622d34f3bb5fc4bedb7fa8e7c16abc277447ec511acb82de3d1372f63d9a30c40e6485598e707415a572a29ed1c82bf0e138bf6c6267380760f6f2d42040948e96d4a792abb2912ce8dfd5ad3c20bcd63fc84717a5b0c79bf6acf89199cca48e502661a949cb3123506318dcd0079edd930126c0e879cad817ee9faf22a49b11f44b0719554da894a7fde9e67ed576f562c787832b7cdb0ce85dd90ad391abb590cc33c83a57a1e7c088fef90937f39b423977eb5d48028af46a43d664f3ce89be3f153857210668a7f152d94aa8ce1305e5c467b3fe47306dc75cd2717b67f1bdbd77b7acf6d4bc79cdb65b291e7356201f7fc0176f826290cb70b54ee4f2442a658812274e08c0ff222750703f7127c72184fefe2cc8e6b0769c56eaada9bdc39d44e8464c3c789b8254919fccc48d692ee13e70745b790f5e89ccf04eac5708734ef847a00d4bdb4a7773d8a8e14779741b76b1a3be2b5bff279d8ea3f750c4ea5aa82203f55b332b785536e30d5448acc215c10a2e63a6104afc5d9002eb3cd9b98f76f66679766a0562a1e0ef9a69d46a453d0777046097dfe965e1b380cafbd62ba18753ade14c2a663c7ebe2fa88ec4cbdbc841bf49366dfb13162ef6d6dbaae627975d3f5d6ff47f7685c713c59dab2e0629d6a14fbaf1895526ee00a32405d2f4930ebae1d4c0ba243e0b77b0575650c1964cdaa8a09d70592a6e50f0586fa398009bd40a2666f0e9f4512fd9453e54df633b6ed72916cf87455ad6e67bfeb91e5bf15221e01bd61738f5e92d5fbb15d43df14f3355d54bfc97b061a1db68354e06d1a2fe0da4e1a6c0c0c593fff12496e42761235ec1238879a2c9797d97c833a76a3a65bbedb8012722c4c4347c30bab6d0897f9bbc0cd8b20030d7e84507cee4069192cae1437715c2179c6165d38b534c63123e9b6f07fcb4dc1c73c376d35d94fb4ff945d6b9f2e8f41a01ba5b58d7b5afac6f7f74d5aff530e3183a0b8992d2e885bc6c2d5415a572cd8cb8b5f09094998025b86eec33fee6f19e8fa5fa11cb49932508f066f38192afa3d11b033a6b635e9a32cf0dce3512a9d7af02dcca39c3c7d62861402586f8f08e0ca459e96f2767e991f70590a1303917476df719c38b8c7dbcd8f61e787131c093e2ba97cecca4d52c75e18d855c491d1bbf517542494928061f24f142fb8fff689635d57170be21f8bdb1944729eb2c48a66debf5399ca10d883c37c860921feeaa1ce240c419a987f71484762db1f6ab4cfc83c1bd9e4ca85c7730e9a58630150784fccf9faa926a28bdbce010a355ef4e8fe3bec648ee207e187fc3a8f73f80850d254cd0f9d9e92a0bf91e73d63faad0f6fe7908158ced03f396527e7b96ed2bcd521a5ac0e81fb60afbe91bb0e70fa6d5c39317158f67bffc160f0b80663267752bb5a9aa97d85d9e9f40f557a215aacc03d022341baebb7ab7eeec8425af176f3b97eb80351158095708083dd51d896bfc03d308906c31eddcb816ccb28eaac48bcce688a479dedf9417c950a7a8c95ae7b452cf83dc548b64d58b52928e2f6411d4b02466543e361de3db17d8994ef28dff206b493564876d5e274658e69b5cd70a0090d669a865e56e24150b57ea6d3c261b11c1e45d7bc387aee61add50c7f756e593de9c3057855ff761e95760813e5d30b41ad700bf544c451bc6ff51998bcf48bd6046d9bd461924121a3d8daaf3978f792d9cd23978f1c8ccd999bc79d2a10daebb3c9d065d30e970ace94a0f774d872c700949f2ff6a997c6e3193c5782c82a077c4524981e7aa6abb27b86bdc75928dc9599a1376a2a0ab53b6668292e4d34346dd2658fc9d10232b7e39ff5843c620319e530c71052952f75f2ab69fa193ee321c5702b6e3107dfb93b60cc99cc88f1fb48c0bf48c032e2ab5a3085fc9ae1f542f7e0abccc90b8dbedc9a2468da43edd62864be9f7f50149300ae6e2eba570ded34fdfbacdff6bedc092e49810a3e0e860438e3ef56f15dae6a1f3e01d1fc6624602a486d4f2494a3a81694971fad50647f1f0d2bf9e2b4580877b98917b22c55207689da27039b3e46e7f37bc785c338cd0519fffdf11c1bac606dc58f36f5a6902ae32391c7eeb9fe1251ea7575632aa86ce0bf516bc370b3b02ac8a66c2b82a5d69506211c5d3ae15d3c78d47df76babf0c7fb0a5ca3dea741dba47e67851ff66b84c8b3004f8862d6e8f6317c708ddcd6f232f78d081232ad98aeb17402a9ced35420a5e2802381912f9773d0d431544b7466f778ea3f379cd9b095fd51c2a3bb6fe7bdfef1188506047a31905a3a62ab7ddebd4c5655797b90e7fa78cc80dc7e9acb634da42540cb27720f67699e357ddcf45fb4bb9c8c555793cc885c31ffbf6674648615faf691440dc456126a5194ada986c9387e282a3e8c4efd5601f55273296dd8a351adb1e1f954a7d466e75057d8ef0f3d187cd0f8c2203967c7aa3049968ece39674260ec8ce49a25c87cb4fbdb73f1ad1981c19984c8a7fc6ec2e8dbf74889cf6ee30ad325fbaf3ce1be4d06255353742b14128c74765d32ea790b3235a3ca4a6e3adbeb39c26daf148ce4fbcb993b48f04cbbdfc88f67da205c910cc6d0c85b355689d7a5f6794990cd5a8380322d807f4282f79f2d2686deb4d598f072bfa2df4644c8f098a1c9589ee93fb48926675c7e1481de74304aadd8b104384f4df77cadf60df790a394f021889e098f960650e40b9f71193c642c2b28dc8e73934646862a9ed47763ef721c0c01be4da0de58dac976c7e52ac407eae45bf11243f741d05b90ba2a351d19f0d91d115dfb4626e2baa22a8d1a047b7a527ee81cc059756cfd529db5630068c8d5120ea7a6125d5fdc982f6dd91efa9d4f19891986140cc788285f0cc715e9b21f2175360b67dbedc68ff3b41bfbbd1d3adbade1c46083eb973876fcc9ed1e264e8213111bd18beda97fa555b1cd2f9fc8d216358fbcfe430751152c09c02a78b8437616d4326e6d9b87a71e5dc04e61ffcbad9c2dd9e2f9b28885c3b5383d968611de6be2655f24dd0cdf262e134e8cb9db1abb07d6fce167a9dd323b1b8f7232a8355d3ecb3bd4ba9a3ff17bf0d97fa29064762a6c9b7ba14b1264cbcd276d85e985926862c96e322308242ce44679502fe70654f54d41cc4ecfd6933df5eb3b3f2bc47d76e85cac79393bf6d77bba0164f6f06922474c9c1f9ab86da8051a7ceb0a29aac113b4d1430424e8e498a6dc40d46fd0c341b00a069128f37e56a25734e9e446a500e6790ddaf9acb20f5f67037b2267bae2d4003e1f6104067ce5a360e031cc604dc828c7ee79fb9aa5261e14f473d6b5f0cd365c5dbaeab2997624e705b0a09650bd386b78bb38cf7e5a3cd67aee3a985bf25fd1017d3f1870d726d4f211e0987e9251ed9dddc27f5322c68254850b4a4845f1610fe728092d34f6f9b55af7c167bd8f5939f1f5fecc9d1e375f97961a304c775c36bde5c065076245a9d6bc90c8476d958d00f5421f869c4109f6388a8c905850ef8cd80927b44eeb042adfeb13d808dc337b0d3eb738782fb4322becff76b85105e0e737dddfbfb423c11bbf3bf93aeda6af3634ad5d2d49b5d36aa2d9c72537a69fc0db81d8b033b82c8921b7d50a51546415e51e7e5a47f3c71c5da157e25ecb701cb9128400f0a7fe4ef801a306ee61c2cd975143959f7ee2df91fdd3678719597df544a1686aa9a81b81cebaf521deeab903c45659b270b5906698af28afeb37ced3362e43a0adeab50e2c9a2019f338aea7e29195ad472467cd35fc8d7bc8e5e16f86b273e5af3583718cd0967b32e39ede17770e77abc124b0879e997caf22ca684cb60ca3860f4f2525a989434b132c2ff173383c74582cba5dceea5d947263b6980eda24555a778e8d676d2570e5049d38f386d68b13ef53b035a83364d8247a6b32627756bcedf14c9dafaf82a4af23b232e37eb4b4b36f4bdfbc9ab5d1a963bbabfec682c548789b2ada1d73f283aa8b98ad214c7e509f5943daab0b54a5f9d94958a0e3887feb46afcf00bb0202794af85caff85580f7647fa3e0a9183f202487ea5ddb661416be051ca0da39769fe2f99793509acbfc3efa82318c69803f386cad629b4160a33b743594b0e379b7e9d483c2e5d2dee40489b306981aef5541a8639533f46e058b83ccc878600a43f1c97e36aa1a5b65ad3b2dde0362e35063d6ab2018e2b866ee1d13cc204a2949ec14ff98b36408392751962c889e975de56ac5bf00ae7df15768f02d9243685207c530531af5b4d838d63f418e9261fdb9204e14139e7890e290c047a795dd7aa9ed45a2ae86e0a20bb1489b2366d292b5c8cd2401c5039ff21b734600a046696d728ba8e4e9697f9ea7cddcfa1417272b61689d9fdfe5f95c626c92d6ef364447505e6188abd7e544838aaceffe14768e94a6e0ecfd4e5c6b91cfd80000000000000000000000000000070e191f292f373d""")
|
|
),
|
|
new SigVerTestCase(
|
|
TestUtils.hexDecode("""
|
|
fe28a25123cd888c478aac1d081ea7efc0ad28c299b7cf879c70474654b0bfc8eedcc03981c72ec5378f14a215f090573a961409c287dd8bb9e17b83d8336b047bded3b424e69fb26e750f5f98a9864c906d82f1ed3f136b22048ccb9f3b35c1c184c7f2646fa81ee83701e854b42e3c6d69cf329f742155b37ee4796e5626681e1a56afa9aabfb79eedc3241423864e67e579ae2dd28927246935ae35aa191781800b4133e0e8491e134410da8b724d7b11719721a454e468eb33baa944c28547cbc9cd85b909dbda3c83671400b0de43dab70b1541c97937fcff85510a80d96cb7ecc9f57942d5416f87d0ec5bd6aa0b83ee64a57e64f88576e5560474db63c12166b62b62566dd79f3e4752af1539b09b4f71da54331b00c854e9a43199110889ad7aac60a224a58df58e997792627d4e22ef649ffd9e4853c39965c6a252330109a9148a2d257e6ae7659441abeb74e3528eede0bba8506b8c8e5be6d2d048c4163d161708b4d28175ffa2bb4d226e4510dc3da42c0d8b6b17592ed49f3948ce18ca9d0d8885c2933a3fa3857179f4ad48f6bc834ce21e4efb3a4c0c255b7f826b9525efa9ad6a1899e01c72c3ba4d78247e41b4387df8e664ca190ad641928e58cfc20b94f20b42cb2929c56f61057e85e638dbb09b8816948a95f515992a38e4d0d4419b0ee9884aebcd29df37bea8c60c59fd091453d7f816ba2b6173aa8a684e36bc79420bc640f3f6ea457dd7aa633389a536e6377ce182ab2fd62e610f51c135b549565d3c5dfd5aa83783399604faecc2c4fdfee1c383c8532a8442e004909c24bbd6dd15f2aeb8e3a2c7de11488b08f23453aa38f8689d0e2d80717f38c68128755114b151f2ac8aa2ff6d8f54770c8dc731074391ec6212140ae79c160aa2216cf183fb86f829c01bee4ca9eeb9b1a534a0e68000ebe4d25c5bda0d3e264f634ed56f1ed762bdca4577646344cd069c8947ac1050b62eb43f0ed7d276f5a1eec4a620f5f160e66b11ef24a7fab0f500c7fd1d5831c6d1994f871216c812bbd4eadaa5050dd2e59edb14b6095c51cd6715db572205a644884bc28fb1ca2e73ed5df2a668abc255032ea645c11b85ae3103119d3089875148b1ebeafba87b0560c22b6bca7f981263541fba14cc4416f20394ecaae798bdae4c15962850d49ea1b3d99ac6ae25bd803437703854f514f36b30e73fb59c97d8f542485a434b2292992e78a73d021f074a11a14c9f95e6eedf86a986afb81be2b47f17178de4f21c287f25600e39147608d8fc3d5d8cb0d6409b3a42feebe1dff95b3c588935713c2f7e8f9d3c0a0546c8da656910fda9eeb4415dfbae2f90c9805917698ebe7866b96984ef22f9db48c81deda5c17928ee0d5dd9e88acd2f5147a9d8281acac581b0a0a5028014decb33281915de058d53fc75932fc1a0d4e349c75a7d1313f9ff44bd3c1e9f057bcbf6c0f889bbb0ec75b967de1bc7246eb91c515f8ff5c2ba15ad9df662e29eedeaa1a137a4c1ae62858c583874ce7b4179372289e9331eb8ef3effdd691b8d4410977cf0962ab9f5fa882faef80a2d2334ddbcf5301770197a713625596866432e342f11f6bdb51c6d629dc0cb159c986c55906497ff751a532d922380c3f0171ce058eb25beea093df5e2a45ac8546d815ff08babdf1a0365fef8e12d59ae04f0cb6c373d4e213ab8386b7ca98891c3f5c6c6bb2f5396d131ec9a173a5c2e760cbd8840ac3be5cc21d837d44efb33412a572853782a7e3c6b8f438e4a842f7db269f7ea339ce80d2da2bcbcc8c8da5e68588e136894e4bee6985934ce772fe9250ceb70d5902a49efa797bb3fb0b7021a80daa677807332bb4cb866918892c7b497865ba4df6cc56121315f9dbbcb7d82c9b1986c5ed428cc257b4087a27f1d340bd6e22506985b8b456bd3d726113d0b190491ab8296ce2725a2c62551924b1a85aedff7c3cd0f1b3f5fd8a8b0c1fd04bb5606c3ee0b3a5c8cca67cb2da6ad7eb74be8db03e91f43c315d4fae4d93f71a8eb1be4a54c6d66d44c203fcec2debd53debd527b4d61b2bea59b74865075de444839ee09fc9f6405a0a91021bc328e7aa8cfbe77ac8b49e049c8831689f52d29a7db38ece3f04b994090c636cac358d215cd36f55f44e1f99675137e192a876571a1271e7aae73443f0b6185d918f9b1bde15d313c1eb3c71bb01b98ecd764a1cc1a7c54378be4e3df310cc0a8297283b94bd45a53f19e55c18396a902c906e2f4249b5213a76e547e10648a48498f6b6423ecb8ecdcd707889092f38c735d5b1255670d121e16091ee2571716497a72c4e851beddc42b88fe4ce51b7084a8e9eeffeebafc1bff1bc787b8b289d793e60502880e7c4625f4dfcf8d9e03cf606b0d08a36522a7707985a1dafc3e16683bf1e6c7338b9f5959d94be1e6b36b5d2fc7c5476270c8b4a38d6b8b8545a88bf34e91c765aad1f753b717ddae316df7913c6cc1d02fedded7ca47464e236fa9c627935b0df1cbb6b3f87ee6779afbda2efbecfa7c5ee324f7037e99d65175a1786547659a3d3e039d9b2dfd48b52a4b676d282701e62c895ec730df929c439cfa55831d13760291fb2e87e92fc3e3228daf16c93b3cea4da2a7b089e79d5c2698e6909fbceeadc461180784c83d5d6857e7cf50917143970e4515ad5d19a9d4836ba201e356566dd1ccf5694feafc9f6b33e734925ed69e82f4821e7359ce6c2b5d9fd2fb470fef5cb90336befedccea1a0ecc4236de6e980e584cdde0796c1118da083cf0b064e91898529c486774440b87af2cf8851b455b072f011b008fc9deafdac5d1401653a989babbb5e0aa14e7ea672951d8c87f7c41cbdbe66eb9856a54652027efc81cd20195a31106fe3dddd23671924c58cca3109611cd74e8b212058a616b4571b5f48c8b13ea3c0d69eccf41734e6cd2e4e1502741577982d6ff5b213275178b215019ed430600a6b940145031d3559a83bb9321fd89d98a3a382ac2e3479fd91ecf7dc31a7732adb04d28de1549b96d153f909eb10e024156c28842a3179aff185f008244143614f96a8297cb553141d967e675fe09873850bf28cec3eb8c519586c220be8f365aed6401beb68235d87424d9ca06806a5b3c00f7fbafb951577ce79de9dcdb7e30913815f695d1267e78f72896073f1878fedc4924f86aa6149bcf2c69e9c0df1c2aa17f95501ceb1d9f074fe9e41d474f7f6bf73d1d993975cf58946d02b9417b398464e9239bd446bc77493c9028916ac652692d80229d20172a4c6b86b4573b407ad836d0e01358216520a442dfc2b302f74c16e06a087f46fb40ef6db475754bcf778ffab7b8ef8dfad3af69fa91537c34da59e0727b13cf3d45d48a5af9586471b7db96cbd0d4fcbc5b699c1b549ad74f43ada72884816102bbb41a5063803c7aab173ef368815bb5fc4621b4ffc290602392624ed534aa52a1b51247c78e79edc30c2ba2ac3b0180693edfa1777316b6b45614aa768edee575a6b2e57b90a0137188e83b18bb53f693124c8c84ae595fb5c24841b8d1696117a5ae94b487cf3e56bac558e2c9569d71c692aaba10ce9afac91593d3a2bc9348bc26b8a8620ca43aa4d17fb28c475d3211422a0450cc0a4f0577ff9ede1368f3e2e8cac80877355"""),
|
|
TestUtils.hexDecode("""
|
|
4F4C7E0134BE5200C4512299D134770A64A76B73A82463FD8C86594939DCFD9DC55B895B32A2E96B8AFDB8CA83AB857679C372CD88754CD8A7B0A31D2ADDFD7D1BA64556AAF1CDD674F3E8F5FC0BAD2FA38326365918430AB2344CFF785D5F73F2B5D631DB29FAA0F9CCE5CB7FFE0CF4AF1C7A8950EF32F1D72080A492C7A25ABF67F409FF5D4B1E0D77268C0A1B2A32D9DEC61BB71EDAE6BFD58F274707182058F0E6AA31E6D3763732A82BD6F2C76647C7ACAAE7FB4AA51125F0D2D48351B6A3FC7FD18172FA8689AE1602C4EC0CAFA863AA98BDBB1CD8C2681C2B6C5C254E346C18E2A270CAF2606A6504D30C0E2E505C2FF9D18523BBDF21424C645AF0EFB2EA0FD21B5D0CD85C7C1EE176FCF904B481855C4CD739443F3340AE48276E7F4BDC00CD11C2B0D6B97BD00AC962EE1FCF8A73D3DA3CCBB3B72095CB33C5542D86E843641CC98E27545F99188AF064D5FE74739C54F5678F411D96A0EA043652935BFB2E37EC934327C7C841CB0CD04EC17FD06A18E88882177B51B00DB6EF1DA164245A3F2554CEDE8C84DD777F0B92CDA456D922D8B7B8B63B548CBB72CFACA540C0D69F9EF21759F243CFA03EBD6B080D23DD62945E623BC4F8323DAEC1215B251C35EA13A0F081B86E803BF37DAE6D913B7D942BD1C276ABEA3F8F74D0C8727EC21EED2AFD438BB7"""),
|
|
TestUtils.hexDecode("""
|
|
74bd615dc15e9ddf76b9f9bfe3092d48d80a2e8fe813b8b54d48297a3a3cc255927f7d8eb3bfacf8ba83c73455ef02ad7fb58606a401c0b29d8ee5c2146dee8824eed0d40dc886a5a0f4cb73a0a25c563fb78d9b347c1b0677d5b1f4fd9b01cde28958ff5ed00199921e2d72a63a4d5a3c43b9f5a47f5e80dcac8db898353bcdc754e89b0fd3279ef60fdc3114761c611f5d51a7c4ec9d4a3616376956a6b755d2e162db6df7c916d1054cc9e624a7b05fab4ae9080358497d8172b90bd2fdd8219e86663deec82ba86c2ecf63624c5d7aeee9f1ac56738c58dbc87d968fa3ee5098c51188169b188120015a00ef3a5bc03c52616cd04579604cc1affd3aa92270491673887b232eb65f3c0b2135157b6e57184b10f262605c26424cdf5c3a5694beb6a74ff252df89bd7693abc92ca4998d9c644cc737e8baa2ec6380d10154c212422c069c9d6fd38aca468ac10e08fb4e49b4d734f284c3e641182276a45be15cb2a75b78d52dc63799a5a2e4e800b30871655a507c2d0b6baeaaef0923d67057574559b87d8765a4c3f87ed76f1ab5bfd5eac40870dd7510b3bfcd84dd9ea15e5845626319e5faac3255bd9aa7686aef2410dba1221f67b3a649c5528a7f87f0ce8556e3f32d5c48622844c113454d08855d8a930b1c7d68522a9d284f1970f8944ed9882d515a877c21d3a85cc247da447d8005d72b688cd17490d88c9028c140f70052416815331fab6c073ed191288bfeebaa7325991edf0ad3520628f91d6aad43411e7ad0f8aeb6825f9b9d63b2f7d5c0f18c67d58634a9d85ef2a932cb231cac3f057656ad2c0e87a35fca332f132b68d60e39822409657c06dcc1cc92fae42a6c940c379e1fc61b6af60022a76e52c1a73033d6877fabcf9b17583aac80b5922148aa45434fcd0212634d5009aa509fb35e57905e033fe1026cfd4e227861d5be4e69838a92e070b96e61c747596e3bf27084e804dbf380aacb659ae79cc4c17f20ae64117088e297c82b8df7235974c4eade96a4567891eaaefdd7fc8ed1185a8ada618e440c4b85b698028f7ba29d46010d2f965d357a8b469281f5a2d3ad786092d5954ac780793f70ec4ce0ba58b2d755c590284c0062374d9a1453119d78b900b33d0ae9a7c2becfb014516d6b5a71da7c16c9215008cd1fa18b0e2d4b1a189c698e0ef49d230b7b284283b54cf907710730020e4c64a935ae5817803ea1f295f19464122c952de6870cef17bb4830f74e253ed99fc9d39618d1755003ce2c6434d5b4815a791df5478388dc9d6b3a72fcb326b71163922a7660304a9b9a0dc3a4df7f7d1d12fca8f3337adad6144add960229ed4b0de6eaca288ffd38a0a0ed6e0454e95527c18efbe3a3b4a18885e5f568577d903583ead64d60b82175aa2b19e100068bef823e2e8972feb348ec9f315b0a46d672d17effae1b47d60fcefef137956df1b4addad9587f6769269ba0d4e8d90090ddc2fe579dcca0980787ff8e41837e4306dda5f10d3f63762cb2f1b88558e749402b37ffa8cc75dec83fb44a6ab62260a15bc5f6e55eb7c1bec665ff4fd2a3d6e5360b3965187daff84ea0e42ebd3c33e57be120002e17e27d23cc5db3519afc91d9a6cdfb04bd7ee04a69ed087c4eab2ceeacbc0a0f4d6997f8471cebc6552bcb17e33ee72a197b5025b1499b1a19183fbca863b749758023dcca325bbf934fd1eee220e10ad10a49a3c5d861e91fcccde741b28ee26065812b371e25ade89e9a4bdb74956b9763ae2ed876b012d9c9e1278845806d9b22774b107443293848f2c510ea69fb45283ee91d08784c88f31de801244012ebb472b1a5032ec6c7404a03e6ba6c804aaa7aafacb204e3dbf5b9b7c455ad35a976706b0b217ddb0009562daa02a09e6a16484d4d85a4b5e5760b8b7e05c5310cb9eb1302447fd94b64963f64e2f182e5cac29ccb93233d43c398a7adc0d782da927a5978f7678b693d3c91988eee0c11f8614d351f48a3b35c8a5d1cd343ddd8f913e91f82f13922d84fe4a1c1599eb4574d1b1c3b0664695ad132627f8e24e0422caa6dbc0631d44244eb1025020f3018a14629eed3ebd1020b65ca21cc46480d958f67dff1926f99c7eafc6ff893dff9d804ab937dd9a5249d377eb2a9dcb8461c3a45e010690e8179343c8fdd033a2ceef78f2fb158087c93533d3b12b0d02417eb067cb63b3f961f56f7924d549e8a4ef12fbed383997e41ca1dc7ef6bc6629c947ea1a4750e3de3477c9d278d35f109f877d8af9dbf8a5be216b7a3511792efe170d79309910206de37a69877079a6d74b2a46192bee571b47e64a1458f590203789137bf3fa3a11defc15c00b976ee977e97a173502a3c13e01d1ab7c385f216ba812263096d0ef9d7c0c61dd2656771bae1edd5073e6a0e61991e4c163b5f6847231dbc2dbe261cddf6f31b614158cf41c3baa1e9b82bc2c4624f1be8322fb23f94912c2b89d82152e84f19ec84eab678fc79cb31ab6ffc25a56056066784fa5356cc4a39b33ee83f41ace4e6ba647d43e5717137c294093ba7c4d5d2f462d63b9ee0fde8b02d430179c84e79c168dec2e0a24578d067b6445972e0576cf5517284498e061ccc215898e15bfb1be5d8eadfdebe789188852a4e596474c0aaf581ada0f472ccd1a1ba6705bbbc6b938e2bf0b115557d73c3f456badae8422835bd12fd4f5a48ade113261eff298097c33dab6320603d813a198bcf6cc7fd9ccb78cdab417e6a8047e11867c91ab4072763d5e63369a58e8a3cd53258aca1c13f153c226a356b3c111a6fdb0bb51e5e6fbb400584fd4258bec8ad1b72796f0920a316564fccbd05e9bd5dd98552e04abc6a402ca47a9ed76bac30bd66df28aff95d7b86d95377349b7ff0a775b32dc5d6f726d16821c217f9deec62138e6b7b659d985dbbd57c7af7d6d0b8d234b47b122a02ea2813bfaeea52fac4100abe3567b18640f0e39828798b9788cc51f2cf987cd41602291195d4cd1fa1d1f152a2130fa6631dbf21fa1ffd933dd9137f7d1cc0c7fa133d3e4d04976ad8270ee85887b3d630576b45be5f2600a5c8159cee9154d7a0e4acb1bac445c033e57827908ae303d59564268f14abbf4b616e21b944c907ac9a30646f37d53b6d512f9c3212254d35e87aaced28d5d3bfebbb3c9e06c806a5b2ca6702e276c74d9900e08f8345001b1f720240813243c78aeaabce954018ddeda0ee6b1d7638e97b6d5b159984a901f297f10921a681ffc28834cf5b51c9fc761d327ee9585bd88c425459ab657095f793c8f07b255c84c5a0baf15c6cbf14335031347a03d11ba6ba49536d6812ec4e35dff2641bf4782f3c57d2d8e4b0d5d16b339caa4517ce6e8fe2f13f7d9837adf95500adcde6aa4191fd0cfd66f866c520ad3871f4f3bfaa5d0b8b3e1954bab44ac6b26713d2af52133c704d5237a32ed5e8ae69b897c29358c4a89ebc7431aaa97a031bf243e1a41658c8de7ba7e769e73b0b57a5b53cca25993c43f63244789e41b9be75859efb110390b8cda0aa314f96bc73b176d8cfe5f0acbbfa245ac49aeddc82e2fcfe9742c26a0f6128afbfd02ced63b67c26ed4755ccac4bb26963bf98f29c5146dbe5593d7a5b372d726d23e2947f6d98fa34454f6b9271a0fff5bb32a91b9140ef7e1751b3efe5571629784b271bac9d4b48c7fb0ac426dbd46dbf86aeb137a8c9b0d3025be5d71d7123581ddddac339535825eec433455a38ca8c6d6ddc59f12f6b4fe4e5ecb35bb3ad77a2bcdeb5315dffc072ba16565ae879e52e7652c9a45cf8ca840e913cd71dda69a81a09faaeb51a44f342812df6e88ddb34ce2e6a9a39b72d8128dd973ee94d6f86ac4b95af05940914f40ff800c3b25f3ef7f8a0261700415391ff4e9f8bca688b4ada9639da8e0ed0c754eee0e1d75f7c4e148971e7a72ab0233ee2aa77a4cfd345fa3062b921a9e49d444acafeb8c7796725dc84f2e5629b91f876fdfea92484aef3f28f9645973b47e9c607ab78877b035f64b8df0789fcab17f8d7ad2bf3a30bebd4233dd9ec3761bf23ff636ce7262974b332cbc3033c38bce5f9452dcfe3ed46aa3ae7c2c133160996e93a83ac01c4a50b0bdb0d6fe30c0d2b88122514aca33083a88b86768a46d11808beaef3412ba771eb77a17bf6328581d8213c5a7271adb13ee318f6b11624ac249857237d13c4308fa3aad7e148d0fe8b7a2c32ec48db9c2fc12fc536f5e9356dc83a8b57fc082a687a854ddb1aaace41e07845600cea04572c98a2a5482301d6c6e77be14bfb481ed5d36d9ead04ebd29e2c72f6855d4e13c58b338608923ff7ce5d366dfa8692b92c5356b6980d7ba133a979cc5f0e5fa066b575b0f7fac0e4eb0b531e404dfe328ee6ef263fc652a5ed151585d7fa47b11edba2b6ea5aca517b2bf5a38785caee5096354f4b703b8f2b6e2e7cec9b3c4fe09b0785734ef10555eca3e0fac89bc0293db20f64891f4b2773e2a2124e64ca5e5904c5d17e5d8dae7bd268c8a537d6fb7f11287a49e63e028186f9686b3bc6ba6c55a851f28804f53a0bd43098a63f5c005c4d3970cef231379a46561d41a94c18b2141843896a3644f1f19675ca47b4bceb6da613c0800c214df0c543dc6449831a7486dce0a6f9a349a4327209ffd5d240344912fe4315d9f38ed9e9995c814864de81e093517ab59e4ac5ff9d3c625c2e3db325092eeb5dacc6c3e5e3841b6df280543ab79b7edaa510dd39fdc44640b37f1cf44160c067432d32e4d83e60064e803a7c2bb5749e8cfb4c65f4fd515a15db304930279e95cbdaf3df8960f59ab547d527031d3d63d94d937a3115d3405e622a3f0a6c14c8aadb7464d5da999f16b327b61e9ed9296b0a8ffa10bf4ee900c2a3b55ac356f98076b705a8712613844aad76f961cf4829a1ba18238f2265a08c74e0f7ae875c19f70e9f73a328e48a7fd22e5657abb9b393bf766557fd834c6e81b07e1d1d92ff689ad1c794a46e6eb85f4d342caf54a0ed148ede130b7bbe1f1c2e868ffb20ea9c20b45f0311b352b85055d3e162944c91a89d00f2f9cf0e9a93743646379eacaa4ab3e54bcbce08e4ff015d0c424462c2acdf08c747fc3b7c7baee4e909af894c09395b570ae516ae687ac6d75c695b06fd8767b871ee41113b9eb7f5eb7d0d46d88369fed3148798736f31678d06b0d3402bb1577dc0f3f19a0a2f9d101a611d1b33ff99aff52937fc21d44e3f2c293d37b9a901ca71bcbe03965f2a458069c9dad2310b58a0c5662dc113d7ba619ce3e2b66b929e6770ecc3f6026e9ccfead7df2e44cd7e7fae06683a4b5c0a3a77bad76c8754133d7c548bee11be8cc084605f24668b294a6a0a633c7fcbf3822443a90477c8c501fd33c8778848f049a710971853bcbc2ae666493faa6426a96483ad0bcf8ed0c4ef0b58164b202650fce31b3ab76dc96edf271415c5a8b0414d7f60a51f01818b4e8c4df3f35f51f7738ffe534b2f9c2fe2acbf7c5e272a2d1fd4996ed30acb03abb0dee3e099b0430dcd620bbd639f3fb8b32d66c02dbdb262596c6e177d4aa7f74a959e90bd1dbfc061363870c42bd573abce58ac853b85766cd52724f158be47d62a90dfb5f0025e208c9daa5a386433ef5072da5d8938ed6683c7131dc5b0c66a4c4c2e14b04dea6fef564dac183478620e5c0ef74497974222f2788c84523ebc5391516ad6dc540095080042a5a52611cd4bc7785fef1768737ff1d9775a29a3a442f97dedf434d0fcaf2d8ec4931960e5ee03b91c6b16bb050bd9b64c9f8858958e1e6884cb916d6fe9643f05887b97f1696a7c111fc949009cad4f2ffd42f891cdb39292e9183b5eaef8c463a9226e71cf2ea4db2a6c66b7564b38aa04ab38d718aaa8ec5cceb4589e4f72e31e80910d209296e4342c65fae64b55be04a8927f0b9e7bab21f37af331218f43439087bd67d639bdeb92c3f774f7fcfb4fb33171659e00f03537983cd481895349a534395c40addddec7404c6adb90ad2a049ee457528a40821d4e57b94224d686a7ba70b5b2d35102b73de70870bafedf2b30ac3fb7f26679a2471afbe8f9c0f645e7d50d2d9b1e921ec8b84a1493e96e3463d1785b452a58077bd78708c1b54a96d8cb5b186e56cffe16f6ef668ed05cc0967305b409714679cd775168333d5042c9ca581c3ae2ef99e76fc7c42221c2ce3e138bc85e202fd3136c35613396fc259c4e223ea528bf7e0d7a48ee2ca96bb81e687813bf2c04dfde469c649a13816d3ea3e13b2f1fc1f6faf526dea7e3e39715ea1d6542e1a3b007fec2051531404040d929fa91c88a73ee9a717a93df44430598fa2d5922564a73b77651f24a4265c83ff09b25daf7c1b682da1498d5377ec73b00b408a4dcc9bfbfeba175220a6928623238412f1937228e9daf416a6c9aeafc06083d4d525c8eaf1f216299aec3d7e9ebf4193a42649fb4b9bbd7dd27367382849ae718394d86adc23270737c8fa8aebbd4001eaad3e4e700000000000000000000000000060e1822292f383e""")
|
|
)
|
|
};
|
|
}
|