Please solve the programming task below using a self-contained code snippet in a markdown code block.

Given an array of integers arr, return true if we can partition the array into three non-empty parts with equal sums.
Formally, we can partition the array if we can find indexes i + 1 < j with (arr[0] + arr[1] + ... + arr[i] == arr[i + 1] + arr[i + 2] + ... + arr[j - 1] == arr[j] + arr[j + 1] + ... + arr[arr.length - 1])
 
Please complete the following python code precisely:
```python
class Solution:
    def canThreePartsEqualSum(self, arr: List[int]) -> bool:
```