Try {
    # setup
    $rootDrive = (get-location).Drive.Name + ":"
    $pathDeployments = Join-Path -Path "$rootDrive" -ChildPath "Deployments"
    $pathVersion = "1.0.0.0"

    # ffmpeg folder
    $folderFFmpeg = "FFMPEG"

    # redistributable root path
    $pathRedistributable = "$pathDeployments\Install\Redistributable"

    # destination paths
    $pathKiosk = "$pathDeployments\UI\AAT.Genie.Kiosk\$pathVersion"
    $pathStateSimulator = "$pathDeployments\UI\AAT.Genie.Simulator\$pathVersion"
    $pathStateMachineService = "$pathDeployments\Services\StateMachineService\$pathVersion"
    $pathSyncService = "$pathDeployments\Services\SyncService\$pathVersion"
    $pathSyncInstall = "$pathDeployments\Install\Sync\$pathVersion"

    Write-Host -ForegroundColor yellow "`n--- Copy Redistributables ---`n"

    #-------------- FFMPEG --------------

    Write-Host "Distributing FFMPEG files..." -NoNewline

    $path = "$pathRedistributable"

    # kiosk - debug    
    Copy-Item "$path\$folderFFmpeg\*" "$pathKiosk\Debug\$folderFFmpeg" -Force -Recurse
    
    # kiosk - release
    Copy-Item "$path\$folderFFmpeg\*" "$pathKiosk\Release\$folderFFmpeg" -Force -Recurse

    # display state simulator
    Copy-Item "$path\$folderFFmpeg\*" "$pathStateSimulator\$folderFFmpeg" -Force -Recurse

    # state machine service
    Copy-Item "$path\$folderFFmpeg\*" "$pathStateMachineService\$folderFFmpeg" -Force -Recurse

    # sync service
    Copy-Item "$path\$folderFFmpeg\*" "$pathSyncService\$folderFFmpeg" -Force -Recurse

    # sync install
    Copy-Item "$path\$folderFFmpeg\*" "$pathSyncInstall\$folderFFmpeg" -Force -Recurse
  
    Write-Host "done."
}
Catch {
    throw $_.Exception.Message
}