| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -202,7 +202,7 @@ private final class EnterPublicKeyVC : UIViewController {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    }()
 | 
					 | 
					 | 
					 | 
					    }()
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    
 | 
					 | 
					 | 
					 | 
					    
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    private lazy var copyButton: Button = {
 | 
					 | 
					 | 
					 | 
					    private lazy var copyButton: Button = {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        let result = Button(style: .unimportant, size: .medium)
 | 
					 | 
					 | 
					 | 
					        let result = Button(style: .prominentOutline, size: .medium)
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        result.setTitle(NSLocalizedString("copy", comment: ""), for: UIControl.State.normal)
 | 
					 | 
					 | 
					 | 
					        result.setTitle(NSLocalizedString("copy", comment: ""), for: UIControl.State.normal)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        result.addTarget(self, action: #selector(copyPublicKey), for: UIControl.Event.touchUpInside)
 | 
					 | 
					 | 
					 | 
					        result.addTarget(self, action: #selector(copyPublicKey), for: UIControl.Event.touchUpInside)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        return result
 | 
					 | 
					 | 
					 | 
					        return result
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -222,9 +222,17 @@ private final class EnterPublicKeyVC : UIViewController {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    private lazy var spacer1 = UIView.spacer(withHeight: Values.largeSpacing)
 | 
					 | 
					 | 
					 | 
					    private lazy var spacer1 = UIView.spacer(withHeight: Values.largeSpacing)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    private lazy var spacer2 = UIView.spacer(withHeight: Values.largeSpacing)
 | 
					 | 
					 | 
					 | 
					    private lazy var spacer2 = UIView.spacer(withHeight: Values.largeSpacing)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    private lazy var spacer3 = UIView.spacer(withHeight: Values.largeSpacing)
 | 
					 | 
					 | 
					 | 
					    private lazy var spacer3 = UIView.spacer(withHeight: Values.largeSpacing)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    private lazy var spacer4 = UIView.spacer(withHeight: Values.largeSpacing)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    
 | 
					 | 
					 | 
					 | 
					    
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    private lazy var separator = Separator(title: NSLocalizedString("your_session_id", comment: ""))
 | 
					 | 
					 | 
					 | 
					    private lazy var separator = Separator(title: NSLocalizedString("your_session_id", comment: ""))
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    
 | 
					 | 
					 | 
					 | 
					    
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    private lazy var qrCodeImageViewContainer: UIView = {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        let result = UIView()
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        result.accessibilityLabel = "Your QR code"
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        result.isAccessibilityElement = true
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        return result
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    }()
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    private lazy var buttonContainer: UIStackView = {
 | 
					 | 
					 | 
					 | 
					    private lazy var buttonContainer: UIStackView = {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        let result = UIStackView()
 | 
					 | 
					 | 
					 | 
					        let result = UIStackView()
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        result.axis = .horizontal
 | 
					 | 
					 | 
					 | 
					        result.axis = .horizontal
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -237,6 +245,24 @@ private final class EnterPublicKeyVC : UIViewController {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        return result
 | 
					 | 
					 | 
					 | 
					        return result
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    }()
 | 
					 | 
					 | 
					 | 
					    }()
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    
 | 
					 | 
					 | 
					 | 
					    
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    private lazy var nextButton: Button = {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        let result = Button(style: .prominentOutline, size: .large)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        result.setTitle(NSLocalizedString("next", comment: ""), for: UIControl.State.normal)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        result.addTarget(self, action: #selector(startNewDMIfPossible), for: UIControl.Event.touchUpInside)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        return result
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    }()
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    private lazy var nextButtonContainer: UIView = {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        let result = UIView(
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            wrapping: nextButton,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            withInsets: UIEdgeInsets(top: 0, leading: 80, bottom: 0, trailing: 80),
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            shouldAdaptForIPadWithWidth: Values.iPadButtonWidth
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        )
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        result.alpha = isKeyboardShowing ? 1 : 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        result.isHidden = !isKeyboardShowing
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        return result
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    }()
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    // MARK: Lifecycle
 | 
					 | 
					 | 
					 | 
					    // MARK: Lifecycle
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    override func viewDidLoad() {
 | 
					 | 
					 | 
					 | 
					    override func viewDidLoad() {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        // Remove background color
 | 
					 | 
					 | 
					 | 
					        // Remove background color
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -251,20 +277,41 @@ private final class EnterPublicKeyVC : UIViewController {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        explanationLabel.numberOfLines = 0
 | 
					 | 
					 | 
					 | 
					        explanationLabel.numberOfLines = 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        explanationLabel.textAlignment = .center
 | 
					 | 
					 | 
					 | 
					        explanationLabel.textAlignment = .center
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        explanationLabel.lineBreakMode = .byWordWrapping
 | 
					 | 
					 | 
					 | 
					        explanationLabel.lineBreakMode = .byWordWrapping
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        // Set up QR code image view
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        let qrCodeImageView = UIImageView()
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        let qrCode = QRCode.generate(for: getUserHexEncodedPublicKey(), hasBackground: true)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        qrCodeImageView.image = qrCode
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        qrCodeImageView.contentMode = .scaleAspectFit
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        qrCodeImageView.set(.height, to: isIPhone5OrSmaller ? 160 : 220)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        qrCodeImageView.set(.width, to: isIPhone5OrSmaller ? 160 : 220)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        // Set up QR code image view container
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        qrCodeImageViewContainer.addSubview(qrCodeImageView)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        qrCodeImageView.center(.horizontal, in: qrCodeImageViewContainer)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        qrCodeImageView.pin(.top, to: .top, of: qrCodeImageViewContainer)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        qrCodeImageView.pin(.bottom, to: .bottom, of: qrCodeImageViewContainer)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        // Share button
 | 
					 | 
					 | 
					 | 
					        // Share button
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        let shareButton = Button(style: .unimportant, size: .medium)
 | 
					 | 
					 | 
					 | 
					        let shareButton = Button(style: .prominentOutline, size: .medium)
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        shareButton.setTitle(NSLocalizedString("share", comment: ""), for: UIControl.State.normal)
 | 
					 | 
					 | 
					 | 
					        shareButton.setTitle(NSLocalizedString("share", comment: ""), for: UIControl.State.normal)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        shareButton.addTarget(self, action: #selector(sharePublicKey), for: UIControl.Event.touchUpInside)
 | 
					 | 
					 | 
					 | 
					        shareButton.addTarget(self, action: #selector(sharePublicKey), for: UIControl.Event.touchUpInside)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        // Button container
 | 
					 | 
					 | 
					 | 
					        // Button container
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        buttonContainer.addArrangedSubview(copyButton)
 | 
					 | 
					 | 
					 | 
					        buttonContainer.addArrangedSubview(copyButton)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        buttonContainer.addArrangedSubview(shareButton)
 | 
					 | 
					 | 
					 | 
					        buttonContainer.addArrangedSubview(shareButton)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        // Next button
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        let nextButton = Button(style: .prominentOutline, size: .large)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        nextButton.setTitle(NSLocalizedString("next", comment: ""), for: UIControl.State.normal)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        nextButton.addTarget(self, action: #selector(startNewDMIfPossible), for: UIControl.Event.touchUpInside)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        let nextButtonContainer = UIView(wrapping: nextButton, withInsets: UIEdgeInsets(top: 0, leading: 80, bottom: 0, trailing: 80), shouldAdaptForIPadWithWidth: Values.iPadButtonWidth)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        // Main stack view
 | 
					 | 
					 | 
					 | 
					        // Main stack view
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        let mainStackView = UIStackView(arrangedSubviews: [ publicKeyTextView, UIView.spacer(withHeight: Values.smallSpacing), explanationLabel, spacer1, separator, spacer2, userPublicKeyContainer, spacer3, buttonContainer, UIView.vStretchingSpacer(), nextButtonContainer ])
 | 
					 | 
					 | 
					 | 
					        let mainStackView = UIStackView(arrangedSubviews: [
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            publicKeyTextView,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            UIView.spacer(withHeight: Values.smallSpacing),
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            explanationLabel,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            spacer1,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            separator,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            spacer2,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            qrCodeImageViewContainer,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            spacer3,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            userPublicKeyContainer,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            spacer4,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            buttonContainer,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            UIView.vStretchingSpacer(),
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            nextButtonContainer
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        ])
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        mainStackView.axis = .vertical
 | 
					 | 
					 | 
					 | 
					        mainStackView.axis = .vertical
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        mainStackView.alignment = .fill
 | 
					 | 
					 | 
					 | 
					        mainStackView.alignment = .fill
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        mainStackView.layoutMargins = UIEdgeInsets(top: Values.largeSpacing, left: Values.largeSpacing, bottom: Values.largeSpacing, right: Values.largeSpacing)
 | 
					 | 
					 | 
					 | 
					        mainStackView.layoutMargins = UIEdgeInsets(top: Values.largeSpacing, left: Values.largeSpacing, bottom: Values.largeSpacing, right: Values.largeSpacing)
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -316,10 +363,12 @@ private final class EnterPublicKeyVC : UIViewController {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        guard let newHeight = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue.size.height else { return }
 | 
					 | 
					 | 
					 | 
					        guard let newHeight = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue.size.height else { return }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        bottomConstraint.constant = newHeight + bottomMargin
 | 
					 | 
					 | 
					 | 
					        bottomConstraint.constant = newHeight + bottomMargin
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        UIView.animate(withDuration: 0.25) {
 | 
					 | 
					 | 
					 | 
					        UIView.animate(withDuration: 0.25) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            [ self.spacer1, self.separator, self.spacer2, self.userPublicKeyLabel, self.spacer3, self.buttonContainer ].forEach {
 | 
					 | 
					 | 
					 | 
					            [ self.spacer1, self.separator, self.spacer2, self.qrCodeImageViewContainer, self.spacer3, self.userPublicKeyLabel, self.spacer4, self.buttonContainer ].forEach {
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                $0.alpha = 0
 | 
					 | 
					 | 
					 | 
					                $0.alpha = 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                $0.isHidden = true
 | 
					 | 
					 | 
					 | 
					                $0.isHidden = true
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            }
 | 
					 | 
					 | 
					 | 
					            }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            self.nextButtonContainer.alpha = 1
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            self.nextButtonContainer.isHidden = false
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            self.view.layoutIfNeeded()
 | 
					 | 
					 | 
					 | 
					            self.view.layoutIfNeeded()
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        }
 | 
					 | 
					 | 
					 | 
					        }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    }
 | 
					 | 
					 | 
					 | 
					    }
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -329,10 +378,12 @@ private final class EnterPublicKeyVC : UIViewController {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        isKeyboardShowing = false
 | 
					 | 
					 | 
					 | 
					        isKeyboardShowing = false
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        bottomConstraint.constant = bottomMargin
 | 
					 | 
					 | 
					 | 
					        bottomConstraint.constant = bottomMargin
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        UIView.animate(withDuration: 0.25) {
 | 
					 | 
					 | 
					 | 
					        UIView.animate(withDuration: 0.25) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            [ self.spacer1, self.separator, self.spacer2, self.userPublicKeyLabel, self.spacer3, self.buttonContainer ].forEach {
 | 
					 | 
					 | 
					 | 
					            [ self.spacer1, self.separator, self.spacer2, self.qrCodeImageViewContainer, self.spacer3, self.userPublicKeyLabel, self.spacer4, self.buttonContainer ].forEach {
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                $0.alpha = 1
 | 
					 | 
					 | 
					 | 
					                $0.alpha = 1
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                $0.isHidden = false
 | 
					 | 
					 | 
					 | 
					                $0.isHidden = false
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            }
 | 
					 | 
					 | 
					 | 
					            }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            self.nextButtonContainer.alpha = 0
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            self.nextButtonContainer.isHidden = true
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            self.view.layoutIfNeeded()
 | 
					 | 
					 | 
					 | 
					            self.view.layoutIfNeeded()
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        }
 | 
					 | 
					 | 
					 | 
					        }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    }
 | 
					 | 
					 | 
					 | 
					    }
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
 
 |