Merge pull request #4375 from element-hq/feature/bma/moreWorkOnIcons

Migrate some icons to Compound icon
This commit is contained in:
Benoit Marty 2025-03-07 17:53:13 +01:00 committed by GitHub
commit c8ad1e2fdd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
81 changed files with 265 additions and 312 deletions

View file

@ -110,7 +110,7 @@ class RingingCallNotificationCreator @Inject constructor(
)
return NotificationCompat.Builder(context, notificationChannelId)
.setSmallIcon(CommonDrawables.ic_notification_small)
.setSmallIcon(CommonDrawables.ic_notification)
.setPriority(NotificationCompat.PRIORITY_MAX)
.setCategory(NotificationCompat.CATEGORY_CALL)
.setStyle(NotificationCompat.CallStyle.forIncomingCall(caller, declineIntent, answerIntent).setIsVideo(true))

View file

@ -67,7 +67,7 @@ class CallForegroundService : Service() {
val callActivityIntent = Intent(this, ElementCallActivity::class.java)
val pendingIntent = PendingIntentCompat.getActivity(this, 0, callActivityIntent, 0, false)
val notification = NotificationCompat.Builder(this, foregroundServiceChannel.id)
.setSmallIcon(IconCompat.createWithResource(this, CommonDrawables.ic_notification_small))
.setSmallIcon(IconCompat.createWithResource(this, CommonDrawables.ic_notification))
.setContentTitle(getString(R.string.call_foreground_service_title_android))
.setContentText(getString(R.string.call_foreground_service_message_android))
.setContentIntent(pendingIntent)

View file

@ -25,7 +25,6 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import io.element.android.compound.theme.ElementTheme
import io.element.android.compound.tokens.generated.CompoundIcons
@ -33,31 +32,24 @@ import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.theme.components.IconButton
import io.element.android.libraries.designsystem.utils.CommonDrawables
import io.element.android.libraries.textcomposer.R
import io.element.android.libraries.designsystem.theme.components.IconColorButton
import io.element.android.libraries.designsystem.theme.components.IconColorButtonStyle
@Composable
internal fun DisabledComposerView(
modifier: Modifier = Modifier,
) {
Row(
modifier = modifier.padding(3.dp)
modifier = modifier
.padding(3.dp)
.fillMaxWidth(),
verticalAlignment = Alignment.CenterVertically,
) {
IconButton(
modifier = Modifier
.size(48.dp),
enabled = false,
IconColorButton(
onClick = {},
) {
Icon(
modifier = Modifier.size(30.dp),
resourceId = CommonDrawables.ic_plus_composer,
contentDescription = stringResource(R.string.rich_text_editor_a11y_add_attachment),
tint = ElementTheme.colors.iconDisabled,
)
}
imageVector = CompoundIcons.Plus(),
iconColorButtonStyle = IconColorButtonStyle.Disabled,
)
val bgColor = ElementTheme.colors.bgCanvasDisabled
val borderColor = ElementTheme.colors.borderDisabled

View file

@ -12,10 +12,7 @@ import io.element.android.libraries.designsystem.R
// This list and all the drawable it contains should be removed at some point.
// All the icons should be defined in Compound.
internal val iconsOther = listOf(
R.drawable.ic_cancel,
R.drawable.ic_encryption_enabled,
R.drawable.ic_notification_small,
R.drawable.ic_plus_composer,
R.drawable.ic_notification,
R.drawable.ic_stop,
R.drawable.pin,
)

View file

@ -0,0 +1,111 @@
/*
* Copyright 2025 New Vector Ltd.
*
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.designsystem.theme.components
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import io.element.android.compound.theme.ElementTheme
import io.element.android.compound.tokens.generated.CompoundIcons
import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.ui.strings.CommonStrings
/**
* Button with colored background.
* Figma: https://www.figma.com/design/G1xy0HDZKJf5TCRFmKb5d5/Compound-Android-Components?node-id=1956-37586
*/
@Composable
fun IconColorButton(
onClick: () -> Unit,
imageVector: ImageVector,
modifier: Modifier = Modifier,
buttonSize: ButtonSize = ButtonSize.Large,
iconColorButtonStyle: IconColorButtonStyle = IconColorButtonStyle.Primary,
) {
val bgColor = when (iconColorButtonStyle) {
IconColorButtonStyle.Primary -> ElementTheme.colors.iconPrimary
IconColorButtonStyle.Secondary -> ElementTheme.colors.iconSecondary
IconColorButtonStyle.Disabled -> ElementTheme.colors.iconDisabled
}
IconButton(
modifier = modifier.size(48.dp),
onClick = onClick,
) {
Icon(
modifier = Modifier
.clip(CircleShape)
.size(buttonSize.toContainerSize())
.background(bgColor)
.padding(buttonSize.toContainerPadding()),
imageVector = imageVector,
contentDescription = stringResource(CommonStrings.action_close),
tint = ElementTheme.colors.iconOnSolidPrimary
)
}
}
enum class IconColorButtonStyle {
Primary,
Secondary,
Disabled,
}
private fun ButtonSize.toContainerSize() = when (this) {
ButtonSize.Small -> 20.dp
ButtonSize.Medium -> 24.dp
ButtonSize.Large,
ButtonSize.MediumLowPadding,
ButtonSize.LargeLowPadding -> 30.dp
}
private fun ButtonSize.toContainerPadding() = when (this) {
ButtonSize.Small -> 2.dp
ButtonSize.Medium -> 2.dp
ButtonSize.Large,
ButtonSize.MediumLowPadding,
ButtonSize.LargeLowPadding -> 3.dp
}
@PreviewsDayNight
@Composable
internal fun IconColorButtonPreview() = ElementPreview {
Column {
listOf(
IconColorButtonStyle.Primary,
IconColorButtonStyle.Secondary,
IconColorButtonStyle.Disabled,
).forEach { style ->
Row(
modifier = Modifier.padding(4.dp),
horizontalArrangement = Arrangement.spacedBy(4.dp),
verticalAlignment = Alignment.CenterVertically
) {
listOf(ButtonSize.Large, ButtonSize.Medium, ButtonSize.Small).forEach { size ->
IconColorButton(
onClick = {},
imageVector = CompoundIcons.Close(),
buttonSize = size,
iconColorButtonStyle = style,
)
}
}
}
}
}

View file

@ -1,16 +0,0 @@
<!--
~ Copyright 2023 New Vector Ltd.
~
~ SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
~ Please see LICENSE files in the repository root for full details.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="30dp"
android:height="30dp"
android:viewportWidth="30"
android:viewportHeight="30">
<path
android:pathData="M4.393,4.393C-1.464,10.251 -1.464,19.749 4.393,25.607C10.251,31.465 19.749,31.465 25.607,25.607C31.465,19.749 31.465,10.251 25.607,4.393C19.749,-1.464 10.251,-1.464 4.393,4.393ZM11.465,19.95L15,16.414L18.535,19.95C18.736,20.15 18.972,20.25 19.243,20.25C19.514,20.25 19.749,20.15 19.95,19.95C20.15,19.749 20.25,19.514 20.25,19.243C20.25,18.972 20.15,18.736 19.95,18.535L16.414,15L19.95,11.465C20.15,11.264 20.25,11.028 20.25,10.757C20.25,10.486 20.15,10.251 19.95,10.05C19.749,9.85 19.514,9.75 19.243,9.75C18.972,9.75 18.736,9.85 18.535,10.05L15,13.586L11.465,10.05C11.264,9.85 11.028,9.75 10.757,9.75C10.486,9.75 10.251,9.85 10.05,10.05C9.85,10.251 9.75,10.486 9.75,10.757C9.75,11.028 9.85,11.264 10.05,11.465L13.586,15L10.05,18.535C9.85,18.736 9.75,18.972 9.75,19.243C9.75,19.514 9.85,19.749 10.05,19.95C10.251,20.15 10.486,20.25 10.757,20.25C11.028,20.25 11.264,20.15 11.465,19.95Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
</vector>

View file

@ -1,15 +0,0 @@
<!--
~ Copyright 2023 New Vector Ltd.
~
~ SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
~ Please see LICENSE files in the repository root for full details.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M6,22C5.5,22 5,21.8 4.6,21.4C4.2,21 4,20.6 4,20V10C4,9.5 4.2,9 4.6,8.6C5,8.2 5.5,8 6,8H7V6C7,4.6 7.5,3.4 8.5,2.5C9.4,1.5 10.6,1 12,1C13.4,1 14.6,1.5 15.5,2.5C16.5,3.4 17,4.6 17,6V8H18C18.6,8 19,8.2 19.4,8.6C19.8,9 20,9.5 20,10V20C20,20.6 19.8,21 19.4,21.4C19,21.8 18.6,22 18,22H6ZM6,20H18V10H6V20ZM12,17C12.6,17 13,16.8 13.4,16.4C13.8,16 14,15.6 14,15C14,14.5 13.8,14 13.4,13.6C13,13.2 12.6,13 12,13C11.5,13 11,13.2 10.6,13.6C10.2,14 10,14.5 10,15C10,15.6 10.2,16 10.6,16.4C11,16.8 11.5,17 12,17ZM9,8H15V6C15,5.2 14.7,4.5 14.1,3.9C13.5,3.3 12.8,3 12,3C11.2,3 10.5,3.3 9.9,3.9C9.3,4.5 9,5.2 9,6V8Z"
android:fillColor="#000000"/>
</vector>

View file

@ -1,19 +0,0 @@
<!--
~ Copyright 2023 New Vector Ltd.
~
~ SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
~ Please see LICENSE files in the repository root for full details.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="30dp"
android:height="30dp"
android:viewportWidth="30"
android:viewportHeight="30">
<path
android:pathData="M0,15C0,23.284 6.716,30 15,30C23.284,30 30,23.284 30,15C30,6.716 23.284,0 15,0C6.716,0 0,6.716 0,15ZM16,21V16H21C21.283,16 21.521,15.904 21.712,15.712C21.904,15.521 22,15.283 22,15C22,14.717 21.904,14.479 21.712,14.288C21.521,14.096 21.283,14 21,14H16V9C16,8.717 15.904,8.479 15.712,8.288C15.521,8.096 15.283,8 15,8C14.717,8 14.479,8.096 14.288,8.288C14.096,8.479 14,8.717 14,9L14,14L9,14C8.717,14 8.479,14.096 8.288,14.288C8.096,14.479 8,14.717 8,15C8,15.283 8.096,15.521 8.288,15.712C8.479,15.904 8.717,16 9,16H14V21C14,21.283 14.096,21.521 14.288,21.712C14.479,21.904 14.717,22 15,22C15.283,22 15.521,21.904 15.712,21.712C15.904,21.521 16,21.283 16,21Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M14,16H9C8.717,16 8.479,15.904 8.288,15.712C8.096,15.521 8,15.283 8,15C8,14.717 8.096,14.479 8.288,14.288C8.479,14.096 8.717,14 9,14H14V9C14,8.717 14.096,8.479 14.288,8.288C14.479,8.096 14.717,8 15,8C15.283,8 15.521,8.096 15.712,8.288C15.904,8.479 16,8.717 16,9V14H21C21.283,14 21.521,14.096 21.712,14.288C21.904,14.479 22,14.717 22,15C22,15.283 21.904,15.521 21.712,15.712C21.521,15.904 21.283,16 21,16H16V21C16,21.283 15.904,21.521 15.712,21.712C15.521,21.904 15.283,22 15,22C14.717,22 14.479,21.904 14.288,21.712C14.096,21.521 14,21.283 14,21V16Z"
android:fillColor="#00000000"/>
</vector>

View file

@ -119,7 +119,7 @@ class DefaultNotificationCreator @Inject constructor(
else -> pendingIntentFactory.createOpenRoomPendingIntent(roomInfo.sessionId, roomInfo.roomId)
}
val smallIcon = CommonDrawables.ic_notification_small
val smallIcon = CommonDrawables.ic_notification
val containsMissedCall = events.any { it.type == EventType.CALL_NOTIFY }
val channelId = if (containsMissedCall) {
@ -219,7 +219,7 @@ class DefaultNotificationCreator @Inject constructor(
override fun createRoomInvitationNotification(
inviteNotifiableEvent: InviteNotifiableEvent
): Notification {
val smallIcon = CommonDrawables.ic_notification_small
val smallIcon = CommonDrawables.ic_notification
val channelId = notificationChannels.getChannelIdForMessage(inviteNotifiableEvent.noisy)
return NotificationCompat.Builder(context, channelId)
.setOnlyAlertOnce(true)
@ -261,7 +261,7 @@ class DefaultNotificationCreator @Inject constructor(
override fun createSimpleEventNotification(
simpleNotifiableEvent: SimpleNotifiableEvent,
): Notification {
val smallIcon = CommonDrawables.ic_notification_small
val smallIcon = CommonDrawables.ic_notification
val channelId = notificationChannels.getChannelIdForMessage(simpleNotifiableEvent.noisy)
return NotificationCompat.Builder(context, channelId)
@ -294,7 +294,7 @@ class DefaultNotificationCreator @Inject constructor(
override fun createFallbackNotification(
fallbackNotifiableEvent: FallbackNotifiableEvent,
): Notification {
val smallIcon = CommonDrawables.ic_notification_small
val smallIcon = CommonDrawables.ic_notification
val channelId = notificationChannels.getChannelIdForMessage(false)
return NotificationCompat.Builder(context, channelId)
@ -330,7 +330,7 @@ class DefaultNotificationCreator @Inject constructor(
noisy: Boolean,
lastMessageTimestamp: Long
): Notification {
val smallIcon = CommonDrawables.ic_notification_small
val smallIcon = CommonDrawables.ic_notification
val channelId = notificationChannels.getChannelIdForMessage(noisy)
return NotificationCompat.Builder(context, channelId)
.setOnlyAlertOnce(true)
@ -367,7 +367,7 @@ class DefaultNotificationCreator @Inject constructor(
return NotificationCompat.Builder(context, notificationChannels.getChannelIdForTest())
.setContentTitle(buildMeta.applicationName)
.setContentText(stringProvider.getString(R.string.notification_test_push_notification_content))
.setSmallIcon(CommonDrawables.ic_notification_small)
.setSmallIcon(CommonDrawables.ic_notification)
.setLargeIcon(getBitmap(R.drawable.element_logo_green))
.setColor(accentColor)
.setPriority(NotificationCompat.PRIORITY_MAX)

View file

@ -46,6 +46,7 @@ import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.CircularProgressIndicator
import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.theme.components.IconColorButton
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.timeline.item.event.EventOrTransactionId
@ -54,8 +55,6 @@ import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetails
import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetailsProvider
import io.element.android.libraries.testtags.TestTags
import io.element.android.libraries.testtags.testTag
import io.element.android.libraries.textcomposer.components.ComposerOptionsButton
import io.element.android.libraries.textcomposer.components.DismissTextFormattingButton
import io.element.android.libraries.textcomposer.components.SendButton
import io.element.android.libraries.textcomposer.components.TextFormatting
import io.element.android.libraries.textcomposer.components.VoiceMessageDeleteButton
@ -141,10 +140,9 @@ fun TextComposer(
Spacer(modifier = Modifier.width(16.dp))
}
else -> {
ComposerOptionsButton(
modifier = Modifier
.size(48.dp),
onClick = onAddAttachment
IconColorButton(
onClick = onAddAttachment,
imageVector = CompoundIcons.Plus(),
)
}
}
@ -285,7 +283,10 @@ fun TextComposer(
modifier = layoutModifier,
textInput = textInput,
dismissTextFormattingButton = {
DismissTextFormattingButton(onClick = onDismissTextFormatting)
IconColorButton(
onClick = onDismissTextFormatting,
imageVector = CompoundIcons.Close(),
)
},
textFormatting = textFormattingOptions,
sendButton = sendButton,

View file

@ -1,46 +0,0 @@
/*
* Copyright 2023, 2024 New Vector Ltd.
*
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.textcomposer.components
import androidx.compose.foundation.layout.size
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import io.element.android.compound.theme.ElementTheme
import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.theme.components.IconButton
import io.element.android.libraries.designsystem.utils.CommonDrawables
import io.element.android.libraries.textcomposer.R
@Composable
internal fun ComposerOptionsButton(
onClick: () -> Unit,
modifier: Modifier = Modifier,
) {
IconButton(
modifier = modifier
.size(48.dp),
onClick = onClick
) {
Icon(
modifier = Modifier.size(30.dp),
resourceId = CommonDrawables.ic_plus_composer,
contentDescription = stringResource(R.string.rich_text_editor_a11y_add_attachment),
tint = ElementTheme.colors.iconPrimary,
)
}
}
@PreviewsDayNight
@Composable
internal fun ComposerOptionsButtonPreview() = ElementPreview {
ComposerOptionsButton(onClick = {})
}

View file

@ -1,46 +0,0 @@
/*
* Copyright 2023, 2024 New Vector Ltd.
*
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.textcomposer.components
import androidx.compose.foundation.layout.size
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import io.element.android.compound.theme.ElementTheme
import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.theme.components.IconButton
import io.element.android.libraries.designsystem.utils.CommonDrawables
import io.element.android.libraries.ui.strings.CommonStrings
@Composable
internal fun DismissTextFormattingButton(
onClick: () -> Unit,
modifier: Modifier = Modifier
) {
IconButton(
modifier = modifier
.size(48.dp),
onClick = onClick
) {
Icon(
modifier = Modifier.size(30.dp),
resourceId = CommonDrawables.ic_cancel,
contentDescription = stringResource(CommonStrings.action_close),
tint = ElementTheme.colors.iconPrimary,
)
}
}
@PreviewsDayNight
@Composable
internal fun DismissTextFormattingButtonPreview() = ElementPreview {
DismissTextFormattingButton(onClick = {})
}

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b6e745d85860818603552ca994df8cd214533ce97588dc92c67a947fb0b1a553
size 54985
oid sha256:ec8ac8528bdb81076828f1b3a87b968ca41b21e59b6ac9c2b5c28db969a08952
size 54998

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:229981835f9ac9137363e5c70d8ed346c9553f4b0ddb673c7d4d42e2ee8732c2
oid sha256:5ccc78d23a4abbbae42cb433fc654e63ed1a3b92c5ffad25b784176a272ff95c
size 65047

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:49d994e3c100153c0cfe39b4ac839409276456ec3ef3d1f23b56d4976ba69110
size 68309
oid sha256:4d2c2a4712004673371795fd640ed468956839772f0aba9934702ac72c8d608a
size 68313

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9b2d33ce0fa59fa4d3b411047cd3d6291deda7e560ddbe58139f84d1319fc2a8
size 55394
oid sha256:0abcce8207b0f2ff7690e80a64a377eefa9aacb3a2c49ea7d22b452c117d6ce0
size 55455

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7abc8d2e9fa899bff932685ab34221b4c2bba50d5decb56df053122b39d003f2
size 69118
oid sha256:edcb3bf7ecb7002a208ecc3655bd54bf2c998ea82dbd757cda1f4c6eb0f2b8a6
size 69168

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a33db712beeead338bd88e964c2319646dcb72bdc3f7dac4d1d2f1e322990ba5
size 70576
oid sha256:6e5c2c07576f39ce1ac227625fce1751f260aa663726087ca11f51407988469a
size 70630

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0d866ee561b4109bf1bb4d1cc3b34d32ad0c67ae51f7599088898acd4310f961
size 6725
oid sha256:fac7865222fa43b756f71af4203fa8c1840caa2e1479d6cbb66ef94fe4cef3e6
size 6728

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3fcb7d90743e35ebf03f09129e02f4df7d0b3b883c451fb45f57f70669b5d4c5
size 6382
oid sha256:5192b4472c687b8b05e2e751bb988276f0507cf6b8d85a0e50a46d8abe9f4834
size 6387

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ceb6210817e79599a968157aebb7fd1d4e80ddbb8f3e57aabfb58d8f6066b9d4
size 19455
oid sha256:eb3362efdf5441cf73ac08196b95bdd5b4426e11188f6cb86c32169be049ed46
size 19547

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6394543bdd107f70a09bdcb164163984112a25f90eed93850cb525572dd53045
size 17888
oid sha256:ea025d360bedff971ae77ee3c9e47140dac75d2f8b64ea2d244304c35c8cea5c
size 18078

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7f055dc169ef143d1523069f7cae31f2b28f5d035499ad2cf8d857151e8d7654
size 57412
oid sha256:ce99545c68b2d7f7f026216c33aa0f34597c0f5e371e83c4d34e3051e810f6d4
size 57425

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:30b7fb609452de559ba40ab246e3edcd6f72a8bdfa1c5c9916cbac54ed89f618
size 57444
oid sha256:9ee0d3c122093afc601d73758400996e4d48e0193cd59c814c0cfd2cc6906070
size 57450

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b947a19d33a1ad68bb58f7a62b67b76085b1f3a544be763eddac8b8d72528a2b
size 60516
oid sha256:b8839778513429751427a29508a5c650a8d21d88abba2c3e35c204cb871bc25c
size 60524

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b956526349bacf951cfa7e5f5a74afce0c80d17bec5d7692d8c86ec92737947e
size 56578
oid sha256:02c954978c5ddde433a96f5dd8d6cef067a558c798ad253e9034db275c5d62a2
size 56591

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:021e70a6ef7da9dfff9666080872d899f53126a3277b06bd579fe2fe6e7a2538
size 55214
oid sha256:fd21bcdeeca45af5e65c5a0c57751e55ce920c10cbb30b18f04912ab7d193fda
size 55232

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9356b6770498704389f5a065f6aaea842312dd878b6f05bb9789c56a01efd5a5
size 55206
oid sha256:bdc5c945b52fc5f9797f385c1eca9a7382e539ca4444bb2b94ad899e2b84585f
size 55216

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3ab021225aab0cc36b9cb01370784bb1b81828f37f5d13a847a711159f407dc0
size 54191
oid sha256:d2f01c4391461d28e99e2bf20af3bf48a1803d5c1d2cff537dd2c046f7c129d4
size 54260

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ae5df6d7be531f90da25c7cad53a3532ef4765f071cd54c6eb3d14c0ef575358
size 58340
oid sha256:d52d24702141a0592ea3bf2fb61a0db7c2cbe0355645164b22fee507c9aedc0f
size 58366

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7b435e31a9a5a28c0e725223e3140080c24437ff557d61dd03f3e9cc39d3e34a
size 58993
oid sha256:e54a56a22751f18b1f496fbde24872185cddde502c99c7381737fb9a215fa223
size 59004

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e1c3aea7221eaecc0ff7473bd0b8576b63a322a0a05d3b2aca6b26e16dcdc318
size 57018
oid sha256:8475bfc48d39dc3e553438cca9b1b088c9713774c5c16194694ef0546afacc4c
size 57060

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:94835988bdfbbefe3fd60cdc616259e1b81d160a5506dd1308f7d47e6bff2113
size 57067
oid sha256:09ecd2bcc86a4b4571481d9414e6f467698f5f1882b05054444982bcfb0c91dc
size 57108

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:deb926f0dbe9b5fea3c3d764b3786d43c3b7d55bc801102e9bd70b1a4c760de2
size 59769
oid sha256:f0f729da85f30d33ba4bb096ea11966448c1d3816fc2f845dbece8be758fcd92
size 59816

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2e2e0a5bedc5ab474af492546271b8cbe3d691bc24aab8e213cd2fc222e62507
size 55890
oid sha256:3023446a0e6f5c8460da144759e5e47819783f021dd88870b4335f5662077dc2
size 55929

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:12fb29dd5958796433b3ac43abc06fa490a53ecd725f4f29e8745636dfbee278
size 51221
oid sha256:ccc2b366606bd6bc2fb3454ea2eb10539b5687232b439ce425c8f7dce9e5d92e
size 51257

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4be592eb9fc9a7654b4282f230c0189883b2b08f4c5fd4a0304951a779ba9463
size 54783
oid sha256:ca2d3c21d271e87a508a0ee2867550cb59c9c3a76a8ea1aa17548e364039b75d
size 54821

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:131e25f6aa90e145176f4c1a04ac3e68af8ba0bbe88fe0762e4003560ed5f187
size 53704
oid sha256:f8c63c180eee4972abb5a44f04cf7ec8e5b28a31ec9d1fcd9dd5fd0ce883404b
size 53773

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:769d3000c80c15ce0db6dac1156b7edf7d9aed79eb63e07fc05532c88f1642a3
size 54143
oid sha256:5577395ee585414360fcf8f9f2757ed693f9cdc1510d66758a23f7756df6f99d
size 54179

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2c885c63fcb4b29a22ed5db3cc8b8f8165bd3cd7856c6bf6ab431fc71b3d792e
size 58501
oid sha256:01622d32fa8a5478d64d0d613ebffed54b3a96192ef50b4a45506e48b7200d55
size 58546

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:560c9159e78e9da940da58a4297aca1ac647218fab0e03c532016ac96a3a560d
size 21524
oid sha256:b5e45da502ee63629d7a0ca130ce92bdc33e2c93baf49f50594fc8831771c305
size 13760

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b0bb37fb7f6dbce206288431c59e3cc1b31d1a5a25d73b2f2321d7d46a459da5
size 20631
oid sha256:4fb44869e4f1d3233d316e814b5d88a94177b8bdae9eb19186ae937641570ec2
size 13355

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d6489b0d11a7e9d29836d09e9f5507850d1a978c6810ec19861823a17c6c9d94
size 12550

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:673097fbe509f075a9c7e48f72766e5153cbcfb49643eb1f49636d5d27431e0f
size 12147

View file

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:66b9db2c2f0af1d0aebffdd74ceb8177aff237bc8f7d84deb13501f8aaed5872
size 4583

View file

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c89e2c023db9d402fe28ed322173938df1c6b5d6dff18a4ffddfe768b9b992d7
size 4587

View file

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4dd9d99e40d9991117971f912f45cfe0457917b77de9e90300e80768d8a2037b
size 4840

View file

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9ab53f98e76b04d78497fc1b77607eb65b6141a98d7895ac0e428abede8b148f
size 4814

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:37b6772ad2ccdd8f3f7536a4dbd036223380d98964cfca299ad04d06f46a33d8
size 52481
oid sha256:e64de19f68dd0135905925645c646890d177a2648b68ba4c3edf1769725cfabe
size 52614

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5f354e23e0869ea9f0b9d9f04a3ed70a7c4220c4f3bf65aace7ea367cec52167
size 50905
oid sha256:32fbd5db3fe38e87e698a03347b1ee6036520ef892603d158f506c45f43e0fd2
size 51053

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:37b6772ad2ccdd8f3f7536a4dbd036223380d98964cfca299ad04d06f46a33d8
size 52481
oid sha256:e64de19f68dd0135905925645c646890d177a2648b68ba4c3edf1769725cfabe
size 52614

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5f354e23e0869ea9f0b9d9f04a3ed70a7c4220c4f3bf65aace7ea367cec52167
size 50905
oid sha256:32fbd5db3fe38e87e698a03347b1ee6036520ef892603d158f506c45f43e0fd2
size 51053

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ea9e3504ed08cad61dc583f760b38743457770ada95b4cec544bc4b6804e062f
size 53519
oid sha256:59ff13af2bdf76abcbc6502f9a6159871cc60ddd3d693ff50bb1ed3f3298dc1a
size 53921

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8b83cf8c99cdda65aadb0a4ce8d6521945b3d87e304cfbf0f10f63e360391e3f
size 50978
oid sha256:2f4896534efc9e1d1dd91e307609aaffafdc643a81ffca25ed9589ea424b2e60
size 51303

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a315b0a33c2034828d8943f64ad88f3a2e3b4a39db17e4885a80d387be0e1a06
size 76291
oid sha256:c45c431a00a4222d48d7ed9bea28d4b87c744c543ac34345418897f338d45bc0
size 76396

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:49c600c54b3ba8eb98af152a9867f7a1d8740c76f51f4b0d85af95fb5f716e34
size 59323
oid sha256:0b622bd71902638a554124a38477e7ef7fecb5a8a9a4c74fe22c291ea1b38a12
size 59392

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:807de7ee3bd5c8b1fceca0b9149c316ea84ea9bb8415b7b0b72840204e770af2
size 74336
oid sha256:f7804f57fc5951d12fcf260dc9469f4ecf30ea7846feb75386fc0d45a577ab61
size 74433

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1783e2299851c1a82a57b5434cc5488c94967622f886c267fe5346c42f9c52cf
size 85709
oid sha256:74d0d5797e35f8bb8d07c58826dd5c6dc485d179ffef0d32d356a0dbd0e0af2f
size 85811

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a8b5f3892fa9bddde1217f328ba39b9aa99080c2dfd68e50221361e9529c0dfa
size 62559
oid sha256:7a5f9dd27972e5b5598dabb207f62bd36a6fa8c618cf9f764565b2ed8f694280
size 62643

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:dd1e1126ac54b07692153a928e3e4b1c555115738416f510220cef4834b52870
size 61633
oid sha256:447046861cf9c48ee6381a6d17d72d5d675b433a39df2d04a98f0d320ab3d972
size 61729

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:509f8ee34c3d526f3c96578dbe00c9dd63e2178bea8ea7edc8467cd12cf8f622
size 69346
oid sha256:4a5a5d575648186710be4b466bbae6b8b7d7064be27042bdb3a575b90189d906
size 69437

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c666853bb32e576090f3d314097dbe7d2daa85bad949ce9c3ad152847c743a0e
size 59726
oid sha256:c8788be00225f0547c54b9fc87a92497a86c706ae0638f3988e58518f8404ded
size 59817

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:19b169ca0a32a4aec13012495fc2d83ff53ab2d096e9d7630d2e84317302c67a
size 60548
oid sha256:c990db5dda7d348b61e5a917575aaacc4b1ca2110fe6bcbff51e0eb3a718a342
size 60629

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f7cf0f8421c9b23a99450da474d3fe99a7453472801acaaecd34868a64060dcc
size 62775
oid sha256:2cf3f968dec3e9f4bab00e3ccd91ca432dc042dd49151e27e8d5ba07d399ed3c
size 62862

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e36d27009e23535f39ea20206af67a95368d0cc674d53e9085b111e48a6beea9
size 69949
oid sha256:4b95759b9fe7bf8d8807e35d5fe576d750620d7eafcf3d17a3e3f85532048e98
size 70037

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:405f65309e783c2c099f45e6be528c05fbfddebd37accd9352a9208588b6e178
size 60015
oid sha256:3400d8a1c228da983fe9af087c38141d5c8f195541051bd250a51ac138700e7a
size 60083

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c6f039f8db0f5e95ad240697157dddd2115876deec42616a6b43ddcab6e4d9d8
size 73593
oid sha256:ada8a9f61a93ce6ad58098b7e0743b23ba0ee50a6168eeeb34d55584a9796982
size 73791

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:15a0cff9d79d66b032a5b8cf99e731299fe56bf8de7328c858745974bf776b8d
size 57060
oid sha256:95648a88ce6afce734f8230a8fc1b68947a2a0889e259621f68ea376e11eb943
size 57265

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b3edef0741d8f431ecaa4fcb5e649101916af004f6adf6315f01d657adb90d0f
size 71777
oid sha256:40245180648f6a71a7410bd7ce29cf5bef3de17afec4a9c4f2673ca9d16fa42f
size 71970

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5db1a345670e7ae8af6149e97bf1dc6362326f1de55e4884a95b248591562f3a
size 82831
oid sha256:bac3e0bdcc1bf5b3fca6af2bbf9aa983bb0fbc412e179bdb18badf6d5d95d4c4
size 83026

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f455cd10db8660d33aa51b6c487d2dd2b86674d94a60a38a83cff3785ec48524
size 60328
oid sha256:2a89f4b6cf7529bc75a6ca5e478e0c5e5b0d1d788d4e1ab5a72039d108239a4a
size 60538

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9cf437b56de3187e70e1e0486a98bc9e18ba8ab8645a6e19c6e042d82f721426
size 59467
oid sha256:6c7426edf9d3405664abc4882afc62aa77ca73004c3d167d52761b1d45ccc914
size 59675

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b3013792b094d1224e76b9428818083f4d586e759f3de412e6f1139df572b9d0
size 67069
oid sha256:d2178a1374d8ca42634347b9ae3ad7ec991e05af98b4503b29f3b2709c6c1bb0
size 67265

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d4744282f54264abc7cb833efb7b178acd6e334bf03905e0a0f5d1c21b427da9
size 57653
oid sha256:f13cd481c6610e3f19c279c0ef16c0811d02d9984280988808858219c9433eec
size 57856

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c94c6a421aba335a6af4e6548d0ceba7f09e1dfe34f8813072ddff943eea8aab
size 58312
oid sha256:3638d634f596cf78d9eda317f2bb7a9646a12cbbf7052e488469094ac49ceeac
size 58504

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:97dd413b09a117bf03f31ea21c62d774618698c44223601667283d17d8af4f08
size 60632
oid sha256:d61b1864f43cd9b96adbf2ebf829268d1a7e25e79549bd1698ad55cb4d5fd8e9
size 60853

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ea57d3607d3a9f1db5a0f7a111de31859c67c17da09cf0b0fb26485c59e41eff
size 67533
oid sha256:833827253e40c7600e99cb88f57c2bc8d9125714cc5af476b408a8e13deb5e5a
size 67744

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:14082dae20c3a415221fabda507a6d0b338c04f114319fd53bbcf4b1ec4da549
size 57868
oid sha256:6d12b040036e4b15256d5ca2458ab784cba9d0914f83b94ad75ff095e11bc7cb
size 58068

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:663a2f1bada754dd92043b26fdafdcb4974f1dfe8368e4126bf41baa4356e0ac
size 46655
oid sha256:2ba17f36d661d5b86e43be38b42dd51b4793b37ecbf3e2ca3bdccd3d2b0fef0d
size 46716

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cca813483d17bafd6b2c09759659525b59909d76b90e124e03e7f8e0a161121e
size 44476
oid sha256:d4f4d67d99ef4403bf479657b5a3823cf33ca3ceee108d55107d0fad7caaba4a
size 44672