// Path: src/java/kt4j/Bytes.java
// public static class ByteArrayWrapper {
//     /**
//      * The byte array that backs this wrapper.
//      */
//     public final byte[] array;
//         
//     /**
//      * Creates a new instance that wraps the specified byte array. 
//      */
//     public ByteArrayWrapper(byte[] array) {
//         this.array = array;
//     }
// 
//     @Override
//     public int hashCode() {
//         return Arrays.hashCode(array);
//     }
// 
//     @Override
//     public boolean equals(Object obj) {
//         if (obj instanceof ByteArrayWrapper) {
//             return Arrays.equals(array, ((ByteArrayWrapper) obj).array);
//         } else {
//             return false;
//         }
//     }
// 
//     @Override
//     public String toString() {
//         return Arrays.toString(array);
//     }
//         
//     /**
//      * Returns the length of this byte array.
//      */
//     public int length() {
//         return array.length;
//     }
// }


import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.AbstractMap.SimpleImmutableEntry;
import kt4j.Bytes.ByteArrayWrapper;
package kt4j.binary;



class PlayScriptResponse extends BinaryResponse {
    private final Map<ByteArrayWrapper, byte[]> results = new HashMap<ByteArrayWrapper, byte[]>();

    PlayScriptResponse(long numRecords) {
        super(PLAY_SCRIPT, numRecords);
    }
    
    void put(byte[] key, byte[] value) {
        results.put(new ByteArrayWrapper(key), value);
    }
    
    byte[] getValue(byte[] key) {
        return results.get(new ByteArrayWrapper(key));
    }
    
    Map<byte[], byte[]> getValues() {
        return new KeyValueWrapper(results);
    }

    private static class KeyValueWrapper extends AbstractKeyValueWrapper<byte[]> {
        KeyValueWrapper(Map<ByteArrayWrapper, byte[]> source) {
            super(source);
        }

// Path: src/java/kt4j/Bytes.java
// public static class ByteArrayWrapper {
//     /**
//      * The byte array that backs this wrapper.
//      */
//     public final byte[] array;
//         
//     /**
//      * Creates a new instance that wraps the specified byte array. 
//      */
//     public ByteArrayWrapper(byte[] array) {
//         this.array = array;
//     }
// 
//     @Override
//     public int hashCode() {
//         return Arrays.hashCode(array);
//     }
// 
//     @Override
//     public boolean equals(Object obj) {
//         if (obj instanceof ByteArrayWrapper) {
//             return Arrays.equals(array, ((ByteArrayWrapper) obj).array);
//         } else {
//             return false;
//         }
//     }
// 
//     @Override
//     public String toString() {
//         return Arrays.toString(array);
//     }
//         
//     /**
//      * Returns the length of this byte array.
//      */
//     public int length() {
//         return array.length;
//     }
// }


// Path: src/java/kt4j/binary/PlayScriptResponse.java
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.AbstractMap.SimpleImmutableEntry;
import kt4j.Bytes.ByteArrayWrapper;

package kt4j.binary;



class PlayScriptResponse extends BinaryResponse {
    private final Map<ByteArrayWrapper, byte[]> results = new HashMap<ByteArrayWrapper, byte[]>();

    PlayScriptResponse(long numRecords) {
        super(PLAY_SCRIPT, numRecords);
    }
    
    void put(byte[] key, byte[] value) {
        results.put(new ByteArrayWrapper(key), value);
    }
    
    byte[] getValue(byte[] key) {
        return results.get(new ByteArrayWrapper(key));
    }
    
    Map<byte[], byte[]> getValues() {
        return new KeyValueWrapper(results);
    }

    private static class KeyValueWrapper extends AbstractKeyValueWrapper<byte[]> {
        KeyValueWrapper(Map<ByteArrayWrapper, byte[]> source) {
            super(source);
        }

        @Override