Compare commits

...

14 Commits

Author SHA1 Message Date
93e226f0b7 REVERT ME: debug loss of Auth key 2025-09-30 15:47:34 +02:00
e9af366986 Fix building on modern Java 2025-09-30 15:13:35 +02:00
b0f0417d43 Fix dependencies 2025-09-30 15:13:06 +02:00
Vincent Breitmoser
8d0bd1f853 Merge pull request #2915 from cketti/fix_add_email_dialog
Fix crash when adding additional email address while creating a key
2024-05-16 09:37:24 +02:00
cketti
8322027cd7 Use appropriate view in add_email_dialog layout 2024-05-15 13:48:09 +02:00
Vincent Breitmoser
f0f35c6a66 Version 6.0.4 2024-02-27 11:46:26 +01:00
Vincent Breitmoser
901a7a73bc Small fixes to backported changelog 2024-02-27 11:46:26 +01:00
Vincent Breitmoser
4cf23609db Merge pull request #2888 from flossposse/update-changelog
update changelog
2024-02-27 11:41:54 +01:00
Vincent Breitmoser
2addbf07fe Update translations again (after dropping unused strings) 2024-02-27 11:25:05 +01:00
Vincent Breitmoser
30aec855e2 Drop a bunch of unused resources 2024-02-27 11:25:05 +01:00
Vincent Breitmoser
095f0ba09c Drop unused notification channel 2024-02-27 11:25:05 +01:00
Vincent Breitmoser
9c94fc1f4d Update translations from transifex 2024-02-27 11:02:31 +01:00
Vincent Breitmoser
9bf87cd816 Migrate transifex config 2024-02-27 10:56:40 +01:00
Po Flossie
65b94aa77e update changelog 2024-02-24 12:10:00 -06:00
452 changed files with 5924 additions and 12143 deletions

View File

@@ -1,34 +1,46 @@
[main] [main]
host = https://www.transifex.com host = https://www.transifex.com
lang_map = he: iw, zh_TW: zh-rTW, es_MX: es-rMX, pt_BR: pt-rBR, nl_BE: nl-rBE lang_map = nl_BE: nl-rBE, he: iw, zh_TW: zh-rTW, es_MX: es-rMX, pt_BR: pt-rBR, pt_PT: pt-rPT
[open-keychain.strings] [o:otf:p:open-keychain:r:advanced]
file_filter = OpenKeychain/src/main/res/values-<lang>/strings.xml file_filter = OpenKeychain/src/main/res/raw-<lang>/advanced.md
source_file = OpenKeychain/src/main/res/values/strings.xml source_file = OpenKeychain/src/main/res/raw/advanced.md
source_lang = en source_lang = en
replace_edited_strings = false
keep_translations = false
[open-keychain.advanced] [o:otf:p:open-keychain:r:help-about]
file_filter = OpenKeychain/src/main/res/raw-<lang>/advanced.md file_filter = OpenKeychain/src/main/res/raw-<lang>/help_about.md
source_file = OpenKeychain/src/main/res/raw/advanced.md source_file = OpenKeychain/src/main/res/raw/help_about.md
source_lang = en source_lang = en
replace_edited_strings = false
keep_translations = false
[open-keychain.help-about] [o:otf:p:open-keychain:r:help-certification]
file_filter = OpenKeychain/src/main/res/raw-<lang>/help_about.md file_filter = OpenKeychain/src/main/res/raw-<lang>/help_certification.md
source_file = OpenKeychain/src/main/res/raw/help_about.md source_file = OpenKeychain/src/main/res/raw/help_certification.md
source_lang = en source_lang = en
replace_edited_strings = false
keep_translations = false
[open-keychain.help-changelog] [o:otf:p:open-keychain:r:help-changelog]
file_filter = OpenKeychain/src/main/res/raw-<lang>/help_changelog.md file_filter = OpenKeychain/src/main/res/raw-<lang>/help_changelog.md
source_file = OpenKeychain/src/main/res/raw/help_changelog.md source_file = OpenKeychain/src/main/res/raw/help_changelog.md
source_lang = en source_lang = en
replace_edited_strings = false
keep_translations = false
[open-keychain.help-certification] [o:otf:p:open-keychain:r:help-start]
file_filter = OpenKeychain/src/main/res/raw-<lang>/help_certification.md file_filter = OpenKeychain/src/main/res/raw-<lang>/help_start.md
source_file = OpenKeychain/src/main/res/raw/help_certification.md source_file = OpenKeychain/src/main/res/raw/help_start.md
source_lang = en source_lang = en
replace_edited_strings = false
keep_translations = false
[open-keychain.help-start] [o:otf:p:open-keychain:r:strings]
file_filter = OpenKeychain/src/main/res/raw-<lang>/help_start.md file_filter = OpenKeychain/src/main/res/values-<lang>/strings.xml
source_file = OpenKeychain/src/main/res/raw/help_start.md source_file = OpenKeychain/src/main/res/values/strings.xml
source_lang = en source_lang = en
replace_edited_strings = false
keep_translations = false

View File

@@ -95,8 +95,8 @@ android {
defaultConfig { defaultConfig {
minSdkVersion 15 minSdkVersion 15
targetSdkVersion 34 targetSdkVersion 34
versionCode 60300 versionCode 60400
versionName "6.0.3" versionName "6.0.4"
applicationId "org.sufficientlysecure.keychain" applicationId "org.sufficientlysecure.keychain"
// the androidjunitrunner is broken regarding coverage, see here: // the androidjunitrunner is broken regarding coverage, see here:
// https://code.google.com/p/android/issues/detail?id=170607 // https://code.google.com/p/android/issues/detail?id=170607
@@ -111,6 +111,12 @@ android {
sourceCompatibility JavaVersion.VERSION_17 sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17
} }
kotlinOptions {
jvmTarget = "17"
}
kotlin {
jvmToolchain(17)
}
testOptions.unitTests.all { testOptions.unitTests.all {
// log results of tests to console, useful for travis // log results of tests to console, useful for travis

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -11,7 +11,6 @@ import androidx.annotation.StringRes;
public class NotificationChannelManager { public class NotificationChannelManager {
public static final String KEYSERVER_SYNC = "keyserverSync";
public static final String PERMISSION_REQUESTS = "permissionRequests"; public static final String PERMISSION_REQUESTS = "permissionRequests";
public static final String PASSPHRASE_CACHE = "passphraseCache"; public static final String PASSPHRASE_CACHE = "passphraseCache";
public static final String ORBOT = "orbot"; public static final String ORBOT = "orbot";
@@ -37,7 +36,6 @@ public class NotificationChannelManager {
return; return;
} }
createNotificationChannel(KEYSERVER_SYNC, R.string.notify_channel_keysync, NotificationManager.IMPORTANCE_MIN);
createNotificationChannel(PERMISSION_REQUESTS, R.string.notify_channel_permission, NotificationManager.IMPORTANCE_MIN); createNotificationChannel(PERMISSION_REQUESTS, R.string.notify_channel_permission, NotificationManager.IMPORTANCE_MIN);
createNotificationChannel(PASSPHRASE_CACHE, R.string.notify_channel_passcache, NotificationManager.IMPORTANCE_NONE); createNotificationChannel(PASSPHRASE_CACHE, R.string.notify_channel_passcache, NotificationManager.IMPORTANCE_NONE);
createNotificationChannel(ORBOT, R.string.notify_channel_orbot, NotificationManager.IMPORTANCE_DEFAULT); createNotificationChannel(ORBOT, R.string.notify_channel_orbot, NotificationManager.IMPORTANCE_DEFAULT);

View File

@@ -21,6 +21,8 @@ import org.sufficientlysecure.keychain.operations.results.ImportKeyResult;
import org.sufficientlysecure.keychain.service.ImportKeyringParcel; import org.sufficientlysecure.keychain.service.ImportKeyringParcel;
import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper; import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper;
import timber.log.Timber;
public class ImportKeysOperationCallback implements public class ImportKeysOperationCallback implements
CryptoOperationHelper.Callback<ImportKeyringParcel, ImportKeyResult> { CryptoOperationHelper.Callback<ImportKeyringParcel, ImportKeyResult> {
@@ -45,6 +47,7 @@ public class ImportKeysOperationCallback implements
@Override @Override
public void onCryptoOperationSuccess(ImportKeyResult result) { public void onCryptoOperationSuccess(ImportKeyResult result) {
Timber.d("+onCryptoOperationSuccess");
mResultListener.handleResult(result, mPosition); mResultListener.handleResult(result, mPosition);
} }
@@ -55,6 +58,7 @@ public class ImportKeysOperationCallback implements
@Override @Override
public void onCryptoOperationError(ImportKeyResult result) { public void onCryptoOperationError(ImportKeyResult result) {
Timber.d("+onCryptoOperationError");
mResultListener.handleResult(result, mPosition); mResultListener.handleResult(result, mPosition);
} }

View File

@@ -50,9 +50,12 @@ import org.sufficientlysecure.keychain.pgp.Progressable;
import org.sufficientlysecure.keychain.pgp.SignEncryptParcel; import org.sufficientlysecure.keychain.pgp.SignEncryptParcel;
import org.sufficientlysecure.keychain.service.input.CryptoInputParcel; import org.sufficientlysecure.keychain.service.input.CryptoInputParcel;
import timber.log.Timber;
public class KeychainServiceTask { public class KeychainServiceTask {
public static KeychainServiceTask create(Activity activity) { public static KeychainServiceTask create(Activity activity) {
Timber.d("+create#1");
Context context = activity.getApplicationContext(); Context context = activity.getApplicationContext();
KeyWritableRepository keyRepository = KeyWritableRepository.create(context); KeyWritableRepository keyRepository = KeyWritableRepository.create(context);
return new KeychainServiceTask(context, keyRepository); return new KeychainServiceTask(context, keyRepository);

View File

@@ -46,11 +46,14 @@ import org.sufficientlysecure.keychain.operations.ImportOperation;
import org.sufficientlysecure.keychain.operations.results.ImportKeyResult; import org.sufficientlysecure.keychain.operations.results.ImportKeyResult;
import org.sufficientlysecure.keychain.pgp.CanonicalizedKeyRing; import org.sufficientlysecure.keychain.pgp.CanonicalizedKeyRing;
import org.sufficientlysecure.keychain.pgp.CanonicalizedKeyRing.VerificationStatus; import org.sufficientlysecure.keychain.pgp.CanonicalizedKeyRing.VerificationStatus;
import org.sufficientlysecure.keychain.pgp.CanonicalizedPublicKey;
import org.sufficientlysecure.keychain.pgp.exception.PgpKeyNotFoundException;
import org.sufficientlysecure.keychain.service.ImportKeyringParcel; import org.sufficientlysecure.keychain.service.ImportKeyringParcel;
import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper; import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper;
import org.sufficientlysecure.keychain.ui.keyview.ViewKeyActivity; import org.sufficientlysecure.keychain.ui.keyview.ViewKeyActivity;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
import org.sufficientlysecure.keychain.ui.util.Notify; import org.sufficientlysecure.keychain.ui.util.Notify;
import org.sufficientlysecure.keychain.util.IterableIterator;
import org.sufficientlysecure.keychain.util.ParcelableFileCache; import org.sufficientlysecure.keychain.util.ParcelableFileCache;
import timber.log.Timber; import timber.log.Timber;
@@ -209,11 +212,17 @@ public class ImportKeysAdapter extends RecyclerView.Adapter<ImportKeysAdapter.Vi
} }
private void getKey(int position, ImportKeysListEntry entry, boolean skipSave) { private void getKey(int position, ImportKeysListEntry entry, boolean skipSave) {
Timber.d("+getKey position %d, entry %s, skipSave %s", position, entry.getKeyIdHex(), skipSave ? "true" : "false");
Timber.d("getKey => prepareKeyOperation");
ImportKeyringParcel inputParcel = prepareKeyOperation(entry, skipSave); ImportKeyringParcel inputParcel = prepareKeyOperation(entry, skipSave);
ImportKeysResultListener listener = skipSave ? this : mListener; ImportKeysResultListener listener = skipSave ? this : mListener;
Timber.d("getKey => new ImportKeysOperationCallback");
ImportKeysOperationCallback cb = new ImportKeysOperationCallback(listener, inputParcel, position); ImportKeysOperationCallback cb = new ImportKeysOperationCallback(listener, inputParcel, position);
Timber.d("getKey => new CryptoOperationHelper");
CryptoOperationHelper opHelper = new CryptoOperationHelper<>(1, mActivity, cb, null); CryptoOperationHelper opHelper = new CryptoOperationHelper<>(1, mActivity, cb, null);
Timber.d("getKey => opHelper.cryptoOperation");
opHelper.cryptoOperation(); opHelper.cryptoOperation();
Timber.d("-getKey");
} }
private ImportKeyringParcel prepareKeyOperation(ImportKeysListEntry entry, boolean skipSave) { private ImportKeyringParcel prepareKeyOperation(ImportKeysListEntry entry, boolean skipSave) {
@@ -264,9 +273,18 @@ public class ImportKeysAdapter extends RecyclerView.Adapter<ImportKeysAdapter.Vi
ArrayList<CanonicalizedKeyRing> canKeyRings = result.mCanonicalizedKeyRings; ArrayList<CanonicalizedKeyRing> canKeyRings = result.mCanonicalizedKeyRings;
if (canKeyRings.size() == 1) { if (canKeyRings.size() == 1) {
CanonicalizedKeyRing keyRing = canKeyRings.get(0); CanonicalizedKeyRing keyRing = canKeyRings.get(0);
Timber.e("Key ID: " + keyRing.getMasterKeyId() + Timber.e("Key ID: %016X| isRev: " + keyRing.isRevoked() + " | isExp: " + keyRing.isExpired()
"| isRev: " + keyRing.isRevoked() + "| isExp: " + keyRing.isExpired() + " | isSec: " + keyRing.isSecure(), keyRing.getMasterKeyId());
+ "| isSec: " + keyRing.isSecure()); try {
Timber.e("[E]: %016X", keyRing.getEncryptId());
} catch (PgpKeyNotFoundException ignored) {}
try {
Timber.e("[S]: %016X", keyRing.getSigningId());
} catch (PgpKeyNotFoundException ignored) {}
for (CanonicalizedPublicKey val : keyRing.publicKeyIterator()) {
Timber.e("KEY %016X; [%s%s%s%s]", val.getKeyId(), val.canAuthenticate() ? "A" : "", val.canCertify() ? "C" : "", val.canEncrypt() ? "E" : "", val.canSign() ? "S" : "");
}
ImportKeysListEntry entry = mData.get(position); ImportKeysListEntry entry = mData.get(position);
entry.setUpdated(result.isOkUpdated()); entry.setUpdated(result.isOkUpdated());

View File

@@ -264,6 +264,7 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu
} }
public void cryptoOperation(final CryptoInputParcel cryptoInput) { public void cryptoOperation(final CryptoInputParcel cryptoInput) {
Timber.d("+cryptoOperation#1");
T operationInput = mCallback.createOperationInput(); T operationInput = mCallback.createOperationInput();
if (operationInput == null) { if (operationInput == null) {
return; return;
@@ -320,8 +321,12 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu
} }
public void cryptoOperation() { public void cryptoOperation() {
Timber.d("+cryptoOperation");
operationStartTime = SystemClock.elapsedRealtime(); operationStartTime = SystemClock.elapsedRealtime();
cryptoOperation(CryptoInputParcel.createCryptoInputParcel(new Date())); Timber.d("cryptoOperation => CryptoInputParcel.createCryptoInputParcel");
CryptoInputParcel tmp = CryptoInputParcel.createCryptoInputParcel(new Date());
Timber.d("cryptoOperation => cryptoOperation#1");
cryptoOperation(tmp);
} }
@UiThread @UiThread

View File

@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="-10" android:toYDelta="0"
android:interpolator="@android:anim/decelerate_interpolator"
android:duration="200"
/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:duration="200"
/>
</set>

View File

@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="10" android:toYDelta="0"
android:interpolator="@android:anim/decelerate_interpolator"
android:duration="200"
/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:duration="200"
/>
</set>

View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:duration="300"
android:startOffset="400"
/>
</set>

View File

@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="0.0" android:toYDelta="10"
android:interpolator="@android:anim/decelerate_interpolator"
android:duration="200"
/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
android:interpolator="@android:anim/decelerate_interpolator"
android:duration="150"
/>
</set>

View File

@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="0.0" android:toYDelta="-10"
android:interpolator="@android:anim/decelerate_interpolator"
android:duration="200"
/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
android:interpolator="@android:anim/decelerate_interpolator"
android:duration="150"
/>
</set>

View File

@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator">
<scale
android:fromXScale="0.5"
android:toXScale="1.0"
android:fromYScale="0.5"
android:toYScale="1.0"
android:pivotX="50%p"
android:pivotY="50%p"
android:duration="@android:integer/config_mediumAnimTime" />
<alpha
android:fromAlpha="0"
android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime" />
</set>

View File

@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:zAdjustment="top">
<scale
android:fromXScale="1.0"
android:toXScale="0.5"
android:fromYScale="1.0"
android:toYScale="0.5"
android:pivotX="50%p"
android:pivotY="50%p"
android:duration="@android:integer/config_mediumAnimTime" />
<alpha
android:fromAlpha="1.0"
android:toAlpha="0"
android:duration="@android:integer/config_mediumAnimTime" />
</set>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 923 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 416 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1018 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 381 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 588 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 920 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 300 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 551 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 409 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 408 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 740 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 381 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 301 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 183 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 522 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 453 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 350 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 572 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 942 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 443 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 614 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 792 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 806 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 678 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 913 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 751 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 623 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 307 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 770 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 288 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 406 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 540 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 230 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 370 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 298 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 701 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 288 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 431 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 248 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 356 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 224 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 317 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 423 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 647 B

Some files were not shown because too many files have changed in this diff Show More