MESSENGER-2762 Initial Merge

This commit is contained in:
Frank Rotermund
2022-03-17 15:51:23 +01:00
parent ecae8d618f
commit c2108a2178
384 changed files with 17708 additions and 1928 deletions

View File

@@ -11,6 +11,7 @@ on:
env:
# Make the git branch for a PR available to our Fastfile
MX_GIT_BRANCH: ${{ github.event.pull_request.head.ref }}
MapTilerAPIKey: ${{ secrets.MAPTILER_API_KEY }}
jobs:
build:

View File

@@ -12,6 +12,7 @@ on:
env:
# Make the git branch for a PR available to our Fastfile
MX_GIT_BRANCH: ${{ github.event.pull_request.head.ref }}
MapTilerAPIKey: ${{ secrets.MAPTILER_API_KEY }}
jobs:
tests:

View File

@@ -11,6 +11,7 @@ on:
env:
# Make the git branch for a PR available to our Fastfile
MX_GIT_BRANCH: ${{ github.event.pull_request.head.ref }}
MapTilerAPIKey: ${{ secrets.MAPTILER_API_KEY }}
jobs:
check-secret:

706
CHANGES_BWI.md Normal file
View File

@@ -0,0 +1,706 @@
Changes in BWI project 1.17.0 (2022-02-14)
===================================================
Upstream merge ✨:
- v1.6.12h
Features ✨:
- Emoji history (#1601)
- Advertising new Features (#2469)
Improvements 🙌:
- Beta app has flexible server backends (#2699)
Bugfix 🐛:
- DMs don't have roles & rights any more (#1919)
Translations 🗣:
SDK API changes ⚠️:
Build 🧱:
Changes in BWI project 1.16.0 (2022-01-12)
===================================================
Upstream merge ✨:
- v1.6.11h
Features ✨:
- Downtime warnings (#2597)
- Forward messages
- Mention users
Improvements 🙌:
- Removed hardened usage
Bugfix 🐛:
- Reset passphrase dialog flow not cancelable
- Fixed a crash when trying to access the personal notes room
Translations 🗣:
SDK API changes ⚠️:
Build 🧱:
Changes in BWI project 1.14.0 (2021-11-04)
===================================================
Upstream merge ✨:
- v1.6.5h
Features ✨:
- Happy Birthday (#2538)
- Spaces in a deactivated state
Improvements 🙌:
- Integration of Matomo Tracking for Beta App (#2519, #2525)
- Register button in login screen (#2536)
Bugfix 🐛:
- Some crash fixes regarding Realm and iOS 15
- Crosssigning in Security settings deactivated (#2456)
- Translated and cleared error messages on user invite (#2470)
Translations 🗣:
SDK API changes ⚠️:
Build 🧱:
Changes in BWI project 1.13.0 (2021-10-06)
===================================================
Upstream merge ✨:
- v1.5.4h
Features ✨:
- Voice Messages activated
- Rules & Rights (#2310)
- Reset room rights (#2312)
- New Notification setting menu
Improvements 🙌:
- Camera: The quality of video when filming in-app is significantly higher.
- Mark iOS 11 as deprecated and show different version check alerts.
- Moved converted voice messages to their own folder. Cleaning up all temporary files on on reload and logout.
- Popping the user back to the home screen after leaving a room.
Bugfix 🐛:
- The last admin of a room is not able to unpower himself (#2101)
- Fixed home view being clipped when search is active.
Translations 🗣:
SDK API changes ⚠️:
Build 🧱:
Changes in BWI project 1.12.0 (2021-09-15)
===================================================
Upstream merge ✨:
- v1.5.1h
Features ✨:
- Voice Messages
- Personal Notes room (#2223)
- Feature Announce Banner (#2214)
- Show/Hide Timeline events (#1552)
Improvements 🙌:
Bugfix 🐛:
- Corrected behaviour when faceID/toucgID is available but deactivated for the app (#2247)
Translations 🗣:
SDK API changes ⚠️:
Build 🧱:
Changes in BWI project 1.11.0 (2021-08-12)
===================================================
Upstream merge ✨:
- v1.4.7h
Features ✨:
- Show/Hide password while typing (#1967)
- Password forgotten? Infotext for what to do (#1818)
Improvements 🙌:
- Better Icons for DMs / Rooms (#2069, #2071)
- Show weekdays in timeline (#2080)
- Show Element version in about settings (#2098)
- Better asynchronous decryption (NV #3777)
Bugfix 🐛:
Translations 🗣:
SDK API changes ⚠️:
Build 🧱:
Other changes:
Changes in BWI project 1.10.0 (2021-07-14)
===================================================
Upstream merge ✨:
- v1.4.1h
Features ✨:
- Avatar can by restored to standard avatar (#1905)
Improvements 🙌:
- Crypto: Do not decrypt synchronously. It asynchronously happens upstream now
Bugfix 🐛:
- SettingsViewController: Fix crash when changing the app language
- UserSessionsService: Fix room lists lost after a reset cache
- From MatrixSDK 0.19.1: App can fail to perform an incremental sync on reopening (#4417) suggested by Giom
Translations 🗣:
SDK API changes ⚠️:
Build 🧱:
Other changes:
Changes in BWI project 1.9.0 (2021-06-17)
===================================================
Upstream merge ✨:
- v1.3.9h
Features ✨:
Improvements 🙌:
Bugfix 🐛:
Translations 🗣:
SDK API changes ⚠️:
Build 🧱:
- Added automated UI testing (#1700)
- Disable Logging (#1787)
Other changes:
Changes in BWI project 1.8.0 (2021-05-20)
===================================================
Upstream merge ✨:
- v1.3.5h
Features ✨:
- Redesigned Composer (writing mode and action mode)
- Typing notifications
Improvements 🙌:
- Disable Integrations (#1832)
- Disable stickers for composer (#1832)
Bugfix 🐛:
Translations 🗣:
SDK API changes ⚠️:
Build 🧱:
Other changes:
- Rest Time UI and Logic (apart from Notifications) (#1800, #1803, #1804)
Changes in BWI project 1.7.0 (2021-04-19)
===================================================
Upstream merge ✨:
v1.3.1h
Features ✨:
- Rooms can be changed from privat to public and back by the room admin (#912)
Improvements 🙌:
- Deactivate Cross signing for web client release (#1742)
- Allow change display name depending on server config (#1668)
- Disable voice call settings (#1744)
- Disable NSFW setting (#1744)
Bugfix 🐛:
- Clearify Face/Touch ID error message (#1659)
Translations 🗣:
- Change "Passphrase" to "Verschlüsselungskennwort"
- Add translations for New Room details (#1744)
SDK API changes ⚠️:
Build 🧱:
Create Beta build config (#1732)
Other changes:
Allow test server login in Beta build (#1732)
Enable Rageshake in Beta build (#1623)
Changes in BWI project 1.6.0 (2021-03-23)
===================================================
Upstream merge ✨:
- v1.2.6h
Features ✨:
- Rooms can be changed from privat to public and back by the room admin (#912)
Improvements 🙌:
- Rooms may not be left by the only admin (#1629)
- Accepting invitations takes only one click (#749)
Bugfix 🐛:
Translations 🗣:
- German translation for integrity check (#1689)
SDK API changes ⚠️:
-
Build 🧱:
-
Other changes:
-
Changes in BWI project 1.5.1 (2021-02-15)
===================================================
Upstream merge ✨:
- v1.1.2h
- v1.1.5h
Features ✨:
-
Improvements 🙌:
- Added timestamp to all chat messages.
- Added Face ID support
- Changed room details (members) icon backround in olive green
- Hide Pin change description text and localized some strings
- Removed room encryption alert view entry
- Javascipt support disabled
- Removed invite friends to BwMessenger
- Removed "Direktnachricht" from support.html
Bugfix 🐛:
- Login screen icon centered.
Translations 🗣:
-
SDK API changes ⚠️:
-
Build 🧱:
-
Other changes:
-
Changes in BWI project 1.0.21 (2020-11-25)
===================================================
Upstream merge ✨:
-
Features ✨:
-
Improvements 🙌:
- Removed files and messages from search tab
- No popup for selecting the file size appears anymore
- Increased pin storage security (MESSENGER-834)
Bugfix 🐛:
- Pin bypass (MESSENGER-936)
Translations 🗣:
-
SDK API changes ⚠️:
-
Build 🧱:
-
Other changes:
-
Changes in BWI project 1.0.18 (2020-11-09)
===================================================
Upstream merge ✨:
-
Features ✨:
-
Improvements 🙌:
-
Bugfix 🐛:
- Hotfix to disable matomo tracking
Translations 🗣:
-
SDK API changes ⚠️:
-
Build 🧱:
-
Other changes:
- removed other element specific urls in project and buildsettings as they are opened on startup
Changes in BWI project 1.0.16 (2020-10-30)
===================================================
Upstream merge ✨:
-
Features ✨:
-
Improvements 🙌:
- Improved login screen
- Pin gracetime 3min
- Logout and delete all files if jailbreak detected
Bugfix 🐛:
- Fix pincode bypass on fast switching (#59).
Translations 🗣:
- Push message notification text in german
SDK API changes ⚠️:
-
Build 🧱:
-
Other changes:
-
Changes in BWI project 1.0.15 (2020-10-20)
===================================================
Upstream merge ✨:
-
Features ✨:
-
Improvements 🙌:
-
Bugfix 🐛:
-
Translations 🗣:
-
SDK API changes ⚠️:
-
Build 🧱:
-
Other changes:
- Removed text below mobile icon to be conform for Apple Review.
Changes in BWI project 1.0.13.7 (2020-10-15)
===================================================
Upstream merge ✨:
-
Features ✨:
-
Improvements 🙌:
-
Bugfix 🐛:
- Removed audio background mode from info.plist (app store review issue)
Translations 🗣:
-
SDK API changes ⚠️:
-
Build 🧱:
-
Other changes:
-
Changes in BWI project 1.0.13.6 (2020-10-12)
===================================================
Upstream merge ✨:
-
Features ✨:
-
Improvements 🙌:
- New splash screen with camou background and BWI logo
Bugfix 🐛:
- Face ID now completely deactivated
Translations 🗣:
-
SDK API changes ⚠️:
-
Build 🧱:
-
Other changes:
-
Changes in BWI project 1.0.13.2 (2020-10-09)
===================================================
Upstream merge ✨:
-
Features ✨:
-
Improvements 🙌:
- Hide security info
- Support setting
- Removed Terms and Conditions setting
- Added Support setting
- Reset passphrase workflow fixed
Bugfix 🐛:
-
Translations 🗣:
- Secure recovery
- DM leave
- Reset passphrase
SDK API changes ⚠️:
-
Build 🧱:
-
Other changes:
-
Changes in BWI project 1.0.13.0 (2020-10-01)
===================================================
Upstream merge ✨:
- Hardened 1.0.13
Features ✨:
- New appicon design
- New Splash screen design
- Removed email field under settings
Improvements 🙌:
- Themes contains olive green tint color for button and text elements.
Bugfix 🐛:
-
Translations 🗣:
-
SDK API changes ⚠️:
-
Build 🧱:
-
Other changes:
-
Changes in BWI project 1.0.11.0 (2020-09-18)
===================================================
Features ✨:
- Update to Element 1.0.11
Improvements 🙌:
- Changed hint text in search field for people
- Hide trusted text in attachments like in images
- Security header in bold
- Removed Advanced section under Security
Bugfix 🐛:
- GIFs are animated again after uploading them
Translations 🗣:
-
SDK API changes ⚠️:
-
Build 🧱:
-
Other changes:
- Disable Xcode Warning from Third Party Vendors
- Upgrade minor Xcode project changes to v11.x
Changes in BWI project 1.0.4.11 (2020-09-13)
===================================================
Features ✨:
-
Improvements 🙌:
- Settings header in bold
- No context menu when file is infected
- Hide presence status of user
- Hide email text from settings
- Compress every image to max. 1600x1200 px
- Hide "Direct" and "Low Priority" Button from swipe menu on room, "Leave room" is red now
- Hide AV status text if it is "Trusted"
Bugfix 🐛:
- Fixed problem with removing Face ID after first time login.
Translations 🗣:
- German Translations for Jailbreak info
- AV texts
- Improved password change texts
SDK API changes ⚠️:
-
Build 🧱:
-
Other changes:
- Login text username only (no email)
Changes in BWI project 1.0.4.10 (2020-09-04)
===================================================
Features ✨:
-
Improvements 🙌:
- string change "Personen" to "Direktnachrichten
- Moved sign out button from top to bottom of settings.
- Removed choose language feature from settings.
- Hide Home and Communnities in Bottom Bar, DM is default
- Disabled iCloud link
- Disabled Siri
- Password change dialog with rules text
- BwMessenger splash screen inspired from Android version
- Display name readonly
Bugfix 🐛:
-
Translations 🗣:
- Pin Code dialog
SDK API changes ⚠️:
-
Build 🧱:
-
Other changes:
- Disabled Face ID
=======================================================
+ TEMPLATE WHEN PREPARING A NEW RELEASE +
=======================================================
Changes in BWI project 1.X.X (2020-XX-XX)
===================================================
Upstream merge ✨:
-
Features ✨:
-
Improvements 🙌:
-
Bugfix 🐛:
-
Translations 🗣:
-
SDK API changes ⚠️:
-
Build 🧱:
-
Other changes:
-

View File

@@ -1,5 +1,6 @@
//
// Copyright 2020 Vector Creations Ltd
// Copyright (c) 2021 BWI GmbH
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -56,6 +57,10 @@ class AppConfiguration: CommonConfiguration {
override func setupSettings(for matrixSession: MXSession) {
super.setupSettings(for: matrixSession)
setupWidgetReadReceipts(for: matrixSession)
if BuildSettings.enableAntivirusScan, let homeServerStringURL = matrixSession.credentials?.homeServer {
matrixSession.antivirusServerURL = homeServerStringURL
}
}
private func setupWidgetReadReceipts(for matrixSession: MXSession) {

View File

@@ -1,5 +1,6 @@
//
// Copyright 2021 Vector Creations Ltd
// Copyright (c) 2021 BWI GmbH
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -16,24 +17,28 @@
// App identity
BUNDLE_DISPLAY_NAME = Element
BASE_BUNDLE_IDENTIFIER = im.vector.app
APPLICATION_GROUP_IDENTIFIER = group.im.vector
BUNDLE_DISPLAY_NAME = BundesMessenger
BASE_BUNDLE_IDENTIFIER = de.bwi.messenger
APPLICATION_GROUP_IDENTIFIER = group.de.messenger
APPLICATION_SCHEME = element
// Version
MARKETING_VERSION = 1.18.0
CURRENT_PROJECT_VERSION = 1.18.0
// Team
DEVELOPMENT_TEAM = 7J4U792NQT
DEVELOPMENT_TEAM = Q111Q11QQ1
// Provisioning profiles
RIOT_PROVISIONING_PROFILE_SPECIFIER = Vector App Store
RIOT_PROVISIONING_PROFILE = 4b43c1ca-3246-4984-828f-165838f5715a
RIOT_PROVISIONING_PROFILE = f65e7447-b8a3-46cc-8fba-fa60e55e2511
NSE_PROVISIONING_PROFILE_SPECIFIER = "Vector NSE: App Store"
NSE_PROVISIONING_PROFILE = de44ca91-4318-4c23-8611-b531793505c2
NSE_PROVISIONING_PROFILE = 31dc9316-e029-47fd-81f5-778db07d76a2
SHARE_EXTENSION_PROVISIONING_PROFILE_SPECIFIER = "Vector Share Extension: App Store"
SHARE_EXTENSION_PROVISIONING_PROFILE = 546090a2-77ca-4bc2-b904-da5bd97a2f37
SHARE_EXTENSION_PROVISIONING_PROFILE = 1a3be143-50c7-4ae2-834e-00596a053141
SIRI_INTENTS_PROVISIONING_PROFILE_SPECIFIER = "Vector Siri Intents: App Store"
SIRI_INTENTS_PROVISIONING_PROFILE = 6951ad31-4850-445a-89c8-b64bca0a1c44
SIRI_INTENTS_PROVISIONING_PROFILE = 18a66f93-ffe1-4008-b343-58350cc65023

View File

@@ -1,5 +1,6 @@
//
// Copyright 2021 Vector Creations Ltd
// Copyright (c) 2021 BWI GmbH
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -15,5 +16,5 @@
//
// Version
MARKETING_VERSION = 1.8.1
CURRENT_PROJECT_VERSION = 1.8.1
MARKETING_VERSION = 1.18.0
CURRENT_PROJECT_VERSION = 20220309075454

View File

@@ -1,5 +1,6 @@
//
// Copyright 2020 Vector Creations Ltd
// Copyright (c) 2021 BWI GmbH
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -16,6 +17,10 @@
import Foundation
#if LOCATION
import Keys
#endif
/// BuildSettings provides settings computed at build time.
/// In future, it may be automatically generated from xcconfig files
@objcMembers
@@ -87,48 +92,30 @@ final class BuildSettings: NSObject {
}
// Element-Web instance for the app
static let applicationWebAppUrlString = "https://app.element.io"
static let applicationWebAppUrlString = ""
// MARK: - Server configuration
// Default servers proposed on the authentication screen
static let serverConfigDefaultHomeserverUrlString = "https://matrix.org"
static let serverConfigDefaultIdentityServerUrlString = "https://vector.im"
static let serverConfigDefaultHomeserverUrlString = ""
static let serverConfigDefaultIdentityServerUrlString = ""
static let serverConfigSygnalAPIUrlString = "https://matrix.org/_matrix/push/v1/notify"
static let serverConfigPreSelections = ["":""]
static let serverConfigSygnalAPIUrlString = ""
// MARK: - Legal URLs
// Note: Set empty strings to hide the related entry in application settings
static let applicationCopyrightUrlString = "https://element.io/copyright"
static let applicationPrivacyPolicyUrlString = "https://element.io/privacy"
static let applicationPrivacyPolicyUrlString = ""
static let applicationTermsConditionsUrlString = "https://element.io/terms-of-service"
static let applicationHelpUrlString =
"https://element.io/help"
// MARK: - Permalinks
// Hosts/Paths for URLs that will considered as valid permalinks. Those permalinks are opened within the app.
static let permalinkSupportedHosts: [String: [String]] = [
"app.element.io": [],
"staging.element.io": [],
"develop.element.io": [],
"mobile.element.io": [""],
// Historical ones
"riot.im": ["/app", "/staging", "/develop"],
"www.riot.im": ["/app", "/staging", "/develop"],
"vector.im": ["/app", "/staging", "/develop"],
"www.vector.im": ["/app", "/staging", "/develop"],
// Official Matrix ones
"matrix.to": ["/"],
"www.matrix.to": ["/"],
// Client Permalinks (for use with `BuildSettings.clientPermalinkBaseUrl`)
// "example.com": ["/"],
// "www.example.com": ["/"],
]
static let applicationHelpUrlString = "https://element.io/help"
// MARk: - Matrix permalinks
// Paths for URLs that will considered as Matrix permalinks. Those permalinks are opened within the app
static let permalinkSupportedHosts: [String: [String]] = [:]
// For use in clients that use a custom base url for permalinks rather than matrix.to.
// This baseURL is used to generate permalinks within the app (E.g. timeline message permalinks).
// Optional String that when set is used as permalink base, when nil matrix.to format is used.
@@ -138,12 +125,13 @@ final class BuildSettings: NSObject {
// MARK: - VoIP
static var allowVoIPUsage: Bool {
#if canImport(JitsiMeetSDK)
return true
return false
#else
return false
#endif
}
static let stunServerFallbackUrlString: String? = "stun:turn.matrix.org"
static let stunServerFallbackUrlString: String? = ""
// MARK: - Public rooms Directory
#warning("Unused build setting: should this be implemented in ShowDirectory?")
@@ -158,24 +146,20 @@ final class BuildSettings: NSObject {
static let roomsAllowToJoinPublicRooms: Bool = true
// MARK: - Analytics
#if DEBUG
/// Host to use for PostHog analytics during development. Set to nil to disable analytics in debug builds.
static let analyticsHost: String? = "https://posthog-poc.lab.element.dev"
/// Public key for submitting analytics during development. Set to nil to disable analytics in debug builds.
static let analyticsKey: String? = "rs-pJjsYJTuAkXJfhaMmPUNBhWliDyTKLOOxike6ck8"
#else
/// Host to use for PostHog analytics. Set to nil to disable analytics.
static let analyticsHost: String? = "https://posthog.hss.element.io"
/// Public key for submitting analytics. Set to nil to disable analytics.
static let analyticsKey: String? = "phc_Jzsm6DTm6V2705zeU5dcNvQDlonOR68XvX2sh1sEOHO"
#endif
static let analyticsServerUrl = URL(string: "")
static let analyticsAppId = "0"
/// The URL to open with more information about analytics terms.
/// BWI: set host and key to nil to disable PostHog tracking
static let analyticsHost: String? = nil
static let analyticsKey: String? = nil
static let analyticsTermsURL = URL(string: "https://element.io/cookie-policy")!
static let bwiPresentAnalyticsPrompt = false
static let bwiAnalyticsServerUrlString = ""
static let bwiAnalyticsAppId = "1"
// MARK: - Bug report
static let bugReportEndpointUrlString = "https://riot.im/bugreports"
static let bugReportEndpointUrlString = ""
// Use the name allocated by the bug report server
static let bugReportApplicationId = "riot-ios"
@@ -184,36 +168,23 @@ final class BuildSettings: NSObject {
static let integrationsUiUrlString = "https://scalar.vector.im/"
static let integrationsRestApiUrlString = "https://scalar.vector.im/api"
// Widgets in those paths require a scalar token
static let integrationsScalarWidgetsPaths = [
"https://scalar.vector.im/_matrix/integrations/v1",
"https://scalar.vector.im/api",
"https://scalar-staging.vector.im/_matrix/integrations/v1",
"https://scalar-staging.vector.im/api",
"https://scalar-staging.riot.im/scalar/api",
]
static let integrationsScalarWidgetsPaths = [""]
// Jitsi server used outside integrations to create conference calls from the call button in the timeline
static let jitsiServerUrl: URL = URL(string: "https://jitsi.riot.im")!
static let jitsiServerUrl: URL = URL(string: "https://enter.jitsi.url")!
// MARK: - Features
/// Setting to force protection by pin code
static let forcePinProtection: Bool = false
/// Max allowed time to continue using the app without prompting PIN
static let pinCodeGraceTimeInSeconds: TimeInterval = 0
static let pinCodeGraceTimeInSeconds: TimeInterval = 180
/// Force non-jailbroken app usage
static let forceNonJailbrokenUsage: Bool = true
static let allowSendingStickers: Bool = true
static let allowLocalContactsAccess: Bool = true
static let allowSendingStickers: Bool = false
static let allowLocalContactsAccess: Bool = false
static let allowInviteExernalUsers: Bool = true
// MARK: - Side Menu
static let enableSideMenu: Bool = true
static let enableSideMenu: Bool = false
static let sideMenuShowInviteFriends: Bool = true
/// Whether to read the `io.element.functional_members` state event and exclude any service members when computing a room's name and avatar.
@@ -222,7 +193,32 @@ final class BuildSettings: NSObject {
// MARK: - Feature Specifics
/// Not allowed pin codes. User won't be able to select one of the pin in the list.
static let notAllowedPINs: [String] = []
static let notAllowedPINs: [String] = [
"1234",
"1111",
"0000",
"1212",
"7777",
"1004",
"2000",
"4444",
"2222",
"6969",
"9999",
"3333",
"5555",
"6666",
"1122",
"1313",
"8888",
"4321",
"2001",
"1010",
"2580",
"4711",
"0815",
"0852"
]
/// Maximum number of allowed pin failures when unlocking, before force logging out the user. Defaults to `3`
static let maxAllowedNumberOfPinFailures: Int = 3
@@ -230,55 +226,86 @@ final class BuildSettings: NSObject {
/// Maximum number of allowed biometrics failures when unlocking, before fallbacking the user to the pin if set or logging out the user. Defaults to `5`
static let maxAllowedNumberOfBiometricsFailures: Int = 5
static let allowLocalContactPresence: Bool = false
/// Indicates should the app log out the user when number of PIN failures reaches `maxAllowedNumberOfPinFailures`. Defaults to `false`
static let logOutUserWhenPINFailuresExceeded: Bool = false
static let logOutUserWhenPINFailuresExceeded: Bool = true
/// Indicates should the app log out the user when number of biometrics failures reaches `maxAllowedNumberOfBiometricsFailures`. Defaults to `false`
static let logOutUserWhenBiometricsFailuresExceeded: Bool = false
static let logOutUserWhenBiometricsFailuresExceeded: Bool = true
/// If force is enabled the dialog for asking if reseting the key backup is not shown.. already asked before in mandatory verfication
static let forceResetBackupIfLost: Bool = true
/// if skip is enabled the key backup dialogs are passed through
static let skipKeyBackupStep: Bool = true
static let showNotificationsV2: Bool = true
// MARK: - Main Tabs
static let homeScreenShowHomeTab: Bool = false
static let homeScreenShowFavouritesTab: Bool = true
static let homeScreenShowPeopleTab: Bool = true
static let homeScreenShowRoomsTab: Bool = true
static let homeScreenShowCommunitiesTab: Bool = true
static let homeScreenShowCommunitiesTab: Bool = false
// MARK: - General Settings Screen
static let settingsScreenShowUserFirstName: Bool = false
static let settingsScreenShowUserSurname: Bool = false
static let settingsScreenAllowAddingEmailThreepids: Bool = true
static let settingsScreenAllowAddingPhoneThreepids: Bool = true
static let settingsScreenShowThreepidExplanatory: Bool = true
static let settingsScreenShowDiscoverySettings: Bool = true
static let settingsScreenAllowIdentityServerConfig: Bool = true
static let settingsScreenShowConfirmMediaSize: Bool = true
static let settingsScreenShowAdvancedSettings: Bool = true
static let settingsScreenShowLabSettings: Bool = true
static let settingsScreenAllowChangingRageshakeSettings: Bool = true
static let settingsScreenAllowChangingCrashUsageDataSettings: Bool = true
static let settingsScreenAllowBugReportingManually: Bool = true
static let settingsScreenAllowDeactivatingAccount: Bool = true
static let settingsScreenAllowAddingLinkedEmails: Bool = false
static let settingsScreenAllowAddingPhoneNumbers: Bool = false
static let settingsScreenAllowAddingEmailThreepids: Bool = false
static let settingsScreenAllowAddingPhoneThreepids: Bool = false
static let settingsScreenShowThreepidExplanatory: Bool = false
static let settingsScreenShowDiscoverySettings: Bool = false
static let settingsScreenAllowIdentityServerConfig: Bool = false
static let settingsScreenShowConfirmMediaSize: Bool = false
static let settingsScreenShowAdvancedSettings: Bool = false
static let settingsScreenShowLabSettings: Bool = false
static let settingsScreenAllowChangingRageshakeSettings: Bool = false
static let settingsScreenAllowChangingCrashUsageDataSettings: Bool = false
static let settingsScreenAllowBugReportingManually: Bool = false
static let settingsScreenAllowDeactivatingAccount: Bool = false
static let settingsScreenEnableDecodedContentAndGlobalSettings: Bool = false
static let settingsScreenShowChangePassword:Bool = true
static let settingsScreenShowLinkPreviews:Bool = false
static let settingsScreenShowInviteFriends:Bool = false
static let settingsScreenShowSettings:Bool = true
static let settingsScreenShowFeedback:Bool = false
static let settingsScreenShowHelp:Bool = false
static let settingsScreenShowEnableStunServerFallback: Bool = true
static let settingsScreenShowNotificationDecodedContentOption: Bool = true
static let settingsScreenShowNsfwRoomsOption: Bool = true
static let settingsScreenShowNotificationDecodedContentOption: Bool = false
static let settingsScreenShowSystemSettingsOption: Bool = false
static let settingsScreenShowNsfwRoomsOption: Bool = false
static let settingsScreenShowTACSetting: Bool = false
static let settingsScreenShowSupportSetting: Bool = true
static let settingsSecurityScreenShowSessions:Bool = true
static let settingsSecurityScreenShowSetupBackup:Bool = true
static let settingsSecurityScreenShowRestoreBackup:Bool = true
static let settingsSecurityScreenShowDeleteBackup:Bool = true
static let settingsSecurityScreenShowCryptographyInfo:Bool = true
static let settingsSecurityScreenShowCryptographyExport:Bool = true
static let settingsSecurityScreenShowAdvancedUnverifiedDevices:Bool = true
static let settingsSecurityScreenShowCryptographyInfo:Bool = false
static let settingsSecurityScreenShowCryptographyExport:Bool = false
static let settingsSecurityScreenShowAdvancedUnverifiedDevices:Bool = false
// MARK: - Notification Settings
static let settingsNotificationsBWIDefaultSet:Bool = true
static let settingsNotificationsShowDefault:Bool = true
static let settingsNotificationsShowMentions:Bool = false
static let settingsNotificationsShowAdvanced:Bool = false
// MARK: - Timeline settings
static let roomInputToolbarCompressionMode = MXKRoomInputToolbarCompressionModePrompt
static let roomInputToolbarCompressionMode = MXKRoomInputToolbarCompressionModeNone
// MARK: - Room Creation Screen
static let roomCreationScreenAllowEncryptionConfiguration: Bool = true
static let roomCreationScreenAllowEncryptionConfiguration: Bool = false
static let roomCreationScreenRoomIsEncrypted: Bool = true
static let roomCreationScreenAllowRoomTypeConfiguration: Bool = true
static let roomCreationScreenRoomIsPublic: Bool = false
@@ -289,7 +316,7 @@ final class BuildSettings: NSObject {
static let roomScreenAllowVoIPForNonDirectRoom: Bool = true
static let roomScreenAllowCameraAction: Bool = true
static let roomScreenAllowMediaLibraryAction: Bool = true
static let roomScreenAllowStickerAction: Bool = true
static let roomScreenAllowStickerAction: Bool = false
static let roomScreenAllowFilesAction: Bool = true
// Timeline style
@@ -307,59 +334,171 @@ final class BuildSettings: NSObject {
static let roomContextualMenuShowMoreOptionForMessages: Bool = true
static let roomContextualMenuShowMoreOptionForStates: Bool = true
static let roomContextualMenuShowReportContentOption: Bool = true
static let roomContextualMenuShowEncryptionOption: Bool = false
// MARK: - Room Info Screen
static let roomInfoScreenShowIntegrations: Bool = true
static let roomInfoScreenShowIntegrations: Bool = false
// MARK: - Room Settings Screen
static let roomSettingsScreenShowLowPriorityOption: Bool = true
static let roomSettingsScreenShowDirectChatOption: Bool = true
static let roomSettingsScreenAllowChangingAccessSettings: Bool = true
static let roomSettingsScreenAllowChangingHistorySettings: Bool = true
static let roomSettingsScreenShowAddressSettings: Bool = true
static let roomSettingsScreenShowFlairSettings: Bool = true
static let roomSettingsScreenShowAdvancedSettings: Bool = true
static let roomSettingsScreenShowLowPriorityOption: Bool = false
static let roomSettingsScreenShowDirectChatOption: Bool = false
static let roomSettingsScreenAllowChangingAccessSettings: Bool = false
static let roomSettingsScreenAllowChangingHistorySettings: Bool = false
static let roomSettingsScreenShowAddressSettings: Bool = false
static let roomSettingsScreenShowFlairSettings: Bool = false
static let roomSettingsScreenShowAdvancedSettings: Bool = false
static let roomSettingsScreenShowAccessSettingsBW: Bool = true
static let roomSettingsScreenRemoveLeave: Bool = true
static let roomSettingsScreenShowIntegrations: Bool = false
static let roomSettingsScreenAdvancedShowEncryptToVerifiedOption: Bool = true
// MARK: - Room Member Screen
static let roomSettingsScreenShowNotificationsV2: Bool = false
// MARK: - Room Member Screen
static let roomMemberScreenShowIgnore: Bool = true
// MARK: - Message
static let messageDetailsAllowShare: Bool = true
static let messageDetailsAllowPermalink: Bool = true
static let messageDetailsAllowViewSource: Bool = true
static let messageDetailsAllowSave: Bool = true
static let messageDetailsAllowCopyMedia: Bool = true
static let messageDetailsAllowPasteMedia: Bool = true
static let messageDetailsAllowShare: Bool = false
static let messageDetailsAllowPermalink: Bool = false
static let messageDetailsAllowViewSource: Bool = false
static let messageDetailsAllowSave: Bool = false
static let messageDetailsAllowCopyMedia: Bool = false
static let messageDetailsAllowPasteMedia: Bool = false
// MARK: - Notifications
static let decryptNotificationsByDefault: Bool = true
// MARK: - HTTP
/// Additional HTTP headers will be sent by all requests. Not recommended to use request-specific headers, like `Authorization`.
/// Empty dictionary by default.
static let httpAdditionalHeaders: [String: String] = [:]
// MARK: - Authentication Screen
static let authScreenShowRegister = true
static let authScreenShowPhoneNumber = true
static let authScreenShowForgotPassword = true
static let authScreenShowCustomServerOptions = true
static let authScreenShowSocialLoginSection = true
static let authScreenShowRegister = false
static let authScreenShowPhoneNumber = false
static let authScreenShowForgotPassword = false
static let authScreenShowCustomServerOptions = false
static let authScreenShowTestServerOptions = false
// MARK: - Authentication Options
static let authEnableRefreshTokens = false
// MARK: - Unified Search
static let unifiedSearchScreenShowPublicDirectory = true
// MARK: - Cross-signing (bwi=true)
static let disableSelfUserVerification = true
// MARK: - Antivirus scan (bwi=true)
static let enableAntivirusScan = true
// MARK: - Room Screen
static let enableRoomSearchItem = false
// MARK: - Matomo Analytics (bwi=false)
static let enableMatomoAnalytics = false
// MARK: Verification screen (bwi=false)
static let showDetailedVerificationElements : Bool = false
static let showRecoverWithKey : Bool = false
// MARK: Unified search screen (bwi=false)
static let showUnifiedSearchViewMessagesTab : Bool = false
static let showUnifiedSearchViewFilesTab : Bool = false
// MARK: - Secrets Recovery
static let secretsRecoveryAllowReset = true
// MARK: VoIP support (bwi=false)
static let enableVoIPSupport : Bool = false
// MARK: Last message timestamp support (bwi=false)
static let enableLastMessageTimestamp : Bool = false
// MARK: Room chat alert screen (bwi=false)
static let enableViewEncryptionAction : Bool = false
// MARK: JavaScript support in WKWebView (bwi=false)
static let enableJSInWebView : Bool = false
// MARK: Secure pin code description (bwi=false)
static let settingsSettingsSecureShowPinCodeDescription : Bool = false
// MARK: Invite friends in Direct Chat (bwi=false)
static let directChatShowInviteFriends : Bool = false
// MARK: Last admin is not allowed to leave the room (bwi=true)
static let lastAdminIsNotAllowedToLeaveRoom : Bool = true
// MARK: Room Member Details Screen (bwi=true)
static let roomMemberDetailsHideLeaveButton : Bool = true
// MARK: Rest time feature (bwi=false)
static let featureWorkTime : Bool = false
// MARK: Room create options (bwi=false)
static let enableShowInRoomDirectory : Bool = false
// MARK: sticker in composer (bwi=false)
static let enableRoomComposerSticker : Bool = false
// Mark: Unified Search (bwi=true)
static let unifiedSearchScreenShowPublicDirectory = true
// MARK: Allows removal of uploaded avatar photos (bwi=true)
static let enableRemoveAvatarImage = true
// MARK: Add a toggle button to the login screen to make the password visible
static let passwordIndicatorOnLogin : Bool = true
// MARK: Displays the element base version on the settings screen
static let elementBaseVersion : String = "1.8.1"
static let showElementBaseVersion : Bool = true
// MARK: Bypasses the normal forgot password process by presenting the user an information alert
// (requires authScreenShowForgotPassword set to true)
static let forgotPasswordInformationAlert : Bool = true
// MARK: Promote new feature within a banner below the navigation view
static let showTopBanner : Bool = true
static let showCustomServerDisplayName : Bool = true
static let customServerDisplayName : String = ""
// MARK BWI show/hide developer menu
static let bwiShowDeveloperSettings : Bool = false
// MARK BWI personal notes room
static let bwiPersonalNotesRoom : Bool = true
static let bwiPersonalNotesRoomLeavable : Bool = false
static let bwiResetPersonalNotesAccountData : Bool = false
// MARK BWI personal notes room
static let bwiRollsAndRights : Bool = true
// MARK: Timeline
static let settingsScreenShowSimpleTimeLineOptions : Bool = false
static let settingsScreenShowTimeStampOption : Bool = true
static let settingsScreenShowDeletedMessagesOption : Bool = false
static let settingsScreenShowNameChangeOption : Bool = false
static let settingsScreenShowChatEffectsOption : Bool = false
static let settingsScreenShowRoomAvatarChangeOption : Bool = false
static let settingsScreenShowUserAvatarChangeOption : Bool = true
static let settingsScreenShowEnterRoomOption : Bool = true
static let bwiEnableVoiceMessages : Bool = true
static let bwiLastAdminCanDowngradeHimself : Bool = false
static let bwiEnableErrorTracking : Bool = false
static let bwiEnableRegisterInfo : Bool = false
static let bwiShowHappyBirthdayCampaign: Bool = false
static let bwiHappyBirthdayCampaignIdentifier: String = "one_year_anniversary"
static let bwiDisableSecuritySettingsUntrustedDevices: Bool = true
static let bwiShowMatomoInfoScreen = false
static let bwiShowMatomoSettings = false
static let bwiMatomoTrackingDefaultState = true
static let bwiShowNewFeatures = true
static let bwiSendMessageThreshold = 10.0
// MARK: - Polls
static var pollsEnabled: Bool {
@@ -367,18 +506,13 @@ final class BuildSettings: NSObject {
return false
}
return true
return false
}
// MARK: - Location Sharing
static let tileServerMapStyleURL = URL(string: "https://api.maptiler.com/maps/streets/style.json?key=fU3vlMsMn4Jb6dnEIFsx")!
static var locationSharingEnabled: Bool {
guard #available(iOS 14, *) else {
return false
}
return true
}
static let tileServerMapURL = ""
static let tileServerMapStyleURL = URL(string: "")!
static let locationSharingEnabled = false
}

70
Config/BwiSettings.swift Normal file
View File

@@ -0,0 +1,70 @@
/*
* Copyright (c) 2021 BWI GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import Foundation
import MatrixSDK
import KeychainAccess
@objcMembers
final class BwiSettings : NSObject {
static let shared = BwiSettings()
private enum UserDefaultsKeys {
static let additionalBwiHeaderKey = "bwiHeader"
}
private struct BwiSettingsConstants {
static let bwiSettingsKeychainService: String = BuildSettings.baseBundleIdentifier + ".bwi-settings-service"
}
private let vault: KeyValueVault
override init() {
vault = KeychainVault(Keychain(service: BwiSettingsConstants.bwiSettingsKeychainService,
accessGroup: BuildSettings.keychainAccessGroup))
super.init()
}
func reset() {
additionalBwiHeader = UserAgentService().bwiUserAgentDict
let sdkOptions = MXSDKOptions.sharedInstance()
sdkOptions.httpAdditionalHeaders = UserAgentService().bwiUserAgentDict
}
// MARK: Servers
var additionalBwiHeader: Dictionary<String, String> {
get {
do {
guard let data = try vault.data(forKey: UserDefaultsKeys.additionalBwiHeaderKey) else {
return UserAgentService().bwiUserAgentDict
}
var dict = try JSONDecoder().decode(Dictionary<String,String>.self, from: data)
dict["User-Agent"] = UserAgentService().bwiUserAgent
return dict
} catch {
return UserAgentService().bwiUserAgentDict
}
} set {
do {
let data = try JSONEncoder().encode(newValue)
try vault.set(data, forKey: UserDefaultsKeys.additionalBwiHeaderKey)
} catch let error {
NSLog("[PinCodePreferences] Error when storing addional header to the vault: \(error)")
}
}
}
}

View File

@@ -1,5 +1,6 @@
//
// Copyright 2020 Vector Creations Ltd
// Copyright (c) 2021 BWI GmbH
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -69,8 +70,11 @@ class CommonConfiguration: NSObject, Configurable {
// Disable identicon use
sdkOptions.disableIdenticonUseForUserAvatar = true
// Use UIKit BackgroundTask for handling background tasks in the SDK
sdkOptions.backgroundModeHandler = MXUIKitBackgroundModeHandler()
// Pass httpAdditionalHeaders to the SDK
sdkOptions.httpAdditionalHeaders = BuildSettings.httpAdditionalHeaders
sdkOptions.httpAdditionalHeaders = UserAgentService().bwiUserAgentDict
// Disable key backup on common
sdkOptions.enableKeyBackupWhenStartingMXCrypto = false
@@ -81,8 +85,10 @@ class CommonConfiguration: NSObject, Configurable {
sdkOptions.clientPermalinkBaseUrl = BuildSettings.clientPermalinkBaseUrl
sdkOptions.authEnableRefreshTokens = BuildSettings.authEnableRefreshTokens
// Configure key provider delegate
MXKeyProvider.sharedInstance().delegate = EncryptionKeyManager.shared
EncryptionKeyManager.shared.initKeys()
}

View File

@@ -0,0 +1,25 @@
/*
* Copyright (c) 2021 BWI GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import Foundation
#if !DEBUG
public func NSLog(_ format: String, _ args: CVarArg...) {
}
public func print(_ items: Any..., separator: String = " ", terminator: String = "\n") {
}
#endif

28
Config/PrefixHeader.pch Normal file
View File

@@ -0,0 +1,28 @@
/*
* Copyright (c) 2021 BWI GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef PrefixHeader_pch
#define PrefixHeader_pch
// Include any system framework and library headers here that should be included in all compilation units.
// You will also need to set the Prefix Header build setting of one or more of your targets to reference this file.
// Disable logs
#ifndef DEBUG
#define NSLog(...)
#endif
#endif /* PrefixHeader_pch */

View File

@@ -3,6 +3,7 @@ source "https://rubygems.org"
gem "xcode-install"
gem "fastlane"
gem "cocoapods", '~>1.11.2'
gem "cocoapods-keys"
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)

View File

@@ -3,6 +3,9 @@ GEM
specs:
CFPropertyList (3.0.5)
rexml
RubyInline (3.12.5)
ZenTest (~> 4.3)
ZenTest (4.12.1)
activesupport (6.1.4.4)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
@@ -64,6 +67,9 @@ GEM
typhoeus (~> 1.0)
cocoapods-deintegrate (1.0.5)
cocoapods-downloader (1.5.1)
cocoapods-keys (2.2.1)
dotenv
osx_keychain
cocoapods-plugins (1.0.0)
nap
cocoapods-search (1.0.1)
@@ -225,6 +231,8 @@ GEM
netrc (0.11.0)
optparse (0.1.1)
os (1.1.4)
osx_keychain (1.0.2)
RubyInline (~> 3)
plist (3.6.0)
public_suffix (4.0.6)
rake (13.0.6)
@@ -292,6 +300,7 @@ PLATFORMS
DEPENDENCIES
cocoapods (~> 1.11.2)
cocoapods-keys
fastlane
fastlane-plugin-diawi
fastlane-plugin-versioning

View File

@@ -3,20 +3,21 @@
<plist version="1.0">
<dict>
<key>FILEHEADER</key>
<string>
// Copyright 2021 New Vector Ltd
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//</string>
<string>
/*
* Copyright (c) 2022 BWI GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/</string>
</dict>
</plist>
</plist>

59
Podfile
View File

@@ -40,6 +40,9 @@ when String # specific MatrixSDK released version
$matrixSDKVersionSpec = $matrixSDKVersion
end
$matrixSDKVersionSpec = { :git => 'https://dl-gitlab.example.com/bwmessenger/ios-matrix-sdk', :tag => 'v0.22.1.1_bwi' }
# Method to import the MatrixSDK
def import_MatrixSDK
pod 'MatrixSDK', $matrixSDKVersionSpec
@@ -66,10 +69,18 @@ abstract_target 'RiotPods' do
pod 'Reusable', '~> 4.1'
pod 'KeychainAccess', '~> 4.2.2'
pod 'WeakDictionary', '~> 2.0'
# Piwik for analytics
pod 'MatomoTracker', '~> 7.4.1'
# PostHog for analytics
pod 'PostHog', '~> 1.4.4'
pod 'AnalyticsEvents', :git => 'https://github.com/matrix-org/matrix-analytics-events.git', :branch => 'release/swift'
pod 'AnalyticsEvents', :git => 'https://github.com/matrix-org/matrix-analytics-events.git', :commit => '264e549b27ee4e1c53c0d69fafd8f401c36fffd4'
# pod 'AnalyticsEvents', :path => '../matrix-analytics-events/AnalyticsEvents.podspec'
# PostHog for analytics
pod 'PostHog', '~> 1.4.4'
pod 'AnalyticsEvents', :git => 'https://github.com/matrix-org/matrix-analytics-events.git', :commit => '264e549b27ee4e1c53c0d69fafd8f401c36fffd4'
# pod 'AnalyticsEvents', :path => '../matrix-analytics-events/AnalyticsEvents.podspec'
# Remove warnings from "bad" pods
@@ -91,6 +102,7 @@ abstract_target 'RiotPods' do
pod 'KTCenterFlowLayout', '~> 1.3.1'
pod 'ZXingObjC', '~> 3.6.5'
pod 'FlowCommoniOS', '~> 1.12.0'
pod 'DTTJailbreakDetection', '~> 0.4.0'
pod 'ReadMoreTextView', '~> 3.0.1'
pod 'SwiftBase32', '~> 0.9.0'
pod 'SwiftJWT', '~> 3.6.200'
@@ -103,6 +115,32 @@ abstract_target 'RiotPods' do
target 'RiotTests' do
inherit! :search_paths
end
# target 'RiotUITests' do
# inherit! :search_paths
# end
end
target "BundesMessenger" do
import_MatrixSDK
import_MatrixKit_pods
import_SwiftUI_pods
pod 'DGCollectionViewLeftAlignFlowLayout', '~> 1.0.4'
pod 'UICollectionViewRightAlignedLayout', '~> 0.0.3'
pod 'KTCenterFlowLayout', '~> 1.3.1'
pod 'ZXingObjC', '~> 3.6.5'
pod 'FlowCommoniOS', '~> 1.12.0'
pod 'DTTJailbreakDetection', '~> 0.4.0'
pod 'ReadMoreTextView', '~> 3.0.1'
pod 'SwiftBase32', '~> 0.9.0'
pod 'SwiftJWT', '~> 3.6.200'
pod 'SideMenu', '~> 6.5'
pod 'DSWaveformImage', '~> 6.1.1'
pod 'ffmpeg-kit-ios-audio', '4.5.1'
pod 'FLEX', '~> 4.5.0', :configurations => ['Debug']
end
target "RiotShareExtension" do
@@ -118,11 +156,6 @@ abstract_target 'RiotPods' do
import_SwiftUI_pods
end
target "SiriIntents" do
import_MatrixSDK
import_MatrixKit_pods
end
target "RiotNSE" do
import_MatrixSDK
import_MatrixKit_pods
@@ -151,4 +184,16 @@ post_install do |installer|
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
end
end
end
Dir.glob("#{installer.sandbox.target_support_files_root}/**/*.pch") do |item|
open(item, "a") do |file|
print "[post_install] Updating #{item}\n"
file.puts <<EOF
// Disable logs
#ifndef DEBUG
#define NSLog(...)
#endif
EOF
end
end
end

View File

@@ -38,6 +38,7 @@ PODS:
- DTFoundation/Core
- DTFoundation/UIKit (1.7.18):
- DTFoundation/Core
- DTTJailbreakDetection (0.4.0)
- ffmpeg-kit-ios-audio (4.5.1)
- FLEX (4.5.0)
- FlowCommoniOS (1.12.2)
@@ -46,7 +47,7 @@ PODS:
- GBDeviceInfo/Core (6.6.0)
- GZIP (1.3.0)
- HPGrowingTextView (1.1)
- Introspect (0.1.3)
- Introspect (0.1.4)
- JitsiMeetSDK (3.10.2)
- KeychainAccess (4.2.2)
- KituraContracts (1.2.1):
@@ -57,6 +58,9 @@ PODS:
- LoggerAPI (1.9.200):
- Logging (~> 1.1)
- Logging (1.4.0)
- MatomoTracker (7.4.1):
- MatomoTracker/Core (= 7.4.1)
- MatomoTracker/Core (7.4.1)
- MatrixSDK (0.22.1):
- MatrixSDK/Core (= 0.22.1)
- MatrixSDK/Core (0.22.1):
@@ -103,11 +107,12 @@ PODS:
- ZXingObjC/All (3.6.5)
DEPENDENCIES:
- AnalyticsEvents (from `https://github.com/matrix-org/matrix-analytics-events.git`, branch `release/swift`)
- AnalyticsEvents (from `https://github.com/matrix-org/matrix-analytics-events.git`, commit `264e549b27ee4e1c53c0d69fafd8f401c36fffd4`)
- DGCollectionViewLeftAlignFlowLayout (~> 1.0.4)
- Down (~> 0.11.0)
- DSWaveformImage (~> 6.1.1)
- DTCoreText (~> 1.6.25)
- DTTJailbreakDetection (~> 0.4.0)
- ffmpeg-kit-ios-audio (= 4.5.1)
- FLEX (~> 4.5.0)
- FlowCommoniOS (~> 1.12.0)
@@ -117,8 +122,9 @@ DEPENDENCIES:
- KeychainAccess (~> 4.2.2)
- KTCenterFlowLayout (~> 1.3.1)
- libPhoneNumber-iOS (~> 0.9.13)
- MatrixSDK (= 0.22.1)
- MatrixSDK/JingleCallStack (= 0.22.1)
- MatomoTracker (~> 7.4.1)
- MatrixSDK (from `https://dl-gitlab.example.com/bwmessenger/ios-matrix-sdk`, tag `v0.22.1.1_bwi`)
- MatrixSDK/JingleCallStack (from `https://dl-gitlab.example.com/bwmessenger/ios-matrix-sdk`, tag `v0.22.1.1_bwi`)
- OLMKit
- PostHog (~> 1.4.4)
- ReadMoreTextView (~> 3.0.1)
@@ -144,6 +150,7 @@ SPEC REPOS:
- DSWaveformImage
- DTCoreText
- DTFoundation
- DTTJailbreakDetection
- ffmpeg-kit-ios-audio
- FLEX
- FlowCommoniOS
@@ -159,7 +166,7 @@ SPEC REPOS:
- libPhoneNumber-iOS
- LoggerAPI
- Logging
- MatrixSDK
- MatomoTracker
- OLMKit
- PostHog
- ReadMoreTextView
@@ -178,13 +185,19 @@ SPEC REPOS:
EXTERNAL SOURCES:
AnalyticsEvents:
:branch: release/swift
:commit: 264e549b27ee4e1c53c0d69fafd8f401c36fffd4
:git: https://github.com/matrix-org/matrix-analytics-events.git
MatrixSDK:
:git: https://dl-gitlab.example.com/bwmessenger/ios-matrix-sdk
:tag: v0.22.1.1_bwi
CHECKOUT OPTIONS:
AnalyticsEvents:
:commit: 8058dc6ec07ce0acfe5fdb19eb7e309b0c13845c
:commit: 264e549b27ee4e1c53c0d69fafd8f401c36fffd4
:git: https://github.com/matrix-org/matrix-analytics-events.git
MatrixSDK:
:git: https://dl-gitlab.example.com/bwmessenger/ios-matrix-sdk
:tag: v0.22.1.1_bwi
SPEC CHECKSUMS:
AFNetworking: 7864c38297c79aaca1500c33288e429c3451fdce
@@ -197,13 +210,14 @@ SPEC CHECKSUMS:
DSWaveformImage: 3c718a0cf99291887ee70d1d0c18d80101d3d9ce
DTCoreText: ec749e013f2e1f76de5e7c7634642e600a7467ce
DTFoundation: a53f8cda2489208cbc71c648be177f902ee17536
DTTJailbreakDetection: 5e356c5badc17995f65a83ed9483f787a0057b71
ffmpeg-kit-ios-audio: 662ce2064e56733ca7d8216705efbc38d9e1c3fe
FLEX: e51461dd6f0bfb00643c262acdfea5d5d12c596b
FlowCommoniOS: ca92071ab526dc89905495a37844fd7e78d1a7f2
GBDeviceInfo: ed0db16230d2fa280e1cbb39a5a7f60f6946aaec
GZIP: 416858efbe66b41b206895ac6dfd5493200d95b3
HPGrowingTextView: 88a716d97fb853bcb08a4a08e4727da17efc9b19
Introspect: 2be020f30f084ada52bb4387fff83fa52c5c400e
Introspect: b62c4dd2063072327c21d618ef2bedc3c87bc366
JitsiMeetSDK: 2f118fa770f23e518f3560fc224fae3ac7062223
KeychainAccess: c0c4f7f38f6fc7bbe58f5702e25f7bd2f65abf51
KituraContracts: e845e60dc8627ad0a76fa55ef20a45451d8f830b
@@ -212,6 +226,7 @@ SPEC CHECKSUMS:
libPhoneNumber-iOS: 0a32a9525cf8744fe02c5206eb30d571e38f7d75
LoggerAPI: ad9c4a6f1e32f518fdb43a1347ac14d765ab5e3d
Logging: beeb016c9c80cf77042d62e83495816847ef108b
MatomoTracker: 24a846c9d3aa76933183fe9d47fd62c9efa863fb
MatrixSDK: 12c1a56e037f629e493cbcd615fd13cfc58cee3a
OLMKit: 9fb4799c4a044dd2c06bda31ec31a12191ad30b5
PostHog: 4b6321b521569092d4ef3a02238d9435dbaeb99f
@@ -229,6 +244,6 @@ SPEC CHECKSUMS:
zxcvbn-ios: fef98b7c80f1512ff0eec47ac1fa399fc00f7e3c
ZXingObjC: fdbb269f25dd2032da343e06f10224d62f537bdb
PODFILE CHECKSUM: ae70a46e98aae87f130ad3d246711fc6b6ae7286
PODFILE CHECKSUM: f244882794bea4100efbe62c723a95c31e6d4b12
COCOAPODS: 1.11.2

View File

@@ -4,8 +4,7 @@
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES"
runPostActionsOnFailure = "NO">
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"

View File

@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16097" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="19529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<device id="retina5_5" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="19519"/>
<capability name="System colors in document resources" minToolsVersion="11.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
@@ -18,21 +19,7 @@
<view key="view" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView clearsContextBeforeDrawing="NO" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" insetsLayoutMarginsFromSafeArea="NO" image="launch_screen_logo" translatesAutoresizingMaskIntoConstraints="NO" id="IcW-17-3Qq">
<rect key="frame" x="147" y="308" width="120" height="120"/>
<color key="tintColor" red="0.051999999999999998" green="0.74299999999999999" blue="0.54300000000000004" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
<constraints>
<constraint firstAttribute="width" secondItem="IcW-17-3Qq" secondAttribute="height" multiplier="1:1" id="nyP-l5-s1B"/>
<constraint firstAttribute="width" constant="120" id="v1s-rq-3ay"/>
</constraints>
</imageView>
</subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<constraints>
<constraint firstItem="IcW-17-3Qq" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="F70-sn-ghB"/>
<constraint firstItem="IcW-17-3Qq" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="nJz-qK-nMP"/>
</constraints>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
@@ -41,6 +28,8 @@
</scene>
</scenes>
<resources>
<image name="launch_screen_logo" width="240" height="240"/>
<systemColor name="systemBackgroundColor">
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</systemColor>
</resources>
</document>

View File

@@ -0,0 +1,795 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="H1p-Uh-vWS">
<device id="retina4_7" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17703"/>
<<<<<<< HEAD
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
=======
>>>>>>> 9792605e19cb683f1991f354dbc575b2b1e910bb
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--HomeNav-->
<scene sceneID="pY4-Hu-kfo">
<objects>
<navigationController id="RMx-3f-FxP" userLabel="HomeNav" customClass="RiotNavigationController" sceneMemberID="viewController">
<navigationBar key="navigationBar" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" id="Pmd-2v-anx">
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
</navigationBar>
<connections>
<segue destination="xaQ-tG-rlO" kind="relationship" relationship="rootViewController" id="Bmb-5J-cpB"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="8fS-aE-onr" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-1375" y="-2202"/>
</scene>
<!--Room-->
<scene sceneID="UrN-g2-oG1">
<objects>
<viewController storyboardIdentifier="RoomViewControllerStoryboardId" title="Room" hidesBottomBarWhenPushed="YES" id="msb-ol-2LB" customClass="RoomViewController" sceneMemberID="viewController">
<navigationItem key="navigationItem" id="3Zt-Wl-J6o">
<nil key="title"/>
<view key="titleView" contentMode="scaleToFill" id="aas-th-FW1" userLabel="Room title view container">
<rect key="frame" x="8" y="2" width="312" height="40"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
</view>
</navigationItem>
<connections>
<outlet property="roomTitleViewContainer" destination="aas-th-FW1" id="SFz-1s-ywg"/>
<segue destination="KDg-aD-xlK" kind="show" identifier="showRoomSearch" id="hdA-V1-9AF"/>
<segue destination="gkO-rP-nGK" kind="show" identifier="showContactDetails" id="f5u-Y1-7nt"/>
<segue destination="ZZb-IS-a1F" kind="presentation" identifier="showUnknownDevices" id="wUx-4y-ybn"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="94y-cU-qQD" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-153" y="-419"/>
</scene>
<!--Room Member Details View Controller-->
<scene sceneID="eq5-qi-gDd">
<objects>
<viewController id="nDS-pp-sWM" customClass="RoomMemberDetailsViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="AgI-3V-llt"/>
<viewControllerLayoutGuide type="bottom" id="6ie-9b-cBo"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="N8z-LO-417">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="e8Z-uW-oDv" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="5047" y="-1437"/>
</scene>
<!--Room Context Timeline-->
<scene sceneID="Htr-h8-baq">
<objects>
<viewController title="Room Context Timeline" hidesBottomBarWhenPushed="YES" id="Too-LV-OLW" customClass="RoomViewController" sceneMemberID="viewController">
<navigationItem key="navigationItem" id="yLe-Hk-Sol">
<nil key="title"/>
<view key="titleView" contentMode="scaleToFill" id="djN-zB-Vni" userLabel="Room title view container">
<rect key="frame" x="8" y="2" width="312" height="40"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
</view>
</navigationItem>
<connections>
<outlet property="roomTitleViewContainer" destination="djN-zB-Vni" id="VQG-Mp-hSa"/>
<segue destination="gkO-rP-nGK" kind="show" identifier="showContactDetails" id="ziz-Xl-QVg"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="Yjg-uP-Hcy" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="3326" y="-1299"/>
</scene>
<!--Room Search View Controller-->
<scene sceneID="rUg-1s-vHX">
<objects>
<viewController storyboardIdentifier="RoomSearch" id="KDg-aD-xlK" customClass="RoomSearchViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="F5n-wr-hGG"/>
<viewControllerLayoutGuide type="bottom" id="BxE-Q4-YjP"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="Kg1-rX-y7X">
<rect key="frame" x="0.0" y="0.0" width="375" height="647"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</view>
<connections>
<segue destination="Too-LV-OLW" kind="show" identifier="showTimeline" id="P1V-0d-mYL"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="bK5-DX-KSF" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="2558" y="-1299"/>
</scene>
<!--Users Devices View Controller-->
<scene sceneID="fKQ-Tq-qUc">
<objects>
<viewController storyboardIdentifier="UsersDevicesViewControllerStoryboardId" id="z83-KC-trJ" customClass="UsersDevicesViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="KBN-JV-gSS"/>
<viewControllerLayoutGuide type="bottom" id="lAN-yJ-zNI"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="b5v-sy-iSu">
<rect key="frame" x="0.0" y="0.0" width="375" height="647"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="43F-4t-lHi">
<rect key="frame" x="0.0" y="0.0" width="375" height="647"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</tableView>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="43F-4t-lHi" secondAttribute="trailing" id="6FJ-ku-UE3"/>
<constraint firstItem="43F-4t-lHi" firstAttribute="bottom" secondItem="lAN-yJ-zNI" secondAttribute="top" id="GK2-7h-FE0"/>
<constraint firstItem="43F-4t-lHi" firstAttribute="leading" secondItem="b5v-sy-iSu" secondAttribute="leading" id="Qda-BV-cf8"/>
<constraint firstItem="43F-4t-lHi" firstAttribute="top" secondItem="b5v-sy-iSu" secondAttribute="top" id="uhO-a4-0iq"/>
</constraints>
</view>
<navigationItem key="navigationItem" id="Wgm-wm-4Qq"/>
<connections>
<outlet property="tableView" destination="43F-4t-lHi" id="ebQ-8p-875"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="UVa-0l-PGg" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="2558" y="180"/>
</scene>
<!--Segmented View Controller-->
<scene sceneID="NZu-Q0-P0z">
<objects>
<tableViewController id="e7G-NU-7ck" customClass="SegmentedViewController" sceneMemberID="viewController"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="fXh-hO-Zgf" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="3326" y="-442"/>
</scene>
<!--People View Controller-->
<scene sceneID="Qba-PP-lco">
<objects>
<viewController id="IGB-jr-yFz" customClass="PeopleViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="Mhy-d3-Jh6"/>
<viewControllerLayoutGuide type="bottom" id="Hkk-qB-8tq"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="zXV-CY-rLP">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</view>
<tabBarItem key="tabBarItem" tag="2" image="tab_people" id="edr-fK-bgM">
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="accessibilityIdentifier" value="TabBarItemPeople"/>
</userDefinedRuntimeAttributes>
</tabBarItem>
<connections>
<segue destination="WDS-Ip-RQ9" kind="presentation" identifier="presentStartChat" id="bwO-oZ-2vj"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="TFZ-TK-2WH" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="1929" y="-2817"/>
</scene>
<!--Favourites View Controller-->
<scene sceneID="z6B-k5-ano">
<objects>
<viewController id="HnD-LA-psC" customClass="FavouritesViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="pOc-AC-QkD"/>
<viewControllerLayoutGuide type="bottom" id="W6L-Au-CaZ"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="Caq-TK-JOm">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</view>
<tabBarItem key="tabBarItem" tag="1" image="tab_favourites" id="UVh-Xd-zDZ">
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="accessibilityIdentifier" value="TabBarItemFavourites"/>
</userDefinedRuntimeAttributes>
</tabBarItem>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="4qY-qn-l6L" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="942" y="-2049"/>
</scene>
<!--Unified Search View Controller-->
<scene sceneID="ijO-nb-yi4">
<objects>
<viewController id="nJt-uq-tV9" customClass="UnifiedSearchViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="V3l-gx-WNN"/>
<viewControllerLayoutGuide type="bottom" id="fYW-Kr-Hqf"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="laS-bb-xrK">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</view>
<connections>
<segue destination="aHG-CH-koI" kind="show" identifier="showDirectory" id="ndE-eu-9lm"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="G2g-bd-dSj" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="476" y="-3899"/>
</scene>
<!--Home View Controller-->
<scene sceneID="SZi-Ac-WJp">
<objects>
<viewController id="pBa-To-3YT" customClass="HomeViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="m3s-18-JgR"/>
<viewControllerLayoutGuide type="bottom" id="2lp-r9-RR5"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="hxX-1O-zT8">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</view>
<tabBarItem key="tabBarItem" title="" image="tab_home" id="hNI-yH-EXj">
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="accessibilityIdentifier" value="TabBarItemHome"/>
</userDefinedRuntimeAttributes>
</tabBarItem>
<navigationItem key="navigationItem" id="rA5-PM-GBU"/>
<connections>
<segue destination="WDS-Ip-RQ9" kind="presentation" identifier="presentStartChat" id="mhb-l9-pM3"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="pEk-LO-Ij0" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="942" y="-2818"/>
</scene>
<!--Master Tab Bar Controller-->
<scene sceneID="iBe-Y5-gBt">
<objects>
<tabBarController storyboardIdentifier="MasterTabBarController" id="xaQ-tG-rlO" customClass="MasterTabBarController" sceneMemberID="viewController">
<navigationItem key="navigationItem" id="m6O-wq-yrc">
<barButtonItem key="leftBarButtonItem" image="settings_icon" id="QSE-cg-V2m">
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="accessibilityIdentifier" value="MasterTabBarControllerSettingsBarButton"/>
</userDefinedRuntimeAttributes>
<connections>
<segue destination="taU-5Q-sdv" kind="show" identifier="showSettings" id="3jh-kY-vVn"/>
</connections>
</barButtonItem>
<barButtonItem key="rightBarButtonItem" image="search_icon" id="pud-Fh-Usd">
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="accessibilityIdentifier" value="MasterTabBarControllerSearchBarButton"/>
</userDefinedRuntimeAttributes>
<connections>
<segue destination="nJt-uq-tV9" kind="show" identifier="showUnifiedSearch" id="5no-rS-zX7"/>
</connections>
</barButtonItem>
</navigationItem>
<tabBar key="tabBar" contentMode="scaleToFill" id="7jP-3G-C0b">
<rect key="frame" x="0.0" y="0.0" width="375" height="49"/>
<autoresizingMask key="autoresizingMask"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
</tabBar>
<connections>
<outlet property="searchBarButtonIem" destination="pud-Fh-Usd" id="DiH-Re-nZE"/>
<outlet property="settingsBarButtonItem" destination="QSE-cg-V2m" id="N6b-Ju-w9g"/>
<segue destination="ZlD-EU-ncw" kind="presentation" identifier="showAuth" modalPresentationStyle="fullScreen" id="fpJ-zM-Qpo"/>
<segue destination="b5O-ib-y0h" kind="presentation" identifier="showSplash" modalPresentationStyle="fullScreen" id="bVC-XL-DlN"/>
<segue destination="HnD-LA-psC" kind="relationship" relationship="viewControllers" id="Bb8-fT-UTm"/>
<segue destination="IGB-jr-yFz" kind="relationship" relationship="viewControllers" id="UF6-Mc-MHx"/>
<segue destination="HPQ-zg-lZR" kind="relationship" relationship="viewControllers" id="Zd0-4h-jSn"/>
<segue destination="pBa-To-3YT" kind="relationship" relationship="viewControllers" id="m13-xQ-VwN"/>
<segue destination="SLx-Wj-p7E" kind="relationship" relationship="viewControllers" id="MgW-UB-uYW"/>
</connections>
</tabBarController>
<placeholder placeholderIdentifier="IBFirstResponder" id="k1S-FF-3Zu" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-516" y="-2203"/>
</scene>
<!--Authentication View Controller-->
<scene sceneID="FoA-N2-3aF">
<objects>
<viewController hidesBottomBarWhenPushed="YES" id="ZlD-EU-ncw" customClass="AuthenticationViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="crg-iM-twR"/>
<viewControllerLayoutGuide type="bottom" id="gbK-Nm-HUT"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="wIi-Yi-2pi">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="mvZ-se-pqQ" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-1375" y="-3024"/>
</scene>
<!--Settings-->
<scene sceneID="9we-7Q-LBo">
<objects>
<tableViewController storyboardIdentifier="SettingsViewController" title="Settings" id="taU-5Q-sdv" customClass="SettingsViewController" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" keyboardDismissMode="interactive" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="18" sectionFooterHeight="18" id="egL-pK-Xhr">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" systemColor="groupTableViewBackgroundColor"/>
<connections>
<outlet property="dataSource" destination="taU-5Q-sdv" id="Ipf-IM-E39"/>
<outlet property="delegate" destination="taU-5Q-sdv" id="kIU-uT-h9Y"/>
</connections>
</tableView>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="s7I-UT-YCd" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-516" y="-3023"/>
</scene>
<!--RecentsSplitVC-->
<scene sceneID="Nki-YV-4Qg">
<objects>
<splitViewController storyboardIdentifier="RiotSplitViewController" title="RecentsSplitVC" id="H1p-Uh-vWS" customClass="RiotSplitViewController" sceneMemberID="viewController">
<toolbarItems/>
<navigationItem key="navigationItem" id="EB5-8V-irH"/>
<connections>
<segue destination="RMx-3f-FxP" kind="relationship" relationship="masterViewController" id="BlO-5A-QYV"/>
<segue destination="vC3-pB-5Vb" kind="relationship" relationship="detailViewController" id="0ws-cL-0tk"/>
</connections>
</splitViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="cZU-Oi-B1e" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-2722" y="-1658"/>
</scene>
<!--Directory View Controller-->
<scene sceneID="96e-HZ-Idz">
<objects>
<tableViewController id="aHG-CH-koI" customClass="DirectoryViewController" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" id="tbG-uL-KGT">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<connections>
<outlet property="dataSource" destination="aHG-CH-koI" id="Ftx-LW-VkD"/>
<outlet property="delegate" destination="aHG-CH-koI" id="LIG-gR-Lz9"/>
</connections>
</tableView>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="b5t-fe-rSJ" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="1223" y="-3899"/>
</scene>
<!--Riot Navigation Controller-->
<scene sceneID="TbB-77-7oK">
<objects>
<navigationController id="qAW-wR-KyU" customClass="RiotNavigationController" sceneMemberID="viewController">
<navigationBar key="navigationBar" contentMode="scaleToFill" id="r5V-3P-3Lg">
<rect key="frame" x="0.0" y="0.0" width="375" height="56"/>
<autoresizingMask key="autoresizingMask"/>
</navigationBar>
<connections>
<segue destination="mRq-hp-dod" kind="relationship" relationship="rootViewController" id="fqQ-aW-08c"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="T7q-ez-UVO" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="3326" y="-2050"/>
</scene>
<!--Contact Details View Controller-->
<scene sceneID="grY-bt-CcD">
<objects>
<viewController id="gkO-rP-nGK" customClass="ContactDetailsViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="0f8-Tg-Zlw"/>
<viewControllerLayoutGuide type="bottom" id="GF2-be-Jca"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="eRR-tG-G8a">
<rect key="frame" x="0.0" y="0.0" width="375" height="647"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="01q-h6-40E" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="5046" y="-711"/>
</scene>
<!--RoomNav-->
<scene sceneID="r7l-gg-dq7">
<objects>
<navigationController title="RoomNav" id="vC3-pB-5Vb" customClass="RiotNavigationController" sceneMemberID="viewController">
<navigationBar key="navigationBar" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" id="DjV-YW-jjY">
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
</navigationBar>
<connections>
<segue destination="Cpr-Tz-Az0" kind="relationship" relationship="rootViewController" id="OND-Rf-nLf"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="SLD-UC-DBI" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-1375" y="-1121"/>
</scene>
<!--Placeholder Detail View Controller-->
<scene sceneID="2wP-Cu-Wca">
<objects>
<viewController storyboardIdentifier="EmptyDetailsViewControllerStoryboardId" id="Cpr-Tz-Az0" customClass="PlaceholderDetailViewController" customModule="Riot" customModuleProvider="target" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="yS4-RU-AsN"/>
<viewControllerLayoutGuide type="bottom" id="VKG-pW-vMU"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="FdE-yP-vzj">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="launch_screen_logo" translatesAutoresizingMaskIntoConstraints="NO" id="6LG-qc-7jf">
<rect key="frame" x="127.5" y="273.5" width="120" height="120"/>
<constraints>
<constraint firstAttribute="width" secondItem="6LG-qc-7jf" secondAttribute="height" multiplier="1:1" id="4Qy-7P-CuE"/>
<constraint firstAttribute="width" constant="120" id="E2Y-gX-itg"/>
</constraints>
</imageView>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstItem="6LG-qc-7jf" firstAttribute="centerY" secondItem="FdE-yP-vzj" secondAttribute="centerY" id="AF1-hZ-uOX"/>
<constraint firstItem="6LG-qc-7jf" firstAttribute="centerX" secondItem="FdE-yP-vzj" secondAttribute="centerX" id="WGk-oE-AqR"/>
</constraints>
</view>
<navigationItem key="navigationItem" id="c9s-dM-eEg"/>
<connections>
<outlet property="logoImageView" destination="6LG-qc-7jf" id="vLR-KE-0aH"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="pZm-ap-zdK" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-153" y="-1121"/>
</scene>
<!--Groups View Controller-->
<scene sceneID="Rqp-Ti-qpu">
<objects>
<viewController id="SLx-Wj-p7E" customClass="GroupsViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="N1j-ye-uQa"/>
<viewControllerLayoutGuide type="bottom" id="FYD-2t-u4k"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="Sl8-9u-7yE">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</view>
<tabBarItem key="tabBarItem" title="" image="tab_groups" id="5x2-xc-uIB"/>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="xpc-LV-krz" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="942" y="-1299"/>
</scene>
<!--Rooms View Controller-->
<scene sceneID="SDg-Pp-8Uj">
<objects>
<viewController id="HPQ-zg-lZR" customClass="RoomsViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="Hkg-kw-ioH"/>
<viewControllerLayoutGuide type="bottom" id="UI8-oQ-9M9"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="rNJ-Yf-mVB">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</view>
<tabBarItem key="tabBarItem" tag="3" image="tab_rooms" id="7eS-Ei-00V">
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="accessibilityIdentifier" value="TabBarItemRooms"/>
</userDefinedRuntimeAttributes>
</tabBarItem>
<connections>
<segue destination="qAW-wR-KyU" kind="presentation" identifier="presentDirectoryServerPicker" id="1mb-Wk-zpt"/>
<segue destination="WDS-Ip-RQ9" kind="presentation" identifier="presentStartChat" id="Tfl-tq-LQp"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="Kb9-ek-2v5" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="1929" y="-2049"/>
</scene>
<!--Riot Navigation Controller-->
<scene sceneID="Fbq-8h-gyk">
<objects>
<navigationController automaticallyAdjustsScrollViewInsets="NO" id="WDS-Ip-RQ9" customClass="RiotNavigationController" sceneMemberID="viewController">
<toolbarItems/>
<navigationBar key="navigationBar" contentMode="scaleToFill" id="CtR-n9-ztG">
<rect key="frame" x="0.0" y="0.0" width="375" height="56"/>
<autoresizingMask key="autoresizingMask"/>
</navigationBar>
<nil name="viewControllers"/>
<connections>
<segue destination="NCJ-FV-8di" kind="relationship" relationship="rootViewController" id="ZIA-Hu-sD4"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="gfz-1Q-Si0" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="2735" y="-3760"/>
</scene>
<!--Start Chat View Controller-->
<scene sceneID="rVX-eZ-8XT">
<objects>
<viewController id="NCJ-FV-8di" customClass="StartChatViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="ybc-ex-KQ3"/>
<viewControllerLayoutGuide type="bottom" id="0pc-6H-UO9"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="rVj-X8-v0f">
<rect key="frame" x="0.0" y="0.0" width="375" height="647"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</view>
<navigationItem key="navigationItem" id="Sre-eV-Crk"/>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="4YW-Hr-WyR" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="3610" y="-3761"/>
</scene>
<!--Riot Navigation Controller-->
<scene sceneID="Qyz-FA-hw5">
<objects>
<navigationController automaticallyAdjustsScrollViewInsets="NO" id="ZZb-IS-a1F" customClass="RiotNavigationController" sceneMemberID="viewController">
<toolbarItems/>
<navigationBar key="navigationBar" contentMode="scaleToFill" id="MHE-SG-tnL">
<rect key="frame" x="0.0" y="0.0" width="375" height="56"/>
<autoresizingMask key="autoresizingMask"/>
</navigationBar>
<nil name="viewControllers"/>
<connections>
<segue destination="z83-KC-trJ" kind="relationship" relationship="rootViewController" id="83C-0z-Ld8"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="aTW-5P-KnU" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="1385" y="180"/>
</scene>
<!--Contacts Table View Controller-->
<scene sceneID="2zi-xJ-RQo">
<objects>
<viewController id="udm-55-AMb" customClass="ContactsTableViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="Jch-ZS-1Mm"/>
<viewControllerLayoutGuide type="bottom" id="7q1-ig-sPp"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="6G9-nj-ktC">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="uv3-zI-b3q" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="374" y="449"/>
</scene>
<!--Directory Server Picker View Controller-->
<scene sceneID="t8d-GX-ntZ">
<objects>
<tableViewController storyboardIdentifier="DirectoryServerPickerViewControllerStoryboardId" id="mRq-hp-dod" customClass="DirectoryServerPickerViewController" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" id="YbK-Rh-uRf">
<rect key="frame" x="0.0" y="0.0" width="375" height="647"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<connections>
<outlet property="dataSource" destination="mRq-hp-dod" id="71E-8v-wpk"/>
<outlet property="delegate" destination="mRq-hp-dod" id="0Nu-Wt-eJD"/>
</connections>
</tableView>
<navigationItem key="navigationItem" id="6vB-s9-qMc"/>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="Q9W-8f-BvC" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="4174" y="-2050"/>
</scene>
<!--Splash View Controller-->
<scene sceneID="1CK-dy-3Dl">
<objects>
<viewController id="b5O-ib-y0h" customClass="SplashViewController" customModule="Riot" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="ro1-wH-Fjd">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TBj-TV-uVU">
<rect key="frame" x="0.0" y="44" width="375" height="579"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wHg-o0-ZpU" userLabel="contentView">
<rect key="frame" x="0.0" y="0.0" width="375" height="579"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eKT-SY-ZYa">
<rect key="frame" x="15" y="40" width="345" height="400"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="launch_screen_logo" translatesAutoresizingMaskIntoConstraints="NO" id="QtR-0L-xed">
<rect key="frame" x="102.5" y="20" width="140" height="140"/>
<constraints>
<constraint firstAttribute="height" constant="140" id="EFA-Sp-TGr"/>
<constraint firstAttribute="width" constant="140" id="NL6-UM-OOC"/>
</constraints>
</imageView>
<stackView opaque="NO" contentMode="scaleToFill" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="eKj-M6-iOK">
<rect key="frame" x="15" y="190" width="315" height="50"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Dein Messenger für unser Land" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontForContentSizeCategory="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sdQ-s4-7JH">
<rect key="frame" x="0.0" y="0.0" width="315" height="50"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleHeadline"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<constraints>
<constraint firstAttribute="height" constant="50" id="tzj-Od-eza"/>
</constraints>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="6dK-tp-np2" userLabel="MO Stack View">
<rect key="frame" x="15" y="260" width="315" height="105"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" alignment="center" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="oDT-T5-XDJ">
<rect key="frame" x="0.0" y="0.0" width="315" height="25"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="message_circle" translatesAutoresizingMaskIntoConstraints="NO" id="n9Z-Dk-v3Y" userLabel="Secure Image View">
<rect key="frame" x="0.0" y="0.0" width="25" height="25"/>
<constraints>
<constraint firstAttribute="width" constant="25" id="W2w-Mk-hQk"/>
<constraint firstAttribute="height" constant="25" id="fqE-fH-Lre"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Chats mit Kameraden und Kollegen" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3mK-7O-R4F">
<rect key="frame" x="33" y="3.5" width="282" height="18"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleSubhead"/>
<color key="textColor" systemColor="systemGrayColor" red="0.5568627451" green="0.5568627451" blue="0.57647058819999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" alignment="center" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="D6V-73-qCf">
<rect key="frame" x="0.0" y="40" width="315" height="25"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="attachment_gallery" translatesAutoresizingMaskIntoConstraints="NO" id="afm-3N-Ldu">
<rect key="frame" x="0.0" y="0.0" width="25" height="25"/>
<constraints>
<constraint firstAttribute="height" constant="25" id="2fI-3F-tEl"/>
<constraint firstAttribute="width" constant="25" id="G7q-Fi-UWQ"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Sicher Medien und Dateien übertragen" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="R2a-ue-nbj">
<rect key="frame" x="33" y="3.5" width="282" height="18"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleSubhead"/>
<color key="textColor" systemColor="systemGrayColor" red="0.5568627451" green="0.5568627451" blue="0.57647058819999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" alignment="center" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="dBM-HE-DOv">
<rect key="frame" x="0.0" y="80" width="315" height="25"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="lock" translatesAutoresizingMaskIntoConstraints="NO" id="Zq6-4E-UaZ">
<rect key="frame" x="0.0" y="0.0" width="25" height="25"/>
<constraints>
<constraint firstAttribute="width" constant="25" id="RVF-Bb-t46"/>
<constraint firstAttribute="height" constant="25" id="j9w-s6-NOZ"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Immer verschlüsselt" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6sI-9S-OAa">
<rect key="frame" x="33" y="3.5" width="282" height="18"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleSubhead"/>
<color key="textColor" systemColor="systemGrayColor" red="0.5568627451" green="0.5568627451" blue="0.57647058819999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
</subviews>
</stackView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="eKj-M6-iOK" firstAttribute="top" secondItem="QtR-0L-xed" secondAttribute="bottom" constant="30" id="0Fh-gF-c45"/>
<constraint firstAttribute="trailing" secondItem="6dK-tp-np2" secondAttribute="trailing" constant="15" id="Ta3-qC-Ybb"/>
<constraint firstItem="QtR-0L-xed" firstAttribute="centerX" secondItem="eKT-SY-ZYa" secondAttribute="centerX" id="Tx8-Bf-8oO"/>
<constraint firstItem="eKj-M6-iOK" firstAttribute="leading" secondItem="eKT-SY-ZYa" secondAttribute="leading" constant="15" id="aXX-09-Kfp"/>
<constraint firstItem="6dK-tp-np2" firstAttribute="top" secondItem="eKj-M6-iOK" secondAttribute="bottom" constant="20" id="c08-AQ-J6R"/>
<constraint firstItem="QtR-0L-xed" firstAttribute="top" secondItem="eKT-SY-ZYa" secondAttribute="top" constant="20" id="cRi-bF-78A"/>
<constraint firstAttribute="height" constant="400" id="fRB-2C-9N3"/>
<constraint firstAttribute="trailing" secondItem="eKj-M6-iOK" secondAttribute="trailing" constant="15" id="osP-RI-bkG"/>
<constraint firstItem="6dK-tp-np2" firstAttribute="leading" secondItem="eKT-SY-ZYa" secondAttribute="leading" constant="15" id="pF5-vu-uI6"/>
</constraints>
</view>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vnT-RP-hNw">
<rect key="frame" x="30" y="440" width="315" height="32"/>
<color key="backgroundColor" red="0.46247136589999999" green="0.81734329459999999" blue="0.47220504279999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<fontDescription key="fontDescription" type="system" weight="semibold" pointSize="16"/>
<state key="normal" title="Loslegen">
<color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</state>
<connections>
<segue destination="em3-BB-kbd" kind="unwind" identifier="showSplash" unwindAction="unwindSplashScreen:" id="bNH-T9-nKA"/>
</connections>
</button>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" alpha="0.69999999999999996" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="powered_by_BWI_blk" translatesAutoresizingMaskIntoConstraints="NO" id="Zs3-Ps-eXI">
<rect key="frame" x="117.5" y="517" width="140" height="80"/>
<constraints>
<constraint firstAttribute="width" constant="140" id="t4i-kE-F4F"/>
</constraints>
</imageView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="vnT-RP-hNw" firstAttribute="trailing" secondItem="6dK-tp-np2" secondAttribute="trailing" id="2j2-KP-YJe"/>
<constraint firstItem="eKT-SY-ZYa" firstAttribute="leading" secondItem="wHg-o0-ZpU" secondAttribute="leading" constant="15" id="5G5-mP-KOL"/>
<constraint firstAttribute="trailing" secondItem="eKT-SY-ZYa" secondAttribute="trailing" constant="15" id="7Df-lX-t7F"/>
<constraint firstItem="vnT-RP-hNw" firstAttribute="leading" secondItem="6dK-tp-np2" secondAttribute="leading" id="OoQ-Je-zl1"/>
<constraint firstItem="vnT-RP-hNw" firstAttribute="top" secondItem="dBM-HE-DOv" secondAttribute="bottom" constant="35" id="QA1-gN-h1m"/>
<constraint firstItem="eKT-SY-ZYa" firstAttribute="centerY" secondItem="wHg-o0-ZpU" secondAttribute="centerY" constant="-49.5" id="RS1-Ic-GMt"/>
<constraint firstItem="eKT-SY-ZYa" firstAttribute="centerX" secondItem="wHg-o0-ZpU" secondAttribute="centerX" id="ZlM-uL-bd1"/>
<constraint firstAttribute="bottom" secondItem="Zs3-Ps-eXI" secondAttribute="bottom" constant="-18" id="iBS-6v-qAH"/>
<constraint firstItem="Zs3-Ps-eXI" firstAttribute="centerX" secondItem="wHg-o0-ZpU" secondAttribute="centerX" id="oAH-oe-yQ9"/>
</constraints>
</view>
</subviews>
<constraints>
<constraint firstAttribute="trailing" secondItem="wHg-o0-ZpU" secondAttribute="trailing" id="DYy-4n-RwM"/>
<constraint firstItem="wHg-o0-ZpU" firstAttribute="centerY" secondItem="TBj-TV-uVU" secondAttribute="centerY" id="Dgd-eL-QiY"/>
<constraint firstItem="wHg-o0-ZpU" firstAttribute="centerX" secondItem="TBj-TV-uVU" secondAttribute="centerX" id="QDI-Ne-Cuc"/>
<constraint firstItem="wHg-o0-ZpU" firstAttribute="leading" secondItem="TBj-TV-uVU" secondAttribute="leading" id="gXa-iz-1MA"/>
<constraint firstItem="wHg-o0-ZpU" firstAttribute="centerY" secondItem="TBj-TV-uVU" secondAttribute="centerY" id="kxE-hG-N99"/>
<constraint firstItem="wHg-o0-ZpU" firstAttribute="top" secondItem="TBj-TV-uVU" secondAttribute="top" id="pvC-X2-Axo"/>
<constraint firstAttribute="bottom" secondItem="wHg-o0-ZpU" secondAttribute="bottom" id="t8l-2d-XF5"/>
</constraints>
</scrollView>
</subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<constraints>
<constraint firstItem="TBj-TV-uVU" firstAttribute="leading" secondItem="ro1-wH-Fjd" secondAttribute="leading" id="DDL-fn-YYU"/>
<constraint firstItem="TBj-TV-uVU" firstAttribute="centerX" secondItem="ro1-wH-Fjd" secondAttribute="centerX" id="GpD-0W-Wkq"/>
<constraint firstItem="TBj-TV-uVU" firstAttribute="top" secondItem="ro1-wH-Fjd" secondAttribute="top" constant="44" id="McY-o6-ej5"/>
<constraint firstItem="TBj-TV-uVU" firstAttribute="centerY" secondItem="ro1-wH-Fjd" secondAttribute="centerY" id="T38-ue-icu"/>
<constraint firstItem="TBj-TV-uVU" firstAttribute="trailing" secondItem="ro1-wH-Fjd" secondAttribute="trailing" id="ZOs-TH-Ms5"/>
<constraint firstAttribute="bottom" secondItem="TBj-TV-uVU" secondAttribute="bottom" priority="250" id="y1K-jp-f44"/>
</constraints>
<viewLayoutGuide key="safeArea" id="mxh-hM-KYC"/>
</view>
<connections>
<outlet property="appLogoImageView" destination="QtR-0L-xed" id="bcn-Xy-bom"/>
<outlet property="comImageView" destination="afm-3N-Ldu" id="QE6-3d-mNA"/>
<outlet property="doneButton" destination="vnT-RP-hNw" id="92v-hI-jsD"/>
<outlet property="encryptImageView" destination="Zq6-4E-UaZ" id="gDw-hv-c2r"/>
<outlet property="firstInfoLabel" destination="3mK-7O-R4F" id="IUx-HH-cWL"/>
<outlet property="secondInfoLabel" destination="R2a-ue-nbj" id="RIl-dq-gzp"/>
<outlet property="secureImageView" destination="n9Z-Dk-v3Y" id="qzU-yU-J1P"/>
<outlet property="thirdInfoLabel" destination="6sI-9S-OAa" id="QgV-Y4-bUy"/>
<outlet property="titleLabel" destination="sdQ-s4-7JH" id="wso-r1-E3w"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="oND-oq-oFz" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
<exit id="em3-BB-kbd" userLabel="Exit" sceneMemberID="exit"/>
</objects>
<point key="canvasLocation" x="-2127.1999999999998" y="-3025.6371814092954"/>
</scene>
</scenes>
<inferredMetricsTieBreakers>
<segue reference="Tfl-tq-LQp"/>
<segue reference="f5u-Y1-7nt"/>
</inferredMetricsTieBreakers>
<resources>
<<<<<<< HEAD
<image name="attachment_gallery" width="24" height="24"/>
<image name="integrations_icon" width="24" height="24"/>
=======
>>>>>>> 9792605e19cb683f1991f354dbc575b2b1e910bb
<image name="launch_screen_logo" width="240" height="240"/>
<image name="lock" width="24" height="24"/>
<image name="message_circle" width="24" height="24"/>
<image name="powered_by_BWI_blk" width="417" height="80"/>
<image name="search_icon" width="24" height="24"/>
<image name="settings_icon" width="24" height="24"/>
<image name="tab_favourites" width="24" height="24"/>
<image name="tab_groups" width="24" height="24"/>
<image name="tab_home" width="20" height="23.5"/>
<image name="tab_people" width="24" height="24"/>
<image name="tab_rooms" width="24" height="24"/>
<systemColor name="groupTableViewBackgroundColor">
<color red="0.94901960784313721" green="0.94901960784313721" blue="0.96862745098039216" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</systemColor>
</resources>
</document>

View File

@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "undraw_Birthday_cake_BwM.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,758 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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"
id="b1da7443-2b43-4a55-9b6b-835488f8f109"
data-name="Layer 1"
width="1077.87045"
height="818.13939"
viewBox="0 0 1077.87045 818.13939"
version="1.1"
sodipodi:docname="undraw_Birthday_cake_BwM.svg"
inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
<metadata
id="metadata373">
<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>Birthday cake</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs371" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview369"
showgrid="false"
inkscape:zoom="0.69142914"
inkscape:cx="781.85579"
inkscape:cy="344.59674"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="b1da7443-2b43-4a55-9b6b-835488f8f109" />
<title
id="title2">Birthday cake</title>
<path
d="M724.88913,132.77315C678.637,165.15693,618.64686,163.06077,566.0755,146.21272S465.2185,99.36712,413.9902,78.0458A494.18659,494.18659,0,0,0,280.38075,43.2116c-65.27725-7.46816-138.17815,1.629-183.6634,53.98071C46.06687,155.489,49.9558,260.63994,104.74175,314.16073c27.86523,27.22173,64.3542,40.58007,96.17591,61.83552s61.27768,56.54522,58.56766,97.56983c-2.50884,37.97919-31.67671,67.1203-61.86034,85.4044-23.33,14.13247-52.06519,29.56582-54.877,58.83474-2.72081,28.32129,21.43765,50.51207,44.50822,63.13276,75.26244,41.17208,167.99042,40.7761,242.96352-1.03754,26.75083-14.91935,51.33838-34.75613,79.39114-46.38368,73.6499-30.52707,154.80787.20352,232.79573,11.43993A465.4391,465.4391,0,0,0,940.40967,630.544c38.62329-11.40826,77.38928-28.84831,104.52167-61.3378,19.56546-23.42852,31.75437-53.07661,43.19758-82.35738q18.30444-46.83727,35.18876-94.3336c6.75709-19.00815,13.40626-38.38513,15.15148-58.71982,3.16313-36.85563-10.159-73.28074-28.30108-104.38505C1067.09817,155.56778,994.559,103.64386,916.0413,90.45336s-161.71258,12.571-222.64322,68.9421"
transform="translate(-61.06478 -40.93031)"
fill="#ff0000"
opacity="0.1"
id="path4" />
<path
d="m 850.13864,538.05009 -2.78768,-1.6121 c 2.606,-4.50561 -4.388,-23.6855 -10.16161,-33.34366 -4.00573,-6.70054 -6.51846,-12.79214 -7.68236,-18.62319 -1.85316,-9.28413 -0.0928,-17.33381 5.23238,-23.92538 11.04722,-13.6744 10.95161,-39.778 10.94925,-40.03985 l 3.22,-0.0288 c 0.0102,1.11657 0.11332,27.51363 -11.66457,42.0925 -7.82879,9.69069 -6.91723,22.76927 2.709,38.87274 4.53651,7.58822 14.22699,29.62004 10.18559,36.60779 z"
fill="#d4d5e0"
id="path6" />
<path
d="m 885.41237,392.72961 c 0.73072,-26.15292 -16.46834,-47.85115 -38.41521,-48.46435 -21.94687,-0.6132 -40.33063,20.09086 -41.06134,46.24379 -0.70948,25.39283 15.48424,46.58433 36.51445,48.356 a 13.88746,13.88746 0 0 1 -3.25839,7.15025 c -3.18843,3.25617 10.02792,0.28018 10.02792,0.28018 a 23.47942,23.47942 0 0 1 -1.4247,-7.4045 c 20.39429,-1.50966 36.92512,-21.38943 37.61727,-46.16137 z"
fill="#ff0000"
id="path8" />
<path
d="m 817.50885,410.18998 c -3.2502,-9.95233 -0.25316,-19.94507 6.68944,-22.9455 -0.32111,0.073 -0.64062,0.15961 -0.95767,0.26315 -7.59894,2.48164 -11.00956,12.91264 -7.61784,23.2983 3.29314,10.0838 11.78807,16.41654 19.23453,14.50467 0.15121,0.79026 -14.06082,-5.05367 -17.34846,-15.12062 z"
fill="#ffffff"
opacity="0.2"
id="path10" />
<path
d="m 866.63555,574.28524 3.21738,0.13587 c 0.2192,-5.20037 16.41432,-17.63033 26.46937,-22.68106 6.97606,-3.50395 12.36555,-7.29537 16.4771,-11.59083 6.54635,-6.83918 9.38122,-14.57609 8.42553,-22.9959 -1.9825,-17.46712 12.10769,-39.44145 12.25024,-39.66117 l -2.70147,-1.75247 c -0.60785,0.93668 -14.86191,23.15462 -12.7483,41.77705 1.40487,12.37844 -6.38342,22.92464 -23.14841,31.34612 -7.90035,3.96808 -27.90124,17.35729 -28.24144,25.42239 z"
fill="#d4d5e0"
id="path12" />
<path
d="m 914.86434,432.73574 c 13.41945,-22.45947 39.57686,-31.53743 58.42426,-20.27616 18.8474,11.26127 23.2476,38.5973 9.8282,61.05677 -13.0294,21.80671 -38.0667,30.99666 -56.76236,21.20489 a 13.88742,13.88742 0 0 0 -1.08811,7.782 c 0.94278,4.45868 -8.61172,-5.14548 -8.61172,-5.14548 a 23.47928,23.47928 0 0 0 5.17605,-5.48314 c -16.39805,-12.21928 -19.67717,-37.86537 -6.96632,-59.13888 z"
fill="#ff0000"
id="path14" />
<path
d="m 962.7891,483.91158 c 8.0838,-6.65322 10.918,-16.69337 6.6702,-22.9511 0.2318,0.23389 0.4549,0.47849 0.6669,0.736 5.08,6.17223 2.3595,16.80415 -6.0762,23.747 -8.1906,6.74111 -18.7571,7.5254 -24.01423,1.91576 -0.55171,0.58572 14.57643,3.28218 22.75333,-3.44766 z"
fill="#ffffff"
opacity="0.2"
id="path16" />
<path
d="m 294.69734,704.07757 -3.21738,0.13586 c -0.21921,-5.20037 -16.41432,-17.63032 -26.46938,-22.68106 -6.97606,-3.50394 -12.36555,-7.29536 -16.47709,-11.59082 -6.54636,-6.83918 -9.38122,-14.57609 -8.42554,-22.99591 1.9825,-17.46712 -12.10768,-39.44145 -12.25023,-39.66116 l 2.70146,-1.75248 c 0.60785,0.93668 14.86191,23.15462 12.74831,41.77705 -1.40487,12.37844 6.38342,22.92465 23.14841,31.34613 7.90032,3.96808 27.90123,17.35728 28.24144,25.42239 z"
fill="#d4d5e0"
id="path18" />
<path
d="m 246.46855,562.52807 c -13.41945,-22.45947 -39.57689,-31.53743 -58.4243,-20.27617 -18.84741,11.26126 -23.2476,38.5973 -9.82815,61.05677 13.02944,21.80672 38.06663,30.99667 56.76235,21.2049 a 13.8874,13.8874 0 0 1 1.08811,7.782 c -0.94278,4.45868 8.61172,-5.14547 8.61172,-5.14547 a 23.47942,23.47942 0 0 1 -5.17605,-5.48315 c 16.39805,-12.21926 19.67717,-37.86538 6.96632,-59.13888 z"
fill="#ff0000"
id="path20" />
<path
d="m 198.54375,613.7039 c -8.08377,-6.65321 -10.91793,-16.69336 -6.67021,-22.95109 -0.23179,0.23389 -0.45488,0.47849 -0.66683,0.736 -5.08,6.17223 -2.35956,16.80415 6.07618,23.74705 8.19057,6.74111 18.75713,7.5254 24.01422,1.91576 0.55172,0.58566 -14.57648,3.28213 -22.75336,-3.44772 z"
fill="#ffffff"
opacity="0.2"
id="path22" />
<path
d="m 400.69734,366.07757 -3.21738,0.13586 c -0.21921,-5.20037 -16.41432,-17.63032 -26.46938,-22.68106 -6.97606,-3.50394 -12.36555,-7.29536 -16.47709,-11.59082 -6.54636,-6.83918 -9.38122,-14.57609 -8.42554,-22.99591 1.9825,-17.46712 -12.10768,-39.44145 -12.25023,-39.66116 l 2.70146,-1.75248 c 0.60785,0.93668 14.86191,23.15462 12.74831,41.777 -1.40487,12.37844 6.38342,22.92465 23.14841,31.34613 7.90032,3.96813 27.90123,17.35733 28.24144,25.42244 z"
fill="#d4d5e0"
id="path24" />
<path
d="m 352.46855,224.52807 c -13.41945,-22.45947 -39.57689,-31.53743 -58.4243,-20.27617 -18.84741,11.26126 -23.2476,38.5973 -9.82815,61.05677 13.02944,21.80672 38.06663,30.99667 56.76235,21.2049 a 13.8874,13.8874 0 0 1 1.08811,7.782 c -0.94278,4.45868 8.61172,-5.14547 8.61172,-5.14547 a 23.47942,23.47942 0 0 1 -5.17605,-5.48315 c 16.39805,-12.21926 19.67717,-37.86538 6.96632,-59.13888 z"
fill="#ff0000"
id="path26" />
<path
d="m 304.54375,275.7039 c -8.08377,-6.65321 -10.91793,-16.69336 -6.67021,-22.95109 -0.23179,0.23389 -0.45488,0.47849 -0.66683,0.736 -5.08,6.17223 -2.35956,16.80415 6.07618,23.74705 8.19057,6.74111 18.75713,7.5254 24.01422,1.91576 0.55172,0.58566 -14.57648,3.28213 -22.75336,-3.44772 z"
fill="#ffffff"
opacity="0.2"
id="path28" />
<path
d="m 363.69734,509.07757 -3.21738,0.13586 c -0.21921,-5.20037 -16.41432,-17.63032 -26.46938,-22.68106 -6.97606,-3.50394 -12.36555,-7.29536 -16.47709,-11.59082 -6.54636,-6.83918 -9.38122,-14.57609 -8.42554,-22.99591 1.9825,-17.46712 -12.10768,-39.44145 -12.25023,-39.66116 l 2.70146,-1.75248 c 0.60785,0.93668 14.86191,23.15462 12.74831,41.777 -1.40487,12.37844 6.38342,22.92465 23.14841,31.34613 7.90032,3.96813 27.90123,17.35733 28.24144,25.42244 z"
fill="#d4d5e0"
id="path30" />
<path
d="m 315.46855,367.52807 c -13.41945,-22.45947 -39.57689,-31.53743 -58.4243,-20.27617 -18.84741,11.26126 -23.2476,38.5973 -9.82815,61.05677 13.02944,21.80672 38.06663,30.99667 56.76235,21.2049 a 13.8874,13.8874 0 0 1 1.08811,7.782 c -0.94278,4.45868 8.61172,-5.14547 8.61172,-5.14547 a 23.47942,23.47942 0 0 1 -5.17605,-5.48315 c 16.39805,-12.21926 19.67717,-37.86538 6.96632,-59.13888 z"
fill="#ff0000"
id="path32" />
<path
d="m 267.54375,418.7039 c -8.08377,-6.65321 -10.91793,-16.69336 -6.67021,-22.95109 -0.23179,0.23389 -0.45488,0.47849 -0.66683,0.736 -5.08,6.17223 -2.35956,16.80415 6.07618,23.74705 8.19057,6.74111 18.75713,7.5254 24.01422,1.91576 0.55172,0.58566 -14.57648,3.28213 -22.75336,-3.44772 z"
fill="#ffffff"
opacity="0.2"
id="path34" />
<path
d="m 807.62983,698.32458 -2.04355,-2.48874 c 4.0229,-3.30276 4.21344,-23.7172 2.20127,-34.78811 -1.39615,-7.68075 -1.60844,-14.26682 -0.64945,-20.135 1.52689,-9.34333 6.00319,-16.26135 13.30481,-20.5617 15.14731,-8.92134 24.22911,-33.39427 24.31892,-33.64034 l 3.02483,1.10431 c -0.38277,1.049 -9.56062,25.79936 -25.70982,35.31071 -10.73443,6.32229 -14.476,18.88733 -11.12136,37.34627 1.58124,8.69836 2.9132,32.73026 -3.32565,37.8526 z"
fill="#d4d5e0"
id="path36" />
<path
d="m 891.71207,574.66192 c 9.87277,-24.22886 1.39373,-50.58653 -18.93851,-58.8715 -20.33224,-8.28497 -44.81821,4.64011 -54.691,28.869 -9.58584,23.52469 -1.87,49.05471 17.197,58.10228 a 13.88748,13.88748 0 0 1 -5.56285,5.54959 c -4.12919,1.92835 9.29017,3.78556 9.29017,3.78556 a 23.47942,23.47942 0 0 1 1.26765,-7.433 c 19.62452,5.75192 42.0861,-7.05246 51.43754,-30.00193 z"
fill="#ff0000"
id="path38" />
<path
d="m 822.00304,567.15169 c 0.45369,-10.45977 6.77053,-18.76245 14.32471,-19.13236 -0.32627,-0.0445 -0.65586,-0.0756 -0.98908,-0.0901 -7.98639,-0.3464 -14.84443,8.22129 -15.31787,19.13648 -0.45968,10.598 5.26871,19.5116 12.91216,20.33787 -0.13608,0.79304 -11.38883,-9.67162 -10.92992,-20.25189 z"
fill="#ffffff"
opacity="0.2"
id="path40" />
<ellipse
cx="547.48303"
cy="706.71136"
rx="302.44354"
ry="22.4762"
fill="#ff0000"
opacity="0.1"
id="ellipse42" />
<polygon
points="580.006,156.496 583.71,156.496 583.71,119.458 580.006,121.167 "
fill="#53425a"
id="polygon44"
transform="translate(-58)" />
<path
d="m 543.66246,230.85469 -27.924,3.41892 v -83.19083 h 17.66724 c -0.11962,0.94018 -0.19657,2.00859 -0.23929,3.19668 a 140.553,140.553 0 0 0 1.10258,18.77838 c 0.59832,5.419 1.38466,11.23971 2.24794,17.02625 0.66672,4.48733 1.38466,8.949 2.0941,13.197 2.56419,15.23981 5.05143,27.5736 5.05143,27.5736 z"
fill="#ff0000"
id="path52" />
<path
d="m 529.03566,38.85702 c 0,0 2.07871,8.31482 -19.74771,31.18059 -21.82642,22.86577 -13.16514,68.94375 10.04708,67.55795 0,0 21.70014,3.57941 29.50612,-11.19363 a 19.78166,19.78166 0 0 0 -1.385,-20.27 C 540.28321,95.56868 526.44854,73.36947 529.03569,62.76214 Z"
fill="#ffc13d"
id="path64" />
<path
d="m 526.74691,80.12829 c 0,0 1.15975,4.639 -11.01769,17.39635 -12.17744,12.75735 -7.34513,38.46526 5.60549,37.69209 0,0 12.107,1.997 16.46212,-6.24517 a 11.03664,11.03664 0 0 0 -0.77274,-11.30909 c -4.00194,-5.89348 -11.72062,-18.27891 -10.27718,-24.197 z"
fill="#ffffff"
opacity="0.5"
id="path66" />
<path
d="m 534.26899,173.05784 a 199.17332,199.17332 0 0 0 -18.53053,16.85529 v -21.5563 a 99.76217,99.76217 0 0 1 17.428,-14.07737 140.553,140.553 0 0 0 1.10253,18.77838 z"
fill="#ffffff"
opacity="0.5"
id="path70" />
<path
d="m 538.61103,203.28111 c -6.8635,6.01728 -16.30825,14.57313 -22.87257,20.53913 v -15.42786 c 6.855,-6.30791 15.23984,-13.57311 20.77847,-18.30829 0.66672,4.48733 1.38466,8.94899 2.0941,13.19702 z"
fill="#ff0000"
id="path72" />
<rect
x="395.79425"
y="246.23978"
width="278.92389"
height="127.64532"
fill="#c99398"
id="rect76" />
<path
d="m 674.71814,246.23978 v 19.21435 c -5.3335,1.03419 -12.32518,-0.56415 -18.18011,-2.52146 a 24.1701,24.1701 0 0 0 -20.90665,2.63258 c -16.06895,10.5046 -28.61638,8.28233 -37.3688,3.05989 a 32.191,32.191 0 0 0 -29.12919,-2.24789 31.62676,31.62676 0 0 1 -12.91495,2.36757 27.26651,27.26651 0 0 0 -14.65858,4.0429 c -13.197,7.9917 -26.35133,3.36759 -34.61655,-1.4616 a 24.40043,24.40043 0 0 0 -17.898,-2.5813 25.785,25.785 0 0 1 -7.949,0.6496 29.82535,29.82535 0 0 0 -17.55613,3.78645 c -21.787,12.72693 -28.98385,-2.72659 -33.27461,-5.00015 -4.8463,-2.56419 -5.41045,6.26513 -6.83783,6.26513 -1.42738,0 -6.26519,-11.67558 -7.41049,-7.69257 -0.52993,1.87186 -5.01726,4.11981 -9.63282,5.98311 a 19.218,19.218 0 0 1 -10.59011,1.09408 v -27.59069 z"
opacity="0.1"
id="path78" />
<path
d="m 406.90784,220.79181 c 0,0 -45.71376,20.40038 -21.32,45.891 a 18.99689,18.99689 0 0 0 20.79823,4.34267 c 4.61229,-1.8591 9.09915,-4.10715 9.63391,-5.9788 1.13964,-3.98874 5.98311,7.69257 7.40766,7.69257 1.42455,0 1.99437,-8.83221 6.83783,-6.268 4.29018,2.27127 11.48632,17.73112 33.27042,4.99755 a 29.88085,29.88085 0 0 1 17.5643,-3.784 25.57433,25.57433 0 0 0 7.94279,-0.65068 24.42806,24.42806 0 0 1 17.9011,2.57955 c 8.26488,4.83 21.42127,9.45336 34.61417,1.4682 a 27.26077,27.26077 0 0 1 14.66319,-4.0486 31.46519,31.46519 0 0 0 12.90972,-2.36943 32.23663,32.23663 0 0 1 29.13319,2.24885 c 8.75173,5.2288 21.30162,7.44766 37.36683,-3.05448 a 24.1437,24.1437 0 0 1 20.90269,-2.63919 c 11.68411,3.91417 27.91865,6.40973 26.44662,-10.70267 -2.27927,-26.49666 -33.61932,-34.18922 -46.72517,-34.47413 -13.10585,-0.28491 -34.759,-2.56419 -59.26125,0 -24.50225,2.56419 -74.36146,2.27928 -74.36146,2.27928 0,0 -83.72051,-3.32416 -95.72477,2.47031 z"
fill="#f8f8fa"
id="path80" />
<rect
x="338.80945"
y="373.8851"
width="397.87659"
height="156.2702"
fill="#c99398"
id="rect82" />
<path
d="m 674.71814,347.22608 v 26.659 H 519.61041 q -0.39753,-0.0513 -0.79494,-0.077 a 20.86814,20.86814 0 0 0 -3.94029,0.077 H 395.79422 v -23.77 c 12.97478,1.58123 26.06069,3.58988 38.95858,3.5386 17.12026,-0.077 34.03534,-3.6326 51.18976,-2.67531 59.97636,3.33341 121.04679,4.32493 180.78385,-2.77787 2.65823,-0.31626 5.32498,-0.64961 7.99173,-0.97442 z"
opacity="0.1"
id="path84" />
<path
d="m 736.68603,373.8851 v 14.09448 c -4.32493,-0.547 -8.48745,-2.27356 -12.66709,-3.64116 -3.76934,-1.23081 -7.84641,-2.1881 -11.67559,-1.171 -2.0172,0.53848 -3.85483,1.59834 -5.84637,2.21377 -8.32506,2.59836 -17.00908,-2.81209 -25.73589,-2.84626 -8.64986,-0.0342 -16.38515,5.17966 -24.82988,7.07718 -13.05174,2.93172 -26.394,-2.21377 -38.89875,-6.98317 -5.06,-1.92315 -10.92347,-3.76078 -15.65009,-1.12825 -2.077,1.15391 -3.64116,3.05139 -5.66687,4.29931 -5.92326,3.65827 -13.67567,0.80345 -19.58188,-2.889 -3.73516,-2.33339 -8.25666,-5.07709 -12.197,-3.11123 -2.03426,1.00858 -3.3078,3.05139 -4.99164,4.56428 -5.33351,4.77791 -13.727,3.49582 -20.26561,0.58977 -6.53014,-2.9061 -12.73549,-7.19681 -19.86395,-7.72679 -10.05158,-0.76067 -18.85533,6.01733 -27.62482,10.9833 -8.76949,4.96597 -20.93236,7.90625 -28.08645,0.7949 -2.36756,-2.35051 -4.1198,-5.75232 -7.3592,-6.56432 -5.35917,-1.33338 -9.38492,5.29933 -14.78681,6.46175 -6.65838,1.43594 -12.07734,-5.64975 -18.75277,-7.043 -6.90623,-1.44449 -13.33381,3.35908 -19.428,6.90618 -6.09419,3.5471 -14.94926,5.54723 -19.36819,0.0513 -1.41028,-1.75224 -2.17955,-4.1113 -4.11125,-5.27372 a 8.23976,8.23976 0 0 0 -4.7523,-0.76072 48.28961,48.28961 0 0 0 -16.76123,4.00868 c -6.08567,2.68387 -11.97477,6.70966 -18.616,6.58143 -0.11962,0 -0.2393,-0.009 -0.359,-0.0171 V 373.8851 Z"
opacity="0.1"
id="path86" />
<path
d="m 434.74956,355.36259 c -30.52022,0.12919 -62.04306,-11.3139 -90.817,-1.13741 -10.4405,3.6925 -21.029,12.42945 -19.92809,23.44882 a 16.08175,16.08175 0 0 0 15.16183,13.99129 c 6.64583,0.12838 12.53348,-3.90136 18.61606,-6.582 a 48.23892,48.23892 0 0 1 16.76677,-4.01339 8.28854,8.28854 0 0 1 4.753,0.76727 c 1.928,1.15674 2.70008,3.52168 4.10938,5.27352 4.42088,5.49545 13.26969,3.49469 19.3653,-0.0532 6.09561,-3.54791 12.52636,-8.35316 19.43022,-6.91063 6.67,1.39365 12.08971,8.48267 18.75064,7.04643 5.39973,-1.1643 9.42524,-7.79193 14.78555,-6.45783 3.24447,0.8075 4.99258,4.20694 7.36357,6.56428 7.14781,7.10667 19.31229,4.16878 28.08228,-0.79943 8.76999,-4.96821 17.57221,-11.74161 27.62338,-10.98672 7.13314,0.53573 13.33311,4.828 19.87015,7.73241 6.53704,2.90441 14.93261,4.18424 20.26041,-0.58893 1.68926,-1.5134 2.96278,-3.56046 4.99346,-4.57057 3.93911,-1.9594 8.46274,0.78428 12.19394,3.11537 5.90792,3.691 13.66249,6.5482 19.5889,2.887 2.01867,-1.24709 3.588,-3.14367 5.661,-4.29821 4.72765,-2.633 10.59585,-0.79551 15.65211,1.13266 12.50125,4.76725 25.84952,9.9135 38.90289,6.97792 8.43711,-1.89742 16.17949,-7.106 24.82727,-7.07412 8.72291,0.0321 17.40825,5.44354 25.73608,2.84788 1.98918,-0.62 3.82748,-1.677 5.84081,-2.21343 3.83579,-1.022 7.90741,-0.0656 11.68031,1.16845 5.00614,1.63742 9.99053,3.7923 15.25762,3.80752 5.26709,0.0152 11.02793,-2.86 12.288,-7.97416 0.9646,-3.9149 -0.91453,-7.9726 -3.25943,-11.2526 -8.51489,-11.91046 -23.27858,-18.03985 -37.82877,-19.6692 -14.55019,-1.62935 -29.21245,0.64422 -43.75131,2.37166 -59.73875,7.09789 -120.8111,6.10982 -180.78208,2.77458 -17.15392,-0.95398 -34.07119,2.60231 -51.19425,2.67479 z"
fill="#f8f8fa"
id="path88" />
<rect
x="311.88547"
y="516.05225"
width="439.93784"
height="181.20265"
fill="#c99398"
id="rect90" />
<path
d="m 753.77207,511.08629 a 519.32412,519.32412 0 0 1 -66.72874,9.91484 45.84426,45.84426 0 0 0 -22.51355,1.718 c -0.13678,0.0427 -0.27352,0.0855 -0.4103,0.13673 -13.86369,4.90619 -25.79573,16.539 -40.49709,16.351 -11.73542,-0.15384 -21.88105,-7.90625 -33.15494,-11.15421 a 42.23114,42.23114 0 0 0 -9.89778,-1.61545 43.4249,43.4249 0 0 0 -6.82928,0.18807 c -13.63294,0.359 -27.26584,0.50426 -40.89878,0.22224 -20.00069,-0.40175 -39.95861,-1.72657 -59.91657,-3.04284 q -32.001,-2.11548 -64.0021,-4.23092 -30.10362,-1.98723 -60.2157,-3.97451 -7.38487,-0.4872 -14.78681,-0.98291 c -5.30789,-0.35047 -9.24818,0.79489 -11.39356,-3.94885 -2.54713,-5.67541 -0.29919,-11.32516 2.8206,-16.26552 2.68386,0.0513 5.37623,0.23935 8.05153,0.42736 q 60.97641,4.295 121.92719,8.88921 l -6.24807,1.10258 a 682.06118,682.06118 0 0 1 128.36326,-7.94042 c 20.04342,0.65811 40.1979,2.19666 60.096,-0.359 13.98336,-1.79491 27.6847,-5.58991 41.73646,-6.778 19.29975,-1.63251 38.64228,1.7009 57.737,5.02581 a 116.104,116.104 0 0 1 11.93205,2.53 c 1.01712,4.88903 2.15387,9.76955 4.82918,13.78679 z"
opacity="0.1"
id="path92" />
<path
d="m 751.82331,516.05227 v 17.03475 c -5.4874,-0.812 -10.86363,-1.61545 -14.1971,2.28211 -1.56411,1.83769 -2.171,4.33349 -3.69238,6.2139 -3.1369,3.8719 -9.26529,3.8634 -13.74407,1.66674 -4.47027,-2.19666 -7.88063,-6.043 -11.73547,-9.20546 a 46.66119,46.66119 0 0 0 -44.33481,-7.76951 c -13.86369,4.90619 -25.79573,16.539 -40.49709,16.351 -11.73542,-0.15385 -21.88105,-7.90625 -33.15494,-11.15421 a 44.78974,44.78974 0 0 0 -37.779,6.419 c -7.98314,5.66686 -15.52186,14.462 -25.24013,13.34231 -5.09421,-0.58976 -9.37641,-3.90612 -13.70134,-6.66688 A 72.89966,72.89966 0 0 0 485.0537,533.93319 c -4.45311,-0.6325 -9.17979,-0.82056 -13.28248,1.02568 -5.1711,2.3334 -8.51312,7.48744 -13.3167,10.51316 -11.15421,7.01735 -25.61621,0.68378 -37.11234,-5.75231 -11.50467,-6.43614 -25.73589,-13.02607 -37.12945,-6.41047 -2.68386,1.55561 -4.98308,3.77789 -7.82079,5.02581 -16.02623,7.03442 -31.76178,-20.06907 -48.20672,-14.07737 -3.70955,1.35049 -6.66688,4.26509 -10.3166,5.76943 a 12.36821,12.36821 0 0 1 -5.9831,0.83761 v -14.81246 z"
opacity="0.1"
id="path94" />
<path
d="m 455.33042,505.42518 q -60.95452,-4.58713 -121.93034,-8.885 c -7.05844,-0.49751 -14.29773,-0.97386 -21.08084,1.04075 -6.78311,2.01461 -13.12151,7.08092 -14.57243,14.00653 -2.19351,10.47014 10.23123,20.79764 20.124,16.72713 3.65133,-1.50239 6.60662,-4.41991 10.31685,-5.7703 16.44216,-5.98439 32.18,21.11323 48.20052,14.07749 2.84064,-1.24753 5.13753,-3.46238 7.82058,-5.02021 11.39733,-6.61752 25.6285,-0.0238 37.12917,6.41247 11.50067,6.43625 25.96162,12.76192 37.118,5.74583 4.80482,-3.02169 8.1408,-8.17553 13.31563,-10.50751 4.10424,-1.84954 8.82484,-1.663 13.28113,-1.02493 a 72.77513,72.77513 0 0 1 28.69594,10.63272 c 4.32394,2.75614 8.60687,6.07051 13.70048,6.66035 9.719,1.12546 17.25985,-7.676 25.23738,-13.34036 a 44.82021,44.82021 0 0 1 37.78062,-6.42169 c 11.27221,3.25 21.42144,11.00426 33.15182,11.157 14.70313,0.19145 26.63606,-11.44248 40.49649,-16.35242 a 46.685,46.685 0 0 1 44.34037,7.77212 c 3.85411,3.16471 7.25985,7.00548 11.73593,9.20416 4.47608,2.19868 10.60421,2.20775 13.74426,-1.66647 1.52069,-1.87624 2.12239,-4.37738 3.6922,-6.21272 6.41716,-7.50261 20.39158,2.41224 28.17191,-3.66523 a 10.65272,10.65272 0 0 0 3.5614,-5.86348 c 1.95046,-7.77429 -2.93317,-15.96775 -9.622,-20.384 -6.68883,-4.41625 -14.83663,-5.88933 -22.73286,-7.26531 -19.087,-3.32605 -38.429,-6.66492 -57.7346,-5.03172 -14.05,1.18858 -27.75122,4.98941 -41.73679,6.78385 -19.89389,2.55253 -40.04886,1.01561 -60.09508,0.35892 a 682.05255,682.05255 0 0 0 -128.36461,7.93591"
fill="#f8f8fa"
id="path96" />
<path
d="m 751.82331,647.91991 v 42.57407 q -25.25727,1.29494 -50.5231,2.57274 c -27.19745,1.38466 -54.42061,2.76932 -81.64372,2.23939 -23.00936,-0.453 -45.96738,-2.265 -68.96813,-2.983 -48.36061,-1.50433 -96.858,1.87186 -145.08177,-2 -15.43642,-1.23937 -30.82155,-3.21379 -46.28363,-4.09419 a 340.601,340.601 0 0 0 -47.43748,0.68377 v -40.11248 a 37.31411,37.31411 0 0 1 4.36765,-0.10256 55.84923,55.84923 0 0 1 22.0264,5.32495 c 5.39334,2.55568 10.50461,6.02588 16.38515,7.043 15.29968,2.64109 28.59071,-11.81236 44.0784,-12.96628 12.47053,-0.92307 23.676,6.81222 34.37725,13.28253 2.05988,1.23937 4.35055,2.48724 6.71816,2.13682 1.983,-0.29063 3.61549,-1.64962 5.23094,-2.83771 15.26546,-11.26532 38.52267,-9.89778 52.35218,3.08557 1.50434,1.40176 3.00011,2.983 4.98309,3.50437 3.92318,1.04279 7.44466,-2.359 10.55589,-4.97448 16.85524,-14.21416 42.83048,-9.94051 62.173,0.6581 3.58132,1.95737 7.54728,4.1882 11.50468,3.16251 2.64964,-0.68377 4.69246,-2.718 6.81217,-4.45316 16.47065,-13.51327 41.2407,-11.00036 60.51484,-1.91458 1.86335,0.88039 3.82922,1.82913 5.872,1.59834 2.45307,-0.29058 4.33343,-2.17955 6.2224,-3.76078 a 31.73577,31.73577 0 0 1 33.37718,-4.13692 c 3.04283,1.46161 5.86348,3.436 9.09433,4.4275 9.20545,2.81209 18.5562,-2.90605 27.74454,-5.8036 a 47.66956,47.66956 0 0 1 15.54758,-2.15392 z"
opacity="0.1"
id="path98" />
<path
d="m 798.18383,689.84438 q -48.43756,2.47451 -96.88362,4.9318 c -27.19745,1.38466 -54.42061,2.76932 -81.64372,2.23939 -23.00936,-0.453 -45.96738,-2.265 -68.96813,-2.983 -48.36061,-1.50433 -96.858,1.87186 -145.08177,-2 -15.43642,-1.23937 -30.82155,-3.2138 -46.28363,-4.09419 a 344.33108,344.33108 0 0 0 -52.18978,1.10263 c -3.70954,0.35042 -9.41913,2.20517 -13.009,1.47867 -3.87189,-0.78634 -2.39323,-1.23081 -1.12819,-4.89759 a 32.43645,32.43645 0 0 0 0.95729,-3.32491 c 1.05986,-4.48733 1.25643,-9.01738 1.69235,-13.67567 0.5641,-5.94893 1.43594,-12.49614 6.35919,-16.539 3.8719,-3.18813 9.23107,-3.83773 14.24832,-3.67533 a 55.84906,55.84906 0 0 1 22.0264,5.325 c 5.39334,2.55568 10.50461,6.02588 16.38515,7.043 15.29968,2.64109 28.59071,-11.81237 44.0784,-12.96628 12.47053,-0.92307 23.676,6.81222 34.37725,13.28253 2.05988,1.23937 4.35055,2.48724 6.71816,2.13682 1.983,-0.29063 3.61549,-1.64962 5.23094,-2.83771 15.26546,-11.26533 38.52267,-9.89778 52.35218,3.08556 1.50434,1.40177 3.00011,2.983 4.98309,3.50437 3.92318,1.0428 7.44466,-2.359 10.55589,-4.97448 16.85524,-14.21415 42.83048,-9.9405 62.173,0.65811 3.58132,1.95736 7.54728,4.1882 11.50468,3.16251 2.64964,-0.68377 4.69246,-2.718 6.81217,-4.45316 16.47065,-13.51327 41.2407,-11.00036 60.51484,-1.91458 1.86335,0.88039 3.82922,1.82913 5.872,1.59834 2.45307,-0.29058 4.33343,-2.17955 6.2224,-3.76078 a 31.73577,31.73577 0 0 1 33.37718,-4.13692 c 3.04283,1.46161 5.86348,3.436 9.09433,4.4275 9.20545,2.81209 18.5562,-2.906 27.74454,-5.8036 a 48.03718,48.03718 0 0 1 60.002,30.51385 45.82008,45.82008 0 0 1 1.90609,7.54712 z"
fill="#f8f8fa"
id="path100" />
<path
d="m 798.18383,689.84438 q -48.43756,2.47451 -96.88362,4.9318 c -27.19745,1.38466 -54.42061,2.76932 -81.64372,2.23939 -23.00936,-0.453 -45.96738,-2.265 -68.96813,-2.983 -48.36061,-1.50433 -96.858,1.87186 -145.08177,-2 -15.43642,-1.23937 -30.82155,-3.2138 -46.28363,-4.09419 a 344.33108,344.33108 0 0 0 -52.18978,1.10263 c -3.70954,0.35042 -9.41913,2.20517 -13.009,1.47867 -3.87189,-0.78634 -2.39323,-1.23081 -1.12819,-4.89759 a 32.43645,32.43645 0 0 0 0.95729,-3.32491 h 502.32447 a 45.82008,45.82008 0 0 1 1.90608,7.5472 z"
opacity="0.1"
id="path102" />
<path
d="m 281.48168,683.15189 h 522.36153 a 17.03368,17.03368 0 0 1 17.03368,17.03368 v 2.19773 H 264.448 v -2.19773 a 17.03368,17.03368 0 0 1 17.03368,-17.03368 z"
fill="#d4d5e0"
id="path104" />
<rect
x="458.60144"
y="107.35271"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(16.71337)"
fill="#ff0000"
id="rect106" />
<rect
x="451.04474"
y="240.62312"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(16.7134)"
fill="#ff0000"
id="rect108" />
<rect
x="446.08771"
y="393.80121"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(16.7134)"
fill="#ff0000"
id="rect110" />
<rect
x="565.72491"
y="367.95346"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(16.71339)"
fill="#ff0000"
id="rect112" />
<rect
x="633.54791"
y="341.91098"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(16.71339)"
fill="#ff0000"
id="rect114" />
<rect
x="734.52704"
y="323.09839"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(16.71336)"
fill="#ff0000"
id="rect116" />
<rect
x="796.78986"
y="287.58524"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(16.71341)"
fill="#ff0000"
id="rect118" />
<rect
x="504.96783"
y="382.38846"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(16.71339)"
fill="#ff0000"
id="rect120" />
<rect
x="651.00446"
y="353.8197"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(16.71336)"
fill="#ff0000"
id="rect122" />
<rect
x="704.80426"
y="320.51514"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(16.71337)"
fill="#ff0000"
id="rect124" />
<rect
x="826.94171"
y="278.53192"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(16.71338)"
fill="#ff0000"
id="rect126" />
<rect
x="143.97374"
y="594.66351"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(-53.67407)"
fill="#ff0000"
id="rect128" />
<rect
x="123.72319"
y="562.32275"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(-53.67411)"
fill="#ff0000"
id="rect130" />
<rect
x="87.124039"
y="512.54572"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(-53.67408)"
fill="#ff0000"
id="rect132" />
<rect
x="-63.003796"
y="520.77222"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(-53.67407)"
fill="#ff0000"
id="rect134" />
<rect
x="-70.465736"
y="532.08289"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(-53.67409)"
fill="#ff0000"
id="rect136" />
<rect
x="-0.87182206"
y="606.97858"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(-53.67407)"
fill="#ff0000"
id="rect138" />
<rect
x="-158.01865"
y="672.51807"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(-53.67409)"
fill="#ff0000"
id="rect140" />
<rect
x="59.01112"
y="699.48578"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(-53.67408)"
fill="#ff0000"
id="rect142" />
<rect
x="80.974785"
y="739.49146"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(-53.67409)"
fill="#ff0000"
id="rect144" />
<rect
x="-35.942822"
y="808.46613"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(-53.67402)"
fill="#ff0000"
id="rect146" />
<rect
x="6.3373632"
y="893.10767"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(-53.67405)"
fill="#ff0000"
id="rect148" />
<rect
x="-173.57845"
y="632.88159"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(-53.67407)"
fill="#ff0000"
id="rect150" />
<rect
x="-208.95927"
y="574.62866"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(-53.67404)"
fill="#ff0000"
id="rect152" />
<rect
x="-137.61473"
y="689.3941"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(-53.67406)"
fill="#ff0000"
id="rect154" />
<rect
x="-90.925537"
y="745.29285"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(-53.67405)"
fill="#ff0000"
id="rect156" />
<rect
x="566.99335"
y="-389.09595"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(54.67721)"
fill="#ff0000"
id="rect158" />
<rect
x="530.26068"
y="-316.85919"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(54.67719)"
fill="#ff0000"
id="rect160" />
<rect
x="548.32477"
y="-141.5455"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(54.67721)"
fill="#ff0000"
id="rect162" />
<rect
x="574.7215"
y="-171.97626"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(54.6772)"
fill="#ff0000"
id="rect164" />
<rect
x="619.52966"
y="-235.20763"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(54.67718)"
fill="#ff0000"
id="rect166" />
<rect
x="626.82996"
y="-259.72891"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(54.67719)"
fill="#ff0000"
id="rect168" />
<rect
x="662.49255"
y="-304.74033"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(54.67719)"
fill="#ff0000"
id="rect170" />
<rect
x="681.33765"
y="-342.66898"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(54.67719)"
fill="#ff0000"
id="rect172" />
<rect
x="717.02673"
y="-387.01089"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(54.67719)"
fill="#ff0000"
id="rect174" />
<rect
x="595.41364"
y="59.630775"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(16.71337)"
fill="#ff0000"
id="rect176" />
<rect
x="639.8175"
y="44.12019"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(16.71339)"
fill="#ff0000"
id="rect178" />
<rect
x="583.4975"
y="80.867691"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(16.71339)"
fill="#ff0000"
id="rect180" />
<rect
x="496.44278"
y="110.52627"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(16.71337)"
fill="#ff0000"
id="rect182" />
<rect
x="650.97314"
y="56.208157"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(16.7134)"
fill="#ff0000"
id="rect184" />
<rect
x="483.25769"
y="93.30764"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(16.71338)"
fill="#ff0000"
id="rect186" />
<rect
x="531.93488"
y="87.553413"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(16.71337)"
fill="#ff0000"
id="rect188" />
<rect
x="539.16327"
y="214.1637"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(16.71339)"
fill="#ff0000"
id="rect190" />
<rect
x="608.24188"
y="193.4239"
width="3.1340203"
height="8.6578474"
rx="1.3879346"
transform="rotate(16.713074)"
fill="#ff0000"
id="rect192"
style="stroke-width:1" />
<rect
x="769.59155"
y="148.47212"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(16.71335)"
fill="#ff0000"
id="rect194" />
<rect
x="786.37939"
y="143.43382"
width="3.1340203"
height="8.6578474"
rx="1.3879346"
transform="rotate(16.713074)"
fill="#ff0000"
id="rect196"
style="stroke-width:1" />
<rect
x="553.78607"
y="93.307686"
width="3.1340101"
height="8.6578197"
rx="1.38793"
transform="rotate(16.71338)"
fill="#ff0000"
id="rect198" />
<ellipse
cx="140.97244"
cy="702.9892"
rx="28.598101"
ry="2.8970201"
fill="#ff0000"
opacity="0.1"
id="ellipse202" />
<ellipse
cx="64"
cy="775.50677"
rx="28.598101"
ry="2.8970201"
fill="#ff0000"
opacity="0.1"
id="ellipse204" />
<ellipse
cx="849.92664"
cy="766.80573"
rx="28.598101"
ry="2.8970201"
fill="#ff0000"
opacity="0.1"
id="ellipse206" />
<ellipse
cx="838.42141"
cy="797.49528"
rx="28.5981"
ry="2.89702"
fill="#ff0000"
opacity="0.1"
id="ellipse208" />
<ellipse
cx="698.20782"
cy="747.95856"
rx="28.598101"
ry="2.8970201"
fill="#ff0000"
opacity="0.1"
id="ellipse210" />
<ellipse
cx="626.7996"
cy="815.24236"
rx="28.5981"
ry="2.89702"
fill="#ff0000"
opacity="0.1"
id="ellipse212" />
<path
d="m 273.47467,742.52714 c 0,0 -0.0322,0.29995 -0.0535,0.79282 v 0.375 l -3.09636,5.2606 -9.8461,-1.36069 -5.08915,-3.4606 a 16.50825,16.50825 0 0 0 1.10358,-2.1 c 2.47486,-0.7071 8.14248,1.29642 8.14248,1.29642 0,0 6.11778,1.16778 8.68916,-0.70716 a 0.589,0.589 0 0 0 0.14989,-0.0964 z"
opacity="0.1"
id="path258" />
<path
d="m 424.7403,543.91642 c 0,0 -13.12465,6.86986 -15.66923,7.23194 -2.54458,0.36208 11.11578,-1.47317 11.11578,-1.47317 z"
opacity="0.1"
id="path320" />
<path
d="m 435.45429,549.27341 c 0,0 -17.41024,5.8927 -25.044,4.8213 3e-5,-2e-5 19.01738,3.61598 25.044,-4.8213 z"
opacity="0.1"
id="path322" />
<path
d="m 591.62983,509.32458 -2.04355,-2.48874 c 4.0229,-3.30276 4.21344,-23.7172 2.20127,-34.78811 -1.39615,-7.68075 -1.60844,-14.26682 -0.64945,-20.135 1.52689,-9.34333 6.00319,-16.26135 13.30481,-20.5617 15.14731,-8.92134 24.22911,-33.39427 24.31892,-33.64034 l 3.02483,1.10431 c -0.38277,1.049 -9.56062,25.79936 -25.70982,35.31071 -10.73443,6.32229 -14.476,18.88733 -11.12136,37.34627 1.58124,8.69836 2.9132,32.73026 -3.32565,37.8526 z"
fill="#d4d5e0"
id="path350" />
<path
d="m 675.71207,385.66192 c 9.87277,-24.22886 1.39373,-50.58653 -18.93851,-58.8715 -20.33224,-8.28497 -44.81821,4.64011 -54.691,28.869 -9.58584,23.52469 -1.87,49.05471 17.197,58.10228 a 13.88748,13.88748 0 0 1 -5.56285,5.54959 c -4.12919,1.92835 9.29017,3.78556 9.29017,3.78556 a 23.47942,23.47942 0 0 1 1.26765,-7.433 c 19.62452,5.75192 42.0861,-7.05246 51.43754,-30.00193 z"
fill="#ff0000"
id="path352" />
<path
d="m 606.00304,378.15169 c 0.45369,-10.45977 6.77053,-18.76245 14.32471,-19.13236 -0.32627,-0.0445 -0.65586,-0.0757 -0.98908,-0.0901 -7.98639,-0.3464 -14.84443,8.22129 -15.31787,19.13648 -0.45968,10.598 5.26871,19.5116 12.91216,20.33787 -0.13608,0.79304 -11.38883,-9.67162 -10.92992,-20.25189 z"
fill="#ffffff"
opacity="0.2"
id="path354" />
<path
d="m 714.62983,673.32458 -2.04355,-2.48874 c 4.0229,-3.30276 4.21344,-23.7172 2.20127,-34.78811 -1.39615,-7.68075 -1.60844,-14.26682 -0.64945,-20.135 1.52689,-9.34333 6.00319,-16.26135 13.30481,-20.5617 15.14731,-8.92134 24.22911,-33.39427 24.31892,-33.64034 l 3.02483,1.10431 c -0.38277,1.049 -9.56062,25.79936 -25.70982,35.31071 -10.73443,6.32229 -14.476,18.88733 -11.12136,37.34627 1.58124,8.69836 2.9132,32.73026 -3.32565,37.8526 z"
fill="#d4d5e0"
id="path356" />
<path
d="m 798.71207,549.66192 c 9.87277,-24.22886 1.39373,-50.58653 -18.93851,-58.8715 -20.33224,-8.28497 -44.81821,4.64011 -54.691,28.869 -9.58584,23.52469 -1.87,49.05471 17.197,58.10228 a 13.88748,13.88748 0 0 1 -5.56285,5.54959 c -4.12919,1.92835 9.29017,3.78556 9.29017,3.78556 a 23.47942,23.47942 0 0 1 1.26765,-7.433 c 19.62452,5.75192 42.0861,-7.05246 51.43754,-30.00193 z"
fill="#ff0000"
id="path358" />
<path
d="m 729.00304,542.15169 c 0.45369,-10.45977 6.77053,-18.76245 14.32471,-19.13236 -0.32627,-0.0445 -0.65586,-0.0756 -0.98908,-0.0901 -7.98639,-0.3464 -14.84443,8.22129 -15.31787,19.13648 -0.45968,10.598 5.26871,19.5116 12.91216,20.33787 -0.13608,0.79304 -11.38883,-9.67162 -10.92992,-20.25189 z"
fill="#ffffff"
opacity="0.2"
id="path360" />
<path
d="m 541.00304,225.15169 c 0.45369,-10.45977 6.77053,-18.76245 14.32471,-19.13236 -0.32627,-0.0445 -0.65586,-0.0756 -0.98908,-0.0901 -7.98639,-0.3464 -14.84443,8.22129 -15.31787,19.13648 -0.45968,10.598 5.26871,19.5116 12.91216,20.33787 -0.13608,0.79304 -11.38883,-9.67162 -10.92992,-20.25189 z"
fill="#ffffff"
opacity="0.2"
id="path366" />
</svg>

After

Width:  |  Height:  |  Size: 38 KiB

View File

@@ -0,0 +1,26 @@
{
"images" : [
{
"filename" : "file_attachment_icon.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "file_attachment_icon@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "file_attachment_icon@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
},
"properties" : {
"template-rendering-intent" : "template"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 572 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1,26 @@
{
"images" : [
{
"filename" : "file_scan_infected.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "file_scan_infected@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "file_scan_infected@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
},
"properties" : {
"template-rendering-intent" : "template"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 530 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 785 B

View File

@@ -0,0 +1,13 @@
{
"images": [
{
"idiom": "universal",
"filename": "attachment_gallery.pdf"
}
],
"info": {
"version": 1,
"author": "xcode",
"generatedBy": "Respresso"
}
}

View File

@@ -0,0 +1,52 @@
%PDF-1.4
%Óëéá
1 0 obj
<</Creator (Chromium)
/Producer (Skia/PDF m77)
/CreationDate (D:20200922043040+00'00')
/ModDate (D:20200922043040+00'00')>>
endobj
3 0 obj
<</ca 1
/BM /Normal>>
endobj
4 0 obj
<</Filter /FlateDecode
/Length 171>> stream
xœUNIÂ0 ¼û>#aâ,¥yAÏpá”CDù¿Ä8©h±<1B>'ãq*>äì<>GÙQ¹Ìô&Ôµ³Üévàn£h‡8Wß<1F>IÙò:pkNCàñC4ól˜x2<>…²wjzàB u¢M
;0S‡1´Z·M¶¥t ²ß¾µ…TèI½$Ö€¿Æe'Im‰‡I£iµË¬=05øy&,xÐù®¸>y
endstream
endobj
2 0 obj
<</Type /Page
/Resources <</ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/ExtGState <</G3 3 0 R>>>>
/MediaBox [0 0 24 24]
/Contents 4 0 R
/StructParents 0
/Parent 5 0 R>>
endobj
5 0 obj
<</Type /Pages
/Count 1
/Kids [2 0 R]>>
endobj
6 0 obj
<</Type /Catalog
/Pages 5 0 R>>
endobj
xref
0 7
0000000000 65535 f
0000000015 00000 n
0000000432 00000 n
0000000154 00000 n
0000000191 00000 n
0000000618 00000 n
0000000673 00000 n
trailer
<</Size 7
/Root 6 0 R
/Info 1 0 R>>
startxref
720

View File

@@ -0,0 +1,26 @@
{
"images" : [
{
"filename" : "hide_password_button.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "hide_password_button@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "hide_password_button@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
},
"properties" : {
"template-rendering-intent" : "template"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -0,0 +1,13 @@
{
"images": [
{
"idiom": "universal",
"filename": "lock.pdf"
}
],
"info": {
"version": 1,
"author": "xcode",
"generatedBy": "Respresso"
}
}

View File

@@ -0,0 +1,65 @@
%PDF-1.4
%Óëéá
1 0 obj
<</Creator (Chromium)
/Producer (Skia/PDF m77)
/CreationDate (D:20200827125305+00'00')
/ModDate (D:20200827125305+00'00')>>
endobj
3 0 obj
<</ca 1
/BM /Normal>>
endobj
4 0 obj
<</CA 1
/ca 1
/LC 0
/LJ 0
/LW 3
/ML 4
/SA true
/BM /Normal>>
endobj
5 0 obj
<</Filter /FlateDecode
/Length 262>> stream
xœmPAnÃ0 »ë>¨fÉN¿ çm‡= غC:`Ýÿ<C39D>QvR«ÀlahVÈšj[!bŸØ}jë•~È$öçöAïOálf™±Jó=|À$Áöë9tp»Ðó9…Ë/%ŽXá¨áêiaÉ pAhÊIMPïÒÙ„D·’,»ß±Iåyš=§rèÜ5ŽT—éèÊ¥w²9([úqê¡Ó n¥1ù`7ÿ8ØQÆq‡«§ŽÄ»Üè>Ñv¶¶ úšPoA—Zc5Á€Žg"í…
ShmbÅykÆÞ+=êb
69Pâ²;œîÔßpHG<1B>ñàßc×}rû™7zÁþAãƒÇ
endstream
endobj
2 0 obj
<</Type /Page
/Resources <</ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/ExtGState <</G3 3 0 R
/G4 4 0 R>>>>
/MediaBox [0 0 24 24]
/Contents 5 0 R
/StructParents 0
/Parent 6 0 R>>
endobj
6 0 obj
<</Type /Pages
/Count 1
/Kids [2 0 R]>>
endobj
7 0 obj
<</Type /Catalog
/Pages 6 0 R>>
endobj
xref
0 8
0000000000 65535 f
0000000015 00000 n
0000000599 00000 n
0000000154 00000 n
0000000191 00000 n
0000000267 00000 n
0000000795 00000 n
0000000850 00000 n
trailer
<</Size 8
/Root 7 0 R
/Info 1 0 R>>
startxref
897

View File

@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "message_circle.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "powered_by_BWI_blk.png",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "powered_by_BWI_gry.png",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 348 B

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 579 B

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 806 B

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -0,0 +1,15 @@
{
"images" : [
{
"filename" : "room_checkbox.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
},
"properties" : {
"template-rendering-intent" : "template"
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,27 @@
{
"images": [
{
"filename": "room_action_resttime.png",
"idiom": "universal",
"scale": "1x",
"size": "24x24"
},
{
"filename": "room_action_resttime@2x.png",
"idiom": "universal",
"scale": "2x",
"size": "24x24"
},
{
"filename": "room_action_resttime@3x.png",
"idiom": "universal",
"scale": "3x",
"size": "24x24"
}
],
"info": {
"author": "xcode",
"template-rendering-intent": "template",
"version": 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 352 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 740 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,17 +1,17 @@
{
"images" : [
{
"filename" : "Group 3144.png",
"filename" : "dm_add.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Group 3144@2x.png",
"filename" : "dm_add@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Group 3144@3x.png",
"filename" : "dm_add@3x.png",
"idiom" : "universal",
"scale" : "3x"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "personal_notes-1.jpg",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

View File

@@ -0,0 +1,23 @@
{
"images" : [
{
"filename" : "rolls_and_rights.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "rolls_and_rights@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "rolls_and_rights@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@@ -1,17 +1,17 @@
{
"images" : [
{
"filename" : "Group 3144.png",
"filename" : "3144_bwi.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Group 3144@2x.png",
"filename" : "3144_bwi@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Group 3144@3x.png",
"filename" : "3144_bwi@3x.png",
"idiom" : "universal",
"scale" : "3x"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -1,23 +1,12 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "secrets_recovery_key.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "secrets_recovery_key@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "secrets_recovery_key@3x.png",
"scale" : "3x"
"filename" : "password-2.png",
"idiom" : "universal"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
"author" : "xcode",
"version" : 1
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -1,23 +1,12 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "secrets_recovery_passphrase.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "secrets_recovery_passphrase@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "secrets_recovery_passphrase@3x.png",
"scale" : "3x"
"filename" : "password-1.png",
"idiom" : "universal"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
"author" : "xcode",
"version" : 1
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@@ -1,23 +1,12 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "secrets_setup_key.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "secrets_setup_key@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "secrets_setup_key@3x.png",
"scale" : "3x"
"filename" : "password.png",
"idiom" : "universal"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
"author" : "xcode",
"version" : 1
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -1,23 +1,12 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "secrets_setup_passphrase.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "secrets_setup_passphrase@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "secrets_setup_passphrase@3x.png",
"scale" : "3x"
"filename" : "password.png",
"idiom" : "universal"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
"author" : "xcode",
"version" : 1
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -1,17 +1,17 @@
{
"images" : [
{
"filename" : "tab_people.png",
"filename" : "dm.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "tab_people@2x.png",
"filename" : "dm@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "tab_people@3x.png",
"filename" : "dm@3x.png",
"idiom" : "universal",
"scale" : "3x"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 413 B

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