class InternalUnlockMain {
    static {
        SingleChronicleQueueBuilder.addAliases();
    }

    public static void main(String[] args) {
        unlock(args[0]);
    }

    private static void unlock(@NotNull String dir) {<FILL_FUNCTION_BODY>}
}

        File path = new File(dir);
        if (!path.isDirectory()) {
            System.err.println("Path argument must be a queue directory");
            System.exit(1);
        }

        File storeFilePath = new File(path, QUEUE_METADATA_FILE);

        if (!storeFilePath.exists()) {
            System.err.println("Metadata file not found, nothing to unlock");
            System.exit(1);
        }

        final TableStore<?> store = SingleTableBuilder.binary(storeFilePath, Metadata.NoMeta.INSTANCE).readOnly(false).build();

        // appender lock
        (new TableStoreWriteLock(store, BusyTimedPauser::new, 0L, TableStoreWriteLock.APPEND_LOCK_KEY)).forceUnlock();

        // write lock
        (new TableStoreWriteLock(store, BusyTimedPauser::new, 0L)).forceUnlock();

        System.out.println("Done");
    
<no_super_class>