     
     fileprivate var inputString: String = "" {
         didSet {
-            passwordDotView.inputDotCount = inputString.characters.count
+            #if swift(>=3.2)
+                passwordDotView.inputDotCount = inputString.count
+            #else
+                passwordDotView.inputDotCount = inputString.characters.count
+            #endif
+            
             checkInputComplete()
         }
     }


private extension PasswordContainerView {
    func checkInputComplete() {
        if inputString.characters.count == passwordDotView.totalDotCount {
            delegate?.passwordInputComplete(self, input: inputString)
        }
    }
    func configureVibrancyEffect() {
        let whiteColor = UIColor.white
        let clearColor = UIColor.clear

    
    //MARK: IBAction
    @IBAction func deleteInputString(_ sender: AnyObject) {
        #if swift(>=3.2)
            guard inputString.count > 0 && !passwordDotView.isFull else {
                return
            }
            inputString = String(inputString.dropLast())
        #else
            guard inputString.characters.count > 0 && !passwordDotView.isFull else {
            return
            }
            inputString = String(inputString.characters.dropLast())
        #endif
    }
    
    @IBAction func touchAuthenticationAction(_ sender: UIButton) {
