diff --git a/.DS_Store b/.DS_Store
index cf3157b6c369e2bd71d6f12e9c47e7d83e655f1c..5f07804f262af356ef417d73e26aebb21e8b73a3 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/MiniScanner.xcodeproj/project.pbxproj b/MiniScanner.xcodeproj/project.pbxproj
index 08eaf686c985007f1d03659270a987d6b2ab604d..18eb0a60f81005b6bb1fbb78f0804ed34b032cac 100644
--- a/MiniScanner.xcodeproj/project.pbxproj
+++ b/MiniScanner.xcodeproj/project.pbxproj
@@ -84,6 +84,13 @@
 		53CD5F5E2C1505EC0010424B /* UIWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53CD5F5D2C1505EC0010424B /* UIWindow.swift */; };
 		53CD5F612C15A6210010424B /* SettingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53CD5F5F2C15A6210010424B /* SettingViewController.swift */; };
 		53CD5F622C15A6210010424B /* SettingViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 53CD5F602C15A6210010424B /* SettingViewController.xib */; };
+		53EDED962C18387E00DB8DF9 /* TYPageControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 53EDED922C18387E00DB8DF9 /* TYPageControl.m */; };
+		53EDED972C18387E00DB8DF9 /* TYCyclePagerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 53EDED932C18387E00DB8DF9 /* TYCyclePagerView.m */; };
+		53EDED982C18387E00DB8DF9 /* TYCyclePagerTransformLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 53EDED942C18387E00DB8DF9 /* TYCyclePagerTransformLayout.m */; };
+		53EDED9D2C183CDF00DB8DF9 /* BannerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53EDED9C2C183CDF00DB8DF9 /* BannerView.swift */; };
+		53EDED9F2C183CEB00DB8DF9 /* BannerView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 53EDED9E2C183CEB00DB8DF9 /* BannerView.xib */; };
+		53EDEDA32C183FFF00DB8DF9 /* PagerImageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53EDEDA12C183FFF00DB8DF9 /* PagerImageCollectionViewCell.swift */; };
+		53EDEDA42C183FFF00DB8DF9 /* PagerImageCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 53EDEDA22C183FFF00DB8DF9 /* PagerImageCollectionViewCell.xib */; };
 		53F21F8B2C1246AF00172BFC /* AllFolderTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53F21F892C1246AF00172BFC /* AllFolderTableViewCell.swift */; };
 		53F21F8C2C1246AF00172BFC /* AllFolderTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 53F21F8A2C1246AF00172BFC /* AllFolderTableViewCell.xib */; };
 		53F21F912C1248EC00172BFC /* FolderCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53F21F8F2C1248EC00172BFC /* FolderCollectionViewCell.swift */; };
@@ -227,6 +234,17 @@
 		53CD5F5D2C1505EC0010424B /* UIWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIWindow.swift; sourceTree = "<group>"; };
 		53CD5F5F2C15A6210010424B /* SettingViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingViewController.swift; sourceTree = "<group>"; };
 		53CD5F602C15A6210010424B /* SettingViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SettingViewController.xib; sourceTree = "<group>"; };
+		53EDED902C18387E00DB8DF9 /* TYCyclePagerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TYCyclePagerView.h; sourceTree = "<group>"; };
+		53EDED912C18387E00DB8DF9 /* TYCyclePagerTransformLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TYCyclePagerTransformLayout.h; sourceTree = "<group>"; };
+		53EDED922C18387E00DB8DF9 /* TYPageControl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TYPageControl.m; sourceTree = "<group>"; };
+		53EDED932C18387E00DB8DF9 /* TYCyclePagerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TYCyclePagerView.m; sourceTree = "<group>"; };
+		53EDED942C18387E00DB8DF9 /* TYCyclePagerTransformLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TYCyclePagerTransformLayout.m; sourceTree = "<group>"; };
+		53EDED952C18387E00DB8DF9 /* TYPageControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TYPageControl.h; sourceTree = "<group>"; };
+		53EDED992C18392B00DB8DF9 /* MiniScanner_Bridging_Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MiniScanner_Bridging_Header.h; sourceTree = "<group>"; };
+		53EDED9C2C183CDF00DB8DF9 /* BannerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BannerView.swift; sourceTree = "<group>"; };
+		53EDED9E2C183CEB00DB8DF9 /* BannerView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BannerView.xib; sourceTree = "<group>"; };
+		53EDEDA12C183FFF00DB8DF9 /* PagerImageCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PagerImageCollectionViewCell.swift; sourceTree = "<group>"; };
+		53EDEDA22C183FFF00DB8DF9 /* PagerImageCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PagerImageCollectionViewCell.xib; sourceTree = "<group>"; };
 		53F21F892C1246AF00172BFC /* AllFolderTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AllFolderTableViewCell.swift; sourceTree = "<group>"; };
 		53F21F8A2C1246AF00172BFC /* AllFolderTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AllFolderTableViewCell.xib; sourceTree = "<group>"; };
 		53F21F8F2C1248EC00172BFC /* FolderCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FolderCollectionViewCell.swift; sourceTree = "<group>"; };
@@ -503,6 +521,8 @@
 		53BAE0EA2C15E0770072189E /* EditViewController */ = {
 			isa = PBXGroup;
 			children = (
+				53EDED9B2C183CC600DB8DF9 /* CustomViews */,
+				53EDED9A2C183CB600DB8DF9 /* CustomCells */,
 				53BAE0EB2C15E0890072189E /* EditViewController.swift */,
 				53BAE0EC2C15E0890072189E /* EditViewController.xib */,
 			);
@@ -518,6 +538,45 @@
 			path = KNAlert;
 			sourceTree = "<group>";
 		};
+		53EDED8F2C18387E00DB8DF9 /* CyclePagerView */ = {
+			isa = PBXGroup;
+			children = (
+				53EDED902C18387E00DB8DF9 /* TYCyclePagerView.h */,
+				53EDED912C18387E00DB8DF9 /* TYCyclePagerTransformLayout.h */,
+				53EDED922C18387E00DB8DF9 /* TYPageControl.m */,
+				53EDED932C18387E00DB8DF9 /* TYCyclePagerView.m */,
+				53EDED942C18387E00DB8DF9 /* TYCyclePagerTransformLayout.m */,
+				53EDED952C18387E00DB8DF9 /* TYPageControl.h */,
+			);
+			path = CyclePagerView;
+			sourceTree = "<group>";
+		};
+		53EDED9A2C183CB600DB8DF9 /* CustomCells */ = {
+			isa = PBXGroup;
+			children = (
+				53EDEDA02C183FDE00DB8DF9 /* PagerImageCollectionViewCell */,
+			);
+			path = CustomCells;
+			sourceTree = "<group>";
+		};
+		53EDED9B2C183CC600DB8DF9 /* CustomViews */ = {
+			isa = PBXGroup;
+			children = (
+				53EDED9C2C183CDF00DB8DF9 /* BannerView.swift */,
+				53EDED9E2C183CEB00DB8DF9 /* BannerView.xib */,
+			);
+			path = CustomViews;
+			sourceTree = "<group>";
+		};
+		53EDEDA02C183FDE00DB8DF9 /* PagerImageCollectionViewCell */ = {
+			isa = PBXGroup;
+			children = (
+				53EDEDA12C183FFF00DB8DF9 /* PagerImageCollectionViewCell.swift */,
+				53EDEDA22C183FFF00DB8DF9 /* PagerImageCollectionViewCell.xib */,
+			);
+			path = PagerImageCollectionViewCell;
+			sourceTree = "<group>";
+		};
 		53F21F862C12468900172BFC /* CustomCells */ = {
 			isa = PBXGroup;
 			children = (
@@ -662,6 +721,7 @@
 		EC8A9B0C254DC30800F9AF99 /* Supporting Files */ = {
 			isa = PBXGroup;
 			children = (
+				53EDED8F2C18387E00DB8DF9 /* CyclePagerView */,
 				53F21F932C1377B900172BFC /* Fonts */,
 				53014F4B2C11A8E80071CE39 /* CustomWeScan */,
 				EC0CF206254D8BC000888722 /* Assets.xcassets */,
@@ -670,6 +730,7 @@
 				EC0CF208254D8BC000888722 /* LaunchScreen.storyboard */,
 				EC0CF20B254D8BC000888722 /* Info.plist */,
 				53CD5F552C1503150010424B /* BMViewController.swift */,
+				53EDED992C18392B00DB8DF9 /* MiniScanner_Bridging_Header.h */,
 			);
 			path = "Supporting Files";
 			sourceTree = "<group>";
@@ -785,6 +846,7 @@
 				5359841B2C145E55003EB6ED /* DocumentsTableViewCell.xib in Resources */,
 				53014FAD2C11A8E80071CE39 /* rotate.png in Resources */,
 				53014FB02C11A8E80071CE39 /* flashUnavailable@2x.png in Resources */,
+				53EDED9F2C183CEB00DB8DF9 /* BannerView.xib in Resources */,
 				EC702543254E1E7500BE1958 /* WalkthroughViewController.xib in Resources */,
 				535984072C145083003EB6ED /* Poppins-Bold.ttf in Resources */,
 				539D1C872C164F92009DB24A /* CustomTabBarView.xib in Resources */,
@@ -817,6 +879,7 @@
 				53F21F922C1248EC00172BFC /* FolderCollectionViewCell.xib in Resources */,
 				ECA1FAA1254DEA6A0081F00B /* DocumentPreview.storyboard in Resources */,
 				53014FB62C11A8E80071CE39 /* enhance.png in Resources */,
+				53EDEDA42C183FFF00DB8DF9 /* PagerImageCollectionViewCell.xib in Resources */,
 				53014FB42C11A8E80071CE39 /* enhance@3x.png in Resources */,
 				53F21F9D2C1377B900172BFC /* Tajawal-Bold.ttf in Resources */,
 				EC0CF207254D8BC000888722 /* Assets.xcassets in Resources */,
@@ -886,6 +949,7 @@
 				53014F9D2C11A8E80071CE39 /* Array+Utils.swift in Sources */,
 				53CD5F612C15A6210010424B /* SettingViewController.swift in Sources */,
 				53014FAA2C11A8E80071CE39 /* Quadrilateral.swift in Sources */,
+				53EDED982C18387E00DB8DF9 /* TYCyclePagerTransformLayout.m in Sources */,
 				53014FA42C11A8E80071CE39 /* EditScanViewController.swift in Sources */,
 				EC8A9B1A254DCE3E00F9AF99 /* UIImage+Extensions.swift in Sources */,
 				53014FB72C11A8E80071CE39 /* CaptureDevice.swift in Sources */,
@@ -918,13 +982,16 @@
 				EC8A9B03254DC08800F9AF99 /* NSNotification+Extensions.swift in Sources */,
 				5359841A2C145E55003EB6ED /* DocumentsTableViewCell.swift in Sources */,
 				EC702522254DF13200BE1958 /* PencilKitViewController.swift in Sources */,
+				53EDED972C18387E00DB8DF9 /* TYCyclePagerView.m in Sources */,
 				53014F902C11A8E80071CE39 /* CaptureSessionManager.swift in Sources */,
 				ECA1FAA4254DEB140081F00B /* CustomPDFView.swift in Sources */,
 				53014FA32C11A8E80071CE39 /* ZoomGestureController.swift in Sources */,
+				53EDED962C18387E00DB8DF9 /* TYPageControl.m in Sources */,
 				EC70252A254E066400BE1958 /* SettingsViewController+Safari.swift in Sources */,
 				53014F9B2C11A8E80071CE39 /* CGAffineTransform+Utils.swift in Sources */,
 				53014FBC2C11A8E80071CE39 /* CaptureSession.swift in Sources */,
 				EC702542254E1E7500BE1958 /* ClassicWalkthroughViewController.swift in Sources */,
+				53EDED9D2C183CDF00DB8DF9 /* BannerView.swift in Sources */,
 				53014F922C11A8E80071CE39 /* ScannedItemRenderer.swift in Sources */,
 				EC8A9B14254DC9D300F9AF99 /* LocalFileManager.swift in Sources */,
 				53014FBA2C11A8E80071CE39 /* CaptureSession+Flash.swift in Sources */,
@@ -951,6 +1018,7 @@
 				53F21F912C1248EC00172BFC /* FolderCollectionViewCell.swift in Sources */,
 				ECD43ED625A7BA9500B5A3F2 /* ThemeManager.swift in Sources */,
 				53014F9C2C11A8E80071CE39 /* CGRect+Utils.swift in Sources */,
+				53EDEDA32C183FFF00DB8DF9 /* PagerImageCollectionViewCell.swift in Sources */,
 				53014FA12C11A8E80071CE39 /* MultiPageScanSessionViewController.swift in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -1108,17 +1176,23 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 6;
+				CURRENT_PROJECT_VERSION = 1;
 				DEVELOPMENT_TEAM = 5L95SU3SLS;
 				INFOPLIST_FILE = "MiniScanner/Supporting Files/Info.plist";
+				INFOPLIST_KEY_CFBundleDisplayName = BeezScanner123;
+				INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.business";
 				IPHONEOS_DEPLOYMENT_TARGET = 15.0;
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",
 					"@executable_path/Frameworks",
 				);
-				MARKETING_VERSION = 1.0.3;
-				PRODUCT_BUNDLE_IDENTIFIER = com.mistergrizzly.MiniScanner;
+				MARKETING_VERSION = 1;
+				PRODUCT_BUNDLE_IDENTIFIER = com.be.beinScanner1234512sdf;
 				PRODUCT_NAME = "$(TARGET_NAME)";
+				SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
+				SUPPORTS_MACCATALYST = NO;
+				SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
+				SWIFT_OBJC_BRIDGING_HEADER = "MiniScanner/Supporting Files/MiniScanner_Bridging_Header.h";
 				SWIFT_VERSION = 5.0;
 				TARGETED_DEVICE_FAMILY = "1,2";
 			};
@@ -1131,17 +1205,23 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 6;
+				CURRENT_PROJECT_VERSION = 1;
 				DEVELOPMENT_TEAM = 5L95SU3SLS;
 				INFOPLIST_FILE = "MiniScanner/Supporting Files/Info.plist";
+				INFOPLIST_KEY_CFBundleDisplayName = BeezScanner123;
+				INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.business";
 				IPHONEOS_DEPLOYMENT_TARGET = 15.0;
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",
 					"@executable_path/Frameworks",
 				);
-				MARKETING_VERSION = 1.0.3;
-				PRODUCT_BUNDLE_IDENTIFIER = com.mistergrizzly.MiniScanner;
+				MARKETING_VERSION = 1;
+				PRODUCT_BUNDLE_IDENTIFIER = com.be.beinScanner1234512sdf;
 				PRODUCT_NAME = "$(TARGET_NAME)";
+				SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
+				SUPPORTS_MACCATALYST = NO;
+				SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
+				SWIFT_OBJC_BRIDGING_HEADER = "MiniScanner/Supporting Files/MiniScanner_Bridging_Header.h";
 				SWIFT_VERSION = 5.0;
 				TARGETED_DEVICE_FAMILY = "1,2";
 			};
diff --git a/MiniScanner.xcodeproj/xcuserdata/g.makhoul.xcuserdatad/xcschemes/xcschememanagement.plist b/MiniScanner.xcodeproj/xcuserdata/g.makhoul.xcuserdatad/xcschemes/xcschememanagement.plist
index 31765b87a8fb636051bde0ad95bede231a7732a3..3efba6c8f2248a00a4e7e15d0b784416f0d27c9b 100644
--- a/MiniScanner.xcodeproj/xcuserdata/g.makhoul.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/MiniScanner.xcodeproj/xcuserdata/g.makhoul.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -7,7 +7,7 @@
 		<key>MiniScanner.xcscheme_^#shared#^_</key>
 		<dict>
 			<key>orderHint</key>
-			<integer>7</integer>
+			<integer>8</integer>
 		</dict>
 	</dict>
 </dict>
diff --git a/MiniScanner.xcworkspace/xcuserdata/g.makhoul.xcuserdatad/UserInterfaceState.xcuserstate b/MiniScanner.xcworkspace/xcuserdata/g.makhoul.xcuserdatad/UserInterfaceState.xcuserstate
index 8f4b5f5bb31ab6562c860d9833ecb5dc0bb7cc26..b2ebd399960c4c4d533a4b210850774cc9704bd1 100644
Binary files a/MiniScanner.xcworkspace/xcuserdata/g.makhoul.xcuserdatad/UserInterfaceState.xcuserstate and b/MiniScanner.xcworkspace/xcuserdata/g.makhoul.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/MiniScanner/.DS_Store b/MiniScanner/.DS_Store
index acf156a5b4057310c05955f3ceb8d582dcd6e107..b70afdd5908417f48436ff71e03f67913f48e0de 100644
Binary files a/MiniScanner/.DS_Store and b/MiniScanner/.DS_Store differ
diff --git a/MiniScanner/Modules/Documents/CustomViews/CustomTabBarView/CustomTabBarView.swift b/MiniScanner/Modules/Documents/CustomViews/CustomTabBarView/CustomTabBarView.swift
index 10553e7f5df1cb7478bc2717d19e9248ee546ee1..3b490e47bd10103abdcdab96f8bf66463a759283 100644
--- a/MiniScanner/Modules/Documents/CustomViews/CustomTabBarView/CustomTabBarView.swift
+++ b/MiniScanner/Modules/Documents/CustomViews/CustomTabBarView/CustomTabBarView.swift
@@ -23,6 +23,7 @@ class CustomTabBarView: UIView {
     @IBOutlet weak var badgeView: UIView!
     @IBOutlet weak var badgeLabel: UILabel!
     @IBOutlet weak var scannedImageView: UIView!
+    @IBOutlet weak var tabbarImage: UIImageView!
     
     // MARK: - Properties
     var delegate: CustomTabBarViewDelegate?
@@ -54,6 +55,8 @@ class CustomTabBarView: UIView {
         editImageView.backgroundColor = .buttonsBlue
         badgeView.layer.cornerRadius = 10
         badgeView.backgroundColor = .red
+        
+        tabbarImage.image = UIDevice.current.userInterfaceIdiom == .pad ? UIImage(named: "tabbarIpad") : UIImage(named: "tabBar")
     }
     
     func updateScannedView(session: MultiPageScanSession!) {
diff --git a/MiniScanner/Modules/Documents/CustomViews/CustomTabBarView/CustomTabBarView.xib b/MiniScanner/Modules/Documents/CustomViews/CustomTabBarView/CustomTabBarView.xib
index f0c3a9b87d056fb941e26d1ca7da2f49e590135d..c5ffe6e1d571d932393ba38d7a4270e703402a7f 100644
--- a/MiniScanner/Modules/Documents/CustomViews/CustomTabBarView/CustomTabBarView.xib
+++ b/MiniScanner/Modules/Documents/CustomViews/CustomTabBarView/CustomTabBarView.xib
@@ -18,6 +18,7 @@
                 <outlet property="editImageView" destination="hyG-kY-g3z" id="0jt-Qd-fPh"/>
                 <outlet property="scannedImage" destination="Yp4-oH-9PB" id="BgP-9x-8xW"/>
                 <outlet property="scannedImageView" destination="nU5-gk-PCy" id="Ufk-QS-iDQ"/>
+                <outlet property="tabbarImage" destination="tie-Je-CCG" id="QTQ-UN-xRH"/>
                 <outlet property="view" destination="iN0-l3-epB" id="Cdo-uE-Do3"/>
             </connections>
         </placeholder>
@@ -168,12 +169,12 @@
                 <constraint firstItem="tie-Je-CCG" firstAttribute="top" secondItem="hyG-kY-g3z" secondAttribute="bottom" constant="40" id="3V7-s3-PHj"/>
                 <constraint firstAttribute="bottom" secondItem="UTH-SE-R2z" secondAttribute="bottom" constant="27" id="5dC-i0-b3F"/>
                 <constraint firstItem="tie-Je-CCG" firstAttribute="leading" secondItem="vUN-kp-3ea" secondAttribute="leading" id="Bce-XC-xXN"/>
+                <constraint firstItem="bLE-0g-490" firstAttribute="centerX" secondItem="tie-Je-CCG" secondAttribute="centerX" id="HfA-Uv-S9g"/>
                 <constraint firstAttribute="bottom" secondItem="bLE-0g-490" secondAttribute="bottom" constant="56" id="JjB-n8-7Pb"/>
                 <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="nU5-gk-PCy" secondAttribute="trailing" constant="30" id="OG0-GS-N4g"/>
                 <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="tie-Je-CCG" secondAttribute="trailing" id="TOJ-ZY-MNC"/>
                 <constraint firstAttribute="bottom" secondItem="Fpi-N4-SyY" secondAttribute="bottom" constant="27" id="clP-UO-xXh"/>
                 <constraint firstAttribute="bottom" secondItem="tie-Je-CCG" secondAttribute="bottom" id="dRT-MU-hlj"/>
-                <constraint firstItem="bLE-0g-490" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="eHN-D7-uvx"/>
                 <constraint firstItem="Qnz-ei-Dxj" firstAttribute="top" secondItem="ByX-8g-Wtl" secondAttribute="top" constant="-10" id="fdw-Gt-POV"/>
                 <constraint firstItem="Qnz-ei-Dxj" firstAttribute="trailing" secondItem="ByX-8g-Wtl" secondAttribute="trailing" constant="10" id="lKF-kQ-ADQ"/>
                 <constraint firstItem="tie-Je-CCG" firstAttribute="top" secondItem="nU5-gk-PCy" secondAttribute="bottom" constant="35" id="rpo-up-sEz"/>
diff --git a/MiniScanner/Modules/EditViewController/CustomCells/PagerImageCollectionViewCell/PagerImageCollectionViewCell.swift b/MiniScanner/Modules/EditViewController/CustomCells/PagerImageCollectionViewCell/PagerImageCollectionViewCell.swift
new file mode 100644
index 0000000000000000000000000000000000000000..ea9c7aed9450537cb10906da64f6e51d5e5f2867
--- /dev/null
+++ b/MiniScanner/Modules/EditViewController/CustomCells/PagerImageCollectionViewCell/PagerImageCollectionViewCell.swift
@@ -0,0 +1,29 @@
+//
+//  PagerImageCollectionViewCell.swift
+//  MiniScanner
+//
+//  Created by George Makhoul on 11/06/2024.
+//  Copyright © 2024 AppsNectar. All rights reserved.
+//
+
+import UIKit
+import FSPagerView
+class PagerImageCollectionViewCell: UICollectionViewCell {
+    // MARK: - Outlets
+    @IBOutlet weak var cellImageView: UIImageView!
+    
+    // MARK: - Properties
+    var page: ScannedItem? {
+        didSet {
+            guard let cellImageView = cellImageView else { return }
+            cellImageView.image = page?.renderedImage?.retrieveImage()
+            cellImageView.contentMode = .scaleToFill
+            cellImageView.autoresizingMask = [.flexibleWidth, .flexibleHeight, .flexibleBottomMargin, .flexibleRightMargin, .flexibleLeftMargin, .flexibleTopMargin]
+        }
+    }
+    
+    // MARK: - LifeCycle
+    override func awakeFromNib() {
+        super.awakeFromNib()
+    }
+}
diff --git a/MiniScanner/Modules/EditViewController/CustomCells/PagerImageCollectionViewCell/PagerImageCollectionViewCell.xib b/MiniScanner/Modules/EditViewController/CustomCells/PagerImageCollectionViewCell/PagerImageCollectionViewCell.xib
new file mode 100644
index 0000000000000000000000000000000000000000..5fa06691b11e37b20892483ddf90f25fcd31939a
--- /dev/null
+++ b/MiniScanner/Modules/EditViewController/CustomCells/PagerImageCollectionViewCell/PagerImageCollectionViewCell.xib
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22155" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22131"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="PagerImageCollectionViewCell" id="gTV-IL-0wX" customClass="PagerImageCollectionViewCell" customModule="MiniScanner" customModuleProvider="target">
+            <rect key="frame" x="0.0" y="0.0" width="436" height="666"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
+                <rect key="frame" x="0.0" y="0.0" width="436" height="666"/>
+                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                <subviews>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="W4u-LT-1Cf">
+                        <rect key="frame" x="20" y="0.0" width="396" height="666"/>
+                    </imageView>
+                </subviews>
+            </view>
+            <viewLayoutGuide key="safeArea" id="ZTg-uK-7eu"/>
+            <constraints>
+                <constraint firstItem="W4u-LT-1Cf" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" constant="20" id="2Kd-iV-l2K"/>
+                <constraint firstItem="W4u-LT-1Cf" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="Ucl-LD-RMN"/>
+                <constraint firstAttribute="bottom" secondItem="W4u-LT-1Cf" secondAttribute="bottom" id="Zmv-wC-TfB"/>
+                <constraint firstAttribute="trailing" secondItem="W4u-LT-1Cf" secondAttribute="trailing" constant="20" id="eJS-yD-UJc"/>
+            </constraints>
+            <size key="customSize" width="436" height="666"/>
+            <connections>
+                <outlet property="cellImageView" destination="W4u-LT-1Cf" id="6gN-JG-0d7"/>
+            </connections>
+            <point key="canvasLocation" x="134.35114503816794" y="-3.5211267605633805"/>
+        </collectionViewCell>
+    </objects>
+</document>
diff --git a/MiniScanner/Modules/EditViewController/CustomViews/BannerView.swift b/MiniScanner/Modules/EditViewController/CustomViews/BannerView.swift
new file mode 100644
index 0000000000000000000000000000000000000000..a6feec94b9f18dbd759cb9adc6bd6361e8c4ed72
--- /dev/null
+++ b/MiniScanner/Modules/EditViewController/CustomViews/BannerView.swift
@@ -0,0 +1,140 @@
+//
+//  BannerView.swift
+//  MiniScanner
+//
+//  Created by George Makhoul on 11/06/2024.
+//  Copyright © 2024 AppsNectar. All rights reserved.
+//
+
+import UIKit
+import FSPagerView
+
+protocol BannerViewDelegate {
+    func updateSelectedIndex(index: Int)
+}
+
+class BannerView: UIView {
+    // MARK: - Outlets
+    @IBOutlet var view: UIView!
+    @IBOutlet weak var pagerView: FSPagerView!{
+        didSet {
+            self.pagerView.register(FSPagerViewCell.self, forCellWithReuseIdentifier: "cell")
+            self.typeIndex = 3
+            pagerView.dataSource = self
+            pagerView.delegate = self
+            
+        }
+    }
+    
+    fileprivate let transformerTypes: [FSPagerViewTransformerType] = [.crossFading,
+                                                                      .zoomOut,
+                                                                      .depth,
+                                                                      .linear,
+                                                                      .overlap,
+                                                                      .ferrisWheel,
+                                                                      .invertedFerrisWheel,
+                                                                      .coverFlow,
+                                                                      .cubic]
+    
+    fileprivate var typeIndex = 0 {
+        didSet {
+            let type = self.transformerTypes[typeIndex]
+            self.pagerView.transformer = FSPagerViewTransformer(type:type)
+            switch type {
+            case .crossFading, .zoomOut, .depth:
+                self.pagerView.itemSize = FSPagerView.automaticSize
+                self.pagerView.decelerationDistance = 1
+            case .linear, .overlap:
+                let transform = CGAffineTransform(scaleX: 0.8, y: 0.75)
+                self.pagerView.itemSize = self.pagerView.frame.size.applying(transform)
+                self.pagerView.decelerationDistance = FSPagerView.automaticDistance
+            case .ferrisWheel, .invertedFerrisWheel:
+                self.pagerView.itemSize = CGSize(width: 180, height: 140)
+                self.pagerView.decelerationDistance = FSPagerView.automaticDistance
+            case .coverFlow:
+                self.pagerView.itemSize = CGSize(width: 220, height: 170)
+                self.pagerView.decelerationDistance = FSPagerView.automaticDistance
+            case .cubic:
+                let transform = CGAffineTransform(scaleX: 0.9, y: 0.9)
+                self.pagerView.itemSize = self.pagerView.frame.size.applying(transform)
+                self.pagerView.decelerationDistance = 1
+            }
+        }
+    }
+    var delegate: BannerViewDelegate?
+    
+    // MARK: - Properties
+    
+    var scanSession:MultiPageScanSession?
+    
+    
+    // MARK: - Init
+    override init(frame: CGRect) {
+        super.init(frame: frame)
+        setupNib()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        super.init(coder: aDecoder)
+        
+        setupNib()
+    }
+    
+    private func setupNib() {
+        Bundle.main.loadNibNamed("BannerView", owner: self, options: nil)
+        
+        view.frame = bounds
+        view.autoresizingMask = [.flexibleHeight, .flexibleWidth]
+        
+        addSubview(view)
+        clearUI()
+    }
+    
+    override func layoutSubviews() {
+        super.layoutSubviews()
+        
+        clearUI()
+    }
+    
+    // MARK: - Methods
+    private func clearUI() {
+        view.backgroundColor = .clear
+        
+    }
+    
+    
+    
+    func set(session: MultiPageScanSession) {
+        self.scanSession = session
+        clearUI()
+    }
+    
+}
+
+
+extension BannerView: FSPagerViewDataSource,FSPagerViewDelegate {
+    func numberOfItems(in pagerView: FSPagerView) -> Int {
+        scanSession?.scannedItems.count ?? 0
+    }
+    func pagerView(_ pagerView: FSPagerView, cellForItemAt index: Int) -> FSPagerViewCell {
+        let cell = pagerView.dequeueReusableCell(withReuseIdentifier: "cell", at: index)
+        cell.index = index
+        cell.delegate = self
+        if let item = scanSession?.scannedItems[index] {
+            cell.imageView?.image = item.renderedImage?.retrieveImage()
+        }
+        return cell
+    }
+    
+    func pagerViewWillEndDragging(_ pagerView: FSPagerView, targetIndex: Int) {
+        delegate?.updateSelectedIndex(index: targetIndex)
+    }
+    
+}
+
+extension BannerView: FSPagerViewCellDelegate {
+    func delete(at: Int) {
+        scanSession?.remove(index: at)
+        pagerView.reloadData()
+    }
+}
diff --git a/MiniScanner/Modules/EditViewController/CustomViews/BannerView.xib b/MiniScanner/Modules/EditViewController/CustomViews/BannerView.xib
new file mode 100644
index 0000000000000000000000000000000000000000..e6de6b7f598157416ae3212aea485db6f5acadf3
--- /dev/null
+++ b/MiniScanner/Modules/EditViewController/CustomViews/BannerView.xib
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22155" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22131"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="BannerView" customModule="MiniScanner" customModuleProvider="target">
+            <connections>
+                <outlet property="pagerView" destination="Qub-hE-fqd" id="DDB-71-UhP"/>
+                <outlet property="view" destination="iN0-l3-epB" id="Xaw-3Z-gtB"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB">
+            <rect key="frame" x="0.0" y="0.0" width="393" height="645"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Qub-hE-fqd" customClass="FSPagerView" customModule="FSPagerView">
+                    <rect key="frame" x="0.0" y="0.0" width="393" height="645"/>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                </view>
+            </subviews>
+            <viewLayoutGuide key="safeArea" id="vUN-kp-3ea"/>
+            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+            <constraints>
+                <constraint firstAttribute="bottom" secondItem="Qub-hE-fqd" secondAttribute="bottom" id="Azg-vd-VaB"/>
+                <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="Qub-hE-fqd" secondAttribute="trailing" id="NhM-Yt-UOY"/>
+                <constraint firstItem="Qub-hE-fqd" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="SP0-Gq-ams"/>
+                <constraint firstItem="Qub-hE-fqd" firstAttribute="leading" secondItem="vUN-kp-3ea" secondAttribute="leading" id="U0s-Q8-eFt"/>
+            </constraints>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <point key="canvasLocation" x="-11.450381679389313" y="-53.169014084507047"/>
+        </view>
+    </objects>
+    <resources>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>
diff --git a/MiniScanner/Modules/EditViewController/EditViewController.swift b/MiniScanner/Modules/EditViewController/EditViewController.swift
index e87eaa27a4f6c71d56e76bd4afe468e3dcfe2936..05b09ec0662173eebaf5c7765244e95b394e6d09 100644
--- a/MiniScanner/Modules/EditViewController/EditViewController.swift
+++ b/MiniScanner/Modules/EditViewController/EditViewController.swift
@@ -7,19 +7,67 @@
 //
 
 import UIKit
+import LNExtensionExecutor
+
 public protocol EditViewControllerDelegate: NSObjectProtocol {
     func editViewController(_ editViewController: EditViewController, finished session: MultiPageScanSession)
 }
 
 public class EditViewController: UIViewController {
+    // MARK: - Outlets
+    @IBOutlet weak var banner: BannerView!
+    @IBOutlet weak var pageIndex: UILabel!
     
-    private var scanSession:MultiPageScanSession
+    // MARK: - Properties
+    private var scanSession:MultiPageScanSession?
     private var pages:Array<ScannedPageViewController> = []
-    
     weak public var delegate:EditViewControllerDelegate?
-
+    private var selectedIndex: Int = 0
+    var payload: [Any] = []
+    
+    lazy private var activityIndicator: UIActivityIndicatorView = {
+        let activityIndicator = UIActivityIndicatorView(style: .large)
+        activityIndicator.color = .white
+        activityIndicator.hidesWhenStopped = true
+        activityIndicator.translatesAutoresizingMaskIntoConstraints = false
+        return activityIndicator
+    }()
+    
+    // MARK: - LifeCycle
     public override func viewDidLoad() {
         super.viewDidLoad()
+        if let session = scanSession {
+            banner.set(session: session)
+            banner.delegate = self
+            updatePageLabel()
+        }
+        view.addSubview(activityIndicator)
+    }
+    
+    @IBAction func backIndex(_ sender: UIButton) {
+        if banner.pagerView.currentIndex != 0 {
+            banner.pagerView.scrollToItem(at: banner.pagerView.currentIndex - 1, animated: true)
+            selectedIndex = banner.pagerView.currentIndex - 1
+            self.updatePageLabel()
+        }
+    }
+    
+    func updatePageLabel() {
+        if let session = scanSession {
+            if let url = session.scannedItems[selectedIndex].renderedImage {
+                payload = [url]
+            }
+            pageIndex.set(text: "\(selectedIndex + 1)/\(session.scannedItems.count)", color: .mainText, font: .regular(15))
+            pageIndex.textAlignment = .center
+        }
+    }
+    
+    @IBAction func nextIndex(_ sender: UIButton) {
+        if banner.pagerView.currentIndex != (scanSession?.scannedItems.count ?? 0) - 1 {
+            banner.pagerView.scrollToItem(at: banner.pagerView.currentIndex + 1, animated: true)
+            selectedIndex = banner.pagerView.currentIndex + 1
+        }
+        updatePageLabel()
     }
     
     public init(scanSession: MultiPageScanSession){
@@ -30,4 +78,83 @@ public class EditViewController: UIViewController {
     required init?(coder aDecoder: NSCoder) {
         fatalError("init(coder:) should not be called for this class")
     }
+    
+    private func directShareWith(extensionBundleIdentifier: String) async {
+        do {
+            let executor = try LNExtensionExecutor(extensionBundleIdentifier: extensionBundleIdentifier)
+            let (completed, returnItems) = try await executor.execute(withActivityItems: payload, on: self)
+            print("completed: \(completed) return items: \(returnItems)")
+            
+        } catch(let error) {
+            print("error: \(error.localizedDescription)")
+        }
+    }
+    
+    func printPDF(from url: URL) {
+        let printInfo = UIPrintInfo(dictionary:nil)
+        printInfo.jobName = url.lastPathComponent
+        printInfo.outputType = .general
+        
+        let printController = UIPrintInteractionController.shared
+        printController.printInfo = printInfo
+        
+        let pdfData = try? Data(contentsOf: url)
+        if pdfData != nil {
+            printController.printingItem = pdfData
+        }
+        
+        printController.present(animated: true, completionHandler: nil)
+    }
+    
+    @IBAction func whatsappShare(_ sender: UIButton) {
+        activityIndicator.startAnimating()
+        DispatchQueue.main.async {
+            
+            Task {
+                await self.directShareWith(extensionBundleIdentifier: ShareOptions.whatsapp)
+            }
+            self.activityIndicator.stopAnimating()
+        }
+    }
+    @IBAction func telegramTapped(_ sender: UIButton) {
+        activityIndicator.startAnimating()
+        DispatchQueue.main.async {
+            
+            Task {
+                await self.directShareWith(extensionBundleIdentifier: ShareOptions.telegram)
+            }
+            self.activityIndicator.stopAnimating()
+        }
+    }
+    @IBAction func gmailTapped(_ sender: UIButton) {
+        activityIndicator.startAnimating()
+        DispatchQueue.main.async {
+            Task {
+                await self.directShareWith(extensionBundleIdentifier: ShareOptions.gmail)
+                self.activityIndicator.stopAnimating()
+            }
+        }
+    }
+    @IBAction func printTapped(_ sender: UIButton) {
+        DispatchQueue.main.async {
+            self.printPDF(from: self.payload[0] as! URL)
+        }
+    }
+    @IBAction func moreTapped(_ sender: UIButton) {
+        DispatchQueue.main.async {
+            self.activityIndicator.startAnimating()
+            let shareController = UIActivityViewController(activityItems: self.payload, applicationActivities: nil)
+            self.present(shareController, animated: true, completion: nil)
+            self.activityIndicator.stopAnimating()
+        }
+
+    }
+}
+
+// MARK: - BannerViewDelegate
+extension EditViewController: BannerViewDelegate {
+    func updateSelectedIndex(index: Int) {
+        selectedIndex = index
+        updatePageLabel()
+    }
 }
diff --git a/MiniScanner/Modules/EditViewController/EditViewController.xib b/MiniScanner/Modules/EditViewController/EditViewController.xib
index 43e098ff4a45e4a067179b52b2c88e8bf9e2bc26..a3a7a237a59bbb5481ba3cb6362863c921729848 100644
--- a/MiniScanner/Modules/EditViewController/EditViewController.xib
+++ b/MiniScanner/Modules/EditViewController/EditViewController.xib
@@ -1,22 +1,193 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13142" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22155" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
     <dependencies>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12042"/>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22131"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
+    <customFonts key="customFonts">
+        <array key="Poppins-Medium.ttf">
+            <string>Poppins-Medium</string>
+        </array>
+    </customFonts>
     <objects>
-        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="EditViewController" customModuleProvider="target">
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="EditViewController" customModule="MiniScanner" customModuleProvider="target">
             <connections>
+                <outlet property="banner" destination="4ep-ST-cZS" id="WFR-ov-H7F"/>
+                <outlet property="pageIndex" destination="cqF-h7-7PR" id="KbK-o3-cPN"/>
                 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
             </connections>
         </placeholder>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
         <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
-            <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+            <rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-            <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4ep-ST-cZS" customClass="BannerView" customModule="MiniScanner" customModuleProvider="target">
+                    <rect key="frame" x="0.0" y="85" width="393" height="450"/>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="450" id="Lhx-9u-ceN"/>
+                    </constraints>
+                </view>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7Fw-PR-xtE">
+                    <rect key="frame" x="114.66666666666669" y="560" width="164" height="40"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="controller" translatesAutoresizingMaskIntoConstraints="NO" id="c82-Cp-Eo4">
+                            <rect key="frame" x="0.0" y="0.0" width="164" height="40"/>
+                        </imageView>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Zhd-7n-Vkh">
+                            <rect key="frame" x="124" y="0.0" width="40" height="40"/>
+                            <constraints>
+                                <constraint firstAttribute="width" constant="40" id="D2f-5b-aZ8"/>
+                            </constraints>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <connections>
+                                <action selector="nextIndex:" destination="-1" eventType="touchUpInside" id="nrV-wN-1Ee"/>
+                            </connections>
+                        </button>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="3Oy-6E-tPl">
+                            <rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
+                            <constraints>
+                                <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="40" id="9KN-fb-pri"/>
+                                <constraint firstAttribute="width" constant="40" id="cEO-Jw-nEj"/>
+                            </constraints>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <connections>
+                                <action selector="backIndex:" destination="-1" eventType="touchUpInside" id="F5u-ng-VjG"/>
+                            </connections>
+                        </button>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1/4" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cqF-h7-7PR">
+                            <rect key="frame" x="39.999999999999986" y="0.0" width="84" height="40"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                            <nil key="textColor"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                    </subviews>
+                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    <constraints>
+                        <constraint firstAttribute="bottom" secondItem="c82-Cp-Eo4" secondAttribute="bottom" id="2d1-bT-5EI"/>
+                        <constraint firstAttribute="trailing" secondItem="Zhd-7n-Vkh" secondAttribute="trailing" id="6bp-EB-meP"/>
+                        <constraint firstItem="c82-Cp-Eo4" firstAttribute="leading" secondItem="7Fw-PR-xtE" secondAttribute="leading" id="7RC-iT-Vf0"/>
+                        <constraint firstItem="cqF-h7-7PR" firstAttribute="leading" secondItem="3Oy-6E-tPl" secondAttribute="trailing" id="AcI-Y9-IDO"/>
+                        <constraint firstItem="cqF-h7-7PR" firstAttribute="top" secondItem="7Fw-PR-xtE" secondAttribute="top" id="C93-5G-WCi"/>
+                        <constraint firstAttribute="bottom" secondItem="Zhd-7n-Vkh" secondAttribute="bottom" id="Fja-AQ-xAx"/>
+                        <constraint firstItem="Zhd-7n-Vkh" firstAttribute="leading" secondItem="cqF-h7-7PR" secondAttribute="trailing" id="JcD-p2-dle"/>
+                        <constraint firstAttribute="bottom" secondItem="3Oy-6E-tPl" secondAttribute="bottom" id="K3T-J0-1FG"/>
+                        <constraint firstAttribute="trailing" secondItem="c82-Cp-Eo4" secondAttribute="trailing" id="KLD-VS-7QQ"/>
+                        <constraint firstItem="c82-Cp-Eo4" firstAttribute="top" secondItem="7Fw-PR-xtE" secondAttribute="top" id="LZd-UJ-Q5J"/>
+                        <constraint firstAttribute="bottom" secondItem="cqF-h7-7PR" secondAttribute="bottom" id="Vgb-dH-wi7"/>
+                        <constraint firstItem="Zhd-7n-Vkh" firstAttribute="top" secondItem="7Fw-PR-xtE" secondAttribute="top" id="Xgg-ot-aB7"/>
+                        <constraint firstAttribute="height" constant="40" id="ZQj-Kc-ocN"/>
+                        <constraint firstItem="3Oy-6E-tPl" firstAttribute="top" secondItem="7Fw-PR-xtE" secondAttribute="top" id="bWU-NK-37l"/>
+                        <constraint firstAttribute="width" constant="164" id="gr9-CY-nP7"/>
+                        <constraint firstItem="3Oy-6E-tPl" firstAttribute="leading" secondItem="7Fw-PR-xtE" secondAttribute="leading" id="x7d-hj-T82"/>
+                    </constraints>
+                </view>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="s7Z-Yw-lu7">
+                    <rect key="frame" x="0.0" y="637" width="393" height="1"/>
+                    <color key="backgroundColor" red="0.39215686274509803" green="0.39215686274509803" blue="0.39215686274509803" alpha="1" colorSpace="calibratedRGB"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="1" id="b33-Z4-kSQ"/>
+                    </constraints>
+                </view>
+                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Direct Share" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Kl7-O6-xwc">
+                    <rect key="frame" x="147.33333333333334" y="650" width="98.333333333333343" height="22.666666666666629"/>
+                    <fontDescription key="fontDescription" name="Poppins-Medium" family="Poppins" pointSize="16"/>
+                    <nil key="textColor"/>
+                    <nil key="highlightedColor"/>
+                </label>
+                <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="12.5" translatesAutoresizingMaskIntoConstraints="NO" id="ZwN-3q-O93">
+                    <rect key="frame" x="51.666666666666657" y="687.66666666666663" width="290" height="48"/>
+                    <subviews>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fla-g2-Pdd">
+                            <rect key="frame" x="0.0" y="0.0" width="47.666666666666664" height="48"/>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <state key="normal" image="more"/>
+                            <connections>
+                                <action selector="moreTapped:" destination="-1" eventType="touchUpInside" id="YbX-KR-hP2"/>
+                            </connections>
+                        </button>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Z1c-YS-zHn">
+                            <rect key="frame" x="60.333333333333343" y="0.0" width="48" height="48"/>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <state key="normal" image="print"/>
+                            <connections>
+                                <action selector="printTapped:" destination="-1" eventType="touchUpInside" id="yRu-RH-LWQ"/>
+                            </connections>
+                        </button>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cU4-SH-dvs">
+                            <rect key="frame" x="121.00000000000001" y="0.0" width="47.666666666666671" height="48"/>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <state key="normal" image="gmail"/>
+                            <connections>
+                                <action selector="gmailTapped:" destination="-1" eventType="touchUpInside" id="poW-WI-acw"/>
+                            </connections>
+                        </button>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Whx-iK-x70">
+                            <rect key="frame" x="181.33333333333334" y="0.0" width="48" height="48"/>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <state key="normal" image="telegram"/>
+                            <connections>
+                                <action selector="telegramTapped:" destination="-1" eventType="touchUpInside" id="YoB-5c-aP4"/>
+                            </connections>
+                        </button>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="tF8-Lh-ilb">
+                            <rect key="frame" x="242" y="0.0" width="48" height="48"/>
+                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                            <state key="normal" image="whatsapp"/>
+                            <connections>
+                                <action selector="whatsappShare:" destination="-1" eventType="touchUpInside" id="DwL-37-TTO"/>
+                            </connections>
+                        </button>
+                    </subviews>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="48" id="Z98-C8-xKI"/>
+                        <constraint firstAttribute="width" constant="290" id="qa6-FY-tCL"/>
+                    </constraints>
+                </stackView>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Z2A-Ww-p2a">
+                    <rect key="frame" x="0.0" y="748.66666666666663" width="393" height="1"/>
+                    <color key="backgroundColor" red="0.3921568627" green="0.3921568627" blue="0.3921568627" alpha="1" colorSpace="calibratedRGB"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="1" id="XM1-pT-dSi"/>
+                    </constraints>
+                </view>
+            </subviews>
             <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/>
+            <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstItem="Z2A-Ww-p2a" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="1Me-Z1-4pz"/>
+                <constraint firstItem="4ep-ST-cZS" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="5bx-89-IgC"/>
+                <constraint firstItem="7Fw-PR-xtE" firstAttribute="centerX" secondItem="i5M-Pr-FkT" secondAttribute="centerX" id="63e-Me-RoR"/>
+                <constraint firstItem="4ep-ST-cZS" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" constant="85" id="8Hd-pt-rYP"/>
+                <constraint firstItem="ZwN-3q-O93" firstAttribute="top" secondItem="Kl7-O6-xwc" secondAttribute="bottom" constant="15" id="DaI-bi-76l"/>
+                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="s7Z-Yw-lu7" secondAttribute="trailing" id="JN5-8J-32W"/>
+                <constraint firstItem="Kl7-O6-xwc" firstAttribute="centerX" secondItem="i5M-Pr-FkT" secondAttribute="centerX" id="OxI-gy-D1m"/>
+                <constraint firstItem="Z2A-Ww-p2a" firstAttribute="top" secondItem="ZwN-3q-O93" secondAttribute="bottom" constant="13" id="Suz-rh-hug"/>
+                <constraint firstAttribute="trailing" secondItem="Z2A-Ww-p2a" secondAttribute="trailing" id="gfx-Mq-f4P"/>
+                <constraint firstItem="ZwN-3q-O93" firstAttribute="centerX" secondItem="fnl-2z-Ty3" secondAttribute="centerX" id="i57-eq-d1n"/>
+                <constraint firstItem="s7Z-Yw-lu7" firstAttribute="leading" secondItem="fnl-2z-Ty3" secondAttribute="leading" id="ijP-xB-rji"/>
+                <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="4ep-ST-cZS" secondAttribute="trailing" id="k5T-1f-iEU"/>
+                <constraint firstItem="7Fw-PR-xtE" firstAttribute="top" secondItem="4ep-ST-cZS" secondAttribute="bottom" constant="25" id="qwO-vJ-TAZ"/>
+                <constraint firstItem="Kl7-O6-xwc" firstAttribute="top" secondItem="s7Z-Yw-lu7" secondAttribute="bottom" constant="12" id="vM8-xk-lNK"/>
+                <constraint firstItem="s7Z-Yw-lu7" firstAttribute="top" secondItem="7Fw-PR-xtE" secondAttribute="bottom" constant="37" id="w8y-bc-Noq"/>
+            </constraints>
+            <point key="canvasLocation" x="138.1679389312977" y="20.422535211267608"/>
         </view>
     </objects>
+    <resources>
+        <image name="controller" width="164" height="40"/>
+        <image name="gmail" width="48" height="48"/>
+        <image name="more" width="76" height="75"/>
+        <image name="print" width="68" height="67"/>
+        <image name="telegram" width="68" height="67"/>
+        <image name="whatsapp" width="68" height="67"/>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
 </document>
diff --git a/MiniScanner/Supporting Files/Assets.xcassets/Controller.imageset/Contents.json b/MiniScanner/Supporting Files/Assets.xcassets/Controller.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..bff220549d2e1af4ca38279d33b7853b15829dee
--- /dev/null
+++ b/MiniScanner/Supporting Files/Assets.xcassets/Controller.imageset/Contents.json	
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "Controller.svg",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/MiniScanner/Supporting Files/Assets.xcassets/Controller.imageset/Controller.svg b/MiniScanner/Supporting Files/Assets.xcassets/Controller.imageset/Controller.svg
new file mode 100644
index 0000000000000000000000000000000000000000..ea73dacd78b109a57ab4dd700be9a9722a84257f
--- /dev/null
+++ b/MiniScanner/Supporting Files/Assets.xcassets/Controller.imageset/Controller.svg	
@@ -0,0 +1,5 @@
+<svg width="164" height="40" viewBox="0 0 164 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M16.5 24.5L12 20M12 20L16.5 15.5M12 20H24M4.5 20C4.5 27.4559 10.5441 33.5 18 33.5C25.4558 33.5 31.5 27.4559 31.5 20C31.5 12.5442 25.4558 6.5 18 6.5C10.5441 6.5 4.5 12.5442 4.5 20Z" stroke="#2C2727" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+<rect x="50" width="64" height="40" rx="5" fill="#D9D9D9"/>
+<path d="M147.5 24.5L152 20M152 20L147.5 15.5M152 20H140M159.5 20C159.5 27.4559 153.456 33.5 146 33.5C138.544 33.5 132.5 27.4559 132.5 20C132.5 12.5442 138.544 6.5 146 6.5C153.456 6.5 159.5 12.5442 159.5 20Z" stroke="#2C2727" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>
diff --git a/MiniScanner/Supporting Files/Assets.xcassets/tabbarIpad.imageset/Contents.json b/MiniScanner/Supporting Files/Assets.xcassets/tabbarIpad.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..9dab6a6519c009d44fd73eb074accff70392d8a5
--- /dev/null
+++ b/MiniScanner/Supporting Files/Assets.xcassets/tabbarIpad.imageset/Contents.json	
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "WhiteBar Ipad (1).svg",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/MiniScanner/Supporting Files/Assets.xcassets/tabbarIpad.imageset/WhiteBar Ipad (1).svg b/MiniScanner/Supporting Files/Assets.xcassets/tabbarIpad.imageset/WhiteBar Ipad (1).svg
new file mode 100644
index 0000000000000000000000000000000000000000..5ea6f6f9d59142615892654cb3a689c87a5d4298
--- /dev/null
+++ b/MiniScanner/Supporting Files/Assets.xcassets/tabbarIpad.imageset/WhiteBar Ipad (1).svg	
@@ -0,0 +1,3 @@
+<svg width="834" height="94" viewBox="0 0 834 94" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M365.009 0H50C22.3858 0 0 22.3858 0 50V94H834V50C834 22.3858 811.614 0 784 0H468.991C468.458 28.2573 445.385 51 417 51C388.615 51 365.542 28.2573 365.009 0Z" fill="white"/>
+</svg>
diff --git a/MiniScanner/Supporting Files/CustomWeScan/Scan/ScannerViewController.swift b/MiniScanner/Supporting Files/CustomWeScan/Scan/ScannerViewController.swift
index 4c0d46f733b0d57a5de0787f2dbaa883dd39d1f1..81691acabb8c7bffdcf9ae277b2b7dbc6e810942 100644
--- a/MiniScanner/Supporting Files/CustomWeScan/Scan/ScannerViewController.swift	
+++ b/MiniScanner/Supporting Files/CustomWeScan/Scan/ScannerViewController.swift	
@@ -523,13 +523,16 @@ extension ScannerViewController: CustomTabBarViewDelegate {
         self.navigationController?.popViewController(animated: false)
     }
     func editButtonTapped() {
-        let alert = UIAlertController(title: "Alert!", message: "In progress and soon will be ready!!", preferredStyle: .alert)
-
-        let okAction = UIAlertAction(title: "OK", style: .default) { (action) in
-            self.dismiss(animated: true)
-        }
-        alert.addAction(okAction)
-        self.present(alert, animated: true, completion: nil)
+//        let alert = UIAlertController(title: "Alert!", message: "In progress and soon will be ready!!", preferredStyle: .alert)
+//
+//        let okAction = UIAlertAction(title: "OK", style: .default) { (action) in
+//            self.dismiss(animated: true)
+//        }
+//        alert.addAction(okAction)
+//        self.present(alert, animated: true, completion: nil)
+        print(multipageSession.scannedItems.count)
+        let editViewController = EditViewController(scanSession: self.multipageSession)
+        self.navigationController?.pushViewController(editViewController, animated: true)
     }
     
     func shareTapped() {
@@ -562,15 +565,21 @@ extension ScannerViewController: CustomTabBarViewDelegate {
 // MARK: - ShareSheetViewControllerDelegate
 extension ScannerViewController: ShareSheetViewControllerDelegate {
     func whatsappTapped(name: String) {
-        saveFileAndShare(with: ShareOptions.whatsapp, name: name)
+        DispatchQueue.main.async {
+            self.saveFileAndShare(with: ShareOptions.whatsapp, name: name)
+        }
     }
     
     func telegramTapped(name: String) {
-        saveFileAndShare(with: ShareOptions.telegram, name: name)
+        DispatchQueue.main.async {
+            self.saveFileAndShare(with: ShareOptions.telegram, name: name)
+        }
     }
     
     func airdropTapped(name: String) {
-        saveFileAndShare(with: ShareOptions.gmail, name: name)
+        DispatchQueue.main.async {
+            self.saveFileAndShare(with: ShareOptions.gmail, name: name)
+        }
 
     }
     
diff --git a/MiniScanner/Supporting Files/CyclePagerView/TYCyclePagerTransformLayout.h b/MiniScanner/Supporting Files/CyclePagerView/TYCyclePagerTransformLayout.h
new file mode 100755
index 0000000000000000000000000000000000000000..ee8807e73034af4373675433f3a67bc99fbaf5f7
--- /dev/null
+++ b/MiniScanner/Supporting Files/CyclePagerView/TYCyclePagerTransformLayout.h	
@@ -0,0 +1,74 @@
+//
+//  TYCyclePagerViewLayout.h
+//  TYCyclePagerViewDemo
+//
+//  Created by tany on 2017/6/19.
+//  Copyright © 2017年 tany. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef NS_ENUM(NSUInteger, TYCyclePagerTransformLayoutType) {
+    TYCyclePagerTransformLayoutNormal,
+    TYCyclePagerTransformLayoutLinear,
+    TYCyclePagerTransformLayoutCoverflow,
+};
+
+@class TYCyclePagerTransformLayout;
+@protocol TYCyclePagerTransformLayoutDelegate <NSObject>
+
+// initialize layout attributes
+- (void)pagerViewTransformLayout:(TYCyclePagerTransformLayout *)pagerViewTransformLayout initializeTransformAttributes:(UICollectionViewLayoutAttributes *)attributes;
+
+// apply layout attributes
+- (void)pagerViewTransformLayout:(TYCyclePagerTransformLayout *)pagerViewTransformLayout applyTransformToAttributes:(UICollectionViewLayoutAttributes *)attributes;
+
+@end
+
+
+@interface TYCyclePagerViewLayout : NSObject
+
+@property (nonatomic, assign) CGSize itemSize;
+@property (nonatomic, assign) CGFloat itemSpacing;
+@property (nonatomic, assign) UIEdgeInsets sectionInset;
+
+@property (nonatomic, assign) TYCyclePagerTransformLayoutType layoutType;
+
+@property (nonatomic, assign) CGFloat minimumScale; // sacle default 0.8
+@property (nonatomic, assign) CGFloat minimumAlpha; // alpha default 1.0
+@property (nonatomic, assign) CGFloat maximumAngle; // angle is % default 0.2
+
+@property (nonatomic, assign) BOOL isInfiniteLoop;  // infinte scroll
+@property (nonatomic, assign) CGFloat rateOfChange; // scale and angle change rate
+@property (nonatomic, assign) BOOL adjustSpacingWhenScroling; 
+
+/**
+ pageView cell item vertical centering
+ */
+@property (nonatomic, assign) BOOL itemVerticalCenter;
+
+/**
+ first and last item horizontalc enter, when isInfiniteLoop is NO
+ */
+@property (nonatomic, assign) BOOL itemHorizontalCenter;
+
+// sectionInset
+@property (nonatomic, assign, readonly) UIEdgeInsets onlyOneSectionInset;
+@property (nonatomic, assign, readonly) UIEdgeInsets firstSectionInset;
+@property (nonatomic, assign, readonly) UIEdgeInsets lastSectionInset;
+@property (nonatomic, assign, readonly) UIEdgeInsets middleSectionInset;
+
+@end
+
+
+@interface TYCyclePagerTransformLayout : UICollectionViewFlowLayout
+
+@property (nonatomic, strong) TYCyclePagerViewLayout *layout;
+
+@property (nonatomic, weak, nullable) id<TYCyclePagerTransformLayoutDelegate> delegate;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/MiniScanner/Supporting Files/CyclePagerView/TYCyclePagerTransformLayout.m b/MiniScanner/Supporting Files/CyclePagerView/TYCyclePagerTransformLayout.m
new file mode 100755
index 0000000000000000000000000000000000000000..8bd77ba16c8e36538690f7c2d097f60640d4bb4d
--- /dev/null
+++ b/MiniScanner/Supporting Files/CyclePagerView/TYCyclePagerTransformLayout.m	
@@ -0,0 +1,300 @@
+//
+//  TYCyclePagerViewLayout.m
+//  TYCyclePagerViewDemo
+//
+//  Created by tany on 2017/6/19.
+//  Copyright © 2017年 tany. All rights reserved.
+//
+
+#import "TYCyclePagerTransformLayout.h"
+
+typedef NS_ENUM(NSUInteger, TYTransformLayoutItemDirection) {
+    TYTransformLayoutItemLeft,
+    TYTransformLayoutItemCenter,
+    TYTransformLayoutItemRight,
+};
+
+
+@interface TYCyclePagerTransformLayout () {
+    struct {
+        unsigned int applyTransformToAttributes   :1;
+        unsigned int initializeTransformAttributes   :1;
+    }_delegateFlags;
+}
+
+@property (nonatomic, assign) BOOL applyTransformToAttributesDelegate;
+
+@end
+
+
+@interface TYCyclePagerViewLayout ()
+
+@property (nonatomic, weak) UIView *pageView;
+
+@end
+
+
+@implementation TYCyclePagerTransformLayout
+
+- (instancetype)init {
+    if (self = [super init]) {
+        self.scrollDirection = UICollectionViewScrollDirectionHorizontal;
+    }
+    return self;
+}
+
+- (instancetype)initWithCoder:(NSCoder *)aDecoder {
+    if (self = [super initWithCoder:aDecoder]) {
+        self.scrollDirection = UICollectionViewScrollDirectionHorizontal;
+    }
+    return self;
+}
+
+#pragma mark - getter setter
+
+- (void)setDelegate:(id<TYCyclePagerTransformLayoutDelegate>)delegate {
+    _delegate = delegate;
+    _delegateFlags.initializeTransformAttributes = [delegate respondsToSelector:@selector(pagerViewTransformLayout:initializeTransformAttributes:)];
+    _delegateFlags.applyTransformToAttributes = [delegate respondsToSelector:@selector(pagerViewTransformLayout:applyTransformToAttributes:)];
+}
+
+- (void)setLayout:(TYCyclePagerViewLayout *)layout {
+    _layout = layout;
+    _layout.pageView = self.collectionView;
+    self.itemSize = _layout.itemSize;
+    self.minimumInteritemSpacing = _layout.itemSpacing;
+    self.minimumLineSpacing = _layout.itemSpacing;
+}
+
+- (CGSize)itemSize {
+    if (!_layout) {
+        return [super itemSize];
+    }
+    return _layout.itemSize;
+}
+
+- (CGFloat)minimumLineSpacing {
+    if (!_layout) {
+        return [super minimumLineSpacing];
+    }
+    return _layout.itemSpacing;
+}
+
+- (CGFloat)minimumInteritemSpacing {
+    if (!_layout) {
+        return [super minimumInteritemSpacing];
+    }
+    return _layout.itemSpacing;
+}
+
+- (TYTransformLayoutItemDirection)directionWithCenterX:(CGFloat)centerX {
+    TYTransformLayoutItemDirection direction= TYTransformLayoutItemRight;
+    CGFloat contentCenterX = self.collectionView.contentOffset.x + CGRectGetWidth(self.collectionView.frame)/2;
+    if (ABS(centerX - contentCenterX) < 0.5) {
+        direction = TYTransformLayoutItemCenter;
+    }else if (centerX - contentCenterX < 0) {
+        direction = TYTransformLayoutItemLeft;
+    }
+    return direction;
+}
+
+#pragma mark - layout
+
+-(BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds
+{
+    return _layout.layoutType == TYCyclePagerTransformLayoutNormal ? [super shouldInvalidateLayoutForBoundsChange:newBounds] : YES;
+}
+
+- (NSArray<UICollectionViewLayoutAttributes *> *)layoutAttributesForElementsInRect:(CGRect)rect {
+    if (_delegateFlags.applyTransformToAttributes || _layout.layoutType != TYCyclePagerTransformLayoutNormal) {
+        NSArray *attributesArray = [[NSArray alloc] initWithArray:[super layoutAttributesForElementsInRect:rect] copyItems:YES];
+        CGRect visibleRect = {self.collectionView.contentOffset,self.collectionView.bounds.size};
+        for (UICollectionViewLayoutAttributes *attributes in attributesArray) {
+            if (!CGRectIntersectsRect(visibleRect, attributes.frame)) {
+                continue;
+            }
+            if (_delegateFlags.applyTransformToAttributes) {
+                [_delegate pagerViewTransformLayout:self applyTransformToAttributes:attributes];
+            }else {
+                [self applyTransformToAttributes:attributes layoutType:_layout.layoutType];
+            }
+        }
+        return attributesArray;
+    }
+    return [super layoutAttributesForElementsInRect:rect];
+}
+
+- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath {
+    UICollectionViewLayoutAttributes *attributes = [super layoutAttributesForItemAtIndexPath:indexPath];
+    if (_delegateFlags.initializeTransformAttributes) {
+        [_delegate pagerViewTransformLayout:self initializeTransformAttributes:attributes];
+    }else if(_layout.layoutType != TYCyclePagerTransformLayoutNormal){
+        [self initializeTransformAttributes:attributes layoutType:_layout.layoutType];
+    }
+    return attributes;
+}
+
+#pragma mark - transform
+
+- (void)initializeTransformAttributes:(UICollectionViewLayoutAttributes *)attributes layoutType:(TYCyclePagerTransformLayoutType)layoutType {
+    switch (layoutType) {
+        case TYCyclePagerTransformLayoutLinear:
+            [self applyLinearTransformToAttributes:attributes scale:_layout.minimumScale alpha:_layout.minimumAlpha];
+            break;
+        case TYCyclePagerTransformLayoutCoverflow:
+        {
+            [self applyCoverflowTransformToAttributes:attributes angle:_layout.maximumAngle alpha:_layout.minimumAlpha];
+            break;
+        }
+        default:
+            break;
+    }
+}
+
+- (void)applyTransformToAttributes:(UICollectionViewLayoutAttributes *)attributes layoutType:(TYCyclePagerTransformLayoutType)layoutType {
+    switch (layoutType) {
+        case TYCyclePagerTransformLayoutLinear:
+            [self applyLinearTransformToAttributes:attributes];
+            break;
+        case TYCyclePagerTransformLayoutCoverflow:
+            [self applyCoverflowTransformToAttributes:attributes];
+            break;
+        default:
+            break;
+    }
+}
+
+#pragma mark - LinearTransform
+
+- (void)applyLinearTransformToAttributes:(UICollectionViewLayoutAttributes *)attributes {
+    CGFloat collectionViewWidth = self.collectionView.frame.size.width;
+    if (collectionViewWidth <= 0) {
+        return;
+    }
+    CGFloat centetX = self.collectionView.contentOffset.x + collectionViewWidth/2;
+    CGFloat delta = ABS(attributes.center.x - centetX);
+    CGFloat scale = MAX(1 - delta/collectionViewWidth*_layout.rateOfChange, _layout.minimumScale);
+    CGFloat alpha = MAX(1 - delta/collectionViewWidth, _layout.minimumAlpha);
+    [self applyLinearTransformToAttributes:attributes scale:scale alpha:alpha];
+}
+
+- (void)applyLinearTransformToAttributes:(UICollectionViewLayoutAttributes *)attributes scale:(CGFloat)scale alpha:(CGFloat)alpha {
+    CGAffineTransform transform = CGAffineTransformMakeScale(scale, scale);
+    if (_layout.adjustSpacingWhenScroling) {
+        TYTransformLayoutItemDirection direction = [self directionWithCenterX:attributes.center.x];
+        CGFloat translate = 0;
+        switch (direction) {
+            case TYTransformLayoutItemLeft:
+                translate = 1.15 * attributes.size.width*(1-scale)/2;
+                break;
+            case TYTransformLayoutItemRight:
+                translate = -1.15 * attributes.size.width*(1-scale)/2;
+                break;
+            default:
+                // center
+                scale = 1.0;
+                alpha = 1.0;
+                break;
+        }
+        transform = CGAffineTransformTranslate(transform,translate, 0);
+    }
+    attributes.transform = transform;
+    attributes.alpha = alpha;
+}
+
+#pragma mark - CoverflowTransform
+
+- (void)applyCoverflowTransformToAttributes:(UICollectionViewLayoutAttributes *)attributes{
+    CGFloat collectionViewWidth = self.collectionView.frame.size.width;
+    if (collectionViewWidth <= 0) {
+        return;
+    }
+    CGFloat centetX = self.collectionView.contentOffset.x + collectionViewWidth/2;
+    CGFloat delta = ABS(attributes.center.x - centetX);
+    CGFloat angle = MIN(delta/collectionViewWidth*(1-_layout.rateOfChange), _layout.maximumAngle);
+    CGFloat alpha = MAX(1 - delta/collectionViewWidth, _layout.minimumAlpha);
+    [self applyCoverflowTransformToAttributes:attributes angle:angle alpha:alpha];
+}
+
+- (void)applyCoverflowTransformToAttributes:(UICollectionViewLayoutAttributes *)attributes angle:(CGFloat)angle alpha:(CGFloat)alpha {
+    TYTransformLayoutItemDirection direction = [self directionWithCenterX:attributes.center.x];
+    CATransform3D transform3D = CATransform3DIdentity;
+    transform3D.m34 = -0.002;
+    CGFloat translate = 0;
+    switch (direction) {
+        case TYTransformLayoutItemLeft:
+            translate = (1-cos(angle*1.2*M_PI))*attributes.size.width;
+            break;
+        case TYTransformLayoutItemRight:
+            translate = -(1-cos(angle*1.2*M_PI))*attributes.size.width;
+            angle = -angle;
+            break;
+        default:
+            // center
+            angle = 0;
+            alpha = 1;
+            break;
+    }
+
+    transform3D = CATransform3DRotate(transform3D, M_PI*angle, 0, 1, 0);
+    if (_layout.adjustSpacingWhenScroling) {
+        transform3D = CATransform3DTranslate(transform3D, translate, 0, 0);
+    }
+    attributes.transform3D = transform3D;
+    attributes.alpha = alpha;
+
+}
+@end
+
+
+@implementation TYCyclePagerViewLayout
+
+- (instancetype)init {
+    if (self = [super init]) {
+        _itemVerticalCenter = YES;
+        _minimumScale = 0.8;
+        _minimumAlpha = 1.0;
+        _maximumAngle = 0.2;
+        _rateOfChange = 0.4;
+        _adjustSpacingWhenScroling = YES;
+    }
+    return self;
+}
+
+#pragma mark - getter
+
+- (UIEdgeInsets)onlyOneSectionInset {
+    CGFloat leftSpace = _pageView && !_isInfiniteLoop && _itemHorizontalCenter ? (CGRectGetWidth(_pageView.frame) - _itemSize.width)/2 : _sectionInset.left;
+    CGFloat rightSpace = _pageView && !_isInfiniteLoop && _itemHorizontalCenter ? (CGRectGetWidth(_pageView.frame) - _itemSize.width)/2 : _sectionInset.right;
+    if (_itemVerticalCenter) {
+        CGFloat verticalSpace = (CGRectGetHeight(_pageView.frame) - _itemSize.height)/2;
+        return UIEdgeInsetsMake(verticalSpace, leftSpace, verticalSpace, rightSpace);
+    }
+    return UIEdgeInsetsMake(_sectionInset.top, leftSpace, _sectionInset.bottom, rightSpace);
+}
+
+- (UIEdgeInsets)firstSectionInset {
+    if (_itemVerticalCenter) {
+        CGFloat verticalSpace = (CGRectGetHeight(_pageView.frame) - _itemSize.height)/2;
+        return UIEdgeInsetsMake(verticalSpace, _sectionInset.left, verticalSpace, _itemSpacing);
+    }
+    return UIEdgeInsetsMake(_sectionInset.top, _sectionInset.left, _sectionInset.bottom, _itemSpacing);
+}
+
+- (UIEdgeInsets)lastSectionInset {
+    if (_itemVerticalCenter) {
+        CGFloat verticalSpace = (CGRectGetHeight(_pageView.frame) - _itemSize.height)/2;
+        return UIEdgeInsetsMake(verticalSpace, 0, verticalSpace, _sectionInset.right);
+    }
+    return UIEdgeInsetsMake(_sectionInset.top, 0, _sectionInset.bottom, _sectionInset.right);
+}
+
+- (UIEdgeInsets)middleSectionInset {
+    if (_itemVerticalCenter) {
+        CGFloat verticalSpace = (CGRectGetHeight(_pageView.frame) - _itemSize.height)/2;
+        return UIEdgeInsetsMake(verticalSpace, 0, verticalSpace, _itemSpacing);
+    }
+    return _sectionInset;
+}
+
+@end
diff --git a/MiniScanner/Supporting Files/CyclePagerView/TYCyclePagerView.h b/MiniScanner/Supporting Files/CyclePagerView/TYCyclePagerView.h
new file mode 100755
index 0000000000000000000000000000000000000000..c9c70a40951756f91619cc546e58df4bbd770c0c
--- /dev/null
+++ b/MiniScanner/Supporting Files/CyclePagerView/TYCyclePagerView.h	
@@ -0,0 +1,180 @@
+//
+//  TYCyclePagerView.h
+//  TYCyclePagerViewDemo
+//
+//  Created by tany on 2017/6/14.
+//  Copyright © 2017年 tany. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "TYCyclePagerTransformLayout.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef struct {
+    NSInteger index;
+    NSInteger section;
+}TYIndexSection;
+
+// pagerView scrolling direction
+typedef NS_ENUM(NSUInteger, TYPagerScrollDirection) {
+    TYPagerScrollDirectionLeft,
+    TYPagerScrollDirectionRight,
+};
+
+@class TYCyclePagerView;
+@protocol TYCyclePagerViewDataSource <NSObject>
+
+- (NSInteger)numberOfItemsInPagerView:(TYCyclePagerView *)pageView;
+
+- (__kindof UICollectionViewCell *)pagerView:(TYCyclePagerView *)pagerView cellForItemAtIndex:(NSInteger)index;
+
+/**
+ return pagerView layout,and cache layout
+ */
+- (TYCyclePagerViewLayout *)layoutForPagerView:(TYCyclePagerView *)pageView;
+
+@end
+
+@protocol TYCyclePagerViewDelegate <NSObject>
+
+@optional
+
+/**
+ pagerView did scroll to new index page
+ */
+- (void)pagerView:(TYCyclePagerView *)pageView didScrollFromIndex:(NSInteger)fromIndex toIndex:(NSInteger)toIndex;
+
+/**
+ pagerView did selected item cell
+ */
+- (void)pagerView:(TYCyclePagerView *)pageView didSelectedItemCell:(__kindof UICollectionViewCell *)cell atIndex:(NSInteger)index;
+- (void)pagerView:(TYCyclePagerView *)pageView didSelectedItemCell:(__kindof UICollectionViewCell *)cell atIndexSection:(TYIndexSection)indexSection;
+
+// custom layout
+- (void)pagerView:(TYCyclePagerView *)pageView initializeTransformAttributes:(UICollectionViewLayoutAttributes *)attributes;
+
+- (void)pagerView:(TYCyclePagerView *)pageView applyTransformToAttributes:(UICollectionViewLayoutAttributes *)attributes;
+
+
+// scrollViewDelegate
+
+- (void)pagerViewDidScroll:(TYCyclePagerView *)pageView;
+
+- (void)pagerViewWillBeginDragging:(TYCyclePagerView *)pageView;
+
+- (void)pagerViewDidEndDragging:(TYCyclePagerView *)pageView willDecelerate:(BOOL)decelerate;
+
+- (void)pagerViewWillBeginDecelerating:(TYCyclePagerView *)pageView;
+
+- (void)pagerViewDidEndDecelerating:(TYCyclePagerView *)pageView;
+
+- (void)pagerViewWillBeginScrollingAnimation:(TYCyclePagerView *)pageView;
+
+- (void)pagerViewDidEndScrollingAnimation:(TYCyclePagerView *)pageView;
+
+@end
+
+
+@interface TYCyclePagerView : UIView
+
+// will be automatically resized to track the size of the pagerView
+@property (nonatomic, strong, nullable) UIView *backgroundView; 
+
+@property (nonatomic, weak, nullable) id<TYCyclePagerViewDataSource> dataSource;
+@property (nonatomic, weak, nullable) id<TYCyclePagerViewDelegate> delegate;
+
+// pager view, don't set dataSource and delegate
+@property (nonatomic, weak, readonly) UICollectionView *collectionView;
+// pager view layout
+@property (nonatomic, strong, readonly) TYCyclePagerViewLayout *layout;
+
+/**
+ is infinite cycle pageview
+ */
+@property (nonatomic, assign) BOOL isInfiniteLoop;
+
+/**
+ pagerView automatic scroll time interval, default 0,disable automatic
+ */
+@property (nonatomic, assign) CGFloat autoScrollInterval;
+
+@property (nonatomic, assign) BOOL reloadDataNeedResetIndex;
+
+/**
+ current page index
+ */
+@property (nonatomic, assign, readonly) NSInteger curIndex;
+@property (nonatomic, assign, readonly) TYIndexSection indexSection;
+
+// scrollView property
+@property (nonatomic, assign, readonly) CGPoint contentOffset;
+@property (nonatomic, assign, readonly) BOOL tracking;
+@property (nonatomic, assign, readonly) BOOL dragging;
+@property (nonatomic, assign, readonly) BOOL decelerating;
+
+
+/**
+ reload data, !!important!!: will clear layout and call delegate layoutForPagerView
+ */
+- (void)reloadData;
+
+/**
+ update data is reload data, but not clear layuot
+ */
+- (void)updateData;
+
+/**
+ if you only want update layout
+ */
+- (void)setNeedUpdateLayout;
+
+/**
+ will set layout nil and call delegate->layoutForPagerView
+ */
+- (void)setNeedClearLayout;
+
+/**
+ current index cell in pagerView
+ */
+- (__kindof UICollectionViewCell * _Nullable)curIndexCell;
+
+/**
+ visible cells in pageView
+ */
+- (NSArray<__kindof UICollectionViewCell *> *_Nullable)visibleCells;
+
+
+/**
+ visible pageView indexs, maybe repeat index
+ */
+- (NSArray *)visibleIndexs;
+
+/**
+ scroll to item at index
+ */
+- (void)scrollToItemAtIndex:(NSInteger)index animate:(BOOL)animate;
+- (void)scrollToItemAtIndexSection:(TYIndexSection)indexSection animate:(BOOL)animate;
+/**
+ scroll to next or pre item
+ */
+- (void)scrollToNearlyIndexAtDirection:(TYPagerScrollDirection)direction animate:(BOOL)animate;
+
+/**
+ register pager view cell with class
+ */
+- (void)registerClass:(Class)Class forCellWithReuseIdentifier:(NSString *)identifier;
+
+/**
+ register pager view cell with nib
+ */
+- (void)registerNib:(UINib *)nib forCellWithReuseIdentifier:(NSString *)identifier;
+
+/**
+ dequeue reusable cell for pagerView
+ */
+- (__kindof UICollectionViewCell *)dequeueReusableCellWithReuseIdentifier:(NSString *)identifier forIndex:(NSInteger)index;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/MiniScanner/Supporting Files/CyclePagerView/TYCyclePagerView.m b/MiniScanner/Supporting Files/CyclePagerView/TYCyclePagerView.m
new file mode 100755
index 0000000000000000000000000000000000000000..a2f42d52524079365ca2e2a883f946ec43962c3f
--- /dev/null
+++ b/MiniScanner/Supporting Files/CyclePagerView/TYCyclePagerView.m	
@@ -0,0 +1,607 @@
+//
+//  TYCyclePagerView.m
+//  TYCyclePagerViewDemo
+//
+//  Created by tany on 2017/6/14.
+//  Copyright © 2017年 tany. All rights reserved.
+//
+
+#import "TYCyclePagerView.h"
+
+NS_INLINE BOOL TYEqualIndexSection(TYIndexSection indexSection1,TYIndexSection indexSection2) {
+    return indexSection1.index == indexSection2.index && indexSection1.section == indexSection2.section;
+}
+
+NS_INLINE TYIndexSection TYMakeIndexSection(NSInteger index, NSInteger section) {
+    TYIndexSection indexSection;
+    indexSection.index = index;
+    indexSection.section = section;
+    return indexSection;
+}
+
+@interface TYCyclePagerView () <UICollectionViewDataSource, UICollectionViewDelegateFlowLayout, TYCyclePagerTransformLayoutDelegate> {
+    struct {
+        unsigned int pagerViewDidScroll   :1;
+        unsigned int didScrollFromIndexToNewIndex   :1;
+        unsigned int initializeTransformAttributes   :1;
+        unsigned int applyTransformToAttributes   :1;
+    }_delegateFlags;
+    struct {
+        unsigned int cellForItemAtIndex   :1;
+        unsigned int layoutForPagerView   :1;
+    }_dataSourceFlags;
+}
+
+// UI
+@property (nonatomic, weak) UICollectionView *collectionView;
+@property (nonatomic, strong) TYCyclePagerViewLayout *layout;
+@property (nonatomic, strong) NSTimer *timer;
+
+// Data
+@property (nonatomic, assign) NSInteger numberOfItems;
+
+@property (nonatomic, assign) NSInteger dequeueSection;
+@property (nonatomic, assign) TYIndexSection beginDragIndexSection;
+@property (nonatomic, assign) NSInteger firstScrollIndex;
+
+@property (nonatomic, assign) BOOL needClearLayout;
+@property (nonatomic, assign) BOOL didReloadData;
+@property (nonatomic, assign) BOOL didLayout;
+@property (nonatomic, assign) BOOL needResetIndex;
+
+@end
+
+#define kPagerViewMaxSectionCount 200
+#define kPagerViewMinSectionCount 18
+
+@implementation TYCyclePagerView
+
+#pragma mark - life Cycle
+
+- (instancetype)initWithFrame:(CGRect)frame {
+    if (self = [super initWithFrame:frame]) {
+        [self configureProperty];
+        
+        [self addCollectionView];
+    }
+    return self;
+}
+
+- (instancetype)initWithCoder:(NSCoder *)aDecoder {
+    if (self = [super initWithCoder:aDecoder]) {
+        [self configureProperty];
+        
+        [self addCollectionView];
+    }
+    return self;
+}
+
+- (void)configureProperty {
+    _needResetIndex = NO;
+    _didReloadData = NO;
+    _didLayout = NO;
+    _autoScrollInterval = 0;
+    _isInfiniteLoop = YES;
+    _beginDragIndexSection.index = 0;
+    _beginDragIndexSection.section = 0;
+    _indexSection.index = -1;
+    _indexSection.section = -1;
+    _firstScrollIndex = -1;
+}
+
+- (void)addCollectionView {
+    TYCyclePagerTransformLayout *layout = [[TYCyclePagerTransformLayout alloc]init];
+    UICollectionView *collectionView = [[UICollectionView alloc]initWithFrame:CGRectZero collectionViewLayout:layout];
+    layout.delegate = _delegateFlags.applyTransformToAttributes ? self : nil;;
+    collectionView.backgroundColor = [UIColor clearColor];
+    collectionView.dataSource = self;
+    collectionView.delegate = self;
+    collectionView.pagingEnabled = NO;
+    collectionView.decelerationRate = 1-0.0076;
+    if ([collectionView respondsToSelector:@selector(setPrefetchingEnabled:)]) {
+        collectionView.prefetchingEnabled = NO;
+    }
+    collectionView.showsHorizontalScrollIndicator = NO;
+    collectionView.showsVerticalScrollIndicator = NO;
+    [self addSubview:collectionView];
+    _collectionView = collectionView;
+}
+
+- (void)willMoveToSuperview:(UIView *)newSuperview {
+    if (!newSuperview) {
+        [self removeTimer];
+    }else {
+        [self removeTimer];
+        if (_autoScrollInterval > 0) {
+            [self addTimer];
+        }
+    }
+}
+
+
+#pragma mark - timer
+
+- (void)addTimer {
+    if (_timer || _autoScrollInterval <= 0) {
+        return;
+    }
+    _timer = [NSTimer timerWithTimeInterval:_autoScrollInterval target:self selector:@selector(timerFired:) userInfo:nil repeats:YES];
+    [[NSRunLoop mainRunLoop] addTimer:_timer forMode:NSRunLoopCommonModes];
+}
+
+- (void)removeTimer {
+    if (!_timer) {
+        return;
+    }
+    [_timer invalidate];
+    _timer = nil;
+}
+
+- (void)timerFired:(NSTimer *)timer {
+    if (!self.superview || !self.window || _numberOfItems == 0 || self.tracking) {
+        return;
+    }
+    
+    [self scrollToNearlyIndexAtDirection:TYPagerScrollDirectionRight animate:YES];
+}
+
+#pragma mark - getter
+
+- (TYCyclePagerViewLayout *)layout {
+    if (!_layout) {
+        if (_dataSourceFlags.layoutForPagerView) {
+            _layout = [_dataSource layoutForPagerView:self];
+            _layout.isInfiniteLoop = _isInfiniteLoop;
+        }
+        if (_layout.itemSize.width <= 0 || _layout.itemSize.height <= 0) {
+            _layout = nil;
+        }
+    }
+    return _layout;
+}
+
+- (NSInteger)curIndex {
+    return _indexSection.index;
+}
+
+- (CGPoint)contentOffset {
+    return _collectionView.contentOffset;
+}
+
+- (BOOL)tracking {
+    return _collectionView.tracking;
+}
+
+- (BOOL)dragging {
+    return _collectionView.dragging;
+}
+
+- (BOOL)decelerating {
+    return _collectionView.decelerating;
+}
+
+- (UIView *)backgroundView {
+    return _collectionView.backgroundView;
+}
+
+- (__kindof UICollectionViewCell *)curIndexCell {
+    return [_collectionView cellForItemAtIndexPath:[NSIndexPath indexPathForItem:_indexSection.index inSection:_indexSection.section]];
+}
+
+- (NSArray<__kindof UICollectionViewCell *> *)visibleCells {
+    return _collectionView.visibleCells;
+}
+
+- (NSArray *)visibleIndexs {
+    NSMutableArray *indexs = [NSMutableArray array];
+    for (NSIndexPath *indexPath in _collectionView.indexPathsForVisibleItems) {
+        [indexs addObject:@(indexPath.item)];
+    }
+    return [indexs copy];
+}
+
+#pragma mark - setter
+
+- (void)setBackgroundView:(UIView *)backgroundView {
+    [_collectionView setBackgroundView:backgroundView];
+}
+
+- (void)setAutoScrollInterval:(CGFloat)autoScrollInterval {
+    _autoScrollInterval = autoScrollInterval;
+    [self removeTimer];
+    if (autoScrollInterval > 0 && self.superview) {
+        [self addTimer];
+    }
+}
+
+- (void)setDelegate:(id<TYCyclePagerViewDelegate>)delegate {
+    _delegate = delegate;
+    _delegateFlags.pagerViewDidScroll = [delegate respondsToSelector:@selector(pagerViewDidScroll:)];
+    _delegateFlags.didScrollFromIndexToNewIndex = [delegate respondsToSelector:@selector(pagerView:didScrollFromIndex:toIndex:)];
+    _delegateFlags.initializeTransformAttributes = [delegate respondsToSelector:@selector(pagerView:initializeTransformAttributes:)];
+    _delegateFlags.applyTransformToAttributes = [delegate respondsToSelector:@selector(pagerView:applyTransformToAttributes:)];
+    if (self.collectionView && self.collectionView.collectionViewLayout) {
+        ((TYCyclePagerTransformLayout *)self.collectionView.collectionViewLayout).delegate = _delegateFlags.applyTransformToAttributes ? self : nil;
+    }
+}
+
+- (void)setDataSource:(id<TYCyclePagerViewDataSource>)dataSource {
+    _dataSource = dataSource;
+    _dataSourceFlags.cellForItemAtIndex = [dataSource respondsToSelector:@selector(pagerView:cellForItemAtIndex:)];
+    _dataSourceFlags.layoutForPagerView = [dataSource respondsToSelector:@selector(layoutForPagerView:)];
+}
+
+#pragma mark - public
+
+- (void)reloadData {
+    _didReloadData = YES;
+    _needResetIndex = YES;
+    [self setNeedClearLayout];
+    [self clearLayout];
+    [self updateData];
+}
+
+// not clear layout
+- (void)updateData {
+    [self updateLayout];
+    _numberOfItems = [_dataSource numberOfItemsInPagerView:self];
+    [_collectionView reloadData];
+    if (!_didLayout && !CGRectIsEmpty(self.collectionView.frame) && _indexSection.index < 0) {
+        _didLayout = YES;
+    }
+    BOOL needResetIndex = _needResetIndex && _reloadDataNeedResetIndex;
+    _needResetIndex = NO;
+    if (needResetIndex) {
+        [self removeTimer];
+    }
+    [self resetPagerViewAtIndex:(_indexSection.index < 0 && !CGRectIsEmpty(self.collectionView.frame)) || needResetIndex ? 0 :_indexSection.index];
+    if (needResetIndex) {
+        [self addTimer];
+    }
+}
+
+- (void)scrollToNearlyIndexAtDirection:(TYPagerScrollDirection)direction animate:(BOOL)animate {
+    TYIndexSection indexSection = [self nearlyIndexPathAtDirection:direction];
+    [self scrollToItemAtIndexSection:indexSection animate:animate];
+}
+
+- (void)scrollToItemAtIndex:(NSInteger)index animate:(BOOL)animate {
+    if (!_didLayout && _didReloadData) {
+        _firstScrollIndex = index;
+    }else {
+        _firstScrollIndex = -1;
+    }
+    if (!_isInfiniteLoop) {
+        [self scrollToItemAtIndexSection:TYMakeIndexSection(index, 0) animate:animate];
+        return;
+    }
+
+    [self scrollToItemAtIndexSection:TYMakeIndexSection(index, index >= self.curIndex ? _indexSection.section : _indexSection.section+1) animate:animate];
+}
+
+- (void)scrollToItemAtIndexSection:(TYIndexSection)indexSection animate:(BOOL)animate {
+    if (_numberOfItems <= 0 || ![self isValidIndexSection:indexSection]) {
+        //NSLog(@"scrollToItemAtIndex: item indexSection is invalid!");
+        return;
+    }
+    
+    if (animate && [_delegate respondsToSelector:@selector(pagerViewWillBeginScrollingAnimation:)]) {
+        [_delegate pagerViewWillBeginScrollingAnimation:self];
+    }
+    CGFloat offset = [self caculateOffsetXAtIndexSection:indexSection];
+    [_collectionView setContentOffset:CGPointMake(offset, _collectionView.contentOffset.y) animated:animate];
+}
+
+- (void)registerClass:(Class)Class forCellWithReuseIdentifier:(NSString *)identifier {
+    [_collectionView registerClass:Class forCellWithReuseIdentifier:identifier];
+}
+
+- (void)registerNib:(UINib *)nib forCellWithReuseIdentifier:(NSString *)identifier {
+    [_collectionView registerNib:nib forCellWithReuseIdentifier:identifier];
+}
+
+- (__kindof UICollectionViewCell *)dequeueReusableCellWithReuseIdentifier:(NSString *)identifier forIndex:(NSInteger)index {
+    UICollectionViewCell *cell = [_collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:[NSIndexPath indexPathForItem:index inSection:_dequeueSection]];
+    return cell;
+}
+
+#pragma mark - configure layout
+
+- (void)updateLayout {
+    if (!self.layout) {
+        return;
+    }
+    self.layout.isInfiniteLoop = _isInfiniteLoop;
+    ((TYCyclePagerTransformLayout *)_collectionView.collectionViewLayout).layout = self.layout;
+}
+
+- (void)clearLayout {
+    if (_needClearLayout) {
+        _layout = nil;
+        _needClearLayout = NO;
+    }
+}
+
+- (void)setNeedClearLayout {
+    _needClearLayout = YES;
+}
+
+- (void)setNeedUpdateLayout {
+    if (!self.layout) {
+        return;
+    }
+    [self clearLayout];
+    [self updateLayout];
+    [_collectionView.collectionViewLayout invalidateLayout];
+    [self resetPagerViewAtIndex:_indexSection.index < 0 ? 0 :_indexSection.index];
+}
+
+#pragma mark - pager index
+
+- (BOOL)isValidIndexSection:(TYIndexSection)indexSection {
+    return indexSection.index >= 0 && indexSection.index < _numberOfItems && indexSection.section >= 0 && indexSection.section < kPagerViewMaxSectionCount;
+}
+
+- (TYIndexSection)nearlyIndexPathAtDirection:(TYPagerScrollDirection)direction{
+    return [self nearlyIndexPathForIndexSection:_indexSection direction:direction];
+}
+
+- (TYIndexSection)nearlyIndexPathForIndexSection:(TYIndexSection)indexSection direction:(TYPagerScrollDirection)direction {
+    if (indexSection.index < 0 || indexSection.index >= _numberOfItems) {
+        return indexSection;
+    }
+    
+    if (!_isInfiniteLoop) {
+        if (direction == TYPagerScrollDirectionRight && indexSection.index == _numberOfItems - 1) {
+            return _autoScrollInterval > 0 ? TYMakeIndexSection(0, 0) : indexSection;
+        } else if (direction == TYPagerScrollDirectionRight) {
+            return TYMakeIndexSection(indexSection.index+1, 0);
+        }
+        
+        if (indexSection.index == 0) {
+            return _autoScrollInterval > 0 ? TYMakeIndexSection(_numberOfItems - 1, 0) : indexSection;
+        }
+        return TYMakeIndexSection(indexSection.index-1, 0);
+    }
+    
+    if (direction == TYPagerScrollDirectionRight) {
+        if (indexSection.index < _numberOfItems-1) {
+            return TYMakeIndexSection(indexSection.index+1, indexSection.section);
+        }
+        if (indexSection.section >= kPagerViewMaxSectionCount-1) {
+            return TYMakeIndexSection(indexSection.index, kPagerViewMaxSectionCount-1);
+        }
+        return TYMakeIndexSection(0, indexSection.section+1);
+    }
+    
+    if (indexSection.index > 0) {
+        return TYMakeIndexSection(indexSection.index-1, indexSection.section);
+    }
+    if (indexSection.section <= 0) {
+        return TYMakeIndexSection(indexSection.index, 0);
+    }
+    return TYMakeIndexSection(_numberOfItems-1, indexSection.section-1);
+}
+
+- (TYIndexSection)caculateIndexSectionWithOffsetX:(CGFloat)offsetX {
+    if (_numberOfItems <= 0) {
+        return TYMakeIndexSection(0, 0);
+    }
+     UICollectionViewFlowLayout *layout = (UICollectionViewFlowLayout *)_collectionView.collectionViewLayout;
+    CGFloat leftEdge = _isInfiniteLoop ? _layout.sectionInset.left : _layout.onlyOneSectionInset.left;
+    CGFloat width = CGRectGetWidth(_collectionView.frame);
+    CGFloat middleOffset = offsetX + width/2;
+    CGFloat itemWidth = layout.itemSize.width + layout.minimumInteritemSpacing;
+    NSInteger curIndex = 0;
+    NSInteger curSection = 0;
+    if (middleOffset - leftEdge >= 0) {
+        NSInteger itemIndex = (middleOffset - leftEdge+layout.minimumInteritemSpacing/2)/itemWidth;
+        if (itemIndex < 0) {
+            itemIndex = 0;
+        }else if (itemIndex >= _numberOfItems*kPagerViewMaxSectionCount) {
+            itemIndex = _numberOfItems*kPagerViewMaxSectionCount-1;
+        }
+        curIndex = itemIndex%_numberOfItems;
+        curSection = itemIndex/_numberOfItems;
+    }
+    return TYMakeIndexSection(curIndex, curSection);
+}
+
+- (CGFloat)caculateOffsetXAtIndexSection:(TYIndexSection)indexSection{
+    if (_numberOfItems == 0) {
+        return 0;
+    }
+    UICollectionViewFlowLayout *layout = (UICollectionViewFlowLayout *)_collectionView.collectionViewLayout;
+    UIEdgeInsets edge = _isInfiniteLoop ? _layout.sectionInset : _layout.onlyOneSectionInset;
+    CGFloat leftEdge = edge.left;
+    CGFloat rightEdge = edge.right;
+    CGFloat width = CGRectGetWidth(_collectionView.frame);
+    CGFloat itemWidth = layout.itemSize.width + layout.minimumInteritemSpacing;
+    CGFloat offsetX = 0;
+    if (!_isInfiniteLoop && !_layout.itemHorizontalCenter && indexSection.index == _numberOfItems - 1) {
+        offsetX = leftEdge + itemWidth*(indexSection.index + indexSection.section*_numberOfItems) - (width - itemWidth) -  layout.minimumInteritemSpacing + rightEdge;
+    }else {
+        offsetX = leftEdge + itemWidth*(indexSection.index + indexSection.section*_numberOfItems) - layout.minimumInteritemSpacing/2 - (width - itemWidth)/2;
+    }
+    return MAX(offsetX, 0);
+}
+
+- (void)resetPagerViewAtIndex:(NSInteger)index {
+    if (_didLayout && _firstScrollIndex >= 0) {
+        index = _firstScrollIndex;
+        _firstScrollIndex = -1;
+    }
+    if (index < 0) {
+        return;
+    }
+    if (index >= _numberOfItems) {
+        index = 0;
+    }
+    [self scrollToItemAtIndexSection:TYMakeIndexSection(index, _isInfiniteLoop ? kPagerViewMaxSectionCount/3 : 0) animate:NO];
+    if (!_isInfiniteLoop && _indexSection.index < 0) {
+        [self scrollViewDidScroll:_collectionView];
+    }
+}
+
+- (void)recyclePagerViewIfNeed {
+    if (!_isInfiniteLoop) {
+        return;
+    }
+    if (_indexSection.section > kPagerViewMaxSectionCount - kPagerViewMinSectionCount || _indexSection.section < kPagerViewMinSectionCount) {
+        [self resetPagerViewAtIndex:_indexSection.index];
+    }
+}
+
+#pragma mark - UICollectionViewDataSource
+
+- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
+    return _isInfiniteLoop ? kPagerViewMaxSectionCount : 1;
+}
+
+- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
+    _numberOfItems = [_dataSource numberOfItemsInPagerView:self];
+    return _numberOfItems;
+}
+
+- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
+    _dequeueSection = indexPath.section;
+    if (_dataSourceFlags.cellForItemAtIndex) {
+       return [_dataSource pagerView:self cellForItemAtIndex:indexPath.row];
+    }
+    NSAssert(NO, @"pagerView cellForItemAtIndex: is nil!");
+    return nil;
+}
+
+#pragma mark - UICollectionViewDelegateFlowLayout
+
+- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
+    if (!_isInfiniteLoop) {
+        return _layout.onlyOneSectionInset;
+    }
+    if (section == 0 ) {
+        return _layout.firstSectionInset;
+    }else if (section == kPagerViewMaxSectionCount -1) {
+        return _layout.lastSectionInset;
+    }
+    return _layout.middleSectionInset;
+}
+
+- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
+    UICollectionViewCell *cell = [collectionView cellForItemAtIndexPath:indexPath];
+    if ([_delegate respondsToSelector:@selector(pagerView:didSelectedItemCell:atIndex:)]) {
+        [_delegate pagerView:self didSelectedItemCell:cell atIndex:indexPath.item];
+    }
+    if ([_delegate respondsToSelector:@selector(pagerView:didSelectedItemCell:atIndexSection:)]) {
+        [_delegate pagerView:self didSelectedItemCell:cell atIndexSection:TYMakeIndexSection(indexPath.item, indexPath.section)];
+    }
+}
+
+#pragma mark - UIScrollViewDelegate
+
+- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
+    if (!_didLayout) {
+        return;
+    }
+    TYIndexSection newIndexSection =  [self caculateIndexSectionWithOffsetX:scrollView.contentOffset.x];
+    if (_numberOfItems <= 0 || ![self isValidIndexSection:newIndexSection]) {
+        NSLog(@"inVlaidIndexSection:(%ld,%ld)!",(long)newIndexSection.index,(long)newIndexSection.section);
+        return;
+    }
+    TYIndexSection indexSection = _indexSection;
+    _indexSection = newIndexSection;
+    
+    if (_delegateFlags.pagerViewDidScroll) {
+        [_delegate pagerViewDidScroll:self];
+    }
+    
+    if (_delegateFlags.didScrollFromIndexToNewIndex && !TYEqualIndexSection(_indexSection, indexSection)) {
+        //NSLog(@"curIndex %ld",(long)_indexSection.index);
+        [_delegate pagerView:self didScrollFromIndex:MAX(indexSection.index, 0) toIndex:_indexSection.index];
+    }
+}
+
+- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
+    if (_autoScrollInterval > 0) {
+        [self removeTimer];
+    }
+    _beginDragIndexSection = [self caculateIndexSectionWithOffsetX:scrollView.contentOffset.x];
+    if ([_delegate respondsToSelector:@selector(pagerViewWillBeginDragging:)]) {
+        [_delegate pagerViewWillBeginDragging:self];
+    }
+}
+
+- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
+    if (fabs(velocity.x) < 0.35 || !TYEqualIndexSection(_beginDragIndexSection, _indexSection)) {
+        targetContentOffset->x = [self caculateOffsetXAtIndexSection:_indexSection];
+        return;
+    }
+    TYPagerScrollDirection direction = TYPagerScrollDirectionRight;
+    if ((scrollView.contentOffset.x < 0 && targetContentOffset->x <= 0) || (targetContentOffset->x < scrollView.contentOffset.x && scrollView.contentOffset.x < scrollView.contentSize.width - scrollView.frame.size.width)) {
+        direction = TYPagerScrollDirectionLeft;
+    }
+    TYIndexSection indexSection = [self nearlyIndexPathForIndexSection:_indexSection direction:direction];
+    targetContentOffset->x = [self caculateOffsetXAtIndexSection:indexSection];
+}
+
+- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
+    if (_autoScrollInterval > 0) {
+        [self addTimer];
+    }
+    if ([_delegate respondsToSelector:@selector(pagerViewDidEndDragging:willDecelerate:)]) {
+        [_delegate pagerViewDidEndDragging:self willDecelerate:decelerate];
+    }
+}
+
+- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView {
+    if ([_delegate respondsToSelector:@selector(pagerViewWillBeginDecelerating:)]) {
+        [_delegate pagerViewWillBeginDecelerating:self];
+    }
+}
+
+- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
+    [self recyclePagerViewIfNeed];
+    if ([_delegate respondsToSelector:@selector(pagerViewDidEndDecelerating:)]) {
+        [_delegate pagerViewDidEndDecelerating:self];
+    }
+}
+
+- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {
+    [self recyclePagerViewIfNeed];
+    if ([_delegate respondsToSelector:@selector(pagerViewDidEndScrollingAnimation:)]) {
+        [_delegate pagerViewDidEndScrollingAnimation:self];
+    }
+}
+
+#pragma mark - TYCyclePagerTransformLayoutDelegate
+
+- (void)pagerViewTransformLayout:(TYCyclePagerTransformLayout *)pagerViewTransformLayout initializeTransformAttributes:(UICollectionViewLayoutAttributes *)attributes {
+    if (_delegateFlags.initializeTransformAttributes) {
+        [_delegate pagerView:self initializeTransformAttributes:attributes];
+    }
+}
+
+- (void)pagerViewTransformLayout:(TYCyclePagerTransformLayout *)pagerViewTransformLayout applyTransformToAttributes:(UICollectionViewLayoutAttributes *)attributes {
+    if (_delegateFlags.applyTransformToAttributes) {
+        [_delegate pagerView:self applyTransformToAttributes:attributes];
+    }
+}
+
+- (void)layoutSubviews {
+    [super layoutSubviews];
+    BOOL needUpdateLayout = !CGRectEqualToRect(_collectionView.frame, self.bounds);
+    _collectionView.frame = self.bounds;
+    if ((_indexSection.section < 0 || needUpdateLayout) && (_numberOfItems > 0 || _didReloadData)) {
+        _didLayout = YES;
+        [self setNeedUpdateLayout];
+    }
+}
+
+- (void)dealloc {
+    ((TYCyclePagerTransformLayout *)_collectionView.collectionViewLayout).delegate = nil;
+    _collectionView.delegate = nil;
+    _collectionView.dataSource = nil;
+}
+
+@end
+
+
diff --git a/MiniScanner/Supporting Files/CyclePagerView/TYPageControl.h b/MiniScanner/Supporting Files/CyclePagerView/TYPageControl.h
new file mode 100755
index 0000000000000000000000000000000000000000..584596a0a9875b06c2d78fca86ef972bff045350
--- /dev/null
+++ b/MiniScanner/Supporting Files/CyclePagerView/TYPageControl.h	
@@ -0,0 +1,47 @@
+//
+//  TYPageControl.h
+//  TYCyclePagerViewDemo
+//
+//  Created by tany on 2017/6/20.
+//  Copyright © 2017年 tany. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface TYPageControl : UIControl
+
+@property (nonatomic, assign) NSInteger numberOfPages;          // default is 0
+@property (nonatomic, assign) NSInteger currentPage;            // default is 0. value pinned to 0..numberOfPages-1
+
+@property (nonatomic, assign) BOOL hidesForSinglePage;          // hide the the indicator if there is only one page. default is NO
+
+@property (nonatomic, assign) CGFloat pageIndicatorSpaing;
+@property (nonatomic, assign) UIEdgeInsets contentInset; // center will ignore this
+@property (nonatomic, assign ,readonly) CGSize contentSize; // real content size
+
+// override super 
+//@property (nonatomic, assign) UIControlContentVerticalAlignment contentVerticalAlignment;     // how to position content vertically inside control. default is center
+//@property (nonatomic, assign) UIControlContentHorizontalAlignment contentHorizontalAlignment; // how to position content hozontally inside control. default is center
+
+// indicatorTint color
+@property (nullable, nonatomic,strong) UIColor *pageIndicatorTintColor;
+@property (nullable, nonatomic,strong) UIColor *currentPageIndicatorTintColor;
+
+// indicator image
+@property (nullable, nonatomic,strong) UIImage *pageIndicatorImage;
+@property (nullable, nonatomic,strong) UIImage *currentPageIndicatorImage;
+
+@property (nonatomic, assign) UIViewContentMode indicatorImageContentMode; // default is UIViewContentModeCenter
+
+@property (nonatomic, assign) CGSize pageIndicatorSize; // indicator size
+@property (nonatomic, assign) CGSize currentPageIndicatorSize; // default pageIndicatorSize
+
+@property (nonatomic, assign) CGFloat animateDuring; // default 0.3
+
+- (void)setCurrentPage:(NSInteger)currentPage animate:(BOOL)animate;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/MiniScanner/Supporting Files/CyclePagerView/TYPageControl.m b/MiniScanner/Supporting Files/CyclePagerView/TYPageControl.m
new file mode 100755
index 0000000000000000000000000000000000000000..672998a08ca6795116251bfb0604c51d9cf43394
--- /dev/null
+++ b/MiniScanner/Supporting Files/CyclePagerView/TYPageControl.m	
@@ -0,0 +1,285 @@
+//
+//  TYPageControl.m
+//  TYCyclePagerViewDemo
+//
+//  Created by tany on 2017/6/20.
+//  Copyright © 2017年 tany. All rights reserved.
+//
+
+#import "TYPageControl.h"
+
+@interface TYPageControl ()
+// UI
+@property (nonatomic, strong) NSArray<UIImageView *> *indicatorViews;
+
+// Data
+@property (nonatomic, assign) BOOL forceUpdate;
+
+@end
+
+@implementation TYPageControl
+
+#pragma mark - life cycle
+
+- (instancetype)initWithFrame:(CGRect)frame {
+    if (self = [super initWithFrame:frame]) {
+        [self configurePropertys];
+    }
+    return self;
+}
+
+- (instancetype)initWithCoder:(NSCoder *)aDecoder {
+    if (self = [super initWithCoder:aDecoder]) {
+        [self configurePropertys];
+    }
+    return self;
+}
+
+- (void)configurePropertys {
+    self.userInteractionEnabled = NO;
+    _forceUpdate = NO;
+    _animateDuring = 0.3;
+    _pageIndicatorSpaing = 10;
+    _indicatorImageContentMode = UIViewContentModeCenter;
+    _pageIndicatorSize = CGSizeMake(6,6);
+    _currentPageIndicatorSize = _pageIndicatorSize;
+    _pageIndicatorTintColor = [UIColor colorWithRed:128/255. green:128/255. blue:128/255. alpha:1];
+    _currentPageIndicatorTintColor = [UIColor whiteColor];
+}
+
+- (void)willMoveToSuperview:(UIView *)newSuperview {
+    [super willMoveToSuperview:newSuperview];
+    if (newSuperview) {
+        _forceUpdate = YES;
+        [self updateIndicatorViews];
+        _forceUpdate = NO;
+    }
+}
+
+#pragma mark - getter setter
+
+- (CGSize)contentSize {
+    CGFloat width = (_indicatorViews.count - 1) * (_pageIndicatorSize.width + _pageIndicatorSpaing) + _pageIndicatorSize.width + _contentInset.left +_contentInset.right;
+    CGFloat height = _currentPageIndicatorSize.height + _contentInset.top + _contentInset.bottom;
+    return CGSizeMake(width, height);
+}
+
+- (void)setNumberOfPages:(NSInteger)numberOfPages {
+    if (numberOfPages == _numberOfPages) {
+        return;
+    }
+    _numberOfPages = numberOfPages;
+    if (_currentPage >= numberOfPages) {
+        _currentPage = 0;
+    }
+    [self updateIndicatorViews];
+    if (_indicatorViews.count > 0) {
+        [self setNeedsLayout];
+    }
+}
+
+- (void)setCurrentPage:(NSInteger)currentPage {
+    if (_currentPage == currentPage || _indicatorViews.count <= currentPage) {
+        return;
+    }
+    _currentPage = currentPage;
+    if (!CGSizeEqualToSize(_currentPageIndicatorSize, _pageIndicatorSize)) {
+        [self setNeedsLayout];
+    }
+    [self updateIndicatorViewsBehavior];
+    if (self.userInteractionEnabled) {
+        [self sendActionsForControlEvents:UIControlEventValueChanged];
+    }
+}
+
+- (void)setCurrentPage:(NSInteger)currentPage animate:(BOOL)animate {
+    if (animate) {
+        [UIView animateWithDuration:_animateDuring animations:^{
+            [self setCurrentPage:currentPage];
+        }];
+    }else {
+        [self setCurrentPage:currentPage];
+    }
+}
+
+- (void)setPageIndicatorImage:(UIImage *)pageIndicatorImage {
+    _pageIndicatorImage = pageIndicatorImage;
+    [self updateIndicatorViewsBehavior];
+}
+
+- (void)setCurrentPageIndicatorImage:(UIImage *)currentPageIndicatorImage {
+    _currentPageIndicatorImage = currentPageIndicatorImage;
+    [self updateIndicatorViewsBehavior];
+}
+
+- (void)setPageIndicatorTintColor:(UIColor *)pageIndicatorTintColor {
+    _pageIndicatorTintColor = pageIndicatorTintColor;
+    [self updateIndicatorViewsBehavior];
+}
+
+- (void)setCurrentPageIndicatorTintColor:(UIColor *)currentPageIndicatorTintColor {
+    _currentPageIndicatorTintColor = currentPageIndicatorTintColor;
+    [self updateIndicatorViewsBehavior];
+}
+
+- (void)setPageIndicatorSize:(CGSize)pageIndicatorSize {
+    if (CGSizeEqualToSize(_pageIndicatorSize, pageIndicatorSize)) {
+        return;
+    }
+    _pageIndicatorSize = pageIndicatorSize;
+    if (CGSizeEqualToSize(_currentPageIndicatorSize, CGSizeZero) || (_currentPageIndicatorSize.width < pageIndicatorSize.width && _currentPageIndicatorSize.height < pageIndicatorSize.height)) {
+        _currentPageIndicatorSize = pageIndicatorSize;
+    }
+    if (_indicatorViews.count > 0) {
+        [self setNeedsLayout];
+    }
+}
+
+- (void)setPageIndicatorSpaing:(CGFloat)pageIndicatorSpaing {
+    _pageIndicatorSpaing = pageIndicatorSpaing;
+    if (_indicatorViews.count > 0) {
+        [self setNeedsLayout];
+    }
+}
+
+- (void)setCurrentPageIndicatorSize:(CGSize)currentPageIndicatorSize {
+    if (CGSizeEqualToSize(_currentPageIndicatorSize, currentPageIndicatorSize)) {
+        return;
+    }
+    _currentPageIndicatorSize = currentPageIndicatorSize;
+    if (_indicatorViews.count > 0) {
+        [self setNeedsLayout];
+    }
+}
+
+- (void)setContentHorizontalAlignment:(UIControlContentHorizontalAlignment)contentHorizontalAlignment {
+    [super setContentHorizontalAlignment:contentHorizontalAlignment];
+    if (_indicatorViews.count > 0) {
+        [self setNeedsLayout];
+    }
+}
+
+- (void)setContentVerticalAlignment:(UIControlContentVerticalAlignment)contentVerticalAlignment {
+    [super setContentVerticalAlignment:contentVerticalAlignment];
+    if (_indicatorViews.count > 0) {
+        [self setNeedsLayout];
+    }
+}
+
+#pragma mark - update indicator
+
+- (void)updateIndicatorViews {
+    if (!self.superview && !_forceUpdate) {
+        return;
+    }
+    if (_indicatorViews.count == _numberOfPages) {
+        [self updateIndicatorViewsBehavior];
+        return;
+    }
+    NSMutableArray *indicatorViews = _indicatorViews ? [_indicatorViews mutableCopy] :[NSMutableArray array];
+    if (indicatorViews.count < _numberOfPages) {
+        for (NSInteger idx = indicatorViews.count; idx < _numberOfPages; ++idx) {
+            UIImageView *indicatorView = [[UIImageView alloc]init];
+            indicatorView.contentMode = _indicatorImageContentMode;
+            [self addSubview:indicatorView];
+            [indicatorViews addObject:indicatorView];
+        }
+    }else if (indicatorViews.count > _numberOfPages) {
+        for (NSInteger idx = indicatorViews.count - 1; idx >= _numberOfPages; --idx) {
+            UIImageView *indicatorView = indicatorViews[idx];
+            [indicatorView removeFromSuperview];
+            [indicatorViews removeObjectAtIndex:idx];
+        }
+    }
+    _indicatorViews = [indicatorViews copy];
+    [self updateIndicatorViewsBehavior];
+}
+
+- (void)updateIndicatorViewsBehavior {
+    if (_indicatorViews.count == 0 || (!self.superview && !_forceUpdate)) {
+        return;
+    }
+    if (_hidesForSinglePage && _indicatorViews.count == 1) {
+        UIImageView *indicatorView = _indicatorViews.lastObject;
+        indicatorView.hidden = YES;
+        return;
+    }
+    NSInteger index = 0;
+    for (UIImageView *indicatorView in _indicatorViews) {
+        if (_pageIndicatorImage) {
+            indicatorView.contentMode = _indicatorImageContentMode;
+            indicatorView.image = _currentPage == index ? _currentPageIndicatorImage : _pageIndicatorImage;
+        }else {
+            indicatorView.image = nil;
+            indicatorView.backgroundColor = _currentPage == index ? _currentPageIndicatorTintColor : _pageIndicatorTintColor;
+        }
+        indicatorView.hidden = NO;
+        ++index;
+    }
+}
+
+#pragma mark - layout
+
+- (void)layoutIndicatorViews {
+    if (_indicatorViews.count == 0) {
+        return;
+    }
+    CGFloat orignX = 0;
+    CGFloat centerY = 0;
+    CGFloat pageIndicatorSpaing = _pageIndicatorSpaing;
+    switch (self.contentHorizontalAlignment) {
+        case UIControlContentHorizontalAlignmentCenter:
+            // ignore contentInset
+            orignX = (CGRectGetWidth(self.frame) - (_indicatorViews.count - 1) * (_pageIndicatorSize.width + _pageIndicatorSpaing) - _currentPageIndicatorSize.width)/2;
+            break;
+        case UIControlContentHorizontalAlignmentLeft:
+            orignX = _contentInset.left;
+            break;
+        case UIControlContentHorizontalAlignmentRight:
+            orignX = CGRectGetWidth(self.frame) - ((_indicatorViews.count - 1) * (_pageIndicatorSize.width + _pageIndicatorSpaing) + _currentPageIndicatorSize.width) - _contentInset.right;
+            break;
+        case UIControlContentHorizontalAlignmentFill:
+            orignX = _contentInset.left;
+            if (_indicatorViews.count > 1) {
+                pageIndicatorSpaing = (CGRectGetWidth(self.frame) - _contentInset.left - _contentInset.right - _pageIndicatorSize.width - (_indicatorViews.count - 1) * _pageIndicatorSize.width)/(_indicatorViews.count - 1);
+            }
+            break;
+        default:
+            break;
+    }
+    switch (self.contentVerticalAlignment) {
+        case UIControlContentVerticalAlignmentCenter:
+            centerY = CGRectGetHeight(self.frame)/2;
+            break;
+        case UIControlContentVerticalAlignmentTop:
+            centerY = _contentInset.top + _currentPageIndicatorSize.height/2;
+            break;
+        case UIControlContentVerticalAlignmentBottom:
+            centerY = CGRectGetHeight(self.frame) - _currentPageIndicatorSize.height/2 - _contentInset.bottom;
+            break;
+        case UIControlContentVerticalAlignmentFill:
+            centerY = (CGRectGetHeight(self.frame) - _contentInset.top - _contentInset.bottom)/2 + _contentInset.top;
+            break;
+        default:
+            break;
+    }
+    NSInteger index = 0;
+    for (UIImageView *indicatorView in _indicatorViews) {
+        if (_pageIndicatorImage) {
+            indicatorView.layer.cornerRadius = 0;
+        }else {
+            indicatorView.layer.cornerRadius = _currentPage == index ? _currentPageIndicatorSize.height/2 : _pageIndicatorSize.height/2;
+        }
+        CGSize size = index == _currentPage ? _currentPageIndicatorSize : _pageIndicatorSize;
+        indicatorView.frame = CGRectMake(orignX, centerY - size.height/2, size.width, size.height);
+        orignX += size.width + pageIndicatorSpaing;
+        ++index;
+    }
+}
+
+- (void)layoutSubviews {
+    [super layoutSubviews];
+    [self layoutIndicatorViews];
+}
+
+@end
diff --git a/MiniScanner/Supporting Files/Info.plist b/MiniScanner/Supporting Files/Info.plist
index c0684c7307f2fcde8ac0788ddabc5a2d378f263c..328f2afed01ac7cf3631aaaf230308523caa91a7 100644
--- a/MiniScanner/Supporting Files/Info.plist	
+++ b/MiniScanner/Supporting Files/Info.plist	
@@ -5,7 +5,7 @@
 	<key>CFBundleDevelopmentRegion</key>
 	<string>$(DEVELOPMENT_LANGUAGE)</string>
 	<key>CFBundleDisplayName</key>
-	<string>MiniScanner</string>
+	<string>BeinScanner</string>
 	<key>CFBundleExecutable</key>
 	<string>$(EXECUTABLE_NAME)</string>
 	<key>CFBundleIdentifier</key>
@@ -26,6 +26,19 @@
 	<string>Let the $(PRODUCT_NAME) use device camera in order to scan your documents</string>
 	<key>NSPhotoLibraryUsageDescription</key>
 	<string>Let the $(PRODUCT_NAME) use device photo library in order to scan your documents</string>
+	<key>UIAppFonts</key>
+	<array>
+		<string>Tajawal-ExtraBold.ttf</string>
+		<string>Tajawal-Light.ttf</string>
+		<string>Tajawal-Bold.ttf</string>
+		<string>Tajawal-ExtraLight.ttf</string>
+		<string>Tajawal-Regular.ttf</string>
+		<string>Tajawal-Medium.ttf</string>
+		<string>Tajawal-Black.ttf</string>
+		<string>Poppins-Regular.ttf</string>
+		<string>Poppins-Medium.ttf</string>
+		<string>Poppins-Bold.ttf</string>
+	</array>
 	<key>UIApplicationSceneManifest</key>
 	<dict>
 		<key>UIApplicationSupportsMultipleScenes</key>
@@ -56,29 +69,13 @@
 	<key>UISupportedInterfaceOrientations</key>
 	<array>
 		<string>UIInterfaceOrientationPortrait</string>
-		<string>UIInterfaceOrientationLandscapeLeft</string>
-		<string>UIInterfaceOrientationLandscapeRight</string>
-		<string>UIInterfaceOrientationPortraitUpsideDown</string>
 	</array>
 	<key>UISupportedInterfaceOrientations~ipad</key>
 	<array>
-		<string>UIInterfaceOrientationPortrait</string>
-		<string>UIInterfaceOrientationPortraitUpsideDown</string>
 		<string>UIInterfaceOrientationLandscapeLeft</string>
 		<string>UIInterfaceOrientationLandscapeRight</string>
-	</array>
-	<key>UIAppFonts</key>
-	<array>
-		<string>Tajawal-ExtraBold.ttf</string>
-		<string>Tajawal-Light.ttf</string>
-		<string>Tajawal-Bold.ttf</string>
-		<string>Tajawal-ExtraLight.ttf</string>
-		<string>Tajawal-Regular.ttf</string>
-		<string>Tajawal-Medium.ttf</string>
-		<string>Tajawal-Black.ttf</string>
-		<string>Poppins-Regular.ttf</string>
-		<string>Poppins-Medium.ttf</string>
-		<string>Poppins-Bold.ttf</string>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationPortraitUpsideDown</string>
 	</array>
 </dict>
 </plist>
diff --git a/MiniScanner/Supporting Files/MiniScanner_Bridging_Header.h b/MiniScanner/Supporting Files/MiniScanner_Bridging_Header.h
new file mode 100644
index 0000000000000000000000000000000000000000..448531c48caa660ed79db03a7fe93b3b7e6ed52b
--- /dev/null
+++ b/MiniScanner/Supporting Files/MiniScanner_Bridging_Header.h	
@@ -0,0 +1,15 @@
+//
+//  MiniScanner_Bridging_Header.h
+//  MiniScanner
+//
+//  Created by George Makhoul on 11/06/2024.
+//  Copyright © 2024 AppsNectar. All rights reserved.
+//
+
+#ifndef MiniScanner_Bridging_Header_h
+#define MiniScanner_Bridging_Header_h
+
+#import "TYCyclePagerView.h"
+#import "TYPageControl.h"
+
+#endif /* MiniScanner_Bridging_Header_h */
diff --git a/Podfile b/Podfile
index 8ab3916f8a07d6e298c51e694759d1903e86067d..38f752289bdc7c80d6575d1e4a28c161f3645dcd 100644
--- a/Podfile
+++ b/Podfile
@@ -10,6 +10,8 @@ target 'MiniScanner' do
   pod 'IQKeyboardManagerSwift'
   pod 'ImagePicker'
   pod 'NBBottomSheet'
+  pod 'FSPagerView'
+
 
 
 post_install do |installer|
diff --git a/Podfile.lock b/Podfile.lock
index 96a76f00dd54ab776c733e25f65f838270d1d26b..15986835f574e48a2ba1728ba6a0a3769b91cf7f 100644
--- a/Podfile.lock
+++ b/Podfile.lock
@@ -1,10 +1,12 @@
 PODS:
+  - FSPagerView (0.8.3)
   - ImagePicker (3.2.0)
   - IQKeyboardManagerSwift (7.0.3)
   - LanguageManager-iOS (1.2.7)
   - NBBottomSheet (1.2.0)
 
 DEPENDENCIES:
+  - FSPagerView
   - ImagePicker
   - IQKeyboardManagerSwift
   - LanguageManager-iOS
@@ -12,17 +14,19 @@ DEPENDENCIES:
 
 SPEC REPOS:
   trunk:
+    - FSPagerView
     - ImagePicker
     - IQKeyboardManagerSwift
     - LanguageManager-iOS
     - NBBottomSheet
 
 SPEC CHECKSUMS:
+  FSPagerView: 670405b2f18e2a87fa37f20b00de783e562c25a8
   ImagePicker: 1d950bbb2422548ed58791b4ec7f42fe42920511
   IQKeyboardManagerSwift: f9c5dc36cba16ddd2e51fa7d51c34a2e083029b5
   LanguageManager-iOS: 6b2dbb3793445827114708f0759b76e96932d7c8
   NBBottomSheet: aa7a52809b2d7b193f733247b8ce391a59904372
 
-PODFILE CHECKSUM: 99d4cce8ced2a9accaa7e878545a1ac36d8bb5fc
+PODFILE CHECKSUM: 52accaf9c5f2924a92fc166365082451576507fe
 
 COCOAPODS: 1.14.3
diff --git a/Pods/FSPagerView/LICENSE b/Pods/FSPagerView/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..a1e3bb343253eb82a5fd78604af8c7c14be3bb4b
--- /dev/null
+++ b/Pods/FSPagerView/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2017 FSPagerView (https://github.com/WenchaoD/FSPagerView)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/Pods/FSPagerView/README-OBJECTIVE-C.md b/Pods/FSPagerView/README-OBJECTIVE-C.md
new file mode 100644
index 0000000000000000000000000000000000000000..ee4cbd71bf9b2af95754bd5a097f48363bcbe489
--- /dev/null
+++ b/Pods/FSPagerView/README-OBJECTIVE-C.md
@@ -0,0 +1,416 @@
+![fspagerview](https://cloud.githubusercontent.com/assets/5186464/24086370/45e7e8dc-0d49-11e7-86aa-139354fe00c5.jpg)
+
+[![Languages](https://img.shields.io/badge/language-swift%204.2%20|%20objc-FF69B4.svg?style=plastic)](#) <br/>
+[![Platform](https://img.shields.io/badge/platform-iOS%20|%20tvOS-blue.svg?style=plastic)](http://cocoadocs.org/docsets/FSPagerView) 
+[![Version](https://img.shields.io/cocoapods/v/FSPagerView.svg?style=flat)](http://cocoadocs.org/docsets/FSPagerView)
+[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=plastic)](https://github.com/Carthage/Carthage)
+[![SPM compatible](https://img.shields.io/badge/SPM-compatible-FF9966.svg?style=plastic)](https://swift.org/package-manager/)
+
+|[<b>SWIFT</b>](https://github.com/WenchaoD/FSPagerView/blob/master/README.md)|<b>OBJECTIVE-C</b>|
+|---|---|
+
+**FSPagerView** is an elegant Screen Slide Library implemented primarily with ***UICollectionView***. It is extremely helpful for making Banner、Product Show、Welcome/Guide Pages、Screen/ViewController Sliders.
+
+## Features
+*  ***Infinite*** scrolling.
+*  ***Automatic*** Sliding.
+*  Support ***Horizontal*** and ***Vertical*** paging.
+*  Fully customizable item, with predefined banner-style item.
+*  Fully customizable ***page control***.
+*  Rich build-in 3D transformers.
+*  ***Simple*** and ***Delightful*** api usage.
+*  Support **SWIFT** and **OBJECTIVE-C**.
+
+## Demo1 Banner
+
+| Banner |
+|---|
+|![9](https://cloud.githubusercontent.com/assets/5186464/22688057/9003d880-ed65-11e6-882e-4587c97c8878.gif) |
+
+### automaticSlidingInterval
+The time interval of automatic sliding. 0 means disabling automatic sliding. Default is 0.
+
+**e.g.**
+
+```objc
+pagerView.automaticSlidingInterval = 3.0;
+```
+
+
+### isInfinite
+A boolean value indicates whether the pager view has infinite number of items. Default is false.
+
+**e.g.**
+
+```objc
+pagerView.isInfinite = YES;
+```
+
+### decelerationDistance
+An unsigned integer value that determines the paging distance of the pager view, which indicates the number of passing items during the deceleration. When the value of this property is FSPagerViewAutomaticDistance, the actual 'distance' is automatically calculated according to the scrolling speed of the pager view. Default is 1.
+
+**e.g.**
+
+```objc
+pagerView.decelerationDistance = 2
+```
+
+### itemSize
+The item size of the pager view. When the value of this property is FSPagerViewAutomaticSize, the items fill the entire visible area of the pager view. Default is FSPagerViewAutomaticSize.
+
+
+**e.g.**
+
+```objc
+pagerView.itemSize = CGSizeMake(200, 180);
+```
+
+### interitemSpacing
+The spacing to use between items in the pager view. Default is 0.
+
+**e.g.**
+
+```objc
+pagerView.interitemSpacing = 10;
+```
+
+## Demo2 - Transformers
+
+|Cross Fading|
+|---|
+| ![1](https://cloud.githubusercontent.com/assets/5186464/22686429/1983b97e-ed5f-11e6-9a32-44c1830df7ac.gif) |
+
+```objc
+pagerView.transformer = [[FSPagerViewTransformer alloc] initWithType:FSPagerViewTransformerTypeCrossFading];
+```
+---
+
+
+
+|Zoom Out|
+|---|
+| ![2](https://cloud.githubusercontent.com/assets/5186464/22686426/19830862-ed5f-11e6-90be-8fb1319cd125.gif) |
+
+```objc
+pagerView.transformer = [[FSPagerViewTransformer alloc] initWithType:FSPagerViewTransformerTypeZoomOut];
+```
+---
+
+
+|Depth|
+|---|
+| ![3](https://cloud.githubusercontent.com/assets/5186464/22686430/19856c1a-ed5f-11e6-8187-9e4395b7597c.gif) |
+
+```objc
+pagerView.transformer = [[FSPagerViewTransformer alloc] initWithType:FSPagerViewTransformerTypeDepth];
+```
+---
+
+
+|Linear|
+|---|
+| ![4](https://cloud.githubusercontent.com/assets/5186464/22686428/198368c0-ed5f-11e6-95df-cfcfe9bc3f29.gif) |
+
+```objc
+pagerView.transformer = [[FSPagerViewTransformer alloc] initWithType:FSPagerViewTransformerTypeLinear];
+```
+---
+
+
+|Overlap|
+|---|
+| ![5](https://cloud.githubusercontent.com/assets/5186464/22686431/198905aa-ed5f-11e6-9312-ec371c8c4e44.gif) |
+
+```objc
+pagerView.transformer = [[FSPagerViewTransformer alloc] initWithType:FSPagerViewTransformerTypeOverlap];
+```
+---
+
+
+|Ferris Wheel|
+|------|
+| ![6](https://cloud.githubusercontent.com/assets/5186464/22686427/19831c08-ed5f-11e6-8bdb-30e762a85d4b.gif) |
+
+```objc
+pagerView.transformer = [[FSPagerViewTransformer alloc] initWithType:FSPagerViewTransformerTypeFerrisWheel];
+```
+---
+
+
+|Inverted Ferris Wheel|
+|------|
+| ![7](https://cloud.githubusercontent.com/assets/5186464/22686433/19b669a0-ed5f-11e6-8bf0-dc23edf8101f.gif) |
+
+```objc
+pagerView.transformer = [[FSPagerViewTransformer alloc] initWithType:FSPagerViewTransformerTypeInvertedFerrisWheel];
+```
+---
+
+
+|Cover Flow|
+|------|
+| ![8](https://cloud.githubusercontent.com/assets/5186464/22686432/19b567f8-ed5f-11e6-885d-bd660c98b507.gif) |
+```objc
+pagerView.transformer = [[FSPagerViewTransformer alloc] initWithType:FSPagerViewTransformerTypeCoverFlow];
+```
+---
+
+|Cubic|
+|------|
+| ![9](https://cloud.githubusercontent.com/assets/5186464/23461598/8875080c-fec5-11e6-8db6-6d8864acfcc1.gif) |
+```objc
+pagerView.transformer = [[FSPagerViewTransformer alloc] initWithType:FSPagerViewTransformerTypeCubic];
+```
+---
+
+
+> Customize your own transformer by subclassing`FSPagerViewTransformer.`
+
+
+## Demo3 Page Control
+|Page Control|
+|---|
+|![10](https://cloud.githubusercontent.com/assets/5186464/22689720/2baabdb0-ed6d-11e6-8287-ef7a2c0f64bc.gif)
+|
+
+### numberOfPages
+The number of page indicators of the page control. Default is 0.
+
+**e.g.**
+
+```objc
+pageControl.numberOfPages = 5;
+```
+
+### currentPage
+The current page, highlighted by the page control. Default is 0.
+
+**e.g.**
+
+```objc
+pageControl.currentPage = 1;
+```
+### contentHorizontalAlignment
+The horizontal alignment of content within the control’s bounds. Default is center.
+
+**e.g.**
+
+```objc
+pageControl.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;
+```
+
+### setStrokeColor:forState:
+Sets the stroke color for page indicators to use for the specified state. (selected/normal).
+
+**e.g.**
+
+```objc
+[pageControl setStrokeColor:[UIColor greenColor] forState:UIControlStateNormal];
+[pageControl setStrokeColor:[UIColor yellowColor] forState:UIControlStateSelected];
+```
+
+
+### setFillColor:forState:
+Sets the fill color for page indicators to use for the specified state. (selected/normal).
+
+**e.g.**
+
+```objc
+[pageControl setFillColor:[UIColor grayColor] forState:UIControlStateNormal];
+[pageControl setFillColor:[UIColor whiteColor] forState:UIControlStateSelected];
+```
+
+### setImage:forState:
+Sets the image for page indicators to use for the specified state. (selected/normal).
+
+**e.g.**
+
+```objc
+[pageControl setImage:[UIImage imageNamed:@"image1"] forState:UIControlStateNormal];
+[pageControl setImage:[UIImage imageNamed:@"image2"] forState:UIControlStateSelected];
+```
+
+### setPath:forState:
+Sets the path for page indicators to use for the specified state. (selected/normal).
+
+**e.g.**
+
+```objc
+[pageControl setPath:[UIBezierPath bezierPathWithRect:CGRectMake(0, 0, 8, 8)] forState:UIControlStateNormal];
+[pageControl setPath: [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, 8, 8)]  forState:UIControlStateSelected];
+```
+
+## Installation
+* Manually
+* Cocoapods
+* Carthage
+
+### Manually
+1. ***[Download](#)*** the source code.
+2. Extract the zip file, simply drag folder ***Sources*** into your project.
+3. Make sure ***Copy items if needed*** is checked.
+
+### Cocoapods
+```ruby
+use_frameworks!
+target '<Your Target Name>' do
+    pod 'FSPagerView'
+end
+```
+
+### Carthage
+```ruby
+github "WenchaoD/FSPagerView"
+```
+
+## Tutorial
+* [Getting started](#getting_started)
+* [Implement FSPagerViewDataSource](#implement_fspagerviewdatasource)
+* [Implement FSPagerViewDelegate](#implement_fspagerviewdelegate)
+
+### 1. Getting started <a id='getting_started'></a>
+
+* Getting started with code
+
+```objc
+// Create a pager view
+FSPagerView *pagerView = [[FSPagerView alloc] initWithFrame:frame1];
+pagerView.dataSource = self;
+pagerView.delegate = self;
+[pagerView registerClass:[FSPagerViewCell class] forCellWithReuseIdentifier:@"cell"];
+[self.view addSubview:pagerView];
+// Create a page control
+FSPageControl *pageControl = [[FSPageControl alloc] initWithFrame:frame2];
+[self.view addSubview:pageControl];
+```
+
+* Getting started with Interface Builder <br/>
+1、Simply drag **UIView** instance into your View Controller, Change the `Custom Class` to `FSPagerView`. (Or `FSPageControl`) <br/>
+2、Link the `dataSource` and `delegate` property of **FSPagerView** to your View Controller. <br/>
+3、Register a cell class.
+
+```objc
+- (void)viewDidLoad 
+{
+	[super viewDidLoad];
+	[self.pagerView registerClass:[FSPagerViewCell class] forCellWithReuseIdentifier:@"cell"];
+}
+```
+
+
+### 2. Implement FSPagerViewDataSource <a id='implement_fspagerviewdatasource'></a>
+```objc
+- (NSInteger)numberOfItemsInpagerView:(FSPagerView *)pagerView
+{
+    return numberOfItems;
+}
+    
+- (FSPagerViewCell *)pagerView:(FSPagerView *)pagerView cellForItemAtIndex:(NSInteger)index
+{
+    FSPagerViewCell *cell = [pagerView dequeueReusableCellWithReuseIdentifier:@"cell" atIndex:index];
+    cell.imageView.image = ...;
+    cell.textLabel.text = ...;
+    return cell;
+}
+```
+
+### 3. Implement FSPagerViewDelegate <a id='implement_fspagerviewdelegate'></a>
+
+```objc
+- (BOOL)pagerView:(FSPagerView *)pagerView shouldHighlightItemAtIndex:(NSInteger)index;
+```
+> Asks the delegate if the item should be highlighted during tracking.
+
+---
+
+```objc
+- (void)pagerView:(FSPagerView *)pagerView didHighlightItemAtIndex:(NSInteger)index;
+```
+> Tells the delegate that the item at the specified index was highlighted.
+    
+---
+    
+```objc
+- (BOOL)pagerView:(FSPagerView *)pagerView shouldSelectItemAtIndex:(NSInteger)index;
+```
+> Asks the delegate if the specified item should be selected.
+    
+---
+    
+```objc
+- (void)pagerView:(FSPagerView *)pagerView didSelectItemAtIndex:(NSInteger)index;
+```
+> Tells the delegate that the item at the specified index was selected.
+    
+---
+    
+```objc
+- (void)pagerView:(FSPagerView *)pagerView willDisplayCell:(FSPagerViewCell *)cell forItemAtIndex:(NSInteger)index;
+```
+> Tells the delegate that the specified cell is about to be displayed in the pager view.
+    
+---
+    
+```objc
+- (void)pagerView:(FSPagerView *)pagerView didEndDisplayingCell:(FSPagerViewCell *)cell forItemAtIndex:(NSInteger)index;
+```
+> Tells the delegate that the specified cell was removed from the pager view.
+    
+---
+    
+```objc
+- (void)pagerViewWillBeginDragging:(FSPagerView *)pagerView;
+```
+> Tells the delegate when the pager view is about to start scrolling the content.
+    
+---
+    
+```objc
+- (void)pagerViewWillEndDragging:(FSPagerView *) pagerView targetIndex:(NSInteger)index:
+```
+> Tells the delegate when the user finishes scrolling the content.
+    
+---
+    
+```objc
+- (void)pagerViewDidScroll:(FSPagerView *)pagerView;
+```
+> Tells the delegate when the user scrolls the content view within the receiver.
+    
+---
+    
+```objc
+- (void)pagerViewDidEndScrollAnimation:(FSPagerView *)pagerView;
+```
+> Tells the delegate when a scrolling animation in the pager view concludes.
+    
+---
+    
+```objc
+- (void)pagerViewDidEndDecelerating:(FSPagerView *)pagerView;
+```
+> Tells the delegate that the pager view has ended decelerating the scrolling movement.
+
+---
+
+## <a id="support"></a>Support this repo
+* ***Star*** this repo <a href="#"><img style="margin-bottom:-12px" width="72" alt="star" src="https://cloud.githubusercontent.com/assets/5186464/15383105/fcf9cdf0-1dc2-11e6-88db-bf221042a584.png"></a>
+<br/>
+
+* Buy me a ***Coffee***. ☕️ 
+   
+   <a href="https://www.paypal.me/WenchaoD" target="_blank"><img src="https://www.paypalobjects.com/webstatic/i/logo/rebrand/ppcom.svg" width="100" height="40" style="margin-bottom:-15px;"></a> &nbsp;&nbsp;|&nbsp;&nbsp;
+	<a href="https://user-images.githubusercontent.com/5186464/45949944-46960480-c030-11e8-9e90-30b015698cf6.png" target="_blank"><img src="http://a1.mzstatic.com/us/r30/Purple49/v4/50/16/b3/5016b341-39c1-b47b-2994-d7e23823baed/icon175x175.png" width="40" height="40" style="margin-bottom:-15px;-webkit-border-radius:10px;border:1px solid rgba(30, 154, 236, 1);"></a> &nbsp;&nbsp;|&nbsp;&nbsp;
+	<a href="https://cloud.githubusercontent.com/assets/5186464/15096872/b06f3a3a-153c-11e6-89f9-2e9c7b88ef42.png" target="_blank"><img src="http://a4.mzstatic.com/us/r30/Purple49/v4/23/31/14/233114f8-2e8d-7b63-8dc5-85d29893061e/icon175x175.jpeg" height="40" width="40" style="margin-bottom:-15px; -webkit-border-radius: 10px;border:1px solid rgba(43, 177, 0, 1)"></a>
+
+--- 
+	
+## Author
+* ***微博:[@WenchaoD](http://weibo.com/WenchaoD)***
+* ***Twitter: [@WenchaoD](https://twitter.com/WenchaoD)***
+* Other repos:
+	* ***[FSCalendar](https://github.com/WenchaoD/FSCalendar)*** 
+
+---
+
+# [Documentation](http://cocoadocs.org/docsets/FSPagerView)
\ No newline at end of file
diff --git a/Pods/FSPagerView/Sources/FSPageControl.swift b/Pods/FSPagerView/Sources/FSPageControl.swift
new file mode 100644
index 0000000000000000000000000000000000000000..e3bd74504fa06b35311b9517149856f34665b327
--- /dev/null
+++ b/Pods/FSPagerView/Sources/FSPageControl.swift
@@ -0,0 +1,310 @@
+//
+//  FSPageControl.swift
+//  FSPagerView
+//
+//  Created by Wenchao Ding on 17/12/2016.
+//  Copyright © 2016 Wenchao Ding. All rights reserved.
+//
+
+import UIKit
+
+@IBDesignable
+open class FSPageControl: UIControl {
+    
+    /// The number of page indicators of the page control. Default is 0.
+    @IBInspectable
+    open var numberOfPages: Int = 0 {
+        didSet {
+            self.setNeedsCreateIndicators()
+        }
+    }
+    
+    /// The current page, highlighted by the page control. Default is 0.
+    @IBInspectable
+    open var currentPage: Int = 0 {
+        didSet {
+            self.setNeedsUpdateIndicators()
+        }
+    }
+    
+    /// The spacing to use of page indicators in the page control.
+    @IBInspectable
+    open var itemSpacing: CGFloat = 6 {
+        didSet {
+            self.setNeedsUpdateIndicators()
+        }
+    }
+    
+    /// The spacing to use between page indicators in the page control.
+    @IBInspectable
+    open var interitemSpacing: CGFloat = 6 {
+        didSet {
+            self.setNeedsLayout()
+        }
+    }
+    
+    /// The distance that the page indicators is inset from the enclosing page control.
+    @IBInspectable
+    open var contentInsets: UIEdgeInsets = .zero {
+        didSet {
+            self.setNeedsLayout()
+        }
+    }
+    
+    /// The horizontal alignment of content within the control’s bounds. Default is center.
+    open override var contentHorizontalAlignment: UIControl.ContentHorizontalAlignment {
+        didSet {
+            self.setNeedsLayout()
+        }
+    }
+    
+    /// Hide the indicator if there is only one page. default is NO
+    @IBInspectable
+    open var hidesForSinglePage: Bool = false {
+        didSet {
+            self.setNeedsUpdateIndicators()
+        }
+    }
+    
+    internal var strokeColors: [UIControl.State: UIColor] = [:]
+    internal var fillColors: [UIControl.State: UIColor] = [:]
+    internal var paths: [UIControl.State: UIBezierPath] = [:]
+    internal var images: [UIControl.State: UIImage] = [:]
+    internal var alphas: [UIControl.State: CGFloat] = [:]
+    internal var transforms: [UIControl.State: CGAffineTransform] = [:]
+    
+    fileprivate weak var contentView: UIView!
+    
+    fileprivate var needsUpdateIndicators = false
+    fileprivate var needsCreateIndicators = false
+    fileprivate var indicatorLayers = [CAShapeLayer]()
+    
+    public override init(frame: CGRect) {
+        super.init(frame: frame)
+        commonInit()
+    }
+    
+    public required init?(coder aDecoder: NSCoder) {
+        super.init(coder: aDecoder)
+        commonInit()
+    }
+    
+    open override func layoutSubviews() {
+        super.layoutSubviews()
+        self.contentView.frame = {
+            let x = self.contentInsets.left
+            let y = self.contentInsets.top
+            let width = self.frame.width - self.contentInsets.left - self.contentInsets.right
+            let height = self.frame.height - self.contentInsets.top - self.contentInsets.bottom
+            let frame = CGRect(x: x, y: y, width: width, height: height)
+            return frame
+        }()
+    }
+    
+    open override func layoutSublayers(of layer: CALayer) {
+        super.layoutSublayers(of: layer)
+        
+        let diameter = self.itemSpacing
+        let spacing = self.interitemSpacing
+        var x: CGFloat = {
+            switch self.contentHorizontalAlignment {
+            case .left, .leading:
+                return 0
+            case .center, .fill:
+                let midX = self.contentView.bounds.midX
+                let amplitude = CGFloat(self.numberOfPages/2) * diameter + spacing*CGFloat((self.numberOfPages-1)/2)
+                return midX - amplitude
+            case .right, .trailing:
+                let contentWidth = diameter*CGFloat(self.numberOfPages) + CGFloat(self.numberOfPages-1)*spacing
+                return contentView.frame.width - contentWidth
+            default:
+                return 0
+            }
+        }()
+        for (index,value) in self.indicatorLayers.enumerated() {
+            let state: UIControl.State = (index == self.currentPage) ? .selected : .normal
+            let image = self.images[state]
+            let size = image?.size ?? CGSize(width: diameter, height: diameter)
+            let origin = CGPoint(x: x - (size.width-diameter)*0.5, y: self.contentView.bounds.midY-size.height*0.5)
+            value.frame = CGRect(origin: origin, size: size)
+            x = x + spacing + diameter
+        }
+        
+    }
+    
+    /// Sets the stroke color for page indicators to use for the specified state. (selected/normal).
+    ///
+    /// - Parameters:
+    ///   - strokeColor: The stroke color to use for the specified state.
+    ///   - state: The state that uses the specified stroke color.
+    @objc(setStrokeColor:forState:)
+    open func setStrokeColor(_ strokeColor: UIColor?, for state: UIControl.State) {
+        guard self.strokeColors[state] != strokeColor else {
+            return
+        }
+        self.strokeColors[state] = strokeColor
+        self.setNeedsUpdateIndicators()
+    }
+    
+    /// Sets the fill color for page indicators to use for the specified state. (selected/normal).
+    ///
+    /// - Parameters:
+    ///   - fillColor: The fill color to use for the specified state.
+    ///   - state: The state that uses the specified fill color.
+    @objc(setFillColor:forState:)
+    open func setFillColor(_ fillColor: UIColor?, for state: UIControl.State) {
+        guard self.fillColors[state] != fillColor else {
+            return
+        }
+        self.fillColors[state] = fillColor
+        self.setNeedsUpdateIndicators()
+    }
+    
+    /// Sets the image for page indicators to use for the specified state. (selected/normal).
+    ///
+    /// - Parameters:
+    ///   - image: The image to use for the specified state.
+    ///   - state: The state that uses the specified image.
+    @objc(setImage:forState:)
+    open func setImage(_ image: UIImage?, for state: UIControl.State) {
+        guard self.images[state] != image else {
+            return
+        }
+        self.images[state] = image
+        self.setNeedsUpdateIndicators()
+    }
+    
+    @objc(setAlpha:forState:)
+    
+    /// Sets the alpha value for page indicators to use for the specified state. (selected/normal).
+    ///
+    /// - Parameters:
+    ///   - alpha: The alpha value to use for the specified state.
+    ///   - state: The state that uses the specified alpha.
+    open func setAlpha(_ alpha: CGFloat, for state: UIControl.State) {
+        guard self.alphas[state] != alpha else {
+            return
+        }
+        self.alphas[state] = alpha
+        self.setNeedsUpdateIndicators()
+    }
+    
+    /// Sets the path for page indicators to use for the specified state. (selected/normal).
+    ///
+    /// - Parameters:
+    ///   - path: The path to use for the specified state.
+    ///   - state: The state that uses the specified path.
+    @objc(setPath:forState:)
+    open func setPath(_ path: UIBezierPath?, for state: UIControl.State) {
+        guard self.paths[state] != path else {
+            return
+        }
+        self.paths[state] = path
+        self.setNeedsUpdateIndicators()
+    }
+    
+    // MARK: - Private functions
+    
+    fileprivate func commonInit() {
+        
+        // Content View
+        let view = UIView(frame: .zero)
+        view.backgroundColor = UIColor.clear
+        self.addSubview(view)
+        self.contentView = view
+        self.isUserInteractionEnabled = false
+        
+    }
+    
+    fileprivate func setNeedsUpdateIndicators() {
+        self.needsUpdateIndicators = true
+        self.setNeedsLayout()
+        DispatchQueue.main.async {
+            self.updateIndicatorsIfNecessary()
+        }
+    }
+    
+    fileprivate func updateIndicatorsIfNecessary() {
+        guard self.needsUpdateIndicators else {
+            return
+        }
+        guard self.indicatorLayers.count > 0 else {
+            return
+        }
+        self.needsUpdateIndicators = false
+        self.contentView.isHidden = self.hidesForSinglePage && self.numberOfPages <= 1
+        if !self.contentView.isHidden {
+            self.indicatorLayers.forEach { (layer) in
+                layer.isHidden = false
+                self.updateIndicatorAttributes(for: layer)
+            }
+        }
+    }
+    
+    fileprivate func updateIndicatorAttributes(for layer: CAShapeLayer) {
+        let index = self.indicatorLayers.firstIndex(of: layer)
+        let state: UIControl.State = index == self.currentPage ? .selected : .normal
+        if let image = self.images[state] {
+            layer.strokeColor = nil
+            layer.fillColor = nil
+            layer.path = nil
+            layer.contents = image.cgImage
+        } else {
+            layer.contents = nil
+            let strokeColor = self.strokeColors[state]
+            let fillColor = self.fillColors[state]
+            if strokeColor == nil && fillColor == nil {
+                layer.fillColor = (state == .selected ? UIColor.white : UIColor.gray).cgColor
+                layer.strokeColor = nil
+            } else {
+                layer.strokeColor = strokeColor?.cgColor
+                layer.fillColor = fillColor?.cgColor
+            }
+            layer.path = self.paths[state]?.cgPath ?? UIBezierPath(ovalIn: CGRect(x: 0, y: 0, width: self.itemSpacing, height: self.itemSpacing)).cgPath
+        }
+        if let transform = self.transforms[state] {
+            layer.transform = CATransform3DMakeAffineTransform(transform)
+        }
+        layer.opacity = Float(self.alphas[state] ?? 1.0)
+    }
+    
+    fileprivate func setNeedsCreateIndicators() {
+        self.needsCreateIndicators = true
+        DispatchQueue.main.async {
+            self.createIndicatorsIfNecessary()
+        }
+    }
+    
+    fileprivate func createIndicatorsIfNecessary() {
+        guard self.needsCreateIndicators else {
+            return
+        }
+        self.needsCreateIndicators = false
+        CATransaction.begin()
+        CATransaction.setDisableActions(true)
+        if self.currentPage >= self.numberOfPages {
+            self.currentPage = self.numberOfPages - 1
+        }
+        self.indicatorLayers.forEach { (layer) in
+            layer.removeFromSuperlayer()
+        }
+        self.indicatorLayers.removeAll()
+        for _ in 0..<self.numberOfPages {
+            let layer = CAShapeLayer()
+            layer.actions = ["bounds": NSNull()]
+            self.contentView.layer.addSublayer(layer)
+            self.indicatorLayers.append(layer)
+        }
+        self.setNeedsUpdateIndicators()
+        self.updateIndicatorsIfNecessary()
+        CATransaction.commit()
+    }
+    
+}
+
+extension UIControl.State: Hashable {
+    public var hashValue: Int {
+        return Int((6777*self.rawValue+3777)%UInt(UInt16.max))
+    }
+}
+
diff --git a/Pods/FSPagerView/Sources/FSPageViewLayout.swift b/Pods/FSPagerView/Sources/FSPageViewLayout.swift
new file mode 100644
index 0000000000000000000000000000000000000000..9477ac432bf953c788d77ea519d4798beddea9e7
--- /dev/null
+++ b/Pods/FSPagerView/Sources/FSPageViewLayout.swift
@@ -0,0 +1,296 @@
+//
+//  FSPagerViewLayout.swift
+//  FSPagerView
+//
+//  Created by Wenchao Ding on 20/12/2016.
+//  Copyright © 2016 Wenchao Ding. All rights reserved.
+//
+
+import UIKit
+
+class FSPagerViewLayout: UICollectionViewLayout {
+    
+    internal var contentSize: CGSize = .zero
+    internal var leadingSpacing: CGFloat = 0
+    internal var itemSpacing: CGFloat = 0
+    internal var needsReprepare = true
+    internal var scrollDirection: FSPagerView.ScrollDirection = .horizontal
+    
+    open override class var layoutAttributesClass: AnyClass {
+        return FSPagerViewLayoutAttributes.self
+    }
+    
+    fileprivate var pagerView: FSPagerView? {
+        return self.collectionView?.superview?.superview as? FSPagerView
+    }
+    
+    fileprivate var collectionViewSize: CGSize = .zero
+    fileprivate var numberOfSections = 1
+    fileprivate var numberOfItems = 0
+    fileprivate var actualInteritemSpacing: CGFloat = 0
+    fileprivate var actualItemSize: CGSize = .zero
+    
+    override init() {
+        super.init()
+        self.commonInit()
+    }
+    
+    required public init?(coder aDecoder: NSCoder) {
+        super.init(coder: aDecoder)
+        self.commonInit()
+    }
+    
+    deinit {
+        #if !os(tvOS)
+        NotificationCenter.default.removeObserver(self, name: UIDevice.orientationDidChangeNotification, object: nil)
+        #endif
+    }
+    
+    override open func prepare() {
+        guard let collectionView = self.collectionView, let pagerView = self.pagerView else {
+            return
+        }
+        guard self.needsReprepare || self.collectionViewSize != collectionView.frame.size else {
+            return
+        }
+        self.needsReprepare = false
+        
+        self.collectionViewSize = collectionView.frame.size
+
+        // Calculate basic parameters/variables
+        self.numberOfSections = pagerView.numberOfSections(in: collectionView)
+        self.numberOfItems = pagerView.collectionView(collectionView, numberOfItemsInSection: 0)
+        self.actualItemSize = {
+            var size = pagerView.itemSize
+            if size == .zero {
+                size = collectionView.frame.size
+            }
+            return size
+        }()
+        
+        self.actualInteritemSpacing = {
+            if let transformer = pagerView.transformer {
+                return transformer.proposedInteritemSpacing()
+            }
+            return pagerView.interitemSpacing
+        }()
+        self.scrollDirection = pagerView.scrollDirection
+        self.leadingSpacing = self.scrollDirection == .horizontal ? (collectionView.frame.width-self.actualItemSize.width)*0.5 : (collectionView.frame.height-self.actualItemSize.height)*0.5
+        self.itemSpacing = (self.scrollDirection == .horizontal ? self.actualItemSize.width : self.actualItemSize.height) + self.actualInteritemSpacing
+        
+        // Calculate and cache contentSize, rather than calculating each time
+        self.contentSize = {
+            let numberOfItems = self.numberOfItems*self.numberOfSections
+            switch self.scrollDirection {
+                case .horizontal:
+                    var contentSizeWidth: CGFloat = self.leadingSpacing*2 // Leading & trailing spacing
+                    contentSizeWidth += CGFloat(numberOfItems-1)*self.actualInteritemSpacing // Interitem spacing
+                    contentSizeWidth += CGFloat(numberOfItems)*self.actualItemSize.width // Item sizes
+                    let contentSize = CGSize(width: contentSizeWidth, height: collectionView.frame.height)
+                    return contentSize
+                case .vertical:
+                    var contentSizeHeight: CGFloat = self.leadingSpacing*2 // Leading & trailing spacing
+                    contentSizeHeight += CGFloat(numberOfItems-1)*self.actualInteritemSpacing // Interitem spacing
+                    contentSizeHeight += CGFloat(numberOfItems)*self.actualItemSize.height // Item sizes
+                    let contentSize = CGSize(width: collectionView.frame.width, height: contentSizeHeight)
+                    return contentSize
+            }
+        }()
+        self.adjustCollectionViewBounds()
+    }
+    
+    override open var collectionViewContentSize: CGSize {
+        return self.contentSize
+    }
+    
+    override open func shouldInvalidateLayout(forBoundsChange newBounds: CGRect) -> Bool {
+        return true
+    }
+    
+    override open func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
+        var layoutAttributes = [UICollectionViewLayoutAttributes]()
+        guard self.itemSpacing > 0, !rect.isEmpty else {
+            return layoutAttributes
+        }
+        let rect = rect.intersection(CGRect(origin: .zero, size: self.contentSize))
+        guard !rect.isEmpty else {
+            return layoutAttributes
+        }
+        // Calculate start position and index of certain rects
+        let numberOfItemsBefore = self.scrollDirection == .horizontal ? max(Int((rect.minX-self.leadingSpacing)/self.itemSpacing),0) : max(Int((rect.minY-self.leadingSpacing)/self.itemSpacing),0)
+        let startPosition = self.leadingSpacing + CGFloat(numberOfItemsBefore)*self.itemSpacing
+        let startIndex = numberOfItemsBefore
+        // Create layout attributes
+        var itemIndex = startIndex
+        
+        var origin = startPosition
+        let maxPosition = self.scrollDirection == .horizontal ? min(rect.maxX,self.contentSize.width-self.actualItemSize.width-self.leadingSpacing) : min(rect.maxY,self.contentSize.height-self.actualItemSize.height-self.leadingSpacing)
+        // https://stackoverflow.com/a/10335601/2398107
+        while origin-maxPosition <= max(CGFloat(100.0) * .ulpOfOne * abs(origin+maxPosition), .leastNonzeroMagnitude) {
+            let indexPath = IndexPath(item: itemIndex%self.numberOfItems, section: itemIndex/self.numberOfItems)
+            let attributes = self.layoutAttributesForItem(at: indexPath) as! FSPagerViewLayoutAttributes
+            self.applyTransform(to: attributes, with: self.pagerView?.transformer)
+            layoutAttributes.append(attributes)
+            itemIndex += 1
+            origin += self.itemSpacing
+        }
+        return layoutAttributes
+        
+    }
+    
+    override open func layoutAttributesForItem(at indexPath: IndexPath) -> UICollectionViewLayoutAttributes? {
+        let attributes = FSPagerViewLayoutAttributes(forCellWith: indexPath)
+        attributes.indexPath = indexPath
+        let frame = self.frame(for: indexPath)
+        let center = CGPoint(x: frame.midX, y: frame.midY)
+        attributes.center = center
+        attributes.size = self.actualItemSize
+        return attributes
+    }
+    
+    override open func targetContentOffset(forProposedContentOffset proposedContentOffset: CGPoint, withScrollingVelocity velocity: CGPoint) -> CGPoint {
+        guard let collectionView = self.collectionView, let pagerView = self.pagerView else {
+            return proposedContentOffset
+        }
+        var proposedContentOffset = proposedContentOffset
+        
+        func calculateTargetOffset(by proposedOffset: CGFloat, boundedOffset: CGFloat) -> CGFloat {
+            var targetOffset: CGFloat
+            if pagerView.decelerationDistance == FSPagerView.automaticDistance {
+                if abs(velocity.x) >= 0.3 {
+                    let vector: CGFloat = velocity.x >= 0 ? 1.0 : -1.0
+                    targetOffset = round(proposedOffset/self.itemSpacing+0.35*vector) * self.itemSpacing // Ceil by 0.15, rather than 0.5
+                } else {
+                    targetOffset = round(proposedOffset/self.itemSpacing) * self.itemSpacing
+                }
+            } else {
+                let extraDistance = max(pagerView.decelerationDistance-1, 0)
+                switch velocity.x {
+                case 0.3 ... CGFloat.greatestFiniteMagnitude:
+                    targetOffset = ceil(collectionView.contentOffset.x/self.itemSpacing+CGFloat(extraDistance)) * self.itemSpacing
+                case -CGFloat.greatestFiniteMagnitude ... -0.3:
+                    targetOffset = floor(collectionView.contentOffset.x/self.itemSpacing-CGFloat(extraDistance)) * self.itemSpacing
+                default:
+                    targetOffset = round(proposedOffset/self.itemSpacing) * self.itemSpacing
+                }
+            }
+            targetOffset = max(0, targetOffset)
+            targetOffset = min(boundedOffset, targetOffset)
+            return targetOffset
+        }
+        let proposedContentOffsetX: CGFloat = {
+            if self.scrollDirection == .vertical {
+                return proposedContentOffset.x
+            }
+            let boundedOffset = collectionView.contentSize.width-self.itemSpacing
+            return calculateTargetOffset(by: proposedContentOffset.x, boundedOffset: boundedOffset)
+        }()
+        let proposedContentOffsetY: CGFloat = {
+            if self.scrollDirection == .horizontal {
+                return proposedContentOffset.y
+            }
+            let boundedOffset = collectionView.contentSize.height-self.itemSpacing
+            return calculateTargetOffset(by: proposedContentOffset.y, boundedOffset: boundedOffset)
+        }()
+        proposedContentOffset = CGPoint(x: proposedContentOffsetX, y: proposedContentOffsetY)
+        return proposedContentOffset
+    }
+    
+    // MARK:- Internal functions
+    
+    internal func forceInvalidate() {
+        self.needsReprepare = true
+        self.invalidateLayout()
+    }
+    
+    internal func contentOffset(for indexPath: IndexPath) -> CGPoint {
+        let origin = self.frame(for: indexPath).origin
+        guard let collectionView = self.collectionView else {
+            return origin
+        }
+        let contentOffsetX: CGFloat = {
+            if self.scrollDirection == .vertical {
+                return 0
+            }
+            let contentOffsetX = origin.x - (collectionView.frame.width*0.5-self.actualItemSize.width*0.5)
+            return contentOffsetX
+        }()
+        let contentOffsetY: CGFloat = {
+            if self.scrollDirection == .horizontal {
+                return 0
+            }
+            let contentOffsetY = origin.y - (collectionView.frame.height*0.5-self.actualItemSize.height*0.5)
+            return contentOffsetY
+        }()
+        let contentOffset = CGPoint(x: contentOffsetX, y: contentOffsetY)
+        return contentOffset
+    }
+    
+    internal func frame(for indexPath: IndexPath) -> CGRect {
+        let numberOfItems = self.numberOfItems*indexPath.section + indexPath.item
+        let originX: CGFloat = {
+            if self.scrollDirection == .vertical {
+                return (self.collectionView!.frame.width-self.actualItemSize.width)*0.5
+            }
+            return self.leadingSpacing + CGFloat(numberOfItems)*self.itemSpacing
+        }()
+        let originY: CGFloat = {
+            if self.scrollDirection == .horizontal {
+                return (self.collectionView!.frame.height-self.actualItemSize.height)*0.5
+            }
+            return self.leadingSpacing + CGFloat(numberOfItems)*self.itemSpacing
+        }()
+        let origin = CGPoint(x: originX, y: originY)
+        let frame = CGRect(origin: origin, size: self.actualItemSize)
+        return frame
+    }
+    
+    // MARK:- Notification
+    @objc
+    fileprivate func didReceiveNotification(notification: Notification) {
+        if self.pagerView?.itemSize == .zero {
+            self.adjustCollectionViewBounds()
+        }
+    }
+    
+    // MARK:- Private functions
+    
+    fileprivate func commonInit() {
+        #if !os(tvOS)
+            NotificationCenter.default.addObserver(self, selector: #selector(didReceiveNotification(notification:)), name: UIDevice.orientationDidChangeNotification, object: nil)
+        #endif
+    }
+    
+    fileprivate func adjustCollectionViewBounds() {
+        guard let collectionView = self.collectionView, let pagerView = self.pagerView else {
+            return
+        }
+        let currentIndex = pagerView.currentIndex
+        let newIndexPath = IndexPath(item: currentIndex, section: pagerView.isInfinite ? self.numberOfSections/2 : 0)
+        let contentOffset = self.contentOffset(for: newIndexPath)
+        let newBounds = CGRect(origin: contentOffset, size: collectionView.frame.size)
+        collectionView.bounds = newBounds
+    }
+    
+    fileprivate func applyTransform(to attributes: FSPagerViewLayoutAttributes, with transformer: FSPagerViewTransformer?) {
+        guard let collectionView = self.collectionView else {
+            return
+        }
+        guard let transformer = transformer else {
+            return
+        }
+        switch self.scrollDirection {
+        case .horizontal:
+            let ruler = collectionView.bounds.midX
+            attributes.position = (attributes.center.x-ruler)/self.itemSpacing
+        case .vertical:
+            let ruler = collectionView.bounds.midY
+            attributes.position = (attributes.center.y-ruler)/self.itemSpacing
+        }
+        attributes.zIndex = Int(self.numberOfItems)-Int(attributes.position)
+        transformer.applyTransform(to: attributes)
+    }
+
+}
+
+
diff --git a/Pods/FSPagerView/Sources/FSPageViewTransformer.swift b/Pods/FSPagerView/Sources/FSPageViewTransformer.swift
new file mode 100644
index 0000000000000000000000000000000000000000..28786792ecc9107efd1c29ee65e1afd986852c8c
--- /dev/null
+++ b/Pods/FSPagerView/Sources/FSPageViewTransformer.swift
@@ -0,0 +1,273 @@
+//
+//  FSPagerViewTransformer.swift
+//  FSPagerView
+//
+//  Created by Wenchao Ding on 05/01/2017.
+//  Copyright © 2017 Wenchao Ding. All rights reserved.
+//
+
+import UIKit
+
+@objc
+public enum FSPagerViewTransformerType: Int {
+    case crossFading
+    case zoomOut
+    case depth
+    case overlap
+    case linear
+    case coverFlow
+    case ferrisWheel
+    case invertedFerrisWheel
+    case cubic
+}
+
+open class FSPagerViewTransformer: NSObject {
+    
+    open internal(set) weak var pagerView: FSPagerView?
+    open internal(set) var type: FSPagerViewTransformerType
+    
+    open var minimumScale: CGFloat = 0.65
+    open var minimumAlpha: CGFloat = 0.6
+    
+    @objc
+    public init(type: FSPagerViewTransformerType) {
+        self.type = type
+        switch type {
+        case .zoomOut:
+            self.minimumScale = 0.85
+        case .depth:
+            self.minimumScale = 0.5
+        default:
+            break
+        }
+    }
+    
+    // Apply transform to attributes - zIndex: Int, frame: CGRect, alpha: CGFloat, transform: CGAffineTransform or transform3D: CATransform3D.
+    open func applyTransform(to attributes: FSPagerViewLayoutAttributes) {
+        guard let pagerView = self.pagerView else {
+            return
+        }
+        let position = attributes.position
+        let scrollDirection = pagerView.scrollDirection
+        let itemSpacing = (scrollDirection == .horizontal ? attributes.bounds.width : attributes.bounds.height) + self.proposedInteritemSpacing()
+        switch self.type {
+        case .crossFading:
+            var zIndex = 0
+            var alpha: CGFloat = 0
+            var transform = CGAffineTransform.identity
+            switch scrollDirection {
+            case .horizontal:
+                transform.tx = -itemSpacing * position
+            case .vertical:
+                transform.ty = -itemSpacing * position
+            }
+            if (abs(position) < 1) { // [-1,1]
+                // Use the default slide transition when moving to the left page
+                alpha = 1 - abs(position)
+                zIndex = 1
+            } else { // (1,+Infinity]
+                // This page is way off-screen to the right.
+                alpha = 0
+                zIndex = Int.min
+            }
+            attributes.alpha = alpha
+            attributes.transform = transform
+            attributes.zIndex = zIndex
+        case .zoomOut:
+            var alpha: CGFloat = 0
+            var transform = CGAffineTransform.identity
+            switch position {
+            case -CGFloat.greatestFiniteMagnitude ..< -1 : // [-Infinity,-1)
+                // This page is way off-screen to the left.
+                alpha = 0
+            case -1 ... 1 :  // [-1,1]
+                // Modify the default slide transition to shrink the page as well
+                let scaleFactor = max(self.minimumScale, 1 - abs(position))
+                transform.a = scaleFactor
+                transform.d = scaleFactor
+                switch scrollDirection {
+                case .horizontal:
+                    let vertMargin = attributes.bounds.height * (1 - scaleFactor) / 2;
+                    let horzMargin = itemSpacing * (1 - scaleFactor) / 2;
+                    transform.tx = position < 0 ? (horzMargin - vertMargin*2) : (-horzMargin + vertMargin*2)
+                case .vertical:
+                    let horzMargin = attributes.bounds.width * (1 - scaleFactor) / 2;
+                    let vertMargin = itemSpacing * (1 - scaleFactor) / 2;
+                    transform.ty = position < 0 ? (vertMargin - horzMargin*2) : (-vertMargin + horzMargin*2)
+                }
+                // Fade the page relative to its size.
+                alpha = self.minimumAlpha + (scaleFactor-self.minimumScale)/(1-self.minimumScale)*(1-self.minimumAlpha)
+            case 1 ... CGFloat.greatestFiniteMagnitude :  // (1,+Infinity]
+                // This page is way off-screen to the right.
+                alpha = 0
+            default:
+                break
+            }
+            attributes.alpha = alpha
+            attributes.transform = transform
+        case .depth:
+            var transform = CGAffineTransform.identity
+            var zIndex = 0
+            var alpha: CGFloat = 0.0
+            switch position {
+            case -CGFloat.greatestFiniteMagnitude ..< -1: // [-Infinity,-1)
+                // This page is way off-screen to the left.
+                alpha = 0
+                zIndex = 0
+            case -1 ... 0:  // [-1,0]
+                // Use the default slide transition when moving to the left page
+                alpha = 1
+                transform.tx = 0
+                transform.a = 1
+                transform.d = 1
+                zIndex = 1
+            case 0 ..< 1: // (0,1)
+                // Fade the page out.
+                alpha = CGFloat(1.0) - position
+                // Counteract the default slide transition
+                switch scrollDirection {
+                case .horizontal:
+                    transform.tx = itemSpacing * -position
+                case .vertical:
+                    transform.ty = itemSpacing * -position
+                }
+                // Scale the page down (between minimumScale and 1)
+                let scaleFactor = self.minimumScale
+                    + (1.0 - self.minimumScale) * (1.0 - abs(position));
+                transform.a = scaleFactor
+                transform.d = scaleFactor
+                zIndex = 0
+            case 1 ... CGFloat.greatestFiniteMagnitude: // [1,+Infinity)
+                // This page is way off-screen to the right.
+                alpha = 0
+                zIndex = 0
+            default:
+                break
+            }
+            attributes.alpha = alpha
+            attributes.transform = transform
+            attributes.zIndex = zIndex
+        case .overlap,.linear:
+            guard scrollDirection == .horizontal else {
+                // This type doesn't support vertical mode
+                return
+            }
+            let scale = max(1 - (1-self.minimumScale) * abs(position), self.minimumScale)
+            let transform = CGAffineTransform(scaleX: scale, y: scale)
+            attributes.transform = transform
+            let alpha = (self.minimumAlpha + (1-abs(position))*(1-self.minimumAlpha))
+            attributes.alpha = alpha
+            let zIndex = (1-abs(position)) * 10
+            attributes.zIndex = Int(zIndex)
+        case .coverFlow:
+            guard scrollDirection == .horizontal else {
+                // This type doesn't support vertical mode
+                return
+            }
+            let position = min(max(-position,-1) ,1)
+            let rotation = sin(position*(.pi)*0.5)*(.pi)*0.25*1.5
+            let translationZ = -itemSpacing * 0.5 * abs(position)
+            var transform3D = CATransform3DIdentity
+            transform3D.m34 = -0.002
+            transform3D = CATransform3DRotate(transform3D, rotation, 0, 1, 0)
+            transform3D = CATransform3DTranslate(transform3D, 0, 0, translationZ)
+            attributes.zIndex = 100 - Int(abs(position))
+            attributes.transform3D = transform3D
+        case .ferrisWheel, .invertedFerrisWheel:
+            guard scrollDirection == .horizontal else {
+                // This type doesn't support vertical mode
+                return
+            }
+            // http://ronnqvi.st/translate-rotate-translate/
+            var zIndex = 0
+            var transform = CGAffineTransform.identity
+            switch position {
+            case -5 ... 5:
+                let itemSpacing = attributes.bounds.width+self.proposedInteritemSpacing()
+                let count: CGFloat = 14
+                let circle: CGFloat = .pi * 2.0
+                let radius = itemSpacing * count / circle
+                let ty = radius * (self.type == .ferrisWheel ? 1 : -1)
+                let theta = circle / count
+                let rotation = position * theta * (self.type == .ferrisWheel ? 1 : -1)
+                transform = transform.translatedBy(x: -position*itemSpacing, y: ty)
+                transform = transform.rotated(by: rotation)
+                transform = transform.translatedBy(x: 0, y: -ty)
+                zIndex = Int((4.0-abs(position)*10))
+            default:
+                break
+            }
+            attributes.alpha = abs(position) < 0.5 ? 1 : self.minimumAlpha
+            attributes.transform = transform
+            attributes.zIndex = zIndex
+        case .cubic:
+            switch position {
+            case -CGFloat.greatestFiniteMagnitude ... -1:
+                attributes.alpha = 0
+            case -1 ..< 1:
+                attributes.alpha = 1
+                attributes.zIndex = Int((1-position) * CGFloat(10))
+                let direction: CGFloat = position < 0 ? 1 : -1
+                let theta = position * .pi * 0.5 * (scrollDirection == .horizontal ? 1 : -1)
+                let radius = scrollDirection == .horizontal ? attributes.bounds.width : attributes.bounds.height
+                var transform3D = CATransform3DIdentity
+                transform3D.m34 = -0.002
+                switch scrollDirection {
+                case .horizontal:
+                    // ForwardX -> RotateY -> BackwardX
+                    attributes.center.x += direction*radius*0.5 // ForwardX
+                    transform3D = CATransform3DRotate(transform3D, theta, 0, 1, 0) // RotateY
+                    transform3D = CATransform3DTranslate(transform3D,-direction*radius*0.5, 0, 0) // BackwardX
+                case .vertical:
+                    // ForwardY -> RotateX -> BackwardY
+                    attributes.center.y += direction*radius*0.5 // ForwardY
+                    transform3D = CATransform3DRotate(transform3D, theta, 1, 0, 0) // RotateX
+                    transform3D = CATransform3DTranslate(transform3D,0, -direction*radius*0.5, 0) // BackwardY
+                }
+                attributes.transform3D = transform3D
+            case 1 ... CGFloat.greatestFiniteMagnitude:
+                attributes.alpha = 0
+            default:
+                attributes.alpha = 0
+                attributes.zIndex = 0
+            }
+        }
+    }
+    
+    // An interitem spacing proposed by transformer class. This will override the default interitemSpacing provided by the pager view.
+    open func proposedInteritemSpacing() -> CGFloat {
+        guard let pagerView = self.pagerView else {
+            return 0
+        }
+        let scrollDirection = pagerView.scrollDirection
+        switch self.type {
+        case .overlap:
+            guard scrollDirection == .horizontal else {
+                return 0
+            }
+            return pagerView.itemSize.width * -self.minimumScale * 0.6
+        case .linear:
+            guard scrollDirection == .horizontal else {
+                return 0
+            }
+            return pagerView.itemSize.width * -self.minimumScale * 0.2
+        case .coverFlow:
+            guard scrollDirection == .horizontal else {
+                return 0
+            }
+            return -pagerView.itemSize.width * sin(.pi*0.25*0.25*3.0)
+        case .ferrisWheel,.invertedFerrisWheel:
+            guard scrollDirection == .horizontal else {
+                return 0
+            }
+            return -pagerView.itemSize.width * 0.15
+        case .cubic:
+            return 0
+        default:
+            break
+        }
+        return pagerView.interitemSpacing
+    }
+    
+}
+
diff --git a/Pods/FSPagerView/Sources/FSPagerCollectionView.swift b/Pods/FSPagerView/Sources/FSPagerCollectionView.swift
new file mode 100644
index 0000000000000000000000000000000000000000..0f366cfd7ae0578d25284a7a7579f3393f3378df
--- /dev/null
+++ b/Pods/FSPagerView/Sources/FSPagerCollectionView.swift
@@ -0,0 +1,66 @@
+//
+//  FSPagerCollectionView.swift
+//  FSPagerView
+//
+//  Created by Wenchao Ding on 24/12/2016.
+//  Copyright © 2016 Wenchao Ding. All rights reserved.
+//
+//  1. Reject -[UIScrollView(UIScrollViewInternal) _adjustContentOffsetIfNecessary]
+//  2. Group initialized features
+
+import UIKit
+
+class FSPagerCollectionView: UICollectionView {
+    
+    #if !os(tvOS)
+    override var scrollsToTop: Bool {
+        set {
+            super.scrollsToTop = false
+        }
+        get {
+            return false
+        }
+    }
+    #endif
+    
+    override var contentInset: UIEdgeInsets {
+        set {
+            super.contentInset = .zero
+            if (newValue.top > 0) {
+                let contentOffset = CGPoint(x:self.contentOffset.x, y:self.contentOffset.y+newValue.top);
+                self.contentOffset = contentOffset
+            }
+        }
+        get {
+            return super.contentInset
+        }
+    }
+    
+    override init(frame: CGRect, collectionViewLayout layout: UICollectionViewLayout) {
+        super.init(frame: frame, collectionViewLayout: layout)
+        self.commonInit()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        super.init(coder: aDecoder)
+        self.commonInit()
+    }
+    
+    fileprivate func commonInit() {
+        self.contentInset = .zero
+        self.decelerationRate = UIScrollView.DecelerationRate.fast
+        self.showsVerticalScrollIndicator = false
+        self.showsHorizontalScrollIndicator = false
+        if #available(iOS 10.0, *) {
+            self.isPrefetchingEnabled = false
+        }
+        if #available(iOS 11.0, *) {
+            self.contentInsetAdjustmentBehavior = .never
+        }
+        #if !os(tvOS)
+            self.scrollsToTop = false
+            self.isPagingEnabled = false
+        #endif
+    }
+    
+}
diff --git a/Pods/FSPagerView/Sources/FSPagerView.swift b/Pods/FSPagerView/Sources/FSPagerView.swift
new file mode 100644
index 0000000000000000000000000000000000000000..7fb17d9e53c1b376aa9d49a53c86ca0ad4466bd4
--- /dev/null
+++ b/Pods/FSPagerView/Sources/FSPagerView.swift
@@ -0,0 +1,636 @@
+//
+//  FSPagerView.swift
+//  FSPagerView
+//
+//  Created by Wenchao Ding on 17/12/2016.
+//  Copyright © 2016 Wenchao Ding. All rights reserved.
+//
+//  https://github.com/WenchaoD
+//
+//  FSPagerView is an elegant Screen Slide Library implemented primarily with UICollectionView. It is extremely helpful for making Banner、Product Show、Welcome/Guide Pages、Screen/ViewController Sliders.
+//
+
+import UIKit
+
+@objc
+public protocol FSPagerViewDataSource: NSObjectProtocol {
+    
+    /// Asks your data source object for the number of items in the pager view.
+    @objc(numberOfItemsInPagerView:)
+    func numberOfItems(in pagerView: FSPagerView) -> Int
+    
+    /// Asks your data source object for the cell that corresponds to the specified item in the pager view.
+    @objc(pagerView:cellForItemAtIndex:)
+    func pagerView(_ pagerView: FSPagerView, cellForItemAt index: Int) -> FSPagerViewCell
+    
+}
+
+@objc
+public protocol FSPagerViewDelegate: NSObjectProtocol {
+    
+    /// Asks the delegate if the item should be highlighted during tracking.
+    @objc(pagerView:shouldHighlightItemAtIndex:)
+    optional func pagerView(_ pagerView: FSPagerView, shouldHighlightItemAt index: Int) -> Bool
+    
+    /// Tells the delegate that the item at the specified index was highlighted.
+    @objc(pagerView:didHighlightItemAtIndex:)
+    optional func pagerView(_ pagerView: FSPagerView, didHighlightItemAt index: Int)
+    
+    /// Asks the delegate if the specified item should be selected.
+    @objc(pagerView:shouldSelectItemAtIndex:)
+    optional func pagerView(_ pagerView: FSPagerView, shouldSelectItemAt index: Int) -> Bool
+    
+    /// Tells the delegate that the item at the specified index was selected.
+    @objc(pagerView:didSelectItemAtIndex:)
+    optional func pagerView(_ pagerView: FSPagerView, didSelectItemAt index: Int)
+    
+    /// Tells the delegate that the specified cell is about to be displayed in the pager view.
+    @objc(pagerView:willDisplayCell:forItemAtIndex:)
+    optional func pagerView(_ pagerView: FSPagerView, willDisplay cell: FSPagerViewCell, forItemAt index: Int)
+    
+    /// Tells the delegate that the specified cell was removed from the pager view.
+    @objc(pagerView:didEndDisplayingCell:forItemAtIndex:)
+    optional func pagerView(_ pagerView: FSPagerView, didEndDisplaying cell: FSPagerViewCell, forItemAt index: Int)
+    
+    /// Tells the delegate when the pager view is about to start scrolling the content.
+    @objc(pagerViewWillBeginDragging:)
+    optional func pagerViewWillBeginDragging(_ pagerView: FSPagerView)
+    
+    /// Tells the delegate when the user finishes scrolling the content.
+    @objc(pagerViewWillEndDragging:targetIndex:)
+    optional func pagerViewWillEndDragging(_ pagerView: FSPagerView, targetIndex: Int)
+    
+    /// Tells the delegate when the user scrolls the content view within the receiver.
+    @objc(pagerViewDidScroll:)
+    optional func pagerViewDidScroll(_ pagerView: FSPagerView)
+    
+    /// Tells the delegate when a scrolling animation in the pager view concludes.
+    @objc(pagerViewDidEndScrollAnimation:)
+    optional func pagerViewDidEndScrollAnimation(_ pagerView: FSPagerView)
+    
+    /// Tells the delegate that the pager view has ended decelerating the scrolling movement.
+    @objc(pagerViewDidEndDecelerating:)
+    optional func pagerViewDidEndDecelerating(_ pagerView: FSPagerView)
+    
+}
+
+@IBDesignable
+open class FSPagerView: UIView,UICollectionViewDataSource,UICollectionViewDelegate {
+    
+    // MARK: - Public properties
+
+    /// The object that acts as the data source of the pager view.
+    @IBOutlet open weak var dataSource: FSPagerViewDataSource?
+    
+    /// The object that acts as the delegate of the pager view.
+    @IBOutlet open weak var delegate: FSPagerViewDelegate?
+    
+    /// The scroll direction of the pager view. Default is horizontal.
+    @objc
+    open var scrollDirection: FSPagerView.ScrollDirection = .horizontal {
+        didSet {
+            self.collectionViewLayout.forceInvalidate()
+        }
+    }
+    
+    /// The time interval of automatic sliding. 0 means disabling automatic sliding. Default is 0.
+    @IBInspectable
+    open var automaticSlidingInterval: CGFloat = 0.0 {
+        didSet {
+            self.cancelTimer()
+            if self.automaticSlidingInterval > 0 {
+                self.startTimer()
+            }
+        }
+    }
+    
+    /// The spacing to use between items in the pager view. Default is 0.
+    @IBInspectable
+    open var interitemSpacing: CGFloat = 0 {
+        didSet {
+            self.collectionViewLayout.forceInvalidate()
+        }
+    }
+    
+    /// The item size of the pager view. When the value of this property is FSPagerView.automaticSize, the items fill the entire visible area of the pager view. Default is FSPagerView.automaticSize.
+    @IBInspectable
+    open var itemSize: CGSize = automaticSize {
+        didSet {
+            self.collectionViewLayout.forceInvalidate()
+        }
+    }
+    
+    /// A Boolean value indicates that whether the pager view has infinite items. Default is false.
+    @IBInspectable
+    open var isInfinite: Bool = false {
+        didSet {
+            self.collectionViewLayout.needsReprepare = true
+            self.collectionView.reloadData()
+        }
+    }
+    
+    /// An unsigned integer value that determines the deceleration distance of the pager view, which indicates the number of passing items during the deceleration. When the value of this property is FSPagerView.automaticDistance, the actual 'distance' is automatically calculated according to the scrolling speed of the pager view. Default is 1.
+    @IBInspectable
+    open var decelerationDistance: UInt = 1
+    
+    /// A Boolean value that determines whether scrolling is enabled.
+    @IBInspectable
+    open var isScrollEnabled: Bool {
+        set { self.collectionView.isScrollEnabled = newValue }
+        get { return self.collectionView.isScrollEnabled }
+    }
+    
+    /// A Boolean value that controls whether the pager view bounces past the edge of content and back again.
+    @IBInspectable
+    open var bounces: Bool {
+        set { self.collectionView.bounces = newValue }
+        get { return self.collectionView.bounces }
+    }
+    
+    /// A Boolean value that determines whether bouncing always occurs when horizontal scrolling reaches the end of the content view.
+    @IBInspectable
+    open var alwaysBounceHorizontal: Bool {
+        set { self.collectionView.alwaysBounceHorizontal = newValue }
+        get { return self.collectionView.alwaysBounceHorizontal }
+    }
+    
+    /// A Boolean value that determines whether bouncing always occurs when vertical scrolling reaches the end of the content view.
+    @IBInspectable
+    open var alwaysBounceVertical: Bool {
+        set { self.collectionView.alwaysBounceVertical = newValue }
+        get { return self.collectionView.alwaysBounceVertical }
+    }
+    
+    /// A Boolean value that controls whether the infinite loop is removed if there is only one item. Default is false.
+    @IBInspectable
+    open var removesInfiniteLoopForSingleItem: Bool = false {
+        didSet {
+            self.reloadData()
+        }
+    }
+    
+    /// The background view of the pager view.
+    @IBInspectable
+    open var backgroundView: UIView? {
+        didSet {
+            if let backgroundView = self.backgroundView {
+                if backgroundView.superview != nil {
+                    backgroundView.removeFromSuperview()
+                }
+                self.insertSubview(backgroundView, at: 0)
+                self.setNeedsLayout()
+            }
+        }
+    }
+    
+    /// The transformer of the pager view.
+    @objc
+    open var transformer: FSPagerViewTransformer? {
+        didSet {
+            self.transformer?.pagerView = self
+            self.collectionViewLayout.forceInvalidate()
+        }
+    }
+    
+    // MARK: - Public readonly-properties
+    
+    /// Returns whether the user has touched the content to initiate scrolling.
+    @objc
+    open var isTracking: Bool {
+        return self.collectionView.isTracking
+    }
+    
+    /// The percentage of x position at which the origin of the content view is offset from the origin of the pagerView view.
+    @objc
+    open var scrollOffset: CGFloat {
+        let contentOffset = max(self.collectionView.contentOffset.x, self.collectionView.contentOffset.y)
+        let scrollOffset = Double(contentOffset/self.collectionViewLayout.itemSpacing)
+        return fmod(CGFloat(scrollOffset), CGFloat(self.numberOfItems))
+    }
+    
+    /// The underlying gesture recognizer for pan gestures.
+    @objc
+    open var panGestureRecognizer: UIPanGestureRecognizer {
+        return self.collectionView.panGestureRecognizer
+    }
+    
+    @objc open fileprivate(set) dynamic var currentIndex: Int = 0
+    
+    // MARK: - Private properties
+    
+    internal weak var collectionViewLayout: FSPagerViewLayout!
+    internal weak var collectionView: FSPagerCollectionView!
+    internal weak var contentView: UIView!
+    internal var timer: Timer?
+    internal var numberOfItems: Int = 0
+    internal var numberOfSections: Int = 0
+    
+    fileprivate var dequeingSection = 0
+    fileprivate var centermostIndexPath: IndexPath {
+        guard self.numberOfItems > 0, self.collectionView.contentSize != .zero else {
+            return IndexPath(item: 0, section: 0)
+        }
+        let sortedIndexPaths = self.collectionView.indexPathsForVisibleItems.sorted { (l, r) -> Bool in
+            let leftFrame = self.collectionViewLayout.frame(for: l)
+            let rightFrame = self.collectionViewLayout.frame(for: r)
+            var leftCenter: CGFloat,rightCenter: CGFloat,ruler: CGFloat
+            switch self.scrollDirection {
+            case .horizontal:
+                leftCenter = leftFrame.midX
+                rightCenter = rightFrame.midX
+                ruler = self.collectionView.bounds.midX
+            case .vertical:
+                leftCenter = leftFrame.midY
+                rightCenter = rightFrame.midY
+                ruler = self.collectionView.bounds.midY
+            }
+            return abs(ruler-leftCenter) < abs(ruler-rightCenter)
+        }
+        let indexPath = sortedIndexPaths.first
+        if let indexPath = indexPath {
+            return indexPath
+        }
+        return IndexPath(item: 0, section: 0)
+    }
+    fileprivate var isPossiblyRotating: Bool {
+        guard let animationKeys = self.contentView.layer.animationKeys() else {
+            return false
+        }
+        let rotationAnimationKeys = ["position", "bounds.origin", "bounds.size"]
+        return animationKeys.contains(where: { rotationAnimationKeys.contains($0) })
+    }
+    fileprivate var possibleTargetingIndexPath: IndexPath?
+    
+    // MARK: - Overriden functions
+    
+    public override init(frame: CGRect) {
+        super.init(frame: frame)
+        self.commonInit()
+    }
+    
+    public required init?(coder aDecoder: NSCoder) {
+        super.init(coder: aDecoder)
+        self.commonInit()
+    }
+    
+    open override func layoutSubviews() {
+        super.layoutSubviews()
+        self.backgroundView?.frame = self.bounds
+        self.contentView.frame = self.bounds
+        self.collectionView.frame = self.contentView.bounds
+    }
+    
+    open override func willMove(toWindow newWindow: UIWindow?) {
+        super.willMove(toWindow: newWindow)
+        if newWindow != nil {
+            self.startTimer()
+        } else {
+            self.cancelTimer()
+        }
+    }
+    
+    #if TARGET_INTERFACE_BUILDER
+    
+    open override func prepareForInterfaceBuilder() {
+        super.prepareForInterfaceBuilder()
+        self.contentView.layer.borderWidth = 1
+        self.contentView.layer.cornerRadius = 5
+        self.contentView.layer.masksToBounds = true
+        self.contentView.frame = self.bounds
+        let label = UILabel(frame: self.contentView.bounds)
+        label.textAlignment = .center
+        label.font = UIFont.boldSystemFont(ofSize: 25)
+        label.text = "FSPagerView"
+        self.contentView.addSubview(label)
+    }
+    
+    #endif
+
+    deinit {
+        self.collectionView.dataSource = nil
+        self.collectionView.delegate = nil
+    }
+
+    // MARK: - UICollectionViewDataSource
+    
+    public func numberOfSections(in collectionView: UICollectionView) -> Int {
+        guard let dataSource = self.dataSource else {
+            return 1
+        }
+        self.numberOfItems = dataSource.numberOfItems(in: self)
+        guard self.numberOfItems > 0 else {
+            return 0;
+        }
+        self.numberOfSections = self.isInfinite && (self.numberOfItems > 1 || !self.removesInfiniteLoopForSingleItem) ? Int(Int16.max)/self.numberOfItems : 1
+        return self.numberOfSections
+    }
+    
+    public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
+        return self.numberOfItems
+    }
+    
+    public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
+        let index = indexPath.item
+        self.dequeingSection = indexPath.section
+        let cell = self.dataSource!.pagerView(self, cellForItemAt: index)
+        return cell
+    }
+    
+    // MARK: - UICollectionViewDelegate
+    
+    public func collectionView(_ collectionView: UICollectionView, shouldHighlightItemAt indexPath: IndexPath) -> Bool {
+        guard let function = self.delegate?.pagerView(_:shouldHighlightItemAt:) else {
+            return true
+        }
+        let index = indexPath.item % self.numberOfItems
+        return function(self,index)
+    }
+    
+    public func collectionView(_ collectionView: UICollectionView, didHighlightItemAt indexPath: IndexPath) {
+        guard let function = self.delegate?.pagerView(_:didHighlightItemAt:) else {
+            return
+        }
+        let index = indexPath.item % self.numberOfItems
+        function(self,index)
+    }
+    
+    public func collectionView(_ collectionView: UICollectionView, shouldSelectItemAt indexPath: IndexPath) -> Bool {
+        guard let function = self.delegate?.pagerView(_:shouldSelectItemAt:) else {
+            return true
+        }
+        let index = indexPath.item % self.numberOfItems
+        return function(self,index)
+    }
+    
+    public func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
+        guard let function = self.delegate?.pagerView(_:didSelectItemAt:) else {
+            return
+        }
+        self.possibleTargetingIndexPath = indexPath
+        defer {
+            self.possibleTargetingIndexPath = nil
+        }
+        let index = indexPath.item % self.numberOfItems
+        function(self,index)
+    }
+    
+    public func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
+        guard let function = self.delegate?.pagerView(_:willDisplay:forItemAt:) else {
+            return
+        }
+        let index = indexPath.item % self.numberOfItems
+        function(self,cell as! FSPagerViewCell,index)
+    }
+    
+    public func collectionView(_ collectionView: UICollectionView, didEndDisplaying cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
+        guard let function = self.delegate?.pagerView(_:didEndDisplaying:forItemAt:) else {
+            return
+        }
+        let index = indexPath.item % self.numberOfItems
+        function(self,cell as! FSPagerViewCell,index)
+    }
+    
+    public func scrollViewDidScroll(_ scrollView: UIScrollView) {
+        if !self.isPossiblyRotating && self.numberOfItems > 0 {
+            // In case someone is using KVO
+            let currentIndex = lround(Double(self.scrollOffset)) % self.numberOfItems
+            if (currentIndex != self.currentIndex) {
+                self.currentIndex = currentIndex
+            }
+        }
+        guard let function = self.delegate?.pagerViewDidScroll else {
+            return
+        }
+        function(self)
+    }
+    
+    public func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
+        if let function = self.delegate?.pagerViewWillBeginDragging(_:) {
+            function(self)
+        }
+        if self.automaticSlidingInterval > 0 {
+            self.cancelTimer()
+        }
+    }
+    
+    public func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
+        if let function = self.delegate?.pagerViewWillEndDragging(_:targetIndex:) {
+            let contentOffset = self.scrollDirection == .horizontal ? targetContentOffset.pointee.x : targetContentOffset.pointee.y
+            let targetItem = lround(Double(contentOffset/self.collectionViewLayout.itemSpacing))
+            function(self, targetItem % self.numberOfItems)
+        }
+        if self.automaticSlidingInterval > 0 {
+            self.startTimer()
+        }
+    }
+    
+    public func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
+        if let function = self.delegate?.pagerViewDidEndDecelerating {
+            function(self)
+        }
+    }
+    
+    public func scrollViewDidEndScrollingAnimation(_ scrollView: UIScrollView) {
+        if let function = self.delegate?.pagerViewDidEndScrollAnimation {
+            function(self)
+        }
+    }
+    
+    // MARK: - Public functions
+    
+    /// Register a class for use in creating new pager view cells.
+    ///
+    /// - Parameters:
+    ///   - cellClass: The class of a cell that you want to use in the pager view.
+    ///   - identifier: The reuse identifier to associate with the specified class. This parameter must not be nil and must not be an empty string.
+    @objc(registerClass:forCellWithReuseIdentifier:)
+    open func register(_ cellClass: Swift.AnyClass?, forCellWithReuseIdentifier identifier: String) {
+        self.collectionView.register(cellClass, forCellWithReuseIdentifier: identifier)
+    }
+    
+    /// Register a nib file for use in creating new pager view cells.
+    ///
+    /// - Parameters:
+    ///   - nib: The nib object containing the cell object. The nib file must contain only one top-level object and that object must be of the type FSPagerViewCell.
+    ///   - identifier: The reuse identifier to associate with the specified nib file. This parameter must not be nil and must not be an empty string.
+    @objc(registerNib:forCellWithReuseIdentifier:)
+    open func register(_ nib: UINib?, forCellWithReuseIdentifier identifier: String) {
+        self.collectionView.register(nib, forCellWithReuseIdentifier: identifier)
+    }
+    
+    /// Returns a reusable cell object located by its identifier
+    ///
+    /// - Parameters:
+    ///   - identifier: The reuse identifier for the specified cell. This parameter must not be nil.
+    ///   - index: The index specifying the location of the cell.
+    /// - Returns: A valid FSPagerViewCell object.
+    @objc(dequeueReusableCellWithReuseIdentifier:atIndex:)
+    open func dequeueReusableCell(withReuseIdentifier identifier: String, at index: Int) -> FSPagerViewCell {
+        let indexPath = IndexPath(item: index, section: self.dequeingSection)
+        let cell = self.collectionView.dequeueReusableCell(withReuseIdentifier: identifier, for: indexPath)
+        guard cell.isKind(of: FSPagerViewCell.self) else {
+            fatalError("Cell class must be subclass of FSPagerViewCell")
+        }
+        return cell as! FSPagerViewCell
+    }
+    
+    /// Reloads all of the data for the collection view.
+    @objc(reloadData)
+    open func reloadData() {
+        self.collectionViewLayout.needsReprepare = true;
+        self.collectionView.reloadData()
+    }
+    
+    /// Selects the item at the specified index and optionally scrolls it into view.
+    ///
+    /// - Parameters:
+    ///   - index: The index path of the item to select.
+    ///   - animated: Specify true to animate the change in the selection or false to make the change without animating it.
+    @objc(selectItemAtIndex:animated:)
+    open func selectItem(at index: Int, animated: Bool) {
+        let indexPath = self.nearbyIndexPath(for: index)
+        let scrollPosition: UICollectionView.ScrollPosition = self.scrollDirection == .horizontal ? .centeredHorizontally : .centeredVertically
+        self.collectionView.selectItem(at: indexPath, animated: animated, scrollPosition: scrollPosition)
+    }
+    
+    /// Deselects the item at the specified index.
+    ///
+    /// - Parameters:
+    ///   - index: The index of the item to deselect.
+    ///   - animated: Specify true to animate the change in the selection or false to make the change without animating it.
+    @objc(deselectItemAtIndex:animated:)
+    open func deselectItem(at index: Int, animated: Bool) {
+        let indexPath = self.nearbyIndexPath(for: index)
+        self.collectionView.deselectItem(at: indexPath, animated: animated)
+    }
+    
+    /// Scrolls the pager view contents until the specified item is visible.
+    ///
+    /// - Parameters:
+    ///   - index: The index of the item to scroll into view.
+    ///   - animated: Specify true to animate the scrolling behavior or false to adjust the pager view’s visible content immediately.
+    @objc(scrollToItemAtIndex:animated:)
+    open func scrollToItem(at index: Int, animated: Bool) {
+        guard index < self.numberOfItems else {
+            fatalError("index \(index) is out of range [0...\(self.numberOfItems-1)]")
+        }
+        let indexPath = { () -> IndexPath in
+            if let indexPath = self.possibleTargetingIndexPath, indexPath.item == index {
+                defer {
+                    self.possibleTargetingIndexPath = nil
+                }
+                return indexPath
+            }
+            return self.numberOfSections > 1 ? self.nearbyIndexPath(for: index) : IndexPath(item: index, section: 0)
+        }()
+        let contentOffset = self.collectionViewLayout.contentOffset(for: indexPath)
+        self.collectionView.setContentOffset(contentOffset, animated: animated)
+    }
+    
+    /// Returns the index of the specified cell.
+    ///
+    /// - Parameter cell: The cell object whose index you want.
+    /// - Returns: The index of the cell or NSNotFound if the specified cell is not in the pager view.
+    @objc(indexForCell:)
+    open func index(for cell: FSPagerViewCell) -> Int {
+        guard let indexPath = self.collectionView.indexPath(for: cell) else {
+            return NSNotFound
+        }
+        return indexPath.item
+    }
+    
+    /// Returns the visible cell at the specified index.
+    ///
+    /// - Parameter index: The index that specifies the position of the cell.
+    /// - Returns: The cell object at the corresponding position or nil if the cell is not visible or index is out of range.
+    @objc(cellForItemAtIndex:)
+    open func cellForItem(at index: Int) -> FSPagerViewCell? {
+        let indexPath = self.nearbyIndexPath(for: index)
+        return self.collectionView.cellForItem(at: indexPath) as? FSPagerViewCell
+    }
+    
+    // MARK: - Private functions
+    
+    fileprivate func commonInit() {
+        
+        // Content View
+        let contentView = UIView(frame:CGRect.zero)
+        contentView.backgroundColor = UIColor.clear
+        self.addSubview(contentView)
+        self.contentView = contentView
+        
+        // UICollectionView
+        let collectionViewLayout = FSPagerViewLayout()
+        let collectionView = FSPagerCollectionView(frame: CGRect.zero, collectionViewLayout: collectionViewLayout)
+        collectionView.dataSource = self
+        collectionView.delegate = self
+        collectionView.backgroundColor = UIColor.clear
+        self.contentView.addSubview(collectionView)
+        self.collectionView = collectionView
+        self.collectionViewLayout = collectionViewLayout
+        
+    }
+    
+    fileprivate func startTimer() {
+        guard self.automaticSlidingInterval > 0 && self.timer == nil else {
+            return
+        }
+        self.timer = Timer.scheduledTimer(timeInterval: TimeInterval(self.automaticSlidingInterval), target: self, selector: #selector(self.flipNext(sender:)), userInfo: nil, repeats: true)
+        RunLoop.current.add(self.timer!, forMode: .common)
+    }
+    
+    @objc
+    fileprivate func flipNext(sender: Timer?) {
+        guard let _ = self.superview, let _ = self.window, self.numberOfItems > 0, !self.isTracking else {
+            return
+        }
+        let contentOffset: CGPoint = {
+            let indexPath = self.centermostIndexPath
+            let section = self.numberOfSections > 1 ? (indexPath.section+(indexPath.item+1)/self.numberOfItems) : 0
+            let item = (indexPath.item+1) % self.numberOfItems
+            return self.collectionViewLayout.contentOffset(for: IndexPath(item: item, section: section))
+        }()
+        self.collectionView.setContentOffset(contentOffset, animated: true)
+    }
+    
+    fileprivate func cancelTimer() {
+        guard self.timer != nil else {
+            return
+        }
+        self.timer!.invalidate()
+        self.timer = nil
+    }
+    
+    fileprivate func nearbyIndexPath(for index: Int) -> IndexPath {
+        // Is there a better algorithm?
+        let currentIndex = self.currentIndex
+        let currentSection = self.centermostIndexPath.section
+        if abs(currentIndex-index) <= self.numberOfItems/2 {
+            return IndexPath(item: index, section: currentSection)
+        } else if (index-currentIndex >= 0) {
+            return IndexPath(item: index, section: currentSection-1)
+        } else {
+            return IndexPath(item: index, section: currentSection+1)
+        }
+    }
+    
+}
+
+extension FSPagerView {
+    
+    /// Constants indicating the direction of scrolling for the pager view.
+    @objc
+    public enum ScrollDirection: Int {
+        /// The pager view scrolls content horizontally
+        case horizontal
+        /// The pager view scrolls content vertically
+        case vertical
+    }
+    
+    /// Requests that FSPagerView use the default value for a given distance.
+    public static let automaticDistance: UInt = 0
+    
+    /// Requests that FSPagerView use the default value for a given size.
+    public static let automaticSize: CGSize = .zero
+    
+}
diff --git a/Pods/FSPagerView/Sources/FSPagerViewCell.swift b/Pods/FSPagerView/Sources/FSPagerViewCell.swift
new file mode 100644
index 0000000000000000000000000000000000000000..98855245ec5e1fa46cb9c6bf33b005cafc4a3eab
--- /dev/null
+++ b/Pods/FSPagerView/Sources/FSPagerViewCell.swift
@@ -0,0 +1,175 @@
+//
+//  FSPagerViewCell.swift
+//  FSPagerView
+//
+//  Created by Wenchao Ding on 17/12/2016.
+//  Copyright © 2016 Wenchao Ding. All rights reserved.
+//
+
+import UIKit
+public protocol FSPagerViewCellDelegate {
+    func delete(at: Int)
+}
+open class FSPagerViewCell: UICollectionViewCell {
+    var topLeftButton: UIButton!
+    open var delegate: FSPagerViewCellDelegate?
+    open var index: Int?
+    
+    /// Returns the label used for the main textual content of the pager view cell.
+    @objc
+    open var textLabel: UILabel? {
+        if let _ = _textLabel {
+            return _textLabel
+        }
+        let view = UIView(frame: .zero)
+        view.isUserInteractionEnabled = false
+        view.backgroundColor = UIColor.black.withAlphaComponent(0.6)
+        
+        let textLabel = UILabel(frame: .zero)
+        textLabel.textColor = .white
+        textLabel.font = UIFont.preferredFont(forTextStyle: .body)
+        self.contentView.addSubview(view)
+        view.addSubview(textLabel)
+        
+        textLabel.addObserver(self, forKeyPath: "font", options: [.old,.new], context: kvoContext)
+        
+        _textLabel = textLabel
+        return textLabel
+    }
+    
+    /// Returns the image view of the pager view cell. Default is nil.
+    @objc
+    open var imageView: UIImageView? {
+        if let _ = _imageView {
+            return _imageView
+        }
+        let imageView = UIImageView(frame: .zero)
+        self.contentView.addSubview(imageView)
+        _imageView = imageView
+        
+        let xPosition = ((self.contentView.bounds.width) - 50) / 2
+        let yPosition = (self.contentView.bounds.height) - 70
+
+        topLeftButton = UIButton(frame: CGRect(x: xPosition, y: yPosition, width: 50, height: 50)) // Adjust frame as needed
+        self.contentView.addSubview(topLeftButton) // Add the button to the cell's contentView
+        topLeftButton.setImage(UIImage(systemName: "trash.fill"), for: .normal)
+        topLeftButton.addTarget(self, action: #selector(topLeftButtonTapped), for: .touchUpInside) // Set the button action
+        topLeftButton.tintColor = .white
+        topLeftButton.layer.cornerRadius = 25
+        topLeftButton.layer.borderColor = UIColor.white.cgColor
+        topLeftButton.layer.borderWidth = 2
+
+        return imageView
+    }
+    
+    fileprivate weak var _textLabel: UILabel?
+    fileprivate weak var _imageView: UIImageView?
+    
+    fileprivate let kvoContext = UnsafeMutableRawPointer(bitPattern: 0)
+    fileprivate let selectionColor = UIColor(white: 0.2, alpha: 0.2)
+    
+    fileprivate weak var _selectedForegroundView: UIView?
+    fileprivate var selectedForegroundView: UIView? {
+        guard _selectedForegroundView == nil else {
+            return _selectedForegroundView
+        }
+        guard let imageView = _imageView else {
+            return nil
+        }
+        let view = UIView(frame: imageView.bounds)
+        imageView.addSubview(view)
+        _selectedForegroundView = view
+        return view
+    }
+    
+    open override var isHighlighted: Bool {
+        set {
+            super.isHighlighted = newValue
+            if newValue {
+                self.selectedForegroundView?.layer.backgroundColor = self.selectionColor.cgColor
+            } else if !super.isSelected {
+                self.selectedForegroundView?.layer.backgroundColor = UIColor.clear.cgColor
+            }
+        }
+        get {
+            return super.isHighlighted
+        }
+    }
+    
+    open override var isSelected: Bool {
+        set {
+            super.isSelected = newValue
+            self.selectedForegroundView?.layer.backgroundColor = newValue ? self.selectionColor.cgColor : UIColor.clear.cgColor
+        }
+        get {
+            return super.isSelected
+        }
+    }
+    
+    public override init(frame: CGRect) {
+        super.init(frame: frame)
+        commonInit()
+    }
+    
+    public required init?(coder aDecoder: NSCoder) {
+        super.init(coder: aDecoder)
+        commonInit()
+    }
+    
+    fileprivate func commonInit() {
+        self.contentView.backgroundColor = UIColor.clear
+        self.backgroundColor = UIColor.clear
+        self.contentView.layer.shadowColor = UIColor.black.cgColor
+        self.contentView.layer.shadowRadius = 5
+        self.contentView.layer.shadowOpacity = 0.75
+        self.contentView.layer.shadowOffset = .zero
+        
+    }
+    
+    @objc func topLeftButtonTapped() {
+        delegate?.delete(at: index ?? -1)
+    }
+    
+    deinit {
+        if let textLabel = _textLabel {
+            textLabel.removeObserver(self, forKeyPath: "font", context: kvoContext)
+        }
+    }
+    
+    override open func layoutSubviews() {
+        super.layoutSubviews()
+        if let imageView = _imageView {
+            imageView.frame = self.contentView.bounds
+        }
+        if let textLabel = _textLabel {
+            textLabel.superview!.frame = {
+                var rect = self.contentView.bounds
+                let height = textLabel.font.pointSize*1.5
+                rect.size.height = height
+                rect.origin.y = self.contentView.frame.height-height
+                return rect
+            }()
+            textLabel.frame = {
+                var rect = textLabel.superview!.bounds
+                rect = rect.insetBy(dx: 8, dy: 0)
+                rect.size.height -= 1
+                rect.origin.y += 1
+                return rect
+            }()
+        }
+        if let selectedForegroundView = _selectedForegroundView {
+            selectedForegroundView.frame = self.contentView.bounds
+        }
+    }
+    
+    open override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
+        if context == kvoContext {
+            if keyPath == "font" {
+                self.setNeedsLayout()
+            }
+        } else {
+            super.observeValue(forKeyPath: keyPath, of: object, change: change, context: context)
+        }
+    }
+    
+}
diff --git a/Pods/FSPagerView/Sources/FSPagerViewLayoutAttributes.swift b/Pods/FSPagerView/Sources/FSPagerViewLayoutAttributes.swift
new file mode 100644
index 0000000000000000000000000000000000000000..d93cb33c365816b0a106ea24a0f7c91a7faedf94
--- /dev/null
+++ b/Pods/FSPagerView/Sources/FSPagerViewLayoutAttributes.swift
@@ -0,0 +1,30 @@
+//
+//  FSPagerViewLayoutAttributes.swift
+//  FSPagerViewExample
+//
+//  Created by Wenchao Ding on 26/02/2017.
+//  Copyright © 2017 Wenchao Ding. All rights reserved.
+//
+
+import UIKit
+
+open class FSPagerViewLayoutAttributes: UICollectionViewLayoutAttributes {
+
+    open var position: CGFloat = 0
+    
+    open override func isEqual(_ object: Any?) -> Bool {
+        guard let object = object as? FSPagerViewLayoutAttributes else {
+            return false
+        }
+        var isEqual = super.isEqual(object)
+        isEqual = isEqual && (self.position == object.position)
+        return isEqual
+    }
+    
+    open override func copy(with zone: NSZone? = nil) -> Any {
+        let copy = super.copy(with: zone) as! FSPagerViewLayoutAttributes
+        copy.position = self.position
+        return copy
+    }
+    
+}
diff --git a/Pods/FSPagerView/Sources/FSPagerViewObjcCompat.h b/Pods/FSPagerView/Sources/FSPagerViewObjcCompat.h
new file mode 100644
index 0000000000000000000000000000000000000000..755f30f689d91cabe12cf7b0356d9c8ff4ccd06e
--- /dev/null
+++ b/Pods/FSPagerView/Sources/FSPagerViewObjcCompat.h
@@ -0,0 +1,23 @@
+//
+//  FSPagerViewObjcCompat.h
+//  FSPagerView
+//
+//  Created by 丁文超 on 2018/9/18.
+//  Copyright © 2018 Wenchao Ding. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import <Foundation/Foundation.h>
+
+#define FSPagerViewExtern extern
+
+/**
+ Requests that FSPagerView use the default value for a given distance.
+ */
+FSPagerViewExtern NSUInteger const FSPagerViewAutomaticDistance;
+
+/**
+ Requests that FSPagerView use the default value for a given size.
+ */
+FSPagerViewExtern CGSize const FSPagerViewAutomaticSize;
+
diff --git a/Pods/FSPagerView/Sources/FSPagerViewObjcCompat.m b/Pods/FSPagerView/Sources/FSPagerViewObjcCompat.m
new file mode 100644
index 0000000000000000000000000000000000000000..7851649a8bcdb95ac24c151641dea32b97477d52
--- /dev/null
+++ b/Pods/FSPagerView/Sources/FSPagerViewObjcCompat.m
@@ -0,0 +1,12 @@
+//
+//  FSPagerViewObjcCompat.m
+//  FSPagerView
+//
+//  Created by Wenchao Ding on 2018/9/24.
+//  Copyright © 2018 Wenchao Ding. All rights reserved.
+//
+
+#import "FSPagerViewObjcCompat.h"
+
+NSUInteger const FSPagerViewAutomaticDistance = 0;
+CGSize const FSPagerViewAutomaticSize = { .width = 0, .height = 0 };
diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock
index 96a76f00dd54ab776c733e25f65f838270d1d26b..15986835f574e48a2ba1728ba6a0a3769b91cf7f 100644
--- a/Pods/Manifest.lock
+++ b/Pods/Manifest.lock
@@ -1,10 +1,12 @@
 PODS:
+  - FSPagerView (0.8.3)
   - ImagePicker (3.2.0)
   - IQKeyboardManagerSwift (7.0.3)
   - LanguageManager-iOS (1.2.7)
   - NBBottomSheet (1.2.0)
 
 DEPENDENCIES:
+  - FSPagerView
   - ImagePicker
   - IQKeyboardManagerSwift
   - LanguageManager-iOS
@@ -12,17 +14,19 @@ DEPENDENCIES:
 
 SPEC REPOS:
   trunk:
+    - FSPagerView
     - ImagePicker
     - IQKeyboardManagerSwift
     - LanguageManager-iOS
     - NBBottomSheet
 
 SPEC CHECKSUMS:
+  FSPagerView: 670405b2f18e2a87fa37f20b00de783e562c25a8
   ImagePicker: 1d950bbb2422548ed58791b4ec7f42fe42920511
   IQKeyboardManagerSwift: f9c5dc36cba16ddd2e51fa7d51c34a2e083029b5
   LanguageManager-iOS: 6b2dbb3793445827114708f0759b76e96932d7c8
   NBBottomSheet: aa7a52809b2d7b193f733247b8ce391a59904372
 
-PODFILE CHECKSUM: 99d4cce8ced2a9accaa7e878545a1ac36d8bb5fc
+PODFILE CHECKSUM: 52accaf9c5f2924a92fc166365082451576507fe
 
 COCOAPODS: 1.14.3
diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj
index 8b9c0495b9faf365825b67f242a9e3a3af147249..7d4c6a3f1c53b0a125e5f8a9fc1e293403dec0a0 100644
--- a/Pods/Pods.xcodeproj/project.pbxproj
+++ b/Pods/Pods.xcodeproj/project.pbxproj
@@ -7,302 +7,339 @@
 	objects = {
 
 /* Begin PBXBuildFile section */
-		028F3BD1F76536182769D7FA2BB26457 /* ImageStack.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4BC9C4AEF4B7509AFF6B6DAA85157F1 /* ImageStack.swift */; };
-		0615219BFD2EBBE27FF41C2C8816791E /* IQTextFieldViewInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20382F7CEA0A2FF24E600822E96AA7EC /* IQTextFieldViewInfo.swift */; };
-		0718CCD0E19136B8DB2A7D4C6585E3ED /* LanguageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA73FF47AD2E401229886E164A016157 /* LanguageManager.swift */; };
-		08822D4E49DB8618D27BAEDED7911733 /* IQKeyboardManager+Internal.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4506BEE76EF98148A28CD87EE773134 /* IQKeyboardManager+Internal.swift */; };
-		08C234F2981017EEF271582022F339F3 /* IQUIView+IQKeyboardToolbarDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B12A19FA505C37ACEDAB545EDD4C324 /* IQUIView+IQKeyboardToolbarDeprecated.swift */; };
-		0A4DB572ACD97EC492C4E93A0FFB2E47 /* IQTextFieldViewListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 056020DCD7EE4DB784B0EB1B1F7CB59C /* IQTextFieldViewListener.swift */; };
-		1021FCA162D086E55DE8D6926F8DA215 /* ImageGalleryViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A967C4C563E4504346C2013BED0CB222 /* ImageGalleryViewCell.swift */; };
-		103FE4EEFF1BE8BAD0FA047987AFED74 /* IQUIView+Hierarchy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291BB5586E07ADC8AFF3AB7CA09E3C84 /* IQUIView+Hierarchy.swift */; };
-		10D1A87F45AFB52D2B34D9ABA1A86105 /* UIImageView+Direction.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD5BCA1FBF25DA15C2AE9337BD05C406 /* UIImageView+Direction.swift */; };
-		14063E1AF70EDDC9F33C8E08DCA0BEF3 /* IQPreviousNextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C8F9D764EEB7EEDEDF45F7C7CC55C33 /* IQPreviousNextView.swift */; };
-		154362EFC8EC0F61F54E24B09266DEB1 /* IQKeyboardReturnKeyHandler+TextFieldDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6795D74469E29BB8CF88805CFB060AFF /* IQKeyboardReturnKeyHandler+TextFieldDelegate.swift */; };
-		178BF9CAADACBF4E8FE49574A848C12A /* NBBottomSheetPresentationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F787D1084E76059C7D81AD88BC26B28E /* NBBottomSheetPresentationController.swift */; };
-		1948830F0F143F2897657B9D75895EFA /* VideoInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C50F60479109C53DD1F7C301694D48A1 /* VideoInfoView.swift */; };
+		028F3BD1F76536182769D7FA2BB26457 /* ImageStack.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAD7C2211C4367AD4461C65ABCCE4B4D /* ImageStack.swift */; };
+		0615219BFD2EBBE27FF41C2C8816791E /* IQTextFieldViewInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3550E18ADF3EF705F4700FC56EA51321 /* IQTextFieldViewInfo.swift */; };
+		0718CCD0E19136B8DB2A7D4C6585E3ED /* LanguageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E7F6859EDFDF3E322CAB934188C105 /* LanguageManager.swift */; };
+		077139FE9B0F01A087099D1DEEA43C6F /* AUTO@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 73CB09935F781BCB817A05DA1DAA1020 /* AUTO@3x.png */; };
+		08822D4E49DB8618D27BAEDED7911733 /* IQKeyboardManager+Internal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C5ED23D8DA6C61EF94C1ADA43ADBED7 /* IQKeyboardManager+Internal.swift */; };
+		08C234F2981017EEF271582022F339F3 /* IQUIView+IQKeyboardToolbarDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE26B4E0FA2A7EB069ECA092637ADB2B /* IQUIView+IQKeyboardToolbarDeprecated.swift */; };
+		0A4DB572ACD97EC492C4E93A0FFB2E47 /* IQTextFieldViewListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44C5AD611F2819B6A087C4E533D669C2 /* IQTextFieldViewListener.swift */; };
+		1021FCA162D086E55DE8D6926F8DA215 /* ImageGalleryViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58468F905BF54F1BB6F1379778747E4A /* ImageGalleryViewCell.swift */; };
+		103FE4EEFF1BE8BAD0FA047987AFED74 /* IQUIView+Hierarchy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6929AC0AE377312BD04644294A15EC42 /* IQUIView+Hierarchy.swift */; };
+		10D1A87F45AFB52D2B34D9ABA1A86105 /* UIImageView+Direction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 186046B555C68EDF4D8B264B7310A49F /* UIImageView+Direction.swift */; };
+		14063E1AF70EDDC9F33C8E08DCA0BEF3 /* IQPreviousNextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C974A91C05893EDB6D9C54E85336A9B /* IQPreviousNextView.swift */; };
+		154362EFC8EC0F61F54E24B09266DEB1 /* IQKeyboardReturnKeyHandler+TextFieldDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70730B6AC4F7CFA336195B8FD8BFA5A3 /* IQKeyboardReturnKeyHandler+TextFieldDelegate.swift */; };
+		178BF9CAADACBF4E8FE49574A848C12A /* NBBottomSheetPresentationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F54D487A85CBB9867A9D40D6C520A091 /* NBBottomSheetPresentationController.swift */; };
+		18874BB7E65438A4A83A05A86904B3D2 /* video@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 629D33431B1A6A7BD331EA4D4836896E /* video@3x.png */; };
+		1948830F0F143F2897657B9D75895EFA /* VideoInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F50249C139F076BB49CF9DC780080CB /* VideoInfoView.swift */; };
 		1BBD42E84E62842B6EA186CEF24BBF45 /* ImagePicker-ImagePicker in Resources */ = {isa = PBXBuildFile; fileRef = 97AA160F23F0CBEDDAF212103E762FC7 /* ImagePicker-ImagePicker */; };
-		1BBED45FEDD4AF437A762909E4937019 /* CameraMan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44A535B048E99AD006404076AEFBB03C /* CameraMan.swift */; };
-		1C3881B0113D3219398154E16AA4413C /* IQKeyboardReturnKeyHandler+TextViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CD85F8FE5988FBAA6E8BC1DC380C2C /* IQKeyboardReturnKeyHandler+TextViewDelegate.swift */; };
-		1D5090C638CFC6ABA603A73B2D890CC7 /* Helper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EE9C6C08B1735F0F717130FCC08BDA9 /* Helper.swift */; };
+		1BBED45FEDD4AF437A762909E4937019 /* CameraMan.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9DD740680FA210D5DAB6BE252AB4EF1 /* CameraMan.swift */; };
+		1C3881B0113D3219398154E16AA4413C /* IQKeyboardReturnKeyHandler+TextViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89F5F3DB1CD795822ECF03A3BF322570 /* IQKeyboardReturnKeyHandler+TextViewDelegate.swift */; };
+		1D5090C638CFC6ABA603A73B2D890CC7 /* Helper.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE279F36DEA7F9799201FBED80DE1579 /* Helper.swift */; };
 		23D11E770DF137CBF802A30E2B19C054 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C54FCF3DBFE97D4603C0EACF18FA0D04 /* Foundation.framework */; };
-		24C699F9653980B77F44634EF44641C1 /* IQKeyboardInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86E4E0BDBE48394EB9813E4999877362 /* IQKeyboardInfo.swift */; };
-		267C4C6C182CC853990C78F13C5318CE /* TopView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46ED7D7EDA19CDAE346E3AE6A5C8BB84 /* TopView.swift */; };
-		2BC4A6DBF3FFADA37FBD3DD6E7FF7DF5 /* video@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 15C8486B0FEF983C5B8781637A943491 /* video@3x.png */; };
-		2CE68F64419AE1091FEC8A5F75C29DCC /* cameraIcon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = F5CB977FC46BAB3CEE64355EC9A19AC3 /* cameraIcon@3x.png */; };
-		32766BC7B540C537C3EE147C018D8A02 /* selectedImageGallery@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 29F03ED2CD860C1429379A22D209D161 /* selectedImageGallery@3x.png */; };
-		3402A26F7BBA359E410BEB33C8B74254 /* NBBottomSheetTransitioningDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9748A2A58F64F03A23B2752179897C3D /* NBBottomSheetTransitioningDelegate.swift */; };
-		3452528F3B9B79AD67D45FEA174F71E4 /* IQUICollectionView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A860EAF32F2B3C4C7F95F3E1B2D01C3 /* IQUICollectionView+Additions.swift */; };
-		34BDB069A96125DAF2FEF6FF93A3F6AF /* IQToolbarPlaceholderConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30EAF9D343ACF607F9D9719F907EC3EA /* IQToolbarPlaceholderConfiguration.swift */; };
-		3573FA382FBE08F99039CED491DB9FF0 /* IQKeyboardManagerSwift-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FB35C3ECFA7953FFD378F42A4E4FB69 /* IQKeyboardManagerSwift-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
-		3806469B2739BBFA16083760004ED9B4 /* ImageGalleryViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 601C0200A96E4B609579FBD7C1B9CDB8 /* ImageGalleryViewDataSource.swift */; };
-		38CBE3196BDD577B5E72BC65508A77F8 /* IQTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94FB65BF2E12942E08FD28D02B196063 /* IQTextView.swift */; };
-		38FD95DCC2D02D5B78BE9AEE48DBDF25 /* ConstraintsSetup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C819EBB7C5175DF511CF00A578B7B24 /* ConstraintsSetup.swift */; };
+		24C699F9653980B77F44634EF44641C1 /* IQKeyboardInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 850DF479EFFD8725D082462C3E5C53C0 /* IQKeyboardInfo.swift */; };
+		267C4C6C182CC853990C78F13C5318CE /* TopView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48F3385D99D520F36A9C28AE3AFA44A9 /* TopView.swift */; };
+		29C03EAF5C27DC851118AEC88ABEC151 /* FSPagerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C49B18419A5350E2FF0519E3E2F6AE1 /* FSPagerView.swift */; };
+		2E4A914423BA1B263C96C3BBC43E2245 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C63F26DA7ECAFB44B0A5DD0BC0E2F89 /* UIKit.framework */; };
+		3402A26F7BBA359E410BEB33C8B74254 /* NBBottomSheetTransitioningDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6C861DA278A5D245DA21D0329434D78 /* NBBottomSheetTransitioningDelegate.swift */; };
+		3452528F3B9B79AD67D45FEA174F71E4 /* IQUICollectionView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07BB2FCA4E9BAB2B85EDB57C2DEDEE86 /* IQUICollectionView+Additions.swift */; };
+		34BDB069A96125DAF2FEF6FF93A3F6AF /* IQToolbarPlaceholderConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82675B0AA9E14C3B813886B00BAE7B56 /* IQToolbarPlaceholderConfiguration.swift */; };
+		3573FA382FBE08F99039CED491DB9FF0 /* IQKeyboardManagerSwift-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 10D23B759B9D7AAD7FF8636994E570FF /* IQKeyboardManagerSwift-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		3806469B2739BBFA16083760004ED9B4 /* ImageGalleryViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4854795675642F9D2170DC3945BA5CCE /* ImageGalleryViewDataSource.swift */; };
+		38CBE3196BDD577B5E72BC65508A77F8 /* IQTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C50EF13DE5ADE34DBF289032C4FD68F5 /* IQTextView.swift */; };
+		38FD95DCC2D02D5B78BE9AEE48DBDF25 /* ConstraintsSetup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 663CA458AFC6B3F550F1ED7A98EB1718 /* ConstraintsSetup.swift */; };
+		3AAA88A0DA1A4C83DE80CF06DAE842BE /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 7182925D2F6410484CED5BA08649E799 /* PrivacyInfo.xcprivacy */; };
 		3CCAA73182C09F77A88AFFA24E96DBB6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C54FCF3DBFE97D4603C0EACF18FA0D04 /* Foundation.framework */; };
-		3E21C9612D00C6B92D3FCE3589917729 /* UIView+Direction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57A65B7383E73A602FC92334219CC2F4 /* UIView+Direction.swift */; };
-		4017CF2B3EE45E7E579E68E6FCFBF732 /* IQKeyboardManager+UIKeyboardNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 977093DD69FC042131EE7AFA9CB64D54 /* IQKeyboardManager+UIKeyboardNotification.swift */; };
-		42B931814C7B25871333D5DA9A0E2A41 /* IQKeyboardReturnKeyHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AEABCA2EFA835BAB7FCD6AD66F96C96 /* IQKeyboardReturnKeyHandler.swift */; };
-		48A4D5E4D954CB4212E540A92570BBF0 /* UIView+Swizzling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E717421FDE87ECE8BD075C4C0DCD677 /* UIView+Swizzling.swift */; };
-		49F467E673A926683C4B3B56FB0B3805 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C54FCF3DBFE97D4603C0EACF18FA0D04 /* Foundation.framework */; };
+		3E21C9612D00C6B92D3FCE3589917729 /* UIView+Direction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C9C60CA3B8DB21A9CA54DE050F8F651 /* UIView+Direction.swift */; };
+		4017CF2B3EE45E7E579E68E6FCFBF732 /* IQKeyboardManager+UIKeyboardNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 261499A1227131B89CE68BBA9C645617 /* IQKeyboardManager+UIKeyboardNotification.swift */; };
+		40987E046BAD603A58CA00B9A7648588 /* FSPageViewLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6381DE79278633AE97412B34DEA61A9 /* FSPageViewLayout.swift */; };
+		42B931814C7B25871333D5DA9A0E2A41 /* IQKeyboardReturnKeyHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FA2436A50C4518FAFDBB1C7958F150B /* IQKeyboardReturnKeyHandler.swift */; };
+		488A767CF7494D169BFB886EDC470F5D /* FSPageViewTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBF0AFCBFFE0F0AC4056B467DFD3AAAE /* FSPageViewTransformer.swift */; };
+		48A4D5E4D954CB4212E540A92570BBF0 /* UIView+Swizzling.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFCA4D9FC5676F5CB290D0B030862CDC /* UIView+Swizzling.swift */; };
 		4CDBAE55660ED186441E9E4EDE6B3D31 /* IQKeyboardManagerSwift-IQKeyboardManagerSwift in Resources */ = {isa = PBXBuildFile; fileRef = 8D8069D3964814114ACEC3084C010B59 /* IQKeyboardManagerSwift-IQKeyboardManagerSwift */; };
-		50374D59C8ED3AE3E41C30F25859F981 /* ImagePickerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0695BAE8FAA193DA575E4D83469826A /* ImagePickerController.swift */; };
-		54BAE903D82C39392943869866252D93 /* IQNSArray+Sort.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D26C00E0D91C11489799747334F6B83 /* IQNSArray+Sort.swift */; };
-		578627027C10D3A455E9F1DC2BAE38DB /* OFF@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 2043A7C5F8AE63209E4935ABE46E4DE2 /* OFF@3x.png */; };
-		597994C3AE8908B1E462BC03AC8C23FB /* IQKeyboardManagerCompatible.swift in Sources */ = {isa = PBXBuildFile; fileRef = 862A62B35CB4A7FCCD78CDC63C79FE00 /* IQKeyboardManagerCompatible.swift */; };
-		5F0469C5B154DC20B844EA2A9B7F8D42 /* IQPlaceholderable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3444CFC5D1A192201D71D9AD68E2C80 /* IQPlaceholderable.swift */; };
-		5F62DAE67CF97B7C42471EA91B79AA9A /* IQTextFieldViewInfoModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C60BE9866DE0F494BE98A0D610983E5 /* IQTextFieldViewInfoModel.swift */; };
-		6418A8A5D32E73D898AB155952180B0C /* LanguageManager-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 289D379893DAFB4C3F91B8DC45FEE96B /* LanguageManager-iOS-dummy.m */; };
-		674C6B2E317E657D8EAD3CC73F608540 /* IQKeyboardManager+Debug.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E7504E9B38B126A1FE4CDCD1F6B5CDF /* IQKeyboardManager+Debug.swift */; };
-		6D55C34EF7CE4718D8B2FE6CE95C5674 /* DefaultsKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CDD2F875F3224637E8647D321D57CDC /* DefaultsKeys.swift */; };
-		6F201AA2CEBCF262922C81580D5F6869 /* Pods-MiniScanner-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 123ADF4A6B2F1DEBA5B7482D4983B685 /* Pods-MiniScanner-dummy.m */; };
-		6F875A0983E3FB0E0CC0BDA6376F73E8 /* String+Localiz.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8CFD7880A243F4083C1631C6F44B0C0 /* String+Localiz.swift */; };
-		6FAA62F8C663AAEDAB170956E9A298CC /* ImageGalleryLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 716CB388FC696AF7CCFC6B84221B8B7E /* ImageGalleryLayout.swift */; };
-		701904768C60A3F9060518DD58EC2882 /* IQToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10B1DFF1A793B246DA3C40DDAECABE99 /* IQToolbar.swift */; };
-		733CF7F19636AFF4A97708DFDE0AE53C /* IQKeyboardManagerSwift-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E9A7E67F21C913E63FC39339C1A34EDF /* IQKeyboardManagerSwift-dummy.m */; };
-		743ED1DCEC16DC2E7FAD8FBDD276EC8F /* ImagePicker-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D96B518E8F4EF4B01A14DB607E5728A5 /* ImagePicker-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		50374D59C8ED3AE3E41C30F25859F981 /* ImagePickerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38D8BFE264593E61F913A8B5B7BFBE0F /* ImagePickerController.swift */; };
+		54BAE903D82C39392943869866252D93 /* IQNSArray+Sort.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1385EA4B73C794E0C6B84F4886A2CC5 /* IQNSArray+Sort.swift */; };
+		597994C3AE8908B1E462BC03AC8C23FB /* IQKeyboardManagerCompatible.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52D8A157D7952E7CD278A89DB1EE312E /* IQKeyboardManagerCompatible.swift */; };
+		5F0469C5B154DC20B844EA2A9B7F8D42 /* IQPlaceholderable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D158F541F3CBD663BCD2F2A65D3E0C3 /* IQPlaceholderable.swift */; };
+		5F62DAE67CF97B7C42471EA91B79AA9A /* IQTextFieldViewInfoModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11EF2D1F813F931138D6E82511E04949 /* IQTextFieldViewInfoModel.swift */; };
+		6418A8A5D32E73D898AB155952180B0C /* LanguageManager-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 53544CF5676171AA127FD31C20A35BF1 /* LanguageManager-iOS-dummy.m */; };
+		674C6B2E317E657D8EAD3CC73F608540 /* IQKeyboardManager+Debug.swift in Sources */ = {isa = PBXBuildFile; fileRef = 449244F55B8088C827AD4787D03C7A37 /* IQKeyboardManager+Debug.swift */; };
+		69C7244F5E0D41CF59E5ADC8952F8D0D /* FSPagerViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FB0228AF9177F654C13A7EC58B65414 /* FSPagerViewCell.swift */; };
+		6D55C34EF7CE4718D8B2FE6CE95C5674 /* DefaultsKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45848AD4380C3F81E612637A06D74516 /* DefaultsKeys.swift */; };
+		6F875A0983E3FB0E0CC0BDA6376F73E8 /* String+Localiz.swift in Sources */ = {isa = PBXBuildFile; fileRef = 582327A9A4DA4D82BEFB195FD92F4B2E /* String+Localiz.swift */; };
+		6FAA62F8C663AAEDAB170956E9A298CC /* ImageGalleryLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11D6BF4A7EE6C01C6AD9233D0986DA5 /* ImageGalleryLayout.swift */; };
+		701904768C60A3F9060518DD58EC2882 /* IQToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78AE0362F9BE43843B5E482BC8607E4B /* IQToolbar.swift */; };
+		733CF7F19636AFF4A97708DFDE0AE53C /* IQKeyboardManagerSwift-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E86527F73AEB9E16F8FA507E95F54A /* IQKeyboardManagerSwift-dummy.m */; };
+		7399F0854271981516AA79727A0A06C8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C54FCF3DBFE97D4603C0EACF18FA0D04 /* Foundation.framework */; };
+		743ED1DCEC16DC2E7FAD8FBDD276EC8F /* ImagePicker-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A0D2A794776C30796425F42DDE5F36A /* ImagePicker-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		7586D1882B962E1E31C28CC6396668B3 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C63F26DA7ECAFB44B0A5DD0BC0E2F89 /* UIKit.framework */; };
-		784DF7F278DC988FEEECB999A9ADFCBB /* BottomContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0658924A19160F383D82E03A19918A8 /* BottomContainerView.swift */; };
-		797DF46337EAC66E47C5ADAF32515524 /* NBBottomSheet.h in Headers */ = {isa = PBXBuildFile; fileRef = A1EA42CD913213E491331A02F772F77B /* NBBottomSheet.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		784DF7F278DC988FEEECB999A9ADFCBB /* BottomContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BF4FDDCDF3959514F7E4844C446B4E6 /* BottomContainerView.swift */; };
+		797DF46337EAC66E47C5ADAF32515524 /* NBBottomSheet.h in Headers */ = {isa = PBXBuildFile; fileRef = C36669888D89E20D89BDF4F1246671ED /* NBBottomSheet.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		7B2263CFC47393D3FB5CD8D5F7EB57AD /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C63F26DA7ECAFB44B0A5DD0BC0E2F89 /* UIKit.framework */; };
-		7DB7E0E519A315B78D72BF7C63C64E30 /* ButtonPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 263E5DFD01305ED7A2E14D5AA268113B /* ButtonPicker.swift */; };
-		7E21F9F8960AE60029BB764D2B371277 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = F7FEF197B2124809DF009FE2F894546E /* PrivacyInfo.xcprivacy */; };
-		8086BD2DB5F1A0CC88E4F3386570A21C /* IQUITextFieldView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C5B75448D0B982844A56F3E38FFC5C4 /* IQUITextFieldView+Additions.swift */; };
-		8234444617FD513B81095D920BFA796B /* NBConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0242BCD9DCECF2E1893F122E132B9420 /* NBConfiguration.swift */; };
-		82950EE4BDD57F74749742A3E1566073 /* IQKeyboardManager+UITextFieldViewNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AD9E89B936B222489C91787D4FE88A7 /* IQKeyboardManager+UITextFieldViewNotification.swift */; };
-		829A79A8C324697D5A619C029AEB0063 /* CameraView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4B4C52CBF38490F4AA48F16DF2F0CE8 /* CameraView.swift */; };
-		852E6AB133CF7BDE7DE7D836AE201868 /* Languages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D84B693516050AF9587ABB880A4C673 /* Languages.swift */; };
-		8EAF267614A5AB6196921C15E719AE35 /* NBBottomSheetDismissalTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88370D7F3B222EDE41FA71466C63DA1D /* NBBottomSheetDismissalTransition.swift */; };
-		8ED2E941DF0803C8AA331D0D8C722615 /* IQBarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E56204315A31A820258FD80789F1967 /* IQBarButtonItem.swift */; };
-		8FDA28363A5E49017498FD69AAA8F59F /* IQKeyboardListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A95315CDACAED5D1C09122017965AF4 /* IQKeyboardListener.swift */; };
-		907FCA3049CAAF64B579D08D339D118D /* IQBarButtonItemConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9013F524E32E062B14DA4772DE8A003F /* IQBarButtonItemConfiguration.swift */; };
-		920DAFAA05D6AEE35D1C4B1E5B72E53A /* AUTO@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 215A93E8B8D35FC8C0FE9136FCAED2CD /* AUTO@3x.png */; };
-		94F893223EB4C1C0F829C17900114AFA /* IQUIScrollView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43717B490B462ACA5B2524D38A8D85A1 /* IQUIScrollView+Additions.swift */; };
+		7DB7E0E519A315B78D72BF7C63C64E30 /* ButtonPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B88917F2F7C1A72A04FA85624C3DEFF /* ButtonPicker.swift */; };
+		8086BD2DB5F1A0CC88E4F3386570A21C /* IQUITextFieldView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D6BEBA675F56179275B2E4335F5C926 /* IQUITextFieldView+Additions.swift */; };
+		8234444617FD513B81095D920BFA796B /* NBConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD6960427DCEE975DA8C892E3FD37397 /* NBConfiguration.swift */; };
+		82950EE4BDD57F74749742A3E1566073 /* IQKeyboardManager+UITextFieldViewNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EC9B8BC1831AE71D4A3E3399C6D7CEB /* IQKeyboardManager+UITextFieldViewNotification.swift */; };
+		829A79A8C324697D5A619C029AEB0063 /* CameraView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 391991FCCD7C3163955756BE5F24E0B6 /* CameraView.swift */; };
+		84CD0E0DCAD6593350AA864342338120 /* Pods-MiniScanner-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 123ADF4A6B2F1DEBA5B7482D4983B685 /* Pods-MiniScanner-dummy.m */; };
+		852E6AB133CF7BDE7DE7D836AE201868 /* Languages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2AF876CE5C67756C63AB2D1B6C244D51 /* Languages.swift */; };
+		8A2B2068FC39EB1AEB76D3DCC8BC6EC4 /* selectedImageGallery@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D1B09D1AFAB4C057139EF408248FB039 /* selectedImageGallery@3x.png */; };
+		8EAF267614A5AB6196921C15E719AE35 /* NBBottomSheetDismissalTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEBACB3D1E9B957E79A8E8DB40C8FF19 /* NBBottomSheetDismissalTransition.swift */; };
+		8ED2E941DF0803C8AA331D0D8C722615 /* IQBarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BB6C6E6068769143E709E93481E6F1A /* IQBarButtonItem.swift */; };
+		8FDA28363A5E49017498FD69AAA8F59F /* IQKeyboardListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 610191544EEAD197032191BA9FC6A4BA /* IQKeyboardListener.swift */; };
+		907FCA3049CAAF64B579D08D339D118D /* IQBarButtonItemConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9FB297F85430CCD6E4BF32C102F32CC /* IQBarButtonItemConfiguration.swift */; };
+		91611428D06F5E61CECF70A53E6DA6C6 /* FSPagerViewObjcCompat.h in Headers */ = {isa = PBXBuildFile; fileRef = A9B7321D9EFF744C9C4029D6879D984C /* FSPagerViewObjcCompat.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		94F893223EB4C1C0F829C17900114AFA /* IQUIScrollView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C6FBE022DD17007165E204314587DF2 /* IQUIScrollView+Additions.swift */; };
+		970338AEDE475A68CFFB0D162B7C4A51 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C54FCF3DBFE97D4603C0EACF18FA0D04 /* Foundation.framework */; };
 		98A4D0D5928A35C7DB3D9272187789A8 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3DF46AD6E25D68DB361974528992221 /* CoreGraphics.framework */; };
-		9A00A25ED34A7687C62B02EBB76C1248 /* IQKeyboardConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55E90398CF3BD4545F2E6C9AC46BB2F7 /* IQKeyboardConfiguration.swift */; };
-		9E704111CAAACBF64155A576FC337323 /* LanguageManager-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 534680B4399C935BB122047C4F15F69F /* LanguageManager-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
-		9F78D56352F7D932DCEBE416C668C7BA /* IQKeyboardManager+ToolbarActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F9F81C96DDC9B56C34A0E6D7C645E22 /* IQKeyboardManager+ToolbarActions.swift */; };
-		A5E69CC013C4311C8AF52C7F7AB095C9 /* IQUITableView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB51AFFCD4B39F79707FB09B42ED4464 /* IQUITableView+Additions.swift */; };
-		AE7D065E1D48171258FD8F07F7CD592C /* IQKeyboardManagerConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 711571167DFF1C3D3C0E94EFCCC0CF67 /* IQKeyboardManagerConstants.swift */; };
-		AF715064CF6458D3D89BB563DFDB00C6 /* UIButton+Direction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 645D05593EA9E5A0AA34FFF2E53FF66B /* UIButton+Direction.swift */; };
-		B0E87F4E370B3A0CD14B50D219AE7B0B /* StackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99DE0EC73DF2C605E373AA84080710B6 /* StackView.swift */; };
+		9A00A25ED34A7687C62B02EBB76C1248 /* IQKeyboardConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1E4CC36A055577A0E55615D5E942AAE /* IQKeyboardConfiguration.swift */; };
+		9E704111CAAACBF64155A576FC337323 /* LanguageManager-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FACF36010BFCB447C18555FE06FB3998 /* LanguageManager-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		9F78D56352F7D932DCEBE416C668C7BA /* IQKeyboardManager+ToolbarActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C78127B028ED64AEA102D7A53AF6C180 /* IQKeyboardManager+ToolbarActions.swift */; };
+		A5E69CC013C4311C8AF52C7F7AB095C9 /* IQUITableView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2117351B73CD63629B006A8EDA630B87 /* IQUITableView+Additions.swift */; };
+		AE7D065E1D48171258FD8F07F7CD592C /* IQKeyboardManagerConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BB9EE1F19AB969730E96727C45644A3 /* IQKeyboardManagerConstants.swift */; };
+		AF715064CF6458D3D89BB563DFDB00C6 /* UIButton+Direction.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6349A9899C7B2CD06A8CD9D85A55096 /* UIButton+Direction.swift */; };
+		B0E87F4E370B3A0CD14B50D219AE7B0B /* StackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AA3096AB78C69396BEB49F0A58B41C /* StackView.swift */; };
 		B1A786B1A2F11EBD1BF77305EEB710F5 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2EE6749FC108D414ECB83B77EF11BD86 /* QuartzCore.framework */; };
-		B1BFC54288364884DDEAE75027BABE1A /* IQActiveConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6186F4433DF874D9D682B69E4B9692BF /* IQActiveConfiguration.swift */; };
-		B5917BEC7AED79CE3393A40E8CB00C92 /* focusIcon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 06DB7F25D68C95F46140AAF75BE7B2D9 /* focusIcon@3x.png */; };
-		B9CF878085ABA2991A9C6F12F9B9DAB3 /* IQTitleBarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 326C56A2910292830ACB66D6AC2F0043 /* IQTitleBarButtonItem.swift */; };
+		B1BFC54288364884DDEAE75027BABE1A /* IQActiveConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F5477B53916433C6C9207EAFDD8DD96 /* IQActiveConfiguration.swift */; };
+		B9CF878085ABA2991A9C6F12F9B9DAB3 /* IQTitleBarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2729357D2F7C6A9A64C2602DAD22CE6E /* IQTitleBarButtonItem.swift */; };
 		BD0139B5F1C96514CB66C4310AAF1DF5 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 56B28C4E9F718651E6E1B010F31566EB /* AVFoundation.framework */; };
-		CA8CFC49D2338D41DA4E83F941867CEB /* ImagePicker-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AFA6A88904B0288563135DBDF949AA6A /* ImagePicker-dummy.m */; };
+		C43469D6FD925CAAD4F5E0E4A76E44FA /* Pods-MiniScanner-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E8A070B594D65627DD64F5ABC65D271 /* Pods-MiniScanner-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		C85C11573FFE927A84AD0C8BE456AD81 /* FSPagerViewLayoutAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B44DB1CA9AEFD39AB320FC434F4D5CF /* FSPagerViewLayoutAttributes.swift */; };
+		CA8CFC49D2338D41DA4E83F941867CEB /* ImagePicker-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0686A6CDA651BBF2C5B47698FD1897B4 /* ImagePicker-dummy.m */; };
 		CC897E71556348377B4C31307E208C80 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C54FCF3DBFE97D4603C0EACF18FA0D04 /* Foundation.framework */; };
-		CC96488C33BFB3BCEE4A665A438CAC36 /* IQUIViewController+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4005F31A049034527E5C53DB638ABA67 /* IQUIViewController+Additions.swift */; };
-		D2A598E7174826A7B04036E7AC8AA3B6 /* Storage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AC4C58FBC098E1C3013D497F49700 /* Storage.swift */; };
-		D3D1F63C30E95311B687FA924B872C15 /* IQKeyboardManager+Deprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF24A475CC7A858E5C29677907CD02EC /* IQKeyboardManager+Deprecated.swift */; };
-		D46F90A0F6FC8F1D2AA4129BC2A934DD /* NBBottomSheet-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4449DCA01F0FAA18DA31E34CA6E8A3DE /* NBBottomSheet-dummy.m */; };
+		CC96488C33BFB3BCEE4A665A438CAC36 /* IQUIViewController+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C9E7FCA694AF091E1380AFFC063B0CB /* IQUIViewController+Additions.swift */; };
+		CE2C6FD104092EA3F2F0A357C72460A8 /* FSPagerView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 125C173AFCC25297EFA8933F73F0E07B /* FSPagerView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		CFFB3F1E1F4674AE420BC66278B8F182 /* OFF@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3E75A0FB9E184426E1D8B314F77FD6BC /* OFF@3x.png */; };
+		D2A598E7174826A7B04036E7AC8AA3B6 /* Storage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55D485F79966A1E73CD7E8FE775AF3AA /* Storage.swift */; };
+		D3D1F63C30E95311B687FA924B872C15 /* IQKeyboardManager+Deprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47213A20CC51FA450CDBAA7B9D82B79B /* IQKeyboardManager+Deprecated.swift */; };
+		D46F90A0F6FC8F1D2AA4129BC2A934DD /* NBBottomSheet-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 50B8C2618C444EA6C533E0A028A40401 /* NBBottomSheet-dummy.m */; };
 		D4BB4D928CB44E6CE753BEA14E5AC918 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C54FCF3DBFE97D4603C0EACF18FA0D04 /* Foundation.framework */; };
-		D5F3E92E5A3412923CBA8DF657DB200E /* Pods-MiniScanner-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E8A070B594D65627DD64F5ABC65D271 /* Pods-MiniScanner-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
-		D8322CBE73400EE4382D1A042D2D53D3 /* IQUIView+IQKeyboardToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18F31FEEA7BC66636304805A3A9A4B08 /* IQUIView+IQKeyboardToolbar.swift */; };
-		D88C2EA8ACCC0DE031D9E7A768062E2C /* IQKeyboardManager+Toolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A78F8690931C4D43717D7BEB933643B /* IQKeyboardManager+Toolbar.swift */; };
-		DE3B5070A41194C21898D92DBFFCBE4C /* IQRootControllerConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69B4ECFE4C236C4C7934D848AB816BEA /* IQRootControllerConfiguration.swift */; };
-		E483FA24409A56AAEDF8A1DEC5F55F16 /* UIImage+NextPrevious.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5A432BBFA3EC41432193F1BA4E8F5C7 /* UIImage+NextPrevious.swift */; };
-		E8770A941545BB190D76BF7E5262797D /* IQToolbarConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DFAC6C52C912E471A716442152D7D99 /* IQToolbarConfiguration.swift */; };
-		EBB5F245DBEEB13D48F09E0DD75A6C95 /* IQKeyboardManager+Position.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BACCBB72B2A572D9848F795451F28A7 /* IQKeyboardManager+Position.swift */; };
-		ECFE64B0759EFA4F555994B6CDCED624 /* AssetManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81FA3ABE6BD27E15D8013335461EEF9E /* AssetManager.swift */; };
-		F1A6C2294A671BACFC919A4FC9576753 /* ON@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = DF66E41F4A7A5BBD53D26B96702267F0 /* ON@3x.png */; };
-		F2AF558F96F3C43C3E4C747E45E5637C /* LocationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3022F128AE1CFF88F2BC7FB7C6841048 /* LocationManager.swift */; };
-		F2ED9C9337B84D1E42E67BF7F7DAD72C /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73A70A5A384D7DA1AFF9BF25C746F455 /* Configuration.swift */; };
-		F56475ACE1A1CFE322DBFA35CDA1A204 /* NBBottomSheetConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71EDA53936756B122C07B02B38A07C32 /* NBBottomSheetConfiguration.swift */; };
-		F681FB74C756E0AAFFDC0D414EBD8FA0 /* IQScrollViewConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = A168E01B41B0E8F15B95D9D58BDC2325 /* IQScrollViewConfiguration.swift */; };
-		F7C3A4FED58118F9ADC5B4AF9A10B9FC /* ViewDirection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F4E12C26B5DAC43495F2BB6B79590D2 /* ViewDirection.swift */; };
-		F7E2900D9AF732C627F184A258F48DF0 /* NBBottomSheetController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5503FBF58DE89968F04737B3C5E300D /* NBBottomSheetController.swift */; };
-		F9DE1A3C506E506F4DA4B7714359E8D1 /* IQKeyboardManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21EE02C73BE1E329B7305249DAB09CC9 /* IQKeyboardManager.swift */; };
-		FB0A76B10B5927494469B16B28CF2B9A /* NBBottomSheetPresentationTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B4836109A68D1FEAD11C1BBCDA727B1 /* NBBottomSheetPresentationTransition.swift */; };
-		FDEFBFB34E35A4BB332264E0CACCF5D8 /* IQInvocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93202E4E9F1E05A6E4CE614860F52997 /* IQInvocation.swift */; };
-		FE4936BFE1B6B6A9E8136010E413A24B /* NBBottomSheet-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DD819B41E4207BCA0A1762DEC5DE7A12 /* NBBottomSheet-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
-		FF8C6AC907C8F4B527F9A0CBDBCC7F92 /* ImageGalleryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 785C8370814C365365AABA3CB24224DE /* ImageGalleryView.swift */; };
+		D8322CBE73400EE4382D1A042D2D53D3 /* IQUIView+IQKeyboardToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B3B4AA730049734AC812A25BADAA3FF /* IQUIView+IQKeyboardToolbar.swift */; };
+		D88C2EA8ACCC0DE031D9E7A768062E2C /* IQKeyboardManager+Toolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A4224E13F5E64B7C7ED26972CECCEF8 /* IQKeyboardManager+Toolbar.swift */; };
+		DE3B5070A41194C21898D92DBFFCBE4C /* IQRootControllerConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE15B5E77B366A3841F60137841BD360 /* IQRootControllerConfiguration.swift */; };
+		DFC166D6D9127F68B106B426C1987BEE /* cameraIcon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 643AAC5051F9ED3819D5583FEA4DA5B6 /* cameraIcon@3x.png */; };
+		E483FA24409A56AAEDF8A1DEC5F55F16 /* UIImage+NextPrevious.swift in Sources */ = {isa = PBXBuildFile; fileRef = 100DB09534605AB7B903CC6178562E6C /* UIImage+NextPrevious.swift */; };
+		E8770A941545BB190D76BF7E5262797D /* IQToolbarConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D54E2D6583C15003E804604338BA9F6 /* IQToolbarConfiguration.swift */; };
+		EA89DFEFE15FAD82868C74E94F6F1B75 /* FSPagerViewObjcCompat.m in Sources */ = {isa = PBXBuildFile; fileRef = 76488B34BAAD9317550CB27A39510A82 /* FSPagerViewObjcCompat.m */; };
+		EBB5F245DBEEB13D48F09E0DD75A6C95 /* IQKeyboardManager+Position.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19A2058EC0A4223F67C47A162832B234 /* IQKeyboardManager+Position.swift */; };
+		ECA11CD4E20DFCA3327CB006B10A3DB8 /* FSPagerCollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D41FAF09B7FF66C2B3ED69436FAD56A /* FSPagerCollectionView.swift */; };
+		ECFE64B0759EFA4F555994B6CDCED624 /* AssetManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = F660610295E85CB8BC6BB3BFE0FB06E8 /* AssetManager.swift */; };
+		F2562CFCEC42E2989BADC7E823F2C9C3 /* FSPageControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73151BB74FF19C87B98805C922968D9B /* FSPageControl.swift */; };
+		F2AF558F96F3C43C3E4C747E45E5637C /* LocationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE7DC77106671C740F9DBB7CD35316B1 /* LocationManager.swift */; };
+		F2ED9C9337B84D1E42E67BF7F7DAD72C /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = A82E5C2AB35A91C11A2164845AF66C0B /* Configuration.swift */; };
+		F38157F1C724E5D0542A774916F5FE5E /* focusIcon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 94897EC17A759429C47FB12A7A11680B /* focusIcon@3x.png */; };
+		F430D726D95E472A0F080B87D2FFB84C /* ON@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = A2BCCDE18C4FD7594F74F094794225A9 /* ON@3x.png */; };
+		F56475ACE1A1CFE322DBFA35CDA1A204 /* NBBottomSheetConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C8C5A6FCC53D04A60F40DA8C98D2257 /* NBBottomSheetConfiguration.swift */; };
+		F6702D89104E55C112FE16943BE7D41A /* FSPagerView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BA3E2B1D13CBA35E2E620BCF1932656D /* FSPagerView-dummy.m */; };
+		F681FB74C756E0AAFFDC0D414EBD8FA0 /* IQScrollViewConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 606CE67CFC56302B4A052F22DC3C5F13 /* IQScrollViewConfiguration.swift */; };
+		F7C3A4FED58118F9ADC5B4AF9A10B9FC /* ViewDirection.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBC781C550C08C706A954A36B003A831 /* ViewDirection.swift */; };
+		F7E2900D9AF732C627F184A258F48DF0 /* NBBottomSheetController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DAED38A5CEBD25FBE676E7B349FCD3C /* NBBottomSheetController.swift */; };
+		F9DE1A3C506E506F4DA4B7714359E8D1 /* IQKeyboardManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1952ADCDAFFBC0348561AA70A54E8A4B /* IQKeyboardManager.swift */; };
+		FB0A76B10B5927494469B16B28CF2B9A /* NBBottomSheetPresentationTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8739C327EB1C414723BDEC1E9820968A /* NBBottomSheetPresentationTransition.swift */; };
+		FDEFBFB34E35A4BB332264E0CACCF5D8 /* IQInvocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDD6976DA8F5F0B93DF1A78AA06B575E /* IQInvocation.swift */; };
+		FE4936BFE1B6B6A9E8136010E413A24B /* NBBottomSheet-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E6B1EF389C6993B71B0FA018E28B620C /* NBBottomSheet-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		FF8C6AC907C8F4B527F9A0CBDBCC7F92 /* ImageGalleryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31BBFD0B142EAB580225A2260825A319 /* ImageGalleryView.swift */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
-		116BF15D4BA9D5DF3FBE736AB2A1B5C7 /* PBXContainerItemProxy */ = {
+		12E3A5CD5E6DE1ECCB4DF5ECCE07C96A /* PBXContainerItemProxy */ = {
 			isa = PBXContainerItemProxy;
 			containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
 			proxyType = 1;
-			remoteGlobalIDString = 614D1818852890AC7D3CDF68D512C370;
-			remoteInfo = "ImagePicker-ImagePicker";
+			remoteGlobalIDString = 982A68D37F5DCBC1FC1FDC0BB2F0EB8E;
+			remoteInfo = "IQKeyboardManagerSwift-IQKeyboardManagerSwift";
 		};
-		25379AE4BB757484F80ECB623924015E /* PBXContainerItemProxy */ = {
+		2CEC145C5550F170FF334AB1D080D715 /* PBXContainerItemProxy */ = {
 			isa = PBXContainerItemProxy;
 			containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
 			proxyType = 1;
-			remoteGlobalIDString = 727C2007A89D1AD73613E3E2E22998E5;
-			remoteInfo = NBBottomSheet;
+			remoteGlobalIDString = D4F8239FB329387A8476B964D92D92E7;
+			remoteInfo = FSPagerView;
 		};
-		6617C4BD9FA13DEFFC4365339E6EC546 /* PBXContainerItemProxy */ = {
+		5436BBF127AFBF237F0BF4013AB47A1F /* PBXContainerItemProxy */ = {
 			isa = PBXContainerItemProxy;
 			containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
 			proxyType = 1;
 			remoteGlobalIDString = 75F1EA88CB9544AB5CBE20DEC9A011AE;
 			remoteInfo = "LanguageManager-iOS";
 		};
-		79FF0B0D8F347987ED026E1A2F50BCD3 /* PBXContainerItemProxy */ = {
+		87015586216C7D11B5258C93B5401791 /* PBXContainerItemProxy */ = {
 			isa = PBXContainerItemProxy;
 			containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
 			proxyType = 1;
-			remoteGlobalIDString = 01CB8D6098C21E12CE735619344DE81E;
-			remoteInfo = ImagePicker;
+			remoteGlobalIDString = B490E7485944099E16C9CBD79119D1D4;
+			remoteInfo = IQKeyboardManagerSwift;
 		};
-		D9BAF53C009DA5292853103F98DDC510 /* PBXContainerItemProxy */ = {
+		99B44F1AF6FC0DCBE7658D053454307A /* PBXContainerItemProxy */ = {
 			isa = PBXContainerItemProxy;
 			containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
 			proxyType = 1;
-			remoteGlobalIDString = 982A68D37F5DCBC1FC1FDC0BB2F0EB8E;
-			remoteInfo = "IQKeyboardManagerSwift-IQKeyboardManagerSwift";
+			remoteGlobalIDString = 614D1818852890AC7D3CDF68D512C370;
+			remoteInfo = "ImagePicker-ImagePicker";
 		};
-		FC92B3EDB540B30648F41E65A8C077D3 /* PBXContainerItemProxy */ = {
+		A256C976BD8FEC8914D21C55BFA8759A /* PBXContainerItemProxy */ = {
 			isa = PBXContainerItemProxy;
 			containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
 			proxyType = 1;
-			remoteGlobalIDString = B490E7485944099E16C9CBD79119D1D4;
-			remoteInfo = IQKeyboardManagerSwift;
+			remoteGlobalIDString = 01CB8D6098C21E12CE735619344DE81E;
+			remoteInfo = ImagePicker;
+		};
+		D8E9EFB62C84F2451393D3033CCD69EB /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 727C2007A89D1AD73613E3E2E22998E5;
+			remoteInfo = NBBottomSheet;
 		};
 /* End PBXContainerItemProxy section */
 
 /* Begin PBXFileReference section */
-		0242BCD9DCECF2E1893F122E132B9420 /* NBConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NBConfiguration.swift; path = NBBottomSheet/NBBottomSheet/Sources/NBConfiguration.swift; sourceTree = "<group>"; };
-		02F53E93D2F24BD6EF53601F1DBA5615 /* LanguageManager-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "LanguageManager-iOS.release.xcconfig"; sourceTree = "<group>"; };
-		056020DCD7EE4DB784B0EB1B1F7CB59C /* IQTextFieldViewListener.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTextFieldViewListener.swift; path = IQKeyboardManagerSwift/LIsteners/IQTextFieldViewListener.swift; sourceTree = "<group>"; };
-		06DB7F25D68C95F46140AAF75BE7B2D9 /* focusIcon@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "focusIcon@3x.png"; path = "Images/focusIcon@3x.png"; sourceTree = "<group>"; };
-		07D747573A57982F6B7EF9A1B8CCCC60 /* NBBottomSheet.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = NBBottomSheet.release.xcconfig; sourceTree = "<group>"; };
-		0A4841D8820C46BF7A845722F4418489 /* NBBottomSheet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = NBBottomSheet.debug.xcconfig; sourceTree = "<group>"; };
-		0A95315CDACAED5D1C09122017965AF4 /* IQKeyboardListener.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardListener.swift; path = IQKeyboardManagerSwift/LIsteners/IQKeyboardListener.swift; sourceTree = "<group>"; };
-		0AD9E89B936B222489C91787D4FE88A7 /* IQKeyboardManager+UITextFieldViewNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+UITextFieldViewNotification.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+UITextFieldViewNotification.swift"; sourceTree = "<group>"; };
+		00E86527F73AEB9E16F8FA507E95F54A /* IQKeyboardManagerSwift-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "IQKeyboardManagerSwift-dummy.m"; sourceTree = "<group>"; };
+		04AAE1A7C530A72A63D68F4AB6FE8BFB /* LanguageManager-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "LanguageManager-iOS.modulemap"; sourceTree = "<group>"; };
+		05FB11A6738CC7DF06C0C1D2A628C533 /* ImagePicker.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = ImagePicker.modulemap; sourceTree = "<group>"; };
+		0686A6CDA651BBF2C5B47698FD1897B4 /* ImagePicker-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ImagePicker-dummy.m"; sourceTree = "<group>"; };
+		07BB2FCA4E9BAB2B85EDB57C2DEDEE86 /* IQUICollectionView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUICollectionView+Additions.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/IQUICollectionView+Additions.swift"; sourceTree = "<group>"; };
+		0A4224E13F5E64B7C7ED26972CECCEF8 /* IQKeyboardManager+Toolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Toolbar.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Toolbar.swift"; sourceTree = "<group>"; };
 		0E8A070B594D65627DD64F5ABC65D271 /* Pods-MiniScanner-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-MiniScanner-umbrella.h"; sourceTree = "<group>"; };
-		107D647DF3C7BECC04AD906F3B3330E7 /* ImagePicker-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ImagePicker-prefix.pch"; sourceTree = "<group>"; };
-		10B1DFF1A793B246DA3C40DDAECABE99 /* IQToolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQToolbar.swift; path = IQKeyboardManagerSwift/IQToolbar/IQToolbar.swift; sourceTree = "<group>"; };
+		0F47FB5E28EE8C8342B1776D813D1A4C /* FSPagerView.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FSPagerView.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+		100DB09534605AB7B903CC6178562E6C /* UIImage+NextPrevious.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIImage+NextPrevious.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/UIImage+NextPrevious.swift"; sourceTree = "<group>"; };
+		10D23B759B9D7AAD7FF8636994E570FF /* IQKeyboardManagerSwift-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IQKeyboardManagerSwift-umbrella.h"; sourceTree = "<group>"; };
+		11EF2D1F813F931138D6E82511E04949 /* IQTextFieldViewInfoModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTextFieldViewInfoModel.swift; path = IQKeyboardManagerSwift/ReturnKeyHandler/IQTextFieldViewInfoModel.swift; sourceTree = "<group>"; };
 		123ADF4A6B2F1DEBA5B7482D4983B685 /* Pods-MiniScanner-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-MiniScanner-dummy.m"; sourceTree = "<group>"; };
-		15C8486B0FEF983C5B8781637A943491 /* video@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "video@3x.png"; path = "Images/video@3x.png"; sourceTree = "<group>"; };
-		18F31FEEA7BC66636304805A3A9A4B08 /* IQUIView+IQKeyboardToolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIView+IQKeyboardToolbar.swift"; path = "IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbar.swift"; sourceTree = "<group>"; };
-		1B4836109A68D1FEAD11C1BBCDA727B1 /* NBBottomSheetPresentationTransition.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NBBottomSheetPresentationTransition.swift; path = NBBottomSheet/NBBottomSheet/Sources/NBBottomSheetPresentationTransition.swift; sourceTree = "<group>"; };
+		125C173AFCC25297EFA8933F73F0E07B /* FSPagerView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FSPagerView-umbrella.h"; sourceTree = "<group>"; };
+		159A2D6A6013D2B5450DB2751437E610 /* FSPagerView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FSPagerView.release.xcconfig; sourceTree = "<group>"; };
+		186046B555C68EDF4D8B264B7310A49F /* UIImageView+Direction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIImageView+Direction.swift"; path = "LanguageManager-iOS/Classes/Helpers/Extensions/UIImageView+Direction.swift"; sourceTree = "<group>"; };
+		1952ADCDAFFBC0348561AA70A54E8A4B /* IQKeyboardManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManager.swift; path = IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager.swift; sourceTree = "<group>"; };
+		19A2058EC0A4223F67C47A162832B234 /* IQKeyboardManager+Position.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Position.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Position.swift"; sourceTree = "<group>"; };
+		1C5ED23D8DA6C61EF94C1ADA43ADBED7 /* IQKeyboardManager+Internal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Internal.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Internal.swift"; sourceTree = "<group>"; };
 		1C63F26DA7ECAFB44B0A5DD0BC0E2F89 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
-		1E7504E9B38B126A1FE4CDCD1F6B5CDF /* IQKeyboardManager+Debug.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Debug.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Debug.swift"; sourceTree = "<group>"; };
-		20382F7CEA0A2FF24E600822E96AA7EC /* IQTextFieldViewInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTextFieldViewInfo.swift; path = IQKeyboardManagerSwift/LIsteners/Info/IQTextFieldViewInfo.swift; sourceTree = "<group>"; };
-		2043A7C5F8AE63209E4935ABE46E4DE2 /* OFF@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "OFF@3x.png"; path = "Images/OFF@3x.png"; sourceTree = "<group>"; };
-		215A93E8B8D35FC8C0FE9136FCAED2CD /* AUTO@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "AUTO@3x.png"; path = "Images/AUTO@3x.png"; sourceTree = "<group>"; };
+		1C6FBE022DD17007165E204314587DF2 /* IQUIScrollView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIScrollView+Additions.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/IQUIScrollView+Additions.swift"; sourceTree = "<group>"; };
+		1F5477B53916433C6C9207EAFDD8DD96 /* IQActiveConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQActiveConfiguration.swift; path = IQKeyboardManagerSwift/Configuration/IQActiveConfiguration.swift; sourceTree = "<group>"; };
+		2117351B73CD63629B006A8EDA630B87 /* IQUITableView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUITableView+Additions.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/IQUITableView+Additions.swift"; sourceTree = "<group>"; };
 		21A62BB316C6336F03408E50D730FD01 /* Pods-MiniScanner.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-MiniScanner.modulemap"; sourceTree = "<group>"; };
-		21EE02C73BE1E329B7305249DAB09CC9 /* IQKeyboardManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManager.swift; path = IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager.swift; sourceTree = "<group>"; };
-		263E5DFD01305ED7A2E14D5AA268113B /* ButtonPicker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ButtonPicker.swift; path = Source/BottomView/ButtonPicker.swift; sourceTree = "<group>"; };
-		289D379893DAFB4C3F91B8DC45FEE96B /* LanguageManager-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "LanguageManager-iOS-dummy.m"; sourceTree = "<group>"; };
-		291BB5586E07ADC8AFF3AB7CA09E3C84 /* IQUIView+Hierarchy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIView+Hierarchy.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/IQUIView+Hierarchy.swift"; sourceTree = "<group>"; };
-		29F03ED2CD860C1429379A22D209D161 /* selectedImageGallery@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "selectedImageGallery@3x.png"; path = "Images/selectedImageGallery@3x.png"; sourceTree = "<group>"; };
-		2A860EAF32F2B3C4C7F95F3E1B2D01C3 /* IQUICollectionView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUICollectionView+Additions.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/IQUICollectionView+Additions.swift"; sourceTree = "<group>"; };
-		2C0FEF81EEE0C683645B5B9664402DD6 /* LanguageManager-iOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "LanguageManager-iOS-Info.plist"; sourceTree = "<group>"; };
-		2DFAC6C52C912E471A716442152D7D99 /* IQToolbarConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQToolbarConfiguration.swift; path = IQKeyboardManagerSwift/Configuration/IQToolbarConfiguration.swift; sourceTree = "<group>"; };
+		261499A1227131B89CE68BBA9C645617 /* IQKeyboardManager+UIKeyboardNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+UIKeyboardNotification.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+UIKeyboardNotification.swift"; sourceTree = "<group>"; };
+		2729357D2F7C6A9A64C2602DAD22CE6E /* IQTitleBarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTitleBarButtonItem.swift; path = IQKeyboardManagerSwift/IQToolbar/IQTitleBarButtonItem.swift; sourceTree = "<group>"; };
+		2AF876CE5C67756C63AB2D1B6C244D51 /* Languages.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Languages.swift; path = "LanguageManager-iOS/Classes/Constants/Languages.swift"; sourceTree = "<group>"; };
+		2C974A91C05893EDB6D9C54E85336A9B /* IQPreviousNextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQPreviousNextView.swift; path = IQKeyboardManagerSwift/IQToolbar/IQPreviousNextView.swift; sourceTree = "<group>"; };
 		2EE6749FC108D414ECB83B77EF11BD86 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; };
-		3022F128AE1CFF88F2BC7FB7C6841048 /* LocationManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LocationManager.swift; path = Source/LocationManager.swift; sourceTree = "<group>"; };
-		30EAF9D343ACF607F9D9719F907EC3EA /* IQToolbarPlaceholderConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQToolbarPlaceholderConfiguration.swift; path = IQKeyboardManagerSwift/Configuration/IQToolbarPlaceholderConfiguration.swift; sourceTree = "<group>"; };
-		326C56A2910292830ACB66D6AC2F0043 /* IQTitleBarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTitleBarButtonItem.swift; path = IQKeyboardManagerSwift/IQToolbar/IQTitleBarButtonItem.swift; sourceTree = "<group>"; };
+		2FA2436A50C4518FAFDBB1C7958F150B /* IQKeyboardReturnKeyHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardReturnKeyHandler.swift; path = IQKeyboardManagerSwift/ReturnKeyHandler/IQKeyboardReturnKeyHandler.swift; sourceTree = "<group>"; };
+		31BBFD0B142EAB580225A2260825A319 /* ImageGalleryView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageGalleryView.swift; path = Source/ImageGallery/ImageGalleryView.swift; sourceTree = "<group>"; };
 		3438B9790556194C521D4C9806D29C85 /* Pods-MiniScanner */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-MiniScanner"; path = Pods_MiniScanner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
-		38B26CBA4B26D2190D5F2AF049902DB9 /* IQKeyboardManagerSwift.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = IQKeyboardManagerSwift.modulemap; sourceTree = "<group>"; };
+		3550E18ADF3EF705F4700FC56EA51321 /* IQTextFieldViewInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTextFieldViewInfo.swift; path = IQKeyboardManagerSwift/LIsteners/Info/IQTextFieldViewInfo.swift; sourceTree = "<group>"; };
+		38D8BFE264593E61F913A8B5B7BFBE0F /* ImagePickerController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImagePickerController.swift; path = Source/ImagePickerController.swift; sourceTree = "<group>"; };
+		391991FCCD7C3163955756BE5F24E0B6 /* CameraView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CameraView.swift; path = Source/CameraView/CameraView.swift; sourceTree = "<group>"; };
 		3B6258C4E2C1059AABC67D66F9314FE8 /* Pods-MiniScanner-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-MiniScanner-acknowledgements.markdown"; sourceTree = "<group>"; };
-		3BACCBB72B2A572D9848F795451F28A7 /* IQKeyboardManager+Position.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Position.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Position.swift"; sourceTree = "<group>"; };
-		3FB35C3ECFA7953FFD378F42A4E4FB69 /* IQKeyboardManagerSwift-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IQKeyboardManagerSwift-umbrella.h"; sourceTree = "<group>"; };
-		4005F31A049034527E5C53DB638ABA67 /* IQUIViewController+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIViewController+Additions.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/IQUIViewController+Additions.swift"; sourceTree = "<group>"; };
-		43717B490B462ACA5B2524D38A8D85A1 /* IQUIScrollView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIScrollView+Additions.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/IQUIScrollView+Additions.swift"; sourceTree = "<group>"; };
-		4449DCA01F0FAA18DA31E34CA6E8A3DE /* NBBottomSheet-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NBBottomSheet-dummy.m"; sourceTree = "<group>"; };
-		44A535B048E99AD006404076AEFBB03C /* CameraMan.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CameraMan.swift; path = Source/CameraView/CameraMan.swift; sourceTree = "<group>"; };
-		46ED7D7EDA19CDAE346E3AE6A5C8BB84 /* TopView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TopView.swift; path = Source/TopView/TopView.swift; sourceTree = "<group>"; };
-		4C819EBB7C5175DF511CF00A578B7B24 /* ConstraintsSetup.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintsSetup.swift; path = Source/Extensions/ConstraintsSetup.swift; sourceTree = "<group>"; };
-		4CDD2F875F3224637E8647D321D57CDC /* DefaultsKeys.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DefaultsKeys.swift; path = "LanguageManager-iOS/Classes/Constants/DefaultsKeys.swift"; sourceTree = "<group>"; };
-		4DF1F4C3122C9F4F8DBDA8ADC11DC015 /* LanguageManager-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "LanguageManager-iOS.modulemap"; sourceTree = "<group>"; };
-		4E56204315A31A820258FD80789F1967 /* IQBarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQBarButtonItem.swift; path = IQKeyboardManagerSwift/IQToolbar/IQBarButtonItem.swift; sourceTree = "<group>"; };
-		534680B4399C935BB122047C4F15F69F /* LanguageManager-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LanguageManager-iOS-umbrella.h"; sourceTree = "<group>"; };
-		55E90398CF3BD4545F2E6C9AC46BB2F7 /* IQKeyboardConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardConfiguration.swift; path = IQKeyboardManagerSwift/Configuration/IQKeyboardConfiguration.swift; sourceTree = "<group>"; };
+		3BF4FDDCDF3959514F7E4844C446B4E6 /* BottomContainerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BottomContainerView.swift; path = Source/BottomView/BottomContainerView.swift; sourceTree = "<group>"; };
+		3E75A0FB9E184426E1D8B314F77FD6BC /* OFF@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "OFF@3x.png"; path = "Images/OFF@3x.png"; sourceTree = "<group>"; };
+		3F50249C139F076BB49CF9DC780080CB /* VideoInfoView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VideoInfoView.swift; path = Source/ImageGallery/VideoInfoView.swift; sourceTree = "<group>"; };
+		41AA3096AB78C69396BEB49F0A58B41C /* StackView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StackView.swift; path = Source/BottomView/StackView.swift; sourceTree = "<group>"; };
+		449244F55B8088C827AD4787D03C7A37 /* IQKeyboardManager+Debug.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Debug.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Debug.swift"; sourceTree = "<group>"; };
+		44C5AD611F2819B6A087C4E533D669C2 /* IQTextFieldViewListener.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTextFieldViewListener.swift; path = IQKeyboardManagerSwift/LIsteners/IQTextFieldViewListener.swift; sourceTree = "<group>"; };
+		45848AD4380C3F81E612637A06D74516 /* DefaultsKeys.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DefaultsKeys.swift; path = "LanguageManager-iOS/Classes/Constants/DefaultsKeys.swift"; sourceTree = "<group>"; };
+		47213A20CC51FA450CDBAA7B9D82B79B /* IQKeyboardManager+Deprecated.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Deprecated.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Deprecated.swift"; sourceTree = "<group>"; };
+		477B22B950B9A74F737148237E4CC057 /* NBBottomSheet.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = NBBottomSheet.release.xcconfig; sourceTree = "<group>"; };
+		4854795675642F9D2170DC3945BA5CCE /* ImageGalleryViewDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageGalleryViewDataSource.swift; path = Source/ImageGallery/ImageGalleryViewDataSource.swift; sourceTree = "<group>"; };
+		48F3385D99D520F36A9C28AE3AFA44A9 /* TopView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TopView.swift; path = Source/TopView/TopView.swift; sourceTree = "<group>"; };
+		4BB6C6E6068769143E709E93481E6F1A /* IQBarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQBarButtonItem.swift; path = IQKeyboardManagerSwift/IQToolbar/IQBarButtonItem.swift; sourceTree = "<group>"; };
+		4C49B18419A5350E2FF0519E3E2F6AE1 /* FSPagerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FSPagerView.swift; path = Sources/FSPagerView.swift; sourceTree = "<group>"; };
+		50B8C2618C444EA6C533E0A028A40401 /* NBBottomSheet-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NBBottomSheet-dummy.m"; sourceTree = "<group>"; };
+		52D8A157D7952E7CD278A89DB1EE312E /* IQKeyboardManagerCompatible.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManagerCompatible.swift; path = IQKeyboardManagerSwift/IQKeyboardManagerCompatible/IQKeyboardManagerCompatible.swift; sourceTree = "<group>"; };
+		53544CF5676171AA127FD31C20A35BF1 /* LanguageManager-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "LanguageManager-iOS-dummy.m"; sourceTree = "<group>"; };
+		55D485F79966A1E73CD7E8FE775AF3AA /* Storage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Storage.swift; path = "LanguageManager-iOS/Classes/Helpers/Storage.swift"; sourceTree = "<group>"; };
+		55E4D22BA0F35C3448A2A9A27C0342C6 /* ImagePicker-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ImagePicker-prefix.pch"; sourceTree = "<group>"; };
 		56B28C4E9F718651E6E1B010F31566EB /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/AVFoundation.framework; sourceTree = DEVELOPER_DIR; };
-		56CC66AF6340E998DCCA050EEE9B556E /* ImagePicker.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ImagePicker.debug.xcconfig; sourceTree = "<group>"; };
-		57A65B7383E73A602FC92334219CC2F4 /* UIView+Direction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIView+Direction.swift"; path = "LanguageManager-iOS/Classes/Helpers/Extensions/UIView+Direction.swift"; sourceTree = "<group>"; };
-		5C0AF0735D8A7EDEAB791C4AF317C58E /* ResourceBundle-ImagePicker-ImagePicker-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-ImagePicker-ImagePicker-Info.plist"; sourceTree = "<group>"; };
-		5C5B75448D0B982844A56F3E38FFC5C4 /* IQUITextFieldView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUITextFieldView+Additions.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/IQUITextFieldView+Additions.swift"; sourceTree = "<group>"; };
-		5D26C00E0D91C11489799747334F6B83 /* IQNSArray+Sort.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQNSArray+Sort.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/IQNSArray+Sort.swift"; sourceTree = "<group>"; };
-		5D65452C5F1840661750AB48C6E061B7 /* ResourceBundle-IQKeyboardManagerSwift-IQKeyboardManagerSwift-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-IQKeyboardManagerSwift-IQKeyboardManagerSwift-Info.plist"; sourceTree = "<group>"; };
-		5E717421FDE87ECE8BD075C4C0DCD677 /* UIView+Swizzling.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIView+Swizzling.swift"; path = "LanguageManager-iOS/Classes/Helpers/Extensions/UIView+Swizzling.swift"; sourceTree = "<group>"; };
-		5F4E12C26B5DAC43495F2BB6B79590D2 /* ViewDirection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ViewDirection.swift; path = "LanguageManager-iOS/Classes/Constants/ViewDirection.swift"; sourceTree = "<group>"; };
-		5F9F81C96DDC9B56C34A0E6D7C645E22 /* IQKeyboardManager+ToolbarActions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+ToolbarActions.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+ToolbarActions.swift"; sourceTree = "<group>"; };
-		601C0200A96E4B609579FBD7C1B9CDB8 /* ImageGalleryViewDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageGalleryViewDataSource.swift; path = Source/ImageGallery/ImageGalleryViewDataSource.swift; sourceTree = "<group>"; };
-		6186F4433DF874D9D682B69E4B9692BF /* IQActiveConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQActiveConfiguration.swift; path = IQKeyboardManagerSwift/Configuration/IQActiveConfiguration.swift; sourceTree = "<group>"; };
-		645D05593EA9E5A0AA34FFF2E53FF66B /* UIButton+Direction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIButton+Direction.swift"; path = "LanguageManager-iOS/Classes/Helpers/Extensions/UIButton+Direction.swift"; sourceTree = "<group>"; };
+		576FA84316DCF9D03FB6455F5417CDD1 /* IQKeyboardManagerSwift.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = IQKeyboardManagerSwift.debug.xcconfig; sourceTree = "<group>"; };
+		582327A9A4DA4D82BEFB195FD92F4B2E /* String+Localiz.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+Localiz.swift"; path = "LanguageManager-iOS/Classes/Helpers/Extensions/String+Localiz.swift"; sourceTree = "<group>"; };
+		58468F905BF54F1BB6F1379778747E4A /* ImageGalleryViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageGalleryViewCell.swift; path = Source/ImageGallery/ImageGalleryViewCell.swift; sourceTree = "<group>"; };
+		5B88917F2F7C1A72A04FA85624C3DEFF /* ButtonPicker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ButtonPicker.swift; path = Source/BottomView/ButtonPicker.swift; sourceTree = "<group>"; };
+		5D6BEBA675F56179275B2E4335F5C926 /* IQUITextFieldView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUITextFieldView+Additions.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/IQUITextFieldView+Additions.swift"; sourceTree = "<group>"; };
+		5DAED38A5CEBD25FBE676E7B349FCD3C /* NBBottomSheetController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NBBottomSheetController.swift; path = NBBottomSheet/NBBottomSheet/Sources/NBBottomSheetController.swift; sourceTree = "<group>"; };
+		5FB0228AF9177F654C13A7EC58B65414 /* FSPagerViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FSPagerViewCell.swift; path = Sources/FSPagerViewCell.swift; sourceTree = "<group>"; };
+		606CE67CFC56302B4A052F22DC3C5F13 /* IQScrollViewConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQScrollViewConfiguration.swift; path = IQKeyboardManagerSwift/Configuration/IQScrollViewConfiguration.swift; sourceTree = "<group>"; };
+		610191544EEAD197032191BA9FC6A4BA /* IQKeyboardListener.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardListener.swift; path = IQKeyboardManagerSwift/LIsteners/IQKeyboardListener.swift; sourceTree = "<group>"; };
+		629D33431B1A6A7BD331EA4D4836896E /* video@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "video@3x.png"; path = "Images/video@3x.png"; sourceTree = "<group>"; };
+		643AAC5051F9ED3819D5583FEA4DA5B6 /* cameraIcon@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "cameraIcon@3x.png"; path = "Images/cameraIcon@3x.png"; sourceTree = "<group>"; };
 		6473C16F43F7217C13AEA5FBA6C8247F /* LanguageManager-iOS */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "LanguageManager-iOS"; path = LanguageManager_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
-		6795D74469E29BB8CF88805CFB060AFF /* IQKeyboardReturnKeyHandler+TextFieldDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardReturnKeyHandler+TextFieldDelegate.swift"; path = "IQKeyboardManagerSwift/ReturnKeyHandler/IQKeyboardReturnKeyHandler+TextFieldDelegate.swift"; sourceTree = "<group>"; };
-		6976A54EFB18220EBAC17EDBE7BD5C91 /* ImagePicker-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ImagePicker-Info.plist"; sourceTree = "<group>"; };
-		69B4ECFE4C236C4C7934D848AB816BEA /* IQRootControllerConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQRootControllerConfiguration.swift; path = IQKeyboardManagerSwift/Configuration/IQRootControllerConfiguration.swift; sourceTree = "<group>"; };
-		6B12A19FA505C37ACEDAB545EDD4C324 /* IQUIView+IQKeyboardToolbarDeprecated.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIView+IQKeyboardToolbarDeprecated.swift"; path = "IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbarDeprecated.swift"; sourceTree = "<group>"; };
-		6E7ADC88875ACAB4A6A9A6D06FE0A595 /* IQKeyboardManagerSwift.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = IQKeyboardManagerSwift.release.xcconfig; sourceTree = "<group>"; };
-		711571167DFF1C3D3C0E94EFCCC0CF67 /* IQKeyboardManagerConstants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManagerConstants.swift; path = IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstants.swift; sourceTree = "<group>"; };
-		716CB388FC696AF7CCFC6B84221B8B7E /* ImageGalleryLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageGalleryLayout.swift; path = Source/ImageGallery/ImageGalleryLayout.swift; sourceTree = "<group>"; };
-		71EDA53936756B122C07B02B38A07C32 /* NBBottomSheetConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NBBottomSheetConfiguration.swift; path = NBBottomSheet/NBBottomSheet/Sources/NBBottomSheetConfiguration.swift; sourceTree = "<group>"; };
-		73A70A5A384D7DA1AFF9BF25C746F455 /* Configuration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Configuration.swift; path = Source/Configuration.swift; sourceTree = "<group>"; };
-		785C8370814C365365AABA3CB24224DE /* ImageGalleryView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageGalleryView.swift; path = Source/ImageGallery/ImageGalleryView.swift; sourceTree = "<group>"; };
+		663CA458AFC6B3F550F1ED7A98EB1718 /* ConstraintsSetup.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintsSetup.swift; path = Source/Extensions/ConstraintsSetup.swift; sourceTree = "<group>"; };
+		6929AC0AE377312BD04644294A15EC42 /* IQUIView+Hierarchy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIView+Hierarchy.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/IQUIView+Hierarchy.swift"; sourceTree = "<group>"; };
+		6A8CA0840E5D0BB8C6566FBD0C8CCDC7 /* ImagePicker-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ImagePicker-Info.plist"; sourceTree = "<group>"; };
+		6C9E7FCA694AF091E1380AFFC063B0CB /* IQUIViewController+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIViewController+Additions.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/IQUIViewController+Additions.swift"; sourceTree = "<group>"; };
+		6CE6C81B3DBADD63B91C912BB54C2F3B /* NBBottomSheet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = NBBottomSheet.debug.xcconfig; sourceTree = "<group>"; };
+		6D158F541F3CBD663BCD2F2A65D3E0C3 /* IQPlaceholderable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQPlaceholderable.swift; path = IQKeyboardManagerSwift/IQTextView/IQPlaceholderable.swift; sourceTree = "<group>"; };
+		6D41FAF09B7FF66C2B3ED69436FAD56A /* FSPagerCollectionView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FSPagerCollectionView.swift; path = Sources/FSPagerCollectionView.swift; sourceTree = "<group>"; };
+		6D54E2D6583C15003E804604338BA9F6 /* IQToolbarConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQToolbarConfiguration.swift; path = IQKeyboardManagerSwift/Configuration/IQToolbarConfiguration.swift; sourceTree = "<group>"; };
+		70730B6AC4F7CFA336195B8FD8BFA5A3 /* IQKeyboardReturnKeyHandler+TextFieldDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardReturnKeyHandler+TextFieldDelegate.swift"; path = "IQKeyboardManagerSwift/ReturnKeyHandler/IQKeyboardReturnKeyHandler+TextFieldDelegate.swift"; sourceTree = "<group>"; };
+		7182925D2F6410484CED5BA08649E799 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = IQKeyboardManagerSwift/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
+		73151BB74FF19C87B98805C922968D9B /* FSPageControl.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FSPageControl.swift; path = Sources/FSPageControl.swift; sourceTree = "<group>"; };
+		73CB09935F781BCB817A05DA1DAA1020 /* AUTO@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "AUTO@3x.png"; path = "Images/AUTO@3x.png"; sourceTree = "<group>"; };
+		76488B34BAAD9317550CB27A39510A82 /* FSPagerViewObjcCompat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FSPagerViewObjcCompat.m; path = Sources/FSPagerViewObjcCompat.m; sourceTree = "<group>"; };
+		78AE0362F9BE43843B5E482BC8607E4B /* IQToolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQToolbar.swift; path = IQKeyboardManagerSwift/IQToolbar/IQToolbar.swift; sourceTree = "<group>"; };
 		798C61760B9BC4B07BC60D42FCC09855 /* Pods-MiniScanner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MiniScanner.release.xcconfig"; sourceTree = "<group>"; };
-		7A78F8690931C4D43717D7BEB933643B /* IQKeyboardManager+Toolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Toolbar.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Toolbar.swift"; sourceTree = "<group>"; };
+		7A0D2A794776C30796425F42DDE5F36A /* ImagePicker-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ImagePicker-umbrella.h"; sourceTree = "<group>"; };
+		7B364470B802D2E80AF8122B4F49BFA1 /* ImagePicker.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ImagePicker.debug.xcconfig; sourceTree = "<group>"; };
+		7C8C5A6FCC53D04A60F40DA8C98D2257 /* NBBottomSheetConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NBBottomSheetConfiguration.swift; path = NBBottomSheet/NBBottomSheet/Sources/NBBottomSheetConfiguration.swift; sourceTree = "<group>"; };
+		7C9C60CA3B8DB21A9CA54DE050F8F651 /* UIView+Direction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIView+Direction.swift"; path = "LanguageManager-iOS/Classes/Helpers/Extensions/UIView+Direction.swift"; sourceTree = "<group>"; };
 		7CC191E7994C3C7161A6641B457C9166 /* Pods-MiniScanner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MiniScanner.debug.xcconfig"; sourceTree = "<group>"; };
-		7EFAA485C1714D0F9B8695DA8C81E5C2 /* LanguageManager-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LanguageManager-iOS-prefix.pch"; sourceTree = "<group>"; };
-		81FA3ABE6BD27E15D8013335461EEF9E /* AssetManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AssetManager.swift; path = Source/AssetManager.swift; sourceTree = "<group>"; };
-		862A62B35CB4A7FCCD78CDC63C79FE00 /* IQKeyboardManagerCompatible.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManagerCompatible.swift; path = IQKeyboardManagerSwift/IQKeyboardManagerCompatible/IQKeyboardManagerCompatible.swift; sourceTree = "<group>"; };
-		86E4E0BDBE48394EB9813E4999877362 /* IQKeyboardInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardInfo.swift; path = IQKeyboardManagerSwift/LIsteners/Info/IQKeyboardInfo.swift; sourceTree = "<group>"; };
-		88370D7F3B222EDE41FA71466C63DA1D /* NBBottomSheetDismissalTransition.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NBBottomSheetDismissalTransition.swift; path = NBBottomSheet/NBBottomSheet/Sources/NBBottomSheetDismissalTransition.swift; sourceTree = "<group>"; };
+		82675B0AA9E14C3B813886B00BAE7B56 /* IQToolbarPlaceholderConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQToolbarPlaceholderConfiguration.swift; path = IQKeyboardManagerSwift/Configuration/IQToolbarPlaceholderConfiguration.swift; sourceTree = "<group>"; };
+		850DF479EFFD8725D082462C3E5C53C0 /* IQKeyboardInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardInfo.swift; path = IQKeyboardManagerSwift/LIsteners/Info/IQKeyboardInfo.swift; sourceTree = "<group>"; };
+		8739C327EB1C414723BDEC1E9820968A /* NBBottomSheetPresentationTransition.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NBBottomSheetPresentationTransition.swift; path = NBBottomSheet/NBBottomSheet/Sources/NBBottomSheetPresentationTransition.swift; sourceTree = "<group>"; };
+		878768697FDBDA249601A7E23B958714 /* ImagePicker.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ImagePicker.release.xcconfig; sourceTree = "<group>"; };
 		89194C84FD5E62D9D2C9F2157676FF5C /* Pods-MiniScanner-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MiniScanner-acknowledgements.plist"; sourceTree = "<group>"; };
-		8B8AC4C58FBC098E1C3013D497F49700 /* Storage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Storage.swift; path = "LanguageManager-iOS/Classes/Helpers/Storage.swift"; sourceTree = "<group>"; };
-		8C60BE9866DE0F494BE98A0D610983E5 /* IQTextFieldViewInfoModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTextFieldViewInfoModel.swift; path = IQKeyboardManagerSwift/ReturnKeyHandler/IQTextFieldViewInfoModel.swift; sourceTree = "<group>"; };
-		8C8F9D764EEB7EEDEDF45F7C7CC55C33 /* IQPreviousNextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQPreviousNextView.swift; path = IQKeyboardManagerSwift/IQToolbar/IQPreviousNextView.swift; sourceTree = "<group>"; };
+		89F5F3DB1CD795822ECF03A3BF322570 /* IQKeyboardReturnKeyHandler+TextViewDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardReturnKeyHandler+TextViewDelegate.swift"; path = "IQKeyboardManagerSwift/ReturnKeyHandler/IQKeyboardReturnKeyHandler+TextViewDelegate.swift"; sourceTree = "<group>"; };
+		8B44DB1CA9AEFD39AB320FC434F4D5CF /* FSPagerViewLayoutAttributes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FSPagerViewLayoutAttributes.swift; path = Sources/FSPagerViewLayoutAttributes.swift; sourceTree = "<group>"; };
 		8D8069D3964814114ACEC3084C010B59 /* IQKeyboardManagerSwift-IQKeyboardManagerSwift */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "IQKeyboardManagerSwift-IQKeyboardManagerSwift"; path = IQKeyboardManagerSwift.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
-		8D84B693516050AF9587ABB880A4C673 /* Languages.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Languages.swift; path = "LanguageManager-iOS/Classes/Constants/Languages.swift"; sourceTree = "<group>"; };
-		9013F524E32E062B14DA4772DE8A003F /* IQBarButtonItemConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQBarButtonItemConfiguration.swift; path = IQKeyboardManagerSwift/Configuration/IQBarButtonItemConfiguration.swift; sourceTree = "<group>"; };
-		91BC4F27F2DA380ABC44B3609495F0E1 /* NBBottomSheet */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = NBBottomSheet; path = NBBottomSheet.framework; sourceTree = BUILT_PRODUCTS_DIR; };
-		93202E4E9F1E05A6E4CE614860F52997 /* IQInvocation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQInvocation.swift; path = IQKeyboardManagerSwift/IQToolbar/IQInvocation.swift; sourceTree = "<group>"; };
-		94FB65BF2E12942E08FD28D02B196063 /* IQTextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTextView.swift; path = IQKeyboardManagerSwift/IQTextView/IQTextView.swift; sourceTree = "<group>"; };
-		9748A2A58F64F03A23B2752179897C3D /* NBBottomSheetTransitioningDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NBBottomSheetTransitioningDelegate.swift; path = NBBottomSheet/NBBottomSheet/Sources/NBBottomSheetTransitioningDelegate.swift; sourceTree = "<group>"; };
-		977093DD69FC042131EE7AFA9CB64D54 /* IQKeyboardManager+UIKeyboardNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+UIKeyboardNotification.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+UIKeyboardNotification.swift"; sourceTree = "<group>"; };
+		91BC4F27F2DA380ABC44B3609495F0E1 /* NBBottomSheet.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NBBottomSheet.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+		94897EC17A759429C47FB12A7A11680B /* focusIcon@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "focusIcon@3x.png"; path = "Images/focusIcon@3x.png"; sourceTree = "<group>"; };
+		96200B324321AFBD0B649D1B2C9C95DB /* ResourceBundle-IQKeyboardManagerSwift-IQKeyboardManagerSwift-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-IQKeyboardManagerSwift-IQKeyboardManagerSwift-Info.plist"; sourceTree = "<group>"; };
 		97AA160F23F0CBEDDAF212103E762FC7 /* ImagePicker-ImagePicker */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "ImagePicker-ImagePicker"; path = ImagePicker.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
 		987CD19BC0CE18F2E00B0AD5ABF8670D /* ImagePicker */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = ImagePicker; path = ImagePicker.framework; sourceTree = BUILT_PRODUCTS_DIR; };
-		99DE0EC73DF2C605E373AA84080710B6 /* StackView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StackView.swift; path = Source/BottomView/StackView.swift; sourceTree = "<group>"; };
-		9AEABCA2EFA835BAB7FCD6AD66F96C96 /* IQKeyboardReturnKeyHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardReturnKeyHandler.swift; path = IQKeyboardManagerSwift/ReturnKeyHandler/IQKeyboardReturnKeyHandler.swift; sourceTree = "<group>"; };
-		9C59271DF8D3B3D948789114BD2502D4 /* NBBottomSheet-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "NBBottomSheet-Info.plist"; sourceTree = "<group>"; };
-		9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
-		9EE9C6C08B1735F0F717130FCC08BDA9 /* Helper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Helper.swift; path = Source/Helper.swift; sourceTree = "<group>"; };
-		A168E01B41B0E8F15B95D9D58BDC2325 /* IQScrollViewConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQScrollViewConfiguration.swift; path = IQKeyboardManagerSwift/Configuration/IQScrollViewConfiguration.swift; sourceTree = "<group>"; };
-		A1EA42CD913213E491331A02F772F77B /* NBBottomSheet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBBottomSheet.h; path = NBBottomSheet/NBBottomSheet/Sources/NBBottomSheet.h; sourceTree = "<group>"; };
-		A4B4C52CBF38490F4AA48F16DF2F0CE8 /* CameraView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CameraView.swift; path = Source/CameraView/CameraView.swift; sourceTree = "<group>"; };
-		A5A432BBFA3EC41432193F1BA4E8F5C7 /* UIImage+NextPrevious.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIImage+NextPrevious.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/UIImage+NextPrevious.swift"; sourceTree = "<group>"; };
+		9B3B4AA730049734AC812A25BADAA3FF /* IQUIView+IQKeyboardToolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIView+IQKeyboardToolbar.swift"; path = "IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbar.swift"; sourceTree = "<group>"; };
+		9BB9EE1F19AB969730E96727C45644A3 /* IQKeyboardManagerConstants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManagerConstants.swift; path = IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstants.swift; sourceTree = "<group>"; };
+		9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
+		9EC9B8BC1831AE71D4A3E3399C6D7CEB /* IQKeyboardManager+UITextFieldViewNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+UITextFieldViewNotification.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+UITextFieldViewNotification.swift"; sourceTree = "<group>"; };
+		A2BCCDE18C4FD7594F74F094794225A9 /* ON@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "ON@3x.png"; path = "Images/ON@3x.png"; sourceTree = "<group>"; };
+		A432A5D595D6137843DFA26A74543559 /* FSPagerView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "FSPagerView-Info.plist"; sourceTree = "<group>"; };
+		A47C01AE0A7C8A69421589DB99E4EA93 /* NBBottomSheet-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "NBBottomSheet-Info.plist"; sourceTree = "<group>"; };
+		A82E5C2AB35A91C11A2164845AF66C0B /* Configuration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Configuration.swift; path = Source/Configuration.swift; sourceTree = "<group>"; };
 		A8E950A16D00F649C54FFB30F81D7842 /* IQKeyboardManagerSwift */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = IQKeyboardManagerSwift; path = IQKeyboardManagerSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; };
-		A967C4C563E4504346C2013BED0CB222 /* ImageGalleryViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageGalleryViewCell.swift; path = Source/ImageGallery/ImageGalleryViewCell.swift; sourceTree = "<group>"; };
-		AA73FF47AD2E401229886E164A016157 /* LanguageManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LanguageManager.swift; path = "LanguageManager-iOS/Classes/Main/LanguageManager.swift"; sourceTree = "<group>"; };
-		AAB5B6E98707F2ADF3A9845874D055F4 /* LanguageManager-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "LanguageManager-iOS.debug.xcconfig"; sourceTree = "<group>"; };
-		AFA6A88904B0288563135DBDF949AA6A /* ImagePicker-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ImagePicker-dummy.m"; sourceTree = "<group>"; };
-		B0658924A19160F383D82E03A19918A8 /* BottomContainerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BottomContainerView.swift; path = Source/BottomView/BottomContainerView.swift; sourceTree = "<group>"; };
+		A9B7321D9EFF744C9C4029D6879D984C /* FSPagerViewObjcCompat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FSPagerViewObjcCompat.h; path = Sources/FSPagerViewObjcCompat.h; sourceTree = "<group>"; };
+		AE279F36DEA7F9799201FBED80DE1579 /* Helper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Helper.swift; path = Source/Helper.swift; sourceTree = "<group>"; };
 		B2968141E72EA49CC006DD4020E3386D /* Pods-MiniScanner-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-MiniScanner-frameworks.sh"; sourceTree = "<group>"; };
-		B507677B457247BB90B0E386AF24A63A /* NBBottomSheet.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = NBBottomSheet.modulemap; sourceTree = "<group>"; };
-		BB51AFFCD4B39F79707FB09B42ED4464 /* IQUITableView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUITableView+Additions.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/IQUITableView+Additions.swift"; sourceTree = "<group>"; };
-		BD5BCA1FBF25DA15C2AE9337BD05C406 /* UIImageView+Direction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIImageView+Direction.swift"; path = "LanguageManager-iOS/Classes/Helpers/Extensions/UIImageView+Direction.swift"; sourceTree = "<group>"; };
-		C4506BEE76EF98148A28CD87EE773134 /* IQKeyboardManager+Internal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Internal.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Internal.swift"; sourceTree = "<group>"; };
-		C4CE220A4C9571A7B0A597C16F19BBA9 /* ImagePicker.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ImagePicker.release.xcconfig; sourceTree = "<group>"; };
-		C50F60479109C53DD1F7C301694D48A1 /* VideoInfoView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VideoInfoView.swift; path = Source/ImageGallery/VideoInfoView.swift; sourceTree = "<group>"; };
+		B2B0C08E0F7C8BAEEF2D80915408CA4E /* NBBottomSheet.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = NBBottomSheet.modulemap; sourceTree = "<group>"; };
+		B334A3A67AC8668DEA2DC48989817DE9 /* LanguageManager-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "LanguageManager-iOS.release.xcconfig"; sourceTree = "<group>"; };
+		B51A76981D5307579DAA52AF1DC3FDC7 /* FSPagerView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FSPagerView-prefix.pch"; sourceTree = "<group>"; };
+		B5E7F6859EDFDF3E322CAB934188C105 /* LanguageManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LanguageManager.swift; path = "LanguageManager-iOS/Classes/Main/LanguageManager.swift"; sourceTree = "<group>"; };
+		B6381DE79278633AE97412B34DEA61A9 /* FSPageViewLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FSPageViewLayout.swift; path = Sources/FSPageViewLayout.swift; sourceTree = "<group>"; };
+		B6C861DA278A5D245DA21D0329434D78 /* NBBottomSheetTransitioningDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NBBottomSheetTransitioningDelegate.swift; path = NBBottomSheet/NBBottomSheet/Sources/NBBottomSheetTransitioningDelegate.swift; sourceTree = "<group>"; };
+		B790A64229049FDE2E49A3464FA794A0 /* IQKeyboardManagerSwift.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = IQKeyboardManagerSwift.modulemap; sourceTree = "<group>"; };
+		B9DD740680FA210D5DAB6BE252AB4EF1 /* CameraMan.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CameraMan.swift; path = Source/CameraView/CameraMan.swift; sourceTree = "<group>"; };
+		BA3E2B1D13CBA35E2E620BCF1932656D /* FSPagerView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FSPagerView-dummy.m"; sourceTree = "<group>"; };
+		BB27F7558FAEB9835885CF21253F9512 /* LanguageManager-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "LanguageManager-iOS.debug.xcconfig"; sourceTree = "<group>"; };
+		BB34736DAECFEF1A71A9D96199C98E97 /* LanguageManager-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LanguageManager-iOS-prefix.pch"; sourceTree = "<group>"; };
+		BBC781C550C08C706A954A36B003A831 /* ViewDirection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ViewDirection.swift; path = "LanguageManager-iOS/Classes/Constants/ViewDirection.swift"; sourceTree = "<group>"; };
+		BE062E09E144721D09D60E635B370160 /* IQKeyboardManagerSwift-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "IQKeyboardManagerSwift-Info.plist"; sourceTree = "<group>"; };
+		BE26B4E0FA2A7EB069ECA092637ADB2B /* IQUIView+IQKeyboardToolbarDeprecated.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIView+IQKeyboardToolbarDeprecated.swift"; path = "IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbarDeprecated.swift"; sourceTree = "<group>"; };
+		BE7DC77106671C740F9DBB7CD35316B1 /* LocationManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LocationManager.swift; path = Source/LocationManager.swift; sourceTree = "<group>"; };
+		C36669888D89E20D89BDF4F1246671ED /* NBBottomSheet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBBottomSheet.h; path = NBBottomSheet/NBBottomSheet/Sources/NBBottomSheet.h; sourceTree = "<group>"; };
+		C50EF13DE5ADE34DBF289032C4FD68F5 /* IQTextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTextView.swift; path = IQKeyboardManagerSwift/IQTextView/IQTextView.swift; sourceTree = "<group>"; };
 		C54FCF3DBFE97D4603C0EACF18FA0D04 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
-		C8CFD7880A243F4083C1631C6F44B0C0 /* String+Localiz.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+Localiz.swift"; path = "LanguageManager-iOS/Classes/Helpers/Extensions/String+Localiz.swift"; sourceTree = "<group>"; };
-		D0695BAE8FAA193DA575E4D83469826A /* ImagePickerController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImagePickerController.swift; path = Source/ImagePickerController.swift; sourceTree = "<group>"; };
-		D0CD85F8FE5988FBAA6E8BC1DC380C2C /* IQKeyboardReturnKeyHandler+TextViewDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardReturnKeyHandler+TextViewDelegate.swift"; path = "IQKeyboardManagerSwift/ReturnKeyHandler/IQKeyboardReturnKeyHandler+TextViewDelegate.swift"; sourceTree = "<group>"; };
-		D4BC9C4AEF4B7509AFF6B6DAA85157F1 /* ImageStack.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageStack.swift; path = Source/BottomView/ImageStack.swift; sourceTree = "<group>"; };
-		D5503FBF58DE89968F04737B3C5E300D /* NBBottomSheetController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NBBottomSheetController.swift; path = NBBottomSheet/NBBottomSheet/Sources/NBBottomSheetController.swift; sourceTree = "<group>"; };
-		D96B518E8F4EF4B01A14DB607E5728A5 /* ImagePicker-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ImagePicker-umbrella.h"; sourceTree = "<group>"; };
-		D9C5DA27C1FDF4419C1FEDDAF4A9A4BF /* IQKeyboardManagerSwift-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "IQKeyboardManagerSwift-Info.plist"; sourceTree = "<group>"; };
-		DD819B41E4207BCA0A1762DEC5DE7A12 /* NBBottomSheet-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NBBottomSheet-umbrella.h"; sourceTree = "<group>"; };
-		DF66E41F4A7A5BBD53D26B96702267F0 /* ON@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "ON@3x.png"; path = "Images/ON@3x.png"; sourceTree = "<group>"; };
-		E9A7E67F21C913E63FC39339C1A34EDF /* IQKeyboardManagerSwift-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "IQKeyboardManagerSwift-dummy.m"; sourceTree = "<group>"; };
+		C6349A9899C7B2CD06A8CD9D85A55096 /* UIButton+Direction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIButton+Direction.swift"; path = "LanguageManager-iOS/Classes/Helpers/Extensions/UIButton+Direction.swift"; sourceTree = "<group>"; };
+		C78127B028ED64AEA102D7A53AF6C180 /* IQKeyboardManager+ToolbarActions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+ToolbarActions.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+ToolbarActions.swift"; sourceTree = "<group>"; };
+		CAD7C2211C4367AD4461C65ABCCE4B4D /* ImageStack.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageStack.swift; path = Source/BottomView/ImageStack.swift; sourceTree = "<group>"; };
+		CBF0AFCBFFE0F0AC4056B467DFD3AAAE /* FSPageViewTransformer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FSPageViewTransformer.swift; path = Sources/FSPageViewTransformer.swift; sourceTree = "<group>"; };
+		CD43D1DEAE8D6B89DA79F89F090AEB40 /* FSPagerView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FSPagerView.debug.xcconfig; sourceTree = "<group>"; };
+		CD6960427DCEE975DA8C892E3FD37397 /* NBConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NBConfiguration.swift; path = NBBottomSheet/NBBottomSheet/Sources/NBConfiguration.swift; sourceTree = "<group>"; };
+		CDD6976DA8F5F0B93DF1A78AA06B575E /* IQInvocation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQInvocation.swift; path = IQKeyboardManagerSwift/IQToolbar/IQInvocation.swift; sourceTree = "<group>"; };
+		CE15B5E77B366A3841F60137841BD360 /* IQRootControllerConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQRootControllerConfiguration.swift; path = IQKeyboardManagerSwift/Configuration/IQRootControllerConfiguration.swift; sourceTree = "<group>"; };
+		CFCA4D9FC5676F5CB290D0B030862CDC /* UIView+Swizzling.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIView+Swizzling.swift"; path = "LanguageManager-iOS/Classes/Helpers/Extensions/UIView+Swizzling.swift"; sourceTree = "<group>"; };
+		D192CB80EEF5B776A22DFD320E872AF0 /* NBBottomSheet-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NBBottomSheet-prefix.pch"; sourceTree = "<group>"; };
+		D1B09D1AFAB4C057139EF408248FB039 /* selectedImageGallery@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "selectedImageGallery@3x.png"; path = "Images/selectedImageGallery@3x.png"; sourceTree = "<group>"; };
+		D9FB297F85430CCD6E4BF32C102F32CC /* IQBarButtonItemConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQBarButtonItemConfiguration.swift; path = IQKeyboardManagerSwift/Configuration/IQBarButtonItemConfiguration.swift; sourceTree = "<group>"; };
+		DEBACB3D1E9B957E79A8E8DB40C8FF19 /* NBBottomSheetDismissalTransition.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NBBottomSheetDismissalTransition.swift; path = NBBottomSheet/NBBottomSheet/Sources/NBBottomSheetDismissalTransition.swift; sourceTree = "<group>"; };
+		E11D6BF4A7EE6C01C6AD9233D0986DA5 /* ImageGalleryLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageGalleryLayout.swift; path = Source/ImageGallery/ImageGalleryLayout.swift; sourceTree = "<group>"; };
+		E2AA22DDF3562B8FFA232724C0228ECB /* IQKeyboardManagerSwift.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = IQKeyboardManagerSwift.release.xcconfig; sourceTree = "<group>"; };
+		E6B1EF389C6993B71B0FA018E28B620C /* NBBottomSheet-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NBBottomSheet-umbrella.h"; sourceTree = "<group>"; };
+		E98D45A404F47D0392CDE16A921641EA /* IQKeyboardManagerSwift-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IQKeyboardManagerSwift-prefix.pch"; sourceTree = "<group>"; };
+		EBA06E50EB7E89A679552BB137A18468 /* FSPagerView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = FSPagerView.modulemap; sourceTree = "<group>"; };
 		ED8E7C0ED656254925E918D5509B655C /* Pods-MiniScanner-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MiniScanner-Info.plist"; sourceTree = "<group>"; };
-		EF24A475CC7A858E5C29677907CD02EC /* IQKeyboardManager+Deprecated.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Deprecated.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Deprecated.swift"; sourceTree = "<group>"; };
-		F3444CFC5D1A192201D71D9AD68E2C80 /* IQPlaceholderable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQPlaceholderable.swift; path = IQKeyboardManagerSwift/IQTextView/IQPlaceholderable.swift; sourceTree = "<group>"; };
-		F354B1F1A402BFF28D1BC4E0300C1899 /* NBBottomSheet-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NBBottomSheet-prefix.pch"; sourceTree = "<group>"; };
+		F1385EA4B73C794E0C6B84F4886A2CC5 /* IQNSArray+Sort.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQNSArray+Sort.swift"; path = "IQKeyboardManagerSwift/UIKitExtensions/IQNSArray+Sort.swift"; sourceTree = "<group>"; };
+		F1E4CC36A055577A0E55615D5E942AAE /* IQKeyboardConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardConfiguration.swift; path = IQKeyboardManagerSwift/Configuration/IQKeyboardConfiguration.swift; sourceTree = "<group>"; };
+		F291F28222B0C43AEC7C7C41136F489F /* LanguageManager-iOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "LanguageManager-iOS-Info.plist"; sourceTree = "<group>"; };
 		F3DF46AD6E25D68DB361974528992221 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; };
-		F594AE9D9A5FE5CBBEFBB3A2AA80F649 /* IQKeyboardManagerSwift.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = IQKeyboardManagerSwift.debug.xcconfig; sourceTree = "<group>"; };
-		F5CB977FC46BAB3CEE64355EC9A19AC3 /* cameraIcon@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "cameraIcon@3x.png"; path = "Images/cameraIcon@3x.png"; sourceTree = "<group>"; };
-		F5D77B18F54FCA886E79FE7772C967AE /* ImagePicker.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = ImagePicker.modulemap; sourceTree = "<group>"; };
-		F787D1084E76059C7D81AD88BC26B28E /* NBBottomSheetPresentationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NBBottomSheetPresentationController.swift; path = NBBottomSheet/NBBottomSheet/Sources/NBBottomSheetPresentationController.swift; sourceTree = "<group>"; };
-		F7FEF197B2124809DF009FE2F894546E /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = IQKeyboardManagerSwift/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
-		FE02CCF0052887593F538DBF9A842227 /* IQKeyboardManagerSwift-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IQKeyboardManagerSwift-prefix.pch"; sourceTree = "<group>"; };
+		F54D487A85CBB9867A9D40D6C520A091 /* NBBottomSheetPresentationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NBBottomSheetPresentationController.swift; path = NBBottomSheet/NBBottomSheet/Sources/NBBottomSheetPresentationController.swift; sourceTree = "<group>"; };
+		F660610295E85CB8BC6BB3BFE0FB06E8 /* AssetManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AssetManager.swift; path = Source/AssetManager.swift; sourceTree = "<group>"; };
+		FA12FC908784B631E6E77A3A8BD8C0F4 /* ResourceBundle-ImagePicker-ImagePicker-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-ImagePicker-ImagePicker-Info.plist"; sourceTree = "<group>"; };
+		FACF36010BFCB447C18555FE06FB3998 /* LanguageManager-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LanguageManager-iOS-umbrella.h"; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
@@ -326,42 +363,51 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
-		51AA6D129D5EBE2BD4592335B41F7D88 /* Frameworks */ = {
+		37679FC713FDE44C229DEA3D0E3C687B /* Frameworks */ = {
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
-		5ADC324C52D011EAFCDD0673A368D24E /* Frameworks */ = {
+		A576A6B66E7FF54F0F06CD54397C2528 /* Frameworks */ = {
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				CC897E71556348377B4C31307E208C80 /* Foundation.framework in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
-		A576A6B66E7FF54F0F06CD54397C2528 /* Frameworks */ = {
+		A84948CC16232EA7760DD790F66BA178 /* Frameworks */ = {
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				CC897E71556348377B4C31307E208C80 /* Foundation.framework in Frameworks */,
+				3CCAA73182C09F77A88AFFA24E96DBB6 /* Foundation.framework in Frameworks */,
+				7B2263CFC47393D3FB5CD8D5F7EB57AD /* UIKit.framework in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
-		A84948CC16232EA7760DD790F66BA178 /* Frameworks */ = {
+		B560DBD1EB21CD84EE3CF89592F20A58 /* Frameworks */ = {
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				3CCAA73182C09F77A88AFFA24E96DBB6 /* Foundation.framework in Frameworks */,
-				7B2263CFC47393D3FB5CD8D5F7EB57AD /* UIKit.framework in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
-		B80B15C3089A204C2637CFEF7CF4E427 /* Frameworks */ = {
+		E5ACBBCF353041B05D869DB1467D16B1 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				7399F0854271981516AA79727A0A06C8 /* Foundation.framework in Frameworks */,
+				2E4A914423BA1B263C96C3BBC43E2245 /* UIKit.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		FD58926B077F9113DEBC96600422D0B7 /* Frameworks */ = {
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				49F467E673A926683C4B3B56FB0B3805 /* Foundation.framework in Frameworks */,
+				970338AEDE475A68CFFB0D162B7C4A51 /* Foundation.framework in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -380,161 +426,150 @@
 			name = iOS;
 			sourceTree = "<group>";
 		};
-		0B2E2B01EAA694A0FEB46641D5D8B43B /* Support Files */ = {
+		2004E19017DC059CA97F6C5CF09ED1C6 /* Support Files */ = {
 			isa = PBXGroup;
 			children = (
-				B507677B457247BB90B0E386AF24A63A /* NBBottomSheet.modulemap */,
-				4449DCA01F0FAA18DA31E34CA6E8A3DE /* NBBottomSheet-dummy.m */,
-				9C59271DF8D3B3D948789114BD2502D4 /* NBBottomSheet-Info.plist */,
-				F354B1F1A402BFF28D1BC4E0300C1899 /* NBBottomSheet-prefix.pch */,
-				DD819B41E4207BCA0A1762DEC5DE7A12 /* NBBottomSheet-umbrella.h */,
-				0A4841D8820C46BF7A845722F4418489 /* NBBottomSheet.debug.xcconfig */,
-				07D747573A57982F6B7EF9A1B8CCCC60 /* NBBottomSheet.release.xcconfig */,
+				05FB11A6738CC7DF06C0C1D2A628C533 /* ImagePicker.modulemap */,
+				0686A6CDA651BBF2C5B47698FD1897B4 /* ImagePicker-dummy.m */,
+				6A8CA0840E5D0BB8C6566FBD0C8CCDC7 /* ImagePicker-Info.plist */,
+				55E4D22BA0F35C3448A2A9A27C0342C6 /* ImagePicker-prefix.pch */,
+				7A0D2A794776C30796425F42DDE5F36A /* ImagePicker-umbrella.h */,
+				7B364470B802D2E80AF8122B4F49BFA1 /* ImagePicker.debug.xcconfig */,
+				878768697FDBDA249601A7E23B958714 /* ImagePicker.release.xcconfig */,
+				FA12FC908784B631E6E77A3A8BD8C0F4 /* ResourceBundle-ImagePicker-ImagePicker-Info.plist */,
 			);
 			name = "Support Files";
-			path = "../Target Support Files/NBBottomSheet";
+			path = "../Target Support Files/ImagePicker";
 			sourceTree = "<group>";
 		};
-		25A7860C302D73DEB8070396C756BC9B /* Pods */ = {
+		2B099D87FE394E029224D7EB55C23A82 /* Resources */ = {
 			isa = PBXGroup;
 			children = (
-				5549B00883DE214AD0D5E4C5B3C5193F /* ImagePicker */,
-				EE3DFE07989E3EAD33E52140D841497B /* IQKeyboardManagerSwift */,
-				4A783AE7A4BBE53EF79208C642C63749 /* LanguageManager-iOS */,
-				CA64E667E5573CEE00E282A4D3D04837 /* NBBottomSheet */,
+				73CB09935F781BCB817A05DA1DAA1020 /* AUTO@3x.png */,
+				643AAC5051F9ED3819D5583FEA4DA5B6 /* cameraIcon@3x.png */,
+				94897EC17A759429C47FB12A7A11680B /* focusIcon@3x.png */,
+				3E75A0FB9E184426E1D8B314F77FD6BC /* OFF@3x.png */,
+				A2BCCDE18C4FD7594F74F094794225A9 /* ON@3x.png */,
+				D1B09D1AFAB4C057139EF408248FB039 /* selectedImageGallery@3x.png */,
+				629D33431B1A6A7BD331EA4D4836896E /* video@3x.png */,
 			);
-			name = Pods;
+			name = Resources;
 			sourceTree = "<group>";
 		};
-		4A783AE7A4BBE53EF79208C642C63749 /* LanguageManager-iOS */ = {
+		3FE073907100B4FE2739D7080E7608F8 /* NBBottomSheet */ = {
 			isa = PBXGroup;
 			children = (
-				4CDD2F875F3224637E8647D321D57CDC /* DefaultsKeys.swift */,
-				AA73FF47AD2E401229886E164A016157 /* LanguageManager.swift */,
-				8D84B693516050AF9587ABB880A4C673 /* Languages.swift */,
-				8B8AC4C58FBC098E1C3013D497F49700 /* Storage.swift */,
-				C8CFD7880A243F4083C1631C6F44B0C0 /* String+Localiz.swift */,
-				645D05593EA9E5A0AA34FFF2E53FF66B /* UIButton+Direction.swift */,
-				BD5BCA1FBF25DA15C2AE9337BD05C406 /* UIImageView+Direction.swift */,
-				57A65B7383E73A602FC92334219CC2F4 /* UIView+Direction.swift */,
-				5E717421FDE87ECE8BD075C4C0DCD677 /* UIView+Swizzling.swift */,
-				5F4E12C26B5DAC43495F2BB6B79590D2 /* ViewDirection.swift */,
-				9766C3B4AADAB469139CB2C34F6BA9E8 /* Support Files */,
+				C36669888D89E20D89BDF4F1246671ED /* NBBottomSheet.h */,
+				7C8C5A6FCC53D04A60F40DA8C98D2257 /* NBBottomSheetConfiguration.swift */,
+				5DAED38A5CEBD25FBE676E7B349FCD3C /* NBBottomSheetController.swift */,
+				DEBACB3D1E9B957E79A8E8DB40C8FF19 /* NBBottomSheetDismissalTransition.swift */,
+				F54D487A85CBB9867A9D40D6C520A091 /* NBBottomSheetPresentationController.swift */,
+				8739C327EB1C414723BDEC1E9820968A /* NBBottomSheetPresentationTransition.swift */,
+				B6C861DA278A5D245DA21D0329434D78 /* NBBottomSheetTransitioningDelegate.swift */,
+				CD6960427DCEE975DA8C892E3FD37397 /* NBConfiguration.swift */,
+				D83FA587461E3333F20D309A5031883B /* Support Files */,
 			);
-			name = "LanguageManager-iOS";
-			path = "LanguageManager-iOS";
+			path = NBBottomSheet;
 			sourceTree = "<group>";
 		};
-		5549B00883DE214AD0D5E4C5B3C5193F /* ImagePicker */ = {
+		67EA5FFBCFCDDED6A445407A917EE0A1 /* Targets Support Files */ = {
 			isa = PBXGroup;
 			children = (
-				81FA3ABE6BD27E15D8013335461EEF9E /* AssetManager.swift */,
-				B0658924A19160F383D82E03A19918A8 /* BottomContainerView.swift */,
-				263E5DFD01305ED7A2E14D5AA268113B /* ButtonPicker.swift */,
-				44A535B048E99AD006404076AEFBB03C /* CameraMan.swift */,
-				A4B4C52CBF38490F4AA48F16DF2F0CE8 /* CameraView.swift */,
-				73A70A5A384D7DA1AFF9BF25C746F455 /* Configuration.swift */,
-				4C819EBB7C5175DF511CF00A578B7B24 /* ConstraintsSetup.swift */,
-				9EE9C6C08B1735F0F717130FCC08BDA9 /* Helper.swift */,
-				716CB388FC696AF7CCFC6B84221B8B7E /* ImageGalleryLayout.swift */,
-				785C8370814C365365AABA3CB24224DE /* ImageGalleryView.swift */,
-				A967C4C563E4504346C2013BED0CB222 /* ImageGalleryViewCell.swift */,
-				601C0200A96E4B609579FBD7C1B9CDB8 /* ImageGalleryViewDataSource.swift */,
-				D0695BAE8FAA193DA575E4D83469826A /* ImagePickerController.swift */,
-				D4BC9C4AEF4B7509AFF6B6DAA85157F1 /* ImageStack.swift */,
-				3022F128AE1CFF88F2BC7FB7C6841048 /* LocationManager.swift */,
-				99DE0EC73DF2C605E373AA84080710B6 /* StackView.swift */,
-				46ED7D7EDA19CDAE346E3AE6A5C8BB84 /* TopView.swift */,
-				C50F60479109C53DD1F7C301694D48A1 /* VideoInfoView.swift */,
-				6C080B593F93BCDDA0869DF5A45660AB /* Resources */,
-				FBF99861D4630C2864FB77FFD55787DE /* Support Files */,
+				EC99F10DC5C191754BE16B2F6AC739A8 /* Pods-MiniScanner */,
 			);
-			name = ImagePicker;
-			path = ImagePicker;
+			name = "Targets Support Files";
 			sourceTree = "<group>";
 		};
-		67EA5FFBCFCDDED6A445407A917EE0A1 /* Targets Support Files */ = {
+		7864EB5C013992C7536E24A0E51FB679 /* Products */ = {
 			isa = PBXGroup;
 			children = (
-				EC99F10DC5C191754BE16B2F6AC739A8 /* Pods-MiniScanner */,
+				0F47FB5E28EE8C8342B1776D813D1A4C /* FSPagerView.framework */,
+				987CD19BC0CE18F2E00B0AD5ABF8670D /* ImagePicker */,
+				97AA160F23F0CBEDDAF212103E762FC7 /* ImagePicker-ImagePicker */,
+				A8E950A16D00F649C54FFB30F81D7842 /* IQKeyboardManagerSwift */,
+				8D8069D3964814114ACEC3084C010B59 /* IQKeyboardManagerSwift-IQKeyboardManagerSwift */,
+				6473C16F43F7217C13AEA5FBA6C8247F /* LanguageManager-iOS */,
+				91BC4F27F2DA380ABC44B3609495F0E1 /* NBBottomSheet.framework */,
+				3438B9790556194C521D4C9806D29C85 /* Pods-MiniScanner */,
 			);
-			name = "Targets Support Files";
+			name = Products;
 			sourceTree = "<group>";
 		};
-		6C080B593F93BCDDA0869DF5A45660AB /* Resources */ = {
+		84212D36AF469A443396F3D2DE27ACC3 /* Support Files */ = {
 			isa = PBXGroup;
 			children = (
-				215A93E8B8D35FC8C0FE9136FCAED2CD /* AUTO@3x.png */,
-				F5CB977FC46BAB3CEE64355EC9A19AC3 /* cameraIcon@3x.png */,
-				06DB7F25D68C95F46140AAF75BE7B2D9 /* focusIcon@3x.png */,
-				2043A7C5F8AE63209E4935ABE46E4DE2 /* OFF@3x.png */,
-				DF66E41F4A7A5BBD53D26B96702267F0 /* ON@3x.png */,
-				29F03ED2CD860C1429379A22D209D161 /* selectedImageGallery@3x.png */,
-				15C8486B0FEF983C5B8781637A943491 /* video@3x.png */,
+				EBA06E50EB7E89A679552BB137A18468 /* FSPagerView.modulemap */,
+				BA3E2B1D13CBA35E2E620BCF1932656D /* FSPagerView-dummy.m */,
+				A432A5D595D6137843DFA26A74543559 /* FSPagerView-Info.plist */,
+				B51A76981D5307579DAA52AF1DC3FDC7 /* FSPagerView-prefix.pch */,
+				125C173AFCC25297EFA8933F73F0E07B /* FSPagerView-umbrella.h */,
+				CD43D1DEAE8D6B89DA79F89F090AEB40 /* FSPagerView.debug.xcconfig */,
+				159A2D6A6013D2B5450DB2751437E610 /* FSPagerView.release.xcconfig */,
 			);
-			name = Resources;
+			name = "Support Files";
+			path = "../Target Support Files/FSPagerView";
 			sourceTree = "<group>";
 		};
-		9766C3B4AADAB469139CB2C34F6BA9E8 /* Support Files */ = {
+		8EDA6CF7F4F5DB5A39F09A679B14D094 /* Pods */ = {
 			isa = PBXGroup;
 			children = (
-				4DF1F4C3122C9F4F8DBDA8ADC11DC015 /* LanguageManager-iOS.modulemap */,
-				289D379893DAFB4C3F91B8DC45FEE96B /* LanguageManager-iOS-dummy.m */,
-				2C0FEF81EEE0C683645B5B9664402DD6 /* LanguageManager-iOS-Info.plist */,
-				7EFAA485C1714D0F9B8695DA8C81E5C2 /* LanguageManager-iOS-prefix.pch */,
-				534680B4399C935BB122047C4F15F69F /* LanguageManager-iOS-umbrella.h */,
-				AAB5B6E98707F2ADF3A9845874D055F4 /* LanguageManager-iOS.debug.xcconfig */,
-				02F53E93D2F24BD6EF53601F1DBA5615 /* LanguageManager-iOS.release.xcconfig */,
+				EDA8E84E9733F55E6D50BFE6CC5DE456 /* FSPagerView */,
+				DB86DFEFD34CDD3C9B7852E841C9B925 /* ImagePicker */,
+				F600A5C617EEC2A2F3E7BED83A22153C /* IQKeyboardManagerSwift */,
+				96A9C6F8E2468A2DE52E60F254840523 /* LanguageManager-iOS */,
+				3FE073907100B4FE2739D7080E7608F8 /* NBBottomSheet */,
 			);
-			name = "Support Files";
-			path = "../Target Support Files/LanguageManager-iOS";
+			name = Pods;
 			sourceTree = "<group>";
 		};
-		97E1FF5A3F41A95EEFC08BA805BBE552 /* Resources */ = {
+		96A9C6F8E2468A2DE52E60F254840523 /* LanguageManager-iOS */ = {
 			isa = PBXGroup;
 			children = (
-				F7FEF197B2124809DF009FE2F894546E /* PrivacyInfo.xcprivacy */,
+				45848AD4380C3F81E612637A06D74516 /* DefaultsKeys.swift */,
+				B5E7F6859EDFDF3E322CAB934188C105 /* LanguageManager.swift */,
+				2AF876CE5C67756C63AB2D1B6C244D51 /* Languages.swift */,
+				55D485F79966A1E73CD7E8FE775AF3AA /* Storage.swift */,
+				582327A9A4DA4D82BEFB195FD92F4B2E /* String+Localiz.swift */,
+				C6349A9899C7B2CD06A8CD9D85A55096 /* UIButton+Direction.swift */,
+				186046B555C68EDF4D8B264B7310A49F /* UIImageView+Direction.swift */,
+				7C9C60CA3B8DB21A9CA54DE050F8F651 /* UIView+Direction.swift */,
+				CFCA4D9FC5676F5CB290D0B030862CDC /* UIView+Swizzling.swift */,
+				BBC781C550C08C706A954A36B003A831 /* ViewDirection.swift */,
+				E157FA2303DEDEA1B0C8936711491231 /* Support Files */,
 			);
-			name = Resources;
+			path = "LanguageManager-iOS";
 			sourceTree = "<group>";
 		};
-		B94D7768568A9992200DB461E8CF687F /* Frameworks */ = {
+		9DF68B0D7BB8B85A82E1BAC9F101C81B /* Resources */ = {
 			isa = PBXGroup;
 			children = (
-				0285214F24466DADA9DB9AC0EF8966F0 /* iOS */,
+				7182925D2F6410484CED5BA08649E799 /* PrivacyInfo.xcprivacy */,
 			);
-			name = Frameworks;
+			name = Resources;
 			sourceTree = "<group>";
 		};
-		CA64E667E5573CEE00E282A4D3D04837 /* NBBottomSheet */ = {
+		B5B672E1CB27518076A09A156604EA80 /* Support Files */ = {
 			isa = PBXGroup;
 			children = (
-				A1EA42CD913213E491331A02F772F77B /* NBBottomSheet.h */,
-				71EDA53936756B122C07B02B38A07C32 /* NBBottomSheetConfiguration.swift */,
-				D5503FBF58DE89968F04737B3C5E300D /* NBBottomSheetController.swift */,
-				88370D7F3B222EDE41FA71466C63DA1D /* NBBottomSheetDismissalTransition.swift */,
-				F787D1084E76059C7D81AD88BC26B28E /* NBBottomSheetPresentationController.swift */,
-				1B4836109A68D1FEAD11C1BBCDA727B1 /* NBBottomSheetPresentationTransition.swift */,
-				9748A2A58F64F03A23B2752179897C3D /* NBBottomSheetTransitioningDelegate.swift */,
-				0242BCD9DCECF2E1893F122E132B9420 /* NBConfiguration.swift */,
-				0B2E2B01EAA694A0FEB46641D5D8B43B /* Support Files */,
+				B790A64229049FDE2E49A3464FA794A0 /* IQKeyboardManagerSwift.modulemap */,
+				00E86527F73AEB9E16F8FA507E95F54A /* IQKeyboardManagerSwift-dummy.m */,
+				BE062E09E144721D09D60E635B370160 /* IQKeyboardManagerSwift-Info.plist */,
+				E98D45A404F47D0392CDE16A921641EA /* IQKeyboardManagerSwift-prefix.pch */,
+				10D23B759B9D7AAD7FF8636994E570FF /* IQKeyboardManagerSwift-umbrella.h */,
+				576FA84316DCF9D03FB6455F5417CDD1 /* IQKeyboardManagerSwift.debug.xcconfig */,
+				E2AA22DDF3562B8FFA232724C0228ECB /* IQKeyboardManagerSwift.release.xcconfig */,
+				96200B324321AFBD0B649D1B2C9C95DB /* ResourceBundle-IQKeyboardManagerSwift-IQKeyboardManagerSwift-Info.plist */,
 			);
-			name = NBBottomSheet;
-			path = NBBottomSheet;
+			name = "Support Files";
+			path = "../Target Support Files/IQKeyboardManagerSwift";
 			sourceTree = "<group>";
 		};
-		CC5207197B8553C3608131376A497711 /* Products */ = {
+		B94D7768568A9992200DB461E8CF687F /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
-				987CD19BC0CE18F2E00B0AD5ABF8670D /* ImagePicker */,
-				97AA160F23F0CBEDDAF212103E762FC7 /* ImagePicker-ImagePicker */,
-				A8E950A16D00F649C54FFB30F81D7842 /* IQKeyboardManagerSwift */,
-				8D8069D3964814114ACEC3084C010B59 /* IQKeyboardManagerSwift-IQKeyboardManagerSwift */,
-				6473C16F43F7217C13AEA5FBA6C8247F /* LanguageManager-iOS */,
-				91BC4F27F2DA380ABC44B3609495F0E1 /* NBBottomSheet */,
-				3438B9790556194C521D4C9806D29C85 /* Pods-MiniScanner */,
+				0285214F24466DADA9DB9AC0EF8966F0 /* iOS */,
 			);
-			name = Products;
+			name = Frameworks;
 			sourceTree = "<group>";
 		};
 		CF1408CF629C7361332E53B88F7BD30C = {
@@ -542,26 +577,67 @@
 			children = (
 				9D940727FF8FB9C785EB98E56350EF41 /* Podfile */,
 				B94D7768568A9992200DB461E8CF687F /* Frameworks */,
-				25A7860C302D73DEB8070396C756BC9B /* Pods */,
-				CC5207197B8553C3608131376A497711 /* Products */,
+				8EDA6CF7F4F5DB5A39F09A679B14D094 /* Pods */,
+				7864EB5C013992C7536E24A0E51FB679 /* Products */,
 				67EA5FFBCFCDDED6A445407A917EE0A1 /* Targets Support Files */,
 			);
 			sourceTree = "<group>";
 		};
-		D5C526D18EBE88E30C1656192CB541EC /* Support Files */ = {
+		D83FA587461E3333F20D309A5031883B /* Support Files */ = {
 			isa = PBXGroup;
 			children = (
-				38B26CBA4B26D2190D5F2AF049902DB9 /* IQKeyboardManagerSwift.modulemap */,
-				E9A7E67F21C913E63FC39339C1A34EDF /* IQKeyboardManagerSwift-dummy.m */,
-				D9C5DA27C1FDF4419C1FEDDAF4A9A4BF /* IQKeyboardManagerSwift-Info.plist */,
-				FE02CCF0052887593F538DBF9A842227 /* IQKeyboardManagerSwift-prefix.pch */,
-				3FB35C3ECFA7953FFD378F42A4E4FB69 /* IQKeyboardManagerSwift-umbrella.h */,
-				F594AE9D9A5FE5CBBEFBB3A2AA80F649 /* IQKeyboardManagerSwift.debug.xcconfig */,
-				6E7ADC88875ACAB4A6A9A6D06FE0A595 /* IQKeyboardManagerSwift.release.xcconfig */,
-				5D65452C5F1840661750AB48C6E061B7 /* ResourceBundle-IQKeyboardManagerSwift-IQKeyboardManagerSwift-Info.plist */,
+				B2B0C08E0F7C8BAEEF2D80915408CA4E /* NBBottomSheet.modulemap */,
+				50B8C2618C444EA6C533E0A028A40401 /* NBBottomSheet-dummy.m */,
+				A47C01AE0A7C8A69421589DB99E4EA93 /* NBBottomSheet-Info.plist */,
+				D192CB80EEF5B776A22DFD320E872AF0 /* NBBottomSheet-prefix.pch */,
+				E6B1EF389C6993B71B0FA018E28B620C /* NBBottomSheet-umbrella.h */,
+				6CE6C81B3DBADD63B91C912BB54C2F3B /* NBBottomSheet.debug.xcconfig */,
+				477B22B950B9A74F737148237E4CC057 /* NBBottomSheet.release.xcconfig */,
 			);
 			name = "Support Files";
-			path = "../Target Support Files/IQKeyboardManagerSwift";
+			path = "../Target Support Files/NBBottomSheet";
+			sourceTree = "<group>";
+		};
+		DB86DFEFD34CDD3C9B7852E841C9B925 /* ImagePicker */ = {
+			isa = PBXGroup;
+			children = (
+				F660610295E85CB8BC6BB3BFE0FB06E8 /* AssetManager.swift */,
+				3BF4FDDCDF3959514F7E4844C446B4E6 /* BottomContainerView.swift */,
+				5B88917F2F7C1A72A04FA85624C3DEFF /* ButtonPicker.swift */,
+				B9DD740680FA210D5DAB6BE252AB4EF1 /* CameraMan.swift */,
+				391991FCCD7C3163955756BE5F24E0B6 /* CameraView.swift */,
+				A82E5C2AB35A91C11A2164845AF66C0B /* Configuration.swift */,
+				663CA458AFC6B3F550F1ED7A98EB1718 /* ConstraintsSetup.swift */,
+				AE279F36DEA7F9799201FBED80DE1579 /* Helper.swift */,
+				E11D6BF4A7EE6C01C6AD9233D0986DA5 /* ImageGalleryLayout.swift */,
+				31BBFD0B142EAB580225A2260825A319 /* ImageGalleryView.swift */,
+				58468F905BF54F1BB6F1379778747E4A /* ImageGalleryViewCell.swift */,
+				4854795675642F9D2170DC3945BA5CCE /* ImageGalleryViewDataSource.swift */,
+				38D8BFE264593E61F913A8B5B7BFBE0F /* ImagePickerController.swift */,
+				CAD7C2211C4367AD4461C65ABCCE4B4D /* ImageStack.swift */,
+				BE7DC77106671C740F9DBB7CD35316B1 /* LocationManager.swift */,
+				41AA3096AB78C69396BEB49F0A58B41C /* StackView.swift */,
+				48F3385D99D520F36A9C28AE3AFA44A9 /* TopView.swift */,
+				3F50249C139F076BB49CF9DC780080CB /* VideoInfoView.swift */,
+				2B099D87FE394E029224D7EB55C23A82 /* Resources */,
+				2004E19017DC059CA97F6C5CF09ED1C6 /* Support Files */,
+			);
+			path = ImagePicker;
+			sourceTree = "<group>";
+		};
+		E157FA2303DEDEA1B0C8936711491231 /* Support Files */ = {
+			isa = PBXGroup;
+			children = (
+				04AAE1A7C530A72A63D68F4AB6FE8BFB /* LanguageManager-iOS.modulemap */,
+				53544CF5676171AA127FD31C20A35BF1 /* LanguageManager-iOS-dummy.m */,
+				F291F28222B0C43AEC7C7C41136F489F /* LanguageManager-iOS-Info.plist */,
+				BB34736DAECFEF1A71A9D96199C98E97 /* LanguageManager-iOS-prefix.pch */,
+				FACF36010BFCB447C18555FE06FB3998 /* LanguageManager-iOS-umbrella.h */,
+				BB27F7558FAEB9835885CF21253F9512 /* LanguageManager-iOS.debug.xcconfig */,
+				B334A3A67AC8668DEA2DC48989817DE9 /* LanguageManager-iOS.release.xcconfig */,
+			);
+			name = "Support Files";
+			path = "../Target Support Files/LanguageManager-iOS";
 			sourceTree = "<group>";
 		};
 		EC99F10DC5C191754BE16B2F6AC739A8 /* Pods-MiniScanner */ = {
@@ -581,78 +657,87 @@
 			path = "Target Support Files/Pods-MiniScanner";
 			sourceTree = "<group>";
 		};
-		EE3DFE07989E3EAD33E52140D841497B /* IQKeyboardManagerSwift */ = {
+		EDA8E84E9733F55E6D50BFE6CC5DE456 /* FSPagerView */ = {
 			isa = PBXGroup;
 			children = (
-				6186F4433DF874D9D682B69E4B9692BF /* IQActiveConfiguration.swift */,
-				4E56204315A31A820258FD80789F1967 /* IQBarButtonItem.swift */,
-				9013F524E32E062B14DA4772DE8A003F /* IQBarButtonItemConfiguration.swift */,
-				93202E4E9F1E05A6E4CE614860F52997 /* IQInvocation.swift */,
-				55E90398CF3BD4545F2E6C9AC46BB2F7 /* IQKeyboardConfiguration.swift */,
-				86E4E0BDBE48394EB9813E4999877362 /* IQKeyboardInfo.swift */,
-				0A95315CDACAED5D1C09122017965AF4 /* IQKeyboardListener.swift */,
-				21EE02C73BE1E329B7305249DAB09CC9 /* IQKeyboardManager.swift */,
-				1E7504E9B38B126A1FE4CDCD1F6B5CDF /* IQKeyboardManager+Debug.swift */,
-				EF24A475CC7A858E5C29677907CD02EC /* IQKeyboardManager+Deprecated.swift */,
-				C4506BEE76EF98148A28CD87EE773134 /* IQKeyboardManager+Internal.swift */,
-				3BACCBB72B2A572D9848F795451F28A7 /* IQKeyboardManager+Position.swift */,
-				7A78F8690931C4D43717D7BEB933643B /* IQKeyboardManager+Toolbar.swift */,
-				5F9F81C96DDC9B56C34A0E6D7C645E22 /* IQKeyboardManager+ToolbarActions.swift */,
-				977093DD69FC042131EE7AFA9CB64D54 /* IQKeyboardManager+UIKeyboardNotification.swift */,
-				0AD9E89B936B222489C91787D4FE88A7 /* IQKeyboardManager+UITextFieldViewNotification.swift */,
-				862A62B35CB4A7FCCD78CDC63C79FE00 /* IQKeyboardManagerCompatible.swift */,
-				711571167DFF1C3D3C0E94EFCCC0CF67 /* IQKeyboardManagerConstants.swift */,
-				9AEABCA2EFA835BAB7FCD6AD66F96C96 /* IQKeyboardReturnKeyHandler.swift */,
-				6795D74469E29BB8CF88805CFB060AFF /* IQKeyboardReturnKeyHandler+TextFieldDelegate.swift */,
-				D0CD85F8FE5988FBAA6E8BC1DC380C2C /* IQKeyboardReturnKeyHandler+TextViewDelegate.swift */,
-				5D26C00E0D91C11489799747334F6B83 /* IQNSArray+Sort.swift */,
-				F3444CFC5D1A192201D71D9AD68E2C80 /* IQPlaceholderable.swift */,
-				8C8F9D764EEB7EEDEDF45F7C7CC55C33 /* IQPreviousNextView.swift */,
-				69B4ECFE4C236C4C7934D848AB816BEA /* IQRootControllerConfiguration.swift */,
-				A168E01B41B0E8F15B95D9D58BDC2325 /* IQScrollViewConfiguration.swift */,
-				20382F7CEA0A2FF24E600822E96AA7EC /* IQTextFieldViewInfo.swift */,
-				8C60BE9866DE0F494BE98A0D610983E5 /* IQTextFieldViewInfoModel.swift */,
-				056020DCD7EE4DB784B0EB1B1F7CB59C /* IQTextFieldViewListener.swift */,
-				94FB65BF2E12942E08FD28D02B196063 /* IQTextView.swift */,
-				326C56A2910292830ACB66D6AC2F0043 /* IQTitleBarButtonItem.swift */,
-				10B1DFF1A793B246DA3C40DDAECABE99 /* IQToolbar.swift */,
-				2DFAC6C52C912E471A716442152D7D99 /* IQToolbarConfiguration.swift */,
-				30EAF9D343ACF607F9D9719F907EC3EA /* IQToolbarPlaceholderConfiguration.swift */,
-				2A860EAF32F2B3C4C7F95F3E1B2D01C3 /* IQUICollectionView+Additions.swift */,
-				43717B490B462ACA5B2524D38A8D85A1 /* IQUIScrollView+Additions.swift */,
-				BB51AFFCD4B39F79707FB09B42ED4464 /* IQUITableView+Additions.swift */,
-				5C5B75448D0B982844A56F3E38FFC5C4 /* IQUITextFieldView+Additions.swift */,
-				291BB5586E07ADC8AFF3AB7CA09E3C84 /* IQUIView+Hierarchy.swift */,
-				18F31FEEA7BC66636304805A3A9A4B08 /* IQUIView+IQKeyboardToolbar.swift */,
-				6B12A19FA505C37ACEDAB545EDD4C324 /* IQUIView+IQKeyboardToolbarDeprecated.swift */,
-				4005F31A049034527E5C53DB638ABA67 /* IQUIViewController+Additions.swift */,
-				A5A432BBFA3EC41432193F1BA4E8F5C7 /* UIImage+NextPrevious.swift */,
-				97E1FF5A3F41A95EEFC08BA805BBE552 /* Resources */,
-				D5C526D18EBE88E30C1656192CB541EC /* Support Files */,
-			);
-			name = IQKeyboardManagerSwift;
-			path = IQKeyboardManagerSwift;
+				73151BB74FF19C87B98805C922968D9B /* FSPageControl.swift */,
+				6D41FAF09B7FF66C2B3ED69436FAD56A /* FSPagerCollectionView.swift */,
+				4C49B18419A5350E2FF0519E3E2F6AE1 /* FSPagerView.swift */,
+				5FB0228AF9177F654C13A7EC58B65414 /* FSPagerViewCell.swift */,
+				8B44DB1CA9AEFD39AB320FC434F4D5CF /* FSPagerViewLayoutAttributes.swift */,
+				A9B7321D9EFF744C9C4029D6879D984C /* FSPagerViewObjcCompat.h */,
+				76488B34BAAD9317550CB27A39510A82 /* FSPagerViewObjcCompat.m */,
+				B6381DE79278633AE97412B34DEA61A9 /* FSPageViewLayout.swift */,
+				CBF0AFCBFFE0F0AC4056B467DFD3AAAE /* FSPageViewTransformer.swift */,
+				84212D36AF469A443396F3D2DE27ACC3 /* Support Files */,
+			);
+			path = FSPagerView;
 			sourceTree = "<group>";
 		};
-		FBF99861D4630C2864FB77FFD55787DE /* Support Files */ = {
+		F600A5C617EEC2A2F3E7BED83A22153C /* IQKeyboardManagerSwift */ = {
 			isa = PBXGroup;
 			children = (
-				F5D77B18F54FCA886E79FE7772C967AE /* ImagePicker.modulemap */,
-				AFA6A88904B0288563135DBDF949AA6A /* ImagePicker-dummy.m */,
-				6976A54EFB18220EBAC17EDBE7BD5C91 /* ImagePicker-Info.plist */,
-				107D647DF3C7BECC04AD906F3B3330E7 /* ImagePicker-prefix.pch */,
-				D96B518E8F4EF4B01A14DB607E5728A5 /* ImagePicker-umbrella.h */,
-				56CC66AF6340E998DCCA050EEE9B556E /* ImagePicker.debug.xcconfig */,
-				C4CE220A4C9571A7B0A597C16F19BBA9 /* ImagePicker.release.xcconfig */,
-				5C0AF0735D8A7EDEAB791C4AF317C58E /* ResourceBundle-ImagePicker-ImagePicker-Info.plist */,
+				1F5477B53916433C6C9207EAFDD8DD96 /* IQActiveConfiguration.swift */,
+				4BB6C6E6068769143E709E93481E6F1A /* IQBarButtonItem.swift */,
+				D9FB297F85430CCD6E4BF32C102F32CC /* IQBarButtonItemConfiguration.swift */,
+				CDD6976DA8F5F0B93DF1A78AA06B575E /* IQInvocation.swift */,
+				F1E4CC36A055577A0E55615D5E942AAE /* IQKeyboardConfiguration.swift */,
+				850DF479EFFD8725D082462C3E5C53C0 /* IQKeyboardInfo.swift */,
+				610191544EEAD197032191BA9FC6A4BA /* IQKeyboardListener.swift */,
+				1952ADCDAFFBC0348561AA70A54E8A4B /* IQKeyboardManager.swift */,
+				449244F55B8088C827AD4787D03C7A37 /* IQKeyboardManager+Debug.swift */,
+				47213A20CC51FA450CDBAA7B9D82B79B /* IQKeyboardManager+Deprecated.swift */,
+				1C5ED23D8DA6C61EF94C1ADA43ADBED7 /* IQKeyboardManager+Internal.swift */,
+				19A2058EC0A4223F67C47A162832B234 /* IQKeyboardManager+Position.swift */,
+				0A4224E13F5E64B7C7ED26972CECCEF8 /* IQKeyboardManager+Toolbar.swift */,
+				C78127B028ED64AEA102D7A53AF6C180 /* IQKeyboardManager+ToolbarActions.swift */,
+				261499A1227131B89CE68BBA9C645617 /* IQKeyboardManager+UIKeyboardNotification.swift */,
+				9EC9B8BC1831AE71D4A3E3399C6D7CEB /* IQKeyboardManager+UITextFieldViewNotification.swift */,
+				52D8A157D7952E7CD278A89DB1EE312E /* IQKeyboardManagerCompatible.swift */,
+				9BB9EE1F19AB969730E96727C45644A3 /* IQKeyboardManagerConstants.swift */,
+				2FA2436A50C4518FAFDBB1C7958F150B /* IQKeyboardReturnKeyHandler.swift */,
+				70730B6AC4F7CFA336195B8FD8BFA5A3 /* IQKeyboardReturnKeyHandler+TextFieldDelegate.swift */,
+				89F5F3DB1CD795822ECF03A3BF322570 /* IQKeyboardReturnKeyHandler+TextViewDelegate.swift */,
+				F1385EA4B73C794E0C6B84F4886A2CC5 /* IQNSArray+Sort.swift */,
+				6D158F541F3CBD663BCD2F2A65D3E0C3 /* IQPlaceholderable.swift */,
+				2C974A91C05893EDB6D9C54E85336A9B /* IQPreviousNextView.swift */,
+				CE15B5E77B366A3841F60137841BD360 /* IQRootControllerConfiguration.swift */,
+				606CE67CFC56302B4A052F22DC3C5F13 /* IQScrollViewConfiguration.swift */,
+				3550E18ADF3EF705F4700FC56EA51321 /* IQTextFieldViewInfo.swift */,
+				11EF2D1F813F931138D6E82511E04949 /* IQTextFieldViewInfoModel.swift */,
+				44C5AD611F2819B6A087C4E533D669C2 /* IQTextFieldViewListener.swift */,
+				C50EF13DE5ADE34DBF289032C4FD68F5 /* IQTextView.swift */,
+				2729357D2F7C6A9A64C2602DAD22CE6E /* IQTitleBarButtonItem.swift */,
+				78AE0362F9BE43843B5E482BC8607E4B /* IQToolbar.swift */,
+				6D54E2D6583C15003E804604338BA9F6 /* IQToolbarConfiguration.swift */,
+				82675B0AA9E14C3B813886B00BAE7B56 /* IQToolbarPlaceholderConfiguration.swift */,
+				07BB2FCA4E9BAB2B85EDB57C2DEDEE86 /* IQUICollectionView+Additions.swift */,
+				1C6FBE022DD17007165E204314587DF2 /* IQUIScrollView+Additions.swift */,
+				2117351B73CD63629B006A8EDA630B87 /* IQUITableView+Additions.swift */,
+				5D6BEBA675F56179275B2E4335F5C926 /* IQUITextFieldView+Additions.swift */,
+				6929AC0AE377312BD04644294A15EC42 /* IQUIView+Hierarchy.swift */,
+				9B3B4AA730049734AC812A25BADAA3FF /* IQUIView+IQKeyboardToolbar.swift */,
+				BE26B4E0FA2A7EB069ECA092637ADB2B /* IQUIView+IQKeyboardToolbarDeprecated.swift */,
+				6C9E7FCA694AF091E1380AFFC063B0CB /* IQUIViewController+Additions.swift */,
+				100DB09534605AB7B903CC6178562E6C /* UIImage+NextPrevious.swift */,
+				9DF68B0D7BB8B85A82E1BAC9F101C81B /* Resources */,
+				B5B672E1CB27518076A09A156604EA80 /* Support Files */,
 			);
-			name = "Support Files";
-			path = "../Target Support Files/ImagePicker";
+			path = IQKeyboardManagerSwift;
 			sourceTree = "<group>";
 		};
 /* End PBXGroup section */
 
 /* Begin PBXHeadersBuildPhase section */
+		0608DA1408F82CC4ADBFAF480D0FA2B4 /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				CE2C6FD104092EA3F2F0A357C72460A8 /* FSPagerView-umbrella.h in Headers */,
+				91611428D06F5E61CECF70A53E6DA6C6 /* FSPagerViewObjcCompat.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		11370304D07B86BF4935D7D5A612503A /* Headers */ = {
 			isa = PBXHeadersBuildPhase;
 			buildActionMask = 2147483647;
@@ -669,11 +754,11 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
-		402E620400FBC14186719DB7EBD35715 /* Headers */ = {
+		5652C31FCED4827751ACF17F59387523 /* Headers */ = {
 			isa = PBXHeadersBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				D5F3E92E5A3412923CBA8DF657DB200E /* Pods-MiniScanner-umbrella.h in Headers */,
+				C43469D6FD925CAAD4F5E0E4A76E44FA /* Pods-MiniScanner-umbrella.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -709,7 +794,7 @@
 			buildRules = (
 			);
 			dependencies = (
-				798E3B215356C821FF48D86BDBF049A8 /* PBXTargetDependency */,
+				6046103C0E027685F7CDE9D383A8BDDE /* PBXTargetDependency */,
 			);
 			name = ImagePicker;
 			productName = ImagePicker;
@@ -718,20 +803,21 @@
 		};
 		4372AB6A3C495222906A1ABFD39A4463 /* Pods-MiniScanner */ = {
 			isa = PBXNativeTarget;
-			buildConfigurationList = F290DD33B276A7EEE6E81DBD6D2BA55E /* Build configuration list for PBXNativeTarget "Pods-MiniScanner" */;
+			buildConfigurationList = A8517EF1DC0F372EE454885BAD9A7D8D /* Build configuration list for PBXNativeTarget "Pods-MiniScanner" */;
 			buildPhases = (
-				402E620400FBC14186719DB7EBD35715 /* Headers */,
-				700D3730DBC574545BCCD5C6A4BC4F65 /* Sources */,
-				B80B15C3089A204C2637CFEF7CF4E427 /* Frameworks */,
-				08F9628E3D26220732E7142F4A792885 /* Resources */,
+				5652C31FCED4827751ACF17F59387523 /* Headers */,
+				FB8EAB0021B7D12FF17459D280E9C87A /* Sources */,
+				FD58926B077F9113DEBC96600422D0B7 /* Frameworks */,
+				5C6E92FD4C30823910FA29FB504E5B01 /* Resources */,
 			);
 			buildRules = (
 			);
 			dependencies = (
-				72A4050EDA92C584EF9AC34E90B6069A /* PBXTargetDependency */,
-				6B50F0BE0FA99BFA5A18D2C6F9DD43C6 /* PBXTargetDependency */,
-				9C07C3F8CF642EF9B3747A1DC77B69AD /* PBXTargetDependency */,
-				A7A6DB6DED676124DD48F737288A6B90 /* PBXTargetDependency */,
+				B727326C39CFD788E355F7997A76CCD9 /* PBXTargetDependency */,
+				728A62DA4AE9415607D1F8BF17C104F4 /* PBXTargetDependency */,
+				1602ADE0E1F10C2CF3AE4B744F1AE26A /* PBXTargetDependency */,
+				38771A0911F30C1608181EDE472E8E47 /* PBXTargetDependency */,
+				701683D6DE258B7EB3A4A0B0E47C5425 /* PBXTargetDependency */,
 			);
 			name = "Pods-MiniScanner";
 			productName = Pods_MiniScanner;
@@ -740,11 +826,11 @@
 		};
 		614D1818852890AC7D3CDF68D512C370 /* ImagePicker-ImagePicker */ = {
 			isa = PBXNativeTarget;
-			buildConfigurationList = DBAB3E9E135CD06AA2AA51FA862C0FFD /* Build configuration list for PBXNativeTarget "ImagePicker-ImagePicker" */;
+			buildConfigurationList = 9D80D6A124261D7011FA827B24F5F77A /* Build configuration list for PBXNativeTarget "ImagePicker-ImagePicker" */;
 			buildPhases = (
-				82DD422B350BF8B13BD757E2DDD04319 /* Sources */,
-				5ADC324C52D011EAFCDD0673A368D24E /* Frameworks */,
-				0750168A22ABDA5E87AD325DD4692F38 /* Resources */,
+				85F46428C1E6BC4C0387FA5D4EC81E51 /* Sources */,
+				37679FC713FDE44C229DEA3D0E3C687B /* Frameworks */,
+				3CADE8803CE56DCE6F811766BEE028A8 /* Resources */,
 			);
 			buildRules = (
 			);
@@ -770,7 +856,7 @@
 			);
 			name = NBBottomSheet;
 			productName = NBBottomSheet;
-			productReference = 91BC4F27F2DA380ABC44B3609495F0E1 /* NBBottomSheet */;
+			productReference = 91BC4F27F2DA380ABC44B3609495F0E1 /* NBBottomSheet.framework */;
 			productType = "com.apple.product-type.framework";
 		};
 		75F1EA88CB9544AB5CBE20DEC9A011AE /* LanguageManager-iOS */ = {
@@ -793,11 +879,11 @@
 		};
 		982A68D37F5DCBC1FC1FDC0BB2F0EB8E /* IQKeyboardManagerSwift-IQKeyboardManagerSwift */ = {
 			isa = PBXNativeTarget;
-			buildConfigurationList = 00FFB97E5F027C41C295C24497BFE700 /* Build configuration list for PBXNativeTarget "IQKeyboardManagerSwift-IQKeyboardManagerSwift" */;
+			buildConfigurationList = BA78B12086276C5A45087FBFAC5AAB5E /* Build configuration list for PBXNativeTarget "IQKeyboardManagerSwift-IQKeyboardManagerSwift" */;
 			buildPhases = (
-				F0EB798B988FFCCE9C5B5695B6491BC1 /* Sources */,
-				51AA6D129D5EBE2BD4592335B41F7D88 /* Frameworks */,
-				4B692DD64DA2305B5F48F1474C240411 /* Resources */,
+				9405A825E0391801566A1BA3916A7433 /* Sources */,
+				B560DBD1EB21CD84EE3CF89592F20A58 /* Frameworks */,
+				335CCDBD9B1D7641CF860EBA8CE6C91B /* Resources */,
 			);
 			buildRules = (
 			);
@@ -820,13 +906,31 @@
 			buildRules = (
 			);
 			dependencies = (
-				949E1E4A5660CD0E35EB046912939CB6 /* PBXTargetDependency */,
+				F4D44ED2F929169742DE90FAFEDEF2B2 /* PBXTargetDependency */,
 			);
 			name = IQKeyboardManagerSwift;
 			productName = IQKeyboardManagerSwift;
 			productReference = A8E950A16D00F649C54FFB30F81D7842 /* IQKeyboardManagerSwift */;
 			productType = "com.apple.product-type.framework";
 		};
+		D4F8239FB329387A8476B964D92D92E7 /* FSPagerView */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 98343682D690F1F5CF2596A899F35F57 /* Build configuration list for PBXNativeTarget "FSPagerView" */;
+			buildPhases = (
+				0608DA1408F82CC4ADBFAF480D0FA2B4 /* Headers */,
+				5F08C52D6C5CBA958747935FFDA1DFC2 /* Sources */,
+				E5ACBBCF353041B05D869DB1467D16B1 /* Frameworks */,
+				C51D8DC25EB55BC76B82A9E61C8BE832 /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = FSPagerView;
+			productName = FSPagerView;
+			productReference = 0F47FB5E28EE8C8342B1776D813D1A4C /* FSPagerView.framework */;
+			productType = "com.apple.product-type.framework";
+		};
 /* End PBXNativeTarget section */
 
 /* Begin PBXProject section */
@@ -845,10 +949,11 @@
 				en,
 			);
 			mainGroup = CF1408CF629C7361332E53B88F7BD30C;
-			productRefGroup = CC5207197B8553C3608131376A497711 /* Products */;
+			productRefGroup = 7864EB5C013992C7536E24A0E51FB679 /* Products */;
 			projectDirPath = "";
 			projectRoot = "";
 			targets = (
+				D4F8239FB329387A8476B964D92D92E7 /* FSPagerView */,
 				01CB8D6098C21E12CE735619344DE81E /* ImagePicker */,
 				614D1818852890AC7D3CDF68D512C370 /* ImagePicker-ImagePicker */,
 				B490E7485944099E16C9CBD79119D1D4 /* IQKeyboardManagerSwift */,
@@ -861,31 +966,32 @@
 /* End PBXProject section */
 
 /* Begin PBXResourcesBuildPhase section */
-		0750168A22ABDA5E87AD325DD4692F38 /* Resources */ = {
+		335CCDBD9B1D7641CF860EBA8CE6C91B /* Resources */ = {
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				920DAFAA05D6AEE35D1C4B1E5B72E53A /* AUTO@3x.png in Resources */,
-				2CE68F64419AE1091FEC8A5F75C29DCC /* cameraIcon@3x.png in Resources */,
-				B5917BEC7AED79CE3393A40E8CB00C92 /* focusIcon@3x.png in Resources */,
-				578627027C10D3A455E9F1DC2BAE38DB /* OFF@3x.png in Resources */,
-				F1A6C2294A671BACFC919A4FC9576753 /* ON@3x.png in Resources */,
-				32766BC7B540C537C3EE147C018D8A02 /* selectedImageGallery@3x.png in Resources */,
-				2BC4A6DBF3FFADA37FBD3DD6E7FF7DF5 /* video@3x.png in Resources */,
+				3AAA88A0DA1A4C83DE80CF06DAE842BE /* PrivacyInfo.xcprivacy in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
-		08F9628E3D26220732E7142F4A792885 /* Resources */ = {
+		3B58EC4259531E84AFA63D59D1133D3E /* Resources */ = {
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
-		3B58EC4259531E84AFA63D59D1133D3E /* Resources */ = {
+		3CADE8803CE56DCE6F811766BEE028A8 /* Resources */ = {
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				077139FE9B0F01A087099D1DEEA43C6F /* AUTO@3x.png in Resources */,
+				DFC166D6D9127F68B106B426C1987BEE /* cameraIcon@3x.png in Resources */,
+				F38157F1C724E5D0542A774916F5FE5E /* focusIcon@3x.png in Resources */,
+				CFFB3F1E1F4674AE420BC66278B8F182 /* OFF@3x.png in Resources */,
+				F430D726D95E472A0F080B87D2FFB84C /* ON@3x.png in Resources */,
+				8A2B2068FC39EB1AEB76D3DCC8BC6EC4 /* selectedImageGallery@3x.png in Resources */,
+				18874BB7E65438A4A83A05A86904B3D2 /* video@3x.png in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -897,19 +1003,25 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
-		4B692DD64DA2305B5F48F1474C240411 /* Resources */ = {
+		500BEBDB28E9B664CEB4A237CBAE1EC8 /* Resources */ = {
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				7E21F9F8960AE60029BB764D2B371277 /* PrivacyInfo.xcprivacy in Resources */,
+				1BBD42E84E62842B6EA186CEF24BBF45 /* ImagePicker-ImagePicker in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
-		500BEBDB28E9B664CEB4A237CBAE1EC8 /* Resources */ = {
+		5C6E92FD4C30823910FA29FB504E5B01 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		C51D8DC25EB55BC76B82A9E61C8BE832 /* Resources */ = {
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				1BBD42E84E62842B6EA186CEF24BBF45 /* ImagePicker-ImagePicker in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -1000,15 +1112,30 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
-		700D3730DBC574545BCCD5C6A4BC4F65 /* Sources */ = {
+		5F08C52D6C5CBA958747935FFDA1DFC2 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F2562CFCEC42E2989BADC7E823F2C9C3 /* FSPageControl.swift in Sources */,
+				ECA11CD4E20DFCA3327CB006B10A3DB8 /* FSPagerCollectionView.swift in Sources */,
+				29C03EAF5C27DC851118AEC88ABEC151 /* FSPagerView.swift in Sources */,
+				F6702D89104E55C112FE16943BE7D41A /* FSPagerView-dummy.m in Sources */,
+				69C7244F5E0D41CF59E5ADC8952F8D0D /* FSPagerViewCell.swift in Sources */,
+				C85C11573FFE927A84AD0C8BE456AD81 /* FSPagerViewLayoutAttributes.swift in Sources */,
+				EA89DFEFE15FAD82868C74E94F6F1B75 /* FSPagerViewObjcCompat.m in Sources */,
+				40987E046BAD603A58CA00B9A7648588 /* FSPageViewLayout.swift in Sources */,
+				488A767CF7494D169BFB886EDC470F5D /* FSPageViewTransformer.swift in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		85F46428C1E6BC4C0387FA5D4EC81E51 /* Sources */ = {
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				6F201AA2CEBCF262922C81580D5F6869 /* Pods-MiniScanner-dummy.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
-		82DD422B350BF8B13BD757E2DDD04319 /* Sources */ = {
+		9405A825E0391801566A1BA3916A7433 /* Sources */ = {
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
@@ -1033,13 +1160,6 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
-		F0EB798B988FFCCE9C5B5695B6491BC1 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
 		F504107C31E77537B61A2F14571BB10C /* Sources */ = {
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
@@ -1055,51 +1175,65 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
+		FB8EAB0021B7D12FF17459D280E9C87A /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				84CD0E0DCAD6593350AA864342338120 /* Pods-MiniScanner-dummy.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 /* End PBXSourcesBuildPhase section */
 
 /* Begin PBXTargetDependency section */
-		6B50F0BE0FA99BFA5A18D2C6F9DD43C6 /* PBXTargetDependency */ = {
+		1602ADE0E1F10C2CF3AE4B744F1AE26A /* PBXTargetDependency */ = {
 			isa = PBXTargetDependency;
 			name = ImagePicker;
 			target = 01CB8D6098C21E12CE735619344DE81E /* ImagePicker */;
-			targetProxy = 79FF0B0D8F347987ED026E1A2F50BCD3 /* PBXContainerItemProxy */;
+			targetProxy = A256C976BD8FEC8914D21C55BFA8759A /* PBXContainerItemProxy */;
 		};
-		72A4050EDA92C584EF9AC34E90B6069A /* PBXTargetDependency */ = {
+		38771A0911F30C1608181EDE472E8E47 /* PBXTargetDependency */ = {
 			isa = PBXTargetDependency;
-			name = IQKeyboardManagerSwift;
-			target = B490E7485944099E16C9CBD79119D1D4 /* IQKeyboardManagerSwift */;
-			targetProxy = FC92B3EDB540B30648F41E65A8C077D3 /* PBXContainerItemProxy */;
+			name = "LanguageManager-iOS";
+			target = 75F1EA88CB9544AB5CBE20DEC9A011AE /* LanguageManager-iOS */;
+			targetProxy = 5436BBF127AFBF237F0BF4013AB47A1F /* PBXContainerItemProxy */;
 		};
-		798E3B215356C821FF48D86BDBF049A8 /* PBXTargetDependency */ = {
+		6046103C0E027685F7CDE9D383A8BDDE /* PBXTargetDependency */ = {
 			isa = PBXTargetDependency;
 			name = "ImagePicker-ImagePicker";
 			target = 614D1818852890AC7D3CDF68D512C370 /* ImagePicker-ImagePicker */;
-			targetProxy = 116BF15D4BA9D5DF3FBE736AB2A1B5C7 /* PBXContainerItemProxy */;
+			targetProxy = 99B44F1AF6FC0DCBE7658D053454307A /* PBXContainerItemProxy */;
 		};
-		949E1E4A5660CD0E35EB046912939CB6 /* PBXTargetDependency */ = {
+		701683D6DE258B7EB3A4A0B0E47C5425 /* PBXTargetDependency */ = {
 			isa = PBXTargetDependency;
-			name = "IQKeyboardManagerSwift-IQKeyboardManagerSwift";
-			target = 982A68D37F5DCBC1FC1FDC0BB2F0EB8E /* IQKeyboardManagerSwift-IQKeyboardManagerSwift */;
-			targetProxy = D9BAF53C009DA5292853103F98DDC510 /* PBXContainerItemProxy */;
+			name = NBBottomSheet;
+			target = 727C2007A89D1AD73613E3E2E22998E5 /* NBBottomSheet */;
+			targetProxy = D8E9EFB62C84F2451393D3033CCD69EB /* PBXContainerItemProxy */;
 		};
-		9C07C3F8CF642EF9B3747A1DC77B69AD /* PBXTargetDependency */ = {
+		728A62DA4AE9415607D1F8BF17C104F4 /* PBXTargetDependency */ = {
 			isa = PBXTargetDependency;
-			name = "LanguageManager-iOS";
-			target = 75F1EA88CB9544AB5CBE20DEC9A011AE /* LanguageManager-iOS */;
-			targetProxy = 6617C4BD9FA13DEFFC4365339E6EC546 /* PBXContainerItemProxy */;
+			name = IQKeyboardManagerSwift;
+			target = B490E7485944099E16C9CBD79119D1D4 /* IQKeyboardManagerSwift */;
+			targetProxy = 87015586216C7D11B5258C93B5401791 /* PBXContainerItemProxy */;
 		};
-		A7A6DB6DED676124DD48F737288A6B90 /* PBXTargetDependency */ = {
+		B727326C39CFD788E355F7997A76CCD9 /* PBXTargetDependency */ = {
 			isa = PBXTargetDependency;
-			name = NBBottomSheet;
-			target = 727C2007A89D1AD73613E3E2E22998E5 /* NBBottomSheet */;
-			targetProxy = 25379AE4BB757484F80ECB623924015E /* PBXContainerItemProxy */;
+			name = FSPagerView;
+			target = D4F8239FB329387A8476B964D92D92E7 /* FSPagerView */;
+			targetProxy = 2CEC145C5550F170FF334AB1D080D715 /* PBXContainerItemProxy */;
+		};
+		F4D44ED2F929169742DE90FAFEDEF2B2 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = "IQKeyboardManagerSwift-IQKeyboardManagerSwift";
+			target = 982A68D37F5DCBC1FC1FDC0BB2F0EB8E /* IQKeyboardManagerSwift-IQKeyboardManagerSwift */;
+			targetProxy = 12E3A5CD5E6DE1ECCB4DF5ECCE07C96A /* PBXContainerItemProxy */;
 		};
 /* End PBXTargetDependency section */
 
 /* Begin XCBuildConfiguration section */
 		21302220AA8668082E71583ECE31B7CA /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = C4CE220A4C9571A7B0A597C16F19BBA9 /* ImagePicker.release.xcconfig */;
+			baseConfigurationReference = 878768697FDBDA249601A7E23B958714 /* ImagePicker.release.xcconfig */;
 			buildSettings = {
 				"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
@@ -1132,10 +1266,12 @@
 			};
 			name = Release;
 		};
-		39440596D0B39AE8ECC2717121684FEC /* Release */ = {
+		29A4D21F3E2B6829FCB3850DB6654200 /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 02F53E93D2F24BD6EF53601F1DBA5615 /* LanguageManager-iOS.release.xcconfig */;
+			baseConfigurationReference = 798C61760B9BC4B07BC60D42FCC09855 /* Pods-MiniScanner.release.xcconfig */;
 			buildSettings = {
+				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
+				CLANG_ENABLE_OBJC_WEAK = NO;
 				"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
 				"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
@@ -1144,18 +1280,54 @@
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
-				GCC_PREFIX_HEADER = "Target Support Files/LanguageManager-iOS/LanguageManager-iOS-prefix.pch";
-				INFOPLIST_FILE = "Target Support Files/LanguageManager-iOS/LanguageManager-iOS-Info.plist";
+				INFOPLIST_FILE = "Target Support Files/Pods-MiniScanner/Pods-MiniScanner-Info.plist";
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
-				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 15.0;
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",
 					"@executable_path/Frameworks",
 					"@loader_path/Frameworks",
 				);
-				MODULEMAP_FILE = "Target Support Files/LanguageManager-iOS/LanguageManager-iOS.modulemap";
-				PRODUCT_MODULE_NAME = LanguageManager_iOS;
-				PRODUCT_NAME = LanguageManager_iOS;
+				MACH_O_TYPE = staticlib;
+				MODULEMAP_FILE = "Target Support Files/Pods-MiniScanner/Pods-MiniScanner.modulemap";
+				OTHER_LDFLAGS = "";
+				OTHER_LIBTOOLFLAGS = "";
+				PODS_ROOT = "$(SRCROOT)";
+				PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
+				PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+				SDKROOT = iphoneos;
+				SKIP_INSTALL = YES;
+				TARGETED_DEVICE_FAMILY = "1,2";
+				VALIDATE_PRODUCT = YES;
+				VERSIONING_SYSTEM = "apple-generic";
+				VERSION_INFO_PREFIX = "";
+			};
+			name = Release;
+		};
+		31731D2A96C7FF5AA4EE56EC2EB0AE2F /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 159A2D6A6013D2B5450DB2751437E610 /* FSPagerView.release.xcconfig */;
+			buildSettings = {
+				"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
+				"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
+				CURRENT_PROJECT_VERSION = 1;
+				DEFINES_MODULE = YES;
+				DYLIB_COMPATIBILITY_VERSION = 1;
+				DYLIB_CURRENT_VERSION = 1;
+				DYLIB_INSTALL_NAME_BASE = "@rpath";
+				GCC_PREFIX_HEADER = "Target Support Files/FSPagerView/FSPagerView-prefix.pch";
+				INFOPLIST_FILE = "Target Support Files/FSPagerView/FSPagerView-Info.plist";
+				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+				LD_RUNPATH_SEARCH_PATHS = (
+					"$(inherited)",
+					"@executable_path/Frameworks",
+					"@loader_path/Frameworks",
+				);
+				MODULEMAP_FILE = "Target Support Files/FSPagerView/FSPagerView.modulemap";
+				PRODUCT_MODULE_NAME = FSPagerView;
+				PRODUCT_NAME = FSPagerView;
 				SDKROOT = iphoneos;
 				SKIP_INSTALL = YES;
 				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
@@ -1167,29 +1339,45 @@
 			};
 			name = Release;
 		};
-		3D653838205229DAE33626A12789D622 /* Release */ = {
+		39440596D0B39AE8ECC2717121684FEC /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 6E7ADC88875ACAB4A6A9A6D06FE0A595 /* IQKeyboardManagerSwift.release.xcconfig */;
+			baseConfigurationReference = B334A3A67AC8668DEA2DC48989817DE9 /* LanguageManager-iOS.release.xcconfig */;
 			buildSettings = {
-				CODE_SIGNING_ALLOWED = NO;
-				CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/IQKeyboardManagerSwift";
-				IBSC_MODULE = IQKeyboardManagerSwift;
-				INFOPLIST_FILE = "Target Support Files/IQKeyboardManagerSwift/ResourceBundle-IQKeyboardManagerSwift-IQKeyboardManagerSwift-Info.plist";
-				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
-				PRODUCT_NAME = IQKeyboardManagerSwift;
+				"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
+				"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
+				CURRENT_PROJECT_VERSION = 1;
+				DEFINES_MODULE = YES;
+				DYLIB_COMPATIBILITY_VERSION = 1;
+				DYLIB_CURRENT_VERSION = 1;
+				DYLIB_INSTALL_NAME_BASE = "@rpath";
+				GCC_PREFIX_HEADER = "Target Support Files/LanguageManager-iOS/LanguageManager-iOS-prefix.pch";
+				INFOPLIST_FILE = "Target Support Files/LanguageManager-iOS/LanguageManager-iOS-Info.plist";
+				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+				LD_RUNPATH_SEARCH_PATHS = (
+					"$(inherited)",
+					"@executable_path/Frameworks",
+					"@loader_path/Frameworks",
+				);
+				MODULEMAP_FILE = "Target Support Files/LanguageManager-iOS/LanguageManager-iOS.modulemap";
+				PRODUCT_MODULE_NAME = LanguageManager_iOS;
+				PRODUCT_NAME = LanguageManager_iOS;
 				SDKROOT = iphoneos;
 				SKIP_INSTALL = YES;
+				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
+				SWIFT_VERSION = 5.0;
 				TARGETED_DEVICE_FAMILY = "1,2";
-				WRAPPER_EXTENSION = bundle;
+				VALIDATE_PRODUCT = YES;
+				VERSIONING_SYSTEM = "apple-generic";
+				VERSION_INFO_PREFIX = "";
 			};
 			name = Release;
 		};
-		4E63084AC306D50E692DE8AFCE16B898 /* Debug */ = {
+		434E4A52CBC9F74FA2D8CDD170442C4A /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 7CC191E7994C3C7161A6641B457C9166 /* Pods-MiniScanner.debug.xcconfig */;
+			baseConfigurationReference = CD43D1DEAE8D6B89DA79F89F090AEB40 /* FSPagerView.debug.xcconfig */;
 			buildSettings = {
-				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
-				CLANG_ENABLE_OBJC_WEAK = NO;
 				"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
 				"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
@@ -1198,32 +1386,65 @@
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
-				INFOPLIST_FILE = "Target Support Files/Pods-MiniScanner/Pods-MiniScanner-Info.plist";
+				GCC_PREFIX_HEADER = "Target Support Files/FSPagerView/FSPagerView-prefix.pch";
+				INFOPLIST_FILE = "Target Support Files/FSPagerView/FSPagerView-Info.plist";
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
-				IPHONEOS_DEPLOYMENT_TARGET = 15.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",
 					"@executable_path/Frameworks",
 					"@loader_path/Frameworks",
 				);
-				MACH_O_TYPE = staticlib;
-				MODULEMAP_FILE = "Target Support Files/Pods-MiniScanner/Pods-MiniScanner.modulemap";
-				OTHER_LDFLAGS = "";
-				OTHER_LIBTOOLFLAGS = "";
-				PODS_ROOT = "$(SRCROOT)";
-				PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
-				PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+				MODULEMAP_FILE = "Target Support Files/FSPagerView/FSPagerView.modulemap";
+				PRODUCT_MODULE_NAME = FSPagerView;
+				PRODUCT_NAME = FSPagerView;
 				SDKROOT = iphoneos;
 				SKIP_INSTALL = YES;
+				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
+				SWIFT_VERSION = 5.0;
 				TARGETED_DEVICE_FAMILY = "1,2";
 				VERSIONING_SYSTEM = "apple-generic";
 				VERSION_INFO_PREFIX = "";
 			};
 			name = Debug;
 		};
+		53A399BC02E5EA0E54FC805692EA5C3F /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 878768697FDBDA249601A7E23B958714 /* ImagePicker.release.xcconfig */;
+			buildSettings = {
+				CODE_SIGNING_ALLOWED = NO;
+				CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/ImagePicker";
+				IBSC_MODULE = ImagePicker;
+				INFOPLIST_FILE = "Target Support Files/ImagePicker/ResourceBundle-ImagePicker-ImagePicker-Info.plist";
+				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+				PRODUCT_NAME = ImagePicker;
+				SDKROOT = iphoneos;
+				SKIP_INSTALL = YES;
+				TARGETED_DEVICE_FAMILY = "1,2";
+				WRAPPER_EXTENSION = bundle;
+			};
+			name = Release;
+		};
+		5540C02B93A76EC1519AFFE60C1A6142 /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = E2AA22DDF3562B8FFA232724C0228ECB /* IQKeyboardManagerSwift.release.xcconfig */;
+			buildSettings = {
+				CODE_SIGNING_ALLOWED = NO;
+				CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/IQKeyboardManagerSwift";
+				IBSC_MODULE = IQKeyboardManagerSwift;
+				INFOPLIST_FILE = "Target Support Files/IQKeyboardManagerSwift/ResourceBundle-IQKeyboardManagerSwift-IQKeyboardManagerSwift-Info.plist";
+				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+				PRODUCT_NAME = IQKeyboardManagerSwift;
+				SDKROOT = iphoneos;
+				SKIP_INSTALL = YES;
+				TARGETED_DEVICE_FAMILY = "1,2";
+				WRAPPER_EXTENSION = bundle;
+			};
+			name = Release;
+		};
 		57F5390C26CAC63BC7DC9F3A897AD41C /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 56CC66AF6340E998DCCA050EEE9B556E /* ImagePicker.debug.xcconfig */;
+			baseConfigurationReference = 7B364470B802D2E80AF8122B4F49BFA1 /* ImagePicker.debug.xcconfig */;
 			buildSettings = {
 				"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
@@ -1255,16 +1476,16 @@
 			};
 			name = Debug;
 		};
-		65421FD70F86213900A3B7DC5B30E932 /* Debug */ = {
+		6125F631306D7DD4992D2CFE6FF39E07 /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 56CC66AF6340E998DCCA050EEE9B556E /* ImagePicker.debug.xcconfig */;
+			baseConfigurationReference = 576FA84316DCF9D03FB6455F5417CDD1 /* IQKeyboardManagerSwift.debug.xcconfig */;
 			buildSettings = {
 				CODE_SIGNING_ALLOWED = NO;
-				CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/ImagePicker";
-				IBSC_MODULE = ImagePicker;
-				INFOPLIST_FILE = "Target Support Files/ImagePicker/ResourceBundle-ImagePicker-ImagePicker-Info.plist";
-				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
-				PRODUCT_NAME = ImagePicker;
+				CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/IQKeyboardManagerSwift";
+				IBSC_MODULE = IQKeyboardManagerSwift;
+				INFOPLIST_FILE = "Target Support Files/IQKeyboardManagerSwift/ResourceBundle-IQKeyboardManagerSwift-IQKeyboardManagerSwift-Info.plist";
+				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+				PRODUCT_NAME = IQKeyboardManagerSwift;
 				SDKROOT = iphoneos;
 				SKIP_INSTALL = YES;
 				TARGETED_DEVICE_FAMILY = "1,2";
@@ -1402,7 +1623,7 @@
 		};
 		A73A28CEE205ACFB6072250615C7D39D /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = AAB5B6E98707F2ADF3A9845874D055F4 /* LanguageManager-iOS.debug.xcconfig */;
+			baseConfigurationReference = BB27F7558FAEB9835885CF21253F9512 /* LanguageManager-iOS.debug.xcconfig */;
 			buildSettings = {
 				"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
@@ -1434,9 +1655,26 @@
 			};
 			name = Debug;
 		};
+		B16F82C7318DAB212BC1DB3D73118545 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 7B364470B802D2E80AF8122B4F49BFA1 /* ImagePicker.debug.xcconfig */;
+			buildSettings = {
+				CODE_SIGNING_ALLOWED = NO;
+				CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/ImagePicker";
+				IBSC_MODULE = ImagePicker;
+				INFOPLIST_FILE = "Target Support Files/ImagePicker/ResourceBundle-ImagePicker-ImagePicker-Info.plist";
+				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+				PRODUCT_NAME = ImagePicker;
+				SDKROOT = iphoneos;
+				SKIP_INSTALL = YES;
+				TARGETED_DEVICE_FAMILY = "1,2";
+				WRAPPER_EXTENSION = bundle;
+			};
+			name = Debug;
+		};
 		B3CF11682A60F02B60820C17EE93D35E /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = F594AE9D9A5FE5CBBEFBB3A2AA80F649 /* IQKeyboardManagerSwift.debug.xcconfig */;
+			baseConfigurationReference = 576FA84316DCF9D03FB6455F5417CDD1 /* IQKeyboardManagerSwift.debug.xcconfig */;
 			buildSettings = {
 				CLANG_ENABLE_OBJC_WEAK = NO;
 				"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
@@ -1471,7 +1709,7 @@
 		};
 		B89AE063F35BBC5F3358209AF37E6D16 /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 0A4841D8820C46BF7A845722F4418489 /* NBBottomSheet.debug.xcconfig */;
+			baseConfigurationReference = 6CE6C81B3DBADD63B91C912BB54C2F3B /* NBBottomSheet.debug.xcconfig */;
 			buildSettings = {
 				"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
@@ -1484,7 +1722,7 @@
 				GCC_PREFIX_HEADER = "Target Support Files/NBBottomSheet/NBBottomSheet-prefix.pch";
 				INFOPLIST_FILE = "Target Support Files/NBBottomSheet/NBBottomSheet-Info.plist";
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
-				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",
 					"@executable_path/Frameworks",
@@ -1503,10 +1741,11 @@
 			};
 			name = Debug;
 		};
-		C15C4E31ADF19556825A2743AEF62A77 /* Release */ = {
+		BCF178578AFBD6E715A7F1B340FDD406 /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 6E7ADC88875ACAB4A6A9A6D06FE0A595 /* IQKeyboardManagerSwift.release.xcconfig */;
+			baseConfigurationReference = 7CC191E7994C3C7161A6641B457C9166 /* Pods-MiniScanner.debug.xcconfig */;
 			buildSettings = {
+				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
 				CLANG_ENABLE_OBJC_WEAK = NO;
 				"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
@@ -1516,67 +1755,34 @@
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
-				GCC_PREFIX_HEADER = "Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-prefix.pch";
-				INFOPLIST_FILE = "Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-Info.plist";
+				INFOPLIST_FILE = "Target Support Files/Pods-MiniScanner/Pods-MiniScanner-Info.plist";
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
-				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 15.0;
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",
 					"@executable_path/Frameworks",
 					"@loader_path/Frameworks",
 				);
-				MODULEMAP_FILE = "Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap";
-				PRODUCT_MODULE_NAME = IQKeyboardManagerSwift;
-				PRODUCT_NAME = IQKeyboardManagerSwift;
+				MACH_O_TYPE = staticlib;
+				MODULEMAP_FILE = "Target Support Files/Pods-MiniScanner/Pods-MiniScanner.modulemap";
+				OTHER_LDFLAGS = "";
+				OTHER_LIBTOOLFLAGS = "";
+				PODS_ROOT = "$(SRCROOT)";
+				PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
+				PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
 				SDKROOT = iphoneos;
 				SKIP_INSTALL = YES;
-				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
-				SWIFT_VERSION = 5.9;
 				TARGETED_DEVICE_FAMILY = "1,2";
-				VALIDATE_PRODUCT = YES;
 				VERSIONING_SYSTEM = "apple-generic";
 				VERSION_INFO_PREFIX = "";
 			};
-			name = Release;
-		};
-		C588140F1D1E9C431CBBACA9C7679D96 /* Release */ = {
-			isa = XCBuildConfiguration;
-			baseConfigurationReference = C4CE220A4C9571A7B0A597C16F19BBA9 /* ImagePicker.release.xcconfig */;
-			buildSettings = {
-				CODE_SIGNING_ALLOWED = NO;
-				CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/ImagePicker";
-				IBSC_MODULE = ImagePicker;
-				INFOPLIST_FILE = "Target Support Files/ImagePicker/ResourceBundle-ImagePicker-ImagePicker-Info.plist";
-				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
-				PRODUCT_NAME = ImagePicker;
-				SDKROOT = iphoneos;
-				SKIP_INSTALL = YES;
-				TARGETED_DEVICE_FAMILY = "1,2";
-				WRAPPER_EXTENSION = bundle;
-			};
-			name = Release;
-		};
-		CB50E6F4093E129009F35E769734F0DB /* Debug */ = {
-			isa = XCBuildConfiguration;
-			baseConfigurationReference = F594AE9D9A5FE5CBBEFBB3A2AA80F649 /* IQKeyboardManagerSwift.debug.xcconfig */;
-			buildSettings = {
-				CODE_SIGNING_ALLOWED = NO;
-				CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/IQKeyboardManagerSwift";
-				IBSC_MODULE = IQKeyboardManagerSwift;
-				INFOPLIST_FILE = "Target Support Files/IQKeyboardManagerSwift/ResourceBundle-IQKeyboardManagerSwift-IQKeyboardManagerSwift-Info.plist";
-				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
-				PRODUCT_NAME = IQKeyboardManagerSwift;
-				SDKROOT = iphoneos;
-				SKIP_INSTALL = YES;
-				TARGETED_DEVICE_FAMILY = "1,2";
-				WRAPPER_EXTENSION = bundle;
-			};
 			name = Debug;
 		};
-		F8AD79C5141E28EAE67B8011B5C3B8F5 /* Release */ = {
+		C15C4E31ADF19556825A2743AEF62A77 /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 07D747573A57982F6B7EF9A1B8CCCC60 /* NBBottomSheet.release.xcconfig */;
+			baseConfigurationReference = E2AA22DDF3562B8FFA232724C0228ECB /* IQKeyboardManagerSwift.release.xcconfig */;
 			buildSettings = {
+				CLANG_ENABLE_OBJC_WEAK = NO;
 				"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
 				"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
@@ -1585,22 +1791,22 @@
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
-				GCC_PREFIX_HEADER = "Target Support Files/NBBottomSheet/NBBottomSheet-prefix.pch";
-				INFOPLIST_FILE = "Target Support Files/NBBottomSheet/NBBottomSheet-Info.plist";
+				GCC_PREFIX_HEADER = "Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-prefix.pch";
+				INFOPLIST_FILE = "Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-Info.plist";
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
-				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",
 					"@executable_path/Frameworks",
 					"@loader_path/Frameworks",
 				);
-				MODULEMAP_FILE = "Target Support Files/NBBottomSheet/NBBottomSheet.modulemap";
-				PRODUCT_MODULE_NAME = NBBottomSheet;
-				PRODUCT_NAME = NBBottomSheet;
+				MODULEMAP_FILE = "Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap";
+				PRODUCT_MODULE_NAME = IQKeyboardManagerSwift;
+				PRODUCT_NAME = IQKeyboardManagerSwift;
 				SDKROOT = iphoneos;
 				SKIP_INSTALL = YES;
 				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
-				SWIFT_VERSION = 5.0;
+				SWIFT_VERSION = 5.9;
 				TARGETED_DEVICE_FAMILY = "1,2";
 				VALIDATE_PRODUCT = YES;
 				VERSIONING_SYSTEM = "apple-generic";
@@ -1608,12 +1814,10 @@
 			};
 			name = Release;
 		};
-		FF428AF50BC2DDEC01BABD88BBC4C9BB /* Release */ = {
+		F8AD79C5141E28EAE67B8011B5C3B8F5 /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 798C61760B9BC4B07BC60D42FCC09855 /* Pods-MiniScanner.release.xcconfig */;
+			baseConfigurationReference = 477B22B950B9A74F737148237E4CC057 /* NBBottomSheet.release.xcconfig */;
 			buildSettings = {
-				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
-				CLANG_ENABLE_OBJC_WEAK = NO;
 				"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
 				"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
@@ -1622,23 +1826,22 @@
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
-				INFOPLIST_FILE = "Target Support Files/Pods-MiniScanner/Pods-MiniScanner-Info.plist";
+				GCC_PREFIX_HEADER = "Target Support Files/NBBottomSheet/NBBottomSheet-prefix.pch";
+				INFOPLIST_FILE = "Target Support Files/NBBottomSheet/NBBottomSheet-Info.plist";
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
-				IPHONEOS_DEPLOYMENT_TARGET = 15.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",
 					"@executable_path/Frameworks",
 					"@loader_path/Frameworks",
 				);
-				MACH_O_TYPE = staticlib;
-				MODULEMAP_FILE = "Target Support Files/Pods-MiniScanner/Pods-MiniScanner.modulemap";
-				OTHER_LDFLAGS = "";
-				OTHER_LIBTOOLFLAGS = "";
-				PODS_ROOT = "$(SRCROOT)";
-				PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
-				PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+				MODULEMAP_FILE = "Target Support Files/NBBottomSheet/NBBottomSheet.modulemap";
+				PRODUCT_MODULE_NAME = NBBottomSheet;
+				PRODUCT_NAME = NBBottomSheet;
 				SDKROOT = iphoneos;
 				SKIP_INSTALL = YES;
+				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
+				SWIFT_VERSION = 5.0;
 				TARGETED_DEVICE_FAMILY = "1,2";
 				VALIDATE_PRODUCT = YES;
 				VERSIONING_SYSTEM = "apple-generic";
@@ -1649,15 +1852,6 @@
 /* End XCBuildConfiguration section */
 
 /* Begin XCConfigurationList section */
-		00FFB97E5F027C41C295C24497BFE700 /* Build configuration list for PBXNativeTarget "IQKeyboardManagerSwift-IQKeyboardManagerSwift" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				CB50E6F4093E129009F35E769734F0DB /* Debug */,
-				3D653838205229DAE33626A12789D622 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
 		397157E58CC1977C23EB745CC0C04035 /* Build configuration list for PBXNativeTarget "IQKeyboardManagerSwift" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (
@@ -1694,29 +1888,47 @@
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 		};
-		CE3A25ED647A443AB573ACE0764C0105 /* Build configuration list for PBXNativeTarget "ImagePicker" */ = {
+		98343682D690F1F5CF2596A899F35F57 /* Build configuration list for PBXNativeTarget "FSPagerView" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (
-				57F5390C26CAC63BC7DC9F3A897AD41C /* Debug */,
-				21302220AA8668082E71583ECE31B7CA /* Release */,
+				434E4A52CBC9F74FA2D8CDD170442C4A /* Debug */,
+				31731D2A96C7FF5AA4EE56EC2EB0AE2F /* Release */,
 			);
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 		};
-		DBAB3E9E135CD06AA2AA51FA862C0FFD /* Build configuration list for PBXNativeTarget "ImagePicker-ImagePicker" */ = {
+		9D80D6A124261D7011FA827B24F5F77A /* Build configuration list for PBXNativeTarget "ImagePicker-ImagePicker" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (
-				65421FD70F86213900A3B7DC5B30E932 /* Debug */,
-				C588140F1D1E9C431CBBACA9C7679D96 /* Release */,
+				B16F82C7318DAB212BC1DB3D73118545 /* Debug */,
+				53A399BC02E5EA0E54FC805692EA5C3F /* Release */,
 			);
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 		};
-		F290DD33B276A7EEE6E81DBD6D2BA55E /* Build configuration list for PBXNativeTarget "Pods-MiniScanner" */ = {
+		A8517EF1DC0F372EE454885BAD9A7D8D /* Build configuration list for PBXNativeTarget "Pods-MiniScanner" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (
-				4E63084AC306D50E692DE8AFCE16B898 /* Debug */,
-				FF428AF50BC2DDEC01BABD88BBC4C9BB /* Release */,
+				BCF178578AFBD6E715A7F1B340FDD406 /* Debug */,
+				29A4D21F3E2B6829FCB3850DB6654200 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		BA78B12086276C5A45087FBFAC5AAB5E /* Build configuration list for PBXNativeTarget "IQKeyboardManagerSwift-IQKeyboardManagerSwift" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				6125F631306D7DD4992D2CFE6FF39E07 /* Debug */,
+				5540C02B93A76EC1519AFFE60C1A6142 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		CE3A25ED647A443AB573ACE0764C0105 /* Build configuration list for PBXNativeTarget "ImagePicker" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				57F5390C26CAC63BC7DC9F3A897AD41C /* Debug */,
+				21302220AA8668082E71583ECE31B7CA /* Release */,
 			);
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
diff --git a/Pods/Pods.xcodeproj/xcuserdata/g.makhoul.xcuserdatad/xcschemes/FSPagerView.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/g.makhoul.xcuserdatad/xcschemes/FSPagerView.xcscheme
new file mode 100644
index 0000000000000000000000000000000000000000..96fef6ec2caf644c63718eda5f8f3b3b1ca45e56
--- /dev/null
+++ b/Pods/Pods.xcodeproj/xcuserdata/g.makhoul.xcuserdatad/xcschemes/FSPagerView.xcscheme
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1500"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "D4F8239FB329387A8476B964D92D92E7"
+               BuildableName = "FSPagerView.framework"
+               BlueprintName = "FSPagerView"
+               ReferencedContainer = "container:Pods.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>
diff --git a/Pods/Pods.xcodeproj/xcuserdata/g.makhoul.xcuserdatad/xcschemes/xcschememanagement.plist b/Pods/Pods.xcodeproj/xcuserdata/g.makhoul.xcuserdatad/xcschemes/xcschememanagement.plist
index 5e97abd00f966a66b385d1fc8ce94863416ffc70..3c899a548df719a24fbaf2c3ee58f61f1968e757 100644
--- a/Pods/Pods.xcodeproj/xcuserdata/g.makhoul.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/Pods/Pods.xcodeproj/xcuserdata/g.makhoul.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -4,54 +4,61 @@
 <dict>
 	<key>SchemeUserState</key>
 	<dict>
+		<key>FSPagerView.xcscheme</key>
+		<dict>
+			<key>isShown</key>
+			<false/>
+			<key>orderHint</key>
+			<integer>0</integer>
+		</dict>
 		<key>IQKeyboardManagerSwift-IQKeyboardManagerSwift.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
 			<key>orderHint</key>
-			<integer>3</integer>
+			<integer>4</integer>
 		</dict>
 		<key>IQKeyboardManagerSwift.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
 			<key>orderHint</key>
-			<integer>2</integer>
+			<integer>3</integer>
 		</dict>
 		<key>ImagePicker-ImagePicker.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
 			<key>orderHint</key>
-			<integer>1</integer>
+			<integer>2</integer>
 		</dict>
 		<key>ImagePicker.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
 			<key>orderHint</key>
-			<integer>0</integer>
+			<integer>1</integer>
 		</dict>
 		<key>LanguageManager-iOS.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
 			<key>orderHint</key>
-			<integer>4</integer>
+			<integer>5</integer>
 		</dict>
 		<key>NBBottomSheet.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
 			<key>orderHint</key>
-			<integer>5</integer>
+			<integer>6</integer>
 		</dict>
 		<key>Pods-MiniScanner.xcscheme</key>
 		<dict>
 			<key>isShown</key>
 			<false/>
 			<key>orderHint</key>
-			<integer>6</integer>
+			<integer>7</integer>
 		</dict>
 	</dict>
 	<key>SuppressBuildableAutocreation</key>
diff --git a/Pods/Target Support Files/FSPagerView/FSPagerView-Info.plist b/Pods/Target Support Files/FSPagerView/FSPagerView-Info.plist
new file mode 100644
index 0000000000000000000000000000000000000000..582bd8b9e6e98bef807e8b2e1d9660472ce5523e
--- /dev/null
+++ b/Pods/Target Support Files/FSPagerView/FSPagerView-Info.plist	
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+  <key>CFBundleDevelopmentRegion</key>
+  <string>${PODS_DEVELOPMENT_LANGUAGE}</string>
+  <key>CFBundleExecutable</key>
+  <string>${EXECUTABLE_NAME}</string>
+  <key>CFBundleIdentifier</key>
+  <string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
+  <key>CFBundleInfoDictionaryVersion</key>
+  <string>6.0</string>
+  <key>CFBundleName</key>
+  <string>${PRODUCT_NAME}</string>
+  <key>CFBundlePackageType</key>
+  <string>FMWK</string>
+  <key>CFBundleShortVersionString</key>
+  <string>0.8.3</string>
+  <key>CFBundleSignature</key>
+  <string>????</string>
+  <key>CFBundleVersion</key>
+  <string>${CURRENT_PROJECT_VERSION}</string>
+  <key>NSPrincipalClass</key>
+  <string></string>
+</dict>
+</plist>
diff --git a/Pods/Target Support Files/FSPagerView/FSPagerView-dummy.m b/Pods/Target Support Files/FSPagerView/FSPagerView-dummy.m
new file mode 100644
index 0000000000000000000000000000000000000000..aea684a81a88d3c303bb9e4075ff1a52ca41ec92
--- /dev/null
+++ b/Pods/Target Support Files/FSPagerView/FSPagerView-dummy.m	
@@ -0,0 +1,5 @@
+#import <Foundation/Foundation.h>
+@interface PodsDummy_FSPagerView : NSObject
+@end
+@implementation PodsDummy_FSPagerView
+@end
diff --git a/Pods/Target Support Files/FSPagerView/FSPagerView-prefix.pch b/Pods/Target Support Files/FSPagerView/FSPagerView-prefix.pch
new file mode 100644
index 0000000000000000000000000000000000000000..beb2a2441835aeaf9ee2ba30c557a8f2b6e4363f
--- /dev/null
+++ b/Pods/Target Support Files/FSPagerView/FSPagerView-prefix.pch	
@@ -0,0 +1,12 @@
+#ifdef __OBJC__
+#import <UIKit/UIKit.h>
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
diff --git a/Pods/Target Support Files/FSPagerView/FSPagerView-umbrella.h b/Pods/Target Support Files/FSPagerView/FSPagerView-umbrella.h
new file mode 100644
index 0000000000000000000000000000000000000000..474ff62f0423d854449a11843c489fc7a96521c2
--- /dev/null
+++ b/Pods/Target Support Files/FSPagerView/FSPagerView-umbrella.h	
@@ -0,0 +1,17 @@
+#ifdef __OBJC__
+#import <UIKit/UIKit.h>
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
+#import "FSPagerViewObjcCompat.h"
+
+FOUNDATION_EXPORT double FSPagerViewVersionNumber;
+FOUNDATION_EXPORT const unsigned char FSPagerViewVersionString[];
+
diff --git a/Pods/Target Support Files/FSPagerView/FSPagerView.debug.xcconfig b/Pods/Target Support Files/FSPagerView/FSPagerView.debug.xcconfig
new file mode 100644
index 0000000000000000000000000000000000000000..a21eb53e6fc821db715ae91ab0e8f6bd31604601
--- /dev/null
+++ b/Pods/Target Support Files/FSPagerView/FSPagerView.debug.xcconfig	
@@ -0,0 +1,15 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FSPagerView
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
+OTHER_LDFLAGS = $(inherited) -framework "UIKit"
+OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE}
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/FSPagerView
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/Pods/Target Support Files/FSPagerView/FSPagerView.modulemap b/Pods/Target Support Files/FSPagerView/FSPagerView.modulemap
new file mode 100644
index 0000000000000000000000000000000000000000..cd9f55016a6e28c897cad866d64743d7bd7912a7
--- /dev/null
+++ b/Pods/Target Support Files/FSPagerView/FSPagerView.modulemap	
@@ -0,0 +1,6 @@
+framework module FSPagerView {
+  umbrella header "FSPagerView-umbrella.h"
+
+  export *
+  module * { export * }
+}
diff --git a/Pods/Target Support Files/FSPagerView/FSPagerView.release.xcconfig b/Pods/Target Support Files/FSPagerView/FSPagerView.release.xcconfig
new file mode 100644
index 0000000000000000000000000000000000000000..a21eb53e6fc821db715ae91ab0e8f6bd31604601
--- /dev/null
+++ b/Pods/Target Support Files/FSPagerView/FSPagerView.release.xcconfig	
@@ -0,0 +1,15 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FSPagerView
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
+OTHER_LDFLAGS = $(inherited) -framework "UIKit"
+OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE}
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/FSPagerView
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-acknowledgements.markdown b/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-acknowledgements.markdown
index ee16ade40d85b0c29b055423465b0ccc3482b9b1..e350d5a3255e65b9dcc0c5f0f965002c0ce8367f 100644
--- a/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-acknowledgements.markdown	
+++ b/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-acknowledgements.markdown	
@@ -1,6 +1,29 @@
 # Acknowledgements
 This application makes use of the following third party libraries:
 
+## FSPagerView
+
+Copyright (c) 2017 FSPagerView (https://github.com/WenchaoD/FSPagerView)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
 ## IQKeyboardManagerSwift
 
 MIT License
diff --git a/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-acknowledgements.plist b/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-acknowledgements.plist
index 6cc5abc38d5a0c4b6c55c334a2533a08ecb147fb..66e6e5494c330b0b6ffbe2cc70c3aa9983d4a6ea 100644
--- a/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-acknowledgements.plist	
+++ b/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-acknowledgements.plist	
@@ -12,6 +12,35 @@
 			<key>Type</key>
 			<string>PSGroupSpecifier</string>
 		</dict>
+		<dict>
+			<key>FooterText</key>
+			<string>Copyright (c) 2017 FSPagerView (https://github.com/WenchaoD/FSPagerView)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+</string>
+			<key>License</key>
+			<string>MIT</string>
+			<key>Title</key>
+			<string>FSPagerView</string>
+			<key>Type</key>
+			<string>PSGroupSpecifier</string>
+		</dict>
 		<dict>
 			<key>FooterText</key>
 			<string>MIT License
diff --git a/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-frameworks-Debug-input-files.xcfilelist b/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-frameworks-Debug-input-files.xcfilelist
index aef9d9320d9ab6043f4111c9048c5eb6a8093960..82fa28af580caa91a9452f264d3f15bfcdd2c514 100644
--- a/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-frameworks-Debug-input-files.xcfilelist	
+++ b/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-frameworks-Debug-input-files.xcfilelist	
@@ -1,4 +1,5 @@
 ${PODS_ROOT}/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-frameworks.sh
+${BUILT_PRODUCTS_DIR}/FSPagerView/FSPagerView.framework
 ${BUILT_PRODUCTS_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework
 ${BUILT_PRODUCTS_DIR}/ImagePicker/ImagePicker.framework
 ${BUILT_PRODUCTS_DIR}/LanguageManager-iOS/LanguageManager_iOS.framework
diff --git a/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-frameworks-Debug-output-files.xcfilelist b/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-frameworks-Debug-output-files.xcfilelist
index 690db507a382889a40c604229c11053c06c346bf..7c33ed839aa950deef5d4850a05c721e5211c64e 100644
--- a/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-frameworks-Debug-output-files.xcfilelist	
+++ b/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-frameworks-Debug-output-files.xcfilelist	
@@ -1,3 +1,4 @@
+${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FSPagerView.framework
 ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/IQKeyboardManagerSwift.framework
 ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ImagePicker.framework
 ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/LanguageManager_iOS.framework
diff --git a/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-frameworks-Release-input-files.xcfilelist b/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-frameworks-Release-input-files.xcfilelist
index aef9d9320d9ab6043f4111c9048c5eb6a8093960..82fa28af580caa91a9452f264d3f15bfcdd2c514 100644
--- a/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-frameworks-Release-input-files.xcfilelist	
+++ b/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-frameworks-Release-input-files.xcfilelist	
@@ -1,4 +1,5 @@
 ${PODS_ROOT}/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-frameworks.sh
+${BUILT_PRODUCTS_DIR}/FSPagerView/FSPagerView.framework
 ${BUILT_PRODUCTS_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework
 ${BUILT_PRODUCTS_DIR}/ImagePicker/ImagePicker.framework
 ${BUILT_PRODUCTS_DIR}/LanguageManager-iOS/LanguageManager_iOS.framework
diff --git a/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-frameworks-Release-output-files.xcfilelist b/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-frameworks-Release-output-files.xcfilelist
index 690db507a382889a40c604229c11053c06c346bf..7c33ed839aa950deef5d4850a05c721e5211c64e 100644
--- a/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-frameworks-Release-output-files.xcfilelist	
+++ b/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-frameworks-Release-output-files.xcfilelist	
@@ -1,3 +1,4 @@
+${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FSPagerView.framework
 ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/IQKeyboardManagerSwift.framework
 ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ImagePicker.framework
 ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/LanguageManager_iOS.framework
diff --git a/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-frameworks.sh b/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-frameworks.sh
index 06cc90bb42b318f78a482dc10e3c76556d33588e..fd2bcd6fb3ba39de1022d8fe207c5f95867dff29 100755
--- a/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-frameworks.sh	
+++ b/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner-frameworks.sh	
@@ -176,12 +176,14 @@ code_sign_if_enabled() {
 }
 
 if [[ "$CONFIGURATION" == "Debug" ]]; then
+  install_framework "${BUILT_PRODUCTS_DIR}/FSPagerView/FSPagerView.framework"
   install_framework "${BUILT_PRODUCTS_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework"
   install_framework "${BUILT_PRODUCTS_DIR}/ImagePicker/ImagePicker.framework"
   install_framework "${BUILT_PRODUCTS_DIR}/LanguageManager-iOS/LanguageManager_iOS.framework"
   install_framework "${BUILT_PRODUCTS_DIR}/NBBottomSheet/NBBottomSheet.framework"
 fi
 if [[ "$CONFIGURATION" == "Release" ]]; then
+  install_framework "${BUILT_PRODUCTS_DIR}/FSPagerView/FSPagerView.framework"
   install_framework "${BUILT_PRODUCTS_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework"
   install_framework "${BUILT_PRODUCTS_DIR}/ImagePicker/ImagePicker.framework"
   install_framework "${BUILT_PRODUCTS_DIR}/LanguageManager-iOS/LanguageManager_iOS.framework"
diff --git a/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner.debug.xcconfig b/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner.debug.xcconfig
index 06bbba152ee1dbe4e70f00656337c4099f31745e..9b0eee13ca2cd7a927af4ba548f70f2217b1d7c4 100644
--- a/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner.debug.xcconfig	
+++ b/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner.debug.xcconfig	
@@ -1,11 +1,11 @@
 ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
 CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
-FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/ImagePicker" "${PODS_CONFIGURATION_BUILD_DIR}/LanguageManager-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/NBBottomSheet"
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FSPagerView" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/ImagePicker" "${PODS_CONFIGURATION_BUILD_DIR}/LanguageManager-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/NBBottomSheet"
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
-HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ImagePicker/ImagePicker.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LanguageManager-iOS/LanguageManager_iOS.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/NBBottomSheet/NBBottomSheet.framework/Headers"
+HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FSPagerView/FSPagerView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ImagePicker/ImagePicker.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LanguageManager-iOS/LanguageManager_iOS.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/NBBottomSheet/NBBottomSheet.framework/Headers"
 LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks'
 LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(SDKROOT)/usr/lib/swift
-OTHER_LDFLAGS = $(inherited) -l"swiftCoreGraphics" -framework "AVFoundation" -framework "CoreGraphics" -framework "Foundation" -framework "IQKeyboardManagerSwift" -framework "ImagePicker" -framework "LanguageManager_iOS" -framework "NBBottomSheet" -framework "QuartzCore" -framework "UIKit"
+OTHER_LDFLAGS = $(inherited) -l"swiftCoreGraphics" -framework "AVFoundation" -framework "CoreGraphics" -framework "FSPagerView" -framework "Foundation" -framework "IQKeyboardManagerSwift" -framework "ImagePicker" -framework "LanguageManager_iOS" -framework "NBBottomSheet" -framework "QuartzCore" -framework "UIKit"
 OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
 PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
diff --git a/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner.release.xcconfig b/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner.release.xcconfig
index 06bbba152ee1dbe4e70f00656337c4099f31745e..9b0eee13ca2cd7a927af4ba548f70f2217b1d7c4 100644
--- a/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner.release.xcconfig	
+++ b/Pods/Target Support Files/Pods-MiniScanner/Pods-MiniScanner.release.xcconfig	
@@ -1,11 +1,11 @@
 ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
 CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
-FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/ImagePicker" "${PODS_CONFIGURATION_BUILD_DIR}/LanguageManager-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/NBBottomSheet"
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FSPagerView" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/ImagePicker" "${PODS_CONFIGURATION_BUILD_DIR}/LanguageManager-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/NBBottomSheet"
 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
-HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ImagePicker/ImagePicker.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LanguageManager-iOS/LanguageManager_iOS.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/NBBottomSheet/NBBottomSheet.framework/Headers"
+HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FSPagerView/FSPagerView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ImagePicker/ImagePicker.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LanguageManager-iOS/LanguageManager_iOS.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/NBBottomSheet/NBBottomSheet.framework/Headers"
 LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks'
 LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(SDKROOT)/usr/lib/swift
-OTHER_LDFLAGS = $(inherited) -l"swiftCoreGraphics" -framework "AVFoundation" -framework "CoreGraphics" -framework "Foundation" -framework "IQKeyboardManagerSwift" -framework "ImagePicker" -framework "LanguageManager_iOS" -framework "NBBottomSheet" -framework "QuartzCore" -framework "UIKit"
+OTHER_LDFLAGS = $(inherited) -l"swiftCoreGraphics" -framework "AVFoundation" -framework "CoreGraphics" -framework "FSPagerView" -framework "Foundation" -framework "IQKeyboardManagerSwift" -framework "ImagePicker" -framework "LanguageManager_iOS" -framework "NBBottomSheet" -framework "QuartzCore" -framework "UIKit"
 OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
 PODS_BUILD_DIR = ${BUILD_DIR}
 PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)