Parcourir la source

update Xcode project and WebP framework

ibireme il y a 8 ans
Parent
commit
43ed029263

+ 289 - 250
Demo/YYImageDemo.xcodeproj/project.pbxproj

@@ -3,239 +3,258 @@
 	archiveVersion = 1;
 	classes = {
 	};
-	objectVersion = 46;
+	objectVersion = 48;
 	objects = {
 
 /* Begin PBXBuildFile section */
-		D93B2D521BDB944B009B66B0 /* UIView+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = D93B2D511BDB944B009B66B0 /* UIView+YYAdd.m */; settings = {ASSET_TAGS = (); }; };
-		D93B2D611BDB96DE009B66B0 /* YYImageExample.m in Sources */ = {isa = PBXBuildFile; fileRef = D93B2D541BDB96DE009B66B0 /* YYImageExample.m */; settings = {ASSET_TAGS = (); }; };
-		D93B2D621BDB96DE009B66B0 /* YYImageDisplayExample.m in Sources */ = {isa = PBXBuildFile; fileRef = D93B2D561BDB96DE009B66B0 /* YYImageDisplayExample.m */; settings = {ASSET_TAGS = (); }; };
-		D93B2D631BDB96DE009B66B0 /* YYImageProgressiveExample.m in Sources */ = {isa = PBXBuildFile; fileRef = D93B2D581BDB96DE009B66B0 /* YYImageProgressiveExample.m */; settings = {ASSET_TAGS = (); }; };
-		D93B2D661BDB96DE009B66B0 /* YYImageExampleHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = D93B2D5E1BDB96DE009B66B0 /* YYImageExampleHelper.m */; settings = {ASSET_TAGS = (); }; };
-		D93B2D6D1BDB99BA009B66B0 /* UIControl+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = D93B2D6A1BDB99BA009B66B0 /* UIControl+YYAdd.m */; settings = {ASSET_TAGS = (); }; };
-		D93B2D6E1BDB99BA009B66B0 /* UIGestureRecognizer+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = D93B2D6C1BDB99BA009B66B0 /* UIGestureRecognizer+YYAdd.m */; settings = {ASSET_TAGS = (); }; };
-		D93B2D701BDBA586009B66B0 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D93B2D6F1BDBA586009B66B0 /* libz.tbd */; };
-		D93B2D801BDBBE66009B66B0 /* niconiconi@2x.gif in Resources */ = {isa = PBXBuildFile; fileRef = D93B2D741BDBBE66009B66B0 /* niconiconi@2x.gif */; settings = {ASSET_TAGS = (); }; };
-		D93B2D811BDBBE66009B66B0 /* google@2x.webp in Resources */ = {isa = PBXBuildFile; fileRef = D93B2D751BDBBE66009B66B0 /* google@2x.webp */; settings = {ASSET_TAGS = (); }; };
-		D93B2D821BDBBE66009B66B0 /* nyancat@2x.webp in Resources */ = {isa = PBXBuildFile; fileRef = D93B2D761BDBBE66009B66B0 /* nyancat@2x.webp */; settings = {ASSET_TAGS = (); }; };
-		D93B2D831BDBBE66009B66B0 /* pia@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D93B2D771BDBBE66009B66B0 /* pia@2x.png */; settings = {ASSET_TAGS = (); }; };
-		D93B2D841BDBBE66009B66B0 /* cube@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D93B2D781BDBBE66009B66B0 /* cube@2x.png */; settings = {ASSET_TAGS = (); }; };
-		D93B2D851BDBBE66009B66B0 /* wall-e@2x.webp in Resources */ = {isa = PBXBuildFile; fileRef = D93B2D791BDBBE66009B66B0 /* wall-e@2x.webp */; settings = {ASSET_TAGS = (); }; };
-		D93B2D861BDBBE66009B66B0 /* mew_baseline.jpg in Resources */ = {isa = PBXBuildFile; fileRef = D93B2D7A1BDBBE66009B66B0 /* mew_baseline.jpg */; settings = {ASSET_TAGS = (); }; };
-		D93B2D871BDBBE66009B66B0 /* mew_progressive.jpg in Resources */ = {isa = PBXBuildFile; fileRef = D93B2D7B1BDBBE66009B66B0 /* mew_progressive.jpg */; settings = {ASSET_TAGS = (); }; };
-		D93B2D881BDBBE66009B66B0 /* mew_baseline.png in Resources */ = {isa = PBXBuildFile; fileRef = D93B2D7C1BDBBE66009B66B0 /* mew_baseline.png */; settings = {ASSET_TAGS = (); }; };
-		D93B2D891BDBBE66009B66B0 /* mew_interlaced.png in Resources */ = {isa = PBXBuildFile; fileRef = D93B2D7D1BDBBE66009B66B0 /* mew_interlaced.png */; settings = {ASSET_TAGS = (); }; };
-		D93B2D8A1BDBBE66009B66B0 /* mew_baseline.gif in Resources */ = {isa = PBXBuildFile; fileRef = D93B2D7E1BDBBE66009B66B0 /* mew_baseline.gif */; settings = {ASSET_TAGS = (); }; };
-		D93B2D8B1BDBBE66009B66B0 /* mew_interlaced.gif in Resources */ = {isa = PBXBuildFile; fileRef = D93B2D7F1BDBBE66009B66B0 /* mew_interlaced.gif */; settings = {ASSET_TAGS = (); }; };
-		D93B2D8E1BDBBE74009B66B0 /* ResourceTwitter.bundle in Resources */ = {isa = PBXBuildFile; fileRef = D93B2D8C1BDBBE74009B66B0 /* ResourceTwitter.bundle */; settings = {ASSET_TAGS = (); }; };
-		D93B2D8F1BDBBE74009B66B0 /* EmoticonWeibo.bundle in Resources */ = {isa = PBXBuildFile; fileRef = D93B2D8D1BDBBE74009B66B0 /* EmoticonWeibo.bundle */; settings = {ASSET_TAGS = (); }; };
-		D946DE071BD13D75006B77F7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D946DE061BD13D75006B77F7 /* main.m */; };
-		D946DE0A1BD13D75006B77F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D946DE091BD13D75006B77F7 /* AppDelegate.m */; };
-		D946DE0D1BD13D75006B77F7 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D946DE0C1BD13D75006B77F7 /* ViewController.m */; };
-		D946DE101BD13D75006B77F7 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D946DE0E1BD13D75006B77F7 /* Main.storyboard */; };
-		D946DE121BD13D75006B77F7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D946DE111BD13D75006B77F7 /* Assets.xcassets */; };
-		D946DE151BD13D75006B77F7 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D946DE131BD13D75006B77F7 /* LaunchScreen.storyboard */; };
-		D946DE391BD13E28006B77F7 /* YYAnimatedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = D946DE301BD13E28006B77F7 /* YYAnimatedImageView.m */; settings = {ASSET_TAGS = (); }; };
-		D946DE3A1BD13E28006B77F7 /* YYFrameImage.m in Sources */ = {isa = PBXBuildFile; fileRef = D946DE321BD13E28006B77F7 /* YYFrameImage.m */; settings = {ASSET_TAGS = (); }; };
-		D946DE3B1BD13E28006B77F7 /* YYImage.m in Sources */ = {isa = PBXBuildFile; fileRef = D946DE341BD13E28006B77F7 /* YYImage.m */; settings = {ASSET_TAGS = (); }; };
-		D946DE3C1BD13E28006B77F7 /* YYImageCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = D946DE361BD13E28006B77F7 /* YYImageCoder.m */; settings = {ASSET_TAGS = (); }; };
-		D946DE3D1BD13E28006B77F7 /* YYSpriteSheetImage.m in Sources */ = {isa = PBXBuildFile; fileRef = D946DE381BD13E28006B77F7 /* YYSpriteSheetImage.m */; settings = {ASSET_TAGS = (); }; };
-		D946DE3F1BD13E32006B77F7 /* WebP.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D946DE3E1BD13E32006B77F7 /* WebP.framework */; settings = {ASSET_TAGS = (); }; };
+		D91A60311F057230008CD5D3 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D91A60301F057230008CD5D3 /* AppDelegate.m */; };
+		D91A60341F057230008CD5D3 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D91A60331F057230008CD5D3 /* ViewController.m */; };
+		D91A60371F057230008CD5D3 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D91A60351F057230008CD5D3 /* Main.storyboard */; };
+		D91A60391F057230008CD5D3 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D91A60381F057230008CD5D3 /* Assets.xcassets */; };
+		D91A603C1F057230008CD5D3 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D91A603A1F057230008CD5D3 /* LaunchScreen.storyboard */; };
+		D91A603F1F057230008CD5D3 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D91A603E1F057230008CD5D3 /* main.m */; };
+		D97F40941F0573DA00DFD481 /* YYAnimatedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = D97F408B1F0573DA00DFD481 /* YYAnimatedImageView.m */; };
+		D97F40951F0573DA00DFD481 /* YYFrameImage.m in Sources */ = {isa = PBXBuildFile; fileRef = D97F408D1F0573DA00DFD481 /* YYFrameImage.m */; };
+		D97F40961F0573DA00DFD481 /* YYImage.m in Sources */ = {isa = PBXBuildFile; fileRef = D97F408F1F0573DA00DFD481 /* YYImage.m */; };
+		D97F40971F0573DA00DFD481 /* YYImageCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = D97F40911F0573DA00DFD481 /* YYImageCoder.m */; };
+		D97F40981F0573DA00DFD481 /* YYSpriteSheetImage.m in Sources */ = {isa = PBXBuildFile; fileRef = D97F40931F0573DA00DFD481 /* YYSpriteSheetImage.m */; };
+		D97F409A1F05740B00DFD481 /* WebP.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D97F40991F05740B00DFD481 /* WebP.framework */; };
+		D97F409D1F05741000DFD481 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D97F409C1F05741000DFD481 /* libz.tbd */; };
+		D9D17EB91F05750000051419 /* cube@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D9D17EAB1F05750000051419 /* cube@2x.png */; };
+		D9D17EBA1F05750000051419 /* EmoticonWeibo.bundle in Resources */ = {isa = PBXBuildFile; fileRef = D9D17EAC1F05750000051419 /* EmoticonWeibo.bundle */; };
+		D9D17EBB1F05750000051419 /* google@2x.webp in Resources */ = {isa = PBXBuildFile; fileRef = D9D17EAD1F05750000051419 /* google@2x.webp */; };
+		D9D17EBC1F05750000051419 /* mew_baseline.gif in Resources */ = {isa = PBXBuildFile; fileRef = D9D17EAE1F05750000051419 /* mew_baseline.gif */; };
+		D9D17EBD1F05750000051419 /* mew_baseline.jpg in Resources */ = {isa = PBXBuildFile; fileRef = D9D17EAF1F05750000051419 /* mew_baseline.jpg */; };
+		D9D17EBE1F05750000051419 /* mew_baseline.png in Resources */ = {isa = PBXBuildFile; fileRef = D9D17EB01F05750000051419 /* mew_baseline.png */; };
+		D9D17EBF1F05750000051419 /* mew_interlaced.gif in Resources */ = {isa = PBXBuildFile; fileRef = D9D17EB11F05750000051419 /* mew_interlaced.gif */; };
+		D9D17EC01F05750000051419 /* mew_interlaced.png in Resources */ = {isa = PBXBuildFile; fileRef = D9D17EB21F05750000051419 /* mew_interlaced.png */; };
+		D9D17EC11F05750000051419 /* mew_progressive.jpg in Resources */ = {isa = PBXBuildFile; fileRef = D9D17EB31F05750000051419 /* mew_progressive.jpg */; };
+		D9D17EC21F05750000051419 /* niconiconi@2x.gif in Resources */ = {isa = PBXBuildFile; fileRef = D9D17EB41F05750000051419 /* niconiconi@2x.gif */; };
+		D9D17EC31F05750000051419 /* nyancat@2x.webp in Resources */ = {isa = PBXBuildFile; fileRef = D9D17EB51F05750000051419 /* nyancat@2x.webp */; };
+		D9D17EC41F05750000051419 /* pia@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D9D17EB61F05750000051419 /* pia@2x.png */; };
+		D9D17EC51F05750000051419 /* ResourceTwitter.bundle in Resources */ = {isa = PBXBuildFile; fileRef = D9D17EB71F05750000051419 /* ResourceTwitter.bundle */; };
+		D9D17EC61F05750000051419 /* wall-e@2x.webp in Resources */ = {isa = PBXBuildFile; fileRef = D9D17EB81F05750000051419 /* wall-e@2x.webp */; };
+		D9D17ECE1F05751700051419 /* UIControl+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = D9D17EC91F05751700051419 /* UIControl+YYAdd.m */; };
+		D9D17ECF1F05751700051419 /* UIGestureRecognizer+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = D9D17ECB1F05751700051419 /* UIGestureRecognizer+YYAdd.m */; };
+		D9D17ED01F05751700051419 /* UIView+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = D9D17ECD1F05751700051419 /* UIView+YYAdd.m */; };
+		D9D17EE01F05756400051419 /* YYImageDisplayExample.m in Sources */ = {isa = PBXBuildFile; fileRef = D9D17ED91F05756400051419 /* YYImageDisplayExample.m */; };
+		D9D17EE11F05756400051419 /* YYImageExample.m in Sources */ = {isa = PBXBuildFile; fileRef = D9D17EDB1F05756400051419 /* YYImageExample.m */; };
+		D9D17EE21F05756400051419 /* YYImageExampleHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = D9D17EDD1F05756400051419 /* YYImageExampleHelper.m */; };
+		D9D17EE31F05756400051419 /* YYImageProgressiveExample.m in Sources */ = {isa = PBXBuildFile; fileRef = D9D17EDF1F05756400051419 /* YYImageProgressiveExample.m */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXFileReference section */
-		D93B2D501BDB944B009B66B0 /* UIView+YYAdd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+YYAdd.h"; sourceTree = "<group>"; };
-		D93B2D511BDB944B009B66B0 /* UIView+YYAdd.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+YYAdd.m"; sourceTree = "<group>"; };
-		D93B2D531BDB96DE009B66B0 /* YYImageExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYImageExample.h; sourceTree = "<group>"; };
-		D93B2D541BDB96DE009B66B0 /* YYImageExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYImageExample.m; sourceTree = "<group>"; };
-		D93B2D551BDB96DE009B66B0 /* YYImageDisplayExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYImageDisplayExample.h; sourceTree = "<group>"; };
-		D93B2D561BDB96DE009B66B0 /* YYImageDisplayExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYImageDisplayExample.m; sourceTree = "<group>"; };
-		D93B2D571BDB96DE009B66B0 /* YYImageProgressiveExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYImageProgressiveExample.h; sourceTree = "<group>"; };
-		D93B2D581BDB96DE009B66B0 /* YYImageProgressiveExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYImageProgressiveExample.m; sourceTree = "<group>"; };
-		D93B2D591BDB96DE009B66B0 /* YYWebImageExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYWebImageExample.h; sourceTree = "<group>"; };
-		D93B2D5A1BDB96DE009B66B0 /* YYWebImageExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYWebImageExample.m; sourceTree = "<group>"; };
-		D93B2D5B1BDB96DE009B66B0 /* YYImageBenchmark.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYImageBenchmark.h; sourceTree = "<group>"; };
-		D93B2D5C1BDB96DE009B66B0 /* YYImageBenchmark.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYImageBenchmark.m; sourceTree = "<group>"; };
-		D93B2D5D1BDB96DE009B66B0 /* YYImageExampleHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYImageExampleHelper.h; sourceTree = "<group>"; };
-		D93B2D5E1BDB96DE009B66B0 /* YYImageExampleHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYImageExampleHelper.m; sourceTree = "<group>"; };
-		D93B2D5F1BDB96DE009B66B0 /* YYBPGCoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYBPGCoder.h; sourceTree = "<group>"; };
-		D93B2D601BDB96DE009B66B0 /* YYBPGCoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYBPGCoder.m; sourceTree = "<group>"; };
-		D93B2D691BDB99BA009B66B0 /* UIControl+YYAdd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIControl+YYAdd.h"; sourceTree = "<group>"; };
-		D93B2D6A1BDB99BA009B66B0 /* UIControl+YYAdd.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIControl+YYAdd.m"; sourceTree = "<group>"; };
-		D93B2D6B1BDB99BA009B66B0 /* UIGestureRecognizer+YYAdd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIGestureRecognizer+YYAdd.h"; sourceTree = "<group>"; };
-		D93B2D6C1BDB99BA009B66B0 /* UIGestureRecognizer+YYAdd.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIGestureRecognizer+YYAdd.m"; sourceTree = "<group>"; };
-		D93B2D6F1BDBA586009B66B0 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
-		D93B2D741BDBBE66009B66B0 /* niconiconi@2x.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = "niconiconi@2x.gif"; sourceTree = "<group>"; };
-		D93B2D751BDBBE66009B66B0 /* google@2x.webp */ = {isa = PBXFileReference; lastKnownFileType = file; path = "google@2x.webp"; sourceTree = "<group>"; };
-		D93B2D761BDBBE66009B66B0 /* nyancat@2x.webp */ = {isa = PBXFileReference; lastKnownFileType = file; path = "nyancat@2x.webp"; sourceTree = "<group>"; };
-		D93B2D771BDBBE66009B66B0 /* pia@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "pia@2x.png"; sourceTree = "<group>"; };
-		D93B2D781BDBBE66009B66B0 /* cube@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "cube@2x.png"; sourceTree = "<group>"; };
-		D93B2D791BDBBE66009B66B0 /* wall-e@2x.webp */ = {isa = PBXFileReference; lastKnownFileType = file; path = "wall-e@2x.webp"; sourceTree = "<group>"; };
-		D93B2D7A1BDBBE66009B66B0 /* mew_baseline.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = mew_baseline.jpg; sourceTree = "<group>"; };
-		D93B2D7B1BDBBE66009B66B0 /* mew_progressive.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = mew_progressive.jpg; sourceTree = "<group>"; };
-		D93B2D7C1BDBBE66009B66B0 /* mew_baseline.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = mew_baseline.png; sourceTree = "<group>"; };
-		D93B2D7D1BDBBE66009B66B0 /* mew_interlaced.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = mew_interlaced.png; sourceTree = "<group>"; };
-		D93B2D7E1BDBBE66009B66B0 /* mew_baseline.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = mew_baseline.gif; sourceTree = "<group>"; };
-		D93B2D7F1BDBBE66009B66B0 /* mew_interlaced.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = mew_interlaced.gif; sourceTree = "<group>"; };
-		D93B2D8C1BDBBE74009B66B0 /* ResourceTwitter.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = ResourceTwitter.bundle; sourceTree = "<group>"; };
-		D93B2D8D1BDBBE74009B66B0 /* EmoticonWeibo.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = EmoticonWeibo.bundle; sourceTree = "<group>"; };
-		D946DE021BD13D75006B77F7 /* YYImageDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = YYImageDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		D946DE061BD13D75006B77F7 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
-		D946DE081BD13D75006B77F7 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
-		D946DE091BD13D75006B77F7 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
-		D946DE0B1BD13D75006B77F7 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
-		D946DE0C1BD13D75006B77F7 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
-		D946DE0F1BD13D75006B77F7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
-		D946DE111BD13D75006B77F7 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
-		D946DE141BD13D75006B77F7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
-		D946DE161BD13D75006B77F7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
-		D946DE2F1BD13E28006B77F7 /* YYAnimatedImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYAnimatedImageView.h; sourceTree = "<group>"; };
-		D946DE301BD13E28006B77F7 /* YYAnimatedImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYAnimatedImageView.m; sourceTree = "<group>"; };
-		D946DE311BD13E28006B77F7 /* YYFrameImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYFrameImage.h; sourceTree = "<group>"; };
-		D946DE321BD13E28006B77F7 /* YYFrameImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYFrameImage.m; sourceTree = "<group>"; };
-		D946DE331BD13E28006B77F7 /* YYImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYImage.h; sourceTree = "<group>"; };
-		D946DE341BD13E28006B77F7 /* YYImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYImage.m; sourceTree = "<group>"; };
-		D946DE351BD13E28006B77F7 /* YYImageCoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYImageCoder.h; sourceTree = "<group>"; };
-		D946DE361BD13E28006B77F7 /* YYImageCoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYImageCoder.m; sourceTree = "<group>"; };
-		D946DE371BD13E28006B77F7 /* YYSpriteSheetImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYSpriteSheetImage.h; sourceTree = "<group>"; };
-		D946DE381BD13E28006B77F7 /* YYSpriteSheetImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYSpriteSheetImage.m; sourceTree = "<group>"; };
-		D946DE3E1BD13E32006B77F7 /* WebP.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebP.framework; path = ../Vendor/WebP.framework; sourceTree = "<group>"; };
+		D91A602C1F057230008CD5D3 /* YYImageDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = YYImageDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		D91A602F1F057230008CD5D3 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = YYImageDemo/AppDelegate.h; sourceTree = "<group>"; };
+		D91A60301F057230008CD5D3 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = YYImageDemo/AppDelegate.m; sourceTree = "<group>"; };
+		D91A60321F057230008CD5D3 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ViewController.h; path = YYImageDemo/ViewController.h; sourceTree = "<group>"; };
+		D91A60331F057230008CD5D3 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = ViewController.m; path = YYImageDemo/ViewController.m; sourceTree = "<group>"; };
+		D91A60361F057230008CD5D3 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
+		D91A60381F057230008CD5D3 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = YYImageDemo/Assets.xcassets; sourceTree = "<group>"; };
+		D91A603B1F057230008CD5D3 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
+		D91A603D1F057230008CD5D3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = YYImageDemo/Info.plist; sourceTree = "<group>"; };
+		D91A603E1F057230008CD5D3 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = main.m; path = YYImageDemo/main.m; sourceTree = "<group>"; };
+		D97F408A1F0573DA00DFD481 /* YYAnimatedImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYAnimatedImageView.h; sourceTree = "<group>"; };
+		D97F408B1F0573DA00DFD481 /* YYAnimatedImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYAnimatedImageView.m; sourceTree = "<group>"; };
+		D97F408C1F0573DA00DFD481 /* YYFrameImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYFrameImage.h; sourceTree = "<group>"; };
+		D97F408D1F0573DA00DFD481 /* YYFrameImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYFrameImage.m; sourceTree = "<group>"; };
+		D97F408E1F0573DA00DFD481 /* YYImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYImage.h; sourceTree = "<group>"; };
+		D97F408F1F0573DA00DFD481 /* YYImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYImage.m; sourceTree = "<group>"; };
+		D97F40901F0573DA00DFD481 /* YYImageCoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYImageCoder.h; sourceTree = "<group>"; };
+		D97F40911F0573DA00DFD481 /* YYImageCoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYImageCoder.m; sourceTree = "<group>"; };
+		D97F40921F0573DA00DFD481 /* YYSpriteSheetImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYSpriteSheetImage.h; sourceTree = "<group>"; };
+		D97F40931F0573DA00DFD481 /* YYSpriteSheetImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYSpriteSheetImage.m; sourceTree = "<group>"; };
+		D97F40991F05740B00DFD481 /* WebP.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebP.framework; path = ../Vendor/WebP.framework; sourceTree = "<group>"; };
+		D97F409C1F05741000DFD481 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
+		D9D17EAB1F05750000051419 /* cube@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "cube@2x.png"; sourceTree = "<group>"; };
+		D9D17EAC1F05750000051419 /* EmoticonWeibo.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = EmoticonWeibo.bundle; sourceTree = "<group>"; };
+		D9D17EAD1F05750000051419 /* google@2x.webp */ = {isa = PBXFileReference; lastKnownFileType = file; path = "google@2x.webp"; sourceTree = "<group>"; };
+		D9D17EAE1F05750000051419 /* mew_baseline.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = mew_baseline.gif; sourceTree = "<group>"; };
+		D9D17EAF1F05750000051419 /* mew_baseline.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = mew_baseline.jpg; sourceTree = "<group>"; };
+		D9D17EB01F05750000051419 /* mew_baseline.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = mew_baseline.png; sourceTree = "<group>"; };
+		D9D17EB11F05750000051419 /* mew_interlaced.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = mew_interlaced.gif; sourceTree = "<group>"; };
+		D9D17EB21F05750000051419 /* mew_interlaced.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = mew_interlaced.png; sourceTree = "<group>"; };
+		D9D17EB31F05750000051419 /* mew_progressive.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = mew_progressive.jpg; sourceTree = "<group>"; };
+		D9D17EB41F05750000051419 /* niconiconi@2x.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = "niconiconi@2x.gif"; sourceTree = "<group>"; };
+		D9D17EB51F05750000051419 /* nyancat@2x.webp */ = {isa = PBXFileReference; lastKnownFileType = file; path = "nyancat@2x.webp"; sourceTree = "<group>"; };
+		D9D17EB61F05750000051419 /* pia@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "pia@2x.png"; sourceTree = "<group>"; };
+		D9D17EB71F05750000051419 /* ResourceTwitter.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = ResourceTwitter.bundle; sourceTree = "<group>"; };
+		D9D17EB81F05750000051419 /* wall-e@2x.webp */ = {isa = PBXFileReference; lastKnownFileType = file; path = "wall-e@2x.webp"; sourceTree = "<group>"; };
+		D9D17EC81F05751700051419 /* UIControl+YYAdd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIControl+YYAdd.h"; sourceTree = "<group>"; };
+		D9D17EC91F05751700051419 /* UIControl+YYAdd.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIControl+YYAdd.m"; sourceTree = "<group>"; };
+		D9D17ECA1F05751700051419 /* UIGestureRecognizer+YYAdd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIGestureRecognizer+YYAdd.h"; sourceTree = "<group>"; };
+		D9D17ECB1F05751700051419 /* UIGestureRecognizer+YYAdd.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIGestureRecognizer+YYAdd.m"; sourceTree = "<group>"; };
+		D9D17ECC1F05751700051419 /* UIView+YYAdd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+YYAdd.h"; sourceTree = "<group>"; };
+		D9D17ECD1F05751700051419 /* UIView+YYAdd.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+YYAdd.m"; sourceTree = "<group>"; };
+		D9D17ED21F05754E00051419 /* YYBPGCoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YYBPGCoder.h; sourceTree = "<group>"; };
+		D9D17ED31F05754E00051419 /* YYBPGCoder.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YYBPGCoder.m; sourceTree = "<group>"; };
+		D9D17ED41F05754E00051419 /* YYImageBenchmark.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YYImageBenchmark.h; sourceTree = "<group>"; };
+		D9D17ED51F05754E00051419 /* YYImageBenchmark.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YYImageBenchmark.m; sourceTree = "<group>"; };
+		D9D17ED61F05754E00051419 /* YYWebImageExample.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YYWebImageExample.h; sourceTree = "<group>"; };
+		D9D17ED71F05754E00051419 /* YYWebImageExample.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YYWebImageExample.m; sourceTree = "<group>"; };
+		D9D17ED81F05756400051419 /* YYImageDisplayExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYImageDisplayExample.h; sourceTree = "<group>"; };
+		D9D17ED91F05756400051419 /* YYImageDisplayExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYImageDisplayExample.m; sourceTree = "<group>"; };
+		D9D17EDA1F05756400051419 /* YYImageExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYImageExample.h; sourceTree = "<group>"; };
+		D9D17EDB1F05756400051419 /* YYImageExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYImageExample.m; sourceTree = "<group>"; };
+		D9D17EDC1F05756400051419 /* YYImageExampleHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYImageExampleHelper.h; sourceTree = "<group>"; };
+		D9D17EDD1F05756400051419 /* YYImageExampleHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYImageExampleHelper.m; sourceTree = "<group>"; };
+		D9D17EDE1F05756400051419 /* YYImageProgressiveExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYImageProgressiveExample.h; sourceTree = "<group>"; };
+		D9D17EDF1F05756400051419 /* YYImageProgressiveExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYImageProgressiveExample.m; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
-		D946DDFF1BD13D75006B77F7 /* Frameworks */ = {
+		D91A60291F057230008CD5D3 /* Frameworks */ = {
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				D93B2D701BDBA586009B66B0 /* libz.tbd in Frameworks */,
-				D946DE3F1BD13E32006B77F7 /* WebP.framework in Frameworks */,
+				D97F409D1F05741000DFD481 /* libz.tbd in Frameworks */,
+				D97F409A1F05740B00DFD481 /* WebP.framework in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 /* End PBXFrameworksBuildPhase section */
 
 /* Begin PBXGroup section */
-		D93B2D681BDB97D8009B66B0 /* Not available */ = {
+		D91A60231F057230008CD5D3 = {
 			isa = PBXGroup;
 			children = (
-				D93B2D591BDB96DE009B66B0 /* YYWebImageExample.h */,
-				D93B2D5A1BDB96DE009B66B0 /* YYWebImageExample.m */,
-				D93B2D5B1BDB96DE009B66B0 /* YYImageBenchmark.h */,
-				D93B2D5C1BDB96DE009B66B0 /* YYImageBenchmark.m */,
-				D93B2D5F1BDB96DE009B66B0 /* YYBPGCoder.h */,
-				D93B2D601BDB96DE009B66B0 /* YYBPGCoder.m */,
+				D97F40891F0573DA00DFD481 /* YYImage */,
+				D91A602E1F057230008CD5D3 /* YYImageDemo */,
+				D9D17EAA1F0574E800051419 /* Resources */,
+				D97F40881F0573C400DFD481 /* Supporting Files */,
+				D91A602D1F057230008CD5D3 /* Products */,
+				D97F409B1F05741000DFD481 /* Frameworks */,
 			);
-			name = "Not available";
 			sourceTree = "<group>";
 		};
-		D93B2D731BDBBDFC009B66B0 /* Resources */ = {
+		D91A602D1F057230008CD5D3 /* Products */ = {
 			isa = PBXGroup;
 			children = (
-				D93B2D8C1BDBBE74009B66B0 /* ResourceTwitter.bundle */,
-				D93B2D8D1BDBBE74009B66B0 /* EmoticonWeibo.bundle */,
-				D93B2D741BDBBE66009B66B0 /* niconiconi@2x.gif */,
-				D93B2D751BDBBE66009B66B0 /* google@2x.webp */,
-				D93B2D761BDBBE66009B66B0 /* nyancat@2x.webp */,
-				D93B2D771BDBBE66009B66B0 /* pia@2x.png */,
-				D93B2D781BDBBE66009B66B0 /* cube@2x.png */,
-				D93B2D791BDBBE66009B66B0 /* wall-e@2x.webp */,
-				D93B2D7A1BDBBE66009B66B0 /* mew_baseline.jpg */,
-				D93B2D7B1BDBBE66009B66B0 /* mew_progressive.jpg */,
-				D93B2D7C1BDBBE66009B66B0 /* mew_baseline.png */,
-				D93B2D7D1BDBBE66009B66B0 /* mew_interlaced.png */,
-				D93B2D7E1BDBBE66009B66B0 /* mew_baseline.gif */,
-				D93B2D7F1BDBBE66009B66B0 /* mew_interlaced.gif */,
+				D91A602C1F057230008CD5D3 /* YYImageDemo.app */,
 			);
-			name = Resources;
+			name = Products;
 			sourceTree = "<group>";
 		};
-		D946DDF91BD13D75006B77F7 = {
+		D91A602E1F057230008CD5D3 /* YYImageDemo */ = {
 			isa = PBXGroup;
 			children = (
-				D93B2D6F1BDBA586009B66B0 /* libz.tbd */,
-				D946DE3E1BD13E32006B77F7 /* WebP.framework */,
-				D946DE2E1BD13E28006B77F7 /* YYImage */,
-				D946DE041BD13D75006B77F7 /* YYImageDemo */,
-				D946DE031BD13D75006B77F7 /* Products */,
+				D9D17ED81F05756400051419 /* YYImageDisplayExample.h */,
+				D9D17ED91F05756400051419 /* YYImageDisplayExample.m */,
+				D9D17EDA1F05756400051419 /* YYImageExample.h */,
+				D9D17EDB1F05756400051419 /* YYImageExample.m */,
+				D9D17EDC1F05756400051419 /* YYImageExampleHelper.h */,
+				D9D17EDD1F05756400051419 /* YYImageExampleHelper.m */,
+				D9D17EDE1F05756400051419 /* YYImageProgressiveExample.h */,
+				D9D17EDF1F05756400051419 /* YYImageProgressiveExample.m */,
 			);
+			path = YYImageDemo;
 			sourceTree = "<group>";
 		};
-		D946DE031BD13D75006B77F7 /* Products */ = {
+		D97F40881F0573C400DFD481 /* Supporting Files */ = {
 			isa = PBXGroup;
 			children = (
-				D946DE021BD13D75006B77F7 /* YYImageDemo.app */,
+				D9D17ED11F05753800051419 /* Not Available */,
+				D9D17EC71F05750B00051419 /* Utils */,
+				D91A602F1F057230008CD5D3 /* AppDelegate.h */,
+				D91A60301F057230008CD5D3 /* AppDelegate.m */,
+				D91A60321F057230008CD5D3 /* ViewController.h */,
+				D91A60331F057230008CD5D3 /* ViewController.m */,
+				D91A60351F057230008CD5D3 /* Main.storyboard */,
+				D91A60381F057230008CD5D3 /* Assets.xcassets */,
+				D91A603A1F057230008CD5D3 /* LaunchScreen.storyboard */,
+				D91A603D1F057230008CD5D3 /* Info.plist */,
+				D91A603E1F057230008CD5D3 /* main.m */,
 			);
-			name = Products;
+			name = "Supporting Files";
 			sourceTree = "<group>";
 		};
-		D946DE041BD13D75006B77F7 /* YYImageDemo */ = {
+		D97F40891F0573DA00DFD481 /* YYImage */ = {
 			isa = PBXGroup;
 			children = (
-				D93B2D531BDB96DE009B66B0 /* YYImageExample.h */,
-				D93B2D541BDB96DE009B66B0 /* YYImageExample.m */,
-				D93B2D551BDB96DE009B66B0 /* YYImageDisplayExample.h */,
-				D93B2D561BDB96DE009B66B0 /* YYImageDisplayExample.m */,
-				D93B2D571BDB96DE009B66B0 /* YYImageProgressiveExample.h */,
-				D93B2D581BDB96DE009B66B0 /* YYImageProgressiveExample.m */,
-				D93B2D5D1BDB96DE009B66B0 /* YYImageExampleHelper.h */,
-				D93B2D5E1BDB96DE009B66B0 /* YYImageExampleHelper.m */,
-				D93B2D731BDBBDFC009B66B0 /* Resources */,
-				D93B2D681BDB97D8009B66B0 /* Not available */,
-				D946DE051BD13D75006B77F7 /* Supporting Files */,
+				D97F408A1F0573DA00DFD481 /* YYAnimatedImageView.h */,
+				D97F408B1F0573DA00DFD481 /* YYAnimatedImageView.m */,
+				D97F408C1F0573DA00DFD481 /* YYFrameImage.h */,
+				D97F408D1F0573DA00DFD481 /* YYFrameImage.m */,
+				D97F408E1F0573DA00DFD481 /* YYImage.h */,
+				D97F408F1F0573DA00DFD481 /* YYImage.m */,
+				D97F40901F0573DA00DFD481 /* YYImageCoder.h */,
+				D97F40911F0573DA00DFD481 /* YYImageCoder.m */,
+				D97F40921F0573DA00DFD481 /* YYSpriteSheetImage.h */,
+				D97F40931F0573DA00DFD481 /* YYSpriteSheetImage.m */,
 			);
+			name = YYImage;
+			path = ../YYImage;
+			sourceTree = "<group>";
+		};
+		D97F409B1F05741000DFD481 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				D97F40991F05740B00DFD481 /* WebP.framework */,
+				D97F409C1F05741000DFD481 /* libz.tbd */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
+		D9D17EAA1F0574E800051419 /* Resources */ = {
+			isa = PBXGroup;
+			children = (
+				D9D17EAB1F05750000051419 /* cube@2x.png */,
+				D9D17EAC1F05750000051419 /* EmoticonWeibo.bundle */,
+				D9D17EAD1F05750000051419 /* google@2x.webp */,
+				D9D17EAE1F05750000051419 /* mew_baseline.gif */,
+				D9D17EAF1F05750000051419 /* mew_baseline.jpg */,
+				D9D17EB01F05750000051419 /* mew_baseline.png */,
+				D9D17EB11F05750000051419 /* mew_interlaced.gif */,
+				D9D17EB21F05750000051419 /* mew_interlaced.png */,
+				D9D17EB31F05750000051419 /* mew_progressive.jpg */,
+				D9D17EB41F05750000051419 /* niconiconi@2x.gif */,
+				D9D17EB51F05750000051419 /* nyancat@2x.webp */,
+				D9D17EB61F05750000051419 /* pia@2x.png */,
+				D9D17EB71F05750000051419 /* ResourceTwitter.bundle */,
+				D9D17EB81F05750000051419 /* wall-e@2x.webp */,
+			);
+			name = Resources;
 			path = YYImageDemo;
 			sourceTree = "<group>";
 		};
-		D946DE051BD13D75006B77F7 /* Supporting Files */ = {
+		D9D17EC71F05750B00051419 /* Utils */ = {
 			isa = PBXGroup;
 			children = (
-				D946DE081BD13D75006B77F7 /* AppDelegate.h */,
-				D946DE091BD13D75006B77F7 /* AppDelegate.m */,
-				D946DE0B1BD13D75006B77F7 /* ViewController.h */,
-				D946DE0C1BD13D75006B77F7 /* ViewController.m */,
-				D93B2D501BDB944B009B66B0 /* UIView+YYAdd.h */,
-				D93B2D511BDB944B009B66B0 /* UIView+YYAdd.m */,
-				D93B2D691BDB99BA009B66B0 /* UIControl+YYAdd.h */,
-				D93B2D6A1BDB99BA009B66B0 /* UIControl+YYAdd.m */,
-				D93B2D6B1BDB99BA009B66B0 /* UIGestureRecognizer+YYAdd.h */,
-				D93B2D6C1BDB99BA009B66B0 /* UIGestureRecognizer+YYAdd.m */,
-				D946DE0E1BD13D75006B77F7 /* Main.storyboard */,
-				D946DE111BD13D75006B77F7 /* Assets.xcassets */,
-				D946DE131BD13D75006B77F7 /* LaunchScreen.storyboard */,
-				D946DE161BD13D75006B77F7 /* Info.plist */,
-				D946DE061BD13D75006B77F7 /* main.m */,
+				D9D17EC81F05751700051419 /* UIControl+YYAdd.h */,
+				D9D17EC91F05751700051419 /* UIControl+YYAdd.m */,
+				D9D17ECA1F05751700051419 /* UIGestureRecognizer+YYAdd.h */,
+				D9D17ECB1F05751700051419 /* UIGestureRecognizer+YYAdd.m */,
+				D9D17ECC1F05751700051419 /* UIView+YYAdd.h */,
+				D9D17ECD1F05751700051419 /* UIView+YYAdd.m */,
 			);
-			name = "Supporting Files";
+			name = Utils;
+			path = YYImageDemo;
 			sourceTree = "<group>";
 		};
-		D946DE2E1BD13E28006B77F7 /* YYImage */ = {
+		D9D17ED11F05753800051419 /* Not Available */ = {
 			isa = PBXGroup;
 			children = (
-				D946DE331BD13E28006B77F7 /* YYImage.h */,
-				D946DE341BD13E28006B77F7 /* YYImage.m */,
-				D946DE311BD13E28006B77F7 /* YYFrameImage.h */,
-				D946DE321BD13E28006B77F7 /* YYFrameImage.m */,
-				D946DE371BD13E28006B77F7 /* YYSpriteSheetImage.h */,
-				D946DE381BD13E28006B77F7 /* YYSpriteSheetImage.m */,
-				D946DE351BD13E28006B77F7 /* YYImageCoder.h */,
-				D946DE361BD13E28006B77F7 /* YYImageCoder.m */,
-				D946DE2F1BD13E28006B77F7 /* YYAnimatedImageView.h */,
-				D946DE301BD13E28006B77F7 /* YYAnimatedImageView.m */,
+				D9D17ED21F05754E00051419 /* YYBPGCoder.h */,
+				D9D17ED31F05754E00051419 /* YYBPGCoder.m */,
+				D9D17ED41F05754E00051419 /* YYImageBenchmark.h */,
+				D9D17ED51F05754E00051419 /* YYImageBenchmark.m */,
+				D9D17ED61F05754E00051419 /* YYWebImageExample.h */,
+				D9D17ED71F05754E00051419 /* YYWebImageExample.m */,
 			);
-			name = YYImage;
-			path = ../YYImage;
+			name = "Not Available";
+			path = YYImageDemo;
 			sourceTree = "<group>";
 		};
 /* End PBXGroup section */
 
 /* Begin PBXNativeTarget section */
-		D946DE011BD13D75006B77F7 /* YYImageDemo */ = {
+		D91A602B1F057230008CD5D3 /* YYImageDemo */ = {
 			isa = PBXNativeTarget;
-			buildConfigurationList = D946DE191BD13D75006B77F7 /* Build configuration list for PBXNativeTarget "YYImageDemo" */;
+			buildConfigurationList = D91A60421F057230008CD5D3 /* Build configuration list for PBXNativeTarget "YYImageDemo" */;
 			buildPhases = (
-				D946DDFE1BD13D75006B77F7 /* Sources */,
-				D946DDFF1BD13D75006B77F7 /* Frameworks */,
-				D946DE001BD13D75006B77F7 /* Resources */,
+				D91A60281F057230008CD5D3 /* Sources */,
+				D91A60291F057230008CD5D3 /* Frameworks */,
+				D91A602A1F057230008CD5D3 /* Resources */,
 			);
 			buildRules = (
 			);
@@ -243,136 +262,149 @@
 			);
 			name = YYImageDemo;
 			productName = YYImageDemo;
-			productReference = D946DE021BD13D75006B77F7 /* YYImageDemo.app */;
+			productReference = D91A602C1F057230008CD5D3 /* YYImageDemo.app */;
 			productType = "com.apple.product-type.application";
 		};
 /* End PBXNativeTarget section */
 
 /* Begin PBXProject section */
-		D946DDFA1BD13D75006B77F7 /* Project object */ = {
+		D91A60241F057230008CD5D3 /* Project object */ = {
 			isa = PBXProject;
 			attributes = {
-				LastUpgradeCheck = 0700;
+				LastUpgradeCheck = 0900;
 				ORGANIZATIONNAME = ibireme;
 				TargetAttributes = {
-					D946DE011BD13D75006B77F7 = {
-						CreatedOnToolsVersion = 7.0.1;
+					D91A602B1F057230008CD5D3 = {
+						CreatedOnToolsVersion = 9.0;
 					};
 				};
 			};
-			buildConfigurationList = D946DDFD1BD13D75006B77F7 /* Build configuration list for PBXProject "YYImageDemo" */;
-			compatibilityVersion = "Xcode 3.2";
-			developmentRegion = English;
+			buildConfigurationList = D91A60271F057230008CD5D3 /* Build configuration list for PBXProject "YYImageDemo" */;
+			compatibilityVersion = "Xcode 8.0";
+			developmentRegion = en;
 			hasScannedForEncodings = 0;
 			knownRegions = (
 				en,
 				Base,
 			);
-			mainGroup = D946DDF91BD13D75006B77F7;
-			productRefGroup = D946DE031BD13D75006B77F7 /* Products */;
+			mainGroup = D91A60231F057230008CD5D3;
+			productRefGroup = D91A602D1F057230008CD5D3 /* Products */;
 			projectDirPath = "";
 			projectRoot = "";
 			targets = (
-				D946DE011BD13D75006B77F7 /* YYImageDemo */,
+				D91A602B1F057230008CD5D3 /* YYImageDemo */,
 			);
 		};
 /* End PBXProject section */
 
 /* Begin PBXResourcesBuildPhase section */
-		D946DE001BD13D75006B77F7 /* Resources */ = {
+		D91A602A1F057230008CD5D3 /* Resources */ = {
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				D93B2D801BDBBE66009B66B0 /* niconiconi@2x.gif in Resources */,
-				D93B2D831BDBBE66009B66B0 /* pia@2x.png in Resources */,
-				D93B2D881BDBBE66009B66B0 /* mew_baseline.png in Resources */,
-				D946DE151BD13D75006B77F7 /* LaunchScreen.storyboard in Resources */,
-				D93B2D871BDBBE66009B66B0 /* mew_progressive.jpg in Resources */,
-				D946DE121BD13D75006B77F7 /* Assets.xcassets in Resources */,
-				D93B2D8F1BDBBE74009B66B0 /* EmoticonWeibo.bundle in Resources */,
-				D93B2D891BDBBE66009B66B0 /* mew_interlaced.png in Resources */,
-				D93B2D811BDBBE66009B66B0 /* google@2x.webp in Resources */,
-				D946DE101BD13D75006B77F7 /* Main.storyboard in Resources */,
-				D93B2D8E1BDBBE74009B66B0 /* ResourceTwitter.bundle in Resources */,
-				D93B2D821BDBBE66009B66B0 /* nyancat@2x.webp in Resources */,
-				D93B2D851BDBBE66009B66B0 /* wall-e@2x.webp in Resources */,
-				D93B2D8A1BDBBE66009B66B0 /* mew_baseline.gif in Resources */,
-				D93B2D8B1BDBBE66009B66B0 /* mew_interlaced.gif in Resources */,
-				D93B2D861BDBBE66009B66B0 /* mew_baseline.jpg in Resources */,
-				D93B2D841BDBBE66009B66B0 /* cube@2x.png in Resources */,
+				D9D17EC41F05750000051419 /* pia@2x.png in Resources */,
+				D91A603C1F057230008CD5D3 /* LaunchScreen.storyboard in Resources */,
+				D91A60391F057230008CD5D3 /* Assets.xcassets in Resources */,
+				D9D17EBD1F05750000051419 /* mew_baseline.jpg in Resources */,
+				D9D17EC61F05750000051419 /* wall-e@2x.webp in Resources */,
+				D91A60371F057230008CD5D3 /* Main.storyboard in Resources */,
+				D9D17EB91F05750000051419 /* cube@2x.png in Resources */,
+				D9D17EBE1F05750000051419 /* mew_baseline.png in Resources */,
+				D9D17EC01F05750000051419 /* mew_interlaced.png in Resources */,
+				D9D17EC11F05750000051419 /* mew_progressive.jpg in Resources */,
+				D9D17EC51F05750000051419 /* ResourceTwitter.bundle in Resources */,
+				D9D17EBC1F05750000051419 /* mew_baseline.gif in Resources */,
+				D9D17EC31F05750000051419 /* nyancat@2x.webp in Resources */,
+				D9D17EBF1F05750000051419 /* mew_interlaced.gif in Resources */,
+				D9D17EC21F05750000051419 /* niconiconi@2x.gif in Resources */,
+				D9D17EBA1F05750000051419 /* EmoticonWeibo.bundle in Resources */,
+				D9D17EBB1F05750000051419 /* google@2x.webp in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 /* End PBXResourcesBuildPhase section */
 
 /* Begin PBXSourcesBuildPhase section */
-		D946DDFE1BD13D75006B77F7 /* Sources */ = {
+		D91A60281F057230008CD5D3 /* Sources */ = {
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				D93B2D631BDB96DE009B66B0 /* YYImageProgressiveExample.m in Sources */,
-				D946DE0D1BD13D75006B77F7 /* ViewController.m in Sources */,
-				D93B2D621BDB96DE009B66B0 /* YYImageDisplayExample.m in Sources */,
-				D93B2D6D1BDB99BA009B66B0 /* UIControl+YYAdd.m in Sources */,
-				D946DE3A1BD13E28006B77F7 /* YYFrameImage.m in Sources */,
-				D946DE0A1BD13D75006B77F7 /* AppDelegate.m in Sources */,
-				D946DE071BD13D75006B77F7 /* main.m in Sources */,
-				D946DE3D1BD13E28006B77F7 /* YYSpriteSheetImage.m in Sources */,
-				D93B2D6E1BDB99BA009B66B0 /* UIGestureRecognizer+YYAdd.m in Sources */,
-				D93B2D521BDB944B009B66B0 /* UIView+YYAdd.m in Sources */,
-				D946DE391BD13E28006B77F7 /* YYAnimatedImageView.m in Sources */,
-				D946DE3C1BD13E28006B77F7 /* YYImageCoder.m in Sources */,
-				D93B2D611BDB96DE009B66B0 /* YYImageExample.m in Sources */,
-				D93B2D661BDB96DE009B66B0 /* YYImageExampleHelper.m in Sources */,
-				D946DE3B1BD13E28006B77F7 /* YYImage.m in Sources */,
+				D91A60341F057230008CD5D3 /* ViewController.m in Sources */,
+				D97F40951F0573DA00DFD481 /* YYFrameImage.m in Sources */,
+				D9D17ED01F05751700051419 /* UIView+YYAdd.m in Sources */,
+				D91A603F1F057230008CD5D3 /* main.m in Sources */,
+				D9D17EE21F05756400051419 /* YYImageExampleHelper.m in Sources */,
+				D9D17ECF1F05751700051419 /* UIGestureRecognizer+YYAdd.m in Sources */,
+				D9D17EE31F05756400051419 /* YYImageProgressiveExample.m in Sources */,
+				D9D17ECE1F05751700051419 /* UIControl+YYAdd.m in Sources */,
+				D9D17EE11F05756400051419 /* YYImageExample.m in Sources */,
+				D91A60311F057230008CD5D3 /* AppDelegate.m in Sources */,
+				D97F40981F0573DA00DFD481 /* YYSpriteSheetImage.m in Sources */,
+				D97F40941F0573DA00DFD481 /* YYAnimatedImageView.m in Sources */,
+				D9D17EE01F05756400051419 /* YYImageDisplayExample.m in Sources */,
+				D97F40971F0573DA00DFD481 /* YYImageCoder.m in Sources */,
+				D97F40961F0573DA00DFD481 /* YYImage.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 /* End PBXSourcesBuildPhase section */
 
 /* Begin PBXVariantGroup section */
-		D946DE0E1BD13D75006B77F7 /* Main.storyboard */ = {
+		D91A60351F057230008CD5D3 /* Main.storyboard */ = {
 			isa = PBXVariantGroup;
 			children = (
-				D946DE0F1BD13D75006B77F7 /* Base */,
+				D91A60361F057230008CD5D3 /* Base */,
 			);
 			name = Main.storyboard;
+			path = YYImageDemo;
 			sourceTree = "<group>";
 		};
-		D946DE131BD13D75006B77F7 /* LaunchScreen.storyboard */ = {
+		D91A603A1F057230008CD5D3 /* LaunchScreen.storyboard */ = {
 			isa = PBXVariantGroup;
 			children = (
-				D946DE141BD13D75006B77F7 /* Base */,
+				D91A603B1F057230008CD5D3 /* Base */,
 			);
 			name = LaunchScreen.storyboard;
+			path = YYImageDemo;
 			sourceTree = "<group>";
 		};
 /* End PBXVariantGroup section */
 
 /* Begin XCBuildConfiguration section */
-		D946DE171BD13D75006B77F7 /* Debug */ = {
+		D91A60401F057230008CD5D3 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
 				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
 				CLANG_WARN_CONSTANT_CONVERSION = YES;
 				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
 				CLANG_WARN_EMPTY_BODY = YES;
 				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
 				CLANG_WARN_INT_CONVERSION = YES;
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
 				CLANG_WARN_UNREACHABLE_CODE = YES;
 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				COMPRESS_PNG_FILES = NO;
 				COPY_PHASE_STRIP = NO;
 				DEBUG_INFORMATION_FORMAT = dwarf;
 				ENABLE_STRICT_OBJC_MSGSEND = YES;
 				ENABLE_TESTABILITY = YES;
-				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_C_LANGUAGE_STANDARD = gnu11;
 				GCC_DYNAMIC_NO_PIC = NO;
 				GCC_NO_COMMON_BLOCKS = YES;
 				GCC_OPTIMIZATION_LEVEL = 0;
@@ -386,36 +418,48 @@
 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
 				MTL_ENABLE_DEBUG_INFO = YES;
 				ONLY_ACTIVE_ARCH = YES;
 				SDKROOT = iphoneos;
+				STRIP_PNG_TEXT = NO;
 			};
 			name = Debug;
 		};
-		D946DE181BD13D75006B77F7 /* Release */ = {
+		D91A60411F057230008CD5D3 /* Release */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
 				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
 				CLANG_WARN_CONSTANT_CONVERSION = YES;
 				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
 				CLANG_WARN_EMPTY_BODY = YES;
 				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
 				CLANG_WARN_INT_CONVERSION = YES;
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
 				CLANG_WARN_UNREACHABLE_CODE = YES;
 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				COMPRESS_PNG_FILES = NO;
 				COPY_PHASE_STRIP = NO;
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
 				ENABLE_NS_ASSERTIONS = NO;
 				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_C_LANGUAGE_STANDARD = gnu11;
 				GCC_NO_COMMON_BLOCKS = YES;
 				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
 				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
@@ -423,67 +467,62 @@
 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
 				MTL_ENABLE_DEBUG_INFO = NO;
 				SDKROOT = iphoneos;
+				STRIP_PNG_TEXT = NO;
 				VALIDATE_PRODUCT = YES;
 			};
 			name = Release;
 		};
-		D946DE1A1BD13D75006B77F7 /* Debug */ = {
+		D91A60431F057230008CD5D3 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
-				COMPRESS_PNG_FILES = NO;
 				FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../Vendor\"";
 				INFOPLIST_FILE = YYImageDemo/Info.plist;
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
-				LIBRARY_SEARCH_PATHS = "";
 				PRODUCT_BUNDLE_IDENTIFIER = com.ibireme.YYImageDemo;
 				PRODUCT_NAME = "$(TARGET_NAME)";
-				STRIP_PNG_TEXT = NO;
+				TARGETED_DEVICE_FAMILY = "1,2";
 			};
 			name = Debug;
 		};
-		D946DE1B1BD13D75006B77F7 /* Release */ = {
+		D91A60441F057230008CD5D3 /* Release */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
-				COMPRESS_PNG_FILES = NO;
 				FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../Vendor\"";
 				INFOPLIST_FILE = YYImageDemo/Info.plist;
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
-				LIBRARY_SEARCH_PATHS = "";
 				PRODUCT_BUNDLE_IDENTIFIER = com.ibireme.YYImageDemo;
 				PRODUCT_NAME = "$(TARGET_NAME)";
-				STRIP_PNG_TEXT = NO;
+				TARGETED_DEVICE_FAMILY = "1,2";
 			};
 			name = Release;
 		};
 /* End XCBuildConfiguration section */
 
 /* Begin XCConfigurationList section */
-		D946DDFD1BD13D75006B77F7 /* Build configuration list for PBXProject "YYImageDemo" */ = {
+		D91A60271F057230008CD5D3 /* Build configuration list for PBXProject "YYImageDemo" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (
-				D946DE171BD13D75006B77F7 /* Debug */,
-				D946DE181BD13D75006B77F7 /* Release */,
+				D91A60401F057230008CD5D3 /* Debug */,
+				D91A60411F057230008CD5D3 /* Release */,
 			);
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 		};
-		D946DE191BD13D75006B77F7 /* Build configuration list for PBXNativeTarget "YYImageDemo" */ = {
+		D91A60421F057230008CD5D3 /* Build configuration list for PBXNativeTarget "YYImageDemo" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (
-				D946DE1A1BD13D75006B77F7 /* Debug */,
-				D946DE1B1BD13D75006B77F7 /* Release */,
+				D91A60431F057230008CD5D3 /* Debug */,
+				D91A60441F057230008CD5D3 /* Release */,
 			);
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 		};
 /* End XCConfigurationList section */
 	};
-	rootObject = D946DDFA1BD13D75006B77F7 /* Project object */;
+	rootObject = D91A60241F057230008CD5D3 /* Project object */;
 }

+ 55 - 0
Demo/YYImageDemo/Assets.xcassets/AppIcon.appiconset/Contents.json

@@ -1,5 +1,15 @@
 {
   "images" : [
+    {
+      "idiom" : "iphone",
+      "size" : "20x20",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "iphone",
+      "size" : "20x20",
+      "scale" : "3x"
+    },
     {
       "idiom" : "iphone",
       "size" : "29x29",
@@ -29,6 +39,51 @@
       "idiom" : "iphone",
       "size" : "60x60",
       "scale" : "3x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "20x20",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "20x20",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "29x29",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "29x29",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "40x40",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "40x40",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "76x76",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "76x76",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "ipad",
+      "size" : "83.5x83.5",
+      "scale" : "2x"
     }
   ],
   "info" : {

+ 11 - 6
Demo/YYImageDemo/Base.lproj/LaunchScreen.storyboard

@@ -1,7 +1,13 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="8150" systemVersion="15A204g" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" initialViewController="01J-lp-oVM">
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.19" systemVersion="16F73" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
+    <device id="retina4_7" orientation="portrait">
+        <adaptation id="fullscreen"/>
+    </device>
     <dependencies>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="8122"/>
+        <deployment identifier="iOS"/>
+        <development version="8000" identifier="xcode"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.16"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <scenes>
         <!--View Controller-->
@@ -13,10 +19,9 @@
                         <viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/>
                     </layoutGuides>
                     <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
-                        <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
+                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <animations/>
-                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                     </view>
                 </viewController>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>

+ 10 - 7
Demo/YYImageDemo/Base.lproj/Main.storyboard

@@ -1,8 +1,13 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="8191" systemVersion="15A284" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.19" systemVersion="16F73" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
+    <device id="retina4_7" orientation="portrait">
+        <adaptation id="fullscreen"/>
+    </device>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="8154"/>
+        <development version="8000" identifier="xcode"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.16"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <scenes>
         <!--View Controller-->
@@ -14,15 +19,13 @@
                         <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
                     </layoutGuides>
                     <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
-                        <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
+                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <animations/>
-                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                     </view>
                 </viewController>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
             </objects>
-            <point key="canvasLocation" x="-160" y="879"/>
         </scene>
     </scenes>
 </document>

+ 8 - 3
Demo/YYImageDemo/Info.plist

@@ -3,7 +3,7 @@
 <plist version="1.0">
 <dict>
 	<key>CFBundleDevelopmentRegion</key>
-	<string>en</string>
+	<string>$(DEVELOPMENT_LANGUAGE)</string>
 	<key>CFBundleExecutable</key>
 	<string>$(EXECUTABLE_NAME)</string>
 	<key>CFBundleIdentifier</key>
@@ -16,8 +16,6 @@
 	<string>APPL</string>
 	<key>CFBundleShortVersionString</key>
 	<string>1.0</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
 	<key>CFBundleVersion</key>
 	<string>1</string>
 	<key>LSRequiresIPhoneOS</key>
@@ -36,5 +34,12 @@
 		<string>UIInterfaceOrientationLandscapeLeft</string>
 		<string>UIInterfaceOrientationLandscapeRight</string>
 	</array>
+	<key>UISupportedInterfaceOrientations~ipad</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationPortraitUpsideDown</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
 </dict>
 </plist>

+ 1 - 3
Framework/Info.plist

@@ -3,7 +3,7 @@
 <plist version="1.0">
 <dict>
 	<key>CFBundleDevelopmentRegion</key>
-	<string>en</string>
+	<string>$(DEVELOPMENT_LANGUAGE)</string>
 	<key>CFBundleExecutable</key>
 	<string>$(EXECUTABLE_NAME)</string>
 	<key>CFBundleIdentifier</key>
@@ -16,8 +16,6 @@
 	<string>FMWK</string>
 	<key>CFBundleShortVersionString</key>
 	<string>1.0.4</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
 	<key>CFBundleVersion</key>
 	<string>$(CURRENT_PROJECT_VERSION)</string>
 	<key>NSPrincipalClass</key>

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 210
Framework/YYImage-Static.xcodeproj/project.pbxproj


+ 0 - 7
Framework/YYImage-Static.xcodeproj/project.xcworkspace/contents.xcworkspacedata

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Workspace
-   version = "1.0">
-   <FileRef
-      location = "self:/Users/ibireme/Dev/Project/YYKitNew/Projects/YYImage/Framework/Fake/YYImage/YYImage-Static.xcodeproj">
-   </FileRef>
-</Workspace>

+ 149 - 133
Framework/YYImage.xcodeproj/project.pbxproj

@@ -3,149 +3,149 @@
 	archiveVersion = 1;
 	classes = {
 	};
-	objectVersion = 46;
+	objectVersion = 48;
 	objects = {
 
 /* Begin PBXBuildFile section */
-		D9D41AE91BD1033700CD8EBF /* YYAnimatedImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = D9D41ACF1BD1033700CD8EBF /* YYAnimatedImageView.h */; settings = {ATTRIBUTES = (Public, ); }; };
-		D9D41AEA1BD1033700CD8EBF /* YYAnimatedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = D9D41AD01BD1033700CD8EBF /* YYAnimatedImageView.m */; };
-		D9D41AEB1BD1033700CD8EBF /* YYFrameImage.h in Headers */ = {isa = PBXBuildFile; fileRef = D9D41AD11BD1033700CD8EBF /* YYFrameImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
-		D9D41AEC1BD1033700CD8EBF /* YYFrameImage.m in Sources */ = {isa = PBXBuildFile; fileRef = D9D41AD21BD1033700CD8EBF /* YYFrameImage.m */; };
-		D9D41AED1BD1033700CD8EBF /* YYImage.h in Headers */ = {isa = PBXBuildFile; fileRef = D9D41AD31BD1033700CD8EBF /* YYImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
-		D9D41AEE1BD1033700CD8EBF /* YYImage.m in Sources */ = {isa = PBXBuildFile; fileRef = D9D41AD41BD1033700CD8EBF /* YYImage.m */; };
-		D9D41AF11BD1033700CD8EBF /* YYImageCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = D9D41AD71BD1033700CD8EBF /* YYImageCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
-		D9D41AF21BD1033700CD8EBF /* YYImageCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = D9D41AD81BD1033700CD8EBF /* YYImageCoder.m */; };
-		D9D41AF31BD1033700CD8EBF /* YYSpriteSheetImage.h in Headers */ = {isa = PBXBuildFile; fileRef = D9D41AD91BD1033700CD8EBF /* YYSpriteSheetImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
-		D9D41AF41BD1033700CD8EBF /* YYSpriteSheetImage.m in Sources */ = {isa = PBXBuildFile; fileRef = D9D41ADA1BD1033700CD8EBF /* YYSpriteSheetImage.m */; };
-		D9D41AFB1BD10CE700CD8EBF /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D9D41AFA1BD10CE700CD8EBF /* UIKit.framework */; };
-		D9D41AFD1BD10CEC00CD8EBF /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D9D41AFC1BD10CEC00CD8EBF /* CoreFoundation.framework */; };
-		D9D41AFF1BD10CF200CD8EBF /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D9D41AFE1BD10CF200CD8EBF /* QuartzCore.framework */; };
-		D9D41B011BD10CF600CD8EBF /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D9D41B001BD10CF600CD8EBF /* Accelerate.framework */; };
-		D9D41B031BD10CFA00CD8EBF /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D9D41B021BD10CFA00CD8EBF /* libz.tbd */; };
-		D9D41B051BD10D0700CD8EBF /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D9D41B041BD10D0700CD8EBF /* ImageIO.framework */; };
-		D9D41B071BD10D0D00CD8EBF /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D9D41B061BD10D0D00CD8EBF /* MobileCoreServices.framework */; };
-		D9D41B091BD10D1E00CD8EBF /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D9D41B081BD10D1E00CD8EBF /* AssetsLibrary.framework */; };
+		D9A995351F05644B0062698B /* YYAnimatedImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = D9A9952B1F05644A0062698B /* YYAnimatedImageView.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		D9A995361F05644B0062698B /* YYAnimatedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = D9A9952C1F05644A0062698B /* YYAnimatedImageView.m */; };
+		D9A995371F05644B0062698B /* YYFrameImage.h in Headers */ = {isa = PBXBuildFile; fileRef = D9A9952D1F05644A0062698B /* YYFrameImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		D9A995381F05644B0062698B /* YYFrameImage.m in Sources */ = {isa = PBXBuildFile; fileRef = D9A9952E1F05644A0062698B /* YYFrameImage.m */; };
+		D9A995391F05644B0062698B /* YYImage.h in Headers */ = {isa = PBXBuildFile; fileRef = D9A9952F1F05644A0062698B /* YYImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		D9A9953A1F05644B0062698B /* YYImage.m in Sources */ = {isa = PBXBuildFile; fileRef = D9A995301F05644A0062698B /* YYImage.m */; };
+		D9A9953B1F05644B0062698B /* YYImageCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = D9A995311F05644A0062698B /* YYImageCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		D9A9953C1F05644B0062698B /* YYImageCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = D9A995321F05644A0062698B /* YYImageCoder.m */; };
+		D9A9953D1F05644B0062698B /* YYSpriteSheetImage.h in Headers */ = {isa = PBXBuildFile; fileRef = D9A995331F05644A0062698B /* YYSpriteSheetImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		D9A9953E1F05644B0062698B /* YYSpriteSheetImage.m in Sources */ = {isa = PBXBuildFile; fileRef = D9A995341F05644A0062698B /* YYSpriteSheetImage.m */; };
+		D9A995481F0564D40062698B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D9A995471F0564C40062698B /* UIKit.framework */; };
+		D9A995491F0564D40062698B /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D9A995461F0564BF0062698B /* CoreFoundation.framework */; };
+		D9A9954A1F0564D40062698B /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D9A995451F0564BB0062698B /* QuartzCore.framework */; };
+		D9A9954B1F0564D40062698B /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D9A995441F0564B70062698B /* Accelerate.framework */; };
+		D9A9954C1F0564D40062698B /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D9A995431F0564B20062698B /* ImageIO.framework */; };
+		D9A9954D1F0564D40062698B /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D9A995421F0564AF0062698B /* MobileCoreServices.framework */; };
+		D9A9954E1F0564D40062698B /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D9A995411F0564A70062698B /* AssetsLibrary.framework */; };
+		D9A9954F1F0564D40062698B /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D9A995401F05649B0062698B /* libz.tbd */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXFileReference section */
-		D9D41AB61BD102F300CD8EBF /* YYImage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = YYImage.framework; sourceTree = BUILT_PRODUCTS_DIR; };
-		D9D41AC11BD1030300CD8EBF /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
-		D9D41ACF1BD1033700CD8EBF /* YYAnimatedImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYAnimatedImageView.h; sourceTree = "<group>"; };
-		D9D41AD01BD1033700CD8EBF /* YYAnimatedImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYAnimatedImageView.m; sourceTree = "<group>"; };
-		D9D41AD11BD1033700CD8EBF /* YYFrameImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYFrameImage.h; sourceTree = "<group>"; };
-		D9D41AD21BD1033700CD8EBF /* YYFrameImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYFrameImage.m; sourceTree = "<group>"; };
-		D9D41AD31BD1033700CD8EBF /* YYImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYImage.h; sourceTree = "<group>"; };
-		D9D41AD41BD1033700CD8EBF /* YYImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYImage.m; sourceTree = "<group>"; };
-		D9D41AD71BD1033700CD8EBF /* YYImageCoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYImageCoder.h; sourceTree = "<group>"; };
-		D9D41AD81BD1033700CD8EBF /* YYImageCoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYImageCoder.m; sourceTree = "<group>"; };
-		D9D41AD91BD1033700CD8EBF /* YYSpriteSheetImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYSpriteSheetImage.h; sourceTree = "<group>"; };
-		D9D41ADA1BD1033700CD8EBF /* YYSpriteSheetImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYSpriteSheetImage.m; sourceTree = "<group>"; };
-		D9D41AFA1BD10CE700CD8EBF /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
-		D9D41AFC1BD10CEC00CD8EBF /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
-		D9D41AFE1BD10CF200CD8EBF /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
-		D9D41B001BD10CF600CD8EBF /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; };
-		D9D41B021BD10CFA00CD8EBF /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
-		D9D41B041BD10D0700CD8EBF /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = System/Library/Frameworks/ImageIO.framework; sourceTree = SDKROOT; };
-		D9D41B061BD10D0D00CD8EBF /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; };
-		D9D41B081BD10D1E00CD8EBF /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; };
+		D9A9951F1F0564180062698B /* YYImage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = YYImage.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+		D9A995231F0564180062698B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		D9A9952B1F05644A0062698B /* YYAnimatedImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYAnimatedImageView.h; sourceTree = "<group>"; };
+		D9A9952C1F05644A0062698B /* YYAnimatedImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYAnimatedImageView.m; sourceTree = "<group>"; };
+		D9A9952D1F05644A0062698B /* YYFrameImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYFrameImage.h; sourceTree = "<group>"; };
+		D9A9952E1F05644A0062698B /* YYFrameImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYFrameImage.m; sourceTree = "<group>"; };
+		D9A9952F1F05644A0062698B /* YYImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYImage.h; sourceTree = "<group>"; };
+		D9A995301F05644A0062698B /* YYImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYImage.m; sourceTree = "<group>"; };
+		D9A995311F05644A0062698B /* YYImageCoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYImageCoder.h; sourceTree = "<group>"; };
+		D9A995321F05644A0062698B /* YYImageCoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYImageCoder.m; sourceTree = "<group>"; };
+		D9A995331F05644A0062698B /* YYSpriteSheetImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYSpriteSheetImage.h; sourceTree = "<group>"; };
+		D9A995341F05644A0062698B /* YYSpriteSheetImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYSpriteSheetImage.m; sourceTree = "<group>"; };
+		D9A995401F05649B0062698B /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
+		D9A995411F0564A70062698B /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; };
+		D9A995421F0564AF0062698B /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; };
+		D9A995431F0564B20062698B /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = System/Library/Frameworks/ImageIO.framework; sourceTree = SDKROOT; };
+		D9A995441F0564B70062698B /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; };
+		D9A995451F0564BB0062698B /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
+		D9A995461F0564BF0062698B /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
+		D9A995471F0564C40062698B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
-		D9D41AB21BD102F300CD8EBF /* Frameworks */ = {
+		D9A9951B1F0564180062698B /* Frameworks */ = {
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				D9D41B031BD10CFA00CD8EBF /* libz.tbd in Frameworks */,
-				D9D41B091BD10D1E00CD8EBF /* AssetsLibrary.framework in Frameworks */,
-				D9D41B071BD10D0D00CD8EBF /* MobileCoreServices.framework in Frameworks */,
-				D9D41B051BD10D0700CD8EBF /* ImageIO.framework in Frameworks */,
-				D9D41B011BD10CF600CD8EBF /* Accelerate.framework in Frameworks */,
-				D9D41AFF1BD10CF200CD8EBF /* QuartzCore.framework in Frameworks */,
-				D9D41AFD1BD10CEC00CD8EBF /* CoreFoundation.framework in Frameworks */,
-				D9D41AFB1BD10CE700CD8EBF /* UIKit.framework in Frameworks */,
+				D9A995481F0564D40062698B /* UIKit.framework in Frameworks */,
+				D9A995491F0564D40062698B /* CoreFoundation.framework in Frameworks */,
+				D9A9954A1F0564D40062698B /* QuartzCore.framework in Frameworks */,
+				D9A9954B1F0564D40062698B /* Accelerate.framework in Frameworks */,
+				D9A9954C1F0564D40062698B /* ImageIO.framework in Frameworks */,
+				D9A9954D1F0564D40062698B /* MobileCoreServices.framework in Frameworks */,
+				D9A9954E1F0564D40062698B /* AssetsLibrary.framework in Frameworks */,
+				D9A9954F1F0564D40062698B /* libz.tbd in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 /* End PBXFrameworksBuildPhase section */
 
 /* Begin PBXGroup section */
-		D9D41AAC1BD102F300CD8EBF = {
+		D9A995151F0564180062698B = {
 			isa = PBXGroup;
 			children = (
-				D9D41AC31BD1033700CD8EBF /* YYImage */,
-				D9D41AF91BD1033C00CD8EBF /* Supporting Files */,
-				D9D41AB71BD102F300CD8EBF /* Products */,
+				D9A9952A1F05644A0062698B /* YYImage */,
+				D9A995201F0564180062698B /* Products */,
+				D9A9953F1F05649B0062698B /* Frameworks */,
 			);
 			sourceTree = "<group>";
 		};
-		D9D41AB71BD102F300CD8EBF /* Products */ = {
+		D9A995201F0564180062698B /* Products */ = {
 			isa = PBXGroup;
 			children = (
-				D9D41AB61BD102F300CD8EBF /* YYImage.framework */,
+				D9A9951F1F0564180062698B /* YYImage.framework */,
 			);
 			name = Products;
 			sourceTree = "<group>";
 		};
-		D9D41AC31BD1033700CD8EBF /* YYImage */ = {
+		D9A9952A1F05644A0062698B /* YYImage */ = {
 			isa = PBXGroup;
 			children = (
-				D9D41AD31BD1033700CD8EBF /* YYImage.h */,
-				D9D41AD41BD1033700CD8EBF /* YYImage.m */,
-				D9D41AD11BD1033700CD8EBF /* YYFrameImage.h */,
-				D9D41AD21BD1033700CD8EBF /* YYFrameImage.m */,
-				D9D41AD91BD1033700CD8EBF /* YYSpriteSheetImage.h */,
-				D9D41ADA1BD1033700CD8EBF /* YYSpriteSheetImage.m */,
-				D9D41AD71BD1033700CD8EBF /* YYImageCoder.h */,
-				D9D41AD81BD1033700CD8EBF /* YYImageCoder.m */,
-				D9D41ACF1BD1033700CD8EBF /* YYAnimatedImageView.h */,
-				D9D41AD01BD1033700CD8EBF /* YYAnimatedImageView.m */,
+				D9A9952F1F05644A0062698B /* YYImage.h */,
+				D9A995301F05644A0062698B /* YYImage.m */,
+				D9A995331F05644A0062698B /* YYSpriteSheetImage.h */,
+				D9A995341F05644A0062698B /* YYSpriteSheetImage.m */,
+				D9A9952D1F05644A0062698B /* YYFrameImage.h */,
+				D9A9952E1F05644A0062698B /* YYFrameImage.m */,
+				D9A9952B1F05644A0062698B /* YYAnimatedImageView.h */,
+				D9A9952C1F05644A0062698B /* YYAnimatedImageView.m */,
+				D9A995311F05644A0062698B /* YYImageCoder.h */,
+				D9A995321F05644A0062698B /* YYImageCoder.m */,
 			);
 			name = YYImage;
 			path = ../YYImage;
 			sourceTree = "<group>";
 		};
-		D9D41AF91BD1033C00CD8EBF /* Supporting Files */ = {
+		D9A9953F1F05649B0062698B /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
-				D9D41AFA1BD10CE700CD8EBF /* UIKit.framework */,
-				D9D41AFC1BD10CEC00CD8EBF /* CoreFoundation.framework */,
-				D9D41AFE1BD10CF200CD8EBF /* QuartzCore.framework */,
-				D9D41B041BD10D0700CD8EBF /* ImageIO.framework */,
-				D9D41B001BD10CF600CD8EBF /* Accelerate.framework */,
-				D9D41B081BD10D1E00CD8EBF /* AssetsLibrary.framework */,
-				D9D41B061BD10D0D00CD8EBF /* MobileCoreServices.framework */,
-				D9D41B021BD10CFA00CD8EBF /* libz.tbd */,
-				D9D41AC11BD1030300CD8EBF /* Info.plist */,
+				D9A995471F0564C40062698B /* UIKit.framework */,
+				D9A995461F0564BF0062698B /* CoreFoundation.framework */,
+				D9A995451F0564BB0062698B /* QuartzCore.framework */,
+				D9A995441F0564B70062698B /* Accelerate.framework */,
+				D9A995431F0564B20062698B /* ImageIO.framework */,
+				D9A995421F0564AF0062698B /* MobileCoreServices.framework */,
+				D9A995411F0564A70062698B /* AssetsLibrary.framework */,
+				D9A995401F05649B0062698B /* libz.tbd */,
+				D9A995231F0564180062698B /* Info.plist */,
 			);
-			name = "Supporting Files";
+			name = Frameworks;
 			sourceTree = "<group>";
 		};
 /* End PBXGroup section */
 
 /* Begin PBXHeadersBuildPhase section */
-		D9D41AB31BD102F300CD8EBF /* Headers */ = {
+		D9A9951C1F0564180062698B /* Headers */ = {
 			isa = PBXHeadersBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				D9D41AEB1BD1033700CD8EBF /* YYFrameImage.h in Headers */,
-				D9D41AE91BD1033700CD8EBF /* YYAnimatedImageView.h in Headers */,
-				D9D41AF11BD1033700CD8EBF /* YYImageCoder.h in Headers */,
-				D9D41AED1BD1033700CD8EBF /* YYImage.h in Headers */,
-				D9D41AF31BD1033700CD8EBF /* YYSpriteSheetImage.h in Headers */,
+				D9A995371F05644B0062698B /* YYFrameImage.h in Headers */,
+				D9A995351F05644B0062698B /* YYAnimatedImageView.h in Headers */,
+				D9A9953B1F05644B0062698B /* YYImageCoder.h in Headers */,
+				D9A995391F05644B0062698B /* YYImage.h in Headers */,
+				D9A9953D1F05644B0062698B /* YYSpriteSheetImage.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 /* End PBXHeadersBuildPhase section */
 
 /* Begin PBXNativeTarget section */
-		D9D41AB51BD102F300CD8EBF /* YYImage */ = {
+		D9A9951E1F0564180062698B /* YYImage */ = {
 			isa = PBXNativeTarget;
-			buildConfigurationList = D9D41ABE1BD102F300CD8EBF /* Build configuration list for PBXNativeTarget "YYImage" */;
+			buildConfigurationList = D9A995271F0564180062698B /* Build configuration list for PBXNativeTarget "YYImage" */;
 			buildPhases = (
-				D9D41AB11BD102F300CD8EBF /* Sources */,
-				D9D41AB21BD102F300CD8EBF /* Frameworks */,
-				D9D41AB31BD102F300CD8EBF /* Headers */,
-				D9D41AB41BD102F300CD8EBF /* Resources */,
+				D9A9951A1F0564180062698B /* Sources */,
+				D9A9951B1F0564180062698B /* Frameworks */,
+				D9A9951C1F0564180062698B /* Headers */,
+				D9A9951D1F0564180062698B /* Resources */,
 			);
 			buildRules = (
 			);
@@ -153,42 +153,42 @@
 			);
 			name = YYImage;
 			productName = YYImage;
-			productReference = D9D41AB61BD102F300CD8EBF /* YYImage.framework */;
+			productReference = D9A9951F1F0564180062698B /* YYImage.framework */;
 			productType = "com.apple.product-type.framework";
 		};
 /* End PBXNativeTarget section */
 
 /* Begin PBXProject section */
-		D9D41AAD1BD102F300CD8EBF /* Project object */ = {
+		D9A995161F0564180062698B /* Project object */ = {
 			isa = PBXProject;
 			attributes = {
-				LastUpgradeCheck = 0800;
+				LastUpgradeCheck = 0900;
 				ORGANIZATIONNAME = ibireme;
 				TargetAttributes = {
-					D9D41AB51BD102F300CD8EBF = {
-						CreatedOnToolsVersion = 7.0;
+					D9A9951E1F0564180062698B = {
+						CreatedOnToolsVersion = 9.0;
 					};
 				};
 			};
-			buildConfigurationList = D9D41AB01BD102F300CD8EBF /* Build configuration list for PBXProject "YYImage" */;
-			compatibilityVersion = "Xcode 3.2";
-			developmentRegion = English;
+			buildConfigurationList = D9A995191F0564180062698B /* Build configuration list for PBXProject "YYImage" */;
+			compatibilityVersion = "Xcode 8.0";
+			developmentRegion = en;
 			hasScannedForEncodings = 0;
 			knownRegions = (
 				en,
 			);
-			mainGroup = D9D41AAC1BD102F300CD8EBF;
-			productRefGroup = D9D41AB71BD102F300CD8EBF /* Products */;
+			mainGroup = D9A995151F0564180062698B;
+			productRefGroup = D9A995201F0564180062698B /* Products */;
 			projectDirPath = "";
 			projectRoot = "";
 			targets = (
-				D9D41AB51BD102F300CD8EBF /* YYImage */,
+				D9A9951E1F0564180062698B /* YYImage */,
 			);
 		};
 /* End PBXProject section */
 
 /* Begin PBXResourcesBuildPhase section */
-		D9D41AB41BD102F300CD8EBF /* Resources */ = {
+		D9A9951D1F0564180062698B /* Resources */ = {
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
@@ -198,47 +198,55 @@
 /* End PBXResourcesBuildPhase section */
 
 /* Begin PBXSourcesBuildPhase section */
-		D9D41AB11BD102F300CD8EBF /* Sources */ = {
+		D9A9951A1F0564180062698B /* Sources */ = {
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				D9D41AEE1BD1033700CD8EBF /* YYImage.m in Sources */,
-				D9D41AEA1BD1033700CD8EBF /* YYAnimatedImageView.m in Sources */,
-				D9D41AEC1BD1033700CD8EBF /* YYFrameImage.m in Sources */,
-				D9D41AF41BD1033700CD8EBF /* YYSpriteSheetImage.m in Sources */,
-				D9D41AF21BD1033700CD8EBF /* YYImageCoder.m in Sources */,
+				D9A995361F05644B0062698B /* YYAnimatedImageView.m in Sources */,
+				D9A995381F05644B0062698B /* YYFrameImage.m in Sources */,
+				D9A9953A1F05644B0062698B /* YYImage.m in Sources */,
+				D9A9953C1F05644B0062698B /* YYImageCoder.m in Sources */,
+				D9A9953E1F05644B0062698B /* YYSpriteSheetImage.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 /* End PBXSourcesBuildPhase section */
 
 /* Begin XCBuildConfiguration section */
-		D9D41ABC1BD102F300CD8EBF /* Debug */ = {
+		D9A995251F0564180062698B /* Debug */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
 				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
 				CLANG_WARN_CONSTANT_CONVERSION = YES;
 				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
 				CLANG_WARN_EMPTY_BODY = YES;
 				CLANG_WARN_ENUM_CONVERSION = YES;
 				CLANG_WARN_INFINITE_RECURSION = YES;
 				CLANG_WARN_INT_CONVERSION = YES;
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
 				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
 				CLANG_WARN_UNREACHABLE_CODE = YES;
 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				CODE_SIGN_IDENTITY = "iPhone Developer";
 				COPY_PHASE_STRIP = NO;
 				CURRENT_PROJECT_VERSION = 1;
 				DEBUG_INFORMATION_FORMAT = dwarf;
 				ENABLE_STRICT_OBJC_MSGSEND = YES;
 				ENABLE_TESTABILITY = YES;
-				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_C_LANGUAGE_STANDARD = gnu11;
 				GCC_DYNAMIC_NO_PIC = NO;
 				GCC_NO_COMMON_BLOCKS = YES;
 				GCC_OPTIMIZATION_LEVEL = 0;
@@ -256,38 +264,45 @@
 				MTL_ENABLE_DEBUG_INFO = YES;
 				ONLY_ACTIVE_ARCH = YES;
 				SDKROOT = iphoneos;
-				TARGETED_DEVICE_FAMILY = "1,2";
 				VERSIONING_SYSTEM = "apple-generic";
 				VERSION_INFO_PREFIX = "";
 			};
 			name = Debug;
 		};
-		D9D41ABD1BD102F300CD8EBF /* Release */ = {
+		D9A995261F0564180062698B /* Release */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
 				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
 				CLANG_WARN_CONSTANT_CONVERSION = YES;
 				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
 				CLANG_WARN_EMPTY_BODY = YES;
 				CLANG_WARN_ENUM_CONVERSION = YES;
 				CLANG_WARN_INFINITE_RECURSION = YES;
 				CLANG_WARN_INT_CONVERSION = YES;
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
 				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
 				CLANG_WARN_UNREACHABLE_CODE = YES;
 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				CODE_SIGN_IDENTITY = "iPhone Developer";
 				COPY_PHASE_STRIP = NO;
 				CURRENT_PROJECT_VERSION = 1;
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
 				ENABLE_NS_ASSERTIONS = NO;
 				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_C_LANGUAGE_STANDARD = gnu11;
 				GCC_NO_COMMON_BLOCKS = YES;
 				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
 				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
@@ -298,71 +313,72 @@
 				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
 				MTL_ENABLE_DEBUG_INFO = NO;
 				SDKROOT = iphoneos;
-				TARGETED_DEVICE_FAMILY = "1,2";
 				VALIDATE_PRODUCT = YES;
 				VERSIONING_SYSTEM = "apple-generic";
 				VERSION_INFO_PREFIX = "";
 			};
 			name = Release;
 		};
-		D9D41ABF1BD102F300CD8EBF /* Debug */ = {
+		D9A995281F0564180062698B /* Debug */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				APPLICATION_EXTENSION_API_ONLY = YES;
+				CODE_SIGN_IDENTITY = "";
 				DEFINES_MODULE = YES;
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
-				INFOPLIST_FILE = Info.plist;
+				INFOPLIST_FILE = "$(SRCROOT)/Info.plist";
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
 				PRODUCT_BUNDLE_IDENTIFIER = com.ibireme.YYImage;
-				PRODUCT_NAME = "$(TARGET_NAME)";
+				PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
 				SKIP_INSTALL = YES;
+				TARGETED_DEVICE_FAMILY = "1,2";
 			};
 			name = Debug;
 		};
-		D9D41AC01BD102F300CD8EBF /* Release */ = {
+		D9A995291F0564180062698B /* Release */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				APPLICATION_EXTENSION_API_ONLY = YES;
+				CODE_SIGN_IDENTITY = "";
 				DEFINES_MODULE = YES;
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
-				INFOPLIST_FILE = Info.plist;
+				INFOPLIST_FILE = "$(SRCROOT)/Info.plist";
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
 				PRODUCT_BUNDLE_IDENTIFIER = com.ibireme.YYImage;
-				PRODUCT_NAME = "$(TARGET_NAME)";
+				PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
 				SKIP_INSTALL = YES;
+				TARGETED_DEVICE_FAMILY = "1,2";
 			};
 			name = Release;
 		};
 /* End XCBuildConfiguration section */
 
 /* Begin XCConfigurationList section */
-		D9D41AB01BD102F300CD8EBF /* Build configuration list for PBXProject "YYImage" */ = {
+		D9A995191F0564180062698B /* Build configuration list for PBXProject "YYImage" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (
-				D9D41ABC1BD102F300CD8EBF /* Debug */,
-				D9D41ABD1BD102F300CD8EBF /* Release */,
+				D9A995251F0564180062698B /* Debug */,
+				D9A995261F0564180062698B /* Release */,
 			);
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 		};
-		D9D41ABE1BD102F300CD8EBF /* Build configuration list for PBXNativeTarget "YYImage" */ = {
+		D9A995271F0564180062698B /* Build configuration list for PBXNativeTarget "YYImage" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (
-				D9D41ABF1BD102F300CD8EBF /* Debug */,
-				D9D41AC01BD102F300CD8EBF /* Release */,
+				D9A995281F0564180062698B /* Debug */,
+				D9A995291F0564180062698B /* Release */,
 			);
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 		};
 /* End XCConfigurationList section */
 	};
-	rootObject = D9D41AAD1BD102F300CD8EBF /* Project object */;
+	rootObject = D9A995161F0564180062698B /* Project object */;
 }

+ 6 - 4
Framework/YYImage.xcodeproj/xcshareddata/xcschemes/YYImage.xcscheme

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Scheme
-   LastUpgradeVersion = "0800"
+   LastUpgradeVersion = "0900"
    version = "1.3">
    <BuildAction
       parallelizeBuildables = "YES"
@@ -14,7 +14,7 @@
             buildForAnalyzing = "YES">
             <BuildableReference
                BuildableIdentifier = "primary"
-               BlueprintIdentifier = "D9D41AB51BD102F300CD8EBF"
+               BlueprintIdentifier = "D9A9951E1F0564180062698B"
                BuildableName = "YYImage.framework"
                BlueprintName = "YYImage"
                ReferencedContainer = "container:YYImage.xcodeproj">
@@ -26,6 +26,7 @@
       buildConfiguration = "Debug"
       selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      language = ""
       shouldUseLaunchSchemeArgsEnv = "YES">
       <Testables>
       </Testables>
@@ -36,6 +37,7 @@
       buildConfiguration = "Debug"
       selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      language = ""
       launchStyle = "0"
       useCustomWorkingDirectory = "NO"
       ignoresPersistentStateOnLaunch = "NO"
@@ -45,7 +47,7 @@
       <MacroExpansion>
          <BuildableReference
             BuildableIdentifier = "primary"
-            BlueprintIdentifier = "D9D41AB51BD102F300CD8EBF"
+            BlueprintIdentifier = "D9A9951E1F0564180062698B"
             BuildableName = "YYImage.framework"
             BlueprintName = "YYImage"
             ReferencedContainer = "container:YYImage.xcodeproj">
@@ -63,7 +65,7 @@
       <MacroExpansion>
          <BuildableReference
             BuildableIdentifier = "primary"
-            BlueprintIdentifier = "D9D41AB51BD102F300CD8EBF"
+            BlueprintIdentifier = "D9A9951E1F0564180062698B"
             BuildableName = "YYImage.framework"
             BlueprintName = "YYImage"
             ReferencedContainer = "container:YYImage.xcodeproj">

+ 9 - 6
Vendor/WebP.framework/Headers/config.h

@@ -78,7 +78,7 @@
 #define PACKAGE_NAME "libwebp"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "libwebp 0.5.0"
+#define PACKAGE_STRING "libwebp 0.6.0"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "libwebp"
@@ -87,7 +87,7 @@
 #define PACKAGE_URL "http://developers.google.com/speed/webp"
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "0.5.0"
+#define PACKAGE_VERSION "0.6.0"
 
 /* Define to necessary symbol if this constant uses a non-standard name on
    your system. */
@@ -97,14 +97,11 @@
 #define STDC_HEADERS 1
 
 /* Version number of package */
-#define VERSION "0.5.0"
+#define VERSION "0.6.0"
 
 /* Enable experimental code */
 /* #undef WEBP_EXPERIMENTAL_FEATURES */
 
-/* Define to 1 to force aligned memory operations */
-/* #undef WEBP_FORCE_ALIGNED */
-
 /* Set to 1 if AVX2 is supported */
 /* #undef WEBP_HAVE_AVX2 */
 
@@ -117,6 +114,12 @@
 /* Set to 1 if JPEG library is installed */
 /* #undef WEBP_HAVE_JPEG */
 
+/* Set to 1 if NEON is supported */
+/* #undef WEBP_HAVE_NEON */
+
+/* Set to 1 if runtime detection of NEON is enabled */
+/* #undef WEBP_HAVE_NEON_RTCD */
+
 /* Set to 1 if PNG library is installed */
 /* #undef WEBP_HAVE_PNG */
 

+ 21 - 16
Vendor/WebP.framework/Headers/decode.h

@@ -39,8 +39,8 @@ typedef struct WebPDecoderConfig WebPDecoderConfig;
 WEBP_EXTERN(int) WebPGetDecoderVersion(void);
 
 // Retrieve basic header information: width, height.
-// This function will also validate the header and return 0 in
-// case of formatting error.
+// This function will also validate the header, returning true on success,
+// false otherwise. '*width' and '*height' are only valid on successful return.
 // Pointers 'width' and 'height' can be passed NULL if deemed irrelevant.
 WEBP_EXTERN(int) WebPGetInfo(const uint8_t* data, size_t data_size,
                              int* width, int* height);
@@ -197,7 +197,10 @@ struct WebPYUVABuffer {              // view as YUVA
 struct WebPDecBuffer {
   WEBP_CSP_MODE colorspace;  // Colorspace.
   int width, height;         // Dimensions.
-  int is_external_memory;    // If true, 'internal_memory' pointer is not used.
+  int is_external_memory;    // If non-zero, 'internal_memory' pointer is not
+                             // used. If value is '2' or more, the external
+                             // memory is considered 'slow' and multiple
+                             // read/write will be avoided.
   union {
     WebPRGBABuffer RGBA;
     WebPYUVABuffer YUVA;
@@ -205,7 +208,7 @@ struct WebPDecBuffer {
   uint32_t       pad[4];     // padding for later use
 
   uint8_t* private_memory;   // Internally allocated memory (only when
-                             // is_external_memory is false). Should not be used
+                             // is_external_memory is 0). Should not be used
                              // externally, but accessed via the buffer union.
 };
 
@@ -245,19 +248,19 @@ typedef enum VP8StatusCode {
 // picture is only partially decoded, pending additional input.
 // Code example:
 //
-//   WebPInitDecBuffer(&buffer);
-//   buffer.colorspace = mode;
+//   WebPInitDecBuffer(&output_buffer);
+//   output_buffer.colorspace = mode;
 //   ...
-//   WebPIDecoder* idec = WebPINewDecoder(&buffer);
-//   while (has_more_data) {
-//     // ... (get additional data)
+//   WebPIDecoder* idec = WebPINewDecoder(&output_buffer);
+//   while (additional_data_is_available) {
+//     // ... (get additional data in some new_data[] buffer)
 //     status = WebPIAppend(idec, new_data, new_data_size);
-//     if (status != VP8_STATUS_SUSPENDED ||
-//       break;
+//     if (status != VP8_STATUS_OK && status != VP8_STATUS_SUSPENDED) {
+//       break;    // an error occurred.
 //     }
 //
 //     // The above call decodes the current available buffer.
-//     // Part of the image can now be refreshed by calling to
+//     // Part of the image can now be refreshed by calling
 //     // WebPIDecGetRGB()/WebPIDecGetYUVA() etc.
 //   }
 //   WebPIDelete(idec);
@@ -269,7 +272,7 @@ typedef enum VP8StatusCode {
 // that of the returned WebPIDecoder object.
 // The supplied 'output_buffer' content MUST NOT be changed between calls to
 // WebPIAppend() or WebPIUpdate() unless 'output_buffer.is_external_memory' is
-// set to 1. In such a case, it is allowed to modify the pointers, size and
+// not set to 0. In such a case, it is allowed to modify the pointers, size and
 // stride of output_buffer.u.RGBA or output_buffer.u.YUVA, provided they remain
 // within valid bounds.
 // All other fields of WebPDecBuffer MUST remain constant between calls.
@@ -468,16 +471,18 @@ static WEBP_INLINE int WebPInitDecoderConfig(WebPDecoderConfig* config) {
 // parameter, in which case the features will be parsed and stored into
 // config->input. Otherwise, 'data' can be NULL and no parsing will occur.
 // Note that 'config' can be NULL too, in which case a default configuration
-// is used.
+// is used. If 'config' is not NULL, it must outlive the WebPIDecoder object
+// as some references to its fields will be used. No internal copy of 'config'
+// is made.
 // The return WebPIDecoder object must always be deleted calling WebPIDelete().
 // Returns NULL in case of error (and config->status will then reflect
-// the error condition).
+// the error condition, if available).
 WEBP_EXTERN(WebPIDecoder*) WebPIDecode(const uint8_t* data, size_t data_size,
                                        WebPDecoderConfig* config);
 
 // Non-incremental version. This version decodes the full data at once, taking
 // 'config' into account. Returns decoding status (which should be VP8_STATUS_OK
-// if the decoding was successful).
+// if the decoding was successful). Note that 'config' cannot be NULL.
 WEBP_EXTERN(VP8StatusCode) WebPDecode(const uint8_t* data, size_t data_size,
                                       WebPDecoderConfig* config);
 

+ 31 - 16
Vendor/WebP.framework/Headers/encode.h

@@ -20,7 +20,7 @@
 extern "C" {
 #endif
 
-#define WEBP_ENCODER_ABI_VERSION 0x0209    // MAJOR(8b) + MINOR(8b)
+#define WEBP_ENCODER_ABI_VERSION 0x020e    // MAJOR(8b) + MINOR(8b)
 
 // Note: forward declaring enumerations is not allowed in (strict) C and C++,
 // the types are left here for reference.
@@ -134,19 +134,17 @@ struct WebPConfig {
   int thread_level;       // If non-zero, try and use multi-threaded encoding.
   int low_memory;         // If set, reduce memory usage (but increase CPU use).
 
-  int near_lossless;      // Near lossless encoding [0 = off(default) .. 100].
-                          // This feature is experimental.
+  int near_lossless;      // Near lossless encoding [0 = max loss .. 100 = off
+                          // (default)].
   int exact;              // if non-zero, preserve the exact RGB values under
                           // transparent area. Otherwise, discard this invisible
                           // RGB information for better compression. The default
                           // value is 0.
 
-#ifdef WEBP_EXPERIMENTAL_FEATURES
-  int delta_palettization;
+  int use_delta_palette;  // reserved for future lossless feature
+  int use_sharp_yuv;      // if needed, use sharp (and slow) RGB->YUV conversion
+
   uint32_t pad[2];        // padding for later use
-#else
-  uint32_t pad[3];        // padding for later use
-#endif  // WEBP_EXPERIMENTAL_FEATURES
 };
 
 // Enumerate some predefined settings for WebPConfig, depending on the type
@@ -388,9 +386,24 @@ WEBP_EXTERN(void) WebPPictureFree(WebPPicture* picture);
 // Returns false in case of memory allocation error.
 WEBP_EXTERN(int) WebPPictureCopy(const WebPPicture* src, WebPPicture* dst);
 
+// Compute the single distortion for packed planes of samples.
+// 'src' will be compared to 'ref', and the raw distortion stored into
+// '*distortion'. The refined metric (log(MSE), log(1 - ssim),...' will be
+// stored in '*result'.
+// 'x_step' is the horizontal stride (in bytes) between samples.
+// 'src/ref_stride' is the byte distance between rows.
+// Returns false in case of error (bad parameter, memory allocation error, ...).
+WEBP_EXTERN(int) WebPPlaneDistortion(const uint8_t* src, size_t src_stride,
+                                     const uint8_t* ref, size_t ref_stride,
+                                     int width, int height,
+                                     size_t x_step,
+                                     int type,   // 0 = PSNR, 1 = SSIM, 2 = LSIM
+                                     float* distortion, float* result);
+
 // Compute PSNR, SSIM or LSIM distortion metric between two pictures. Results
-// are in dB, stored in result[] in the Y/U/V/Alpha/All or B/G/R/A/All order.
-// Returns false in case of error (src and ref don't have same dimension, ...)
+// are in dB, stored in result[] in the B/G/R/A/All order. The distortion is
+// always performed using ARGB samples. Hence if the input is YUV(A), the
+// picture will be internally converted to ARGB (just for the measurement).
 // Warning: this function is rather CPU-intensive.
 WEBP_EXTERN(int) WebPPictureDistortion(
     const WebPPicture* src, const WebPPicture* ref,
@@ -473,18 +486,20 @@ WEBP_EXTERN(int) WebPPictureARGBToYUVA(WebPPicture* picture,
 WEBP_EXTERN(int) WebPPictureARGBToYUVADithered(
     WebPPicture* picture, WebPEncCSP colorspace, float dithering);
 
-// Performs 'smart' RGBA->YUVA420 downsampling and colorspace conversion.
+// Performs 'sharp' RGBA->YUVA420 downsampling and colorspace conversion.
 // Downsampling is handled with extra care in case of color clipping. This
 // method is roughly 2x slower than WebPPictureARGBToYUVA() but produces better
-// YUV representation.
+// and sharper YUV representation.
 // Returns false in case of error.
+WEBP_EXTERN(int) WebPPictureSharpARGBToYUVA(WebPPicture* picture);
+// kept for backward compatibility:
 WEBP_EXTERN(int) WebPPictureSmartARGBToYUVA(WebPPicture* picture);
 
 // Converts picture->yuv to picture->argb and sets picture->use_argb to true.
-// The input format must be YUV_420 or YUV_420A.
-// Note that the use of this method is discouraged if one has access to the
-// raw ARGB samples, since using YUV420 is comparatively lossy. Also, the
-// conversion from YUV420 to ARGB incurs a small loss too.
+// The input format must be YUV_420 or YUV_420A. The conversion from YUV420 to
+// ARGB incurs a small loss too.
+// Note that the use of this colorspace is discouraged if one has access to the
+// raw ARGB samples, since using YUV420 is comparatively lossy.
 // Returns false in case of error.
 WEBP_EXTERN(int) WebPPictureYUVAToARGB(WebPPicture* picture);
 

+ 0 - 51
Vendor/WebP.framework/Headers/extras.h

@@ -1,51 +0,0 @@
-// Copyright 2015 Google Inc. All Rights Reserved.
-//
-// Use of this source code is governed by a BSD-style license
-// that can be found in the COPYING file in the root of the source
-// tree. An additional intellectual property rights grant can be found
-// in the file PATENTS. All contributing project authors may
-// be found in the AUTHORS file in the root of the source tree.
-// -----------------------------------------------------------------------------
-//
-
-#ifndef WEBP_WEBP_EXTRAS_H_
-#define WEBP_WEBP_EXTRAS_H_
-
-#include "./types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "./encode.h"
-
-#define WEBP_EXTRAS_ABI_VERSION 0x0000    // MAJOR(8b) + MINOR(8b)
-
-//------------------------------------------------------------------------------
-
-// Returns the version number of the extras library, packed in hexadecimal using
-// 8bits for each of major/minor/revision. E.g: v2.5.7 is 0x020507.
-WEBP_EXTERN(int) WebPGetExtrasVersion(void);
-
-//------------------------------------------------------------------------------
-// Ad-hoc colorspace importers.
-
-// Import luma sample (gray scale image) into 'picture'. The 'picture'
-// width and height must be set prior to calling this function.
-WEBP_EXTERN(int) WebPImportGray(const uint8_t* gray, WebPPicture* picture);
-
-// Import rgb sample in RGB565 packed format into 'picture'. The 'picture'
-// width and height must be set prior to calling this function.
-WEBP_EXTERN(int) WebPImportRGB565(const uint8_t* rgb565, WebPPicture* pic);
-
-// Import rgb sample in RGB4444 packed format into 'picture'. The 'picture'
-// width and height must be set prior to calling this function.
-WEBP_EXTERN(int) WebPImportRGB4444(const uint8_t* rgb4444, WebPPicture* pic);
-
-//------------------------------------------------------------------------------
-
-#ifdef __cplusplus
-}    // extern "C"
-#endif
-
-#endif  /* WEBP_WEBP_EXTRAS_H_ */

+ 1 - 2
Vendor/WebP.framework/Headers/format_constants.h

@@ -72,14 +72,13 @@ typedef enum {
 #define RIFF_HEADER_SIZE   12    // Size of the RIFF header ("RIFFnnnnWEBP").
 #define ANMF_CHUNK_SIZE    16    // Size of an ANMF chunk.
 #define ANIM_CHUNK_SIZE    6     // Size of an ANIM chunk.
-#define FRGM_CHUNK_SIZE    6     // Size of a FRGM chunk.
 #define VP8X_CHUNK_SIZE    10    // Size of a VP8X chunk.
 
 #define MAX_CANVAS_SIZE     (1 << 24)     // 24-bit max for VP8X width/height.
 #define MAX_IMAGE_AREA      (1ULL << 32)  // 32-bit max for width x height.
 #define MAX_LOOP_COUNT      (1 << 16)     // maximum value for loop-count
 #define MAX_DURATION        (1 << 24)     // maximum duration
-#define MAX_POSITION_OFFSET (1 << 24)     // maximum frame/fragment x/y offset
+#define MAX_POSITION_OFFSET (1 << 24)     // maximum frame x/y offset
 
 // Maximum chunk payload is such that adding the header and padding won't
 // overflow a uint32_t.

+ 25 - 25
Vendor/WebP.framework/Headers/mux.h

@@ -21,13 +21,13 @@
 extern "C" {
 #endif
 
-#define WEBP_MUX_ABI_VERSION 0x0106        // MAJOR(8b) + MINOR(8b)
+#define WEBP_MUX_ABI_VERSION 0x0108        // MAJOR(8b) + MINOR(8b)
 
 //------------------------------------------------------------------------------
 // Mux API
 //
 // This API allows manipulation of WebP container images containing features
-// like color profile, metadata, animation and fragmented images.
+// like color profile, metadata, animation.
 //
 // Code Example#1: Create a WebPMux object with image data, color profile and
 // XMP metadata.
@@ -81,16 +81,16 @@ typedef enum WebPMuxError {
 
 // IDs for different types of chunks.
 typedef enum WebPChunkId {
-  WEBP_CHUNK_VP8X,     // VP8X
-  WEBP_CHUNK_ICCP,     // ICCP
-  WEBP_CHUNK_ANIM,     // ANIM
-  WEBP_CHUNK_ANMF,     // ANMF
-  WEBP_CHUNK_FRGM,     // FRGM
-  WEBP_CHUNK_ALPHA,    // ALPH
-  WEBP_CHUNK_IMAGE,    // VP8/VP8L
-  WEBP_CHUNK_EXIF,     // EXIF
-  WEBP_CHUNK_XMP,      // XMP
-  WEBP_CHUNK_UNKNOWN,  // Other chunks.
+  WEBP_CHUNK_VP8X,        // VP8X
+  WEBP_CHUNK_ICCP,        // ICCP
+  WEBP_CHUNK_ANIM,        // ANIM
+  WEBP_CHUNK_ANMF,        // ANMF
+  WEBP_CHUNK_DEPRECATED,  // (deprecated from FRGM)
+  WEBP_CHUNK_ALPHA,       // ALPH
+  WEBP_CHUNK_IMAGE,       // VP8/VP8L
+  WEBP_CHUNK_EXIF,        // EXIF
+  WEBP_CHUNK_XMP,         // XMP
+  WEBP_CHUNK_UNKNOWN,     // Other chunks.
   WEBP_CHUNK_NIL
 } WebPChunkId;
 
@@ -142,7 +142,7 @@ static WEBP_INLINE WebPMux* WebPMuxCreate(const WebPData* bitstream,
 // Non-image chunks.
 
 // Note: Only non-image related chunks should be managed through chunk APIs.
-// (Image related chunks are: "ANMF", "FRGM", "VP8 ", "VP8L" and "ALPH").
+// (Image related chunks are: "ANMF", "VP8 ", "VP8L" and "ALPH").
 // To add, get and delete images, use WebPMuxSetImage(), WebPMuxPushFrame(),
 // WebPMuxGetFrame() and WebPMuxDeleteFrame().
 
@@ -195,7 +195,7 @@ WEBP_EXTERN(WebPMuxError) WebPMuxDeleteChunk(
 //------------------------------------------------------------------------------
 // Images.
 
-// Encapsulates data about a single frame/fragment.
+// Encapsulates data about a single frame.
 struct WebPMuxFrameInfo {
   WebPData    bitstream;  // image data: can be a raw VP8/VP8L bitstream
                           // or a single-image WebP file.
@@ -203,19 +203,19 @@ struct WebPMuxFrameInfo {
   int         y_offset;   // y-offset of the frame.
   int         duration;   // duration of the frame (in milliseconds).
 
-  WebPChunkId id;         // frame type: should be one of WEBP_CHUNK_ANMF,
-                          // WEBP_CHUNK_FRGM or WEBP_CHUNK_IMAGE
+  WebPChunkId id;         // frame type: should be one of WEBP_CHUNK_ANMF
+                          // or WEBP_CHUNK_IMAGE
   WebPMuxAnimDispose dispose_method;  // Disposal method for the frame.
   WebPMuxAnimBlend   blend_method;    // Blend operation for the frame.
   uint32_t    pad[1];     // padding for later use
 };
 
-// Sets the (non-animated and non-fragmented) image in the mux object.
-// Note: Any existing images (including frames/fragments) will be removed.
+// Sets the (non-animated) image in the mux object.
+// Note: Any existing images (including frames) will be removed.
 // Parameters:
 //   mux - (in/out) object in which the image is to be set
 //   bitstream - (in) can be a raw VP8/VP8L bitstream or a single-image
-//               WebP file (non-animated and non-fragmented)
+//               WebP file (non-animated)
 //   copy_data - (in) value 1 indicates given data WILL be copied to the mux
 //               object and value 0 indicates data will NOT be copied.
 // Returns:
@@ -226,9 +226,8 @@ WEBP_EXTERN(WebPMuxError) WebPMuxSetImage(
     WebPMux* mux, const WebPData* bitstream, int copy_data);
 
 // Adds a frame at the end of the mux object.
-// Notes: (1) frame.id should be one of WEBP_CHUNK_ANMF or WEBP_CHUNK_FRGM
-//        (2) For setting a non-animated non-fragmented image, use
-//            WebPMuxSetImage() instead.
+// Notes: (1) frame.id should be WEBP_CHUNK_ANMF
+//        (2) For setting a non-animated image, use WebPMuxSetImage() instead.
 //        (3) Type of frame being pushed must be same as the frames in mux.
 //        (4) As WebP only supports even offsets, any odd offset will be snapped
 //            to an even location using: offset &= ~1
@@ -431,9 +430,10 @@ struct WebPAnimEncoderOptions {
                         // frames in the output. The library may insert some key
                         // frames as needed to satisfy this criteria.
                         // Note that these conditions should hold: kmax > kmin
-                        // and kmin >= kmax / 2 + 1. Also, if kmin == 0, then
-                        // key-frame insertion is disabled; and if kmax == 0,
-                        // then all frames will be key-frames.
+                        // and kmin >= kmax / 2 + 1. Also, if kmax <= 0, then
+                        // key-frame insertion is disabled; and if kmax == 1,
+                        // then all frames will be key-frames (kmin value does
+                        // not matter for these special cases).
   int allow_mixed;      // If true, use mixed compression mode; may choose
                         // either lossy and lossless for each frame.
   int verbose;          // If true, print info and warning messages to stderr.

+ 3 - 2
Vendor/WebP.framework/Headers/mux_types.h

@@ -31,12 +31,13 @@ typedef struct WebPData WebPData;
 
 // VP8X Feature Flags.
 typedef enum WebPFeatureFlags {
-  FRAGMENTS_FLAG  = 0x00000001,
   ANIMATION_FLAG  = 0x00000002,
   XMP_FLAG        = 0x00000004,
   EXIF_FLAG       = 0x00000008,
   ALPHA_FLAG      = 0x00000010,
-  ICCP_FLAG       = 0x00000020
+  ICCP_FLAG       = 0x00000020,
+
+  ALL_VALID_FLAGS = 0x0000003e
 } WebPFeatureFlags;
 
 // Dispose method (animation only). Indicates how the area used by the current

BIN
Vendor/WebP.framework/WebP


+ 0 - 3
Vendor/WebP.sh

@@ -42,9 +42,6 @@ LIBLIST=''
 if [[ -z "${SDK}" ]]; then
   echo "iOS SDK not available"
   exit 1
-elif [[ ${SDK} < 6.0 ]]; then
-  echo "You need iOS SDK version 6.0 or above"
-  exit 1
 else
   echo "iOS SDK Version ${SDK}"
 fi

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff