target "dependencies"


maven apache
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "commons-codec"
		artifactId = "commons-codec"
		version = "1.22.1"
	}
	dependency {
		groupId = "org.apache.commons"
		artifactId = "commons-compress"
		version = "1.28.0"
	}
	dependency {
		groupId = "org.apache.commons"
		artifactId = "commons-lang3"
		version = "3.20.0"
	}
	dependency {
		groupId = "commons-io"
		artifactId = "commons-io"
		version = "2.22.0"
	}
	dependency {
		groupId = "commons-logging"
		artifactId = "commons-logging"
		version = "1.4.0"
	}
}

maven args4j
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "args4j"
		artifactId = "args4j"
		version = "2.37"
	}
}

maven assertj
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "org.assertj"
		artifactId = "assertj-core"
		version = "3.27.7"
	}
}

maven bouncycastle
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "org.bouncycastle"
		artifactId = "bcpg-jdk18on"
		version = "1.85"
	}
	dependency {
		groupId = "org.bouncycastle"
		artifactId = "bcprov-jdk18on"
		version = "1.85.2"
	}
	dependency {
		groupId = "org.bouncycastle"
		artifactId = "bcpkix-jdk18on"
		version = "1.85"
	}
	dependency {
		groupId = "org.bouncycastle"
		artifactId = "bcutil-jdk18on"
		version = "1.85"
	}
}

maven bytebuddy
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "net.bytebuddy"
		artifactId = "byte-buddy"
		version = "1.18.12"
	}
	dependency {
		groupId = "net.bytebuddy"
		artifactId = "byte-buddy-agent"
		version = "1.18.12"
	}
}

maven gson
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "com.google.code.gson"
		artifactId = "gson"
		version = "2.14.0"
	}
}

maven hamcrest
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "org.hamcrest"
		artifactId = "hamcrest"
		version = "3.0"
	}
}

maven javaewah
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "com.googlecode.javaewah"
		artifactId = "JavaEWAH"
		version = "1.2.3"
	}
}

maven jetty
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "org.eclipse.jetty.ee11"
		artifactId = "jetty-ee11-servlet"
		version = "12.1.12"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-http"
		version = "12.1.12"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-io"
		version = "12.1.12"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-security"
		version = "12.1.12"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-server"
		version = "12.1.12"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-session"
		version = "12.1.12"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-util"
		version = "12.1.12"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-util-ajax"
		version = "12.1.12"
	}
	dependency {
		groupId = "jakarta.servlet"
		artifactId = "jakarta.servlet-api"
		version = "6.1.0"
	}
}

maven jna
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "net.java.dev.jna"
		artifactId = "jna"
		version = "5.19.1"
	}
	dependency {
		groupId = "net.java.dev.jna"
		artifactId = "jna-platform"
		version = "5.19.1"
	}
}

maven mockito
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "org.mockito"
		artifactId = "mockito-core"
		version = "5.23.0"
	}
}

maven sshd
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "org.apache.sshd"
		artifactId = "sshd-osgi"
		version = "2.19.0"
	}
	dependency {
		groupId = "org.apache.sshd"
		artifactId = "sshd-sftp"
		version = "2.19.0"
	}
}

maven slf4j
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "org.slf4j"
		artifactId = "slf4j-api"
		version = "2.0.18"
	}
	dependency {
		groupId = "org.slf4j"
		artifactId = "slf4j-simple"
		version = "2.0.18"
	}
	dependency {
		groupId = "org.slf4j"
		artifactId = "jcl-over-slf4j"
		version = "2.0.18"
	}
}

maven xz
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "org.tukaani"
		artifactId = "xz"
		version = "1.12"
	}
}