         }
         return false
     }
+    
+    func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRequireFailureOf otherGestureRecognizer: UIGestureRecognizer) -> Bool {
+        if gestureRecognizer == longPressGesture && otherGestureRecognizer == panGesture {
+            return true
+        }
+        return false
+    }
+    
+    func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldBeRequiredToFailBy otherGestureRecognizer: UIGestureRecognizer) -> Bool {
+        if gestureRecognizer == panGesture && otherGestureRecognizer == longPressGesture {
+            return true
+        }
+        return false
+    }
     /*
     // MARK: - Navigation
 

extension UIView {
    override open func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        super.touchesBegan(touches, with: event)
        print("\(#file)")
    }
}

class DecayAnimationViewController: UIViewController, UIGestureRecognizerDelegate {

    @IBOutlet weak var animatedView: UIView!
    
    override func viewDidLoad() {
        super.viewDidLoad()

    @objc
    private func handleTagGesture(_ genture: UITapGestureRecognizer) {
        _applyImmediateValueOfAnimatedView()
        print("State of tap gesture: \(genture.state.rawValue)")
    }
    
    @objc
    private func handleLongPressGesture(_ genture: UILongPressGestureRecognizer) {
        _applyImmediateValueOfAnimatedView()
        print("State of long press gesture: \(genture.state.rawValue)")
    }
    
    @objc
