Compare commits
51 Commits
it_auth
...
internal_i
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8378af153b | ||
|
|
7f57fd597c | ||
|
|
f7515f520c | ||
|
|
b0ebbce292 | ||
|
|
3d409ffd77 | ||
|
|
6d45c3c4e5 | ||
|
|
35ca600c4e | ||
|
|
6fcf2732a8 | ||
|
|
311e8f3939 | ||
|
|
da1ff4131c | ||
|
|
d0bbdfec8e | ||
|
|
e5f2ae8ac8 | ||
|
|
a119babe21 | ||
|
|
9dd9a8db80 | ||
|
|
ea4282882e | ||
|
|
862064d2e4 | ||
|
|
191ec62215 | ||
|
|
dabd703803 | ||
|
|
be6bc3747b | ||
|
|
9f9eab3644 | ||
|
|
91499c7775 | ||
|
|
f254a7841b | ||
|
|
e583794d37 | ||
|
|
87df2add67 | ||
|
|
c074f66b38 | ||
|
|
9bdf6305f7 | ||
|
|
e13e27c10e | ||
|
|
d1d7d03af2 | ||
|
|
ba2cf287ce | ||
|
|
619d7676f6 | ||
|
|
0d7cbd3187 | ||
|
|
a292d09d8c | ||
|
|
7450996f4d | ||
|
|
f37d94a2bd | ||
|
|
d48b4392f5 | ||
|
|
8feb69d711 | ||
|
|
24266e9eca | ||
|
|
3419197817 | ||
|
|
6d59e51ffa | ||
|
|
16bc189c2b | ||
|
|
c942257c5f | ||
|
|
bc7d265812 | ||
|
|
f7ee1099c4 | ||
|
|
f6852885b1 | ||
|
|
ee1686370b | ||
|
|
c94e817205 | ||
|
|
4669107647 | ||
|
|
dcf0192257 | ||
|
|
a0686dc8bd | ||
|
|
506fc51675 | ||
|
|
6751648aae |
2
.github/workflows/auth-crowdin-push.yml
vendored
@@ -5,7 +5,7 @@ on:
|
||||
branches: [main]
|
||||
paths:
|
||||
# Run workflow when auth's intl_en.arb is changed
|
||||
- "mobile/apps/auth/lib/l10n/arb/app_en.arb"
|
||||
- "auth/lib/l10n/arb/app_en.arb"
|
||||
# Or the workflow itself is changed
|
||||
- ".github/workflows/auth-crowdin.yml"
|
||||
|
||||
|
||||
2
.github/workflows/auth-internal-release.yml
vendored
@@ -4,7 +4,7 @@ on:
|
||||
workflow_dispatch: # Allow manually running the action
|
||||
|
||||
env:
|
||||
FLUTTER_VERSION: "3.32.8"
|
||||
FLUTTER_VERSION: "3.24.3"
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
4
.github/workflows/auth-lint.yml
vendored
@@ -4,11 +4,11 @@ on:
|
||||
# Run on every pull request (open or push to it) that changes auth/
|
||||
pull_request:
|
||||
paths:
|
||||
- "mobile/apps/auth/**"
|
||||
- "auth/**"
|
||||
- ".github/workflows/auth-lint.yml"
|
||||
|
||||
env:
|
||||
FLUTTER_VERSION: "3.32.8"
|
||||
FLUTTER_VERSION: "3.24.3"
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
2
.github/workflows/auth-release.yml
vendored
@@ -29,7 +29,7 @@ on:
|
||||
- "auth-v*"
|
||||
|
||||
env:
|
||||
FLUTTER_VERSION: "3.32.8"
|
||||
FLUTTER_VERSION: "3.24.3"
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
152
.github/workflows/mobile-daily-internal.yml
vendored
@@ -1,152 +0,0 @@
|
||||
name: "Internal release (photos)"
|
||||
|
||||
on:
|
||||
schedule:
|
||||
# Runs daily at 12:30 UTC (6:00 PM IST)
|
||||
- cron: "30 12 * * *"
|
||||
workflow_dispatch: # Allow manual trigger
|
||||
|
||||
env:
|
||||
FLUTTER_VERSION: "3.32.8"
|
||||
RUST_VERSION: "1.86.0"
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
defaults:
|
||||
run:
|
||||
working-directory: mobile/apps/photos
|
||||
|
||||
steps:
|
||||
- name: Checkout code and submodules
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Setup JDK 17
|
||||
uses: actions/setup-java@v1
|
||||
with:
|
||||
java-version: 17
|
||||
|
||||
- name: Install Flutter ${{ env.FLUTTER_VERSION }}
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: "stable"
|
||||
flutter-version: ${{ env.FLUTTER_VERSION }}
|
||||
cache: true
|
||||
|
||||
- name: Install Rust ${{ env.RUST_VERSION }}
|
||||
uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: ${{ env.RUST_VERSION }}
|
||||
|
||||
- name: Install Flutter Rust Bridge
|
||||
run: cargo install flutter_rust_bridge_codegen
|
||||
|
||||
- name: Generate Rust bindings
|
||||
run: flutter_rust_bridge_codegen generate
|
||||
|
||||
- name: Increment version code for build
|
||||
run: |
|
||||
CURRENT_VERSION=$(grep '^version:' pubspec.yaml | sed 's/version: //')
|
||||
VERSION_NAME=$(echo $CURRENT_VERSION | cut -d'+' -f1)
|
||||
CURRENT_BUILD=$(echo $CURRENT_VERSION | cut -d'+' -f2)
|
||||
NEW_BUILD=$((CURRENT_BUILD + ${{ github.run_number }}))
|
||||
NEW_VERSION="${VERSION_NAME}+${NEW_BUILD}"
|
||||
|
||||
sed -i "s/^version: .*/version: $NEW_VERSION/" pubspec.yaml
|
||||
echo "Building with version ${NEW_VERSION}"
|
||||
|
||||
# Store version for later use
|
||||
echo "NEW_VERSION=${NEW_VERSION}" >> $GITHUB_ENV
|
||||
|
||||
- name: Prepare and validate changelog for Play Store
|
||||
run: |
|
||||
mkdir -p whatsnew
|
||||
CHANGELOG_FILE="scripts/store_changes.txt"
|
||||
DISCORD_FILE="scripts/internal_changes.txt"
|
||||
OUTPUT_FILE="whatsnew/whatsnew-en-US"
|
||||
|
||||
# Use provided changelog or fallback
|
||||
if [ -f "$CHANGELOG_FILE" ]; then
|
||||
head -c 500 "$CHANGELOG_FILE" > "$OUTPUT_FILE"
|
||||
else
|
||||
echo "Bug fixes and improvements" > "$OUTPUT_FILE"
|
||||
fi
|
||||
|
||||
# Validate: file exists
|
||||
if [ ! -s "$OUTPUT_FILE" ]; then
|
||||
echo "❌ Changelog is empty."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Validate: <= 500 chars
|
||||
LENGTH=$(wc -m < "$OUTPUT_FILE")
|
||||
if [ "$LENGTH" -gt 500 ]; then
|
||||
echo "❌ Changelog exceeds 500 characters ($LENGTH)."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Validate: no markdown or HTML
|
||||
if grep -Eq '[\*\_\<\>\[\]\(\)]' "$OUTPUT_FILE"; then
|
||||
echo "❌ Changelog contains markdown/HTML formatting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "✅ Changelog valid:"
|
||||
cat "$OUTPUT_FILE"
|
||||
|
||||
# Store changelog for Play Store (with escaped newlines)
|
||||
CHANGELOG_PLAYSTORE=$(cat "$OUTPUT_FILE" | sed ':a;N;$!ba;s/\n/\\n/g' | sed 's/"/\\"/g')
|
||||
echo "CHANGELOG=${CHANGELOG_PLAYSTORE}" >> $GITHUB_ENV
|
||||
|
||||
# Store changelog for Discord (with proper newlines)
|
||||
CHANGELOG_DISCORD=$(cat "$DISCORD_FILE" | sed 's/"/\\"/g')
|
||||
echo "CHANGELOG_DISCORD<<EOF" >> $GITHUB_ENV
|
||||
echo "$CHANGELOG_DISCORD" >> $GITHUB_ENV
|
||||
echo "EOF" >> $GITHUB_ENV
|
||||
|
||||
- name: Setup keys
|
||||
uses: timheuer/base64-to-file@v1
|
||||
with:
|
||||
fileName: "keystore/ente_photos_key.jks"
|
||||
encodedString: ${{ secrets.SIGNING_KEY_PHOTOS }}
|
||||
|
||||
- name: Build PlayStore AAB
|
||||
run: |
|
||||
flutter build appbundle --dart-define=cronetHttpNoPlay=true --release --flavor playstore
|
||||
env:
|
||||
SIGNING_KEY_PATH: "/home/runner/work/_temp/keystore/ente_photos_key.jks"
|
||||
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS_PHOTOS }}
|
||||
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD_PHOTOS }}
|
||||
SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD_PHOTOS }}
|
||||
|
||||
- name: Upload AAB to PlayStore
|
||||
uses: r0adkll/upload-google-play@v1
|
||||
with:
|
||||
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
|
||||
packageName: io.ente.photos
|
||||
releaseFiles: mobile/apps/photos/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
|
||||
track: internal
|
||||
whatsNewDirectory: mobile/apps/photos/whatsnew
|
||||
mappingFile: mobile/apps/photos/build/app/outputs/mapping/playstoreRelease/mapping.txt
|
||||
|
||||
- name: Notify Discord
|
||||
uses: sarisia/actions-status-discord@v1
|
||||
with:
|
||||
webhook: ${{ secrets.DISCORD_INTERNAL_RELEASE_WEBHOOK }}
|
||||
nodetail: true
|
||||
title: "🏆 Daily release Photos v${{ env.NEW_VERSION }} (Branch: ${{ github.ref_name }})"
|
||||
description: |
|
||||
**Version:** ${{ env.NEW_VERSION }}
|
||||
**Flutter:** ${{ env.FLUTTER_VERSION }}
|
||||
**Commit:** [${{ github.sha }}](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }})
|
||||
**Download:** [Play Store](https://play.google.com/store/apps/details?id=io.ente.photos)
|
||||
|
||||
**Changes:**
|
||||
${{ env.CHANGELOG_DISCORD }}
|
||||
color: 0x00ff00
|
||||
77
.github/workflows/mobile-internal-release-rust.yml
vendored
Normal file
@@ -0,0 +1,77 @@
|
||||
name: "Internal release (photos)"
|
||||
|
||||
on:
|
||||
workflow_dispatch: # Allow manually running the action
|
||||
|
||||
env:
|
||||
FLUTTER_VERSION: "3.24.3"
|
||||
RUST_VERSION: "1.85.1"
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
defaults:
|
||||
run:
|
||||
working-directory: mobile/apps/photos
|
||||
|
||||
steps:
|
||||
- name: Checkout code and submodules
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Setup JDK 17
|
||||
uses: actions/setup-java@v1
|
||||
with:
|
||||
java-version: 17
|
||||
|
||||
- name: Install Flutter ${{ env.FLUTTER_VERSION }}
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: "stable"
|
||||
flutter-version: ${{ env.FLUTTER_VERSION }}
|
||||
cache: true
|
||||
|
||||
- name: Install Rust ${{ env.RUST_VERSION }}
|
||||
uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: ${{ env.RUST_VERSION }}
|
||||
|
||||
- name: Install Flutter Rust Bridge
|
||||
run: cargo install flutter_rust_bridge_codegen
|
||||
|
||||
- name: Setup keys
|
||||
uses: timheuer/base64-to-file@v1
|
||||
with:
|
||||
fileName: "keystore/ente_photos_key.jks"
|
||||
encodedString: ${{ secrets.SIGNING_KEY_PHOTOS }}
|
||||
|
||||
- name: Build PlayStore AAB
|
||||
run: |
|
||||
flutter build appbundle --dart-define=cronetHttpNoPlay=true --release --flavor playstore
|
||||
env:
|
||||
SIGNING_KEY_PATH: "/home/runner/work/_temp/keystore/ente_photos_key.jks"
|
||||
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS_PHOTOS }}
|
||||
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD_PHOTOS }}
|
||||
SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD_PHOTOS }}
|
||||
|
||||
- name: Upload AAB to PlayStore
|
||||
uses: r0adkll/upload-google-play@v1
|
||||
with:
|
||||
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
|
||||
packageName: io.ente.photos
|
||||
releaseFiles: mobile/apps/photos/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
|
||||
track: internal
|
||||
|
||||
- name: Notify Discord
|
||||
uses: sarisia/actions-status-discord@v1
|
||||
with:
|
||||
webhook: ${{ secrets.DISCORD_INTERNAL_RELEASE_WEBHOOK }}
|
||||
nodetail: true
|
||||
title: "🏆 Internal release available for Photos"
|
||||
description: "[Download](https://play.google.com/store/apps/details?id=io.ente.photos)"
|
||||
color: 0x00ff00
|
||||
13
.github/workflows/mobile-internal-release.yml
vendored
@@ -1,11 +1,10 @@
|
||||
name: "Old Internal release (photos)"
|
||||
name: "Internal release (photos)"
|
||||
|
||||
on:
|
||||
workflow_dispatch: # Allow manually running the action
|
||||
|
||||
env:
|
||||
FLUTTER_VERSION: "3.32.8"
|
||||
RUST_VERSION: "1.85.1"
|
||||
FLUTTER_VERSION: "3.27.4"
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
@@ -36,14 +35,6 @@ jobs:
|
||||
flutter-version: ${{ env.FLUTTER_VERSION }}
|
||||
cache: true
|
||||
|
||||
- name: Install Rust ${{ env.RUST_VERSION }}
|
||||
uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: ${{ env.RUST_VERSION }}
|
||||
|
||||
- name: Install Flutter Rust Bridge
|
||||
run: cargo install flutter_rust_bridge_codegen
|
||||
|
||||
- name: Setup keys
|
||||
uses: timheuer/base64-to-file@v1
|
||||
with:
|
||||
|
||||
16
.github/workflows/mobile-lint.yml
vendored
@@ -8,8 +8,7 @@ on:
|
||||
- ".github/workflows/mobile-lint.yml"
|
||||
|
||||
env:
|
||||
FLUTTER_VERSION: "3.32.8"
|
||||
RUST_VERSION: "1.86.0"
|
||||
FLUTTER_VERSION: "3.27.4"
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
@@ -32,18 +31,7 @@ jobs:
|
||||
channel: "stable"
|
||||
flutter-version: ${{ env.FLUTTER_VERSION }}
|
||||
cache: true
|
||||
|
||||
|
||||
- run: flutter pub get
|
||||
|
||||
- name: Install Rust ${{ env.RUST_VERSION }}
|
||||
uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: ${{ env.RUST_VERSION }}
|
||||
|
||||
- name: Install Flutter Rust Bridge
|
||||
run: cargo install flutter_rust_bridge_codegen
|
||||
|
||||
- name: Generate Rust bindings
|
||||
run: flutter_rust_bridge_codegen generate
|
||||
|
||||
- run: flutter analyze --no-fatal-infos
|
||||
|
||||
2
.github/workflows/mobile-release.yml
vendored
@@ -9,7 +9,7 @@ on:
|
||||
- "photos-v*"
|
||||
|
||||
env:
|
||||
FLUTTER_VERSION: "3.32.8"
|
||||
FLUTTER_VERSION: "3.27.4"
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
76
.github/workflows/photos-internal-release.yml
vendored
@@ -4,12 +4,12 @@ on:
|
||||
workflow_dispatch: # Manual trigger only
|
||||
|
||||
env:
|
||||
FLUTTER_VERSION: "3.32.8"
|
||||
FLUTTER_VERSION: "3.27.4"
|
||||
ANDROID_KEYSTORE_PATH: "keystore/ente_photos_key.jks"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: macos-latest # Required for iOS builds
|
||||
runs-on: macos-15 # Required for iOS builds
|
||||
environment: "ios-build"
|
||||
permissions:
|
||||
contents: write
|
||||
@@ -19,12 +19,50 @@ jobs:
|
||||
working-directory: mobile/apps/photos
|
||||
|
||||
steps:
|
||||
# Common Setup
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Install Apple Certificate
|
||||
env:
|
||||
MAC_OS_CERTIFICATE: ${{ secrets.MAC_OS_CERTIFICATE }}
|
||||
MAC_OS_CERTIFICATE_PASSWORD: ${{ secrets.MAC_OS_CERTIFICATE_PASSWORD }}
|
||||
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
|
||||
run: |
|
||||
# Create variables
|
||||
CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
|
||||
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
|
||||
|
||||
# Import certificate from secrets
|
||||
echo -n "$MAC_OS_CERTIFICATE" | base64 --decode -o $CERTIFICATE_PATH
|
||||
|
||||
# Create temporary keychain
|
||||
security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
|
||||
security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
|
||||
security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
|
||||
|
||||
# Import certificate to keychain
|
||||
security import $CERTIFICATE_PATH -P "$MAC_OS_CERTIFICATE_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
|
||||
security set-key-partition-list -S apple-tool:,apple: -k "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
|
||||
|
||||
# Make the keychain the default
|
||||
security list-keychain -d user -s $KEYCHAIN_PATH
|
||||
|
||||
- name: Add provisioning profiles
|
||||
run: |
|
||||
# Decode and install all provisioning profiles
|
||||
PROFILES_HOME="$HOME/Library/MobileDevice/Provisioning Profiles"
|
||||
mkdir -p "$PROFILES_HOME"
|
||||
IFS=$'\n'
|
||||
for profile in ${{ secrets.MAC_OS_PROFILES_BASE64 }}; do
|
||||
PROFILE_PATH="$(mktemp "$PROFILES_HOME"/$(uuidgen).mobileprovision)"
|
||||
echo "$profile" | base64 --decode > "$PROFILE_PATH"
|
||||
echo "Saved provisioning profile to $PROFILE_PATH"
|
||||
done
|
||||
|
||||
# Common Setup
|
||||
|
||||
- name: Setup JDK 17
|
||||
uses: actions/setup-java@v1
|
||||
with:
|
||||
@@ -35,8 +73,11 @@ jobs:
|
||||
with:
|
||||
flutter-version: ${{ env.FLUTTER_VERSION }}
|
||||
cache: true
|
||||
|
||||
- name: Get Flutter dependencies
|
||||
run: flutter pub get
|
||||
|
||||
# Android Build
|
||||
# Android Build
|
||||
- name: Setup Android signing key
|
||||
uses: timheuer/base64-to-file@v1
|
||||
with:
|
||||
@@ -59,6 +100,16 @@ jobs:
|
||||
- name: Install fastlane
|
||||
run: gem install fastlane
|
||||
|
||||
- name: Update CocoaPods Specs
|
||||
run: pod repo update
|
||||
working-directory: mobile/apps/photos/ios
|
||||
|
||||
- name: Install CocoaPods dependencies
|
||||
run: |
|
||||
rm -f Podfile.lock
|
||||
pod install
|
||||
working-directory: mobile/apps/photos/ios
|
||||
|
||||
- name: Create ExportOptions.plist
|
||||
run: |
|
||||
cat <<EOF > ios/ExportOptions.plist
|
||||
@@ -70,10 +121,23 @@ jobs:
|
||||
<string>app-store</string>
|
||||
<key>teamID</key>
|
||||
<string>${{ secrets.IOS_TEAM_ID }}</string>
|
||||
<key>provisioningProfiles</key>
|
||||
<dict>
|
||||
<key>io.ente.photos</key>
|
||||
<string>match AppStore io.ente.photos</string>
|
||||
<key>io.ente.frame</key>
|
||||
<string>match AppStore io.ente.frame</string>
|
||||
<key>io.ente.frame.EntePeopleWidget</key>
|
||||
<string>match AppStore io.ente.frame.EntePeopleWidget</string>
|
||||
<key>io.ente.frame.EnteAlbumWidget</key>
|
||||
<string>match AppStore io.ente.frame.EnteAlbumWidget</string>
|
||||
<key>io.ente.frame.EnteMemoryWidget</key>
|
||||
<string>match AppStore io.ente.frame.EnteMemoryWidget</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
EOF
|
||||
|
||||
|
||||
- name: Setup App Store Connect API Key
|
||||
run: |
|
||||
echo '${{ secrets.IOS_API_KEY }}' > api_key.json
|
||||
@@ -83,7 +147,7 @@ jobs:
|
||||
run: |
|
||||
flutter build ipa \
|
||||
--release \
|
||||
--export-options-plist=ExportOptions.plist \
|
||||
--export-options-plist=ios/ExportOptions.plist \
|
||||
--dart-define=cronetHttpNoPlay=true
|
||||
env:
|
||||
SIGNING_TEAM_ID: ${{ secrets.IOS_TEAM_ID }}
|
||||
|
||||
44
.github/workflows/rust-lint.yml
vendored
@@ -1,44 +0,0 @@
|
||||
name: "Lint (rust)"
|
||||
|
||||
on:
|
||||
# Run on every pull request (open or push to it) that changes rust/
|
||||
pull_request:
|
||||
paths:
|
||||
- "rust/**"
|
||||
- ".github/workflows/rust-lint.yml"
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
# Cancel in-progress lint runs when a new commit is pushed.
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
RUSTFLAGS: -D warnings
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
defaults:
|
||||
run:
|
||||
working-directory: rust
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Cache
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/registry
|
||||
~/.cargo/git
|
||||
target
|
||||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
||||
|
||||
- run: cargo fmt --check
|
||||
|
||||
- run: cargo clippy --all-targets --all-features
|
||||
|
||||
- run: cargo build
|
||||
12
.github/workflows/web-deploy.yml
vendored
@@ -54,18 +54,6 @@ jobs:
|
||||
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
||||
command: pages deploy --project-name=ente --commit-dirty=true --branch=deploy/photos web/apps/photos/out
|
||||
|
||||
- name: Build custom-albums
|
||||
run: yarn build:photos
|
||||
env:
|
||||
NEXT_PUBLIC_ENTE_ONLY_SERVE_ALBUMS_APP: 1
|
||||
|
||||
- name: Publish custom-albums
|
||||
uses: cloudflare/wrangler-action@v3
|
||||
with:
|
||||
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
||||
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
||||
command: pages deploy --project-name=ente --commit-dirty=true --branch=deploy/custom-albums web/apps/photos/out
|
||||
|
||||
- name: Build accounts
|
||||
run: yarn build:accounts
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ See [docs/](docs/README.md) for how to edit these documents.
|
||||
|
||||
## Code contributions
|
||||
|
||||
If you'd like to contribute code, it is best to start small. Consider some well-scoped changes, say like adding more [custom icons to auth](mobile/apps/auth/docs/adding-icons.md), or fixing a specific bug.
|
||||
If you'd like to contribute code, it is best to start small. Consider some well-scoped changes, say like adding more [custom icons to auth](auth/docs/adding-icons.md), or fixing a specific bug.
|
||||
|
||||
Code that changes the behaviour of the product might not get merged, at least not initially. The PR can serve as a discussion bed, but you might find it easier to just start a discussion instead, or post your perspective in the (likely) existing thread about the behaviour change or new feature you wish for.
|
||||
|
||||
|
||||
@@ -142,22 +142,6 @@ var _updateFreeUserStorage = &cobra.Command{
|
||||
},
|
||||
}
|
||||
|
||||
var _sendMail = &cobra.Command{
|
||||
Use: "send-mail <to-email> <from-email> <from-name>",
|
||||
Args: cobra.ExactArgs(3),
|
||||
Short: "Sends a test mail via the admin api",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
recoverWithLog()
|
||||
var flags = &model.AdminActionForUser{}
|
||||
cmd.Flags().VisitAll(func(f *pflag.Flag) {
|
||||
if f.Name == "admin-user" {
|
||||
flags.AdminEmail = f.Value.String()
|
||||
}
|
||||
})
|
||||
return ctrl.SendTestMail(context.Background(), *flags, args[0], args[1], args[2])
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
rootCmd.AddCommand(_adminCmd)
|
||||
_ = _userDetailsCmd.MarkFlagRequired("admin-user")
|
||||
@@ -175,6 +159,5 @@ func init() {
|
||||
_updateFreeUserStorage.Flags().StringP("user", "u", "", "The email of the user to update subscription for. (required)")
|
||||
// add a flag with no value --no-limit
|
||||
_updateFreeUserStorage.Flags().String("no-limit", "True", "When true, sets 100TB as storage limit, and expiry to current date + 100 years")
|
||||
_sendMail.Flags().StringP("admin-user", "a", "", "The email of the admin user. ")
|
||||
_adminCmd.AddCommand(_userDetailsCmd, _disable2faCmd, _disablePasskeyCmd, _updateFreeUserStorage, _listUsers, _deleteUser, _sendMail)
|
||||
_adminCmd.AddCommand(_userDetailsCmd, _disable2faCmd, _disablePasskeyCmd, _updateFreeUserStorage, _listUsers, _deleteUser)
|
||||
}
|
||||
|
||||
@@ -2,11 +2,10 @@ package cmd
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"runtime"
|
||||
|
||||
"github.com/ente-io/cli/pkg"
|
||||
"github.com/spf13/cobra/doc"
|
||||
"os"
|
||||
"runtime"
|
||||
|
||||
"github.com/spf13/viper"
|
||||
|
||||
@@ -21,6 +20,11 @@ var ctrl *pkg.ClICtrl
|
||||
var rootCmd = &cobra.Command{
|
||||
Use: "ente",
|
||||
Short: "CLI tool for exporting your photos from ente.io",
|
||||
// Uncomment the following line if your bare application
|
||||
// has an action associated with it:
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
fmt.Sprintf("Hello World")
|
||||
},
|
||||
}
|
||||
|
||||
func GenerateDocs() error {
|
||||
|
||||
@@ -139,28 +139,5 @@ func (c *Client) UpdateFreePlanSub(ctx context.Context, userDetails *models.User
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *Client) SendTestMail(ctx context.Context, toEmail, fromEmail, fromName string) error {
|
||||
body := map[string]interface{}{
|
||||
"to": []string{toEmail},
|
||||
"fromName": fromName,
|
||||
"fromEmail": fromEmail,
|
||||
"subject": "Test mail from Ente",
|
||||
"body": "This is a test mail from Ente",
|
||||
}
|
||||
r, err := c.restClient.R().
|
||||
SetContext(ctx).
|
||||
SetBody(body).
|
||||
Post("/admin/mail")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if r.IsError() {
|
||||
return &ApiError{
|
||||
StatusCode: r.StatusCode(),
|
||||
Message: r.String(),
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -156,23 +156,6 @@ func (c *ClICtrl) UpdateFreeStorage(ctx context.Context, params model.AdminActio
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *ClICtrl) SendTestMail(ctx context.Context, params model.AdminActionForUser, to, from, fromName string) error {
|
||||
accountCtx, err := c.buildAdminContext(ctx, params.AdminEmail)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = c.Client.SendTestMail(accountCtx, to, from, fromName)
|
||||
if err != nil {
|
||||
if apiErr, ok := err.(*api.ApiError); ok && apiErr.StatusCode == 400 && strings.Contains(apiErr.Message, "Token is too old") {
|
||||
fmt.Printf("Error: old admin token, please re-authenticate using `ente account add` \n")
|
||||
return nil
|
||||
}
|
||||
return err
|
||||
}
|
||||
fmt.Printf("Successfully sent test email to %s\n", to)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *ClICtrl) buildAdminContext(ctx context.Context, adminEmail string) (context.Context, error) {
|
||||
accounts, err := c.GetAccounts(ctx)
|
||||
if err != nil {
|
||||
|
||||
@@ -44,7 +44,8 @@ jobs:
|
||||
# If triggered by a tag, checkout photosd-$tag from the source
|
||||
# repository. Otherwise checkout $source (default: "main").
|
||||
repository: ente-io/ente
|
||||
ref: "${{ startsWith(github.ref, 'refs/tags/v') &&
|
||||
ref:
|
||||
"${{ startsWith(github.ref, 'refs/tags/v') &&
|
||||
format('photosd-{0}', github.ref_name) || ( inputs.source
|
||||
|| 'main' ) }}"
|
||||
|
||||
@@ -109,7 +110,8 @@ jobs:
|
||||
env:
|
||||
# macOS notarization credentials key details
|
||||
APPLE_ID: ${{ secrets.APPLE_ID }}
|
||||
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
|
||||
APPLE_APP_SPECIFIC_PASSWORD:
|
||||
${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
|
||||
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
|
||||
# Windows Azure Trusted Signing related values
|
||||
# https://www.electron.build/code-signing-win#using-azure-trusted-signing-beta
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"tabWidth": 4,
|
||||
"proseWrap": "always",
|
||||
"objectWrap": "collapse",
|
||||
"plugins": [
|
||||
"prettier-plugin-organize-imports",
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
|
||||
## v1.7.15 (Unreleased)
|
||||
|
||||
- Custom domains.
|
||||
- Support Czech translations.
|
||||
- .
|
||||
|
||||
## v1.7.14
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"tabWidth": 4
|
||||
"tabWidth": 4,
|
||||
"proseWrap": "always"
|
||||
}
|
||||
|
||||
@@ -26,10 +26,6 @@ export const sidebar = [
|
||||
text: "Collecting photos",
|
||||
link: "/photos/features/collect",
|
||||
},
|
||||
{
|
||||
text: "Custom domains",
|
||||
link: "/photos/features/custom-domains/",
|
||||
},
|
||||
{
|
||||
text: "Deduplicate",
|
||||
link: "/photos/features/deduplicate",
|
||||
@@ -346,17 +342,13 @@ export const sidebar = [
|
||||
text: "General",
|
||||
link: "/self-hosting/troubleshooting/misc",
|
||||
},
|
||||
{
|
||||
text: "Docker / quickstart",
|
||||
link: "/self-hosting/troubleshooting/docker",
|
||||
},
|
||||
{
|
||||
text: "Uploads",
|
||||
link: "/self-hosting/troubleshooting/uploads",
|
||||
},
|
||||
{
|
||||
text: "Ente CLI",
|
||||
link: "/self-hosting/troubleshooting/cli",
|
||||
text: "Docker / quickstart",
|
||||
link: "/self-hosting/troubleshooting/docker",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: Migrating to Ente Auth
|
||||
description: Guides for migrating your existing 2FA tokens into or out of Ente Auth
|
||||
description:
|
||||
Guides for migrating your existing 2FA tokens into or out of Ente Auth
|
||||
---
|
||||
|
||||
# Migrating to/from Ente Auth
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: Desktop app FAQ
|
||||
description: An assortment of frequently asked questions about Ente Photos desktop app
|
||||
description:
|
||||
An assortment of frequently asked questions about Ente Photos desktop app
|
||||
---
|
||||
|
||||
# Desktop app FAQ
|
||||
|
||||
@@ -67,7 +67,7 @@ reliable as any one can be.
|
||||
If you would like to fund the development of this project, please consider
|
||||
[subscribing](https://ente.io/download).
|
||||
|
||||
## How do I pronounce Ente?
|
||||
## How do I pronounce ente?
|
||||
|
||||
It's like cafe 😊. kaf-_ay_. en-_tay_.
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: Security and Privacy FAQ
|
||||
description: Comprehensive information about security and privacy measures in Ente Photos
|
||||
description:
|
||||
Comprehensive information about security and privacy measures in Ente Photos
|
||||
---
|
||||
|
||||
# Security and Privacy FAQ
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: Cast
|
||||
description: Casting your photos on to a large screen or a TV or a Chromecast device
|
||||
description:
|
||||
Casting your photos on to a large screen or a TV or a Chromecast device
|
||||
---
|
||||
|
||||
# Cast
|
||||
|
||||
|
Before Width: | Height: | Size: 74 KiB |
@@ -1,105 +0,0 @@
|
||||
---
|
||||
title: Custom domains
|
||||
description: Use your own domain when sharing photos and videos stored in Ente Photos
|
||||
---
|
||||
|
||||
# Custom domains
|
||||
|
||||
Custom domains allow you to serve your public links with your own personalized domain.
|
||||
|
||||
For example, if I have an Ente album and wish to share it with my friends, I can go to the album's sharing settings and create a public link. When I copy this link, it will of the form of
|
||||
|
||||
```
|
||||
https://albums.ente.io/?t=...
|
||||
```
|
||||
|
||||
The custom domains feature allows you to instead create a link that uses your own domain, say
|
||||
|
||||
```
|
||||
https://pics.example.org/?t=...
|
||||
```
|
||||
|
||||
You don't need to run any servers or manage any services, Ente will still host and serve your album for you, the only thing that changes is that you can serve your links using your personalized domain.
|
||||
|
||||
## Availability
|
||||
|
||||
The custom domains feature requires the ability to publicly share albums which for abuse prevention reasons can only be done by people with an active Ente subscription.
|
||||
|
||||
## Setup
|
||||
|
||||
The setup involves two steps:
|
||||
|
||||
1. Letting Ente know about the domain you wish to use for serving your public links
|
||||
2. Updating your DNS settings to point your domain (or subdomain) to **my.ente.io**
|
||||
|
||||
For people who are comfortable with changing DNS settings on their domain provider, this entire process is very simple will take a minute. For people who are not comfortable with changing DNS, we will provide a more detailed breakdown below.
|
||||
|
||||
Let's dive in.
|
||||
|
||||
To make the process concrete, let's assume we're trying to use _pics.example.org_ as our custom domain. Note that there is no restriction to use a subdomain, a top level domain can be used as a custom domain too. That is, either of _example.org_ or _subdomain.example.org_ is fine, Ente will work with both.
|
||||
|
||||
### Step 1 - Link your domain
|
||||
|
||||
The first step is to let Ente know about the domain or subdomain you wish to use by linking it to your account.
|
||||
|
||||
> [!WARNING]
|
||||
>
|
||||
> Currently (Aug 2025) the ability to link a custom domain is only present in Ente's web app, [web.ente.io](https://web.ente.io). It will come to Ente mobile and desktop when their next versions get released.
|
||||
|
||||
Head over to Preferences > Custom domains, in the domain field enter "pics.example.org" (replace with your subdomain) and press "Save". That's it. The linking is done.
|
||||
|
||||
### Step 2 - Add DNS entry
|
||||
|
||||
The second step is to add a CNAME entry in your DNS provider that forwards requests for pics.example.org (replace with your subdomain) to **my.ente.io**.
|
||||
|
||||
Specifically, you need to add a `CNAME record` from the domain (or subdomain) of your choice to `my.ente.io`. You can leave the `TTL` at its default.
|
||||
|
||||
| Record Type | Name | Value | TTL |
|
||||
| ----------- | :------------------------: | -----------: | -------------- |
|
||||
| CNAME | Your subdomain, e.g `pics` | `my.ente.io` | Auto (default) |
|
||||
|
||||
The exact steps for doing this depend on the DNS provider that you're using.
|
||||
|
||||
> Your DNS provider usually is the service from which you bought your domain. The domain name seller will provide some sort of an admin panel where you can configure your DNS settings.
|
||||
|
||||
As concrete examples, here is how this step would look for Cloudflare:
|
||||
|
||||

|
||||
|
||||
Note that orange proxy option is off. And here is how it would look for Namecheap:
|
||||
|
||||

|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> The examples are using "pics" as the subdomain, but that's just an example, you can use anything you like (or use "@" if you'd like to use the root domain itself).
|
||||
|
||||
The time it takes for DNS records to update is dependent on your DNS provider. Usually the changes should start reflecting within a few minutes, and should almost always reflect within an hour.
|
||||
|
||||
Once the DNS changes have been applied, then you can take any public link to your shared albums, replace `albums.ente.io` with your choice (e.g. `pics.example.org`), and the link will still work.
|
||||
|
||||
You don't need to do this manually though, the apps will do it for you. More on this in the next section. But first, some troubleshooting tips.
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
If your domain is not working, go through the following checklist.
|
||||
|
||||
- The CNAME should be from your domain to my.ente.io, not the other way around. That is, `pics.example.org => my.ente.io`.
|
||||
|
||||
- If you're using Cloudflare DNS, make sure that the "Orange" proxy status toggle is off, and the Proxy status is the "Grey" DNS only.
|
||||
|
||||
## Using
|
||||
|
||||
Using is trivial. When you go to an album's sharing options and copy the link to it, Ente will automatically copy the link that uses your configured domain.
|
||||
|
||||
> [!WARNING]
|
||||
>
|
||||
> Currently (Aug 2025) the ability to automatically substitute your custom domain is only present in Ente's web app, [web.ente.io](https://web.ente.io). It will come to Ente mobile and desktop when their next versions get released.
|
||||
|
||||
## Unsetting
|
||||
|
||||
To stop using your custom domain, we need to undo the two steps we did during setup.
|
||||
|
||||
1. Unlink your domain in Ente. This can be done just by going to Preferences > Custom Domains, clearing the value in the "Domain" input and pressing "Update".
|
||||
|
||||
2. Remove the CNAME record you added during setup in your DNS provider.
|
||||
|
Before Width: | Height: | Size: 41 KiB |
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: Family plans
|
||||
description: Share your Ente Photos plan with your family members with no extra cost
|
||||
description:
|
||||
Share your Ente Photos plan with your family members with no extra cost
|
||||
---
|
||||
|
||||
# Family plans
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: Watch folder
|
||||
description: Automatic syncing of selected folders using the Ente Photos desktop app
|
||||
description:
|
||||
Automatic syncing of selected folders using the Ente Photos desktop app
|
||||
---
|
||||
|
||||
# Watch folders
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: Import from local hard disk
|
||||
description: Migrating to Ente Photos by importing data from your local hard disk
|
||||
description:
|
||||
Migrating to Ente Photos by importing data from your local hard disk
|
||||
---
|
||||
|
||||
# Import photos from your local hard disk
|
||||
|
||||
@@ -99,17 +99,3 @@ If you do want to run it from the command line, you can do so by passing the
|
||||
|
||||
For more details, see this upstream issue on
|
||||
[electron](https://github.com/electron/electron/issues/17972).
|
||||
|
||||
### Application reporting offline despite Internet connectivity
|
||||
|
||||
Due to unreliability of usage of `navigator.onLine` in Linux, the app may report that you are offline, even though the internet connection is functional.
|
||||
|
||||
You can resolve the issue by adding a dummy network interface using the following command:
|
||||
|
||||
```shell
|
||||
ip link add dummy0 type dummy
|
||||
ip addr add 10.10.10.1/24 dev dummy0
|
||||
ip link set dummy0 up
|
||||
```
|
||||
|
||||
Once the interface is up, Ente correctly detects that the system is online.
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: Files not uploading
|
||||
description: Troubleshooting when files are not uploading from your Ente Photos app
|
||||
description:
|
||||
Troubleshooting when files are not uploading from your Ente Photos app
|
||||
---
|
||||
|
||||
# Files not uploading
|
||||
|
||||
@@ -8,12 +8,6 @@ description: Guide to configuring Ente CLI for Self Hosted Instance
|
||||
If you are self-hosting, you can configure Ente CLI to export data & perform
|
||||
basic administrative actions.
|
||||
|
||||
::: tip Installing Ente CLI
|
||||
|
||||
For instructions on installing the Ente CLI, see the [README available on Github](https://github.com/ente-io/ente/tree/main/cli/README.md).
|
||||
|
||||
:::
|
||||
|
||||
## Step 1: Configure endpoint
|
||||
|
||||
To do this, first configure the CLI to use your server's endpoint.
|
||||
|
||||
@@ -63,15 +63,12 @@ It has no relation to Backblaze, Wasabi or Scaleway.
|
||||
Each bucket's endpoint, region, key and secret should be configured accordingly
|
||||
if using an external bucket.
|
||||
|
||||
If a bucket has SSL support enabled, set `s3.are_local_buckets` to `false`. Enable path-style URL by setting `s3.use_path_style_urls` to `true`.
|
||||
Additionally, you can enable SSL and path-style URL for specific buckets, which
|
||||
provides flexibility for storage. If this is not configured, top level
|
||||
configuration (`s3.are_local_buckets` and `s3.use_path_style_urls`) is used.
|
||||
|
||||
::: note
|
||||
|
||||
You can configure this for individual buckets over defining top-level configuration if you are using the latest server image (August 2025)
|
||||
|
||||
:::
|
||||
|
||||
A sample configuration for `b2-eu-cen` is provided, which can be used for other 2 buckets as well:
|
||||
A sample configuration for `b2-eu-cen` is provided, which can be used for other
|
||||
2 buckets as well:
|
||||
|
||||
```yaml
|
||||
b2-eu-cen:
|
||||
|
||||
@@ -22,7 +22,8 @@ can achieve this the following steps:
|
||||
# Change the DB name and DB user name if you use different
|
||||
# values.
|
||||
# If using Docker
|
||||
docker exec -it <postgres-ente-container-name> sh
|
||||
|
||||
docker exec -it <postgres-ente-container-name>
|
||||
psql -U pguser -d ente_db
|
||||
|
||||
# Or when using psql directly
|
||||
@@ -107,11 +108,24 @@ emails having @example.com as suffix.
|
||||
|
||||
### Send email with verification code
|
||||
|
||||
You can configure SMTP for sending verification code e-mails to users, if you do
|
||||
not wish to hardcode OTTs and have larger audience.
|
||||
You can configure SMTP for sending verification code e-mails to users, which is
|
||||
efficient if you do not know mail addresses of people for who you want to
|
||||
hardcode OTTs or if you are serving larger audience.
|
||||
|
||||
For more information on configuring email, check out the
|
||||
[email configuration](/self-hosting/installation/config#email) section.
|
||||
Set the host and port accordingly with your credentials in `museum.yaml`
|
||||
|
||||
```yaml
|
||||
smtp:
|
||||
host:
|
||||
port:
|
||||
# Optional username and password if using local relay server
|
||||
username:
|
||||
password:
|
||||
# Email address used for sending emails (this mail's credentials have to be provided)
|
||||
email:
|
||||
# Optional name for sender
|
||||
sender-name:
|
||||
```
|
||||
|
||||
## Disable registrations
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@ description: Getting started with self-hosting Ente
|
||||
|
||||
If you're looking to spin up Ente on your server, you are in the right place!
|
||||
|
||||
Our entire source code,
|
||||
[including the server](https://ente.io/blog/open-sourcing-our-server/) is open
|
||||
Our entire source code
|
||||
([including the server](https://ente.io/blog/open-sourcing-our-server/)) is open
|
||||
source. This is the same code we use on production.
|
||||
|
||||
For a quick preview, make sure your system meets the requirements mentioned
|
||||
@@ -35,12 +35,9 @@ This creates a directory `my-ente` in the current working directory, prompts to
|
||||
start the cluster with needed containers after pulling the images required to
|
||||
run Ente.
|
||||
|
||||
::: info
|
||||
|
||||
Make sure to modify the default values in `compose.yaml` and `museum.yaml` if
|
||||
you wish to change endpoints, bucket configuration or server configuration.
|
||||
|
||||
:::
|
||||
::: note Make sure to modify the default values in `compose.yaml` and
|
||||
`museum.yaml` if you wish to change endpoints, bucket configuration or server
|
||||
configuration. :::
|
||||
|
||||
## Try the web app
|
||||
|
||||
|
||||
@@ -45,25 +45,6 @@ cp example.yaml museum.yaml
|
||||
Change the values present in `.env` file along with `museum.yaml` file
|
||||
accordingly.
|
||||
|
||||
::: tip
|
||||
|
||||
Make sure to enter the correct values for the database and object storage.
|
||||
|
||||
You should consider generating values for JWT and encryption keys for emails if
|
||||
you intend to use for long-term needs.
|
||||
|
||||
You can do by running the following command inside `ente/server`, assuming you
|
||||
cloned the repository to `ente`:
|
||||
|
||||
```shell
|
||||
# Change into the ente/server
|
||||
cd ente/server
|
||||
# Generate secrets
|
||||
go run tools/gen-random-keys/main.go
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
## Step 3: Start the cluster
|
||||
|
||||
Start the cluster by running the following command:
|
||||
|
||||
@@ -78,9 +78,6 @@ used for Compose and quickstart for ease of use.)
|
||||
|
||||
### Database
|
||||
|
||||
The `db` section is used for configuring database connectivity. Ensure you
|
||||
provide correct credentials for proper connectivity within Museum.
|
||||
|
||||
| Variable | Description | Default |
|
||||
| ------------- | -------------------------- | ----------- |
|
||||
| `db.host` | DB hostname | `localhost` |
|
||||
@@ -96,14 +93,11 @@ provide correct credentials for proper connectivity within Museum.
|
||||
The `s3` section within `museum.yaml` is by default configured to use local
|
||||
MinIO buckets when using `quickstart.sh` or Docker Compose.
|
||||
|
||||
If you wish to use an external S3 provider with SSL, you can edit the configuration with
|
||||
your provider's credentials, and set `s3.are_local_buckets` to `false`. Additionally, you can configure this for specific buckets in the corresponding bucket sections in the Compose file.
|
||||
If you wish to use an external S3 provider, you can edit the configuration with
|
||||
your provider's credentials, and set `are_local_buckets` to `false`.
|
||||
|
||||
If you are using default MinIO, it is accessible at port `3200`. Web Console can
|
||||
be accessed by enabling port `3201` in the Compose file.
|
||||
|
||||
For more information on object storage configuration, check our
|
||||
[documentation](/self-hosting/administration/object-storage).
|
||||
MinIO uses the port `3200` for API Endpoints. Web Console can be accessed at
|
||||
http://localhost:3201 by enabling port `3201` in the Compose file.
|
||||
|
||||
If you face any issues related to uploads then check out
|
||||
[CORS](/self-hosting/administration/object-storage#cors-cross-origin-resource-sharing)
|
||||
@@ -111,11 +105,11 @@ and [troubleshooting](/self-hosting/troubleshooting/uploads) sections.
|
||||
|
||||
| Variable | Description | Default |
|
||||
| -------------------------------------- | -------------------------------------------- | ------- |
|
||||
| `s3.b2-eu-cen` | Primary hot storage bucket configuration | |
|
||||
| `s3.b2-eu-cen` | Primary hot storage S3 config | |
|
||||
| `s3.wasabi-eu-central-2-v3.compliance` | Whether to disable compliance lock on delete | `true` |
|
||||
| `s3.scw-eu-fr-v3` | Cold storage bucket configuration | |
|
||||
| `s3.wasabi-eu-central-2-v3` | Secondary hot storage configuration | |
|
||||
| `s3.are_local_buckets` | | `true` |
|
||||
| `s3.scw-eu-fr-v3` | Optional secondary S3 config | |
|
||||
| `s3.wasabi-eu-central-2-derived` | Derived data storage | |
|
||||
| `s3.are_local_buckets` | Use local MinIO-compatible storage | `false` |
|
||||
| `s3.use_path_style_urls` | Enable path-style URLs for MinIO | `false` |
|
||||
|
||||
### Encryption Keys
|
||||
@@ -152,29 +146,6 @@ go run tools/gen-random-keys/main.go
|
||||
|
||||
### Email
|
||||
|
||||
You may wish to send emails for verification codes instead of
|
||||
[hardcoding them](/self-hosting/administration/users#use-hardcoded-otts). In
|
||||
such cases, you can configure SMTP (or Zoho Transmail, for bulk emails).
|
||||
|
||||
Set the host and port accordingly with your credentials in `museum.yaml`
|
||||
|
||||
You may skip the username and password if using a local relay server.
|
||||
|
||||
```yaml
|
||||
smtp:
|
||||
host:
|
||||
port:
|
||||
# Optional username and password if using local relay server
|
||||
username:
|
||||
password:
|
||||
# Email address used for sending emails (this mail's credentials have to be provided)
|
||||
email:
|
||||
# Optional name for sender
|
||||
sender-name:
|
||||
# Optional encryption
|
||||
encryption:
|
||||
```
|
||||
|
||||
| Variable | Description | Default |
|
||||
| ------------------ | ---------------------------- | ------- |
|
||||
| `smtp.host` | SMTP server host | |
|
||||
@@ -183,7 +154,6 @@ smtp:
|
||||
| `smtp.password` | SMTP auth password | |
|
||||
| `smtp.email` | Sender email address | |
|
||||
| `smtp.sender-name` | Custom name for email sender | |
|
||||
| `smtp.encryption` | Encryption method (tls, ssl) | |
|
||||
| `transmail.key` | Zeptomail API key | |
|
||||
|
||||
### WebAuthn Passkey Support
|
||||
|
||||
@@ -92,9 +92,9 @@ git clone https://github.com/ente-io/ente
|
||||
2. Build the server. The server binary should be available as `./main` relative
|
||||
to `server` directory
|
||||
|
||||
```shell
|
||||
go build cmd/museum/main.go
|
||||
```
|
||||
``` shell
|
||||
go build cmd/museum/main.go
|
||||
```
|
||||
|
||||
3. Create `museum.yaml` file inside `server` for configuring the needed
|
||||
variables. You can copy the templated configuration file for editing with
|
||||
@@ -104,25 +104,6 @@ git clone https://github.com/ente-io/ente
|
||||
cp config/example.yaml ./museum.yaml
|
||||
```
|
||||
|
||||
::: tip
|
||||
|
||||
Make sure to enter the correct values for the database and object storage.
|
||||
|
||||
You should consider generating values for JWT and encryption keys for emails
|
||||
if you intend to use for long-term needs.
|
||||
|
||||
You can do by running the following command inside `ente/server`, assuming
|
||||
you cloned the repository to `ente`:
|
||||
|
||||
```shell
|
||||
# Change into the ente/server
|
||||
cd ente/server
|
||||
# Generate secrets
|
||||
go run tools/gen-random-keys/main.go
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
4. Run the server
|
||||
|
||||
```shell
|
||||
|
||||
@@ -46,7 +46,7 @@ If running Museum without Docker, the code should be visible in the terminal
|
||||
# Change the DB name and DB user name if you use different
|
||||
# values.
|
||||
|
||||
# If using Docker docker exec -it <postgres-ente-container-name> sh
|
||||
# If using Docker docker exec -it <postgres-ente-container-name>
|
||||
psql -U pguser -d ente_db
|
||||
|
||||
# Or when using psql directly
|
||||
@@ -159,7 +159,7 @@ apps](web-dev-settings.png){width=400px}
|
||||
## Step 7: Configure Ente CLI
|
||||
|
||||
You can download Ente CLI from
|
||||
[here](https://github.com/ente-io/ente/releases?q=tag%3Acli).
|
||||
[here](https://github.com/ente-io/ente/releases?q=tag%3Acli)
|
||||
|
||||
Check our [documentation](/self-hosting/administration/cli) on how to use Ente
|
||||
CLI for managing self-hosted instances.
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
---
|
||||
title: Ente CLI - Self-hosting
|
||||
description: A quick hotfix for keyring errors while running Ente CLI.
|
||||
---
|
||||
|
||||
# Ente CLI
|
||||
|
||||
## Secrets
|
||||
|
||||
Ente CLI makes use of your system keyring for storing sensitive information such
|
||||
as passwords.
|
||||
|
||||
There are 2 ways to address keyring-related error:
|
||||
|
||||
### Install system keyring
|
||||
|
||||
This is the recommended method as it is considerably secure than the latter.
|
||||
|
||||
If you are using Linux for accessing Ente CLI with, you can install a system
|
||||
keyring manager such as `gnome-keyring`, `kwallet`, etc. via your distribution's
|
||||
package manager.
|
||||
|
||||
For Ubuntu/Debian based distributions, you can install `gnome-keyring` via `apt`
|
||||
|
||||
```shell
|
||||
sudo apt install gnome-keyring
|
||||
```
|
||||
|
||||
Now you can use Ente CLI for adding account, which will trigger your system's
|
||||
keyring.
|
||||
|
||||
### Configure secrets path
|
||||
|
||||
In case of using Ente CLI on server environment, you may not be able to install
|
||||
system keyring. In such cases, you can configure Ente CLI to use a text file for
|
||||
saving the secrets.
|
||||
|
||||
Set `ENTE_CLI_SECRETS_PATH` environment variable in your shell's configuration
|
||||
file (`~/.bashrc`, `~/.zshrc`, or other corresponding file)
|
||||
|
||||
```shell
|
||||
# Replace ./secrets.txt with the path to secrets file
|
||||
# that you are using for saving.
|
||||
# IMPORTANT: Make sure it is stored in a secure place.
|
||||
export ENTE_CLI_SECRETS_PATH=./secrets.txt
|
||||
```
|
||||
|
||||
When you run Ente CLI, and if the file doesn't exist, Ente CLI will create it
|
||||
and fill it with a random 32 character encryption key.
|
||||
|
||||
If you create the file, please fill it with a cryptographically generated 32
|
||||
byte string.
|
||||
@@ -17,20 +17,19 @@ description: Fixing Docker-related errors when trying to self-host Ente
|
||||
|
||||
## post_start
|
||||
|
||||
The Docker compose file used if relying on quickstart script or installation
|
||||
using Docker Compose uses the "post_start" lifecycle hook to provision the MinIO
|
||||
instance.
|
||||
The `server/compose.yaml` Docker compose file uses the "post_start" lifecycle
|
||||
hook to provision the MinIO instance.
|
||||
|
||||
The lifecycle hook **requires Docker Compose version 2.30.0+**, and if you're
|
||||
using an older version of Docker Compose you will see an error like this:
|
||||
using an older version of docker compose you will see an error like this:
|
||||
|
||||
```
|
||||
validating compose.yaml: services.minio Additional property post_start is not allowed
|
||||
```
|
||||
|
||||
The easiest way to resolve this is to upgrade your Docker Compose.
|
||||
The easiest way to resolve this is to upgrade your Docker compose.
|
||||
|
||||
If you cannot update your Docker Compose version, then alternatively you can
|
||||
If you cannot update your Docker compose version, then alternatively you can
|
||||
perform the same configuration by removing the "post_start" hook, and adding a
|
||||
new service definition:
|
||||
|
||||
@@ -71,11 +70,11 @@ supports the `start_interval` property on the health check.
|
||||
|
||||
## Postgres authentication failed
|
||||
|
||||
If you are getting Postgres password authentication failures when starting your
|
||||
If you're getting Postgres password authentication failures when starting your
|
||||
cluster, then you might be using a stale Docker volume.
|
||||
|
||||
If you are getting an error of the following form (pasting a full example for
|
||||
easier greppability):
|
||||
In more detail, if you're getting an error of the following form (pasting a full
|
||||
example for easier greppability):
|
||||
|
||||
```
|
||||
museum-1 | panic: pq: password authentication failed for user "pguser"
|
||||
@@ -93,13 +92,9 @@ is expecting.
|
||||
|
||||
There are 2 possibilities:
|
||||
|
||||
1. If you are using Docker Compose for running Ente from source, you might not
|
||||
have set the same credentials in `.env` and `museum.yaml` inside
|
||||
`server/config` directory. Edit the values to make sure the correct
|
||||
credentials are being used.
|
||||
2. When you have created a cluster in `my-ente` directory on running
|
||||
`quickstart.sh` and later deleted it, only to create another cluster with
|
||||
same `my-ente` directory.
|
||||
1. When you have created a cluster in `my-ente` directory on running
|
||||
`quickstart.sh` and later deleted it, only to create another cluster with
|
||||
same `my-ente` directory.
|
||||
|
||||
However, by deleting the directory, the Docker volumes are not deleted.
|
||||
|
||||
@@ -134,7 +129,12 @@ There are 2 possibilities:
|
||||
|
||||
## MinIO provisioning error
|
||||
|
||||
If you encounter similar logs while starting your Docker Compose cluster
|
||||
MinIO has deprecated the `mc config` command in favor of `mc alias set`
|
||||
resulting in failure in execution of the command for creating bucket using
|
||||
`post_start` hook.
|
||||
|
||||
You may encounter similar logs while trying to start the cluster if you are
|
||||
using the older command (provided by default in `quickstart.sh`):
|
||||
|
||||
```
|
||||
my-ente-minio-1 -> | Waiting for minio...
|
||||
@@ -142,8 +142,9 @@ my-ente-minio-1 -> | Waiting for minio...
|
||||
my-ente-minio-1 -> | Waiting for minio...
|
||||
```
|
||||
|
||||
This could be due to usage of deprecated MinIO `mc config` command. Changing
|
||||
`mc config host h0 add` to `mc alias set h0` resolves this.
|
||||
This can be resolved by changing
|
||||
`mc config host h0 add http://minio:3200 $minio_user $minio_pass` to
|
||||
`mc alias set h0 http://minio:3200 $minio_user $minio_pass`
|
||||
|
||||
Thus the updated `post_start` will look as follows for `minio` service:
|
||||
|
||||
@@ -155,6 +156,13 @@ Thus the updated `post_start` will look as follows for `minio` service:
|
||||
sh -c '
|
||||
#!/bin/sh
|
||||
while ! mc alias set h0 http://minio:3200 your_minio_user your_minio_pass 2>/dev/null
|
||||
...
|
||||
do
|
||||
echo "Waiting for minio..."
|
||||
sleep 0.5
|
||||
done
|
||||
cd /data
|
||||
mc mb -p b2-eu-cen
|
||||
mc mb -p wasabi-eu-central-2-v3
|
||||
mc mb -p scw-eu-fr-v3
|
||||
'
|
||||
```
|
||||
|
||||
38
docs/docs/self-hosting/troubleshooting/keyring.md
Normal file
@@ -0,0 +1,38 @@
|
||||
---
|
||||
title: Ente CLI Secrets - Self-hosting
|
||||
description: A quick hotfix for keyring errors while running Ente CLI.
|
||||
---
|
||||
|
||||
# Ente CLI Secrets
|
||||
|
||||
Ente CLI makes use of system keyring for storing sensitive information like your
|
||||
passwords. And running the CLI straight out of the box might give you some
|
||||
errors related to keyrings in some case.
|
||||
|
||||
Follow the below steps to run Ente CLI and also avoid keyrings errors.
|
||||
|
||||
Run:
|
||||
|
||||
```shell
|
||||
# export the secrets path
|
||||
export ENTE_CLI_SECRETS_PATH=./<path-to-secrets.txt>
|
||||
|
||||
./ente-cli
|
||||
```
|
||||
|
||||
You can also add the above line to your shell's rc file, to prevent the need to
|
||||
export manually every time.
|
||||
|
||||
Then one of the following:
|
||||
|
||||
1. If the file doesn't exist, Ente CLI will create it and fill it with a random
|
||||
32 character encryption key.
|
||||
2. If you do create the file, please fill it with a cryptographically generated
|
||||
32 byte string.
|
||||
|
||||
And you are good to go.
|
||||
|
||||
## References
|
||||
|
||||
- [Ente CLI Secrets Path](https://www.reddit.com/r/selfhosted/comments/1gc09il/comment/lu2hox2/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button)
|
||||
- [Keyrings](https://man7.org/linux/man-pages/man7/keyrings.7.html)
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
email custom-domains@ente.io
|
||||
on_demand_tls {
|
||||
ask https://api.ente.io/custom-domain
|
||||
}
|
||||
}
|
||||
|
||||
https:// {
|
||||
tls {
|
||||
on_demand
|
||||
}
|
||||
reverse_proxy https://custom-albums.ente.io {
|
||||
header_up Host {upstream_hostport}
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
# Caddy
|
||||
|
||||
Caddy is used to terminate TLS and manage certificates for custom domains.
|
||||
|
||||
## Installation
|
||||
|
||||
```sh
|
||||
sudo mkdir -p /root/caddy/conf
|
||||
sudo mv Caddyfile /root/caddy/conf
|
||||
sudo chown root:root /root/caddy/conf/Caddyfile
|
||||
```
|
||||
|
||||
Rest of it works like our other systemd services.
|
||||
|
||||
If the Caddyfile changes, the running instance can be updated without restarts by using `sudo systemctl reload caddy`.
|
||||
|
||||
## Backups
|
||||
|
||||
The entire `/root/caddy` directory can be backed up and contains the everything needed to resurrect the same setup.
|
||||
@@ -1,17 +0,0 @@
|
||||
[Unit]
|
||||
Documentation=https://caddyserver.com/docs/running
|
||||
Requires=docker.service
|
||||
After=docker.service
|
||||
|
||||
[Service]
|
||||
ExecStartPre=docker pull caddy
|
||||
ExecStartPre=-docker stop caddy
|
||||
ExecStartPre=-docker rm caddy
|
||||
ExecStart=docker run --name caddy \
|
||||
--cap-add NET_ADMIN \
|
||||
-p 80:80 -p 443:443 -p 443:443/udp \
|
||||
-v /root/caddy/conf:/etc/caddy \
|
||||
-v /root/caddy/data:/data \
|
||||
-v /root/caddy/config:/config \
|
||||
caddy
|
||||
ExecReload=docker exec -w /etc/caddy caddy caddy reload
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"tabWidth": 4,
|
||||
"proseWrap": "always",
|
||||
"plugins": [
|
||||
"prettier-plugin-organize-imports",
|
||||
"prettier-plugin-packagejson"
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"tabWidth": 4
|
||||
"tabWidth": 4,
|
||||
"proseWrap": "always"
|
||||
}
|
||||
|
||||
45
mobile/.gitignore
vendored
@@ -1,45 +0,0 @@
|
||||
# Miscellaneous
|
||||
*.class
|
||||
*.log
|
||||
*.pyc
|
||||
*.swp
|
||||
.DS_Store
|
||||
.atom/
|
||||
.buildlog/
|
||||
.history
|
||||
.svn/
|
||||
migrate_working_dir/
|
||||
|
||||
# IntelliJ related
|
||||
*.iml
|
||||
*.ipr
|
||||
*.iws
|
||||
.idea/
|
||||
melos_*.iml
|
||||
|
||||
# The .vscode folder contains launch configuration and tasks you configure in
|
||||
# VS Code which you may wish to be included in version control, so this line
|
||||
# is commented out by default.
|
||||
#.vscode/
|
||||
|
||||
# Flutter/Dart/Pub related
|
||||
**/doc/api/
|
||||
**/ios/Flutter/.last_build_id
|
||||
.dart_tool/
|
||||
.flutter-plugins
|
||||
.flutter-plugins-dependencies
|
||||
.packages
|
||||
.pub-cache/
|
||||
.pub/
|
||||
/build/
|
||||
|
||||
# Symbolication related
|
||||
app.*.symbols
|
||||
|
||||
# Obfuscation related
|
||||
app.*.map.json
|
||||
|
||||
# Android Studio will place build artifacts here
|
||||
/android/app/debug
|
||||
/android/app/profile
|
||||
/android/app/release
|
||||
@@ -1,72 +0,0 @@
|
||||
# For more linters, we can check https://dart-lang.github.io/linter/lints/index.html
|
||||
# or https://pub.dev/packages/lint (Effective dart)
|
||||
# use "flutter analyze ." or "dart analyze ." for running lint checks
|
||||
|
||||
include: package:flutter_lints/flutter.yaml
|
||||
linter:
|
||||
rules:
|
||||
# Ref https://github.com/flutter/packages/blob/master/packages/flutter_lints/lib/flutter.yaml
|
||||
# Ref https://dart-lang.github.io/linter/lints/
|
||||
- avoid_print
|
||||
- avoid_unnecessary_containers
|
||||
- avoid_web_libraries_in_flutter
|
||||
- no_logic_in_create_state
|
||||
- prefer_const_constructors
|
||||
- prefer_const_constructors_in_immutables
|
||||
- prefer_const_declarations
|
||||
- prefer_const_literals_to_create_immutables
|
||||
- prefer_final_locals
|
||||
- require_trailing_commas
|
||||
- sized_box_for_whitespace
|
||||
- use_full_hex_values_for_flutter_colors
|
||||
- use_key_in_widget_constructors
|
||||
- cancel_subscriptions
|
||||
|
||||
|
||||
- avoid_empty_else
|
||||
- exhaustive_cases
|
||||
|
||||
# just style suggestions
|
||||
- sort_pub_dependencies
|
||||
- use_rethrow_when_possible
|
||||
- prefer_double_quotes
|
||||
- directives_ordering
|
||||
- always_use_package_imports
|
||||
- sort_child_properties_last
|
||||
- unawaited_futures
|
||||
|
||||
analyzer:
|
||||
errors:
|
||||
avoid_empty_else: error
|
||||
exhaustive_cases: error
|
||||
curly_braces_in_flow_control_structures: error
|
||||
directives_ordering: error
|
||||
require_trailing_commas: error
|
||||
always_use_package_imports: warning
|
||||
prefer_final_fields: error
|
||||
unused_import: error
|
||||
camel_case_types: error
|
||||
prefer_is_empty: warning
|
||||
use_rethrow_when_possible: info
|
||||
unused_field: warning
|
||||
use_key_in_widget_constructors: warning
|
||||
sort_child_properties_last: warning
|
||||
sort_pub_dependencies: warning
|
||||
library_private_types_in_public_api: warning
|
||||
constant_identifier_names: ignore
|
||||
prefer_const_constructors: warning
|
||||
prefer_const_declarations: warning
|
||||
prefer_const_constructors_in_immutables: warning
|
||||
prefer_final_locals: warning
|
||||
unnecessary_const: error
|
||||
cancel_subscriptions: error
|
||||
unrelated_type_equality_checks: error
|
||||
unnecessary_cast: info
|
||||
|
||||
|
||||
unawaited_futures: warning # convert to warning after fixing existing issues
|
||||
invalid_dependency: info
|
||||
use_build_context_synchronously: ignore # experimental lint, requires many changes
|
||||
prefer_interpolation_to_compose_strings: ignore # later too many warnings
|
||||
prefer_double_quotes: ignore # too many warnings
|
||||
avoid_renaming_method_parameters: ignore # incorrect warnings for `equals` overrides
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"flutter": "3.32.8"
|
||||
"flutter": "3.24.3"
|
||||
}
|
||||
5
mobile/apps/auth/.gitignore
vendored
@@ -33,8 +33,6 @@
|
||||
.pub/
|
||||
/build/
|
||||
macos/build/
|
||||
.gradle/
|
||||
settings.local.json
|
||||
|
||||
# Web related
|
||||
lib/generated_plugin_registrant.dart
|
||||
@@ -46,5 +44,4 @@ android/key.properties
|
||||
dist/
|
||||
|
||||
# FVM Version Cache
|
||||
.fvm/
|
||||
lib/l10n/arb/*.dart
|
||||
.fvm/
|
||||
@@ -19,16 +19,16 @@ without relying on third party stores.
|
||||
You can alternatively install the build from PlayStore or F-Droid.
|
||||
|
||||
<a href="https://play.google.com/store/apps/details?id=io.ente.auth">
|
||||
<img height="59" src="../../../.github/assets/play-store-badge.png">
|
||||
<img height="59" src="../.github/assets/play-store-badge.png">
|
||||
</a>
|
||||
<a href="https://f-droid.org/packages/io.ente.auth/">
|
||||
<img height="59" src="../../../.github/assets/f-droid-badge.png">
|
||||
<img height="59" src="../.github/assets/f-droid-badge.png">
|
||||
</a>
|
||||
|
||||
### iOS / Apple Silicon macOS
|
||||
|
||||
<a href="https://apps.apple.com/us/app/ente-authenticator/id6444121398">
|
||||
<img height="59" src="../../../.github/assets/app-store-badge.svg">
|
||||
<img height="59" src="../.github/assets/app-store-badge.svg">
|
||||
</a>
|
||||
|
||||
### Desktop
|
||||
@@ -44,7 +44,7 @@ or managing your secrets, please use our mobile or desktop app.
|
||||
|
||||
## 🧑💻 Build from source
|
||||
|
||||
1. [Install Flutter v3.32.8](https://flutter.dev/docs/get-started/install).
|
||||
1. [Install Flutter](https://flutter.dev/docs/get-started/install)
|
||||
|
||||
2. Pull in all submodules with `git submodule update --init --recursive`
|
||||
|
||||
@@ -98,7 +98,7 @@ more, see [docs/adding-icons](docs/adding-icons.md).
|
||||
The best way to support this project is by checking out [Ente
|
||||
Photos](../mobile/README.md) or spreading the word.
|
||||
|
||||
For more ways to contribute, see [../../../CONTRIBUTING.md](../../../CONTRIBUTING.md).
|
||||
For more ways to contribute, see [../CONTRIBUTING.md](../CONTRIBUTING.md).
|
||||
|
||||
## Certificate Fingerprints
|
||||
|
||||
@@ -113,4 +113,4 @@ apksigner verify --print-certs <path_to_apk>
|
||||
## ⭐️ About
|
||||
|
||||
To know more about Ente and the ways to get in touch or seek help, see [our main
|
||||
README](../../../README.md) or visit [ente.io](https://ente.io).
|
||||
README](../README.md) or visit [ente.io](https://ente.io).
|
||||
|
||||
@@ -30,13 +30,10 @@ if (keystorePropertiesFile.exists()) {
|
||||
|
||||
android {
|
||||
namespace "io.ente.auth"
|
||||
compileSdk 36
|
||||
compileSdk 34
|
||||
ndkVersion flutter.ndkVersion
|
||||
|
||||
compileOptions {
|
||||
// Flag to enable support for the new language APIs
|
||||
coreLibraryDesugaringEnabled true
|
||||
// Sets Java compatibility to Java 8
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
@@ -59,8 +56,8 @@ android {
|
||||
applicationId "io.ente.auth"
|
||||
// You can update the following values to match your application needs.
|
||||
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
|
||||
minSdkVersion 22
|
||||
targetSdkVersion 35
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 34
|
||||
versionCode flutterVersionCode.toInteger()
|
||||
versionName flutterVersionName
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
@@ -118,7 +115,4 @@ flutter {
|
||||
source '../..'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// For AGP 7.4+
|
||||
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4")
|
||||
}
|
||||
dependencies {}
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
# Please add these rules to your existing keep rules in order to suppress warnings.
|
||||
# This is generated automatically by the Android Gradle plugin.
|
||||
-dontwarn com.google.errorprone.annotations.CanIgnoreReturnValue
|
||||
-dontwarn com.google.errorprone.annotations.CheckReturnValue
|
||||
-dontwarn com.google.errorprone.annotations.Immutable
|
||||
-dontwarn com.google.errorprone.annotations.RestrictedApi
|
||||
@@ -6,19 +6,6 @@ allprojects {
|
||||
}
|
||||
|
||||
rootProject.buildDir = '../build'
|
||||
|
||||
subprojects {
|
||||
afterEvaluate { project ->
|
||||
if (project.hasProperty('android')) {
|
||||
project.android {
|
||||
if (namespace == null) {
|
||||
namespace project.group
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
subprojects {
|
||||
project.buildDir = "${rootProject.buildDir}/${project.name}"
|
||||
}
|
||||
|
||||
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip
|
||||
|
||||
@@ -19,8 +19,8 @@ pluginManagement {
|
||||
|
||||
plugins {
|
||||
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
|
||||
id "com.android.application" version "8.6.0" apply false
|
||||
id "org.jetbrains.kotlin.android" version "2.1.10" apply false
|
||||
id "com.android.application" version "7.3.0" apply false
|
||||
id "org.jetbrains.kotlin.android" version "1.8.22" apply false
|
||||
}
|
||||
|
||||
include ":app"
|
||||
|
||||
@@ -10,15 +10,6 @@
|
||||
{
|
||||
"title": "3Commas"
|
||||
},
|
||||
{
|
||||
"title": "Aadhaar",
|
||||
"slug": "aadhaar",
|
||||
"altNames": [
|
||||
"uidai",
|
||||
"UIDAI",
|
||||
"Unique Identification Authority of India"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Accredible",
|
||||
"slug": "accredible",
|
||||
@@ -54,19 +45,6 @@
|
||||
{
|
||||
"title": "Amazon"
|
||||
},
|
||||
{
|
||||
"title": "Amtrak",
|
||||
"slug": "amtrak"
|
||||
},
|
||||
{
|
||||
"title": "Animal Crossing",
|
||||
"slug:": "animal_crossing",
|
||||
"altNames": [
|
||||
"AnimalCrossing",
|
||||
"Bell Tree Forums",
|
||||
"BellTree Forums"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Ankama",
|
||||
"slug": "ankama"
|
||||
@@ -113,10 +91,6 @@
|
||||
{
|
||||
"title": "availity"
|
||||
},
|
||||
{
|
||||
"title": "AvistaZ.to",
|
||||
"slug": "avistaz"
|
||||
},
|
||||
{
|
||||
"title": "AzurHosts",
|
||||
"slug": "azurhosts",
|
||||
@@ -156,6 +130,14 @@
|
||||
"Blizzard"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "BBS.NGA",
|
||||
"slug": "bbs_nga",
|
||||
"altNames": [
|
||||
"NGA玩家社区",
|
||||
"NGA社区"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Belo"
|
||||
},
|
||||
@@ -298,24 +280,12 @@
|
||||
{
|
||||
"title": "Caixa"
|
||||
},
|
||||
{
|
||||
"title": "Caltrain",
|
||||
"slug": "caltrain"
|
||||
},
|
||||
{
|
||||
"title": "Canva"
|
||||
},
|
||||
{
|
||||
"title": "Capacities"
|
||||
},
|
||||
{
|
||||
"title": "Capcom",
|
||||
"slug": "capcom",
|
||||
"hex": "0D4DA2",
|
||||
"altNames": [
|
||||
"Capcom Co., Ltd."
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Carta",
|
||||
"altNames": [
|
||||
@@ -336,37 +306,11 @@
|
||||
{
|
||||
"title": "ChangeNOW"
|
||||
},
|
||||
{
|
||||
"title": "Charles Schwab",
|
||||
"slug": "charles_schwab",
|
||||
"altNames": [
|
||||
"schwab",
|
||||
"charles-schwab",
|
||||
"charles schwab"
|
||||
],
|
||||
"hex": "01A0E0"
|
||||
},
|
||||
{
|
||||
"title": "Channel Island Hosting",
|
||||
"slug": "cih",
|
||||
"hex": "D14633"
|
||||
},
|
||||
{
|
||||
"title": "Chucklefish"
|
||||
},
|
||||
{
|
||||
"title": "CinemaZ.to",
|
||||
"slug": "cinemaz"
|
||||
},
|
||||
{
|
||||
"title": "Clipper",
|
||||
"slug": "clippercard",
|
||||
"altNames": [
|
||||
"ClipperCard",
|
||||
"clipper-card",
|
||||
"Clipper Card"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "CloudAMQP"
|
||||
},
|
||||
@@ -382,11 +326,6 @@
|
||||
{
|
||||
"title": "CoinDCX"
|
||||
},
|
||||
{
|
||||
"title": "CoinTracking",
|
||||
"slug": "cointracking",
|
||||
"altNames": ["cointracking.info", "Coin Tracking"]
|
||||
},
|
||||
{
|
||||
"title": "colorado",
|
||||
"altNames": [
|
||||
@@ -413,10 +352,6 @@
|
||||
"title": "Control D",
|
||||
"slug": "controld"
|
||||
},
|
||||
{
|
||||
"title": "Coolify",
|
||||
"slug": "coolify"
|
||||
},
|
||||
{
|
||||
"title": "Crowdpear"
|
||||
},
|
||||
@@ -447,10 +382,6 @@
|
||||
"title": "CSGORoll",
|
||||
"slug": "csgoroll"
|
||||
},
|
||||
{
|
||||
"title": "CrowdSec",
|
||||
"slug": "crowdsec"
|
||||
},
|
||||
{
|
||||
"title": "Cryptee",
|
||||
"slug": "cryptee"
|
||||
@@ -470,11 +401,6 @@
|
||||
"Digital Combat Simulator"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "DeepSeek",
|
||||
"slug": "deepseek",
|
||||
"hex": "4D6BFE"
|
||||
},
|
||||
{
|
||||
"title": "DEGIRO"
|
||||
},
|
||||
@@ -503,14 +429,6 @@
|
||||
{
|
||||
"title": "DocuSeal"
|
||||
},
|
||||
{
|
||||
"title": "Dominos",
|
||||
"slug": "dominos",
|
||||
"altNames": [
|
||||
"Domino's",
|
||||
"Domino's Pizza"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Doppler"
|
||||
},
|
||||
@@ -525,15 +443,6 @@
|
||||
"title": "dus.net",
|
||||
"slug": "dusnet"
|
||||
},
|
||||
{
|
||||
"title": "Dunkin' Donuts",
|
||||
"slug": "dunkindonuts",
|
||||
"altNames": [
|
||||
"Dunkin'",
|
||||
"Dunkin",
|
||||
"Dunkin Donuts"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "eBay"
|
||||
},
|
||||
@@ -584,22 +493,6 @@
|
||||
],
|
||||
"hex": "858585"
|
||||
},
|
||||
{
|
||||
"title": "exaroton",
|
||||
"slug": "exaroton",
|
||||
"altNames": [
|
||||
"Exaroton"
|
||||
],
|
||||
"hex": "17AB17"
|
||||
},
|
||||
{
|
||||
"title": "ExoticaZ.to",
|
||||
"slug": "exoticaz"
|
||||
},
|
||||
{
|
||||
"title": "Experian",
|
||||
"slug": "experian"
|
||||
},
|
||||
{
|
||||
"title": "Fanatical",
|
||||
"slug": "fanatical",
|
||||
@@ -625,10 +518,6 @@
|
||||
"Fidelity Investments"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "FileCloud",
|
||||
"slug": "filecloud"
|
||||
},
|
||||
{
|
||||
"title": "Filen"
|
||||
},
|
||||
@@ -716,14 +605,6 @@
|
||||
"Canada Revenue Agency"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Green Man Gaming",
|
||||
"slug": "greenmangaming",
|
||||
"altNames": [
|
||||
"green man gaming",
|
||||
"gmg"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Guideline"
|
||||
},
|
||||
@@ -740,20 +621,6 @@
|
||||
{
|
||||
"title": "Hivelocity"
|
||||
},
|
||||
{
|
||||
"title": "HRDocumentBox",
|
||||
"slug": "hrdocumentbox",
|
||||
"altNames": ["HRDocumentBox", "HR Document Box"]
|
||||
},
|
||||
{
|
||||
"title": "HSA Bank",
|
||||
"slug": "hsa_bank",
|
||||
"altNames": [
|
||||
"hsa bank",
|
||||
"hsabank"
|
||||
],
|
||||
"hex": "00FF85"
|
||||
},
|
||||
{
|
||||
"title": "HTX"
|
||||
},
|
||||
@@ -763,11 +630,6 @@
|
||||
"Hugging Face"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Hulu",
|
||||
"slug": "hulu",
|
||||
"hex": "1CE783"
|
||||
},
|
||||
{
|
||||
"title": "IBKR",
|
||||
"slug": "ibkr",
|
||||
@@ -814,15 +676,6 @@
|
||||
{
|
||||
"title": "INWX"
|
||||
},
|
||||
{
|
||||
"title": "IRCTC",
|
||||
"slug": "irctc",
|
||||
"altNames": [
|
||||
"Indian Railway Catering and Tourism Corporation",
|
||||
"Indian Railways"
|
||||
],
|
||||
"hex": "000075"
|
||||
},
|
||||
{
|
||||
"title": "Itch",
|
||||
"slug": "itch_io",
|
||||
@@ -836,13 +689,6 @@
|
||||
"title": "Jagex",
|
||||
"hex": "D3D800"
|
||||
},
|
||||
{
|
||||
"title": "JetBrains YouTrack",
|
||||
"slug": "jetbrains-youtrack",
|
||||
"altNames": [
|
||||
"YouTrack"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "jianguoyun",
|
||||
"altNames": [
|
||||
@@ -852,10 +698,6 @@
|
||||
{
|
||||
"title": "Kagi"
|
||||
},
|
||||
{
|
||||
"title": "Kayak",
|
||||
"slug": "kayak"
|
||||
},
|
||||
{
|
||||
"title": "Keygen",
|
||||
"altNames": [
|
||||
@@ -974,14 +816,6 @@
|
||||
"lu.ma"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "MailCow",
|
||||
"slug": "mailcow",
|
||||
"altNames": [
|
||||
"mailcow",
|
||||
"mailcow UI"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "MangaDex",
|
||||
"slug": "mangadex"
|
||||
@@ -1050,13 +884,6 @@
|
||||
"MistralAI"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Mobile01",
|
||||
"slug": "mobile01",
|
||||
"altNames": [
|
||||
"M01"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Mozilla"
|
||||
},
|
||||
@@ -1143,10 +970,6 @@
|
||||
{
|
||||
"title": "Nelnet"
|
||||
},
|
||||
{
|
||||
"title": "NetBird",
|
||||
"slug": "netbird"
|
||||
},
|
||||
{
|
||||
"title": "nintendo",
|
||||
"altNames": [
|
||||
@@ -1157,13 +980,6 @@
|
||||
{
|
||||
"title": "Njalla"
|
||||
},
|
||||
{
|
||||
"title": "NJTransit",
|
||||
"slug": "njtransit",
|
||||
"altNames": [
|
||||
"NJ Transit"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "nordvpn",
|
||||
"slug": "nordaccount",
|
||||
@@ -1187,11 +1003,6 @@
|
||||
{
|
||||
"title": "Notion"
|
||||
},
|
||||
{
|
||||
"title": "NumberBarn",
|
||||
"slug": "numberbarn",
|
||||
"hex": "1c5787"
|
||||
},
|
||||
{
|
||||
"title": "NuCommunity"
|
||||
},
|
||||
@@ -1262,13 +1073,6 @@
|
||||
"Pebble Host"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "PCPartPicker",
|
||||
"slug": "pcpartpicker",
|
||||
"altNames": [
|
||||
"PC Part Picker"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Peerberry"
|
||||
},
|
||||
@@ -1322,10 +1126,6 @@
|
||||
"title": "Privacy.com",
|
||||
"slug": "privacy"
|
||||
},
|
||||
{
|
||||
"title": "PrivateHD.to",
|
||||
"slug": "privatehd"
|
||||
},
|
||||
{
|
||||
"title": "Proton"
|
||||
},
|
||||
@@ -1375,13 +1175,6 @@
|
||||
"r10.net"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "RaiderIO",
|
||||
"slug": "raider_io",
|
||||
"altNames": [
|
||||
"raider.io"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Raindrop.io",
|
||||
"slug": "raindrop_io",
|
||||
@@ -1447,18 +1240,6 @@
|
||||
"title": "Rockstar Games",
|
||||
"slug": "rockstar_games"
|
||||
},
|
||||
{
|
||||
"title": "Rose-Hulman Institute of Technology",
|
||||
"slug": "rose_hulman",
|
||||
"altNames": [
|
||||
"rose-hulman",
|
||||
"Rose-Hulman",
|
||||
"Rose Hulman",
|
||||
"Rose Hulman Institute of Technology",
|
||||
"RHIT"
|
||||
],
|
||||
"hex": "800000"
|
||||
},
|
||||
{
|
||||
"title": "RuneMate"
|
||||
},
|
||||
@@ -1478,14 +1259,6 @@
|
||||
"title": "Seafile",
|
||||
"slug": "seafile"
|
||||
},
|
||||
{
|
||||
"title": "SBI",
|
||||
"slug": "sbi",
|
||||
"altNames": [
|
||||
"onlinesbi",
|
||||
"State Bank of India"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "SEI",
|
||||
"altNames": [
|
||||
@@ -1525,10 +1298,6 @@
|
||||
{
|
||||
"title": "Skinport"
|
||||
},
|
||||
{
|
||||
"title": "Skyscanner",
|
||||
"hex": "0770E3"
|
||||
},
|
||||
{
|
||||
"title": "SMSPool",
|
||||
"slug": "sms_pool_net",
|
||||
@@ -1563,14 +1332,6 @@
|
||||
"title": "Startmail",
|
||||
"slug": "startmail"
|
||||
},
|
||||
{
|
||||
"title": "State Farm",
|
||||
"slug": "state_farm",
|
||||
"altNames": [
|
||||
"StateFarm"
|
||||
],
|
||||
"hex": "EDA920"
|
||||
},
|
||||
{
|
||||
"title": "Stripchat",
|
||||
"slug": "stripchat",
|
||||
@@ -1584,10 +1345,6 @@
|
||||
"title": "STRATO",
|
||||
"hex": "FF8800"
|
||||
},
|
||||
{
|
||||
"title": "Supercell",
|
||||
"slug": "supercell"
|
||||
},
|
||||
{
|
||||
"title": "Surfshark"
|
||||
},
|
||||
@@ -1605,15 +1362,6 @@
|
||||
{
|
||||
"title": "Tableau"
|
||||
},
|
||||
{
|
||||
"title": "Tally.so",
|
||||
"slug": "tally_so",
|
||||
"altNames": [
|
||||
"Tally Forms",
|
||||
"Tally"
|
||||
],
|
||||
"hex": "000000"
|
||||
},
|
||||
{
|
||||
"title": "TCPShield"
|
||||
},
|
||||
@@ -1663,14 +1411,6 @@
|
||||
"title": "Temu",
|
||||
"slug": "temu"
|
||||
},
|
||||
{
|
||||
"title": "The StoryGraph",
|
||||
"slug": "thestorygraph",
|
||||
"altNames": [
|
||||
"StoryGraph",
|
||||
"TheStoryGraph"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "tianyiyun",
|
||||
"altNames": [
|
||||
@@ -1686,12 +1426,6 @@
|
||||
{
|
||||
"title": "TorGuard"
|
||||
},
|
||||
{
|
||||
"title": "Toyhouse",
|
||||
"altNames": [
|
||||
"Toyhou.se"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Trading 212"
|
||||
},
|
||||
@@ -1713,15 +1447,6 @@
|
||||
"T Rowe Price Group, Inc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "TU Dresden",
|
||||
"slug": "tu_dresden",
|
||||
"altNames": [
|
||||
"Technische Universität Dresden",
|
||||
"Dresden University of Technology"
|
||||
],
|
||||
"hex": "00305d"
|
||||
},
|
||||
{
|
||||
"title": "Tweakers"
|
||||
},
|
||||
@@ -1736,12 +1461,6 @@
|
||||
"Twitch tv"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Twitter",
|
||||
"altNames": [
|
||||
"X"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Ubiquiti",
|
||||
"slug": "ubiquiti",
|
||||
@@ -1790,11 +1509,6 @@
|
||||
"uollet.com.br"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "VHV",
|
||||
"slug": "vhv",
|
||||
"altNames": ["VHV", "VHV Versicherung"]
|
||||
},
|
||||
{
|
||||
"title": "Vikunja"
|
||||
},
|
||||
@@ -1812,7 +1526,7 @@
|
||||
"title": "Warner Bros.",
|
||||
"slug": "warner_bros",
|
||||
"altNames": [
|
||||
"Warner Brothers"
|
||||
"Warner Brothers"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1825,14 +1539,6 @@
|
||||
"title": "WEB.DE",
|
||||
"slug": "web_de"
|
||||
},
|
||||
{
|
||||
"title": "WeMod",
|
||||
"slug": "wemod",
|
||||
"altNames": [
|
||||
"wemod"
|
||||
],
|
||||
"hex": "4B63FB"
|
||||
},
|
||||
{
|
||||
"title": "WHMCS"
|
||||
},
|
||||
@@ -1842,15 +1548,6 @@
|
||||
{
|
||||
"title": "Wise"
|
||||
},
|
||||
{
|
||||
"title": "WMATA",
|
||||
"slug": "wmata",
|
||||
"altNames": [
|
||||
"Washington Metro",
|
||||
"DC Metro",
|
||||
"Washington Metropolitan Area Transit Authority"
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Wolvesville"
|
||||
},
|
||||
@@ -1953,26 +1650,6 @@
|
||||
{
|
||||
"title": "Co-Wheels",
|
||||
"slug": "cowheels"
|
||||
},
|
||||
{
|
||||
"title": "Zivver",
|
||||
"slug": "zivver"
|
||||
},
|
||||
{
|
||||
"title": "Meesman Indexbeleggen",
|
||||
"slug": "meesman"
|
||||
},
|
||||
{
|
||||
"title": "Scouting Nederland",
|
||||
"slug": "scoutingnederland"
|
||||
},
|
||||
{
|
||||
"title": "ISC2",
|
||||
"slug": "isc2"
|
||||
},
|
||||
{
|
||||
"title": "Allegro",
|
||||
"slug": "allegro"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 5.7 KiB |
@@ -1,8 +0,0 @@
|
||||
<svg version="1.2" baseProfile="tiny-ps" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1386 1594" width="1386" height="1594">
|
||||
<title>logo (15)-svg copy-svg</title>
|
||||
<style>
|
||||
tspan { white-space:pre }
|
||||
.shp0 { fill: #ff5a00 }
|
||||
</style>
|
||||
<path id="Layer" fill-rule="evenodd" class="shp0" d="M1385.14 634.99L1385.14 1547.13C1385.14 1553.03 1384.01 1558.88 1381.76 1564.35C1379.45 1569.82 1376.13 1574.75 1372 1578.93C1367.82 1583.11 1362.83 1586.44 1357.36 1588.69C1351.89 1590.94 1346.04 1592.12 1340.14 1592.12L570.51 1592.12C534.63 1594.16 498.65 1593.2 462.98 1589.23C427.26 1585.26 391.98 1578.29 357.44 1568.42C322.9 1558.55 289.28 1545.79 256.88 1530.35C224.49 1514.85 193.44 1496.67 164.05 1475.97C137.02 1453.77 112.73 1428.52 91.6 1400.63C70.47 1372.8 52.66 1342.56 38.61 1310.54C24.56 1278.53 14.32 1244.96 8.1 1210.59C1.82 1176.16 -0.32 1141.14 1.61 1106.29L1.61 1101.41C1.61 641.05 502.94 580.24 666.61 580.24L1046.9 580.24L1046.9 546.83C1047.7 524.84 1045.5 502.8 1040.36 481.41C1035.21 460.01 1027.22 439.42 1016.54 420.17C1005.87 400.92 992.63 383.17 977.23 367.51C961.79 351.8 944.25 338.28 925.21 327.29C785.88 256.77 512.11 282.89 283.91 423.38C278.5 428.1 271.85 431.32 264.77 432.66C257.69 434 250.34 433.47 243.53 431.05C236.72 428.64 230.66 424.46 225.99 418.93C221.38 413.41 218.27 406.76 216.98 399.63L202.99 171.03C202.99 168.08 203.31 165.18 204.06 162.34C204.76 159.5 205.88 156.77 207.33 154.19C208.73 151.67 210.5 149.31 212.53 147.22C214.62 145.13 216.93 143.31 219.45 141.8C259.67 118.58 301.4 97.99 344.3 80.24C387.26 62.49 431.29 47.59 476.17 35.63C521.12 23.67 566.75 14.71 612.82 8.76C658.89 2.86 705.33 -0.03 751.78 0.13C937.98 0.13 1138.77 54.24 1238.52 163.09C1338.32 271.95 1384.55 429.44 1384.55 636.81L1385.14 634.99ZM1046.9 858.76L687.31 858.76C410.48 858.76 355.13 1022.96 355.13 1105.05C354.87 1119.64 356.37 1134.17 359.64 1148.38C362.91 1162.59 367.9 1176.32 374.49 1189.3C381.09 1202.33 389.24 1214.45 398.84 1225.44C408.39 1236.49 419.22 1246.25 431.18 1254.61C442.71 1263.35 454.94 1271.18 467.7 1277.99C480.47 1284.8 493.71 1290.65 507.39 1295.47C521.01 1300.25 535.06 1304 549.27 1306.63C563.48 1309.26 577.91 1310.76 592.39 1311.19L1046.9 1311.19L1046.9 858.76Z" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.2 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" id="Layer_1" x="0" y="0" style="enable-background:new 0 0 119.2 40.4" version="1.1" viewBox="0 0 119.2 40.4"><style>.st0{fill:#004d6e}</style><path d="M119 0C85.4 9.2 64 16 48.7 32.4c7.4 3 15.1 5.9 21.9 7.9C78.5 24.7 92.8 12.1 119.2.6L119 0zM75.7 4c-4-.3-8.4-1.2-11.9-2.2C56.3 1.5 17.3.5 0 7.9c4.7 2.9 9.6 5.7 15.6 8.9C33 8.7 55.1 5.9 75.7 4.7V4z" class="st0"/><path d="M100.7 3.9c-5.4.7-14 1-19.2 1C66 6.6 38.8 11 23.3 20.5c5.7 2.9 11.4 5.7 17.5 8.2C57 14.8 78.7 8.6 100.7 4.4v-.5z" class="st0"/></svg>
|
||||
|
Before Width: | Height: | Size: 564 B |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 326.24 311.07"><path fill="#1aae5e" d="M266.38 1.26c-.93 9.12-7.71 47.21-27.28 83.44a1 1 0 0 1-1.7-.06c-4-8.24-24.86-44.58-79.29-44.91C96.71 39.35 66.67 87 66.67 87s-23.45 32.93-33.49 94.89-22.61 79-22.61 79L.39 277a2.54 2.54 0 0 0 1.11 3.67c13 5.81 72.68 30.38 151.68 30.38 53.8 0 70-7.58 74.25-10.55a.61.61 0 0 0-.35-1.12c-10.55 1.16-51.2-5.26-51.2-44 0-34.79 25.3-51.62 51.81-52.83 12.56-.58 39.35 4.74 47.72 29.3 7 20.66-2.31 39.15-5.45 44.5a.62.62 0 0 0 .77.89c9.52-3.84 53.71-25.77 55.47-93.95 1.55-59.91-47.64-85.62-70.8-86.71a1.18 1.18 0 0 1-1-1.62c6.23-15.94 45-57.27 51.84-64.46a1.57 1.57 0 0 0 0-2.17A159.05 159.05 0 0 0 268.46.17a1.42 1.42 0 0 0-2.08 1.09Z"/></svg>
|
||||
|
Before Width: | Height: | Size: 730 B |
|
After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 18 KiB |
1
mobile/apps/auth/assets/custom-icons/icons/bbs_nga.svg
Normal file
|
After Width: | Height: | Size: 23 KiB |
@@ -1,13 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1000" height="584.48486" >
|
||||
<g transform="translate(-137.5,-22.390163)">
|
||||
<path style="fill:#1c252c" d="m 137.5,29.631487 0,252.320873 132.1114,0 c 51.99819,0 100.05059,-18.25003 100.05059,-71.85789 0,-36.24066 -26.10767,-52.7841 -54.82326,-61.4437 17.4955,-7.01771 37.3423,-21.76056 37.3423,-52.666034 0,-39.55613 -39.24823,-66.353249 -92.09117,-66.353249 l -122.58986,0 z m 80.93311,58.76577 29.75482,0 c 12.11271,0 21.34908,9.487931 21.34908,19.117473 0,8.94677 -9.59745,18.52237 -21.34908,18.52237 l -29.75482,0 0,-37.639843 z m 0,90.008333 39.27636,0 c 13.71131,0 25.21721,10.41366 25.21721,22.31611 0,12.63921 -10.76115,23.13438 -27.59759,23.13438 l -36.89598,0 0,-45.45049 z" id="path2998" />
|
||||
<path id="path3005" d="m 202.9606,309.47481 0,252.32088 132.11141,0 c 51.99819,0 100.05058,-18.25004 100.05058,-71.8579 0,-36.24065 -26.10766,-52.78409 -54.82326,-61.4437 17.4955,-7.01771 37.3423,-21.76056 37.3423,-52.66603 0,-39.55613 -39.24822,-66.35325 -92.09117,-66.35325 l -122.58986,0 z m 80.93312,58.76577 29.75482,0 c 12.11271,0 21.34908,9.48793 21.34908,19.11747 0,8.94678 -9.59745,18.52238 -21.34908,18.52238 l -29.75482,0 0,-37.63985 z m 0,90.00833 39.27636,0 c 13.71131,0 25.21721,10.41366 25.21721,22.31612 0,12.6392 -10.76115,23.13437 -27.5976,23.13437 l -36.89597,0 0,-45.45049 z" style="fill:#1c252c" />
|
||||
<path style="fill:#1c252c" d="m 376.01464,281.92185 0,-252.32088 203.52297,0 0,60.937872 -122.8279,0 0,33.087358 99.73816,0 0,57.12926 -99.73816,0 0,40.46655 122.8279,0 0,60.69984 z" id="path3007"/>
|
||||
<path style="fill:#1c252c" d="m 689.78812,289.1442 c 57.28767,0 103.11071,-32.67744 103.11071,-85.63169 0,-85.46143 -111.17753,-72.31037 -111.17753,-98.91916 0,-10.278288 10.80934,-15.732656 21.89462,-15.732656 19.10438,0 32.9075,12.586126 32.9075,12.586126 L 784.35446,55.903565 C 765.2233,37.697019 735.00886,22.390163 694.30743,22.390163 c -61.12759,0 -101.11859,36.280243 -101.11859,80.044867 0,86.54828 109.57491,73.98694 109.57491,101.14304 0,9.51935 -9.15835,19.09619 -25.76901,19.09619 -18.85922,0 -33.79879,-11.38479 -45.42578,-21.04418 l -48.11128,45.86837 c 19.37303,18.87022 50.47517,41.64575 106.33044,41.64575 z" id="path3009" />
|
||||
<path style="fill:#1c252c" d="m 855.18627,281.92185 0,-191.621047 -66.6508,0 0,-60.699833 214.23473,0 0,60.699833 -66.65082,0 0,191.621047 z" id="path3011" />
|
||||
<path style="fill:#1c252c" d="m 437.90467,309.29628 80.69507,0 0,151.15449 c 0,15.34925 15.27608,29.49386 31.20285,29.49386 15.02419,0 30.2111,-12.77313 30.2111,-30.30098 l 0,-150.34737 80.45703,0 0,149.31902 c 0,59.25051 -49.19276,106.51359 -112.80036,106.51359 -63.96969,0 -109.76569,-51.43651 -109.76569,-109.74208 z" id="path3013" />
|
||||
<path style="fill:#1c252c;fill-opacity:1;stroke:none" d="m 759.97084,561.61716 0,-90.16156 -94.84461,-162.15932 81.6448,0 53.66637,86.88408 53.85177,-86.88408 81.83021,0 -95.21543,163.08638 0,89.2345 z" id="path3015" />
|
||||
<path style="fill:#ffed31" d="m 936.11938,447.38916 -47.60772,47.60772 0,64.27041 47.60772,47.60771 201.38062,0 0,-159.48584 z" id="path3017" />
|
||||
<path style="fill:#1c252c" id="path3024" d="m 469,573.36218 c 0,2.20914 -1.79086,4 -4,4 -2.20914,0 -4,-1.79086 -4,-4 0,-2.20914 1.79086,-4 4,-4 2.20914,0 4,1.79086 4,4 z" transform="matrix(2.6779338,0,0,2.6779338,-327.65077,-1008.3244)" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.3 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="113.088"><path fill="#010202" d="M74.686 72.818H63.827l7.316-37.63h10.858l-7.315 37.63M51.347 72.818c-.029-1.263.119-2.579.372-3.894-2.821 3.235-6.185 4.442-10.023 4.442-5.212 0-9.211-2.855-8.122-8.449.862-4.445 4.896-7.405 9.024-8.613 3.778-1.095 7.65-1.536 11.368-1.756l.042-.216c.493-2.525.024-3.511-2.607-3.511-2.141 0-4.292.946-5.08 3.306l-8.331.008c1.524-7.289 8.331-9.896 15.019-9.896 3.292 0 7.429.435 9.788 2.413 3.177 2.578 2.03 6.2 1.255 10.202l-1.909 9.82c-.406 2.085-.756 4.171-.319 6.146H51.347m1.616-13.112c-2.687.274-7.234 1.097-7.896 4.498-.351 1.809.651 2.576 2.352 2.576 4.112 0 4.84-3.456 5.436-6.527l.108-.547z"/><path fill="#E31837" d="M85.378 57.216c-.512 2.657-1.031 5.336-1.031 5.336l-.042.221c-.306 1.563-.656 3.04-.601 4.403.005.129-.023.234-.145.255-.016-.074-.026-.15-.04-.224v.013a56.074 56.074 0 0 1-.78-15.303h3.926l-1.287 5.299m47.624 6.989c-.355 1.809.649 2.578 2.35 2.578 4.115 0 4.84-3.456 5.438-6.527l.108-.551c-2.686.277-7.237 1.099-7.896 4.5zm-48.881 5.273c.011.111.056.248.143.469.105.192.227.382.361.564 1.695 2.307 4.31 3.238 7.292 2.855l6.577-.825 1.524-7.84c-1.094.271-2.18.493-3.222.493-2.578 0-2.051-1.592-1.655-3.623l1.879-9.654h5.484l1.387-7.134h-5.597l1.824-9.601H90.88l-2.399 9.601h-4.667C89.287 19.691 111.632.894 138.366.894c26.742 0 49.093 18.802 54.558 43.904-1.139-.39-2.409-.562-3.633-.562-3.4 0-6.894 1.316-8.831 4.498h-.105l.764-3.952h-10.258l-5.446 28.034h10.859l3.145-16.182c.448-2.304 1.224-4.882 4.242-4.882 2.359 0 1.9 2.357 1.571 4.06l-3.307 17.004h9.926c-6.907 22.996-28.237 39.752-53.484 39.752-26.041 0-47.922-17.83-54.096-41.951a45.902 45.902 0 0 0-.398-1.292c.111-.024.213.039.248.153zM157.707 42.1h10.861l1.452-7.461h-10.863l-1.45 7.461zm-36.763 12.011c.714 0 1.373 0 2.235.016l1.911-9.778-1.46-.111c-4.271-.33-6.831 2.413-8.523 6.309h-.11l1.12-5.763h-9.27l-5.449 28.034h10.862l2.367-12.18c.318-1.645.672-3.454 1.705-4.824 1.19-1.592 2.859-1.703 4.612-1.703zm29.131 12.561 1.908-9.817c.778-4.004 1.919-7.626-1.252-10.205-2.359-1.972-6.499-2.413-9.791-2.413-6.686 0-13.492 2.607-15.017 9.896l8.331-.008c.788-2.356 2.939-3.306 5.08-3.306 2.631 0 3.098.986 2.607 3.511l-.043.216c-3.717.223-7.59.661-11.367 1.758-4.128 1.208-8.162 4.168-9.026 8.61-1.086 5.594 2.91 8.449 8.125 8.449 3.838 0 7.199-1.208 10.022-4.445-.255 1.318-.403 2.634-.374 3.896h10.479c-.436-1.974-.088-4.056.318-6.142zm12.522 6.146 5.449-28.034h-10.861l-5.449 28.034h10.861z"/><path fill="#010202" d="M22.016 34.639c-11.847 0-18.81 8.995-20.921 19.856-2.08 10.695 2.257 18.871 13.556 18.871 8.668 0 16.063-5.597 18.749-14.948H22.812c-1.163 3.578-3.108 6.282-6.422 6.282-5.209 0-4.181-6.422-3.448-10.205.693-3.564 2.438-11.41 7.54-11.41 3.648 0 4.255 3.512 3.601 7.334h10.703l.119-.696h.032c1.054-9.381-3.323-15.084-12.921-15.084"/><path fill="#E31837" d="M191.954 75.952c0-2.111 1.711-3.667 3.733-3.667 2.001 0 3.712 1.556 3.712 3.667 0 2.125-1.711 3.68-3.712 3.68-2.022 0-3.733-1.555-3.733-3.68m3.734 3.069c1.661 0 2.971-1.302 2.971-3.069 0-1.743-1.31-3.055-2.971-3.055-1.682 0-2.995 1.313-2.995 3.055-.001 1.767 1.313 3.069 2.995 3.069zm-.778-.944h-.644v-4.236h1.616c1.002 0 1.494.369 1.494 1.205 0 .759-.475 1.089-1.099 1.168l1.207 1.864h-.723l-1.114-1.835h-.738v1.834zm.767-2.381c.546 0 1.031-.037 1.031-.69 0-.525-.478-.62-.923-.62h-.875v1.31h.767z"/></svg>
|
||||
|
Before Width: | Height: | Size: 3.3 KiB |
@@ -1,71 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="926.65619"
|
||||
height="958.5625"
|
||||
id="svg2"
|
||||
inkscape:version="0.48.1 "
|
||||
sodipodi:docname="Capcom icon.svg">
|
||||
<metadata
|
||||
id="metadata3015">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1835"
|
||||
inkscape:window-height="1058"
|
||||
id="namedview3013"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.32"
|
||||
inkscape:cx="1623.239"
|
||||
inkscape:cy="170.71783"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<defs
|
||||
id="defs4" />
|
||||
<g
|
||||
transform="translate(2426,-55.799683)"
|
||||
id="layer1">
|
||||
<path
|
||||
d="m -1552.0877,1007.6508 4.1189,-358.25737 -199.9062,0 c -15.7424,43.40396 -59.9402,72.71875 -113.25,72.71875 -28.0932,0 -58.13,-6.62565 -82.4688,-21.25 -31.7176,-19.0581 -55.4185,-41.69206 -74.9375,-81.90625 -15.3567,-37.21359 -27.109,-82.77963 -28.4687,-123.09375 4.6791,-79.72921 28.9019,-108.14789 73.25,-141.03125 9.8313,-7.28971 37.2996,-13.1189 45.2187,-13.15625 17.4221,-0.0822 31.9427,10.48615 39.8125,26.0625 11.4471,22.65651 -5.3079,50.1006 -21.875,69.625 l 161.625,111.34375 249.625,-261.1875 c -87.0859,-138.79748 -246.2201,-231.718747 -428.0937,-231.718747 -275.3534,0 -498.5625,212.989027 -498.5625,475.718747 0,262.72972 216.0662,461.41517 498.5625,482.84377 l 376.5933,-1.6875 c 0.2227,-314.9224 -12.7573,-290.91079 -1.2435,-5.0239 z"
|
||||
id="path3840"
|
||||
style="fill:#0c4da2;fill-opacity:1;stroke:none"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccssccssscccssccc" />
|
||||
<path
|
||||
d="m -1927.7708,145.18332 c -226.9823,1.42857 -412.3662,166.7661 -412.3662,383.05133 0,216.28523 204.6469,402.07109 452.3662,396.47808 l 240.7127,0.6783 0,-189.50724 -45.4634,0 c -14.2837,35.73115 -80.9968,70.68064 -129.3669,70.68064 -25.4902,0 -89.6606,-3.46506 -113.3988,-11.7792 -41.9106,-14.67892 -101.712,-35.75045 -153.7082,-123.14142 -13.9338,-30.6351 -53.1686,-105.28898 -44.4023,-214.19078 4.2456,-65.63495 45.9366,-147.56776 120.7486,-184.67165 32.6212,-16.17886 65.4607,-18.83348 123.1208,-13.60101 41.3957,3.75653 82.5276,32.86328 96.8886,67.79717 11.107,27.01833 7.9153,59.94169 -5.16,78.69532 -0.9328,1.33796 -0.9528,2.52293 -0.7595,3.80017 0.1471,0.97218 1.408,2.592 1.408,2.592 l 22.7845,17.79932 c 0,0 6.4866,4.50696 14.0636,4.30516 4.4004,-0.11719 12.2667,-4.89104 12.2667,-4.89104 l 130.1212,-136.55317 c -80.4452,-108.54703 -223.4056,-147.54198 -309.8556,-147.54198 z"
|
||||
id="path3950"
|
||||
style="fill:#ffcb08;fill-opacity:1;stroke:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 16 KiB |
@@ -1 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 438 438" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><rect id="Artboard1" x="0" y="0" width="437.5" height="437.5" style="fill:none;"/><g id="layer101"><path d="M80.861,420.364c-4.353,-1.171 -8.1,-4.433 -10.133,-8.799l-1.102,-2.397l0.27,-99.121c0.291,-94.079 0.36,-100.573 1.396,-103.303c0.216,-0.469 -1.105,-1.372 -5.198,-3.524c-25.794,-13.562 -44.713,-37.051 -52.206,-64.809c-2.864,-10.522 -3.359,-14.797 -3.306,-28.127c0.096,-13.244 0.362,-15.721 3.139,-26.22c4.859,-18.438 14.538,-34.891 28.434,-48.251c15.784,-15.189 35.348,-24.767 57.621,-28.224c6.712,-1.041 23.289,-0.974 30.121,0.164c17.719,2.848 33.842,9.706 47.898,20.401c5.197,3.951 12.219,10.687 16.429,15.746c1.786,2.143 3.359,3.944 3.53,4.03c0.17,0.043 1.457,-1.276 2.831,-2.98c1.374,-1.703 4.464,-5.023 6.823,-7.364c16,-15.872 36.506,-26.044 59.249,-29.328c6.883,-0.998 22.306,-0.936 29.095,0.117c24.21,3.771 45.357,14.964 61.863,32.804c14.591,15.824 23.698,35.557 26.684,57.999c0.705,5.216 0.645,20.34 -0.103,25.635c-3.387,24.211 -13.551,44.465 -30.708,61.272c-8.322,8.17 -17.577,14.713 -27.465,19.501c-1.841,0.89 -2.398,1.358 -2.187,1.871c1.355,3.125 1.433,5.048 1.331,30.426c-0.056,14.056 -0.017,25.549 0.111,25.55c0.128,0 18.029,-10.353 39.741,-22.998c21.712,-12.602 40.555,-23.464 41.839,-24.057c1.969,-0.932 2.952,-1.099 6.199,-1.086c3.29,0.013 4.229,0.188 6.276,1.178c3.241,1.509 6.433,4.598 7.874,7.594l1.186,2.398l-0.204,83.099c-0.171,63.745 -0.335,83.526 -0.726,84.977c-1.733,6.188 -8.375,11.117 -14.998,11.091c-4.742,-0.019 -4.742,-0.019 -46.94,-25.012l-40.62,-24.046l-0.32,26.574c-0.309,23.754 -0.407,26.83 -1.054,28.451c-1.899,4.649 -5.458,7.967 -10.164,9.444c-2.695,0.843 -3.763,0.839 -116.64,0.344c-88.824,-0.356 -114.33,-0.586 -115.866,-1.02Zm140.434,-223.059c-0.256,-0.215 -1.661,-1.331 -3.195,-2.448c-6.858,-5.197 -12.604,-10.732 -18.726,-18.148c-1.021,-1.243 -2,-2.187 -2.128,-2.145c-0.171,0.085 -1.759,1.873 -3.562,4.002c-4.25,5.067 -10.769,11.151 -16.426,15.444l-4.585,3.442l24.524,0.098c13.458,0.054 24.31,-0.073 24.098,-0.245Zm-94.961,-25.46c25.4,-5.495 44.191,-24.646 49.163,-50.005c1.571,-8.239 1.017,-19.307 -1.512,-27.991c-5.519,-19.291 -20.708,-35.245 -39.61,-41.602c-7.594,-2.551 -10.669,-3.033 -19.726,-3.069c-8.673,-0.035 -11.751,0.38 -18.767,2.573c-19.293,5.99 -35.166,22.119 -40.926,41.621c-2.598,8.663 -3.241,19.726 -1.736,27.978c2.552,13.511 8.999,25.415 18.788,34.683c9.024,8.495 19.726,13.836 32.534,16.194c4.355,0.787 17.43,0.583 21.792,-0.382Zm167.009,0.498c5.987,-1.343 8.683,-2.315 14.804,-5.324c17.081,-8.391 28.977,-23.639 33.369,-42.847c0.87,-3.756 1.006,-5.636 1.033,-12.344c0.026,-6.707 -0.094,-8.588 -0.934,-12.351c-5.454,-24.845 -23.837,-43.29 -48.596,-48.773c-5.165,-1.174 -18.751,-1.228 -23.925,-0.096c-25.999,5.536 -45.305,25.454 -49.553,51.114c-0.831,4.91 -0.869,14.31 -0.077,19.226c4.125,26.164 24.251,46.796 50.422,51.686c6.233,1.178 17.642,1.01 23.457,-0.291Z" style="fill:#fff;fill-rule:nonzero;"/></g></svg>
|
||||
|
Before Width: | Height: | Size: 3.2 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" id="Layer_1" x="0" y="0" style="enable-background:new 0 0 83.8 44.2" version="1.1" viewBox="0 0 83.8 44.2"><style>.st0{fill:#006298}</style><g id="clipper_logo" transform="translate(-94.453 -83.393)"><path id="Path_1" d="M136.8 106.2c-.9 1.9-2.7 3.1-4.8 3.1-3 0-5.4-2.3-5.4-5.3s2.3-5.4 5.3-5.4c2.1 0 4 1.2 4.9 3.1h-2.2c-.7-.9-1.7-1.4-2.8-1.4-1.9.1-3.4 1.7-3.4 3.6 0 1.9 1.5 3.5 3.4 3.6 1 0 2-.5 2.6-1.3h2.4z" class="st0"/><path id="Path_2" d="M138.3 98.8h1.9v8.5h3.1v1.8h-5V98.8z" class="st0"/><path id="Path_3" d="M144.8 98.8h1.9v10.3h-1.9V98.8z" class="st0"/><path id="Path_4" d="M148.2 98.8h2.6c1.1-.1 2.1.2 3 .8 1.3 1.3 1.3 3.5 0 4.8-.9.6-1.9.9-3 .8h-.7v3.9h-1.9V98.8zm1.9 4.6h.6c.8 0 2.2-.1 2.2-1.4s-1.3-1.4-2.1-1.4h-.7v2.8z" class="st0"/><path id="Path_5" d="M156.3 98.8h2.6c1.1-.1 2.1.2 3 .8 1.3 1.3 1.3 3.5 0 4.8-.9.6-1.9.9-3 .8h-.7v3.9h-1.9V98.8zm1.9 4.6h.6c.8 0 2.2-.1 2.2-1.4s-1.3-1.4-2.1-1.4h-.7v2.8z" class="st0"/><path id="Path_6" d="M164.3 98.8h5.5v1.8h-3.6v2.5h3.5v1.8h-3.5v2.4h3.6v1.8h-5.5V98.8z" class="st0"/><path id="Path_7" d="M171.3 98.8h3.2c.9-.1 1.8.2 2.5.7.8.6 1.2 1.5 1.2 2.5 0 .9-.4 1.8-1 2.5-.5.4-1.1.7-1.7.8l2.8 3.8H176l-2.7-3.9v3.9h-1.9V98.8h-.1zm2 4.9h1.2c1.6 0 1.8-1 1.8-1.6s-.3-1.6-1.8-1.6h-1.2v3.2z" class="st0"/><path id="Path_8" d="M99.6 86.6c-.1-.2.1-.4.1-.4.2-.3 1.5-1.8 1.8-2.2.1-.1.2-.2.3-.2.2 0 .3.1.3.2.1.1 1.8 2.2 1.8 2.2s.2.2.1.4-.4.2-.4.2H100s-.3 0-.4-.2z" class="st0"/><path id="Path_9" d="M98.5 91.6c-.1-.2.1-.5.2-.6.4-.4 2.3-2.8 2.7-3.3.2-.2.3-.3.5-.3s.4.1.5.3c.1.1 2.7 3.3 2.7 3.3s.3.3.2.6c-.1.2-.4.3-.6.3h-5.5c-.1 0-.6 0-.7-.3z" class="st0"/><path id="Path_10" d="M97.2 98.3c-.2-.3.2-.7.2-.8.5-.6 3.2-3.8 3.8-4.5.1-.3.4-.4.7-.4.4 0 .5.3.6.4.1.1 3.8 4.5 3.8 4.5s.4.5.2.8c-.2.4-.8.4-.8.4H98s-.6 0-.8-.4z" class="st0"/><path id="Path_11" d="M94.5 100.3c-.2.5.3 1.1.4 1.3.8 1 5 6 5.9 7.1.2.4.6.6 1 .6s.8-.2 1-.6c.2-.2 5.9-7.1 5.9-7.1s.6-.7.4-1.3c-.3-.7-1.3-.7-1.3-.7h-12s-1 0-1.3.7z" class="st0"/><path id="Path_12" d="M110 88.2c-.1-.3 0-.5.2-.7.4-.5 2.7-3.2 3.1-3.8.1-.2.4-.3.6-.3.2 0 .4.1.5.3.1.1 3.1 3.8 3.1 3.8s.3.4.2.7c-.1.2-.4.4-.7.3h-6.4c.1.1-.4.1-.6-.3z" class="st0"/><path id="Path_13" d="M108.1 96.9c-.2-.4.2-.9.3-1 .6-.8 4-4.8 4.7-5.7.3-.3.4-.5.8-.5.3 0 .7.2.8.5.1.2 4.7 5.7 4.7 5.7s.5.6.3 1c-.2.3-.6.5-1 .5h-9.6s-.8.1-1-.5z" class="st0"/><path id="Path_14" d="M105.8 108.5c-.3-.6.3-1.3.4-1.4.9-1.1 5.6-6.7 6.6-7.9.4-.5.6-.7 1.2-.7.5 0 .9.3 1.1.7.2.2 6.5 7.9 6.5 7.9s.7.8.4 1.4c-.3.4-.8.7-1.4.7h-13.3c-.6.1-1.2-.2-1.5-.7z" class="st0"/><path id="Path_15" d="M101.2 112c-.2.8 0 1.6.6 2.2 1.4 1.7 8.7 10.5 10.3 12.3.4.6 1.1 1 1.8 1s1.3-.4 1.7-1c.3-.3 10.3-12.3 10.3-12.3s1.1-1.3.6-2.2c-.6-1.2-2.3-1.1-2.3-1.1h-20.9c-.9-.1-1.7.3-2.1 1.1z" class="st0"/><path id="Path_16" d="M121.6 125.7c0 1-.8 1.8-1.8 1.8s-1.8-.8-1.8-1.8.8-1.8 1.8-1.8c.9-.1 1.8.6 1.8 1.6.1.1.1.2 0 .2zm-3.2 0c0 .8.6 1.4 1.4 1.4.8 0 1.4-.6 1.4-1.4s-.6-1.4-1.4-1.4c-.8 0-1.4.6-1.4 1.4zm1.4-1c.2 0 .8 0 .8.6 0 .2-.2.4-.4.4.2 0 .4.2.4.6v.4h-.4v-.4c0-.4 0-.4-.4-.4h-.4v.8h-.4v-2.1l.8.1zm-.4.9h.4c.2 0 .4 0 .4-.4 0-.2-.2-.2-.4-.2h-.4v.6z" class="st0"/></g></svg>
|
||||
|
Before Width: | Height: | Size: 3.1 KiB |
@@ -1,27 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1220.8 227.9" style="enable-background:new 0 0 1220.8 227.9;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#0D253E;}
|
||||
.st1{fill:#008AFB;}
|
||||
</style>
|
||||
<title>CoinTracking light</title>
|
||||
<g id="Layer_2_1_">
|
||||
<g id="Layer_1-2">
|
||||
<path class="st0" d="M198.1,167c-30.2,0-54.7-24.5-54.7-54.7s24.5-54.7,54.7-54.7s54.7,24.5,54.7,54.7l0,0 C252.8,142.5,228.3,167,198.1,167z M198.1,81.6c-17,0-30.7,13.7-30.7,30.7s13.7,30.7,30.7,30.7s30.7-13.7,30.7-30.7l0,0 C228.8,95.4,215,81.6,198.1,81.6z"/>
|
||||
<path class="st0" d="M292.2,59.5h-23.6v107.9h23.6V59.5z"/>
|
||||
<path class="st0" d="M339.5,167.4h-23.8V59.5h23.8v16.2c6.2-12.5,21-18.5,33-18.5c26.1,0,41.1,16.9,41.1,47.3v62.8h-23.8v-60.1 c0-17.1-8.8-26.8-22.6-26.8c-14.1,0-27.7,7.6-27.7,28.9V167.4z"/>
|
||||
<path class="st1" d="M390.6,8.2h151.7v22.9h-65.9v136.3h-25V31.1h-60.9V8.2H390.6z"/>
|
||||
<path class="st1" d="M540.3,167.4h-23.8V59.5h23.8V79c7.4-13.5,15.4-19.5,29.6-21.8c7.5-1.2,15.7,1.8,19.2,4.2l-3.9,22 c-4.9-2.5-10.4-3.8-15.9-3.7c-20.3,0-28.9,20.3-28.9,49L540.3,167.4L540.3,167.4z"/>
|
||||
<path class="st1" d="M680.7,151.9c-7.2,11.8-22.9,17.8-36.3,17.8c-29.1,0-54.8-21.9-54.8-56.4s25.6-56.1,54.8-56.1 c12.9,0,28.9,5.3,36.3,17.5V59.5h23.6v107.9h-23.6V151.9z M647.2,146.6c17.6,0,33.3-12.2,33.3-33.5s-17.1-32.8-33.3-32.8 c-18,0-33,12.9-33,32.8S629.2,146.6,647.2,146.6L647.2,146.6z"/>
|
||||
<path class="st1" d="M778.4,57.2c17.1,0,32.6,6.7,42.7,18.7l-18.5,14.8c-5.8-6.7-14.8-10.4-24.3-10.4c-18,0-34,12.7-34,32.8 s15.9,33.7,34,33.7c9.5,0,18.5-3.9,24.3-10.6l18.7,14.6c-10.2,12-25.6,18.9-43,18.9c-31,0-57.5-22.4-57.5-56.6 S747.4,57.2,778.4,57.2z"/>
|
||||
<path class="st1" d="M860.3,117.2v50.1h-23.6V0.8h23.6V95l34.2-35.6h31.9l-46,46.9l56.4,61h-30.5L860.3,117.2z"/>
|
||||
<path class="st1" d="M967.4,59.5h-23.6v107.9h23.6V59.5z"/>
|
||||
<path class="st1" d="M1014.7,167.4h-23.8V59.5h23.8v16.2c6.2-12.5,21-18.5,33-18.5c26.1,0,41.1,16.9,41.1,47.3v62.8H1065v-60.1 c0-17.1-8.8-26.8-22.6-26.8c-14.1,0-27.7,7.6-27.7,28.9V167.4z"/>
|
||||
<path class="st1" d="M1220.2,111.5c0-12.3-4.5-24.2-12.5-33.6l13-17.1l-19.6-13l-11.9,15.7c-8.3-4.1-17.5-6.2-26.8-6.2 c-31.9,0-57.8,24.4-57.8,54.3s25.9,54.3,57.8,54.3c20.2,0,34.2,10.2,34.2,19.3s-14.1,19.3-34.2,19.3s-34.2-10.2-34.2-19.3h-23.6 c0,24,25.4,42.9,57.8,42.9s57.8-18.8,57.8-42.9c0-13.2-7.7-24.8-19.9-32.6C1212.5,142.5,1220.2,127.8,1220.2,111.5z M1128.2,111.5 c0-16.9,15.4-30.7,34.2-30.7s34.2,13.8,34.2,30.7s-15.4,30.7-34.2,30.7S1128.2,128.4,1128.2,111.5L1128.2,111.5z"/>
|
||||
<path class="st0" d="M81.4,170.5C36.4,170.5,0,134,0,89c0-21.6,8.6-42.3,23.9-57.6c31.8-31.8,83.4-31.8,115.2,0l0,0l-17.7,17.7 C99.3,27,63.6,27,41.5,49.1s-22.1,57.8,0,79.9s57.8,22.1,79.9,0l17.7,17.7C123.8,162,103.1,170.6,81.4,170.5z"/>
|
||||
<circle class="st0" cx="280.7" cy="15.5" r="15.5"/>
|
||||
<circle class="st1" cx="954.7" cy="15.5" r="15.5"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.0 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 512 512"><path d="M63.7-161.7h-90.9v272.8h90.9zm0 363.7h363.7v-90.9H63.7zm0-363.7h363.7v-90.9H63.7z" style="fill:#8c52ff;fill-opacity:.302" transform="translate(84.664 310.016)"/><path d="M48.2-177.1h-90.9V95.6h90.9zm0 363.6h363.7V95.6H48.2zm0-363.6h363.7V-268H48.2z" style="fill:#8c52ff;fill-opacity:.502" transform="translate(71.406 296.758)"/><path d="M32.8-192.6h-90.9V80.2h90.9zm0 363.7h363.7V80.2H32.8zm0-363.7h363.7v-90.9H32.8z" style="fill:#8c52ff" transform="translate(58.147 283.5)"/></svg>
|
||||
|
Before Width: | Height: | Size: 574 B |
|
Before Width: | Height: | Size: 7.4 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" data-name="Layer 2" viewBox="0 0 377.1 277.86"><path d="M373.15 23.32c-4-1.95-5.72 1.77-8.06 3.66-.79.62-1.47 1.43-2.14 2.14-5.85 6.26-12.67 10.36-21.57 9.86-13.04-.71-24.16 3.38-33.99 13.37-2.09-12.31-9.04-19.66-19.6-24.38-5.54-2.45-11.13-4.9-14.99-10.23-2.71-3.78-3.44-8-4.81-12.16-.85-2.51-1.72-5.09-4.6-5.52-3.13-.5-4.36 2.14-5.58 4.34-4.93 8.99-6.82 18.92-6.65 28.97.43 22.58 9.97 40.56 28.89 53.37 2.16 1.46 2.71 2.95 2.03 5.09-1.29 4.4-2.82 8.68-4.19 13.09-.85 2.82-2.14 3.44-5.15 2.2-10.39-4.34-19.37-10.76-27.29-18.55-13.46-13.02-25.63-27.41-40.81-38.67-3.57-2.64-7.12-5.09-10.81-7.41-15.49-15.07 2.03-27.45 6.08-28.9 4.25-1.52 1.47-6.79-12.23-6.73-13.69.06-26.24 4.65-42.21 10.76-2.34.93-4.79 1.61-7.32 2.14-14.5-2.73-29.55-3.35-45.29-1.58-29.62 3.32-53.28 17.34-70.68 41.28C1.29 88.2-3.63 120.88 2.39 155c6.33 35.91 24.64 65.68 52.8 88.94 29.18 24.1 62.8 35.91 101.15 33.65 23.29-1.33 49.23-4.46 78.48-29.24 7.38 3.66 15.12 5.12 27.97 6.23 9.89.93 19.41-.5 26.79-2.02 11.55-2.45 10.75-13.15 6.58-15.13-33.87-15.78-26.44-9.36-33.2-14.54 17.21-20.41 43.15-41.59 53.3-110.19.79-5.46.11-8.87 0-13.3-.06-2.67.54-3.72 3.61-4.03 8.48-.96 16.72-3.29 24.28-7.47 21.94-12 30.78-31.69 32.87-55.33.31-3.6-.06-7.35-3.86-9.24ZM181.96 235.97c-32.83-25.83-48.74-34.33-55.31-33.96-6.14.34-5.04 7.38-3.69 11.97 1.41 4.53 3.26 7.66 5.85 11.63 1.78 2.64 3.01 6.57-1.78 9.49-10.57 6.58-28.95-2.2-29.82-2.64-21.38-12.59-39.26-29.24-51.87-52.01-12.16-21.92-19.23-45.43-20.39-70.52-.31-6.08 1.47-8.22 7.49-9.3 7.92-1.46 16.11-1.77 24.03-.62 33.49 4.9 62.01 19.91 85.9 43.63 13.65 13.55 23.97 29.71 34.61 45.49 11.3 16.78 23.48 32.75 38.97 45.84 5.46 4.59 9.83 8.09 14 10.67-12.59 1.4-33.62 1.71-47.99-9.68Zm15.73-101.32c0-2.7 2.15-4.84 4.87-4.84.6 0 1.16.12 1.66.31.67.25 1.29.62 1.77 1.18.87.84 1.36 2.08 1.36 3.35 0 2.7-2.15 4.84-4.85 4.84s-4.81-2.14-4.81-4.84Zm48.86 25.12c-3.13 1.27-6.26 2.39-9.27 2.51-4.67.22-9.77-1.68-12.55-4-4.3-3.6-7.36-5.61-8.67-11.94-.54-2.7-.23-6.85.25-9.24 1.12-5.15-.12-8.44-3.74-11.44-2.96-2.45-6.7-3.1-10.82-3.1-1.54 0-2.95-.68-4-1.24-1.72-.87-3.13-3.01-1.78-5.64.43-.84 2.53-2.92 3.02-3.29 5.58-3.19 12.03-2.14 18 .25 5.54 2.26 9.71 6.42 15.72 12.28 6.16 7.1 7.26 9.09 10.76 14.39 2.76 4.19 5.29 8.47 7.01 13.37 1.04 3.04-.31 5.55-3.94 7.1Z" data-name="Layer 1" style="fill:#4d6bfe;stroke-width:0"/></svg>
|
||||
|
Before Width: | Height: | Size: 2.3 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="18.5 18.2 162.9 163.7"><path fill="#FFF" d="m71 70.9 49.6-49.6c3.7-3.7 7.9-4.4 12.4 0l46.1 46.1c3.3 3.3 3 8.3 0 11.3L78.8 178.9c-3.6 3.6-8.3 4.2-12.5 0l-45.1-45.1c-3.6-3.6-3.3-9.3 0-12.6L71 70.9z"/><path fill="#006491" d="m71.8 76 51.9 51.9-47.2 47.2c-2.9 2.9-5.9 3-8.9 0l-43.2-43.2c-2.7-2.7-2.5-5.7 0-8.2L71.8 76z"/><path fill="#E31837" d="M127 124.8 75.1 72.9l47.2-47.2c2.9-2.9 5.9-3 8.9 0l43.2 43.2c2.7 2.7 2.5 5.7 0 8.2L127 124.8z"/><circle cx="126.7" cy="73" r="12.8" fill="#FFF"/><circle cx="90.8" cy="127.9" r="12.8" fill="#FFF"/><circle cx="53.4" cy="127.9" r="12.8" fill="#FFF"/></svg>
|
||||
|
Before Width: | Height: | Size: 664 B |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" id="Layer_1" x="0" y="0" style="enable-background:new 0 0 516.2 100" version="1.1" viewBox="0 0 516.2 100"><style>.st0{fill:#ef6a00}</style><path d="M36.3 2.1H15.4C6.5 2.1 0 8.6 0 17.5v65.1C0 91.5 6.5 98 15.4 98h20.9C66.1 97.9 87 78.2 87 50S66.1 2.1 36.3 2.1zm1 70.4H26.6v-45h10.7c13.6 0 23.1 9.2 23.1 22.5s-9.5 22.5-23.1 22.5zM176.6 13.6C176.6 5.7 171 0 163.3 0 155.6 0 150 5.8 150 13.6v44.7c0 8.6-6.5 15.4-14.8 15.4s-14.8-6.8-14.8-15.4V13.6c0-7.9-5.6-13.6-13.3-13.6-7.7 0-13.3 5.7-13.3 13.6v45.9c0 23.9 17 40.5 41.4 40.5s41.4-16.7 41.4-40.5V13.6zM352.7 75.2l-22.6-25.6 21.1-24.7c3.1-3.6 4.7-7.2 4.7-10.5 0-8-6.2-14.4-14-14.4-4 0-7.7 2.2-11.4 6.7l-23.8 31.9v-25c0-8.1-5.4-13.6-13.3-13.6-8 0-13.3 5.5-13.3 13.6v72.8c0 8.1 5.4 13.6 13.3 13.6 8 0 13.3-5.5 13.3-13.6V61.2l25.6 32.5c3.7 4.5 6.9 6.3 10.9 6.3 7.9 0 13.6-6 13.6-14.4 0-3.7-1.5-7.5-4.1-10.4zM390.2 13.6c0-8.1-5.4-13.6-13.3-13.6-8 0-13.3 5.5-13.3 13.6v72.8c0 8.1 5.4 13.6 13.3 13.6 8 0 13.3-5.5 13.3-13.6V13.6z" class="st0"/><path d="M516.1 14.4c.9-7.4-4.6-12-10.2-12.7-4.7-.6-8.2.9-10.6 4.2-1.8 2.5-2.9 6.2-3.6 12.1-.7 6.1-.6 10.2.2 12.9 1.2 3.6 4 5.8 7.8 6.3 7.2.8 10.7-5 14.8-16.8.8-2.5 1.5-4.8 1.6-6z" style="fill:#c63663"/><path d="M212.8 49.2v37.2c0 8.1-5.4 13.6-13.3 13.6-8 0-13.3-5.5-13.3-13.6V13.6c0-8.1 5.4-13.6 13.3-13.6 3.8 0 7.3 1.4 9.4 3.5 2 2.1 35.5 47.3 35.5 47.3V13.6c0-8.1 5.4-13.6 13.3-13.6 8 0 13.3 5.5 13.3 13.6v72.8c0 8.1-5.4 13.6-13.3 13.6-3.8 0-7.3-1.4-9.4-3.5-2.2-2.1-35.5-47.3-35.5-47.3zM426.1 49.2v37.2c0 8.1-5.4 13.6-13.3 13.6-8 0-13.3-5.5-13.3-13.6V13.6c0-8.1 5.4-13.6 13.3-13.6 3.8 0 7.3 1.4 9.4 3.5 2 2.1 35.5 47.3 35.5 47.3V13.6C457.7 5.5 463 0 471 0s13.3 5.5 13.3 13.6v72.8c0 8.1-5.4 13.6-13.3 13.6-3.8 0-7.3-1.4-9.4-3.5-2.1-2.1-35.5-47.3-35.5-47.3zM498.4 90.1h-2.2c-.4 0-.7.3-.7.7v5.3c0 .4.3.7.7.7.4 0 .7-.3.7-.7v-1.7h.9l1.6 2.2c.1.2.4.3.6.3.4 0 .7-.3.7-.7 0-.2-.1-.3-.3-.6l-1-1.4.3-.2c.5-.4.8-1 .8-1.7 0-1.3-.9-2.2-2.1-2.2zm-.6 3.3h-1v-2.3h1c.7 0 1.2.5 1.2 1.1s-.4 1.2-1.2 1.2z" class="st0"/><path d="M497.8 86.9c-3.7 0-6.7 2.9-6.7 6.5s3 6.5 6.7 6.5 6.7-2.9 6.7-6.5c.1-3.5-2.9-6.5-6.7-6.5zm0 11.9c-3 0-5.4-2.4-5.4-5.4 0-3 2.4-5.4 5.4-5.4 3 0 5.4 2.4 5.4 5.4 0 3-2.4 5.4-5.4 5.4z" class="st0"/></svg>
|
||||
|
Before Width: | Height: | Size: 2.2 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" fill="none"><g clip-path="url(#a)"><path fill="#19BA19" d="M64 128c35.3462 0 64-28.6538 64-64 0-35.3462-28.6538-64-64-64C28.6538 0 0 28.6538 0 64c0 35.3462 28.6538 64 64 64Z"/><path fill="#fff" d="M96.6725 54.9921a2.4812 2.4812 0 0 0 0-3.51l-20.25-20.25a2.4822 2.4822 0 0 0-1.755-.7272 2.4807 2.4807 0 0 0-1.755.7272l-7.25 7.25a2.4812 2.4812 0 0 1-3.51 0l-7.195-7.22a2.4822 2.4822 0 0 0-1.755-.7272 2.4804 2.4804 0 0 0-1.755.7272l-20.2212 20.25a2.4802 2.4802 0 0 0-.7273 1.755 2.4812 2.4812 0 0 0 .7273 1.755l7.25 7.25a2.4815 2.4815 0 0 1 0 3.51l-7.25 7.1863a2.4809 2.4809 0 0 0 0 3.51l20.25 20.25a2.4822 2.4822 0 0 0 1.755.7272 2.4807 2.4807 0 0 0 1.755-.7272l7.25-7.25a2.4809 2.4809 0 0 1 3.51 0l7.25 7.25a2.4822 2.4822 0 0 0 1.755.7272 2.4807 2.4807 0 0 0 1.755-.7272l20.25-20.25a2.4826 2.4826 0 0 0 .7272-1.755 2.4809 2.4809 0 0 0-.7272-1.755l-7.25-7.25a2.4824 2.4824 0 0 1-.7273-1.755 2.4809 2.4809 0 0 1 .7273-1.755l7.1662-7.2088v-.0075ZM82.0663 67.9596c0 7.7875-6.35 14.1375-14.1375 14.1375h-7.955c-7.7875 0-14.1375-6.35-14.1375-14.1375v-7.96c0-7.7875 6.35-14.1375 14.1375-14.1375h7.955c7.7875 0 14.1375 6.35 14.1375 14.1375v7.96Z"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h128v128H0z"/></clipPath></defs></svg>
|
||||
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 17 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" id="Layer_1" x="0" y="0" style="enable-background:new 0 0 77.8 99.5" version="1.1" viewBox="0 0 77.8 99.5"><style>.st3{fill:#e63888}.st4{fill:#1d4f91}</style><path d="M37.4 23.4h11.2c3.4 0 6.1-2.7 6.1-6.1V6.1C54.7 2.7 52 0 48.6 0H37.4c-3.4 0-6.1 2.7-6.1 6.1v11.2c.1 3.4 2.7 6.1 6.1 6.1z" style="fill:#426da9"/><path d="M26.4 29.2c0-3.8-3.1-6.9-6.9-6.9H6.9c-3.8 0-6.9 3.1-6.9 6.9v12.7c0 3.7 3.1 6.8 6.9 6.8h12.6c3.8 0 6.9-3 6.9-6.8V29.2z" style="fill:#6d2077"/><path d="M18.3 58.9h-7.8c-2.3 0-4.2 1.9-4.2 4.2v7.8c0 2.3 1.9 4.2 4.2 4.2h7.8c2.3 0 4.2-1.9 4.2-4.2v-7.8c0-2.3-1.9-4.2-4.2-4.2z" style="fill:#af1685"/><path d="M72.7 14.9h-6.4c-1.9 0-3.4 1.5-3.4 3.4v6.4c0 1.9 1.5 3.4 3.4 3.4h6.4c1.9 0 3.5-1.6 3.4-3.4v-6.4c-.1-1.9-1.5-3.4-3.4-3.4zM39.1 80.5H30c-2.8 0-5 2.3-5 5v9.2c0 2.7 2.3 4.9 5 4.9h9.2c2.7 0 5-2.2 5-5v-9.1c-.1-2.8-2.4-5-5.1-5z" class="st3"/><path d="M52.7 36.4c-10.2 0-18.3 8.2-18.3 18.2 0 10.1 8.1 18.3 18.1 18.3h.2c4.9 0 9.5-1.9 12.6-5.2.6-.6 1.1-1.4 1.1-2.3 0-1.6-1.4-3.1-3.1-3.1-.9 0-1.8.6-2.4 1.2-2.1 2.2-5.1 3.2-8.3 3.2-6.1 0-11-4.2-12.1-10H68.2c.1 0 .2 0 .3-.1 1.5-.4 2.4-1.7 2.4-3.1-.1-9.1-8.5-17.1-18.2-17.1zM41 50.9c1.6-4.9 6.2-8.5 11.7-8.5 5.5 0 10.1 3.5 11.6 8.5H41zM71 72.5c-.2 0-.4-.2-.4-.4v-3.9h-.8c-.2 0-.4-.2-.4-.4s.2-.4.4-.4h2.5c.2 0 .4.2.4.4s-.2.4-.4.4h-.9v3.9c0 .2-.1.4-.4.4zm4.6 0c-.2 0-.3-.2-.4-.3L74.1 69v3.2c0 .2-.2.4-.4.4s-.4-.2-.4-.4V68c0-.3.3-.6.6-.6.2 0 .5.2.5.5l1.1 3.2 1.1-3.2c.1-.2.3-.4.5-.5.3 0 .6.3.6.6v4.2c0 .2-.2.4-.4.4s-.4-.2-.4-.4V69l-.6 1.9-.3 1.3c-.1.2-.2.3-.4.3z" class="st4"/></svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0.87 0.06 173.29 236.52"><path fill="#fff" d="M168.646.176C107.411 11.96 51.294 28.372 4.097 51.181a5.72 5.72 0 0 0-3.232 5.05v116.99a31.48 31.48 0 0 0 15.721 27.253l55.175 31.899a31.52 31.52 0 0 0 31.459 0l55.209-31.899a31.48 31.48 0 0 0 15.721-27.253V4.637a4.478 4.478 0 0 0-5.504-4.46"/><path fill="#0068AD" d="M161.966 9.91c-56.193 10.812-107.69 25.873-151 46.804a5.25 5.25 0 0 0-2.965 4.634v107.357a28.89 28.89 0 0 0 14.426 25.008l50.632 29.273a28.94 28.94 0 0 0 28.868 0l50.663-29.273a28.88 28.88 0 0 0 14.426-25.008V14.003a4.108 4.108 0 0 0-5.05-4.094"/><path fill="#fff" d="M161.966 9.91c-25.965 5.004-50.864 10.951-74.465 17.918v198.988a28.8 28.8 0 0 0 14.426-3.83l50.663-29.273a28.88 28.88 0 0 0 14.426-25.008V14.003a4.108 4.108 0 0 0-5.05-4.094" opacity=".07"/><path fill="#020404" d="M132.912 40.71c-39.217 5.067-75.13 14.768-105.357 27.805a3.51 3.51 0 0 0-2.07 3.09v25.95a.62.62 0 0 1 .356-.571c31.417-13.717 69.136-23.835 110.392-28.901h.185V43.8a3.08 3.08 0 0 0-1.047-2.346 3.1 3.1 0 0 0-2.459-.744M93.803 87.175a345 345 0 0 0-66.325 19.371 3.4 3.4 0 0 0-2.008 3.089v25.951a.54.54 0 0 1 .34-.54 342.3 342.3 0 0 1 67.962-20.081z" opacity=".29"/><path fill="#fff" d="M137.144 32.987C96.398 40.849 59.05 53.068 27.633 68.283a3.82 3.82 0 0 0-2.147 3.322v25.95a.65.65 0 0 1 .37-.587C58.51 80.95 97.742 68.114 140.62 60.144l.201-.093V35.953a3 3 0 0 0-1.114-2.38 3 3 0 0 0-2.562-.586M98.53 80.193a421.7 421.7 0 0 0-70.96 26.26 3.8 3.8 0 0 0-2.147 3.352v25.936a.63.63 0 0 1 .372-.587 418.6 418.6 0 0 1 72.734-27.11z"/><path fill="#020404" d="M52.3 138.027a244 244 0 0 0-24.961 6.627 2.975 2.975 0 0 0-1.854 2.935v25.966a.51.51 0 0 1 .31-.51 239 239 0 0 1 26.505-7.213z" opacity=".29"/><path fill="#fff" d="M56.625 131.709c-10.117 3.877-19.88 8.032-28.992 12.497a3.82 3.82 0 0 0-2.147 3.367v25.982a.65.65 0 0 1 .37-.587c9.685-4.742 19.987-9.191 30.769-13.331z"/></svg>
|
||||
|
Before Width: | Height: | Size: 1.9 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2" viewBox="0 0 300 300"><path d="M.017 300.002h299.995V0H.017z"/><path d="M108.4 93.8a47.14 47.14 0 0 1-31 14.5V93.8h31Zm-50.1 14.5c-12.2-.8-23.1-6.2-31.1-14.5h31.1v14.5ZM135.6 0H67.9C30.4 0 0 30.3 0 67.8s30.4 67.9 67.9 67.9c35.9 0 65.2-27.8 67.7-63.1V0Z" style="fill:#00e205;fill-rule:nonzero" transform="translate(25 24.908) scale(1.84366)"/></svg>
|
||||
|
Before Width: | Height: | Size: 495 B |
|
Before Width: | Height: | Size: 18 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2" viewBox="0 0 300 300"><path d="M104.712 80.594h14.575v45.939h-14.575z" style="fill:none" transform="matrix(20.5829 0 0 -6.53046 -2155.26 826.318)"/><path d="M129 297.5c-14.9-7.1-21.6-22.9-16-38 2.2-5.8 5.7-9.5 108.1-112L327 41.5l-.2 119-.3 119-2.2 4.1c-1.2 2.3-4.5 6.2-7.3 8.7-6.5 5.9-13 8.1-21.9 7.5-11.2-.8-19.3-6.3-24.3-16.6l-3.3-6.7-.3-44.9-.3-45-54.2 54.1c-37.8 37.7-55.6 54.8-58.7 56.4-3.1 1.5-6.8 2.4-12 2.6-6.5.4-8.2.1-13-2.2Zm1.7-127.9c-2-.7-4.5-2-5.5-2.7-12.1-9.1-16.6-21.2-12.7-34.5 1.6-5.8 2.4-6.6 33.6-37.9C163.6 76.8 178 62.1 178 61.7c0-.3-34.8-.8-77.2-.9l-77.3-.3-5.1-2.3C7.4 53.2.6 42.6.6 30.5.7 19.3 6.2 10 16.1 4.5l5.4-3 151-.3 151-.2L241 83.5c-60 60-83.7 83.1-87 84.8-5.6 2.7-17.6 3.4-23.3 1.3Z" style="fill:#00d993;fill-rule:nonzero" transform="translate(24.54 34.767) scale(.76593)"/></svg>
|
||||
|
Before Width: | Height: | Size: 958 B |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 171.6 512 168.9"><path d="M113.8 234.7c8.5 6.9 12.7 17.6 12.7 32.3v73.5H86.2v-68.1q0-4.5-3.3-7.8t-7.8-3.3H51.5c-3 0-5.5 1.1-7.6 3.3s-3.2 4.8-3.2 7.8v68.1H0V171.6h40.7v55c.6-.2 2.1-.6 4.5-1.3 2.3-.6 5.4-1 9.2-1h26.1c13.7.1 24.9 3.5 33.3 10.4M242 224.4h40.7v71.2c0 13.4-3.7 24.2-11 32.4-7.3 8.3-17.2 12.4-29.7 12.4h-40.1c-14 0-25.2-3.9-33.5-11.6-8.4-7.7-12.6-18.8-12.6-33.2v-71.2h40.7v68.1c0 3 1.1 5.5 3.2 7.6s4.7 3.2 7.6 3.2h23.5c3 0 5.6-1.1 7.8-3.2s3.3-4.7 3.3-7.6v-68.1zm71.6-52.8h40.7v168.9h-40.7zM512 224.4v71.2c0 13.4-3.7 24.2-11 32.4-7.3 8.3-17.2 12.4-29.7 12.4h-39.8c-14.2 0-25.5-3.9-33.9-11.6S385 310 385 295.6v-71.2h40.7v68.1c0 3 1.1 5.5 3.2 7.6s4.7 3.2 7.6 3.2h23.9c3 0 5.5-1.1 7.6-3.2s3.2-4.7 3.2-7.6v-68.1z" style="fill:#1ce783"/></svg>
|
||||
|
Before Width: | Height: | Size: 819 B |
|
Before Width: | Height: | Size: 15 KiB |
@@ -1,4 +0,0 @@
|
||||
<svg width="76" height="28" viewBox="0 0 76 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M3.6137 0.263554V24.2528C3.6137 24.3057 3.59223 24.3565 3.55413 24.3932L0.140163 27.6896C0.0876965 27.7404 0 27.703 0 27.6301V0.263554C0 0.217915 0.0370442 0.180891 0.0827069 0.180891H3.53099C3.57666 0.180891 3.6137 0.217915 3.6137 0.263554ZM12.9151 7.14572C12.9151 4.77676 14.8577 3.33976 17.4613 3.33976C19.7149 3.33976 21.3857 4.27186 23.173 5.94205C23.445 6.21361 23.5321 6.36292 23.8042 6.05236L25.4188 4.31055C25.6908 4 25.5433 3.92232 25.2713 3.65076C23.3283 1.39816 20.4529 0 17.4223 0C12.9538 0 9.41785 2.91284 9.41785 7.10703C9.41785 15.8838 22.9397 14.0583 22.9397 20.1554C22.9397 22.6408 20.764 24.5827 17.5388 24.5827C14.4361 24.5827 12.8017 23.1551 11.0921 21.524C10.8201 21.2522 10.7614 21.1884 10.5283 21.4216L8.68301 23.1634C8.411 23.3966 8.43746 23.4164 8.63175 23.7269C10.3993 26.1087 13.6923 27.9612 17.539 27.9612C22.3572 27.9612 26.5147 24.7768 26.5147 20.3107C26.5147 11.0679 12.9153 13.1263 12.9153 7.14557L12.9151 7.14572ZM44.5835 3.53395C47.3423 3.53395 49.596 4.58257 51.4999 6.17492C51.5444 6.213 51.6963 6.33632 51.743 6.37576C51.9289 6.53262 51.9644 6.53973 52.1883 6.30851C52.2428 6.25229 52.4023 6.08032 52.4023 6.08032L54.0336 4.29771C54.2087 4.09279 54.1792 4.07768 54.0528 3.94545C54.0011 3.89134 53.9102 3.80702 53.8311 3.72813C51.3835 1.55367 48.2361 0 44.5835 0C36.8514 0 30.8288 6.21361 30.8288 14.0196C30.8288 21.8255 36.8514 28 44.5835 28C48.2361 28 51.3906 26.3504 53.8384 24.1369C54.1104 23.9037 54.2128 23.8197 53.9409 23.5477L52.278 21.729C52.006 21.4571 51.9349 21.5213 51.6629 21.7545C49.759 23.3466 47.3422 24.4659 44.5834 24.4659C39.0271 24.4659 34.5199 19.9612 34.5199 14.0194C34.5199 8.03869 39.0272 3.53395 44.5835 3.53395ZM66.7904 0.0562167C63.2934 0.0562167 60.5212 1.59885 58.8115 3.73463C58.7651 3.78873 58.6609 3.93985 58.6299 3.98821C58.505 4.18286 58.541 4.19736 58.7175 4.39382C59.1585 4.88481 60.5292 6.43666 60.5292 6.43666C60.5868 6.49756 60.6405 6.49998 60.6904 6.45585C60.7448 6.4078 60.863 6.29536 60.9279 6.23174C62.0159 5.10544 63.8762 3.24107 66.7514 3.24107C69.9763 3.24107 71.9191 5.26049 71.9191 8.21187C71.9191 12.3999 69.5179 14.3919 64.1713 18.8858C62.6162 20.1928 59.7455 22.7114 59.029 23.3411C58.9234 23.4338 58.8637 23.5669 58.8637 23.7071V27.4699C58.8637 27.6378 59.0612 27.7277 59.1874 27.6169C60.6628 26.3236 66.7627 20.9799 68.7448 19.2968C73.8769 14.9387 75.2608 11.9788 75.2608 8.17288C75.2608 3.55163 71.9193 0.0563678 66.7902 0.0563678L66.7904 0.0562167Z" fill="black"/>
|
||||
<path d="M75.4003 24.6003H66.7791C66.6688 24.6003 66.5794 24.6896 66.5794 24.7999V27.3522C66.5794 27.4624 66.6688 27.5518 66.7791 27.5518H75.4003C75.5106 27.5518 75.6 27.4624 75.6 27.3522V24.7999C75.6 24.6896 75.5106 24.6003 75.4003 24.6003Z" fill="#468145"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.8 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 70 70"><linearGradient id="a" x1="7.083" x2="64.106" y1="16.294" y2="42.288" gradientTransform="matrix(1 0 0 -1 0 71.047)" gradientUnits="userSpaceOnUse"><stop offset="0" style="stop-color:#905cfb"/><stop offset=".165" style="stop-color:#6677f8"/><stop offset=".378" style="stop-color:#3596f5"/><stop offset=".54" style="stop-color:#17a9f3"/><stop offset=".632" style="stop-color:#0cb0f2"/></linearGradient><path d="M66.9 47.5c-.2-.2-13.1-12.6-13.1-12.6s9.8-10.4 12.4-13c.8-.8 1.5-1.6 2-2.6 3.6-6.1 1.5-13.9-4.6-17.5-4.5-2.6-10.1-2.2-14.1.8-.7.5-1.3 1-1.9 1.6-.3.4-13.9 12.8-25.7 23.6l22.1 14-23.2 26.1c-1.4 1-2.8 1.6-4.3 1.9.3 0 .5 0 .8-.1 4.6-.7 43.9-7.3 45.8-7.7 2.3-.4 4.4-1.8 5.7-3.9C71 54.5 70 50 66.9 47.5" style="fill:url(#a)"/><linearGradient id="b" x1="30.31" x2="1.068" y1="42.916" y2="68.744" gradientTransform="matrix(1 0 0 -1 0 71.047)" gradientUnits="userSpaceOnUse"><stop offset="0" style="stop-color:#905cfb"/><stop offset=".072" style="stop-color:#a554e6"/><stop offset=".252" style="stop-color:#d641b5"/><stop offset=".39" style="stop-color:#f43597"/><stop offset=".468" style="stop-color:#ff318c"/></linearGradient><path d="M45.9 30.5c-.4-2.7-1.8-4.9-3.8-6.5C40 22.4 23.8 5.6 22 3.7 19.2 1 15.2-.5 11.1.2 4.1 1.2-.8 7.8.3 14.8c.5 3.5 2.5 6.5 5.1 8.4 2.6 2 23 16 24.3 17 2.1 1.6 4.9 2.5 7.7 2 5.5-1 9.4-6.2 8.5-11.7" style="fill:url(#b)"/><linearGradient id="c" x1="4.983" x2="74.023" y1="12.362" y2="55.864" gradientTransform="matrix(1 0 0 -1 0 71.047)" gradientUnits="userSpaceOnUse"><stop offset="0" style="stop-color:#905cfb"/><stop offset=".165" style="stop-color:#6677f8"/><stop offset=".378" style="stop-color:#3596f5"/><stop offset=".54" style="stop-color:#17a9f3"/><stop offset=".632" style="stop-color:#0cb0f2"/></linearGradient><path d="M23 67.8c.1 0 23.3-26.1 23.3-26.1L22.9 26.9c-8.3 7.6-16 14.5-17.8 16.2-1.1 1-2.2 2.3-3 3.7-4.3 7.4-1.8 16.8 5.6 21.1 3 1.7 9.8 3.8 15.3-.1" style="fill:url(#c)"/><path d="M13.4 13.4h43.2v43.2H13.4z" style="fill:#000"/><path d="M17.4 48.5h16.2v2.7H17.4zm6.4-18.6L17 19.1h4.6l4.2 7.1 4.4-7.1h4.5l-6.9 10.7V37h-4zm17.8-7.2h-5.5v-3.6H51v3.6h-5.5V37h-3.9z" style="fill:#fff"/></svg>
|
||||
|
Before Width: | Height: | Size: 2.2 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" class="svg-image" style="width:inherit;height:inherit;line-height:inherit;color:inherit" viewBox="0 0 125 24"><path fill="#FF690F" fill-rule="evenodd" d="M0 24h23.936V0H0v24zm25.266 0h23.936V0H25.266v24zm49.202 0H50.532V0h23.936v24zm1.33 0h23.936V0H75.798v24zM125 24h-23.936V0H125v24z" clip-rule="evenodd"/><path fill="#FAFAFC" fill-rule="evenodd" d="M10.287 11.549V6H7.38v12h2.907v-5.548L13.348 18h3.208l-3.33-6 3.33-6h-3.208l-3.061 5.549zm24.785 4.724L34.552 18h-3.104l3.947-12h3.696l3.93 12h-3.194l-.52-1.727h-4.235zm2.117-6.837-1.4 4.48h2.8l-1.4-4.48zM63.98 18h-2.906v-5.29L57.144 6h3.463l1.938 3.688L64.447 6h3.409l-3.876 6.71V18zm21.624-1.727L85.084 18h-3.105l3.948-12h3.696l3.93 12h-3.194l-.52-1.727h-4.235zm2.117-6.837-1.4 4.48h2.8l-1.4-4.48zm23.63 2.113V6h-2.907v12h2.907v-5.548L114.412 18h3.208l-3.33-6 3.33-6h-3.208l-3.061 5.549z" clip-rule="evenodd"/></svg>
|
||||
|
Before Width: | Height: | Size: 921 B |
|
Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 13 KiB |
@@ -1,26 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<svg width="320" height="280" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" version="1.1">
|
||||
|
||||
<g class="layer">
|
||||
<title>Layer 1</title>
|
||||
<g id="Layer1000">
|
||||
<g id="Layer1002">
|
||||
<g id="Layer1003">
|
||||
<path d="m123.08,34.29c-66.43,0 -120.27,53.85 -120.27,120.27c0,66.43 53.85,120.27 120.27,120.27c66.47,0 120.32,-53.85 120.32,-120.27c0,-66.43 -53.85,-120.27 -120.32,-120.27zm0,215.67c-52.67,0 -95.36,-42.73 -95.36,-95.4c0,-52.67 42.68,-95.4 95.36,-95.4c52.72,0 95.4,42.73 95.4,95.4c0,52.67 -42.68,95.4 -95.4,95.4z" fill="#2a5e00" fill-rule="evenodd" id="path7"/>
|
||||
<g id="Layer1004">
|
||||
<g id="Layer1005">
|
||||
<path d="m138.72,146.29l59.61,-41.47l7.78,33.7l-67.39,7.78z" fill="#2a5e00" fill-rule="evenodd" id="path8"/>
|
||||
<path d="m110.88,146.29l-59.61,-41.47l-7.78,33.7l67.39,7.78z" fill="#2a5e00" fill-rule="evenodd" id="path9"/>
|
||||
</g>
|
||||
<path d="m43.95,192.02l74.62,49.75l87.12,-78.8l-161.75,29.05z" fill="#2a5e00" fill-rule="evenodd" id="path10"/>
|
||||
</g>
|
||||
<path d="m94.24,59.29l-30.48,-55.1l54.26,33.24l-23.79,21.86z" fill="#2a5e00" fill-rule="evenodd" id="path11"/>
|
||||
<path d="m202.64,78.1l30.43,-55.1l-54.22,33.24l23.79,21.86z" fill="#2a5e00" fill-rule="evenodd" id="path12"/>
|
||||
</g>
|
||||
<path d="m275.63,274.67l29.35,0l0,-240.76l-29.35,0l0,240.76z" fill="#2a5e00" fill-rule="evenodd" id="path13"/>
|
||||
<path d="m317.94,125.93c0,15.3 -12.33,27.63 -27.63,27.63c-15.26,0 -27.63,-12.33 -27.63,-27.63c0,-15.26 12.37,-27.63 27.63,-27.63c15.3,0 27.63,12.37 27.63,27.63z" fill="#2a5e00" fill-rule="evenodd" id="path14"/>
|
||||
<path d="m288.84,33.91l-41.76,0l16.76,45.99l23.58,0l1.42,-45.99z" fill="#2a5e00" fill-rule="evenodd" id="path15"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.7 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" id="svg1203" x="0" y="0" version="1.1" viewBox="0.02 69.9 512 372.2"><style>.st0{fill:#f68330}</style><g id="layer1"><g id="g23427" transform="translate(-.385 1.9)"><path id="path30" d="M364.3 68c-61.8 5.7-92.5 41.3-104.1 59.3l-5.2 9.1c-.4.8-.6 1.3-.6 1.3l-.1-.1L79.5 440.2h218L512.4 68z" class="st0"/><path id="path32" d="M297.5 440.2.4 125s336-90.2 368.7 191.4z" class="st0"/><path id="path34" d="m253.5 138.9-91.2 157.9 135.2 143.4 71.6-124c-11.3-96.9-58.5-149.7-115.6-177.3" style="fill:#f35e32"/></g></g></svg>
|
||||
|
Before Width: | Height: | Size: 576 B |