// Path: src/main/java/songo/vk/Audio.java
// public class Audio {
// 	public final String artist;
// 	public final String title;
// 	public final String url;
// 	public final int duration;
// 
// 	Audio(String artist, String title, String url, int duration) {
// 		this.artist = artist;
// 		this.title = title;
// 		this.url = url;
// 		this.duration = duration;
// 	}
// 
// 	@Override
// 	public int hashCode() {
// 		return Objects.hashCode(artist, title);
// 	}
// 
// 	@Override
// 	public boolean equals(Object obj) {
// 		if(obj == null)
// 			return false;
// 		if(this == obj)
// 			return true;
// 		if(!(obj instanceof Audio))
// 			return false;
// 		Audio a = (Audio) obj;
// 		return artist.equals(a.artist) && title.equals(a.title);
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return Objects.toStringHelper(this)
// 			.add("artist", artist)
// 			.add("title", title)
// 			.add("url", url)
// 			.toString();
// 	}
// }


import com.google.common.base.Throwables;
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
import com.ning.http.client.*;
import org.slf4j.Logger;
import songo.annotation.BackgroundExecutor;
import songo.logging.InjectLogger;
import songo.vk.Audio;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.util.concurrent.ExecutorService;
package songo.model.streams;



public class RemoteStream implements Stream {
	private final AsyncHttpClient client;
	private final StreamFactory factory;
	private final StreamManager manager;
// Path: src/main/java/songo/vk/Audio.java
// public class Audio {
// 	public final String artist;
// 	public final String title;
// 	public final String url;
// 	public final int duration;
// 
// 	Audio(String artist, String title, String url, int duration) {
// 		this.artist = artist;
// 		this.title = title;
// 		this.url = url;
// 		this.duration = duration;
// 	}
// 
// 	@Override
// 	public int hashCode() {
// 		return Objects.hashCode(artist, title);
// 	}
// 
// 	@Override
// 	public boolean equals(Object obj) {
// 		if(obj == null)
// 			return false;
// 		if(this == obj)
// 			return true;
// 		if(!(obj instanceof Audio))
// 			return false;
// 		Audio a = (Audio) obj;
// 		return artist.equals(a.artist) && title.equals(a.title);
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return Objects.toStringHelper(this)
// 			.add("artist", artist)
// 			.add("title", title)
// 			.add("url", url)
// 			.toString();
// 	}
// }


// Path: src/main/java/songo/model/streams/RemoteStream.java
import com.google.common.base.Throwables;
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
import com.ning.http.client.*;
import org.slf4j.Logger;
import songo.annotation.BackgroundExecutor;
import songo.logging.InjectLogger;
import songo.vk.Audio;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.util.concurrent.ExecutorService;

package songo.model.streams;



public class RemoteStream implements Stream {
	private final AsyncHttpClient client;
	private final StreamFactory factory;
	private final StreamManager manager;
	private final Audio track;