Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions .github/workflows/linux_build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Linux

on:
push: {}
pull_request: {}

env:
PROJECT_NAME: "PhotoQuick"
QT_VERSION: 5.15.0

jobs:
build:
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
strategy:
matrix:
config:
- {
name: "Ubuntu Latest",
os: "ubuntu-latest",
artifact: "Ubuntu",
build_type: "Release",
cmake_generator: '-G "Unix Makefiles"',
cmake_build_args: "-j",
}

steps:
- uses: actions/checkout@v2

- name: Install conan Packge-Manager
id: install_pm
run: |
export PATH="$HOME/.local/bin:$PATH"
pip install wheel
pip install conan
conan -v
conan profile new default --detect --force

- name: Download Qt modules
id: qt
uses: jurplel/install-qt-action@v2
with:
version: "${{ env.QT_VERSION }}"
modules: core gui widgets network

- name: CMake configure
id: cmake_configure
run: |
export PATH="$HOME/.local/bin:$PATH"
mkdir build && cd build
cmake .. ${{ matrix.config.cmake_generator }} -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }}

- name: CMake build
id: cmake_build
run: |
cd build
cmake --build . --config ${{ matrix.config.build_type }} -- ${{ matrix.config.cmake_build_args }}

- uses: actions/upload-artifact@v2
id: upload_artifact
with:
name: ${{ env.PROJECT_NAME }}-${{ matrix.config.artifact }}
path: ./build/bin/
57 changes: 57 additions & 0 deletions .github/workflows/macos_build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: MacOS

on:
push: {}
pull_request: {}

env:
PROJECT_NAME: "PhotoQuick"
QT_VERSION: 5.15.0

jobs:
build:
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
strategy:
matrix:
config:
- {
name: "MacOS Latest",
os: "macos-latest",
artifact: "MacOS",
build_type: "Release",
cmake_generator: "",
cmake_build_args: "-j8",
}

steps:
- uses: actions/checkout@v2
# - name: Install conan Packge-Manager
# id: install_pm
# run: |
# pip install conan
# conan -v
# conan profile new default --detect --force
# - name: Download Qt modules
# id: qt
# uses: jurplel/install-qt-action@v2
# with:
# version: "${{ env.QT_VERSION }}"
# modules: core gui widgets
# arch: "${{ matrix.config.xxxx }}"
# - name: CMake configure
# id: cmake_configure
# run: |
# mkdir build && cd build
# conan install ..
# cmake .. ${{ matrix.config.cmake_generator }} -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} -DUSE_CONAN_PM=ON
# - name: CMake build
# id: cmake_build
# run: |
# cd build
# cmake --build . --config ${{ matrix.config.build_type }} -- ${{ matrix.config.cmake_build_args }}
# - uses: actions/upload-artifact@v2
# id: upload_artifact
# with:
# name: ${{ matrix.config.artifact }}
# path: ./build/bin/
127 changes: 127 additions & 0 deletions .github/workflows/windows_build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
name: Windows

on:
push: {}
pull_request: {}

env:
VERSION: 2.0.0
PROJECT_NAME: "PhotoQuick"
QT_VERSION: 5.15.0
MSC_VERSION: "vc142"

jobs:
build:
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
strategy:
matrix:
config:
- {
name: "Windows Latest x64 Debug",
os: windows-latest,
arch: "x64",
artifact: "Windows-x64-Debug",
msvc: win64_msvc2019_64,
build_type: "Debug",
cmake_generator: '-G "Visual Studio 16 2019" -A x64',
cmake_build_args: "/M",
vs_env_script: "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars64.bat",
}
- {
name: "Windows Latest x64 Release",
os: windows-latest,
arch: "x64",
artifact: "Windows-x64-Release",
msvc: win64_msvc2019_64,
build_type: "Release",
cmake_generator: '-G "Visual Studio 16 2019" -A x64',
cmake_build_args: "/M",
vs_env_script: "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars64.bat",
}
- {
name: "Windows Latest x86 Debug",
os: windows-latest,
arch: "x86",
artifact: "Windows-x86-Debug",
msvc: win32_msvc2019,
build_type: "Debug",
cmake_generator: '-G "Visual Studio 16 2019" -A Win32',
cmake_build_args: "/M",
vs_env_script: "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars32.bat",
}
- {
name: "Windows Latest x86 Release",
os: windows-latest,
arch: "x86",
artifact: "Windows-x86-Release",
msvc: win32_msvc2019,
build_type: "Release",
cmake_generator: '-G "Visual Studio 16 2019" -A Win32',
cmake_build_args: "/M",
vs_env_script: "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars32.bat",
}

steps:
- uses: actions/checkout@v2

- name: Install conan Packge-Manager
id: install_pm
run: |
pip install conan
conan -v
conan profile new default --detect --force
conan remote add bincrafters https://api.bintray.com/conan/bincrafters/public-conan

- name: Download Qt modules
id: qt
uses: jurplel/install-qt-action@v2
with:
version: "${{ env.QT_VERSION }}"
modules: core gui widgets
arch: "${{ matrix.config.msvc }}"

- name: CMake configure
id: cmake_configure
run: |
mkdir build && cd build
cmake .. ${{ matrix.config.cmake_generator }} -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }}

- name: CMake build
id: cmake_build
run: |
cd build
cmake --build . --config ${{ matrix.config.build_type }} -- ${{ matrix.config.cmake_build_args }}

- name: Prepare standalone deployment
id: prepare_standalone
run: |
windeployqt ./build/bin/

- name: Prepare installers deployment
id: prepare_installers
if: ${{ matrix.config.build_type == 'Release' }}
run: |
cd source\PhotoQuickInstaller\Windows\${{ matrix.config.arch }}

# Download binarycreator, since there is no package for this yet.
echo "Downloading Qt's binarycreator..."
curl -L "https://drive.google.com/uc?export=download&id=1ubrrAB3NfJ5G9IBe2Ed4_4oWQtmmAuJC" -o .\bin.zip
tar -xf .\bin.zip

.\create.bat

- name: Upload standalone artifacts
id: upload_standalone_artifacts
uses: actions/upload-artifact@v2
with:
name: ${{ env.PROJECT_NAME }}-${{ matrix.config.artifact }}
path: ./build/bin/

- name: Upload installer artifacts
id: upload_installer_artifacts
uses: actions/upload-artifact@v2
if: ${{ matrix.config.build_type == 'Release' }}
with:
name: ${{ env.PROJECT_NAME }}Setup_${{ matrix.config.arch }}_${{ env.VERSION }}
path: ./source/PhotoQuickInstaller/Windows/${{ matrix.config.arch }}/${{ env.PROJECT_NAME }}Setup_${{ matrix.config.arch }}_${{ env.VERSION }}.exe
12 changes: 11 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
`Origin :`
![License](https://img.shields.io/github/license/ksharindam/photoquick)
![Release](https://img.shields.io/github/v/release/ksharindam/photoquick)
![Release Date](https://img.shields.io/github/release-date/ksharindam/photoquick)
![Downloads Total](https://img.shields.io/github/downloads/ksharindam/photoquick/total)
![Downloads Latest](https://img.shields.io/github/downloads/ksharindam/photoquick/latest/total)
![Downloads Latest](https://img.shields.io/github/downloads/ksharindam/photoquick/latest/total)
`ORG.IPEP:`
![GitHub release (latest by date)](https://img.shields.io/github/v/release/ImageProcessing-ElectronicPublications/photoquick)
![GitHub Release Date](https://img.shields.io/github/release-date/ImageProcessing-ElectronicPublications/photoquick)
![GitHub repo size](https://img.shields.io/github/repo-size/ImageProcessing-ElectronicPublications/photoquick)
![GitHub all releases](https://img.shields.io/github/downloads/ImageProcessing-ElectronicPublications/photoquick/total)
![GitHub](https://img.shields.io/github/license/ImageProcessing-ElectronicPublications/photoquick)

# PhotoQuick (for Linux and Windows)
A simple handy image viewer and editor with some useful features (Qt based).
Expand Down Expand Up @@ -113,3 +120,6 @@ Photo-Grid
Scissor Tool
![Scissor Tool](data/screenshots/Screenshot3.jpg)

### Examples

See [examples](https://github.com/ImageProcessing-ElectronicPublications/photoquick-examples).
6 changes: 6 additions & 0 deletions data/menu/photoquick
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
?package(photoquick):needs="x11" \
section="Applications/Graphics" \
title="PhotoQuick" \
longtitle="A simple handy image viewer and editor with some useful features" \
icon="/usr/share/pixmaps/photoquick.xpm" \
command="/usr/bin/photoquick"
110 changes: 110 additions & 0 deletions data/menu/photoquick.xpm
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
/* XPM */
static char *photoquick2[] = {
/* columns rows colors chars-per-pixel */
"96 96 8 1 ",
" c black",
". c #FF7053",
"X c #008B00",
"o c orange",
"O c yellow",
"+ c blue",
"@ c #96E9FF",
"# c None",
/* pixels */
"################################################################################################",
"################################################################################################",
"################################################################################################",
"################################################################################################",
"################################################################################################",
"################################################################################################",
" ",
" ",
" ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@........@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@............@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@............@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@............@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@............@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@........@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@....@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@+++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@@@+++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@@@++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@@@+++++O+++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@@+++++OOOO+++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@@++++OOOOOOO+++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@@+++OOOOOOOOOO+++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@@@+++OOOOOOOOOOOO+++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@@@++++OOOOOOOOOOOOOO+++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@@@+++++OOOOOOOOOOOOOOOO+++@@@@@@@@@@@@@@@@@@@@@@@@++@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@@++++++OOOOOOOOOOOOOOOOOO+++@@@@@@@@@@@@@@@@@@@@@++++++@@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@@+++++OOOOOOOOOOOOOOOOOOOOO+++@@@@@@@@@@@@@@@@@@+++++++++@@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@@++++OOOOOOOOOOOOOOOOOOOOOOOO+++@@@@@@@@@@@@+++++++++OO++++@@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@@@+++OOOOOOOOOOOOOOOOOOOOOOOOOOO+++@@@@@@@@@+++++++++OOOOOO+++@@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@@@++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++@@@@@@++++++OOOOOOOOOOOO+++@@@@@@@@@@@@@@@@@@@@ ",
" @@@@@+++++OOOOOOOOOOOOOOOOOOOOooOOOOOOOOO+++@@@++++++OOOOOOOOOOOOOOO+++@@@@@@@@@@@@@@@@@@@ ",
" @@@++++++OOOOOOOOOOOOOOOOOOOOOoooOOOOOOOOO+++++++++OOOOOOOOOOOOOOOOOO+++@@@@@@@@@@@@@@@@@@ ",
" @++++++OOOOOOOOOOOOOOOOOOOOOOOOoooOOOOOOOOO++++++OOOOOOOOOOOOOOOOOOOOO+++@@@@@@@@@@@@@@@@@ ",
" +++++OOOOOOOOOOOOOOOOOOOOOOOOOOOoooOOOOOOOOO+++OOOOOOOOOOOOOOOOOOOOOOOO+++@@@@@@@@@@@@@@@@ ",
" +++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoooOOOOOOOOO+++OOOOOOOOOOOOOOOOOOOOOOOO+++@@@@@@@@@@@@@@@ ",
" +OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOooOOOOOOOOOO+++OOOOOOOOOOOOOOOOOOOOOOOO+++@@@@@@@@@@@@@@ ",
" OOOOOOOOOOOOOOOOOOOOOOOOXXXOOOOOOOOOOOOOOOOOOOO+++OOOOOOOOOOOOOOOOOOOOOOOO+++@@@@@@@@@@@@@ ",
" OOOOOOOOOOOOOOOOOOOOOOOOXXXOOOOOOOOOOOOOOOOOOOOO+++OOOOOOOOOOOOOOOOOOOOOOOO+++@@@@@@@@@@@@ ",
" OOOOOOOOOOOOOOOOOOOOOOOXXXXXOOOOOOOOOOOOOOOOOOOOO+++OOOOOOOOOOOOOOOOOOOOOOOO+++@@@@@@@@@@@ ",
" OOOOOOOOOOOOOOOOOOOOOOXXXXXXXOOOOOOOOOOOOOOOOOOOOO+++OOOOOOOOOOOOOOOOOOOOOOOO+++@@@@@@@@@@ ",
" OOOOOOOOOOOOOOOOOOOOOOXXXXXXXOOOOOOOOOOOOOOOOOOOOOO+++OOOOOOOOOOOOOOOOOOOOOOOO+++@@@@@@@@@ ",
" OOOOOOOOOOOOOOOOOOOOOXXXXXXXXXOOOOOOOOOOOOOOOOOOOOOO+++OOOOOOOOOOOOOOOOOOOOOOOO+++@@@@@@@@ ",
" OOOOOOOOOOOOOOOOOOOOOXXXXXXXXXOOOOOOOOOOOOOOOOOOOOOOO+++OOOOOOOOOOOOOOOOOOOOOOOO+++@@@@@@@ ",
" OOOOOOOOOOOOOOOOOOOOOOXXXXXXXOOOOOOOOOOOOOOOOOOOOOOOOO+++OOOOOOOOOOOOOOOOOOOOOOOO+++@@@@@@ ",
" OOOOOOOOOOOOOOOOOOOOOOXXXXXXXOOOOOOOOOOOOOOOOOOOOOOOOOO++OOOOOOOOOOOOOOOOOOOOOOOOO+++@@@@@ ",
" OOOOOOOOOOOOOOOOOOOOOOOXXXXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++@@@@ ",
" OOOOOOOOOOOOOOOOOOOOOOOXXXXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++@@@ ",
" OOOOOOOOOOOOOOOOOOOOOOOOXXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++@ ",
" OOOOOOOOOXXXOOOOOOOOOOOOXXXOOOOOOOOOOOOXXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++ ",
" OOOOOOOOOXXXOOOOOOOOOOOXXXXXOOOOOOOOOOOXXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++ ",
" OOOOOOOOOXXXOOOOOOOOOOOXXXXXOOOOOOOOOOXXXXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+ ",
" OOOXXXOOOXXXOOOXXXOOOXXXXOXXXXOOOOOOXXXXXXXXXOOOOOOXXXOOOXXXOOOOOOOOOXXXOOOOOOXXXOOOOOOOOO ",
" OOOXXXOOOXXXOOOXXXOOOXXXOOOXXXOOOOOOXXXXXXXXXOOOOOOXXXOOOXXXOOOOOOOOOXXXOOOOOOXXXOOOOOOOOO ",
" OXXXXXOOOXXXOOOXXXOOOXXXOOOXXXXXOOXXXXXXXXXXXXXOOXXXXXOOOXXXXOOOOOOOXXXXXOOOOOXXXOOOOOOOOO ",
" XXXXXXOOOXXXXXXXXXXXXXXXOOOOXXXXXXXXXXOOOOOXXXXXXXXXOOOOXXXXXXOOOOOXXXXXXXOOOOXXXOOOOOXXXX ",
" XXXXXOOOXXXXXXXXXXXXXXXOOOOOXXXXXXXXOOOOOOOXXXXXXXOOOOXXXXXXXOOOOOXXXXXXXOOOOXXXOOOOXXXX ",
" XXXXOOOXXXXXXXXXXXXXXXOOOOOOXXXXXXOOOOOOOOOXXXXXXOOOXXXXXXXXXOOOXXXXXXXXXOOOXXXOOOXXXX ",
" ",
" ",
" ",
"################################################################################################",
"################################################################################################",
"################################################################################################",
"################################################################################################",
"################################################################################################",
"################################################################################################",
"################################################################################################",
"################################################################################################",
"################################################################################################",
"################################################################################################",
"################################################################################################",
"################################################################################################",
"################################################################################################",
"################################################################################################",
"################################################################################################",
"################################################################################################",
"################################################################################################",
"################################################################################################",
"################################################################################################",
"################################################################################################",
"################################################################################################"
};
Loading