What does the smack.jar and smacks.jar do in openfire?

Hi, openfire folks

I recently got hands on openfire and quite a rookie on this now. I plan to build a plugin to transfer files from the openfire sever to the xmpp clinents. I looked into the filetransfer package in the org.jivesoftware.openfire and found the openfire server mainly functions as a packet router and proxy. And the negotiation and transferance are mainly done on the xmpp client side (in this case, the smack library). Is that right?

So I decided to implement a plugin mainly for sending files to the clients. To do so, I need to migrate some of the file transfer and socks5 code to the server plugin side. While doing this, I found there are smack.jar and smarkx.jar in the openfire referenced library, but not fully included, like the bytestream package is not there. So could anyone tell me what does these two jars do here?

Moreover, about the openfire server sending file functionality, if you have any advice, I would really appreciate that!

Thanks in advance!

Best

Phil