// Path: sdk/src/main/java/com/punchthrough/bean/sdk/internal/exception/OADException.java
// public class OADException extends Exception {
//     public OADException(String detailMessage) {
//         super(detailMessage);
//     }
// }


import com.punchthrough.bean.sdk.internal.exception.OADException;
import java.util.List;
package com.punchthrough.bean.sdk.upload;




/**
 * Represents a bundle of firmware images
 */
public class FirmwareBundle {

    private List<FirmwareImage> images;
    private int imageCounter;


    public FirmwareBundle(List<FirmwareImage> images) {
        this.images = images;
        this.imageCounter = 0;
    }

    public long version() {
        return images.get(0).version();
    }

// Path: sdk/src/main/java/com/punchthrough/bean/sdk/internal/exception/OADException.java
// public class OADException extends Exception {
//     public OADException(String detailMessage) {
//         super(detailMessage);
//     }
// }


// Path: sdk/src/main/java/com/punchthrough/bean/sdk/upload/FirmwareBundle.java
import com.punchthrough.bean.sdk.internal.exception.OADException;
import java.util.List;

package com.punchthrough.bean.sdk.upload;




/**
 * Represents a bundle of firmware images
 */
public class FirmwareBundle {

    private List<FirmwareImage> images;
    private int imageCounter;


    public FirmwareBundle(List<FirmwareImage> images) {
        this.images = images;
        this.imageCounter = 0;
    }

    public long version() {
        return images.get(0).version();
    }

    public FirmwareImage getNextImage() throws OADException {