class IndexVersionValue extends VersionValue {

    private static final long RAM_BYTES_USED = RamUsageEstimator.shallowSizeOfInstance(IndexVersionValue.class);

    private final Translog.Location translogLocation;

    IndexVersionValue(Translog.Location translogLocation, long version, long seqNo, long term) {
        super(version, seqNo, term);
        this.translogLocation = translogLocation;
    }

    @Override
    public long ramBytesUsed() {
        return RAM_BYTES_USED + RamUsageEstimator.shallowSizeOf(translogLocation);
    }

    @Override
    public boolean equals(Object o) {<FILL_FUNCTION_BODY>}

    @Override
    public int hashCode() {
        return Objects.hash(super.hashCode(), translogLocation);
    }

    @Override
    public String toString() {
        return "IndexVersionValue{" +
            "version=" + version +
            ", seqNo=" + seqNo +
            ", term=" + term +
            ", location=" + translogLocation +
            '}';
    }

    @Override
    public Translog.Location getLocation() {
        return translogLocation;
    }
}

        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;
        IndexVersionValue that = (IndexVersionValue) o;
        return Objects.equals(translogLocation, that.translogLocation);
    
<methods>public boolean equals(java.lang.Object) ,public Collection<Accountable> getChildResources() ,public org.elasticsearch.index.translog.Translog.Location getLocation() ,public int hashCode() ,public boolean isDelete() ,public long ramBytesUsed() ,public java.lang.String toString() <variables>private static final long BASE_RAM_BYTES_USED,final non-sealed long seqNo,final non-sealed long term,final non-sealed long version