From 36a0c7fc2d7904117fa47ccd046c24eba11ce8b5 Mon Sep 17 00:00:00 2001 From: Ingo Bauersachs Date: Sun, 29 Oct 2023 14:35:20 +0100 Subject: [PATCH 1/6] Fix handling of multi-message TSIG responses Closes #295 Closes #297 Closes #298 Closes #299 Co-authored-by: Frank Hill Co-authored-by: Nick Guichon --- src/main/java/org/xbill/DNS/TSIG.java | 145 +++++++++++++++-- src/test/java/org/xbill/DNS/TSIGTest.java | 189 ++++++++++++++++++---- 2 files changed, 288 insertions(+), 46 deletions(-) diff --git a/src/main/java/org/xbill/DNS/TSIG.java b/src/main/java/org/xbill/DNS/TSIG.java index aabd364b..41ca9190 100644 --- a/src/main/java/org/xbill/DNS/TSIG.java +++ b/src/main/java/org/xbill/DNS/TSIG.java @@ -369,6 +369,31 @@ public TSIGRecord generate(Message m, byte[] b, int error, TSIGRecord old) { */ public TSIGRecord generate( Message m, byte[] b, int error, TSIGRecord old, boolean fullSignature) { + Mac hmac = null; + if (error == Rcode.NOERROR || error == Rcode.BADTIME || error == Rcode.BADTRUNC) { + hmac = initHmac(); + } + + return generate(m, b, error, old, fullSignature, hmac); + } + + /** + * Generates a TSIG record with a specific error for a message that has been rendered. + * + * @param m The message + * @param b The rendered message + * @param error The error + * @param old If this message is a response, the TSIG from the request + * @param fullSignature {@code true} if this {@link TSIGRecord} is the to be added to the first of + * many messages in a TCP connection and all TSIG variables (rfc2845, 3.4.2.) should be + * included in the signature. {@code false} for subsequent messages with reduced TSIG + * variables set (rfc2845, 4.4.). + * @param hmac A mac instance to reuse for a stream of messages to sign, e.g. when doing a zone + * transfer. + * @return The TSIG record to be added to the message + */ + private TSIGRecord generate( + Message m, byte[] b, int error, TSIGRecord old, boolean fullSignature, Mac hmac) { Instant timeSigned; if (error == Rcode.BADTIME) { timeSigned = old.getTimeSigned(); @@ -376,13 +401,6 @@ public TSIGRecord generate( timeSigned = clock.instant(); } - boolean signing = false; - Mac hmac = null; - if (error == Rcode.NOERROR || error == Rcode.BADTIME || error == Rcode.BADTRUNC) { - signing = true; - hmac = initHmac(); - } - Duration fudge; int fudgeOption = Options.intValue("tsigfudge"); if (fudgeOption < 0 || fudgeOption > 0x7FFF) { @@ -391,6 +409,7 @@ public TSIGRecord generate( fudge = Duration.ofSeconds(fudgeOption); } + boolean signing = hmac != null; if (old != null && signing) { hmacAddSignature(hmac, old); } @@ -572,6 +591,27 @@ public int verify(Message m, byte[] messageBytes, TSIGRecord requestTSIG) { * @since 3.2 */ public int verify(Message m, byte[] messageBytes, TSIGRecord requestTSIG, boolean fullSignature) { + return verify(m, messageBytes, requestTSIG, fullSignature, null); + } + + /** + * Verifies a TSIG record on an incoming message. Since this is only called in the context where a + * TSIG is expected to be present, it is an error if one is not present. After calling this + * routine, Message.isVerified() may be called on this message. + * + * @param m The message to verify + * @param messageBytes An array containing the message in unparsed form. This is necessary since + * TSIG signs the message in wire format, and we can't recreate the exact wire format (with + * the same name compression). + * @param requestTSIG If this message is a response, the TSIG from the request + * @param fullSignature {@code true} if this message is the first of many in a TCP connection and + * all TSIG variables (rfc2845, 3.4.2.) should be included in the signature. {@code false} for + * subsequent messages with reduced TSIG variables set (rfc2845, 4.4.). + * @return The result of the verification (as an Rcode) + * @see Rcode + */ + private int verify( + Message m, byte[] messageBytes, TSIGRecord requestTSIG, boolean fullSignature, Mac hmac) { m.tsigState = Message.TSIG_FAILED; TSIGRecord tsig = m.getTSIG(); if (tsig == null) { @@ -589,7 +629,10 @@ public int verify(Message m, byte[] messageBytes, TSIGRecord requestTSIG, boolea return Rcode.BADKEY; } - Mac hmac = initHmac(); + if (hmac == null) { + hmac = initHmac(); + } + if (requestTSIG != null && tsig.getError() != Rcode.BADKEY && tsig.getError() != Rcode.BADSIG) { hmacAddSignature(hmac, requestTSIG); } @@ -664,7 +707,7 @@ public int verify(Message m, byte[] messageBytes, TSIGRecord requestTSIG, boolea } // validate time after the signature, as per - // https://tools.ietf.org/html/draft-ietf-dnsop-rfc2845bis-08#section-5.4.3 + // https://www.rfc-editor.org/rfc/rfc8945.html#section-5.4 Instant now = clock.instant(); Duration delta = Duration.between(now, tsig.getTimeSigned()).abs(); if (delta.compareTo(tsig.getFudge()) > 0) { @@ -719,10 +762,68 @@ private static void writeTsigTime(Instant instant, DNSOutput out) { out.writeU32(timeLow); } + /** A helper class for generating signed message responses. */ + public static class StreamGenerator { + private final TSIG key; + + private final Mac sharedHmac; + + private final int signEveryNthMessage; + + private int numGenerated; + private TSIGRecord lastTsigRecord; + + public StreamGenerator(TSIG key, TSIGRecord lastTsigRecord) { + // https://www.rfc-editor.org/rfc/rfc8945.html#section-5.3.1 + // The TSIG MUST be included on all DNS messages in the response. + this(key, lastTsigRecord, 1); + } + + /** + * This constructor is only for unit-testing {@link StreamVerifier} with responses where + * not every message is signed. + */ + StreamGenerator(TSIG key, TSIGRecord lastTsigRecord, int signEveryNthMessage) { + if (signEveryNthMessage < 1 || signEveryNthMessage > 100) { + throw new IllegalArgumentException("signEveryNthMessage must be between 1 and 100"); + } + + this.key = key; + this.lastTsigRecord = lastTsigRecord; + this.signEveryNthMessage = signEveryNthMessage; + sharedHmac = this.key.initHmac(); + } + + public void generate(Message message, boolean isLastMessage) { + boolean isNthMessage = numGenerated % signEveryNthMessage == 0; + boolean isFirstMessage = numGenerated == 0; + if (isFirstMessage || isNthMessage || isLastMessage) { + TSIGRecord r = + key.generate( + message, + message.toWire(), + Rcode.NOERROR, + lastTsigRecord, + isFirstMessage, + sharedHmac); + message.addRecord(r, Section.ADDITIONAL); + message.tsigState = Message.TSIG_SIGNED; + lastTsigRecord = r; + } else { + byte[] responseBytes = message.toWire(Message.MAXLENGTH); + sharedHmac.update(responseBytes); + } + + numGenerated++; + } + } + + /** A helper class for verifying multiple message responses. */ public static class StreamVerifier { - /** A helper class for verifying multiple message responses. */ private final TSIG key; + private final Mac sharedHmac; + private int nresponses; private int lastsigned; private TSIGRecord lastTSIG; @@ -730,6 +831,7 @@ public static class StreamVerifier { /** Creates an object to verify a multiple message response */ public StreamVerifier(TSIG tsig, TSIGRecord queryTsig) { key = tsig; + sharedHmac = key.initHmac(); nresponses = 0; lastTSIG = queryTsig; } @@ -749,13 +851,14 @@ public int verify(Message m, byte[] b) { nresponses++; if (nresponses == 1) { - int result = key.verify(m, b, lastTSIG); + int result = key.verify(m, b, lastTSIG, true, sharedHmac); lastTSIG = tsig; + lastsigned = nresponses; return result; } if (tsig != null) { - int result = key.verify(m, b, lastTSIG, false); + int result = key.verify(m, b, lastTSIG, false, sharedHmac); lastsigned = nresponses; lastTSIG = tsig; return result; @@ -767,10 +870,26 @@ public int verify(Message m, byte[] b) { return Rcode.FORMERR; } else { log.trace("Intermediate message {} without signature", nresponses); - m.tsigState = Message.TSIG_INTERMEDIATE; + addUnsignedMessageToMac(m, b, sharedHmac); return Rcode.NOERROR; } } } + + private void addUnsignedMessageToMac(Message m, byte[] messageBytes, Mac hmac) { + byte[] header = m.getHeader().toWire(); + if (log.isTraceEnabled()) { + log.trace(hexdump.dump("TSIG-HMAC header", header)); + } + + hmac.update(header); + int len = messageBytes.length - header.length; + if (log.isTraceEnabled()) { + log.trace(hexdump.dump("TSIG-HMAC message after header", messageBytes, header.length, len)); + } + + hmac.update(messageBytes, header.length, len); + m.tsigState = Message.TSIG_INTERMEDIATE; + } } } diff --git a/src/test/java/org/xbill/DNS/TSIGTest.java b/src/test/java/org/xbill/DNS/TSIGTest.java index d4e52b0e..6120ec7b 100644 --- a/src/test/java/org/xbill/DNS/TSIGTest.java +++ b/src/test/java/org/xbill/DNS/TSIGTest.java @@ -11,33 +11,40 @@ import static org.mockito.ArgumentMatchers.anyInt; import java.io.IOException; +import java.lang.reflect.Field; import java.net.InetAddress; import java.net.InetSocketAddress; +import java.nio.ByteBuffer; import java.time.Duration; import java.time.Instant; +import java.util.HashMap; +import java.util.LinkedList; import java.util.List; +import java.util.Map; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executor; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.CsvSource; import org.junit.jupiter.params.provider.ValueSource; import org.mockito.MockedStatic; import org.mockito.Mockito; +import org.xbill.DNS.TSIG.StreamGenerator; import org.xbill.DNS.utils.base64; class TSIGTest { + private final TSIG defaultKey = new TSIG(TSIG.HMAC_SHA256, "example.", "12345678"); + @Test void signedQuery() throws IOException { - TSIG key = new TSIG(TSIG.HMAC_SHA256, "example.", "12345678"); - Record question = Record.newRecord(Name.fromString("www.example."), Type.A, DClass.IN); Message query = Message.newQuery(question); - query.setTSIG(key); + query.setTSIG(defaultKey); byte[] qbytes = query.toWire(512); assertEquals(1, qbytes[11]); Message qparsed = new Message(qbytes); - int result = key.verify(qparsed, qbytes, null); + int result = defaultKey.verify(qparsed, qbytes, null); assertEquals(Rcode.NOERROR, result); assertTrue(qparsed.isSigned()); assertTrue(qparsed.isVerified()); @@ -87,12 +94,10 @@ void queryStringAlgError() { @Test void queryIsLastAddMessageRecord() throws IOException { - TSIG key = new TSIG(TSIG.HMAC_SHA256, "example.", "12345678"); - Record rec = Record.newRecord(Name.fromString("www.example."), Type.A, DClass.IN); OPTRecord opt = new OPTRecord(SimpleResolver.DEFAULT_EDNS_PAYLOADSIZE, 0, 0, 0); Message msg = Message.newQuery(rec); - msg.setTSIG(key); + msg.setTSIG(defaultKey); msg.addRecord(opt, Section.ADDITIONAL); byte[] bytes = msg.toWire(512); assertEquals(2, bytes[11]); // additional RR count, lower byte @@ -101,7 +106,7 @@ void queryIsLastAddMessageRecord() throws IOException { List additionalSection = parsed.getSection(Section.ADDITIONAL); assertEquals(Type.string(Type.OPT), Type.string(additionalSection.get(0).getType())); assertEquals(Type.string(Type.TSIG), Type.string(additionalSection.get(1).getType())); - int result = key.verify(parsed, bytes, null); + int result = defaultKey.verify(parsed, bytes, null); assertEquals(Rcode.NOERROR, result); assertTrue(parsed.isSigned()); assertTrue(parsed.isVerified()); @@ -116,8 +121,7 @@ void queryAndTsigApplyMisbehaves() throws IOException { assertFalse(msg.isSigned()); assertFalse(msg.isVerified()); - TSIG key = new TSIG(TSIG.HMAC_SHA256, "example.", "12345678"); - key.apply(msg, null); // additional RR count, lower byte + defaultKey.apply(msg, null); // additional RR count, lower byte byte[] bytes = msg.toWire(Message.MAXLENGTH); assertThrows(WireParseException.class, () -> new Message(bytes), "Expected TSIG error"); @@ -125,7 +129,6 @@ void queryAndTsigApplyMisbehaves() throws IOException { @Test void tsigInQueryIsLastViaResolver() throws IOException { - TSIG key = new TSIG(TSIG.HMAC_SHA256, "example.", "12345678"); SimpleResolver res = new SimpleResolver("127.0.0.1") { @Override @@ -140,7 +143,7 @@ CompletableFuture sendAsync(Message query, boolean forceTcp, Executor e } } }; - res.setTSIGKey(key); + res.setTSIGKey(defaultKey); Name qname = Name.fromString("www.example.com."); Record question = Record.newRecord(qname, Type.A, DClass.IN); @@ -150,7 +153,7 @@ CompletableFuture sendAsync(Message query, boolean forceTcp, Executor e List additionalSection = response.getSection(Section.ADDITIONAL); assertEquals(Type.string(Type.OPT), Type.string(additionalSection.get(0).getType())); assertEquals(Type.string(Type.TSIG), Type.string(additionalSection.get(1).getType())); - int result = key.verify(response, response.toWire(), null); + int result = defaultKey.verify(response, response.toWire(), null); assertEquals(Rcode.NOERROR, result); assertTrue(response.isSigned()); assertTrue(response.isVerified()); @@ -158,14 +161,12 @@ CompletableFuture sendAsync(Message query, boolean forceTcp, Executor e @Test void unsignedQuerySignedResponse() throws IOException { - TSIG key = new TSIG(TSIG.HMAC_SHA256, "example.", "12345678"); - Name qname = Name.fromString("www.example."); Record question = Record.newRecord(qname, Type.A, DClass.IN); Message query = Message.newQuery(question); Message response = new Message(query.getHeader().getID()); - response.setTSIG(key, Rcode.NOERROR, null); + response.setTSIG(defaultKey, Rcode.NOERROR, null); response.getHeader().setFlag(Flags.QR); response.addRecord(question, Section.QUESTION); Record answer = Record.fromString(qname, Type.A, DClass.IN, 300, "1.2.3.4", null); @@ -173,7 +174,7 @@ void unsignedQuerySignedResponse() throws IOException { byte[] rbytes = response.toWire(Message.MAXLENGTH); Message rparsed = new Message(rbytes); - int result = key.verify(rparsed, rbytes, null); + int result = defaultKey.verify(rparsed, rbytes, null); assertEquals(Rcode.NOERROR, result); assertTrue(rparsed.isSigned()); assertTrue(rparsed.isVerified()); @@ -181,19 +182,17 @@ void unsignedQuerySignedResponse() throws IOException { @Test void signedQuerySignedResponse() throws IOException { - TSIG key = new TSIG(TSIG.HMAC_SHA256, "example.", "12345678"); - Name qname = Name.fromString("www.example."); Record question = Record.newRecord(qname, Type.A, DClass.IN); Message query = Message.newQuery(question); - query.setTSIG(key); + query.setTSIG(defaultKey); byte[] qbytes = query.toWire(Message.MAXLENGTH); Message qparsed = new Message(qbytes); assertNotNull(query.getGeneratedTSIG()); assertEquals(query.getGeneratedTSIG(), qparsed.getTSIG()); Message response = new Message(query.getHeader().getID()); - response.setTSIG(key, Rcode.NOERROR, qparsed.getTSIG()); + response.setTSIG(defaultKey, Rcode.NOERROR, qparsed.getTSIG()); response.getHeader().setFlag(Flags.QR); response.addRecord(question, Section.QUESTION); Record answer = Record.fromString(qname, Type.A, DClass.IN, 300, "1.2.3.4", null); @@ -201,7 +200,7 @@ void signedQuerySignedResponse() throws IOException { byte[] rbytes = response.toWire(Message.MAXLENGTH); Message rparsed = new Message(rbytes); - int result = key.verify(rparsed, rbytes, query.getGeneratedTSIG()); + int result = defaultKey.verify(rparsed, rbytes, query.getGeneratedTSIG()); assertEquals(Rcode.NOERROR, result); assertTrue(rparsed.isSigned()); assertTrue(rparsed.isVerified()); @@ -209,8 +208,6 @@ void signedQuerySignedResponse() throws IOException { @Test void signedQuerySignedResponseViaResolver() throws IOException { - TSIG key = new TSIG(TSIG.HMAC_SHA256, "example.", "12345678"); - Name qname = Name.fromString("www.example."); Record question = Record.newRecord(qname, Type.A, DClass.IN); Message query = Message.newQuery(question); @@ -231,7 +228,7 @@ void signedQuerySignedResponseViaResolver() throws IOException { Message qparsed = new Message(a.getArgument(3, byte[].class)); Message response = new Message(qparsed.getHeader().getID()); - response.setTSIG(key, Rcode.NOERROR, qparsed.getTSIG()); + response.setTSIG(defaultKey, Rcode.NOERROR, qparsed.getTSIG()); response.getHeader().setFlag(Flags.QR); response.addRecord(question, Section.QUESTION); Record answer = Record.fromString(qname, Type.A, DClass.IN, 300, "1.2.3.4", null); @@ -243,7 +240,7 @@ void signedQuerySignedResponseViaResolver() throws IOException { return f; }); SimpleResolver res = new SimpleResolver("127.0.0.1"); - res.setTSIGKey(key); + res.setTSIGKey(defaultKey); Message responseFromResolver = res.send(query); assertTrue(responseFromResolver.isSigned()); @@ -253,17 +250,15 @@ void signedQuerySignedResponseViaResolver() throws IOException { @Test void truncated() throws IOException { - TSIG key = new TSIG(TSIG.HMAC_SHA256, "example.", "12345678"); - Name qname = Name.fromString("www.example."); Record question = Record.newRecord(qname, Type.A, DClass.IN); Message query = Message.newQuery(question); - query.setTSIG(key, Rcode.NOERROR, null); + query.setTSIG(defaultKey, Rcode.NOERROR, null); byte[] qbytes = query.toWire(512); Message qparsed = new Message(qbytes); Message response = new Message(query.getHeader().getID()); - response.setTSIG(key, Rcode.NOERROR, qparsed.getTSIG()); + response.setTSIG(defaultKey, Rcode.NOERROR, qparsed.getTSIG()); response.getHeader().setFlag(Flags.QR); response.addRecord(question, Section.QUESTION); for (int i = 0; i < 40; i++) { @@ -274,7 +269,7 @@ void truncated() throws IOException { Message rparsed = new Message(rbytes); assertTrue(rparsed.getHeader().getFlag(Flags.TC)); - int result = key.verify(rparsed, rbytes, qparsed.getTSIG()); + int result = defaultKey.verify(rparsed, rbytes, qparsed.getTSIG()); assertEquals(Rcode.NOERROR, result); assertTrue(rparsed.isSigned()); assertTrue(rparsed.isVerified()); @@ -291,7 +286,6 @@ void rdataFromString() { @Test void testTSIGMessageClone() throws IOException { - TSIG key = new TSIG(TSIG.HMAC_SHA256, "example.", "12345678"); TSIGRecord old = new TSIGRecord( Name.fromConstantString("example."), @@ -312,7 +306,7 @@ void testTSIGMessageClone() throws IOException { response.addRecord(question, Section.QUESTION); response.addRecord( new ARecord(qname, DClass.IN, 0, InetAddress.getByName("127.0.0.1")), Section.ANSWER); - response.setTSIG(key, Rcode.NOERROR, old); + response.setTSIG(defaultKey, Rcode.NOERROR, old); byte[] responseBytes = response.toWire(Message.MAXLENGTH); assertNotNull(responseBytes); assertNotEquals(0, responseBytes.length); @@ -325,4 +319,133 @@ void testTSIGMessageClone() throws IOException { assertNotNull(cloneBytes); assertNotEquals(0, cloneBytes.length); } + + @ParameterizedTest + @ValueSource(ints = {-1, 0, 101}) + void testStreamGeneratorNthMessageArgument(int signEvery) { + assertThrows( + IllegalArgumentException.class, + () -> new TSIG.StreamGenerator(defaultKey, null, signEvery)); + } + + @Test + void testTSIGStreamVerifierMissingMinimumTsig() throws Exception { + MockMessageClient client = new MockMessageClient(defaultKey); + MockMessageServer server = new MockMessageServer(defaultKey); + + byte[] query = client.createQuery(); + int numResponses = 200; + List response = server.handleQuery(query, numResponses, 200); + Map expectedRcodes = new HashMap<>(); + for (int i = 0; i < numResponses; i++) { + expectedRcodes.put(i, i < 100 ? Rcode.NOERROR : Rcode.FORMERR); + } + expectedRcodes.put(numResponses - 1, Rcode.BADSIG); + client.validateResponse(query, response, expectedRcodes); + } + + @ParameterizedTest(name = "testTSIGStreamVerifier(numResponses: {0}, signEvery: {1})") + @CsvSource({ + "20,1", + "53,6", + "105,7", + "1000,100", + }) + void testTSIGStreamVerifier(int numResponses, int signEvery) throws Exception { + MockMessageClient client = new MockMessageClient(defaultKey); + MockMessageServer server = new MockMessageServer(defaultKey); + + byte[] query = client.createQuery(); + List response = server.handleQuery(query, numResponses, signEvery); + Map expectedRcodes = new HashMap<>(); + for (int i = 0; i < numResponses; i++) { + expectedRcodes.put(i, Rcode.NOERROR); + } + client.validateResponse(query, response, expectedRcodes); + } + + private static class MockMessageClient { + private final TSIG key; + + MockMessageClient(TSIG key) { + this.key = key; + } + + byte[] createQuery() throws TextParseException { + Name qname = Name.fromString("www.example."); + Record question = Record.newRecord(qname, Type.A, DClass.IN); + Message query = Message.newQuery(question); + query.setTSIG(key); + return query.toWire(Message.MAXLENGTH); + } + + public void validateResponse( + byte[] query, List responses, Map expectedRcodes) + throws IOException { + Message queryMessage = new Message(query); + TSIG.StreamVerifier verifier = new TSIG.StreamVerifier(key, queryMessage.getTSIG()); + + Map actualRcodes = new HashMap<>(); + for (int i = 0; i < responses.size(); i++) { + Message response = responses.get(i); + byte[] renderedMessage = response.toWire(Message.MAXLENGTH); + actualRcodes.put(i, verifier.verify(new Message(renderedMessage), renderedMessage)); + } + + assertEquals(expectedRcodes, actualRcodes); + } + } + + private static class MockMessageServer { + private final TSIG key; + + MockMessageServer(TSIG key) { + this.key = key; + } + + List handleQuery(byte[] queryMessageBytes, int responseMessageCount, int signEvery) + throws Exception { + Message parsedQueryMessage = new Message(queryMessageBytes); + assertNotNull(parsedQueryMessage.getTSIG()); + + List responseMessageList = new LinkedList<>(); + StreamGenerator generator = getStreamGenerator(signEvery, parsedQueryMessage); + + for (int i = 0; i < responseMessageCount; i++) { + Message response = new Message(parsedQueryMessage.getHeader().getID()); + response.getHeader().setFlag(Flags.QR); + response.addRecord(parsedQueryMessage.getQuestion(), Section.QUESTION); + Record answer = + new ARecord( + parsedQueryMessage.getQuestion().getName(), + DClass.IN, + 300, + InetAddress.getByAddress(ByteBuffer.allocate(4).putInt(i).array())); + response.addRecord(answer, Section.ANSWER); + + generator.generate(response, i == responseMessageCount - 1); + responseMessageList.add(response); + } + + return responseMessageList; + } + + private StreamGenerator getStreamGenerator(int signEvery, Message parsedQueryMessage) + throws NoSuchFieldException, IllegalAccessException { + TSIGRecord queryMessageTSIG = parsedQueryMessage.getTSIG(); + StreamGenerator generator; + + // Hack for testing invalid server responses, the constructor would normally prevent such an + // invalid argument + if (signEvery > 100) { + generator = new StreamGenerator(key, queryMessageTSIG, 1); + Field signEveryNthMessage = StreamGenerator.class.getDeclaredField("signEveryNthMessage"); + signEveryNthMessage.setAccessible(true); + signEveryNthMessage.set(generator, signEvery); + } else { + generator = new StreamGenerator(key, queryMessageTSIG, signEvery); + } + return generator; + } + } } From 781ebd956703a7bf2545812de1ab4c426ef8001f Mon Sep 17 00:00:00 2001 From: Ingo Bauersachs Date: Mon, 30 Oct 2023 21:55:43 +0100 Subject: [PATCH 2/6] Fix order of signature in TSIG mac Co-authored-by: Frank Hill --- src/main/java/org/xbill/DNS/TSIG.java | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/xbill/DNS/TSIG.java b/src/main/java/org/xbill/DNS/TSIG.java index 41ca9190..db5f0b87 100644 --- a/src/main/java/org/xbill/DNS/TSIG.java +++ b/src/main/java/org/xbill/DNS/TSIG.java @@ -765,31 +765,29 @@ private static void writeTsigTime(Instant instant, DNSOutput out) { /** A helper class for generating signed message responses. */ public static class StreamGenerator { private final TSIG key; - private final Mac sharedHmac; - private final int signEveryNthMessage; private int numGenerated; private TSIGRecord lastTsigRecord; - public StreamGenerator(TSIG key, TSIGRecord lastTsigRecord) { + public StreamGenerator(TSIG key, TSIGRecord queryTsig) { // https://www.rfc-editor.org/rfc/rfc8945.html#section-5.3.1 // The TSIG MUST be included on all DNS messages in the response. - this(key, lastTsigRecord, 1); + this(key, queryTsig, 1); } /** * This constructor is only for unit-testing {@link StreamVerifier} with responses where * not every message is signed. */ - StreamGenerator(TSIG key, TSIGRecord lastTsigRecord, int signEveryNthMessage) { + StreamGenerator(TSIG key, TSIGRecord queryTsig, int signEveryNthMessage) { if (signEveryNthMessage < 1 || signEveryNthMessage > 100) { throw new IllegalArgumentException("signEveryNthMessage must be between 1 and 100"); } this.key = key; - this.lastTsigRecord = lastTsigRecord; + this.lastTsigRecord = queryTsig; this.signEveryNthMessage = signEveryNthMessage; sharedHmac = this.key.initHmac(); } @@ -803,12 +801,13 @@ public void generate(Message message, boolean isLastMessage) { message, message.toWire(), Rcode.NOERROR, - lastTsigRecord, + isFirstMessage ? lastTsigRecord : null, isFirstMessage, sharedHmac); message.addRecord(r, Section.ADDITIONAL); message.tsigState = Message.TSIG_SIGNED; lastTsigRecord = r; + hmacAddSignature(sharedHmac, r); } else { byte[] responseBytes = message.toWire(Message.MAXLENGTH); sharedHmac.update(responseBytes); @@ -821,19 +820,18 @@ public void generate(Message message, boolean isLastMessage) { /** A helper class for verifying multiple message responses. */ public static class StreamVerifier { private final TSIG key; - private final Mac sharedHmac; + private final TSIGRecord queryTsig; private int nresponses; private int lastsigned; - private TSIGRecord lastTSIG; /** Creates an object to verify a multiple message response */ public StreamVerifier(TSIG tsig, TSIGRecord queryTsig) { key = tsig; sharedHmac = key.initHmac(); nresponses = 0; - lastTSIG = queryTsig; + this.queryTsig = queryTsig; } /** @@ -851,16 +849,16 @@ public int verify(Message m, byte[] b) { nresponses++; if (nresponses == 1) { - int result = key.verify(m, b, lastTSIG, true, sharedHmac); - lastTSIG = tsig; + int result = key.verify(m, b, queryTsig, true, sharedHmac); + hmacAddSignature(sharedHmac, tsig); lastsigned = nresponses; return result; } if (tsig != null) { - int result = key.verify(m, b, lastTSIG, false, sharedHmac); + int result = key.verify(m, b, null, false, sharedHmac); lastsigned = nresponses; - lastTSIG = tsig; + hmacAddSignature(sharedHmac, tsig); return result; } else { boolean required = nresponses - lastsigned >= 100; From a9ed360ca759116fcea8940575cc1a5abc049ac0 Mon Sep 17 00:00:00 2001 From: Ingo Bauersachs Date: Thu, 2 Nov 2023 18:51:04 +0100 Subject: [PATCH 3/6] Verify that the last message is signed as required --- src/main/java/org/xbill/DNS/TSIG.java | 39 +++++++++++++++++----- src/test/java/org/xbill/DNS/TSIGTest.java | 40 +++++++++++++++++++---- 2 files changed, 64 insertions(+), 15 deletions(-) diff --git a/src/main/java/org/xbill/DNS/TSIG.java b/src/main/java/org/xbill/DNS/TSIG.java index db5f0b87..40c2c221 100644 --- a/src/main/java/org/xbill/DNS/TSIG.java +++ b/src/main/java/org/xbill/DNS/TSIG.java @@ -839,24 +839,43 @@ public StreamVerifier(TSIG tsig, TSIGRecord queryTsig) { * TSIG records must be present on the first and last messages, and at least every 100 records * in between. After calling this routine, Message.isVerified() may be called on this message. * - * @param m The message - * @param b The message in unparsed form + *

This overload assumes that the verified message is not the last one, which is required to + * have a {@link TSIGRecord}. Use {@link #verify(Message, byte[], boolean)} to explicitly + * specify the last message. + * + * @param message The message + * @param messageBytes The message in unparsed form + * @return The result of the verification (as an Rcode) + * @see Rcode + */ + public int verify(Message message, byte[] messageBytes) { + return verify(message, messageBytes, false); + } + + /** + * Verifies a TSIG record on an incoming message that is part of a multiple message response. + * TSIG records must be present on the first and last messages, and at least every 100 records + * in between. After calling this routine, Message.isVerified() may be called on this message. + * + * @param message The message + * @param messageBytes The message in unparsed form + * @param isLastMessage If true, verifies that the {@link Message} has an {@link TSIGRecord}. * @return The result of the verification (as an Rcode) * @see Rcode */ - public int verify(Message m, byte[] b) { - TSIGRecord tsig = m.getTSIG(); + public int verify(Message message, byte[] messageBytes, boolean isLastMessage) { + TSIGRecord tsig = message.getTSIG(); nresponses++; if (nresponses == 1) { - int result = key.verify(m, b, queryTsig, true, sharedHmac); + int result = key.verify(message, messageBytes, queryTsig, true, sharedHmac); hmacAddSignature(sharedHmac, tsig); lastsigned = nresponses; return result; } if (tsig != null) { - int result = key.verify(m, b, null, false, sharedHmac); + int result = key.verify(message, messageBytes, null, false, sharedHmac); lastsigned = nresponses; hmacAddSignature(sharedHmac, tsig); return result; @@ -864,11 +883,15 @@ public int verify(Message m, byte[] b) { boolean required = nresponses - lastsigned >= 100; if (required) { log.debug("FORMERR: missing required signature on {}th message", nresponses); - m.tsigState = Message.TSIG_FAILED; + message.tsigState = Message.TSIG_FAILED; + return Rcode.FORMERR; + } else if (isLastMessage) { + log.debug("FORMERR: missing required signature on last message"); + message.tsigState = Message.TSIG_FAILED; return Rcode.FORMERR; } else { log.trace("Intermediate message {} without signature", nresponses); - addUnsignedMessageToMac(m, b, sharedHmac); + addUnsignedMessageToMac(message, messageBytes, sharedHmac); return Rcode.NOERROR; } } diff --git a/src/test/java/org/xbill/DNS/TSIGTest.java b/src/test/java/org/xbill/DNS/TSIGTest.java index 6120ec7b..0a79ed63 100644 --- a/src/test/java/org/xbill/DNS/TSIGTest.java +++ b/src/test/java/org/xbill/DNS/TSIGTest.java @@ -335,7 +335,7 @@ void testTSIGStreamVerifierMissingMinimumTsig() throws Exception { byte[] query = client.createQuery(); int numResponses = 200; - List response = server.handleQuery(query, numResponses, 200); + List response = server.handleQuery(query, numResponses, 200, false); Map expectedRcodes = new HashMap<>(); for (int i = 0; i < numResponses; i++) { expectedRcodes.put(i, i < 100 ? Rcode.NOERROR : Rcode.FORMERR); @@ -356,7 +356,7 @@ void testTSIGStreamVerifier(int numResponses, int signEvery) throws Exception { MockMessageServer server = new MockMessageServer(defaultKey); byte[] query = client.createQuery(); - List response = server.handleQuery(query, numResponses, signEvery); + List response = server.handleQuery(query, numResponses, signEvery, false); Map expectedRcodes = new HashMap<>(); for (int i = 0; i < numResponses; i++) { expectedRcodes.put(i, Rcode.NOERROR); @@ -364,6 +364,27 @@ void testTSIGStreamVerifier(int numResponses, int signEvery) throws Exception { client.validateResponse(query, response, expectedRcodes); } + @ParameterizedTest(name = "testTSIGStreamVerifierLastMessage(numResponses: {0}, signEvery: {1})") + @CsvSource({ + "53,6", + "105,7", + "1000,100", + }) + void testTSIGStreamVerifierLastMessage(int numResponses, int signEvery) throws Exception { + MockMessageClient client = new MockMessageClient(defaultKey); + MockMessageServer server = new MockMessageServer(defaultKey); + + byte[] query = client.createQuery(); + List response = server.handleQuery(query, numResponses, signEvery, true); + Map expectedRcodes = new HashMap<>(); + for (int i = 0; i < numResponses; i++) { + expectedRcodes.put(i, Rcode.NOERROR); + } + + expectedRcodes.put(numResponses - 1, Rcode.FORMERR); + client.validateResponse(query, response, expectedRcodes); + } + private static class MockMessageClient { private final TSIG key; @@ -387,9 +408,13 @@ public void validateResponse( Map actualRcodes = new HashMap<>(); for (int i = 0; i < responses.size(); i++) { - Message response = responses.get(i); - byte[] renderedMessage = response.toWire(Message.MAXLENGTH); - actualRcodes.put(i, verifier.verify(new Message(renderedMessage), renderedMessage)); + boolean isLastMessage = i == responses.size() - 1; + byte[] renderedMessage = responses.get(i).toWire(Message.MAXLENGTH); + Message messageFromWire = new Message(renderedMessage); + actualRcodes.put(i, verifier.verify(messageFromWire, renderedMessage, isLastMessage)); + if (isLastMessage) { + assertFalse(messageFromWire.isVerified()); + } } assertEquals(expectedRcodes, actualRcodes); @@ -403,7 +428,8 @@ private static class MockMessageServer { this.key = key; } - List handleQuery(byte[] queryMessageBytes, int responseMessageCount, int signEvery) + List handleQuery( + byte[] queryMessageBytes, int responseMessageCount, int signEvery, boolean skipLast) throws Exception { Message parsedQueryMessage = new Message(queryMessageBytes); assertNotNull(parsedQueryMessage.getTSIG()); @@ -423,7 +449,7 @@ List handleQuery(byte[] queryMessageBytes, int responseMessageCount, in InetAddress.getByAddress(ByteBuffer.allocate(4).putInt(i).array())); response.addRecord(answer, Section.ANSWER); - generator.generate(response, i == responseMessageCount - 1); + generator.generate(response, !skipLast && i == responseMessageCount - 1); responseMessageList.add(response); } From 14f083d58c309f2f4c122d53875425e7b729d2c7 Mon Sep 17 00:00:00 2001 From: Ingo Bauersachs Date: Sat, 4 Nov 2023 15:35:43 +0100 Subject: [PATCH 4/6] Add tests based on data from an actual transfer --- pom.xml | 6 + src/main/java/org/xbill/DNS/TCPClient.java | 4 +- src/main/java/org/xbill/DNS/TSIG.java | 33 ++- .../java/org/xbill/DNS/ZoneTransferIn.java | 47 ++-- src/test/java/org/xbill/DNS/TSIGTest.java | 224 ++++++++++++++++-- src/test/resources/tsig-axfr/request.bin | Bin 0 -> 136 bytes .../resources/tsig-axfr/response-messages.txt | 1 + src/test/resources/tsig-axfr/response.bin | Bin 0 -> 4867187 bytes 8 files changed, 262 insertions(+), 53 deletions(-) create mode 100644 src/test/resources/tsig-axfr/request.bin create mode 100644 src/test/resources/tsig-axfr/response-messages.txt create mode 100644 src/test/resources/tsig-axfr/response.bin diff --git a/pom.xml b/pom.xml index bcf6c9f1..62fcc432 100644 --- a/pom.xml +++ b/pom.xml @@ -433,6 +433,12 @@ ${vertx.version} test + + commons-io + commons-io + 2.15.0 + test + diff --git a/src/main/java/org/xbill/DNS/TCPClient.java b/src/main/java/org/xbill/DNS/TCPClient.java index 7f65f439..6151e1b9 100644 --- a/src/main/java/org/xbill/DNS/TCPClient.java +++ b/src/main/java/org/xbill/DNS/TCPClient.java @@ -14,7 +14,7 @@ import java.time.Duration; import java.time.temporal.ChronoUnit; -final class TCPClient { +class TCPClient implements AutoCloseable { private final long startTime; private final Duration timeout; private final SelectionKey key; @@ -144,7 +144,7 @@ private void blockUntil(SelectionKey key) throws IOException { } } - void cleanup() throws IOException { + public void close() throws IOException { key.selector().close(); key.channel().close(); } diff --git a/src/main/java/org/xbill/DNS/TSIG.java b/src/main/java/org/xbill/DNS/TSIG.java index 40c2c221..34c913c1 100644 --- a/src/main/java/org/xbill/DNS/TSIG.java +++ b/src/main/java/org/xbill/DNS/TSIG.java @@ -15,6 +15,7 @@ import javax.crypto.Mac; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; +import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.xbill.DNS.utils.base64; import org.xbill.DNS.utils.hexdump; @@ -825,6 +826,7 @@ public static class StreamVerifier { private int nresponses; private int lastsigned; + @Getter private String errorMessage; /** Creates an object to verify a multiple message response */ public StreamVerifier(TSIG tsig, TSIGRecord queryTsig) { @@ -841,7 +843,8 @@ public StreamVerifier(TSIG tsig, TSIGRecord queryTsig) { * *

This overload assumes that the verified message is not the last one, which is required to * have a {@link TSIGRecord}. Use {@link #verify(Message, byte[], boolean)} to explicitly - * specify the last message. + * specify the last message or check that the message is verified with {@link + * Message#isVerified()}. * * @param message The message * @param messageBytes The message in unparsed form @@ -866,12 +869,23 @@ public int verify(Message message, byte[] messageBytes) { public int verify(Message message, byte[] messageBytes, boolean isLastMessage) { TSIGRecord tsig = message.getTSIG(); + // https://datatracker.ietf.org/doc/html/rfc8945#section-5.3.1 + // [...] a client that receives DNS messages and verifies TSIG MUST accept up to 99 + // intermediary messages without a TSIG and MUST verify that both the first and last message + // contain a TSIG. nresponses++; if (nresponses == 1) { - int result = key.verify(message, messageBytes, queryTsig, true, sharedHmac); - hmacAddSignature(sharedHmac, tsig); - lastsigned = nresponses; - return result; + if (tsig != null) { + int result = key.verify(message, messageBytes, queryTsig, true, sharedHmac); + hmacAddSignature(sharedHmac, tsig); + lastsigned = nresponses; + return result; + } else { + errorMessage = "missing required signature on first message"; + log.debug("{}: {}", Rcode.TSIGstring(Rcode.FORMERR), errorMessage); + message.tsigState = Message.TSIG_FAILED; + return Rcode.FORMERR; + } } if (tsig != null) { @@ -882,15 +896,18 @@ public int verify(Message message, byte[] messageBytes, boolean isLastMessage) { } else { boolean required = nresponses - lastsigned >= 100; if (required) { - log.debug("FORMERR: missing required signature on {}th message", nresponses); + errorMessage = "Missing required signature on message #" + nresponses; + log.debug("{}: {}", Rcode.TSIGstring(Rcode.FORMERR), errorMessage); message.tsigState = Message.TSIG_FAILED; return Rcode.FORMERR; } else if (isLastMessage) { - log.debug("FORMERR: missing required signature on last message"); + errorMessage = "Missing required signature on last message"; + log.debug("{}: {}", Rcode.TSIGstring(Rcode.FORMERR), errorMessage); message.tsigState = Message.TSIG_FAILED; return Rcode.FORMERR; } else { - log.trace("Intermediate message {} without signature", nresponses); + errorMessage = "Intermediate message #" + nresponses + " without signature"; + log.trace("{}: {}", Rcode.TSIGstring(Rcode.FORMERR), errorMessage); addUnsignedMessageToMac(message, messageBytes, sharedHmac); return Rcode.NOERROR; } diff --git a/src/main/java/org/xbill/DNS/ZoneTransferIn.java b/src/main/java/org/xbill/DNS/ZoneTransferIn.java index 177460ff..91fd73c8 100644 --- a/src/main/java/org/xbill/DNS/ZoneTransferIn.java +++ b/src/main/java/org/xbill/DNS/ZoneTransferIn.java @@ -49,17 +49,17 @@ public class ZoneTransferIn { private static final int AXFR = 6; private static final int END = 7; - private Name zname; + private final Name zname; private int qtype; private int dclass; - private long ixfr_serial; - private boolean want_fallback; + private final long ixfr_serial; + private final boolean want_fallback; private ZoneTransferHandler handler; private SocketAddress localAddress; - private SocketAddress address; + private final SocketAddress address; private TCPClient client; - private TSIG tsig; + private final TSIG tsig; private TSIG.StreamVerifier verifier; private Duration timeout = Duration.ofMinutes(15); @@ -155,7 +155,7 @@ public void startIXFRAdds(Record soa) { public void handleRecord(Record r) { if (ixfr != null) { Delta delta = ixfr.get(ixfr.size() - 1); - if (delta.adds.size() > 0) { + if (!delta.adds.isEmpty()) { delta.adds.add(r); } else { delta.deletes.add(r); @@ -166,9 +166,7 @@ public void handleRecord(Record r) { } } - private ZoneTransferIn() {} - - private ZoneTransferIn( + ZoneTransferIn( Name zone, int xfrtype, long serial, boolean fallback, SocketAddress address, TSIG key) { this.address = address; this.tsig = key; @@ -330,13 +328,17 @@ public void setLocalAddress(SocketAddress addr) { } private void openConnection() throws IOException { - client = new TCPClient(timeout); + client = createTcpClient(timeout); if (localAddress != null) { client.bind(localAddress); } client.connect(address); } + TCPClient createTcpClient(Duration timeout) throws IOException { + return new TCPClient(timeout); + } + private void sendQuery() throws IOException { Record question = Record.newRecord(zname, qtype, dclass); @@ -477,9 +479,10 @@ private void parseRR(Record rec) throws ZoneTransferException { private void closeConnection() { try { if (client != null) { - client.cleanup(); + client.close(); } } catch (IOException e) { + // Ignore } } @@ -490,7 +493,7 @@ private Message parseMessage(byte[] b) throws WireParseException { if (e instanceof WireParseException) { throw (WireParseException) e; } - throw new WireParseException("Error parsing message"); + throw new WireParseException("Error parsing message", e); } } @@ -499,14 +502,24 @@ private void doxfr() throws IOException, ZoneTransferException { while (state != END) { byte[] in = client.recv(); Message response = parseMessage(in); + List answers = response.getSection(Section.ANSWER); if (response.getHeader().getRcode() == Rcode.NOERROR && verifier != null) { - int error = verifier.verify(response, in); + int error = + verifier.verify(response, in, answers.get(answers.size() - 1).getType() == Type.SOA); if (error != Rcode.NOERROR) { - fail("TSIG failure: " + Rcode.TSIGstring(error)); + if (verifier.getErrorMessage() != null) { + fail( + "TSIG failure: " + + Rcode.TSIGstring(error) + + " (" + + verifier.getErrorMessage() + + ")"); + } else { + fail("TSIG failure: " + Rcode.TSIGstring(error)); + } } } - List answers = response.getSection(Section.ANSWER); if (state == INITIALSOA) { int rcode = response.getRcode(); if (rcode != Rcode.NOERROR) { @@ -533,10 +546,6 @@ private void doxfr() throws IOException, ZoneTransferException { for (Record answer : answers) { parseRR(answer); } - - if (state == END && verifier != null && !response.isVerified()) { - fail("last message must be signed"); - } } } diff --git a/src/test/java/org/xbill/DNS/TSIGTest.java b/src/test/java/org/xbill/DNS/TSIGTest.java index 0a79ed63..06ab7303 100644 --- a/src/test/java/org/xbill/DNS/TSIGTest.java +++ b/src/test/java/org/xbill/DNS/TSIGTest.java @@ -14,15 +14,24 @@ import java.lang.reflect.Field; import java.net.InetAddress; import java.net.InetSocketAddress; +import java.net.SocketAddress; import java.nio.ByteBuffer; +import java.time.Clock; import java.time.Duration; import java.time.Instant; +import java.time.ZoneId; +import java.util.AbstractMap; +import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executor; +import javax.crypto.spec.SecretKeySpec; +import lombok.Getter; +import org.apache.commons.io.IOUtils; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource; @@ -331,17 +340,19 @@ void testStreamGeneratorNthMessageArgument(int signEvery) { @Test void testTSIGStreamVerifierMissingMinimumTsig() throws Exception { MockMessageClient client = new MockMessageClient(defaultKey); - MockMessageServer server = new MockMessageServer(defaultKey); - - byte[] query = client.createQuery(); int numResponses = 200; - List response = server.handleQuery(query, numResponses, 200, false); + byte[] query = client.createQuery(); + List response; + try (MockMessageServer server = new MockMessageServer(defaultKey, numResponses, 200, false)) { + server.send(query); + response = server.getMessages(); + } Map expectedRcodes = new HashMap<>(); for (int i = 0; i < numResponses; i++) { expectedRcodes.put(i, i < 100 ? Rcode.NOERROR : Rcode.FORMERR); } expectedRcodes.put(numResponses - 1, Rcode.BADSIG); - client.validateResponse(query, response, expectedRcodes); + client.validateResponse(query, response, expectedRcodes, false); } @ParameterizedTest(name = "testTSIGStreamVerifier(numResponses: {0}, signEvery: {1})") @@ -353,15 +364,19 @@ void testTSIGStreamVerifierMissingMinimumTsig() throws Exception { }) void testTSIGStreamVerifier(int numResponses, int signEvery) throws Exception { MockMessageClient client = new MockMessageClient(defaultKey); - MockMessageServer server = new MockMessageServer(defaultKey); - byte[] query = client.createQuery(); - List response = server.handleQuery(query, numResponses, signEvery, false); + List response; + try (MockMessageServer server = + new MockMessageServer(defaultKey, numResponses, signEvery, false)) { + + server.send(query); + response = server.getMessages(); + } Map expectedRcodes = new HashMap<>(); for (int i = 0; i < numResponses; i++) { expectedRcodes.put(i, Rcode.NOERROR); } - client.validateResponse(query, response, expectedRcodes); + client.validateResponse(query, response, expectedRcodes, true); } @ParameterizedTest(name = "testTSIGStreamVerifierLastMessage(numResponses: {0}, signEvery: {1})") @@ -372,17 +387,123 @@ void testTSIGStreamVerifier(int numResponses, int signEvery) throws Exception { }) void testTSIGStreamVerifierLastMessage(int numResponses, int signEvery) throws Exception { MockMessageClient client = new MockMessageClient(defaultKey); - MockMessageServer server = new MockMessageServer(defaultKey); - byte[] query = client.createQuery(); - List response = server.handleQuery(query, numResponses, signEvery, true); + List response; + try (MockMessageServer server = + new MockMessageServer(defaultKey, numResponses, signEvery, true)) { + + server.send(query); + response = server.getMessages(); + } Map expectedRcodes = new HashMap<>(); for (int i = 0; i < numResponses; i++) { expectedRcodes.put(i, Rcode.NOERROR); } expectedRcodes.put(numResponses - 1, Rcode.FORMERR); - client.validateResponse(query, response, expectedRcodes); + client.validateResponse(query, response, expectedRcodes, false); + } + + @Test + void testFromTcpStream() throws IOException { + DNSInput request = new DNSInput(IOUtils.resourceToByteArray("/tsig-axfr/request.bin")); + byte[] queryBytes = request.readByteArray(request.readU16()); + Message query = new Message(queryBytes); + assertNotNull(query.getTSIG()); + TSIG key = + new TSIG( + TSIG.HMAC_SHA256, + Name.fromConstantString("dnssecishardtest."), + new SecretKeySpec( + Objects.requireNonNull( + base64.fromString("q4Gsu0nYoyub20//PATXhABobmrVUQyqq5TFzYHfC7o=")), + "HmacSHA256"), + Clock.fixed(Instant.parse("2023-11-01T20:52:08Z"), ZoneId.of("UTC"))); + + TSIG.StreamVerifier verifier = new TSIG.StreamVerifier(key, query.getTSIG()); + DNSInput response = new DNSInput(IOUtils.resourceToByteArray("/tsig-axfr/response.bin")); + + // Use a list, not a map, to keep the message order intact + List> messages = new ArrayList<>(); + while (response.remaining() > 0) { + byte[] messageBytes = response.readByteArray(response.readU16()); + Message message = new Message(messageBytes); + messages.add(new AbstractMap.SimpleEntry<>(message, messageBytes)); + } + + for (int i = 0; i < messages.size(); i++) { + Map.Entry e = messages.get(i); + assertEquals( + verifier.verify(e.getKey(), e.getValue(), i == messages.size() - 1), Rcode.NOERROR); + } + } + + @Test + void testAxfrLastNotSignedError() throws Exception { + Name name = Name.fromConstantString("example.com."); + ZoneTransferIn client = + new ZoneTransferIn( + name, + Type.AXFR, + 0, + false, + new InetSocketAddress(InetAddress.getLocalHost(), 53), + defaultKey) { + @Override + TCPClient createTcpClient(Duration timeout) throws IOException { + return new MockMessageServer(defaultKey, 200, 20, true); + } + }; + + ZoneTransferException exception = + assertThrows(ZoneTransferException.class, () -> client.run(new ZoneBuilderAxfrHandler())); + assertTrue(exception.getMessage().contains(Rcode.TSIGstring(Rcode.FORMERR))); + assertTrue(exception.getMessage().contains("last")); + } + + @Test + void testAxfr() throws Exception { + Name name = Name.fromConstantString("example.com."); + ZoneTransferIn client = + new ZoneTransferIn( + name, + Type.AXFR, + 0, + false, + new InetSocketAddress(InetAddress.getLocalHost(), 53), + defaultKey) { + @Override + TCPClient createTcpClient(Duration timeout) throws IOException { + return new MockMessageServer(defaultKey, 200, 20, false); + } + }; + + ZoneBuilderAxfrHandler handler = new ZoneBuilderAxfrHandler(); + client.run(handler); + // soa on first message, + a record on every message, +soa on last message + assertEquals(handler.getRecords().size(), 202); + } + + @Getter + private static class ZoneBuilderAxfrHandler implements ZoneTransferIn.ZoneTransferHandler { + private final List records = new ArrayList<>(); + + @Override + public void startAXFR() {} + + @Override + public void startIXFR() {} + + @Override + public void startIXFRDeletes(Record soa) {} + + @Override + public void startIXFRAdds(Record soa) {} + + @Override + public void handleRecord(Record r) { + records.add(r); + } } private static class MockMessageClient { @@ -401,7 +522,10 @@ byte[] createQuery() throws TextParseException { } public void validateResponse( - byte[] query, List responses, Map expectedRcodes) + byte[] query, + List responses, + Map expectedRcodes, + boolean lastResponseSignedState) throws IOException { Message queryMessage = new Message(query); TSIG.StreamVerifier verifier = new TSIG.StreamVerifier(key, queryMessage.getTSIG()); @@ -413,7 +537,7 @@ public void validateResponse( Message messageFromWire = new Message(renderedMessage); actualRcodes.put(i, verifier.verify(messageFromWire, renderedMessage, isLastMessage)); if (isLastMessage) { - assertFalse(messageFromWire.isVerified()); + assertEquals(messageFromWire.isVerified(), lastResponseSignedState); } } @@ -421,26 +545,71 @@ public void validateResponse( } } - private static class MockMessageServer { + private static class MockMessageServer extends TCPClient { private final TSIG key; + private final int responseMessageCount; + private final int signEvery; + private final boolean skipLast; + @Getter private List messages; + private int recvCalls; - MockMessageServer(TSIG key) { + MockMessageServer(TSIG key, int responseMessageCount, int signEvery, boolean skipLast) + throws IOException { + super(Duration.ZERO); this.key = key; + this.responseMessageCount = responseMessageCount; + this.signEvery = signEvery; + this.skipLast = skipLast; + } + + @Override + void bind(SocketAddress addr) { + // do nothing + } + + @Override + void connect(SocketAddress addr) { + // do nothing + } + + @Override + public void close() { + // do nothing } - List handleQuery( - byte[] queryMessageBytes, int responseMessageCount, int signEvery, boolean skipLast) - throws Exception { + @Override + void send(byte[] queryMessageBytes) throws IOException { Message parsedQueryMessage = new Message(queryMessageBytes); assertNotNull(parsedQueryMessage.getTSIG()); - List responseMessageList = new LinkedList<>(); - StreamGenerator generator = getStreamGenerator(signEvery, parsedQueryMessage); + messages = new LinkedList<>(); + StreamGenerator generator; + try { + generator = getStreamGenerator(signEvery, parsedQueryMessage); + } catch (NoSuchFieldException | IllegalAccessException e) { + throw new IOException(e); + } + Name queryName = parsedQueryMessage.getQuestion().getName(); + Record soa = + new SOARecord( + queryName, + DClass.IN, + 300, + new Name("ns1", queryName), + new Name("admin", queryName), + 1, + 3600, + 1, + 3600, + 1800); for (int i = 0; i < responseMessageCount; i++) { Message response = new Message(parsedQueryMessage.getHeader().getID()); response.getHeader().setFlag(Flags.QR); response.addRecord(parsedQueryMessage.getQuestion(), Section.QUESTION); + if (i == 0) { + response.addRecord(soa, Section.ANSWER); + } Record answer = new ARecord( parsedQueryMessage.getQuestion().getName(), @@ -449,11 +618,18 @@ List handleQuery( InetAddress.getByAddress(ByteBuffer.allocate(4).putInt(i).array())); response.addRecord(answer, Section.ANSWER); + if (i == responseMessageCount - 1) { + response.addRecord(soa, Section.ANSWER); + } + generator.generate(response, !skipLast && i == responseMessageCount - 1); - responseMessageList.add(response); + messages.add(response); } + } - return responseMessageList; + @Override + byte[] recv() { + return messages.get(recvCalls++).toWire(Message.MAXLENGTH); } private StreamGenerator getStreamGenerator(int signEvery, Message parsedQueryMessage) diff --git a/src/test/resources/tsig-axfr/request.bin b/src/test/resources/tsig-axfr/request.bin new file mode 100644 index 0000000000000000000000000000000000000000..9e110f7eba64dc5bc2a9da4e595614f905e8391c GIT binary patch literal 136 zcmZQ*Tb{|Fz`)1=0!%z9dBw%4$(h9&iA5>Q$@#eq41Yj!ngU>X1_l9S1tqD)B@7I| z82*DLZMidY6O(m;T8&K2fFh|*yDAuU7!=;|8|l7bvo7LosaoUqUqDoBo~QQ9d-3uo PA}y+G!fLhw?FRw?I+rGU literal 0 HcmV?d00001 diff --git a/src/test/resources/tsig-axfr/response-messages.txt b/src/test/resources/tsig-axfr/response-messages.txt new file mode 100644 index 00000000..492d3d2a --- /dev/null +++ b/src/test/resources/tsig-axfr/response-messages.txt @@ -0,0 +1 @@ +dig @dnssec1.stage.arin.net -p 53 AXFR dnssecishard.com. -y 'hmac-sha256:dnssecishardtest:q4Gsu0nYoyub20//PATXhABobmrVUQyqq5TFzYHfC7o=' diff --git a/src/test/resources/tsig-axfr/response.bin b/src/test/resources/tsig-axfr/response.bin new file mode 100644 index 0000000000000000000000000000000000000000..f57e81239eb45fb959b5466515c82eaa64c617f1 GIT binary patch literal 4867187 zcmb5$Wmp{fnl|vpEkQ$qy9NkOa0?KEySux)ySuvucMmQBf=h6h;O-LiCA{p}+3Yzi z%%_2Qnz^s~^}o96uBv7m&Cz!Q0Du4i0002^m6nO6rM9NNrJlNl7Ko;)F#vE40BU&! z0KcCA-$+-Z-=VqG}H@ea2)eu%aL-ZScdk&CVr|S+)i5$myZ4-kF zeS=mv&?*0gEp1%8;-@|hyVilND!0jidaD>Wc7X=mvTzx)Sm54O>o`Qvure z#|1Wl!*5vRfrtxQaa6iO4L|aKoXtBPxL%nAShl3FA9AwZq%=lDuE?M*q;3173kK}uTF)VE(g19i0e&6XqWiJ%4 zKFB=rqDFyVsxK9SW^!{|-jobxx9VDpLcn*Elu%i9ZYc++rgA^`qAp-as@}QWo05m_ z`v3%977-GO{(W0bPeP#piGX=+I~up%6S+i^uT`!&_n4}+3Ro#7o8`+1ddOh*A}7_` zxzp%Rj^Z9$&>8AT3D7uSwN5N=ca;Kq&KW~0(HU;T>+pDN@3#r%{d&4z!2nDk>VLCC zfY1Qk?=V3AEbtGH3ojD@4hj5c|DY{RuCC3UCq9+=zhC%eN?!eUe{8&npS7biJV7B8 zRnV*9z*W=yk#uk@Q*g^&kEW?iRXGqX5D}2%$rj@q!h+fX_u! zPcVa#&$8oeJP12KTyB?XY_d8>6-IjdGB|JnE;?ad4c7g z+P>e4t-iVye1er&_cG-PPSJ6;=L8*u1(MhkaP-WjG**ww?#WvnX}9dkk=*7rG&}Mk z!|a=vKEzoAqW;zf3<^z~aGOxBN!Lxrp3Wwp$()+j|6-FcfBQN~_owq1Nou?Yy#7;lnNKS2_q$i^m zta(2F8V8!vv&I1v6-1!U5cLGlfNc;liwEE5eG}NJZB+6*6&dYsx)xill(VYsfC6MX#*P9a!~PBA8TPSExPh4(cryy@`*|njEn2FMK}n|n+P=9h zKm-7)|M~vSoB!YIt#q8*_s+0bH-S{wpmJyF#?Dt33BBMIy3o3QrYI7$+^<38sV`a^ zgk{Ob@sdhn0@W-0P5*P(R4cmL(-zq3EW^xeH)G=`~mnrM?qbxZ8p?y|U7fOtMwGGAr z?v125C7s8-|Fs}N{;vfoD5`Ah>Xu0Skwv6$=lD$v9|B1MQx-bSZ%sH7oKg4m&k!WL zK-r)BWRTnuRp5nh=zAvo5F>rw&!V`d{S+gQIOB{N*QAc2In?RmOb7{Lbyt{JractS ztgIyV=TTJ-+&LaIEs>%T+FH*M;7(A*goxSyapD^=n&M`K*TdDKali5ZA%>3j9}iKf zdYS%3h6O@R^@Q2|>TA^`dt zKkLvTmC=jhZ6L5qi|j0h~RWpkuCiiyhLWoW{7pf8FK3#k@`nlp95!=c(lFvHlK0v1+?FYDdD`dN;K#Wc5hhjD= zLJsE&*Mqs1%0(D3@UqYx?=)8j@y>vd;#&xNp>=YWXmKpF-!{14bDNG0*!x6+^|gTD zZ5X9aKE}l3d}T<-o{0cy75TIE|AB^q{-4pP`gZ@Nh7EfEx+mD~M_P9wY!oj)0m2QkL0xP%;mL!sZt3Llwr^0)QqY`>Zvg*oLfBrRI4#-OW<`99L z!vRPMp#qRl(@jDSPjhq@g38n;m%u_PXGf}7%EB8J0!o-hhSusWY1DzC?X(o5NIra3 z8M0&9nX+m5QpG~?F=+X`$Gp#Gs~6O2UxTUJEwTGHaqLJ?WGl)f$R$T}k_~)B#rH<7 z6q|*Gnt6k08(3H;%|;8VcF{z~xV)=SejBiGC;DV`D8FdW8 z{pnIw?<_|zaztv=m5N(JG?!yQR%DQ+Du^*G$f4E^{ zJmE$)aQ}J!cnFIF_6P0>x%=4{$x$U=fJ@O1EVa_L-THK{On*c>_I~x+LvzAMT*|a8 z>{p7_I|93$tJ#d?K>}(=4NZ@7v+ zwUg%F*oZEIcuj4q$DIvO7NntnXju}EfN7pz&jow6raXCKbeYTtj zCu+u7pZ~?AoSsV$w*%TWfqRq*(Rwfe9~{9s<#{ABMa)rZxq~oHhK2WQB4`H`in+?D z_guu96yD%Ay^wFWiOj)W_>3co_wz+$>lF?#IzBAoJ2+c*P}hn3yo#Io%uOSn-mwT$ z_+~(dhB5A-spu>>bdaAqbt6Dv#!x`!|8M_)&|zUdMMpKH@|WGeI|X_CfV-c4k)2{F z%&o%_UH2E&uk4b2gyoa#lpn>8e317pa&e7QhJPEPKywA47xzHFVE|X-d_A-vM%OkMcpvi5Ug}#PS ziFKH1{*jK+%a-Y)0c3u>vYqy;!@2UXyR>JcJ` z2fKeBl{{@nJ&g939nF6}IJuvFksT*y9+Et{R79`fu;uKpyc)}r8_vSC!bL!}LEaSH z>$>!xo*KEC_-y4^ffCg2{OppAw>Xe|1%37OCO;|&24>t3YXkZgrhX28D6BJ2t+;u$ zs2IU2Gd5$lZR?o}#p0xEN?CH*#Ke zCJuFkdFOEgf8SL${y;a`tnCb=L-NP&2fIHd+kYKVK5a)cGX9qx?SHnrpM8;?Q%GE` zd@g&7!I-dRI8oWgYOi3E&bOF@Y24pEc*D>e_AAxl4cGLAGl||Ewyr7Kv%bIg&a+;R zNLe@Uf2xhXvhT^tXyz2D`?krntJ(CsfOpFq`Jx%M@R}`!8PeQecm+fn@+3=!ft? ziA!^69z`{{9SwrX&+oW{U0-`;O5Kfj$DE+B+=Uh_e{u+ZxR92SGN*PZ$D#Lu3Bl5jd{Y^k*ptC1#dhXI`XYq%V_Eg!tL*-zQwcY z1{jvHVEn>rO|9>lc0$#|SD7;@&L~IU*eM}Q;&HN$cy$rA7bVrx^G?Z&>gt=&TdbIi zxVn@B361)iqzmmU3ow!5EwkzJUSt(NTN!Ae6)9G%0C7>b`nonmTiKiJVf+m3z;`Y$_% z|7>?Z`yxAOA3}+C)bY0|+IbKhuIvU(Z#U1IBs^pPD&H#~#kjA$OfDo3`i+{ri&LoUbSXQNaC^Rf3NO{p6 zzTttMCYbc~%kKE>nUJDwj|ZRcWoql^29rH2pWk__m#^F@+pn&)q-SwzeO&ez`r`mh z(=ur*t90Znoey>l&$eTj{_&UH$Ny}1Kl>s(-~DZfbvZYU<%7sHMJ44+OC;vWm?*#0 zwGR+G6NgfH8bT26`4{_$rE?_X$D>-IVNC{KD_MZ7H>{?P1I41ix;}Zw0bygBf)?_u z;;V57iHpS<%E~qok!E8x$6zf@FcV=m?#74;T9=I=H&cH%cJ2`+(s(e#up*C8VGL?(p5+zq6aXAvdk-Ew(o zwJ>)0>%^H+F`QtywKROh3Qt)uIiuIk)H}XibhUxhM=|ZbCm>K-{A{hv`v@PmObpoC;g*AfuFv)9P-t zHo}1?qC?hA#`}a5GL%Mxx1ST5d<(o=-Yy30#(t@49PWxGvVvOow+S0H7WRRwW1+!N z8vIfQyZD`+WMTc?rQ8tQ&q6kKHvh-G&$iQwl@GFe3)H*BWd+CuHl|MAb)>^@w}e`& zwy<<-Y~hXP$KY^UWr z#i@+LuF4e21-Jzh?-#S~q%KD~`$dN@iE69;%K%zsY}~rT>UkK+WQMEJ*J?i;d(1b{ zM_qrW_R5Pm{$N5zJoCU-St2@3ZZqtz|c{ zYf0W;Lz2|l2%Yna+NO9wU;AE-XJMMV9mVL?TxIY8?YS?Kll)-2`T6F;vji@W!CRO5 z9Y7i%Lk$Qg$;`KzNzausw1a5^zU_15{?%vTKt55o$SyBuBzT;p+nZ($C&F%F+ZHdh z56s5Lu6_Ph4A6NB+G?)HlYx5b4|ad9D?INUfob9LUv>|L*b}Gb_oFYOBdlQTN3BK|@j2KqF-$FDaa%7H_m71;UIXSh+&d#gvqj<}edA*1$sYn5J~?yP zlg9Uba)|$pF&nH$RA}k#f?CCF4W&*<1&80#&E&7xK#iT|@_9jfY)1Ei>QGyt`UL24 zlw@@;Bv6@=S607;;XKBtBOdcUo32%Xsx&Hzp}uNtub|!KdyB@f-ym(AfNh*{mUBs-`_|8)AUsyrp*BzF*AXER$N`!p{ zOB|)Mt>)c?R#I}OOe(_!{rVG}&c>fb_dhNiJb7YHO|@+Lm)#Sq?tb<~cJ5zXFF){a zK(3nvh&pgYS+bzp&bHZsCqlsyHcwW|GWYb-5_rXc$nBwgz?E04rC=5!%F`vZAo8?* zUC?;E(uyAi3vbr7g&C{vNcY`IBOGrQr{AY!FN{HeO{60lr(|N09y`^X-^5U|{dXl5 z{9&d0m-giT9N1;Dc^hj4*@DNs&$f%`r*!tU!^b|VNmt+no0XoT7y@Zp5f|^B<^ zdn!~3&x?|>GfVXeAwY62?Mqp|Qb1ss$juvezi;o^#F|u>yz{C%Pf{793*6%)>FlT* zx;4L+K!$f$&EZ;jzHZ_;tAxpRh{hRfh%yG&S;c%)Mu3P~@)Z{;u|?i~)N~B=!S0{S z?rA&fRkFYAo+!lbXJ2IZX^KxMl1uv(!DnY^PxGy_;-GtlFksJ=c&8|QnwaB~M(04B zsMU)50ER;wE!k@J3Q{xyJ+7-_Oo})N;Z2GFI>jkwnH+DTNj#BS*jT#J&)dX`82qMu zaqA$8G4hsXu{L5Ity#7qY)1xj%$l-{0Y3>EyF#iNR_kpa?XOfhk9nVM2WYoDOTs8*}evb?-@Zl z`=KzTiUPV6dz)VBJ2nkZC{jYwLg6JyD3=&%Vg+!)7M`?9IsCkUKNsnV5sw zFm@y>QoSd5iQcTP-o=VlXj+^~{zt*@6BndvgI0YC;w!{KK_VvyX_L+berl~;fFFDX zsuDHrwaLL3J#e%W@hxADd5d1q^(Q{!15Rm7=C_qX; z&`B}Jh$bRJk9nVM$9D<5!;4Xbyj2xdl>4>aXA*)R*OCY79TIYr$zclYLOEd-p<1+k z&S|}>wZO+jvm3{>RTg+!;plJ;?489EEd`mh<0^P!y7=L zm2i!$loX|8!@Nm34vd<}6rWM+BsW=zUE{UMBhou=60TNqA5P4vpIwMi({6nI%kGIn z?0)t|cCa^8qM%nA5LnIje9k{pn44r*oWbIETF|4(o2)U#ezItJkpFh%46VhdFCs-3 zz>1-$)8FQtsF7nwFCCd23NAWynz>2wXsIOfY27rTkA%h3%pcMKS(;&ur8+)dMg(9a z@4w3g*Y4Ah5ak7tmcg!Jz|FJu1=Vb8fLU?J%6QECY`eHg);Ib}99AMTl+jh;-^~>p zGP%Idr83g<9ooG*a{?6i;Y3hwYK}!QCL$D~S#sr5eYK_&d+T}N6{`p%hlO*Aa0?7x zQOEmSDWg^t_KEI_){C_R^}*_phh|-S&#ezR+=h0VI@EQhRG!-*!B5>-~S6a7Wqzzo}Cc1zZt_| ztEBd}h=)pLNoa!ide)L(j_^{tXMsiYJ^T-PPIon1F$|Pxs^nzMO&%xXCYsl31@Cbl z^FG^-I&1)2+nT-i5Ut9mT|z$yJE?W1MsTS))Wq$Y+#aaw@)wlhibYQu|8K$h)#V_^ zwc_`tDqD@iTL&eH2ok1kt+lGni>YLa@<>`k=rf{sYsptKQo4{W)ABa3XTe)&=rkLl z&1*XXA7$gm(a{t;-!7B2Yb_Q|$=A)nC*u0bKG;3G5TmBwLI2C{i9+mt_C5PF;HlD&8Q5}w#UMkvR0&$^`i{a@V z<=#RM@n~WkNuBgUOvkf_#7|HouX!wjz#N8xA%^;zk;;)%V0n{EoOL9 zsF32yNO(I?19JkQTXvWXWou}y4h7vojxn((+9B!axw)-`g3|PuWD-lQ;XJgXA1>Ze zKf4g4X4swh%kGIn?0)t|c0A2QVRN>ctC!!}!Zun&n>mMKqcPTk)(l6{ibNuDK|HKv zz&ID1*Ml1>2tfzo;ofDv)?kpZAy$a?p1`_Lw+z-XQed8>~`SAo)0@k+raN!mSP zOR-ZZyWgPLQbj#k#)~l4fo$xnfO8@YIrA+uL8Ti!(4lcyTOs(7ljvjKXWN;?2nyMZ zf#rRlN1Nk0z6%k8kdB2SIa*9UKuQ&zzs^>#u7>cKBDSovSPG3CnvT?{=sp^`HQ07f z9c5yMdM(ON^22mmB9A>FukV*e>8*QPfqNOMh=f%41qfO8@fO#tBlU;;lNL3M#B!l_ z49{U0UB*yo|17>rjufBkRv@g0b@%K-jQZn#5J_+qqfk$y_p_^pXnMhYH{SN{*c|ViNUx&CRM-#m82!%Q}V8obTI@Y z>a*}DeEM*lI^o@6{g0nmqt{jHboioQYq!Z|bB^k*a3t@(p;mAxS~0rF@pQQTv@w)A z=?Mvz*0I7KwExubnD^Os*+8oxIt-yV)boPir#~#c2;8t*ecwZjkcp zio7-&8{~mrZBS6zy?;Y)jT>IdTtzC6`43SnS?^tKv!-eMa$Hj$RWkbX;sBR*E_(!dK{c2MFPuUuh<1lWZ3A78d7o`3&i3v10qE?c(zkDE?lPQm zmawNCvgk6v%}k056=Quymb>#nx?%}B$8uOyE6QKzZb|J$$?2CP`zn4YghF>8^CfAZTu?|KYq|ksY>J|H661K<#^c+9H9!8*O!{#t3{`Tk!nP1gd~)*P0XZ zhU)TdfgHT$;|IHE7h=>*$1wl0dnm-7IK8_ceGwhY_goO=tUIgu=*oFNFar=NiUIoXtsVDWbKkB1lHX6a!uuuy9^$xni1a7*yC>~>bZ$~tu?q{?BTcwZ0z7x5Mm zMdj;1=6yCD9Skj2@;=2UkUAx|n?52Gzm5+^jmd_!XtIM5E?b6h4N7R9_@}sJfyaLH zKzc>#0o`#wE3@^X&-nESE_F$MR3Vh3_g&YYNQDk=_iSY88BF-f1-mb3y;iu8Hx*4{ zRtN9!&SrQ2r6=WbR#Cq%IGEH{(x0@ONz6AFjtUUd{8Nbi^X%@)LX76*ud6>aPuwAP zKl>s%3uG@PrWDfcF^##Y#gTd7A9Iyd{M-aUoK7Dz$@bGqSZr)7tGzzcjkZyKh_yQM z`Ck78&(hx5iLN$nxj1)h%|T~I?%X+9@jyX^KlAttsWZdI4U=3wSShMMgP6`{?*Ir> zxnr_)vQn40f0Ixo@q93ZZGJ0?WTcTVG_MO${A1o{%jpb{5s-SHW*ul^BsL_5btWeG zimRmJNL+vgg+(@whQGtQsNE36As8chyA#}$$uhiyXf|FCE@w5j>?EwEw{?Wj+#-M@BO&nHj9pd>G&1T7v5sBCHGo*?d9ErVmM(5UfCfz4zn!{eeT8E`$@@zW zN{(Yl7CeyMX|vcn6nw#I6iE5Tu39U?0DdpVv&?9rZ9u7^?ZNKZg%}O>1?yjSPwX-8 zXJ2H8VvtcE;2)S)AKRhzJuj`-n^gv(p2tM_MsI&8mUl&WvIfb|*Oz?`kF%rEJH6D#3rZfi6!hkB;U8nUS`S$b6zj7JUo0HQVV3kxW?7 zcnB-#93XcSZg?|un2ujiXj4>(!#T_`iik>f^;!Oi&Y4C%YKTnz4R0%)oM$>KxbAvCe@@&=m~2~)3%tI zE@lNKdL-(zD?1~uim~FOTP0|8VKZLj4p$TvA4sU6aUPw9M7HWF9h$g(ao!KK8`iD- zALlnwN?qG#db7DZgKCQL3h~E(xG-APWm@?@*gd-tqoKX3{LAi%LhOF_MRu~fSknd7 zd>f3}p3u{lISp}$bgLOvY>w=o?&h`nM#>V&zxZNbh!n@`xX;F;Y}_`10|`36{xlBK zla@HRS-#024R0O*$~bOoOAR5n?Hb-@czBHk_>`h-iUkd_4ECGqK>3|a&E|gfQaq&DPWHk_wqH8oU5kLnywA3?VTco&=EX9D+h>EUJ+I{`uUsM+Sf&%C#o`-=z9ac`f}x+~ zK6vFuNm?Uf%iUd#;Tu?u)1l$E_pKhsR-}xJ0w>=S4Uh_bzV#@S;-~~1-5QT!0|2D( z_s?4Y`3L@=k6T-5TUr4Cmw>y6|HKBPXRNMCasMDT4L!sCZ?w7V?10DtIOl~S>h|pi z8#pra_J;x?mY%Z5Uz2An_|7YCt$#T(E9dC{c{xYI!&BV=K;-=oKo9She<%K|>%KI9 z%Dew@KRwM8mE8U8i{3qT4&PK8jHc;9@bJB;e*lUhe(w-4wV-`VCZT3u5dcwN*2X}9 zoL7w-^pHhnKNQ)(H(%~|w{6`iuf7cJK?WgtmH0OL?rfsB!4NT|DE-Pvu~ikDpaSe5NJSC-{a#?DR0nd=FskEOfuR>*g7bxj4MH5``hIx`5!$Gp#e_f)*H&IYI? zCJq&>BQRn|9V5ZCggF;+2*{(u!`24;me*F>C;)0dBX4m`6N__7sl&^_@iS^;nHJG2 zH!XEYp)!znhnF*In01UZ@n_Md6Jdd|M5|#n@DfR@;yTa)>4Xepoz zl&<`f&DxifYbZ|93de*t{Pe++z6J4l*X(KNTPOdrd!mxNpM87jPhvW_kF(eJA` z{glFi0uv6P%Yg1%ykZ=~k|GUx6}TE-zGMk`d8lIlaEt}As&Sk;YnI)Pf!$l7by7IT zPgabZtOJhZXxj2Yk9nVM7b4hQ|KZiRc={?jK8f8(v?9b5rDN6T}miki9XS#fFl^0NdWQ3{$*ZG7|Ck!-a^x8HLw=o;>dQUm)IaW zB2e6rtdqoYt0M~eGTqixz$_?U4=Hy&gon579(YxhhWKONXWIdh*SW8sT_6l4=MZ7_ z3_t+0l-u4$oOsupir?^t5A_&prNo|8()~L9R3V$?lm|?a(m04SRD?an_B&-God%Wn zo$0R0;tp+G@j(3r5y{-wg;3AWn%xou*EjAvz0~tFw%G4#+d_0DzWcG$J8gl=BvS{s zDQLQi@3ZajDk9w*%mJkhSj~+Hp=5?D2c>QXDC~U0ieyfmlY~=i@qq@k$KKxziO+f+ z8L#ulT47~&$a&U;*&f2TWW-45*&;Gzpb1AKUxc|&3tppM^m~6{;Es-!H)6Sc8r~Wf8IS&$=%Ps$gZYB zcAp)JtiL+-(_oqu#(Y`sNK0`OVd2UOGf_-OX^)FYyiBw2+SilMjlylNxgh5l3srtR z*mr`UM2bojrVLV^Zgza5CVpTL-aVACQ^TP|!f7D0gdR;&5KR93U25{kYg+Y`2_Iny zeq8y7)!s>*f16sRqmp&0X!7j<2e*05`)oTwRIAxZ25@z8uDV10P=qQMZjVS10M|h{ zy7qQtH&GQ!d|c!fSnV+dG=Ez>jl>@I;1Mfn7< zc1+KjM36RJL+ zo;j}N*)&nFS@q>}e00MXQ@>0?$*xVeogdf#4qUQ#bPs}p_EfO(@(%TEEspOAh1yhO zg3cciSp7it+XQTYnLmg8{G}Y*UoV;6QI&Zc2;cc#q=|yR3LfF zC2KS{XIDQL$#~!Tctu=U9-k>DodQ4ReYPAprT;=X78B&RUR~Li%d>8;F+2gkrnv`y@gM{MGYsACa!03t7qm=CmwFr&Uu7e8Xj21KS zXVKA8{e$kwYJirikL@qJCn~x7*%#TBZcl|{`zCb_FwMp}P}%Nnir-XK`}#Fod^iug zWHHFB;muQoP!g|p7qbBC5yi0AOi%bgeW(;lRU764Q%+QGoO)|~m>w}*O z(*Ej7{F5kE+a5bGZFJ%(RC-B4Q>qgE>zf*F82|J0XelfRM5Laxo!MX0WWPctAM-xj zj*AL*8LbPggerAv3y6FUm`|vB-trCRaBQ}YlQAb5A+Ds9M~RksZiRZDe7~d8mMwV2 z(CB_&qD=shIK%8aG~>-5phWtwaP-sWoyfRsfW~@`1(|D8=vS!Cq0)Pz-ER<6*|cT% znp=8VSyx*Y+;j)>tBviAD4nWwf(LQhV;=0NpKV9o|NAeyCn~x7*%#T_*a-zm5c*O! zTuuQSPkm68YN*Es_h!FB{Hp&t#jMBNMo4qA@Hz-avSW^G!TuzKn*YqznGcTu;adHT zbp|>~2o}+PWF}TLgwXZxKrF{CxJ32}21&EYR)_Oc*dH1)N?HYKZM(|-rrG36ch^$7 z9Rp~c@>f8R#{ELV&>xZDAM-xj4mJw4GYE0W!X#N{VxGwcLnKEoBVol zVL*pdo1b?0o=@+qWd@%C(QzZ&kDpr{)PKY)_!BF-zQ4qh9O12)!EO%a?&lri4p3o1 zZ|7vcx?#Rz=8-tg^{WmV9weF@u#xb7PmAX0+{kB5W|z=mBdKXWN6|;L!uDWC^K3hs z!N2b7rG4Vl?tb<~cF?l(aFF>^MzGc*3e!cWpXln&7ug##A!(D_zrog6-`~d-t0k>e z9*jxSt+c#^N%8%lrcyjEiHaL@_)6Jkm@`)mOS z)#Ka9)--(;Gnx7PB|$Vl#X)gD6YBEz0~Xm?>O4378(VYI(~QTw&$eTm8Ig&WL;Uyy zk;P+xMAEN#KND*D>`UZALMT@T0bMNzG5-`vLjSNpYEBJEY#RaBp0SdH#_@{tFc2oq zjU%}xuXsU#ew;kIiWzLW#87p^71KeT+bAvBzz_W3H`V*OKG~h1cD3(ZON4H0r7-P8L_+Mnist-F6$&^$iqen0ynJ9Dwoie=n48#L0) zjqHVHvidRav+XQ-zm#8#xB3YN>s7V7H1tfEt6R{(7!Srut09~?I+V4I z0n~woJ(m=0&v>c1WqIV9m%T~#)z@csmSfl|rwS~M9l3rO;NycEk^#6z4Vced!92$g z-P+8@AT{@oW=+XZ3VFgB%SW)PQ>UUh85Gw0x0~u6uRC)--yG#S;_E-y(LH^(W(sX@zHhn94nq0YZVo9?SxF*ah&#*B_!?N64;+gduR-s=L3yg z5x`x}<(?3%)OJ}u*gd-tqop6+{LAi%LhOF_MRpcO_G?xji@rwdWD&1oP8Wcop`bvU z?H=}{W6e8PC3)|iu&8astwOR{ySdgL+7_&qXpIW7NgOt^LjFQQUFU3=z(ZQip1O^N z0^M8Yu>G!{?hAXDF(Bi7zNnkuK20I$-b+hove5i4({>b#kxAUDwJeY@w1+luBn5;M z9@*01rycDa#`Aem9pQ_ImI3`K!T~~J#|pZpYTwM+xe5b8zHU<464gd2x5Da z7v4vLyv^y&hxvwd@bv^Aggo_vOOAlhYPb5P3L+504S5jJ*Vr}*c57(kPWBy0Hl}6r z_=DZE3o+V{lj?ujJyD3=&%Vg6nTv?73-lU9VgDp&_{vSs_1bP5OR{X+qNdxy?~qPM zm2r$zoCAt|qq2!QXN*7UcOOL*ZrsZEZ(a*NT(BVEv`dWod)KCv0pLFmB|qOe=w5p` zCK?uy#R-&DQ?39QqWZ*y58m%?JAZ3n{89@xwC-i8vM$ds5I9AgI8UMk^qBYAc8Zu^ z1Y+cLyDxQ)?Hj&r0NM9g)s>jcj%>)Xlj7=2%qeYIOa2VUb)> zQ}8;woU~M};XIut0>8=vmTywb1#j9c?i=ho*hT58r5)%q58zP$jJa@47)qFA?E`YG z({DCG%g!D@Ei>I+AlqQz6~sNJecnFUJ-ZO2Wt_(R%kGIn?0)t|cEwDmrzKKgX5R?< zT1BkR>Xqkr&Z}b?Ba810}gJl+_0MImF&R zpF^z}-&5~XT5G#D<8B18mB67}FjRF(K)V`yj=ieN4%IhF_e1<8iHdnR_5KhSJHzff zZ2`mzn9=JN|9%R0%TW}3)`(!G{Wp-~?;%X{qga(2Z5G5VfG=^$_B=kDJlH+E5Tj+9 znfjOALm~FWVdnkli|B}zM~MkVDXlx7?$@GTfoa+^-6 zy+RXycDd|x`Nw*)nj!}J_+g&+v?fZ~@H0I@rSXN_eXmqMrPsZc=HW`i?@S-#Lh#Y(2f{jp zT3RjGo{VRI7}VPe_dE7O^FM{yKaVn>EX3&M{<``@_e3FfKl>s%;YlBfIODm&aLdGV zmRG=^wN*cdk7ju1wgH^JB3L%C>wKI26*Td7LCpl=cF~08D^vpXGA&Mc{L)q*R4y(= z7Hf+KE{G=$kiD_l@}NJGfwVLXLprBop_bCN#OIxrVrx?CJ12L-@21(}Yl85rVM(3- z0*u69Ot3-On{35(Vvl*BEmxDfW)Ah`)eeoP7G0y08fNzVc9!yKCYhLg=qL8>on$TTwnmzS2}JHHr)Xbn33dI15}att+nF zGK=UVZIWWc+y({krO_g*v3i}5CJe(&$XPdDdpySkQr1o#k!RKMV^`K^1>Onb`xqx< zCtu!KSFe7>XogF3%rq?c`LQ%Dmn;%_R)(#JPd%PBl)xOF<73`u+ktwDfXT$Rtj>FW zv=)>qj3)bO4<^#jjB|uM)sf(c`jgY8=$y39RR)D+vYa;Pm!hxzxYHC9ru`bp6d@fj z4B=Nna|Fo`;=26A#R|*@84{=$O}<~;&|BvBg`+{^$~q}%=>IRJ3YJi@A4XC3*HY0OjA^wDzPJwvUD;F;kH@IzsI9VQegtmDmc`2 zKXI>hwZD`~k6X$lNOHJ~I`Oyd6>k!Oi%;{bL@LkTUq#(obGh=?ADHglW}U#;EUXY- z9f$pN#Dcr(y^ppSYPt1kmVRhq16pm!yVCB8q46>Av+V-6Op())Q*@R4IqR{z4`GCt z?w>ab?OF_09?gW3z{;1wxOMZ|y|^`cYgd#MnWcocu=l=P;WW_WpmBQRrV%;E$w81R zHr5B>{xLq{vCb%?P3qch`G7Q9jI6@=O17E3j!e1HpelOSS?4DhS(b2B_^{p;+PaLV-&%Vfxl@HVv$k_UWa-&!6A_18mnDaj6C!0WG zFK)Nh%hQ!s=kLl+Ns6>w)W)|b!4n_t+WcA~PC4Hx7KdBjYWkxG4S9Cd63b87!Uh-3 zN0k(OS~+SDqltn9&-A~ZF-?N>UoQigWzSoy-xh zdd&N5yAnd?JtghV^yqSN@|&YKwcqj_U;EDs=Jx&&`~X_4Inwe=nlh;b2QHlA)ZH%c z{^Sg967s8w2bNk=!$lW9?&pg@zbAwcuu+rAXhPmn+)2IGxNi%*bjG%(f#vK<;gOWj&AL*Z*`%2q7b{E zeUTjjdPI7sP%p(VOMR>mU`X1^S=`I7Nwug^#JQ>%UxMq^T4PNZ3PI?4U?3ZfEDYV; zfTcU56N{V@lo4ihFa{jxnS9ipe(HO6aMvO+4FZ`|;5UwIg}9L5L?ef&rk>FS(+@Pl zK=+#sSV&o*du9&3S-QFq1A}*IAv|`>68n(!nD^OsxrGFi*tIa`n&;IXXgoLmjC@i7 zpdV>mO55&KkkNu@U|}Z$LhLk7mGa9n6<9d%4ZmjWapeSgN94p3aJ1}AAnZ>a@1MC+ zN#jdY(K%hCpNKN}QA3*DHJPxUt%!?cda)haD|og;e-^94cInf-We4K61X51Z<)b5^ z{;)H={IKqxU5L@qumAVAx;$KXrF)_fyPtiL9WZ)w>{-X)rn@>2xxb+XH7($ze!Kc- ztfO)gi_!n1?5(2W*xI&hf(8ig?h>5f!QCymySuvv2u^Sd!Ciy9TX2^IcZcB4&*tIZ z-yRw7U^M5~!PPx`RrQ)xbr&4}q63?93vkv?vuoeEGg7J|8=c zW5D)@R0ecJv7A9D!)qRhH3Rq+>MCZZ9rkF!TykjVP)|*X27`6=ev(jeZ1~As{^&mS z`2J2&lByYNuPLg zSUGoDYGPOfQeKq9Zzj| zU_zxuKl{w5OJ5ZpkWA}m(d(6Iyoit*+u8AXP`VSm8Dyxo)Wb_>bnpHWT>?)0QWOTnI(-_gCwRrFN z+8@H)me3*-L3Xgw z^{D5i3UWAu79dcbVRQpFj5nm|ZAh7{v-g0%~Z3 z$t3BQ&`o`&x8mR)(_D7+3_nZLY{76xs%n!UbY;vkaSe}F` z^rS4)S>Ua~sEZzym!iiLJAj24Bg?MsU+i8GVvpHZu@k#whE}=GOa;>xWdSzn%_S1; zW6U-|D2EwvpoLEstEv=T=c0?Pw(Wwc{v@GLi*`sY=j}}M))}I99{QZ0wmgovN;4;A z2j&YN&EiN;E_MZlietxYDl>Lj){f3;0HRO`;ieC7-Y(+PZb9nWujR-bn;4SJrT#c)av@(4S74;Iqyg6qjt!K z0y0Ao=qoiH>o25V8ZM$-lMk^gc>F3@?~mRI;NLx4D@Q*^q+~>Frts zUuz#&X0*fa`_{X4q=a?b!~PlMG~c&i9>>>tYjDT8x3%w|*a0lW7+Lpe{$lrn5PQtN ziXER@yb&MmOiYE%wLR^`6!fnat;`gz=$jEeNq)%RzcSIG8AVqVyg!)+qJPV|VeP3L z??v4s&Z(Z&tLVP%wJ*juK5qv3c~RUiuDw!g-uIJd0H1#Lmx|Ebz?zns_Gdiyv9aK7 z3|M87d&P~k4m=NdbRtV-YT%~MWhs|cS+V`+z5ugRLOp}=1)Jw~QI810BmFSNHC4Vf zxd#Kwo}KOOkM8;gSiKkqR!ct3=Cg~4ZkuoIc$Xf*dQ&o?NyV!9CKk9(2-W98+b}Z* zuT7gO%;Skn(D;GmWmi)DB~UqUArb*cDgU3Czxj=Z$&XB?MkkzmC)msP(F~c42+ZKh zsYlz~pV$E`#2DEQcK&7eB*b3$tMV9q6*{2uzH7}{(I4@8R6ZYyWgXagMg`VvwC#su z?%|tFswO+SJxd&xiAdh;sM8^S6E3wl1=E&0R0x!|X#N5}jG>NT!#=F;#Cq&FcV(R^ zWBj$A2u8jB9r8I@%-Q#VQ$0TaraK>o=%g1PJzY47DhE_bmsIAjMGczM(3 zz5t^`u?2SUt>uSPkwW-br-fCTS!FX_rODcXL8Wu3ZLR2O2x7x&oocUj!-Mp(Bu+wH zF;k%AJpqnrgM8%qry8z89=@2ACZsWRId=26zF?T|zBIt5IJz$CCkM`6vR9he&d-+^*^Gv*%_*5Hx@Z-2d-a$2vPq|r34j05sbuCPyqzjVcT~Y zk~X!DW;uh^@4~hh2Geod-*d?`bX)st1)`ld5E1pV#_PW!Y3W)&Y~H-(mjZgAJ&Qr( z9xSl`Rw4@X3-oPEY^(yUTUuNQS0c< z#XpOV31A_{M0fnxR2QZfgxF*DRqV8hR|&wQl~(u0ecW4w6oXI09dbkrFm`nFGX`vH zOMpkXJX}|L6z0@)b*chw=aU5*XJduIC7cRBsQE|vZkIVn)((_i2J`lxex5|D0?}r4 zs!^}aQ}|`{CXYNTsPqF6?%2@|*$6t>;5zy|LVJyhoLe0QF|{eCWg>;=ErQ2$Ux3+p zDpEokT&&WFL5RdC3&OCqp9bxm%eH3Gc#<~ET)DiR6)y`Snum@hrvq-ZCYI zoe|N8WHpNfq6*M4;V_@Q3T*e~2)765Cw2e}F(&%czoxn{y&%LMv#(-@!IhfAA~;;X z3c*ms#J#L?;vCPNVXVvNSx}Kn@9{m$n&y;=zwyX>mz(ZB4m;OgLqixmyUYtb&muov zV}&?TW-1E29zqLcuF>*G{2SnaXeDkec*VYdU}e z{Qx*wxjD#plMwMZgTqZZ&wT-A=goZfI87;J6*P7*){>!jqRJd^0E8Q@1n1*i`;hP1 z#uYt9LJkgMx#J3WmjM#T^-Z0MNeDjzbf`I0$U2Lt2JmeX{%X90%s9yEX5T>GhqCh& zcl;Qa7|A0g<>Jf&_oz@qBE>l~Zgh^M$W_YaNd&KhFpihPJP-LbfQu-q>`;5Q3FVsLx^$Z9hn3>ca&a z*T0=1#QFZ^3k9%%1h| z^witYg|BL9oEOa@patB~rY@hoA%&tZ~PANw%bzHRO z%_U3^A6@`Z@pa;aQdeMP>{)9o@N^@Z5$KJh< z4;!{BlR-a>u?*{Tnh9Vb#>8;(*Hjm#7lhbj_EqeBsyt&v*NY{t3u-|=lna+Jgldk9CTxwMA%Smgh z_s2w-xHs+Q&wT-A#|#V`($vO?x*?mJzjSG8G^Q$wEHg#?y#llr@7z8bYl=EpV7^83 zP@=Q%+L#8NQ`f)~Hh+*m&o?pPs|&)cnEozD^Vxc|$Gif%MAOx@p(_WpAVRiH?0H9; zu%5V^P^3MnPKn~ieS3;RkIfOnfqv3YV(LA)_S33n0}mwK(x+o4z(S0P@#?RsE=(`{ z%Y4kfiXCau)!`28X;xTfEt=~Um#=%%UatuXeVV42P6dugDqC^z4`LTskRU{Q5H2C< zQZcfkT?u9?2ZqtBe(L_w?dgPmfT9RBRiG3^n(aj3YKlNGGOI`(uCpu>X$jnnsJ zVx-YZoMCS9_G9O~s`>6^@NIXK*J0G`%VA#wQLmo+0?baSgGw{kEMi)~EAVUf>2?Vk zmv3HQO9vx?s(QMMHP_x?+57#$Z={%U#tqiOpA>`jZd-yOqQrAo^ieT~3|AVP5U4n* z*S#nCG5CThBJMCOY5lG8wFq?;DmZsJ1l77$IHNIeEcfJMgQAiN?Nfe@L%V6HK!((= zSH!cWwu8q%u>)9$F)`izzo{-yQibUSA@-Pk6}!;Bw;a|gvxv+VorVYc_H)Rc%CaV~ zVI>=8z``N%$GDPQ;z&}mG$TTV*aLna%|C~v2gGf|tqDeBkc0VGUfqV!EqmY@rtJb% z4mI~qsBzl;nmcmQIa-@%{c3)mQ0Y^48j#?Rn9#7yQf9kzTQ0bG^#H^SPaVBbR0tB5 zls*027hrZOH>0+ancE-7av5=$m+xml26Nhfmsi6HBP6@2)m;dA^rzZ5;V4eYiN}}cAxXLo!y1hwz6f((@{AJX=&UcNG z8SbXE13$U-hl$xqY6fVqB?)`j8E-FCfbnQ+Yy;mvO@3qoScow(-}d~wx%(fx7lhbj z_EqdSZx~`?n75Y+@f#*f=C$1Jw=ZD@nev20<W>7uGe0U`GykJ8=sspd40FH@SJdl_i4F` z2`fPF#%co}=7KRCJ&;T+(wR`X8Zf6&Cb&mMp8EpKPHE#IWSh3-7F7CN#UeeDUkcu4 zaqLjjyv23da1?CqKGA?FU0av(;C-dFLat9b@S6G|7}|=e4V(h1%PytmDDGA_mMc#! z?GM}$YqfWA3Wgf`NrIa{u0!rem4Bm^tt=f4sApuE`|zLvt^CREaGG^`Z|Zdjj-f`| zJQ5SI^>k+@6Tm`@iRJ#UCxDn<5MqznSFw|5d5DTv#Z%m2BqetU?Aqg;N<62^LGE`% zk%JE2mJ)w3b=6GUL-_pha=dr6Wwtk83YfL2r7O=(nTZC^qBsXz*GK_kt?Bt8taZOQxC)6|y9Wf!Kcp+%LEdiX250_7{QYSE zdFY=z^2vm;B0(WhgDRzc|IC z!VR5vG<9(gVovY(pkm>X==$;fjGfe`Q=(#UA{oc5-um4;D*gh7CR9{M8byh^bcrFW zzpk4bQDEyNv1lglZg%5k#Ag2kIRe6=(L5lPvQU{X#N^&O()xfB5+n0;hy~c6F|oFe z{k2SA@Mn+NSE0@}BgFkI;{}({&sk|g6w!IKsba}JAlNCRcqew;%Vg-FHse~!vcWXB zw5?hgjR2${nZ?#T9Y(E$!5W$bGG5g;oy`=W*FM%EQI%bE>@xhRV8BzidLWDRNC%h| zx!Y?bQxYoz8SffKTPQFTm``sCSqa7zrOPK3Do- zOAecS^47-p&(B_Kt7ajk0bP<}JH(d(|%D+TEkCJ*~%!^gzdNRKal7SGfR4OMe$ zv{O0QNiX8z;94*ds?GY-BD~U=i{NNSfUO8t^&CT&*>@#uSoMKiR{f-Des05ZXqO9% zvwW=w$$bIk5=gg{Cw2h)GbXn7@PFAo37i+sj*rn-p~KWfl)0NLD48XWYCJxY&x_5A zf&4=lN`zB9MH3=XbzmIGS&=+_4t%$Q$Dz_+qxA5zJ2ra_IrDInjgf+bDGKqri)9s_ zz+VWAJkSty=NGstb;a$&-6!li6@`rQ8<}&%G6GA3ox?>drVNtn!=le{LxI@5%8+f5zM?`Y*Vr zb0hN${_HXPDss4!NFcF^--GVHt%B1xWV}ggU``w{_j#7_OZEVy7eYpd%0mLRPYo>l&HUx3L4i=-14dlcU-e+|7S ztA3AI*OLVntz=Q%-m}o3L*WQz;-6D(U^Wq2+T4z+zNDfvt$^jw`96cMvrq5( z8C{1#AK(;~m!O6%`Ol(b2H2l5({+RV#qI@v_LzMYJI@slTccW{YPIdqPM!24*0_`$ z5Lk)984P#fXx_`PghI7_@g1UmU?Z3^G)WdB;d&!6abOK`Cp@td*6kmsz#veQxzskjp-QVLu=1wZ|CBS#m^Q4=EnI~0)Wp|KomUorza7yK~9>L?_A z+O6Go4(nApzsa{U^js;_Qgl$KsGFv%tv}J>3drKV)ueSd(6Iy z9sRG^5-`37w|C3f$VHF{=@hUaSNG&s`KYtBx!)`Uf<8uG@<8kGPS|0^ClM{kw(=Eh zwEBmduT^}QC|p0lvgrBL$Lpo=_)4PrGO^7skv=DUaE`w|l)?Da?r60l)hTE0ntT=n z#r$0-LUEBZWk5SqQTMxl&F+t9@U;Bmdezc%Ux3+x6C<=B#Gx^@@MdE_tV*1)rz!j6 zWsO!kvu|7*SM^*R58T|)rmU>=fO)gY|7<&&&*448zRGJdpKdC;EjOiJRIWHu-JL-& zIEtSim4VFDA~*VmI)UCLbC(|A;{c*0mCHJrB%gGIIO;-%-;Lk4^ws7~z}H)zPc!i3 zZeZ2zPwW8pXUrddy8XrO1%LLKeHFVpkuJ)}L|#(4tE7mM+TM7c2V0z4cgZY&XPZmE z^KXRoqgN}byif}sw-yXeV?S^pea(KoHUIWjtkB=CEJ>6{CX$RNwHc^fojPAc?Lr?v zHb@RLQMD1Y5QcTe6c}P&aj%z2$2x;!5Sgw>ELQE0JsBnlj2h_WtM)$18|F0wKUE zjNY;mw?9a91o&oaZa~}C_sSsquypv;#^J=}J2bXnUe~C!g2>?9Z4P`dR*B_kurr%)W|Uv3Jrp=d&J> zE~;Jv92nf-3zB~It{YqyS)eSXz+c3ggQp}N2HLZf7xFCMMymDB-z;cKW zn?K~s1Kk)7QA`BrDnvyn*Nwx4Mv}1)@4}B1QF*xh*~ijyxl5~}FoEFzUOukqtAWQy zon6a9i$$;!zE5wD)cKVd=eaMy?5G7woce*n4|1SFWI;Oxoh&xYu0&&tsp+^PdAx^z z?KYS0*|2;tqdx;{(Tai5{rE|vwLL)iHVkal)AU0O+8g_i2^{i*L0Fv0S2L~@oW)cB=(=W@&$I1cPmrA9UL zQd1N+sOqh@qc2A9v**rz?Tt!SLP&!{=rqW(5WVv+7rfuK6N?uF2A>9vVY8=g!WdJptU@<1TBQ$d@4oIuUx2@>86bu%CH$3+Rm>sMiyM4F93Ua7p zYpAp~gQHw+`mP*K+g=S;D z@4Z;X`q0VzF<$oAh$e~gmYVlxq6a135B@uliNaw&e{9~MILIvYv*3n}k_?%imHCI; zB|HPP3a2`_2m^$GMo8o*b^!Y`W~QOizu3L7LwL--iXB&Piob2)=L^wNqcf@B?_`0U zo$FW0d(7f7QW7jI;R4hxR^8@j{Mr~9#heSxJc!Kvm!h?^J%{?aLx!%bK7M*)b!9Na%w&B((=E{Ihd1fInspSx6S+c9axG@ar(y1 zXJ~CA{5QdKUx3-UT&|W3CoFtyV#f07!hbN`S^Hu1g zRW7@pEgf7w87>oh(PHTuvSrM9;@0-IO|8o188CRgI7x1( zxIs;rTgBT<$ggzKr=QpH8c zf2oQ8|Mlx;uVZH;M}|Cf5$-##eZ|UC#V^?#L-Q%&BP??kQozYW05DGPyTI>~v^_*s z)6;iJd7nlQO=0zxJZQ0e-RC}?@QY@^+;IKuwy7A#Q$dv56tETs{&}wB+CJ>G%TtF< z|2QdJ^;U%;`eOYjD#$w;t6;kpaivK}1lt%Md@`-$G;z z6qT;qS4+SdCU%2{70LpAeu zb5WHZW@CO6qI=Oq?`NBf+!H&1{TVaM7};O!Uhrp+*;lPQUK9RWw}l?{he!y7TaJ1C z_ss(j`S*!16Z5*?nrO58>mVTO`06 zSUL68WJV+)NmLK+w*^PF_i+C5%~*4R8Qx$iVed5UV$eRChpS3!FfhQ*Y`PS#TNKkb zx=NP{Dw%a${kbo|>;%M;id5Lg?ydU5)(=)o{?cc1a->$%(K7lDEWv{XVI3ur~ER&ljX^^lY>J~ z&k5Jg-IUbaS;t1|Wngol9*2nUQ_frl%B5QVW9ioiW7Z2&c-tp-01Gi@*74Q9*u5ac z9<#4vm&ZDcA$MwtHwdLCAEPmp!5a`EqR=;Z{_e;h2!?l_rEe}DX~MHdy~h|H9k?oa zIz~P!*(ruC$@~i~e4=LD4$k%j3}RmQI*35ikkn6g^Un`$6NnK(24S!NW68 zi!_gXrsbs-SP;OWK9b!_40a^6!LH4Jl`CFY!cm8@&3WUF zhKL_(o&G+7A&Y1U>O6TO&$KuUxsH?!*r@zB6{#;&O1!6<{Rhko(w|hF zZ2a_lRdY`_axw!f#F*J8Q~zc6B*b1gWIje;h0b`{qo4qHRo|Rhy>8Ekv3P5g2JCwV zqm%~%si#!ADQzdQ3%s_H?X_0*68zhJXZ|>|+SSCVsW*G7Ri1htmp4BK`>-S=XS5Xf z)%V|!OOR0S4Y)*!r$K4XE0kOewNhrT(L69YNQ0@=8lyIYAN|tBfAEgUot6j|kz3)n zG;n|J3otqn_9(BLpDL$mK)(&XCCVlu@R;s!e&%a)mE=-NjtCIIG5NMSFWA4?_niq& zzBY^@KsVoy62<<9$OlOBteJ4EPXjsF7RMlcJZcH5I3iI39W7j8o-*cvmsA^NZAsqh zIp~D(WbOOe6_##2msTA0+KAHM6zCL3Bv6y{`zo&J{t;sTJz~Bn#8{?P{{{CX#8_Ss zVvpHZkxQzBHE;o?#_Kqc8?N)Lv6~Xsayo5n+=dpY{?4qy<%z%{aB1<~dQ=Nyreew3cRzs8~gf3v%s|vI-(jE!Oy7iH35Mv?4pPSb`#dypx2%Mf1Do zk~)lKwW>%&FVgaw&tO_ffgs2rjYIT1(-?XOELQ*A7hrPqiB#KIj=Bq=Fj0+f3Zy>2 zvwu_J7^jQZ$RGxMf+HOv9V498DF5YSv84NN8+F0R1h?>eyZgI zKD4#`H%rnKgNPAAJJ*u^KOhC7rw*Ev!C0;06LFwWfA-N>R1aS*mnb@$7fjO;;%T%f zL0X@7TxyFR|8u}(0a%E!(9I(M#qI?m_LzMYyV!MalVGdVtZ}QrEx#{459-+)B#Y!n z8;lSgvDFa2W7Z~^>vBKp!KSX~`&g$;ZrUoChLI&BE}$jWnlK&({Wfq+!a99}GiB?_ zOG0G`c$?$uLaRIAZwlu-Vz+mS6x`#up~+@=Bn01*56x!K#QDjmd_v~W ze#CQMfZ55Jq9A|KF9@vHx%`gV35hkHU%^>5RNGP?mLJZ|y(}6^U^ac2&Tk@iUu!{W z_i-SvkEW&rG%eoFZni4{`r?f?bL{WW5}uLFt9|eJZCh=ib@ke><0O*^q%y&hAq(*3c0i;}CWz3<)P+#w=u>N|?;l~>Ae zNV$B0oR_qBJ~W`5Xyo`w$C4_Og#hTeFTm_-?#Km^=nv|sq(A>qF`J(aOWgD#mDV!@ zjvIVio9~H%EVDmvn&Ti904-Sg0})%7Df1zrLiZd^2xpRfzmx3o*?0wohx;!s=>jzZ zYV#-r;2OTXsE8kWZoS$wO-fsF4osS6wc1d0#1-a(_t3!h?0&SyRDN};MWyw|PEQGZ~mBGWyE_J=+mtie-H%V;jGF*g;~$QdQq?&wT-A=kZ>> z?Ysz?hIWId`_1G*ugo|aE3eCJH}30F zcg~#H+_-3f?dYAL414B0fxO7=H7t~+z{jO@ePy!stV|kNGlSXLaIz56%a#6!cHyB< z_5Vo{z!k$#)o{yUKD0@oW)c2yiZ$=o)zkz?K( zc4XUq--vp9Z#4;om<=c(3dizsE~ltVe)|On>d=9D^v5nHAXp`Wn(%b&^+7h%*|&AL zNbj$Q;PLB)Y)Fa0WxOdFHAbKjE>1(k&77C0fYluWSG`K0Tha_~y8UQxmgmS_=f~){ zLHi@tN*XdsJoHYPtoyky!0a$j+oh_?ir=@l0tK@K*ny;!g?rXSBeN<{3U}Q?5&miO zI5z(@R&HjJG>KI*=Lts0@>y@Uw_1YIp7;T{hA+sy@GH33>L$PIA4qt@w5lJ)Vs}vL zi^eE(=$(qGebU%x4>YL-^?ftz^&rD2=~Ss5u3X|JcoF-cq~DsLt z^e=WV2(icPtJq0?(Hu)>+Sf6J?7Nu)AKQ^3mLCk8F3v*84SOT|_@eWin_jQp@-;;c zaDIdkmxkpC$;aU{(Kss@#TqrlleND(%8&4}NbZz&F+IADa;qy5i|4soLwcfhk6>RWI@oWm0?8@H~MhHGjk1XzVV_XU`pMdgGwHH|Y%B+_Bp z&m|G;b@UP|h>=T)uczc#VeL+YGh_Gi8+SB84cjG<;GYR5@L2_jEf4p=ss@#b&b@X& zA+-DbNe&`_Q@EpStw7M75~2Qmz(jg9P+`(z*7nWyL2#l=53zsT_YY!a^Pt_?mphqD zrX z<0-%+1AjnJI&RgW^;N#}L96urMh<-JD_s~7UAYQ5z^o<*Hf^R~G>4?tHCRwYvX@uw zc-EukT=D@+TFE&>S24g3JSZBx<#3o~!<)_ZZCdsQdH+7kCEZ)2X*`dp%0yV-1WR{Q zk0{2g=e_{5BSdljrJ)euRSTvl;creN9LJx|66dopZBsmjZ)RFo289-m@2lD}+qm8| zQFt>EtKXE{Ci(q+t;ZQXEB@%-dgQycG~5w`I}P8l0&$49VyA8%&Eu&?QxKr>dgph- z5>o}U42VDhZ@<;xlBV5ljM~nyjPwM(hnXl3{I%x|RPnU#02X2_%&YEyv3p^6_n3VZ zyV~JdEheXXDOos%e0}An2jv#aq@>M-v_3Sb&>`_R?fGydD;dfh^j;=7@_^ z&rp$=rhbF@d2-6Zw&9fB;7?agSma15-4PK5xRApwv0i=U_jDyb;ajX-Au*wwTrkw} zF2lVJ@b~gqG)EG`Tgr-5FlFx7ABo*RJ{xRtC{RMAsMf3?P{xCjg@;lg4{vjRfn=hrH=>s7fwV|M*@>?&u<gPR@BeHcB)^KVyd#I|W)6aqYTdUs*V`SGG${OC) zo4q-`rm{*0c(lV{eXD@t_*h`-Pn6*@^v{E}F?<52htH*hC=kR*D0;m=MLSuNMeVg* zy8{x&oU*|{qV;48%mr7l%5Fe(#c@HlcyylF0W8E=ST|1pV)ud&d(6IyUGlL5y0uYL zX^`zYe7y}6Pn!UEC!LVSZ`?$C(oX(mT`29f%GI%%D=-IL@X~|R@Fhh9`9dh*Sn$T7 ztx7goE$u0xct=+IHW8R{=g|$R+_Lb zPPdt7e?s78!(B4T%R71H{`qYG^aYq*IiBiA{ou3c%x=^=d+d6HcPeeMePLK^JY)Vg?u-P=q){wH<- z3o#b9t+IdFJqfWFmfd6YRp>Cei*plN30rvyox{KuFtmz4t|fFhzhUZ(5W(|`zqILR zfWPLF?EVHmWa*rCe&w20eL!iglNPs?+bZP*x}dmRa}Pa)98p;iKthMtu=uB~6ZegVjGBS3NCf3`Ux3k>OgQcg zU3sJcN!NJIn+TRn+Uxoo>5aEAa$0WSO^~-q+TM2%RO&?G;R*VWl;{pU}d!9CD=M$DlWHzuX+zV&C8ji{RC}B!Q8D=Zz#;s z+Oar5K?2xAh@o7cn_Km{FTmu4YT*bE!RwtU#*sUAr%&^2tQ;ez_6N55OVm4!($wl( zKY$sy-i*iV8@AllMm{iCUh88?zD0?iYro2qw;s1CT1C5X;%(zqAb8ke?wlLk2ZPYn zcn`PuBRWI6rBZwn2m_+cb{^)3y8>9w4?@)x>uN-Eu_=* z5Hw~ohs{V>DHd3oKXS<@f@{o~qinfG&iq|Xf4jQb>?7!rnBb6YQ_FsG8D=!^OYR zt1?&fv($+_6eCnb(Zwj_CVhJMIxE0JjFo11CqJJJsS88BAwvl9-=5a~EFA(i8ETDB z`7KF&k8e>Op?QHe@NRKiY>tw8Db~Zk5e(TQ+OEf~q0rBeD{@S~+^XSs>tg;=a3qd- z9u!Yf$W)$ch>v=Dm)+440bw60Je&YcN$t+8A!dtWVHEwlJ-%$5r*#Lg5M%vtnDQ69 z7lhbj_Eqe_&fAT{WPhuXXz8?hxLylp?x}&&n@yPbUB}YT3yuX3fqdQC0b@hU&y>Ri;Nvw&z$C0^%~vPS*NRDIhoo3XR{wM)9pVapS_Hk{uf zwXEcwRVIr|u@m1pZyGa8;U`qfSa~f^P(3K?0}iHN&wT-A_cg4+@gae5`Y?(zRA?4w zK?Few?5vHe#vjL%jl~Ry)LY0hBU;}n8gTk}!?|4%fm{I7_H( zJC~78m3$HEd&|Yj3B;VB#s}mEdQxn?We{0`usw9A!6zL)ZOIH-!m1>wJ(<`f##c!} zLa}kckE2Z(JD=DAEW}tD{;2%L?gb(Cn0*yHbwX(}!x6g2x8cP55ep$PT`v5QI^rU8 zi~2y8tz7ws#%+jDhK&qY`y*+#-8Z`I%J{hZHAF~ASj#S#so%hqt{Iz3U$J~^H9yEn zkP*jFt6ps^ZhR^kG^rxnk9Kq9;eGo@Ia+f ziG4H4mn2hSAk!#n2ra3bjisH7F~FVGKaI2f`W#4}*a0lWSQ$@H{$lrn5PQtNirp8B zA=;t1M0!F+hlpRtDDwD75>iTb=K7Ux3-c>ToL@OlX&Vf178aC4yPTmw2crD5ZQ$ zf>hw`Q!8aJUTv#@k`k|SJ9ezPQX?+yR7HK?9M^UebV$LU$GkRAg}L{36N=eco;1N$ z*a#NbBT*N3qa)@(I8OtQI0=|EK&Q@SDkYdl#YTdWkF-JMKzoo{$##)d0p{L8KIMDg z6FY!~7%S81=wIw!5MqznSFscQginOAn3i{UhYE2QBO-krA2XbSj(_FtZprsm-wbmO zQzdbXeXEovCE)}iqX*~*obEAu)x`fHu(KNNr)>VAFKN8(pN_`G9Xg#r;O6V({+y-Y9hb+!tVWkp`8U zl&hNfzSUpaN2+VFLU-#SB-Kq4x!Z1I&;M*{7gPH;EQ&(dXWkM~xf32su-l6nJ>HxMpXHBamS7GkW-=V5=bdqIdjW?#iFN5Hg(aIFg2>f3^j8K(}k5Okn zDQ?iKcjiwtUFL5NE5JgGmF4oU zCxBRA*qJ|OU&RirJ2fPfk-sc7T6Eo~o&TE+?%=eY>~DW8ae<-ZXk#t9fe)GKXf0IX zBYB3gKYT>0ga+kSZR;A$@7~{pt%5NlTLb?djENFT63puJ2*P(-5TbD4uOq9%5$j&is_+b8-w0^Fvi&s2Ez}-*+gAk zLI%Y{Ir5$*WwS0qfoB!cDQS}kmyzH;3T*%VWGQKh*~cBm7}gYRB;GFtsPih|vqJV< z90a9o=)DWaZ6^|~?&g_K2{{gVxIr;T{! zXOgd0&gUMV*q{3X%#L*hyIzarQXeii$#A!@m49bgUc!rRYqhxBK!kvHB8c`d+1LHW2egdJ|b6jZ5(Q<5H#zACCeiW>6GAvh07!#yIZT~p)9A)1cDOnbC>I` zOY#S_WTR>3{vRRsUve)BF}AzEuKuvSAjBTCuOg@3Z{H(JCKe_LHjrY#oHbo37$k)& z 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