Skip to content

Commit

Permalink
Updated Mac XCode Projects (#248)
Browse files Browse the repository at this point in the history
* Updated MacOS Support

* Added MacOS Autobuild

You need to use `xattr -cr path/to/v3-mac.zip` or `xattr -cr path/to/RSDKv3.app` for this to work

* Added README specifically for MacOS autobuild
  • Loading branch information
KirbyKid256 authored Sep 10, 2024
1 parent 2cc9dcd commit 609387c
Show file tree
Hide file tree
Showing 31 changed files with 1,994 additions and 26 deletions.
41 changes: 41 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ env:
WIN64_FLAGS: "-DVCPKG_TARGET_TRIPLET=x64-windows-static -DCMAKE_PREFIX_PATH=C:/vcpkg/installed/x64-windows-static/"
# FIXME: For some reason ubuntu enables _FORTIFY_SOURCE by default, so let's override it to prevent IO bugs
GENERAL_LINUX_FLAGS: "-DCMAKE_CXX_FLAGS='-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0'"
GENERAL_MACOS_FLAGS: "OTHER_CFLAGS='-DRSDK_AUTOBUILD=1 -DRETRO_DEV_EXTRA=\\\"Darwin\\ -\\ AppleClang\\\"'"

jobs:
v3-windows:
Expand Down Expand Up @@ -135,3 +136,43 @@ jobs:
with:
name: v3-linux
path: linux.tar.gz
v3-macOS:
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Download libogg, libvorbis, and libtheora for easier includes
run: |
curl "https://ftp.osuosl.org/pub/xiph/releases/ogg/libogg-1.3.5.zip" --output "libogg.zip"
unzip libogg.zip -d ./dependencies/mac/
mv ./dependencies/mac/libogg-1.3.5 ./dependencies/mac/libogg
curl "https://ftp.osuosl.org/pub/xiph/releases/vorbis/libvorbis-1.3.7.zip" --output "libvorbis.zip"
unzip libvorbis.zip -d ./dependencies/mac/
mv ./dependencies/mac/libvorbis-1.3.7 ./dependencies/mac/libvorbis
curl "https://ftp.osuosl.org/pub/xiph/releases/theora/libtheora-1.1.1.zip" --output "libtheora.zip"
unzip libtheora.zip -d ./dependencies/mac/
mv ./dependencies/mac/libtheora-1.1.1 ./dependencies/mac/libtheora
- name: Download SDL2
run: |
curl "https://libsdl.org/release/SDL2-2.30.7.dmg" --output "SDL2.dmg"
hdiutil attach SDL2.dmg
cp -r /Volumes/SDL2/SDL2.framework ./dependencies/mac
- name: Generate Vorbis headers
working-directory: ./dependencies/mac/libogg/
run: |
./configure
- name: Build RSDKv3
run: |
xcodebuild -project RSDKv3.xcodeproj -scheme RSDKv3 DSTROOT="./build" -configuration Release DEPLOYMENT_LOCATION=YES ${{env.GENERAL_MACOS_FLAGS}}
- name: Zip the app ourselves (Important step to retain symlinks)
run: |
cd ./build/Applications/
echo 'From this folder, run `xattr -cr RSDKv3.app` in Terminal to allow MacOS to open it.' > README.txt
zip -r RSDKv3.zip .
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: v3-mac
path: build/Applications/RSDKv3.zip
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,10 @@ Install the following dependencies: then follow the [compilation steps below](#c
- **apk (Alpine/PostmarketOS)** `sudo apk add build-base cmake glew-dev glfw-dev sdl2-dev libogg-dev libtheora-dev libvorbis-dev`
- Your favorite package manager here, [make a pull request](https://github.com/RSDKModding/RSDKv3-Decompilation/fork)

## Mac
The macOS build doesn't currently use CMake.
Follow the build instructions [here.](./dependencies/mac/README.md)

## Android
Follow the android build instructions [here.](./dependencies/android/README.md)

Expand Down
111 changes: 92 additions & 19 deletions RSDKv3.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,13 @@
archiveVersion = 1;
classes = {
};
objectVersion = 50;
objectVersion = 54;
objects = {

/* Begin PBXBuildFile section */
852B66EB2C861FB900D69DFC /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 852B66E72C861FB800D69DFC /* AppKit.framework */; };
852B66EF2C861FF600D69DFC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 852B66EE2C861FF600D69DFC /* Foundation.framework */; };
85A59A142C8ACD43009B9572 /* fcaseopen.c in Sources */ = {isa = PBXBuildFile; fileRef = 85A59A132C8ACD43009B9572 /* fcaseopen.c */; };
C92834D22615E66D00D51CCE /* Ini.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C92834BC2615E66C00D51CCE /* Ini.cpp */; };
C92834D32615E66D00D51CCE /* Scene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C92834BD2615E66C00D51CCE /* Scene.cpp */; };
C92834D42615E66D00D51CCE /* Scene3D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C92834BE2615E66C00D51CCE /* Scene3D.cpp */; };
Expand Down Expand Up @@ -45,6 +48,30 @@
C975E72C26E3303E00F09AD4 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C975E72B26E3303E00F09AD4 /* OpenGL.framework */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
85D15D302C83DF3200C38EF2 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 85D15D2A2C83DF3200C38EF2 /* Dependencies.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 9EA087D229FA013200163B50;
remoteInfo = Ogg;
};
85D15D322C83DF3200C38EF2 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 85D15D2A2C83DF3200C38EF2 /* Dependencies.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 9EA087E629FA099200163B50;
remoteInfo = Vorbis;
};
85D15D342C83DF3200C38EF2 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 85D15D2A2C83DF3200C38EF2 /* Dependencies.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 850738AB2C0AA96A00D3468A;
remoteInfo = Theora;
};
/* End PBXContainerItemProxy section */

/* Begin PBXCopyFilesBuildPhase section */
C96219862589B10600B47AB3 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
Expand All @@ -63,6 +90,11 @@
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
852B66E72C861FB800D69DFC /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
852B66EE2C861FF600D69DFC /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
85A59A122C8ACD39009B9572 /* fcaseopen.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fcaseopen.h; sourceTree = "<group>"; };
85A59A132C8ACD43009B9572 /* fcaseopen.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = fcaseopen.c; sourceTree = "<group>"; };
85D15D2A2C83DF3200C38EF2 /* Dependencies.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Dependencies.xcodeproj; path = dependencies/mac/Dependencies.xcodeproj; sourceTree = "<group>"; };
C92834A72615E64C00D51CCE /* String.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = String.hpp; sourceTree = "<group>"; };
C92834A82615E64C00D51CCE /* Player.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = Player.hpp; sourceTree = "<group>"; };
C92834A92615E64C00D51CCE /* Input.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = Input.hpp; sourceTree = "<group>"; };
Expand Down Expand Up @@ -109,11 +141,9 @@
C962191925898A9300B47AB3 /* RSDKv3.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RSDKv3.app; sourceTree = BUILT_PRODUCTS_DIR; };
C962193625898B0A00B47AB3 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = dependencies/mac/Assets.xcassets; sourceTree = SOURCE_ROOT; };
C96219832589B10600B47AB3 /* SDL2.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL2.framework; path = dependencies/mac/SDL2.framework; sourceTree = "<group>"; };
C96219892589B3D900B47AB3 /* Ogg.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Ogg.framework; path = dependencies/mac/ogg/macosx/Ogg.framework; sourceTree = "<group>"; };
C962198C2589B3EF00B47AB3 /* Vorbis.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Vorbis.framework; path = "dependencies/mac/libvorbis-1.3.7/macosx/Vorbis.framework"; sourceTree = "<group>"; };
C96219902589B50100B47AB3 /* Ogg.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Ogg.framework; path = dependencies/mac/libogg/macosx/Ogg.framework; sourceTree = "<group>"; };
C96219932589B51000B47AB3 /* Vorbis.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Vorbis.framework; path = dependencies/mac/libvorbis/macosx/Vorbis.framework; sourceTree = "<group>"; };
C96219962589B51E00B47AB3 /* Theora.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Theora.framework; path = dependencies/mac/libtheora/macosx/Theora.framework; sourceTree = "<group>"; };
C96219902589B50100B47AB3 /* Ogg.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Ogg.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C96219932589B51000B47AB3 /* Vorbis.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Vorbis.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C96219962589B51E00B47AB3 /* Theora.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Theora.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C962199A2589B57300B47AB3 /* theoraplay_cvtrgb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = theoraplay_cvtrgb.h; path = dependencies/all/theoraplay/theoraplay_cvtrgb.h; sourceTree = SOURCE_ROOT; };
C962199B2589B57300B47AB3 /* theoraplay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = theoraplay.h; path = dependencies/all/theoraplay/theoraplay.h; sourceTree = SOURCE_ROOT; };
C962199F2589B7AB00B47AB3 /* theoraplay.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = theoraplay.c; path = dependencies/all/theoraplay/theoraplay.c; sourceTree = SOURCE_ROOT; };
Expand All @@ -134,17 +164,30 @@
C96219912589B50100B47AB3 /* Ogg.framework in Frameworks */,
C96219842589B10600B47AB3 /* SDL2.framework in Frameworks */,
C96219942589B51000B47AB3 /* Vorbis.framework in Frameworks */,
852B66EB2C861FB900D69DFC /* AppKit.framework in Frameworks */,
C975E72C26E3303E00F09AD4 /* OpenGL.framework in Frameworks */,
C96219972589B51E00B47AB3 /* Theora.framework in Frameworks */,
852B66EF2C861FF600D69DFC /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
85D15D2B2C83DF3200C38EF2 /* Products */ = {
isa = PBXGroup;
children = (
85D15D312C83DF3200C38EF2 /* Ogg.framework */,
85D15D332C83DF3200C38EF2 /* Vorbis.framework */,
85D15D352C83DF3200C38EF2 /* Theora.framework */,
);
name = Products;
sourceTree = "<group>";
};
C962191025898A9300B47AB3 = {
isa = PBXGroup;
children = (
85D15D2A2C83DF3200C38EF2 /* Dependencies.xcodeproj */,
C962191B25898A9300B47AB3 /* RSDKv3 */,
C962191A25898A9300B47AB3 /* Products */,
C96219822589B10600B47AB3 /* Frameworks */,
Expand Down Expand Up @@ -235,12 +278,12 @@
C96219822589B10600B47AB3 /* Frameworks */ = {
isa = PBXGroup;
children = (
852B66E72C861FB800D69DFC /* AppKit.framework */,
852B66EE2C861FF600D69DFC /* Foundation.framework */,
C975E72B26E3303E00F09AD4 /* OpenGL.framework */,
C96219962589B51E00B47AB3 /* Theora.framework */,
C96219932589B51000B47AB3 /* Vorbis.framework */,
C96219902589B50100B47AB3 /* Ogg.framework */,
C962198C2589B3EF00B47AB3 /* Vorbis.framework */,
C96219892589B3D900B47AB3 /* Ogg.framework */,
C96219832589B10600B47AB3 /* SDL2.framework */,
);
name = Frameworks;
Expand All @@ -267,6 +310,7 @@
isa = PBXGroup;
children = (
C975E72526E32FA300F09AD4 /* tinyxml2.h */,
85A59A122C8ACD39009B9572 /* fcaseopen.h */,
C96219A3258C632200B47AB3 /* cocoaHelpers.hpp */,
);
name = helpers;
Expand All @@ -276,6 +320,7 @@
isa = PBXGroup;
children = (
C975E72926E32FC600F09AD4 /* tinyxml2.cpp */,
85A59A132C8ACD43009B9572 /* fcaseopen.c */,
C96219A4258C632A00B47AB3 /* cocoaHelpers.mm */,
);
name = helpers;
Expand Down Expand Up @@ -308,7 +353,8 @@
C962191125898A9300B47AB3 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1230;
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1540;
ORGANIZATIONNAME = Rubberduckycooly;
TargetAttributes = {
C962191825898A9300B47AB3 = {
Expand All @@ -327,13 +373,43 @@
mainGroup = C962191025898A9300B47AB3;
productRefGroup = C962191A25898A9300B47AB3 /* Products */;
projectDirPath = "";
projectReferences = (
{
ProductGroup = 85D15D2B2C83DF3200C38EF2 /* Products */;
ProjectRef = 85D15D2A2C83DF3200C38EF2 /* Dependencies.xcodeproj */;
},
);
projectRoot = "";
targets = (
C962191825898A9300B47AB3 /* RSDKv3 */,
);
};
/* End PBXProject section */

/* Begin PBXReferenceProxy section */
85D15D312C83DF3200C38EF2 /* Ogg.framework */ = {
isa = PBXReferenceProxy;
fileType = wrapper.framework;
path = Ogg.framework;
remoteRef = 85D15D302C83DF3200C38EF2 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
85D15D332C83DF3200C38EF2 /* Vorbis.framework */ = {
isa = PBXReferenceProxy;
fileType = wrapper.framework;
path = Vorbis.framework;
remoteRef = 85D15D322C83DF3200C38EF2 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
85D15D352C83DF3200C38EF2 /* Theora.framework */ = {
isa = PBXReferenceProxy;
fileType = wrapper.framework;
path = Theora.framework;
remoteRef = 85D15D342C83DF3200C38EF2 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXReferenceProxy section */

/* Begin PBXResourcesBuildPhase section */
C962191725898A9300B47AB3 /* Resources */ = {
isa = PBXResourcesBuildPhase;
Expand Down Expand Up @@ -371,6 +447,7 @@
C92834E72615E66D00D51CCE /* Video.cpp in Sources */,
C92834DB2615E66D00D51CCE /* String.cpp in Sources */,
C92834DD2615E66D00D51CCE /* Userdata.cpp in Sources */,
85A59A142C8ACD43009B9572 /* fcaseopen.c in Sources */,
C92834DE2615E66D00D51CCE /* Reader.cpp in Sources */,
C975E72A26E32FC600F09AD4 /* tinyxml2.cpp in Sources */,
C92834DF2615E66D00D51CCE /* Text.cpp in Sources */,
Expand Down Expand Up @@ -416,9 +493,11 @@
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
Expand Down Expand Up @@ -476,9 +555,11 @@
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
Expand All @@ -503,15 +584,11 @@
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/dependencies/mac",
"$(PROJECT_DIR)/dependencies/mac/ogg/macosx",
"$(PROJECT_DIR)/dependencies/mac/libvorbis-1.3.7/macosx",
"$(PROJECT_DIR)/dependencies/mac/libogg/macosx",
"$(PROJECT_DIR)/dependencies/mac/libvorbis/macosx",
"$(PROJECT_DIR)/dependencies/mac/libtheora/macosx",
);
HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/dependencies/all/tinyxml2";
INFOPLIST_FILE = "$(SRCROOT)/dependencies/mac/Info.plist";
Expand All @@ -534,15 +611,11 @@
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/dependencies/mac",
"$(PROJECT_DIR)/dependencies/mac/ogg/macosx",
"$(PROJECT_DIR)/dependencies/mac/libvorbis-1.3.7/macosx",
"$(PROJECT_DIR)/dependencies/mac/libogg/macosx",
"$(PROJECT_DIR)/dependencies/mac/libvorbis/macosx",
"$(PROJECT_DIR)/dependencies/mac/libtheora/macosx",
);
HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/dependencies/all/tinyxml2";
INFOPLIST_FILE = "$(SRCROOT)/dependencies/mac/Info.plist";
Expand Down
2 changes: 1 addition & 1 deletion RSDKv3.xcodeproj/xcshareddata/xcschemes/RSDKv3.xcscheme
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1230"
LastUpgradeVersion = "1540"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
8 changes: 8 additions & 0 deletions RSDKv3/Debug.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,15 @@ inline void PrintLog(const char *msg, ...)
char pathBuffer[0x100];
#if RETRO_PLATFORM == RETRO_OSX || RETRO_PLATFORM == RETRO_UWP
if (!usingCWD)
#if RETRO_PLATFORM == RETRO_OSX
{
char logBuffer[0x100];
getResourcesPath(logBuffer, sizeof(logBuffer));
sprintf(pathBuffer, "%s/log.txt", logBuffer);
}
#else
sprintf(pathBuffer, "%s/log.txt", getResourcesPath());
#endif
else
sprintf(pathBuffer, "log.txt");
#elif RETRO_PLATFORM == RETRO_ANDROID
Expand Down
6 changes: 4 additions & 2 deletions RSDKv3/Userdata.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -287,8 +287,10 @@ void InitUserdata()
#endif

#if RETRO_PLATFORM == RETRO_OSX
sprintf(gamePath, "%s/RSDKv3", getResourcesPath());
sprintf(modsPath, "%s/RSDKv3/", getResourcesPath());
getResourcesPath(gamePath, sizeof(gamePath));
#if RETRO_USE_MOD_LOADER
sprintf(modsPath, "%s/", gamePath);
#endif

mkdir(gamePath, 0777);
//#elif RETRO_PLATFORM == RETRO_LINUX
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 609387c

Please sign in to comment.